Gengo is a full featured plugin that provides multi-language blogging for WordPress 2.5+. It allows for an unlimited number of translations and summaries for any post and provides template tags to display language information. It allows you to edit translations side by side, detects and filters by language automatically when a visitor comes to your site and automatically generates semantic information for links and content blocks. It is configurable via an options page.
Gengo is mainly written by Jamie Talbot, with some help from Paolo Tresso (aka Pixline) and the community.
More info & Support
It won’t work, sorry. A large portion of the admin code relies on these technologies to update information in the background. There’s no way around this.
It doesn’t change the page items like “Categories”, “Links” etc
You need a specially internationalised theme for this to work. In essence, the theme has to use _e() and __() functions around its text and provide a localisation .mo file. Contact your theme vendor 😀
Previous and next links go to posts in other languages!
I know. WordPress won’t let me get at those just yet. It’s too much of a hassle to rewrite all that code, so you’ll just have to live with it for the time being, I’m afraid. I’ve submitted a patch to the core which would allow this to happen, so hopefully it will make it into WordPress 2.1… It’s at https://trac.wordpress.org/ticket/2415/ , where you can find out the status of the ticket and leave a comment to support its integration if you think it will be useful. You can also apply the patch yourself if you know what you’re doing. As soon as it is patched, Gengo will take advantage, with no further modifications.
I entered synonyms for my categories but they only show up in certain places. In others, the default is always displayed.
This is because WordPress applies the filter that Gengo uses inconsistently. I’ve added a ticket and patch to the core which hopefully will make it into WordPess 2.1. You can check the status of this ticket and leave a comment to add your support if you think it’s important at https://trac.wordpress.org/ticket/2466/ In the meantime, if you know what you’re doing, you can patch your files yourself using the patch there. In 2.0.4 this should be a little better than before.
The translation page doesn’t do anything
0.5 onwards provides some translation group management away from the write post screen. If you need more, let me know.
I get insert errors with MySQL 5.x
This happened in strict mode, and should be fixed in 0.8
The language tag is set incorrectly for feeds.
This should have been fixed from 0.81 onwards. However, for feeds for two or more languages, only the reader’s first specified language is used, as there is no facility for specifying multiple languages for RSS. This will be updated if and when WordPress supports a feed that understands multiple languages.
My Save buttons disappear forever when changing the language of a post.
This seems to be a browser related problem, especially some versions of Firefox. Make sure the Firebug extension is not snooping XMLHTTP requests as this is known to cause problems. Upgrading to the latest version of your browser should fix the problem. Gengo is known to have problems on some installations of Firefox 1.5 but works seems to work successfully with Firefox 22.214.171.124.
There are multiple UNIQUE indices on the wp_languages table.
This seems to be because of a bug in WordPress’ supplied upgrade function dbdelta(). This should be fixed now.
I have another request / bug / optimisation
Please let me know in the forums at http://jamietalbot.com/wp-hacks/forum/ . I’ll see what I can do to fix it.
Does Gengo work with WordPress x.x.x?
Gengo 2.5 only works with WordPress 2.5+. Version 0.9 works with WordPress 2.1/2.2, and 0.81 works with 2.0.1, but not 2.1.
I don’t have an option to view in multiple languages
Reading in multiple languages is only supported for MySQL versions 4.1 and above. If your MySQL is lower than that, the option won’t appear. You really should start bugging your host for a better MySQL version – WordPress 2.2 is only going to support MySQL 4.1+.
Gengo provides a number of template functions which are very similar to those in WordPress:
gengo_list_languages() – outputs a formatted lists of languages defined for this blog. Surround the call to this function with <ul> tags.
gengo_link_pages() – replacement for
gengo_next_posts_link() – replacement for
gengo_previous_posts_link() – replacement for
gengo_snippet() – allows you to insert small, translated blocks of text.
gengo_trackback_url() – replaces
gengo_viewing_languages() – outputs a list of languages that the user is currently viewing, with js links to change priority.
gengo_available_languages() – outputs a list of languages that the user isn’t reading in, but are also available.
gengo_language_set() – outputs save and reset to store reading options.
gengo_language_control() – combines the previous 3 functions.
gengo_home_url() – the home url appended with the current viewing language.
is_language() – tests we are currently viewing a language.
the_language() – outputs or returns the language for a page where only one language is being used. Outputs by default. To return the language as a string, call
the_language_code() – outputs or returns the current language code. Outputs by default. To return the code as a string, call
the_language_locale() – outputs or returns the locale for a post.
the_language_direction() – outputs rtl or ltr.
the_viewable_languages() – outputs or returns the languages the user is reading in.
the_viewable_codes() – outputs or returns the languages the user is reading in.
the_translations() – outputs a list of translations for this post, or “No Translations”.
the_translations_comments() – outputs a list of links to the comments sections of translations for this post. Use in comments.php.