De Culturis

:: Home :: About :: Services :: Contact :: Blog ::

Cross-Cultural Communication skills is a relatively new term, referring to the ability to recognize cultural differences and similarities when dealing with someone from another culture and ability to recognize features of own behavior which are affected by culture.



WordPress as a real multilingual CMS with Gengo

Filed under: Lingua,Vita — Moshu @ 22:58 (UTC)

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 –

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.

Spread the word and bookmark this post:
  • BlinkList
  • blogmarks
  • digg
  • Furl
  • Ma.gnolia
  • NewsVine
  • TailRank

26 Responses to “WordPress as a real multilingual CMS with Gengo”

  1. Michel says:

    Very interesting! :-)

    I’m looking for this sort of functionality using WP… Let’s see this Gengo closer ;-)

  2. Andrius says:


    maybe you can share info on Gengo and Event Calendar? This would be very usefull…

    Thanks in advance!

  3. Moshu says:

    Andrius, are asking me or Michel?

    If it is for me, unfortunately, I didn’t make any progress with the EventCalendar. I mean, it works (kinda) correctly even with the Gengo plugin but doesn’t recognizes the difference between the languages.
    If I write a post in the Events category in one language AND create its translation with Gengo… the calendar will list BOTH posts. Maybe I should ask the plugin authors, maybe they can help.

  4. Andrius says:

    Hi, Moshu,

    i am asking you :) i thought you got EC working :) because i was playing with it yesterday and got no results…

    Well i found another problem – if you make event in one lang, and switch to another, link in the event calendar stays, but if you click on it you get 404 page…

    Well, of course there are always solution, to make 2-3 different installs of WP and forget about all Gengo’s :D

  5. instantsalesletters says:

    Great resource. I would be interested in links to similar sites. Do you know any you’d trust?

  6. Moshu says:

    No, I am the best resource — for you :)
    And your next post will be deleted: I left this one up for fun… removed the link to the spam BS site you have, so nobody will click on it even by accident. As for SE juice – all the comment links have nofollow.

  7. [...] WordPress as a real multilingual CMS with Gengo (tags: wordpress plugin cms sprache) [...]

  8. Yaakov says:

    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.

    How did you do that? All I can find is the codex is information on uploading a new .mo file and changing the language for everyone. I could not find out how to give each admin the ability to choose a language for the backend.

  9. Moshu says:

    Don’t forget: I am talking about the language options provided by the Gengo plugin. If you have the plugin installed AND have at least one .mo file installed, then you can switch between the default English and the other langauge. Go admin > Users > Your profile: left bottom corner, where you disable the wysiwyg monster ;)

  10. RG says:

    Hey Moshu, I don’t think it works yet with WP 2.1 am I correct? I registered for thier forums but have not received admin ok yet :|

  11. Moshu says:

    Well, I don’t know. I am not rushing to upgrade to 2.1 See my other post in my other blog.

  12. RG says:

    So you don’t eve recommend WP 2.0.8, which is also available in their archives? I am not sure what the differences are in those two releases. I have setup a new blog using 2.0.7 and I will try implementing Gengo on that one and see how that goes.

  13. Moshu says:

    You misread my post. There are two branches being developed and supported in parallel:

    The 2.0.8 is part of the older version line – if you wish, the successor/update of (2.0.1, 2.0.2 … 2.0.7).

    It is the new 2.1 (and whatever will come as a fix, e.g. 2.1.1) that breaks everything.

    2.0.8 is absolutely OK, it is the same code base as 2.0.7 – just having some security fixes.

  14. aaron says:

    just a quick question…where do you place the “gengo_home_url()” in order to append the url to include various languages?

  15. Moshu says:

    I don’t really use it. I think it should replace the normal bloginfo(home) function…
    As I said I didn’t feel I needed to mess around with it since with Gengo activated and set up properly, it would append the url. Check out on the example site I gave in the post.

  16. aaron says:

    Ummm…thanks for the info. I’m setting up a site that I want to be almost exactly like the one you referenced. BUT…I’m still not sure that my urls are appending the way yours did. I have flags (like yours) and I want them to point to “…/en/” and “…/de/” but this folders aren’t created on my site. How do I go about making sure this all happens?

  17. aaron says:

    oh…i figured out why gengo wasn’t actually doing the permalinks for me. according to wordpresses website (and my research) my server doesn’t support “pretty permalinks.” i’m not sure, but i think this translates into gengo not automatically appending my permalinks with “../lang/” could this be right?

  18. Moshu says:

    1. In the sidebar the flags have hardcoded links.
    2. If no nice permalinks – Gengo still appens URLs only in a different way: (for posts and categories, Pages etc.)
    3. Don’t forget, for the posts you always (!) have to specify the language of a post and/or its tranlation. That’s how the plugin “knows” what to add to the URL.

  19. tim says:

    So how about another gengo (=language, in Japanese) for this article? Is there one. I see it not.

    And how come even though “Gengo” means “language” in Japanese there is no Japanese “po” or “m”o or “pot” whatever they are? Eh?

    I am working on it but in the meantime Gengo crashes my Japanese language wordpress. I.e. that downloaded from
    with a wierd error message saying something like ‘can’t find user details’


  20. Moshu says:

    Sorry, Tim, I don’t speak Japanese, so I cannot provide the translation for the article. And be aware: Gengo will not translate your articles either. You have to make your own manual translation for every language.

    Gengo doesn’t have Japanese localization (po or mo files) because nobody translated the plugin. Only you, the Japanese speakers can do it, nobody else will do it for you, sorry.

  21. [...] WordPress as a real multilingual CMS with Gengo [...]

  22. You don not seem to talk about multilinguage RSS.
    Is there a clean and nice way to have this work ? I.E. One feed per language, which can be useful for readers and very useful for SEO ?
    I seem to have just one feed working (the gengo default language).

  23. Moshu says:

    Fisrt of all, there is something wrong with your permalinks: whatever I try, e.g.
    it always redirects me to

    If you cannot get the separate feeds – it might be related to this. ON the example site I mentioned in my post above – I can have two distinct feeds:

  24. Really interesting post!

    Never stop iterating and don’t fear failure. Choose well-understood conventions where they will do to the most good , shortcuts you might take will cost you more to fix later than to try to get right up-front today.

    Thanks , Zoli Juhasz

  25. Poker tournois says:

    Now released development virsion compatible with WP 2.5 and beta version . Check out Gengo blog.

  26. Pablo says:

    I use a different plugin: Language Switcher (
    It works flawless. However it requires writing posts with special tags to include the translations. For example, if I wanted to have a text that says “Hello World” and then translated to Spanish “Hola Mundo”, I would write [lang_EN]Hello World[/lang_EN] and [lang_ES]Hola Mundo[/lang_ES].

    The plugin that you mention in your article sounds better. It is easier for the translator, as he/she doesn’t need to worry about tags and so on.

    The positive side of Language Switcher is that is very flexible from the programming point of view.

    Anyway, I wonder if there is a need for a truly multilingual Open Source platform. So far, all the applications that I know need “artificial layers” to be added. There are many issues with these “foreign” pieces of code: compatibility, design complexity, lack of usability from the point of view of the translator, SEO, speed, database usage, support, etc.

    If anybody knows a truly multilingual Open Source CMS, feel free to contact me. I would like to give it a go.

Leave a Reply