.bat文件执行cmd命令生成qt翻译文件ts和qm
2021-08-25 本文已影响0人
c之气三段
生成ts
E:
cd E:\Qt5.12\5.12.2\msvc2017_64\bin
start lupdate.exe -verbose -pro G:\FNoise\src\GuiFrameWork\GuiFrameWork.pro -ts C:\Users\Administrator\Desktop\22222\ANAS_zh_CN.ts
:pause
转换成qm
E:
cd E:\Qt5.12\5.12.2\msvc2017_64\bin
:start lrelease.exe : 启动exe
:-verbose xxx.ts -qm xxx.qm ts文件转qm 解决多模块中英文切换问题
start lrelease.exe -verbose G:\FNoise\res\translations\ANAS_zh_CN.ts -qm G:\FNoise\res\translations\ANAS_zh_CN.qm
:pause
qt中执行生成相对路径的ts文件pro的cmd窗口中(只更新)
image.png
lupdate -verbose -pro xxx.pro -ts ...\...\res\xxx.ts
翻译变量:
全局变量时可先写成QObject::tr生成ts后再讲代码改成QT_TR_NOOP,使用变量时用tr。
QString FriendlyConversation::greeting(int type)
{
static const char *greeting_strings[] = {
QT_TR_NOOP("Hello"),
QT_TR_NOOP("Goodbye")
};
return QObject::tr(greeting_strings[type]);
}
QString FriendlyConversation::greeting(int type)
{
static const QList *greeting_string_list = {
QT_TR_NOOP("Hello"),
QT_TR_NOOP("Goodbye")
};
return QObject::tr(greeting_string_list[type].toUtf8());
// 或者:greeting_string_list[type].toLocal8Bit() 之类的
}
cpp
QApplicationa(argc,argv);
//加载中文翻译
//加载本软件的翻译
QTranslator qtTranslator;
qtTranslator.load("orbitEditor_zh_CN.qm",":/");
a.installTranslator(&qtTranslator);
在cpp中的字符串写在ts文件的带object属性的xml中生效。