Multilingual content in WordPress, September 2010

Someone emailed me recently to ask about how they should approach the task of setting up a multi-lingual WordPress site (en+fr). My response was long enough that I figured I’d post it here for anyone curious about my thoughts.

We’re looking to update our WordPress website with a multi-language setup […] Would you recommend that we use a multi-lingual plugin, such as WPML, or just create two different wordpress sites?  I’d rather do the former, since once setup it demands much less updating.  I’ve heard in the past that this is very difficult to do, but now with WP 3.0, I’m thinking it must be much easier.  I’d much appreciate your opinion.

Multi-lingual in 3.0

The advent of 3.0 has changed many things but not the frustrating lack of support for multilingualism in WP. The same issues exist now as did in the 2.x days. The main relevant change in 3.0 is that WPMU, a seperate project which let you have multiple sites in one installation, is now part of the main WordPress code. The feature is now referred to as “Multi-site” or “Network” and is fairly easy to activate. This means if you decide to use separate sites it is a bit simpler to have both sites running off the same WP install and sharing themes/plugins. Just set up your main site as mysite.com and the French one as fr.mysite.com.

Plugins can be abandoned

While its true that two sites requires more tedious repetitive work during updates it less likely to involve insane compatibility work that could arise from the plugin acting up or becomming unsupported. Users of the previously-standard Gengo plugin all got fucked around version 2.5 (don’t feel like looking up the exact version) when the plugin stopped working and none of them could update their sites, leaving them susceptible to hackers. An unpatched version of WP is often vulnerable to attack and a site that depends on a plugin that stops working can’t be patched.

WPML.org is probably your best bet for a plugin

WPML seems like it has serious and dedicated professional developers, and has a LOT of features that are very useful, so its a decent bet that as a translation system it will continue working for a long time. Especially if you don’t have a ton of content it is a pretty good choice (because you can always copy/paste the content into a second site some day if the plugin stops working). Using it will require some heavy modifications to your theme if you want the language chooser etc. to actually make sense. My experience with WPML has lead me to believe that the devs aren’t particularly great UI designers compared to their programming skills.

Multiple sites keeps your posts database clean and logical

I personally like the two-site approach because it keeps your content and databases clean as a tradeoff for the deeper linkage between translations you could otherwise get from a plugin. It’s extra hassle to edit the content on both sites all the time but IMHO the bigger hassle is actually translating and keeping content fully synchronized which is nearly impossible regardless of your translation infrastructure.

On Global Voices we have a custom solution we call Lingua

