Я пытаюсь перевести мое приложение в Qt, но что-то идет не так, и нет результата

Поэтому я сделал файл *.qm с переводом, выполненным через QLinguist. Сейчас я пытаюсь перевести программу нажатием кнопки, но ничего не происходит.

это иерархия файлов

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

1 ответ

Решение

Проблема в том, что вы должны поместить путь сгенерированного файла, в вашем случае 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);
}

Выход:

Другие вопросы по тегам