首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QTranslator不起作用

QTranslator不起作用
EN

Stack Overflow用户
提问于 2012-02-10 09:47:59
回答 1查看 6.9K关注 0票数 13
代码语言:javascript
复制
#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();
}

代码语言:javascript
复制
SOURCES += \
    main.cpp

TRANSLATIONS += app_zh_CN.ts

Gui界面是“你好世界!”还有..。但在我的file.qm中被翻译成“你好!”(中文).前厅在哪里?谁能帮我..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-10 13:57:33

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

  1. 运行lupdate创建.ts文件。
  2. 在语言学家中完成翻译并保存.ts文件。
  3. 运行lrelease将.ts文件编译为.qm文件。
  4. 将.qm文件复制到正确的位置。H 210G 211

我猜是4号变坏了。QTranslator::load的文档声明:

如果没有指定

目录,则使用应用程序可执行文件的目录(即applicationDirPath())。

但是,我必须将.qm文件放在文件夹中,而不是上面的可执行文件,以使其正常工作。除非我误解了这些文档,否则这是一个Qt错误,但它很容易解决。如果我显式地将目录命名为app.applicationDirPath,那么它可以在可执行文件夹中工作。您还可以指定一个单独的目录。例如:

translator.load("app_zh_CN.qm");与以下方面一起工作:

代码语言:javascript
复制
[MyApp]
  app_zh_CN.qm
  [debug]
    MyApp.exe

translator.load("app_zh_CN.qm", app.applicationDirPath());与以下方面一起工作:

代码语言:javascript
复制
[MyApp]
  [debug]
    app_zh_CN.qm
    MyApp.exe
票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9225779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档