详解ASP.NET Core 中的多语言支持(Localization)
发布时间 - 2026-01-11 03:01:43 点击率:次首先在 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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
网站制作大概多少钱一个,做一个平台网站大概多少钱?
Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
PHP 500报错的快速解决方法
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
如何在阿里云通过域名搭建网站?
谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
Android自定义控件实现温度旋转按钮效果
Laravel怎么调用外部API_Laravel Http Client客户端使用
装修招标网站设计制作流程,装修招标流程?
Laravel怎么实现验证码(Captcha)功能
如何快速打造个性化非模板自助建站?
Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】
Laravel如何创建自定义中间件?(Middleware代码示例)
Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比
如何快速完成中国万网建站详细流程?
🚀拖拽式CMS建站能否实现高效与个性化并存?
Java类加载基本过程详细介绍
如何用好域名打造高点击率的自主建站?
如何快速生成凡客建站的专业级图册?
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
高端智能建站公司优选:品牌定制与SEO优化一站式服务
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
怎么用AI帮你设计一套个性化的手机App图标?
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
音响网站制作视频教程,隆霸音响官方网站?
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
详解vue.js组件化开发实践
python中快速进行多个字符替换的方法小结
Laravel如何处理和验证JSON类型的数据库字段
北京的网站制作公司有哪些,哪个视频网站最好?
网站页面设计需要考虑到这些问题
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
高防服务器租用如何选择配置与防御等级?
微信小程序 五星评分(包括半颗星评分)实例代码
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
Python文件操作最佳实践_稳定性说明【指导】
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
JavaScript模板引擎Template.js使用详解
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南
Bootstrap整体框架之CSS12栅格系统
用yum安装MySQLdb模块的步骤方法
EditPlus中的正则表达式 实战(4)
佛山网站制作系统,佛山企业变更地址网上办理步骤?
b2c电商网站制作流程,b2c水平综合的电商平台?
如何快速登录WAP自助建站平台?
如何快速查询网站的真实建站时间?
如何挑选最适合建站的高性能VPS主机?

