3
我想實現本地化,但是當只運行名稱回報。ASP.NET核心定位 - 不從資源文件返回值,唯一的名字
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddLocalization(options => options.ResourcesPath = "Resources");
services.AddMvc()
.AddViewLocalization()
.AddDataAnnotationsLocalization();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
.....
List<CultureInfo> supportedCultures = new List<CultureInfo>
{
new CultureInfo("no"),
new CultureInfo("en")
};
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("no"),
SupportedCultures = supportedCultures,
SupportedUICultures = supportedCultures
});
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
該項目包含一個查看名爲Index.cshtml,位於 「視圖\首頁」。 資源文件夾包含兩個資源文件: Views.Home.Index.en.resx和Views.Home.Index.no.resx
Index.cshtml:
@inject IOptions<RequestLocalizationOptions> LocalizerOptions
@inject IViewLocalizer Localizer
@{
var requestCulture = Context.Features.Get<IRequestCultureFeature>();
var cultureItems = LocalizerOptions.Value.SupportedUICultures
.Select(c => new SelectListItem { Value = c.Name, Text = c.DisplayName })
.ToList();
}
@{
ViewData["Title"] = Localizer["Title"];
}
<div id="section_box_about" class="section_box_about" style="margin-top:0px;">
@Localizer["HeaderAbout"]
</div>
<div class="container" style="width:96%;margin:auto;">
@Localizer["About"]
<br />
<br />
<br />
@requestCulture.RequestCulture.Culture.Name
</div>
@Localizer [ 「關於」]返回 「關於」
@ requestCulture.RequestCulture.Culture.Name返回「否」
非常感謝你@hakany!增加了包,突然它工作!很棒:) – TheRuler