×
Namespaces

Variants
Actions

QML国际化——中文示例

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

代码示例
兼容于
平台:
Symbian

文章
zhouhl 在 17 Nov 2010 创建
最后由 hamishwillee 在 30 Apr 2013 编辑


Contents

引言

在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:

Command.JPG

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

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

Lupdate.PNG


这样就会生成一个名为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文件合并起来。最后的效果如图:

Translation.png 其中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语言设置为英文的时候就是第二副图。

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

ZhCN.JPG


当手机语言设定为英文时:
En.JPG

下载示例程序

Media:displayChinese.zip


相关链接

This page was last modified on 30 April 2013, at 05:38.
692 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×