在代码中需要翻译的文本的都需要用下面的方式使用 tr() 括起来。
-
//创建菜单子项
-
manageAction = new QAction(tr("vehicle management"),this);
-
chartAction = new QAction(tr("Sales statistics"),this);
-
quitAction = new QAction(tr("quit"),this);
-
//设置快捷键
-
manageAction->setShortcut(tr("Ctrl+M"));
-
chartAction->setShortcut(tr("Ctrl+C"));
-
quitAction->setShortcut(tr("Ctrl+Q"));
-
//增加菜单项
-
manageMenu = menuBar()->addMenu(tr("Sales management"));
-
//添加子项
-
manageMenu->addAction(manageAction);
-
manageMenu->addAction(chartAction);
-
//创建一个分隔符
-
manageMenu->addSeparator();
-
manageMenu->addAction(quitAction);
-
//再添加一个菜单项
-
passwordMenu = menuBar()->addMenu(tr("Change password"));
2.生成.ts文件
修改.Pro文件,添加下面的内容:
TRANSLATIONS = language.ts
编译程序后,点击更新翻译按钮:
会在项目目录下生成.ts文件:
3.翻译内容
使用Qt自带的工具打开.ts文件
4.生成.qm文件
点击发布翻译按钮:
在项目目录下生成了.qm文件
5.载入翻译文件
-
int main(int argc, char *argv[])
-
{
-
QApplication a(argc, argv);
-
//一定要在界面显示之前载入翻译文件
-
QTranslator *qtTranslator = new QTranslator;
-
if(qtTranslator->load("./language.qm")){
-
a.installTranslator(qtTranslator);
-
}
-
Widget w;
-
w.show();
-
return a.exec();
-
}
以上,就是Qt下使用翻译文件进行国际化的一个具体过程,亲测有效。