【发布时间】:2020-04-24 11:30:56
【问题描述】:
我在 .net 核心中添加了验证消息的代码。每次为消息加载默认文件时。
我添加了如下资源文件 1. 资源.resx 2.Resource.de.resx
每次从第一个默认文件加载消息时,默认情况下我都将文化设置为“DE”。
ViewModel
[Required(ErrorMessageResourceName = "the_first_name_field_is_required", ErrorMessageResourceType = typeof(OneView.Library.Resources.Resource))]
[Display(Name = "First Name")]
public string FirstName { get; set; }
[Required(ErrorMessageResourceName = "the_last_name_field_is_required", ErrorMessageResourceType = typeof(OneView.Library.Resources.Resource))]
[Display(Name = "Last Name")]
public string LastName { get; set; }
**************************************************************************
public void ConfigureServices(IServiceCollection services)
{ services.AddLocalization(o =>
{
o.ResourcesPath = "Resources";
});
services.AddMvc()
.AddViewLocalization(
LanguageViewLocationExpanderFormat.Suffix,
opts => { opts.ResourcesPath = "Resources"; })
.AddDataAnnotationsLocalization();
services.Configure<RequestLocalizationOptions>(
opts =>
{
var supportedCultures = new List<CultureInfo>
{
new CultureInfo("EN-US"),
new CultureInfo("de"),
};
opts.DefaultRequestCulture = new RequestCulture("de");
//// Formatting numbers, dates, etc.
opts.SupportedCultures = supportedCultures;
// UI strings that we have localized.
opts.SupportedUICultures = supportedCultures;
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
var options = app.ApplicationServices.GetService<IOptions<RequestLocalizationOptions>>();
app.UseRequestLocalization(options.Value);
}
【问题讨论】:
标签: asp.net asp.net-mvc asp.net-core