c++ - 我正在尝试用 Qt 翻译我的应用程序,但出了点问题,没有结果

标签 c++ qt qt5 qtranslate

所以我制作了一个 *.qm 文件,其中包含通过 QLinguist 完成的翻译。现在我尝试通过单击按钮来翻译​​程序,但没有任何反应。

文件层次结构

QTranslator translator;
void ChatWindow::on_actionRussian_triggered()
{
     translator.load(":/chApp_ru.qm");
     qApp->installTranslator(&translator);
     ui->retranslateUi(this);
}

最佳答案

问题是您必须放置生成文件的路径,在您的例子中是 Translations/chApp_ru.qm,因为这是 chApp_ru.ts 的转换,并且后一个文件将相对路径作为引用:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="ru_RU">
<context>
    <name>ChatWindow</name>
    <message>
        <location filename="../chatwindow.ui" line="14"/>
        <location filename="../chatwindow.ui" line="266"/>
        <source>chApp</source>
        <extracomment>by tia</extracomment>
        <translation></translation>
    </message>
[...]

我建议将翻译文件夹中的 .qm 文件添加到您的 qresource。

如图添加:

enter image description here

并且您必须将代码修改为:

void ChatWindow::on_actionRussian_triggered()
{
     translator.load(":/Translations/chApp_ru.qm");
     qApp->installTranslator(&translator);
     ui->retranslateUi(this);
}

输出:

enter image description here

关于c++ - 我正在尝试用 Qt 翻译我的应用程序,但出了点问题,没有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44396797/

相关文章:

C++ - 创建数组的低通滤波器函数

关于增量运算符的 C++ 编译器问题

python - 从 PDF 文件中突出显示的注释中提取文本

c++ - 高效地围绕 QPainterPath 绘制文本

c++ - 不用qmake编译Qt5代码

python - 添加多个停靠的小部件

c++ - C++ constexpr if 语句的灵活性

c++ - 在没有 MFC 的情况下在 Visual Studio 中拖放 UI 设计器?

c++ - 从 QImage 创建 QByteArray,反之亦然

Qt Digia 与 Qt 项目