关于编写QT国际化程序中需要注意的问题
来源:互联网 发布:apache tomcat 7.0.57 编辑:程序博客网 时间:2024/05/17 05:59
第一:代码编写
代码编写的过程中需要注意的有如下几点:
1.在OQbject的子类中使用tr("翻译字符串")的话,需要在其子类中加上Q_OBJECT,因为QT的翻译会使用上下文,如果不加上Q_OBJECT则会
将其命名空间修改为子类的名称,导致无法找到翻译词条。在qt的lupdate提取词条的时候,会提取到其子类的命名空间下。
2.如果不想给QObject的子类增加Q_OBJECT的话,可以这么做,强制给tr增加命名空间,一般的做法是QObject::tr(),这种写法既可以写在非OQbject的
子类中,也可以写在QObject的子类中,但是其命名空间始终是QObject。在qt的lupdate提取词条的时候会提取到QObject的命名空间下。
3.翻译中消息ID的使用,也就是说再tr("")的前面包含一些注释,类似/*=messageid*/,这些信息会写入到ts文件中,如果messageid一样的话,qt会进行强制合并
这样也会导致出现翻译问题。
第二:工具的使用
lupdate是用来提取翻译文件(ts)的,在调用的时候,根据你的文件编码格式需要指定编码 --codecfortr GBK(如果是中文的话),另外,如果不想在命令行指定,也可
直接指定在pro文件中。CODECFORTR=GBK。
另外还可以在pro文件中指定翻译文件的目标位置
TRANSLATIONS=../../object.ts,同样也是可以在命令行来实现该操作通过-ts来实现
第三:qt的ts提取默认是不支持原文是非asii字符的,这样翻译会有问题,最好tr("")包含的是英文,否则会出现提取问题(涉及到文件的编码)。
第四:在非Q_OBJECT的类中支持Qt的翻译
Q_DECLARE_TR_FUNCTIONS
- 关于编写QT国际化程序中需要注意的问题
- qt国际化与本地化中一个需要注意的地方
- Qt中需要注意的基本问题
- 用编译原理编写计算器程序中需要注意的问题
- Editplus编写java程序需要注意的问题。
- 关于Qt中QMap的一个需要注意的地方
- Qt中关于线程需要注意的地方
- 在IDEA中编写mybatis,需要注意的问题
- IDL中编写自定义Task需要注意的问题
- 编写基于Qt的GLSL程序需要注意的几点
- wince中关于source文件中需要注意的问题
- 关于QT需要注意的几个问题
- c++中 关于字符串的一些需要注意的问题
- 程序竞赛中需要注意的一些小问题2
- Java程序开发中需要注意的内存问题
- 关于JavaScript中替换字符串需要注意的问题
- c#程序调用c++编写dll需要注意问题
- c#程序调用c++编写dll需要注意问题
- Torch7平台学习_CmdLine()总结
- THU2015 fall 1-1 Team
- 【总结】10月训练赛第6场
- discuz开启门户的功能
- sql常见笔试题
- 关于编写QT国际化程序中需要注意的问题
- 各种细节(RP++)
- Linux 用makefile编译程序
- Android Studio使用HttpClient相关类库
- SVM松弛变量
- NGUI__UITexture
- 全闪存Virtual SAN架构全解析
- CocoaPods安装使用心得,分享给墙内的朋友们
- 学会总结,学会分享