HTML5 lang属性的language + region值


11

我正在一个网站上,该网站将按照language+regionW3.org页面上的描述提供本地化内容(例如,fr-CA用于加拿大法语内容和fr-FR“法国法语”内容)。由于我们认为每种内容language+region都是唯一的,因此对我们来说至关重要的是,搜索引擎应正确识别并相应地提供内容。

通过在Internet上查找(例如,这个问题),似乎大多数人建议在HTML 属性中使用ISO639语言代码lang来描述内容语言。遵循此建议,我们会使用<html lang="fr">它,从而无法区分上述language+region组合。

在审查HTML4规范时,似乎language+region可以很好地将其用作语言代码,因为该en-US示例是一个可能的值。但是,我在HTML5规范中找不到对此的任何确认,该规范似乎未提供有关可能的允许值的任何示例。

在那儿,我试图通过观察网络巨头们在做什么来获得事实上的答案。我看了一下Facebook在做什么:他们提供的Candian法文和法文法文网站内容(略有不同),而HTML lang值保持不变:

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">
“电子邮件”一词的翻译:Adresse électronique

推荐/标准的方法来描述使用language+regionHTML5中的方法本地化的内容?

Answers:


5

W3C提供了有关选择语言标签/子标签的非常长的指南

重要的位:

语言标签语法由IETF的BCP 47定义。过去,有必要查阅各种ISO标准中的代码列表以找到正确的子标签,但是现在您只需要查看IANA语言子标签注册中心即可。我们将在下面描述新的注册表。

本文提供有关如何选择语言标签组件的建议。有关BCP 47中定义的概念的概述,请参见 HTML和XML中的Language标签

...

有一些工具可以在搜索注册表时提供其他帮助,例如Richard Ishida的Language Subtag Lookup工具

...

确保您使用正确的语言。有时,需要检查一些替代方法。BCP47的合著者马克·戴维斯(Mark Davis)写道:“通常不清楚使用哪种语言标识符。例如,大多数人在巴基斯坦所说的旁遮普语实际上是代码'lah',正式名称为'Lahnda'。有很多在其他语言中使用相同名称或在IANA注册中心中未列出人们搜索的名称的其他情况。”

您可以在SIL民族语言中查找语言信息,然后通过Wikipedia交叉引用该信息。Ethnologue使用与BCP47相同的三字母代码,但是您需要将BCP47 2字母代码转换为其ISO 639-3对应代码,才能按代码查找语言。(Richard Ishida的工具可以为您完成此操作。)

在少数情况下,许多人认为相同语言的语言代码不同。菲律宾语和他加禄语,或Twi和Akan。注册表中没有关于应使用哪个选项的指示,但应尝试确保在单个应用程序或上下文中保持一致。

(强调我的。)

应该注意的是,IANA语言子标签注册表有点难以使用。除了内置标签(如en-GB-oed)外,您必须分别查找语言族标签和区域/变量子标签。标签/子标签是按类型而不是按层次组织的。因此,只需节省您的时间和麻烦,并使用Richard Ishida的出色查找工具即可


2

如果<html lang="fr-FR"><html lang="fr-CA">实际内容相对应,则使用和可以。但是它们仍然被搜索引擎忽略<html lang="fr">

HTML5并不意味着更改语言代码的使用。BCP 47及其扩展中定义的代码系统非常精细,可让您在痛苦的情况下指定语言变体。最新的技术水平要简单得多,fr-FR和fr-CA代表了当今您可以在软件中获得的最佳粒度。通常,只有主要代码(此处为fr)很重要。

没有证据表明搜索引擎实际上在注意语言代码的任何声明,例如lang属性。其他软件,例如连字符,拼写检查器,语音合成器和默认字体选择算法,都可以考虑lang属性。但是搜索引擎会根据实际内容执行启发式分析。

很难为此责怪他们,因为与信任lang属性相比,这会产生更好的结果。例如,许多创作工具会自动生成lang="en"而不考虑实际内容,而无需告知作者。


2

[这不是我最擅长的领域,所以我只是在这里引用文档,但是看来您已经忽略了一些东西。]

HTML5规范要求lang值必须是有效的BCP 47标签。在该文档中,相关的内容似乎在第3.4节中:

例如,一种实现可以将扩展语言范围映射到基本范围。另一种可能性是实现返回以ASCII顺序首先出现的匹配标签。如果语言范围是“ * -CH”(“ CH”代表瑞士),并且标签集包括“ de-CH”(在瑞士使用的德语),“ fr-CH”(在法国,瑞士)和“ -CH”(瑞士,意大利),则返回标签“ de-CH”。

...从本质上讲,它基本上就是从HTML 4规范中引用RFC1766所获得的内容,只是更为详细。


我在查找您引用的段落时遇到了困难(我在我提供的链接中以及第3.4节中搜索了它的某些关键字,但找不到任何东西)。您能给我一个链接吗?(如果可能,最好使用hash标签)。
2012年

HTML 5规范仅指所需的格式。引用的位来自BCP 47链接,它实际定义了该格式。
Su
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.