Ресурсы перевода не добавляются в исполняемый файл вручную. ⇐ C++
-
Anonymous
Ресурсы перевода не добавляются в исполняемый файл вручную.
Я создал небольшой тестовый проект, чтобы продемонстрировать свою проблему.
Суть проблемы в том, что, согласно официальной документации по qt_add_translations, два примера кода, которые я привел ниже, должны быть примерно эквивалентны. Более того, согласно функциям qt_add_lupdate, qt_add_lrelease и qt_add_resources, файлы перевода должны быть добавлены в исполняемый файл.
Однако по какой-то причине при использовании второго варианта файлы перевода не добавляются в исполняемый файл.
cmake_minimum_required (ВЕРСИЯ 3.27) установить (CMAKE_CXX_STANDARD 23) проект (TestQtWidgetsProject) установить (CMAKE_AUTOMOC ON) установить (CMAKE_AUTORCC ON) установить (CMAKE_AUTOUIC ON) # Исполняемый файл add_executable(${PROJECT_NAME} main.cpp) # Библиотека find_package (ТРЕБУЕМЫЕ КОМПОНЕНТЫ Qt6 Виджеты Core Gui) target_link_libraries(${PROJECT_NAME} Qt::Core Qt::Gui Qt::Widgets) # Переводы find_package (ТРЕБУЕМЫЕ LinguistTools для Qt6) # ===================================== # Вариант 1 #qt_add_translations(TestQtWidgetsProject # INCLUDE_DIRECTORIES # ${PROJECT_SOURCE_DIR} # TS_FILES #translation_ru.ts) # Вариант 2 qt_add_lupdate(${PROJECT_NAME} INCLUDE_DIRECTORIES ${PROJECT_SOURCE_DIR} TS_FILES Translation_ru.ts) qt_add_lrelease(${PROJECT_NAME} TS_FILES Translation_ru.ts QM_FILES_OUTPUT_VARIABLE QM_FILES) qt_add_resources(${PROJECT_NAME} "переводы" ПРЕФИКС "/i18n" ФАЙЛЫ ${QM_FILES}) # ===================================== # Зависимости add_dependents(${PROJECT_NAME} ${PROJECT_NAME}_lupdate) add_dependents(${PROJECT_NAME} ${PROJECT_NAME}_lrelease) main.cpp
#include #include #include int main(int argc, char* argv[]) { QApplication a(argc, argv); переводчик QTranslator; qDebug()
Я создал небольшой тестовый проект, чтобы продемонстрировать свою проблему.
Суть проблемы в том, что, согласно официальной документации по qt_add_translations, два примера кода, которые я привел ниже, должны быть примерно эквивалентны. Более того, согласно функциям qt_add_lupdate, qt_add_lrelease и qt_add_resources, файлы перевода должны быть добавлены в исполняемый файл.
Однако по какой-то причине при использовании второго варианта файлы перевода не добавляются в исполняемый файл.
cmake_minimum_required (ВЕРСИЯ 3.27) установить (CMAKE_CXX_STANDARD 23) проект (TestQtWidgetsProject) установить (CMAKE_AUTOMOC ON) установить (CMAKE_AUTORCC ON) установить (CMAKE_AUTOUIC ON) # Исполняемый файл add_executable(${PROJECT_NAME} main.cpp) # Библиотека find_package (ТРЕБУЕМЫЕ КОМПОНЕНТЫ Qt6 Виджеты Core Gui) target_link_libraries(${PROJECT_NAME} Qt::Core Qt::Gui Qt::Widgets) # Переводы find_package (ТРЕБУЕМЫЕ LinguistTools для Qt6) # ===================================== # Вариант 1 #qt_add_translations(TestQtWidgetsProject # INCLUDE_DIRECTORIES # ${PROJECT_SOURCE_DIR} # TS_FILES #translation_ru.ts) # Вариант 2 qt_add_lupdate(${PROJECT_NAME} INCLUDE_DIRECTORIES ${PROJECT_SOURCE_DIR} TS_FILES Translation_ru.ts) qt_add_lrelease(${PROJECT_NAME} TS_FILES Translation_ru.ts QM_FILES_OUTPUT_VARIABLE QM_FILES) qt_add_resources(${PROJECT_NAME} "переводы" ПРЕФИКС "/i18n" ФАЙЛЫ ${QM_FILES}) # ===================================== # Зависимости add_dependents(${PROJECT_NAME} ${PROJECT_NAME}_lupdate) add_dependents(${PROJECT_NAME} ${PROJECT_NAME}_lrelease) main.cpp
#include #include #include int main(int argc, char* argv[]) { QApplication a(argc, argv); переводчик QTranslator; qDebug()
Мобильная версия