2010-02-06 32 views
0

我們希望在wxpython中支持日文和中文的靜態文本(標籤,按鈕標籤等)的本地化。我們只需要改變GUI元素中的靜態文本,標籤中的日文或中文字符(靜態文本字段)的硬編碼將爲我們完成工作。 任何有關如何追求這一點的幫助將會有所幫助。wxpython具有靜態日文文本和中文靜態文本的GUI

謝謝

回答

0

見:wx.GetTranslation

http://wiki.wxpython.org/Internationalization

我做的,是用_ = wx.GetTranslation在我的腳本的頂部,並在包圍任何字符串_(」我的字符串「)

我用這個批處理腳本:http://code.google.com/p/gui2exe/source/browse/trunk/scripts/gen_lang運行wiki上找到了mki18n.py腳本。它基本上在你的源代碼上運行「gettext」命令,並挑選出符合_(「」)格式的字符串。

然後添加一個消息目錄中的wxPython:

self.locale = wx.Locale(wx.LANGUAGE_JAPANESE, wx.LOCALE_LOAD_DEFAULT) 
langdir = os.path.join('path', 'to', 'locale', 'folder') 
self.locale.AddCatalogLookupPathPrefix(langdir) 
self.locale.AddCatalog("program-name") 

當然,你必須允許用戶選擇自己喜歡的語言,並從該映射wx.LANGUAGE_ *。例如

languages = ((_("English"), wx.LANGUAGE_ENGLISH), 
       (_("English (United Kingdom)"), wx.LANGUAGE_ENGLISH_UK), 
       (_("Japanese"), wx.LANGUAGE_JAPANESE), 
       (_("Portuguese"), wx.LANGUAGE_PORTUGUESE), 
       (_("Dutch"), wx.LANGUAGE_DUTCH), 
       (_("German"), wx.LANGUAGE_GERMAN), 
       (_("Russian"), wx.LANGUAGE_RUSSIAN)) 


self.locale = wx.Locale(languages[user.preference.language], wx.LOCALE_LOAD_DEFAULT)