Abp VNext 本地化Location(多语言)

1、新建Common类库

CommonModule.cs

 [DependsOn(
        typeof(AbpLocalizationModule),
        typeof(AbpVirtualFileSystemModule)
        )]
    public class CommonModule : AbpModule
    {
        public override void ConfigureServices(ServiceConfigurationContext context)
        {
            Configure<AbpVirtualFileSystemOptions>(options =>
            {
                options.FileSets.AddEmbedded<CommonModule>(baseNamespace: "Common");
            });

            Configure<AbpLocalizationOptions>(options =>
            {
                options.Resources
                    .Add<Langue>("en") //默认语言
                    .AddBaseTypes(typeof(AbpValidationResource))
                    .AddVirtualJson("/Localization/Resources");
                options.DefaultResourceType = typeof(Langue);
            });
            Configure<AbpExceptionLocalizationOptions>(options =>
            {
                options.MapCodeNamespace("Langue", typeof(Langue));
            });
        }
    }
}

Langue.cs

[LocalizationResourceName("Langue")]
    public class Langue
    {
    }

en.json

{
  "culture": "en",//语种
  "texts": {
    "HelloWorld": "Hello aaa!"
  }
}

zh.json

{
  "culture": "zh",
  "texts": {
    "HelloWorld": "你好啊!"
  }
}

将文件配置为嵌入式,修改文件Common.csproj

  <ItemGroup>
    <EmbeddedResource Include="Localization\Resources\*.json" />
    <Content Remove="Localization\Resources\*.json" />
  </ItemGroup>

二、WebApi项目中配置

[DependsOn(
        typeof(AbpLocalizationModule),
        typeof(CommonModule)
        )]
    public class WebApiModule : AbpModule
    {
        public override void ConfigureServices(ServiceConfigurationContext context)
        {
            var configuration = context.Services.GetConfiguration();
            ConfigureLocalization();
        }
        public override void OnApplicationInitialization(ApplicationInitializationContext context)
        {
            var app = context.GetApplicationBuilder();
            app.UseAbpRequestLocalization();
        }
        private void ConfigureLocalization()
        {
            Configure<AbpLocalizationOptions>(options =>
            {
                options.Languages.Add(new LanguageInfo("en", "en", "English"));
                options.Languages.Add(new LanguageInfo("zh", "zh", "简体中文"));
            });
        }
    }

三、依赖注入方式使用

[Route("User")]
public class UserService : ApplicationService, IUserService
{
        private readonly IStringLocalizer<Langue> _localizer;
        public UserService(IStringLocalizer<Langue> localizer)
        {
            _localizer = localizer;
        }
        [AllowAnonymous]
        [HttpGet("Login")]
        public string Login(string userName, string pwd)
        {
            var hello = _localizer["HelloWorld"];
            return hello.Value;
        }
}

四、客户端请求带上header