2010-02-06 30 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)