HTML метатег для языка контента


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

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

и

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

4 ответа:

<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 entity-header описывает естественный язык(ы) целевой аудитории для вложенного объекта. Обратите внимание, что это может быть не эквивалентно всем языкам, используемым в теле сущности.

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

<html lang="es">

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

отметим, что <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 Search Console на многоязычных сайтах:

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

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" />

Html5 Также рекомендуем использовать <html lang="es-ES"> Маленькая буква Lang тег только указывает: код языка Большая буква указывает: код страны

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