多区域项目中特定区域的多文化
Posted
技术标签:
【中文标题】多区域项目中特定区域的多文化【英文标题】:multi cultures for specific one area in multi area project 【发布时间】:2021-06-29 07:02:07 【问题描述】:我有一个项目,它有多个领域 我只想在一个领域应用文化。我使用文化,但这对另一个领域有副作用你有解决问题的想法吗
例如:将 ajax 请求中的 double 转换为字符串 更改了其他区域的货币类型
【问题讨论】:
【参考方案1】:您可以根据特定区域的路线根据要求手动设置文化:
public class CustomRouteDataRequestCultureProvider : RequestCultureProvider
public int IndexOfCulture;
public override Task<ProviderCultureResult> DetermineProviderCultureResult(HttpContext httpContext)
if (httpContext == null)
throw new ArgumentNullException(nameof(httpContext));
ProviderCultureResult providerResultCulture;
if (httpContext.Request.Path.Value.Contains("your-area-path"))
providerResultCulture = new ProviderCultureResult("en");
else
providerResultCulture = new ProviderCultureResult("fa");
return Task.FromResult(providerResultCulture);
在 Startup 类中:
services.Configure<RequestLocalizationOptions>(options =>
var supportedCultures = new CultureInfo[]
new CultureInfo("fa"),
new CultureInfo("en")
;
options.DefaultRequestCulture = new RequestCulture("fa");
options.SupportedCultures = supportedCultures;
options.SupportedUICultures = supportedCultures;
options.RequestCultureProviders = new[] new CustomRouteDataRequestCultureProvider IndexOfCulture = 0 ;
);
【讨论】:
以上是关于多区域项目中特定区域的多文化的主要内容,如果未能解决你的问题,请参考以下文章