#!/usr/bin/perl -w
use strict;
use Test::More tests => 15;
package MyApp::L10N;
use Test::More;
use Locale::Maketext::Fuzzy;
use_ok(base => 'Locale::Maketext::Fuzzy');
package MyApp::L10N::de;
use vars qw/@ISA %Lexicon/;
@ISA = 'MyApp::L10N';
%Lexicon = (
# Exact match should always be preferred if possible
"0 camels were released."
=> "Exact match",
# Fuzzy match candidate
"[*,_1,camel was,camels were] released."
=> "[quant,_1,Kamel wurde,Kamele wurden] freigegeben.",
# This could also match fuzzily, but is less preferred
"[_2] released[_1]"
=> "[_1][_2] ist frei[_1]",
);
package main;
################################################################
ok(my $lh = MyApp::L10N->get_handle('de'), 'get_handle');
is($lh->override_maketext, 0, 'override_maketext() is initially 0');
is($lh->override_maketext(0), 0, 'override_maketext(0)');
is($lh->override_maketext(1), 1, 'override_maketext(1)');
is($lh->override_maketext(undef), 0, 'override_maketext(undef) is 0');
is($lh->override_maketext(-1), 1, 'override_maketext(-1) is 1');
is($lh->override_maketext, 1, 'override_maketext() is now 1');
################################################################
is(
$lh->maketext('0 camels were released.'),
'Exact match',
'exact match',
);
is(
$lh->maketext('1 camel was released.'),
'1 Kamel wurde freigegeben.',
'fuzzy match - singular',
);
is(
$lh->maketext('2 camels were released.'),
'2 Kamele wurden freigegeben.',
'fuzzy match - plural',
);
is(
$lh->maketext('3 released.'),
'3 Kamele wurden freigegeben.',
'fuzzy match - ignore parameters',
);
is(
$lh->maketext('[*,_1,camel was,camels were] released.', 4),
'4 Kamele wurden freigegeben.',
'exact match on the bracketed entry',
);
is(
$lh->maketext('[Perl] released!'),
'![Perl] ist frei!',
'fuzzy match on the broader candidate',
);
is(
eval { $lh->maketext('Square [bracket]!') },
'Square [bracket]!',
'no interpolation on failed matches',
);
################################################################
1;