全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解ASP.NET Core 中的多语言支持(Localization)

首先在 Startup 的 ConfigureServices 中添加 AddLocalization 与 AddViewLocalization 以及配置 RequestLocalizationOptions (这里假设使用英文与中文):

public void ConfigureServices(IServiceCollection services)
{
  services.AddLocalization(options => options.ResourcesPath = "Resources");

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

  services.Configure<RequestLocalizationOptions>(
    opts =>
    {
      var supportedCultures = new List<CultureInfo>
      {
        new CultureInfo("en-US"),
        new CultureInfo("zh-CN")
      };
      opts.SupportedCultures = supportedCultures;
      opts.SupportedUICultures = supportedCultures;
    });
}

在 Startup 的 Configure() 方法中应用 RequestLocalizationOptions :

var requestLocalizationOptions = app.ApplicationServices.GetService<IOptions<RequestLocalizationOptions>>().Value;
app.UseRequestLocalization(requestLocalizationOptions);

然后在 _Layout.cshtml 视图中通过 IViewLocalizer 接口以多语言的方式显示页面标题的后缀:

@using Microsoft.AspNetCore.Mvc.Localization
@inject IViewLocalizer Localizer
<!DOCTYPE html>
<html>
<head>
  <title>@ViewData["Title"] - @Localizer["SiteTitle"]</title>
</head>
<body>
</body>
</html>

接着在 ASP.NET Core Web 项目中创建 Resources 文件夹,在其中分别添加 Views.Shared._Layout.en-Us.resx 与 Views.Shared._Layout.zh-CN.resx 文件, Views.Shared._Layout.resx 文件,并添加 "SiteTitle" 所对应的语句文字:

1)Views.Shared._Layout.en-Us.resx

2)Views.Shared._Layout.zh-CN.resx

这时运行 ASP.NET Core 站点,就会根据浏览器的语言设置(Accept-Language header)、或者 culture 查询参数、或者 .AspNetCore.Culture Cookie 值显示对应语言的文字:

需要注意的地方:千万不要添加不带语言名称的 Views.Shared._Layout.en-Us.resx ,不然添加代码语言名称的 .resx 文件时会遇到  "Custom tool ResXFileCodeGenerator failed to produce an output for input file ... but did not log a specific error." 问。

一定要看的参考文档:Globalization and localization 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# asp.net  # core  # 多语言  # Asp.Net Core MVC项目实现多语言实例(Globalization/Localizati  # ASP.NET Core MVC 中实现中英文切换的示例代码  # 就会  # 英文  # 千万不要  # 不带  # 需要注意  # 大家多多  # 一定要看  # 所对应  # 文档  # zh  # en  # SupportedCultures  # CN  # var  # opts 


相关文章: 安云自助建站系统如何快速提升SEO排名?  实惠建站价格推荐:2025年高性价比自助建站套餐解析  建站主机无法访问?如何排查域名与服务器问题  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  如何在建站之星网店版论坛获取技术支持?  孙琪峥织梦建站教程如何优化数据库安全?  如何快速辨别茅台真假?关键步骤解析  网站图片在线制作软件,怎么在图片上做链接?  如何在Tomcat中配置并部署网站项目?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  如何高效配置IIS服务器搭建网站?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  招贴海报怎么做,什么是海报招贴?  网站制作难吗安全吗,做一个网站需要多久时间?  建站主机如何选?性能与价格怎样平衡?  如何在宝塔面板创建新站点?  宝塔建站助手安装配置与建站模板使用全流程解析  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  如何通过远程VPS快速搭建个人网站?  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站  Bpmn 2.0的XML文件怎么画流程图  C++如何将C风格字符串(char*)转换为std::string?(代码示例)  广东专业制作网站有哪些,广东省能源集团有限公司官网?  宝华建站服务条款解析:五站合一功能与SEO优化设置指南  无锡营销型网站制作公司,无锡网选车牌流程?  如何在阿里云域名上完成建站全流程?  如何快速查询域名建站关键信息?  建站之星各版本价格是多少?  详解jQuery停止动画——stop()方法的使用  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  如何选择域名并搭建高效网站?  如何在阿里云高效完成企业建站全流程?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  如何通过IIS搭建网站并配置访问权限?  网站制作的方法有哪些,如何将自己制作的网站发布到网上?  Swift中switch语句区间和元组模式匹配  ,石家庄四十八中学官网?  家庭服务器如何搭建个人网站?  如何在IIS中新建站点并解决端口绑定冲突?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  全景视频制作网站有哪些,全景图怎么做成网页?  如何在企业微信快速生成手机电脑官网?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  免费视频制作网站,更新又快又好的免费电影网站?  C#如何使用XPathNavigator高效查询XML  如何选择网络建站服务器?高效建站必看指南  建站之星云端配置指南:模板选择与SEO优化一键生成  网站网页制作专业公司,怎样制作自己的网页? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。