2

良いローカライゼーションの方法を実装し、ルートパラメータをどのように読み出すかを理解する必要があります。asp.netコア1.0.0のルート値を読み取る

Startup.cs では、すべての場合

// Configure supported cultures and localization options 
services.Configure<RequestLocalizationOptions>(options => 
{ 
    var supportedCultures = new[] { new CultureInfo("en-US"), new CultureInfo("de-DE") }; 
    options.DefaultRequestCulture = new RequestCulture("en-US", "en-US"); 

    options.SupportedCultures = supportedCultures; 
    options.SupportedUICultures = supportedCultures; 

    options.RequestCultureProviders.Insert(0, new CustomRequestCultureProvider(context => 
    { 
    var cultureInfo = options.DefaultRequestCulture.Culture; 

    string contextRequestUrlPath = context.Request.Path.ToString(); 
    foreach (var c in supportedCultures) 
     if (contextRequestUrlPath.Contains(c.ToString())) cultureInfo = c; 

    return Task.FromResult(new ProviderCultureResult(cultureInfo.ToString())); 
    })); 
}); 

はstring.Contains()を経由して私のCustomRequestCultureProviderチェックを要求するカルチャ情報は、内部で、更新した場合、次のようにまず第一に、私は、ローカライズを実装しましたProviderCultureResult。そのような

そして、IAMルーティング:

app.UseMvc(
    routes => { routes.MapRoute(name: "default", template: "{culture=en-US}/{controller=Home}/{action=Index}/{id?}"); }); 

現在のルートから文化テンプレート要素を読み出すための方法はありますか?プロジェクトのいくつかの点でこれを確認する必要があります。また、私はcontext.Request.Path文字列をチェックするのではなく、ルート値を読み取る可能性を持っています。

答えて

0

は、コントローラ内のどこにでも試してみてください。

var requestCultureFeature = HttpContext.Features.Get<IRequestCultureFeature>(); 
var culture = requestCultureFeature.RequestCulture.Culture; 
関連する問題