7

给定一个特定语言(英语)的 HTML 文档。

我在标签上定义了一个 lang 属性:

<html lang="en">

页面中的某些文本是用另一种语言(例如法语)编写的:

<span lang="fr">
  blabla...
</span>

但是,如果我无法识别语言,但我知道它不是英语,我可以将“未知”设置为 lang 属性的有效值吗?

<span lang="unknown">
  blabla...
</span>

我在 w3c 文档中读到了这个,但我不确定“默认值是 [...] 未知”是否意味着“未知”是一个真实值......

http://www.w3.org/TR/html4/struct/dirlang.html

lang = language-code [CI] 此属性指定元素属性值和文本内容的基本语言。此属性的默认值为 unknown

4

2 回答 2

9

HTML 4.01 规范中的措辞晦涩难懂;该值unknown不是有效的语言标签,并且规范使用单词“unknown”作为正常的英文单词。即,默认值是表示语言未知的值,但未明确指定该值。

该规范在这方面已经部分过时,因为它指的是语言标签上的已被取代的 RFC。当前的 RFC 是RFC 5646,用于识别语言的标签,也称为 BCP(最佳当前实践)47。除其他外,它在主要语言标签方面参考 ISO 639-2,它们包含und“未确定”的代码”。所以从技术上讲,你可以使用lang=und,但 RFC 说:“除非需要语言标签并且语言信息不可用或无法确定,否则不应使用此子标签。最好省略语言标签(在允许的情况下)。”</p>

这是 HTML5 RC 中采用的方法,它说lang “将属性设置为空字符串表示主要语言是未知的。[BCP47]”</p>

因此,对于无法识别语言的文本,您可以使用例如<span lang="">...</span>.

原则上,当您在更高级别的元素嵌套中指示语言时,这很有用。例如,设置lang=""可能意味着用户代理禁用拼写检查和特定于语言的格式,尽管这仍然是相当理论上的。

于 2013-03-14T20:48:05.090 回答
0

如果您不需要,我宁愿根本不设置它。请注意,lang=如果未设置,则该值将从其封闭(父)元素派生。

如果您以某种方式被迫设置它,那么根据规范将其设置为您已经建议的默认值unknown似乎是完全合法的。

于 2013-03-14T17:55:49.680 回答