FickNPickLanguage plugin for Joomla
Plugin description
This plugin offers a language switcher and a language tag manager.

It is largely inspired by 2 plugins: the Joomla! Language Switching Plugin and easyLanguage.
easyLanguage for Joomla 1.7 has been modified for Joomla 1.5, and a language switch has been integrated into the same plugin.

The language switcher lets you change the language in a current user session, by calling the new language only once.
The language tag manager lets you define translations into any part of the site which is in the page output (module titles, module contents, articles, menu items...).
Therefore you can create translations without creating menu items or articles for each language.

In order to switch the website language, a page has to be called with a "language" parameter, which must be a language code known by the website (i.e. known in Joomla).
Example: http://www.mysite.com/joomla_1.5.25/index.php?option=com_content&view=category&layout=blog&id=53&Itemid=152&language=en-GB

Once this call has been made, any further page will be translated into the current session language, by i) using the language files and ii) using the {lang} tags found in the page output.
{lang} tags can be used anywhere in the Joomla articles or modules. A few examples:
i) in one single article, you can define the translation for each paragraph.
ii) in one single article, you can define the translations for the title.
iii) in a text module, you can define the translations for the text.
This plugin is distributed for free under GNU/GPL licence - http://www.gnu.org/licenses/gpl-2.0.html.
Author
Sylvain Lewandowski, sylvain.lewandowski@runbox.com
Download
v1.2 - 8th March 2013
Joomla 2.5

v1.2 - 1st March 2013
Joomla 1.7

v1.2 - 1st March 2013
Joomla 1.5
Added:
- language shortcuts:
You can define shortcuts for the languages of your frontend, in the plugin parameters.
Example:
You have 3 languages for your frontend site, en-GB, es-ES, fr-FR.
In the text of a menu item, instead of using {lg fr-FR}Nos voitures{/lg}{lg en-GB}Our cars{/lg}{lg es-ES}Nuestros coches{/lg}, you may want to use {lg fr}Nos voitures{/lg}{lg en}Our cars{/lg}{lg es}Nuestros coches{/lg}
Also, if you want to use a different variation of French, you could want to use {lang ca}Nos chars{/lang}
Several shortcuts can even exist for the same language, which is useful when you have different authors/translators who prefer different shortcuts.
- language tags: you can now use either {lang} or {lg} (resp. {/lang} or {/lg})
Please note there is no restriction on tag combination, i.e. {lang ca}Nos chars{/lg} and {lg ca}Nos chars{/lang} are equivalent.

v1.1 - 08th January 2013
Joomla 2.5

v1.1 - 08th December 2012
Joomla 1.7

v1.1 - 08th September 2012
Joomla 1.5
Added: Italian translation from Blerina Osmanaj. New static function for pre-rendering translation.

v1.0 - 06th August 2012
Joomla 1.5
Joomla administration screenshots
HTML module:
Menu item:
Article:
Demo
I developped this plugin for an online magazine running on Joomla 1.5.25, because there was no existing plugin able to provide a complete functionality covering:
- native translation; there are now quite a number of plugins relying on third party translators, however this doesn't bring any quality to content;
- 1:n relationship between content and translations; most extensions would oblige to create one article or module for each translation;
- language switching and tag translations in one plugin;
- multi point translation: in some cases, it's not possible to wait that the whole page code is generated before operating a content filtering to select one language (imagine for example that a module needs to know the actual text printed on screen to do a formatting).

On the top you can notice 3 links to switch the magazine language. These are the only links on the site where the language codes need to be specified.