Hi I have a question about the SharedResources file. It is glanced over in the tutorial here: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization, and I'm not sure if I get it correctly.
I am supposed to create a SharedResources.cs
class, but where should i put it and should it be empty or do I need to fill it with some data?
Same goes for the resource file, should I create a SharedResources.da.resx
file and put all my shared strings there? Where should it go?
And when I use IHtmlLocalizer<SharedResources>
do I just write @using
and point it to the namespace where SharedResources.cs
resides?
I tried putting SharedResources.cs
and SharedResources.da.resx
in the Resources folder and use it to change website language to Danish, but it does not work. Using dedicated Resource file like Index.da.resx
and IViewLocalizer
works fine, but IHtmlLocalizer<SharedResources>
does not seem to work.
When I looked at the example project linked to at the bottom of the page I didn't find any place where SharedResources is used, it would be great if somebody updated it with an example of that.
Here's how I tried to do it:
Views/Home/Index.cshtml:
@using Funkipedia.Resources
@using Microsoft.AspNetCore.Mvc.Localization
@inject IHtmlLocalizer<Shared> SharedLocalizer
...
<p>@SharedLocalizer["Hei"]</p>
...
At top of ConfigureServices in Startup.cs:
services.AddLocalization(options => options.ResourcesPath = "Resources");
services.AddMvc()
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
.AddDataAnnotationsLocalization();
At top of Configure in Startup.cs:
var supportedCultures = new List<CultureInfo>
{
new CultureInfo("nb-NO"),
new CultureInfo("sv-SE"),
new CultureInfo("da-DK")
};
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("nb-NO"),
SupportedCultures = supportedCultures,
SupportedUICultures = supportedCultures
});
Resources folder contains empty class called Shared.cs
and Shared.da.resx
which contains shared strings. Do I maybe need to change the name of it to SharedResources.cs
and SharedResources.da.resx
?