Asp.net-Core
ASP.Net Core 本地化
ASP.Net 核心具有對本地化的新支持。
在我的項目中,我只需要一種語言。對於大多數文本和註釋,我可以用我的語言指定內容,但對於來自 ASP.Net Core 本身的文本,語言是英語。
例子:
- 密碼必須至少有一個大寫字母 (‘A’-‘Z’)。
- 密碼必須至少有一位數字 (‘0’-‘9’)。
- 使用者名“x@x.com”已被佔用。
- E-post 欄位不是有效的電子郵件地址。
- 值 ’’ 無效。
我試過手動設置文化,但語言仍然是英語。
app.UseRequestLocalization(new RequestLocalizationOptions { DefaultRequestCulture = new RequestCulture("nb-NO"), SupportedCultures = new List<CultureInfo> { new CultureInfo("nb-NO") }, SupportedUICultures = new List<CultureInfo> { new CultureInfo("nb-NO") } });如何更改 ASP.Net Core 的語言,或覆蓋其預設文本?
列出的錯誤消息在 ASP.NET Core Identity 中定義並由
IdentityErrorDescriber. 到目前為止我還沒有找到翻譯的資源文件,我認為它們沒有本地化。CultureInfo在我的系統(德語語言環境)上,儘管設置正確,但它們也沒有被翻譯。您可以配置自定義 IdentityErrorDescriber 以返回您自己的消息及其翻譯。例如, 如何更改 MVC Core ValidationSummary 的預設錯誤消息?
在
Configure方法中,Startup.cs您可以連接從IdentityErrorDescriberlike繼承的錯誤描述器類services.AddIdentity<ApplicationUser, IdentityRole>() .AddErrorDescriber<TranslatedIdentityErrorDescriber>();對於其他預設模型錯誤消息(如無效號碼),您可以在
ModelBindingMessageProvider. 此提供程序由 ASP.NET Core MVC 使用,也可以在其中進行配置Startup.cs。services.AddMvc( options => options.ModelBindingMessageProvider.ValueIsInvalidAccessor = s => $"My not valid text for {s}");