/Toolbelt.Blazor.LocalizedDataAnnotationsValidator

The Data Annotations Validator Component for Blazor to localize validation error messages, based on "Microsoft.Extensions.Localization".

Primary LanguageC#Apache License 2.0Apache-2.0

Localized Data Annotations Validator Component for Blazor NuGet Package

Summary

This is the Data Annotations Validator Component for Blazor to localize the validation error messages, based on Microsoft.Extensions.Localization.

Live Demo - https://demo-blazor-localized-data-annotations-validator.azurewebsites.net/

fig1

[NOTICE]

This component will works fine on "Server-side Blazor", not "Client-side Blazor" at this time.

The supporting of Microsoft.Extensions.Localization based localization on Client-side Blazor is weak, therefore it will need some hacks. (see also: https://dev.to/5argon/comment/gdch)

Another way, "Blazor I18n Text" service will work fine on both Server-side Blazor and Client-side Blazor. However, it is not integrated Microsoft.Extensions.Localization based localization at this time.

How to use?

Step 1. Setup "IStringLocalizer" infrastructure on your Blazor app

See also:

Of course, you should create resource files (.resx) for data annotation validation error messages, too.

fig.2

Step 2. Install this package

Like this:

> dotnet add package Toolbelt.Blazor.LocalizedDataAnnotationsValidator

Step3. Replace the data annotations validator component

Rewrite the implementation of the validation on your app.

At first, open the "Toolbelt.Blazor.Forms" namespace, in the _Imports.razor.

...
@using Toolbelt.Blazor.Forms

Next, replace the DataAnnotationsValidator to LocalizedDataAnnotationsValidator.

For example, in your .razor file, rewrite it from:

<EditForm Model="..." ...>
  <DataAnnotationsValidator />
  ...

to:

<EditForm Model="..." ...>
  <!-- �« Replace this component! -->
  <LocalizedDataAnnotationsValidator />
  ...

That's all!

Sample Source Code

You can get the source code of Live Demo site from this repository.

Release Note

  • v.1.0.1
    • Fix: concurrent access problem
    • Change license from MPL-2.0 to Apache-2.0
  • v.1.0.0. - Initial release.

License

Apache License Version 2.0