self.compile_website_translations()
self.compile_changelog_translations()
@@ -539,15 +538,6 @@ class Translations(POT): # {{{
- rmap[msgstr] = msgid
- return not has_errors
+ zi.compress_type = ZIP_STORED if is_ci else ZIP_DEFLATED
+ zf.writestr(zi, raw)
- def freeze_locales(self):
- zf = self.DEST + '.zip'
else:
mpath = get_lc_messages_path(lang)
if mpath is not None:
-- with ZipFile(P('localization/locales.zip',
+- with ZipFile(get_path('localization/locales.zip',
- allow_user_override=False), 'r') as zf:
- try:
- buf = io.BytesIO(zf.read(mpath + '/messages.mo'))
+ _CACHE[lang] = trans
if trans is None:
return getattr(__builtins__, '_', lambda x: x)(text)
- f = getattr(trans, 'gettext' if ispy3 else 'ugettext')
+ return trans.gettext(text)
diff -urNp -x '*.orig' calibre-4.20.0.org/src/calibre/utils/localization.py calibre-4.20.0/src/calibre/utils/localization.py
--- calibre-4.20.0.org/src/calibre/utils/localization.py 2020-07-03 04:11:13.000000000 +0200
+++ calibre-4.20.0/src/calibre/utils/localization.py 2021-06-23 14:08:43.642418411 +0200
+ return None
- _lang_trans = None
+ _lang_trans = _country_trans = None
def get_all_translators():
def get_single_translator(mpath, which='messages'):
- from zipfile import ZipFile
- with ZipFile(P('localization/locales.zip', allow_user_override=False), 'r') as zf:
-- path = '{}/{}.mo'.format(mpath, which)
+- path = f'{mpath}/{which}.mo'
- data = zf.read(path)
- buf = io.BytesIO(data)
try:
def get_iso639_translator(lang):
-@@ -219,22 +210,21 @@ def translator_for_lang(lang):
+@@ -219,27 +210,25 @@ def translator_for_lang(lang):
buf = load_po(mpath + '.po')
if mpath is not None:
+ iso639 = open(os.path.join(mpath, 'calibre_iso639.mo'), 'rb')
except:
pass # No iso639 translations for this lang
+- isof = mpath + '/iso3166.mo'
+ try:
+- iso3166 = io.BytesIO(zf.read(isof))
++ iso3166 = open(os.path.join(mpath, 'calibre_iso3166.mo'), 'rb')
+ except:
+ pass # No iso3166 translations for this lang
if buf is not None:
from calibre.utils.serialize import msgpack_loads
try: