zoukankan      html  css  js  c++  java
  • qt翻译和国际化的探讨。

    这段时间一直都在怼qt的国际化,以前也接触过国际化,但是感觉不是那么的深刻,这次是因为一个项目要做一个国际化的版本,代码里面是不能出现中文的,所以就翻译了一下。qt用的是4.8.6 64位的,IDE(集成开发环境)用的是vs2010。

    我就把我操作的流程在这里给大家说一遍,按照我这么做的话肯定是没有什么问题,其实就是需要两个文件,一个是ts文件,一个是qm文件。

    第一步需要在pro文件中加上一段话。

    TRANSLATIONS    +=  offlinedataquery_zh.ts

    文件名其实可以自己去定的,我这里因为是项目需要名称定的是offlinedataquery_zh,这个zh是表示中文翻译,如果你有其他语言的需要也可以定义其他,比如日语可以定义jp都可以。

    第二步找到qt的bin目录,这个可以用cmd。

    然后执行

    lupdate offlinedataquery.pro

    这里文件还是要找准路径才行。

    这里就会在根目录下生成一个ts文件。

    然后再执行

    lrelease offlinedataquery_zh.ts

    这个时候就生成了一个qm文件,这个就是我们在代码中需要加载的文件

        QTranslator* Translator = new QTranslator;
        QString tmp_gcdir = QObject::tr(getenv("GCDIR"));
        QString tmp_trans = tmp_gcdir + "/translations/offlinedataquery_zh.qm";
        Translator->load(tmp_trans);
        app.installTranslator(Translator);

    这样就可以翻译成功了。

    但是我这边有个问题有个问题,ts中文中好像不是每一个tr()都能翻译过来,所以我只能自己去添加。

        <message utf8="true">
            <location filename="seltimedlg.ui" line="47"/>
            <source>WAMS substation</source>
            <translation>WAMS子站</translation>
        </message>

    按照这样的格式去添加就可以了,最后再执行一遍lrelease offlinedataquery_zh.ts,再次生成qm文件就可以了。

    整个流程就是这样的 希望对您有帮助,其实也不难,就是要耐心一点就可以了!!!

  • 相关阅读:
    BZOJ 1096: [ZJOI2007]仓库建设
    【BZOJ1008】越狱(排列组合计数,容斥原理)
    【BZOJ1403】Divisibility Testing(数论)
    【BZOJ1225】求正整数(数论)
    高精度模板(From JCVB)
    【NOIP模拟&POJ2152】灰色的果实(树形DP)
    【BZOJ2560】串珠子(状压DP,容斥原理)
    【POJ1185】炮兵阵地(状压DP)
    【POJ3254】Corn Fields(状压DP)
    【POJ3311】Hie with the Pie(状压DP,最短路)
  • 原文地址:https://www.cnblogs.com/joorey/p/11804779.html
Copyright © 2011-2022 走看看