Locale::Maketext::Lexcon::Gettext
の parse_metadata の前後見ると、msgid ""
なものはメタデータとして扱うようになっているらしい。で、そこの Content-Type の charset みてる。
常識くせー。基本的なことを知らないので無駄にはまるなぁ><
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 になった。
これは、なに。