web-dev-qa-db-ja.com

コンテンツ言語のHTMLメタタグ

スペイン語のWebページコンテンツを指定するための、次の2つのHTMLメタタグの違いは何ですか?

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

そして

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

<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">
101
Quentin

違いを求めましたが、これら2つを比較することはできません。

<meta http-equiv="content-language" content="es"> は廃止され、HTML5では削除されていることに注意してください。 「ドキュメント全体のデフォルト言語」を指定するために使用され、そのhttp-equiv属性はプラグマディレクティブ(HTTPをシミュレートします) Content-Language のような応答ヘッダー。実際のヘッダーをオーバーライドできないため、サーバーから送信されていません。

<meta name="language" content="Spanish">に関しては、信頼できる情報はほとんど見つかりません。これは非標準であり、おそらく SEO makeshift として発明されました。

ただし、 HTML5 W3C勧告 は、作成者がlangルート要素で html 属性を使用することを推奨します(属性値は有効でなければなりません BCP 47言語タグ ):

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

とにかく、検索エンジンロボットに指示するコンテンツ言語を指定する場合は、 多言語サイトのGoogle Search Consoleヘルプ

Googleはページの表示コンテンツのみを使用して言語を決定します。 lang属性などのコードレベルの言語情報は使用しません。

35
dakab

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

Html5では、<html lang="es-ES">小文字のlangタグは、言語コードのみを指定します。大文字は、国コードを指定します。

これは、ブラウザがWebコンテンツの翻訳(Google翻訳など)を提案している場合、Chromeにとって非常に便利です。

4
zoladp