在.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
)。
答案 0 :(得分:0)
下面的另一个问题回答了这个问题,感谢@Tseng:
How to change ViewModel display name without using `DisplayNameAttribute`?