• 4873阅读
  • 9回复

继承QDialog的对话框无法国际化? [复制链接]

上一主题 下一主题
离线tompsontan
 

只看楼主 倒序阅读 楼主  发表于: 2013-05-04
RT,这个类是这样的:



调用时:


其他的都可以顺利国际化为中文,但好几个继承QDialog的都显示不了中文,什么原因呢?
看淡得失
离线tompsontan

只看该作者 1楼 发表于: 2013-05-04
上面的是别人软件的代码,自建一个QDialog的例子却可以国际化,真奇怪
看淡得失
离线tompsontan

只看该作者 2楼 发表于: 2013-05-04
确认了,是作者的代码有问题,跟QDialog无关,不过还是没找到具体原因。。。
看淡得失
离线ppdayz

只看该作者 3楼 发表于: 2013-05-10
国际化的基本原理就是利用qt的lupdate工具,从源码文件中提取待翻译的字符串 ,生成xxxx.ts文件,然后用lingiust工具生成一个二进制的压缩过的文件,然后qt运行的时候会读取这个文件,具体的问题从这几个过程中寻找,应该不难发现问题所在。
离线tompsontan

只看该作者 4楼 发表于: 2013-05-11
回 3楼(ppdayz) 的帖子
问题在作者代码读取qm文件的过程
看淡得失
离线netlove

只看该作者 5楼 发表于: 2013-05-14
如果用到了翻译文件,不知道Qt5系列了,还没怎么用,4是内置对话框,所有的按钮之类的是没有翻译过的,你需要把这些的翻译文件中的段落从qt_zh_ch.ts那类的文件中拷贝到你自己的ts文件中,然后再用liguist打开就可以看到有这些源串了,然后翻译完,lrealease成qm就可以了,如果是自己的,可能你的待翻译串没有提取到
离线jdwx

只看该作者 6楼 发表于: 2013-05-14
回 5楼(netlove) 的帖子
Qt内置的对话框什么的就更简单了,找到Qt库里的qt_zh_CN.qm,在main.cpp里加载就行了。
提示:QApplication可以加载多个qm,每个qm需要一个QTranslator。

发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线netlove

只看该作者 7楼 发表于: 2013-05-14
回 6楼(jdwx) 的帖子
呵呵,如果你自己还有自己的翻译文件呢,难道也把这个加载进去?
离线jdwx

只看该作者 8楼 发表于: 2013-05-14
回 7楼(netlove) 的帖子
见上贴第二行。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线netlove

只看该作者 9楼 发表于: 2013-05-14
回 8楼(jdwx) 的帖子
我更喜欢把需要的给融合到自己的qm里,不过也知道了你这个加载多个,多谢.
快速回复
限100 字节
 
上一个 下一个