Locale::Maketext::Lexcon::Gettext の parse_metadata の前後見ると、msgid "" なものはメタデータとして扱うようになっているらしい。で、そこの Content-Type の charset みてる。

常識くせー。基本的なことを知らないので無駄にはまるなぁ><

by typester / at 2007-02-22T02:54:00 / perl · i18n / Comment

Locale::Maketext::Simple, Decode => 1 しても utf8 strings にならない

use strict; use warnings; use utf8;

use Locale::Maketext::Simple(
    Path   => 'lib/MyApp/I18N',
    Decode => 1,
);

loc_lang('ja');
my $foo = loc('foobar');

if (utf8::is_utf8($foo)) {
    print "utf8\n";
}
else {
    print "bytes\n";
}

で、bytesに。

あーなんでだーー。

と思ったら、poファイルの先頭に

msgid ""
msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"

とかかいたら utf8 になった。

これは、なに。

by typester / at 2007-02-22T02:40:00 / perl · i18n / Comment