Qt多語言翻譯示例

2021-09-10 09:40:50 字數 3070 閱讀 7865

乙個基礎的翻譯示例和一些注意事項

示例目錄

qttranslation/

├── languages

│ ├── en.qm

│ ├── en.ts

│ ├── languages.qrc

│ ├── zh_cn.qm

│ └── zh_cn.ts

├── main.cpp

└── qttranslation.pro

main.cpp

#include

#include

#include

intmain

(int argc,

char

*ar**)

installtranslator

(&translator)

;qdebug()

<("start"

)<("end");

qdebug()

<("open"

)<("close");

removetranslator

(&translator);if

(! translator.

load

(":/en.qm"))

/* switch language */

installtranslator

(&translator)

;qdebug()

<("start"

)<("end");

qdebug()

<("open"

)<("close");

return0;

}

qttranslation.pro 專案檔案

qt += core

qt -= gui

config += c++11

target = qttranslation

sources += main.cpp

resources += \

languages/languages.qrc

translations += \

languages/en.ts \

languages/zh_cn.ts

zh_cn.ts 中文翻譯檔案

<?xml version="1.0" encoding="utf-8"?>

version

="2.0"

language

="zh_cn"

>

>

>

qobjectname

>

>

>

startsource

>

>

開始translation

>

message

>

>

>

endsource

>

>

結束translation

>

message

>

>

>

opensource

>

>

開啟translation

>

message

>

>

>

closesource

>

>

關閉translation

>

message

>

context

>

ts>

en.ts 英文翻譯檔案

<?xml version="1.0" encoding="utf-8"?>

version

="2.0"

language

="en"

>

>

>

qobjectname

>

>

>

startsource

>

>

starttranslation

>

message

>

>

>

endsource

>

>

endtranslation

>

message

>

>

>

opensource

>

>

opentranslation

>

message

>

>

>

closesource

>

>

closetranslation

>

message

>

context

>

ts>

languages.pri 檔案

>

prefix

="/"

>

>

en.qmfile

>

>

zh_cn.qmfile

>

qresource

>

rcc>

程式輸出

"開始" "結束"

"開啟" "關閉"

"start" "end"

"open" "close"

示例位址

php gettext 多語言翻譯

1 在window與linux下的多語言切換有些區別,主要putenv的設定區別。在window下echo setlocale lang zh cn 而在linux下如果支援該語言,則會輸出設定的內容 windows的php translate include once include setlan...

Qt 筆記 多語言

1 使用命令 lupdate no obsolete main.pro 作用 將main.pro檔案內的所有源程式檔案中的被tr 包裝的字串打包成.ts檔案,此檔案可以使用qt的qt linguist開啟並翻譯 2 使用命令 lrelease main.pro 作用 通過.ts檔案生成.qm檔案,此...

Qt多語言切換

qt多語言切換 在需要被翻譯的字串前面標識tr 如qstring str tr hello,world 這很重要,因為翻譯工具會把原始碼中tr標識的字串提取出來,翻譯成其他語言,如果沒有用tr標識的,不會被工具提取。在介面中輸入的文字,預設已經是加上tr的了,所以在翻譯時也能看見。建議 在程式中的字...