<html lang =“ en”>和<html lang =“ en-US”>有什么区别?


106

<html lang="en">和之间有什么区别<html lang="en-US">?破折号后面还有哪些其他值?

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


您可以在规范中链接RFC中找到更多详细信息。
James Allardice

1
您是否对浏览器或理论(规范)之间的差异感兴趣?
Aprillion

两者都是@deathApril。我的意思是,这是否会以某种方式进一步帮助浏览器显示页面?
Celeritas

Answers:


130

<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">按照我的理解,这并不重要,但是根据规范是有效的。但是,由于西班牙不常用英语,因此该语言/国家/地区组合的用处不大。

我的意思是,这是否会以某种方式进一步帮助浏览器显示页面?

它无助于浏览器显示页面,但对搜索引擎,屏幕阅读器以及其他可能会读取并试图解释页面的事物(人类除外)很有用。


31
FWIW,乌干达的官方语言实际上是英语和斯瓦希里语。
Muhammad Alkarouri

34
哈,好点。我真是美国人。:(我更新的例子,西班牙,和做了一个小跑腿这个时间,以确保英语是不是有官方语言,太谢谢你的提示。
杰里米·威金斯

@JeremyWiggins,关于答案的最后两行,以“它对浏览器没有帮助....”开头。如果该网站是国际(国际化)网站,仍然需要设置语言标签怎么办?
2014年

4
关于最后两行-如果页面使用CSS(hyphens: auto)中的连字符,则lang必须提供属性,以允许浏览器选择适当的规则集。
RobertT 2014年

1
正确的语言设置不仅会帮助搜索引擎或屏幕阅读器的语言设置,而且还会产生印刷效果。例如,仅使用在de-DE,de-CH,fr和fr-CH之间不同的正确语言设置来正确解释简单的引号<q> </ q>。
theking2

8

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


这个链接是死的,如果你觉得有替代请将此用于恢复删除
泰伦

5

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

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

以下列表显示了可用的各种子标记。我们将逐步解决这些问题,并在接下来的部分中将如何使用它们。

语言扩展脚本区域变量扩展专用


1
选择通用英语选项后,某些软件应用程序默认使用美国拼写和本地化,例如Windows针对英语包进行此操作。 technet.microsoft.com/zh-cn/library/cc766191(v=ws.10).aspx Windows(无助)为某些会说多种语言的国家/地区提供了唯一的语言包,例如荷兰(荷兰语,不是法语),而另外四个西班牙(加泰罗尼亚语,加利西亚语,巴斯克语,西班牙语)。比利时的归零值,可能是因为多种国家/地区的语言都是其他国家/地区中的多数语言。
Mousey

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

说明:Scouse

添加:2006-09-18

前缀:zh

评论:英文Liverpudlian方言被称为“ Scouse”

各种各样的子标签可用。快速滚动已经显示出来fr-1694acad(17世纪的法语)。


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

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

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


0

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


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.