發布QtCsv檔案轉語言翻譯檔案工具

2021-09-10 12:45:52 字數 2778 閱讀 3821

將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....