Mercurial > molko
changeset 244:498da86d1cd7
cmake: create a unique TARGET-po target to update translations
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 30 Nov 2020 09:48:52 +0100 |
parents | 71b3b7036de7 |
children | 97f55f6b9593 |
files | cmake/MolkoBuildTranslations.cmake libmlk-adventure/nls/libmlk-adventure.pot libmlk-core/nls/fr.po libmlk-core/nls/libmlk-core.pot libmlk-rpg/nls/fr.po libmlk-rpg/nls/libmlk-rpg.pot |
diffstat | 6 files changed, 68 insertions(+), 74 deletions(-) [+] |
line wrap: on
line diff
--- a/cmake/MolkoBuildTranslations.cmake Sat Nov 28 22:37:30 2020 +0100 +++ b/cmake/MolkoBuildTranslations.cmake Mon Nov 30 09:48:52 2020 +0100 @@ -29,7 +29,7 @@ # TRANSLATIONS list of localizations # ) # -# Generate targets and output commands for NLS (via GNU gettext) support for the +# Generate target and output commands for NLS (via GNU gettext) support for the # given TARGET name. # # The argument SOURCES must contain sources to extract gettext keywords, it will @@ -42,18 +42,14 @@ # The argument TRANSLATIONS should contain a list of languages supported in the # gettext form (ll_LL@variant, see ISO 639 and ISO 3166 for more details). # -# This macro also provides specific targets to update both .pot and .po files. -# -# Target <TARGET>-pot will generate a <TARGET>.pot file under the nls/ directory -# from the current project. +# This macro create a <TARGET>-po target that will recreate the .pot file and +# every .po files in the nls/ directory for each language specified in +# TRANSLATIONS. Note, if you add a new language into translations but do not +# copy the .pot file, a warning will be issued and you should copy the .pot file +# as the new .po language file. # -# Target <TARGET>-po will merge every .po files in the nls/ directory for every -# language specified in TRANSLATIONS. Note, if you add a new language into -# translations but do not copy the .pot file, a warning will be issued and you -# should copy the .pot file as the new .po language file. -# -# Since those targets are modifying files directly in the source tree they are -# not included in any build process and must be invoked manually. +# Since the target is modifying files directly in the source tree they are not +# included in any build process and must be invoked manually. # if (MOLKO_WITH_NLS) @@ -84,23 +80,28 @@ list(FILTER NLS_SOURCES INCLUDE REGEX "\\.[ch$]") set(pot ${CMAKE_CURRENT_SOURCE_DIR}/nls/${NLS_TARGET}.pot) - # Generate .pot file. - add_custom_target( - ${NLS_TARGET}-pot - ALL - VERBATIM - COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_SOURCE_DIR}/nls - COMMAND ${XGETTEXT_EXE} -cj -k_ -kN_ -LC -s -o ${pot} ${NLS_SOURCES} - COMMENT "Generating reference translation ${pot}" + # First command to generate the .pot. + list( + APPEND + commands + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_SOURCE_DIR}/nls + COMMAND ${XGETTEXT_EXE} -cj -k_ -kN_ -LC -s -o ${pot} ${NLS_SOURCES} ) - set_target_properties(${NLS_TARGET}-pot PROPERTIES FOLDER translations) - # For every translation create a msgmerge target and output file. + # + # For every translation create a msgmerge command and output + # file. + # set(outputs) foreach (t ${NLS_TRANSLATIONS}) set(po ${CMAKE_CURRENT_SOURCE_DIR}/nls/${t}.po) + # + # If library dir isn't absolute, install them in the + # build directory so we can use translations during + # development. + # if (NOT IS_ABSOLUTE ${CMAKE_INSTALL_LIBDIR}) set(modir ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${CMAKE_INSTALL_LOCALEDIR}/${t}/LC_MESSAGES) set(mo ${modir}/${NLS_TARGET}.mo) @@ -113,16 +114,8 @@ message(WARNING "Missing translation ${po}") endif () - add_custom_target( - ${NLS_TARGET}-po-${t} - VERBATIM - DEPENDS ${NLS_TARGET}-pot - COMMAND ${MSGMERGE_EXE} --backup=off -U ${po} ${pot} - COMMENT "Merging translation in ${po}" - ) - set_target_properties(${NLS_TARGET}-po-${t} PROPERTIES FOLDER translations) - - list(APPEND po-targets ${NLS_TARGET}-po-${t}) + # Commands to generate .po files from the .pot. + list(APPEND commands COMMAND ${MSGMERGE_EXE} --backup=off -q -U ${po} ${pot}) # Finally generate a .mo output from po file. add_custom_command( @@ -136,24 +129,25 @@ list(APPEND outputs ${mo}) - # TODO: naming should be changed maybe. install( FILES ${mo} DESTINATION ${CMAKE_INSTALL_LOCALEDIR}/${t}/LC_MESSAGES - RENAME mlk-${NLS_TARGET}.mo + RENAME ${NLS_TARGET}.mo ) endforeach () set(${NLS_OUTPUTS} ${outputs}) source_group("mo" FILES ${outputs}) + # User target to update .pot and .po files. add_custom_target( ${NLS_TARGET}-po - DEPENDS ${po-targets} - COMMENT "Merging all po files" + VERBATIM + COMMENT "Generating translations for ${NLS_TARGET}" + ${commands} ) - set_target_properties(${NLS_TARGET}-po PROPERTIES FOLDER translations) + set_target_properties(${NLS_TARGET}-po PROPERTIES FOLDER nls) endmacro() else () function(molko_build_translations)
--- a/libmlk-adventure/nls/libmlk-adventure.pot Sat Nov 28 22:37:30 2020 +0100 +++ b/libmlk-adventure/nls/libmlk-adventure.pot Mon Nov 30 09:48:52 2020 +0100 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-11-28 22:34+0100\n" +"POT-Creation-Date: 2020-11-30 09:48+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
--- a/libmlk-core/nls/fr.po Sat Nov 28 22:37:30 2020 +0100 +++ b/libmlk-core/nls/fr.po Mon Nov 30 09:48:52 2020 +0100 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-11-28 16:45+0100\n" +"POT-Creation-Date: 2020-11-28 22:34+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -17,21 +17,21 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: /Users/markand/Dev/molko/libcore/core/panic.c:30 +#: /Users/markand/Dev/molko/libmlk-core/core/panic.c:30 #, c-format msgid "abort: %s\n" msgstr "fatal: %s\n" -#: /Users/markand/Dev/molko/libcore/core/panic.c:76 +#: /Users/markand/Dev/molko/libmlk-core/core/panic.c:76 #, c-format msgid "abort: panic handler returned\n" msgstr "fatal: la fonction de panique n'aurait pas du continuer\n" -#: /Users/markand/Dev/molko/libcore/core/save.c:85 +#: /Users/markand/Dev/molko/libmlk-core/core/save.c:85 msgid "database not initialized correctly" msgstr "database non initialisée" -#: /Users/markand/Dev/molko/libcore/core/save.c:175 +#: /Users/markand/Dev/molko/libmlk-core/core/save.c:175 #, c-format msgid "property '%s' was not found" msgstr "propriété '%s' non trouvée"
--- a/libmlk-core/nls/libmlk-core.pot Sat Nov 28 22:37:30 2020 +0100 +++ b/libmlk-core/nls/libmlk-core.pot Mon Nov 30 09:48:52 2020 +0100 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-11-28 22:34+0100\n" +"POT-Creation-Date: 2020-11-30 09:42+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
--- a/libmlk-rpg/nls/fr.po Sat Nov 28 22:37:30 2020 +0100 +++ b/libmlk-rpg/nls/fr.po Mon Nov 30 09:48:52 2020 +0100 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-11-28 17:41+0100\n" +"POT-Creation-Date: 2020-11-30 09:48+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -17,118 +17,118 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: /Users/markand/Dev/molko/librpg/rpg/battle-bar.c:127 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/battle-bar.c:127 msgid "Attack" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/battle-bar.c:134 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/battle-bar.c:134 msgid "Magic" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/battle-bar.c:141 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/battle-bar.c:141 msgid "Objects" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/battle-bar.c:148 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/battle-bar.c:148 msgid "Special" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/battle-state-victory.c:88 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/battle-state-victory.c:88 msgid "Victory!" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/battle-state-lost.c:87 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/battle-state-lost.c:87 msgid "You have been defeated..." msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/tileset-file.c:241 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/tileset-file.c:241 msgid "could not parse image" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/map-file.c:130 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/map-file.c:130 msgid "could not parse tileset" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/map-file.c:92 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/map-file.c:92 #, c-format msgid "ignoring action %d,%d,%u,%u,%s" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/map-file.c:61 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/map-file.c:61 #, c-format msgid "invalid layer type: %s" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/map-file.c:175 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/map-file.c:175 msgid "invalid origin" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/message.c:277 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/message.c:277 msgid "message has null dimensions" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/message.c:140 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/message.c:140 #, c-format msgid "message height too small: %u < %u" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/message.c:171 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/message.c:171 msgid "message is automatic but has zero timeout" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/message.c:138 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/message.c:138 #, c-format msgid "message width too small: %u < %u" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/map-file.c:236 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/map-file.c:236 msgid "missing background layer" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/map-file.c:238 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/map-file.c:238 msgid "missing foreground layer" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/map-file.c:114 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/map-file.c:114 msgid "missing layer type definition" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/map-file.c:110 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/map-file.c:110 msgid "missing map dimensions before layer" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/tileset-file.c:239 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/tileset-file.c:239 msgid "missing tile dimensions before image" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/map-file.c:240 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/map-file.c:240 msgid "missing tileset" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/tileset-file.c:298 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/tileset-file.c:298 msgid "missing tileset image" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/map-file.c:229 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/map-file.c:229 msgid "missing title" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/map-file.c:157 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/map-file.c:157 msgid "null map columns" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/map-file.c:166 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/map-file.c:166 msgid "null map rows" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/map-file.c:146 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/map-file.c:146 msgid "null map title" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/tileset-file.c:142 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/tileset-file.c:142 msgid "tileheight is null" msgstr "" -#: /Users/markand/Dev/molko/librpg/rpg/tileset-file.c:133 +#: /Users/markand/Dev/molko/libmlk-rpg/rpg/tileset-file.c:133 msgid "tilewidth is null" msgstr ""
--- a/libmlk-rpg/nls/libmlk-rpg.pot Sat Nov 28 22:37:30 2020 +0100 +++ b/libmlk-rpg/nls/libmlk-rpg.pot Mon Nov 30 09:48:52 2020 +0100 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-11-28 22:34+0100\n" +"POT-Creation-Date: 2020-11-30 09:48+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n"