From 32a32d7501ace2859ba097ef8fb7ef665ca2f0ed Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Tue, 9 Aug 2016 18:14:41 +0200 Subject: CMake: Translations: Allow excluding languages from translation This seems to be needed for the hebrew translations. Gbp-Dch: ignore --- CMake/Translations.cmake | 23 +++++++++++++++++++---- po/CMakeLists.txt | 12 +++++++++++- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/CMake/Translations.cmake b/CMake/Translations.cmake index 584c5c5af..9880e68c7 100644 --- a/CMake/Translations.cmake +++ b/CMake/Translations.cmake @@ -4,7 +4,7 @@ function(apt_add_translation_domain) set(options) set(oneValueArgs DOMAIN) - set(multiValueArgs TARGETS SCRIPTS) + set(multiValueArgs TARGETS SCRIPTS EXCLUDE_LANGUAGES) cmake_parse_arguments(NLS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) # Build the list of source files of the target set(files "") @@ -106,6 +106,9 @@ function(apt_add_translation_domain) list(SORT translations) foreach(file ${translations}) get_filename_component(langcode ${file} NAME_WE) + if ("${langcode}" IN_LIST NLS_EXCLUDE_LANGUAGES) + continue() + endif() set(outdir ${PROJECT_BINARY_DIR}/locale/${langcode}/LC_MESSAGES) file(MAKE_DIRECTORY ${outdir}) # Command to merge and compile the messages. As explained in the custom @@ -131,7 +134,7 @@ endfunction() function(apt_add_update_po) set(options) set(oneValueArgs TEMPLATE) - set(multiValueArgs DOMAINS) + set(multiValueArgs DOMAINS EXCLUDE_LANGUAGES) cmake_parse_arguments(NLS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) set(output ${CMAKE_CURRENT_SOURCE_DIR}/${NLS_TEMPLATE}.pot) foreach(domain ${NLS_DOMAINS}) @@ -151,6 +154,9 @@ function(apt_add_update_po) endif() foreach(translation ${translations}) get_filename_component(langcode ${translation} NAME_WE) + if ("${langcode}" IN_LIST NLS_EXCLUDE_LANGUAGES) + continue() + endif() add_custom_target(update-po-${langcode} COMMAND msgmerge -q --update --backup=none ${translation} ${output} DEPENDS nls-${master_name} @@ -160,14 +166,23 @@ function(apt_add_update_po) add_dependencies(update-po nls-${master_name}) endfunction() -function(apt_add_po_statistics) +function(apt_add_po_statistics excluded) add_custom_target(statistics) file(GLOB translations "${PROJECT_SOURCE_DIR}/po/*.po") foreach(translation ${translations}) get_filename_component(langcode ${translation} NAME_WE) + if ("${langcode}" IN_LIST excluded) + add_custom_command( + TARGET statistics PRE_BUILD + COMMAND printf "%-6s " "${langcode}:" + COMMAND echo "ignored" + VERBATIM + ) + continue() + endif() add_custom_command( TARGET statistics PRE_BUILD - COMMAND printf "%-7s" "${langcode}:" + COMMAND printf "%-6s " "${langcode}:" COMMAND msgfmt --statistics -o /dev/null ${translation} VERBATIM ) diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt index 92ff39867..174cc5d41 100644 --- a/po/CMakeLists.txt +++ b/po/CMakeLists.txt @@ -1,6 +1,11 @@ +set(languages_excluded + he ## disabled by translator request #313283 +) + apt_add_translation_domain( DOMAIN libapt-pkg${APT_PKG_MAJOR} TARGETS apt-pkg + EXCLUDE_LANGUAGES ${languages_excluded} ) apt_add_translation_domain( @@ -10,6 +15,7 @@ apt_add_translation_domain( # Methods file copy store gpgv cdrom http https ftp rred rsh mirror SCRIPTS ../dselect/install ../dselect/update + EXCLUDE_LANGUAGES ${languages_excluded} ) apt_add_translation_domain( @@ -20,11 +26,13 @@ apt_add_translation_domain( apt-dump-solver apt-internal-planner apt-ftparchive + EXCLUDE_LANGUAGES ${languages_excluded} ) apt_add_translation_domain( DOMAIN libapt-inst${APT_INST_MAJOR} TARGETS apt-inst + EXCLUDE_LANGUAGES ${languages_excluded} ) apt_add_update_po( @@ -35,6 +43,8 @@ apt_add_update_po( libapt-inst${APT_INST_MAJOR} apt apt-utils + EXCLUDE_LANGUAGES + ${languages_excluded} ) -apt_add_po_statistics() +apt_add_po_statistics("${languages_excluded}") -- cgit v1.2.3