Правильное использование PHP: header ('Content-language: ...'); - PullRequest
3 голосов
/ 24 марта 2011

помимо очевидной моды установки языка страницы:

<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');

?>

Для программиста PHP возникают два вопроса:

Основной вопрос: Когда следует устанавливать язык в заголовке PHP?

SideQ1: крупные веб-сайты не беспокоятся об этом: почему бы и нет?

SideQ2: Слушают ли поисковые системы это и, если да, какие последствия имеет этот заголовок PHP?

Ответы [ 2 ]

5 голосов
/ 18 января 2012

Краткий ответ : Не беспокойтесь, потому что браузеры обычно игнорируют его.

Более длинный ответ : W3C рекомендует использовать атрибут lang в HTML вместо заголовка Content-Language в HTTP:

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 голосов
/ 24 марта 2011

Вы можете использовать этот заголовок в информационных целях. Но в первую очередь он предназначен для согласования контента .

Каждый http URL может прозрачно ссылаться на разные ресурсы. В зависимости от заголовков клиентов Accept: и Accept-Language: сервер может отправлять определенный вариант ресурса. И вот тогда желательно, чтобы такие описательные заголовки были включены.

Если он используется таким образом, он будет сопровождаться заголовком Vary: * или Vary: Accept-Language. В противном случае это действительно просто информационный. (Он никогда не привлекал широкого использования сам по себе.)

...