如何检测浏览器是否支持某种语言?

Mar*_*des 1 javascript php multilingual

我正在建立一个多语种网站.是否可以使用PHP或Javascript检查用户机器上是否安装/支持特定语言?如果不支持/安装语言,我想检测到这一点并向用户显示一条消息.

谢谢,马克.

Pas*_*TIN 6

检测安装的语言可能不太可能......

...但是,您可以检测用户愿意从网站获取哪些语言 - 即,通常,他可以理解哪种语言.

大多数浏览器发送一个名为" Accept-Language" 的HTTP标头,它可以有一个值" fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3" (这是我当前的浏览器发送给我正在访问的网站)

在PHP方面,你可以在$_SERVER数组中得到这个:

var_dump($_SERVER['HTTP_ACCEPT_LANGUAGE']);
Run Code Online (Sandbox Code Playgroud)

将输出:

string 'fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3' (length=35)
Run Code Online (Sandbox Code Playgroud)

在这里,它表明我希望网站向我发送法语内容; 但我也接受英语(最好是美国英语,但我也可以用普通的默认英语)


你可以找到很多关于如何在PHP中解析它的例子; 例如:Parse Accept-Language来检测用户的语言.

使用该文章中提供的代码,我得到了这种语言数组:

array
  'fr' => int 1
  'fr-fr' => string '0.8' (length=3)
  'en-us' => string '0.5' (length=3)
  'en' => string '0.3' (length=3)
Run Code Online (Sandbox Code Playgroud)

即:

  • 我更喜欢法国人
  • 如果"fr"不可能,我喜欢"来自法国的法语"
  • 如果那也不可能,我接受"来自美国的英语"
  • 如果那是不可能的话,我很喜欢"英语"

如果网站无法提供任何服务......嗯,我想我没有多少选择,并且会得到任何想要发送给我的东西......