Accept-Language 请求标头字段类似于 Accept,但限制了作为对请求的响应首选的自然语言集。语言标签在这里
Accept-Language = "Accept-Language" ":"
1#( language-range [ ";" "q" "=" qvalue ] )
language-range = ( ( 1*8ALPHA *( "-" 1*8ALPHA ) ) | "*" )
每个语言范围可以被赋予一个相关的质量值,该值表示用户对该范围指定的语言的偏好的估计。质量值默认为“q=1”。例如,
Accept-Language: da, en-gb;q=0.8, en;q=0.7
意思是:“我更喜欢丹麦语,但会接受英式英语和其他类型的英语。” 如果语言范围完全等于标记,或者如果它完全等于标记的前缀,则语言范围匹配语言标记,这样前缀后面的第一个标记字符是“-”。特殊范围“*”,如果存在于 Accept-Language 字段中,则匹配与 Accept-Language 字段中存在的任何其他范围不匹配的每个标签。
Note: This use of a prefix matching rule does not imply that
language tags are assigned to languages in such a way that it is
always true that if a user understands a language with a certain
tag, then this user will also understand all languages with tags
for which this tag is a prefix. The prefix rule simply allows the
use of prefix tags if this is the case.
Accept-Language 字段分配给语言标签的语言质量因子是该字段中与语言标签匹配的最长语言范围的质量值。如果字段中没有语言范围与标记匹配,则分配的语言质量因子为 0。如果请求中不存在 Accept-Language 标头,则服务器
应该假设所有语言都同样可以接受。如果存在 Accept-Language 标头,则分配的质量因子大于 0 的所有语言都是可接受的。
在每个请求中发送带有用户完整语言偏好的 Accept-Language 标头可能与用户的隐私期望相反。
由于可理解性高度依赖于单个用户,因此建议客户端应用程序使用户可以选择语言偏好。如果选择不可用,则不能在请求中给出 Accept-Language 头字段。
注意:在向用户提供语言偏好选择时,我们提醒实施者注意用户并不熟悉上述语言匹配的细节,应提供适当的指导。例如,用户可能假设在选择“en-gb”时,如果英国英语不可用,他们将获得任何类型的英语文档。在这种情况下,用户代理可能会建议添加“en”以获得最佳匹配行为。
例子:
connection.setRequestProperty("Accept-Language","<!-- Depends on Language you want -->");
希望有帮助!
资料来源: