Russian Qt Forum
Май 05, 2024, 09:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: qmake не находит файл перевода для ресурсов  (Прочитано 13651 раз)
DarkHobbit
Самовар
**
Offline Offline

Сообщений: 189


Просмотр профиля
« : Январь 30, 2016, 11:05 »

Добрый день.
Решил я поместить перевод в ресурсы.
В pro добавил:
Код:
TRANSLATIONS += ProjectName_ru_RU.ts

tr.commands = lrelease \
    $$_PRO_FILE_
QMAKE_EXTRA_TARGETS += tr
POST_TARGETDEPS += tr

RESOURCES += \
    ProjectName.qrc
(это чтобы make сам собирал переводы, как обсуждалось здесь)

В qrc:
Код:
<file>ProjectName_ru_RU.qm</file>

В загрузку программы:
Код:
    QTranslator tr;
    if (!tr.load(":/ProjectName_ru_RU.qm"))
        QMessageBox::critical(0, "Error", "UI loading error");
    a.installTranslator(&tr);

qmake ругается:
Цитировать
CC: Error in 'ProjectName.qrc': Cannot find file 'ProjectName_ru_RU.qm'
RCC: Warning: No resources in 'ProjectName.qrc'.

Предположил, что к моменту просмотрам ресурсов перевод ещё не готов. Закомментарил
RESOURCES в проекте. Проект собрался. Раскомментарил - снова собрался, перевод подхватился, все довольны.
Можно как-нибудь сделать, чтобы собиралось без извращений с комментариями и за один проход?

Ну кроме компиляции перевода вручную или из внешнего платформозависимого скрипта, разумеется Улыбающийся
Записан

Мои проекты на Qt: DoubleContact, LInvert
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #1 : Январь 30, 2016, 17:00 »

POST_TARGETDEPS вызовется после сборки проекта насколько я понимаю, что неправильно. может там есть PRE_TARGETDEPS?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
DarkHobbit
Самовар
**
Offline Offline

Сообщений: 189


Просмотр профиля
« Ответ #2 : Февраль 05, 2016, 20:13 »

Заменил POST_TARGETDEPS на PRE_TARGETDEPS. qmake по-прежнему ругается
Код:
CC: Error in 'ProjectName.qrc': Cannot find file 'ProjectName_ru_RU.qm'
RCC: Warning: No resources in 'ProjectName.qrc'.
Но make отрабатывает корректно Улыбающийся Спасибо.
Сделать бы ещё, чтобы qmake не ругался...
« Последнее редактирование: Февраль 05, 2016, 20:15 от DarkHobbit » Записан

Мои проекты на Qt: DoubleContact, LInvert
Bepec
Гость
« Ответ #3 : Февраль 05, 2016, 20:26 »

Qrc же вроде компилирует файлы в .qrc, а если файла нет, то ничего он туда не закомпилирует.

Я точно не знаю в какой момент копилируется Qrc, но дедукция подсказывает что ДО компиляции кода и прочего. Вопрос только в том, когда у вас создается .qm

В принципе вы легко ответите на этот вопрос просто запустив чистую компиляцию и посмотрев даты создания файлов.

Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 22.