I’ve tried different approach to handling multilingual websites. I’ve figured out there are two way to handle the problem:
- writing posts in a single language and have the Global Translator Plugin to handle it
- write and translate every post in every language and use the qTranslate or the WPML Plugin
The first method is good for low budget website where customer does not care about quality of his translated content or they just don’t have budget for it. This method is also limited by the number of pages, that takes up API resources and can results in the banning of your IP by the translator API.
The second approach requires you to translate all your content and it has always a pain because of the limitation of qTranslate and WPML. Luckly in 2014 Polylang is good enough to beat them all and transform WordPress in a decent multilingual CMS.
WordPress Global Translator Plugin
This plugin allow you to write posts in a single language.
Once installed go to “Settings > Global translator” and activate the flags of the language you’re interest into.
Then in “Appearance > Widgets” add the “Global Translator” Widget to your sidebars.
The users will be able now to click on their favourite language icon flag and to see you content translated via the choosed service.
The qTranslate plugin is a very interesting one. It allows to create a post in multiple languages. When the content of a page is missing in one or more language it will show all the available alternatives.
The drawback is that it uses special HTML comments to separate the translated text within the same posts so, when you have many languages, editing could become a mess.
Its not the kind of editor that you can gave to a customer, so it remains a solution for lonely bloggers.
Differently from the others the Polylang plugin allow translation of almost everything, including categories, tags and media. Its interface is very nice and simple. Each post or page has its own translation as separated content and you can choose wich information to keep synced between all the nodes. It worked perfectly with some custom plugin of mine that use hundres of custom fields.