liuliuab1 发表于 2016-12-13 15:08:14

*.ts *.qm 文件 - Qt/C++ GUI 框架多语言本地化源 二进制目标文件

*.ts *.qm 文件 - Qt/C++ GUI 框架多语言本地化源 二进制目标文件

*.ts 文件是 Qt translate 类使用前的要翻译源文件,即:多语言英译中的本地化源文件,其代码为 xml 格式形式。可采用 Qt lupdate 工具 (或 "Qt *.TS 文件提取" 小程序),将要翻译术语从源代码提取成 *.ts 文件。
*.qm 文件是 Qt translate 类要读取的源文件,即:多语言 "英译中" 的本地化翻译文件,其代码为不可读形式。可采用 Qt lrelease 工具 (或 "Qt *.QM 文件发布" 小程序),将 *.ts 文件转换成 *.qm 文件。也可采用 Qt 翻译工具 linguist (或 "翻译 UI (用户界面)" 小程序) 翻译完成后,"发布" 或 "另外发布" 生成 *.qm 文件。
Qt
01、编写源代码,对于要翻译术语,可用 tr() 包起来:QPushButton hello(QPushButton::tr("Hello world!"));这样,Qt 才会知道哪些术语需要翻译。
02、在 pro 文件中,说明要翻译源文件的名称:TRANSLATIONS = clabel_zh_CN.ts
03、采用 Qt lupdate 工具,把要翻译术语提取出来:
lupdate-qt4 clabel.pro
04、调用 Qt 翻译工具 linguist,或采用其它工具,翻译clabel_zh_CN.ts 要翻译源文件:linguist-qt4 clabel_zh_CN.ts
05、采用 Qt lrelease 工具,将 clabel_zh_CN.ts 文件转换成 clabel_zh_CN.qm 文件:lrelease-qt4 clabel_zh_CN.ts
06、再次改写源代码,加上多语言本地化选择语言代码:
QTranslator trans;
trans.load("clabel_zh_CN");
app.installTranslator(&trans);

QPushButton hello(QPushButton::tr("Hello world!"));
hello.show();

app.exec();
百度网盘https://pan.baidu.com/s/1dFngMn3
软件仓库
https://github.com/digitser
https://digitser.sourceforge.io/
https://pan.baidu.com/s/1dGxcM7R
支持CPU多线程-多进程 最佳HTML QT/ TS文件 GUI文档 静态网站-站群 机器-人工翻译工具http://dts.digitser.cn/zh-CN/app/translate/index.htmlhttp://forum.digitser.cn/thread-2180-1-1.html

PyQt4
01、编写源代码:button = QPushButton(u"hello world!")
02、采用 PyQt4 pylupdate4 工具,把要翻译术语提取出来:
pylupdate4 main.py -ts clabel_zh_CN.ts工程文件结构:SOURCES    = main.py\
             ui_mainWindow.py\
             otherFile.py\
             etc
03、调用 Qt 翻译工具 linguist,或采用其它工具,翻译clabel_zh_CN.ts 要翻译源文件:linguist clabel_zh_CN.ts
04、采用 Qt lrelease 工具,将 clabel_zh_CN.ts 文件转换成 clabel_zh_CN.qm 文件:lrelease clabel_zh_CN.ts
05、再次改写源代码,加上多语言本地化选择语言代码:
from PyQt4 import QtGui
from PyQt4 import QtCore

import sys

trans = QtCore.QTranslator()
trans.load("clabel_zh_CN") #加载之前生成 clabel_zh_CN.qm 文件 (注意:没有后缀,程序知道)

app = QtGui.QApplication(sys.argv)
app.installTranslator(trans)

button = QPushButton(u"hello world!")
button.show()
button.exec_()
PySide
01、编写源代码:button = QPushButton(u"hello world!")
02、采用 PySide-pylupdate 工具,把要翻译术语提取出来:
pyside-lupdate main.py -ts clabel_zh_CN.ts工程文件结构:SOURCES    = main.py\
             ui_mainWindow.py\
             otherFile.py\
             etc
03、调用 Qt 翻译工具 linguist,或采用其它工具,翻译clabel_zh_CN.ts 要翻译源文件:linguist clabel_zh_CN.ts
04、采用 Qt lrelease 工具,将 clabel_zh_CN.ts 文件转换成 clabel_zh_CN.qm 文件:lrelease clabel_zh_CN.ts
05、再次改写源代码,加上多语言本地化选择语言代码:
from PySide import QtGui
from PySide import QtCore

import sys

trans = QtCore.QTranslator()
trans.load("clabel_zh_CN") #加载之前生成 clabel_zh_CN.qm 文件 (注意:没有后缀,程序知道)

app = QtGui.QApplication(sys.argv)
app.installTranslator(trans)

button = QPushButton(u"hello world!")
button.show()
button.exec_()
http://forum.digitser.cn/data/attachment/forum/201605/19/132155fevczeyds5e5y1wy.jpg
长按二维码关注 "德云社区" ,点击最下方 "阅读原文" 了解更多资讯

版权声明:
本文为独家原创稿件,版权归 德云社区,未经许可不得转载;否则,将追究其法律责任。

页: [1]
查看完整版本: *.ts *.qm 文件 - Qt/C++ GUI 框架多语言本地化源 二进制目标文件