我通常使用这个:<html lang="en">
。
然而,我正在开发一个网站,该网站将使用两种语言,并且有时会在同一句话或标题中混合使用它们。
在这种情况下,上述代码应该如何编写?我可以使用<html lang="lang1 lang2">
吗?
lang
属性应为有效的BCP 47语言标签或空字符串。<html lang="en">
[...]
<body>
<h1>I am a heading <span lang="de-DE">Eine Überschrift</span></h1>
</body>
</html>
<html lang="mul">
来表示多种语言。请从IANA语言子标记注册表中选择子标记。mul
的存在可能不仅对机器人产生负面影响,还可能对辅助技术产生负面影响。想象一下屏幕阅读器软件试图提供正确发音的语音时,mul
可能会被处理为空值?! - Volker E.2020年4月,我提供最新的W3C(W3.org)指导意见...
首先,不,您不能使用<html lang="lang1 lang2">
,因为它将无法正确验证。这是在html
标签的语言属性中有多种语言(英语和斯瓦希里语)时,通过W3的Nu Html Checker进行验证的结果。这个错误会在有或没有逗号的情况下出现:
以下是基于W3C的最新内容在HTML中声明语言,如果您想要声明多种语言的混合语言网页的语言:错误:元素
html
的属性lang
的值en fr
有误:语言子标记en swh
不是有效的语言子标记。
<html lang="en swh">↩</html>
始终在 html
标签上使用语言属性来声明页面中文本的默认语言。当页面包含其他语言的内容时,将语言属性添加到包围该内容的元素。
对于作为 HTML 服务的页面,请使用 lang
属性,对于作为 XML 服务的页面,请使用 xml:lang
属性。对于 XHTML 1.x 和 HTML5 混合文档,请同时使用两者。
使用 IANA语言子标记注册表 中的语言标记。您可以使用非官方的语言子标记查找器工具查找子标记。
使用嵌套元素来处理不同语言的内容和属性值位于同一元素上的情况。
<span title="Spanish"><a lang="es" href="qa-html-language-declarations.es">Español</a></span>
如果您想指定一些内容的语言,但是周围没有标记,请在内容周围使用span
或div
等元素。以下是一个示例:
<p>You'd say that in Chinese as <span lang="zh-Hans">中国科学院文献情报中心</span>.</p>
让服务器在HTTP Content-Language头中发送信息。如果您的目标受众使用多种语言,HTTP头允许您使用逗号分隔的语言列表。
以下是声明资源为英语、印地语和旁遮普语混合的HTTP头示例:
Content-Language: en, hi, pa
http-equiv
属性设置为Content-Language
的meta
元素。由于这种元素长期存在混淆和不一致的实现,HTML5规范使其在HTML中不符合规范,因此您不应再使用它。