diff --git a/help/CMakeLists.txt b/help/CMakeLists.txt index d30f0848..f1b6d75b 100644 --- a/help/CMakeLists.txt +++ b/help/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 2.8) - +include(../i18n-tools/CommonI18N.cmake) include(../i18n-tools/HelpI18N.cmake) set(HELP_INSTALL_DATA_DIR ${COLOBOT_INSTALL_DATA_DIR}/help) diff --git a/i18n-tools/CommonI18N.cmake b/i18n-tools/CommonI18N.cmake new file mode 100644 index 00000000..65c0ad8c --- /dev/null +++ b/i18n-tools/CommonI18N.cmake @@ -0,0 +1,22 @@ +## +# Common function used in other I18N CMake modules +## + +## +# Get language code from *.po file name e.g. "de.po" -> "de" +## +function(get_language_code result_language_code po_file) + get_filename_component(po_file_name ${po_file} NAME) + string(REPLACE ".po" "" language_code ${po_file_name}) + set(${result_language_code} ${language_code} PARENT_SCOPE) +endfunction() + +## +# Get language char from *.po file name e.g. "de.po" -> "D" +## +function(get_language_char result_language_char po_file) + get_filename_component(po_file_name ${po_file} NAME) + string(REGEX REPLACE ".\\.po" "" language_char ${po_file_name}) + string(TOUPPER ${language_char} language_char) + set(${result_language_char} ${language_char} PARENT_SCOPE) +endfunction() diff --git a/i18n-tools/HelpI18N.cmake b/i18n-tools/HelpI18N.cmake index cef6e901..0a98df5d 100644 --- a/i18n-tools/HelpI18N.cmake +++ b/i18n-tools/HelpI18N.cmake @@ -8,8 +8,6 @@ if(NOT PO4A) message(WARNING "PO4A not found, help files will NOT be translated!") endif() -set(HELP_I18N_WORK_DIR ${CMAKE_CURRENT_BINARY_DIR}/help-po) - ## # Generate translated help files in separate directories per language ## @@ -30,10 +28,7 @@ function(generate_help_i18n set(output_help_subdirs "") file(GLOB po_files ${po_dir}/*.po) foreach(po_file ${po_files}) - get_filename_component(po_file_name ${po_file} NAME) - # get language letter e.g. "de.po" -> "d" - string(REGEX REPLACE ".\\.po" "" language_char ${po_file_name}) - string(TOUPPER ${language_char} language_char) + get_language_char(language_char ${po_file}) set(language_help_subdir ${work_dir}/${language_char}) list(APPEND output_help_subdirs ${language_help_subdir}) endforeach() @@ -45,13 +40,9 @@ function(generate_help_i18n file(APPEND ${po4a_cfg_file} "\n[type:colobothelp] ${abs_source_help_file}") foreach(po_file ${po_files}) - get_filename_component(po_file_name ${po_file} NAME) - # get language code e.g. "de.po" -> "de" - string(REPLACE ".po" "" language_code ${po_file_name}) - # get language letter e.g. "de.po" -> "d" - string(REGEX REPLACE ".\\.po" "" language_char ${po_file_name}) - string(TOUPPER ${language_char} language_char) # generated file for single language + get_language_code(language_code ${po_file}) + get_language_char(language_char ${po_file}) set(generated_help_file ${work_dir}/${language_char}/${help_file_name}) file(APPEND ${po4a_cfg_file} " \\\n ${language_code}:${generated_help_file}") endforeach() diff --git a/i18n-tools/LevelsI18N.cmake b/i18n-tools/LevelsI18N.cmake index be623b0a..8d18fe27 100644 --- a/i18n-tools/LevelsI18N.cmake +++ b/i18n-tools/LevelsI18N.cmake @@ -45,10 +45,8 @@ function(generate_chaptertitles_i18n file(APPEND ${po4a_cfg_file} "\n[type:colobotlevel] ${abs_source_chaptertitle_file}") foreach(po_file ${po_files}) - get_filename_component(po_file_name ${po_file} NAME) - # get language code e.g. "de.po" -> "de" - string(REPLACE ".po" "" language_code ${po_file_name}) # generated file for single language + get_language_code(language_code ${po_file}) set(generated_language_file ${output_chaptertitle_file}.${language_code}) file(APPEND ${po4a_cfg_file} " \\\n ${language_code}:${generated_language_file}") endforeach() @@ -130,9 +128,7 @@ function(generate_level_i18n file(GLOB po_files ${po_dir}/*.po) foreach(po_file ${po_files}) - get_filename_component(po_file_name ${po_file} NAME) - # get language code e.g. "de.po" -> "de" - string(REPLACE ".po" "" language_code ${po_file_name}) + get_language_code(language_code ${po_file}) # generated file for single language set(generated_language_file ${output_level_file}.${language_code}) file(APPEND ${po4a_cfg_file} " \\\n ${language_code}:${generated_language_file}") @@ -147,13 +143,9 @@ function(generate_level_i18n file(APPEND ${po4a_cfg_file} "\n[type:colobothelp] ${source_help_file}") foreach(po_file ${po_files}) - get_filename_component(po_file_name ${po_file} NAME) - # get language code e.g. "de.po" -> "de" - string(REPLACE ".po" "" language_code ${po_file_name}) - # get language letter e.g. "de.po" -> "d" - string(REGEX REPLACE ".\\.po" "" language_char ${po_file_name}) - string(TOUPPER ${language_char} language_char) # generated file for single language + get_language_code(language_code ${po_file}) + get_language_char(language_char ${po_file}) string(REPLACE ".E." ".${language_char}." generated_help_file_name ${help_file_name}) set(generated_help_file ${output_help_dir}/${generated_help_file_name}) file(APPEND ${po4a_cfg_file} " \\\n ${language_code}:${generated_help_file}") diff --git a/levels/CMakeLists.txt b/levels/CMakeLists.txt index 6b4764ad..191ace7b 100644 --- a/levels/CMakeLists.txt +++ b/levels/CMakeLists.txt @@ -1,5 +1,6 @@ cmake_minimum_required(VERSION 2.8) +include(../i18n-tools/CommonI18N.cmake) include(../i18n-tools/LevelsI18N.cmake) set(LEVEL_INSTALL_DATA_DIR ${COLOBOT_INSTALL_DATA_DIR}/levels)