HTML метатег для языка контента - PullRequest
58 голосов
/ 11 декабря 2010

В чем разница между следующими двумя метатегами HTML для указания содержимого веб-страницы на испанском языке:

<meta name="language" content="Spanish">

и

<meta http-equiv="content-language" content="es">

Ответы [ 4 ]

98 голосов
/ 11 декабря 2010

<meta name="language" content="Spanish">

Это не определено ни в одной спецификации (включая черновик HTML5 )

<meta http-equiv="content-language" content="es">

Это версия настоящего HTTP-заголовка для бедного человека, которая должна быть выражена в заголовках.Например:

Content-language: es
Content-type: text/html;charset=UTF-8

В нем говорится, что документ предназначен для носителей испанского языка (однако это не означает, что документ написан на испанском языке; например, он может быть написан на английском языке как частьязыкового курса для говорящих на испанском языке).

Из спецификации :

Поле заголовка объекта Content-Language описывает естественный язык (и)целевая аудитория для вложенного объекта.Обратите внимание, что это может быть не эквивалентно всем языкам, используемым в теле объекта.

Если вы хотите указать, что документ написан на испанском языке, используйте:

<html lang="es">
34 голосов
/ 12 февраля 2014

Вы спрашивали о различиях, но вы не можете сравнить эти два.

Обратите внимание, что <meta http-equiv="content-language" content="es"> устарело и удалено в HTML5.Он использовался для указания «языка по умолчанию для всего документа» с его атрибутом http-equiv, делающим его директивой pragma (которая имитирует заголовок ответа HTTP, такой как Content-Language, который имеетне было отправлено с сервера, поскольку он не может переопределить реальный).

Относительно <meta name="language" content="Spanish"> вы вряд ли найдете надежную информацию.Он нестандартен и, вероятно, был изобретен как временное решение SEO .

Однако рекомендация HTML5 W3C рекомендует авторам использовать lang атрибут в html корневых элементах (значения атрибутов должны быть действительными языковые теги BCP 47 ):

<!DOCTYPE html>
<html lang="es-ES">
    <head>
        …

В любом случае, если вы хотите указать язык контента для инструктирования роботов поисковых системвам следует учесть эту цитату из справки консоли поиска Google на многоязычных сайтах :

Google использует только видимый контент вашей страницы для определения языка.Мы не используем информацию о языке уровня кода, например атрибуты lang.

6 голосов
/ 19 декабря 2014

Google рекомендует использовать hreflang, читать больше информации

Примеры:

<link rel="alternate" href="http://example.com/en-ie" hreflang="en-ie" />
<link rel="alternate" href="http://example.com/en-ca" hreflang="en-ca" />
<link rel="alternate" href="http://example.com/en-au" hreflang="en-au" />
<link rel="alternate" href="http://example.com/en" hreflang="en" />
4 голосов
/ 28 октября 2016

Html5 также рекомендуется использовать <html lang="es-ES"> Строчный тег lang указывает только: код языка. Крупная буква указывает: код страны

Это действительно полезно для ie.Chrome, когда браузер предлагает перевестивеб-контент (т.е. гугл переводчик)

...