Я хочу загрузить локализованную строку в приложении Qt. Для этого я следую несколько шагов. Поправь меня, если я ошибаюсь.
Примечание: он отлично работает для QString
, но не для const char*
Обновите pro-файл с помощью
язык перевода
Генерация .ts
и редактирование с использованием Qt
лингвист. Создать файл .qm
, используя
lupdate и lrelease.
Загрузить файл .qm из определенного
место.
Вот как выглядит const char*
:
const char* sayHello = QT_TRANSLATE_NOOP("FriendlyConversation","hello");
LocalizationWithQT::LocalizationWithQT(QWidget *parent)
: QMainWindow(parent)
{
//ui.setupUi(this);
QString str = tr("say hello");
QPushButton *pushbutton = new QPushButton(tr(sayHello));
setCentralWidget(pushbutton)
}
А вот как я загружаю файл .qm:
QApplication a(argc, argv);
QTranslator translator;
bool val = translator.load("c:\\Data\\test\\hellotr_la");
a.installTranslator(&translator);
LocalizationWithQT w;
w.showMaximized();
return a.exec();
Проблема в том, что если я предоставлю любую альтернативную латинскую строку для sayhello, она вообще не загружается.
Понятия не имею, где ошибка.