国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

QML基礎——QML國際化(中文示例)

2019-11-06 06:42:26
字體:
來源:轉載
供稿:網友

QML基礎——QML國際化(中文示例)

在Qt程序中如何使用多國語言已經在《Qt的國際化和本地化》 這篇文章中有所介紹,本文則針對如何對出現在QML中的字符串進行國際化進行專門介紹。本本將通過一個很小的中文例子程序,向大家一步步講解如何使得出現在QML代碼中的字符串顯示成中文。示例程序可通過本文末尾所附鏈接下載。更多閱讀可以參照“QML的國際化”

修改PRo

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

CONFIG += localize_deploymentSYMBIAN_SUPPORTED_LANGUAGES += zh_CNSYMBIAN_LANG.zh_CN = 31 TRANSLATIONS = displayChinese_zh_CN.ts

其中CONFIG += localize_deployment是為了可以為應用程序添加中文名稱。

然后加入以下幾行:

symbian {addFiles.sources = qml/displayChinese/displayChinese_zh_CN.qmaddFiles.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語言設置為英文的時候就是第二副圖。

當手機語言設定為中文時:


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 德惠市| 佛坪县| 泰州市| 南江县| 鄂尔多斯市| 揭阳市| 镇康县| 永年县| 平阳县| 洛宁县| 岢岚县| 克什克腾旗| 莱西市| 宣武区| 武陟县| 成武县| 青田县| 满城县| 海安县| 靖安县| 赞皇县| 呼伦贝尔市| 潞城市| 双辽市| 吉木乃县| 灵武市| 太谷县| 普定县| 翁牛特旗| 元氏县| 台北市| 辽宁省| 桑植县| 三江| 隆昌县| 玉龙| 张家港市| 眉山市| 长岭县| 高要市| 玉门市|