112

<html lang="en">和 和有什么不一样<html lang="en-US">?破折号后面可以有哪些其他值?

根据w3.org的说法, “任何两个字母的子代码都被理解为 [ISO3166] 国家代码。” 那么这是否意味着alpha-2 代码下列出的任何值都是可接受的值?

4

6 回答 6

136

<html lang="en">
<html lang="en-US">

第一个lang标签仅指定语言代码。第二个指定语言代码,后跟国家代码。

破折号后面可以有哪些其他值?根据 w3.org的说法, “任何两个字母的子代码都被理解为 [ISO3166] 国家代码。” 那么这是否意味着 alpha-2 代码下列出的任何值都是可接受的值?

是的,但是该值可能有也可能没有任何实际意义。

<html lang="en-US">本质上的意思是“这个页面是美国风格的英语”。以类似的方式,<html lang="en-GB">将意味着“此页面采用英国风格的英语”。

如果你真的想指定一个无效的组合,你可以。据我了解,这没什么意义,但<html lang="en-ES">根据规范是有效的。但是,由于西班牙不常用英语,因此该语言/国家/地区组合不会起到太大作用。

我的意思是这是否会进一步帮助浏览器显示页面?

它对浏览器显示页面没有帮助,但对搜索引擎、屏幕阅读器和其他可能阅读并尝试解释页面的东西很有用,除了人类。

于 2012-07-03T21:12:11.880 回答
8

您可以使用任何国家/地区代码,是的,但这并不意味着浏览器或其他软件会识别它或因此而做任何不同的事情。例如,如果屏幕阅读器仅支持英语中的美式口音,则屏幕阅读器可能会以相同的方式处理“en-US”和“en-GB”。不过,另一款有两种不同声音的软件可以根据国家代码进行调整。

于 2012-07-03T21:00:46.927 回答
6

这应该有帮助: http ://www.w3.org/International/articles/language-tags/

创建语言标签时的黄金法则是使标签尽可能短。避免使用区域、脚本或其他子标签,除非它们添加了有用的区分信息。例如,使用 ja 表示日语而不是 ja-JP,除非有特殊原因您需要说这是日本所说的日语,而不是其他地方所说的日语。

下面的列表显示了可用的各种类型的子标签。我们将通过这些方法以及在接下来的部分中如何使用它们。

语言-extlang-script-region-variant-extension-privateuse

于 2015-02-01T15:30:34.477 回答
2

RFC 3066给出了允许值的详细信息(添加了强调和链接):

所有 2 字母子标签都被解释为[ISO 3166]中的ISO 3166 alpha-2 国家代码,或随后由 ISO 3166 维护机构或管理标准化机构分配,表示该语言变体涉及的区域。

我将其解释为任何有效(根据 ISO 3166)2 字母代码都可以作为子标签有效。RFC 继续声明:

根据本文档第 5 章的规则,可以在 IANA 注册具有 3 到 8 个字母的第二个子标签的标签。

顺便说一句,这看起来像是一个错字,因为第 3 章似乎与注册过程有关,而不是第 5 章。

快速搜索 IANA 注册表会显示一个长的列表,其中包含所有可用的语言子标签。这是列表中的一个示例(将用作en-scouse):

类型:变体

子标签:scouse

说明: 斯库斯

添加: 2006-09-18

前缀:en

评论:被称为“Scouse”的英语利物浦方言

各种可用的子标签;一个快速卷轴已经显露fr-1694acad(17 世纪的法语)。


当涉及到设计用于在浏览器中显示的文档时,其中一些(我会说绝大多数)标签的用处是有限的。W3C 国际化规范简单地说:

浏览器和其他应用程序可以使用有关内容语言的信息向用户传递最合适的信息,或以最合适的方式向用户呈现信息。正确标记和标记的内容越多,此类应用程序将变得越有用和普遍。

我正在努力寻找有关浏览器在遇到不同语言标签时如何表现的详细信息,但它们很可能会为那些使用屏幕阅读器的用户提供一些好处,这些用户可以使用标签来确定语言/方言/口音在其中呈现内容。

于 2012-07-03T21:12:08.423 回答
0

XML Schema 要求在使用 xml:lang(和其他 xml 命名空间值)之前声明和导入 xml 命名空间,如在 XML 中一样,RELAX NG 预先声明了 xml 命名空间,因此不需要额外的声明。

于 2018-11-16T12:33:16.627 回答
-1

嗯,第一个问题很简单。有很多ens(英语),但(大部分)只有一种美国英语。有人会猜测有en-CN, en-GB, en-AU。猜猜甚至可能有奥地利英语,但你能做到的比有的更多。

于 2012-07-03T20:54:41.157 回答