2011-11-20 67 views
3

默認區域我有支持多個區域設置,具體en_USfr_FR與第一默認的opengraph對象https://example.com/objectopengraph對象只顯示流

解析它在Facebook的對象調試器中正確顯示兩個語言環境爲og:locale:alternate屬性和默認語言環境爲og:locale。單擊每個語言環境鏈接的確會在預期的語言環境中顯示該對象。

然而,當用戶喜歡的對象(通過https://example.com/object作爲對象的URL,使用任何類似的框區域設置,並且沒有其區域設置爲在Facebook的用戶定義的物質),她的流總是顯示在其默認en_US對象語言環境。

這是一個Facebook的問題,還是我錯過了什麼?

NOTE: 此問題與this one類似。不過,重點是Facebook上的URL,這對我來說工作得很好:當URL被刮掉時,fb_localeX-Facebook-Locale都正確傳遞。在這裏,重點是在使用了正確的區域

回答

2

該文檔是有點混亂流中顯示的網址刮掉。

og:locale不應該被設置爲默認的語言環境;它應該設置爲您當前返回的任何語言環境。

具體而言,如果Facebook請求fb_locale=fr_FR,則需要在響應中返回<meta property="og:locale" content="fr_FR">

它確實有道理。當Facebook在回覆中看到og:locale="en_US"時,它認爲您沒有法文頁面可以返回,因此它使用已獲得的英文內容。這只是沒有記錄得很好。

這裏是我的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" /> 

而對於法國:

<meta property="og:locale" content="fr_CA" /> 
<meta property="og:locale:alternate" content="en_US" /> 
<meta property="og:locale:alternate" content="fr_CA" /> 

在獲得Facebook來在對話框中實際使用正確的內容,您的里程可能會有所不同,但這至少會讓刮板識別你的內容。