]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/todo/language_definition_for_the_meta_plugin.mdwn
response
[git.ikiwiki.info.git] / doc / todo / language_definition_for_the_meta_plugin.mdwn
index cfb9acd25824a92938f6bdd90c663a0f2bcd192e..4ac4e2e2546271628ffe8597e67ab1d6554a0e23 100644 (file)
@@ -1,5 +1,5 @@
 Here is a patch for the [[plugins/meta]] plugin. It adds the possibility to define the language 
 Here is a patch for the [[plugins/meta]] plugin. It adds the possibility to define the language 
-used for a page, with \[[meta lang="ja"]]
+used for a page, with \[[!meta lang="ja"]]
 
 It doesn't insert the langage information in the xhtml meta elements, but defines a LANG
 variable to use in the templates, for example with
 
 It doesn't insert the langage information in the xhtml meta elements, but defines a LANG
 variable to use in the templates, for example with
@@ -23,10 +23,27 @@ This may be useful for sites with a few pages in different languages, but no ful
 >>> Yes, that seems reasonable. I guess there's no problem with defaulting
 >>> to en if it can be overridden in the setup. --[[Joey]]
 
 >>> Yes, that seems reasonable. I guess there's no problem with defaulting
 >>> to en if it can be overridden in the setup. --[[Joey]]
 
->>>> Yes, english default makes sense. But maybe this option should also be used to define the 
->>>> language used for the messages, ie override the locale?
->>>> Or just --html-lang=XX, only used by the templates? 
->>>> — NicolasLimare
+>>>> Yes, english default makes sense. I guess we should use the `$config{lang}`, 
+>>>> defined from the setup file or command-line options to define the default language
+>>>> (`$config{lang}` defaults to `en` which is fine) if the html pages, and override
+>>>> it from the `meta` directive.
+>>>> — [[NicolasLimare]]
+
+>>>>> ikiwiki already has a $config{locale}, which is a full locale (ie,
+>>>>> "en_US.UTF-8". This just needs to be parsed for the lang. --[[Joey]]
+
+>>>>>> My mistake, I meant $config{locale} --[[NicolasLimare]]
+
+> So the patch below could be changed to parse `$config{locale}` for the
+> language, and pass it if no specific lang was set for the page. The only
+> problem with that would be that this is all done inside the meta plugin,
+> so if that plugin were disabled, the lang would be empty. To avoid that,
+> I guess that the template needs to look like:
+
+    <html xmlns="http://www.w3.org/1999/xhtml"
+          <TMPL_IF NAME="LANG">lang="<TMPL_VAR LANG>" xml:lang="<TMPL_VAR LANG>"</TMPL_IF>>
+
+> Now it just needs to be finished up.. --[[Joey]]
 
 <pre>
 --- meta.orig.pm  2007-07-27 00:19:51.000000000 +0200
 
 <pre>
 --- meta.orig.pm  2007-07-27 00:19:51.000000000 +0200
@@ -37,7 +54,7 @@ This may be useful for sites with a few pages in different languages, but no ful
  my %authorurl;
 +my %lang;
  
  my %authorurl;
 +my %lang;
  
- sub import { #{{{
+ sub import {
         hook(type => "preprocess", id => "meta", call => \&preprocess, scan => 1);
 @@ -100,6 +101,11 @@
                 $meta{$page}.='<link href="'.encode_entities($value).
         hook(type => "preprocess", id => "meta", call => \&preprocess, scan => 1);
 @@ -100,6 +101,11 @@
                 $meta{$page}.='<link href="'.encode_entities($value).
@@ -58,8 +75,10 @@ This may be useful for sites with a few pages in different languages, but no ful
 +       $template->param(lang => $lang{$page})
 +               if exists $lang{$page} && $template->query(name => "lang");
  
 +       $template->param(lang => $lang{$page})
 +               if exists $lang{$page} && $template->query(name => "lang");
  
- } # }}}
+ }
 </pre>
 
 </pre>
 
+> Please resolve lang somewhere reusable rather than within meta plugin: It is certainly usable outside
+> the scope of the meta plugin as well. --[[JonasSmedegaard]]
 
 
-[[tag wishlist patch plugin/meta translation]]
+[[!tag wishlist patch plugins/meta translation]]