我想为文档确定多种语言,因为它可以使用多种语言。如果我使用
<meta http-equiv="content-language" content="en,de,fr" />
这不是W3C有效且验证器说我应该在root的lang属性中定义它,但是这个属性只支持一个langugage:
<html lang="en">
有效,但不是
<html lang="de,en,fr">
那么我应该在哪里定义它?
感谢您的帮助。
答案 0 :(得分:15)
所有属性只支持1种语言,所以我认为你应该只定义一种语言,应该设置最重要的语言,如果你在一个文档上有多种语言就不能这样做,所以这里是要解决的信息你的问题:
lang和xml: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
答案 1 :(得分:3)
你不能这样使用它。
您必须使用包含支持整个Unicode范围的所有所需字符(例如UTF-8)的编码,或者使用命名实体或数字引用来包含正在使用的编码之外的字符。
http://bytes.com/topic/html-css/answers/154652-multiple-languages-one-document
更新
如果使用HTML5,那么您可以为每个元素使用lang。这意味着如果你有一个包含普通话的div,只需为该div定义一个属性lang =“zh-CN”,如。 (What is the HTML5 alternative to the obsolete meta http-equiv=content-language.)
答案 2 :(得分:2)
Content-Language HTTP标头的含义,以及它的meta
标签代理,是它声明文档的语言,或目标受众的语言(相关的RFC是矛盾的),< em> not 其他一些文件的语言(如当前文件的翻译)。标题的实际效果很小,可能仅限于使用名为文档语言的第一种语言, if HTML标记中没有语言信息。
要表明文档可以使用其他语言,您可以使用
等标记 <link rel="alternate" hreflang="de" href="foobar.de.html">
请参阅HTML 4.01规范中的12.3.3 Links and search engines。
无法保证这会产生任何影响。它可能会影响搜索引擎,但不会超过普通链接。一些旧的浏览器版本有基于这样的元素选择文档的替代版本的命令,但该功能似乎已被删除。
答案 3 :(得分:2)
您使用的是什么HTML版本?在 HTML 4.01 中,您使用多种语言的Content-Language
有效。在 HTML5 ,it's not。
但即使对于HTML 4.01,也不建议在Content-Language
元素中使用meta
:HTTP headers, meta elements and language information (W3C)
答案 4 :(得分:0)
正如其他发布者和W3C所指出的那样,您不能在lang
标签的html
属性中指定一种以上的语言。
但是,如this answer to "What attribute value should I use for a mixed language page?"所示,您可以使用诸如div
和span
标签之类的元素标记页面的不同部分,以指示所使用的不同语言(或对其他语言的引用)在页面上。
此外,您还可以创建用于描述页面目标受众的多种语言的元数据,而不是特定文本范围的语言。通过使服务器在HTTP Content-Language
标头中发送信息来实现此目的。如果您的目标受众说多种语言,则HTTP标头可让您使用逗号分隔的语言列表。
这里是HTTP标头的示例,该标头声明资源是W3C文章Declaring language in HTML中的英语,北印度语和旁遮普语的混合体:
Content-Language: en, hi, pa
请注意:由于您应始终在html
标记上使用language属性,而language属性始终会覆盖HTTP标头信息,因此这确实很不错。 HTTP标头应仅用于提供有关整个文档目标受众的元数据,而html
标签上的language属性应用于声明内容的默认语言。
有关最后一种技术的详细信息,请参见HTTP headers, meta
elements and language information。有关常规语言声明和标记,请参见Declaring language in HTML。