對在Qtopia中新增國際化支援一文補充

2021-08-22 09:06:58 字數 1052 閱讀 6447

經過對qt的分析, 發現實際上qt的原理是將各種文字編碼先轉化為utf8編碼,然翻譯為qm檔案來顯示本地字元!

這裡不使用findstr、msg2qm工具,而採用另外的qt工具lupdate 、lrelease、linguist來完成本地化操作

以qt2/tutorial/t1 作為中文翻譯例子

進行了少部分修改,加入了中文字型支援

lupdate與findstr功能差不多,只是生成xml格式的文字採集文字

config += qt warn_on release

headers =

sources = main.cpp

target = t1

requires=small-config

# 加入需要生成的翻譯檔案,這裡採用中文

translations = t1_zh.ts

執行lupdate t1.pro

就會在當前目錄下生成t1_zh.ts採集的文字檔案了,修改為你採用的編碼文字!

修改後的t1_zh.ts

qpushbutton

hello world!

你好!這個工具是完全圖形話操作的,這裡就不再贅述

在檔案選單選擇release, 提示儲存為qm翻譯檔案即可

使用iconv與lrelease結合來完成linguist的功能

既然知道qt是採用utf8編碼才操作各種文字, 我們就可以借助iconv強大的編碼轉換功能完成同樣的工作! 我是因為linguist在我平台上無法翻譯才只好這麼做!

修改t1_zh.ts後轉換編碼,這裡採用gb2312->utf8轉換.

iconv -f gb2312 -t utf8 t1_zh.ts t1.ts

lrelease翻譯編碼檔案

lrelease t1.ts -qm t1_zh.qm

執行t1

./t1 -qws

顯示中文

要注意的是ts檔案中不能有空格,

翻譯成的qm檔案是不能夠顯示的!

[1]internationalization with q t

[2]qt 國際化程式設計

在Qtopia中新增國際化支援

使用 qt 編寫國際化的程式,最好不要在程式中直接使用特殊編碼的文字。比如要 編寫一中文介面的 qt 程式,應該在程式中使用英文,程式編寫完成後,把文字提取 出來翻譯。這樣,程式還可以根據locale的不同,支援多種語言。下面介紹如何在 qt 程式中標註字串,如何提取並翻譯文字。像普通的國際化過程一...

在Qtopia中新增國際化支援

使用 qt 編寫國際化的程式,最好不要在程式中直接使用特殊編碼的文字。比如要 編寫一中文介面的 qt 程式,應該在程式中使用英文,程式編寫完成後,把文字提取 出來翻譯。這樣,程式還可以根據locale的不同,支援多種語言。下面介紹如何在 qt 程式中標註字串,如何提取並翻譯文字。像普通的國際化過程一...

SpringBoot專案中增加國際化的支援

本文主要描述在springboot專案的後端增加國際化的支援。1.在src main resources目錄下新建i18n目錄並在該目錄下增加國際化檔案。其中,目錄i18n可選且目錄名可以自定義。國際化檔案的檔名為messages.properties,該檔案為預設的語言檔案,當需要增加對其他語言的...