my-QT专栏

.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中生效。

上一篇 下一篇

猜你喜欢

热点阅读