akkun_choi pedia
mindiaakkun_choi pedia見出し語

gettext

akkun_choi · 2010-01-21 更新

少ない労力でメッセージカタログを作成できる。
今のところ、これより優れた国際化対応するためのライブラリはないらしい。

ソースコード中の翻訳したい場所を関数で指定
→xgettextでpotファイル作成
→各言語に合わせたpoファイル作成
→msgfmtでmoファイル作成

配置方法は {$locale}/{$domain}.mo なのね。
{$domain}というのがわからずに、はまった。

PHP

>|php|
$locale = 'ja_JP';
putenv("LANG=$local");
setlocale(LC_ALL, $locale). "\n";

$domain = 'hello';
bindtextdomain($domain, './locale') . "\n";
textdomain($domain);
bind_textdomain_codeset($domain, 'utf-8');
echo gettext('Hello World');
||<
で、locale/ja_JP/hello.mo を配置すればOK

PHPのロケール設定がよくわからん。
これで一応動くけど、なんかおかしい。

ruby

基本的にどの言語も同じ
http://www.yotabanana.com/hiki/ja/ruby-gettext-howto.html#%A5%D1%A5%E9%A5%E1%A1%BC%A5%BF%A4%CE%BB%C8%A4%A4%CA%FD

メッセージの抽出

$ xgettext -a -C *.cc
$ xgettext -k_ -C *.cc

関連する見出し語