我正在寻找一种检测用户语言的方法。我将默认语言设置为“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或浏览器首选项中获取此信息,但我如何才能做到这一点呢?
此外,我如何测试不同的语言?我必须改变我的浏览器语言?操作系统语言?使用代理?
3条答案
按热度按时间7qhs6swi1#
每个用户的HTTP请求都包含头参数
Accept-Language
。例如:
xu3bshqb2#
尝试将navigator.language添加到您的post数据中,并在视图中解析它。
http://www.w3schools.com/jsref/prop_nav_language.asp
ni65a41a3#
Django会根据浏览器设置来检测它应该使用哪种语言。因此,更改浏览器语言将允许您进行测试。
如果您将“en_US”设置为默认语言,它将正常工作。有关详细信息,请参阅:https://docs.djangoproject.com/en/4.2/topics/i18n/translation/#how-django-discovers-language-preference