1、Program.cs分别添加

//多语言支持,资源文件夹Localize在web的根目录
builder.Services.AddLocalization(options => options.ResourcesPath = "Localize");
//从配置文件读取,多语言都有那些语言配置
var localize = AppConfigurtaionServices.Configuration["Localize"];
var supportedCultures = new[] { "zh-CN" };//默认先写了一个
if (!string.IsNullOrEmpty(localize))//如果有配置的话使用配置的语言
{
    supportedCultures= localize.Split(',');
}
var localizationOptions =
    new RequestLocalizationOptions().SetDefaultCulture(supportedCultures[0])
    .AddSupportedCultures(supportedCultures)
    .AddSupportedUICultures(supportedCultures);

app.UseRequestLocalization(localizationOptions);

2、添加资源文件
网站根目录建立Localize文件夹:
①使用控制器资源结构
在Localize目录下面建立文件夹Controllers,再在Controllers建立文件,格式为: 【控制器名称.区域名称.resx】 例如testController.en-US.resx
②使用共享资源接口
直接在Localize目录下面建立文件SharedResource.zh-CN.resx;并且在web下面建立一个空的类(注意命名空间,错误的命名空间可能让你找不到资源文件)

namespace Web
{
    public class SharedResource
    {
    }
}

3、在控制器里面使用

namespace Web.Controllers
{
    /// <summary>
    /// 多语言测试api
    /// </summary>
    [Route("api/[controller]/[action]")]
    [ApiController]
    public class testController : ControllerBase
    {
        private readonly IStringLocalizer<testController> _localizer;
        private readonly IStringLocalizer<SharedResource> sharedResourceLocalizer;
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="localizer"></param>
        /// <param name="sharedResourceLocalizer"></param>
        public testController(IStringLocalizer<testController> localizer,
                               IStringLocalizer<SharedResource> sharedResourceLocalizer)
        {
            this.sharedResourceLocalizer = sharedResourceLocalizer;
            _localizer = localizer;
        }
        /// <summary>
        /// 测试本地化
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public string Getttt()
        {
            var article = sharedResourceLocalizer["hello"];
            var postName = sharedResourceLocalizer.GetString("hello").Value;

            return _localizer["hello"].Value;//如果找不到succeed的本地化值,那么就返回字符串“succeed”
        }
    }