如何使用实体框架核心中的资源来制作多语言应用程序?
how to using resources in entity frame work core for making Multilanguage Application?
祝你有个愉快的一天。
我想在 .net core 5 中制作多语言应用程序。
我们有资源并在 viewModel 基础应用程序中使用 DisplayName 属性。
但是我们如何创建多语言应用程序或使用 EfCore 中的资源?
[Display(Name = "Email", ResourceType = typeof(Resource))]
public string Email { get; set; }
这里的typeof(Resource)是资源的文件名
作为另一种解决方案,您可以使用推荐的方法将本地化添加到您的 ASP.NET 核心应用程序中,该方法将默认语言的资源作为键提供,并且仅在以后根据需要添加其他资源。
综上所述,本地化您的应用程序的步骤大致如下:
- 添加所需的本地化服务
- 配置本地化中间件,必要时配置文化
供应商
- 将 IStringLocalizer 注入到您的控制器和服务中
本地化字符串
- 将 IViewLocalizer 注入您的视图以本地化视图中的字符串
- 为非默认文化添加资源文件
- 添加用户选择文化的机制
查看 this article 了解详细演练。
我找到了解决方案。
我正在开发一个使用 Fluent 部署的 Code-First 应用程序,我想用其他语言实现验证错误消息。
我做了这个步骤:
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
祝你有个愉快的一天。
我想在 .net core 5 中制作多语言应用程序。
我们有资源并在 viewModel 基础应用程序中使用 DisplayName 属性。 但是我们如何创建多语言应用程序或使用 EfCore 中的资源?
[Display(Name = "Email", ResourceType = typeof(Resource))]
public string Email { get; set; }
这里的typeof(Resource)是资源的文件名
作为另一种解决方案,您可以使用推荐的方法将本地化添加到您的 ASP.NET 核心应用程序中,该方法将默认语言的资源作为键提供,并且仅在以后根据需要添加其他资源。
综上所述,本地化您的应用程序的步骤大致如下:
- 添加所需的本地化服务
- 配置本地化中间件,必要时配置文化 供应商
- 将 IStringLocalizer 注入到您的控制器和服务中 本地化字符串
- 将 IViewLocalizer 注入您的视图以本地化视图中的字符串
- 为非默认文化添加资源文件
- 添加用户选择文化的机制
查看 this article 了解详细演练。
我找到了解决方案。
我正在开发一个使用 Fluent 部署的 Code-First 应用程序,我想用其他语言实现验证错误消息。
我做了这个步骤:
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