summaryrefslogtreecommitdiff
path: root/i18n.py
blob: c22cbdb95f782f1f79f327a15cb0a8069d48cee6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import glob
import os
from waflib import Logs

def pot(dir, sources, name, all = False):
    s = ""
    for f in sources.split('\n'):
        t = f.strip()
        if len(t) > 0:
            s += (os.path.join(dir, t)) + " "

    if all:
        Logs.info('Making %s.pot (extracting all)' % os.path.join('build', dir, name))
        os.system('xgettext -d %s -s --extract-all -p %s -o %s.pot %s' % (name, os.path.join('build', dir), name, s))
    else:
        Logs.info('Making %s.pot' % os.path.join('build', dir, name))
        os.system('xgettext -d %s -s --keyword=_ --add-comments=/ -p %s -o %s.pot %s' % (name, os.path.join('build', dir), name, s))
    

def po_to_mo(dir, name):
    for f in glob.glob(os.path.join(dir, 'po', '*.po')):
        
        lang = os.path.basename(f).replace('.po', '')
        out = os.path.join('build', dir, 'mo', lang, '%s.mo' % name)
        try:
            os.makedirs(os.path.dirname(out))
        except:
            pass

        os.system('msgfmt %s -o %s' % (f, out))
        Logs.info('%s -> %s' % (f, out))