【问题标题】:HTML meta tag for content language内容语言的 HTML 元标记
【发布时间】:2011-05-24 00:10:15
【问题描述】:

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

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

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

【问题讨论】:

标签: html internationalization meta-tags


【解决方案1】:

&lt;meta name="language" content="Spanish"&gt;

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

&lt;meta http-equiv="content-language" content="es"&gt;

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

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

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

From the spec:

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

如果您想声明文档是用西班牙语编写的,那么 use:

<html lang="es">

【讨论】:

  • 我在多语言网站上工作的极少数情况下会做类似的事情。
  • 这不是真正的 HTTP 标头的穷人版本...如果 HTML 文档从磁盘打开或嵌入到邮件消息中,那么将没有 HTTP 标头。出于这个原因,meta http-equiv 存在并且应该与 HTTP 标头一起设置。太糟糕了,有两个地方可以指定语言/编码,而 W3C/IETF 没有明确的解决方案。
  • 说到标准,这是 W3C 最近发布的一个名为“HTTP 标头、元元素和语言信息”的出版物,它证实了这个答案,可在此处获得:w3.org/International/questions/qa-http-and-lang
【解决方案2】:

您要求差异,但您无法完全比较这两者。

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

关于&lt;meta name="language" content="Spanish"&gt;,您几乎找不到任何可靠的信息。它是非标准的,可能被发明为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 属性。

【讨论】:

  • 你的谷歌报价对我来说很有意义,谢谢。
【解决方案3】:

谷歌推荐使用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" />

【讨论】:

  • 我喜欢这个提示,但它与 OP 无关。这是为了向爬虫指示在哪里可以找到当前页面的替代版本。它不表示当前页面的语言。
  • 同意瑞士先生。有用的提示,但您可能不想在“替代”列表中列出当前页面。
  • @SwissMister @HoldOffHunger 具有“替代”列表的页面应该在此替代标签列表的顶部替代当前页面。如果所有页面在另一个国家或其他语言中都有相同的内容,最好告诉搜索引擎备用页面,因为它会学习搜索引擎您的内容应该在搜索结果中显示的位置,例如带有@987654324 的页面@ 和带有nl-nl 的页面,en-ca 将包含在加拿大的搜索结果中,带有备用nl-nl 的页面可以在荷兰的搜索结果中找到..
  • google-link 确实提到应该为当前语言添加一个备用标签,但它似乎不一定是 在顶部。顺序似乎并不重要。
  • 值得注意的是,Google 还说“确保页面语言明显 Google 使用您页面的可见内容来确定其语言。我们不使用任何代码级语言信息例如lang 属性或网址。您可以通过在每个页面上使用单一语言的内容和导航以及避免并排翻译来帮助 Google 正确确定语言。” (在Managing multi-regional and multilingual sites
【解决方案4】:

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

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

【讨论】:

    【解决方案5】:

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

    <meta property="og:locale" content="en" />
    

    你可以阅读关于 og 标签的内容 https://ogp.me/

    【讨论】:

    • 你应该详细说明,你没有提到它的作用。 ogp.me
    【解决方案6】:

    作为对其他答案的补充,请注意,您还可以将 lang 属性放在页面内的各种 HTML 标记上。 例如向拼写检查器提示输入文本应该是英文:

    &lt;input ... spellcheck="true" lang="en"&gt; ...

    见:https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang

    【讨论】:

      猜你喜欢
      • 2023-03-10
      • 1970-01-01
      • 2015-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多