From: Steinar H. Gunderson Date: Sun, 17 Jul 2005 17:40:42 +0000 (+0000) Subject: Add support for the user selecting languages. X-Git-Url: https://git.sesse.net/?p=ccbs;a=commitdiff_plain;h=52c1d6c706b501f252e49ce576354435b2b25b59 Add support for the user selecting languages. --- diff --git a/html/ccbs.pm b/html/ccbs.pm index 7940dd9..6583802 100755 --- a/html/ccbs.pm +++ b/html/ccbs.pm @@ -1,6 +1,7 @@ package ccbs; use Template; use CGI; +use CGI::Cookie; use DBI; use HTML::Entities; use Time::HiRes; @@ -13,8 +14,16 @@ require '../intl/Sesse::GettextizeTemplates.pm'; require '../config.pm'; -r '../config.local.pm' and require '../config.local.pm'; -POSIX::setlocale( &POSIX::LC_CTYPE , $ccbs::config::lang ); -POSIX::setlocale( &POSIX::LC_MESSAGES , $ccbs::config::lang ); +# Check for language settings +my %cookies = fetch CGI::Cookie; +my $lang = defined($cookies{'language'}) ? $cookies{'language'}->value : undef; +if (defined($lang) && ($lang eq 'nb_NO' || $lang eq 'en_US')) { + POSIX::setlocale( &POSIX::LC_CTYPE , $lang . ".UTF-8" ); + POSIX::setlocale( &POSIX::LC_MESSAGES , $lang . ".UTF-8" ); +} else { + POSIX::setlocale( &POSIX::LC_CTYPE , $ccbs::config::lang ); + POSIX::setlocale( &POSIX::LC_MESSAGES , $ccbs::config::lang ); +} Locale::gettext::bindtextdomain("ccbs", "po"); Locale::gettext::textdomain("ccbs"); diff --git a/html/do-set-language.pl b/html/do-set-language.pl new file mode 100755 index 0000000..3750cb8 --- /dev/null +++ b/html/do-set-language.pl @@ -0,0 +1,15 @@ +#! /usr/bin/perl + +use ccbs; +use CGI::Cookie; +use strict; +use warnings; + +my $cgi = new CGI; +my $cookie = new CGI::Cookie(-name=>'language', -value=>($cgi->param('lang'))); + +print CGI::header(-status=>'303 See other', + -location=>'http://ccbs.sesse.net/', + -cookie=>$cookie, + -type=>'text/html; charset=utf-8'); + diff --git a/html/templates/index.tmpl b/html/templates/index.tmpl index 42f47c1..de03c0e 100644 --- a/html/templates/index.tmpl +++ b/html/templates/index.tmpl @@ -30,3 +30,15 @@ [% END %] + +

Language support

+ +
+

You can select a different language if you'd like to. Note that this + feature requires cookie support in your web browser.

+ + +