aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/Translations.cmake3
-rw-r--r--includes/hardinfo.h4
-rw-r--r--po/HOWTO.txt17
-rw-r--r--po/updatepo.sh21
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 <libintl.h>
#include <locale.h>
-#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