首页 > 编程语言 >ASP.NET Core-本地化

ASP.NET Core-本地化

时间:2024-07-16 10:42:24浏览次数:8  
标签:Core ASP localizer 本地化 public 区域 new NET options

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(),响应头中会附带语言

 

注:

 

标签:Core,ASP,localizer,本地化,public,区域,new,NET,options
From: https://www.cnblogs.com/sugarwxx/p/18304692

相关文章

  • Lazarus 将LNET封装到DLL中
    最近工作中有个要求SOCKET的功能,想将一个通信功能做得简单一点。发现LNET非常方便,所以对它研究了一下。LNET有两种类型,可视化和非可视化。做WINDOWS下一般都是用可视化的。用于LINUX和WINCE,必须用非可视化的。我要将它封装成DLL的话,必须用非可视化的。DLL代码如下:librarypro......
  • Modbus转Ethernet IP网关模块与汇川PLC通讯在网关配置软件中的配置
    通过Modbus转Ethernet/IP网关模块(XD-MDEP100),可以实现不同协议之间的互连,从而使得设备之间的数据交换更加便捷高效。网关做为ETHERNET/IP网络的从站,可以连接AB(罗克韦尔)、欧姆龙、基恩士、CODESYS、汇川等品牌的PLC。在实际案例中,汇川PLC作为控制系统部件与Modbus转Ethernet/IP......
  • 使用预训练模型(yolov8、MobileNetV2、ResNet50)与Gradio构建图像目标检测Web应用
    简介:  利用gradio设计一个web运用,实现图片主体物的识别。  1)用户可以通过网页提交一张图片。  2)web应用将输出这张图片中主体物的名称(中英文都可以)。  3)可以使用预训练的模型。利用预训练实现对物体识别准备工作在开始之前,请确保你的环境中已安装了以下依赖......
  • .NET周刊【7月第2期 2024-07-14】
    国内文章开源GTKSystem.Windows.Forms框架让C#winform支持跨平台运行https://www.cnblogs.com/easywebfactory/p/18289178GTKSystem.Windows.Forms框架是一种C#winform应用程序跨平台界面开发框架,兼容C#原生控件,无需额外学习,支持跨平台运行。其优势包括开源、与visualstudio......
  • Spark Core的知识碎片
    spark初识什么是spark?ApacheSpark是一个开源集群计算系统,旨在快速进行数据分析。既好写运行时的也快BDASBDAS是由加利福尼亚大学伯克利分校的AMPLab开发的一套开源大数据分析工具集。其目的是为数据分析和机器学习提供高效、易用的工具。SparkSpark是BDAS的核心......
  • 【Dataset】Maple-IDS - Network Security Malicious Traffic Detection Dataset
    IntroductiontotheDatasetTheMaple-IDSdatasetisanetworkintrusiondetectionevaluationdatasetdesignedtoenhancetheperformanceandreliabilityofanomaly-basedIntrusionDetectionSystems(IDS)andIntrusionPreventionSystems(IPS).Ascybera......
  • 将.net core项目部署到IIS上?
    如何将.netcore项目部署到IIS上? 如何将.netcore项目部署到IIS上?1.新建一个.netcoremvc项目2.运行.netcore项目3.发布项目4.部署到IIS1.新建一个.netcoremvc项目1.点击左侧“最近的项目模板”或者右侧“ASP.NETCoreWeb应用程序”均可。2.填写你的项目名称,并且选择项......
  • .NET C# 生成PDF
    .NETC#生成PDF文章目录.NETC#生成PDF1安装iText7库:2变量定义3创建一个PDF4段落5旋转文本6代码块7外部链接8内部链接9表格10注释11线条12二维码13嵌入图像14列表15设置背景16页眉17页脚18事件19水印20分栏21源码1安装iText7库:Install-Pac......
  • 云原生周刊:Score 成为 CNCF 沙箱项目|2024.7.15
    开源项目TridentTrident是由NetApp维护的全面支持的开源项目。它从头开始设计,旨在通过行业标准接口(如容器存储接口CSI)帮助您满足容器化应用程序对持久性存储的需求。MonokleMonokle通过提供用于编写YAML清单、验证策略和管理实时集群的统一可视化工具,简化了创建、分析......
  • 【K8s】专题七(2):Kubernetes 服务发现之 Ingress
    以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发!欢迎扫码关注个人公众号!目录一、基本介绍二、工作原理三、资源清单(示例)1、IngressController2、Ingress对象四、常用命令一、基本介绍Ingress是Kubernetes提供的一种服务......