diff options
author | saturneric <[email protected]> | 2024-01-15 17:19:34 +0000 |
---|---|---|
committer | saturneric <[email protected]> | 2024-01-15 17:19:34 +0000 |
commit | 34b51c5e0915cbb11c80029aaa05d96c7115fac3 (patch) | |
tree | abb530d5d93ab09ff95844b000958b79c07cd3c5 /src/CMakeLists.txt | |
parent | fix: reload ui should not destroy core and module system (diff) | |
download | GpgFrontend-34b51c5e0915cbb11c80029aaa05d96c7115fac3.tar.gz GpgFrontend-34b51c5e0915cbb11c80029aaa05d96c7115fac3.zip |
fix: slove the languange settings issue
Diffstat (limited to 'src/CMakeLists.txt')
-rw-r--r-- | src/CMakeLists.txt | 82 |
1 files changed, 38 insertions, 44 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ef262dd1..cedb2dae 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -132,48 +132,46 @@ endif () file(GLOB_RECURSE ALL_SOURCE_FILES RELACTIVE ${CMAKE_SOURCE_DIR}/src/*.cpp) # i18n -if (SUPPORT_MULTI_LANG) - message(STATUS "Build Multiply Languages Support") - # Set Translation Files - find_package(Gettext REQUIRED) - FIND_PROGRAM(GETTEXT_MSGFMT_EXECUTABLE msgfmt) - FIND_PROGRAM(GETTEXT_XGETTEXT_EXECUTABLE xgettext) - - set(LOCALE_OUTPUT_PATH ${RESOURCE_OUTPUT_DIRECTORY}/locales) - - if (NOT GETTEXT_MSGFMT_EXECUTABLE OR NOT GETTEXT_XGETTEXT_EXECUTABLE) - message(ERROR "msgfmt or xgettext not found. Translations will *not* be installed") - else() - message(STATUS "Setting target translations") - add_custom_target(translations) - set(OUTPUT_POT_PATH ${CMAKE_SOURCE_DIR}/resource/lfs/locale/template/${PROJECT_NAME}.pot) +message(STATUS "Build Multiply Languages Support") +# Set Translation Files +find_package(Gettext REQUIRED) +FIND_PROGRAM(GETTEXT_MSGFMT_EXECUTABLE msgfmt) +FIND_PROGRAM(GETTEXT_XGETTEXT_EXECUTABLE xgettext) + +set(LOCALE_OUTPUT_PATH ${RESOURCE_OUTPUT_DIRECTORY}/locales) + +if (NOT GETTEXT_MSGFMT_EXECUTABLE OR NOT GETTEXT_XGETTEXT_EXECUTABLE) + message(ERROR "msgfmt or xgettext not found. Translations will *not* be installed") +else() + message(STATUS "Setting target translations") + add_custom_target(translations) + set(OUTPUT_POT_PATH ${CMAKE_SOURCE_DIR}/resource/lfs/locale/template/${PROJECT_NAME}.pot) + add_custom_command( + TARGET translations + COMMAND find ${CMAKE_SOURCE_DIR}/src -iname \"*.cpp\" | xargs xgettext --package-name=${PROJECT_NAME} --copyright-holder=Saturneric --package-version=${PROJECT_VERSION} [email protected] --add-comments="/*" --c++ -k_ -o ${OUTPUT_POT_PATH} + ) + + file(GLOB ALL_PO_FILES ${CMAKE_SOURCE_DIR}/resource/lfs/locale/po/*.po) + SET(GMO_FILES) + + foreach (_poFile ${ALL_PO_FILES}) + GET_FILENAME_COMPONENT(_poFileName ${_poFile} NAME) + string(REGEX REPLACE "\\.[^.]*$" "" _langName ${_poFileName}) + message(STATUS "GNU gettext po file ${_langName}") + make_directory(${RESOURCE_OUTPUT_DIRECTORY}/locales) + make_directory(${RESOURCE_OUTPUT_DIRECTORY}/locales/${_langName}/LC_MESSAGES) add_custom_command( TARGET translations - COMMAND find ${CMAKE_SOURCE_DIR}/src -iname \"*.cpp\" | xargs xgettext --package-name=${PROJECT_NAME} --copyright-holder=Saturneric --package-version=${PROJECT_VERSION} [email protected] --add-comments="/*" --c++ -k_ -o ${OUTPUT_POT_PATH} + COMMAND echo Processing po LANG ${_langName} ) - - file(GLOB ALL_PO_FILES ${CMAKE_SOURCE_DIR}/resource/lfs/locale/po/*.po) - SET(GMO_FILES) - - foreach (_poFile ${ALL_PO_FILES}) - GET_FILENAME_COMPONENT(_poFileName ${_poFile} NAME) - string(REGEX REPLACE "\\.[^.]*$" "" _langName ${_poFileName}) - message(STATUS "GNU gettext po file ${_langName}") - make_directory(${RESOURCE_OUTPUT_DIRECTORY}/locales) - make_directory(${RESOURCE_OUTPUT_DIRECTORY}/locales/${_langName}/LC_MESSAGES) - add_custom_command( - TARGET translations - COMMAND echo Processing po LANG ${_langName} - ) - add_custom_command( - TARGET translations - COMMAND msgfmt --check --verbose --output-file ${LOCALE_OUTPUT_PATH}/${_langName}/LC_MESSAGES/GpgFrontend.mo ${_poFile} - ) - endforeach () - - endif () + add_custom_command( + TARGET translations + COMMAND msgfmt --check --verbose --output-file ${LOCALE_OUTPUT_PATH}/${_langName}/LC_MESSAGES/GpgFrontend.mo ${_poFile} + ) + endforeach () endif () + if (BASIC_ENV_CONFIG) # Set Build Information configure_file(${CMAKE_SOURCE_DIR}/src/GpgFrontend.h.in ${CMAKE_SOURCE_DIR}/src/GpgFrontend.h @ONLY) @@ -354,9 +352,7 @@ endif () if (BUILD_APPLICATION) set(RESOURCE_FILES ${CMAKE_SOURCE_DIR}/gpgfrontend.qrc ${APP_ICON_RESOURCE_WINDOWS} ${QON_QM_FILES}) add_custom_target(resources ALL DEPENDS ${RESOURCE_FILES}) - if (SUPPORT_MULTI_LANG) - add_dependencies(resources translations) - endif () + add_dependencies(resources translations) endif () if (BUILD_APPLICATION) @@ -534,10 +530,8 @@ if (LINUX AND LINUX_INSTALL_SOFTWARE) install(DIRECTORY ${CMAKE_SOURCE_DIR}/resource/lfs/hicolor/ DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/icons/hicolor/) endif () - if (SUPPORT_MULTI_LANG) - install(DIRECTORY ${LOCALE_OUTPUT_PATH}/ - DESTINATION ${CMAKE_INSTALL_FULL_LOCALEDIR}) - endif () + install(DIRECTORY ${LOCALE_OUTPUT_PATH}/ + DESTINATION ${CMAKE_INSTALL_FULL_LOCALEDIR}) endif () message(STATUS "Resource Files: ${RESOURCE_OUTPUT_DIRECTORY}") |