5

次のようなmetaogタグを使用したgrailsアプリケーションがあります。

<meta property="og:description" content="${message(code:'description')}"/>

ユーザーのブラウザがリクエストを送信した場合、メッセージのプロパティはi18nで正常に機能します。しかし、Facebookの場合は異なります。Facebookは、私のページで常にen_USバージョンを要求しているようです。つまり、ユーザーがde_DEブラウザーからページを要求した場合、metaogタグは常に間違った言語になります。

en_USとは異なるリクエスト言語を使用するようにFacebookに指示する方法はありますか?

私は試した:

<meta property="og:locale" content="de_DE" />

ただし、これによって要求された言語も変更されません。

正しいi18nを入手するにはどうすればよいですか?

4

1 に答える 1

7

og:locale:alternateメタタグを設定すると、Facebookはロケールの値を持つgetパラメーターfb_localeを渡すことでページを再スクレープします。たとえば、サイトがhttp://mysite.com/share次の代替ロケールを提示している場合、次のようになります。

<html>
<head>
    <meta property="og:locale:alternate" content="fr_FR" />
    <meta property="og:locale:alternate" content="es_ES" />
    ...
</head>
    ...
</html> 

FacebookはあなたのサイトでこれらのURLを呼び出します。

http://mysite.com/share
http://mysite.com/share?fb_locale=fr_FR
http://mysite.com/share?fb_locale=es_ES

og:locale次に、コンテンツを正しくローカライズ(および設定)する必要があります。

Docはここにあります:https ://developers.facebook.com/docs/technical-guides/opengraph/internationalization/

于 2012-12-18T03:05:48.737 に答える