我希望能够为文档确定多种语言,因为该文档可用于不止一种语言。如果我使用:
<meta http-equiv="content-language" content="en,de,fr" />
这不符合 W3C 标准,验证器提示我应该在根元素的 lang
属性中定义它,但是该属性只支持一种语言:
<html lang="en">
可以运行,但不完美。
<html lang="de,en,fr">
那么我应该在哪里定义它?
所有属性仅支持一种语言,因此我认为您应该只定义一种语言;应该设置最重要的语言。如果在单个文档中有多种语言,则无法完成此操作,因此以下是解决您问题的信息:
lang和xml:lang属性不允许您将多种语言分配给单个文档。因此,如果您编写了具有多种语言的Web页面,您有两个选择:
lang
属性定义主语言,然后在文档中的元素上使用lang
属性调用第二语言。根据需要在文档的特定部分中定义lang
:
<div lang="fr-CA" xml:lang="fr-CA">
Canadian French content...
</div>
<div lang="en-CA" xml:lang="en-CA">
Canadian English content...
</div>
<div lang="nl-NL" xml:lang="nl-NL">
Netherlands, Dutch content...
</div>
我有一些多语言页面,并且我使用第二个选项。
你可能想阅读http://www.w3.org/TR/2007/NOTE-i18n-html-tech-lang-20070412/#ri20060630.133619987
<link rel="alternate" hreflang="de" href="foobar.de.html">
请参见HTML 4.01规范中的12.3.3链接和搜索引擎。
不能保证这会产生任何效果。它可能会影响搜索引擎,但不会比普通链接更有效。一些旧版本的浏览器有根据此类元素选择文档备选版本的命令,但该功能似乎已被删除。
你不能像这样使用它。
你需要使用包含所有所需字符的编码(例如支持整个Unicode范围的UTF-8),或者使用命名实体或数字引用来包括在使用中的编码之外的字符。
http://bytes.com/topic/html-css/answers/154652-multiple-languages-one-document
更新
如果使用HTML5,您可以为每个元素使用lang属性。这意味着,如果您有一个包含中文的div,只需为该div定义一个lang="zh-CN"属性,例如。 ( 什么是HTML5替代过时的meta http-equiv=content-language的方法? )
正如其他海报和W3C所指出的,您不能在html
标记的lang
属性中指定多个语言。
但是,如回答“混合语言页面应使用什么 lang
属性值?”中所示,您可以使用div
和span
等元素标记页面上使用的不同语言(或对其他语言的引用)的不同部分。
此外,您可以创建描述页面预期受众的多种语言的元数据,而不是特定文本范围的语言。您可以通过让服务器在HTTP Content-Language
标题中发送信息来实现这一点。如果您的预期受众会说多种语言,则HTTP标题允许您使用逗号分隔的语言列表。以下是声明资源为英语,印地语和旁遮普语混合物的HTTP标题示例,取自W3C的文章“在HTML中声明语言”:
Content-Language: en, hi, pa
注意:在 html
标签上始终应该使用语言属性。语言属性始终会覆盖 HTTP 标头信息。HTTP 标头应该仅提供关于整个文档预期受众的元数据,而 html
标签上的语言属性应该用于声明多语言观众中内容的默认语言。meta
元素和语言信息。有关一般语言声明和标记,请参见在HTML中声明语言。Content-Language
是有效的。然而,在HTML5中,这不再适用。
但即使对于HTML 4.01,也不推荐使用meta
元素的Content-Language
属性:HTTP headers, meta elements and language information (W3C)
mul
和空值。 - Volker E.