]> git.deb.at Git - deb/packages.git/blobdiff - lib/Packages/Template.pm
Translation support for remaining scripts
[deb/packages.git] / lib / Packages / Template.pm
index 6ae96b4b7ccad66d6b4876359c1e106c17dde72a..28d8d1ed4c84588b8dd0a2654c10350390c69ade 100644 (file)
@@ -4,7 +4,6 @@ use strict;
 use warnings;
 
 use Template;
-use Locale::gettext;
 use URI ();
 use HTML::Entities ();
 use URI::Escape ();
@@ -77,6 +76,10 @@ sub page {
 
     #use Data::Dumper;
     #die Dumper($self, $action, $page_content);
+    if ($page_content->{cat}) {
+       $page_content->{g} =
+           sub { return Packages::I18N::Locale::g($page_content->{cat}, @_) };
+    }
     $page_content->{used_langs} ||= \@LANGUAGES;
     $page_content->{langs} = languages( $page_content->{lang}
                                        || $self->{vars}{lang} || 'en',
@@ -108,11 +111,13 @@ sub error_page {
 
 sub languages {
     my ( $lang, @used_langs ) = @_;
-    
+    my $cat = Packages::I18N::Locale->get_handle($lang)
+       || Packages::I18N::Locale->get_handle('en');
+
     my @langs;
 
     if (@used_langs) {
-       
+
        my @printed_langs = ();
        foreach (@used_langs) {
            next if $_ eq $lang; # Never print the current language
@@ -125,13 +130,14 @@ sub languages {
        foreach my $cur_lang (sort langcmp @printed_langs) {
            my %lang;
            $lang{lang} = $cur_lang;
-           $lang{tooltip} = dgettext( "langs", get_language_name($cur_lang) );
-            $lang{selfname} = get_selfname($cur_lang);
-           $lang{transliteration} = get_transliteration($cur_lang) if defined get_transliteration($cur_lang);
+           $lang{tooltip} = $cat->g(get_language_name($cur_lang));
+           $lang{selfname} = get_selfname($cur_lang);
+           $lang{transliteration} = get_transliteration($cur_lang)
+               if defined get_transliteration($cur_lang);
            push @langs, \%lang;
        }
     }
-    
+
     return \@langs;
 }