在这里,让我们来看看 Frappe 中语言是如何解析的,以及你如何在你的
Frappe 应用或脚本中使用它们。
你会话的语言取决于 frappe.lang 的值。它的解析顺序如下:
- 表单字典 > _lang
- Cookie > preferred_language [仅限访客用户]
- 请求头 > Accept-Language [仅限访客用户]
- 用户文档 > language
- 系统设置 > language
表单字典:_lang
表单字典的 _lang 参数具有最高优先级。设置此参数将
更新给定请求中的所有可翻译组件。Frappe 在某些地方使用这种机制
来处理邮件模板和打印视图。
Cookie:preferred_language
虽然在每个请求中传递 ?_lang=ru 可能不太实际。如果你
想要持久但临时的语言设置,你可以在 cookies 中设置preferred_language 键。Frappe 利用这一点来实现网站
语言切换器。此方法可用于根据客户端来持久化语言设置。
仅对访客用户生效。对已登录用户忽略。
请求头:Accept-Language
另一种相对更简洁、更标准的管理语言的方法是使用Accept-Language 请求头。如果前两种方法都未设置,Frappe 会开始
解析此请求头的值,其中包含客户端可接受语言的有序集合。你可以查看 Mozilla
文档
以获取更多相关信息。
仅对访客用户生效。对已登录用户忽略。
用户与系统设置
用户文档中有一个 language 字段,用于设置该用户的会话语言。
此设置会跨设备、客户端持久保存。这允许特定
用户以他们选择的语言查看网站和 Desk。例如,
如果一个用户在“法语”网站上将其语言设置为“俄语”,当他们
登录时,网站会自动翻译成俄语。
系统设置中的 language 字段用于设置整个
网站的语言。它的优先级最低,是所有会话的备用语言。