Qt國際化和CMake 如何更新 ts

2021-10-24 04:06:42 字數 1192 閱讀 4647

ts檔案需要自己先生成。

#需要載入翻譯工具

find_package(qt5linguisttools required)

#獲取所有的翻譯ts檔案

set(ts_dir "$/../translations")

file( glob ts_files $/*.ts)

##編譯時更新.ts .qm

foreach(_ts_file $)

execute_process(

command $ -recursive $ -ts $)

execute_process(command lrelease $)

endforeach()

##lupdate end

不要丟失它們(qt internationalization and cmake: how to update *.ts 

我有這個 cmakelists.txt 在目錄與翻譯檔案( *。ts ):

set(translations 

lang_de.ts

lang_en.ts

) find_package(qt5linguisttools)

qt5_add_translation(qm_files $ )

set(qm_files $ parent_scope)

add_custom_target(all depends $ )

它從構建 *.qm > *.ts 。

但我想改進這個,並得到兩個自定義目標,

乙個用於將原始檔中的新字串附加到 ts 檔案中,乙個用於重新整理 ts 。最後乙個將從源更新 ts ,並從 ts 中刪除​​過時的字串。

我已嘗試在上面的行之後新增:

add_custom_target() 

add_custom_target(

ts_refresh

生成第乙個ts檔案

在 .pro檔案中新增

translations目錄需要提前建立

translations += ./translations/專案名稱.ts
lupdate  專案 .pro

就會自動生成 專案.ts檔案

lrealse生成.qm檔案

QT國際化支援

為了是我們的qt程式支援如中文等其他語言,通常的做法是在需要翻譯的地方顯示的用tr標記,所以你在閱讀其他人編寫的源程式時會看到很多字串做了tr標記,這樣做是有原因的。1.在hello.pro檔案中增加 translations hello zh cn.ts 2.進入工程目錄,執行 lupdate h...

QT國際化 小結

qt應用程式的國際化問題,應該總的來說還是比較容易的,如果你原始碼中沒有使用漢字,直接使用英文,這個問題就不大,下面我講的是通過在原始碼中直接使用中文 就是本地化了的 然後把中文翻譯成別的文字而言的 例如加密文字 大致分這麼幾個步驟,基本與對英文進行國際化的步驟差不多 這裡是針對windows平台的...

qt國際化程式設計

下面說一下qt國際化程式設計的操作步驟 1 編寫源 2 在 pro檔案中新增translations ts 有多少中語言就新增多少個ts檔案。3 執行lupdate pro 生成ts檔案。lupdate會根據源 中的內容提取出待翻譯的字段,然後生成ts檔案,ts檔案是xml格式的。4 用qt lin...