Recently we set up a complete bilingual content management system (CMS) using WordPress with the Gengo plugin. We didn’t need it but even more languages could be added in order to get a full multilingual system. Or, a blog for that matter. Let me describe the procedure and the end result with the benefits.
The website is for the Hungarian School (Magyar Iskola) in Winnipeg. It is a basic WP install with custom theme. The custom theme is not a novelty, it just has a customized Loop on the frontpage. The rest is pretty much standard. What is not standard: we installed the Gengo plugin and the Hungarian localization file for WordPress - hu_HU.mo.
The site is using “nice permalinks”, and in the Gengo’s settings we defined Magyar (that’s how the Hungarians call themselves) as the blog’s default language - that’s why a …/hu is added at the end of the URL, to display the Hungarian version of the website. However, if you switch to the English version, by clicking on the Canadian flag, your browser will remember it (due to the cookies), and next time it will open for you the English (…/en) version.
There are more than one authors (and now I am not talking about the WP Roles here) to the blog/site - each of them is able to set the language as they wish for the backend, the admin panel.
Just to clarify it: Gengo does not translate the posts or Pages or any other content. What it does: based on the language defined for each post or Page it will display them only for the selected language. E.g. if while writing the post First Lesson for Beginners we select Hungarian as the language of the article, it would have been shown on the Hungarian page. Obviously, we selected the English for this post, since it was written in English.
We can write articles (post or Pages) only for one language simply by selecting its language. It will appear only for surfers who want to see their own language version. Or, and this is where it gets more interesting, we can start a new article and “match it” with an existing post in the other language - and saving it as its translation. If you make a post a translation, it will even display the text of the original below the text input area, so you are able to really compare the two texts. Also, the plugin will display a small not at the end of the article: “other languages: Magyar”, which means this English article has a Hungarian translation and clicking on the link (Magyar) you can switch the language.
I think there is a long way to go until machine translations will be of an acceptable quality and fidelity, so we didn’t even think about any kind of “automated” translation. The different versions of the posts are made by manual human translation.
What about the comments? - you may ask. Are they translated? No, they are not. Honestly, I don’t see a need for it. Practically, the two posts (i.e. the same content published in English and Hungarian) are two separate entries in the database with their own ID# and, as WP works, the comments are always associated with one post ID. So, the comments of the Hungarian commenters will appear under the Hungarian version, and so on…
The blocks for navigation in the sidebar (and at the bottom) can be all translated by using the tools offered in Gengo’s own admin pages. It is possible to translate navigational elements (categories and everything else) even for themes that are not prepared for localization. (There are some small issues with plugins, like the Event Calendar displaying both versions of the same event; we’ll look into it later.) We just simply created “category synonyms” and so-called synonym blocks for other texts and they work perfectly. You can observe it by watching the bottom (dark red) portion while switching languages.