ASP.NET Core中如何实现全球化和本地化

avatar
作者
猴君
阅读量:0

在ASP.NET Core中,全球化和本地化可以通过以下方式来实现:

  1. 在Startup.cs文件中配置支持全球化和本地化的中间件:
public void ConfigureServices(IServiceCollection services) {     services.AddLocalization(options => options.ResourcesPath = "Resources");          services.AddMvc()         .AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)         .AddDataAnnotationsLocalization(); }  public void Configure(IApplicationBuilder app, IHostingEnvironment env) {     var supportedCultures = new[]     {         new CultureInfo("en-US"),         new CultureInfo("zh-CN")     };      app.UseRequestLocalization(new RequestLocalizationOptions     {         DefaultRequestCulture = new RequestCulture("en-US"),         SupportedCultures = supportedCultures,         SupportedUICultures = supportedCultures     });      app.UseMvc(routes =>     {         routes.MapRoute(             name: "default",             template: "{controller=Home}/{action=Index}/{id?}");     }); } 
  1. 在Views文件夹中创建对应的资源文件,用于存放各种语言的本地化字符串。如在Resources文件夹中创建对应的资源文件:Home.en-US.resx和Home.zh-CN.resx。

  2. 在Controller中使用IStringLocalizer来获取本地化字符串:

private readonly IStringLocalizer<HomeController> _localizer;  public HomeController(IStringLocalizer<HomeController> localizer) {     _localizer = localizer; }  public IActionResult Index() {     ViewData["Message"] = _localizer["Hello World!"];      return View(); } 

通过以上方式,在ASP.NET Core中实现全球化和本地化功能。当用户访问网站时,根据其浏览器的语言偏好设置,系统会自动选择对应的本地化字符串进行显示。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!