• QML基础——QML国际化(中文示例)


    在Qt程序中如何使用多国语言已经在《Qt的国际化和本地化》 这篇文章中有所介绍,本文则针对如何对出现在QML中的字符串进行国际化进行专门介绍。
    本本将通过一个很小的中文例子程序,向大家一步步讲解如何使得出现在QML代码中的字符串显示成中文。示例程序可通过本文末尾所附链接下载。更多阅读可以参照“QML的国际化

    修改pro

    在Qt的pro文件中首先加入以下几行:

    CONFIG += localize_deployment
    SYMBIAN_SUPPORTED_LANGUAGES += zh_CN
    SYMBIAN_LANG.zh_CN = 31

    TRANSLATIONS = displayChinese_zh_CN.ts

    其中CONFIG += localize_deployment是为了可以为应用程序添加中文名称。

    然后加入以下几行:

    symbian {
    addFiles.sources = qml/displayChinese/displayChinese_zh_CN.qm
    addFiles.path = .
    DEPLOYMENT += addFiles
    }

    这是为了程序在手机上能够找到需要的qm文件

    标记字符串

    出现在QML 中的字符串如果需要翻译则可以通过使用 qsTr(), qsTranslate(), QT_TR_NOOP(), 或QT_TRANSLATE_NOOP() 来进行标记。例如在本例程中:

    Text {
    text: qsTr("display Chinese character.")
    anchors.centerIn: parent
    }

    使用了 qsTr()。 只有这样做过标记之后,translator才知道“display Chinese character”。是需要被翻译的,以便于后面进行处理

    生成中文目标语言的ts文件

    首先需要启动命令行,例如如果我们安装的是QtSDK 1.1 beta 则启动下图所示command prompt:

    在命令行中进入我们项目的根目录,然后输入以下命令:

    lupdate qml/displayChinese/main.qml -ts qml.ts

    这样就会生成一个名为qml.ts的文件了.

    然后我们在命令行中继续输入:

    lupdate displayChinese.pro -ts app.ts

    从而生成app.ts文件

    翻译

    用Qt Linguist打开上一步生成的qml.ts 和 app.ts,将我们翻译的文字输入进去即可,最后保存文件,完成。 然后在命令行中输入:

    lconvert app.ts qml.ts -o displayChinese_zh_CN.ts

    这是为了将两个ts文件合并起来。最后的效果如图:

    其中QtApplicationCaptions就是指的程序呈现在用户面前的名称(我们这里起名叫QML中文应用程序),而QtPackageNames是指的安装sis时给用户的提示信息中的名称。

    生成运行时所需的qm文件

    上一步做完之后,我们点选择File 菜单中的release就可以生成qm文件了。

    加载翻译文件

    要想使得翻译起作用,还需要在Qt程序的main函数中进行设定,例如:

    QString locale = QLocale::system().name();
    QTranslator translator;
    bool success = translator.load( QString("displayChinese_") + locale);
    app.installTranslator(&translator);

    至此,整个示例程序就完成了,下面我们看一下效果。

    程序截图

    本程序对QML中的字符串进行了多语言处理,并且给应用程序起了一个中文名字,只是没有处理软键,不过原理都是一样的,具体可以参阅《Qt的国际化和本地化》 。

    下面是示例程序在N8上截图,当我们的N8语言设置为中文的时候就是第一幅图,当我们的N8语言设置为英文的时候就是第二副图。

    当手机语言设定为中文时:

  • 相关阅读:
    【数据库领域】mysql中in与or对比
    数据库优化
    数据库-索引
    数据库-事务
    数据库-视图
    数据库设计
    数据库编程提高
    数据库高级操作
    数据库基本操作
    with-上下文管理器
  • 原文地址:https://www.cnblogs.com/hicjiajia/p/2332250.html
Copyright © 2020-2023  润新知