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