use strict; use Test::More; use FindBin qw($Bin); use Locale::Maketext::Simple ( Path => "$Bin/po_with_i_default", Style => "gettext", ); eval { require Locale::Maketext::Lexicon; die unless Locale::Maketext::Lexicon->VERSION(0.20); require File::Spec; }; if ($@) { plan skip_all => 'No soft dependencies, i_default will not work'; exit 0; } plan tests => 6; loc_lang("en"); is(loc("Not a lexicon key"), "Not a lexicon key", "Not a lexicon key"); is(loc("I have got %1 alerts", "hot"), "Maybe it's because I'm a hot Londoner, that I love London tawn", "Got auto key" ); is(loc("I have acknowledged %1 alerts", 83), "Yo dude, I've been working on these 83 alerts", "Got translation still in en"); is(loc("system.messages.arbitrary.unique.lexicon.key"), "This is the default message", "Used i_default because not set in en"); loc_lang("fr"); is(loc("system.messages.arbitrary.unique.lexicon.key"), "This is the default message", "Translated from i_default"); is(loc("I have got %1 alerts", "red"), "Mon Francais red, c'est terrible", "French translated" );