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步。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM