wxpython GUI具有静态日文文本和中文静态文本

时间:2010-02-06 20:56:39

标签: python unicode wxpython

我们希望在wxpython中支持将静态文本(标签,按钮标签等)本地化为日文和中文。我们只希望改变GUI元素中的静态文本,标签中的日文或中文字符的硬编码(静态文本字段)将为我们工作。 任何有关如何追求这一点的帮助都会有所帮助。

谢谢

1 个答案:

答案 0 :(得分: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_ *。 e.g。

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)