]> git.sesse.net Git - ccbs/blobdiff - html/ccbs.pm
Set the locale early enough for everything to be translated.
[ccbs] / html / ccbs.pm
index 4431da40f249022c76d91d69f1a0f3aa0687399f..6dd7b1325421bee056436a69b018483de9f5a0d8 100755 (executable)
@@ -14,13 +14,23 @@ our $start_time;
 
 BEGIN {
        $start_time = [Time::HiRes::gettimeofday()];
+       
+       POSIX::setlocale( &POSIX::LC_CTYPE , "nb_NO.UTF-8" );
+       POSIX::setlocale( &POSIX::LC_MESSAGES , "nb_NO.UTF-8" );
+       Locale::gettext::bindtextdomain("ccbs", "po");
+       Locale::gettext::textdomain("ccbs");
 }
 
 our $ccbs_dbdebug = 0;
 
 # Set this flag to disable any admin tasks -- it's quite crude, but hey :-)
 our $ccbs_noadmin = 0;
-       
+
+# Hack to get the non-templatized gettext stuff working
+*_ = sub {
+       return Locale::gettext::gettext(@_);
+};
+
 sub print_header {
        print CGI::header(-type=>'text/html; charset=utf-8');
 }
@@ -76,11 +86,6 @@ sub process_template {
        $vars->{'public'} = $ccbs_noadmin;
        $vars->{'timetogenerate'} = sprintf "%.3f", Time::HiRes::tv_interval($start_time);
        
-       POSIX::setlocale( &POSIX::LC_CTYPE , "nb_NO.UTF-8" );
-       POSIX::setlocale( &POSIX::LC_MESSAGES , "nb_NO.UTF-8" );
-       Locale::gettext::bindtextdomain("ccbs", "po");
-       Locale::gettext::textdomain("ccbs");
-       
        my $config = {
                INCLUDE_PATH => 'templates/',
                INTERPOLATE  => 1,
@@ -101,13 +106,13 @@ sub user_error {
        my $msg = shift;
 
        ccbs::print_header();
-       ccbs::process_template('user-error.tmpl', 'Feil',
+       ccbs::process_template('user-error.tmpl', _('Error'),
                { message => $msg });
 
        exit;
 }
 sub admin_only {
-       user_error("Beklager, databasen står i no-admin-mode.") if ($ccbs_noadmin);
+       user_error(_("Sorry, the database is in no-admin-mode.")) if ($ccbs_noadmin);
 }
 
 $SIG{__DIE__} = sub {
@@ -116,7 +121,7 @@ $SIG{__DIE__} = sub {
        return if $msg =~ m#Win32/Registry.pm#;
 
        ccbs::print_header();
-       ccbs::process_template('error.tmpl', 'Internal Server Error',
+       ccbs::process_template('error.tmpl', _('Internal Server Error'),
                { message => HTML::Entities::encode_entities($msg) });
 };