From 5bd5cfe761ac080f466df66212814b44253e88b8 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 23 Aug 2017 09:59:15 +0530 Subject: [PATCH] Only read UM localization stats once --- src/calibre/utils/localization.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/calibre/utils/localization.py b/src/calibre/utils/localization.py index 9a3a196146..4acb85ea84 100644 --- a/src/calibre/utils/localization.py +++ b/src/calibre/utils/localization.py @@ -448,15 +448,23 @@ def get_udc(): return _udc +def user_manual_stats(): + stats = getattr(user_manual_stats, 'stats', None) + if stats is None: + import json + try: + stats = json.loads(P('user-manual-translation-stats.json', allow_user_override=False, data=True)) + except EnvironmentError: + stats = {} + user_manual_stats.stats = stats + return stats + + def localize_user_manual_link(url): lc = lang_as_iso639_1(get_lang()) if lc == 'en': return url - import json - try: - stats = json.loads(P('user-manual-translation-stats.json', allow_user_override=False, data=True)) - except EnvironmentError: - return url + stats = user_manual_stats() if stats.get(lc, 0) < 0.3: return url from urlparse import urlparse, urlunparse