Locale-Utils-Autotranslator
view release on metacpan or search on metacpan
t/22_interactive_utf-8.t view on Meta::CPAN
#!perl
#!perl -T
use strict;
use warnings;
use utf8;
use Moo;
use English qw($OS_ERROR $INPUT_RECORD_SEPARATOR);
use Path::Tiny qw(path);
use Test::More tests => 4;
use Test::NoWarnings;
use Test::Differences;
extends qw(
Locale::Utils::Autotranslator::Interactive
);
my $output_filename = './translated interactive de_utf-8.po';
local *STDIN;
my @files = (
"\n" eq "\x{D}\x{A}"
? (
't/LocaleData/STDIN.interactive.windwos.txt',
't/LocaleData/STDIN.interactive_end.windows.txt',
)
: (
't/LocaleData/STDIN.interactive.linux.txt',
't/LocaleData/STDIN.interactive_end.linux.txt',
),
);
{
local $_ = shift @files;
open STDIN, '<', $_
or die "Can't open '$_': $OS_ERROR";
}
my $obj = Locale::Utils::Autotranslator::Interactive
->new(
language => 'de',
after_translation_code => sub {
my ( $self, $msgid, $msgstr ) = @_;
local $_ = shift @files;
open STDIN, '<', $_
or die "Can't open '$_': $OS_ERROR";
return 1;
},
)
->translate(
't/LocaleData/untranslated de_utf-8.po',
$output_filename,
);
is
do {
local $_ = $obj->error;
s{\r? \n}{}xms;
$_;
},
"API error: __END__",
'end error'
or exit;
is
$obj->translation_count,
1,
'translation count';
my $content = path($output_filename)->slurp_utf8;
unlink $output_filename;
eq_or_diff
[ split m{ \r? \n }xms, $content ],
[ split m{ \n }xms, <<"EOT" ],
msgid ""
( run in 1.965 second using v1.01-cache-2.11-cpan-39bf76dae61 )