From 86a990527b77e59eba4b66b9613ae956d7b35b31 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 6 May 2015 11:47:51 +0530 Subject: [PATCH] [fix] [major] translation cache boo-boo --- frappe/__init__.py | 1 + frappe/translate.py | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/frappe/__init__.py b/frappe/__init__.py index 48bf98f30b..af404587e2 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -112,6 +112,7 @@ def init(site, sites_path=None): local.conf = _dict(get_site_config()) local.lang = local.conf.lang or "en" + local.lang_full_dict = None local.module_app = None local.app_modules = None diff --git a/frappe/translate.py b/frappe/translate.py index b9aea40496..9f0393ed69 100644 --- a/frappe/translate.py +++ b/frappe/translate.py @@ -168,8 +168,15 @@ def get_full_dict(lang): """ if lang == "en": return {} - translations = load_lang(lang) - return frappe.cache().get_value("lang:" + lang, lambda:translations) if translations else {} + + if not frappe.local.lang_full_dict: + frappe.local.lang_full_dict = frappe.cache().get_value("lang:" + lang) + if not frappe.local.lang_full_dict: + # cache lang + frappe.cache().set_value("lang:" + lang, frappe.local.lang_full_dict) + frappe.local.lang_full_dict = load_lang(lang) + + return frappe.local.lang_full_dict def load_lang(lang, apps=None): """Combine all translations from `.csv` files in all `apps`"""