QT实现语言切换

来源:互联网 发布:理财软件对比分析 编辑:程序博客网 时间:2024/04/30 09:02
                          QT实现语言切换

       QT GUI提供语言动态转换机制并辅以相应的工具方便programmer实现界面的多语言实时动态切换功能。实现语言动态切换的方法:一个注意+五个步骤。

       一个注意:

       实现QT工程的语言切换功能的一个关键点是所有的字符串都需要tr修饰符。例如:

       m_action_redo->setText(tr("重做"));

    m_action_undo->setText(tr("撤销"));

    m_action_cut->setText(tr("剪切"));

    m_action_palse->setText(tr("粘贴"));

 

    五个步骤:

1、声明并定义函数:voidretranslateUi()。在该函数中对所有需要翻译的控件进行setText属性设置,例如:

voidleadTextEdit::retranslateUi()

{

        m_action_redo->setText(tr("重做"));

        m_action_undo->setText(tr("撤销"));

        m_action_cut->setText(tr("剪切"));

        m_action_palse->setText(tr("粘贴"));

}

注意:这里无所谓tr后面是中文还是英文,重点是需要在这里调用控件的setText方法,以便在使用QT语言翻译工具时可以识别出所有需要翻译的控件。

 

2、使用QT语言翻译工具创建语言文件(.ts文件),如下图:



3、编辑创建的.ts翻译文件为希望进行语言转换的目标文件。

4、编译.ts文件为qm文件,如下图所示



5、选择语言切换时动态加载语言文件

// 当选择中文时加载中文翻译文件

       if (strLan =="CN")

       {

               m_str_lang ="CN";                  m_trns_appTranslator.load(QString("leadpareditcard_zh.qm"),QString("../source/litsoft/tools/leadpareditcard"));

              qApp->installTranslator(&m_trns_appTranslator);

       }

       // 当选择英文时加载英文翻译文件

       elseif (strLan =="EN")

       {

              m_str_lang ="EN";

m_trns_appTranslator.load(QString("leadpareditcard_en.qm"),QString("../source/litsoft/tools/leadpareditcard"));

              qApp->installTranslator(&m_trns_appTranslator);

       }

       this->retranlateUi();

 

以上就是QT GUI实现语言动态转换的方法。

原创粉丝点击