URI: 
       tmove mki18n to contrib directory - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 91ea2d8752bd61905ed0acdfccebcf1daadf4e92
   DIR parent 1f586739152a5203fdaf206b7589b9de3d8f5422
  HTML Author: ThomasV <thomasv@gitorious>
       Date:   Sat, 21 Feb 2015 12:41:52 +0100
       
       move mki18n to contrib directory
       
       Diffstat:
         A contrib/mki18n.py                   |      64 +++++++++++++++++++++++++++++++
       
       1 file changed, 64 insertions(+), 0 deletions(-)
       ---
   DIR diff --git a/contrib/mki18n.py b/contrib/mki18n.py
       t@@ -0,0 +1,64 @@
       +#!/usr/bin/python
       +from StringIO import StringIO
       +import urllib2, os, zipfile, pycurl
       +
       +os.chdir(os.path.dirname(os.path.realpath(__file__)))
       +os.chdir('..')
       +
       +# Generate fresh translation template
       +if not os.path.exists('lib/locale'):
       +    os.mkdir('lib/locale')
       +cmd = 'xgettext -s --no-wrap -f app.fil --output=lib/locale/messages.pot'
       +print 'Generate template'
       +os.system(cmd)
       +
       +os.chdir('lib')
       +
       +crowdin_identifier = 'electrum'
       +crowdin_file_name = 'electrum-client/messages.pot'
       +locale_file_name = 'locale/messages.pot'
       +
       +if os.path.exists('../contrib/crowdin_api_key.txt'):
       +    crowdin_api_key = open('../contrib/crowdin_api_key.txt').read().strip()
       +    # Push to Crowdin
       +    print 'Push to Crowdin'
       +    url = ('http://api.crowdin.net/api/project/' + crowdin_identifier + '/update-file?key=' + crowdin_api_key)
       +    c = pycurl.Curl()
       +    c.setopt(c.URL, url)
       +    c.setopt(c.POST, 1)
       +    fields = [('files[' + crowdin_file_name + ']', (pycurl.FORM_FILE, locale_file_name))]
       +    c.setopt(c.HTTPPOST, fields)
       +    c.perform()
       +    # Build translations
       +    print 'Build translations'
       +    response = urllib2.urlopen('http://api.crowdin.net/api/project/' + crowdin_identifier + '/export?key=' + crowdin_api_key).read()
       +    print response
       +
       +# Download & unzip
       +print 'Download translations'
       +zfobj = zipfile.ZipFile(StringIO(urllib2.urlopen('http://crowdin.net/download/project/' + crowdin_identifier + '.zip').read()))
       +
       +print 'Unzip translations'
       +for name in zfobj.namelist():
       +    if not name.startswith('electrum-client/locale'):
       +        continue
       +    if name.endswith('/'):
       +        if not os.path.exists(name[16:]):
       +            os.mkdir(name[16:])
       +    else:
       +        output = open(name[16:],'w')
       +        output.write(zfobj.read(name))
       +        output.close()
       +
       +# Convert .po to .mo
       +print 'Installing'
       +for lang in os.listdir('locale'):
       +    if lang.startswith('messages'):
       +        continue
       +    # Check LC_MESSAGES folder
       +    mo_dir = 'locale/%s/LC_MESSAGES' % lang
       +    if not os.path.exists(mo_dir):
       +        os.mkdir(mo_dir)
       +    cmd = 'msgfmt --output-file="%s/electrum.mo" "locale/%s/electrum.po"' % (mo_dir,lang)
       +    print 'Installing',lang
       +    os.system(cmd)