The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#! perl
#

use strict;
use warnings;

use Test::More tests => 2;

use Template::Flute;
use Template::Flute::I18N;

my (%german_map, $i18n, $spec, $template, $flute, $output);

%german_map = (Cart=> 'Warenkorb', Price => 'Preis', 
	       CART => 'Einkaufswagen');

sub translate {
	my $text = shift;
	
	return $german_map{$text};
};

$i18n = Template::Flute::I18N->new(\&translate);

$spec = '<specification></specification>';
$template = '<html><div>Cart</div><div>Price</div></html>';

$flute = Template::Flute->new(specification => $spec,
			      template => $template,
			      i18n => $i18n);

$output = $flute->process();

ok($output =~ m%<div>Warenkorb</div><div>Preis</div>%, $output);

$spec = '<specification><i18n class="cart" key="CART"/></specification>';
$template = '<html><div class="cart">Cart</div><div>Price</div></html>';

$flute = Template::Flute->new(specification => $spec,
			      template => $template,
			      i18n => $i18n);

$output = $flute->process();

ok($output =~ m%<div class="cart">Einkaufswagen</div><div>Preis</div>%, $output);