ユーザーの選択を保持しながら言語と地域を提案する
利用可能な訪問者情報を使い、言語・地域・通貨の有用な初期候補を提示します。その後は、訪問時ごとに位置情報から再導出するのではなく、訪問者が明示的に選んだ内容を記憶してください。
優先順位の付け方
まず、訪問者自身が設定した明示的な保存済みの選択(クッキー、アカウント設定、クエリパラメータなど)を確認してください。明示的な選択が存在しない場合にのみIP由来の提案にフォールバックし、新しい/v1/geoの呼び出しが、訪問者が既に行った選択を上書きすることのないようにしてください。
IPの国とブラウザの言語は異なる
これらは異なる質問への答えであり、一致しないこともあります。カナダから接続しているフランス語話者の訪問者は、/v1/geoからcountry: "CA"という結果になる一方で、ブラウザのAccept-Languageヘッダー(locale.suggestedLocaleで使用)はすでに「fr」を反映している場合があります—countryだけから言語を推測するのではなく、レスポンス自身のlocale.suggestedLocaleと組み合わせて使用し、結果は提案であってリダイレクト先ではないものとして扱ってください。
ロケールと通貨のフィールド
geo.locale.suggestedLocale、measurementSystem、firstDayOfWeek、dateFormatは地域ごとの書式の初期設定を提供し、geo.currencyは初期候補となる通貨を提供します。これらはすべて国とリクエストヘッダーから導出された初期提案であり、検証済みの設定ではありません。
位置情報がない場合
locale、currency、countryはnullになる可能性があります—解決できないネットワークからのリクエストは推測値ではなくnullを返します。値が届くのを待ってページをブロックするのではなく、サイト自身の既定の言語と書式にフォールバックしてください。
言語URLを安定的でインデックス可能な状態に保つ
毎回自動的にリダイレクトするのではなく、目に見えるスイッチャーを提供してください。IPベースの永続的なリダイレクトは、検索エンジンにとっても、VPNやホテルのネットワークなど予期しないネットワークを利用する訪問者にとっても、その言語版を安定したURLで到達不能にしてしまいます。
これによって保証されないこと
IPから推定される国は、言語の好み、国籍、物理的な所在を証明するものではありません—旅行者、VPN利用者、共有された企業ネットワークは、いずれも訪問者が実際には結び付けていない場所に解決される可能性があります。すべての提案を可逆的なものとして扱ってください。