aboutsummaryrefslogtreecommitdiffstats
path: root/tools/rebuild_gettext_catalogs.sh
blob: 3b84f7974fd79e1da9d700201a51d9e0e06e6087 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/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
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
    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
                    msgmerge --update --quiet $directory/$resource.po ./langs/en/$resource.pot
                fi
            fi
        done
    fi
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