2011-11-20 92 views
3

默认区域我有支持多个区域设置,具体en_USfr_FR与第一默认的opengraph对象https://example.com/objectopengraph对象只显示流

解析它在Facebook的对象调试器中正确显示两个语言环境为og:locale:alternate属性和默认语言环境为og:locale。单击每个语言环境链接的确会在预期的语言环境中显示该对象。

然而,当用户喜欢的对象(通过https://example.com/object作为对象的URL,使用任何类似的框区域设置,并且没有其区域设置为在Facebook的用户定义的物质),她的流总是显示在其默认en_US对象语言环境。

这是一个Facebook的问题,还是我错过了什么?

NOTE: 此问题与this one类似。不过,重点是Facebook上的URL,这对我来说工作得很好:当URL被刮掉时,fb_localeX-Facebook-Locale都正确传递。在这里,重点是在使用了正确的区域

回答

2

该文档是有点混乱流中显示的网址刮掉。

og:locale不应该被设置为默认的语言环境;它应该设置为您当前返回的任何语言环境。

具体而言,如果Facebook请求fb_locale=fr_FR,则需要在响应中返回<meta property="og:locale" content="fr_FR">

它确实有道理。当Facebook在回复中看到og:locale="en_US"时,它认为您没有法文页面可以返回,因此它使用已获得的英文内容。这只是没有记录得很好。

这里是我的Open Graph区域标签为英文:

<meta property="og:locale" content="en_US" /> 
<meta property="og:locale:alternate" content="en_US" /> 
<meta property="og:locale:alternate" content="fr_CA" /> 

而对于法国:

<meta property="og:locale" content="fr_CA" /> 
<meta property="og:locale:alternate" content="en_US" /> 
<meta property="og:locale:alternate" content="fr_CA" /> 

在获得Facebook来在对话框中实际使用正确的内容,您的里程可能会有所不同,但这至少会让刮板识别你的内容。