如何使用实体框架核心中的资源来制作多语言应用程序?

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 核心应用程序中,该方法将默认语言的资源作为键提供,并且仅在以后根据需要添加其他资源。

综上所述,本地化您的应用程序的步骤大致如下:

  1. 添加所需的本地化服务
  2. 配置本地化中间件,必要时配置文化 供应商
  3. 将 IStringLocalizer 注入到您的控制器和服务中 本地化字符串
  4. 将 IViewLocalizer 注入您的视图以本地化视图中的字符串
  5. 为非默认文化添加资源文件
  6. 添加用户选择文化的机制

查看 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