.Net Core 国际化
创建项目什么的就不说了吧 直接进入正题吧 我这里建的是个webapi
添加资源文件
1.首先我们创建一个Language文件夹,这就是我们在后面Startup类中需要配置的目录名。
2.然后我们在Language文件夹中添加一个资源文件,并命名为Controllers.EnController.zh-CN。
3.在这个资源文件中,添加一个字段“Hello world.”, 并设置其值为“你好世界。”。
我这里还添加了几个别的语言 如图
配置Startup类
ASP.NET Core中,如果希望启动本地化,首先需要在Startup类的ConfigureServices方法中使用services.AddLocalization添加本地化服务。
在这个方法中,我们指定了前面创建的文件夹Language作为存放翻译文件的目录。 如果不指定的话会从根目录读
services.AddLocalization(o => { o.ResourcesPath = "Language"; }); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
然后我们需要在Configure方法中添加本地化中间件。
IList<CultureInfo> supportedCultures = new List<CultureInfo> { new CultureInfo("zh-CN"), new CultureInfo("en-US"), new CultureInfo("ja"), new CultureInfo("is") }; app.UseRequestLocalization(new RequestLocalizationOptions { //这里指定默认语言包 DefaultRequestCulture = new RequestCulture("zh-CN"), SupportedCultures = supportedCultures, SupportedUICultures = supportedCultures }); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); }
建一个控制器来做基类控制器 引入本地化字符串访问器
public readonly IStringLocalizer<EnController> _localizer; public EnController(IStringLocalizer<EnController> localizer) { _localizer = localizer; }
新建一个控制器 继承基类 方法引用多语言配置项
private Microsoft.Extensions.Logging.ILogger logger; public ValuesController(ILogger<ValuesController> _logger, IStringLocalizer<EnController> localizer):base(localizer) { logger = _logger; } [HttpGet] [Route("Hello")] public string Hello() { return _localizer["Hello world."]; }
然后就没有然后了 直接访问就好了 就可以看到结果了
中文
冰岛语
日语
具体的几种访问方式我就不异议去说了 百度随便搜一下都有
项目放在百度云上了 需要看的话直接下载也行超简单的 https://pan.baidu.com/s/1EraOwPZagEDtMxPw2VN7JA 提取码 r7m3
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!