gpt4 book ai didi

c# - 为什么 ASP.NET Core 本地化不起作用

转载 作者:太空狗 更新时间:2023-10-29 22:21:18 31 4
gpt4 key购买 nike

我创建了一个空项目。

Startup.cs

public void ConfigureServices(IServiceCollection services)
{
services.AddLocalization(s => s.ResourcesPath = "Resources");
var supportedCultures = new CultureInfo[]
{
new CultureInfo("de-CH"),
new CultureInfo("en-GB"),
};

services.Configure<RequestLocalizationOptions>(s =>
{
s.SupportedCultures = supportedCultures;
s.SupportedUICultures = supportedCultures;
s.DefaultRequestCulture = new RequestCulture(culture: "de-CH", uiCulture: "de-CH");
});

services.AddMvc()
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
.AddDataAnnotationsLocalization();
}


public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{

app.UseStaticFiles();

// Using localization
var locOptions = app.ApplicationServices.GetService<IOptions<RequestLocalizationOptions>>();
app.UseRequestLocalization(locOptions.Value);

app.UseMvc();
}

文件夹结构

Resources
|
|--Controllers
| HomeController.de.resx
| HomeController.en.resx
| HomeController.resx

Controller

public class HomeController : Controller
{
private readonly IStringLocalizer<HomeController> _stringLocalizer;

public HomeController(IStringLocalizer<HomeController> stringLocalizer)
{
_stringLocalizer = stringLocalizer;
}

public IActionResult Index()
{
string testValue = _stringLocalizer["Test"];
return View();
}
}

我是 asp.net core 的新手,我只是想了解,为什么 testValue 总是返回 Test,这有点令人困惑。我做错了什么?如果你能帮助我,我会很高兴。

最佳答案

只需添加包 Microsoft.Extensions.Localization
这样做之后,就可以了。
ResourcePath 是可选的,如果将其保留为空,则资源文件组织样式与经典 Asp.Net 应用程序相同(在目标类的相同位置)。

关于c# - 为什么 ASP.NET Core 本地化不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49414086/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com