diff options
author | intrigeri <intrigeri@boum.org> | 2008-11-12 01:08:57 +0100 |
---|---|---|
committer | intrigeri <intrigeri@boum.org> | 2008-11-12 01:08:57 +0100 |
commit | b19d0d3d245c7c2b605ac6c972c73c909a941db4 (patch) | |
tree | 4e8b120402eae5ebd2387f3c4439da77df8c8b99 /doc/plugins | |
parent | ef536f46bdeee120c7a805d92490db5769ed372f (diff) | |
parent | 3937e1fb1679ab6ebdf3a00f52187e3581691f3f (diff) |
Merge commit 'upstream/po' into prv/po
Diffstat (limited to 'doc/plugins')
-rw-r--r-- | doc/plugins/contrib/po.mdwn | 35 | ||||
-rw-r--r-- | doc/plugins/po.mdwn | 33 |
2 files changed, 67 insertions, 1 deletions
diff --git a/doc/plugins/contrib/po.mdwn b/doc/plugins/contrib/po.mdwn index 4ad0fa063..3077b4858 100644 --- a/doc/plugins/contrib/po.mdwn +++ b/doc/plugins/contrib/po.mdwn @@ -93,7 +93,7 @@ Any thoughts on this? >>> When a new language is added to `po_slave_languages`, a rebuild is >>> triggered, and all missing PO files are created and checked into >>> VCS. An unpriviledged wiki user can not add a new language to ->>> `po_slave_languages`, though. One could thing of adding the needed +>>> `po_slave_languages`, though. One could think of adding the needed >>> interface to translate a page into a yet-unsupported slave >>> language, and this would automagically add this new language to >>> `po_slave_languages`. It would probably be useful in some @@ -106,6 +106,39 @@ Any thoughts on this? >>>> I guess that if the template modification is made, it will list those >>>> languages on the page, and if a translation to a language is missing, >>>> the link will allow creating it? +>>>> +>>>>> Any translation page always exist for every supported slave +>>>>> language, even if no string at all have been translated yet. +>>>>> This implies the po plugin is especially friendly to people who +>>>>> prefer reading in their native language if available, but don't +>>>>> mind reading in English else. +>>>>> +>>>>> While I'm at it, there is a remaining issue that needs to be +>>>>> sorted out: how painful it could be for non-English speakers +>>>>> (assuming the master language is English) to be perfectly able +>>>>> to navigate between translation pages supposed to be written in +>>>>> their own language, when their translation level is most +>>>>> often low. +>>>>> +>>>>> (It is currently easy to display this status on the translation +>>>>> page itself, but then it's too late, and how frustrating to load +>>>>> a page just to realize it's actually not translated enough for +>>>>> you. The "other languages" loop also allows displaying this +>>>>> information, but it is generally not the primary +>>>>> navigation tool.) +>>>>> +>>>>> IMHO, this is actually a social problem (i.e. it's no use adding +>>>>> a language to the supported slave ones if you don't have the +>>>>> manpower to actually do the translations), that can't be fully +>>>>> solved by technical solutions, but I can think of some hacks +>>>>> that would limit the negative impact: a given translation's +>>>>> status (currently = percent translated) could be displayed next +>>>>> to the link that leads to it; a color code could as well be used +>>>>> ("just" a matter of adding a CSS id or class to the links, +>>>>> depending on this variable). As there is already work to be done +>>>>> to have the links text generation more customizable through +>>>>> plugins, I could do both at the same time if we consider this +>>>>> matter to be important enough. --[[intrigeri]] >> FWIW, I'm tracking your po branch in ikiwiki master git in the po >> branch. One thing I'd like to try in there is setting up a translated diff --git a/doc/plugins/po.mdwn b/doc/plugins/po.mdwn index 125a9b016..eeeabe730 100644 --- a/doc/plugins/po.mdwn +++ b/doc/plugins/po.mdwn @@ -299,6 +299,8 @@ means the `Text` module only. variables; they seem safe to me, but someone more expert than me will need to check. Joey? + > Freaky code, but seems ok due to use of `quotementa`. + ##### Text::WrapI18N `Text::WrapI18N` can cause DoS (see the @@ -318,6 +320,34 @@ in this field. Joey? [[--intrigeri]] > familiar with. I can learn and do it, in case no Perl wizard > volunteers to provide the po4a patch. [[--intrigeri]] +>> That doesn't really need to be in a BEGIN. This patch moves it to +>> `import`, and makes this disable wrap18n: +>> `use Locale::Po4a::Common q{nowrapi18n}` --[[Joey]] + +<pre> +--- /usr/share/perl5/Locale/Po4a/Common.pm 2008-07-21 14:54:52.000000000 -0400 ++++ Common.pm 2008-11-11 18:27:34.000000000 -0500 +@@ -30,8 +30,16 @@ + use strict; + use warnings; + +-BEGIN { +- if (eval { require Text::WrapI18N }) { ++sub import { ++ my $class=shift; ++ my $wrapi18n=1; ++ if ($_[0] eq 'nowrapi18n') { ++ shift; ++ $wrapi18n=0; ++ } ++ $class->export_to_level(1, $class, @_); ++ ++ if ($wrapi18n && eval { require Text::WrapI18N }) { + + # Don't bother determining the wrap column if we cannot wrap. + my $col=$ENV{COLUMNS}; +</pre> + ##### Term::ReadKey `Term::ReadKey` is not a hard dependency in our case, *i.e.* po4a @@ -404,6 +434,9 @@ and Perl seems to exit cleanly, and an incomplete PO file is written on disk. I not sure whether if this is a bug in Perl or in `Po.pm`. +> It's fairly standard perl behavior when fed malformed utf-8. As long as it doesn't +> crash ikiwiki, it's probably acceptable. Ikiwiki can do some similar things itself when fed malformed utf-8 (doesn't crash tho) --[[Joey]] + #### po4a-translate `po4a-translate` uses more or less the same po4a features as our |