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 ...";

    }

 

}

 

当然具体怎么样,完全可以自行修改。

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