Qt切换多国语言,简单的流程记录。

本文详细介绍Qt项目中实现多语言支持的方法,包括使用QTranslator加载qm文件,更新翻译及生成ts文件的过程。通过具体代码示例,展示了如何在程序启动前加载翻译文件,确保界面元素正确显示翻译后的文本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  Qt项目涉及语言切换,语言翻译,QTranslator是最常见的做法,在程序加载之前就需要加载好qm翻译文件,这样被tr( )包裹的字符串就会设置为翻译的内容。

  具体在程序pro文件里加上以下宏,在更新翻译的时候会生成ts文件方便用qt语言家工具进行翻译。


TRANSLATIONS = ts/XX.ts\ #中文简体
               ts/XX.ts\  #英文
               ts/XX.ts\  #中文繁体
               ts/XX.ts\  #越南语
               ts/XX.ts\  #日语
               ts/XX.ts\  #韩语
               ts/XX.ts   #孟加拉语

   点击更新翻译

  再打开语言家,可以同时打开多个ts文件进行翻译

  翻译好之后,需要使用添加以下代码就好,点击发布翻译就会生成对应的qm文件,下一步加载它就好。

//更新翻译文件的具体代码
if (m_mainwindow->m_translator) {
    qApp->removeTranslator(m_mainwindow->m_translator);
    delete m_mainwindow->m_translator;
    m_mainwindow->m_translator = NULL;
}
//英文 
m_mainwindow->m_translator = new QTranslator(m_mainwindow);
m_mainwindow->m_translator->load(languageFilePathL + "xx.qm");
if (! m_mainwindow->m_translator->isEmpty()) {
    m_mainwindow->m_translator->setObjectName(tr("英文"));
    qApp->installTranslator(m_mainwindow->m_translator);
    m_mainwindow->signalUpdateUI();//要对界面元素进行重新设置text
} else {
    qDebug() <<"英文 m_translator->isEmpty()";
}

需要注意的是,程序必须在应用程序的小部件之前创建翻译器,不然切换的时候界面文字时不会更改的,需要对文字进行重新设置,例如:

    openFileAction->setText(tr("打开文件"));    ///打开文件
    saveFileAction->setText(tr("保存文件"));    ///保存文件
    saveAsFileAction->setText(tr("另存为"));  ///另存为文件
    closeFileAction->setText(tr("关闭当前文件"));  ///另存为文件
    setLanguageAction->setText(tr("设置语言")); ///设置语言
    aboutAction->setText(tr("关于"));      ///打开关于

以上就是简单的Qt程序界面语言翻译的流程,主要步骤是这样。下一篇写一下简单的语言设置对话框。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值