Qt有一個叫做Qt Linguist的工具可以很方便的實現多語言化,具體操作如下:
-
使用Qt菜單上的Create New Translation File...命令創建一個語言文件,可以選擇很多種不同的語言,比如我選擇了中文(zh),生成一個helloqtwindows_zh.ts;
-
找到解決方案中的Translation Files/helloqtwindows_zh.ts,在文件上單擊右鍵,選擇Open with Qt Linguist...命令,用Qt Linguist打開這個文件;
-
在Qt Linguist里面將每一個句子手動翻譯,其中,這些單詞正是我用QObject::tr標出的所有句子;
-
保存,然后在main函數中增加下面一段代碼:
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTranslator translator;
translator.load("helloqtwindows_zh");
app.installTranslator(&translator);
HelloQtWindows w;
w.show();
app.connect(&app, SIGNAL(lastWindowClosed()), &app, SLOT(quit()));
return app.exec();
} -
最后,還是在那個ts文件上單擊右鍵,選擇Run lrelease命令,生成qm文件,這樣再運行程序整個界面就變成中文的了!
這里要注意一下,如果程序在源碼中修改了任何的內容,在發布之前一定在ts文件上面按右鍵,選擇Run lupdate命令重新生成ts文件,Qt會很智能的把所有內容改變的字符串或新增的字符串更新,在Qt Linguist里面的Context視圖中顯示為問號,讓我們一個都不會漏過。真的是方便到家了

