【发布时间】:2012-04-13 05:55:50
【问题描述】:
我需要一个可以解析Accept-Language 标头并返回我首选语言的代码示例或库。
RFC2616 声明:
Accept-Language request-header 字段与 Accept 类似,但 限制作为首选的自然语言集 响应请求。语言标签在 3.10 节中定义。
Accept-Language = "Accept-Language" ":" 1#( language-range [ ";" "q" "=" qvalue ] ) language-range = ( ( 1*8ALPHA *( "-" 1*8ALPHA ) ) | "*" )每个语言范围都可以被赋予一个相关的质量值 表示用户对语言偏好的估计 由该范围指定。质量值默认为“q=1”。
进一步阅读表明,有太多的“可选”、“应该”、“可能”和其他语言轮转使我无法重新发明轮子——我只想知道用户喜欢什么语言,任何浏览器都会回答这个问题每天问十亿次。
任何语言的任何代码 sn-p(请除了 Lisp 和 Assembler)都会有所帮助。
非常感谢!
【问题讨论】:
-
嗯!对 Lisp 有意见吗? :)
-
用逗号分隔(如果可用,前面还有空格),然后询问每个标记。语言是第一部分,然后(如果存在)一个 q-code(优先级)。最后按q值排序(我的理解是没有q的都理解为“1”)。
-
@Anton,我不擅长计算括号:)
-
@Brad,这就是我要避免的,但如果没有现成的答案,肯定会开始这样做。
-
谁在汇编器中编写网络应用程序? :-)