ASP.NETには、ブラウザの優先言語に基づいて正しい言語リソースファイルを自動的に読み込むためのビルドイン機能があります。ASP.NETローカリゼーションの2次言語のサポート
たとえば、訪問者の言語がデンマーク語(da)で、ウェブサイトに* .da.resxファイルがある場合、そのリソースが使用されます。優先リソースファイルが利用できない場合、ASP.NETは基本/既定リソースファイル(* .resx)にフォールバックします。
ブラウザでは、複数の優先言語を指定できるようになりました。訪問者がデンマーク語を話すが、ノルウェー語を第2言語としてブラウザ設定(ノルウェー語はデンマーク語と95%同一)に追加すると、ブラウザは「da、no; q = 0.9」をウェブサーバーに送信する。しかし、この第2言語はASP.NETでサポートされていないようです。 * .da.resxが利用できない場合、* .no.resxはロードされません。
第2言語をサポートする方法を知っている人はいますか?
ASP.NETは、第4メジャーリリースでも、そのような基本機能をサポートしていません。私は大きなバグを発見したと思うけど、私はそれを別の質問として提出するつもりだと思う。ビルドインの国際化サポートの代替案がありますか? – Peter
はい、私はなぜこのようにしたのでしょうか、なぜリストの最初の項目だけを見るのでしょうか?たぶん、ほとんどのユーザー(あなたのシナリオでさえ)は、そのリストを正しく設定できるほど精通していないことが分かったでしょうか?それはちょうど推測です。エンドユーザーとしては、とにかくサイトのどこかに言語セレクタが表示されることが予想されます。そのようなセレクタを公開する場合は、accept-languagesヘッダを見て、必要な選択ロジック(リストされているすべての言語を参照)を使用してデフォルト言語を選択するのは非常に簡単です。 – Clafou