crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> перевод сложного(в кавычках) проекта
a_goodgirl
  опции профиля:
сообщение 1.7.2010, 14:49
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 35
Регистрация: 4.6.2009
Пользователь №: 801

Спасибо сказали: 0 раз(а)




Репутация:   0  


вопрос по переводу (tr и прочее):
все инструкции описывают стандартную схему "lupdate - перевод с помощью лингвиста - lrelease". Все замечательно получается для одного проекта.
Но если в pro есть включение типа
include(<другой проект>.pri)
как сделать так, чтобы классы из файлов, перечиленных в pri, попали в ts файл и отобразились в лингвисте для перевода?
Как-то это, например, работает в дизайнере (designer.pro) , но визуально понять отличия их прошника от своего не могу.. Или дело не в прошнике..
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 1.7.2010, 18:05
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


из pri-файлов собирается один pro-файл, по аналогии с #include "filename" в Си/Си++.
Соответственно lupdate будет обрабатывать конечный pro-файл, т.е. пройдётся по всем упомянутым фалам исходных кодов.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
a_goodgirl
  опции профиля:
сообщение 6.7.2010, 13:29
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 35
Регистрация: 4.6.2009
Пользователь №: 801

Спасибо сказали: 0 раз(а)




Репутация:   0  


да, это работает. Я не сразу поняла суть проблемы.
Спрошу другое:
в Qt есть файл ../translations/translations.pri

Там написаны команды для перевода всего и сразу (в смысле lupdate и lrelease). Мне надо что-то типа такого воспроизвести.
Я сделала подобный translations.pri и включила его в "головной" pro.
Вот текст:
tdefineReplace(fixPath) {
    win32:1 ~= s|/|\\|
    return ($$1)
}

LUPDATE = $$fixPath($$(QTDIR)/bin/lupdate)
LRELEASE = $$fixPath($$(QTDIR)/bin/lrelease)

ts-ccube.commands = (cd $$CCUBE_ROOT/ccubert && $$LUPDATE \
                                    $$CCUBE_ROOT/ccubert/editors/editors.pro \
                                    && $$LUPDATE \
                                    $$CCUBE_ROOT/ccubert/source/source.pro \
                                    && $$LUPDATE \
                                    $$CCUBE_ROOT/ccubert/database/database.pro)
ts-ccube.depends = sub-tools

gm-ccube.commands = ($$LRELEASE $$CCUBE_ROOT/ccubert/editors/editors.pro \
                         && $$LRELEASE \
                            $$CCUBE_ROOT/ccubert/source/source.pro \
                         && $$LRELEASE \
                            $$CCUBE_ROOT/ccubert/database/database.pro)
gm-ccube.depends = sub-tools

ts.depends = ts-ccube
qm.depends = qm-ccube

QMAKE_EXTRA_TARGETS += ts-ccube \
                        gm-ccube    \
                        ts qm


Т.е. мне кажется, что тут написано, что надо в директориях editors, source и database сделать дupdate и lrelease.
Вроде бы после qmake в Makefile вставляются строчки похожего (как в Qt) вида:
ts-ccube: sub-tools
    (cd ../../ccubert && C:\qt4.6.0\bin\lupdate ../../ccubert/editors/editors.pro && C:\qt4.6.0\bin\lupdate ../../ccubert/source/source.pro && C:\qt4.6.0\bin\lupdate ../../ccubert/database/database.pro)

gm-ccube: sub-tools
    (C:\qt4.6.0\bin\lrelease ../../ccubert/editors/editors.pro && C:\qt4.6.0\bin\lrelease ../../ccubert/source/source.pro && C:\qt4.6.0\bin\lrelease ../../ccubert/database/database.pro)

ts: ts-ccube

qm: qm-ccube


затем я делаю nmake - и ничего не происходит.
Явно где-то что-то совсем не то - не могу понять, где..
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 6.7.2010, 14:36
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(a_goodgirl @ 6.7.2010, 17:29) *
затем я делаю nmake
ну он и начнёт обрабатывать цель по умолчанию.
укажи цель, например такую:
nmake qm

П.С. запись в make-файле
текст:
в самом начале строки называется - цель.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
a_goodgirl
  опции профиля:
сообщение 6.7.2010, 17:24
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 35
Регистрация: 4.6.2009
Пользователь №: 801

Спасибо сказали: 0 раз(а)




Репутация:   0  


спасибо, получилось!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 0:28