From 223f339eedaec9a97de59305d58f4ff9dd7df225 Mon Sep 17 00:00:00 2001 From: Burt P Date: Tue, 11 Jul 2017 22:37:18 -0500 Subject: Fixup translation support * Use `bash updatepo.sh` instead of `make pot`. `make pot` will cause absolute paths to appear in hardinfo.pot of whomever last ran it. * C_() and NC_() support added for contexts Signed-off-by: Burt P --- cmake/Translations.cmake | 3 +-- includes/hardinfo.h | 4 +++- po/HOWTO.txt | 17 +++++++++++++++-- po/updatepo.sh | 21 +++++++++++++++++++++ 4 files changed, 40 insertions(+), 5 deletions(-) diff --git a/cmake/Translations.cmake b/cmake/Translations.cmake index 476fb374..dd06cee4 100644 --- a/cmake/Translations.cmake +++ b/cmake/Translations.cmake @@ -20,7 +20,6 @@ macro(add_translations_catalog NLS_PACKAGE) add_custom_target (pot COMMENT “Building translation catalog.”) find_program (XGETTEXT_EXECUTABLE xgettext) - set(C_SOURCE "") foreach(FILES_INPUT ${ARGN}) @@ -36,6 +35,6 @@ macro(add_translations_catalog NLS_PACKAGE) add_custom_command (TARGET pot COMMAND ${XGETTEXT_EXECUTABLE} -d ${NLS_PACKAGE} -o ${CMAKE_CURRENT_SOURCE_DIR}/${NLS_PACKAGE}.pot - ${VALA_SOURCE} ${C_SOURCE} --keyword="_" --keyword="N_" --from-code=UTF-8 + ${VALA_SOURCE} ${C_SOURCE} -k_ -kN_ -kC_:1c,2 -kNC_:1c,2 -c/ --from-code=UTF-8 ) endmacro() diff --git a/includes/hardinfo.h b/includes/hardinfo.h index 70329ac7..5728e711 100644 --- a/includes/hardinfo.h +++ b/includes/hardinfo.h @@ -25,8 +25,10 @@ #include "vendor.h" #include #include -#define _(STRING) gettext(STRING) +#define _(STRING) gettext(STRING) #define N_(STRING) (STRING) +#define C_(CTX, STRING) pgettext(CTX, STRING) +#define NC_(CTX, STRING) (STRING) typedef enum { MODULE_FLAG_NONE = 0, diff --git a/po/HOWTO.txt b/po/HOWTO.txt index 81b9bd5c..2a0775dd 100644 --- a/po/HOWTO.txt +++ b/po/HOWTO.txt @@ -1,2 +1,15 @@ -update .pot : make pot in build/ -update .po files after .pot update : msgmerge -N XX.po hardinfo.pot > XX_.po && mv XX_.po XX.po + +To update the .pot and existing translations use: + bash updatepo.sh + +----- + +update .pot : + --don't!-- make pot in build/ + absolute paths will appear in the .pot + try : + xgettext -d hardinfo -o hardinfo.pot -k_ -kN_ -kC_:1c,2 -kNC_:1c,2 -c/ --from-code=UTF-8 ... + +update .po files after .pot update : + msgmerge -N XX.po hardinfo.pot > XX_.po && mv XX_.po XX.po + diff --git a/po/updatepo.sh b/po/updatepo.sh index 9289dabd..d1d3c427 100644 --- a/po/updatepo.sh +++ b/po/updatepo.sh @@ -1,3 +1,24 @@ +#!bash + +echo "Update gettext translation files." + +DER=`pwd` +if [ ! -e "updatepo.sh" ] +then + echo "Error: Run from po/, the location of hardinfo.pot and XX.po files." + exit 1 +fi + +mv hardinfo.pot hardinfo.pot.old +echo "" > hardinfo.pot # empty existing file to join (-j) with +for d in shell/ modules/ hardinfo/; +do + # work form hardinfo root to get reasonable file reference comments + cd .. + echo -n `pwd`; echo "/$d ..." + find "$d" -type f -name "*.c" -print | xargs xgettext -j -d hardinfo -o "$DER/hardinfo.pot" -k_ -kN_ -kC_:1c,2 -kNC_:1c,2 -c/ --from-code=UTF-8 + cd "$DER" +done; for f in *.po do -- cgit v1.2.3