package Hello::Locale; use strict; use Encode qw(encode); require Locale::Maketext::Lexicon; use base qw( Locale::Maketext); our %Lexicon = ( _AUTO => 1 ); sub get_handle { my $class = shift; my( $lang, $enc ) = @_; my $self = $class->SUPER::get_handle($lang); $self->{encoding} = $enc; $self; } sub maketext { my $self = shift; my @params = @_; my $result = encode( $self->encoding(), $self->SUPER::maketext( @params)); $result; } sub load { my $self = shift; my %params = @_; Locale::Maketext::Lexicon->import( { $self->language_tag() => [ %params], _decode => 1}); 1; } package Hello::Locale::ru; use Hello::Locale; use base qw( Hello::Locale); our %Lexicon = (); our $LEXICON_LOADED = 1; 1;