“en-EU”是否是HTML“lang”属性的有效值?

10

我的新闻网站不同版本的标记...

  • 美国版:

    <html lang="en-US" xml:lang="en-US"> ... </html>
    
  • 印度版:

  • <html lang="en-IN" xml:lang="en-IN"> ... </html>
    
  • 欧洲版(在这种情况下不是特定国家,即新闻报道更广泛的地区):

  • <html lang="en-EU" xml:lang="en-EU"> ... </html>
    

我依靠页面标记来让搜索引擎清楚地了解网页的目标语言/地区,因为新闻网站的不同版本使用基于目录的路径(例如 example.com/eu/)而不是基于子域名 (eu.example.com) 或基于域名的路径 (例如 example.eu)。

现在来到重点,lang 属性可以具有格式为 language-region 的值。但是 en-EU 是有效的值吗?

PS:我认为是这样,但我想在这里与有知识的人确认一下。


由于RFC 3066没有提供有效子标记列表,仅将用户引用到ISO 639,因此有时会对如何标记语言感到困惑(...)。现在,所有有效的子标记都列在单个IANA注册表中。在该注册表中使用Ctrl + F并没有显示任何关于"en-EU"的条目。 - Rob W
1
不是这样的:http://msdn.microsoft.com/zh-cn/library/ms533052(vs.85).aspx - putvande
1
@RobW 错了。语言代码和区域代码是分别列出的。例如,您也无法找到en-US。搜索European Union,您将看到Subtag: EU - its_me
1
lang属性不表示页面的目标语言/地区。它“...指定元素内容和包含文本的任何元素属性的主要语言”(HTML5)。因此,它与您页面的目标受众的位置无关。 - Alohci
1个回答

18

为什么不呢?

  1. HTML5 (CR) 定义:“值必须是有效的 BCP 47 语言标记或空字符串。”

  2. BCP 47 定义:“IANA 语言子标签注册表[...] 包含所有在语言标记中有效的子标签的综合性列表。”

  3. IANA 语言子标签注册表 包含类型为region 的子标签EU

任何人都无法正式定义哪些语言变体在哪些地区被使用。语言不断变化,说话者则在各处生活和死亡。


1
请注意,子标签EU代表欧盟,而不是整个欧洲。对于欧洲,请使用子标签150,例如 lang="en-150" - BrtH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接