用途
将代码中的文字提取出来,方便后续按用户要求更改。
步骤
- 在.pro文件中添加语言文件路径
TRANSLATIONS += .\tcd_language_English.ts \
.\tcd_language_Chinese.ts
-
生成ts:在QTCreate中选择工具 》外部 》Qt语言家 》更新翻译
-
用QT自带的Linguist查看ts文件。在弹出的语言翻译界面中,添加适当的翻译语言。
-
发布生成qm文件:在QTCreate中选择工具 》外部 》Qt语言家 》发布翻译。
-
在资源文件.qrc中添加生成的qm文件。
-
代码加载到程序中。
// 多个qm语言文件添加:使用多个QTranslator对象
QTranslator SysTranslator1;
QTranslator SysTranslator2;
SysTranslator1.load(QString(":/Resource/qt_zh_CN.qm"));
SysTranslator2.load(QString(":/Resource/tcd_language_English.qm"));
a.installTranslator(&SysTranslator1);
a.installTranslator(&SysTranslator2);
更新方式
- 在QT Linguist中找到对应要修改的条目。
- 填写翻译信息。
Tricks
tr()中字符串为变量:tr("%1").arg()
tr(QString())
会导致QT Linguist无法识别
代码中源文有变量的,在翻译文本中可写也可不写。
源文:tr("已录制预设时间%1分钟").arg(time);
翻译文本可写成:tr("预设时间到。")
或 tr("预设%1分钟。")