ant-design-blazor / ant-design-blazor

🌈A set of enterprise-class UI components based on Ant Design and Blazor WebAssembly.

Home Page:https://antblazor.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Multilingual localization of form validation

499105097 opened this issue · comments

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

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)}");
    }
}

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