Qt的翻译文件QTranslator不能使用问题总结(原)

摘要:
作者今天在自己的项目中使用了翻译文件,发现它不起作用。反复搜索后,他发现命名空间是用宏定义的。生成时。ts文件,则不会添加命名空间,因此它是生成的。当实际使用qm文件时,找不到相应的语句。如果将宏定义的名称空间更改为普通字符,则不存在此问题。

笔者今天在自己工程中使用翻译文件,发现没有起作用,反复查找,发现是用宏定义了命名空间,生成.ts文件时,不会加上命名空间,所以生成的.qm文件在实际使用时,会无法找到对应的语句。

如果将宏定义的命名空间修改为普通字符,则没有上述问题。

刚才是namespace MyProject{ 是用#define USNS namespace MyProject{定义好宏,直接使用宏的,所以生成文件,不能自己将宏转换导致

总结一下翻译碰到要注意的几个问题:

1,基本使用

QTextCodec * textCodec = QTextCodec::codecForName("System");
QTextCodec::setCodecForLocale(textCodec);

QTranslator translator;
translator.load(":/testTranslate/testtranslate_zh.qm");
a.installTranslator(&translator);

2,上面需在窗口创建前,app创建之后调用

3,如果类是在某命名空间内,生成的.ts文件的name会将命名空间名称加上,如果没有加上命名空间,翻译文件安装会出异常。如下:

 <name>TTTT::testTranslate</name>

免责声明:文章转载自《Qt的翻译文件QTranslator不能使用问题总结(原)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇开发与OP流程规范(git)事件监听下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

QT中文乱码与国际化支持

转自:http://blog.csdn.net/alicehyxx/article/details/4960571 QT国际化支持 Qt内部采用的全Unicode编码,这从根本上保证了多国语界面实现的正确性和便捷性。Qt本身提供的linguist工具,用来实现翻译过程十分方便。MFC中利用资源DLL切换资源,或使用多个RC文件进行不同语言版本编译等方法都十...