使用Django检测用户语言

wwodge7n  于 2023-04-22  发布在  Go
关注(0)|答案(3)|浏览(85)

我正在寻找一种检测用户语言的方法。我将默认语言设置为“en_US”,我将我的网站翻译为“pt_BR”。如何切换语言,并为巴西人显示“pt_BR”版本,为世界其他地区显示“en_US”版本?
我读了这些文档链接:
https://docs.djangoproject.com/en/dev/topics/http/sessions/
https://docs.djangoproject.com/en/1.7/topics/i18n/translation/
我相信也许我必须从用户cookie或浏览器首选项中获取此信息,但我如何才能做到这一点呢?
此外,我如何测试不同的语言?我必须改变我的浏览器语言?操作系统语言?使用代理?

7qhs6swi

7qhs6swi1#

每个用户的HTTP请求都包含头参数Accept-Language
例如:

user_langs = request.META.get('HTTP_ACCEPT_LANGUAGE', ['en-US', ])
xu3bshqb

xu3bshqb2#

尝试将navigator.language添加到您的post数据中,并在视图中解析它。
http://www.w3schools.com/jsref/prop_nav_language.asp

ni65a41a

ni65a41a3#

Django会根据浏览器设置来检测它应该使用哪种语言。因此,更改浏览器语言将允许您进行测试。
如果您将“en_US”设置为默认语言,它将正常工作。有关详细信息,请参阅:https://docs.djangoproject.com/en/4.2/topics/i18n/translation/#how-django-discovers-language-preference

相关问题