Multilingual localization of form validation
499105097 opened this issue · comments
隔壁老张 commented
Is there a solution for multilingual localization of form validation? When I was using form validation, I couldn't do multiple languages inside the model
James Yeung commented
Thanks for contacting us @499105097 , you can use the DataAnnotations localization:
<Form Model="@model"
OnFinish="OnFinish"
OnFinishFailed="OnFinishFailed"
LabelColSpan="8"
WrapperColSpan="16">
<FormItem>
<Input @bind-Value="@context.Username" />
</FormItem>
<FormItem>
<InputPassword @bind-Value="@context.Password" />
</FormItem>
<FormItem WrapperColOffset="8" WrapperColSpan="16">
<Checkbox @bind-Value="context.RememberMe">Remember me</Checkbox>
</FormItem>
<FormItem WrapperColOffset="8" WrapperColSpan="16">
<Button Type="@ButtonType.Primary" HtmlType="submit">
Submit
</Button>
</FormItem>
</Form>
@code
{
public class Model
{
[Required(ErrorMessageResourceName = nameof(Resources.App.UserNameValidation), ErrorMessageResourceType = typeof(Resources.App))]
[Display(Name = nameof(Resources.App.UserName), ResourceType = typeof(Resources.App))]
public string Username { get; set; }
[Required(ErrorMessageResourceName = nameof(Resources.App.PasswordValidation), ErrorMessageResourceType = typeof(Resources.App))]
[Display(Name = nameof(Resources.App.Password), ResourceType = typeof(Resources.App))]
public string Password { get; set; }
public bool RememberMe { get; set; } = true;
}
private Model model = new Model();
private void OnFinish(EditContext editContext)
{
Console.WriteLine($"Success:{JsonSerializer.Serialize(model)}");
}
private void OnFinishFailed(EditContext editContext)
{
Console.WriteLine($"Failed:{JsonSerializer.Serialize(model)}");
}
}
隔壁老张 commented
Thanks for contacting us @499105097 , you can use the DataAnnotations localization:
<Form Model="@model" OnFinish="OnFinish" OnFinishFailed="OnFinishFailed" LabelColSpan="8" WrapperColSpan="16"> <FormItem> <Input @bind-Value="@context.Username" /> </FormItem> <FormItem> <InputPassword @bind-Value="@context.Password" /> </FormItem> <FormItem WrapperColOffset="8" WrapperColSpan="16"> <Checkbox @bind-Value="context.RememberMe">Remember me</Checkbox> </FormItem> <FormItem WrapperColOffset="8" WrapperColSpan="16"> <Button Type="@ButtonType.Primary" HtmlType="submit"> Submit </Button> </FormItem> </Form> @code { public class Model { [Required(ErrorMessageResourceName = nameof(Resources.App.UserNameValidation), ErrorMessageResourceType = typeof(Resources.App))] [Display(Name = nameof(Resources.App.UserName), ResourceType = typeof(Resources.App))] public string Username { get; set; } [Required(ErrorMessageResourceName = nameof(Resources.App.PasswordValidation), ErrorMessageResourceType = typeof(Resources.App))] [Display(Name = nameof(Resources.App.Password), ResourceType = typeof(Resources.App))] public string Password { get; set; } public bool RememberMe { get; set; } = true; } private Model model = new Model(); private void OnFinish(EditContext editContext) { Console.WriteLine($"Success:{JsonSerializer.Serialize(model)}"); } private void OnFinishFailed(EditContext editContext) { Console.WriteLine($"Failed:{JsonSerializer.Serialize(model)}"); } }
Function implemented, thank you