内容语言的HTML元标记

问题描述 投票:58回答:4

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

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

<meta http-equiv="content-language" content="es">
html internationalization meta-tags
4个回答
101
投票

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

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

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

这是一个真正的HTTP标头的穷人版本,应该真正在标题中表达。例如:

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

它说该文件适用于西班牙语发言者(但并不意味着该文件是用西班牙语编写的;例如,它可以用英语编写,作为西班牙语使用者的语言课程的一部分)。

From the spec

Content-Language entity-header字段描述了所包含实体的目标受众的自然语言。请注意,这可能与entity-body中使用的所有语言不同。

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

<html lang="es">

35
投票

你问过差异,但你无法比较这两者。

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

关于<meta name="language" content="Spanish">,你几乎找不到任何可靠的信息。这是非标准的,可能被发明为SEO makeshift

但是,HTML5 W3C Recommendation鼓励作者在lang根元素上使用html属性(属性值必须是有效的BCP 47 language tags):

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

无论如何,如果你想指定内容语言来指导搜索引擎机器人,你应该从Google Search Console Help on multilingual sites考虑这个引用:

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


7
投票

谷歌建议使用hreflang,阅读more info

例子:

<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" />

4
投票

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

这对于ie.Chrome非常有用,当浏览器建议翻译网页内容时(即谷歌翻译)

© www.soinside.com 2019 - 2024. All rights reserved.