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文字列をチェックするのではなく、ルート値を読み取る可能性を持っています。