.Net之多语言配置

开篇语

首先非常感谢各位朋友或技术爱好者的关注。

介绍

支持多语言使网站可以覆盖更广泛的受众。ASP.NET Core 提供的服务和中间件可将网站本地化为不同的语言。

本次示例环境:vs2019、net5

配置

无需引用Nuget包即可实现以下功能。

注入容器

services.AddLocalization(t =>
{t.ResourcesPath = "Language";
});

启用配置

            var supportedCultures = new List<CultureInfo>(){new CultureInfo("zh-CN"),new CultureInfo("en-US")};app.UseRequestLocalization(new RequestLocalizationOptions{//这里指定默认语言包DefaultRequestCulture = new RequestCulture("en-US"),//为了测试配置默认语言英文SupportedCultures = supportedCultures,SupportedUICultures = supportedCultures});

语言配置文件

需要在根目录新建一个文件夹,文件夹名字就是ResourcesPath的名字。资源文件(resx结尾)存放路径需要和使用的地方目录结构一致。(右键文件夹>添加>新建项)

image.png

语言包下的目录结构和MVC对应,控制器对应控制器,视图对应视图。资源文件命名方式为使用文件的文件名称加上语言代码。

image.png

读取资源文件

在控制器中使用,依赖注入资源文件

    [ApiController][Route("[controller]")]public class HomeController : ControllerBase{private readonly IStringLocalizer<HomeController> _localizer;public HomeController(IStringLocalizer<HomeController> localizer){_localizer = localizer;}[HttpGet]public string Get(){return _localizer["succeed"].Value;//如果找不到succeed的本地化值,那么就返回字符串“succeed”}}

测试

有多种方法可以告诉程序需要使用哪一个语言文件,下面只说常见的使用,还支持自定义 。

默认输出

image.png

HTTP报文

和常见的请求一样添加Accept-Language请求头即可

Accept-Language:zh-CN
image.png

Cookie

默认使用cookie名称.AspNetCore.Culture,值是

c=zh-CN|uic=zh-CN
c=zh-CN
uic=zh-CN

c是Culture,uic是UICulture

URL参数

三种写法,效果一样

?culture=zh-CN&ui-culture=zh-CN
?culture=zh-CN
?ui-culture=zh-CN
image.png

参考文档

https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/localization?view=aspnetcore-5.0

注:

最近文章的更新频率有点低(工作有点忙,所以花的时间有点多),但是我会尽可能的维持文章的内容质量,如果文章内容有误或者有其他建议,麻烦请联系我。

如果您觉得文章内容还行,麻烦请您点个赞或点个在看,这是对我的一种支持,谢谢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/302487.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

21张GIF动图让你秒懂数学原理

全世界有3.14 % 的人已经关注了数据与算法之美数学是很难的科学&#xff0c;但因为它是科学家用数学来解释宇宙的语言&#xff0c;我们无可避免的要学习它。看看下面的这些GIF动图&#xff0c;它们提供了视觉的方式来帮助你理解各种数学技巧。推荐阅读《12堂魔力数学课》。1.椭…

表格过滤器_记录和管理零散信息,什么软件比 Excel 表格更方便

SeaTable 的目标是帮助大家更好的组织和管理各种零散的信息&#xff0c;团队的请假信息就属于这样一类零散的信息。下面我们来看一下 &#xff0c;SeaTable 相比于 Excel 是如何更好的帮助我们来组织和管理这样的信息的。用 Excel 记录的团队请假信息下面两张表是比较常见的请假…

使用 Source Generator 代替 T4 动态生成代码

使用 Source Generator 代替 T4 动态生成代码Intro在 Source Generator 出现之前有一些重复性的代码&#xff0c;我会使用 T4 去生成&#xff0c;这样就可以一定程度上避免复制粘贴和可维护性也会更好一些。在了解了一些 Source Generator 之后&#xff0c;就想尝试把现在项目里…

资料分享 | 数据挖掘实例资料分享来袭

小编从大学开始&#xff0c;便开启资料收集功能。随着大数据时代的来临&#xff0c;计算机发展进入新的阶段&#xff0c;再加上日常的深入研究&#xff0c;小编收集整理了丰富的数据挖掘资料&#xff0c;内容涵盖“程序”&#xff0c;“数据”、“文档”等。这次小编再次把所有…

修改图层的范围_【PS|第39期】数字绘画 使用填充图层

惟有悲观净化而成的乐观&#xff0c;才是真正的乐观。——尼采)填充图层是一种只承载纯色、渐变和图案的特殊图层&#xff0c;其特点是填充内容可以修改。另外&#xff0c;设置成不同的混合模式和不透明度后&#xff0c;可用于修改其他图层的颜色或生成图像混合效果。填充图层都…

我的注释那去了?

当我们用nuget引用三方库时&#xff0c;在类型&#xff0c;或类型成员上会有注释&#xff0c;如下图&#xff0c;是MySql官方包&#xff0c;command的ExecuteNonQuery的注释我们自己写一个类库项目CommentsLibrary&#xff0c;给类&#xff0c;构造函数&#xff0c;方法添加xml…

[原] jQuery EasyUI 1.2.6源码、Demo合集、离线API

下载地址&#xff1a; http://files.cnblogs.com/purediy/jquery-easyui-1.2.6.zip 兄弟版本&#xff1a; jQuery EasyUI 1.3.4 离线API、Demo jQuery EasyUI 1.3.2 离线API、Demo jQuery EasyUI 1.3.0 Demo合集、离线API、动态换肤 相信关注过jQuery UI 的大部分都查到过easyu…

看书的一点小建议!

阅读本文大概需要6分钟。昨天看见小北写了一篇&#xff1a;「看书的一点小建议」&#xff0c;写的很不错&#xff0c;今天也分享一下自己看书的心得。其实不少读者问过我怎么看计算机经典大厚书、怎么看产品运营经典大厚书、怎么提高看书效率&#xff1a;电影教父里有台词&…

技巧:Excel用得好,天天没烦恼

全世界有3.14 % 的人已经关注了数据与算法之美Excel是Office三大神器当中最神秘、但也是最能提高你效率的工具了。而我们中的太多小伙伴&#xff0c;却一直把它当做是个“电子表格工具”。今天一起涨姿势&#xff0c;学会下面这些神技&#xff0c;你的Excel分分钟超过90%的同事…

操作数数据类型 char 对于 sum 运算符无效。_数据类型和运算符

数据类型和运算符1.进制1.1文件存储单位​ 任何数据在计算机中都是以二进制的形式存在的&#xff0c;二进制早期由电信号开关演变而来 。​ 一个电信号或者一个二进制位统称为Bit位&#xff0c;8个Bit位为一组组成一个字节Byte 。​ 一个bit位表示的数的范围&#xff1a;0和1​…

我所理解的开源软件供应链安全

点击上方“开源社”关注我们| 作者&#xff1a;庄表伟| 编辑&#xff1a;钱英宇| 设计&#xff1a;谭嘉露| 责编&#xff1a;王玥敏1供应链与断供隐喻会帮助人&#xff0c;也会误导人。当我们谈到“供应链”时&#xff0c;会产生哪些联想&#xff1f;环环相扣&#xff1f;缺一不…

82 个代码案例实践,带你学好 Python 机器学习

全世界有3.14 % 的人已经关注了数据与算法之美如果村里通了网&#xff0c;那你一定知道【AI】人工智能。如果你会网上冲浪&#xff0c;那你一定看到过【ML】机器学习。小编在网上看到一个段子&#xff1a;ML派坐落美利坚合众山中&#xff0c;百年来武学奇才辈出&#xff0c;隐然…

查询程序崩溃日志_PC 崩溃报告途径 amp; 临时解决方法

TC Sera (社区经理)&#xff1a;你好&#xff01;如果您在电脑游戏中遇到与 Nvidia 驱动程序相关的崩溃情况&#xff0c;请打开视频设置(Video Settings)中的诊断模式(Diagnostics Mode)并重新启动游戏。如果您遇到问题&#xff0c;请打包&#xff1a;%localappdata%\Gears5\Sa…

C# ConcurrentBag的实现原理

一、前言笔者最近在做一个项目&#xff0c;项目中为了提升吞吐量&#xff0c;使用了消息队列&#xff0c;中间实现了生产消费模式&#xff0c;在生产消费者模式中需要有一个集合&#xff0c;来存储生产者所生产的物品&#xff0c;笔者使用了最常见的List<T>集合类型。由于…

Linux里10个最危险的命令

全世界只有3.14 % 的人关注了数据与算法之美Linux命令行佷有用、很高效&#xff0c;也很有趣&#xff0c;但有时候也很危险&#xff0c;尤其是在你不确定你自己在正在做什么时候。推荐阅读Linux之父林纳斯自传《只是为了好玩》这篇文章将会向你介绍十条命令&#xff0c;但你最好…

让你立刻爱上数学的10个算术游戏

全世界只有3.14 % 的人关注了数据与算法之美死理性派的小编经常会被问到的一个问题&#xff1a;数学到底哪里有趣了&#xff0c;数学之美又在哪里&#xff1f;这篇文章精心选择了 10 个老少咸宜的算术问题&#xff0c;以定理、趣题甚至未解之谜等各种形式带领大家窥探数学世界的…

iPhone 的 Push(推送通知)功能原理浅析

第一部分&#xff1a;Push原理(以下绝大多数内容参考自、图片来自iPhone OS Reference Library)机制简介Push 的工作机制可以简单的概括为下图图中&#xff0c;Provider是指某个iPhone软件的Push服务器。 APNS 是Apple Push Notification Service&#xff08;Apple Push服务器&…

编程从业五年的十四条经验,句句朴实

全世界只有3.14 % 的人关注了数据与算法之美排列不分先后&#xff1a;1. 当性能遇到问题时&#xff0c;如果能在应用层进行计算和处理&#xff0c;那就把它从数据库层拿出来。排序和分组就是典型的例子。在应用层做性能提升总是要比在数据库层容易的多。就像对于MySQL&#xff…

.Net之Swagger基础使用

介绍Swagger 是一个规范和完整的框架&#xff0c;用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。日常可以用于后端开发人员测试接口或者前后端联调使用。从.net5开始&#xff0c;swagger已经集成到vs2019编译器中&#xff0c;可以通过勾对选项“启用OpenAPI支持”显示…

孩子不是笨,他和“最强大脑”差的是这个!

小木最近看到一则消息推送&#xff0c;说家长辅导孩子陪写作业简直就是一道“送命题”。朋友圈更是掀起了一股“提前嫁儿嫁女”的热潮。为什么孩子对数学一点兴趣也没有&#xff1f;为什么再简单的一道题&#xff0c;换个数字换个形式&#xff0c;孩子就一问三不会了&#xff1…