Russian Qt Forum

Qt => Интернационализация, локализация => Тема начата: xokc от Март 12, 2014, 21:16



Название: lupdate генерит неправильные файлы
Отправлено: xokc от Март 12, 2014, 21:16
Имею файл db.pro
Код
DOS
TARGET = dockdb
SOURCES += dockdb.cpp
TRANSLATIONS += ./translations/dockdb_ru.ts
 
Хочу по результатам работы lupdate получить в папке translations файл dockdb_ts.ru, что успешно и происходит.
Однако, стоит мне в файле проекта заменить фиксированное имя файла на "производное" от переменной TARGET:
Код
DOS
TRANSLATIONS += ./translations/$${TARGET}_ru.ts
как получаю в папке проекта файл db_ru.ts, а в папке translations файл dockdb, что меня совсем не устраивает.
Что это? Глюк lupdate?


Название: Re: lupdate генерит неправильные файлы
Отправлено: VPS от Март 12, 2014, 22:43
По ходу дела, lupdate не может вычислить правильное значение переменной "TARGET". Можно попробовать использовать свою переменную:
Код:
MYTARGET = docdb
TARGET = $$MYTARGET
TRANSLATIONS += ./translations/$${MYTARGET}_ru.ts


Название: Re: lupdate генерит неправильные файлы
Отправлено: xokc от Март 13, 2014, 08:17
Пробовал, не канает.
Вариант
Код
DOS
MYTARGET = docdb
TRANSLATIONS += ./translations/$${MYTARGET}_ru.ts
 
работает нормально, а вот
Код
DOS
MYTARGET = $$TARGET
TRANSLATIONS += ./translations/$${MYTARGET}_ru.ts
 
работает так же коряво, как и оригинал

Я бы так и оставил, но мой "боевой" проект существенно сложнее, состоит из десятка более мелких проектов и строчка TRANSLATIONS += находится в корневом pri файле. Очень не хотелось бы дублировать название target модуля в ещё одной переменной.