tmigrate make_locale to python3 - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 9ee10ab3e1d497a28d5783f6acd6861e9656dcd5 DIR parent 837f04a225bd891274980516033505492d687d99 HTML Author: ThomasV <thomasv@electrum.org> Date: Sun, 27 Aug 2017 08:01:12 +0200 migrate make_locale to python3 Diffstat: M contrib/make_locale | 45 ++++++++++++++++--------------- 1 file changed, 23 insertions(+), 22 deletions(-) --- DIR diff --git a/contrib/make_locale b/contrib/make_locale t@@ -1,6 +1,7 @@ -#!/usr/bin/env python2 -from StringIO import StringIO -import os, zipfile, pycurl +#!/usr/bin/env python3 +import os +import io +import zipfile import requests os.chdir(os.path.dirname(os.path.realpath(__file__))) t@@ -10,7 +11,7 @@ os.chdir('..') 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' +print('Generate template') os.system(cmd) os.chdir('lib') t@@ -18,32 +19,32 @@ os.chdir('lib') crowdin_identifier = 'electrum' crowdin_file_name = 'electrum-client/messages.pot' locale_file_name = 'locale/messages.pot' - crowdin_api_key = None -if os.path.exists('../contrib/crowdin_api_key.txt'): - crowdin_api_key = open('../contrib/crowdin_api_key.txt').read().strip() + +filename = '~/.crowdin_api_key' +if os.path.exists(filename): + crowdin_api_key = open(filename).read().strip() + if "crowdin_api_key" in os.environ: crowdin_api_key = os.environ["crowdin_api_key"] + if crowdin_api_key: # Push to Crowdin - print 'Push to Crowdin' + print('Push to Crowdin') url = ('https://api.crowdin.com/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() + files = {crowdin_file_name: open(locale_file_name,'rb')} + requests.request('POST', url, files=files) # Build translations - print 'Build translations' + print('Build translations') response = requests.request('GET', 'http://api.crowdin.com/api/project/' + crowdin_identifier + '/export?key=' + crowdin_api_key).content - print response + print(response) # Download & unzip -print 'Download translations' -zfobj = zipfile.ZipFile(StringIO(requests.request('GET', 'http://crowdin.com/download/project/' + crowdin_identifier + '.zip').content)) +print('Download translations') +s = requests.request('GET', 'http://crowdin.com/download/project/' + crowdin_identifier + '.zip').content +zfobj = zipfile.ZipFile(io.BytesIO(s)) -print 'Unzip translations' +print('Unzip translations') for name in zfobj.namelist(): if not name.startswith('electrum-client/locale'): continue t@@ -51,12 +52,12 @@ for name in zfobj.namelist(): if not os.path.exists(name[16:]): os.mkdir(name[16:]) else: - output = open(name[16:],'w') + output = open(name[16:], 'wb') output.write(zfobj.read(name)) output.close() # Convert .po to .mo -print 'Installing' +print('Installing') for lang in os.listdir('locale'): if lang.startswith('messages'): continue t@@ -65,5 +66,5 @@ for lang in os.listdir('locale'): 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 + print('Installing', lang) os.system(cmd)