summaryrefslogtreecommitdiff
path: root/doc/plugins/contrib/linguas.mdwn
blob: 3c194d59b2e0f722316d2f6076ff9a5527b25116 (plain)

Linguas

Linguas is a plugin for ikiwiki that allows translations of wiki pages.

Download: linguas.pm (2006-08-21).

Usage

Translatable pages and translations must have the following format: pagename.$LANG, where $LANG is a ISO639-1 (two-letter) language code. To enable linguas, add the following line in the source code of the page:

\[[linguas ]]

Note that linguas is only required in one of the pages (the original, for instance); the rest of translations will be automatically updated. Additionally, it is also possible to specify the title of the translation:

\[[linguas title="Translated title"]]

Template

This is the template code that should be added to templates/page.tmpl:

<TMPL_IF NAME="LINGUAS">
<div id="linguas">
<p class="otherlinguas"><TMPL_VAR NAME="OTHERLINGUAS"></p>
<ul>
<TMPL_LOOP NAME="LINGUAS">
<li><TMPL_VAR NAME=LINK></li>
</TMPL_LOOP>
</ul>
</div>
</TMPL_IF>

TODO/Known Problems

  • The current language list only contains 4 languages (ca, de, en, es), and is "hardcoded" in linguas.pm. Would be interesting to define it in ikiwiki.setup, though some problems were found while trying to do so. (Actually, defining hash-like arguments from the command like works fine, but it fails from ikiwiki.setup.)

    My guess about this is that it's because of the way Setup/Standard.pm untaints the config items from the file. It has code to handle arrays, but not hashes or more complex data structures. --[[Joey]]

  • Wiki links to other translated pages require the full page name including the .$LANG. It should be possible to link automatically to pages with the same .$LANG, but that would probably require some changes in IkiWiki. (I'm not sure though, I still haven't looked at it... any hints?)

    Have you considered using the form ll/page? This would let more usual linking rules apply amoung pages without needing to specify the language. I'm not sure if you're supporting browser content negotiation, or whether that other layout would be harder to support it though. --[[Joey]]

Examples