如何本地化html5元标记信息

时间:2013-07-27 00:54:25

标签: html5 localization internationalization meta-tags

我正在使用Sinatra构建一个专为4种不同语言设计的网站,并使用I18n库来插入本地化内容,但我想知道如何处理标准HTML5 descriptionkeywords之类的元标记,以及Google和其他搜索引擎在我对这些标记中的内容进行本地化时如何处理它们。

理想情况下,我希望能够告诉Google(等),可能是通过sitemap.xml文件中的信息或其他东西(尽管我不确定甚至可能),该网站可能会被解析4种语言,因此可以根据用户的区域设置偏好向用户提供正确的本地化关键字和描述。

同样,我希望能够通过本地化相关的og元标记和twitter:card`元标记来本地化发布到Twitter和Facebook的信息。

注意:无论选择哪种语言,实际页面网址都是相同的,本地化内容会在Slim模板中呈现。

例如,指定

是否足够
html lang='de_DE'

我正在采用最佳实践和DRY方式为我的国际用户提供完美的本地化搜索结果摘要信息。

2 个答案:

答案 0 :(得分:4)

如果不同的语言版本位于同一个URL,那么搜索引擎获得的是您的服务器发送给指定任何语言首选项的浏览器的内容。根据你的描述,它似乎总是得到默认(英语)版本。没有meta代码或lang属性会影响这一点。 (搜索引擎会忽略lang属性。)

所以你应该安排一些东西,以便页面的每个语言版本都有自己的URL。 (差异可能只在查询部分,例如最后的?lang=de-DE。)此外,版本应该是相互关联的,link元素或可见的a链接,这样当搜索引擎找到了一个版本,它也会通过以下链接找到其他版本。

P.S。编写<meta name=keywords ...>标签可能是浪费时间。谷歌很久以前就有ignored个。

答案 1 :(得分:4)

您可以使用lang attribute在同一HTML文档中为meta元素提供不同语言的内容:

<meta name="description" lang="de" content="…" />
<meta name="description" lang="en" content="…" />
<meta name="description" lang="es" content="…" />
<meta name="description" lang="fr" content="…" />

如果谷歌或Facebook等任何第三方服务认识到这是一个无法回答的不同问题,具体取决于具体服务,背景和时间点,因为事情可能会迅速改变。

但是(也可以Jukka K. Korpela notes),通常您应该使用单独的URL进行翻译。为用户(以及搜索引擎等)提供链接到特定语言版本的能力。