Sprache + Regionswert des HTML5-Lang-Attributs


11

Ich arbeite an einer Website, die lokalisierte Inhalte nach dem language+regionauf dieser W3.org-Seite beschriebenen Ansatz anbietet (z. B. fr-CAfür kanadisch-französische Inhalte und fr-FRfür "französisch-französische" Inhalte). Da wir den Inhalt für jeden language+regionals einzigartig betrachten, ist es für uns von entscheidender Bedeutung, dass Suchmaschinen den Inhalt entsprechend identifizieren und entsprechend bereitstellen.

Wenn Sie im Internet nachschlagen (z. B. diese Frage ), empfehlen die meisten Benutzer die Verwendung eines ISO639-Sprachcodes im HTML- langAttribut zur Beschreibung der Inhaltssprache. Nach dieser Empfehlung würden wir verwenden, <html lang="fr">was die Unterscheidung zwischen den oben genannten language+regionKombinationen nicht ermöglichen würde .

Bei der Überprüfung der HTML4-Spezifikation scheint die Verwendung language+regionals Sprachcode vollkommen in Ordnung zu sein, da das en-USBeispiel als ein möglicher Wert angegeben wird. Ich konnte jedoch keine Bestätigung dafür in der HTML5-Spezifikation finden , die kein Beispiel für die möglichen zulässigen Werte zu liefern scheint.

Von dort aus habe ich versucht, eine De-facto-Antwort zu erhalten, indem ich mir angesehen habe, was die Webgiganten tun. Ich habe mir angesehen, was Facebook tut: Sie bieten Candian French- und French French-Versionen ihrer Websites mit (leicht) unterschiedlichem Inhalt an, während der HTML- langWert gleich bleibt:

fr-CA
URL: http://fr-ca.facebook.com
HTML lang Attribut: <html lang="fr">
Übersetzung des Wortes "E-Mail":courriel

fr-FR
URL: http://fr-fr.facebook.com/
HTML lang Attribut: <html lang="fr">
Übersetzung des Wortes "E-Mail":Adresse électronique

Was ist die empfohlene / Standardmethode zur Beschreibung von Inhalten, die mithilfe des language+regionAnsatzes in HTML5 lokalisiert wurden ?

Antworten:


5

Das W3C bietet diese sehr lange Anleitung zur Auswahl von Sprach-Tags / Subtags.

Die wichtigen Punkte:

Die Sprach-Tag-Syntax wird vom BCP 47 der IETF definiert . Früher war es notwendig, Codelisten in verschiedenen ISO-Standards zu konsultieren, um die richtigen Untertags zu finden. Jetzt müssen Sie nur noch in der IANA Language Subtag Registry nachsehen . Wir werden die neue Registrierung unten beschreiben.

Dieser Artikel enthält Ratschläge zur Auswahl der Komponenten eines Sprach-Tags. Eine Übersicht über die in BCP 47 definierten Konzepte finden Sie unter Sprach-Tags in HTML und XML .

...

Es stehen Tools zur Verfügung, die zusätzliche Hilfe beim Durchsuchen der Registrierung bieten, z. B. das Language Subtag Lookup-Tool von Richard Ishida .

...

Stellen Sie sicher, dass Sie die richtige Sprache haben. Manchmal lohnt es sich, ein paar Alternativen zu prüfen. Mark Davis, Co-Autor von BCP47, schreibt: "Oft ist nicht klar, welche Sprachkennung verwendet werden soll. Zum Beispiel hat das, was die meisten Leute in Pakistan Punjabi nennen, tatsächlich den Code 'lah' und den formalen Namen 'Lahnda'. Es gibt viele andere Fälle, in denen derselbe Name für verschiedene Sprachen verwendet wird oder in denen der Name, nach dem gesucht wird, nicht in der IANA-Registrierung aufgeführt ist. "

Sie können Sprachinformationen im SIL-Ethnolog nachschlagen und diese Informationen mit Wikipedia vergleichen . Der Ethnolog verwendet dieselben Drei-Buchstaben-Codes wie BCP47, aber Sie müssen BCP47-Zwei-Buchstaben-Codes in das ISO 639-3-Gegenstück konvertieren , um eine Sprache nach Code zu suchen. ( Richard Ishidas Tool erledigt dies für Sie.)

