MVC アプリケーションでリソース (.resx) メッセージのローカリゼーションを実装する必要がありますが、実装に失敗しています。
私が従っている手順を確認します。
1.ローカリゼーション プロジェクトを作成し、サポートする必要がある言語と同じ数のリソース (.resx) ファイルを追加します。選択したすべての言語で、表示するメッセージを追加します。Visual Studio の「アクセス修飾子」オプションで「パブリック」を選択します。必要な規則に従ってリソース ファイルに名前を付けることを確認してください。つまり、既定の言語の場合は MyResource.resx、フランス語のローカライズの場合は MyResource-fr.resx、ルーマニア語のローカライズの場合は MyResource.ro などです。
2. http 要求から Accept-Language http ヘッダーを検出して解析します。存在する場合は常に、「q」係数が最も高いものを選択します。何も存在しないか、すべての q 値が同じである場合は、受け入れられる最初の言語を選択します。
(更新: web.configに追加してもまったく同じことが行われるため、手作業は必要ないことを知りました(@ Zealousコメントを参照)。<globalization enableClientBasedCulture="true" culture="auto" uiCulture="auto"/>
3.アプリケーションコントローラーがベースコントローラーから継承するようにします(フィルターを介して行うこともできます)。これにより、Thread.CurrentThread.CurrentCultureおよびThread.CurrentThread.CurrentUICultureの参照が、最も優先度の高いものに従って、その場で作成された新しいインスタンスに変更されます。前のステップから抽出された、受け入れられた言語。
4.上記の手順で作成したローカリゼーション プロジェクトへの参照を、メッセージを参照する必要があるプロジェクトに追加します。メッセージを参照する場合は、表示したいメッセージをリソースのデフォルト ファイル名「ドット」で参照するだけです。この例では、MyResource.Welcome になります。
期待される結果: Accept-Language を 'fr' に設定して http リクエストを送信すると、"Bienvenue" を含む応答を受け取りますが、Accept-Language を 'en' に設定する (またはいくつかの言語を追加して q ファクターをいじる) と、 「いらっしゃいませ」と返事。
どういうわけか、私の回答は常にデフォルトのリソース ファイル (この場合は英語) を使用しています。
私は何が欠けているか、間違っていますか?