unknownplace.org

前の日 | 最新のメモ | 次の日

# 2007-02-22

gettext のマニュアル一通りながめた。

gettext に emacs の po-mode はいってるってかかれてるのに使ってるPCには入ってなくてなんでだろうと思ったら、Debian では gettext-el ってパッケージになってるようだ。いれた。

poファイルのヘッダ(メタ情報)になにかけばいいのかとかよくわかんねーなぁ。個人的に使うだけなら、Content-Type さえあれば問題ないけどなぁ。

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 になった。

これは、なに。


comments


Fork me on GitHub