1.根目录建文件夹:Resource(存放资源文件) 和 ResourceClass(存放对应的空白类文件)
2.添加资源文件到Resource文件夹中:Language.en-US.resx 和 Language.zh-CN.resx
打开资源文件,添加配置项,例如 中文资源文件 名称:Welcome,值:欢迎来中国。英文资源文件 名称:Welcome,值:Welcome to China。
并设置资源文件的 访问修饰符 为 public,这样可以跨项目访问资源文件。
3.添加空白类文件到ResourceClass文件夹中:Language.cs,这个空白类文件需要单独放到另外的地方,不能跟资源文件放一起,否则会默认是一个资源文件。
4.打开根目录下的 program.cs 文件,进行配置
// 指定资源文件夹 Resources
builder.Services.AddLocalization(x => { x.ResourcesPath = "Resources"; });
// 让页面 xxx.cshtml 也能使用资源文件
builder.Services.AddRazorPages().AddViewLocalization();
5.app use一下
2.添加资源文件到Resource文件夹中:Language.en-US.resx 和 Language.zh-CN.resx
打开资源文件,添加配置项,例如 中文资源文件 名称:Welcome,值:欢迎来中国。英文资源文件 名称:Welcome,值:Welcome to China。
并设置资源文件的 访问修饰符 为 public,这样可以跨项目访问资源文件。
3.添加空白类文件到ResourceClass文件夹中:Language.cs,这个空白类文件需要单独放到另外的地方,不能跟资源文件放一起,否则会默认是一个资源文件。
4.打开根目录下的 program.cs 文件,进行配置
// 指定资源文件夹 Resources
builder.Services.AddLocalization(x => { x.ResourcesPath = "Resources"; });
// 让页面 xxx.cshtml 也能使用资源文件
builder.Services.AddRazorPages().AddViewLocalization();
5.app use一下
#region 多语言 IList<CultureInfo> supportedCultures = new List<CultureInfo>{ new CultureInfo("zh-CN"), new CultureInfo("en-US") }; app.UseRequestLocalization(new RequestLocalizationOptions { //这里指定默认语言包 DefaultRequestCulture = new RequestCulture("zh-CN"), SupportedCultures = supportedCultures, SupportedUICultures = supportedCultures }); #endregion
6.xxx.cshtml页面中使用
@using WebAppTest//这是自己项目的命名空间
@using Microsoft.AspNetCore.Mvc.Localization
@inject IHtmlLocalizer<Language> Localizer
然后在页面中:@Localizer["Welcome"] 这样就显示中文了。
要想显示英文,需要修改语言:
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
参考:https://www.cnblogs.com/pfm33/p/14800372.html
多线程中:https://cloud.tencent.com/developer/article/1953910