refactor(lang): frappe.translate.get_language
User.language should be given higher priority in terms of authenticated user since they chose it. Even higher than the browser they're using...even if the system locales aren't set properly and browser isn't configured properly
This commit is contained in:
parent
5f678a0d40
commit
450d4e489b
2 changed files with 7 additions and 3 deletions
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue