gpt4 book ai didi

QTranslator 不起作用

转载 作者:行者123 更新时间:2023-12-04 01:45:13 26 4
gpt4 key购买 nike

#include<QApplication>
#include<QTranslator>
#include<QObject>
#include<QTextCodec>
#include<QWidget>

int main(int argc, char* argv[])
{
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
QApplication app(argc, argv);

QTranslator translator;
translator.load("app_zh_CN.qm");
app.installTranslator(&translator);

QWidget widget;
widget.setWindowTitle(QObject::tr("Hello World!"));
widget.show();
return app.exec();
}


SOURCES += \
main.cpp

TRANSLATIONS += app_zh_CN.ts

Gui 界面是“Hello World!”也.. 但在我的文件中.qm 被翻译成“你好!”(中文)...
问题在哪里?谁能帮帮我..

最佳答案

如果我将 .qm 文件放在“正确”的位置,你的例子对我有用。 (见下文。)确保您正在执行所有步骤:

  • 运行 lupdate创建 .ts 文件。
  • 在 Linguist 中进行翻译并保存 .ts 文件。
  • 运行 lrelease将 .ts 文件编译为 .qm 文件。
  • 将 .qm 文件复制到正确的位置。

  • 我的猜测是#4 变坏了。 QTranslator::load 的文档指出:

    If directory is not specified, the directory of the application's executable is used (i.e., as applicationDirPath()).



    但是,我不得不将 .qm 文件放在文件夹 中。以上 使其按原样工作的可执行文件。除非我误解了文档,否则这是一个 Qt 错误,但很容易解决。如果我明确给出目录为 app.applicationDirPath ,它在可执行文件夹中工作。您还可以指定一个单独的目录。例如:
    translator.load("app_zh_CN.qm");与:
    [MyApp]
    app_zh_CN.qm
    [debug]
    MyApp.exe
    translator.load("app_zh_CN.qm", app.applicationDirPath());与:
    [MyApp]
    [debug]
    app_zh_CN.qm
    MyApp.exe

    关于QTranslator 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9225779/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com