如何使用WEBAPI .NetCore 2.1本地化枚举和类属性

时间:2018-08-17 15:18:20

标签: c# localization attributes .net-core asp.net-core-webapi

到目前为止,我已经使用IStringLocalizer和具有以下启动配置的资源文件设法对异常消息或验证错误进行了本地化:

ConfigureServices方法:

services.AddLocalization(o => o.ResourcesPath = "Resources");

配置方法:

app.UseRequestLocalization(BuildLocalizationOptions());

其中BuildLocalizationOptions是另一个私有方法:

private RequestLocalizationOptions BuildLocalizationOptions()
{
    var supportedCultures = new List<CultureInfo>
    {
        new CultureInfo("en-US"),
        new CultureInfo("bs-Latn-BA")
    };

    var options = new RequestLocalizationOptions
    {
        DefaultRequestCulture = new RequestCulture("en-Us"),
        SupportedCultures = supportedCultures,
        SupportedUICultures = supportedCultures,
    };

    return options;
}

现在我不知道如何本地化枚举或模型属性。 我现在有两个资源文件。

  • Languages.bs-Latn-BA.resx
  • Languages.zh-CN.resx

我尝试配置.AddDataAnnotationsLocalization()

像这样:

services.AddDataAnnotationsLocalization(o =>
{
    o.DataAnnotationLocalizerProvider = (type, factory) =>
    {
        return factory.Create(typeof(Languages));
    };
})

并使用DisplayAttribute:

  • [Display(Name =“ USERMODELPROPERTY”)]
  • [Display(Name =“ USERMODELPROPERTY”,ResourceType = typeOf(Languages))]

那么有人可以提供详细的示例如何在WebApi .Net Core 2.1项目中完成此工作吗?

我是否需要覆盖显示属性或为此创建自定义属性?

0 个答案:

没有答案