Поэтому я сделал файл * .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>
[...]
Я рекомендую добавить в свой qresource файл .qm, который находится в папке переводов.
Добавьте его, как показано на рисунке:
И вы должны изменить свой код:
void ChatWindow::on_actionRussian_triggered()
{
translator.load(":/Translations/chApp_ru.qm");
qApp->installTranslator(&translator);
ui->retranslateUi(this);
}
Выход:
Других решений пока нет …