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实现语言动态转换的方法。

2011427 Q.P.K Litsoft

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值