zoukankan      html  css  js  c++  java
  • QT国际化,中英文等多语言界面显示的方法

    在网上学习了一下QT的国际化使用方法,最后将自己试成功的方法总结例如以下:

    当中遇到的问题有:生成的ts文件里 代码中的中文 有的不显示,有的显示乱码。

     

    步骤1:

    生成.ts文件,在pro项目文件里增加TRANSLATIONS =translate_zh_CN.ts,名字任取。且指定编码。这点非常重要,不然可能会在生成的ts 文件里包括乱码,不利于后期翻译。

    TRANSLATIONS = translate_zh_CN.tstranslate_zh_EN.ts translate_zh_TW.ts

    CODECFORTR = utf-8 #or gbk

    #DEFAULTCODEC = utf-8

    #CODEC = utf-8

    注意,假设CODECFORTR 未定义。将找DEFAULTCODEC。假设还未定义,将找CODEC。3个都未定义的话,就採用latin1

    步骤2:

    在pro文件上右击,选择 “在此打开命令行控制台”

    在命令行指定 ts 文件时,还须要在命令行指定编码。保证生成的ts文件里的中文不含乱码。

    lupdate hello.pro -codecfortr utf-8

    假设你的lupdate 工具所在文件夹未增加环境变量,将找不到此命令,你能够搜索查找到luddate.exe所在文件夹。然后运行:

    C:Qt4.8.0inlupdate.exehello.pro -codecfortr utf-8

    将会生成之前在.pro文件里指定的三个ts文件translate_zh_CN.tstranslate_zh_EN.ts translate_zh_TW.ts

     

    步骤3:

    再在命令窗体中输入linguist(翻译工具)。打开翻译工具;

    C:Qt4.8.0inlinguist.exe

    弹出图形化界面工具。

     

    然后就能够一个一个翻译了。最后点击linguist文件菜单中的公布,则会生成一个与ts文件同名的qm文件

     

    步骤4:

    在代码中须要的地方载入字符文件就可以

     

        QTranslatortranslator;

        translator.load("./translate_zh_CN.qm");

       qApp->installTranslator(&translator);

       ui->retranslateUi(this);

     

     

     

    注:如是代码中的中文字符,须要翻译的,要用QObject::tr("草稿箱") 将中文字符包括起来,才会显示在ts文件里。

    另一种生成qm的方法,比如在translate_zh_EN.ts 文件里将“帮助”翻译为“Help

    <message>

            <locationfilename="mainwindow.ui" line="347"/>

            <source>帮助</source>

            <translationtype="unfinished">Help</translation>

    </message>

    然后用release 命令生成指定的qm文件。

    C:Qt4.8.0inlrelease.exe  translate_zh_EN.ts  -qm  translate_zh_EN.qm

     

    这样就能够任意调用不同的qm文件。自由转换软件界面的显示语言了。

  • 相关阅读:
    Http与WWW服务精解
    Http与WWW服务精解
    6-13
    好用的工具说明
    JVM、JRE和JDK三者间的区别和联系
    css进阶之二:flex弹性布局
    MVVM
    如何理解TCP的三次握手协议?
    java里面的设计模式
    linux常用命令
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/6770512.html
Copyright © 2011-2022 走看看