我有一个带有 meta 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?
如果您设置了一些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/