در حالت کلی همانطور که عنوان شد، برای تغییر فرهنگ ترد جاری از یکی از سه روش کوکی، کوئری استرینگ و هدر زبان استفاده میشود. این سه تامین کننده، تامین کنندههای پیش فرض هستند.
اگر میخواهید برای مثال از روش کوکی ذکر شده (در متد public IActionResult SetFaLanguage ابتدای بحث) استفاده نکنید، میتوان تامین کنندهی چهارمی را هم تدارک دید:
و بعد آنرا به ابتدای لیست تامین کنندهها (insert 0 ذیل) اضافه کرد:
به این صورت فرهنگ پیش فرض ترد جاری به fa-IR استاندارد تنظیم میشود. برای حالت غیر استاندارد از همان اکشن فیلتر استفاده کنید.
اگر میخواهید برای مثال از روش کوکی ذکر شده (در متد public IActionResult SetFaLanguage ابتدای بحث) استفاده نکنید، میتوان تامین کنندهی چهارمی را هم تدارک دید:
public class FaRequestCultureProvider : RequestCultureProvider { public override Task<ProviderCultureResult> DetermineProviderCultureResult(HttpContext httpContext) { return Task.FromResult(new ProviderCultureResult("fa-IR")); } }
public void Configure(IApplicationBuilder app) { var requestLocalizationOptions = new RequestLocalizationOptions { DefaultRequestCulture = new RequestCulture(new CultureInfo("fa-IR")), SupportedCultures = new[] { new CultureInfo("en-US"), new CultureInfo("fa-IR") }, SupportedUICultures = new[] { new CultureInfo("en-US"), new CultureInfo("fa-IR") } }; requestLocalizationOptions.RequestCultureProviders.Insert(0, new FaRequestCultureProvider()); app.UseRequestLocalization(requestLocalizationOptions);