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

  • Qt的国际化步骤:

  1. 把需要翻译的地方全部用TR( “”)函数包含进来。
  2. 在pro文件中加入TRANSLATIONS + = XXX.ts.
  3. 如下图所示,单击更新翻译(或直接在终端中执行指令lupdate -verbose XXX.pro),生成XXX.ts文件。
  4. 使用的Qt的语言学家工具翻译TS,然后保存。
  5. 单击上图中的发布翻译,发布生成QM文件。
  6. 在主函数中窗口显示前加入以下代码:       
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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值