LINUX.ORG.RU

Qt translator.load не работает

 


0

1
QApplication a(argc, argv);
QTranslator* translator = new QTranslator();
QString localeName = QLocale::system().name();
if(translator->load("ru_RU", ":/translations/translation.qm"))
    a.installTranslator(translator);

Почему-то load возвращает false. Сначала думал, что-то не так с локалью, прописал явно ту, которая была в сгенерированном .ts файле - ноль эффекта. В редакторе qrc выбрал «скопировать путь к файлу», так что с этим тоже, по идее, всё в порядке. Из-за чего ещё перевод может не загрузиться?

★★★★

Последнее исправление: wingear (всего исправлений: 2)

if(translator->load(QLocale("ru_RU"), ":/translations/translation."))

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

if(translator->load(QLocale("ru_RU"), "translations/translation."))
смотреть, что получилось можно так:
$ strace -o log ./application.out
$ cat log | grep translation
увидишь примерно это:
access("translations/translation.ru_RU.qm", R_OK) = -1 ENOENT (No such file or directory)

anonymous
()
Ответ на: комментарий от anonymous

файл ресурсов при этом:

<RCC>
    <qresource prefix="/translations">
        <file>translation.ru_RU.qm</file>
    </qresource>
</RCC>

anonymous
()
Ответ на: комментарий от anonymous

спасибо. Оказывается, надо было файл в название локали переименовать

wingear ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.