diff --git a/frappe/change_log/current/render_in_user_lang.md b/frappe/change_log/current/render_in_user_lang.md new file mode 100644 index 0000000000..6e9f190d51 --- /dev/null +++ b/frappe/change_log/current/render_in_user_lang.md @@ -0,0 +1 @@ +- Print and full-page print preview in user's language diff --git a/frappe/sessions.py b/frappe/sessions.py index 89c10f90ac..c9826d01ee 100644 --- a/frappe/sessions.py +++ b/frappe/sessions.py @@ -196,7 +196,8 @@ class Session: self.start_as_guest() if self.sid != "Guest": - frappe.local.lang = frappe.translate.get_user_lang(self.data.user) + frappe.local.user_lang = frappe.translate.get_user_lang(self.data.user) + frappe.local.lang = frappe.local.user_lang def get_session_record(self): """get session record, or return the standard Guest Record""" diff --git a/frappe/website/render.py b/frappe/website/render.py index 54f5909807..9735a55544 100644 --- a/frappe/website/render.py +++ b/frappe/website/render.py @@ -18,7 +18,7 @@ class PageNotFoundError(Exception): pass def render(path, http_status_code=None): """render html page""" path = resolve_path(path.strip("/ ")) - frappe.local.lang = frappe.db.get_default("lang") + set_lang() try: data = render_page(path) @@ -56,6 +56,9 @@ def render(path, http_status_code=None): return build_response(path, data, http_status_code or 200) +def set_lang(): + """Set user's lang if not Guest or use default lang""" + frappe.local.lang = getattr(frappe.local, "user_lang", None) or frappe.db.get_default("lang") def render_403(e, pathname): path = "message"