From 140f314e64631208f259f889b60789c07b99bef7 Mon Sep 17 00:00:00 2001 From: Filip Komar Date: Wed, 5 Mar 2014 20:14:12 +0000 Subject: script translated_converter.py adjusted for the need + some error managament improvemnts + bug fixes --- tools/rebuild_gettext_catalogs.sh | 51 +++++++++++++++++++++++++++++---------- 1 file changed, 38 insertions(+), 13 deletions(-) (limited to 'tools/rebuild_gettext_catalogs.sh') diff --git a/tools/rebuild_gettext_catalogs.sh b/tools/rebuild_gettext_catalogs.sh index 3b84f7974..011d4c4d8 100755 --- a/tools/rebuild_gettext_catalogs.sh +++ b/tools/rebuild_gettext_catalogs.sh @@ -7,26 +7,43 @@ error=0 declare -A resources +declare -A errors source ./tools/web_projects.dat for resource in "${!resources[@]}" do php_source=${resources[$resource]} php tools/extract2gettext.php $php_source $resource true - current_error_level=$? # catch error level - if [ $current_error_level -gt 1 ]; then - error=$current_error_level - error_in_source=$php_source - fi + php_error_level=$? # catch php error level + error=$php_error_level + error_in_source=$php_source + errors[$php_source]=$php_sourc$php_error_level if [ -f ./langs/en/$resource.pot ]; then # cut too long lines msgmerge --quiet ./langs/en/$resource.pot ./langs/en/$resource.pot > ./langs/en/$resource.tmp mv ./langs/en/$resource.tmp ./langs/en/$resource.pot for directory in ./langs/* - do # update po files too - if [ -d $directory/ ]; then - if [ -f $directory/$resource.po ]; then + do + # in each language directory except source + if [ -d $directory/ ] && [ $directory != ./langs/en ]; then + # create po file if needed from lang file if available + if [ ! -f $directory/$resource.po ] && [ -f $directory/$resource.*.lang ]; then + python tools/translated_converter.py --filename $directory/$resource + python_error_level=$? # catch python error level + if [ $python_error_level -gt 0 ]; then + error=50 + error_in_source=$directory/$resource + fi + fi + if [ -f $directory/$resource.po ]; then # update po file if it exists msgmerge --update --quiet $directory/$resource.po ./langs/en/$resource.pot + msgmerge_error_level=$? # catch msgmerge error level + if [ $msgmerge_error_level -gt 0 ]; then + error=60 + error_in_source=$directory/$resource + echo "$directory"/$resource.po could not be created succesfully + errors[$resource]=$resource$msgmerge_error_level + fi fi fi done @@ -34,8 +51,16 @@ do done echo '' -case $error in - 0) echo "Done lookup for _g() and _r() in php source code. Gettext catalogs (pot files) rebuilded. Existing po files updated." ;; - 2) echo "!!!! Please fix $error_in_source first !!!! See details above." ;; - 3) echo "!!!! Failed to write $error_in_source !!!! See details above." ;; -esac +#printf "%s\n" "${errors[@]}" +for error_in_source in "${!errors[@]}" +do + case ${errors[$error_in_source]} in + 0) echo "Done lookup for _g() and _r() in $error_in_source. Gettext catalogs (pot files) rebuilded. Existing po files updated." ;; + 1) echo "Unkown error!!" ;; + 10) echo "No strings to save from $error_in_source!" ;; + 20) echo "!!!! Parse error, please fix $error_in_source first !!!! See details above." ;; + 30) echo "!!!! Failed to write $error_in_source !!!! See details above." ;; + 50) echo "!!!! Script translated_converter.py encounter an error in $error_in_source !!!!" ;; + 60) echo "$error_in_source.po could not be created succesfully!!" ;; + esac +done -- cgit v1.2.1