静态翻译流程
一、在cpp中将待翻译字段使用tr()
labTotal->setText(QString(tr("Total:%1")).arg(rows)); QMenu* pMenuHelp = new QMenu(tr("Help")); QMenu* pMenuLanguage = new QMenu(tr("Language"));
二、生成pro文件
三、在 pro 中加上 TRANSLATIONS
在 pro 中加上 TRANSLATIONS 设置,如 TRANSLATIONS += trans_zh_CN.ts,可以设置多个,每个对应生成的 ts 文件名
TRANSLATIONS += qrc/language/en_CN.ts\
qrc/language/zh_CN.ts
四、生成ts文件
五、打开Liguist进行翻译并生成 qm文件
1、翻译未翻译项,并确认
2、保存当前翻译
3、发布生成qm文件
六、加载qm文件到进程中
国际化多语言翻译知识点
-
翻译非Qt类
如果要使一个类种的字符串支持国际化,那么该类或者继承自QObject类或者使用Q_OBJECT宏。而对于非Qt类,如果要支持翻译,需要在类定义的开始使用Q_DECLARE_TR_FUNCTIONS()宏,例如:
class MyClass
{
Q_DECLARE_TR_FUNCTIONS(MyClass)
public:
MyClass();
...
}
-
tr 多个相同的源内容需要翻译成不同的 目标翻译
-
程序安装qm文件