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"]]
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
<html xmlns="http://www.w3.org/1999/xhtml"
lang="<TMPL_IF NAME="LANG"><TMPL_VAR LANG><TMPL_ELSE>fr</TMPL_IF>"
xml:lang="<TMPL_IF NAME="LANG"><TMPL_VAR LANG><TMPL_ELSE>fr</TMPL_IF>">
This way also allows to define a language for a subset of the final page, with custom
templates and inclusion.
This may be useful for sites with a few pages in different languages, but no full i18n.
Looks good, but the need to modify the template and include a default
language in it is a bit problimatic, I think. --[[Joey]]
--lang=XX could be a setup option, with a default value, then the template would be
<html xmlns="http://www.w3.org/1999/xhtml" lang="<TMPL_VAR LANG>" xml:lang="<TMPL_VAR LANG>">
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. 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]]
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 plugins/meta translation]]