ユーザーが選択した言語を追跡する最良の方法は何ですか?
a) 言語設定をセッション変数または Cookie に保存する
b) ブラウザーが送信する HTTP ヘッダーから優先言語 (ロケール) を読み取る
c) アプリケーション内のすべてのリンクの URL に言語を追加する
ユーザーが選択した言語を追跡する最良の方法は何ですか?
a) 言語設定をセッション変数または Cookie に保存する
b) ブラウザーが送信する HTTP ヘッダーから優先言語 (ロケール) を読み取る
c) アプリケーション内のすべてのリンクの URL に言語を追加する
次のことをお勧めします。
3つのオプションすべて。
新規ユーザーの場合は、ヘッダーからロケールを読み取り、Cookieに書き込みます。ユーザーが好みの言語を変更した場合は、Cookieでその言語を変更して、目的のサイトにリダイレクトするだけです。
B&Cを使用するだけの場合、ユーザーは優先言語を変更できません(少なくとも、どこにも保存されないため、訪問するたびに変更する必要があります)。
d) 地域設定をユーザー プロファイルに保存します。
もちろん、これにはプロファイルとパスワードを用意するという負担がすべて必要になりますが、Web アプリケーションのコンテキストではこれが最適です。
これは、HTTP Accept-Language ヘッダーの内容に基づいてログイン ページを提供し、ユーザーがプロファイルで選択した言語を使用する必要があることも意味します。地域設定ページは、Accept-Language リストから最初にサポートされている言語にデフォルト設定する必要があります (ユーザーが既に問題がない場合は選択をスキップできるようにするため)。
これが最善の選択肢であるかどうかまだ疑問がある場合は、地域設定ページに次のような大量の情報が保存されている可能性があることに注意してください。
Web ブラウザはこれらの情報を送信しないため、これらの多くは単純に検出できないか、ほとんど検出できません。また、ユーザーの要求に応じて設定を柔軟に追加できます (つまり、一部のユーザーは 12 時間形式よりも 24 時間形式を好む場合があります)。
このような場合、追跡する必要があるのはユーザー セッションです。これらのプリファレンスをユーザー セッション オブジェクトに設定すると、ロケールに依存するクラスで簡単に使用できるようになります。
B&C
最初にブラウザーのヘッダーから優先言語を読み取り、次に適切な URL にリダイレクトします。
こうすることで、同じ URL のコンテンツが異なることがなくなり、ユーザーと検索エンジンを混乱させることがなくなります。