Php 如何检测浏览器是否支持某种语言?
我正在建立一个多语言网站。是否可以使用PHP或Javascript检查用户机器上是否安装/支持特定语言?如果该语言不受支持/未安装,我想检测并向用户显示一条消息 谢谢,Php 如何检测浏览器是否支持某种语言?,php,javascript,multilingual,Php,Javascript,Multilingual,我正在建立一个多语言网站。是否可以使用PHP或Javascript检查用户机器上是否安装/支持特定语言?如果该语言不受支持/未安装,我想检测并向用户显示一条消息 谢谢, 标记。浏览器通常会发送一个Accept Language标头,该标头可能会为您提供一些有关此人希望看到的语言的提示。在我的情况下,我的浏览器将此标题发送到stackoverflow.com: Accept-Language: en-us,en;q=0.5 假设您在服务器端使用PHP,您可以在$\u服务器变量中查找此信息: $_
标记。浏览器通常会发送一个Accept Language标头,该标头可能会为您提供一些有关此人希望看到的语言的提示。在我的情况下,我的浏览器将此标题发送到stackoverflow.com:
Accept-Language: en-us,en;q=0.5
假设您在服务器端使用PHP,您可以在$\u服务器变量中查找此信息:
$_SERVER["HTTP_ACCEPT_LANGUAGE"]
浏览器通常会发送一个Accept Language标头,该标头可能会为您提供有关此人希望看到的语言的一些提示。在我的情况下,我的浏览器将此标题发送到stackoverflow.com:
Accept-Language: en-us,en;q=0.5
假设您在服务器端使用PHP,您可以在$\u服务器变量中查找此信息:
$_SERVER["HTTP_ACCEPT_LANGUAGE"]
检测安装了哪些语言可能不太可能 。。。但是你可以检测出用户愿意从网站上获得哪些语言——也就是说,一般来说,他能理解哪些语言 大多数浏览器发送一个名为“
Accept Language
”的HTTP头,该头的值可以是“fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
”(这是我当前的浏览器发送到我正在访问的网站的内容)
在PHP端,您可以在$\u服务器
数组中获得:
var_dump($_SERVER['HTTP_ACCEPT_LANGUAGE']);
将输出:
string 'fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3' (length=35)
在这里,它表示我希望网站以法语向我发送内容;但我也接受英语(最好是美式英语,但我也接受纯默认英语)
你可以找到很多关于如何在PHP中解析的例子;例如: 使用那篇文章中提供的代码,我得到了以下语言数组:
array
'fr' => int 1
'fr-fr' => string '0.8' (length=3)
'en-us' => string '0.5' (length=3)
'en' => string '0.3' (length=3)
即:
- 我更喜欢法语
- 如果“fr”不可能,我喜欢“来自法国的法语”
- 如果这也不可能,我接受“来自美国的英语”
- 如果不可能的话,我同意“英语”
如果网站不能提供这些服务。。。好吧,我想我没有太多的选择,并且会得到它想要发送给我的任何东西…检测安装了哪些语言可能不太可能 。。。但是你可以检测出用户愿意从网站上获得哪些语言——也就是说,一般来说,他能理解哪些语言 大多数浏览器发送一个名为“
Accept Language
”的HTTP头,该头的值可以是“fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
”(这是我当前的浏览器发送到我正在访问的网站的内容)
在PHP端,您可以在$\u服务器
数组中获得:
var_dump($_SERVER['HTTP_ACCEPT_LANGUAGE']);
将输出:
string 'fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3' (length=35)
在这里,它表示我希望网站以法语向我发送内容;但我也接受英语(最好是美式英语,但我也接受纯默认英语)
你可以找到很多关于如何在PHP中解析的例子;例如: 使用那篇文章中提供的代码,我得到了以下语言数组:
array
'fr' => int 1
'fr-fr' => string '0.8' (length=3)
'en-us' => string '0.5' (length=3)
'en' => string '0.3' (length=3)
即:
- 我更喜欢法语
- 如果“fr”不可能,我喜欢“来自法国的法语”
- 如果这也不可能,我接受“来自美国的英语”
- 如果不可能的话,我同意“英语”
如果网站不能提供这些服务。。。好吧,我想我没有太多的选择,我会得到它想要给我的任何东西…通过检查Accept头可以了解用户的语言偏好。我在几年前(2000年,呸!)写过一篇文章,探讨了这一点和一些替代机制 此后,出现了许多有趣的资源;特别是,我喜欢,它采用了一种实用的PHP方法
祝你好运 通过检查Accept头可以了解用户的语言偏好。我在几年前(2000年,呸!)写过一篇文章,探讨了这一点和一些替代机制 此后,出现了许多有趣的资源;特别是,我喜欢,它采用了一种实用的PHP方法
祝你好运 在过去的十年里,我一直在做多种语言的事情,我的印象是你试图做得过火:你看得不对。您不必关心用户机器上安装了什么语言(操作系统或浏览器):操作系统语言无关紧要,现代浏览器几乎支持所有语言(而且,自NN4消亡以来,所有在Unicode标准中占有一席之地的书写系统/字母表)。你应该追求的是用户喜欢什么语言。用户是“受支持”语言数量的瓶颈 Accept语言头可能是一个很好的解决方案——如果它有效的话。根据我的经验,这种情况并不多见。今天的普通用户仍然必须知道URL进入地址栏而不是他的主页搜索表单——我不希望超过1-2%的网民知道HTTP头(是的,我今晚的心情很乐观)。用户将很乐意使用他们的浏览器最初设置为声称的任何语言访问您的网站。这包括来自世界各地网吧的游客,在国外为公司工作的外籍人士,他们有着严格的“不要弄乱配置”政策,有能力的老人,有着奇异幽默感的孙子,共享机器等等。你会经常猜错 为不受支持的语言显示消息的概念也是可疑的。如果使用Punjabi浏览器的用户能够导航到您的站点,那么他可能会看到您不提供Punjabi自己的服务-不需要用消息中断他的浏览 尽管如此,有时最简单的解决方案是最好的:我建议