wxPythonアプリの国際化。

基本的には以下のサイトの解説通り。

wxPythonでメッセージ文字列を国際化する方法を勉強

E-Renameに試してみて、幾つか補足。

wxPythonで扱う.xrc内の文字列に関する設定と
ソースコード(.py)中の文字列に関する設定はそれぞれ別。
たまたまどちらも同じフォーマットの.moを参照する作りなので1つの.moにまとめちゃっているだけ。

以下のgettext.find()の項を見る限り、環境変数を設定しないと
「ja」フォルダ以下の「.mo」が使われないように思え、実際そうだった。

22.1. gettext ― 多言語対応に関する国際化サービス

環境変数は使いたくないので gettext.install() を以下で代用。
…もっとスマートなやり方がありそうな気がしてならない…。


#gettext.install('erename', localedir, unicode=True)
if locale.getlocale()[0] == 'Japanese_Japan':
languages = ['ja']
else:
languages = ['en']
t = gettext.translation('erename', localedir, languages, fallback=True)
t.install(unicode=True)
Develop | comments (0) | trackbacks (0)

Comments

Comment Form

icons:

Trackbacks