-@@ -145,22 +145,21 @@
- buf = io.BytesIO(buf.getvalue())
-
- if mpath is not None:
-- from zipfile import ZipFile
-- with ZipFile(P('localization/locales.zip',
-- allow_user_override=False), 'r') as zf:
-- if buf is None:
-- buf = io.BytesIO(zf.read(mpath + '/messages.mo'))
-+ if buf is None:
-+ try:
-+ buf = open(os.path.join(mpath, 'calibre.mo'), 'rb')
-+ except:
-+ pass # No translations for this lang
- if mpath == 'nds':
- mpath = 'de'
-- isof = mpath + '/iso639.mo'
+@@ -219,27 +210,25 @@ def translator_for_lang(lang):
+ buf = load_po(mpath + '.po')
+
+ if mpath is not None:
+- from zipfile import ZipFile
+- with ZipFile(P('localization/locales.zip',
+- allow_user_override=False), 'r') as zf:
+- if buf is None:
+- buf = io.BytesIO(zf.read(mpath + '/messages.mo'))
++ if buf is None:
++ try:
++ buf = open(os.path.join(mpath, 'calibre.mo'), 'rb')
++ except:
++ pass # No translations for this lang
+ if mpath == 'nds':
+ mpath = 'de'
+- isof = mpath + '/iso639.mo'
+ try:
+- iso639 = io.BytesIO(zf.read(isof))
++ 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