如何通过Facebook正确解析meta og标签的国际化?

时间:2012-12-17 23:22:38

标签: facebook facebook-graph-api grails opengraph facebook-opengraph

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

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

如果用户的浏览器发送请求,则消息属性适用于i18n。但在Facebook的情况下它是不同的。 Facebook似乎要求在我的页面上使用en_US版本,这意味着如果用户从de_DE浏览器请求页面,则元标记总是使用错误的语言。

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

我试过了:

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

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

我能做些什么来获得正确的i18n?

1 个答案:

答案 0 :(得分:4)

如果您设置了一些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)。

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

相关问题