• 10195阅读
  • 5回复

Qt5.5用QTranslator加载qt_zh_CN.qm之后,QMessageBox显示的按钮依然是英文,求助 [复制链接]

上一主题 下一主题
离线kenierlee
 

只看楼主 倒序阅读 楼主  发表于: 2015-09-10
  1. QTranslator translator;
  2.         translator.load(QLatin1String(":/qt_zh_CN"));
  3.         a.installTranslator(&translator);

在main函数执行上面这段代码后,load函数已经返回true。QMessageBox::question显示对话框,但对话框上面的按钮依然是英文的Yes No

用同样的方法在Qt4上能够正常的显示“是”和“否”,似乎是从Qt5.3开始,加载翻译文件就失效了。请问有没有大神解决了这个问题

离线liulin188

只看该作者 1楼 发表于: 2015-09-11
有同样的疑惑,也没有去深究,不影响使用
https://wiki.qt.io/Qt_5.12_Release
https://wiki.qt.io/New_Features_in_Qt_5.12
https://wiki.qt.io/Qt_5.12.0_Known_Issues
https://www.qt.io/blog/qt-5.13.2-released
https://www.qt.io/blog/qt-creator-4.10.2-released
https://wiki.qt.io/Qt_5.12_Tools_and_Versions
离线roywillow

只看该作者 2楼 发表于: 2015-09-11
是源码变动但是翻译文件没有跟进的原因
Qt5的翻译文件还都是用的Qt4的,Qt5对翻译文件的结构变动挺大,但是目前还没有人对Qt5重新翻译
临时解决方法参考 http://www.qtcn.org/bbs/read-htm-tid-58090.html
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线kenierlee

只看该作者 3楼 发表于: 2015-09-11
回 roywillow 的帖子
roywillow:是源码变动但是翻译文件没有跟进的原因
Qt5的翻译文件还都是用的Qt4的,Qt5对翻译文件的结构变动挺大,但是目前还没有人对Qt5重新翻译
临时解决方法参考 http://www.qtcn.org/bbs/read-htm-tid-58090.html (2015-09-11 08:01) 

感谢回复,看来只要不影响使用,就凑合吧。
离线nigoole

只看该作者 4楼 发表于: 2015-09-12
翻译说白了就是用tr函数进行转换,要做到转换当然需要调用一次tr函数,因此在切换语言的时候重新执行一次控件的setText()函数就是~!
有句话说得好:好好学习,天天向上。加油~~!有上船的朋友联系企鹅393320854
离线stlcours

只看该作者 5楼 发表于: 2015-09-14
直接找到源代码里的文字,翻译替换一下,重新静态编译,应该可以解决问题吧?
快速回复
限100 字节
 
上一个 下一个