diff options
-rw-r--r-- | doc/patchqueue/l10n.mdwn | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/doc/patchqueue/l10n.mdwn b/doc/patchqueue/l10n.mdwn new file mode 100644 index 000000000..84bc18fdb --- /dev/null +++ b/doc/patchqueue/l10n.mdwn @@ -0,0 +1,97 @@ +From [[Recai]]: +> Here is my initial work on ikiwiki l10n infrastructure (I'm sending it +> before finalizing, there may be errors). + +I've revised the patches (tested OK): + +- $config{lang} patch: + + http://people.debian.org/~roktas/patches/ikiwiki/ikiwiki-lang.diff + + + Support for CGI::FormBuilder. + + Modify Makefile.PL for l10n. + +- l10n infrastructure from Koha project. (This patch must be applied with + '-p1', also, it needs a 'chmod +x l10n/*.pl' after patching.) + + + Leave templates dir untouched, use a temporary translations directory + instead. + + Fix Makefile (it failed to update templates). + + http://people.debian.org/~roktas/patches/ikiwiki/ikiwiki-l10n.diff + +However... + +> There are two places in IkiWiki, subject to localization: HTML::Template + +Unfortunately this is not correct. There a few (?) exceptional places, for +example button texts in CGI.pm: + + my @buttons=("Save Page", "Preview", "Cancel"); + +> fine. Also a final note, I haven't examined the quality of generated +> templates yet. + +Looks like, tmpl_process3 cannot preserve line breaks in template files. +For example, it processed the following template: + + Someone[1], possibly you, requested that you be emailed the password for +user + <TMPL_VAR USER_NAME> on <TMPL_VAR WIKINAME>[2]. + + The password is: <TMPL_VAR USER_PASSWORD> + + -- + ikiwiki + + [1] The user requesting the password was at IP address <TMPL_VAR +REMOTE_ADDR> + [2] Located at <TMPL_VAR WIKIURL> + +as (in Turkish): + +Birisi[1], ki muhtemelen bu sizsiniz, <TMPL_VAR WIKINAME>[2] üzerindeki +<TMPL_VAR USER_NAME> kullanıcısına ait parolanın epostalanması isteğinde +bulundu. Parola: <TMPL_VAR USER_PASSWORD> -- ikiwiki [1] Parolayı isteyen +kullanıcının ait IP adresi: <TMPL_VAR REMOTE_ADDR>[2] <TMPL_VAR WIKIURL> + +---- + +> Unfortunately this is not correct. There a few (?) exceptional places, for +> example button texts in CGI.pm: +> +> my @buttons=("Save Page", "Preview", "Cancel"); + +Hmm, I've thought on this issue. Using Locale::gettext seems to be the +natural solution. But this would need to create another po file and also, +ikiwiki would depend another Perl module. Kinda overkill... + +I have another idea... What about to create another (flat) template file +for this sort of strings? Something like strings.tmpl with the content: + + Save Page, Preview, Cancel + +or we could categorize these strings in some variables (',' is the +delimiter for this code snippet): + + <TMPL_IF NAME="BUTTONS"> + Save Page, Preview, Cancel + </TMPL_IF> + +and then (preferably in a separate wrapper function in CGI.pm): + + my $template=template("strings.tmpl"); + $template->param("BUTTONS", 1); + my @buttons=split(/\s*,\s*/, $template->output); + +You get the idea... I've tried this method. All in one po file, kind of +ugly, but it _really_ works. + +> > fine. Also a final note, I haven't examined the quality of generated +> > templates yet. +> +> Looks like, tmpl_process3 cannot preserve line breaks in template files. +> For example, it processed the following template: + +This could be easily worked around in tmpl_process3, but I wouldn't like to +maintain a separate utility. |