More Debian 8 trimming.
[dcpomatic.git] / i18n.py
1 import glob
2 import os
3 from waflib import Logs
4
5 def command(c):
6     print(c)
7     os.system(c)
8
9 def pot(dir, sources, name):
10     s = ""
11     for f in sources.split():
12         t = f.strip()
13         if len(t) > 0:
14             s += (os.path.join(dir, t)) + " "
15
16     Logs.info('Making %s.pot' % os.path.join('build', dir, name))
17     d = os.path.join('build', dir)
18     try:
19         os.makedirs(d)
20     except:
21         pass
22
23     command('xgettext --from-code=UTF-8 -d %s -s --keyword=_ --keyword=S_ --add-comments=/ -p %s -o %s.pot %s' % (name, d, name, s))
24
25 def pot_merge(dir, name):
26     for f in glob.glob(os.path.join(os.getcwd(), dir, 'po', '*.po')):
27         command('msgmerge %s %s.pot -o %s' % (f, os.path.join('build', dir, name), f))
28
29 def po_to_mo(dir, name, bld):
30     for f in glob.glob(os.path.join(os.getcwd(), dir, 'po', '*.po')):
31         lang = os.path.basename(f).replace('.po', '')
32         po = os.path.join('po', '%s.po' % lang)
33         mo = os.path.join('mo', lang, '%s.mo' % name)
34
35         bld(rule='msgfmt -c ${SRC} -o ${TGT}', source=bld.path.make_node(po), target=bld.path.get_bld().make_node(mo))
36         bld.install_files(os.path.join('${PREFIX}', 'share', 'locale', lang, 'LC_MESSAGES'), mo)