Paste #P2HCrnI3WksfU0ub73W4

translate.sh-orig [2015-03-11 15:37:34.479876000 +0100]
translate.sh [2015-03-17 17:54:04.602341567 +0100]
26 26 #
27 27 # Optional parameters:
28 28 # -g Translate for every language listed in po/LINGUAS
29 # -l<language>
30 # -u Update the list of translations in po/LINGUAS
29 # -l <language>
30 # -u Update the list of languages in po/LINGUAS
31 31 #
32 32
33 translate() {
34 lang=$(basename ${1} .po)
35 echo " --Translating ${lang}"
36 mkdir -p ${lang}
37 for i in C/*xml; do
38 xml=$(basename ${i} C/)
39 xml2po --expand-all-entities --po-file po/${lang}.po C/${xml} >${lang}/${xml}
33 translate () {
34 for lang in $@; do
35 echo "Translating $lang ..."
36 mkdir -p $lang
37 for xml in C/*.xml; do
38 xml=$(basename $xml)
39 xml2po --expand-all-entities --po-file po/$lang.po C/$xml > $lang/$xml
40 40 done
41 if [ -e C/${document}-C.omf ]; then
42 xml2po --expand-all-entities --po-file ${1} C/${document}-C.omf >${lang}/${document}-${lang}.omf
43 sed -i -e s@\"C\"@\"${lang}\"@g -e s@C/@${lang}/@g ${lang}/${document}-${lang}.omf
44 fi
41 done
45 42 }
46 43
47 choose_language() {
48 if [ ${1} ]; then
49 translate "po/${1}.po"
50 else
51 for x in po/*.po; do
52 translate ${x}
53 done
44 shipped_languages () {
45 percreq="70"
46 echo "Updating LINGUAS ..."
47 for po in po/*.po; do
48 percdone=$(msgfmt -o /dev/null --statistics $po 2>&1 | awk '{printf "%.0f\n", $1 / ($1 + $4 + $7) * 100}')
49 if [ "$percdone" -ge "$percreq" ]; then
50 basename $po .po
54 51 fi
52 done | tee po/LINGUAS
55 53 }
56 54
57 shipped_languages() {
58 percent=70
59 for po in po/*.po
60 do
61 if [ `msgfmt -o /dev/null --statistics $po 2>&1|awk '{printf("%.0f\n",$1 / ($1 + $4 + $7) * 100)}'` -ge "${percent}" ];then
62 basename $po .po
63 fi
64 done | tee po/LINGUAS
65 exit
66 }
67
68 while getopts ":gl:u" Option
69 do
70 case ${Option} in
71 g) generated=yes;;
72 l) language=${OPTARG};;
73 u) shipped_languages;;
74 *) echo "Please specify an argument.";;
75 esac
55 while getopts ":gl:u" opt; do
56 case $opt in
57 g)
58 generated="yes";;
59 l)
60 language=$OPTARG;;
61 u)
62 shipped_languages
63 exit;;
64 esac
76 65 done
77 66
78 if [ ${language} ]; then
79 choose_language ${language}
80 elif [ ${generated} ] && [ -f po/LINGUAS ];then
81 for language in `cat po/LINGUAS`
82 do
83 choose_language ${language}
84 done
67 if [ "$generated" = "yes" ]; then
68 if [ ! -f po/LINGUAS ]; then
69 shipped_languages
70 fi
71 translate $(cat po/LINGUAS)
72 elif [ -n "$language" ]; then
73 translate $language
85 74 else
86 choose_language
75 translate $(basename -s .po -a po/*.po)
87 76 fi
translators.sh-orig [2015-03-11 15:37:34.479876000 +0100]
translators.sh [2015-03-17 17:54:04.666340468 +0100]
1 1 #!/bin/sh
2 2
3 CURDIR=$(pwd)/po/
4
5 get_languages() {
6 if [ "$generated" = yes ];then
7 languages=$(cat po/LINGUAS)
8 elif [ -n $language ];then
9 languages=$language
10 else
11 languages=$(basename -s.po $CURDIR/*.po)
12 fi
3 build_creds () {
4 for lang in $@; do
5 translators=$(sed -n '/^msgid "translator-credits"/,/^$/ {s@^"[ ]*\(.\+\)[ ]\+https://launchpad.net/~\([^ \\"]\+\).*$@\t<listitem><para>\1 (\2)</para></listitem>@p;/^$/Q}' po/$lang.po | sort -u)
6 if [ -z "$translators" ]; then
7 translators='\t<listitem><para>Translator data could not be acquired, please see <ulink url="https://translations.launchpad.net/xubuntu-docs">Launchpad</ulink>.</para></listitem>'
8 fi
9 printf "<itemizedlist>\n%b\n</itemizedlist>\n" "$translators" > $lang/translators.xml
10 done
13 11 }
14 12
15 build_creds() {
16 #for lang in `basename -s.po *.po`;do ## Good for testing, uses all translations it can find.
17 echo "<itemizedlist>"
18 for lang in $languages;do
19 mkdir -p $CURDIR/mo/$lang/LC_MESSAGES/
20 msgfmt -o $CURDIR/mo/$lang/LC_MESSAGES/xubuntu-docs.mo $CURDIR/$lang.po
21 translators=$(TEXTDOMAINDIR=$CURDIR/mo/ LANGUAGE=$lang gettext -d xubuntu-docs -s 'translator-credits' | \
22 sed -e 's@^ @\t<listitem><para>@' -e '/launchpad.net/s@$@)</para></listitem>@' \
23 -e 's@https://launchpad.net/~@(@' -e /Launchpad\ Contributions/d -e /^translator-credits$/d | sort -u)
24 done
25 if [ "$translators" = "" ];then
26 echo "<listitem><para>Unable to parse translator data or data unavailable, see <ulink url=\"https://translations.launchpad.net/xubuntu-docs/\">Launchpad</ulink></para></listitem>"
27 else
28 echo "$translators"
29 fi
30 echo "</itemizedlist>"
31 rm -rf $CURDIR/mo/
13 build_creds_alt () {
14 for lang in $@; do
15 mkdir -p po/mo/$lang/LC_MESSAGES
16 msgfmt -o po/mo/$lang/LC_MESSAGES/xubuntu-docs.mo po/$lang.po
17 translators=$(TEXTDOMAINDIR=po/mo LANGUAGE=$lang gettext -d xubuntu-docs -s 'translator-credits' | \
18 sed -n 's@^[ ]*\(.\+\)[ ]\+https://launchpad.net/~\([^ ]\+\).*$@\t<listitem><para>\1 (\2)</para></listitem>@p' | sort -u)
19 if [ -z "$translators" ]; then
20 translators='\t<listitem><para>Translator data could not be acquired, please see <ulink url="https://translations.launchpad.net/xubuntu-docs">Launchpad</ulink>.</para></listitem>'
21 fi
22 printf "<itemizedlist>\n%b\n</itemizedlist>\n" "$translators" > $lang/translators.xml
23 done
24 rm -rf po/mo
32 25 }
33 26
34 grep_creds() {
35 ## Don't build, just grep.
36 ## This is incomplete and unused, potentially helpful later.
37 for lang in $languages;do
38 echo msggrep --msgid -F -e 'translator-credits' $lang.po
27 while getopts ":gl:" opt; do
28 case $opt in
29 g)
30 generated="yes";;
31 l)
32 language=$OPTARG;;
33 esac
39 34 done
40 }
41 35
42 while getopts ":gl:" Option
43 do
44 case ${Option} in
45 g) generated=yes;;
46 l) language=${OPTARG};;
47 *) echo "Please specify an argument.";;
48 esac
49 done
36 if [ "$generated" = "yes" ]; then
37 if [ ! -f po/LINGUAS ]; then
38 ../scripts/translate.sh -u
39 fi
40 build_creds $(cat po/LINGUAS)
41 elif [ -n "$language" ]; then
42 build_creds $language
43 else
44 build_creds $(basename -s .po -a po/*.po)
45 fi
50 46
51 get_languages
52 build_creds