diff --git a/frappe/auth.py b/frappe/auth.py index fc1cb09e1a..2c875c4437 100644 --- a/frappe/auth.py +++ b/frappe/auth.py @@ -154,7 +154,6 @@ class LoginManager: self.make_session() self.setup_boot_cache() self.set_user_info() - self.clear_preferred_language() def get_user_info(self): self.info = frappe.db.get_value("User", self.user, diff --git a/frappe/translate.py b/frappe/translate.py index d5916f1761..102d08bd26 100644 --- a/frappe/translate.py +++ b/frappe/translate.py @@ -27,11 +27,12 @@ def get_language(lang_list: List = None) -> str: Order of priority for setting language: 1. Form Dict => _lang - 2. Cookie => preferred_language - 3. Request Header => Accept-Language + 2. Cookie => preferred_language (Non authorized user) + 3. Request Header => Accept-Language (Non authorized user) 4. User document => language 5. System Settings => language """ + is_logged_in = frappe.session.user != "Guest" # fetch language from form_dict if frappe.form_dict._lang: @@ -41,6 +42,10 @@ def get_language(lang_list: List = None) -> str: if language: return language + # use language set in User or System Settings if user is logged in + if is_logged_in: + return frappe.local.lang + lang_set = set(lang_list or get_all_languages() or []) # fetch language from cookie