#!/bin/bash # Filip Komar, 2014 # @license GPL v2 # @author Filip (rebuilding a gettext dictionaries) # @copyright 2014/03 # inspired by check_for_translation_work.sh error=0 declare -A resources declare -A errors if [ -f ./tools/web_projects.dat ]; then source ./tools/web_projects.dat else echo Critical error!!! It was not possible to load web projects database! fi for resource in "${!resources[@]}" do php_source=${resources[$resource]} php tools/extract2gettext.php $php_source $resource true 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 # 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 # msgfmt --statistics --verbose -c $directory/$resource.po -o /dev/null # usefull for debuging (msgctxt "/web/en/ or msgctxt "en/) msgmerge --update --quiet $directory/$resource.po ./langs/en/$resource.pot msgmerge_error_level=$? # catch msgmerge error level # msgfmt --statistics --verbose -c $directory/$resource.po -o /dev/null # usefull for debuging (msgctxt "/web/en/ or msgctxt "en/) 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 fi done echo '' #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!! Duplicates?" ;; esac done