X-Git-Url: https://git.deb.at/?p=deb%2Fpackages.git;a=blobdiff_plain;f=lib%2FPackages%2FDispatcher.pm;h=732974082a15436c3578d59df8d391be2285fe86;hp=b2030aa9ff6cb4751ff6c2af9a0dc69c645e34ff;hb=cc6c820a1e503808b7ac1e2bff132de23f87606b;hpb=1b69eafb0f33afa134e3a0c0c794c72cbaf37294 diff --git a/lib/Packages/Dispatcher.pm b/lib/Packages/Dispatcher.pm index b2030aa..7329740 100755 --- a/lib/Packages/Dispatcher.pm +++ b/lib/Packages/Dispatcher.pm @@ -30,12 +30,11 @@ use DB_File; use URI::Escape; use Benchmark ':hireswallclock'; use I18N::AcceptLanguage; -use Locale::gettext; use Deb::Versions; use Packages::Config qw( $DBDIR $ROOT $TEMPLATEDIR $CACHEDIR @SUITES @SECTIONS @ARCHIVES @ARCHITECTURES @PRIORITIES - @LANGUAGES @DDTP_LANGUAGES $LOCALES ); + @LANGUAGES @DDTP_LANGUAGES ); use Packages::CGI qw( :DEFAULT error get_all_messages ); use Packages::DB; use Packages::Search qw( :all ); @@ -92,6 +91,7 @@ sub do_dispatch { my $homedir = dirname($ENV{SCRIPT_FILENAME}).'/../'; &Packages::Config::init( $homedir ); &Packages::DB::init(); + &Packages::I18N::Locale::load( "$homedir/po" ); my $acc = I18N::AcceptLanguage->new(); my %all_langs = map { $_ => 1 } (@LANGUAGES, @DDTP_LANGUAGES); @@ -155,10 +155,10 @@ sub do_dispatch { shift @components; $what_to_do = 'search'; # Done - fatal_error( _g( "search doesn't take any more path elements" ) ) + fatal_error( "search doesn't take any more path elements" ) if @components; } elsif (@components == 0) { - fatal_error( _g( "We're supposed to display the homepage here, instead of getting dispatch.pl" ) ); + fatal_error( "We're supposed to display the homepage here, instead of getting dispatch.pl" ); } elsif (@components == 1) { $what_to_do = 'search'; } else { @@ -181,7 +181,7 @@ sub do_dispatch { my ($cgi, $params_set, $key, $val) = @_; debug("set_param_once key=$key val=$val",4) if DEBUG; if ($params_set->{$key}++) { - fatal_error( sprintf( _g( "%s set more than once in path" ), $key ) ); + fatal_error( "$key set more than once in path" ); } else { $cgi->param( $key, $val ); } @@ -216,7 +216,7 @@ sub do_dispatch { @components = @pkg; if (@components > 1) { - fatal_error( sprintf( _g( "two or more packages specified (%s)" ), "@components" ) ); + fatal_error( "two or more packages specified (@components)" ); } } # else if (@components == 1) @@ -248,7 +248,7 @@ sub do_dispatch { replace => { all => \@ARCHIVES, default => \@ARCHIVES} }, exact => { default => 0, match => '^(\w+)$', }, - lang => { default => $http_lang, match => '^(\w+)$', }, + lang => { default => $http_lang, match => '^([\w-]+)$', }, source => { default => 0, match => '^(\d+)$', }, debug => { default => 0, match => '^(\d+)$', }, searchon => { default => 'names', match => '^(\w+)$', }, @@ -275,7 +275,9 @@ sub do_dispatch { my $charset = "UTF-8"; my $cat = Packages::I18N::Locale->get_handle( $opts{lang} ) - or die "get_handle failed"; + || Packages::I18N::Locale->get_handle( 'en' ); + die "get_handle failed for $opts{lang}" unless $cat; + $opts{cat} = $cat; $opts{h_suites} = { map { $_ => 1 } @suites }; $opts{h_sections} = { map { $_ => 1 } @sections }; @@ -307,7 +309,7 @@ sub do_dispatch { #FIXME: ugly hack unless (($what_to_do eq 'allpackages' and $opts{format} =~ /^(html|txt\.gz)/) || -e "$TEMPLATEDIR/$opts{format}/${what_to_do}.tmpl") { - fatal_error( _g("requested format not available for this document"), + fatal_error( $cat->g("requested format not available for this document"), "406 requested format not available"); }