如何实现OG-标签的国际化?(How to implement internationalizati

2019-07-04 01:48发布

对于即将开展的项目,我们想我们的应用程序翻译成多种语言。 在看看Facebook的操作方法:打开图国际化页面,你会得到这样做非常详细的信息。

因此,我们正确实施的代码。 当浏览网页作为一个讲英语的用户,您可以:

<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调试器(在调试器中使用的任何一种语言(有?区域= de_DE这个EG))中提到的URL显示英文文本。 这是调试器或预期的行为的错误?

  2. 当调试器内的备用区域设置链路,?区域的点击= de_DE这个附连到调试器,url和所述接口被改变为德文。 但现场没有传递到URL本身,因为它看起来,这是因为刮文字留在英语。 在这一个任何提示吗?

  3. 手动附接“?fb_locale = de_DE这个”参数在调试器的URL,调试器的“对象属性”部分仍然英语,而“原始开放图形文件信息”中包含的德文翻译。 这是正确的还是应该“对象属性”更新呢?

  4. 是否有任何的网站有使用你知道的OG标签的正确的国际化? 这将是真棒看到野生全功能的例子。

  5. 当粘贴在Facebook上的新闻源提到现场直接URL(如德国的Facebook的用户),脸谱只显示英语OG文本。 难道不应该显示在这种情况下,当一切都正确实现的德语文本?

Answer 1:

我有同样的问题,并写信给Facebook的支持。 他们的回答是这样的:

......该用例的Open Graph本地化不是在Facebook上分享链接和具有局部的元数据。 相反,它是指被用作定制的Open Graph的故事,如“X完成一个级别”的一部分。

基本上,当一个开放的图形故事用一个链接到一个自托管对象公布,只有这样,我们送fb_locale参数和X-Facebook的语言环境HTTP标头。

您可以按照此链接的详细信息: https://developers.facebook.com/bugs/141601252889984



Answer 2:

我回答我自己的问题: 在这里

你必须刷新了Facebook的缓存。

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

(在我的例子,我用fr_FR时)



文章来源: How to implement internationalization of OG-Tags?