我在执行一项要求时遇到问题,该要求声明我应该在多语言页面中有一个带有计数器的共享按钮,并且共享对话框的内容应该与页面使用相同的语言。
我已经阅读了很多问题(和建议),但我仍然无法弄明白。
我在我的页面上添加了 og:locale 和 og:locale:alternate 元标记,当我使用 de Facebook 调试器时,我可以在服务器日志中看到两个请求。第一个没有参数,第二个带有“fb_locale”参数和“X-Facebook-Locale” header 。
语言由 url 参数或 cookie 选择。当第一个请求到来时,没有参数(或 cookie),因此“原始开放图文档信息”全部以默认语言(en_US)出现。
然后,在第二个请求(带有 fb_locale 参数的请求)中,我将资源设置为该语言。这会将“对象属性”设置为与“原始开放图文档信息”不同的语言。
问题是共享对话框使用“原始开放图文档信息”而不是“对象属性”来填充自身。
我不明白为什么会发生这种情况,也不知道如何使用“对象属性”来代替。
我无法在“data-href”上发送带有页面语言的参数,因为两种语言的共享计数器不同。
到目前为止,我已经设法拥有本地化资源,但具有不同的计数器值或仅在默认语言中具有相同的计数器值。
有人可以帮忙吗?谢谢
最佳答案
当您开始在 https://developers.facebook.com/docs/plugins/share-button/ 上创建 facebok 分享按钮
时|
你会看到如下图所示的模态...
正如你所看到的 language_code (en_GB)
在图片中用红色实线下划线。
我希望你注意这个 language_code 以便让你
分享按钮
多语言。
在将 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
如果您有什么不清楚的地方,请随时在下面的评论中提问...
我认为这会很有帮助!
关于Facebook 分享按钮多语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23637930/