Merge branch 'translation_fallback' of https://github.com/xxyzz/calibre

This commit is contained in:
Kovid Goyal 2022-09-09 06:44:02 +05:30
commit ea873e7c1c
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -119,13 +119,15 @@ def load_translations(namespace, zfp):
_translations_cache[zfp] = None _translations_cache[zfp] = None
return return
with zipfile.ZipFile(zfp) as zf: with zipfile.ZipFile(zfp) as zf:
try: mo_path = zipfile.Path(zf, f"translations/{lang}.mo")
mo = zf.read('translations/%s.mo' % lang) if not mo_path.exists() and "_" in lang:
except KeyError: mo_path = zipfile.Path(zf, f"translations/{lang.split('_')[0]}.mo")
mo = None # No translations for this language present if mo_path.exists():
if mo is None: mo = mo_path.read_bytes()
_translations_cache[zfp] = None else:
return _translations_cache[zfp] = None
return
from gettext import GNUTranslations from gettext import GNUTranslations
from io import BytesIO from io import BytesIO
trans = _translations_cache[zfp] = GNUTranslations(BytesIO(mo)) trans = _translations_cache[zfp] = GNUTranslations(BytesIO(mo))