У меня сложная проблема, и я перепробовал слишком много вещей, но тщетно. У меня есть 4 файла перевода для 4 разных языков, и всякий раз, когда пользователь меняет язык, мне нужно перевести пользовательский интерфейс.
Фиксированный текст можно перевести следующим образом:
ui->BusinessNameHelpText->setText(tr("Enter the business name."));
Тем не менее, переменный текст, такой как действие над кнопкой, не может быть выполнен таким образом, потому что это, например, «Установить» или «Обновить».
Я пробовал этот блок кода:
QString action = ui->actionButton->text();
ui->retranslateUi(this);
ui->actionButton->setText(trUtf8(action.toUtf8().data()));
И это:
QString action = ui->actionButton->text();
ui->retranslateUi(this);
ui->actionButton->setText(tr(action.toUtf8().data()));
И это:
QString action = ui->actionButton->text();
ui->retranslateUi(this);
ui->actionButton->setText(tr(action.toStdString.c_str()));
Это работает только в первый раз, когда я меняю язык, но после этого не работает.