要在ASP.NET Core 2.2服务器上使本地化功能起作用,您可以按照以下步骤进行操作:
Startup.cs
文件的ConfigureServices
方法中添加以下代码:services.AddLocalization(options => options.ResourcesPath = "Resources");
services.AddMvc()
.AddViewLocalization()
.AddDataAnnotationsLocalization();
Configure
方法中添加本地化中间件。确保它位于其他中间件之前。例如:app.UseRequestLocalization();
创建一个Resources
文件夹并在其中添加一个名为SharedResources.xx-XX.resx
的资源文件,其中xx-XX
是您要支持的语言代码。确保将资源文件的生成操作设置为“嵌入的资源”。
在视图中使用本地化字符串。例如,在Views/Shared/_Layout.cshtml
文件中,您可以使用以下代码:
@using Microsoft.AspNetCore.Mvc.Localization
@inject IViewLocalizer Localizer
@Localizer["Welcome"]
HomeController
控制器中,您可以使用以下代码:using Microsoft.AspNetCore.Mvc.Localization;
using Microsoft.AspNetCore.Mvc;
public class HomeController : Controller
{
private readonly IHtmlLocalizer _localizer;
public HomeController(IHtmlLocalizer localizer)
{
_localizer = localizer;
}
public IActionResult Index()
{
ViewData["Message"] = _localizer["Welcome"];
return View();
}
}
ConfigureServices
方法中,使用以下代码设置默认语言:var supportedCultures = new[]
{
new CultureInfo("en-US"),
new CultureInfo("zh-CN")
};
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("zh-CN"),
SupportedCultures = supportedCultures,
SupportedUICultures = supportedCultures
});
请注意,您需要根据您实际支持的语言和资源文件进行适当的更改。
这些步骤将确保您的ASP.NET Core 2.2应用程序在服务器上正确使用本地化功能。