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文件。自由转换软件界面的显示语言了。

  • 相关阅读:
    leetcode 122. Best Time to Buy and Sell Stock II
    leetcode 121. Best Time to Buy and Sell Stock
    python 集合(set)和字典(dictionary)的用法解析
    leetcode 53. Maximum Subarray
    leetcode 202. Happy Number
    leetcode 136.Single Number
    leetcode 703. Kth Largest Element in a Stream & c++ priority_queue & minHeap/maxHeap
    [leetcode]1379. Find a Corresponding Node of a Binary Tree in a Clone of That Tree
    正则表达式
    十种排序算法
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/6770512.html
Copyright © 2011-2022 走看看