Compile changelog translations

This commit is contained in:
Kovid Goyal 2019-12-25 16:47:01 +05:30
parent ff5039dd31
commit 6de56e8f93
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 13 additions and 4 deletions

View File

@ -284,6 +284,7 @@ class Translations(POT): # {{{
self.freeze_locales() self.freeze_locales()
self.compile_user_manual_translations() self.compile_user_manual_translations()
self.compile_website_translations() self.compile_website_translations()
self.compile_changelog_translations()
def compile_group(self, files, handle_stats=None, file_ok=None, action_per_file=None): def compile_group(self, files, handle_stats=None, file_ok=None, action_per_file=None):
from calibre.constants import islinux from calibre.constants import islinux
@ -523,12 +524,12 @@ class Translations(POT): # {{{
def stats(self): def stats(self):
return self.j(self.d(self.DEST), 'stats.calibre_msgpack') return self.j(self.d(self.DEST), 'stats.calibre_msgpack')
def compile_website_translations(self): def _compile_website_translations(self, name='website', threshold=50):
from calibre.utils.zipfile import ZipFile, ZipInfo, ZIP_STORED from calibre.utils.zipfile import ZipFile, ZipInfo, ZIP_STORED
from calibre.ptempfile import TemporaryDirectory from calibre.ptempfile import TemporaryDirectory
from calibre.utils.localization import get_iso639_translator, get_language, get_iso_language from calibre.utils.localization import get_iso639_translator, get_language, get_iso_language
self.info('Compiling website translations...') self.info('Compiling', name, 'translations...')
srcbase = self.j(self.d(self.SRC), 'translations', 'website') srcbase = self.j(self.d(self.SRC), 'translations', name)
fmap = {} fmap = {}
files = [] files = []
stats = {} stats = {}
@ -554,7 +555,7 @@ class Translations(POT): # {{{
self.compile_group(files, handle_stats=handle_stats) self.compile_group(files, handle_stats=handle_stats)
for locale, translated in iteritems(stats): for locale, translated in iteritems(stats):
if translated >= 20: if translated >= 50:
with open(os.path.join(tdir, locale + '.mo'), 'rb') as f: with open(os.path.join(tdir, locale + '.mo'), 'rb') as f:
raw = f.read() raw = f.read()
zi = ZipInfo(os.path.basename(f.name)) zi = ZipInfo(os.path.basename(f.name))
@ -574,6 +575,10 @@ class Translations(POT): # {{{
zi = ZipInfo('lang-names.json') zi = ZipInfo('lang-names.json')
zi.compress_type = ZIP_STORED zi.compress_type = ZIP_STORED
zf.writestr(zi, json.dumps(lang_names, ensure_ascii=False).encode('utf-8')) zf.writestr(zi, json.dumps(lang_names, ensure_ascii=False).encode('utf-8'))
return done
def compile_website_translations(self):
done = self._compile_website_translations()
dest = self.j(self.d(self.stats), 'website-languages.txt') dest = self.j(self.d(self.stats), 'website-languages.txt')
data = ' '.join(sorted(done)) data = ' '.join(sorted(done))
if not isinstance(data, bytes): if not isinstance(data, bytes):
@ -581,6 +586,9 @@ class Translations(POT): # {{{
with open(dest, 'wb') as f: with open(dest, 'wb') as f:
f.write(data) f.write(data)
def compile_changelog_translations(self):
self._compile_website_translations('changelog', 0)
def compile_user_manual_translations(self): def compile_user_manual_translations(self):
self.info('Compiling user manual translations...') self.info('Compiling user manual translations...')
srcbase = self.j(self.d(self.SRC), 'translations', 'manual') srcbase = self.j(self.d(self.SRC), 'translations', 'manual')

View File

@ -379,6 +379,7 @@ class UploadToServer(Command): # {{{
def run(self, opts): def run(self, opts):
check_call('scp translations/website/locales.zip main:/srv/main/'.split()) check_call('scp translations/website/locales.zip main:/srv/main/'.split())
check_call('scp translations/changelog/locales.zip main:/srv/main/changelog-locales.zip'.split())
check_call('ssh main /apps/static/generate.py'.split()) check_call('ssh main /apps/static/generate.py'.split())
src_file = glob.glob('dist/calibre-*.tar.xz')[0] src_file = glob.glob('dist/calibre-*.tar.xz')[0]
upload_signatures() upload_signatures()