【问题标题】:ASP.NET Core Localization - Doesn't return Value from resource file, only NameASP.NET Core 本地化 - 不从资源文件返回值,仅返回名称
【发布时间】:2017-09-15 01:28:07
【问题描述】:

我正在尝试实现本地化,但运行时只返回名称。

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”中。 Resources 文件夹包含两个资源文件: Views.Home.Index.en.resxViews.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["About"] 返回“About”

@requestCulture.RequestCulture.Culture.Name 返回“否”

【问题讨论】:

    标签: c# asp.net-core asp.net-core-mvc


    【解决方案1】:

    能否添加 Localization.AspNetCore.TagHelpers nuget 包。添加此内容后,我开始进行本地化工作。

    另请参阅:Localization in ASP.Net core MVC not working - unable to locate resource file 有类似问题。

    【讨论】:

    • 非常感谢@hakany!添加了软件包,突然它起作用了!太棒了:)
    • 请注意,这个包不是微软官方的包——它与 .NET Core 2.0 不兼容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-22
    • 2010-11-15
    • 2019-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-27
    相关资源
    最近更新 更多