We would like to translate our Wordpress installation into multiple languages. I found the following three plugins:

I heard the ICanLocalize is a bit of a mess. Don't know the others. It's not sooo important to have an integration with a translation agency, but really just to have the website up in multiple languages with a reasonable link structure.

  • Are you looking for a human translation service, or just a way to store your content in multiple languages? Looks like all the plugins you list are more like the former, which could be outside the realm of this site... Commented Jan 19, 2011 at 17:44
  • No, I'm looking for a plugin that allows me to display a blog in multiple languages. All the above do this as far as I understood, but they have a built in connector to a translation agency.
    – Remy
    Commented Jan 20, 2011 at 8:21
  • Just found another nice post: premium.wpmudev.org/blog/…
    – Remy
    Commented Dec 13, 2013 at 18:56
  • And Polylang sounds like a good alternative too: polylang.wordpress.com
    – Remy
    Commented Dec 13, 2013 at 18:56

6 Answers 6


How about using the qtranslate plugin?


You can look at transposh. It supports link translation and language in url part, as well as manual editing and approval of translation


The best WordPress localization plugin is to use the default WordPress functions.

It's actually pretty straightfoward. Any text you want localized you put into one of two functions. The first one below echos out the text directly and the second one returns the text into an object. I always prefer the latter as you can always stick an 'echo' in front of the function if you want to echo it out.

_e($message, 'your_namespace')

__($message, 'your_namespace')

What happens is that if the $message has a traslation, that translation is returned. If not, then it's echoed out as is. This is nice because it allows you to put in all your localization placeholders before you get your translations together.

Next up, you create the translation files. You can create your own namespace by using one of many free tools to create a "portable object" (.po) file that you turn into a "machine object" (.mo) that is optimized for looking these things up. I use a free tool called Poedit to edit these files. The software is cross platform.

One you've got the placeholders in place and have uploaded your translation file (.mo) you simply drop a single line of code into your template's functions.php, or your plugin file. What you're saying here is "use these translations when you try to localize something in the 'your_namespace' namespace."

load_textdomain('your_namespace', (WP_CONTENT_DIR . '/path/to/file.mo'));

  • Thanks for the input, this can eventually help. But I would still need a structure to have a post in multiple languages, no? This solves it only for the framework.
    – Remy
    Commented Jan 20, 2011 at 17:05
  • I agree with Remy here, this is for single use framework translations, what if you have multiple languages, multiple url values ( dir or sub-domain), what about organizing content or using plugins or themes? Once you dive into multi languages it can get complex very fast, there really is no simple way to do it.
    – Wyck
    Commented Jan 22, 2011 at 1:53
  • Actually, the benefits of localization increase as you add on more languages. That last step -- load_textdomain -- is really flexible. You're tying whatever.mo to your namspace, but that could be whatever_English.mo, whatever_French.mo, or whatever_Klingon. Since the field and namespace is the constant -- not the .mo file -- you can swap out languages dynamically.
    – editor
    Commented Jan 22, 2011 at 2:18
  • After thinking a while about "editor's" answer I think his solutions is - technically speaking - quite neat. The only drawback is that you would have to translate the posts (or other content) with Poedit. You would not be able to translate them directly in WordPress. Commented Mar 10, 2011 at 14:54
  • I just gave it a go, but I couldn't find a way to pass the content to Poedit. @editor: How would you do that? Commented Mar 10, 2011 at 15:10

It's either qTranslate or WPML. See the reviews


Have a look at WPML

Read this, it will clarify the differences with the various plugins out there

  • I wouldn't recommended it, WPML is incredibly bad when comes to speed. I tested it on a site with around ~2000 tags, and when you would have a widget or something that lists tags+post count for each tag, it would fire as many database queries as there were tags. From 80-90 queries per page the site went to 4-6000, after wpml attepted to translate the string that displayed the post count. Commented Jan 19, 2011 at 21:16
  • @Amoeba was this using it's 'just works' settings, or did you use icl_object_id & related functions? asking out of curiosity & for future reference.
    – Cronco
    Commented Jan 19, 2011 at 22:43
  • I didn't use any of its functions, just installed it and activated it. Don't remember any setting changes I made though. You could test it yourself with a custom themes and a few plugins active, add a get_num_queries() in the footer and you'll see what I mean.. Commented Jan 20, 2011 at 19:48
  • looks like @Amoeba changed his/her username to @One Trick Pony. Anyways, @One Trick Pony: did you test it with the free version? or the commercial version? cause in their website they claim the commercial version is way better in performance. Commented May 23, 2011 at 21:50

The two main contenders as best multilanguage plugins for WordPress are WPML and QTranslate. If you want a quick answer to which one comes out on top, I would say go for WPML. If you have enough time to give them a test drive, sdbloggers by all means do so and judge for yourself which one works best for your needs.

Not the answer you're looking for? Browse other questions tagged or ask your own question.