用户界面的 vc++ + QT 翻译不起作用
vc++ + QT translation of UI is not working
我有一个使用 vc++ 的 QT 项目,我需要在 UI 中找到不同语言的字符串。我通过Visual Studio 2012的Visual Studio Add中的QTdesigner创建了一个UI,并且我还安装了QT插件来使用Qt功能。
我创建了一个 .pro 文件并添加了:
SOURCES += main.cpp
TRANSLATIONS += languagefileqt_es.ts
在我生成一个语言学家文件 SOURCES emminensmultiportqt_es.ts 并且它正确检测到我的 IU 中的所有字符串后。之后,我使用 Qtlinguist 的发布功能生成 .qm 文件。
我的资源文件是:
<RCC>
<qresource prefix="MyAppQT">
<file>languagefileqt_es.qm</file>
</qresource>
</RCC>
然后我把它添加到我的主.cpp:
QTranslator translator;
bool loaded = translator.load("languagefileqt_es");
qDebug() << "loaded " << loaded;
a.installTranslator(&translator);
并且加载在所有情况下都返回 true。我的问题是执行应用程序时未转换 UI。这很奇怪,因为它没有效果。
关于我缺少什么或我可以查看什么的任何线索?
多谢
您确定"languagefileqt_es"是您的语言文件的正确名称吗?我希望改为"languagefileqt_es.qm"。
您确定从正确的目录加载吗?除非是从内部编译的资源 (:/languagefileqt_es.qm) 加载的,否则您应该引用绝对路径以确保加载正确的内容。
我发现了问题所在。 感谢@Jens尝试提供帮助。
我想我犯了一个错误,不知道翻译机制是如何工作的。在我的主要.cpp我有:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindowQT w;
QTranslator translator;
bool loaded = translator.load("languagefileqt_es");
qDebug() << "loaded " << loaded;
a.installTranslator(&translator);
w.show();
return a.exec();
}
但我意识到,如果我执行
qDebug() << QApplication::translate("MainWindowQTClass", "...BOARDING", 0);
加载过程完成后,它将返回正确翻译的字符串。所以我在国际化后更改了我的 UI 的定义,它奏效了。显然,翻译是在一个名为retranslateUi()的函数中完成的,该函数在构造函数中调用。
正确的主.cpp应该是:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTranslator translator;
bool loaded = translator.load("languagefileqt_es");
qDebug() << "loaded " << loaded;
a.installTranslator(&translator);
MainWindowQT w;
w.show();
return a.exec();
}
相关文章:
- 我的神经网络不起作用 [XOR 问题]
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- C++为什么尽管我调用了void函数,它却不起作用
- 为什么在保护模式下继承升级不起作用
- 循环在计数器中不起作用
- 在其他文件中创建类时在 c++ 项目中不起作用
- Visual studio代码重构似乎不起作用(例如,重命名符号-f2)
- 为什么二进制搜索在我的测试中不起作用
- 我的代码中有错误吗?使用BGI图形的C++代码对我不起作用
- 为什么 const std::p air<K,V>& 在 std::map 上基于范围的 for 循环不起作用?
- 带有指定长度字符* 参数的 std::regex_search 在 VS2017 中不起作用?
- Bjarne Stroustrup Book - std_lib_facilities.h - 不起作用(未知类型名称)
- 为什么简单的算术减法在"if"条件下不起作用?
- 为什么Stroustup书中的has_f不起作用
- 你能检查一下为什么在这个代码中从链接列表中删除项目不起作用吗
- 嵌套While循环不起作用(C++问题)
- C++Matching Brackets 2解决方案不起作用
- 为什么这段代码不起作用,我该如何解决?
- 用户界面的 vc++ + QT 翻译不起作用