相关疑难解决方法(0)

借助SharedResources进行ASP.NET核心本地化

您好我有关于SharedResources文件的问题.在这里的教程中看了一眼:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization,我不确定我是否正确使用它.

我应该创建一个SharedResources.cs类,但是我应该把它放在哪里,如果它是空的,或者我需要填充一些数据吗?

资源文件也一样,我应该创建一个SharedResources.da.resx文件并将所有共享字符串放在那里吗?它应该去哪里?

当我使用时IHtmlLocalizer<SharedResources>,我只是编写@using并将其指向SharedResources.cs存在的命名空间?

我试图把SharedResources.csSharedResources.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

32
推荐指数
3
解决办法
1万
查看次数