X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fcommon.pm;fp=include%2Fcommon.pm;h=7ffaeeee0e8fc7ab4cae055559e7621a81ef3675;hb=0b296666f77d2431a26be5be4856499c5e0c2cd8;hp=6ad6ae403e04d70459994625a98e8db2ab100719;hpb=f2e37943d0b0af48ad041dbe417800074516d46c;p=wloh diff --git a/include/common.pm b/include/common.pm index 6ad6ae4..7ffaeee 100644 --- a/include/common.pm +++ b/include/common.pm @@ -35,6 +35,12 @@ sub get_locale { return $1; } +sub set_locale { + my $locale = shift; + $locale =~ s/-/_/; + POSIX::setlocale(&POSIX::LC_ALL, $locale . '.UTF-8'); +} + sub get_auxillary_parameters { my ($dbh, $locale) = @_; @@ -106,10 +112,26 @@ sub print_navbar { print "

\n"; } +# mapping from locale to translation to use (if not found, "en" is used) +my %translation_mapping = ( + 'nb-NO' => 'no', + 'nn-NO' => 'no', + 'da-DK' => 'no', + 'sv-SE' => 'no', + 'nl-NL' => 'en', +); + sub process_template { - my ($filename, $parms) = @_; + my ($filename, $locale, $parms) = @_; - my $doc = XML::Template::process_file('../templates/' . $filename, $parms); + my $translation = $translation_mapping{$locale} // 'en'; + my $doc; + if (-r "../templates/$filename.$translation.xml") { + $parms->{'html/xml:lang'} = $translation; + $doc = XML::Template::process_file("../templates/$filename.$translation.xml", $parms); + } else { + $doc = XML::Template::process_file("../templates/$filename.xml", $parms); + } print $doc->toString; }