From c088f7e818bbe395d9046d4bf664af0c3d00c1f1 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 14 Mar 2018 09:18:52 +0530 Subject: [PATCH] A spot of refactoring --- src/calibre/gui2/languages.py | 16 ++-------------- src/calibre/utils/localization.py | 10 ++++++++++ 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/src/calibre/gui2/languages.py b/src/calibre/gui2/languages.py index b5a954096a..377cdfd00d 100644 --- a/src/calibre/gui2/languages.py +++ b/src/calibre/gui2/languages.py @@ -9,20 +9,9 @@ __docformat__ = 'restructuredtext en' from calibre.gui2 import gui_prefs from calibre.gui2.complete2 import EditWithComplete -from calibre.utils.localization import lang_map +from calibre.utils.localization import lang_map_for_ui from calibre.utils.icu import sort_key, lower -_lang_map = None - - -def get_lang_map(): - global _lang_map - if _lang_map is None: - _lang_map = lang_map().copy() - for x in ('zxx', 'mis', 'mul'): - _lang_map.pop(x, None) - return _lang_map - class LanguagesEdit(EditWithComplete): @@ -33,7 +22,7 @@ class LanguagesEdit(EditWithComplete): self.setSizeAdjustPolicy(self.AdjustToMinimumContentsLengthWithIcon) self.setMinimumContentsLength(20) - self._lang_map = get_lang_map() + self._lang_map = lang_map_for_ui() self.names_with_commas = [x for x in self._lang_map.itervalues() if ',' in x] self.comma_map = {k:k.replace(',', '|') for k in self.names_with_commas} self.comma_rmap = {v:k for k, v in self.comma_map.iteritems()} @@ -114,4 +103,3 @@ class LanguagesEdit(EditWithComplete): if code is None: bad.append(name) return bad - diff --git a/src/calibre/utils/localization.py b/src/calibre/utils/localization.py index a91d265184..23b2b51cdd 100644 --- a/src/calibre/utils/localization.py +++ b/src/calibre/utils/localization.py @@ -426,6 +426,16 @@ def lang_map(): return _lang_map +def lang_map_for_ui(): + ans = getattr(lang_map_for_ui, 'ans', None) + if ans is None: + ans = lang_map().copy() + for x in ('zxx', 'mis', 'mul'): + ans.pop(x, None) + lang_map_for_ui.ans = ans + return ans + + def langnames_to_langcodes(names): ''' Given a list of localized language names return a mapping of the names to 3