Nik*_*ias 7 c# asp.net asp.net-mvc localization
在我的 Startup.cs 中,我添加了两种文化:
var cultureLt = new CultureInfo("LT");
var cultureEn = new CultureInfo("EN");
var supportedCultures = new List<CultureInfo> {cultureEn, cultureLt};
var requestLocalizationOptions = new RequestLocalizationOptions();
requestLocalizationOptions.RequestCultureProviders.Insert(0, new CustomRequestCultureProvider());
requestLocalizationOptions.SupportedCultures = supportedCultures;
requestLocalizationOptions.SupportedUICultures = supportedCultures;
app.UseRequestLocalization(requestLocalizationOptions);
Run Code Online (Sandbox Code Playgroud)
我需要在构造函数中获取这个列表,现在在构造函数控制器中我初始化了变量
private readonly IOptions<RequestLocalizationOptions> _locOptions;
Run Code Online (Sandbox Code Playgroud)
在行动中,我试图得到这样的列表:
var cultureItems = _locOptions.Value.SupportedUICultures
.Select(c => new SelectListItem { Value = c.Name, Text = c.DisplayName })
.ToList();
Run Code Online (Sandbox Code Playgroud)
但问题是这一行只返回当前在应用程序中设置的文化......如何同时获得 EN 和 LT 文化?
您必须配置 RequestLocalizationOptions。
public void ConfigureServices(IServiceCollection services)
{
// ... enter code here
// RequestLocalizationOptions must to be configured
var cultureLt = new CultureInfo("LT");
var cultureEn = new CultureInfo("EN");
var supportedCultures = new[] { cultureEn, cultureLt };
services.Configure<RequestLocalizationOptions>(options =>
{
options.SupportedCultures = supportedCultures;
options.SupportedUICultures = supportedCultures;
});
// Add them to IServiceCollection
services.AddLocalization();
// ... enter code here
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
// ... enter code here
// add RequestLocalizationMiddleware to pipeline
app.UseRequestLocalization();
app.UseMvc...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2970 次 |
| 最近记录: |