| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- use Modern::Perl;
- package localization;
- use base 'Locale::Maketext';
- use Locale::Maketext::Lexicon {
- "i-default" => ['Auto'],
- _auto => 1,
- _decode => 1,
- _style => 'gettext',
- };
- sub init
- {
- my $class = shift;
- $class->fail_with(sub
- {
- my($lh, $key, @params) = @_;
- $key =~ /^_"([^"]*)"$/; #"
- return $lh->maketext($1||$key, @params);
- });
- }
- sub add
- {
- my $class = shift;
- my $locale = shift;
- my $file = shift;
-
- Locale::Maketext::Lexicon->import({
- $locale => [Gettext => $file],
- _auto => 1,
- _decode => 1,
- _style => 'gettext',
- });
- }
- sub add_mo
- {
- my $class = shift;
- my $dir = shift;
- my $locales = shift;
-
- my $handles = {};
-
- foreach my $lan (@$locales)
- {
- $class->add($lan, "$dir/$lan.mo");
- $handles->{$lan} = $class->get_handle($lan);
- }
-
- return $handles;
- }
- sub available_locales
- {
- my $dir = shift;
- return [ map { m|(\w+)\.mo$|; $1 } glob("$dir/*.mo") ];
- }
- sub fallback_languages
- {
- return ("ru","i-default");
- }
- 1;
|