Suppose you need to print the same date formatted appropriate for multiple locales. Perl’s DateTime module can be mixed in with DateTime::Locale to make that easy. Not, necessarily fast or lightweight, mind you, but easy.
The following Perl script provides a demonstration:
#!/usr/bin/env perl
use strict; use warnings;
use DateTime;
use DateTime::Locale;
binmode STDOUT, ':utf8';
my $dt = DateTime->today;
$dt );
print_date(
for my $locale ( qw(ar da de en_GB es fr ru tr) ) {
$dt->set_locale( $locale );
$dt );
print_date(
}
sub print_date {
my ($dt) = @_;
my $locale = $dt->locale;
printf(
"In %s: %s\n", $locale->name,
$dt->format_cldr($locale->date_format_full)
); }
And, here’s the output:
In English United States: Friday, December 16, 2011
In Arabic: الجمعة، 16 ديسمبر، 2011
In Danish: fredag den 16. december 2011
In German: Freitag, 16. Dezember 2011
In English United Kingdom: Friday, 16 December 2011
In Spanish: viernes 16 de diciembre de 2011
In French: vendredi 16 décembre 2011
In Russian: пятница, 16 декабря 2011 г.
In Turkish: 16 Aralık 2011 Cuma
Of course, if you don’t have the required fonts installed, certain characters may be displayed as unknown.