gettextで日本語化の検討(2)

昨日の、日本語表示はされるが英語表示に戻せなくなる問題。
http://d.hatena.ne.jp/gymno/20090420/1240245430
http://wiki.wxpython.org/Internationalization#Example_1
↑この通りにやれば、ちゃんと日本語表示される。Linuxで動作確認できた。moファイルが無い場合には、英語表示になることを確認した。
ソースコードprogress.pyは以下のように書く。

import wx
import os
import sys
import gettext

basepath = os.path.abspath(os.path.dirname(sys.argv[0]))
localedir = os.path.join(basepath, "locale")
domain = "progress"
langid = wx.LANGUAGE_DEFAULT
mylocale = wx.Locale(langid)

mytranslation = gettext.translation(domain, localedir,
    [mylocale.GetCanonicalName()], fallback = True)
mytranslation.install()

app = wx.PySimpleApp()
progressMax = 15
dialog = wx.ProgressDialog(_("A progress box"),
         _("Time remaining"), progressMax,
         style=wx.PD_ELAPSED_TIME | wx.PD_REMAINING_TIME |
               wx.PD_AUTO_HIDE)
keepGoing = True
count = 0
while keepGoing and count < progressMax:
    count = count + 1
    wx.Sleep(1)
    keepGoing = dialog.Update(count)
dialog.Destroy()

poファイルの作成は、xgettextを使う。

$ xgettext progress.py

これでmessages.poファイルが作成される。このpoファイルの中で、charset=UTF-8に書き変える。その他、msgstrに日本語訳を書く。
今度は、moファイルを作成する。

$ msgfmt -o progress.mo messages.po

これで、progress.moファイルができるので、./locale/ja/LC_MESSAGES/ディレクトリに置く。
あとは、ソースファイルが複数あるときにどうやるか。