как отлаживать виртуальную переменную translationator.load () - PullRequest
0 голосов
/ 05 февраля 2019

Независимо от того, что я пытаюсь, переводчик не загружает файл перевода и продолжает показывать только идентификаторы вместо перевода

У меня есть триада всего, что я мог бы погуглить до

#include <QQmlApplicationEngine>
#include <QGuiApplication>
#include <QtQml>
#include <QTranslator>

int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);

QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

QTranslator translator;
translator.load(QLocale(), "c:/asteroid/asteroid-sporttracking-master", ".", "i18n", ".gm");
app.installTranslator(&translator);

return app.exec();
}

полный путь к файлу перевода: c: \ asteroid \ asteroid-sporttracking-master \ i18n \ asteroid-sportapp.en_GB.ts - есть файлы с кратным local () -en_GB / cs / etc

, поэтомуЕсть ли способ для console.log () виртуальной переменной, созданной translationator.load ()?

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Вы путаете файлы QM и TS.Вы должны использовать инструменты lupdate и lrelease.lupdate для создания и обновления файлов TS, а затем lrelease для создания файлов QM.Приложение будет использовать файлы QM.

В вашем коде необходимо ввести путь и имя файла, потому что система не нашла файлы QM, но не рекомендуется использовать абсолютный путь.Пожалуйста, смотрите мой пример:

String filename = QString("app.qm");
QString path = QApplication::applicationDirPath();

if(translator.load(path + filename)){
        qApp->installTranslator(&translator);
}
0 голосов
/ 07 февраля 2019

Итак, после всего, что я обнаружил, файл с переводом должен находиться в каталоге, где отладчик будет компилировать исполняемый файл, а не в каталоге кода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...