<html lang="en">
和<html lang="en-US">
之间有什么区别?破折号后面可以跟哪些其他值?
根据w3.org的说法,“任何两个字母的子代码都被理解为[ISO3166]国家代码。”那么这是否意味着在 alpha-2 代码下列出的所有值都是可接受的值?
<html lang="en">
和<html lang="en-US">
之间有什么区别?破折号后面可以跟哪些其他值?
根据w3.org的说法,“任何两个字母的子代码都被理解为[ISO3166]国家代码。”那么这是否意味着在 alpha-2 代码下列出的所有值都是可接受的值?
<html lang="en">
<html lang="en-US">
第一个lang
标签只指定了一个语言代码。第二个标签则指定了一个语言和国家代码。
破折号后面还可以跟哪些值?根据w3.org的说法:"任何两字母子码均被视为[ISO3166]国家代码"这是否意味着列在alpha-2 code下的任何值都是可接受的值?
是的,然而这个值可能没有任何实际意义。
<html lang="en-US">
基本上意味着“这个页面使用美式英语”。同样地,<html lang="en-GB">
表示“这个页面使用英国式英语”。
如果你真的想要指定一个无效的组合,那也是可以的。按照规范的理解,<html lang="en-ES">
是有效的。然而,由于英语在西班牙并不普遍使用,该语言/国家组合并没有什么作用。
我是说这会帮助浏览器更好地显示页面吗?
这不会帮助浏览器显示页面,但对于搜索引擎、屏幕阅读器和其他解析页面的工具(除了人类使用)而言,这是有用的。
hyphens: auto
),则需要使用 lang
属性,以便允许浏览器选择适当的规则集。 - RobertTRFC 3066详细说明了允许的值(已加粗和添加链接):
所有2字母子标记都被解释为来自[ISO 3166]的ISO 3166 alpha-2国家代码,或由ISO 3166维护机构或主管标准化机构随后分配,表示该语言变体所涉及的区域。
我的理解是任何有效的(根据ISO 3166)2字母代码都可以作为子标记。RFC继续声明:
第二个子标记为3到8个字母的标记可以根据本文档第5章的规则向IANA注册。
顺便说一下,那看起来像是一个错别字,因为第3章似乎与注册过程有关,而不是第5章。
快速搜索IANA注册表会显示非常长的列表,列出了所有可用的语言子标记。以下是列表中的一个示例(将用作en-scouse
):
类型: 变体
子标记: scouse
描述: Scouse
添加: 2006-09-18
前缀: en
注释: 英语利物浦方言称为“Scouse”
有各种各样的子标记可用; 快速滚动已经显示了fr-1694acad
(17世纪的法语)。
对于设计用于在浏览器中显示的文档,某些(我会说绝大多数)标记的实用性是有限的。 W3C国际化规范仅说明:
浏览器和其他应用程序可以使用有关内容语言的信息向用户提供最合适的信息,或以最合适的方式向用户呈现信息。内容被标记并正确标记得越多,这类应用程序就越有用且普及。
我很难找到关于浏览器遇到不同语言标记时如何行事的详细信息,但它们很可能会为那些使用屏幕阅读器的用户提供一些好处,后者可以使用标记来确定呈现内容的语言/方言/口音。
XML Schema 要求在使用 xml:lang(以及其他 xml 命名空间值)之前声明和导入 xml 命名空间。 RELAX NG 预先声明了 xml 命名空间,就像 XML 一样,因此不需要额外的声明。
首先,第一个问题很容易。有许多种英语,但(大多数情况下)只有一种美式英语。人们会猜测有en-CN
、en-GB
、en-AU
等等。猜测可能甚至还有奥地利英语,但这更多的是“你可以”而不是“确实存在”。