|
|
@ -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 |
|
|
|
) |
|
|
|