diff options
Diffstat (limited to 'doc/plugins/contrib/linguas.mdwn')
-rw-r--r-- | doc/plugins/contrib/linguas.mdwn | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/doc/plugins/contrib/linguas.mdwn b/doc/plugins/contrib/linguas.mdwn new file mode 100644 index 000000000..84ece042e --- /dev/null +++ b/doc/plugins/contrib/linguas.mdwn @@ -0,0 +1,107 @@ +[[!template id=plugin name=linguas author="Jordà Polo"]] + +Linguas +======= + +Linguas is a plugin for [ikiwiki](http://ikiwiki.info/) that +allows translations of wiki pages. + +Download: [linguas.pm](http://ettin.org/pub/ikiwiki/linguas.pm) (2006-08-21). + +Note that even though it is still available for download, this plugin is no +longer actively maintained. If you are interested in multilingual wiki pages, you +can also take a look at other approaches such as [[todo/l10n]], [[plugins/po]], +or Lars Wirzenius's +[Static website, with translations, using IkiWiki](http://liw.iki.fi/liw/log/2007-05.html#20070528b). + +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]] + + > > Right. With this simple + > > [patch](http://ettin.org/pub/ikiwiki/hash_setup.patch) it seems to + > > work. However, note that 1) it only allows simple hashes, hashes of + > > hashes will not work (I don't think getops can handle complex hashes + > > anyway); 2) I don't really know when/why you call + > > `possibly_foolish_untaint()`; and 3) I'm no perl guru ;). --Jordà + + > > > It's good. Applied.. + +* 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]] + + > > Actually, I'm happy with the way it works now (and yeah, it is very + > > easy to take advantage of content negotiation). I just wanted + > > something simple to translatte a single page (or a few pages), not + > > the entire wiki. I'm not even sure it is a good idea to have fully + > > multilingual wikis, in most cases I would go for a different wiki + > > for each language. That said, I think it is an interesting idea, so + > > I'll take a look when I have the time. Thanks for your comments. + > > --Jordà + +* The changes to htmllink in ikiwiki 1.44 broke this plugin. +The following fixes it: + + --- linguas.pm.orig 2006-08-23 19:07:04.000000000 +0200 + +++ linguas.pm 2007-03-24 01:53:18.000000000 +0100 + @@ -100,7 +100,7 @@ + if (exists $linguas{$2} && defined $linguas{$2}) { + $link = $linguas{$2}{'name'}; + } + - push @links, IkiWiki::htmllink($page, $destpage, $trans, 0, 0, $link); + + push @links, IkiWiki::htmllink($page, $destpage, $trans, noimageinline => 0, forcesubpage => 0, linktext => $link); + } + + my $otherlinguas = 'Translations:'; |