]> sipb.mit.edu Git - ikiwiki.git/blobdiff - doc/plugins/po.mdwn
Revert "po: do not inject custom bestlink function when po_link_to eq default"
[ikiwiki.git] / doc / plugins / po.mdwn
index 235674f3167229be19c0deaa99d70f34b8461929..38b6b12cdefdd80c897baaaf05e794bc5ef27d08 100644 (file)
@@ -55,7 +55,7 @@ Supported languages
 languages, such as:
 
         po_slave_languages => { 'fr' => 'Français',
-                                'es' => 'Castellano',
+                                'es' => 'Español',
                                 'de' => 'Deutsch',
         }
 
@@ -114,7 +114,8 @@ Apache
 
 Using Apache `mod_negotiation` makes it really easy to have Apache
 serve any page in the client's preferred language, if available.
-This is the default Debian Apache configuration.
+
+Add 'Options MultiViews' to the wiki directory's configuration in Apache.
 
 When `usedirs` is enabled, one has to set `DirectoryIndex index` for
 the wiki context.
@@ -123,6 +124,8 @@ Setting `DefaultLanguage LL` (replace `LL` with your default MIME
 language code) for the wiki context can help to ensure
 `bla/page/index.en.html` is served as `Content-Language: LL`.
 
+For details, see [Apache's documentation](http://httpd.apache.org/docs/2.2/content-negotiation.html).
+
 lighttpd
 --------
 
@@ -224,7 +227,7 @@ correctly on the slave pages:
 Security
 ========
 
-[[po/security]] contains a detailed security analysis of this plugin
+[[po/discussion]] contains a detailed security analysis of this plugin
 and its dependencies.
 
 When using po4a older than 0.35, it is recommended to uninstall
@@ -248,43 +251,93 @@ ea753782b222bf4ba2fb4683b6363afdd9055b64, which should be reverted
 once [[intrigeri]]'s `meta` branch is merged.
 
 An integration branch, called `meta-po`, merges [[intrigeri]]'s `po`
-and `meta` branches, and thus has thise additional features.
+and `meta` branches, and thus has this additional features.
+
+Language display order
+----------------------
+
+Jonas pointed out that one might want to control the order that links to
+other languages are listed, for various reasons. Currently, there is no
+order, as `po_slave_languages` is a hash. It would need to be converted
+to an array to support this. (If twere done, twere best done quickly.)
+--[[Joey]] 
+
+Pagespecs
+---------
 
-Robustness tests
-----------------
+I was suprised that, when using the map directive, a pagespec of "*"
+listed all the translated pages as well as regular pages. That can 
+make a big difference to an existing wiki when po is turned on,
+and seems generally not wanted.
+(OTOH, you do want to match translated pages by
+default when locking pages.) --[[Joey]]
 
-### Enabling/disabling the plugin
+Edit links on untranslated pages
+--------------------------------
 
-* enabling the plugin with `po_translatable_pages` set to blacklist: **OK**
-* enabling the plugin with `po_translatable_pages` set to whitelist: **OK**
-* enabling the plugin without `po_translatable_pages` set: **OK**
-* disabling the plugin: **OK**
+If a page is not translated yet, the "translated" version of it
+displays wikilinks to other, existing (but not yet translated?)
+pages as edit links, as if those pages do not exist. 
 
-### Changing the plugin config
+That's really confusing, especially as clicking such a link
+brings up an edit form to create a new, english page.
 
-* 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)
+This is with po_link_to=current or negotiated. With default, it doesn't
+happen.. 
 
-### Creating/deleting/renaming pages
+Also, this may only happen if the page being linked to is coming from an
+underlay, and the underlays lack translation to a given language.
+--[[Joey]] 
 
-All cases of master/slave page creation/deletion/rename, both via RCS
-and via CGI, have been tested.
+Double commits of po files
+--------------------------
 
-### Misc
+When adding a new english page, the po files are created, committed,
+and then committed again. The second commit makes this change:
 
-* general test with `usedirs` disabled: **OK**
-* general test with `indexpages` enabled: **not OK**
-* general test with `po_link_to=default` with `userdirs` enabled: **OK**
-* general test with `po_link_to=default` with `userdirs` disabled: **OK**
+       -"Content-Type: text/plain; charset=utf-8\n"
+       -"Content-Transfer-Encoding: ENCODING"
+       +"Content-Type: text/plain; charset=UTF-8\n"
+       +"Content-Transfer-Encoding: ENCODING\n"
+
+Same thing happens when a change to an existing page triggers a po file
+update. --[[Joey]] 
+
+Ugly messages with empty files
+------------------------------
+
+If there are empty .mdwn files, the po plugin displays some ugly messages.
+
+Translation of directives
+-------------------------
 
-Misc. bugs
-----------
+If a translated page contains a directive, it may expand to some english
+text, or text in whatever single language ikiwiki is configured to "speak".
+
+Maybe there could be a way to switch ikiwiki to speaking another language
+when building a non-english page? Then the directives would get translated.
+
+2 test suite failures
+--------------------
+
+t/po is currently failing tests 57 and 59 (and I would like to release
+soon..) --[[Joey]] 
+
+> They are failing because of commit cdc3576c8d1e (po: do not inject
+> custom bestlink function when `po_link_to` eq `default`). The test
+> suite changes `$config{po_link_to}`, but the `checkconfig` hook is
+> not re-run. I could manually run it when needed in the test-suite,
+> but this would lead to this function being injected several times,
+> and then `$origsubs{'bestlink'}` to be sometimes set to a wrong
+> value, which would break other parts of the test-suite. The best
+> solution I can think of (apart of reverting this commit or disabling
+> these two tests) is to split the test-suite into 3 parts, depending
+> on the `$config{po_link_to}` setting, either in 3 different `.t`
+> files, or inside the existing one and completely reset the IkiWiki
+> environment at the start of these parts... which I did not manage to
+> achieve in the last 2 hours :/ --[[intrigeri]]
+
+>> I've reverted it. --[[Joey]] 
 
 Documentation
 -------------