チュートリアル: ローカリゼーションとコンテンツ翻訳の構成

Version: 22.x
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

大事な

September 2024より前にASP.NET Coreアプリを統合した場合は、従来の ASP.NET CoreレンダリングSDKバージョン22以前が使用されています。このSDKは更新プログラムを受け取らなくなったため、新しい ASP.NET Core SDKの最新バージョンにアップグレードすることをお勧めします。

Sitecoreレンダリング エンジンSDKは、ASP.NET Coreと同様に、グローバリゼーションとローカリゼーションをサポートします。

グローバリゼーションとローカリゼーションの詳細については、公式のMicrosoft ASP.NET Coreドキュメントを参照してください。

レンダリング エンジンSDKを使用して構築された .NET Coreレンダリング ホスト アプリケーションにグローバリゼーションとローカリゼーションを追加するには、最小限の構成が必要です。この構成の大部分は、レンダリング ホスト アプリケーションのStartupクラスで行われます。

Startupクラスの詳細については、ASP.NET CoreドキュメントのMicrosoftアプリの起動に関する公式のドキュメントを参照してください。

このチュートリアルでは、次の方法について説明します。

ローカライゼーションを構成する

まず、ローカリゼーションを使用するようにレンダリングエンジンを設定する必要があります。

  • 次のコードをStartup.csクラスに追加します。

    RequestResponse
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddLocalization(options => options.ResourcesPath = "Resources");
    
        services.AddSitecoreRenderingEngine(options =>
        {
            options.AddPartialView("Sample-Layout", "_SampleLayout")
                   .AddDefaultPartialView("_ComponentNotFound");
        });
    }

ローカライゼーションミドルウェアの設定

要求の現在のカルチャは、ローカリゼーション ミドルウェアで設定されます。

ローカライゼーションミドルウェアを設定するには:

  1. Startup.csクラスのConfigureメソッドで、callapp.UseRequestLocalization(options =>{}).

    RequestResponse
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        app.UseRouting();
        app.UseStaticFiles();
        app.UseRequestLocalization(options =>
        {
            var supportedCultures = new List<CultureInfo> { new CultureInfo("en"), new CultureInfo("da"), new CultureInfo("da-DK") };
            options.DefaultRequestCulture = new RequestCulture(culture: "da", uiCulture: "da");
            options.SupportedCultures = supportedCultures;
            options.SupportedUICultures = supportedCultures;
            options.UseSitecoreRequestLocalization();
        });
        app.UseSitecoreRenderingEngine();
    }
    メモ

    UseSitecoreRequestLocalization() メソッドを使用すると、カルチャはsc_langクエリ文字列とルート データ (en-usなど) のカルチャ トークンの両方から解決できます。

    UseRequestLocalizationメソッドを呼び出さない場合は、WithDefaultRequestOptionsメソッドで指定された言語が代わりに使用されます。

  2. Startup.csでは、Configureメソッドのapp.UseEndpoints(endpoints =>{}) 呼び出しで、以下を追加してエンドポイントを設定し、ローカライズされたルートを追加します。

    RequestResponse
    app.UseEndpoints(endpoints =>
        {
            endpoints.AddLocalizedRoute("Localized", "Index", "Sitecore");
            endpoints.MapFallbackToController("Index", "Sitecore");
        });

    AddLocalizedRouteメソッドは、ルート名、デフォルトアクション、およびコントローラー名の3つのパラメーターを受け入れます。これは、次のパターンを使用してコントローラーのルートをマップします。

    RequestResponse
    /{culture:culture}/{**sitecoreRoute}

    カスタム ルーティングが必要な場合は、HttpRequestオブジェクトのRouteValuesコレクションでcultureルート値とsitecoreRouteルート値を見つけることができます。「ASP.NET Coreでのルーティング」を参照してください。

構成方法の概要

次に、ローカライゼーション ミドルウェアを設定した後のStartup.csのfull Configureメソッドの例を示します。

RequestResponse
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseRouting();
    app.UseStaticFiles();
    app.UseRequestLocalization(options =>
    {
        var supportedCultures = new List<CultureInfo> { new CultureInfo("en"), new CultureInfo("da"), new CultureInfo("da-DK") };
        options.DefaultRequestCulture = new RequestCulture(culture: "da", uiCulture: "da");
        options.SupportedCultures = supportedCultures;
        options.SupportedUICultures = supportedCultures;
        options.UseSitecoreRequestLocalization();
    });
    app.UseSitecoreRenderingEngine();

    app.UseEndpoints(endpoints =>
    {
        endpoints.AddLocalizedRoute("Localized", "Index", "Sitecore");
        endpoints.MapFallbackToController("Index", "Sitecore");
    });
}
手記

ローカリゼーションが有効になっているレンダリングホストの実例については、入門テンプレート を参照してください。

何かフィードバックはありますか?

この記事を改善するための提案がある場合は、