aboutsummaryrefslogtreecommitdiff
path: root/doc/plugins/contrib/linguas.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'doc/plugins/contrib/linguas.mdwn')
-rw-r--r--doc/plugins/contrib/linguas.mdwn107
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:';