QT做國際化幾個步驟

  1. QT做國際化幾個步驟
  2. 生成資源文件
  • 在項目文件下,新建2個這樣名字的.ts文件(主要是en_US, zh_CN這段)

代表根據不同的locale信息對應文本。Udit_字樣是產品名字沒關係

 

  • 選擇項目,選擇菜單上的這個,點擊後自動生成.ts文件

這個功能非常自動化,會掃描所有項目中的.ui文件和代碼中tr(“”)包括起來的字符串內容。

 

  • 可以用QT的工具Linguist,也可以直接用任意文本編輯器,打開.ts文件,如下圖

 

其中,重要的信息如下:

第一塊區域,代表這個文本被哪些界面元素用到了

第二塊source是指目前是什麼值

第三塊,就是當前語言中你要顯示的。(一般,我們修改這個即可)

 

  1. 修改文本好後,生成最終.qm文件。

點擊菜單上:

 

會在剛纔的.ts 同目錄生成文件名一致,擴展名爲.qm的最終資源文件.

 

 

  1. 如何使用最終資源文件

一般的我們在bin目錄下新建locale目錄,將剛纔的2個.qm文件放入。

在代碼中這樣使用

  • App初始化時,找到找到這個qm文件,進行全局設置

 

該函數內容如下:

//設置當前語言環境,入參如下

//zh->

//en->

void SetCurrentLanguage(QString language)

{

    QString strLanguage("zh");

 

    if (strLanguage.isEmpty())

    {

        return;

    }

 

    QString strLanguageFile;

 

    if (strLanguage.compare("en") == 0)

    {

        strLanguageFile = qApp->applicationDirPath() + QString("/locale/udit_en_US.qm");

    }

    else if (strLanguage.compare("zh") == 0)

    {

        strLanguageFile = qApp->applicationDirPath() + QString("/locale/udit_zh_CN.qm");

    }

 

 

    QTranslator* m_translator=new QTranslator();

    if (QFile(strLanguageFile).exists())

    {

 

        m_translator->load(strLanguageFile);

        QApplication::installTranslator(m_translator);

    }

    else

    {

        qDebug() << " language file does not exists ...";

    }

 

}

 

當然具體怎麼樣,完全可以自行修改。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章