def set_translators(): global _lang_trans, lcdata # To test different translations invoke as # CALIBRE_OVERRIDE_LANG=de_DE.utf8 program lang = get_lang() t = buf = iso639 = None if 'CALIBRE_TEST_TRANSLATION' in os.environ: buf = load_po( os.path.expanduser(os.environ['CALIBRE_TEST_TRANSLATION'])) if lang: mpath = get_lc_messages_path(lang) if buf is None and mpath and os.access(mpath + '.po', os.R_OK): 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 mpath == 'nds': mpath = 'de' isof = mpath + '/iso639.mo' try: iso639 = io.BytesIO(zf.read(isof)) except: pass # No iso639 translations for this lang if buf is not None: from calibre.utils.serialize import msgpack_loads try: lcdata = msgpack_loads( zf.read(mpath + '/lcdata.calibre_msgpack')) except: pass # No lcdata if buf is not None: t = GNUTranslations(buf) if iso639 is not None: iso639 = _lang_trans = GNUTranslations(iso639) t.add_fallback(iso639) if t is None: t = NullTranslations() try: set_translators.lang = t.info().get('language') except Exception: pass if is_py3: t.install(names=('ngettext', )) else: t.install(unicode=True, names=('ngettext', )) # Now that we have installed a translator, we have to retranslate the help # for the global prefs object as it was instantiated in get_lang(), before # the translator was installed. from calibre.utils.config_base import prefs prefs.retranslate_help()
def set_translators(): global _lang_trans, lcdata # To test different translations invoke as # CALIBRE_OVERRIDE_LANG=de_DE.utf8 program lang = get_lang() if lang: q = translator_for_lang(lang) t = q['translator'] _lang_trans = q['iso639_translator'] if q['lcdata']: lcdata = q['lcdata'] else: t = NullTranslations() try: set_translators.lang = t.info().get('language') except Exception: pass if is_py3: t.install(names=('ngettext', )) else: t.install(unicode=True, names=('ngettext', )) # Now that we have installed a translator, we have to retranslate the help # for the global prefs object as it was instantiated in get_lang(), before # the translator was installed. from calibre.utils.config_base import prefs prefs.retranslate_help()
def set_translators(): global _lang_trans, lcdata # To test different translations invoke as # CALIBRE_OVERRIDE_LANG=de_DE.utf8 program lang = get_lang() t = None if lang: buf = iso639 = None mpath = get_lc_messages_path(lang) if mpath and os.access(mpath + '.po', os.R_OK): from calibre.translations.msgfmt import make buf = cStringIO.StringIO() try: make(mpath + '.po', buf) except: print(('Failed to compile translations file: %s,' ' ignoring') % (mpath + '.po')) buf = None else: buf = cStringIO.StringIO(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 = cStringIO.StringIO(zf.read(mpath + '/messages.mo')) if mpath == 'nds': mpath = 'de' isof = mpath + '/iso639.mo' try: iso639 = cStringIO.StringIO(zf.read(isof)) except: pass # No iso639 translations for this lang if buf is not None: try: lcdata = cPickle.loads( zf.read(mpath + '/lcdata.pickle')) except: pass # No lcdata if buf is not None: t = GNUTranslations(buf) if iso639 is not None: iso639 = _lang_trans = GNUTranslations(iso639) t.add_fallback(iso639) if t is None: t = NullTranslations() t.install(unicode=True, names=('ngettext', )) # Now that we have installed a translator, we have to retranslate the help # for the global prefs object as it was instantiated in get_lang(), before # the translator was installed. from calibre.utils.config_base import prefs prefs.retranslate_help()
def set_translators(): global _lang_trans, lcdata # To test different translations invoke as # CALIBRE_OVERRIDE_LANG=de_DE.utf8 program lang = get_lang() t = None if lang: buf = iso639 = None mpath = get_lc_messages_path(lang) if mpath and os.access(mpath + '.po', os.R_OK): from calibre.translations.msgfmt import make buf = cStringIO.StringIO() try: make(mpath + '.po', buf) except: print(('Failed to compile translations file: %s,' ' ignoring') % (mpath + '.po')) buf = None else: buf = cStringIO.StringIO(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 = cStringIO.StringIO(zf.read(mpath + '/messages.mo')) if mpath == 'nds': mpath = 'de' isof = mpath + '/iso639.mo' try: iso639 = cStringIO.StringIO(zf.read(isof)) except: pass # No iso639 translations for this lang if buf is not None: try: lcdata = cPickle.loads( zf.read(mpath + '/lcdata.pickle')) except: pass # No lcdata if buf is not None: t = GNUTranslations(buf) if iso639 is not None: iso639 = _lang_trans = GNUTranslations(iso639) t.add_fallback(iso639) if t is None: t = NullTranslations() t.install(unicode=True, names=('ngettext', )) # Now that we have installed a translator, we have to retranslate the help # for the global prefs object as it was instantiated in get_lang(), before # the translator was installed. from calibre.utils.config_base import prefs prefs.retranslate_help()
def set_translators(): global _lang_trans, lcdata # To test different translations invoke as # CALIBRE_OVERRIDE_LANG=de_DE.utf8 program lang = get_lang() t = buf = iso639 = None if 'CALIBRE_TEST_TRANSLATION' in os.environ: buf = load_po(os.path.expanduser(os.environ['CALIBRE_TEST_TRANSLATION'])) if lang: mpath = get_lc_messages_path(lang) if buf is None and mpath and os.access(mpath + '.po', os.R_OK): 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 mpath == 'nds': mpath = 'de' isof = mpath + '/iso639.mo' try: iso639 = io.BytesIO(zf.read(isof)) except: pass # No iso639 translations for this lang if buf is not None: from calibre.utils.serialize import msgpack_loads try: lcdata = msgpack_loads(zf.read(mpath + '/lcdata.calibre_msgpack')) except: pass # No lcdata if buf is not None: t = GNUTranslations(buf) if iso639 is not None: iso639 = _lang_trans = GNUTranslations(iso639) t.add_fallback(iso639) if t is None: t = NullTranslations() try: set_translators.lang = t.info().get('language') except Exception: pass if is_py3: t.install(names=('ngettext',)) else: t.install(unicode=True, names=('ngettext',)) # Now that we have installed a translator, we have to retranslate the help # for the global prefs object as it was instantiated in get_lang(), before # the translator was installed. from calibre.utils.config_base import prefs prefs.retranslate_help()