EvgeniyZ Asked:2020-07-02 01:08:33 +0800 CST2020-07-02 01:08:33 +0800 CST 2020-07-02 01:08:33 +0800 CST 验证消息的翻译 772 我正在 Asp.Net Core 上创建一个站点,它有一个注册和一个反馈表。验证在表单中设置(是否填写字段、字符数等)。 表格没有问题,一切正常,但运气不好 - 验证消息以英文发出。 求助,如何翻译这些信息? 验证是如何实现的 翻译繁琐的图(红字): asp.net-core 3 个回答 Voted Best Answer Dev 2020-11-20T00:35:26+08:002020-11-20T00:35:26+08:00 将错误文本ErrorMessage = "My mistake" 添加到模型的验证属性中(仅以俄语显示)。 为多语言站点使用资源 ( ErrorMessageResourceName ) Alexandr 2020-11-24T22:38:56+08:002020-11-24T22:38:56+08:00 摘自《ASP.NET Core应用程序开发》一书 数据注释 代码库中还剩下最后一个地方可以包含可本地化的文本。视图模型类中使用的数据注释后来被 Razor 中的标签助手用来显示适当的标签和验证错误消息。考虑在帐户/登录视图中使用的 LoginViewModel 类。帐户/登录中使用的 LoginViewModel 类 public class LoginViewModel { [Required(ErrorMessage = "Email is required")] [EmailAddress(ErrorMessage = "Not a valid email address")] [Display(Name= "Email")] public string Email { get; set; } [Required(ErrorMessage = "Password is required")] [DataType(DataType.Password)] [Display(Name="Password")] public string Password { get; set; } [Display(Name = "Remember me?")] public bool RememberMe { get; set; } } 数据注释错误消息的本地化版本在运行时使用类似于 IStringLocalizer 使用的命名约定从资源文件加载。可以从 Resources/Models 资源文件加载加拿大法语文本。AccountViewModels.LoginViewModel.fr-CA.resx。请注意,在撰写本文时,Display 属性中指定的名称值尚未本地化。ASP.NET Core MVC 1.1 发布时将支持显示名称本地化。 Alexandr 2020-11-19T23:52:40+08:002020-11-19T23:52:40+08:00 在视图中,只需找到这些验证并将英文消息替换为俄文消息即可。如果您是通过英语工作室的模板完成的,请不要忘记检查文件编码,因为在英语版本中 utf8 没有 BOM。是的,如果您自己编写验证,这是合适的,但是这里您需要在属性中用俄语写一个错误
将错误文本ErrorMessage = "My mistake" 添加到模型的验证属性中(仅以俄语显示)。
为多语言站点使用资源 ( ErrorMessageResourceName )
摘自《ASP.NET Core应用程序开发》一书
数据注释 代码库中还剩下最后一个地方可以包含可本地化的文本。视图模型类中使用的数据注释后来被 Razor 中的标签助手用来显示适当的标签和验证错误消息。考虑在帐户/登录视图中使用的 LoginViewModel 类。帐户/登录中使用的 LoginViewModel 类
数据注释错误消息的本地化版本在运行时使用类似于 IStringLocalizer 使用的命名约定从资源文件加载。可以从 Resources/Models 资源文件加载加拿大法语文本。AccountViewModels.LoginViewModel.fr-CA.resx。请注意,在撰写本文时,Display 属性中指定的名称值尚未本地化。ASP.NET Core MVC 1.1 发布时将支持显示名称本地化。
在视图中,只需找到这些验证并将英文消息替换为俄文消息即可。如果您是通过英语工作室的模板完成的,请不要忘记检查文件编码,因为在英语版本中 utf8 没有 BOM。是的,如果您自己编写验证,这是合适的,但是这里您需要在属性中用俄语写一个错误