全网整合营销服务商

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

免费咨询热线: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优化全解析  定制建站流程解析:需求评估与SEO优化功能开发指南  长沙企业网站制作哪家好,长沙水业集团官方网站?  如何在景安云服务器上绑定域名并配置虚拟主机?  如何通过西部数码建站助手快速创建专业网站?  制作网站外包平台,自动化接单网站有哪些?  建站主机SSH密钥生成步骤及常见问题解答?  如何通过万网虚拟主机快速搭建网站?  网站app免费制作软件,能免费看各大网站视频的手机app?  建站之星上传入口如何快速找到?  专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  文字头像制作网站推荐软件,醒图能自动配文字吗?  建站168自助建站系统:快速模板定制与SEO优化指南  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  如何设计高效校园网站?  C++中引用和指针有什么区别?(代码说明)  黑客如何通过漏洞一步步攻陷网站服务器?  ,如何利用word制作宣传手册?  如何规划企业建站流程的关键步骤?  如何用好域名打造高点击率的自主建站?  东莞专业制作网站的公司,东莞大学生网的网址是什么?  网站好制作吗知乎,网站开发好学吗?有什么技巧?  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  建站之星如何快速更换网站模板?  建站与域名管理如何高效结合?  小程序网站制作需要准备什么资料,如何制作小程序?  开心动漫网站制作软件下载,十分开心动画为何停播?  如何用IIS7快速搭建并优化网站站点?  深入理解Android中的xmlns:tools属性  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  个人网站制作流程图片大全,个人网站如何注销?  C++时间戳转换成日期时间的步骤和示例代码  简历在线制作网站免费,免费下载个人简历的网站是哪些?  微信小程序 input输入框控件详解及实例(多种示例)  网站图片在线制作软件,怎么在图片上做链接?  h5网站制作工具有哪些,h5页面制作工具有哪些?  如何访问已购建站主机并解决登录问题?  MySQL查询结果复制到新表的方法(更新、插入)  青浦网站制作公司有哪些,苹果官网发货地是哪里?  如何用西部建站助手快速创建专业网站?  建站之星北京办公室:智能建站系统与小程序生成方案解析  制作农业网站的软件,比较好的农业网站推荐一下?  微信推文制作网站有哪些,怎么做微信推文,急?  如何快速选择适合个人网站的云服务器配置?  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  建站主机助手选型指南:2025年热门推荐与高效部署技巧  英语简历制作免费网站推荐,如何将简历翻译成英文?  网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱? 

您的项目需求

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