【问题标题】:Is 'en-EU' a valid value for HTML 'lang' attribute?'en-EU' 是 HTML 'lang' 属性的有效值吗?
【发布时间】:2013-12-21 19:05:13
【问题描述】:

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

  • 美国版:

    <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 registry" 中。此注册表中的 Ctrl + F 未显示“en-EU”的任何条目
  • @RobW 错了。语言代码和地区代码分别列出。例如,您也找不到en-US。搜索European Union,你会看到Subtag: EU
  • lang 属性不表示页面的目标语言/区域。它“...为元素的内容和任何包含文本的元素属性指定主要语言”(HTML5)。所以它与你页面的目标受众的位置无关。

标签: html markup semantic-markup lang


【解决方案1】:

为什么不呢?

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

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

  3. IANA Language Subtag Registry 包含 EU 类型的子标签 region

任何人都不能正式定义是否或哪些语言变体在哪些地区使用。语言不断变化,说话人随处生死。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-14
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    • 2019-09-05
    相关资源
    最近更新 更多