正确使用PHP:header('Content-language:...');

Sam*_*Sam 3 php multilingual header

除了设置页面语言的明显方式:

<meta name="language" content="de"><html lang="de">
Run Code Online (Sandbox Code Playgroud)

我最近发现了一个典型的方面,只有PHP的编程语言可以使开发人员在PHP文件的最顶层设置语言:

<?php  

 /* Set and pre-define the language in the header;
  * Eliminating guesswork for the Header language.
  */

  header('Content-language: de');

?>
Run Code Online (Sandbox Code Playgroud)

PHP程序员经常出现两个问题:

主要问题:什么时候应该在PHP标头中设置语言?

SideQ1:大网站不打扰使用它:为什么不呢?

SideQ2:搜索引擎会听这个吗?如果有的话,这个PHP标题有什么影响?

mar*_*rio 5

您可以将此标头用于提供信息.但它主要用于内容协商.

每个http URL都可以透明地引用不同的资源.根据客户端Accept:和Accept-Language:标头,服务器可以发送资源的特定变体.这就是建议包含这样的描述性标题的时候.

如果它以这种方式使用,它将伴随一个Vary: *Vary: Accept-Language标题.否则它真的只是信息性的.(它从未被广泛使用过.)


jam*_*iss 5

更短的答案:不要打扰,因为浏览器通常会忽略它.

更长的答案:W3C建议在HTTP中使用langHTML中的属性Content-Language:

http://www.w3.org/International/geo/html-tech/tech-lang.html#ri20040808.110827800

基本原理:用户代理倾向于忽略标头或不一致地实现它.

此外,该lang属性更灵活.如果您有一种语言的某些内容而另一种语言中的其他内容,您可以精确地指定,如下所示:

<body> 
 <div lang="en" xml:lang="en">
  <h1>Welcome!</h1> 
  <p>Lots of text in English...</p>
 </div>
 <div lang="fr" xml:lang="fr">
  <h1>Bienvenue !</h1> 
  <p>Beaucoup de texte en français...</p>
 </div>
</body> 
Run Code Online (Sandbox Code Playgroud)

摘自:http: //www.w3.org/International/geo/html-tech/tech-lang.html#ri20040728.121403792

我不了解搜索引擎.