如何实现OG标签的国际化?

时间:2012-11-22 10:52:14

标签: facebook facebook-graph-api localization internationalization facebook-opengraph

对于即将开展的项目,我们希望将我们的应用翻译成多种语言。查看Facebook的How-To: Open Graph Internationalization页面,您可以获得有关此操作的详细信息。

因此,我们正确实施了标签。当以英语用户的身份查看页面时,您会得到:

<meta property="og:url" content="https://site.url" />
<meta property="og:title" content="English title" />
<meta property="og:description" content="English description" />
<meta property="og:locale" content="en_US" />
<meta property="og:locale:alternate" content="de_DE" /> 

对于德国用户来说,反之亦然:

<meta property="og:url" content="https://site.url" />
<meta property="og:title" content="German title" />
<meta property="og:description" content="German description" />
<meta property="og:locale" content="de_DE" />
<meta property="og:locale:alternate" content="en_US" /> 

如文档中所述,我们查看“?fb_locale”-get参数,另外,解析HTTP_X_FACEBOOK_LOCALE标头以决定应显示哪个翻译。

所以,我的问题如下:

  1. 使用Facebook Debugger调试提到的URL时(无论调试器中使用何种语言(例如?locale = de_DE))都会显示英文文本。这是调试器或预期行为的错误吗?

  2. 在调试器中单击备用语言环境链接时,会将一个?locale = de_DE附加到debugger-url,并且接口将更改为german。但是区域设置没有传递给url本身,因为它看起来是因为被删除的文本仍然是英文。有关这一个的任何提示吗?

  3. 手动将“?fb_locale = de_DE”参数附加到调试器中的url时,调试器的“对象属性”部分仍为英文,而“原始打开图形文档”信息“包含德语翻译。这是正确的还是“对象属性”也应该更新?

  4. 是否有任何网站使用您知道的og-tags的正确国际化?在野外看到一个功能齐全的例子真是太棒了。

  5. 当直接在Facebook新闻源(作为德语Facebook用户)粘贴上述网站网址时,Facebook仅显示英文文本。当一切正确实施时,它不应该在这种情况下显示德语文本吗?

2 个答案:

答案 0 :(得分:3)

我回答了我自己的问题:here

你必须刷新facebook的缓存。

curl -X POST -F "id=http://yoururl" -F "scrape=true" -F "locale=fr_fr" "https://graph.facebook.com" -s

(在我的例子中,我使用了fr_fr)

答案 1 :(得分:2)

我遇到了同样的问题并写信给facebook支持。他们的答案是这样的:

  

... Open Graph Localization的用例不是用于在Facebook上共享链接并将元数据本地化。相反,它意味着用作自定义Open Graph故事的一部分,例如&#34; X完成了一个级别&#34;。

     

基本上,当使用指向自托管对象的链接发布开放图形故事时,我们才会发送fb_locale参数和X-Facebook-Locale HTTP标头。

您可以点击此链接了解详情:https://developers.facebook.com/bugs/141601252889984