X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/abae4a80584a06bf11d2c31728d75fc07032d107..bb93fccf0690344aa77f9538a508959a6de09847:/doc/plugins/contrib/linguas.mdwn diff --git a/doc/plugins/contrib/linguas.mdwn b/doc/plugins/contrib/linguas.mdwn index 0ddf59e22..bf502606e 100644 --- a/doc/plugins/contrib/linguas.mdwn +++ b/doc/plugins/contrib/linguas.mdwn @@ -1,10 +1,18 @@ +[[!template id=plugin name=linguas author="Jordà Polo"]] + Linguas ======= -Linguas is a plugin for [ikiwiki](http://ikiwiki.kitenet.net/) that +Linguas is a plugin for [ikiwiki](http://ikiwiki.info/) that allows translations of wiki pages. -Download: [linguas.pm](http://wiki.ettin.org/files/linguas.pm) (2006-08-21). +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/contrib/po]], +or Lars Wirzenius's +[Static website, with translations, using IkiWiki](http://liw.iki.fi/liw/log/2007-05.html#20070528b). Usage ----- @@ -13,14 +21,14 @@ 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 ]] + \[[!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"]] + \[[!linguas title="Translated title"]] Template @@ -49,20 +57,51 @@ 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?) - -Examples --------- - -* [Linguas](http://wiki.ettin.org/linguas.en.html). A page with the same -content than this one. - -* [Hello in some languages](http://wiki.ettin.org/hello/hello.en.html). The -translations were taken from [Hello in many -languages](http://www.omniglot.com/language/phrases/hello.htm) and from -the [Debian](http://www.debian.org/) website. + > 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:';