以下は HTML の lang 属性に関する学習メモです。交流と学習を歓迎します。
lang 属性の値は、BCP 47 - 言語を識別するためのタグに従う必要があります。
単一の zh および zh-CN は廃止された使用法です。
主な問題は、現在 zh が言語コードではなく、マクロ言語であることです。使用できる言語コードは、cmn (北京語)、yue (広東語)、wuu (呉語) などです。私は通常、主に互換性 (少なくとも zh と一致する) を考慮して、単に cmn ではなく zh-cmn を記述することをお勧めします。多くのソフトウェアと フレームワーク はそれに応じて更新されていません。
zh-CN の問題は、ほとんどの場合、簡体字中国語でマークされていますが、地域が不適切に使用されているため、同じく簡体字中国語の zh-SG (シンガポール) と一致できないことです。より一般的なのは、zh-TW と zh-HK です。したがって、実際には、簡体字中国語と繁体字中国語を表すには zh-Hans / zh-Hant を使用する必要があります。完全な表記方法は zh-cmn-Hans です。これは、簡体字中国語で書かれた北京語/マンダリンを意味します。一般に、地域の特異性を表現したい場合を除き、地域コードを追加する必要はありません。通常は語彙が異なるためです (たとえば、Wikipedia の簡体字中国本土と簡体字シンガポールとマレーシア)。
タグ付け方法の例:
1. 簡体字中国語ページ: html lang=zh-cmn-Hans
2. 繁体字中国語ページ: html lang=zh-cmn-Hant
3. en
4. 中国語で歌われた「Come Back」の音声: audio lang=zh-cmn
5. 広東語で歌われた「Broad Sea and Sky」の音声: audio lang=yue
6.上海語で歌う「Come In Bai Xiangxiang」の音声: audio lang=wuu
上記はすべて音声であるため、Hans/Hant マークを追加しないでください。
7. 「Final Faith」の音声はバイリンガルで歌われているため、音声に lang でマークを付ける必要はありません (マークする必要がある場合は、lang=mul でマークできます)。それぞれ、p lang=en および p lang=zh でマークされます (簡体字または繁体字に応じて、zh-cmn-Hans または zh-cmn-Hant が使用されます)。
8. 「Uneasy」のオーディオには歌詞がないため、lang でマークする必要はありません (マークする必要がある場合は、audio lang=zxx を使用できます)。
地域ごとの中国語の使用法の違いを強調する場合を除き、市外局番を追加する必要があるケースは一般にほとんどありません。例:
<p lang="zh-cmn-Hans"><b lang="zh-cmn-Hans-CN">菠萝</b>和<b lang="zh-cmn-Hant-TW">鳳梨</b>其实是同一种水果。只是大陆和台湾称谓不同,且新马一带的称谓也是不同的,称之为<b lang="zh-cmn-Hans-SG">黄梨</b>。</p>
もちろん、歴史的な理由により、zh-CN を使用し続けなければならない場合もあります。たとえば、中国語の Wikipedia は伝統的な zh-CN/zh-HK/zh-SG/zh-TW に従っています (標準に従って、zh-cmn-Hans-CN、zh-cmn-Hant-HK、zh-cmn- Hans を使用する必要があります -SG、zh-cmn-Hant-TW)。現時点での合理的なソフトウェア行動は、zh-CN などを zh-cmn-Hans (つまり、最も一般的な誤用に対応する実際の標準表記) に変換することです。
実際、さまざまな関連基準にも一定の遅れがあります。たとえば、CSS :lang セレクターは、(cmn、yue、min などの中国語の方言に関係なく) 簡体字/繁体字中国語のみの選択をサポートしていません。理想的な状況は、CSS3 が :lang セレクターの構文、つまり BCP 47 の高度なマッチング アルゴリズムをアップグレードし、:lang(*-Hans) などのメソッドの記述をサポートすることです。
更新: セレクター レベル 4 は、BCP 47 高度なマッチング アルゴリズムのサポートを追加しました。つまり、:lang(*-Hans) 記述メソッドをサポートします。