您好我有关于SharedResources文件的问题.在这里的教程中看了一眼:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization,我不确定我是否正确使用它.
我应该创建一个SharedResources.cs类,但是我应该把它放在哪里,如果它是空的,或者我需要填充一些数据吗?
资源文件也一样,我应该创建一个SharedResources.da.resx文件并将所有共享字符串放在那里吗?它应该去哪里?
当我使用时IHtmlLocalizer<SharedResources>,我只是编写@using并将其指向SharedResources.cs存在的命名空间?
我试图把SharedResources.cs和SharedResources.da.resx在资源文件夹,并用它来更改网站语言以丹麦,但它不工作.使用专用的资源文件,Index.da.resx并且IViewLocalizer工作正常,但IHtmlLocalizer<SharedResources>似乎不起作用.
当我查看链接到页面底部的示例项目时,我没有找到使用SharedResources的任何地方,如果有人用它的一个例子更新它会很棒.
这是我试图这样做的方式:
查看/主页/ Index.cshtml:
@using Funkipedia.Resources
@using Microsoft.AspNetCore.Mvc.Localization
@inject IHtmlLocalizer<Shared> SharedLocalizer
...
<p>@SharedLocalizer["Hei"]</p>
...
Run Code Online (Sandbox Code Playgroud)
在Startup.cs中的ConfigureServices顶部:
services.AddLocalization(options => options.ResourcesPath = "Resources");
services.AddMvc()
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
.AddDataAnnotationsLocalization();
Run Code Online (Sandbox Code Playgroud)
在Startup.cs中的Configure顶部:
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
});
Run Code Online (Sandbox Code Playgroud)
Resources文件夹包含调用的空类Shared.cs …
asp.net asp.net-core asp.net-core-localization asp.net-core-middleware