国際化(i18n)メモ
gettextという仕組みを使えるようになってる。gettextはC言語などでも利用可。
日本語化の例を追って見ていく*1
日本語化対象アプリ
test.py
import sys import gettext gettext.install("test","/usr/share/locale") i=1 sys.stdout.write(_("test %d") % i)
実行結果:
test 1
と表示されるだけ。
国際化対象にしたい文字列を_(...)で囲む。
今回は_("test %d")となってる。
gettext.installで、国際化メッセージファイル(moファイル)の位置を指定
/usr/share/locale/|言語名|/LC_MESSAGES/test.mo
からmoファイルを読むようになる。
pygettext.pyでpotファイルを生成
pygettext.pyはpython-toolsパッケージに入ってる。
$ pygettext.py test.py
message.potというファイルが生成。
これは国際化メッセージファイルの雛型のようなものらしい。
日本語翻訳者にはこのファイルを「ja.po」という名前で配布(これが俗に言うpoファイル)
今回は日本語化したいので
$ cp message.pot ja.po
ja.poのヘッダ編集
"Language-Team: LANGUAGE
- >
"Language-Team: japanese\n"
"Content-Type: text/plain; charset=CHARSET\n"
- >
"Content-Type: text/plain; charset=UTF-8\n"