QML基礎 QML國際化 中文示例

2021-06-14 17:34:47 字數 1563 閱讀 6120

**:

在qt的pro檔案中首先加入以下幾行:

config += localize_deployment

symbian_supported_languages += zh_cn

symbian_lang.zh_cn = 31

translations = displaychinese_zh_cn.ts

其中config += localize_deployment是為了可以為應用程式新增中文名稱。

然後加入以下幾行:

symbian
這是為了程式在手機上能夠找到需要的qm檔案

出現在qml 中的字串如果需要翻譯則可以通過使用 qstr(), qstranslate(), qt_tr_noop(), 或qt_translate_noop() 來進行標記。例如在本例程中:

text
使用了qstr()。 只有這樣做過標記之後,translator才知道「display chinese character」。是需要被翻譯的,以便於後面進行處理

首先需要啟動命令列,例如如果我們安裝的是qtsdk 1.1 beta 則啟動下圖所示command prompt:

在命令列中進入我們專案的根目錄,然後輸入以下命令:

這樣就會生成乙個名為qml.ts的檔案了.

然後我們在命令列中繼續輸入:

這是為了將兩個ts檔案合併起來。最後的效果如圖:

上一步做完之後,我們點選擇file 選單中的release就可以生成qm檔案了。

要想使得翻譯起作用,還需要在qt程式的main函式中進行設定,例如:

qstring locale = qlocale::system().name();

qtranslator translator;

bool success = translator.load( qstring("

displaychinese_

") + locale);

至此,整個示例程式就完成了,下面我們看一下效果。

本程式對qml中的字串進行了多語言處理,並且給應用程式起了乙個中文名字,只是沒有處理軟鍵,不過原理都是一樣的,具體可以參閱《qt的國際化和本地化》 。

下面是示例程式在n8上截圖,當我們的n8語言設定為中文的時候就是第一幅圖,當我們的n8語言設定為英文的時候就是第二副圖。

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

QML的國際化

在qml中可以使用qstr qstranslate qt tr noop 和qt translate noop等函式將字串標記為可翻譯的。text這些函式是標準的qtscript函式,在qsscriptengine installtranslatorfunctions 函式的幫助文件處可以檢視詳細資...

玩轉Qml 4 I18n動態國際化

多國語言版本 i18n 是 internationalization 國際化 的首尾字元加中間的 18 個字元。隨著產品越做越大,要推向國際的時候,國際化這一步 是必不可少的。i18n 的方案有很多,這裡只討論在qt qml中的方案。玩轉qml 系列文章,配套了乙個優秀的開源專案 taoquick ...

95 國際化 中文和英文

1.在src下建立3個檔案 resource.properties resource zh cn.properties resource en us.properties 第乙個是預設檔案,第二個是中文檔案,第三個是英文檔案。注意紅色部分是自定義的,可以隨便定義,但是必須保持一致。2.需要在stru...