私はノルウェーのウェブサイトを構築しています。ほとんどのスカンジナビア人はノルウェー語を読むことができるので、これがデフォルト言語になります。 (私は、* .resxはノルウェー語です。)フィンランドと英国の訪問者のみ、私は別々のリソース(* .fi.resxと* .en.resx)を作成します。ASP.NET国際化はデフォルトの言語ファイルの代わりに英語に戻ります
しかし、私の大きなショックでは、フィンランド以外のすべての訪問者は、の英語のテキストを見ている!私はこれを自分自身でテストしています。さまざまなウェブブラウザー(Internet Explorer、Firefox、Chrome、Opera)で問題を再現し、さまざまな言語設定を試して、英語がではなくであることを確認できます。
フォールバックリソースファイル(* .resx)がロードされないのはなぜですか?ドキュメント(http://msdn.microsoft.com/en-us/library/ms227427.aspx)によれば、フォールバックファイルは、指定された言語で使用可能な言語ファイルがない場合に読み込まれる必要があります。
あなたには、いくつかのデバッグを行うと(MVCを使用している場合か、あなたのコントローラに)あなたのPage_Loadで 'Thread.CurrentThread.CurrentUICulture'の値をチェックすると、あなたは何を見ていますか? ASP.NETが英語の文化を選択したように聞こえるので、英語のリソースが存在するため、リソースのフォールバックは得られません。 – Clafou
@Peter:正確に使用しているテクノロジは何ですか?プレーンAsp.NetまたはAsp.Net MVC?どのバージョン(例えば.Net Frameworkの)?私は間違った設定やuiCultureの割り当ての不足を疑うだろう(単純にAsp.Netで 'uiCulture =" auto:no "'を試してみる)。 –
私はプレーンなASP.NET(App_LocalResourcesのリソースファイルを含む)、バージョン4.0を使用しています。 CurrentCultureとCurrentUICultureをチェックすると、カルチャとして "nb-no"と "nb"を返し、 "en-US"と "en"を返します。 )。しかし、不明瞭な言語(Afar [aa]など)を使用すると、VSの開発サーバーでIIS 7.5で "nb-NO"と "no"を返し、CurrentCultureに "nb-NO"を返し、 CurrentUICultureのための "US"(!)それでも、すべての場合に.en.resxリソースファイルが使用されます。 – Peter