Я пытаюсь использовать Qttr()
функция для перевода.Как использовать перевод в Qt?
В .pro
файл у меня есть:
TRANSLATIONS += languages/myapp_en.ts \
languages/myapp_es.ts
и main.cpp
:
QTranslator translator;
translator.load("myapp_es"); //espanol
app.installTranslator(&translator);
lupdate
Я бегу и файлы myapp_en.ts
, myapp_es.ts
генерируются.
отредактировать файл myapp_es.ts
, например:
<context>
<name>Example</name>
<message>
<location filename="../example.cpp" line="24"/>
<source>Good night</source>
<translation>Buenas noches</translation> <!-- THIS IS MY EDIT -->
</message>
</context>
Тогда я бегу lrelease
так файлы myapp_en.qm
, myapp_es.qm
генерируются.
Затем я использую tr()
в коде следующим образом:
button->setText(tr("Good night"));
внутри конструктору Q_OBJECT
класса.
Но текст по-прежнему отображается на английском языке («Спокойной ночи»), а не на испанском языке.
Что я делаю неправильно?
Edit:
Putting the *.qm
files in the correct directory решить эту проблему. Просто нужно убедиться, что он находится в каталоге Release, а не в Debug.
Вы проверили возвращаемое значение translator.load? – crazyjul
ОК проверил его только сейчас. Это 'false' –
https: //wiki.qt.io/How_to_create_a_multi_language_application –