2014-10-16 181 views
1

我们有一个支持多种语言环境的站点,但由于我们大部分的请求都是通过瑞典数据中心进行路由,所以我们所有的opengraph元数据都以瑞典语返回。支持和语言环境:备用

我已更新我们的代码以查找X-Facebook-Locale请求标头和fb_locale查询参数,并基于此设置站点的区域设置。我还添加了我们网站支持的所有语言环境的元属性。

该网站是:

http://mixrad.io/mixes/seeded/?artists=Madonna%2CSheryl%20Crow%2CKylie%20Minogue&s=fb8e5e45-a82c-4577-a01a-81ab358a5a81

而且我们opengraph标签:

<meta name="description" content="MixRadio. It’s like having your own personal radio station. #MixRadio"> 
<meta property="og:site_name" content="MixRadio"/> 

<meta property="og:locale" content="en_GB"/> 
<meta property="og:locale:alternate" content="de_AT"/> 
<meta property="og:locale:alternate" content="de_CH"/> 
<meta property="og:locale:alternate" content="de_DE"/> 
<meta property="og:locale:alternate" content="en_AU"/> 
<meta property="og:locale:alternate" content="en_CA"/> 
<meta property="og:locale:alternate" content="en_GB"/> 
<meta property="og:locale:alternate" content="en_IE"/> 
<meta property="og:locale:alternate" content="en_IN"/> 
<meta property="og:locale:alternate" content="en_SG"/> 
<meta property="og:locale:alternate" content="en_US"/> 
<meta property="og:locale:alternate" content="en_ZA"/> 
<meta property="og:locale:alternate" content="es_ES"/> 
<meta property="og:locale:alternate" content="es_MX"/> 
<meta property="og:locale:alternate" content="fi_FI"/> 
<meta property="og:locale:alternate" content="fr_CA"/> 
<meta property="og:locale:alternate" content="fr_CH"/> 
<meta property="og:locale:alternate" content="fr_FR"/> 
<meta property="og:locale:alternate" content="id_ID"/> 
<meta property="og:locale:alternate" content="it_IT"/> 
<meta property="og:locale:alternate" content="nb_NO"/> 
<meta property="og:locale:alternate" content="nl_NL"/> 
<meta property="og:locale:alternate" content="pl_PL"/> 
<meta property="og:locale:alternate" content="pt_BR"/> 
<meta property="og:locale:alternate" content="pt_PT"/> 
<meta property="og:locale:alternate" content="ru_RU"/> 
<meta property="og:locale:alternate" content="sv_SE"/> 
<meta property="og:locale:alternate" content="th_TH"/> 
<meta property="og:locale:alternate" content="tr_TR"/> 
<meta property="og:locale:alternate" content="vi_VN"/> 
<meta property="og:locale:alternate" content="zh_CN"/> 

<meta property="twitter:card" content="summary"/> 
<meta property="twitter:site" content="@MixRadio"/> 
<meta property="og:description" content="MixRadio. It’s like having your own personal radio station."/> 
<meta property="twitter:description" content="MixRadio. It’s like having your own personal radio station."/> 
<meta property="og:title" content="Madonna,Sheryl Crow,Kylie Minogue"/> 
<meta property="twitter:title" content="Madonna,Sheryl Crow,Kylie Minogue"/> 
<meta property="twitter:image:src" content="http://asset.ent.nokia.com/asset/artists/200x200/372444.jpg"/> 
<meta property="og:image" content="http://asset.ent.nokia.com/asset/artists/200x200/372444.jpg"/> 
<meta property="og:image:type" content="image/jpeg"/> 
<meta property="og:image:width" content="200"/> 
<meta property="og:image:height" content="200"/> 
<meta property="og:type" content="music.radio_station"/> 
<meta property="og:url" content="http://www.mixrad.io/gb/en/mixes/seeded/?s=fb8e5e45-a82c-4577-a01a-81ab358a5a81"/> 
<meta property="og:audio" content="http://www.mixrad.io/gb/en/mixes/seeded/?s=fb8e5e45-a82c-4577-a01a-81ab358a5a81"/> 
<meta property="og:audio:type" content="audio/vnd.facebook.bridge"/> 

当它从瑞典数据中心的拼抢中, “OG:语言环境” 是sv_SE。

现在我已经把所有的OG:现场:在可替代的属性,facebook的调试器给了我这个消息:

在类型的URL“http://www.mixrad.io/se/sv/mixes/seeded/?s=47a36fcd-235b-4b20-9088-6f89353a9728”物件“music.radio_station”是无效的,因为给定值属性'og:locale:alternate'的'de_at'不能被解析为类型'enum'。

是否有人能够帮助我弄清楚如何让我们的元标记以正确的语言呈现给用户?

感谢

更新: 的“de_at”枚举问题是由以下事实引起的,Facebook并不支持该区域设置,删除,Facebook的不支持已经摆脱了那个特定错误的语言环境,但一切仍然以瑞典语出现。

+0

实际上它通过Facebook的调试工具将其作为en_US进行了修改:https://developers.facebook.com/tools/debug/og/object/ – OskarH 2015-04-07 09:20:04

回答

0

,Facebook并不支持各个地区,这里是他们的哪些列表他们做的:https://www.facebook.com/translations/FacebookLocales.xml

据我所知,Facebook的最初擦伤您的网站,而不指定区域,然后刮一次,每个区域设置您的meta标签表明您支持。正如您所提到的,当您的服务器看到X-Facebook-Locale标题或其查询参数时,您需要动态更改每个元标记的内容属性。

您负责渲染页面的方式,您可能希望使用用户请求中发送的头文件来确定语言。如果您拥有opengraph语言环境支持,Facebook不会查看页面的内容,它只是查看元标记并缓存在呈现预览时在Facebook中向其用户显示的内容。

相关问题