以下两个HTML元标记之间有什么区别,用于指定西班牙语网页内容:
<meta name="language" content="Spanish">
和
<meta http-equiv="content-language" content="es">
答案 0 :(得分:98)
<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
它说该文件适用于西班牙语发言者(但不是,但不是说该文件是用西班牙语写的;例如,它可以用英语编写,作为西班牙语使用者的语言课程的一部分)。
Content-Language entity-header字段描述了所包含实体的目标受众的自然语言。请注意,这可能与entity-body中使用的所有语言不同。
如果您想声明文档是用西班牙语编写的,请使用:
<html lang="es">
答案 1 :(得分:33)
你问过差异,但你无法比较这两者。
请注意,<meta http-equiv="content-language" content="es">
已过时并已在HTML5中删除。它用于指定“文档范围的默认语言”,其http-equiv
属性使其成为 pragma指令(模拟像Content-Language
这样的HTTP响应标头已从服务器发送,因为它无法覆盖真实的。)
关于<meta name="language" content="Spanish">
,您几乎找不到任何可靠的信息。这是非标准的,可能被发明为SEO makeshift。
但是,HTML5 W3C Recommendation鼓励作者在html
根元素上使用lang
属性(属性值必须有效BCP 47 language tags):
<!DOCTYPE html>
<html lang="es-ES">
<head>
…
无论如何,如果你想指定内容语言来指导搜索引擎机器人,你应该考虑Google Search Console Help on multilingual sites的这句话:
Google仅使用您网页的可见内容来确定其语言。我们不使用任何代码级语言信息,例如
lang
属性。
答案 2 :(得分:5)
Google建议使用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" />
答案 3 :(得分:4)
Html5还建议使用{{1}} 小写字母lang标记仅指定:语言代码 大写字母指定:国家/地区代码
这对ie.Chrome非常有用,当浏览器建议翻译网页内容时(即谷歌翻译)
答案 4 :(得分:0)
另一个语言元标记是og:locale,您可以为社交媒体定义og:locale元标记
<meta property="og:locale" content="en" />
答案 5 :(得分:0)
作为对其他答案的补充,请注意您还可以将 lang
属性放在页面内的各种 HTML 标记上。
例如,提示拼写检查器输入文本应为英文:
<input ... spellcheck="true" lang="en"> ...
见:https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang