我得到這個工作The documentation不是很詳細,下面是詳細介紹
這裏是我的Open Graph區域標籤:
。
<meta property="og:locale" content="en_US" />
<meta property="og:locale:alternate" content="en_US" />
<meta property="og:locale:alternate" content="fr_CA" />
非常重要:The documentation使得看起來og:locale
應始終反映頁面的「默認」區域設置。不是這種情況;這樣做會阻止刮板檢索其他語言。 og_locale
必須反映頁面的當前區域設置。換句話說,如果刮板(或用戶)請求fr_CA
內容,確保og_locale
在響應設置爲fr_CA
。
用og:locale:alternate
指定所有可能的語言環境。這樣,無論刮板是要求en_US
還是fr_CA
,它仍然知道兩者都存在。
這裏的我問了Facebook刮刀重新處理我的網頁:
curl -d "id=https://apps.facebook.com/everydaybarilla/&scrape=true" https://graph.facebook.com
這裏的響應:
{
"url": "http://apps.facebook.com/everydaybarilla/",
"type": "website",
"title": "Barilla\u2019s Every Day, Every Way Contest",
"locale": {
"locale": "en_us",
"alternate": [
"fr_ca"
]
},
"image": [
{
"url": "http://everydaybarilla.ssl.spidermarketing.ca/assets/img/thumbnails/5.png"
},
{
"url": "http://everydaybarilla.ssl.spidermarketing.ca/assets/img/thumbnails/4.png"
},
{
"url": "http://everydaybarilla.ssl.spidermarketing.ca/assets/img/thumbnails/3.png"
},
{
"url": "http://everydaybarilla.ssl.spidermarketing.ca/assets/img/thumbnails/en-2.png"
},
{
"url": "http://everydaybarilla.ssl.spidermarketing.ca/assets/img/thumbnails/en-1.png"
}
],
"description": "Barilla Canada is whisking one lucky winner and a guest off to Italy on an 8-day Italian culinary adventure for 2 in the Barilla Every Day, Every Way Contest!",
"site_name": "Barilla\u2019s Every Day, Every Way Contest",
"updated_time": "2012-04-16T17:59:38+0000",
"id": "10150594698421968",
"application": {
"id": "317271281656427",
"name": "Barilla\u2019s Every Day, Every Way Contest",
"url": "http://www.facebook.com/apps/application.php?id=317271281656427"
}
}
刮刀正確返回默認語言環境中的數據,但根據the documentation ,似乎刮刀應該刮擦交替的語言環境;不是這種情況。很明顯,從上面的響應中可以看到備用語言環境,但它不處理它們。
所以,這裏是我專門詢問了Facebook刮刀來處理我的網頁EN法語:
curl -d "id=https://apps.facebook.com/everydaybarilla/&scrape=true&locale=fr_CA" https://graph.facebook.com
這一次,我正確地看到從刮刀兩個請求到我的服務器。第二個請求將X-Facebook-Locale
標頭和fb_locale
網址參數都正確設置爲fr_CA
。並且POST正確返回法語響應:
{
"url": "http://apps.facebook.com/everydaybarilla/?fb_locale=fr_CA",
"type": "website",
"title": "Concours Tous les jours, de toutes les fa\u00e7ons de Barilla",
"locale": {
"locale": "fr_ca",
"alternate": [
"en_us",
"fr_ca"
]
},
"image": [
{
"url": "http://everydaybarilla.ssl.spidermarketing.ca/assets/img/thumbnails/5.png"
},
{
"url": "http://everydaybarilla.ssl.spidermarketing.ca/assets/img/thumbnails/4.png"
},
{
"url": "http://everydaybarilla.ssl.spidermarketing.ca/assets/img/thumbnails/3.png"
},
{
"url": "http://everydaybarilla.ssl.spidermarketing.ca/assets/img/thumbnails/fr-2.png"
},
{
"url": "http://everydaybarilla.ssl.spidermarketing.ca/assets/img/thumbnails/fr-1.png"
}
],
"description": "Un heureux gagnant et son invit\u00e9(e) partiront \u00e0 destination de l\u2019Italie pour une aventure culinaire de 8 jours pour 2 personnes (valeur au d\u00e9tail approximative de 15 000 $)!",
"site_name": "Barilla\u2019s Every Day, Every Way Contest",
"updated_time": "2012-04-16T18:11:27+0000",
"id": "10150594698421968",
"application": {
"id": "317271281656427",
"name": "Barilla\u2019s Every Day, Every Way Contest",
"url": "http://www.facebook.com/apps/application.php?id=317271281656427"
}
}
成功!
當然,經過所有這些努力,當我去法國的Facebook.com併發布這個網址時,狀態框被填入......與英文數據。看起來Facebook自己的界面沒有配置爲請求正確的區域設置。
所以,即使所有這些努力,似乎沒有任何成就(翻譯我的字符串通過Facebook翻譯應用程序也無法正常工作,所以我想我不應該感到驚訝)。
不過,它確實回答了這個問題。也許其他人可以確定爲什麼Facebook.com界面似乎不要求正確的區域設置。
你有沒有發現這種行爲的解決方案? –