summaryrefslogtreecommitdiff
path: root/doc/plugins
diff options
context:
space:
mode:
authorintrigeri <intrigeri@boum.org>2008-11-12 01:08:57 +0100
committerintrigeri <intrigeri@boum.org>2008-11-12 01:08:57 +0100
commitb19d0d3d245c7c2b605ac6c972c73c909a941db4 (patch)
tree4e8b120402eae5ebd2387f3c4439da77df8c8b99 /doc/plugins
parentef536f46bdeee120c7a805d92490db5769ed372f (diff)
parent3937e1fb1679ab6ebdf3a00f52187e3581691f3f (diff)
Merge commit 'upstream/po' into prv/po
Diffstat (limited to 'doc/plugins')
-rw-r--r--doc/plugins/contrib/po.mdwn35
-rw-r--r--doc/plugins/po.mdwn33
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