5

我有一个带有元 og 标签的 grails 应用程序,如下所示:

<meta property="og:description" content="${message(code:'description')}"/>

如果用户的浏览器发送请求,则消息属性对 i18n 工作正常。但在 Facebook 的情况下,情况就不同了。Facebook 似乎总是在我的页面上请求 en_US 版本,这意味着如果用户从 de_DE 浏览器请求页面,meta og 标签总是使用错误的语言。

有没有办法告诉 facebook 使用与 en_US 不同的请求语言?

我试过了:

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

但这也不会改变请求的语言。

我该怎么做才能获得正确的 i18n?

4

1 回答 1

7

如果您设置了一些og:locale:alternate元标记,Facebook 将通过传递带有区域设置值的get参数来重新抓取页面。fb_locale例如,如果您的网站是http://mysite.com/share并且它提供以下替代语言环境:

<html>
<head>
    <meta property="og:locale:alternate" content="fr_FR" />
    <meta property="og:locale:alternate" content="es_ES" />
    ...
</head>
    ...
</html> 

Facebook 将在您的网站上调用这些网址。

http://mysite.com/share
http://mysite.com/share?fb_locale=fr_FR
http://mysite.com/share?fb_locale=es_ES

然后,您只需og:locale正确本地化您的内容(并设置)。

文档在这里:https ://developers.facebook.com/docs/technical-guides/opengraph/internationalization/

于 2012-12-18T03:05:48.737 回答