青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
金慶的專欄
C++博客
::
首頁
::
新隨筆
::
聯(lián)系
::
聚合
::
管理
::
423 隨筆 :: 0 文章 :: 454 評論 :: 0 Trackbacks
公告
我的隨筆
我的評論
我參與的隨筆
留言簿
(12)
給我留言
查看公開留言
查看私人留言
隨筆分類
(502)
1. C/C++(166)
(rss)
2. 網(wǎng)游開發(fā)(108)
(rss)
3. Golang(20)
(rss)
4. Linux/Unix(30)
(rss)
5. 軟工與管理(44)
(rss)
6. Python(23)
(rss)
7. Erlang(18)
(rss)
8. Rust(16)
(rss)
9. 其它(77)
(rss)
隨筆檔案
(423)
2023年1月 (1)
2022年11月 (1)
2022年10月 (2)
2022年9月 (1)
2022年4月 (6)
2022年1月 (2)
2021年12月 (4)
2021年11月 (6)
2021年10月 (2)
2021年9月 (2)
2021年8月 (7)
2021年7月 (2)
2021年5月 (2)
2021年3月 (1)
2021年2月 (2)
2021年1月 (1)
2020年12月 (1)
2020年10月 (1)
2020年9月 (5)
2020年8月 (1)
2020年7月 (1)
2020年6月 (1)
2020年4月 (2)
2020年3月 (3)
2020年2月 (3)
2020年1月 (1)
2019年12月 (1)
2019年9月 (2)
2019年4月 (2)
2019年1月 (1)
2018年12月 (1)
2018年11月 (3)
2018年10月 (1)
2018年9月 (3)
2018年8月 (3)
2018年7月 (2)
2018年6月 (4)
2018年5月 (4)
2018年4月 (4)
2018年3月 (1)
2018年1月 (2)
2017年12月 (2)
2017年11月 (3)
2017年10月 (3)
2017年8月 (7)
2017年7月 (1)
2017年6月 (1)
2017年5月 (3)
2017年4月 (3)
2017年3月 (3)
2017年2月 (2)
2017年1月 (2)
2016年12月 (5)
2016年11月 (2)
2016年10月 (2)
2016年9月 (1)
2016年8月 (6)
2016年7月 (3)
2016年6月 (2)
2016年5月 (4)
2016年4月 (2)
2016年3月 (2)
2016年1月 (3)
2015年12月 (2)
2015年11月 (2)
2015年10月 (1)
2015年8月 (2)
2015年7月 (1)
2015年6月 (1)
2015年5月 (4)
2015年4月 (3)
2015年3月 (4)
2015年2月 (5)
2015年1月 (4)
2014年12月 (3)
2014年11月 (3)
2014年10月 (2)
2014年9月 (3)
2014年8月 (1)
2014年4月 (4)
2014年3月 (1)
2014年2月 (4)
2014年1月 (5)
2013年12月 (5)
2013年11月 (5)
2013年9月 (2)
2013年8月 (2)
2013年7月 (2)
2013年6月 (2)
2013年5月 (1)
2013年1月 (2)
2012年12月 (1)
2012年11月 (1)
2012年9月 (1)
2012年8月 (3)
2012年7月 (2)
2012年6月 (1)
2012年4月 (3)
2012年3月 (2)
2012年2月 (3)
2012年1月 (2)
2011年11月 (2)
2011年10月 (3)
2011年9月 (2)
2011年8月 (2)
2011年7月 (3)
2011年6月 (2)
2011年5月 (3)
2011年1月 (2)
2010年12月 (1)
2010年11月 (2)
2010年10月 (2)
2010年9月 (3)
2010年8月 (2)
2010年7月 (3)
2010年6月 (1)
2010年5月 (3)
2010年4月 (3)
2010年3月 (5)
2010年2月 (4)
2010年1月 (4)
2009年12月 (2)
2009年11月 (3)
2009年10月 (4)
2009年9月 (3)
2009年8月 (2)
2009年7月 (4)
2009年6月 (1)
2009年5月 (3)
2009年4月 (4)
2009年3月 (2)
2009年2月 (5)
2009年1月 (1)
2008年12月 (7)
2008年11月 (4)
2008年10月 (1)
2008年9月 (3)
2008年8月 (4)
2008年7月 (3)
2008年6月 (4)
2008年5月 (6)
2008年4月 (7)
2008年3月 (6)
2008年1月 (5)
2007年12月 (7)
2007年11月 (4)
2007年10月 (5)
2007年9月 (6)
2007年8月 (8)
2007年7月 (5)
相冊
公告照片
搜索
積分與排名
積分 - 659884
排名 - 25
最新評論
1.?re: boost::asio::spawn 將一統(tǒng)C++網(wǎng)絡庫
asio 成為C++首選網(wǎng)絡庫
--linda
2.?re: log4cxx中文輸出錯誤補丁
評論內(nèi)容較長,點擊標題查看
--金慶
3.?re: mingw編譯OrzNet
能發(fā)送一個mingw編譯好的OrzNet庫給我嗎? liuweiqcxy@163.com
謝謝!
--劉威
4.?re: log4cxx中文輸出錯誤補丁
評論內(nèi)容較長,點擊標題查看
--bigbad
5.?re: log4cxx中文輸出錯誤補丁
評論內(nèi)容較長,點擊標題查看
--bigbad
閱讀排行榜
1.?"multiple definition of" 錯誤(11060)
2.?SVN中邪惡的replace(10986)
3.?VS2005編譯libevent(10431)
4.?混音算法的學習與研究(10238)
5.?C調(diào)用lua腳本的效率測試(9020)
評論排行榜
1.?VC6正在被拋棄(35)
2.?VS2005編譯libevent(21)
3.?"multiple definition of" 錯誤(18)
4.?C++引用優(yōu)于指針(17)
5.?ACE與ASIO之間關于Socket編程的比較(16)
wxPython中XRC文件i18n示例
wxPython中XRC文件i18n示例
(轉(zhuǎn)載請注明來源于金慶的專欄)
簡介
XRC文件是XML格式的界面定義文件,
用于在wxWidgets/wxPython中生成界面。
i18n(Internationaliztion)是指國際化,對資源進行翻譯。
wxPython中XRC文件i18n有兩種方法,
一種是使用多個XRC文件,每個語種一個XRC,
另一種是只用一個XRC文件,各個語言使用一個mo翻譯文件。
本文是按照
“
wxPython中XRC文件對 i18N的支持
”
一文的指示,演示使用mo文件對XRC文件進行國際化翻譯。
創(chuàng)建XRC
用xrced創(chuàng)建一個text.xrc。只有一個空白窗口。
窗口標題"frame1"是待翻譯字符串。
<?xml version="1.0" encoding="utf-8"?>
<resource>
<object class="wxFrame" name="FRAME1">
<title>test frame</title>
</object>
</resource>
顯示窗口
寫一個簡單的python程序test.py,裝入該窗口并顯示。
import wx
import wx.xrc as xrc
class MyApp(wx.App):
def OnInit(self):
self.res = xrc.XmlResource(r"./test.xrc")
self.frame_1 = self.res.LoadFrame(None, "FRAME1")
self.frame_1.Show()
return 1
# End of OnInit().
# End of class MyApp.
if __name__ == "__main__":
app = MyApp(0)
app.MainLoop()
運行如下:
提取并翻譯資源
先生成一個帶資源的Python代碼frame1.py,xrced可以生成python代碼,
選中gettext支持,生成的文件包含資源中的字串符。
# This file was automatically generated by pywxrc, do not edit by hand.
# -*- coding: UTF-8 -*-
import wx
import wx.xrc as xrc
__res = None
def get_resources():
""" This function provides access to the XML resources in this module."""
global __res
if __res == None:
__init_resources()
return __res
class xrcFRAME1(wx.Frame):
def PreCreate(self, pre):
""" This function is called during the class's initialization.
Override it for custom setup before the window is created usually to
set additional window styles using SetWindowStyle() and SetExtraStyle()."""
pass
def __init__(self, parent):
# Two stage creation (see http://wiki.wxpython.org/index.cgi/TwoStageCreation)
pre = wx.PreFrame()
self.PreCreate(pre)
get_resources().LoadOnFrame(pre, parent, "FRAME1")
self.PostCreate(pre)
# create attributes for the named items in this container
# ------------------------ Resource data ----------------------
def __init_resources():
global __res
__res = xrc.EmptyXmlResource()
__res.Load('test.xrc')
# ----------------------- Gettext strings ---------------------
def __gettext_strings():
# This is a dummy function that lists all the strings that are used in
# the XRC file in the _("a string") format to be recognized by GNU
# gettext utilities (specificaly the xgettext utility) and the
# mki18n.py script. For more information see:
# http://wiki.wxpython.org/index.cgi/Internationalization
def _(str): pass
_("test frame")
該生成的程序只是為了作為xgettext的輸入,
> xgettext frame1.py
輸出message.po。
編輯該po文件,指定charset并翻譯"test frame",如下:
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2007-12-17 10:58+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=gb2312\n"
"Content-Transfer-Encoding: 8bit\n"
#: frame1.py:55
msgid "test frame"
msgstr "測試窗口"
然后用msgfmt,將messages.po編譯成messages.mo。
> msgfmt messages.po
創(chuàng)建.\locale\zh_CN\LC_MESSAGES\目錄,并復制messages.mo到此。
翻譯XRC
為了裝入XRC時翻譯字符串,需要指定wx.Locale,讓Locale來翻譯界面中的資源。
并在XmlResource創(chuàng)建時,指定
flags=XRC_USE_LOCALE
domain="messages"
其中flags缺省值如此,而domain必須顯示指定。
test.py更改如下:
import wx
import wx.xrc as xrc
L = wx.Locale()
class MyApp(wx.App):
def OnInit(self):
L.Init(wx.LANGUAGE_CHINESE_SIMPLIFIED)
L.AddCatalogLookupPathPrefix(r'./locale')
L.AddCatalog('messages')
self.res = xrc.XmlResource(r"./test.xrc", domain = "messages")
self.frame_1 = self.res.LoadFrame(None, "FRAME1")
self.frame_1.Show()
return 1
# End of OnInit().
# End of class MyApp.
if __name__ == "__main__":
app = MyApp(0)
app.MainLoop()
運行結(jié)果:
總結(jié)
千言萬語,不如實際做個例子。
與wxPython一樣,其它C語言編寫的第三方python模塊在i18n上并不能利用python的gettext模塊,
所以解決之道是:所有輸入都是翻譯好的,或者,該擴展模塊本身支持i18n。
http://m.shnenglu.com/Files/jinq0123/xrci18n.zip
posted on 2007-12-17 12:22
金慶
閱讀(2029)
評論(0)
編輯
收藏
引用
所屬分類:
6. Python
只有注冊用戶
登錄
后才能發(fā)表評論。
【推薦】100%開源!大型工業(yè)跨平臺軟件C++源碼提供,建模,組態(tài)!
相關文章:
vs2017 linux 編譯輸出改成 vs 格式
xlsx批量轉(zhuǎn)為utf8的csv
如何運行 rpcz python example
Windows上Python讀取stdin出錯
建立Socket Policy服務器
python計算24點
(Python編程)Pickle對象
Boost.Python中文文檔下載
用Boost.Python構(gòu)建混合系統(tǒng)
Python封裝的性能研究
網(wǎng)站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © 金慶
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
久久久av毛片精品
|
欧美电影电视剧在线观看
|
国产精品五区
|
欧美图区在线视频
|
欧美日韩亚洲综合在线
|
国产精品区一区二区三
|
国产精品高潮呻吟久久
|
韩国av一区二区三区在线观看
|
国产婷婷色综合av蜜臀av
|
在线观看视频亚洲
|
一本色道久久综合狠狠躁篇怎么玩
|
亚洲国产影院
|
日韩午夜电影av
|
午夜精品久久久久久久久久久久
|
欧美一区二区三区久久精品
|
看片网站欧美日韩
|
国产精品麻豆va在线播放
|
91久久香蕉国产日韩欧美9色
|
亚洲午夜免费福利视频
|
久久天堂国产精品
|
亚洲一级片在线看
|
欧美激情五月
|
亚洲啪啪91
|
亚洲福利视频免费观看
|
中文一区字幕
|
艳女tv在线观看国产一区
|
欧美一区二区在线播放
|
国产精品草莓在线免费观看
|
亚洲国产第一
|
欧美成人午夜激情在线
|
亚洲一区二区三区四区在线观看
|
欧美大胆a视频
|
亚洲国产日韩欧美在线99
|
亚洲精品日韩精品
|
久久久999精品免费
|
亚洲国产精品成人一区二区
|
欧美中文字幕第一页
|
国产噜噜噜噜噜久久久久久久久
|
中文一区字幕
|
亚洲一区二区三区乱码aⅴ
|
欧美午夜在线一二页
|
亚洲午夜女主播在线直播
|
一本色道久久综合一区
|
亚洲美女av电影
|
国产精品剧情在线亚洲
|
亚洲丝袜av一区
|
亚洲砖区区免费
|
亚洲国产精品久久久久秋霞影院
|
欧美一区影院
|
91久久精品美女高潮
|
亚洲经典视频在线观看
|
一本久久知道综合久久
|
欧美四级电影网站
|
aⅴ色国产欧美
|
欧美日韩色一区
|
欧美一二区视频
|
久久乐国产精品
|
日韩午夜精品
|
欧美自拍偷拍
|
99在线精品免费视频九九视
|
亚洲精品在线一区二区
|
国产日韩欧美在线一区
|
久久成人国产
|
欧美精品免费视频
|
久久www成人_看片免费不卡
|
亚洲影院免费
|
亚洲午夜羞羞片
|
欧美国产在线电影
|
欧美成人国产一区二区
|
国产亚洲精品久
|
亚洲婷婷免费
|
亚洲影视综合
|
国产精品国产自产拍高清av王其
|
亚洲欧美日韩天堂
|
性色av一区二区怡红
|
国产欧美一区二区三区久久
|
亚洲日本免费
|
你懂的视频欧美
|
亚洲激情av
|
一区二区三区回区在观看免费视频
|
久久精品二区亚洲w码
|
国产区亚洲区欧美区
|
美女图片一区二区
|
亚洲啪啪91
|
野花国产精品入口
|
国产精品一区在线观看
|
久久裸体视频
|
亚洲精选在线
|
久久久水蜜桃av免费网站
|
狠狠网亚洲精品
|
欧美激情一区在线
|
亚洲精选成人
|
久久精品亚洲热
|
在线日本欧美
|
国模精品娜娜一二三区
|
欧美精品一区二区蜜臀亚洲
|
亚洲高清在线精品
|
在线观看成人网
|
黄色国产精品
|
在线国产日韩
|
亚洲欧洲精品一区
|
国产在线观看91精品一区
|
欧美日韩视频专区在线播放
|
欧美性猛交xxxx乱大交蜜桃
|
久久久99国产精品免费
|
在线视频免费在线观看一区二区
|
欧美电影免费观看高清完整版
|
亚洲欧美韩国
|
欧美一区综合
|
午夜精品一区二区三区在线视
|
aa亚洲婷婷
|
亚洲午夜电影
|
亚洲精品在线观
|
中文网丁香综合网
|
亚洲伊人久久综合
|
亚洲天堂久久
|
午夜在线观看欧美
|
久久精品网址
|
欧美黄在线观看
|
亚洲乱码国产乱码精品精天堂
|
亚洲国产综合91精品麻豆
|
亚洲国产精品免费
|
亚洲欧美日韩国产中文在线
|
亚洲欧美日韩精品久久久久
|
亚洲欧美日韩视频一区
|
久久精品国产免费看久久精品
|
理论片一区二区在线
|
欧美三级网页
|
在线成人www免费观看视频
|
亚洲无线视频
|
免费久久精品视频
|
一区二区三区高清视频在线观看
|
久久精品国产一区二区三区免费看
|
老司机精品福利视频
|
亚洲大胆人体在线
|
欧美一级艳片视频免费观看
|
欧美成人精品在线播放
|
国产精品视频xxxx
|
日韩视频中文
|
91久久国产综合久久
|
欧美在线观看天堂一区二区三区
|
欧美日韩成人综合
|
亚洲人午夜精品
|
欧美 日韩 国产在线
|
亚洲欧美精品在线观看
|
国产精品免费看
|
欧美亚洲综合另类
|
亚洲精品偷拍
|
国产精品美女主播
|
亚洲欧美日韩另类
|
亚洲欧美www
|
国内精品久久久
|
欧美 日韩 国产一区二区在线视频
|
欧美日韩在线电影
|
亚洲久久一区二区
|
一区二区三区四区五区在线
|
国产精品福利网站
|
另类欧美日韩国产在线
|
久久久91精品国产一区二区精品
|
国产在线播放一区二区三区
|
免费在线看一区
|
欧美日韩成人免费
|
久久精品在线视频
|
欧美日产在线观看
|
性欧美xxxx大乳国产app
|
久久久久久色
|
亚洲欧美综合v
|
久久免费的精品国产v∧
|
亚洲一级免费视频
|
在线亚洲高清视频
|
久久久精品国产免大香伊
|
艳女tv在线观看国产一区
|
久久久精品动漫
|
欧美中文字幕视频在线观看
|
欧美风情在线观看
|
欧美一区二区在线
|
亚洲精品在线观看免费
|
国产日韩精品一区二区三区在线
|
亚洲国产高清在线观看视频
|
国产精品久久久久久久9999
|
亚洲精品久久久久久久久
|
91久久精品国产
|
久久影院午夜片一区
|
麻豆freexxxx性91精品
|
国产欧美另类
|
久久久久.com
|
欧美国产亚洲另类动漫
|
91久久在线播放
|
欧美大片一区
|
日韩网站在线
|
欧美在线资源
|
精品91视频
|
欧美巨乳波霸
|
一区二区三区福利
|
久久精品视频导航
|
在线观看亚洲专区
|
欧美激情中文字幕乱码免费
|
亚洲激情综合
|
欧美一区二区三区成人
|
在线观看欧美日韩
|