remove $Id: tags after discussion on the mailign list: http://markmail.org/message...
[blender-staging.git] / po / update_po.py
1 #!/usr/bin/env python
2
3 # ***** BEGIN GPL LICENSE BLOCK *****
4 #
5 # This program is free software; you can redistribute it and/or
6 # modify it under the terms of the GNU General Public License
7 # as published by the Free Software Foundation; either version 2
8 # of the License, or (at your option) any later version.
9 #
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 # GNU General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, write to the Free Software Foundation,
17 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 #
19 # ***** END GPL LICENSE BLOCK *****
20
21 # <pep8 compliant>
22
23 # update all po files in the LANGS
24
25 import subprocess
26 import os
27 import sys
28
29 GETTEXT_MSGMERGE_EXECUTABLE = "msgmerge"
30 CURRENT_DIR = os.path.abspath(os.path.dirname(__file__))
31 DOMAIN = "blender"
32
33
34 def process_po(po):
35     lang = os.path.basename(po)[:-3]
36
37     # update po file
38     cmd = (GETTEXT_MSGMERGE_EXECUTABLE,
39            "--update",
40            "--backup=none",
41            "--lang=%s" % lang,
42            os.path.join(CURRENT_DIR, "%s.po" % lang),
43            os.path.join(CURRENT_DIR, "%s.pot" % DOMAIN),
44            )
45
46     print(" ".join(cmd))
47     process = subprocess.Popen(cmd)
48     process.wait()
49
50
51 def main():
52     if len(sys.argv) > 1:
53         for lang in sys.argv[1:]:
54             po = os.path.join(CURRENT_DIR, lang + '.po')
55
56             if os.path.exists(po):
57                 process_po(po)
58     else:
59         for po in os.listdir(CURRENT_DIR):
60             if po.endswith(".po"):
61                 process_po(po)
62
63
64 if __name__ == "__main__":
65     print("\n\n *** Running %r *** \n" % __file__)
66     main()