#!/usr/bin/perl use warnings; use strict; use lib ('lib'); use Test::More 'no_plan'; use Petal::I18N; use Petal; eval "use Locale::Maketext::Gettext"; if ($@) { warn "Locale::Maketext::Gettext not found - skipping"; ok (1); } else { eval "use Petal::TranslationService::MOFile"; eval "use Petal::TranslationService::Gettext"; $@ and die $@; my %lexicon = read_mo ('./t/data/gettext/mo/fr.mo'); ok ( $lexicon{'you-are-user'} ); ok ( $lexicon{'hello-this-is-a-test'} ); my $ts = Petal::TranslationService::MOFile->new ('./t/data/gettext/mo/en.mo'); my $t = new Petal ( file => './t/data/gettext/html/index.html', disk_cache => 0, memory_cache => 0, translation_service => $ts ); my $res = $t->process( user_name => 'becky'); like ($res, qr/Hello, this is a test/); like ($res, qr/You are user \becky\<\/span\>/); like ($res, qr/a search engine/); $ts = Petal::TranslationService::MOFile->new ('./t/data/gettext/mo/fr.mo'); ok ($ts->maketext ('you-are-user')); ok ($ts->maketext ('hello-this-is-a-test')); $t = new Petal ( file => './t/data/gettext/html/index.html', disk_cache => 0, memory_cache => 0, translation_service => $ts ); $res = $t->process ( user_name => 'becky'); like ($res, qr/Bonjour, ceci est un test/); my $ts_en = Petal::TranslationService::Gettext->new ( locale_dir => './t/data/locale', target_lang => 'en', ); my $ts_es = Petal::TranslationService::Gettext->new ( locale_dir => './t/data/locale', target_lang => 'es', ); my $ts_fr = Petal::TranslationService::Gettext->new ( locale_dir => './t/data/locale', target_lang => 'fr', ); $t = new Petal ( file => './t/data/i18n-test.html', disk_cache => 0, memory_cache => 0 ); $res = $t->process(); like ($res, qr/i18n/); like ($res, qr/Hello, World/); $t->{translation_service} = $ts_en; $res = $t->process(); unlike ($res, qr/i18n/); like ($res, qr/Hello, World/); $t->{translation_service} = $ts_fr; $res = $t->process(); unlike ($res, qr/i18n/); like ($res, qr/Bonjour, le monde/); $t->{translation_service} = $ts_es; $res = $t->process(); unlike ($res, qr/i18n/); like ($res, qr/Hola, Mundo/); } 1; __END__