即时翻译Qt QML应用程序
Translate Qt QML application on the fly
我正在尝试翻译一个填充
tr("string");
到处都是,如果我在应用程序启动之前设置翻译器,它可以完美运行,但我在飞行中遇到了麻烦。唯一的解决方案似乎是空字符串黑客,但我不想搜索每个"tr"并添加空字符串
在Qt 5.9之前,最简单的解决方案是为每个可翻译的字符串添加一个空字符串: 如何在QML中进行动态翻译
从Qt 5.10开始,可以通过调用以下命令重新翻译所有字符串: QQmlEngine::retranslate
更多信息可以在QtQuick国际化文档中找到:
您可以更改Qt翻译功能使用的语言 添加和删除转换器
QCoreApplication::installTranslator()
和QCoreApplication::removeTranslator()
.之后你可以打电话QQmlEngine::retranslate()
触发刷新所有绑定 使用翻译。因此,您的用户界面将切换, 动态地,到新选择的语言。或者,您也可以将
QEvent::LanguageChange
事件转发到 应用程序的 QQmlEngine 实例或将您自己的信号连接到QQmlEngine::retranslate()
。
请注意,在撰写本文时,只有Qt 5.10的测试版可用。
相关文章:
- Surface Pro平板电脑上的QML应用程序键盘行为
- 如何隐藏最大化和最小化按钮并在qml应用程序窗口中显示关闭按钮?
- 如何在QML应用程序中显示本机窗口?
- 将 Qml/C++ 应用程序创建为插件
- 当删除上下文属性中的QLIST对象时,QT QML应用程序崩溃
- QML&C++应用程序中的绑定循环问题
- 即时翻译Qt QML应用程序
- QML应用程序编译一个 *form.ui.qml文件,但忽略了关联的.qml文件
- 如何通过QT 5.6设置QML应用程序窗口透明
- BlackBerry 10 QML应用程序在数据源负载上崩溃
- 将QT QML应用程序部署到Windows上显示了一个空白窗口
- 如何将鼠标/光标添加到非触摸手机的QML应用程序中
- 可以使用缓存使QML应用程序“离线支持”
- Qt qml 应用程序增加内存使用量
- 在C++中扩展 QML 应用程序窗口
- 在Windows上部署QML应用程序的正确方法
- QML 应用程序崩溃;如何调试
- QML C++应用程序中,反之亦然
- QML应用程序
- QML应用程序vs QML/ c++应用程序