I don’t have any real experience with WPML or qTranslate (the other big name in WP translation) because on Global Voices (the site I run) I’ve coded a custom translation plugin that we call Lingua. It uses separate sites but keeps a database that links translations across the sites (see http://fr.globalvoicesonline.org/2010/09/02/43270/ for an example of the output). IMHO this is the best model for running translations because if the plugin stops working all you lose is the links to other versions. Each translation site can continue to work independently without knowledge of the others, so you can work on the update issues seperately while still being secure. Unfortunately the plugin isn’t even close to being public-friendly, but I’m hoping the model gets used someday. I added it to the list of potential plugin types on the Codex page about multilingual WordPress.

Maybe one day it will be easy

Good luck to anyone trying to build multi-lingual WordPress sites. It’s a nightmare but none of the other CMS options are actually much easier, and all the other benefits of  WP make it hard to turn down. Here’s hoping that one day the core development team is willing to pick up the problem and commit to a standardized solution (vote for built-in multilingualism on the WordPress “Ideas forum”).

EDIT (Sep 11, 2010): I should also mention the Worldwide Lexicon project and their WWL translation plugin for WordPress. It has an intense approach that combines machine translation with human editing to make your site quickly translated and let you improve it incrementally as time goes on. I haven’t used their plugin myself because older dev versions I tried were very buggy and hard to understand. If you’re just starting now the new versions are worth a try and may be a good solution if the combination of machine and human translation is desirable to you.

13 Replies to “Multilingual content in WordPress, September 2010”

  1. Great analysis of multilingual WP sites.

    Actually, we started in a similar path with WPML. The first iteration, which very few people knew, used different WP installs for different languages.

    He had two plugins, running on the ‘master’ language and the translations, synchronizing between them via XML-RPC.

    We switched from this approach to a single site with different languages because most people found multiple sites difficult to admin. For instance, adding translations meant jumping to the ‘other’ site and logging in there.

    Then, synchronizing everything via XML-RPC, started getting hairy, as this includes custom fields, taxonomies, hierarchies, etc.

    Today, WPML works identical to Drupal’s multilingual system. This architecture says that each element has its language and WPML connects between them.

    qTranslate combines all languages in the same entity.

    I can’t say that one is perfect and the other is bad. There are times when qTranslate’s method works better. However, for the majority of CMS WordPress installs, WPML’s solution is more adequate.

    And, you’re right. Once a site includes several languages, removing the multilingual plugin is going to cause all sorts of problems.

    We’re making a good living with WPML, so I don’t see us abandoning it. And, it’s open source, so anyone can continue even if some force majeure happens.

    BTW, we’re getting ready with WPML 2.0. This major version includes significant workflow changes and I’ll be happy to tell you about it when it’s ready.

  2. Thanks for commenting Amir, it’s nice to see you’re motivated to communicate with your users to this degree (I guess you have a Google alert or something for WPML :)

    You make good points about WPML and I’m glad that development is still active. It’s great to see the icanlocalize business model working out. It’s a classy upsell similar to how WordPress.com supports WordPress.org with their addons services.

    For anyone reading the post now I should also mention the Worldwide Lexicon project and their WWL translation plugin for WordPress. It has an intense approach that combines machine translation with human editing to make your site quickly translated and let you improve it incrementally as time goes on. I haven’t used their plugin myself because older dev versions I tried were very buggy and hard to understand. If you’re just starting now the new versions are worth a try and may be a good solution if the combination of machine and human translation is desirable to you.

  3. Hello!
    I would like to make a plea for the single-site approach, myself. The reason is that there are not only multilingual sites, but also multilingual readers. So suppose a site has some content in either English, French, or both; some posts are monolingual, some are translated. A monolingual reader should read all posts that are available in the appropriate language, a multilingual reader should see all posts, with a preference for the translation which shows up.
    Gengo affords this functionality (I actually prodded Jamie Talbot into it) and my blog still uses it; I have not looked in depth at qTranslate and WPML, but at first glance neither allows it. Certainly the two-site setup makes it more difficult to allow a multilingual reader to see all available content.
    Of course, it’s a matter of your usecase; if you do not have occasional monolingual content, this does not apply.
    Cheers,
    Marc-Antoine

  4. That’s a great point Marc-Antoine, and one that my proposal of multiple sites doesn’t solve well at all. In our case at Global Voices the solution would be to use the English version, which basically has all content on it, then use the translation links at the top of posts if there is a better version for you (i.e. if you speak better spanish and there is an ES translation then you go there and read it instead). Obviously this isn’t ideal in many cases, such as in Quebec where users are very likely to want the opposite language article if their preferred language is not available.

    It also depends on how professional you want to seem. IMHO having two languages mixed can seem amateur and sloppy and unilingual readers might feel annoyed that they don’t understand some content and worry that they are missing something important. If they instead only saw posts in the language they can read then they would have nothing to worry about, ignorance is bliss in this case.

    Also if you already have a policy of ‘Everything gets translated all the time’ then you don’t actually need to make the unilingual content available to visitors. What you need instead is a good reporting system that informs the site editors of content that is missing in one of the target languages.

    Ideally a bilingual site using the one-site approach (and which was open to the idea of having some content not translated) would have 4 language settings instead of 2: French only, English only, French preferred and English preferred. This could also be thought of as two settings: French/English and “[x] Only show posts in chosen langauge”.

    Either way the ideal is to let the user decide if they want to see unilingual content even if its in their non-prefered language. I’m not sure if WPML or qTranslate make this possible, but I do know that in playing with translation plugins I’ve often found this particular distinction to have been inadequately considered, resulting in confusing experiences for visitors.

  5. Yup, I do have a Google alert set up, so I see what’s being discussed.

    If you’re interested in plugins that allow machine translation and human polish, you can also look at:
    http://transposh.org/

    Marc-Antoine,

    WPML has an option to show all posts in the ‘best’ language. If translation exists, it will show it. Otherwise, it shows the original language post.

    I think that qTranslate does this too, as it’s more natural given its architecture (all languages mixed in the same post in the DB). It was more of a hack for WPML.

    In WPML, this feature is available for posts only and not for pages.

    When you mix languages on the same page (like the blog index), you also need to be careful about search engines. Google likes to understand in which language each page is written. Several languages on the same page cause a problem for that.

  6. Hi, nice post. There is a new plugin for management of multilingual blog content in WordPress: the GTS Translation plugin provides automatic translation of your blog into several languages and allows post editing of the translated content by your translation community.

    Your blog content is initially translated by our translation server. The content is then post-edited by human translators through our online editing system. You can use the GTS community of translators, or you can assign the post-editing to your own community of translators to maintain complete control of the process.

    For more information, see http://wordpress.org/extend/plugins/gts-translation and http://bit.ly/93av5T.

  7. Hello Jeremy and everyone,

    Very interesting article. I agree with you and did two separate installs myself in order to translate content.

    I’m really interested in the plugin you developed, even if it’s not “end-user friendly”. Do you think you can send it to me ? I’d really like to give it a try after some modifications of my own,

    Best Regards,
    Maxime

  8. Max unfortunately it is not only unfriendly but almost unworkable. I don’t have time to write up the kind of documentation you would need to create the database etc, as that stuff is not programmatic (i just created the db’s seperately).

    A really nice plugin dev from montreal actually put together a little plugin that does 90% of the work though, Bilingual Linker. You should check that out and see if it helps, it seems to me like the kind of lightweight solution that is ideal for augmenting the two-site approach without committing you too much to someone else’s model.

  9. Hi Jeremy, I’m about to jump in with WPML for my personal portfolio site. My goal is to have complete identical twins in English and Spanish. Unfortunately, there’s an innate incompatibility between Multisites and shared hosting on GoDaddy, so that’s out of the question: http://community.godaddy.com/help/article/6143

    My main doubt right now is, will I be able to have two parallel homepages like the one I have right now? Or do I need to install a 2nd WP site and replicate everything there in the 2nd language?

    Hope you can answer this. Thanks for the great post.

  10. Actually I also just realized the “identical twins” metaphor is incorrect, since I will have unique pages on both languages that will not be translated, in addition to many that will be available on both.

  11. Hey Daily DG,

    Your question is a bit unclear so I’ll just make some statements that I think will help clarify your situation.

    You don’t need a multi-site installation to use WPML, it works within a single site by letting you translate individual pieces of content.

    WPML works pretty well if you want all the content to be translated. As long as you translate everything then it will let your users switch back and forth and everything should show in the desired language.

    If your homepages are a ‘page’ in WordPress then that should work okay because the page can be translated in WPML. If they are not pages but rather blog listings then they will be translated as long as you have an internationalized theme and an appropriate translation (gettext/i18n, the system WP uses for translating themes, plugins and core).

    Hope that helps.

  12. Jason I think if the sites are similar in other ways Google will treat both the same, especially because you took the subdirectory rather than the subdomain route. If you had en.site.com instead I’m not sure if it would have a bad effect or not.

    I don’t know about plugins for a sitemap that spans two sites. I’ve never researched it but it seems unlikely as well as being kind of undesirable. Wouldn’t you rather have two separate sitemaps? I can see the logic of having one with the main pages listed in both english and Finnish, but it would be tricky to get it to work across two installs. If you’re using Multisite to host both sites on one install it would at least be a practical possibility.

Leave a Reply