Facebook 分享按钮多语言

4
我在实现一个需求时遇到了问题,要求在一个多语言页面上添加一个带有计数器的分享按钮,并且分享对话框的内容应该与页面语言相同。我已经在页面上添加了og:locale和og:locale:alternate元标签,当我使用Facebook调试工具时,可以看到服务器日志中有两个请求。第一个请求没有参数,第二个请求带有“fb_locale”参数和“X-Facebook-Locale”头。语言是通过URL参数或cookie选择的。在第一个请求中,没有参数或cookie,所以“Raw Open Graph Document Information”全部用默认语言(en_US)显示。然后,在第二个请求中(带有fb_locale参数),我将资源设置为该语言。这将使“Object Properties”处于不同于“Raw Open Graph Document Information”的语言状态。问题是,分享对话框使用“Raw Open Graph Document Information”来填充自身而不是“Object Properties”。我不明白为什么会出现这种情况,也不知道如何使用“Object Properties”。我不能在“data-href”中发送带有页面语言的参数,因为两种语言的分享计数器将不同。到目前为止,我已经成功地拥有了本地化资源,但计数器值不同,或者只在默认语言中具有相同的计数器值。有人能帮忙吗?谢谢。

你也遇到了同样的问题。你解决了吗? - user2686101
不好意思,我没有找到任何使用相同计数器来显示不同语言的网站。我已经使用了新闻、商店和旅游网站的一些实例来说服客户这是一种可接受的功能实现方式。 - user3633553
如果你还需要解决方案,我有一个。请查看下面的答案,它可能会对你有所帮助。 - Akbar Mirsiddikov
1个回答

0

当您开始在https://developers.facebook.com/docs/plugins/share-button/上创建Facebook 分享按钮时,您将看到如下图片所示的模态框...

enter image description here

正如您在图片中看到的那样,(en_GB)是用红色实线下划线标出的语言代码。

我希望您注意这个语言代码,以便使您的分享按钮支持多种语言。

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

我不知道您使用的框架是什么。但在我的情况下,在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

如果你有任何不清楚的地方,请随时在下面的评论中提问...

我认为这将是有帮助的!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接