Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

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

ICanLocalize http://wordpress.org/extend/plugins/icanlocalize-translator/

GTS Translation http://wordpress.org/extend/plugins/gts-translation/

Straker http://www.strakersoftware.com/straker/index.cfm?3B36AF5E-65E2-4D8F-8F16-B5B863523FF2

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.

share|improve this question
    
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... –  goldenapples Jan 19 '11 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 Jan 20 '11 at 8:21
    
Just found another nice post: premium.wpmudev.org/blog/… –  Remy Dec 13 '13 at 18:56
    
And Polylang sounds like a good alternative too: polylang.wordpress.com –  Remy Dec 13 '13 at 18:56
add comment

5 Answers

have a look at WPML wpml.org

Read this it will clarify the differences with the various plugins out there http://codex.wordpress.org/Translating_WordPress

share|improve this answer
    
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. –  onetrickpony Jan 19 '11 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 Jan 19 '11 at 22:43
    
Great metrics, thanks Amoeba –  editor Jan 20 '11 at 16:16
    
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.. –  onetrickpony Jan 20 '11 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. –  The WebMacheter May 23 '11 at 21:50
add comment

you can look at transposh http://transposh.org supports link translation and language in url part, as well as manual editing and approval of translation

note - I am biased ;)

share|improve this answer
add comment

how about qtranslate ? http://www.qianqin.de/qtranslate/

share|improve this answer
add comment

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'));

share|improve this answer
    
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 Jan 20 '11 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 Jan 22 '11 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 Jan 22 '11 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. –  marvinhagemeister Mar 10 '11 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? –  marvinhagemeister Mar 10 '11 at 15:10
show 2 more comments

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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