запустите команду lupdate и lrelease от создателя qt в linux - PullRequest
0 голосов
/ 03 августа 2020

Я хочу запустить команду lupdate и lrelease из qtcreator во время сборки. Является ли это возможным? Если да, то как?

Примечание: я использую команду lupdate и lrelease из терминала linux, и он работает нормально, но я хочу запустить эти команды из создателя qt во время сборки.

1 Ответ

0 голосов
/ 03 августа 2020

Предполагая, что вы используете qmake, вы должны использовать переменную TRANSLATIONS:

https://doc.qt.io/qt-5/qmake-variable-reference.html#translations

Эта страница имеет некоторые примеры:

HEADERS         = main-dlg.h \
                  options-dlg.h
SOURCES         = main-dlg.cpp \
                  options-dlg.cpp \
                  main.cpp
FORMS           = search-dlg.ui
TRANSLATIONS    = superapp_dk.ts \
                  superapp_fi.ts \
                  superapp_no.ts \
                  superapp_se.ts

Пример Hello tr () объясняет процесс более подробно:

Обратите внимание, что расширение файла - .ts, а не. кв. м. Исходный формат перевода .ts предназначен для использования во время разработки приложения. Программисты или менеджеры по выпуску запускают программу lupdate для создания и обновления файлов TS с использованием исходного текста, извлеченного из исходного кода. Переводчики читают и обновляют файлы TS с помощью Qt Linguist, добавляя и редактируя свои переводы.

[...]

После завершения переводов программа lrelease используется для преобразования файлов TS в QM Формат файла сообщений Qt. Формат QM - это компактный двоичный формат, разработанный для обеспечения очень быстрого поиска. И lupdate, и lrelease читают все исходные и заголовочные файлы проекта (как указано в строках HEADERS и SOURCES файла проекта) и извлекают строки, которые появляются в вызовах функции tr ().

lupdate используется для создания и обновите файлы сообщений (в данном случае hellotr_la.ts), чтобы синхронизировать их c с исходным кодом. Запускать lupdate в любое время безопасно, поскольку lupdate не удаляет никакой информации. Например, вы можете поместить его в make-файл, чтобы файлы TS обновлялись каждый раз при изменении источника.

...