有关XRC I18N的第一个中文文档。
转自
[python-chinese][python-chinese] 用XRC生成wxPython的界面,如何实现I18N呢?
Hong Yuan hongyuan在homemaster.cn 星期一 七月 23 13:04:46 HKT 2007
<!--beginarticle-->
马踏飞燕 写道:
> 我用wxPython自带的XRCed生成了一个界面,然后用代码调用之后可以显示出界面了.
> 但是,现在的问题是,我虽然用XRCed提供的生成gettext的功能而得到了一个写有
> _('File') 这样的代码,但是我用poEdit翻译之后并且install了,只有在程序代码中直接创建控件的地方写的_('some
> text')才有翻译的效果,从xrc生成的还是英文的.
>
> 有什么办法吗?
上面的方法是对于所有python程序的通用方法。对于wxPython的程序,如果所有的界面元素都使用代码来生成,即界面中的文字都出现在界面 代码中,则可以完全使用相同的方法来实现i18N。
但是wxPython提供了另外一种生成面界的方法,即使用XRC资源文件定义界面,在程序中只要加载相应的界面对象。通过这种方式生成界面时在 python代码中看不见界面元素的字串常量,这些字符串都保存在.xrc的资源文件中,无法用xgettext直接进行处理。
wxPython的XRC支持包括了对i18N的支持。函数XmlResource有一个默认参数flags=XRC_USE_LOCALE,这样 在加载XRC资源时会根据当前locale判断是否存在语言包,从语言包中将相应字串的翻译显示出来。wxPython本身库函数中的文字内容则存放在 wxstd.mo中。
这样对于xrc使用i18N的前提一是正确设置wxPython的locale,二是从xrc文件中抽取需要翻译的字符串,生成.mo文件。具体的 步骤如下:
- 从xrc文件中生成.po文件用于翻译。有两种方法,一是使用wxrc -g将xrc文件中可翻译的字符串转换成_(str)的格式,然后用xgettext像对其他程序一样进行.po文件的抽取。wxrc工具在Debian 中位于wx2.5-common包内。另一种方式是将xrc文件导入到wxGlade这样的工具中,通过wxGlade转换成C++或python代码, 然后使用xgettext进行字串抽取。翻译完的.mo文件必须放在[lang]/LC_MESSAGES目录下。
- 初始化locale,指定语言以及在何处可以找到相应的.mo文件。通常情况下系统首先在当前目录中查找catalog,然后在系统目录中搜 索。但保险起见用AddCatalogLookupPathPrefix比较可靠。
L = wx.Locale()
L.Init(wx.LANGUAGE_CHINESE_SIMPLIFIED)
L.AddCatalogLookupPathPrefix('./locale')
L.AddCatalog('messages')
注意: 在wxPython 2.7以后的版本中,必须先生成wx.App对象后才能调用wx.Locale对象的Init方法。因此对上述代码需略微修改,将L=wx.Locale ()放在生成wx.App前,而在wx.App对象的OnInit代码中调用L.Init等代码。这样可以保证在OnInit结束后L对象依旧作为全局变 量存在。
- 之后可以使用XmlResource生成相应的对象。也可以使用Locale.GetString(string)函数返回对应Locale 的翻 译字符。该函数的功能类似于_(),但如果在同一界面中需要显示同一字串的不同语言译文时只要调用不同Locale的GetString函数即可。
分享到:
相关推荐
wxPython 使用 python 自带的 gettext 构建国际化语言支持,本文件为实例教程。
wxPython 使用 python 自带的 gettext 构建国际化语言支持,本文件为实例教程。
wxpython中文教程wxpython中文教程wxpython中文教程wxpython中文教程wxpython中文教程wxpython中文教程wxpython中文教程wxpython中文教程wxpython中文教程
wxPython4.1文件下载Win64版本,支持Python2.7/Python3.7/Python3.8
最新wxpython中文文档,根据官方文档排版,变量,api等为英文,相关解释为中文,更好编辑
wxPython中文教程 简单入门加实例 教程里说得很详细,对于刚开始学习WXPython的人很有帮助
使用python做UI也是必将对的,这是收集了wxPython中文资料,供学习交流使用
wxPython2.8.rar 包含有2个文件的压缩包,一个是安装文件,一个是示例和文档
因为官网下载慢,我分享一下wxPython4.1.1版本的所有内容
wxpython中常用api和class的示例代码 每一个文件都是可运行的文件,极适合刚学习wxpython的新人
wxPython中文教程,翻译自wxPython in Action。其中增加了目录,及阅读笔记,并对部门做了纠错处理。 另外增加了官方文档部分翻译内容。是初学者的最佳选择。
wxpython 界面编程 中文 word 文档
wxPython图形界面的例子,很丰富,带XML界面构建工具XRC Resource Editor和代码编辑器Editra
几本很不错的关于python gui的wxPython的书,包括“wxPython in Action(中文版)” 活学活用wxPython “《wxPython in Action》Noel Rappin, Robin Dunn著 2006年版”
学习wxPython的中文word文档,供大家参考
本资源位python3.6下的wxPython whl文件,可以直接pip install安装,有需要的可以下载一下。
wxpython利用table展示表格支持增、删、改、查。效果请参看:https://blog.csdn.net/BigBoySunshine/article/details/89486476
wxPython实战 高清 目录版本
该资源是从官网下载的安装包资源,python是exe安装包版本是3.6.2,wxpython是whl文件,需要用pip安装whl,版本是wxPython-4.1.0-cp36-cp36m-win_amd64.whl
中文翻译的不是很好,但是可以作为一开始的读物,毕竟中文的读起来更顺手些,很多东西都是看了英文才明白,英文讲的清楚些,把这两本书打了个包,分享给大家!