Facebook分享按钮多语言

时间:2014-05-13 17:29:06

标签: facebook share facebook-opengraph multilingual

我在实现一个要求时遇到问题,该要求声明我应该在多语言页面中有一个带有计数器的共享按钮,并且共享对话框的内容应该与页面的语言相同。

我已经阅读了很多问题(和建议),但我仍然无法弄明白。

我在我的网页上添加了元标记og:locale和og:locale:alternate,当我使用de Facebook调试器时,我可以在服务器日志中看到两个请求。第一个没有参数,第二个带有“fb_locale”参数和“X-Facebook-Locale”标题。

语言由url参数或cookie选择。当第一个请求到来时,没有参数(或cookie),因此“Raw Open Graph Document Information”全部采用默认语言(en_US)。

然后,在第二个请求(具有fb_locale参数的请求)上,我将资源设置为该语言。这将“对象属性”设置为与“原始开放图形文档信息”不同的语言。

问题是共享对话框使用“原始打开图形文档信息”来填充自身而不是“对象属性”。

我不明白为什么会发生这种情况以及如何使用“对象属性”代替。

我无法在“data-href”上发送带有页面语言的参数,因为两种语言的共享计数器都不相同。

到目前为止,我已经设法拥有本地化资源但具有不同的计数器值或仅使用默认语言具有相同的计数器值。

有人可以帮忙吗?感谢

1 个答案:

答案 0 :(得分:0)

当您开始在https://developers.facebook.com/docs/plugins/share-button/上创建Facebok share button时 您将看到如下图所示的模态...

enter image description here

您会看到在图片中用红色实线下划线的language_code (en_GB)

我希望您注意此language_code以便使您  share button多语言。

将js代码粘贴到html页面后,您需要将此/en_GB/替换为/here-your-language-key-to-change-lang_code/

我不知道您使用什么框架。但是在我的Laravel(php框架)中看起来像这样。

src="https://connect.facebook.net/{{@trans('text.lang_code')}}/sdk.js#xfbml=1&version=v4.0&appId=506295213539017&autoLogAppEvents=1"


en
   'lang_code' => 'en_GB'
es
   'lang_code' => 'es_ES'
fr
   'lang_code' => 'fr_FR' 

您可以在http://getty.uz上查看真实的演示

如果您不清楚某些地方,请随时在下面的评论中提问...

我认为这会有所帮助!