在html中定义多种语言

时间:2012-08-27 22:14:16

标签: html meta-tags lang

我想为文档确定多种语言,因为它可以使用多种语言。如果我使用

<meta http-equiv="content-language" content="en,de,fr" />

这不是W3C有效且验证器说我应该在root的lang属性中定义它,但是这个属性只支持一个langugage:

<html lang="en">

有效,但不是

<html lang="de,en,fr">

那么我应该在哪里定义它?

感谢您的帮助。

5 个答案:

答案 0 :(得分:15)

所有属性只支持1种语言,所以我认为你应该只定义一种语言,应该设置最重要的语言,如果你在一个文档上有多种语言就不能这样做,所以这里是要解决的信息你的问题:

lang和xml:lang属性不允许您为单个文档分配多种语言。因此,如果您正在编写包含多种语言的网页,您有两种选择:

  1. 使用lang属性定义主要语言,然后使用文档中元素的lang属性调出辅助语言
  2. 省略lang属性,不要使用它们并在文档的各个部分中定义它。
  3. 元素中语言信息的示例:

        <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元素中使用metaHTTP 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?"所示,您可以使用诸如divspan标签之类的元素标记页面的不同部分,以指示所使用的不同语言(或对其他语言的引用)在页面上。

此外,您还可以创建用于描述页面目标受众的多种语言的元数据,而不是特定文本范围的语言。通过使服务器在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