zoukankan      html  css  js  c++  java
  • Localization in QT

    Localization,在VC中,我们通常是创建一个Resource DLL,然后在添加各种资源,之后我们可以在程序中载入这个Resource DLL并加载这些资源。

    VC中的资源由*.rc, resource.h来定义,如果还对应着外部文件,在必须有外部文件,并在*.rc中声明它的路径,比如bitmap等,都是这样干的。

    这几天在搞QT,发现QT做localization的方案不错,和我知道的某个软件有异曲同工之妙:

    >> 在代码中以tr(“Need LCSZ”)声明这个字符串需要Localize;

    >> 用lupdate.exe来解析代码文件,将所有tr表示的字符串抽取出来,生成一个*.ts文件;

    从下面的ts文件我们可以看出,它记录了一些需要localize的字符串

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE TS>
    <TS version="2.0" language="zh_CN">
    <context>
        <name>QC_ActionGetEnt</name>
        <message>
            <location filename="../src/plugins/intern/qc_actiongetent.cpp" line="37"/>
            <source>Select object:</source>
            <translation>选择对象:</translation>
        </message>
        <message>
            <location filename="../src/plugins/intern/qc_actiongetent.cpp" line="44"/>
            <source>Cancel</source>
            <translation>取消</translation>
        </message>
    </context>
    <context>
    

    >> 在QT linguist中打开这个文件,对所有被tr()函数标记的字符串进行翻译,并发布翻译包。

    >> 调用lrelease生成*.qm文件,作为语言包。

    QT的这个方法还是不错的,尤其便于跨平台开发,而且也比较方便,只需要把需要localize的字符串用tr包围就够了,其他的事情就可以交给做Localization的工程师了。

    好,值得借鉴。

    - Piaoger

  • 相关阅读:
    状压dp(基础)
    JVM调优实战
    MySql5.6性能优化
    淘淘商城_day09_课堂笔记
    【剑指offer】找出数组中任意一个重复的数字,C++实现
    【剑指offer】字符串转换为数字,C++实现
    【剑指offer】圆圈中最后剩下的数字(约瑟夫问题),C++实现
    【剑指offer】扑克牌的顺子,C++实现
    【剑指offer】n个骰子的点数,C++实现
    android webview 漏洞背后的节操
  • 原文地址:https://www.cnblogs.com/piaoger/p/2106957.html
Copyright © 2011-2022 走看看