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"が発生する。