將csv格式檔案轉換為qm翻譯檔案,中間無需干預手動干預ts檔案即可完成翻譯檔案的製作。我們做qt翻譯檔案時候一般使用
lupdate xx.pro
生成ts檔案,再根據翻譯使用qt linguist manual工具修改ts後再使用lrelease *.ts
生成對應的qm檔案。這一過程略顯繁瑣,作者的本意是簡化該流程並能提供乙個通用的翻譯文字格式(csv)給翻譯人員使用;
本工具是通過csv翻譯檔案翻譯到qm檔案的工具,簡單易用;
keyzh_cn
enstart
開始start
end結束
end
static
bool
convert
(qlist source, qstring language, qstring outputfile)
convert
(csvcontexts,
"zh_cn"
,"zh_cn.ts");
//將zh_cn列翻譯轉換為zh_cn.ts檔案
convert
(csvcontexts,
"en"
,"en.ts");
//將en列翻譯轉換為en.ts檔案
static qstring convertcontext
(qlist source, qstring contexttitle, qstring language)
目錄
csv2qm/
├── csv2qm.pro
├── csv.cpp
├── csv.h
├── main.cpp
└── translation.csv
main.cpp
#include
"csv.h"
#include
#include
#include
#include
const qstringlist languages =
;static qstring convertcontext
(qlist source, qstring contexttitle, qstring language)
else
context +
=qstring
("\t\n\t\t%1\n\t\t%2\n\t\n").
arg(item[
"source"].
tostring()
).arg(item[
"translation"].
tostring()
);} context +
=qstring
("\n");
return context;
}static
bool
convert
(qlist source, qstring language, qstring outputfile)
intmain
(int argc,
char
*ar**)
csv csvor;
csvor.
open
(file)
; qlist csvcontexts = csvor.
readall()
;if(csvcontexts.
isempty()
)convert
(csvcontexts,
"zh_cn"
,"zh_cn.ts");
convert
(csvcontexts,
"en"
,"en.ts");
if(system
("lrelease *.ts")==
0)qdebug()
<<
"success!!!"
;else
qdebug()
<<
"failed!!!"
;return0;
}
csv.cpp
#include
"csv.h"
#include
#include
csv::
csv(
)bool csv::
open
(const qstring &filename)
else
}qlist csv::
readall()
qvariantmap item;
for(
int i =
0; i < contents.
count()
; i++
) data.
(item);}
return data;
}
translation.csv 檔案key
zh_cn
enstart
開始start
end結束
endopen
開啟open
close
關閉close
Godot 建立翻譯檔案 常量表
版本 godot 3.1.2 godot的ui系統封裝的很難受,一些東西很難改動,比如這個acceptdialog的 確定 取消 按鈕,特別是在編輯器本身還有bug的情況下 其屬性中不能直接修改acceptdialog的 確定 取消 可以通過新增翻譯檔案來解決,而國際化也是現在很多遊戲的需求 首先建...
QT qrc資源檔案和 qm翻譯檔案
1 qrc 資源檔案用來儲存各個的路徑的,如 2 參考 文章新增資源檔案。3 qm 檔案用來qt 程式切換語言使用的。4 pro 檔案裡面新增 translations language.ts 載入翻譯檔案 qtranslator qttranslator new qtranslator if qt...
Qt翻譯檔案結合VS實現語言切換(多語言國際化)
qt 多語言國際化主要體現在介面的語言切換,語言切換的主體,即介面中需要翻譯的元素,要放在 qobject tr qobject trutf8 函式 確定了翻譯的主體後,就要對這些待翻譯元素進行翻譯,完成翻譯後會生成 qm檔案 當介面要切換語言時,只需要載入 qm檔案即可。翻譯的過程主要分三步 1....