Qt專案翻譯漢化
阿新 • • 發佈:2020-10-20
Qt專案翻譯中文化會涉及到qt基礎庫的漢化。
一、漢化步驟 - 針對普通漢化
1.在程式原始碼中標識需要翻譯的文字資訊
對使用者可見的文字資訊使用tr()進行封裝。 舉例如下:label->setText(tr("Hello"));
2.通過Qtcreator生成.ts翻譯檔案
如果翻譯檔案位置為 translations/kylin-scanner.zh_CN.ts,
在工程檔案中新增: TRANSLATIONS = translations/kylin-scanner.zh_CN.ts工具->外部->Qt語言家->更新翻譯(lupdate)
3.通過翻譯工具(Linguist), 對.ts檔案進行翻譯, 釋出生成.qm二進位制檔案
4.在原始碼中載入.qm檔案, 實現漢化
QTranslator translator;
QString locale = "/usr/share/kylin-scanner/translations/kylin-scanner."
+ QLocale::system().name();
qDebug() << locale ;
translator.load(locale);
a.installTranslator(&translator);
二、漢化步驟 - 針對Qt5基礎庫漢化
在檔案對話方塊,如儲存檔案對話方塊或者開啟檔案對話方塊,往往會出現部分未漢化的情況(未漢化“cancel”按鈕)。
- 在qt基礎庫中找到原始碼的.ts翻譯檔案
我使用的qt版本為5.14.2,所以翻譯檔案目錄為 Qt5.14.2/5.14.2/Src/qttranslations/translations/qt_zh_CN.ts
- 找到要複製翻譯的內容並複製到負責的專案中
如要漢化專案中的“cancel”按鈕和檔案對話方塊中的內容,將 qt_zh_CN.ts 的相關內容複製到專案的translations/kylin-scanner.zh_CN.ts檔案的末尾處。
3.通過翻譯工具(Linguist), 對.ts檔案進行翻譯, 釋出生成.qm二進位制檔案
<context> <name>QPlatformTheme</name> <message> … <message> <message> <location line="+18"/> <source>Cancel</source> <translation>取消</translation> <message> <context> <context> <name>QFileDialog</name> <message> … <message> <context>
4.在原始碼中載入.qm檔案, 實現漢化,見一中的第4步。