print progress for each language
[electrum-nvc.git] / mki18n.py
1 #!/usr/bin/python
2
3 import urllib2, os
4
5 url = "https://en.bitcoin.it/wiki/Electrum/Translation?action=raw"
6 f = urllib2.urlopen(url)
7 lines = f.readlines()
8 dicts = {}
9 message = None
10 num_m = 0
11 for line in lines:
12     l = line.strip()
13     if not l: continue
14     if l[0] != '*': continue
15     if l[0:2] == '**':
16         lang, translation = l.split(':')
17         lang = lang[2:]
18         if dicts.get(lang) is None: dicts[lang] = {}
19         dicts[lang][message] = translation
20     else:
21         message = l[1:]
22         num_m += 1
23
24 #print dicts
25
26 if not os.path.exists('locale'):
27     os.mkdir('locale')
28
29
30 cmd = 'xgettext -s --no-wrap -f app.fil --output=locale/messages.pot'
31 print cmd
32 os.system(cmd)
33
34 f = open('locale/messages.pot','r')
35 s = f.read()
36 f.close()
37 s = s.replace('CHARSET', 'utf-8')
38
39 for lang, strings in dicts.items():
40     ss = s[:]
41     print(lang + " :%d/%d"%(len(strings), num_m))
42     for k,v in strings.items():
43         ss = ss.replace("msgid \"%s\"\nmsgstr \"\""%k,"msgid \"%s\"\nmsgstr \"%s\""%(k,v))
44     f = open('locale/electrum_%s.po'%lang,'w')
45     f.write(ss)
46     f.close()
47
48     if not os.path.exists('locale/'+lang):
49         os.mkdir('locale/'+lang)
50
51     mo_dir = "locale/%s/LC_MESSAGES" % lang
52     if not os.path.exists(mo_dir):
53         os.mkdir(mo_dir)
54     
55     cmd = 'msgfmt --output-file="%s/electrum.mo" "locale/electrum_%s.po"' % (mo_dir,lang)
56     #print cmd
57     os.system(cmd)
58