2014-10-16 3 views
1

우리는 여러 로케일을 지원하는 사이트를 가지고 있지만 현재 대부분의 요청이 스웨덴 데이터 센터를 통해 라우팅되기 때문에 모든 Opengraph 메타 데이터가 스웨덴어로 다시 제공됩니다.og : locale : alternate 대체

저는 X-Facebook-Locale 요청 헤더와 fb_locale 쿼리 매개 변수를 찾고이를 기반으로 사이트의 로케일을 설정하도록 코드를 업데이트했습니다. 우리 사이트가 지원하는 모든 로케일의 메타 속성도 추가했습니다.

사이트는 다음과 같습니다

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

그리고 우리의 오픈 그래프 태그는 다음과 같습니다

<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입니다. 로케일 : 지금은 모든 자책골 넣었습니다

에서 대체 속성, 페이스 북의 디버거 나에게이 메시지 제공 : 유형의 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' 스웨덴어로 아직 올라오고있다.

+0

실제로 Facebook의 디버거 도구를 통해 en_US로 스크랩합니다. https://developers.facebook.com/tools/debug/og/object/ – OskarH

답변

0

페이스 북이 여기에있는 사람들의 자신의 목록입니다, 모든 로케일을 지원하지 않습니다 그들이 수행 내 지식 https://www.facebook.com/translations/FacebookLocales.xml

는 페이스 북이 처음 로케일을 지정하지 않고 사이트를 긁힌 자국, 다음 긁힌 자국 일단 로케일에 따라 당신의 메타 태그를 표시 지원하다. 앞서 언급했듯이 서버가 X-Facebook-Locale 헤더 또는 해당 쿼리 매개 변수를 볼 때 각 메타 태그의 콘텐츠 속성을 동적으로 변경해야합니다.

페이지를 렌더링하는 방법을 담당하고 있으므로 언어를 결정하기 위해 사용자의 요청에 보낸 헤더를 사용하고 싶을 것입니다. 오픈 그래프 로캘 지원이있는 경우 Facebook은 페이지의 콘텐츠를 보지 않으며, 메타 태그를보고 미리보기 렌더링시 Facebook 내 사용자에게 표시되는 내용을 캐시합니다.