私は、このW3.orgページで説明されている language+region
アプローチ (カナダのフランス語コンテンツの場合はfr-CA
、およびfr-FR
「フランス語」コンテンツ用)。各language+region
のコンテンツは一意であると考えているため、検索エンジンがコンテンツを適切に識別し、それに応じて提供することが重要です。
インターネットで調べると(たとえば この質問 )、ほとんどの人がHTML lang
属性で ISO639言語コード を使用して説明することを推奨しているようです。コンテンツの言語。この推奨に従って、前述の<html lang="fr">
の組み合わせを区別できないlanguage+region
を使用することになります。
HTML4仕様 を確認するとき、language+region
の例が1つの可能な値として与えられているため、言語コードとしてen-US
を使用してもまったく問題ないようです。しかし、私は HTML5仕様 でこれの確認を見つけることができませんでした。これは可能な値についての例を提供していないようです。
そこから、私はウェブの巨人がやっていることを見て事実上の答えを得ようとしました。 Facebookが何をしているのかを見てみました。HTMLlang
の値は変わりませんが、カナダのフランス語版とフランス語のフランス語版の(わずかに)異なるコンテンツを提供しています。
fr-CA
URL: http://fr-ca.facebook.com
HTML lang属性:<html lang="fr">
単語「メール」の翻訳:courriel
fr-FR
URL: http://fr-fr.facebook.com/
HTML lang属性:<html lang="fr">
Word「メール」の翻訳:Adresse électronique
HTML5のlanguage+region
アプローチを使用してローカライズされたコンテンツを記述する推奨/標準的な方法は何ですか?
W3Cは、言語タグ/サブタグの選択に関する この非常に長いガイド を提供します。
重要な点:
言語タグの構文は、IETFの BCP 47 で定義されています。以前は、さまざまなISO標準のコードのリストを参照して適切なサブタグを見つける必要がありましたが、今では IANA Language Subtag Registry を調べるだけで済みます。 。以下に新しいレジストリについて説明します。
この記事では、言語タグのコンポーネントの選択方法に関するアドバイスを提供します。 BCP 47で定義されている概念の概要については、「 HTMLおよびXMLの言語タグ 」を参照してください。
...
Richard IshidaのLanguage Subtag Lookup toolなど、レジストリの検索中に追加のヘルプを提供するツールがあります。
...
適切な言語を使用していることを確認してください。場合によっては、いくつかの代替案を確認するのに費用がかかります。 BCP47の共著者であるマークデイビスは、「どの言語識別子を使用するかがよくわからないことがあります。たとえば、パキスタンのパンジャブ語と呼ばれるものには、実際にはコード「lah」と正式名称「Lahnda」があります。同じ名前が異なる言語に使用されている、または人々が検索する名前がIANAレジストリにリストされていない他のケース。」
SIL Ethnologue で言語情報を検索し、その情報を Wikipedia と相互参照できます。 EthnologueはBCP47と同じ3文字のコードを使用しますが、 BCP47 2文字のコードをISO 639-3の対応するものに変換する を使用して、コードごとに言語を検索する必要があります。 ( リチャード石田のツール これはあなたのために行います。)
多くの人が同じ言語とみなすものに対して、異なる言語コードが利用できる少数のケースがあります。フィリピン人とタガログ語、またはTwiとアカン。レジストリには使用するべきものは示されていませんが、単一のアプリケーションまたはコンテキスト内で一貫性があることを確認するようにしてください。
(エンファシス鉱山。)
IANA言語サブタグレジストリ は使いにくいことに注意してください。 (en-GB-oed
などの)祖父タグを除き、言語ファミリタグと地域/バリアントサブタグを個別に検索する必要があります。また、タグ/サブタグは、階層ではなくタイプ別に整理されています。時間と手間を省いて、 Richard Ishidaのすばらしい検索ツール を使用してください。
[これは私の最強の分野ではないので、ここではドキュメントを引用しているだけですが、何かを見落としているようです。]
HTML5仕様 必須lang
値が有効であること BCP 47タグ 。そのドキュメントでは、関連するビットはセクション3.4にあるようです:
たとえば、実装では、拡張言語範囲を基本範囲にマップできます。もう1つの可能性は、実装が最初にASCIIオーダーの一致するタグを返すことです。言語範囲が「* -CH」(「CH」はスイスを表す)で、タグのセットに「de-CH」(スイスで使用されるドイツ語)、「fr-CH」(フランス語、スイス)、および「it -CH "(イタリア、スイス)、タグ" de-CH "が返されます。
...これは基本的に、RFC1766を引用したHTML 4仕様から得られたものであり、より詳細に説明しています。
<html lang="fr-FR">
および<html lang="fr-CA">
を使用しても、実際のコンテンツに対応していれば問題ありません。ただし、<html lang="fr">
と同様に、検索エンジンでは無視されます。
HTML5は、言語コードの使用を変更することを意味するものではありません。 BCP 47で定義されているコードのシステムとその拡張機能は非常に精巧であり、苦痛を伴うアキュラリーで言語バリアントを指定できます。最先端技術ははるかに単純なレベルにあり、fr-FRとfr-CAは、最近のソフトウェアで達成できる最高の粒度を表しています。多くの場合、メインコード(ここではfr)だけが重要です。
検索エンジンがlang
属性などの言語コードの宣言に実際に注意を払っているという証拠はありません。ハイフネーター、スペルチェック、スピーチシンセサイザー、およびデフォルトのフォント選択アルゴリズムなどの他のソフトウェアは、lang
属性を考慮する場合があります。ただし、検索エンジンは実際のコンテンツに基づいてヒューリスティック分析を実行します。
lang
属性を信頼するよりも良い結果が得られるため、これらを非難することは困難です。たとえば、多くのオーサリングツールは、実際のコンテンツに関係なく、作成者に通知せずにlang="en"
を自動的に生成します。