Правильное использование заголовка PHP: «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'); ?> 

Два вопроса возникают с помощью программиста PHP:

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

SideQ1: Большие веб-сайты не беспокоят его использование: почему они?

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

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

Более длинный ответ : 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

Я не знаю о поисковых системах.

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

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

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