嗨,我有一个关于SharedResources文件的问题。它在这里教程浏览:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization,我不知道如果我得到它正确。借助SharedResources进行ASP.NET核心本地化
我应该创建一个SharedResources.cs
类,但在那里我应该把它和它应该是空的,或者我需要一些数据来填补呢?
同样的资源文件,我应该创建一个SharedResources.da.resx
文件并将所有我的共享字符串?它应该去哪里?
而当我使用IHtmlLocalizer<SharedResources>
时,我是否只写@using
并将其指向SharedResources.cs
所在的命名空间?
我尝试将SharedResources.cs
和SharedResources.da.resx
放在Resources文件夹中,并用它将网站语言更改为丹麦语,但它不起作用。使用专门的资源文件,如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>
...
在ConfigureServices的顶部Startup.cs:
services.AddLocalization(options => options.ResourcesPath = "Resources");
services.AddMvc()
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
.AddDataAnnotationsLocalization();
在顶部在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
});
资源文件夹包含名为Shared.cs
和Shared.da.resx
的空类,其中包含共享字符串。我是否需要将其名称更改为SharedResources.cs
和SharedResources.da.resx
?
你是天才! – Max
好,谢谢。我很高兴能够提供帮助。 –
嗨,你有没有Github的例子? – sintetico82