The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use utf8;
use Test::More tests => 6;
use t::Data::Localize::Test;

use_ok "Data::Localize";
use_ok "Data::Localize::Namespace";

{
    my $loc = Data::Localize::Namespace->new(
        namespaces => [ 't::Data::Localize::Test::Namespace' ]
    );
    my $out = $loc->localize_for(
        lang => 'ja',
        id   => 'Hello, stranger!',
        args => [ '牧大輔' ],
    );
    is($out, '牧大輔さん、こんにちは!', "localization for ja");
}

{
    # hack
    no warnings 'once';
    local $Data::Localize::Test::Namespace::ja::Lexicon{'Hello, [_1]!'} = '[_1]さん、こんにちは!';
    my $loc = Data::Localize::Namespace->new(
        style => 'maketext',
        namespaces => [ 't::Data::Localize::Test::Namespace' ]
    );
    my $out = $loc->localize_for(
        lang => 'ja',
        id   => 'Hello, stranger!',
        args => [ '牧大輔' ],
    );
    is($out, '牧大輔さん、こんにちは!', "localization with additional lexicon");
}

{
    my $loc = Data::Localize->new(languages => [ 'ja' ]);
    $loc->add_localizer(
        class => 'Namespace',
        namespaces => [ 't::Data::Localize::Test::Namespace' ]
    );
    my $out = $loc->localize('Hello, stranger!', '牧大輔');
    is($out, '牧大輔さん、こんにちは!', "localization for ja");

    $loc->localizers->[0]->add_namespaces(
        't::Data::Localize::Test::AltNamespace'
    );

    $out = $loc->localize('Good night, stranger!', '牧大輔');
    is($out, '牧大輔さん、おやすみなさい!', "localization after adding extra");

}