Я хочу добавить путь к моей папке переводов в .pro-файле, к которой можно получить доступ из частей C ++ / QML, а также использовать внутри .pro-файла.
Я наткнулся на функцию DEFINES + = и заставил ее работать с примером для числа PI. Это определение можно вызвать из C ++ с помощью qDebug () <
Теперь у меня есть папка с переводами на два каталога выше .pro-файла, который называется translations. Поэтому я попытался использовать что-то вроде этого:
DEFINES += "TRANSPATH=\"../../translations\""
Но когда я пытаюсь получить к нему доступ через qDebug, я получаю ошибки
- ожидаемое первичное выражение
а также
ожидаемый безусловный идентификатор перед "." лексема
В моем файле .pro я тоже хочу получить доступ к TRANSPATH, но используя его как
TRANSLATIONS += \
$$(TRANSPATH)/test_TEST.ts \
../../translations/de_DE.ts \
../../translations/zh_CN.ts
}
только приводит к этой ошибке:
Updating '../../../../../../../test_TEST.ts'...
Found 63 source text(s) (63 new and 0 already existing)
Cannot create /test_TEST.ts: Zugriff verweigert
Updating '../../translations/de_DE.ts'...
Found 63 source text(s) (0 new and 63 already existing)
Я пытался найти другие примеры в Интернете, но не нашел ничего полезного.
В переводе + = часть я изменил формулировку на:
TRANSPATH/test_TEST.ts
{TRANSPATH}/test_TEST.ts
$$TRANSPATH/test_TEST.ts
$${TRANSPATH}/test_TEST.ts
но ничего не получалось. Это первый раз, когда я пытаюсь определить что-то, может, я делаю это неправильно? Пожалуйста, помогите
Пример кода / .pro файл:
# this file will be loaded from the main import path
MAIN_QML_FILE = main.qml
INCLUDEPATH += ./Plugins
INCLUDEPATH += ./qml
DEFINES += "PI=\"3.1415926\""
DEFINES += "TRANSPATH=\"../../translations\""
QT += core
# this is only seen by the linguist tools (lupdate)
lupdate_only{
SOURCES = \
../../qml/Widgets/SomeFiles/*.qml
TRANSLATIONS += \
$$(TRANSPATH)/test_TEST.ts \
../../translations/de_DE.ts \
../../translations/zh_CN.ts
}
TRANSPATH должен приводить к той же папке, что и ../../translations/de_DE.ts
путь делает. Путь будет повторно использоваться из C ++ для пользовательского объекта QTranslator.