我想为一个文档确定不止一种语言,因为它有不止一种语言可用。如果我使用:
<meta http-equiv="content-language" content="en,de,fr" />
这不是 W3C 有效的,验证器说我应该在根的lang
属性中定义它,但是这个属性只支持一种语言:
<html lang="en">
工作,但不是
<html lang="de,en,fr">
那么我应该在哪里定义呢?
所有属性只支持一种语言,所以我相信你应该只定义一种语言;应该设置最重要的语言。如果您在一个文档中有多种语言,则无法完成此操作,因此这里是解决您问题的信息:
lang 和 xml:lang 属性不允许您将多种语言分配给单个文档。因此,如果您正在编写具有多种语言的网页,您有两种选择:
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
Content-Language HTTP 标头的含义以及它的meta
标记代理项的含义是,它声明了文档的语言或目标受众的语言(相关的 RFC 是矛盾的),而不是其他一些文档的语言(如当前文件的翻译)。header 的实际作用很小,如果HTML 标记中没有语言信息,可能仅限于使用命名为文档语言的第一种语言。
要表明文档有其他语言版本,您可以使用如下标签
<link rel="alternate" hreflang="de" href="foobar.de.html">
请参阅HTML 4.01 规范中的12.3.3 链接和搜索引擎。
无法保证这会产生任何影响。它可能会影响搜索引擎,但不会超过普通链接。一些旧的浏览器版本具有基于此类元素选择文档替代版本的命令,但该功能似乎已被删除。
您使用什么 HTML 版本?在HTML 4.01中,您使用Content-Language
多种语言是有效的。在HTML5中,它不是.
但即使对于 HTML 4.01,也不推荐使用Content-Language
for元素: HTTP 标头、元元素和语言信息 (W3C)meta
你不能这样使用它。
您必须使用包含所有所需字符的编码(例如,支持整个 Unicode 范围的 UTF-8),或者使用命名实体或数字引用来包含正在使用的编码之外的字符。
http://bytes.com/topic/html-css/answers/154652-multiple-languages-one-document
更新
如果使用 HTML5,那么您可以对每个元素使用 lang。这意味着如果您有一个包含普通话的 div,只需为该 div 定义一个属性 lang="zh-CN",例如 . (什么是过时的元 http-equiv=content-language 的 HTML5 替代方案。)
正如其他海报和 W3C 所指出的那样,您不能在标签的lang
属性中指定一种以上的语言。html
但是,如“我应该为混合语言页面使用什么属性值?”的答案所示。div
,您可以使用和标签等元素标记页面的不同部分,span
以指示页面上使用的不同语言(或对其他语言的引用)。
此外,您可以创建元数据,为页面的目标受众描述多种语言,而不是特定文本范围的语言。为此,您需要让服务器发送 HTTPContent-Language
标头中的信息。如果您的目标受众会说一种以上的语言,则 HTTP 标头允许您使用以逗号分隔的语言列表。
下面是一个 HTTP 标头示例,该标头声明资源是英语、印地语和旁遮普语的混合体,来自 W3C 的文章在 HTML 中声明语言:
Content-Language: en, hi, pa
请注意:由于您应该始终在html
标签上使用语言属性,并且语言属性始终覆盖 HTTP 标头信息,因此这确实成为一个很好的点。HTTP 标头应仅用于提供有关整个文档的预期受众的元数据,并且html
应使用标记上的语言属性来声明内容的默认语言。
有关最后一种技术的详细信息,请参阅HTTP 标头、meta
元素和语言信息。有关一般语言声明和标记,请参阅在 HTML 中声明语言。