diff options
Diffstat (limited to 'tools/rebuild_gettext_catalogs.sh')
-rwxr-xr-x | tools/rebuild_gettext_catalogs.sh | 119 |
1 files changed, 82 insertions, 37 deletions
diff --git a/tools/rebuild_gettext_catalogs.sh b/tools/rebuild_gettext_catalogs.sh index d32dfdde3..1c7b9e34e 100755 --- a/tools/rebuild_gettext_catalogs.sh +++ b/tools/rebuild_gettext_catalogs.sh @@ -17,73 +17,118 @@ fi for resource in "${!resources[@]}" do difference= - if [ -f ./langs/en/$resource.pot ]; then # do a temporary copy - cp ./langs/en/$resource.pot ./langs/en/$resource.copy + if [ "$resource" = "mognase" ]; then # is it about navigation? + path_and_filename=./_nav/langs/en + else + path_and_filename=./langs/en/$resource + fi + if [ -f $path_and_filename.pot ]; then # do a temporary copy + cp $path_and_filename.pot $path_and_filename.copy fi php_source=${resources[$resource]} php tools/extract2gettext.php "$php_source" $resource true php_error_level=$? # catch php error level errors[$php_source]=$php_error_level - if [ -f ./langs/en/$resource.pot ]; then # msgmerge check of generated pot file - msgmerge --quiet --no-wrap ./langs/en/$resource.pot ./langs/en/$resource.pot > ./langs/en/$resource.tmp + if [ -f $path_and_filename.pot ]; then + # msgmerge check of generated pot file + msgmerge --quiet --no-wrap $path_and_filename.pot $path_and_filename.pot --output-file=$path_and_filename.tmp msgmerge_error_level=$? # catch msgmerge error level if [ $msgmerge_error_level -gt 0 ]; then # on failure stop the process for this resource errors[$php_source]=$msgmerge_error_level - rm ./langs/en/$resource.tmp + rm $path_and_filename.tmp fi - if [ -f ./langs/en/$resource.copy ] && [ -f ./langs/en/$resource.tmp ]; then - diff --ignore-matching-lines='^"POT-Creation-Date:' ./langs/en/$resource.tmp ./langs/en/$resource.copy + if [ -f $path_and_filename.copy ] && [ -f $path_and_filename.tmp ]; then + diff --ignore-matching-lines='^"POT-Creation-Date:' $path_and_filename.tmp $path_and_filename.copy if [ $? -eq 1 ]; then # there are differences errors[$php_source]=0 - mv ./langs/en/$resource.tmp ./langs/en/$resource.pot - rm ./langs/en/$resource.copy - echo Changes in ./langs/en/$resource.pot + mv $path_and_filename.tmp $path_and_filename.pot + rm $path_and_filename.copy + echo Changes in $path_and_filename.pot else # Cleanup as there are no changes in $resource errors[$php_source]=5 - rm ./langs/en/$resource.tmp - mv ./langs/en/$resource.copy ./langs/en/$resource.pot + rm $path_and_filename.tmp + mv $path_and_filename.copy $path_and_filename.pot difference=none fi else # diff not possible - if [ -f ./langs/en/$resource.tmp ]; then - mv ./langs/en/$resource.tmp ./langs/en/$resource.pot - rm ./langs/en/$resource.copy + if [ -f $path_and_filename.tmp ]; then + mv $path_and_filename.tmp $path_and_filename.pot + if [ -f $path_and_filename.copy ]; then + rm $path_and_filename.copy + fi else - rm ./langs/en/$resource.pot - if [ -f ./langs/en/$resource.copy ]; then - mv ./langs/en/$resource.copy ./langs/en/$resource.pot + rm $path_and_filename.pot + if [ -f $path_and_filename.copy ]; then + mv $path_and_filename.copy $path_and_filename.pot difference=none fi fi fi - 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 -# echo $directory # usefull for debuging of non UTF-8 files or other python errors - python tools/translated_converter.py --filename $directory/$resource - python_error_level=$? # catch python error level - if [ $python_error_level -gt 0 ]; then - errors[$directory/$resource]=50 - fi + if [ "$resource" = "mognase" ]; then # is it about navigation? + # create po files if needed from lang files if available + if [ -f ./_nav/langs/en.lang ]; then + python tools/translated_converter.py --filename ./_nav/langs/ + python_error_level=$? # catch python error level + if [ $python_error_level -gt 0 ]; then + errors[$resource]=50 fi - if [ -f $directory/$resource.po ] && [ -z $difference ]; 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/) - echo merging $directory/$resource.po - msgmerge --quiet --no-wrap $directory/$resource.po ./langs/en/$resource.pot > $directory/$resource.tmp + if [ -f ./_nav/langs/en.po ]; then + rm ./_nav/langs/en.po + fi + fi + + for tr_file in ./_nav/langs/*.po + do + if [ -z $difference ]; then # update po file if needed +# msgfmt --statistics --verbose -c $tr_file -o /dev/null # usefull for debuging (msgctxt "/web/en/ or msgctxt "en/) + echo merging $tr_file + msgmerge --quiet --no-wrap $tr_file ./_nav/langs/en.pot --output-file=$tr_file.tmp msgmerge_error_level=$? # catch msgmerge error level if [ $msgmerge_error_level -gt 0 ]; then errors[$directory/$resource]=60 echo "$directory"/$resource.po could not be created succesfully + if [ -f $tr_file.tmp ]; then + rm $tr_file.tmp + fi else - mv $directory/$resource.tmp $directory/$resource.po + mv $tr_file.tmp $tr_file +# msgfmt --statistics --verbose -c $tr_file -o /dev/null # usefull for debuging (msgctxt "/web/en/ or msgctxt "en/) + fi + fi + done + else + 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 +# echo $directory # usefull for debuging of non UTF-8 files or other python errors + python tools/translated_converter.py --filename $directory/$resource + python_error_level=$? # catch python error level + if [ $python_error_level -gt 0 ]; then + errors[$directory/$resource]=50 + fi + fi + if [ -f $directory/$resource.po ] && [ -z $difference ]; 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/) + echo merging $directory/$resource.po + msgmerge --quiet --no-wrap $directory/$resource.po ./langs/en/$resource.pot --output-file=$directory/$resource.tmp + msgmerge_error_level=$? # catch msgmerge error level + if [ $msgmerge_error_level -gt 0 ]; then + errors[$directory/$resource]=60 + echo "$directory"/$resource.po could not be created succesfully + if [ -f $tr_file.tmp ]; then + rm $directory/$resource.tmp + fi + else + mv $directory/$resource.tmp $directory/$resource.po +# msgfmt --statistics --verbose -c $directory/$resource.po -o /dev/null # usefull for debuging (msgctxt "/web/en/ or msgctxt "en/) + fi fi fi - fi - done + done + fi fi done |