嗨,我有一個關於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