package Petal::TranslationService::MOFile;
use Locale::Maketext::Gettext;
use Encode;
use strict;
use warnings;
sub new
{
my $class = shift;
my $file = shift || do {
warn "No file specified for " . __PACKAGE__ . "::new (\$file)";
return bless {}, $class;
};
-e $file or do {
warn "$file does not seem to exist";
return bless {}, $class;
};
-f $file or do {
warn "$file does not seem to be a file";
return bless {}, $class;
};
my $self = bless { file => $file }, $class;
$self->{lexicon} = { read_mo ($file) };
($self->{encoding}) = $self->{lexicon}{""} =~ /^Content-Type: text\/plain; charset=(.*)$/im;
return $self;
}
sub maketext
{
my $self = shift;
my $id = shift || return;
$self->{lexicon} || return;
my $res = $self->{lexicon}->{$id};
return undef unless defined $res;
return decode($self->{encoding}, $res);
}
1;
__END__