Qt Localization QMainWindow
Qt Localization QMainWindow
我的项目文件夹目前是这样设置的:
-root
---[source files]
---Translations
------app_en.ts
------app_en.qm
------app_fr.ts
------app_fr.qm
------app_jp.ts
------app_jp.qm
我的。pro文件:
#-------------------------------------------------
#
# Project created by QtCreator 2014-03-18T15:15:40
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = TestApp
TEMPLATE = app
SOURCES += main.cpp
mainwindow.cpp
TRANSLATIONS=Translations/app_en.ts
Translations/app_fr.ts
Translations/app_jp.ts
CODECFORSRC = UTF-8
HEADERS += mainwindow.h
FORMS += mainwindow.ui
在我的main.cpp中,我试图强制翻译成JP:
#include "mainwindow.h"
#include <QApplication>
#include <QTranslator>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTranslator translator;
translator.load("app_jp");
a.installTranslator(&translator);
MainWindow w;
w.show();
return a.exec();
}
但是主窗口仍然是英文的。也许我误解了文档,但是我们如何为应用程序强制使用特定的本地?我的构建输出文件夹中有.qm文件(我将它们复制到构建输出文件夹的根目录中)
可能您提供了翻译,但没有标记为完成。检查app_jp.ts
(它是一个xml),您将有type="unfinished"
的条目。清除这面旗帜。也许你也可以从Qt语言工具(我不记得这个选项在哪里)。
查看本教程
还要添加一些日志(以验证translator是否正确加载):
bool translatorLoaded = translator.load("app_jp");
if (!translatorLoaded)
qWarrning("Problem loading translation file");
相关文章:
- QMainWindow 不会在条件块中打开
- 如何逐步更新QMainWindow
- 命令行参数在不到 3 个 LOC 中 int?
- 如何从另一个类编辑 QMainWindow UI 小部件?
- 类 QLayout 和类 QMainWindow Qt c++ 之间的继承
- 如何在Qt Designer UI文件中清除QMainWindow的几何标记
- 对 QMainWindow 使用 std::unique_ptr 时退出时出现 QT 应用程序分段错误
- 如何使用OpenGL渲染到一个QMainWindow的两个QWidget?
- QDialog 不会保留在父 QMainWindow 之上
- setWindowState from QMainWindow from QWidget
- 使用 QMainWindow 作为超类切换应用程序"states"
- 将 QMainWindow 中的 enterPressed() 连接到 Button clicked()
- QMainWindow 不是 .show() 但 .showFullScreen() 可以工作
- QMainWindow 类和 QDialogue 类之间的交互
- 如何从QMainWindow中的一组小部件上使用QPainter绘制特定的小部件
- 如何在QMainWindow的默认布局中排列项目?
- 保持自定义的QabtractiTemmodel为QMainWindow的寿命
- 是否可以制作一个未经装饰的“QMainWindow”
- 在析构函数之后打开新的QMainWindow崩溃
- 在程序启动时选择不同的QMainWindow,但面临奇怪的QMessageBox exec()行为