Es gibt eine kleine Anzahl von Fällen, in denen unterschiedliche Sprachcodes für das verfügbar sind, was viele Menschen als dieselbe Sprache betrachten würden, z. Filipino und Tagalog oder Twi und Akan. In der Registrierung gibt es keinen Hinweis darauf, welche Sie verwenden sollten, aber Sie sollten versuchen, sicherzustellen, dass Sie innerhalb einer einzelnen Anwendung oder eines einzelnen Kontexts konsistent sind.

(Hervorhebung von mir.)

Es sollte beachtet werden, dass die Registrierung von IANA-Subtags schwer zu verwenden ist. Mit Ausnahme von großväterlichen Tags (wie en-GB-oed) müssen Sie das Tag der Sprachfamilie und die Subtags für Region / Variante separat nachschlagen. Und die Tags / Subtags sind eher nach Typ als nach Hierarchie organisiert. Sparen Sie sich also Zeit und Ärger und verwenden Sie das großartige Suchwerkzeug von Richard Ishida .


2

Verwenden <html lang="fr-FR">und <html lang="fr-CA">ist in Ordnung, wenn sie dem tatsächlichen Inhalt entsprechen. Aber sie werden von Suchmaschinen genauso ignoriert wie sie <html lang="fr">sind.

HTML5 bedeutet nicht, die Verwendung von Sprachcodes zu ändern. Das System der Codes, wie es in BCP 47 definiert ist, und die Erweiterungen dazu sind sehr aufwendig und ermöglichen es Ihnen, eine Sprachvariante mit schmerzhafter Genauigkeit anzugeben. Der Stand der Technik ist viel einfacher, und fr-FR und fr-CA stellen die beste Granularität dar, die Sie heutzutage mit Software erreichen können. ziemlich oft zählt nur der Hauptcode (hier fr).

Es gibt keine Hinweise darauf, dass Suchmaschinen tatsächlich auf Deklarationen von Sprachcode, wie z. B. langAttribute, achten . Andere Software wie Silbentrenner, Rechtschreibprüfungen, Sprachsynthesizer und Standardalgorithmen für die Schriftauswahl können langAttribute berücksichtigen. Suchmaschinen führen ihre heuristischen Analysen jedoch basierend auf dem tatsächlichen Inhalt durch.

Es ist schwierig, sie dafür verantwortlich zu machen, da dies zu besseren Ergebnissen führt als das Vertrauen in die langAttribute. Beispielsweise generieren viele Authoring-Tools lang="en"unabhängig vom tatsächlichen Inhalt automatisch , ohne dies dem Autor mitzuteilen.


2

[Dies ist nicht mein stärkster Bereich, daher zitiere ich hier nur die Dokumentation, aber anscheinend haben Sie etwas übersehen.]

Die HTML5-Spezifikation erfordert, dass der langWert ein gültiges BCP 47-Tag ist . In diesem Dokument scheint das relevante Bit in Abschnitt 3.4 zu sein:

Beispielsweise könnte eine Implementierung die erweiterten Sprachbereiche Basisbereichen zuordnen. Eine andere Möglichkeit wäre, dass eine Implementierung das übereinstimmende Tag zurückgibt, das zuerst in ASCII-Reihenfolge vorliegt. Wenn der Sprachbereich "* -CH" wäre ('CH' steht für die Schweiz) und der Satz von Tags "de-CH" (Deutsch wie in der Schweiz verwendet), "fr-CH" (Französisch, Schweiz) und "it" enthält -CH "(Italienisch, Schweiz), dann würde das Tag" de-CH "zurückgegeben.

... was, wenn Sie es sich ansehen, im Grunde das ist, was Sie aus der HTML 4-Spezifikation unter Berufung auf RFC1766 erhalten haben, nur viel detaillierter.


Ich habe Schwierigkeiten, den von Ihnen zitierten Absatz zu finden (ich habe in dem von mir angegebenen Link und in Abschnitt 3.4 nach einigen seiner Schlüsselwörter gesucht und konnte nichts finden). Können Sie mir bitte einen Link dazu geben? (idealerweise mit Hash-Tag, wenn möglich).
Max

Die HTML 5-Spezifikation bezieht sich nur auf das erforderliche Format. Das zitierte Bit stammt von der BCP 47-Verbindung, in der das Format tatsächlich definiert wurde.
'
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.