HTML-Meta-Tag für die Inhaltssprache

70

Was ist der Unterschied zwischen den folgenden zwei HTML-Meta-Tags zur Angabe des Inhalts spanischer Webseiten:

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

und

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

Antworten:

110

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

Dies ist in keiner Spezifikation definiert (einschließlich des HTML5-Entwurfs ).

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

Dies ist die Version eines echten HTTP-Headers für arme Männer und sollte wirklich in den Headern ausgedrückt werden. Zum Beispiel:

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

Es heißt, dass das Dokument für spanischsprachige Personen gedacht ist (dies bedeutet jedoch nicht, dass das Dokument auf Spanisch verfasst ist; es könnte beispielsweise im Rahmen eines Sprachkurses für spanischsprachige Personen auf Englisch verfasst sein).

Aus der Spezifikation :

Das Feld Content-Language-Entity-Header beschreibt die natürliche (n) Sprache (n) der Zielgruppe für die eingeschlossene Entität. Beachten Sie, dass dies möglicherweise nicht allen im Entity-Body verwendeten Sprachen entspricht.

Wenn Sie angeben möchten, dass ein Dokument in Spanisch verfasst ist, verwenden Sie:

<html lang="es">
QUentin
quelle
Ich mache etwas Ähnliches in den seltenen Fällen, in denen ich an einer mehrsprachigen Site arbeite.
Quentin
19
Dies ist keine Version des echten HTTP-Headers für arme Männer ... Wenn ein HTML-Dokument von der Festplatte geöffnet oder in eine E-Mail-Nachricht eingebettet wird, gibt es keinen HTTP-Header. Aus diesem Grund meta http-equivexistiert und sollte zusammen mit HTTP-Headern gesetzt werden. Schade, dass es zwei Stellen gibt, an denen Sie Sprache / Codierung angeben können und dass es keine klare Lösung von W3C / IETF gibt.
Doc
2
Apropos Standards: Hier ist eine kürzlich erschienene Veröffentlichung von W3C mit dem Titel "HTTP-Header, Metaelemente
Simon Mourier
41

Sie haben nach Unterschieden gefragt, aber Sie können diese beiden nicht ganz vergleichen.

Beachten Sie, dass dies <meta http-equiv="content-language" content="es">veraltet ist und in HTML5 entfernt wurde. Es wurde verwendet, um "eine dokumentweite Standardsprache" anzugeben, deren http-equivAttribut es zu einer Pragma-Direktive macht (die einen solchen HTTP- Antwortheader simuliert Content-Language, der nicht vom Server gesendet wurde, da er keinen echten überschreiben kann).

In Bezug darauf <meta name="language" content="Spanish">finden Sie kaum verlässliche Informationen. Es ist nicht Standard und wurde wahrscheinlich als SEO-Behelf erfunden .

Die HTML5 W3C-Empfehlung fordert die Autoren jedoch auf, das langAttribut für htmlStammelemente zu verwenden (Attributwerte müssen gültige BCP 47-Sprach-Tags sein ):

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

Wenn Sie die Inhaltssprache für die Anweisung von Suchmaschinenrobotern angeben möchten, sollten Sie dieses Zitat aus der Hilfe der Google Search Console auf mehrsprachigen Websites berücksichtigen :

Google verwendet nur den sichtbaren Inhalt Ihrer Seite, um deren Sprache zu bestimmen. Wir verwenden keine Sprachinformationen auf Codeebene wie langAttribute.

Dakab
quelle
1
Ihr Google-Zitat war für mich sehr aussagekräftig, danke.
Anoyz
11

Google empfiehlt die Verwendung von hreflang. Weitere Informationen finden Sie hier

Beispiele:

<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" />
Gojeg
quelle
12
Ich mag diesen Hinweis, aber er hat nichts mit dem OP zu tun. Dies soll Crawlern anzeigen, wo alternative Versionen der aktuellen Seite gefunden werden können. Es gibt nicht die Sprache der aktuellen Seite an.
Schweizer Herr
Einigung mit Swiss Mister. Nützlicher Hinweis, aber Sie möchten die aktuelle Seite wahrscheinlich nicht in einer Liste von "Alternativen" auflisten.
HoldOffHunger
2
@SwissMister @HoldOffHunger Auf der Seite mit einer Liste von "Alternativen" sollte die aktuelle Seite über dieser Liste mit alternativen Tags stehen. Wenn alle Seiten den gleichen Inhalt für ein anderes Land oder in einer anderen Sprache haben, ist es hilfreich, Suchmaschinen über die alternativen Seiten zu informieren, da sie Suchmaschinen lernen, in denen Ihr Inhalt in Suchergebnissen angezeigt werden soll, z. B. eine Seite mit en-caund a Seite mit nl-nl, das en-cawird in die Suchergebnisse in Kanada aufgenommen, die Seite mit Alternative nl-nlkann in den Ergebnissen für die Niederlande gefunden werden ..
jagb
Der Google-Link erwähnt zwar, dass ein alternatives Tag für die aktuelle Sprache hinzugefügt werden sollte, aber es scheint nicht unbedingt ganz oben zu sein . Ordnung scheint nicht wichtig.
Marten Koetsier
4

HTML5 empfiehlt auch die Verwendung <html lang="es-ES"> des Lang-Tags für Kleinbuchstaben gibt nur Folgendes an: Sprachcode Der Großbuchstabe gibt Folgendes an: Ländercode

Dies ist sehr nützlich für ie.Chrome, wenn der Browser vorschlägt, Webinhalte zu übersetzen (dh Google Übersetzer).

zoladp
quelle
0

Ein anderes Sprach-Meta-Tag ist og: locale und Sie können das og: locale-Meta-Tag für soziale Medien definieren

<meta property="og:locale" content="en" />
Mahdi mehrabi
quelle