I see a few Google searches for “code for language switch in gengo” and, since I’m actually using it in my theme, it’s a shame that people land here without finding what they’re looking for.
So here’s the code you should add to your WordPress theme to show the language switch.
I’m currently using this code:
<div class="post_translations" style="float:right">
<?php if (function_exists('the_translations')) the_translations('pre= &post= &title_exists=Read this in ') ?>
First of all, the “if function_exists” part gives you the ability to switch off the Gengo Plugin avoiding any error. It says, if PHP finds a function named “the_translations” is declared and available, it is safe to proceed using it otherwise the following code is ignored.
The function “the_translations” returns a string representing the HTML code to display a list of translations for the current post. It must be used in “The Loop”.
I use a single string as parameter, providing more parameters in one “querystring” (param1=value1¶m2=value2 …).
Providing values for “pre”, “post” and “inner” you could specify which HTML tags should respectively be opened, closed and be in between of the resulting list of links to other language versions of the article.
Well, since this blog is bilingual (English/Italian) I’m only using two languages, this means I don’t need a “list” of translation but just a link to the “other” language. This is why I provide a space (or blank) value for pre and post. So a single link to the opposite language will appear in my theme, no need of useless tags.
The “title_exists” parameter specifies the text or label to show before the link/s, only if other languages are found for this post. If no other parameters are provided (as in this case) if a post is written in a single language, no other versions, nothing appears and this is what I wanted.
Otherwise you should add the “title_none” parameter telling what to write in case no other language is available.
For both parameters, you could write your own string -in a specific language, as I did in English- otherwise you could use for both, as value, the keyword “GENGO_DEFAULT”: this will result respectively in strings like “Other languages” or “No translations”.
In my case the result is wrapped in a DIV, which is right floated as directly specified by the inline style and the rest of its appearance is decided in my style sheet .css file under a class named “post_translations” but this is another story.
The results of my code of course is visible simply browsing my posts, reading a single article (click on its title) since in a list of posts the switch is not visible in my theme.