Qt翻译及发布管理器:lupdate和lrelease
来源:互联网 发布:淘宝一元商品 编辑:程序博客网 时间:2024/05/06 12:26
发布管理器提供了两个工具,lupdate和lrelease。这些工具依赖于qmake项目文件。尽管你不必使用qmake。
Qt项目文件
lupdate和lrelease依赖于应用程序的.proQt项目文件。在项目文件中必须有除了本地语言的之外的附加语言的TRANSLATIONS部分。一个比较有代表性的条目就像这样:
TRANSLATIONS = tt2_fr.ts \ tt2_nl.ts
在翻译文件的名称中包含有一个场所对于运行时决定调用那种语言很有用处。这个将会在第四章:程序员中进行解释。
一个含有四个翻译源文件的完整的.pro文件的实例:
HEADERS = main-dlg.h \ options-dlg.h SOURCES = main-dlg.cpp \ options-dlg.cpp \ main.cpp FORMS = search-dlg.ui TRANSLATIONS = superapp_dk.ts \ superapp_fi.ts \ superapp_no.ts \ superapp_se.ts
QApplication::setDefaultCodec()可以使在被tr()调用中出现的文字字符串所要选择使用的一种8位编码方式成为可能。如果没有编码方式被指定,tr()使用Latin-1。
如果你在你的应用程序中使用QApplication::defaultCodec()机制,Qt语言学家需要你在.pro文件中也设置DEFAULTCODEC条目。例如:
DEFAULTCODEC = ISO-8859-5
lupdate
用法:lupdate myproject.pro
这是一个简单的命令行工具。lupdate读取一个Qt.pro项目文件并且产生或者更新项目文件中列出的.ts翻译源文件。翻译人员可以用Qt语言学家来读取这个翻译文件并且插入翻译。
有自己的翻译人员的公司会发现像应用程序开发人员那样定期地(也许每个月)运行lupdate会很有用处的。这样可以使翻译工作能够很均匀地分布在整个项目周期中并且这将可以允许翻译人员可以同时为大量的项目工作。
雇佣翻译人员的公司只需要在整个应用程序开发周期中运行几次lupdate,第一次运行也许正好在第一个测试阶段之前。这样可以把一个充实的单一工作块提供给翻译人员并且翻译缺陷也可以在最初的测试阶段很容易地被发现。第二次以及后来的lupdate运行可以发生在最后的beta测试阶段。
.ts文件格式是一种很简单的人们可读的XML格式,并且如果必要的话,可以使用版本控制系统。
lrelease
用法:lrelease myproject.pro
这是另一个简单的命令行工具。它读取Qt.pro项目文件并且根据项目文件中列出的每一个.ts翻译源文件产生一个应用程序所要用到的.qm文件。.qm文件格式是一个紧凑的二进制格式,它可以提供更快速的翻译查找。
只要应用程序要被发布,从最初的测试版本一直到最终的发布版本,就要运行这个工具。如果.qm文件没有被创建,比如,因为一个alpha发布需要在翻译完成之前出来,应用程序也可以使用程序员放置在源文件中的文本正常运行。一旦.qm文件被提供,应用程序就可以检测它们并且自动地使用它们。
注意:lrelease只是合并那些被标记为“done”的翻译。如果缺少一个翻译,或者有不成功的确认,那么最初的文本将会被使用。
缺少的翻译
lupdate和lrelease也可以用在不完全的.ts翻译源文件上。缺少的翻译将会在运行的时候由本地的语言短语替换。
- qt翻译发布管理器--lupdate和lrelease
- qt翻译发布管理器--lupdate和lrelease
- Qt翻译及发布管理器:lupdate和lrelease
- QT国际化(lupdate/linguits/lrelease)
- Qt lupdate 和 lrealease 命令行使用方式(多语言)
- QT lrelease生成.qm文件
- lupdate、linguist总结(QT国际化)
- 【翻译】Qt内部机制及逆向
- Qt 4.5 和 Qt Creator 1.0 发布
- lupdate用法
- Qt发布和打包软件
- Qt 打包依赖 及发布安装程序
- QT 基础知识及程序打包发布
- Qt制作翻译文件和加载翻译文件
- QT实现动态翻译和语言切换
- QT实现动态翻译和语言切换
- QT应用程序发布及 QT Creator 设置 app ico图标
- QT翻译
- 软件测试问题报告的写法
- Discuz模板制作教程
- SQL Server阻止了对组件xp_cmdshell过程的解决方案
- 什么是Loadrunner
- SQL语句优化技术分析
- Qt翻译及发布管理器:lupdate和lrelease
- 针对自定义组件上拉刷新下拉加载更多PullToRefreshView的分析(一)
- web.xml <mime-mapping>
- The difference between Framework and Library
- Android或Linux调试addr2line工具锁定命令的使用
- A Stack or A Queue?
- Rest 服务Get和Post的参数传值
- GLCM灰度共生矩阵
- matlab网格划分程序与matlab有限元的结合