以下两个用于指定西班牙语网页内容的HTML元标记之间有什么区别:
<meta name="language" content="Spanish">
和
<meta http-equiv="content-language" content="es">
Answers:
<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">
meta http-equiv
存在,应与HTTP标头一起设置。不幸的是,您可以在两个地方指定语言/编码,并且W3C / IETF没有明确的解决方案。
您要求有所不同,但无法完全比较这两者。
请注意,这<meta http-equiv="content-language" content="es">
已过时并已在HTML5中删除。它用于指定“一种文档范围内的默认语言”,其http-equiv
属性使它成为一种编译指示(该指令模拟Content-Language
未从服务器发送的HTTP响应标头,因为它无法覆盖真正的HTTP标头)。
关于<meta name="language" content="Spanish">
,您几乎找不到可靠的信息。它是非标准的,可能是作为SEO临时发明的。
但是,HTML5 W3C建议书鼓励作者lang
在html
根元素上使用属性(属性值必须是有效的BCP 47语言标记):
<!DOCTYPE html>
<html lang="es-ES">
<head>
…
无论如何,如果您想指定内容语言来指导搜索引擎机器人,则应考虑使用多语言网站上Google Search Console帮助中的以下报价:
Google仅使用页面的可见内容来确定其语言。我们不使用任何代码级语言信息,例如
lang
属性。
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" />
en-ca
和的页面与的页面nl-nl
,en-ca
它将包含在加拿大的搜索结果中,nl-nl
可以在荷兰的搜索结果中找到带有替代的页面
另一个语言元标记是og:locale,您可以为社交媒体定义og:locale元标记
<meta property="og:locale" content="en" />