X-Git-Url: https://git.deb.at/?a=blobdiff_plain;f=lib%2FPackages%2FI18N%2FLocale.pm;h=3b4ecc606d7c3dea3eaf47de4fa58258ddbe8707;hb=92a6b3d4b5bcd96dfe05ee814722e5e0e47e1d3f;hp=fd987586020433cdf80680c4262f9950774d3f71;hpb=b8b780f25f2cb15def44c3579776c6df15cd6e90;p=deb%2Fpackages.git diff --git a/lib/Packages/I18N/Locale.pm b/lib/Packages/I18N/Locale.pm index fd98758..3b4ecc6 100644 --- a/lib/Packages/I18N/Locale.pm +++ b/lib/Packages/I18N/Locale.pm @@ -3,58 +3,33 @@ package Packages::I18N::Locale; use strict; use warnings; -use Exporter; -use Locale::gettext; - -our @ISA = qw( Exporter ); -# the reason we have both _g and _ is simply that there -# seem to be some situations where Perl doesn't handle _ -# correctly. If in doubt use _g -our @EXPORT = qw( get_locale get_charset _g N_ ); - -my %lang2loc = ( en => "en_US", - cs => "cs_CZ", - da => "da_DK", - ja => "ja_JP", - sv => "sv_SE", - uk => "uk_UA", - default => "en_US", - ); - -# this can probably be removed now that all locales are available in UTF-8 -my %lang2charset = ( - default => 'UTF-8', - ); - -sub get_locale { - my $lang = shift; - my $locale = $lang; - - return "$lang2loc{default}.".get_charset() unless $lang; - - if ( length($lang) == 2 ) { - $locale = $lang2loc{$lang} || ( "${lang}_" . uc $lang ); - } elsif ( $lang !~ /^[a-z][a-z]_[A-Z][A-Z]$/ ) { - warn "get_locale: couldn't determine locale\n"; - return; - } - $locale .= ".".get_charset($lang); - return $locale; -} - -sub get_charset { - my $lang = shift; - - return $lang2charset{default} unless $lang; - return $lang2charset{$lang} || $lang2charset{default}; -} - -sub tt_gettext { - my ($str, @args) = @_; - return dgettext( 'templates', $str ) unless @args; - return sprintf(dgettext( 'templates', $str ), @args); +use base 'Locale::Maketext'; +use Locale::Maketext::Lexicon { + 'en' => [Gettext => '/home/djpig/debian/www.d.o/packages/po/pdo.pot', + Gettext => '/home/djpig/debian/www.d.o/packages/po/templates.pot', + Gettext => '/home/djpig/debian/www.d.o/packages/po/langs.pot', + Gettext => '/home/djpig/debian/www.d.o/packages/po/sections.pot', + Gettext => '/home/djpig/debian/www.d.o/packages/po/debtags.pot'], + '*' => [Gettext => '/home/djpig/debian/www.d.o/packages/po/pdo.*.po', + Gettext => '/home/djpig/debian/www.d.o/packages/po/templates.*.po', + Gettext => '/home/djpig/debian/www.d.o/packages/po/langs.*.po', + Gettext => '/home/djpig/debian/www.d.o/packages/po/sections.*.po', + Gettext => '/home/djpig/debian/www.d.o/packages/po/debtags.*.po'], + _auto => 1, + _style => 'gettext', +}; + +use base 'Exporter'; + +our @EXPORT = qw( N_ ); + +sub N_ { return $_[0]; } + +sub g { + my ($self, $format, @args) = @_; + my $result = $self->maketext($format, @args); + return sprintf($result, @args) if $result =~ /%([su]|[.\d]*f)/; + return $result; } -sub _g { return gettext( $_[0] ) } -sub N_ { return $_[0] } 1;