我正在尝试用 Qt 翻译我的应用程序,但出了点问题,没有结果
I'm trying to translate my app in Qt but something goes wrong and there is no result
所以我制作了一个 *.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。
如图添加:
并且您必须将代码修改为:
void ChatWindow::on_actionRussian_triggered()
{
translator.load(":/Translations/chApp_ru.qm");
qApp->installTranslator(&translator);
ui->retranslateUi(this);
}
输出:
所以我制作了一个 *.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。
如图添加:
并且您必须将代码修改为:
void ChatWindow::on_actionRussian_triggered()
{
translator.load(":/Translations/chApp_ru.qm");
qApp->installTranslator(&translator);
ui->retranslateUi(this);
}
输出: