ps很多場景需要我們編寫的應用程序支持不同的語言.
qt內置了對於界面以及交互字符串的翻譯
首先在我們代碼里面使用到的字符串應使用tr("test"); 包起來.
若如動態插入的字符串.應使用QString("%1").arg(tr("test")).
建議最好在寫的時候就寫英文,然后通過翻譯實現中文等其他語言.
pro文件加入這行:
TRANSLATIONS += en.ts ch.ts
en.ts 表示英語 ch.ts 表示中文
然后
依次選擇.點擊更新翻譯,這時候我們去項目目錄下會生成對應的en.ts 和ch.ts 兩個文件
在使用qt自帶的翻譯軟件(H:\Qt5.6.3\5.6.3\mingw49_32\bin\linguist.exe)ps:每個人電腦qt安裝路徑不同,選取自己電腦路徑.或者直接在windows界面搜索linguist也可以找到
打開軟件 加載這2個文件進行翻譯,翻譯完成保存
最后我們再回到qt使用發布翻譯
這時候會在項目目錄生成對應的en.qm 和ch.qm.
翻譯至此就完成了.
程序main函數加入划線這幾句即可加載剛剛翻譯的對應文件.
動態翻譯:
寫一個槽函數
void MainWindow::setLanguage(QString &language_type)
{
QTranslator trans;
if(language_type == "xxx"){
trans.load("H://en.qm");
}else{
trans.load("H://ch.qm");
}
qApp->installTranslator(&trans);
ui->retranslateUi(this);
}
配置文件寫注冊表.INI.文本.數據庫隨意.讀出來解析下就行了.