Skip to content

Commit 96c5f05

Browse files
committed
update i18n and add i18n maint script
1 parent a3d72de commit 96c5f05

2 files changed

Lines changed: 3584 additions & 810 deletions

File tree

buildtools/update_locales

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
#!/bin/bash
2+
aberr(){ printf "[\e[31mERROR\e[0m]: \e[1m%s\e[0m\n" "$*" >&2; }
3+
abinfo(){ printf "[\e[96mINFO\e[0m]: \e[1m%s\e[0m\n" "$*" >&2; }
4+
5+
function upload_to_tx() {
6+
if ! which tx > /dev/null; then
7+
aberr "You don't have Transifex client installed. \n Run \`pip install transifex-client\` to install it."
8+
exit 1
9+
fi
10+
abinfo "Uploading to transifex..."
11+
if ! tx push -s; then
12+
aberr "Problems occurred when uploading strings to Transifex."
13+
printf "\t Either there are syntax errors in source file or you don't have permission to update the source file."
14+
exit 1
15+
fi
16+
exit 0
17+
}
18+
19+
function validate() {
20+
ERR_LANG=""
21+
ERR_BUF=""
22+
for i in data/locale/*.ts; do
23+
if ! ERR_BUF=$(lconvert-qt5 -i "${i}" -o "/tmp/test.qm" -of qm 2>&1); then
24+
ERR_LANG+="\e[96m$(basename "${i}")\e[0m: \e[93m${ERR_BUF}\e[0m "
25+
printf "\e[31mx\e[0m"
26+
continue
27+
fi
28+
printf "\e[32m.\e[0m"
29+
done
30+
echo ""
31+
if [[ "x${ERR_LANG}" != "x" ]]; then
32+
aberr "The following files failed the validation: "
33+
echo -e "${ERR_LANG}"
34+
fi
35+
}
36+
37+
abinfo "Checking for your environment..."
38+
if ! which lupdate-qt5 > /dev/null; then
39+
aberr "You don't seem to have Qt i18n tools installed."
40+
printf "\tUsually this comes with your Qt installation, or you need to\n"
41+
printf "\tinstall extra packages like \`qt5-tools\` or similar.\n"
42+
exit 1;
43+
fi
44+
45+
abinfo "Scanning directories..."
46+
47+
if test -d src/3rdparty/qt5-x11embed/3rdparty/ECM/; then
48+
# prevent from collecting strings in ECM
49+
rm -rf src/3rdparty/qt5-x11embed/3rdparty/ECM/
50+
fi
51+
52+
if ! lupdate-qt5 -I include/ src/ plugins/ -ts data/locale/en.ts; then
53+
aberr "There are some problems when collecting the strings."
54+
exit 1
55+
fi
56+
57+
abinfo "Validating translations..."
58+
validate
59+
60+
abinfo "Translations successfully updated."
61+
printf "Do you want to upload translations to Transifex? [y/N]: "
62+
read -n 1 -r TX
63+
echo ""
64+
65+
if [[ "$TX" == "y" || "$TX" == "Y" ]]; then
66+
upload_to_tx
67+
fi
68+
69+
abinfo "No upload as required."
70+
71+
exit 0

0 commit comments

Comments
 (0)