首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET核DisplayAttribute定位

ASP.NET核DisplayAttribute定位
EN

Stack Overflow用户
提问于 2016-06-15 11:06:26
回答 5查看 17.1K关注 0票数 17

根据文档

运行时不查找非验证属性的本地化字符串。在上面的代码中,“Email”(从Display(Name = "Email"))不会被本地化。

我正在寻找一种在DisplayAttribute中本地化文本的方法。有什么建议来正确地做这件事吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-06-17 16:20:11

您可以在ResourceType上设置DisplayAttribute,这可以用于本地化文本。

将资源.resx文件添加到项目中,例如MyResources.resx,并为您的字段添加资源:

然后在您的MyResources中引用字段的名称和DisplayAttribute类型

代码语言:javascript
复制
[Display(Name = "RememberMe", ResourceType  = typeof(MyResources))]
public bool RememberMe { get; set; }

本地化资源将自动完成(请参阅文本框)

票数 17
EN

Stack Overflow用户

发布于 2017-09-11 16:11:33

拥有一个用于所有本地化的中心位置,无论是在视图中还是在数据注释中,都是我能想到的最好的方法,这就是我如何工作的方法。在Startup.cs文件中,在安装nuget包以进行本地化后,添加以下代码

代码语言:javascript
复制
services.AddMvc().AddViewLocalization().AddDataAnnotationsLocalization(options => 
    options.DataAnnotationLocalizerProvider = (type, factory) => new StringLocalizer<Resources>(factory));

services.Configure<RequestLocalizationOptions>(options => {
   var cultures = new[]
   {
       new CultureInfo("en"),
       new CultureInfo("ar")
   };
   options.DefaultRequestCulture = new RequestCulture("en", "en");
   options.SupportedCultures = cultures;
   options.SupportedUICultures = cultures;
});

这样,DataAnnotationLocalizerProvider将来自Resources.{culture}.rex (资源文件必须具有No code gen的访问修饰符),假设默认语言不需要任何资源,并且能够访问资源文件,因为没有生成代码,必须创建同名的空类。

_ViewImports.cshtml文件中注入以下内容

代码语言:javascript
复制
@inject IHtmlLocalizer<Resources> Localizer

通过这样做,您现在有了一个全局变量定位器,可以在任何视图中用于本地化目的。

您可以找到关于ASP.NET核心的全球化与本土化的更多信息。

票数 11
EN

Stack Overflow用户

发布于 2018-05-24 11:25:22

对于那些在错误中挣扎的人(卢修斯,弗拉季斯拉夫):

无法检索属性“名称”,因为本地化失败。类型'Xxxx.EmployeeResx‘不是公共的,或者不包含名称为'FirstName’的公共静态字符串属性。

这是由.resx文件上的访问修饰符引起的,默认情况下,它被设置为内部(在我的例子中,它不是代码生成)。在资源文件工具栏中的Access修饰符下拉列表中将其更改为公共

在此之后,您应该能够看到资源类型中的属性:

另外,考虑不要在字段名中使用特殊的符号,因为它们是自动生成的C#属性名称的基础。字段名被转换为C#友好名称,这就是为什么资源文件字段的名称和自动生成的属性名称之间的不一致。最好避免任何连字符,-或点,.下划线,_很好。始终可以在相关资源文件下的resource_file_name.Designer.cs类中查找自动生成的属性的外观。

非常感谢Bala Murugan在代码摘要上写了一篇关于这个话题的好文章。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37833661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档