Qt国际化与国际化不完全问题

  • Qt国际化步骤:

  1. 把需要翻译的地方全部用tr("")函数包含进来。
  2. 在pro文件中加入 TRANSLATIONS += XXX.ts。
  3. 如下图所示,单击更新翻译,生成XXX.ts文件。
  4. 使用Qt的Linguist工具翻译ts,然后保存。
  5. 单击上图中的发布翻译,发布生成qm文件。
  6. 在main函数中窗口显示前加入以下代码:       
QTranslator translator;
translator.load("XXX.qm");
app.installTranslator(&translator);

     Qt国际化可能遇到的不完全或者失败的问题

  1.  父类继承了Qt的类并且加入了Q_OBJECT宏,在子类中由于没有用到信号槽,因此用tr(“”)包含好后,编译的时候不会有问题,翻译好发布成功,但没有汉化成功
  • 解决办法:这个问题是没有添加Q_OBJECT,所有子类都加上Q_OBJECT宏,或者都用QObject::tr(""), 我那时候想着父类的Qt自带的类,就直接用的tr(""),结果遇到问题,加上Q_OBJECT宏就立马解决了。

    2 . 没有用tr("")包含好,像QString("中文%1").arg(i)。

  • 解决办法:需要把这个拆分开来 QString(tr("中文")) + QString("%1").arg(i)。

    3. 发布的时候用linguist发布,导致汉化不完全。

  • 解决办法:使用上面提到的方法来发布。

    4.  遇到qm文件路径不对,载入不成功, 这个是路径问题导致了。

  • 解决办法:这个是由于文件路径导致的。

    5. 

来源: https://blog.csdn.net/andy_93/article/details/53505571

猜你喜欢

转载自blog.csdn.net/wangyachao0803/article/details/82385286
今日推荐