Fix the output file to the correct one in the new i18n compile loop
[mediagoblin.git] / devtools / update_translations.sh
1 #!/bin/bash
2
3 # GNU MediaGoblin -- federated, autonomous media hosting
4 # Copyright (C) 2011, 2012 GNU MediaGoblin contributors. See AUTHORS.
5 #
6 # This program is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU Affero General Public License as published by
8 # the Free Software Foundation, either version 3 of the License, or
9 # (at your option) any later version.
10 #
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU Affero General Public License for more details.
15 #
16 # You should have received a copy of the GNU Affero General Public License
17 # along with this program. If not, see <http://www.gnu.org/licenses/>.
18
19 # exit if anything fails
20 set -e
21
22 echo "==> checking out master"
23 git checkout master
24
25 echo "==> pulling git master"
26 git pull
27
28 echo "==> pulling present translations"
29 ./bin/tx pull -a
30
31 git add mediagoblin/i18n/
32 git commit -m "Committing present MediaGoblin translations before pushing extracted messages" \
33 || true # Don't fail if nothing to commit
34
35 echo "==> Extracting translations"
36 ./bin/pybabel extract -F babel.ini -o mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po .
37
38 echo "==> Pushing extracted translations to Transifex"
39 ./bin/tx push -s
40
41 echo "==> Waiting 5 seconds, so the server can process the new stuff (hopefully)"
42 sleep 5
43
44 # gets the new strings added to all files
45 echo "==> Re-Pulling translations from Transifex"
46 ./bin/tx pull -a
47
48 echo "==> Compiling .mo files"
49
50 ## This used to be a lot simpler:
51 # ./bin/pybabel compile -D mediagoblin -d mediagoblin/i18n/
52
53 ## But now we have a Lojban translation that we can't compile
54 ## currently. We don't want to get rid of it because we want it... see
55 ## https://issues.mediagoblin.org/ticket/1070
56 ## to track progress.
57
58 for file in `find mediagoblin/i18n/ -name "*.po"`; do
59 if [ "$file" != "mediagoblin/i18n/jbo/LC_MESSAGES/mediagoblin.po" ]; then
60 ./bin/pybabel compile -i $file \
61 -o `dirname $file`/mediagoblin.mo \
62 -l `echo $file | awk -F / '{ print $3 }'`;
63 else
64 echo "Skipping $file which pybabel can't compile :(";
65 fi;
66 done
67
68 echo "==> Committing to git"
69 git add mediagoblin/i18n/
70
71 git commit -m "Committing extracted and compiled translations" || true
72
73 echo "... done. Now consider pushing up those commits!"