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