我正在尝试将基于HTTP标头“Accept-Language”的浏览器设置为斯堪的纳维亚语言。
我的正则表达式是:
^(nb|nn|no|sv|se|da|dk).*
我的问题是,这是否足够,如果有人知道任何其他奇怪的斯堪的纳维亚(但“有效”)语言代码或模糊导致误报的浏览器错误?
正则表达式用于显示挪威网页顶部的英文链接(主要语言和域和子域的根目录),可以将您带到英文网页(辅助语言和文件夹)当根浏览器语言不是斯堪的纳维亚语时。如果用户不想再次看到链接,则可以使用存储在JavaScript localStorage中的哈希来关闭/“选择退出”链接。由于实施时间有限,我们决定不使用IP地理位置。
答案 0 :(得分:0)
如果您单独测试accept-language
中的每个项目,那么正则表达式就足够了。
如果不是单独的,则有2个问题:
答案 1 :(得分:0)
根据您使用的语言,您可以使用以下代码轻松解析此问题,例如:这篇文章:Parse Accept-Language header in Java< - 还提供了一个很好的代码示例
此外 - 你确定要将正则表达式限制在字符串的开头,因为可以提供几个语言(第一个用于“我更喜欢x但也接受以下内容”):{{3} }
否则你的正则表达式应该根据你的要求正常工作,这里是所有浏览器语言代码的列表:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4
我也会 - 在你的鞋子里,让所有用户轻松找到“切换到X语言”链接,直到他们选择不再看到它为止。我希望很多人可能在他们的浏览器中默认设置了偏好设置,但发现实际使用它的网站是意外的,例如用户体验:
我更喜欢英语但不知道改变这个设置并且之前从未有过理由,因为很少有网站使用它。