]> sipb.mit.edu Git - ikiwiki.git/blobdiff - doc/plugins/po.mdwn
po/todo: first pass of robustness tests, added todo for remove/rename
[ikiwiki.git] / doc / plugins / po.mdwn
index 56dc3ea3b2fd7d3db63ad1e9b66293446684f40b..14ce07866e5794d68e1410b891d47963f0340f2d 100644 (file)
@@ -198,14 +198,18 @@ Also, when the plugin has just been enabled, or when a page has just
 been declared as being translatable, the needed POT and PO files are
 created, and the PO files are checked into version control.
 
 been declared as being translatable, the needed POT and PO files are
 created, and the PO files are checked into version control.
 
-Discussion pages
-----------------
+Discussion pages and other sub-pages
+------------------------------------
 
 Discussion should happen in the language in which the pages are
 written for real, *i.e.* the "master" one. If discussion pages are
 enabled, "slave" pages therefore link to the "master" page's
 discussion page.
 
 
 Discussion should happen in the language in which the pages are
 written for real, *i.e.* the "master" one. If discussion pages are
 enabled, "slave" pages therefore link to the "master" page's
 discussion page.
 
+Likewise, "slave" pages are not supposed to have sub-pages;
+[[WikiLinks|wikilink]] that appear on a "slave" page therefore link to
+the master page's sub-pages.
+
 Translating
 -----------
 
 Translating
 -----------
 
@@ -299,6 +303,8 @@ means the `Text` module only.
   variables; they seem safe to me, but someone more expert than me
   will need to check. Joey?
 
   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
 ##### Text::WrapI18N
 
 `Text::WrapI18N` can cause DoS (see the
@@ -318,6 +324,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]]
 
 > 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
 ##### Term::ReadKey
 
 `Term::ReadKey` is not a hard dependency in our case, *i.e.* po4a
@@ -404,6 +438,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`.
 
 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
 #### po4a-translate
 
 `po4a-translate` uses more or less the same po4a features as our
@@ -468,7 +505,7 @@ Better links
 
 ### Page title in links
 
 
 ### Page title in links
 
-To use the page titles set with the [meta](plugins/meta) plugin when
+To use the page titles set with the [[meta|plugins/meta]] plugin when
 rendering links would be very much nicer, than the current
 "filename.LL" format. This is actually a duplicate for
 [[bugs/pagetitle_function_does_not_respect_meta_titles]].
 rendering links would be very much nicer, than the current
 "filename.LL" format. This is actually a duplicate for
 [[bugs/pagetitle_function_does_not_respect_meta_titles]].
@@ -479,12 +516,22 @@ Going to work on this in my `meta` branch.
 
 See [[contrib/po]].
 
 
 See [[contrib/po]].
 
+### Backlinks
+
+They are not updated when the source page changes (e.g. meta title).
+
+### Redirect after edit
+
+After editing master page, when using `po_link_to=negotiated`, one is
+redirected to the page in her preferred language. Would be slightly
+better to be redirected, in any case, to the just saved page.
+
 Page formats
 ------------
 
 Markdown is well supported, great, but what about others?
 
 Page formats
 ------------
 
 Markdown is well supported, great, but what about others?
 
-The [po](plugins/po) uses `Locale::Po4a::Text` for every page format;
+The [[po|plugins/po]] uses `Locale::Po4a::Text` for every page format;
 this can be expected to work out of the box with most other wiki-like
 formats supported by ikiwiki. Some of their ad-hoc syntax might be
 parsed in a strange way, but the worst problems I can imagine would be
 this can be expected to work out of the box with most other wiki-like
 formats supported by ikiwiki. Some of their ad-hoc syntax might be
 parsed in a strange way, but the worst problems I can imagine would be
@@ -513,7 +560,65 @@ this check.
 Creating new pages on the web
 -----------------------------
 
 Creating new pages on the web
 -----------------------------
 
-See [[contrib/po]].
+See [[contrib/po|contrib/po]].
+
+Deleting/renaming pages
+-----------------------
+
+- When a master page is renamed or deleted, its translations (and the
+  pot file?) must be renamed or deleted accordingly.
+- Renaming a translation should be forbidden.
+
+Robustness tests
+----------------
+
+### Disabling the plugin
+
+- enabling the plugin with `po_translatable_pages` set
+- enabling the plugin without `po_translatable_pages` set: **OK**
+- disabling the plugin: **OK**
+
+### Changing the plugin config
+
+- adding existing pages to `po_translatable_pages`: **OK**
+- removing existing pages from `po_translatable_pages`: **OK**
+- adding a language to `po_slave_languages`: **OK**
+- removing a language from `po_slave_languages`: **OK**
+- changing `po_master_language`: **OK**
+- replacing `po_master_language` with a language previously part of
+  `po_slave_languages`: needs two rebuilds, but **OK** (this is quite
+  a perverse test actually)
+
+### Creating pages
+
+- creating a master page via RCS: **OK**
+- creating a master page via CGI: **FIXME** the new page's
+  translations are rendered as if they weren't translations (i.e.
+  `targetpage=newpage.LL/index.html`, and no de-gettext-isation);
+  touch'ing `newpage.mdwn` + refresh does not fix it, rebuild does.
+
+### Deleting pages
+
+- removing a master page via RCS
+- removing a translation via RCS: **OK**
+- removing a master page via CGI
+- removing a translation via CGI: **FIXME** the PO file is
+  re-generated as if it wasn't a translation; touch'ing
+  `masterpage.mdwn` + manual refresh fixes it.
+
+### Renaming pages
+
+- renaming a master page via RCS 
+- renaming a master page and its translations via RCS
+- renaming a master page via CGI
+- renaming a translation via RCS
+- renaming a translation via CGI
+
+### Misc
+
+- general test with `usedirs` disabled: **OK**
+- general test with `indexpages` enabled
+- general test with `po_link_to=default`
 
 Documentation
 -------------
 
 Documentation
 -------------