html5-混合语言页面应使用什么<html lang =“”>属性值?

我通常使用:<html lang="lang1 lang2">

但是,我正在一个使用两种语言的网站上工作,有时将它们混合在同一句子或标题中。

在这种情况下,上面的代码将如何显示? 我可以使用<html lang="lang1 lang2">吗?

Francisc asked 2020-02-22T09:54:12Z
3个解决方案
78 votes

据我从阅读HTML5规范中可以得知lang属性:

值必须是有效的BCP 47语言标记或空字符串

来源:[http://www.w3.org/TR/html5/dom.html#the-lang-and-xml:lang-attributes]

在规范中没有提到语言字符串数组,我发现的每个示例都使用单个语言字符串。

这是有道理的,因为实际上给定部分只能使用一种语言,除非我们要创建一种新的混合语言。

由于lang属性在所有HTML元素上均有效,因此您可以将语言特定的代码包装在新标签中,以指示其语言。

<html lang="en">
[...]
<body>
<h1>I am a heading <span lang="de-DE">Eine Überschrift</span></h1>
</body>
</html>
Jamie Dixon answered 2020-02-22T09:54:49Z
4 votes

据我了解,您应该能够使用<html lang="mul">表示多种语言。

从IANA语言子标签注册表中选择子标签。

资源; [https://www.w3.org/TR/2007/NOTE-i18n-html-tech-lang-20070412/#ri20030112.224623362]

列表中有一个名为Subtag的子标签:mul

资料来源:[http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry]

但是,我认为您无法在html元素中确切指定要混合的语言。 但是,正如Jamie所写,您可以在页面上为不同的元素指定不同的lang属性。

在ISO 639-3中确实存在四个特殊的语言代码,并且它们在IANA子标签注册中心中也都有效;[https://en.wikipedia.org/wiki/ISO_639-3#Special_codes]

但是,我怀疑这是否会得到像Google这样的搜索引擎的良好支持。

user11448 answered 2020-02-22T09:55:41Z
-3 votes

您可以这样使用。

对于HTML 5,请使用:

有关字符编码的更多信息,请参见“在HTML中声明字符编码”。

Atif Anwar answered 2020-02-22T09:56:10Z
translate from https://stackoverflow.com:/questions/7076837/what-html-lang-attribute-value-should-i-use-for-a-mixed-language-page