1. 程式人生 > 實用技巧 >Qt專案翻譯漢化

Qt專案翻譯漢化

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”按鈕)。

  1. 在qt基礎庫中找到原始碼的.ts翻譯檔案

我使用的qt版本為5.14.2,所以翻譯檔案目錄為 Qt5.14.2/5.14.2/Src/qttranslations/translations/qt_zh_CN.ts

  1. 找到要複製翻譯的內容並複製到負責的專案中

如要漢化專案中的“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步。