.Net Core 国际化

本篇文章帮大家学习.Net Core 国际化,包含了.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

    

站长公告

极客大全致力于分享java、c#、php、python等编程语言教程,帮助广大程序员解决问题。

热门标签