summaryrefslogtreecommitdiff
path: root/scripts/download_i18n.sh
blob: 0721e3d6407c0ccbc6db0f288017a0ce6785c1a9 (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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#!/bin/sh
# use this stupid script to just prepare rekonq
# dir with translations.
#
# 1. Update the lists of the ready (about 80%) translations
# check the situation here: http://l10n.kde.org/stats/gui/trunk-kde4/po/rekonq.po/
LIST="ar ast be bg bn bn_IN ca ca@valencia cs csb da de el en_GB eo es et eu fi fr fy ga gl gu he hi hr hu ia id is it ja ka kk km kn ko ku lt lv mai mk ml mr ms nb nds nl nn or pa pl pt pt_BR ro ru se si sk sl sr sv ta te tg th tr uk uz@cyrillic wa zh_CN zh_TW"

# 2. run this script. It will create an i18n dir in rekonq sources ($RK_SRCS variable, set it to your source path) 
# dir with all the listed translations (eg: italian translation = rekonq_it.po file) 
# plus the CMakeLists.txt file needed to compile them.
RK_SRCS=/DATI/KDE/SRC/rekonq

# 3. Uncomment the "ADD_SUBDIRECTORY( i18n )" line in main CMakeLists.txt file.

# 4. test a package creation (to see the translations installed)

# THAT's ALL!!

########################################################################################################

# current dir
CWD=$(pwd)

# create the i18n dir
cd $RK_SRCS
mkdir -p i18n
cd i18n

# download the po files
for lang in $LIST
do
    wget http://websvn.kde.org/*checkout*/trunk/l10n-kde4/$lang/messages/extragear-network/rekonq.po
    
    if [ -a rekonq.po ]; then
        mv rekonq.po rekonq_$lang.po
    
        # retrieve the statistic string
        STATS=$(msgfmt --statistic rekonq_$lang.po 2>&1)
        rm messages.mo

        # grep out translated & untranslated strings number
        TRANS=$(echo $STATS | awk '{print $1}')
        TRANS=${TRANS:-0}
        FUZZ=$(echo $STATS | awk '{print $4}')
        FUZZ=${FUZZ:-0}
        UNTR=$(echo $STATS | awk '{print $7}')
        UNTR=${UNTR:-0}

        # check if perc is more than 80%
        TOT=$[$TRANS+$FUZZ+$UNTR]
        if [ $TOT -eq 0 ]; then
            rm rekonq_$lang.po
        else
            PERC=$(echo $TRANS/$TOT | bc -l)

            RESULT=$(echo $PERC '>' .80 | bc -l)
            if [ $RESULT -eq 0 ]; then 
                echo removing $lang...
                rm rekonq_$lang.po
            fi
        fi
    fi
done

# create the CMakeLists.txt file for the translations


echo '

FIND_PROGRAM(GETTEXT_MSGFMT_EXECUTABLE msgfmt)
 
IF(NOT GETTEXT_MSGFMT_EXECUTABLE)
        MESSAGE(
"------
                 NOTE: msgfmt not found. Translations will *not* be installed
------")
ELSE(NOT GETTEXT_MSGFMT_EXECUTABLE)
 
        SET(catalogname rekonq)
 
        ADD_CUSTOM_TARGET(translations ALL)
 
        FILE(GLOB PO_FILES ${catalogname}*.po)
 
        FOREACH(_poFile ${PO_FILES})
                GET_FILENAME_COMPONENT(_poFileName ${_poFile} NAME)
                STRING(REGEX REPLACE "^${catalogname}_?" "" _langCode ${_poFileName} )
                STRING(REGEX REPLACE "\\.po$" "" _langCode ${_langCode} )
 
                IF( _langCode )
                        GET_FILENAME_COMPONENT(_lang ${_poFile} NAME_WE)
                        SET(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo)
 
                        ADD_CUSTOM_COMMAND(TARGET translations
                                COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} --check -o ${_gmoFile} ${_poFile}
                                DEPENDS ${_poFile})
                        INSTALL(FILES ${_gmoFile} DESTINATION ${LOCALE_INSTALL_DIR}/${_langCode}/LC_MESSAGES/ RENAME ${catalogname}.mo)
                ENDIF( _langCode )
 
        ENDFOREACH(_poFile ${PO_FILES})
 
ENDIF(NOT GETTEXT_MSGFMT_EXECUTABLE)

' > CMakeLists.txt

# done :)
cd $CWD
echo "Done. Yuppy!"