2011-03-24 193 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標題。否則它真的只是信息。 (它從來沒有趕上被廣泛使用本身。)