This article shows how to work with localized strings in your app by following these steps:
1. Create a resources folder and add a resource file per language:
2. Create a dummy class with that name under project default
namespace:
services.AddLocalization(o => o.ResourcesPath = "Resources");
and for model binding error message localization:
services.AddControllers() .AddDataAnnotationsLocalization(o => { o.DataAnnotationLocalizerProvider = (type, factory) => { return factory.Create(typeof(StringResource)); }; });
var supportedCultures = new[] { new CultureInfo("en-US"), new CultureInfo("he-IL"), };
services.Configure<RequestLocalizationOptions>(options => { options.DefaultRequestCulture = new RequestCulture("he-IL"); options.SupportedCultures = supportedCultures; options.SupportedUICultures = supportedCultures; options.RequestCultureProviders = new List<IRequestCultureProvider> { new QueryStringRequestCultureProvider(), new CookieRequestCultureProvider(), new AcceptLanguageHeaderRequestCultureProvider() }; });
4. Add middleware:
app.UseRequestLocalization();
before everything else.
5. Inject into controllers:
IStringLocalizer<StringResource> sharedLocalizer
6. Then use it like this: sharedLocalizer["MY_STRING"]
Or for model validation [Required(ErrorMessage="MY_STRING")]
Or for model validation [Required(ErrorMessage="MY_STRING")]
Tags
ASP .NET core