内容语言的HTML元标记

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

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

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

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

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

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

这是一个真正的HTTP头的穷人的版本,应该真的在头文件中expression。 例如:

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

它指出,这份文件是专门为西class牙语的发言者准备的(不过这并不意味着这个文件是用西class牙文写成的;例如,它可以用西class牙语为英语写成一个语言课程的一部分)。

从规格 :

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

如果你想说明一个文件是用西class牙语写的,那么使用:

 <html lang="es"> 

你问了分歧,但你不能比较这两个。

请注意, <meta http-equiv="content-language" content="es">已过时,并已在HTML5中删除。 它被用来指定“一个文档范围的默认语言”,它的http-equiv属性使它成为一个pragma指令 (它模拟一个HTTP响应头,就像Content-Language一样没有从服务器发送,因为它不能覆盖一个真正的)。

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

但是, HTML5 W3Cbuild议书鼓励作者在html根元素上使用lang属性(属性值必须是有效的BCP 47语言标签 ):

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

无论如何,如果您要指定内容语言来指示search引擎机器人,则应考虑Google多语言网站上Googlesearch控制台帮助的引用:

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

Googlebuild议使用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" /> 

Html5也推荐使用<html lang="es-ES">小写字母lang标签只指定:语言代码大字母指定:国家代码

这对ie.Chrome来说是非常有用的,当浏览器提出翻译网页内容时(例如谷歌翻译)