Как перевести сообщения проверки пароля личностиC#

Место общения программистов C#
Ответить
Anonymous
 Как перевести сообщения проверки пароля личности

Сообщение Anonymous »

На данный момент мне удалось перевести все в веб-приложении ASP.Net Core 2.1.

Это оказалось небольшой проблемой, поскольку созданные страницы учетной записи требовали небольшой настройки.

Но чего я не могу найти, так это способа перевода сообщений проверки пароля. Кроме того, перевод сообщений привязки модели оказался небольшой проблемой (спасибо stackoverflow).

Есть идеи?

Я включаю соответствующие части моего файла Startup.cs:

Код: Выделить всё

public void ConfigureServices(IServiceCollection services)
{
...

services.AddMvc(options =>
{
var type = typeof(SharedResources);
var assemblyName = new AssemblyName(type.GetTypeInfo().Assembly.FullName);
var factory = services.BuildServiceProvider().GetService();
var L = factory.Create("SharedResources", assemblyName.Name);

options.ModelBindingMessageProvider.SetValueIsInvalidAccessor(x => L["The value '{0}' is invalid.", x]);
options.ModelBindingMessageProvider.SetValueMustNotBeNullAccessor(x => L["The value '{0}' is invalid.", x]);
options.ModelBindingMessageProvider.SetValueMustBeANumberAccessor(x => L["The field {0} must be a number.", x]);
options.ModelBindingMessageProvider.SetMissingBindRequiredValueAccessor(x => L["A value for the '{0}' property was not provided.", x]);
options.ModelBindingMessageProvider.SetAttemptedValueIsInvalidAccessor((x, y) => L["The value '{0}' is not valid for {1}.", x, y]);
options.ModelBindingMessageProvider.SetMissingKeyOrValueAccessor(() => L["A value is required."]);
options.ModelBindingMessageProvider.SetUnknownValueIsInvalidAccessor(x => L["The supplied value is invalid for {0}.", x]);
options.ModelBindingMessageProvider.SetMissingRequestBodyRequiredValueAccessor(() => L["A non-empty request body is required."]);
options.ModelBindingMessageProvider.SetNonPropertyAttemptedValueIsInvalidAccessor(x => L["The value '{0}' is not valid.", x]);
options.ModelBindingMessageProvider.SetNonPropertyUnknownValueIsInvalidAccessor(() => L["The supplied value is invalid."]);
options.ModelBindingMessageProvider.SetNonPropertyValueMustBeANumberAccessor(() => L["NonPropertyValueMustBeNumber"]);
})
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
.AddDataAnnotationsLocalization(options =>
{
options.DataAnnotationLocalizerProvider = (type, factory) =>
{
// This is for Account scaffolded pages data annotations
return factory.Create(typeof(SharedResources));
};
});

...

}
Я не могу поместить что-то подобное в InputModel Register.cshtml.cs, потому что сообщение ErrorMessage игнорируется (и я все равно не буду этого делать, так как не хочу жестко запрограммировать описание политики паролей):

Код: Выделить всё

        [Required(ErrorMessage = "The {0} field is required.")]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} and at max {1} characters long.", MinimumLength = 6)]
[DataType(DataType.Password, ErrorMessage = "Password must be nice")]
[Display(Name = "Password")]
public string Password { get; set; }
Изображение


Подробнее здесь: https://stackoverflow.com/questions/535 ... n-messages
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»