问题描述
希望有美好的一天。
我想在 .net core 5 中创建一个多语言应用程序。
我们有资源并在 viewmodel 基础应用程序中使用 displayName 属性。 但是我们如何创建多语言应用程序或使用 EfCore 中的资源?
解决方法
[Display(Name = "Email",ResourceType = typeof(Resource))]
public string Email { get; set; }
这里,typeof(Resource) 是资源的文件名。
,作为另一种解决方案,您可以使用推荐的方法向 ASP.NET Core 应用程序添加本地化,即提供默认语言的资源作为键,然后仅根据需要添加其他资源。
总而言之,本地化您的应用程序的步骤大致如下:
- 添加所需的本地化服务
- 配置本地化中间件,必要时配置文化 提供者
- 将 IStringLocalizer 注入您的控制器和服务中 本地化字符串
- 将 IViewLocalizer 注入您的视图以本地化视图中的字符串
- 为非默认文化添加资源文件
- 为用户添加选择文化的机制
查看 this article 以获得详细的演练。
,我找到了解决方案。
我正在开发一个使用 Fluent 部署的代码优先应用程序,我想以其他语言实现验证错误消息。
我做了这个步骤:
1- 为消息和属性名称创建 .resx 文件。
2- 我使用了 FluentValidation 库:
https://docs.fluentvalidation.net/en/latest/index.html
3- 我使用 Errors.resx 传递了波斯语错误并使用 Names.resx 传递了属性名称
RuleFor(c => c.EndDate).MaximumLength(10).WithMessage(Errors.MaxLength).WithName(Names.EndDate);
Errors.MaxLength 来自 Errors.resx,Names.EnDate 来自 Names.resx