【问题标题】:How can I internationalize meta og tags to be parsed correctly by Facebook?如何国际化元 og 标签以由 Facebook 正确解析?
【发布时间】:2012-12-17 23:22:37
【问题描述】:

我有一个带有元 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?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • og:locale 和 og:locale:alternate 有什么区别?
    • og:locale 是当前语言环境(例如:og 标签的编写语言)。 og:locale:alternate 是 Facebook 将使用 ?fb_locale=your_LOCALE 获取的替代语言环境。
    • 所以当我希望我的页面以德语显示时,我必须将 放在我的页面上?
    • 是的,然后,Facebook 将向http://yoursite.com/share?fb_locale=de_DE 发送请求,然后,在此页面上,您将所有文本输入为德语,然后添加&lt;meta property="og:locale" content="de_DE"&gt;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    相关资源
    最近更新 更多