2011-03-24 190 views
3

预留设置页面的语言显而易见的方式:正确使用PHP:header('Content-language:...');

<meta name="language" content="de"><html lang="de"> 

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

<?php 

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

    header('Content-language: de'); 

?> 

两个问题eveidentaly出现的PHP程序员:

主要问题:什么时候应该设定一个在PHP头的语言?

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

SideQ2:搜索引擎是否会听这个,如果是的话,这个PHP头文件有什么影响?

+1

这不是孤立的只有PHP语言。 PHP header()函数用于设置许多语言可以执行的原始HTTP标题。 – Benxamin 2015-07-27 18:34:18

回答

5

较短的答案:不要打扰,导致浏览器通常忽略它。

较长答案:W3C的建议在使用HTTP的HTML的lang属性在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> 

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

我不知道搜索引擎。

5

您可以将此标题用于提供信息。但它主要用于content negotiation

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

如果以这种方式使用它,它将伴随一个Vary: *Vary: Accept-Language标题。否则它真的只是信息。 (它从来没有赶上被广泛使用本身。)