[utils] Capture the error that mo files not found in LOCALE_DATA.ZIP

This commit is contained in:
Yen Chi Hsuan 2015-12-13 05:09:41 +08:00
parent 7da2b9e3bc
commit c0450e2014

View File

@ -2547,8 +2547,13 @@ class I18N(object):
locale_data_zip = _load_exe_resource('LOCALE_DATA', 'LOCALE_DATA.ZIP')
f = io.BytesIO(locale_data_zip)
zipf = zipfile.ZipFile(f)
with zipf.open('share/locale/%s/LC_MESSAGES/%s.mo' % (lang, self.domain)) as mo_file:
t = gettext.GNUTranslations(mo_file)
try:
zinfo = zipf.getinfo('share/locale/%s/LC_MESSAGES/%s.mo' % (lang, self.domain))
except KeyError:
zinfo = None
if zinfo is not None:
with zipf.open(zinfo) as mo_file:
t = gettext.GNUTranslations(mo_file)
zipf.close()
if t is None: