diff --git a/framework/src/Volo.Abp.Emailing/Volo.Abp.Emailing.csproj b/framework/src/Volo.Abp.Emailing/Volo.Abp.Emailing.csproj index 41f5193eb7..40fe0b3610 100644 --- a/framework/src/Volo.Abp.Emailing/Volo.Abp.Emailing.csproj +++ b/framework/src/Volo.Abp.Emailing/Volo.Abp.Emailing.csproj @@ -18,6 +18,11 @@ + + + + + diff --git a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/AbpEmailingModule.cs b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/AbpEmailingModule.cs index 55ec63b9ac..c2e29a7ff7 100644 --- a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/AbpEmailingModule.cs +++ b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/AbpEmailingModule.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.BackgroundJobs; +using Volo.Abp.Emailing.Localization; using Volo.Abp.Emailing.Templates; using Volo.Abp.Localization; using Volo.Abp.Modularity; @@ -30,6 +31,13 @@ namespace Volo.Abp.Emailing options.FileSets.AddEmbedded(); }); + Configure(options => + { + options.Resources + .Add("en") + .AddVirtualJson("/Volo/Abp/Emailing/Localization"); + }); + Configure(options => { options.AddJob(); diff --git a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/EmailSettingProvider.cs b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/EmailSettingProvider.cs index 32d1fb8c1c..0fb3402740 100644 --- a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/EmailSettingProvider.cs +++ b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/EmailSettingProvider.cs @@ -1,3 +1,5 @@ +using Volo.Abp.Emailing.Localization; +using Volo.Abp.Localization; using Volo.Abp.Settings; namespace Volo.Abp.Emailing @@ -11,16 +13,62 @@ namespace Volo.Abp.Emailing public override void Define(ISettingDefinitionContext context) { context.Add( - new SettingDefinition(EmailSettingNames.Smtp.Host, "127.0.0.1"), - new SettingDefinition(EmailSettingNames.Smtp.Port, "25"), - new SettingDefinition(EmailSettingNames.Smtp.UserName), - new SettingDefinition(EmailSettingNames.Smtp.Password, isEncrypted: true), - new SettingDefinition(EmailSettingNames.Smtp.Domain), - new SettingDefinition(EmailSettingNames.Smtp.EnableSsl, "false"), - new SettingDefinition(EmailSettingNames.Smtp.UseDefaultCredentials, "true"), - new SettingDefinition(EmailSettingNames.DefaultFromAddress, "noreply@abp.io"), - new SettingDefinition(EmailSettingNames.DefaultFromDisplayName, "ABP application") + new SettingDefinition( + EmailSettingNames.Smtp.Host, + "127.0.0.1", + L("DisplayName:Abp.Mailing.Smtp.Host"), + L("Description:Abp.Mailing.Smtp.Host")), + + new SettingDefinition(EmailSettingNames.Smtp.Port, + "25", + L("DisplayName:Abp.Mailing.Smtp.Port"), + L("Description:Abp.Mailing.Smtp.Port")), + + new SettingDefinition( + EmailSettingNames.Smtp.UserName, + displayName: L("DisplayName:Abp.Mailing.Smtp.UserName"), + description: L("Description:Abp.Mailing.Smtp.UserName")), + + new SettingDefinition( + EmailSettingNames.Smtp.Password, + displayName: + L("DisplayName:Abp.Mailing.Smtp.Password"), + description: L("Description:Abp.Mailing.Smtp.Password"), + isEncrypted: true), + + new SettingDefinition( + EmailSettingNames.Smtp.Domain, + displayName: L("DisplayName:Abp.Mailing.Smtp.Domain"), + description: L("Description:Abp.Mailing.Smtp.Domain")), + + new SettingDefinition( + EmailSettingNames.Smtp.EnableSsl, + "false", + L("DisplayName:Abp.Mailing.Smtp.EnableSsl"), + L("Description:Abp.Mailing.Smtp.EnableSsl")), + + new SettingDefinition( + EmailSettingNames.Smtp.UseDefaultCredentials, + "true", + L("DisplayName:Abp.Mailing.Smtp.UseDefaultCredentials"), + L("Description:Abp.Mailing.Smtp.UseDefaultCredentials")), + + new SettingDefinition( + EmailSettingNames.DefaultFromAddress, + "noreply@abp.io", + L("DisplayName:Abp.Mailing.DefaultFromAddress"), + L("Description:Abp.Mailing.DefaultFromAddress")), + + new SettingDefinition(EmailSettingNames.DefaultFromDisplayName, + "ABP application", + L("DisplayName:Abp.Mailing.DefaultFromDisplayName"), + L("Description:Abp.Mailing.DefaultFromDisplayName")) ); } + + private static LocalizableString L(string name) + { + return LocalizableString.Create(name); + } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/EmailingResource.cs b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/EmailingResource.cs new file mode 100644 index 0000000000..3560c0db26 --- /dev/null +++ b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/EmailingResource.cs @@ -0,0 +1,10 @@ +using Volo.Abp.Localization; + +namespace Volo.Abp.Emailing.Localization +{ + [LocalizationResourceName("AbpEmailing")] + public class EmailingResource + { + + } +} diff --git a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/en.json b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/en.json new file mode 100644 index 0000000000..6fa4e626ff --- /dev/null +++ b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/en.json @@ -0,0 +1,23 @@ +{ + "culture": "en", + "texts": { + "DisplayName:Abp.Mailing.DefaultFromAddress": "Default from address", + "DisplayName:Abp.Mailing.DefaultFromDisplayName": "Default from display name", + "DisplayName:Abp.Mailing.Smtp.Host": "Host", + "DisplayName:Abp.Mailing.Smtp.Port": "Port", + "DisplayName:Abp.Mailing.Smtp.UserName": "User name", + "DisplayName:Abp.Mailing.Smtp.Password": "Password", + "DisplayName:Abp.Mailing.Smtp.Domain": "Domain", + "DisplayName:Abp.Mailing.Smtp.EnableSsl": "Enable SSL", + "DisplayName:Abp.Mailing.Smtp.UseDefaultCredentials": "Use default credentials", + "Description:Abp.Mailing.DefaultFromAddress": "The default from address", + "Description:Abp.Mailing.DefaultFromDisplayName": "The default from display name", + "Description:Abp.Mailing.Smtp.Host": "The name or IP address of the host used for SMTP transactions.", + "Description:Abp.Mailing.Smtp.Port": "The port used for SMTP transactions.", + "Description:Abp.Mailing.Smtp.UserName": "User name associated with the credentials.", + "Description:Abp.Mailing.Smtp.Password": "The password for the user name associated with the credentials.", + "Description:Abp.Mailing.Smtp.Domain": "The domain or computer name that verifies the credentials.", + "Description:Abp.Mailing.Smtp.EnableSsl": "Whether the SmtpClient uses Secure Sockets Layer (SSL) to encrypt the connection.", + "Description:Abp.Mailing.Smtp.UseDefaultCredentials": "Whether the DefaultCredentials are sent with requests." + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/zh-Hans.json b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/zh-Hans.json new file mode 100644 index 0000000000..0e2d25bff1 --- /dev/null +++ b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/zh-Hans.json @@ -0,0 +1,23 @@ +{ + "culture": "zh-Hans", + "texts": { + "DisplayName:Abp.Mailing.DefaultFromAddress": "默认发件人地址", + "DisplayName:Abp.Mailing.DefaultFromDisplayName": "默认发件人名字", + "DisplayName:Abp.Mailing.Smtp.Host": "主机", + "DisplayName:Abp.Mailing.Smtp.Port": "端口", + "DisplayName:Abp.Mailing.Smtp.UserName": "用户名", + "DisplayName:Abp.Mailing.Smtp.Password": "密码", + "DisplayName:Abp.Mailing.Smtp.Domain": "域", + "DisplayName:Abp.Mailing.Smtp.EnableSsl": "启用SSL", + "DisplayName:Abp.Mailing.Smtp.UseDefaultCredentials": "使用默认凭据", + "Description:Abp.Mailing.DefaultFromAddress": "默认的发件人地址.", + "Description:Abp.Mailing.DefaultFromDisplayName": "默认的发件人名字.", + "Description:Abp.Mailing.Smtp.Host": "SMTP 事务的主机名或主机 IP 地址.", + "Description:Abp.Mailing.Smtp.Port": "SMTP 事务的端口.", + "Description:Abp.Mailing.Smtp.UserName": "凭据关联的用户名.", + "Description:Abp.Mailing.Smtp.Password": "凭据关联的用户名的密码.", + "Description:Abp.Mailing.Smtp.Domain": "验证凭据的域名或计算机名.", + "Description:Abp.Mailing.Smtp.EnableSsl": "指定 SmtpClient 是否使用安全套接字层 (SSL) 加密连接.", + "Description:Abp.Mailing.Smtp.UseDefaultCredentials": "控制默认凭据是否随请求一起发送." + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Localization/Volo.Abp.Localization.csproj b/framework/src/Volo.Abp.Localization/Volo.Abp.Localization.csproj index 5a8cac61ee..aad9dcf58d 100644 --- a/framework/src/Volo.Abp.Localization/Volo.Abp.Localization.csproj +++ b/framework/src/Volo.Abp.Localization/Volo.Abp.Localization.csproj @@ -14,6 +14,7 @@ + diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpLocalizationModule.cs b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpLocalizationModule.cs index 60df66feec..175e3f9d12 100644 --- a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpLocalizationModule.cs +++ b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpLocalizationModule.cs @@ -1,4 +1,5 @@ -using Volo.Abp.Localization.Resources.AbpValidation; +using Volo.Abp.Localization.Resources.AbpLocalization; +using Volo.Abp.Localization.Resources.AbpValidation; using Volo.Abp.Modularity; using Volo.Abp.Settings; using Volo.Abp.VirtualFileSystem; @@ -27,10 +28,16 @@ namespace Volo.Abp.Localization .Resources .Add("en"); + //TODO: Obsolete, Remove in the future version options .Resources .Add("en") - .AddVirtualJson("/Localization/Resources/AbpValidation"); + .AddVirtualJson("/Volo/Abp/Validation/Localization");//load from Volo.Abp.Validation + + options + .Resources + .Add("en") + .AddVirtualJson("/Localization/Resources/AbpLocalization"); }); } } diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/LocalizationSettingProvider.cs b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/LocalizationSettingProvider.cs index c748156506..14afe69dac 100644 --- a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/LocalizationSettingProvider.cs +++ b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/LocalizationSettingProvider.cs @@ -1,4 +1,5 @@ -using Volo.Abp.Settings; +using Volo.Abp.Localization.Resources.AbpValidation; +using Volo.Abp.Settings; namespace Volo.Abp.Localization { @@ -7,8 +8,17 @@ namespace Volo.Abp.Localization public override void Define(ISettingDefinitionContext context) { context.Add( - new SettingDefinition(LocalizationSettingNames.DefaultLanguage, "en", isVisibleToClients: true) + new SettingDefinition(LocalizationSettingNames.DefaultLanguage, + "en", + L("DisplayName:Abp.Localization.DefaultLanguage"), + L("Description:Abp.Localization.DefaultLanguage"), + isVisibleToClients: true) ); } + + private static LocalizableString L(string name) + { + return LocalizableString.Create(name); + } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/AbpLocalizationResource.cs b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/AbpLocalizationResource.cs new file mode 100644 index 0000000000..abfd1688b7 --- /dev/null +++ b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/AbpLocalizationResource.cs @@ -0,0 +1,10 @@ +using System; + +namespace Volo.Abp.Localization.Resources.AbpLocalization +{ + [LocalizationResourceName("AbpLocalization")] + public class AbpLocalizationResource + { + + } +} diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/en.json b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/en.json new file mode 100644 index 0000000000..aee47a44b6 --- /dev/null +++ b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/en.json @@ -0,0 +1,7 @@ +{ + "culture": "en", + "texts": { + "DisplayName:Abp.Localization.DefaultLanguage": "Default language", + "Description:Abp.Localization.DefaultLanguage": "The default language of the application." + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/zh-Hans.json b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/zh-Hans.json new file mode 100644 index 0000000000..7167aac9fd --- /dev/null +++ b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/zh-Hans.json @@ -0,0 +1,7 @@ +{ + "culture": "zh-Hans", + "texts": { + "DisplayName:Abp.Localization.DefaultLanguage": "默认语言", + "Description:Abp.Localization.DefaultLanguage": "应用程序的默认语言." + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/AbpValidationResource.cs b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/AbpValidationResource.cs index 667244886c..5d0151fe66 100644 --- a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/AbpValidationResource.cs +++ b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/AbpValidationResource.cs @@ -1,8 +1,11 @@ -namespace Volo.Abp.Localization.Resources.AbpValidation +using System; + +namespace Volo.Abp.Localization.Resources.AbpValidation { //TODO: Move to Volo.Abp.Validation! [LocalizationResourceName("AbpValidation")] + [Obsolete("This resource is obsolete.Use Volo.Abp.Validation.Localization.AbpValidationResource instead.", false)] public class AbpValidationResource { diff --git a/framework/src/Volo.Abp.Validation/Volo.Abp.Validation.csproj b/framework/src/Volo.Abp.Validation/Volo.Abp.Validation.csproj index c8cc738e98..9e1e81b1d9 100644 --- a/framework/src/Volo.Abp.Validation/Volo.Abp.Validation.csproj +++ b/framework/src/Volo.Abp.Validation/Volo.Abp.Validation.csproj @@ -1,4 +1,4 @@ - + @@ -13,8 +13,14 @@ + + + + + + diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/AbpValidationModule.cs b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/AbpValidationModule.cs index bb2d41f927..ad2be911de 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/AbpValidationModule.cs +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/AbpValidationModule.cs @@ -1,10 +1,16 @@ using System; using System.Collections.Generic; using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Localization; using Volo.Abp.Modularity; +using Volo.Abp.Validation.Localization; +using Volo.Abp.VirtualFileSystem; namespace Volo.Abp.Validation { + [DependsOn( + typeof(AbpLocalizationModule) + )] public class AbpValidationModule : AbpModule { public override void PreConfigureServices(ServiceConfigurationContext context) @@ -12,6 +18,20 @@ namespace Volo.Abp.Validation context.Services.OnRegistred(ValidationInterceptorRegistrar.RegisterIfNeeded); AutoAddObjectValidationContributors(context.Services); } + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + + Configure(options => + { + options.Resources + .Add("en") + .AddVirtualJson("/Volo/Abp/Validation/Localization"); + }); + } private static void AutoAddObjectValidationContributors(IServiceCollection services) { diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/AbpValidationResource.cs b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/AbpValidationResource.cs new file mode 100644 index 0000000000..0de105747d --- /dev/null +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/AbpValidationResource.cs @@ -0,0 +1,10 @@ +using Volo.Abp.Localization; + +namespace Volo.Abp.Validation.Localization +{ + [LocalizationResourceName("AbpValidation")] + public class AbpValidationResource + { + + } +} diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/cs.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/cs.json similarity index 100% rename from framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/cs.json rename to framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/cs.json diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/en.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/en.json similarity index 100% rename from framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/en.json rename to framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/en.json diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/es.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/es.json similarity index 100% rename from framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/es.json rename to framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/es.json diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/pl.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/pl.json similarity index 100% rename from framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/pl.json rename to framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/pl.json diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/pt-BR.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/pt-BR.json similarity index 100% rename from framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/pt-BR.json rename to framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/pt-BR.json diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/tr.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/tr.json similarity index 100% rename from framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/tr.json rename to framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/tr.json diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/vi.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/vi.json similarity index 100% rename from framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/vi.json rename to framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/vi.json diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/zh-Hans.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/zh-Hans.json similarity index 98% rename from framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/zh-Hans.json rename to framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/zh-Hans.json index d56c893c38..ac0c014967 100644 --- a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/zh-Hans.json +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/zh-Hans.json @@ -29,6 +29,6 @@ "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "字段必须是长度为{0}的字符串.", "ThisFieldMustBeAStringWithAMinimumLengthOf{1}AndAMaximumLengthOf{0}": "字段必须是最小长度为{1}并且最大长度{*}的字符串.", "ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "字段{0}不是有效的完全限定的http,https或ftp URL.", - "ThisFieldIsInvalid.": "字段是无效值." + "ThisFieldIsInvalid.": "该字段无效." } } \ No newline at end of file diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/en.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/en.json index bc507158b1..1f8c0f2eca 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/en.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/en.json @@ -35,6 +35,10 @@ "PasswordChanged": "Password changed", "NewPasswordConfirmFailed": "Please confirm the new password.", "Manage": "Manage", - "ManageYourProfile": "Manage your profile" + "ManageYourProfile": "Manage your profile", + "DisplayName:Abp.Account.IsSelfRegistrationEnabled": "Is self-registration enabled", + "Description:Abp.Account.IsSelfRegistrationEnabled": "Whether a user can register the account by him or herself.", + "DisplayName:Abp.Account.EnableLocalLogin": "Authenticate with a local account", + "Description:Abp.Account.EnableLocalLogin": "Indicates if Server will allow users to authenticate with a local account." } } \ No newline at end of file diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/zh-Hans.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/zh-Hans.json index 1db38474ae..391dee0531 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/zh-Hans.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/zh-Hans.json @@ -35,6 +35,10 @@ "PasswordChanged": "修改密码", "NewPasswordConfirmFailed": "请确认新密码", "Manage": "管理", - "ManageYourProfile": "管理你的个人资料" + "ManageYourProfile": "管理你的个人资料", + "DisplayName:Abp.Account.IsSelfRegistrationEnabled": "启用自行注册", + "Description:Abp.Account.IsSelfRegistrationEnabled": "是否允许用户自行注册帐户.", + "DisplayName:Abp.Account.EnableLocalLogin": "使用本地帐户进行身份验证", + "Description:Abp.Account.EnableLocalLogin": "服务器是否将允许用户使用本地帐户进行身份验证。" } } diff --git a/modules/account/src/Volo.Abp.Account.Web/Settings/AccountSettingDefinitionProvider.cs b/modules/account/src/Volo.Abp.Account.Web/Settings/AccountSettingDefinitionProvider.cs index be16fa7045..53c2df6fbd 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Settings/AccountSettingDefinitionProvider.cs +++ b/modules/account/src/Volo.Abp.Account.Web/Settings/AccountSettingDefinitionProvider.cs @@ -1,4 +1,6 @@ -using Volo.Abp.Settings; +using Volo.Abp.Account.Localization; +using Volo.Abp.Localization; +using Volo.Abp.Settings; namespace Volo.Abp.Account.Web.Settings { @@ -7,12 +9,25 @@ namespace Volo.Abp.Account.Web.Settings public override void Define(ISettingDefinitionContext context) { context.Add( - new SettingDefinition(AccountSettingNames.IsSelfRegistrationEnabled, "true") + new SettingDefinition( + AccountSettingNames.IsSelfRegistrationEnabled, + "true", + L("DisplayName:Abp.Account.IsSelfRegistrationEnabled"), + L("Description:Abp.Account.IsSelfRegistrationEnabled")) ); context.Add( - new SettingDefinition(AccountSettingNames.EnableLocalLogin, "true") + new SettingDefinition( + AccountSettingNames.EnableLocalLogin, + "true", + L("DisplayName:Abp.Account.EnableLocalLogin"), + L("Description:Abp.Account.EnableLocalLogin")) ); } + + private static LocalizableString L(string name) + { + return LocalizableString.Create(name); + } } } \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/en.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/en.json index 5b5927b9a1..e7a038fd57 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/en.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/en.json @@ -71,6 +71,32 @@ "Permission:Delete": "Delete", "Permission:ChangePermissions": "Change permissions", "Permission:UserManagement": "User management", - "Permission:UserLookup": "User lookup" + "Permission:UserLookup": "User lookup", + "DisplayName:Abp.Identity.Password.RequiredLength": "Required length", + "DisplayName:Abp.Identity.Password.RequiredUniqueChars": "Required unique characters number", + "DisplayName:Abp.Identity.Password.RequireNonAlphanumeric": "Required non-alphanumeric character", + "DisplayName:Abp.Identity.Password.RequireLowercase": "Required lower case character", + "DisplayName:Abp.Identity.Password.RequireUppercase": "Required upper case character", + "DisplayName:Abp.Identity.Password.RequireDigit": "Required digit", + "DisplayName:Abp.Identity.Lockout.AllowedForNewUsers": "Allowed for new users", + "DisplayName:Abp.Identity.Lockout.LockoutDuration": "Lockout duration(seconds)", + "DisplayName:Abp.Identity.Lockout.MaxFailedAccessAttempts": "Max failed access attempts", + "DisplayName:Abp.Identity.SignIn.RequireConfirmedEmail": "Require confirmed email", + "DisplayName:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Require confirmed phoneNumber", + "DisplayName:Abp.Identity.User.IsUserNameUpdateEnabled": "Is username update enabled", + "DisplayName:Abp.Identity.User.IsEmailUpdateEnabled": "Is email update enabled", + "Description:Abp.Identity.Password.RequiredLength": "The minimum length a password must be.", + "Description:Abp.Identity.Password.RequiredUniqueChars": "The minimum number of unique characters which a password must contain.", + "Description:Abp.Identity.Password.RequireNonAlphanumeric": "If passwords must contain a non-alphanumeric character.", + "Description:Abp.Identity.Password.RequireLowercase": "If passwords must contain a lower case ASCII character.", + "Description:Abp.Identity.Password.RequireUppercase": "If passwords must contain a upper case ASCII character.", + "Description:Abp.Identity.Password.RequireDigit": "If passwords must contain a digit.", + "Description:Abp.Identity.Lockout.AllowedForNewUsers": "Whether a new user can be locked out.", + "Description:Abp.Identity.Lockout.LockoutDuration": "The duration a user is locked out for when a lockout occurs.", + "Description:Abp.Identity.Lockout.MaxFailedAccessAttempts": "The number of failed access attempts allowed before a user is locked out, assuming lock out is enabled.", + "Description:Abp.Identity.SignIn.RequireConfirmedEmail": "Whether a confirmed email address is required to sign in.", + "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Whether a confirmed telephone number is required to sign in.", + "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Whether the username can be updated by the user.", + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Whether the email can be updated by the user." } } \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/zh-Hans.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/zh-Hans.json index 28786b8767..f57029eb9e 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/zh-Hans.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/zh-Hans.json @@ -71,6 +71,33 @@ "Permission:Delete": "删除", "Permission:ChangePermissions": "更改权限", "Permission:UserManagement": "用户管理", - "Permission:UserLookup": "用户查询" + "Permission:UserLookup": "用户查询", + "DisplayName:Abp.Identity.Password.RequiredLength": "要求长度", + "DisplayName:Abp.Identity.Password.RequiredUniqueChars": "要求唯一字符数量", + "DisplayName:Abp.Identity.Password.RequireNonAlphanumeric": "要求非字母数字", + "DisplayName:Abp.Identity.Password.RequireLowercase": "要求小写字母", + "DisplayName:Abp.Identity.Password.RequireUppercase": "要求大写字母", + "DisplayName:Abp.Identity.Password.RequireDigit": "要求数字", + "DisplayName:Abp.Identity.Lockout.AllowedForNewUsers": "允许新用户", + "DisplayName:Abp.Identity.Lockout.LockoutDuration": "锁定时间(秒)", + "DisplayName:Abp.Identity.Lockout.MaxFailedAccessAttempts": "最大失败访问尝试次数", + "DisplayName:Abp.Identity.SignIn.RequireConfirmedEmail": "要求验证的电子邮箱", + "DisplayName:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "要求验证的电话号码", + "DisplayName:Abp.Identity.User.IsUserNameUpdateEnabled": "启用用户名更新", + "DisplayName:Abp.Identity.User.IsEmailUpdateEnabled": "启用电子邮箱更新", + "Description:Abp.Identity.Password.RequiredLength": "密码的最小长度.", + "Description:Abp.Identity.Password.RequiredUniqueChars": "密码必须包含唯一字符的数量.", + "Description:Abp.Identity.Password.RequireNonAlphanumeric": "密码是否必须包含非字母数字.", + "Description:Abp.Identity.Password.RequireLowercase": "密码是否必须包含小写字母.", + "Description:Abp.Identity.Password.RequireUppercase": "密码是否必须包含大写字母.", + "Description:Abp.Identity.Password.RequireDigit": "密码是否必须包含数字.", + "Description:Abp.Identity.Lockout.AllowedForNewUsers": "允许新用户被锁定.", + "Description:Abp.Identity.Lockout.LockoutDuration": "当锁定发生时用户被的锁定的时间(秒).", + "Description:Abp.Identity.Lockout.MaxFailedAccessAttempts": "如果启用锁定, 当用户被锁定前失败的访问尝试次数.", + "Description:Abp.Identity.SignIn.RequireConfirmedEmail": "登录时是否需要验证的电子邮箱.", + "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "登录时是否需要验证的电话号码.", + "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "是否允许用户更新用户名.", + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "是否允许用户更新电子邮箱." + } } \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentitySettingDefinitionProvider.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentitySettingDefinitionProvider.cs index 0edeacf848..efae6e467a 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentitySettingDefinitionProvider.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentitySettingDefinitionProvider.cs @@ -1,4 +1,6 @@ -using Volo.Abp.Identity.Settings; +using Volo.Abp.Identity.Localization; +using Volo.Abp.Identity.Settings; +using Volo.Abp.Localization; using Volo.Abp.Settings; namespace Volo.Abp.Identity @@ -8,23 +10,91 @@ namespace Volo.Abp.Identity public override void Define(ISettingDefinitionContext context) { context.Add( - new SettingDefinition(IdentitySettingNames.Password.RequiredLength, 6.ToString(), null, null, true), - new SettingDefinition(IdentitySettingNames.Password.RequiredUniqueChars, 1.ToString(), null, null, true), - new SettingDefinition(IdentitySettingNames.Password.RequireNonAlphanumeric, true.ToString(), null, null, true), - new SettingDefinition(IdentitySettingNames.Password.RequireLowercase, true.ToString(), null, null, true), - new SettingDefinition(IdentitySettingNames.Password.RequireUppercase, true.ToString(), null, null, true), - new SettingDefinition(IdentitySettingNames.Password.RequireDigit, true.ToString(), null, null, true), - - new SettingDefinition(IdentitySettingNames.Lockout.AllowedForNewUsers, true.ToString(), null, null, true), - new SettingDefinition(IdentitySettingNames.Lockout.LockoutDuration, (5*60).ToString(), null, null, true), - new SettingDefinition(IdentitySettingNames.Lockout.MaxFailedAccessAttempts, 5.ToString(), null, null, true), - - new SettingDefinition(IdentitySettingNames.SignIn.RequireConfirmedEmail, false.ToString(), null, null, true), - new SettingDefinition(IdentitySettingNames.SignIn.RequireConfirmedPhoneNumber, false.ToString(), null, null, true), - - new SettingDefinition(IdentitySettingNames.User.IsUserNameUpdateEnabled, true.ToString(), null, null, true), - new SettingDefinition(IdentitySettingNames.User.IsEmailUpdateEnabled, true.ToString(), null, null, true) + new SettingDefinition( + IdentitySettingNames.Password.RequiredLength, + 6.ToString(), + L("DisplayName:Abp.Identity.Password.RequiredLength"), + L("Description:Abp.Identity.Password.RequiredLength"), + true), + + new SettingDefinition( + IdentitySettingNames.Password.RequiredUniqueChars, + 1.ToString(), + L("DisplayName:Abp.Identity.Password.RequiredUniqueChars"), + L("Description:Abp.Identity.Password.RequiredUniqueChars"), + true), + + new SettingDefinition( + IdentitySettingNames.Password.RequireNonAlphanumeric, + true.ToString(), + L("DisplayName:Abp.Identity.Password.RequireNonAlphanumeric"), + L("Description:Abp.Identity.Password.RequireNonAlphanumeric"), + true), + + new SettingDefinition( + IdentitySettingNames.Password.RequireLowercase, + true.ToString(), L("DisplayName:Abp.Identity.Password.RequireLowercase"), + L("Description:Abp.Identity.Password.RequireLowercase"), + true), + + new SettingDefinition( + IdentitySettingNames.Password.RequireUppercase, + true.ToString(), L("DisplayName:Abp.Identity.Password.RequireUppercase"), + L("Description:Abp.Identity.Password.RequireUppercase"), + true), + + new SettingDefinition( + IdentitySettingNames.Password.RequireDigit, + true.ToString(), L("DisplayName:Abp.Identity.Password.RequireDigit"), + L("Description:Abp.Identity.Password.RequireDigit"), + true), + + new SettingDefinition( + IdentitySettingNames.Lockout.AllowedForNewUsers, + true.ToString(), L("DisplayName:Abp.Identity.Lockout.AllowedForNewUsers"), + L("Description:Abp.Identity.Lockout.AllowedForNewUsers"), + true), + + new SettingDefinition( + IdentitySettingNames.Lockout.LockoutDuration, + (5*60).ToString(), L("DisplayName:Abp.Identity.Lockout.LockoutDuration"), + L("Description:Abp.Identity.Lockout.LockoutDuration"), + true), + + new SettingDefinition( + IdentitySettingNames.Lockout.MaxFailedAccessAttempts, + 5.ToString(), L("DisplayName:Abp.Identity.Lockout.MaxFailedAccessAttempts"), + L("Description:Abp.Identity.Lockout.MaxFailedAccessAttempts"), + true), + + new SettingDefinition( + IdentitySettingNames.SignIn.RequireConfirmedEmail, + false.ToString(), L("DisplayName:Abp.Identity.SignIn.RequireConfirmedEmail"), + L("Description:Abp.Identity.SignIn.RequireConfirmedEmail"), + true), + new SettingDefinition( + IdentitySettingNames.SignIn.RequireConfirmedPhoneNumber, + false.ToString(), L("DisplayName:Abp.Identity.SignIn.RequireConfirmedPhoneNumber"), + L("Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber"), + true), + + new SettingDefinition( + IdentitySettingNames.User.IsUserNameUpdateEnabled, + true.ToString(), L("DisplayName:Abp.Identity.User.IsUserNameUpdateEnabled"), + L("Description:Abp.Identity.User.IsUserNameUpdateEnabled"), + true), + + new SettingDefinition( + IdentitySettingNames.User.IsEmailUpdateEnabled, + true.ToString(), L("DisplayName:Abp.Identity.User.IsEmailUpdateEnabled"), + L("Description:Abp.Identity.User.IsEmailUpdateEnabled"), + true) ); } + + private static LocalizableString L(string name) + { + return LocalizableString.Create(name); + } } }