pythonでgettext

PyDumpFS*1をなんとなくgettextで多言語対応可能にしてみた。

基本的にスクリプトの頭で、

import gettext
try:
    gettext.install(アプリ名,unicode=1)
except IOError:
    _=lambda str: str

とした後、ロケールごとに書き換える必要のある文字列を"_()"で囲ってやるだけで、ソースの修正は終了。
後は、pygettextでメッセージカタログのテンプレートを取り出してそれを元に各言語用のメッセージカタログを作ってバイナリに変換して所定の場所においてやる。既定では"/usr/share/locale/ロケール名/LC_MESSAGES"におくことになっているようだ。

なぜか"gettext.install"で"unicode=1"としてやらないと見慣れてしまった"UnicodeDecodeError"が発生する。