内容语言的HTML元标记


70

以下两个用于指定西班牙语网页内容的HTML元标记之间有什么区别:

<meta name="language" content="Spanish">

<meta http-equiv="content-language" content="es">

Answers:


110

<meta name="language" content="Spanish">

这在任何规范中都没有定义(包括HTML5草案

<meta http-equiv="content-language" content="es">

这是真实HTTP标头的穷人版本,应真正在标头中表示。例如:

Content-language: es
Content-type: text/html;charset=UTF-8

它说该文档是为讲西班牙语的人准备的(但是,这并不意味着该文档是用西班牙语编写的;例如,作为讲西班牙语的人的语言课程的一部分,它可以用英语编写)。

从规格

Content-Language实体标题字段描述了封闭实体的预期受众的自然语言。请注意,这可能并不等同于实体主体中使用的所有语言。

如果要声明文档是用西班牙语编写的,请使用:

<html lang="es">

在使用多语言网站的极少数情况下,我会做类似的事情。
昆汀2010年

19
这不是真正的HTTP标头的穷人版本...如果从磁盘打开HTML文档或将其嵌入邮件中,则将没有HTTP标头。因此meta http-equiv存在,应与HTTP标头一起设置。不幸的是,您可以在两个地方指定语言/编码,并且W3C / IETF没有明确的解决方案。
doc 2014年

2
说到标准,这是W3C最近发布的名为“ HTTP标头,元元素和语言信息”的最新出版物,该出版物证实了这一答案,请访问:w3.org/International/questions/qa-http-and-lang
Simon Mourier

41

您要求有所不同,但无法完全比较这两者。

请注意,这<meta http-equiv="content-language" content="es">已过时并已在HTML5中删除。它用于指定“一种文档范围内的默认语言”,其http-equiv属性使它成为一种编译指示(该指令模拟Content-Language未从服务器发送的HTTP响应标头,因为它无法覆盖真正的HTTP标头)。

关于<meta name="language" content="Spanish">,您几乎找不到可靠的信息。它是非标准的,可能是作为SEO临时发明的。

但是,HTML5 W3C建议书鼓励作者langhtml根元素上使用属性(属性值必须是有效的BCP 47语言标记):

<!DOCTYPE html>
<html lang="es-ES">
    <head>

无论如何,如果您想指定内容语言来指导搜索引擎机器人,则应考虑使用多语言网站上Google Search Console帮助中的以下报价:

Google仅使用页面的可见内容来确定其语言。我们不使用任何代码级语言信息,例如lang属性。


1
您的Google报价对我来说非常有意义,谢谢。
6

11

Google建议使用hreflang,了解更多信息

例子:

<link rel="alternate" href="http://example.com/en-ie" hreflang="en-ie" />
<link rel="alternate" href="http://example.com/en-ca" hreflang="en-ca" />
<link rel="alternate" href="http://example.com/en-au" hreflang="en-au" />
<link rel="alternate" href="http://example.com/en" hreflang="en" />

12
我喜欢这个提示,但它与OP无关。指示爬网程序可以在其中找到当前页面的替代版本。它不指示当前页面的语言。
瑞士先生

同意瑞士先生。有用的提示,但您可能不想在“替代”列表中列出当前页面。
HoldOffHunger

2
@SwissMister @HoldOffHunger具有“替代项”列表的页面应在替代标记列表的顶部具有当前页面替代项。如果所有网页在另一个国家/地区或使用其他语言都具有相同的内容,则最好向搜索引擎告知备用页面,因为它将学习搜索引擎在搜索结果中应显示您内容的位置,例如带有en-ca和的页面与的页面nl-nlen-ca它将包含在加拿大的搜索结果中,nl-nl可以在荷兰的搜索结果中找到带有替代的页面
。.– jagb

google-link确实提到应该为当前语言添加一个替代标记,但是它似乎不一定位于top。顺序似乎并不重要。
Marten Koetsier

4

html5还建议使用<html lang="es-ES"> 小写字母lang标记仅指定:语言代码大写字母指定:国家/地区代码

当浏览器建议翻译网页内容(例如Google翻译)时,这对于Chrome浏览器确实非常有用


0

另一个语言元标记是og:locale,您可以为社交媒体定义og:locale元标记

<meta property="og:locale" content="en" />
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.