ASP.NET Core-本地化

news/2024/11/16 22:40:43/文章来源:https://www.cnblogs.com/sugarwxx/p/18304692

1.安装扩展ResXManager用于管理本地化资源文件

 2.添加资源文件Resource.resx

使用工具ResXManager增加其他资源文件,具体参考ResXManager使用

3.注册本地化

public static class ServiceCollectionExtensions
{public static IServiceCollection AddLanguage(this IServiceCollection service){service.Configure<RequestLocalizationOptions>(options =>{var cultures = new List<CultureInfo>{new CultureInfo("zh-Hans"),new CultureInfo("en")};options.DefaultRequestCulture = new RequestCulture(cultures[0]);//当服务接收到的请求没有指明当前区域文化,就会使用此默认的区域文化options.SupportedCultures = cultures;//影响日期、时间、数字、货币的展示格式options.SupportedUICultures = cultures;//影响查找那些区域文化资源(如:.resx、json文件等),也就是说,如果这里没有添加没有区域文化A,即使添加了A区域的资源文件,也无法生效。一般Culture和UICultrue保持一致
        });service.AddLocalization(options => options.ResourcesPath = "");return service;}}

Program.cs中添加本地化服务

通过AddLocalization注册了IStringLocalizerFactory和IStringLocalizer<>,并指定了资源的根目录为“Resources”

 

Program.cs中注册请求本地化中间件

 注:app.UseRouting() 之后再调用 app.UseRequestLocalization()

 

本地化使用

使用IStringLocalizer<>方式注入

调用

 完整代码

[Authorize]
[ApiController]
[Route("controller")]
//[PermissionAuthorize(Permissions.Users)]
public class FileController : ControllerBase
{private IStringLocalizer<Resource> _localizer;public FileController(IStringLocalizer<Resource> localizer) {_localizer = localizer;}[HttpGet("GetLocal")]public string GetLocal(){return _localizer["start"];//资源名称区分大小写
    }
}

请求结果

本次请求没有明确区域文化,又因以上本地化配置中明确请求中未指定区域文化时(或指定不存在的区域文化时)默认的区域文化是“zh-Hans”,结果显示中文

 因注册app.UseRequestLocalization(),响应头中会附带语言

 

注:

 

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

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

相关文章

vit的自注意力机制的范围

在Vision Transformer (ViT) 中,自注意力机制的范围是指模型在处理图像块时,每个图像块能够与其他哪些图像块进行交互。ViT的自注意力机制具有全局范围,这意味着在自注意力层中,每个图像块都可以与其他所有图像块进行交互,而不管它们在原始图像中的空间位置如何。以下是Vi…

如何通过ip地址来获取主机名字,查看IP和MAC地址的命令

[基于MS]查看MAC地址命令: 1、使用ipconfig /all,可以看到具体配置。 (查看IP地址,网关,DNS MAC地址等 ) 2、如果和局域网中的其它计算机通信过的话,可以用arp -a命令查看其MAC地址。 3、另外还可以用nbtstat -a [IP] ,不过只能查看某台具体机器的MAC地址(查看其他机器的…

核客任务实战-WEB服务器攻防篇教程

前言 网站服务器的核客攻防一直是网络安全中最重要的一部分,本书作者在经过数月的努力之后,终于将网站服务器的攻防以深入浅出、简单易懂的方式呈现在您的眼前,让您不必具有高深的网络知识和经验,只要依照本书的操作说明来按图索骥的进行,就能让您充分了解与感受到高手的技…

音视频同步原理及实现(转载)

# 音视频同步原理及实现本文主要描述音视频同步原理,及常见的音视频同步方案,并以代码示例,展示如何以音频的播放时长为基准,将视频同步到音频上以实现视音频的同步播放。内容如下:* 1.音视频同步简单介绍* 2.DTS和PTS简介 * 2.1I/P/B帧 * 2.2时间戳DTS、PTS* 3.常用同步…

外卖霸王餐系统怎么快速盈利赚钱?

微客云外卖霸王餐系统,作为近年来外卖行业中的一股新兴力量,以其独特的商业模式和营销策略,迅速吸引了大量消费者的目光。该系统通过提供显著的折扣和返利,让顾客能够以极低的价格甚至免费享受到美味的外卖,同时,也为外卖商家带来了可观的收益和市场曝光度。那么,外卖霸…

博客园配置留存

博客园配置留存 博客皮肤:SimpleMeory 侧边栏公告 <script type="text/javascript">window.cnblogsConfig = {info: {blogIcon: https://pic.cnblogs.com/avatar/3370073/20240107144051.png, // 请自己添加一个图片链接(网页标签),如果不需要的话可以删掉na…

ResXManager 使用

1.在扩展中安装ResXManager 2.添加一个资源文件Resource.resx 3.工具中找到ResXManager打开点击左边的刷新按钮加载资源文件,勾选需要使用的资源文件4.添加需要本地化资源 资源名称一般选择使用英文,为了使各个区域人能够理解 5.选择需要本地化的语言 添加的每一项语言都会加…

开源工作流引擎该如何扩展?扩展哪些功能?

目前主流的开源流程引擎有activiti、flowable、camunda等,这几个开源流程引擎的版本很多,哪个开源流程引擎哪个版本的功能更多、性能更好,该如何选择。 无论您选择哪一个开源流程引擎,都不可能直接拿来即用,均需要做一定的扩展开发和集成开发,才能满足项目真正的需求。以…

汽车通用微控制器S32K324NHT1MPBIR、S32K324NHT1MMMSR、S32K314EHT1MMMSR可为汽车开发软件提高安全性,简化开发工作,

S32K3系列与S32汽车平台兼容,实现了无缝软件重复使用和灵活性,适用于车身、区域控制和电气化应用。S32K3系列32位微控制器(MCU)提供基于Arm Cortex-M7的MCU,支持单核、双核和锁步内核配置。S32K3系列具有内核、内存和外设数量方面的可扩展性,能够实现高性能和功能安全,符合…

0188-输出宏和错误信息

环境Time 2022-11-13 WSL-Ubuntu 22.04 QEMU 6.2.0 Rust 1.67.0-nightly VSCode 1.73.1前言 说明 参考:https://os.phil-opp.com/vga-text-mode 目标 可以使用 println! 宏向屏幕输出错误,发送错误时,可以打印错误信息。 Cargo.toml 其中的 spin 为全局锁需要,lazy_static …

聊聊springboot项目脱离配置中心,如何实现属性动态刷新

前言 如果大家有开发过微服务项目,那对配置中心应该是耳熟能详了,配置中心有个很有用的能力,就是热更新属性,即不重启服务,就能做到属性的动态变更。而我们今天讲的话题是,怎么样不使用配置中心,也能达到如上的效果 如何实现属性的热更新 如果我们属性是配置在配置文件中…

关于docker使用中的问题

问题:今天发现一个服务报503,得知这个服务使用docker部署,部署在了test环境服务器中, 开始排查: 1.docker ps -a看了一下容器还在,状态正常。 2.docker logs -f 容器名 确认的日志也是正常的。但容器是另一个别的服务的,下图所示,我的服务是 op 这个服务叫mini 3.查了一…