【发布时间】:2017-02-09 08:57:24
【问题描述】:
这里有一个很好的线程: Get CultureInfo from current visitor
说明我们可以使用以下方法轻松获取浏览器语言:
var userLanguages = Request.UserLanguages;
这里的问题是这只会给我浏览器中配置的语言,而不是选择的语言。同时,数组中的第一种语言 ([0]) 可能不是活动语言。
有没有办法在服务器端找到活动的?我知道我可以使用 javascript 在客户端执行此操作,但我想避免双重调用。
【问题讨论】:
-
究竟什么是“被选中的”?在您网站的某处有一个标志图标不会更改浏览器的 Accept-Language 请求标头。
-
请记住,
UserLanguages来自标头。标头可以被防火墙更改。因此,在查看此标头时,您不一定会获得 用户的 文化。像this answer 一样,将文化作为 URL 的一部分是一种更好的用户体验。它还具有确保每种文化都被搜索引擎索引的优势,而不仅仅是默认语言。
标签: asp.net asp.net-mvc globalization cultureinfo culture