Hello from Japan.

At first, I'd like to say thank you for the DateTime::Local module and
its maintainers. This useful module helps me writing codes for I18N.

I think the month_name() method returns a string encoded in UTF-8.
However, it seems to be encoded in Latin-1 when locale => "fr".
This is an expected behavior?

my $fr = DateTime->now(locale=>"fr")->month_name;    # août (Latin-1)

This returns a French word "août" encoded in Latin-1.

my $ja = DateTime->now(locale=>"ja")->month_name;    # 8月 (UTF-8)

This returns a Japanese word "8月" encoded in UTF-8.
I couldn't found significant differences between DateTime/Locale/fr.pm
and ja.pm source codes for their encodes.
Some other locales return strings encoded in UTF-8 as well.

my $tr = DateTime->now(locale=>"tr")->month_name;    # Ağustos (UTF-8)
my $zh = DateTime->now(locale=>"zh")->month_name;    # 八月 (UTF-8)
my $el = DateTime->now(locale=>"el")->month_name;    # Αυγούστου (UTF-8)

And also I tried the code below:
----
use DateTime;
foreach my $lang (qw( de el en es fr ja nl no pl pt sv tr vi )) {
   my $fmt = DateTime::Locale->load($lang)->full_date_format();
   my $date = DateTime->now(locale => $lang)->strftime($fmt);
   my $line = "$lang : $date\n";
   print $line;
}
----

PS) My environment is following:
        Perl 5.8.6 (darwin)
        DateTime 0.34
        DateTime::Locale 0.22

--
Kawasaki Yusuke
http://www.kawa.net/

Reply via email to