14

MVC6 で複数の言語のリソース ファイルを実装する最善の方法について頭を悩ませようとしてきましたが、リリースごとの変更により、実際にそれらを適切に実装する方法について少し混乱しています。何が必要で、どのような制約がありますか?

私が見たいくつかの記事:

https://damienbod.com/2015/10/21/asp-net-5-mvc-6-localization/

MVC 6 : RESX ファイルの使用方法は?

http://pratikvasani.github.io/archive/2015/12/25/MVC-6-localization-how-to/

ユーザーが英語とドイツ語を使用できるようにリソース ファイルを設定しようとしています。これは、ブラウザの設定またはアカウント内の個人設定に基づいています。

これを達成する最良の方法は何ですか?

前もって感謝します!

編集:

記事に従って、次のコードを Startup.cs に追加しました。

        services.AddLocalization(options =>
                options.ResourcesPath = "Resources");
        services.AddMvc()
                .AddViewLocalization(Microsoft.AspNet.Mvc.Razor.LanguageViewLocationExpanderFormat.Suffix)
                .AddDataAnnotationsLocalization();

        var supportedCultures = new[]
        {
            new CultureInfo("de-DE"),
            new CultureInfo("en-US")
        };

        //Set Default Localization Culture
        app.UseRequestLocalization(new RequestLocalizationOptions
        {
            SupportedCultures = supportedCultures,
            SupportedUICultures = supportedCultures
        }, new RequestCulture(new CultureInfo("en-US")));

次に、Resources フォルダー内に、次のファイル名で新しい resx ファイルを作成しました。

  • "Views.Shared._LocalizationTest.en-US.resx"

  • "Views.Shared._LocalizationTest.de-DE.resx"

そして、私の部分的なビューは次のようになります。

@using Microsoft.AspNet.Localization
@using Microsoft.AspNet.Mvc.Localization
@inject IViewLocalizer Localizer

<div>
     @Localizer["TestString"]
</div>

英語の「テスト文字列」または「ドイツ語:テスト文字列」(リソースファイルによる)の代わりに「TestString」を表示しているため、まだ何かが足りないようです。

何か案は?

4

1 に答える 1

2

ASP.NET コアの既定のアプローチでは、リソース ファイルに既定の言語文字列を含めず、コードでラップするだけですしたがって、ローカライザーでラップされた英語の文字列を使用してアプリを作成し、ドイツ語のリソース ファイルを 1 つ持つことができます。私の記事を参照してくださいhttps://docs.microsoft.com/aspnet/core/fundamentals/localization

于 2016-04-21T22:02:43.267 に答える