繁体   English   中英

快速翻译Qt QML应用程序

[英]Translate Qt QML application on the fly

我正在尝试翻译一个充满的Qt QML应用程序

tr("string");

在整个地方,如果我在应用启动之前设置了转换器,它就可以完美运行,但是我在进行过程中遇到了麻烦。 唯一的解决方案似乎是空字符串hack,但我不想搜索每个“ tr”并添加空字符串

在Qt 5.9之前 ,最简单的解决方案是在每个可翻译字符串中添加一个空字符串: 如何在QML中进行动态翻译

从Qt 5.10开始 ,可以通过调用以下QQmlEngine::retranslate重新转换所有字符串: QQmlEngine::retranslate

可以在QtQuick国际化文档中找到更多信息:

您可以通过使用QCoreApplication::installTranslator()QCoreApplication::removeTranslator()添加和删​​除转换器来更改Qt转换功能使用的语言。 之后,您可以调用QQmlEngine::retranslate()来触发所有使用翻译的绑定的刷新。 结果,您的用户界面将动态切换到新选择的语言。

或者,您也可以将QEvent::LanguageChange事件转发到应用程序的QQmlEngine实例,或者将自己的信号连接到QQmlEngine::retranslate()

请注意,在撰写本文时, 仅Qt 5.10的beta版本可用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM