如何从SharedSource.resx和ViewModel.resx本地化DataAnnotations

时间:2017-12-28 21:10:59

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

.Net Core official documentation for localization中,提到了如何通过DataAnnotations从特殊.Net核心命名约定命名的特殊IStringLocalizer文件中resx进行本地化:< / p>

  

例如:
  资源/ ViewModels.Account.RegisterViewModel.fr.resx   资源/的ViewModels /帐户/ RegisterViewModel.fr.resx

或来自SharedResource.resx文件,其中所有数据注释将被本地化:

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc()
        .AddDataAnnotationsLocalization(options => {
            options.DataAnnotationLocalizerProvider = (type, factory) =>
                factory.Create(typeof(SharedResource));
        });
}
  

在前面的代码中,SharedResource是与存储验证消息的resx相对应的类。使用这种方法,DataAnnotations将只使用SharedResource,而不是每个类的资源。

我实际需要实现的是:定义哪个DataAnnotations将从SharedResource.resx文件进行本地化,哪一个将从ViewModel-specific.resx文件进行本地化。这在某种程度上是可能的吗?换句话说,我不想从不同的*.resx来源进行本地化(其中后备值是SharedResource.resx)。

1 个答案:

答案 0 :(得分:0)

下面的另一个问题回答了这个问题,感谢@Tseng:

How to change ViewModel display name without using `DisplayNameAttribute`?