From 49e031c7bd4c7de351f976bcf9c111946a9cc1e1 Mon Sep 17 00:00:00 2001 From: Ilkay Ilknur Date: Fri, 13 Nov 2020 16:25:33 +0300 Subject: [PATCH 1/8] blazor ui message documentation added. --- docs/en/UI/Blazor/Message.md | 100 +++++++++++++++++++++- docs/en/images/blazor-message-confirm.png | Bin 0 -> 11079 bytes docs/en/images/blazor-message-error.png | Bin 0 -> 8196 bytes docs/en/images/blazor-message-success.png | Bin 0 -> 11858 bytes 4 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 docs/en/images/blazor-message-confirm.png create mode 100644 docs/en/images/blazor-message-error.png create mode 100644 docs/en/images/blazor-message-success.png diff --git a/docs/en/UI/Blazor/Message.md b/docs/en/UI/Blazor/Message.md index 8373bd1d82..962c93512a 100644 --- a/docs/en/UI/Blazor/Message.md +++ b/docs/en/UI/Blazor/Message.md @@ -1,3 +1,101 @@ # Blazor: UI Message Service -TODO \ No newline at end of file +UI message service is used to show nice-looking messages to the user as a blocking dialog. + +## Quick Example + +Simply inject `IUiMessageService` to your page or component and call the `Success` method to show a success message. + +```csharp +namespace MyProject.Blazor.Pages +{ + public partial class Index + { + public IUiMessageService UiMessageService { get; set; } + + public async Task SaveAsync() + { + await UiMessageService.Success("Your changes have been successfully saved!", "Congratulations"); + } + } +} +``` + +It will show a dialog on the UI: + +![blazor-message-success](../../images/blazor-message-success.png) + +## Informative Messages + +There are four types of informative message functions: + +* `Info(...)` +* `Success(...)` +* `Warn(...)` +* `Error(...)` + +All of these methods get three parameters: + +* `message`: The message (`string`) to be shown. +* `title`: An optional (`string`) title. +* `options`: An optional (`Action`) to configure UI message options. + +**Example: Show an error message** + +````csharp +UiMessageService.Error('Your credit card number is not valid!'); +```` + +![blazor-message-success](../../images/blazor-message-error.png) + + +## Confirmation Message + +`IUiMessage.Confirm(...)` method can be used to get a confirmation from the user. + +**Example** + +Use the following code to get a confirmation result from the user: + +```csharp +public async Task DeleteAsync() +{ + var confirmed = await UiMessageService.Confirm("Are you sure to delete the 'admin' role?"); + if(confirmed) + { + //Delete the 'admin' role here. + } +} +``` + +The resulting UI will be like shown below: + +![blazor-message-confirm](../../images/blazor-message-confirm.png) + +If the user has clicked the `Yes` button, the `Confirm` method's return value will be `true`. + +## UI Message Configuration + +It is easy to change default UI Message options if you like to customize messages. Provide an `action` to the `options` parameter and change the default values. + +```csharp +await UiMessageService.Success("Your changes have been successfully saved!", "Congratulations", (options) => + { + options.MessageIcon = "msg-icon-new"; + options.CenterMessage = false; + }); +``` + +List of the options that you can change by providing the `action` parameter. + +* `CenterMessage` : (Default: true) If true, the message dialogue will be centered on the screen. +* `ShowMessageIcon` : (Default: true) If true, the message dialogue will show the large icon for the current message type. +* `MessageIcon` : Overrides the build-in message icon. +* `OkButtonText` : Custom text for the Ok button. +* `OkButtonIcon` : Custom icon for the Ok button. +* `ConfirmButtonText` : Custom text for the Confirmation button. +* `ConfirmButtonIcon` : Custom icon for the Confirmation button. +* `CancelButtonText` : Custom text for the Cancel button. +* `CancelButtonIcon` : Custom icon for the Cancel button. + +> "Confirm", "Cancel" and "Yes" texts are automatically localized based on the current language. \ No newline at end of file diff --git a/docs/en/images/blazor-message-confirm.png b/docs/en/images/blazor-message-confirm.png new file mode 100644 index 0000000000000000000000000000000000000000..fe036202836dbbab813f508bb39cf005561954ed GIT binary patch literal 11079 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 literal 0 HcmV?d00001 diff --git a/docs/en/images/blazor-message-error.png b/docs/en/images/blazor-message-error.png new file mode 100644 index 0000000000000000000000000000000000000000..5192eae1e9a0b22ad2c85d09e289cb2f1fa05d16 GIT binary patch literal 8196 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 GAO8jAhWFb5 literal 0 HcmV?d00001 From 8f40ffa39bc9e33d4f535579fd2755e5f5a2ffb6 Mon Sep 17 00:00:00 2001 From: Ilkay Ilknur Date: Mon, 16 Nov 2020 18:06:00 +0300 Subject: [PATCH 2/8] document updates based on feedback. --- docs/en/UI/Blazor/Message.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/docs/en/UI/Blazor/Message.md b/docs/en/UI/Blazor/Message.md index 962c93512a..569057acbf 100644 --- a/docs/en/UI/Blazor/Message.md +++ b/docs/en/UI/Blazor/Message.md @@ -13,6 +13,11 @@ namespace MyProject.Blazor.Pages { public IUiMessageService UiMessageService { get; set; } + public Index(IUiMessageService uiMessageService) + { + UiMessageService = uiMessageService; + } + public async Task SaveAsync() { await UiMessageService.Success("Your changes have been successfully saved!", "Congratulations"); @@ -25,6 +30,22 @@ It will show a dialog on the UI: ![blazor-message-success](../../images/blazor-message-success.png) +If you inherit your page or component from `AbpComponentBase` class, you can use the `Message` property to access the `IUiMessageService`. + +```csharp +namespace MyProject.Blazor.Pages +{ + public partial class Index : AbpComponentBase + { + public async Task SaveAsync() + { + await Message.Success("Your changes have been successfully saved!", "Congratulations"); + } + } +} +``` + + ## Informative Messages There are four types of informative message functions: @@ -51,7 +72,7 @@ UiMessageService.Error('Your credit card number is not valid!'); ## Confirmation Message -`IUiMessage.Confirm(...)` method can be used to get a confirmation from the user. +`IUiMessageService.Confirm(...)` method can be used to get a confirmation from the user. **Example** From 3511de5b3fcffaf8043fa58d8f85c767c489c2f6 Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 17 Nov 2020 14:36:50 +0800 Subject: [PATCH 3/8] Add CorsOrigin when create identity server client. --- .../IdentityServerDataSeedContributor.cs | 26 +++++++++++++++---- .../IdentityServerDataSeedContributor.cs | 26 +++++++++++++++---- 2 files changed, 42 insertions(+), 10 deletions(-) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/IdentityServer/IdentityServerDataSeedContributor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/IdentityServer/IdentityServerDataSeedContributor.cs index 39cd540f46..badfde46da 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/IdentityServer/IdentityServerDataSeedContributor.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/IdentityServer/IdentityServerDataSeedContributor.cs @@ -158,7 +158,8 @@ namespace MyCompanyName.MyProjectName.IdentityServer secret: (configurationSection["MyProjectName_Web:ClientSecret"] ?? "1q2w3e*").Sha256(), redirectUri: $"{webClientRootUrl}signin-oidc", postLogoutRedirectUri: $"{webClientRootUrl}signout-callback-oidc", - frontChannelLogoutUri: $"{webClientRootUrl}Account/FrontChannelLogout" + frontChannelLogoutUri: $"{webClientRootUrl}Account/FrontChannelLogout", + corsOrigins: new[] { webClientRootUrl } ); } @@ -175,7 +176,8 @@ namespace MyCompanyName.MyProjectName.IdentityServer secret: (configurationSection["MyProjectName_App:ClientSecret"] ?? "1q2w3e*").Sha256(), requireClientSecret: false, redirectUri: webClientRootUrl, - postLogoutRedirectUri: webClientRootUrl + postLogoutRedirectUri: webClientRootUrl, + corsOrigins: new[] { webClientRootUrl } ); } @@ -192,7 +194,8 @@ namespace MyCompanyName.MyProjectName.IdentityServer secret: configurationSection["MyProjectName_Blazor:ClientSecret"]?.Sha256(), requireClientSecret: false, redirectUri: $"{blazorRootUrl}/authentication/login-callback", - postLogoutRedirectUri: $"{blazorRootUrl}/authentication/logout-callback" + postLogoutRedirectUri: $"{blazorRootUrl}/authentication/logout-callback", + corsOrigins: new[] { blazorRootUrl } ); } @@ -208,7 +211,8 @@ namespace MyCompanyName.MyProjectName.IdentityServer grantTypes: new[] { "authorization_code" }, secret: configurationSection["MyProjectName_Swagger:ClientSecret"]?.Sha256(), requireClientSecret: false, - redirectUri: $"{swaggerRootUrl}/swagger/oauth2-redirect.html" + redirectUri: $"{swaggerRootUrl}/swagger/oauth2-redirect.html", + corsOrigins: new[] { swaggerRootUrl } ); } } @@ -223,7 +227,8 @@ namespace MyCompanyName.MyProjectName.IdentityServer string frontChannelLogoutUri = null, bool requireClientSecret = true, bool requirePkce = false, - IEnumerable permissions = null) + IEnumerable permissions = null, + IEnumerable corsOrigins = null) { var client = await _clientRepository.FindByClientIdAsync(name); if (client == null) @@ -302,6 +307,17 @@ namespace MyCompanyName.MyProjectName.IdentityServer ); } + if (corsOrigins != null) + { + foreach (var origin in corsOrigins) + { + if (client.FindCorsOrigin(origin) == null) + { + client.AddCorsOrigin(origin); + } + } + } + return await _clientRepository.UpdateAsync(client); } } diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/IdentityServer/IdentityServerDataSeedContributor.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/IdentityServer/IdentityServerDataSeedContributor.cs index 39cd540f46..badfde46da 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/IdentityServer/IdentityServerDataSeedContributor.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/IdentityServer/IdentityServerDataSeedContributor.cs @@ -158,7 +158,8 @@ namespace MyCompanyName.MyProjectName.IdentityServer secret: (configurationSection["MyProjectName_Web:ClientSecret"] ?? "1q2w3e*").Sha256(), redirectUri: $"{webClientRootUrl}signin-oidc", postLogoutRedirectUri: $"{webClientRootUrl}signout-callback-oidc", - frontChannelLogoutUri: $"{webClientRootUrl}Account/FrontChannelLogout" + frontChannelLogoutUri: $"{webClientRootUrl}Account/FrontChannelLogout", + corsOrigins: new[] { webClientRootUrl } ); } @@ -175,7 +176,8 @@ namespace MyCompanyName.MyProjectName.IdentityServer secret: (configurationSection["MyProjectName_App:ClientSecret"] ?? "1q2w3e*").Sha256(), requireClientSecret: false, redirectUri: webClientRootUrl, - postLogoutRedirectUri: webClientRootUrl + postLogoutRedirectUri: webClientRootUrl, + corsOrigins: new[] { webClientRootUrl } ); } @@ -192,7 +194,8 @@ namespace MyCompanyName.MyProjectName.IdentityServer secret: configurationSection["MyProjectName_Blazor:ClientSecret"]?.Sha256(), requireClientSecret: false, redirectUri: $"{blazorRootUrl}/authentication/login-callback", - postLogoutRedirectUri: $"{blazorRootUrl}/authentication/logout-callback" + postLogoutRedirectUri: $"{blazorRootUrl}/authentication/logout-callback", + corsOrigins: new[] { blazorRootUrl } ); } @@ -208,7 +211,8 @@ namespace MyCompanyName.MyProjectName.IdentityServer grantTypes: new[] { "authorization_code" }, secret: configurationSection["MyProjectName_Swagger:ClientSecret"]?.Sha256(), requireClientSecret: false, - redirectUri: $"{swaggerRootUrl}/swagger/oauth2-redirect.html" + redirectUri: $"{swaggerRootUrl}/swagger/oauth2-redirect.html", + corsOrigins: new[] { swaggerRootUrl } ); } } @@ -223,7 +227,8 @@ namespace MyCompanyName.MyProjectName.IdentityServer string frontChannelLogoutUri = null, bool requireClientSecret = true, bool requirePkce = false, - IEnumerable permissions = null) + IEnumerable permissions = null, + IEnumerable corsOrigins = null) { var client = await _clientRepository.FindByClientIdAsync(name); if (client == null) @@ -302,6 +307,17 @@ namespace MyCompanyName.MyProjectName.IdentityServer ); } + if (corsOrigins != null) + { + foreach (var origin in corsOrigins) + { + if (client.FindCorsOrigin(origin) == null) + { + client.AddCorsOrigin(origin); + } + } + } + return await _clientRepository.UpdateAsync(client); } } From 4187791fe906c7b321c7d776285d9e7d87b02e5f Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 17 Nov 2020 14:51:06 +0800 Subject: [PATCH 4/8] Remove the slash at the end of the url. --- .../IdentityServer/IdentityServerDataSeedContributor.cs | 8 ++++---- .../IdentityServer/IdentityServerDataSeedContributor.cs | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/IdentityServer/IdentityServerDataSeedContributor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/IdentityServer/IdentityServerDataSeedContributor.cs index badfde46da..d738cb8217 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/IdentityServer/IdentityServerDataSeedContributor.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/IdentityServer/IdentityServerDataSeedContributor.cs @@ -159,7 +159,7 @@ namespace MyCompanyName.MyProjectName.IdentityServer redirectUri: $"{webClientRootUrl}signin-oidc", postLogoutRedirectUri: $"{webClientRootUrl}signout-callback-oidc", frontChannelLogoutUri: $"{webClientRootUrl}Account/FrontChannelLogout", - corsOrigins: new[] { webClientRootUrl } + corsOrigins: new[] { webClientRootUrl.RemovePostFix("/") } ); } @@ -177,7 +177,7 @@ namespace MyCompanyName.MyProjectName.IdentityServer requireClientSecret: false, redirectUri: webClientRootUrl, postLogoutRedirectUri: webClientRootUrl, - corsOrigins: new[] { webClientRootUrl } + corsOrigins: new[] { webClientRootUrl.RemovePostFix("/") } ); } @@ -195,7 +195,7 @@ namespace MyCompanyName.MyProjectName.IdentityServer requireClientSecret: false, redirectUri: $"{blazorRootUrl}/authentication/login-callback", postLogoutRedirectUri: $"{blazorRootUrl}/authentication/logout-callback", - corsOrigins: new[] { blazorRootUrl } + corsOrigins: new[] { blazorRootUrl.RemovePostFix("/") } ); } @@ -212,7 +212,7 @@ namespace MyCompanyName.MyProjectName.IdentityServer secret: configurationSection["MyProjectName_Swagger:ClientSecret"]?.Sha256(), requireClientSecret: false, redirectUri: $"{swaggerRootUrl}/swagger/oauth2-redirect.html", - corsOrigins: new[] { swaggerRootUrl } + corsOrigins: new[] { swaggerRootUrl.RemovePostFix("/") } ); } } diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/IdentityServer/IdentityServerDataSeedContributor.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/IdentityServer/IdentityServerDataSeedContributor.cs index badfde46da..d738cb8217 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/IdentityServer/IdentityServerDataSeedContributor.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/IdentityServer/IdentityServerDataSeedContributor.cs @@ -159,7 +159,7 @@ namespace MyCompanyName.MyProjectName.IdentityServer redirectUri: $"{webClientRootUrl}signin-oidc", postLogoutRedirectUri: $"{webClientRootUrl}signout-callback-oidc", frontChannelLogoutUri: $"{webClientRootUrl}Account/FrontChannelLogout", - corsOrigins: new[] { webClientRootUrl } + corsOrigins: new[] { webClientRootUrl.RemovePostFix("/") } ); } @@ -177,7 +177,7 @@ namespace MyCompanyName.MyProjectName.IdentityServer requireClientSecret: false, redirectUri: webClientRootUrl, postLogoutRedirectUri: webClientRootUrl, - corsOrigins: new[] { webClientRootUrl } + corsOrigins: new[] { webClientRootUrl.RemovePostFix("/") } ); } @@ -195,7 +195,7 @@ namespace MyCompanyName.MyProjectName.IdentityServer requireClientSecret: false, redirectUri: $"{blazorRootUrl}/authentication/login-callback", postLogoutRedirectUri: $"{blazorRootUrl}/authentication/logout-callback", - corsOrigins: new[] { blazorRootUrl } + corsOrigins: new[] { blazorRootUrl.RemovePostFix("/") } ); } @@ -212,7 +212,7 @@ namespace MyCompanyName.MyProjectName.IdentityServer secret: configurationSection["MyProjectName_Swagger:ClientSecret"]?.Sha256(), requireClientSecret: false, redirectUri: $"{swaggerRootUrl}/swagger/oauth2-redirect.html", - corsOrigins: new[] { swaggerRootUrl } + corsOrigins: new[] { swaggerRootUrl.RemovePostFix("/") } ); } } From 9e019912334482caed517bfcea51590981e8049e Mon Sep 17 00:00:00 2001 From: Ilkay Ilknur Date: Tue, 17 Nov 2020 14:42:33 +0300 Subject: [PATCH 5/8] remove setter. --- docs/en/UI/Blazor/Message.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/UI/Blazor/Message.md b/docs/en/UI/Blazor/Message.md index 569057acbf..075e4c7beb 100644 --- a/docs/en/UI/Blazor/Message.md +++ b/docs/en/UI/Blazor/Message.md @@ -11,7 +11,7 @@ namespace MyProject.Blazor.Pages { public partial class Index { - public IUiMessageService UiMessageService { get; set; } + public IUiMessageService UiMessageService { get; } public Index(IUiMessageService uiMessageService) { From 45fa87289a0d8348f3e54d7af1ab93402e233db9 Mon Sep 17 00:00:00 2001 From: Ilkay Ilknur Date: Tue, 17 Nov 2020 14:52:18 +0300 Subject: [PATCH 6/8] blazor notification service documentation added. --- docs/en/UI/Blazor/Notification.md | 79 +++++++++++++++++- .../en/images/blazor-notification-success.png | Bin 0 -> 3028 bytes 2 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 docs/en/images/blazor-notification-success.png diff --git a/docs/en/UI/Blazor/Notification.md b/docs/en/UI/Blazor/Notification.md index 09f4eb93bb..2dc22b3274 100644 --- a/docs/en/UI/Blazor/Notification.md +++ b/docs/en/UI/Blazor/Notification.md @@ -1,3 +1,78 @@ -# Blazor UI: Notification Service +# Blazor: UI Notification Service -`IUiNotificationService` is used to show toastr style notifications on the user interface. The documentation is in progress... \ No newline at end of file +`IUiNotificationService` is used to show toastr style notifications on the user interface. + +## Quick Example + +Simply inject `IUiNotificationService` to your page or component and call the `Success` method to show a success message. + +```csharp +namespace MyProject.Blazor.Pages +{ + public partial class Index + { + public IUiNotificationService UiNotificationService { get; } + + public Index(IUiNotificationService uiNotificationService) + { + UiNotificationService = uiNotificationService; + } + + public async Task DeleteAsync() + { + //Delete entity + await UiNotificationService.Success("The product 'Acme Atom Re-Arranger' has been successfully deleted."); + } + } +} +``` + +![blazor-notification-sucess](../../images/blazor-notification-success.png) + +If you inherit your page or component from `AbpComponentBase` class, you can use the `Notify` property to access the `IUiNotificationService`. + +```csharp +namespace MyProject.Blazor.Pages +{ + public partial class Index : AbpComponentBase + { + public async Task DeleteAsync() + { + //Delete entity + await Notify.Success("The product 'Acme Atom Re-Arranger' has been successfully deleted."); + } + } +} +``` + +## Notification Types + +There are four types of pre-defined notifications; + +* `Info(...)` +* `Success(...)` +* `Warn(...)` +* `Error(...)` + +All of the methods above gets the following parameters; + +* `message`: The message (`string`) to be shown. +* `title`: An optional (`string`) title. +* `options`: An optional (`Action`) to configure notification options. + +## Notification Configuration + +It is easy to change default notification options if you like to customize notifications. Provide an `action` to the `options` parameter and change the default values. + +```csharp +await UiNotificationService.Success("The product 'Acme Atom Re-Arranger' has been successfully deleted.", options: (options) => + { + options.OkButtonIcon = "custom-icon"; + options.OkButtonText = L["CustomOK"]; + }); +``` + +List of the options that you can change by providing the `action` parameter. + +* `OkButtonText` : Custom text for the Ok button. +* `OkButtonIcon` : Custom icon for the Ok button \ No newline at end of file diff --git a/docs/en/images/blazor-notification-success.png b/docs/en/images/blazor-notification-success.png new file mode 100644 index 0000000000000000000000000000000000000000..d68dcf47d867df9865bd2cf8f23ef2c853e35e29 GIT binary patch literal 3028 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 J0ejN^_79P6K34z$ literal 0 HcmV?d00001 From 968e3ce801cfc2522c01ebc0a88c5025b47763e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 17 Nov 2020 20:59:55 +0300 Subject: [PATCH 7/8] Revised the Blazor UI notification document. --- docs/en/UI/Blazor/Notification.md | 61 ++++++++++++++++++++++--------- 1 file changed, 43 insertions(+), 18 deletions(-) diff --git a/docs/en/UI/Blazor/Notification.md b/docs/en/UI/Blazor/Notification.md index 2dc22b3274..24b589b75c 100644 --- a/docs/en/UI/Blazor/Notification.md +++ b/docs/en/UI/Blazor/Notification.md @@ -1,27 +1,28 @@ -# Blazor: UI Notification Service +# Blazor UI: Notification Service -`IUiNotificationService` is used to show toastr style notifications on the user interface. +`IUiNotificationService` is used to show toast style notifications on the user interface. ## Quick Example -Simply inject `IUiNotificationService` to your page or component and call the `Success` method to show a success message. +Simply [inject](../../Dependency-Injection.md) `IUiNotificationService` to your page or component and call the `Success` method to show a success message. ```csharp namespace MyProject.Blazor.Pages { public partial class Index { - public IUiNotificationService UiNotificationService { get; } + private readonly IUiNotificationService _uiNotificationService; public Index(IUiNotificationService uiNotificationService) { - UiNotificationService = uiNotificationService; + _uiNotificationService = uiNotificationService; } public async Task DeleteAsync() { - //Delete entity - await UiNotificationService.Success("The product 'Acme Atom Re-Arranger' has been successfully deleted."); + await _uiNotificationService.Success( + "The product 'Acme Atom Re-Arranger' has been successfully deleted." + ); } } } @@ -29,7 +30,7 @@ namespace MyProject.Blazor.Pages ![blazor-notification-sucess](../../images/blazor-notification-success.png) -If you inherit your page or component from `AbpComponentBase` class, you can use the `Notify` property to access the `IUiNotificationService`. +If you inherit your page or component from the `AbpComponentBase` class, you can use the the `Notify` property to access the `IUiNotificationService` as a pre-injected property. ```csharp namespace MyProject.Blazor.Pages @@ -38,13 +39,16 @@ namespace MyProject.Blazor.Pages { public async Task DeleteAsync() { - //Delete entity - await Notify.Success("The product 'Acme Atom Re-Arranger' has been successfully deleted."); + await Notify.Success( + "The product 'Acme Atom Re-Arranger' has been successfully deleted." + ); } } } ``` +> You typically use `@inherits AbpComponentBase` in the `.razor` file to inherit from the `AbpComponentBase`, instead of inheriting in the code behind file. + ## Notification Types There are four types of pre-defined notifications; @@ -60,19 +64,40 @@ All of the methods above gets the following parameters; * `title`: An optional (`string`) title. * `options`: An optional (`Action`) to configure notification options. -## Notification Configuration +## Configuration + +### Per Notification -It is easy to change default notification options if you like to customize notifications. Provide an `action` to the `options` parameter and change the default values. +It is easy to change default notification options if you like to customize it per notification. Provide an action to the `options` parameter as shown below: ```csharp -await UiNotificationService.Success("The product 'Acme Atom Re-Arranger' has been successfully deleted.", options: (options) => +await UiNotificationService.Success( + "The product 'Acme Atom Re-Arranger' has been successfully deleted.", + options: (options) => { - options.OkButtonIcon = "custom-icon"; - options.OkButtonText = L["CustomOK"]; + options.OkButtonText = + LocalizableString.Create("CustomOK"); }); ``` -List of the options that you can change by providing the `action` parameter. +### Available Options + +Here, the list of all available options; + +* `OkButtonText` : Custom text for the OK button. +* `OkButtonIcon` : Custom icon for the OK button + +### Global Configuration + +You can also configure global notification options to control the it in a single point. Configure the `UiNotificationOptions` [options class](../../Options.md) in the `ConfigureServices` of your [module](../../Module-Development-Basics.md): + +````csharp +Configure(options => +{ + options.OkButtonText = LocalizableString.Create("CustomOK"); +}); +```` + +The same options are available here. -* `OkButtonText` : Custom text for the Ok button. -* `OkButtonIcon` : Custom icon for the Ok button \ No newline at end of file +> *Per notification* configuration overrides the default values. \ No newline at end of file From b721db65e75fcd308031fbf9752e59d2046f4b14 Mon Sep 17 00:00:00 2001 From: Alper Ebicoglu Date: Tue, 17 Nov 2020 22:28:31 +0300 Subject: [PATCH 8/8] add Spanish language. closes #5931 & volosoft/volo#2283 --- .../Account/Localization/Resources/es.json | 14 ++ .../Admin/Localization/Resources/es.json | 199 ++++++++++++++++++ .../Base/Localization/Resources/es.json | 33 +++ .../Commercial/Localization/Resources/es.json | 35 +++ .../Community/Localization/Resources/es.json | 90 ++++++++ .../Www/Localization/Resources/es.json | 189 +++++++++++++++++ .../Localization/Resources/AbpDdd/es.json | 2 +- .../Volo/Abp/Emailing/Localization/es.json | 30 +-- .../ExceptionHandling/Localization/es.json | 34 +-- .../Volo/Abp/Ldap/Localization/es.json | 20 +- .../Resources/AbpLocalization/es.json | 7 + .../Volo/Abp/Timing/Localization/es.json | 2 +- .../Localization/Resources/AbpUi/es.json | 52 ++--- .../Volo/Abp/Validation/Localization/es.json | 52 ++--- .../Account/Localization/Resources/es.json | 31 ++- .../BlobStoring/Database/Localization/es.json | 6 + .../Blogging/Localization/Resources/es.json | 58 +++++ .../CmsKit/Localization/Resources/es.json | 22 ++ .../Resources/VoloDocs/Web/es.json | 10 + .../Docs/ApplicationContracts/es.json | 59 ++++++ .../Volo/Docs/Localization/Domain/es.json | 38 +++- .../Localization/Domain/es.json | 10 + .../Volo/Abp/Identity/Localization/es.json | 120 +++++++++++ .../Localization/Resources/es.json | 14 ++ .../Localization/Domain/es.json | 10 + .../Resources/AbpSettingManagement/es.json | 7 + .../Localization/Resources/es.json | 23 ++ .../Localization/Resources/es.json | 14 ++ .../Localization/MyProjectName/es.json | 8 + .../MyProjectNameHttpApiHostModule.cs | 1 + .../MyProjectNameHttpApiHostModule.cs | 1 + .../MyProjectNameIdentityServerModule.cs | 1 + .../MyProjectNameWebModule.cs | 1 + .../Localization/MyProjectName/es.json | 7 + 34 files changed, 1087 insertions(+), 113 deletions(-) create mode 100644 abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/es.json create mode 100644 abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/es.json create mode 100644 abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/es.json create mode 100644 abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json create mode 100644 abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/es.json create mode 100644 abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/es.json create mode 100644 framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/es.json create mode 100644 modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/Localization/es.json create mode 100644 modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/es.json create mode 100644 modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/es.json create mode 100644 modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/es.json create mode 100644 modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/es.json create mode 100644 modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/es.json create mode 100644 modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/es.json create mode 100644 modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/es.json create mode 100644 modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/es.json create mode 100644 modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/es.json create mode 100644 modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/es.json create mode 100644 modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Localization/Resources/es.json create mode 100644 templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/Localization/MyProjectName/es.json create mode 100644 templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/Localization/MyProjectName/es.json diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/es.json new file mode 100644 index 0000000000..44ec873da0 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/es.json @@ -0,0 +1,14 @@ +{ + "culture": "es", + "texts": { + "Account": "Cuenta de ABP - Iniciar sesión y registrarse | ABP.IO", + "Welcome": "Bienvenido", + "UseOneOfTheFollowingLinksToContinue": "Usa uno de los siguientes links para continuar", + "FrameworkHomePage": "Página de inicio del framework", + "FrameworkDocumentation": "Documentación del framework", + "OfficialBlog": "Blog Oficial", + "CommercialHomePage": "Página de inicio comercial", + "CommercialSupportWebSite": "Sitio web de soporte comercial", + "CommunityWebSite": "Sitio web comunidad ABP" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/es.json new file mode 100644 index 0000000000..1cf2e4f365 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/es.json @@ -0,0 +1,199 @@ +{ + "culture": "es", + "texts": { + "Permission:Organizations": "Organizaciones", + "Permission:Manage": "Gestionar organizaciones", + "Permission:DiscountRequests": "Solicitudes de descuento", + "Permission:DiscountManage": "Gestionar solicitudes de descuento", + "Permission:Disable": "Desactivar", + "Permission:Enable": "Activar", + "Permission:EnableSendEmail": "Activar enviar email", + "Permission:SendEmail": "Enviar email", + "Permission:NpmPackages": "Paquetes NPM", + "Permission:NugetPackages": "Paquetes Nuget", + "Permission:Maintenance": "Mantenimiento", + "Permission:Maintain": "Mantener", + "Permission:ClearCaches": "Borrar cachés", + "Permission:Modules": "Módulos", + "Permission:Packages": "Paquetes", + "Permission:Edit": "Editar", + "Permission:Delete": "Borrar", + "Permission:Create": "Crear", + "Permission:Accounting": "Contabilidad", + "Permission:Accounting:Quotation": "Cotización", + "Permission:Accounting:Invoice": "Factura", + "Menu:Organizations": "Organizaciones", + "Menu:Accounting": "Contabilidad", + "Menu:Packages": "Paquetes", + "Menu:DiscountRequests": "Solicitudes de descuento", + "NpmPackageDeletionWarningMessage": "Este NPM paquete será borrado. ¿Quieres confirmar?", + "NugetPackageDeletionWarningMessage": "Este NPM paquete será borrado. ¿Quieres confirmar?", + "ModuleDeletionWarningMessage": "Este NPM paquete será borrado. ¿Quieres confirmar?", + "Name": "Nombre", + "DisplayName": "Nombre para mostrar", + "ShortDescription": "Descripción corta", + "NameFilter": "Nombre", + "CreationTime": "Fecha de creación", + "IsPro": "Es pro", + "ShowOnModuleList": "Mostrar en la lista de módulos", + "EfCoreConfigureMethodName": "configurar nombre de método", + "IsProFilter": "Es pro", + "ApplicationType": "tipo de aplicación", + "Target": "Destino", + "TargetFilter": "Destino", + "ModuleClass": "Módulo de clase", + "NugetPackageTarget.DomainShared": "Dominio compartido", + "NugetPackageTarget.Domain": "Dominio", + "NugetPackageTarget.Application": "Aplicación", + "NugetPackageTarget.ApplicationContracts": "Contratos de aplicación", + "NugetPackageTarget.HttpApi": "Http Api", + "NugetPackageTarget.HttpApiClient": "Cliente Http Api", + "NugetPackageTarget.Web": "Web", + "NugetPackageTarget.EntityFrameworkCore": "Delete todo EntityFramework Core", + "NugetPackageTarget.MongoDB": "MongoDB", + "Edit": "Editar", + "Delete": "Borrar", + "Refresh": "Refrescar", + "NpmPackages": "Paquetes NPM", + "NugetPackages": "Paquetes Nuget", + "NpmPackageCount": "Número de paquetes NPM", + "NugetPackageCount": "Número de paquetes Nuget", + "Module": "Módulos", + "ModuleInfo": "Info de módulo", + "CreateANpmPackage": "Crear un paquete NPM", + "CreateAModule": "Crear un módulo", + "CreateANugetPackage": "Crear un paquete de Nuget", + "AddNew": "Añadir nuevo", + "PackageAlreadyExist{0}": "\"{0}\" paquete ya se encuentra añadido", + "ModuleAlreadyExist{0}": "\"{0}\" módulo ya se encuentra añadido.", + "ClearCache": "Borrar caché", + "SuccessfullyCleared": "Borrado satisfactoriamente", + "Menu:NpmPackages": "Paquetes de NPM", + "Menu:Modules": "Módulos", + "Menu:Maintenance": "Mantenimiento", + "Menu:NugetPackages": "Paquetes Nuget", + "CreateAnOrganization": "Crear una organización", + "Organizations": "Organizaciones", + "LongName": "Nombre largo", + "LicenseType": "Tipo de licencia", + "MissingLicenseTypeField": "El campo tipo de licencia es requerido!", + "LicenseStartTime": "Fecha de inicio de licencia", + "LicenseEndTime": "Fecha de caducidad de licencia", + "AllowedDeveloperCount": "Número de desarrolladores permitidos", + "UserNameOrEmailAddress": "Nombre de usuario o", + "AddOwner": "Añadir propietario", + "UserName": "Nombre de usuario", + "Email": "Email", + "Developers": "Desarrolladores", + "AddDeveloper": "Añadir desarrollador", + "Create": "Crear", + "UserNotFound": "Usuario no encontrado", + "{0}WillBeRemovedFromDevelopers": "{0} será eliminado de desarrolladores, ¿deseas continuar?", + "{0}WillBeRemovedFromOwners": "{0} será eliminado de propietarios, ¿deseas continuar?", + "Computers": "Ordenadores", + "UniqueComputerId": "Id única de ordenador", + "LastSeenDate": "Fecha de visto por última vez", + "{0}Computer{1}WillBeRemovedFromRecords": "El ordenador {0} ({1}) será eliminado de los registros", + "OrganizationDeletionWarningMessage": "La organización será eliminada", + "DeletingLastOwnerWarningMessage": "Una organización debe tener al menos un propietario!. Por lo tanto, tu no puedes eliminar este propietario", + "This{0}AlreadyExistInThisOrganization": "Este/a {0} ya existe en esta organización", + "AreYouSureYouWantToDeleteAllComputers": "Estás seguro tu quieres eliminar todos los ordenadores", + "DeleteAll": "Eliminar todo", + "DoYouWantToCreateNewUser": "¿Quieres crear un nuevo usuario?", + "MasterModules": "Módulos maestros", + "OrganizationName": "Nombre de organización", + "CreationDate": "Fecha de creación", + "LicenseStartDate": "Fecha de inicio de licencia", + "LicenseEndDate": "Fecha de caducidad de licencia", + "OrganizationNamePlaceholder": "Nombre de organización...", + "TotalQuestionCountPlaceholder": "Número total de preguntas...", + "RemainingQuestionCountPlaceholder": "Número de preguntas pendientes", + "LicenseTypePlaceholder": "Tipo de licencia...", + "CreationDatePlaceholder": "Fecha de creación...", + "LicenseStartDatePlaceholder": "Fecha de inicio de licencia...", + "LicenseEndDatePlaceholder": "Fecha de caducidad de licencia...", + "UsernameOrEmail": "Usuario o email", + "UsernameOrEmailPlaceholder": "Usuario o email...", + "Member": "Miembro", + "PurchaseOrderNo": "Número de orden de compra", + "QuotationDate": "", + "CompanyName": "", + "CompanyAddress": "", + "Price": "", + "DiscountText": "", + "DiscountQuantity": "", + "DiscountPrice": "", + "Quotation": "", + "ExtraText": "", + "ExtraAmount": "", + "DownloadQuotation": "", + "Invoice": "", + "TaxNumber": "", + "InvoiceNumber": "", + "InvoiceDate": "", + "InvoiceNote": "", + "Quantity": "", + "AddProduct": "", + "AddProductWarning": "", + "TotalPrice": "", + "Generate": "", + "MissingQuantityField": "", + "MissingPriceField": "", + "CodeUsageStatus": "", + "Country": "", + "DeveloperCount": "", + "RequestCode": "", + "WebSite": "", + "GithubUsername": "", + "PhoneNumber": "", + "ProjectDescription": "", + "Referrer": "", + "DiscountRequests": "", + "Copylink": "", + "Disable": "", + "Enable": "", + "EnableSendEmail": "", + "SendEmail": "", + "SuccessfullyDisabled": "", + "SuccessfullyEnabled": "", + "EmailSent": "", + "SuccessfullySent": "", + "SuccessfullyDeleted": "", + "DiscountRequestDeletionWarningMessage": "", + "BusinessType": "", + "TotalQuestionCount": "", + "RemainingQuestionCount": "", + "TotalQuestionMustBeGreaterWarningMessage": "", + "QuestionCountsMustBeGreaterThanZero": "", + "UnlimitedQuestionCount": "", + "Notes": "", + "Menu:Community": "", + "Menu:Articles": "", + "Wait": "", + "Approve": "", + "Reject": "", + "Details": "", + "Url": "", + "Title": "", + "ContentSource": "", + "Status": "", + "ReadArticle": "", + "ArticleHasBeenWaiting": "", + "ArticleHasBeenApproved": "", + "ArticleHasBeenRejected": "", + "Permission:Community": "", + "Permission:CommunityArticle": "", + "Link": "", + "Enum:ContentSource:0": "", + "Enum:ContentSource:1": "", + "Enum:Status:0": "", + "Enum:Status:1": "", + "Enum:Status:2": "", + "Summary": "", + "AuthorName": "", + "CoverImage": "", + "RemoveCacheConfirmationMessage": "", + "SuccessfullyRemoved": "", + "RemoveCache": "" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/es.json new file mode 100644 index 0000000000..2b210888c5 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/es.json @@ -0,0 +1,33 @@ +{ + "culture": "es", + "texts": { + "Volo.AbpIo.Domain:010004": "", + "Volo.AbpIo.Domain:010005": "", + "Volo.AbpIo.Domain:010006": "", + "Volo.AbpIo.Domain:010007": "", + "Volo.AbpIo.Domain:010008": "", + "Volo.AbpIo.Domain:010009": "", + "Volo.AbpIo.Domain:010010": "", + "Volo.AbpIo.Domain:010011": "", + "Volo.AbpIo.Domain:010012": "", + "Volo.AbpIo.Domain:020001": "", + "Volo.AbpIo.Domain:020002": "", + "Volo.AbpIo.Domain:020003": "", + "Volo.AbpIo.Domain:020004": "", + "WantToLearn?": "", + "ReadyToGetStarted?": "", + "JoinOurCommunity": "", + "GetStartedUpper": "", + "ForkMeOnGitHub": "", + "Features": "", + "GetStarted": "", + "Documents": "", + "Community": "", + "ContributionGuide": "", + "Blog": "", + "Commercial": "", + "MyAccount": "", + "SeeDocuments": "", + "Samples": "" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json new file mode 100644 index 0000000000..7aa24608d4 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json @@ -0,0 +1,35 @@ +{ + "culture": "es", + "texts": { + "OrganizationManagement": "", + "OrganizationList": "", + "Volo.AbpIo.Commercial:010003": "", + "OrganizationNotFoundMessage": "", + "DeveloperCount": "", + "QuestionCount": "", + "Unlimited": "", + "Owners": "", + "AddMember": "", + "AddOwner": "", + "AddDeveloper": "", + "UserName": "", + "Name": "", + "EmailAddress": "", + "Developers": "", + "LicenseType": "Tipo de licencia", + "Manage": "", + "StartDate": "", + "EndDate": "", + "Modules": "Módulos", + "LicenseExtendMessage": "", + "LicenseUpgradeMessage": "", + "LicenseAddDeveloperMessage": "", + "Volo.AbpIo.Commercial:010004": "", + "MyOrganizations": "", + "ApiKey": "", + "UserNameNotFound": "", + "SuccessfullyAddedToNewsletter": "", + "MyProfile": "", + "EmailNotValid": "" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/es.json new file mode 100644 index 0000000000..d495720a93 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/es.json @@ -0,0 +1,90 @@ +{ + "culture": "es", + "texts": { + "Permission:CommunityArticle": "", + "Permission:Edit": "", + "Waiting": "", + "Approved": "", + "Rejected": "", + "Wait": "", + "Approve": "", + "Reject": "", + "ReadArticle": "", + "Status": "", + "ContentSource": "", + "Details": "", + "Url": "", + "Title": "", + "CreationTime": "", + "Save": "Guardar", + "SameUrlAlreadyExist": "", + "UrlIsNotValid": "", + "UrlNotFound": "", + "UrlContentNotFound": "", + "Summary": "", + "MostRead": "", + "Latest": "", + "ContributeAbpCommunity": "", + "SubmitYourArticle": "", + "ContributionGuide": "", + "BugReport": "", + "SeeAllArticles": "", + "WelcomeToABPCommunity!": "", + "MyProfile": "", + "MyOrganizations": "", + "EmailNotValid": "", + "FeatureRequest": "", + "CreateArticleTitleInfo": "", + "CreateArticleUrlInfo": "", + "CreateArticleSummaryInfo": "", + "CreateArticleCoverInfo": "", + "ThisExtensionIsNotAllowed": "", + "TheFileIsTooLarge": "", + "GoToTheArticle": "", + "Contribute": "", + "OverallProgress": "", + "Done": "", + "Open": "", + "Closed": "", + "LatestQuestionOnThe": "", + "Stackoverflow": "", + "Votes": "", + "Answer": "", + "Views": "", + "Answered": "", + "WaitingForYourAnswer": "", + "Asked": "", + "AllQuestions": "", + "NextVersion": "", + "MilestoneErrorMessage": "", + "QuestionItemErrorMessage": "", + "Oops": "", + "CreateArticleSuccessMessage": "", + "ChooseCoverImage": "", + "CoverImage": "", + "ShareYourExperiencesWithTheABPFramework": "", + "Optional": "", + "UpdateUserWebSiteInfo": "", + "UpdateUserTwitterInfo": "", + "UpdateUserGithubInfo": "", + "UpdateUserLinkedinInfo": "", + "UpdateUserCompanyInfo": "", + "UpdateUserJobTitleInfo": "", + "UserName": "", + "Company": "", + "PersonalWebsite": "", + "RegistrationDate": "", + "Social": "", + "Biography": "", + "HasNoPublishedArticlesYet": "", + "Author": "", + "LatestGithubAnnouncements": "", + "SeeAllAnnouncements": "", + "LatestBlogPost": "", + "Edit": "", + "ProfileImageChange": "", + "BlogItemErrorMessage": "", + "PlannedReleaseDate": "", + "CommunityArticleRequestErrorMessage": "" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/es.json new file mode 100644 index 0000000000..76132f71ba --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/es.json @@ -0,0 +1,189 @@ +{ + "culture": "es", + "texts": { + "GetStarted": "", + "Create": "", + "NewProject": "", + "DirectDownload": "", + "ProjectName": "", + "ProjectType": "", + "DatabaseProvider": "", + "NTier": "", + "IncludeUserInterface": "", + "CreateNow": "", + "TheStartupProject": "", + "Tutorial": "", + "UsingCLI": "", + "SeeDetails": "", + "AbpShortDescription": "", + "SourceCodeUpper": "", + "LatestReleaseLogs": "", + "Infrastructure": "", + "Architecture": "", + "Modular": "", + "DontRepeatYourself": "", + "DeveloperFocused": "", + "FullStackApplicationInfrastructure": "", + "DomainDrivenDesign": "", + "DomainDrivenDesignExplanation": "", + "Authorization": "", + "AuthorizationExplanation": "", + "MultiTenancy": "", + "MultiTenancyExplanationShort": "", + "CrossCuttingConcerns": "", + "CrossCuttingConcernsExplanationShort": "", + "BuiltInBundlingMinification": "", + "BuiltInBundlingMinificationExplanation": "", + "VirtualFileSystem": "", + "VirtualFileSystemExplanation": "", + "Theming": "", + "ThemingExplanationShort": "", + "BootstrapTagHelpersDynamicForms": "", + "BootstrapTagHelpersDynamicFormsExplanation": "", + "HTTPAPIsDynamicProxies": "", + "HTTPAPIsDynamicProxiesExplanation": "", + "CompleteArchitectureInfo": "", + "DomainDrivenDesignBasedLayeringModelExplanation": "", + "DomainDrivenDesignBasedLayeringModelExplanationCont": "", + "MicroserviceCompatibleModelExplanation": "", + "MicroserviceCompatibleModelExplanationCont": "", + "ModularInfo": "", + "PreBuiltModulesThemes": "", + "PreBuiltModulesThemesExplanation": "", + "NuGetNPMPackages": "", + "NuGetNPMPackagesExplanation": "", + "ExtensibleReplaceable": "", + "ExtensibleReplaceableExplanation": "", + "CrossCuttingConcernsExplanation2": "", + "CrossCuttingConcernsExplanation3": "", + "AuthenticationAuthorization": "", + "ExceptionHandling": "", + "Validation": "", + "DatabaseConnection": "", + "TransactionManagement": "", + "AuditLogging": "", + "Caching": "", + "Multitenancy": "", + "DataFiltering": "", + "ConventionOverConfiguration": "", + "ConventionOverConfigurationExplanation": "", + "ConventionOverConfigurationExplanationList1": "", + "ConventionOverConfigurationExplanationList2": "", + "ConventionOverConfigurationExplanationList3": "", + "ConventionOverConfigurationExplanationList4": "", + "ConventionOverConfigurationExplanationList5": "", + "ConventionOverConfigurationExplanationList6": "", + "BaseClasses": "", + "BaseClassesExplanation": "", + "DeveloperFocusedExplanation": "", + "DeveloperFocusedExplanationCont": "", + "SeeAllFeatures": "", + "CLI_CommandLineInterface": "", + "CLI_CommandLineInterfaceExplanation": "", + "StartupTemplates": "", + "StartupTemplatesExplanation": "", + "BasedOnFamiliarTools": "", + "BasedOnFamiliarToolsExplanation": "", + "ORMIndependent": "", + "ORMIndependentExplanation": "", + "Features": "", + "ABPCLI": "", + "Modularity": "", + "BootstrapTagHelpers": "", + "DynamicForms": "", + "BundlingMinification": "", + "BackgroundJobs": "", + "BackgroundJobsExplanation": "", + "DDDInfrastructure": "", + "DomainDrivenDesignInfrastructure": "", + "AutoRESTAPIs": "", + "DynamicClientProxies": "", + "DistributedEventBus": "", + "DistributedEventBusWithRabbitMQIntegration": "", + "TestInfrastructure": "", + "AuditLoggingEntityHistories": "", + "ObjectToObjectMapping": "", + "ObjectToObjectMappingExplanation": "", + "EmailSMSAbstractions": "", + "EmailSMSAbstractionsWithTemplatingSupport": "", + "Localization": "", + "SettingManagement": "", + "ExtensionMethods": "", + "ExtensionMethodsHelpers": "", + "AspectOrientedProgramming": "", + "DependencyInjection": "", + "DependencyInjectionByConventions": "", + "ABPCLIExplanation": "", + "ModularityExplanation": "", + "MultiTenancyExplanation": "", + "MultiTenancyExplanation2": "", + "MultiTenancyExplanation3": "", + "MultiTenancyExplanation4": "", + "BootstrapTagHelpersExplanation": "", + "DynamicFormsExplanation": "", + "AuthenticationAuthorizationExplanation": "", + "CrossCuttingConcernsExplanation": "", + "DatabaseConnectionTransactionManagement": "", + "CorrelationIdTracking": "", + "BundlingMinificationExplanation": "", + "VirtualFileSystemnExplanation": "", + "ThemingExplanation": "", + "DomainDrivenDesignInfrastructureExplanation": "", + "Specification": "", + "Repository": "", + "DomainService": "", + "ValueObject": "", + "ApplicationService": "", + "DataTransferObject": "", + "AggregateRootEntity": "", + "AutoRESTAPIsExplanation": "", + "DynamicClientProxiesExplanation": "", + "DistributedEventBusWithRabbitMQIntegrationExplanation": "", + "TestInfrastructureExplanation": "", + "AuditLoggingEntityHistoriesExplanation": "", + "EmailSMSAbstractionsWithTemplatingSupportExplanation": "", + "LocalizationExplanation": "", + "SettingManagementExplanation": "", + "ExtensionMethodsHelpersExplanation": "", + "AspectOrientedProgrammingExplanation": "", + "DependencyInjectionByConventionsExplanation": "", + "DataFilteringExplanation": "", + "PublishEvents": "", + "HandleEvents": "", + "AndMore": "", + "Code": "", + "Result": "", + "SeeTheDocumentForMoreInformation": "", + "IndexPageHeroSection": "", + "UiFramework": "", + "EmailAddress": "", + "Mobile": "", + "ReactNative": "", + "Strong": "", + "Complete": "", + "BasedLayeringModel": "", + "Microservice": "", + "Compatible": "", + "MeeTTheABPCommunityInfo": "", + "JoinTheABPCommunityInfo": "", + "AllArticles": "", + "SubmitYourArticle": "", + "DynamicClientProxyDocument": "", + "EmailSMSAbstractionsDocument": "", + "CreateProjectWizard": "", + "TieredOption": "", + "SeparateIdentityServerOption": "", + "UseslatestPreVersion": "", + "ReadTheDocumentation": "", + "Documentation": "", + "GettingStartedTutorial": "", + "ApplicationDevelopmentTutorial": "", + "TheStartupTemplate": "", + "InstallABPCLIInfo": "", + "DifferentLevelOfNamespaces": "", + "ABPCLIExamplesInfo": "", + "SeeCliDocumentForMoreInformation": "", + "Optional": "", + "LocalFrameworkRef": "" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Localization/Resources/AbpDdd/es.json b/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Localization/Resources/AbpDdd/es.json index 4563876228..a47299924f 100644 --- a/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Localization/Resources/AbpDdd/es.json +++ b/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Localization/Resources/AbpDdd/es.json @@ -1,6 +1,6 @@ { "culture": "es", "texts": { - "MaxResultCountExceededExceptionMessage": "{0} no puede tener ms de {1}! Incremente {2}.{3} en el lado del servidor para obtener ms resultados." + "MaxResultCountExceededExceptionMessage": "{0} no puede ser más de {1}! Aumente {2}. {3} en el lado del servidor para permitir más resultados." } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/es.json b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/es.json index da1d7fde95..5a2efc3006 100644 --- a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/es.json +++ b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/es.json @@ -1,25 +1,25 @@ { "culture": "es", "texts": { - "DisplayName:Abp.Mailing.DefaultFromAddress": "Direccin de envo", - "DisplayName:Abp.Mailing.DefaultFromDisplayName": "Nombre de envo", + "DisplayName:Abp.Mailing.DefaultFromAddress": "Por defecto desde dirección", + "DisplayName:Abp.Mailing.DefaultFromDisplayName": "Por defecto desde nombre a mostrar", "DisplayName:Abp.Mailing.Smtp.Host": "Host", "DisplayName:Abp.Mailing.Smtp.Port": "Puerto", "DisplayName:Abp.Mailing.Smtp.UserName": "Nombre de usuario", - "DisplayName:Abp.Mailing.Smtp.Password": "Contrasea", + "DisplayName:Abp.Mailing.Smtp.Password": "Contraseña", "DisplayName:Abp.Mailing.Smtp.Domain": "Dominio", "DisplayName:Abp.Mailing.Smtp.EnableSsl": "Habilitar SSL", - "DisplayName:Abp.Mailing.Smtp.UseDefaultCredentials": "Usar las credenciales por defecto", - "Description:Abp.Mailing.DefaultFromAddress": "La direccin de envo por defecto", - "Description:Abp.Mailing.DefaultFromDisplayName": "El nombre de envo por defecto", - "Description:Abp.Mailing.Smtp.Host": "El nombre o direccin del host para transacciones SMTP.", - "Description:Abp.Mailing.Smtp.Port": "El puerto usado para transacciones SMTP.", - "Description:Abp.Mailing.Smtp.UserName": "Nombre de usuario asociado a las credenciales.", - "Description:Abp.Mailing.Smtp.Password": "La contrasea del ususario asociado a las credenciales.", - "Description:Abp.Mailing.Smtp.Domain": "El dominio o equipo que valida las credenciales.", - "Description:Abp.Mailing.Smtp.EnableSsl": "Si SmtpClient usa Secure Sockets Layer (SSL) para encriptar la coneccin.", - "Description:Abp.Mailing.Smtp.UseDefaultCredentials": "Si las credenciales por defecto se envan con los request.", - "TextTemplate:StandardEmailTemplates.Layout": "Plantilla de email por defecto", - "TextTemplate:StandardEmailTemplates.Message": "Plantilla de mensaje simple para emails" + "DisplayName:Abp.Mailing.Smtp.UseDefaultCredentials": "Usar credenciales por defecto", + "Description:Abp.Mailing.DefaultFromAddress": "Por defecto desde dirección", + "Description:Abp.Mailing.DefaultFromDisplayName": "Por defecto desde nombre a mostrar", + "Description:Abp.Mailing.Smtp.Host": "El nombre o dirección IP del host usado para transacciones SMTP.", + "Description:Abp.Mailing.Smtp.Port": "El puerto usado por transacciones SMTP.", + "Description:Abp.Mailing.Smtp.UserName": "Nombre de usuario asociado con los credenciales.", + "Description:Abp.Mailing.Smtp.Password": "La contraseña para el nombre de usuario asociado con los credenciales.", + "Description:Abp.Mailing.Smtp.Domain": "El dominio o nombre de equipo que verifica los credenciales.", + "Description:Abp.Mailing.Smtp.EnableSsl": "Cuando el cliente SMTP usa Secure Sockets Layer (SSL) para encriptar la conexión.", + "Description:Abp.Mailing.Smtp.UseDefaultCredentials": "Cuando los credenciales por defecto son enviados con las peticiones.", + "TextTemplate:StandardEmailTemplates.Layout": "Plantilla de Email por defecto", + "TextTemplate:StandardEmailTemplates.Message": "Simple plantilla de mensaje para emails" } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/es.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/es.json index b4ac4139b1..0a3f8ef7da 100644 --- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/es.json +++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/es.json @@ -1,23 +1,25 @@ { "culture": "es", "texts": { - "InternalServerErrorMessage": "Ocurrió un error interno en su pedido!", - "ValidationErrorMessage": "Su pedido no es válido!", - "ValidationNarrativeErrorMessageTitle": "Los siguientes errores se encontraton durante la validación.", - "DefaultErrorMessage": "Ocurrió un error!", - "DefaultErrorMessageDetail": "El servidor no envió el detalle del error.", - "DefaultErrorMessage401": "Usted no ha iniciado sessión!", - "DefaultErrorMessage401Detail": "Debe iniciar sessión para ejecutar esta operación.", - "DefaultErrorMessage403": "Usted no está autorizado!", - "DefaultErrorMessage403Detail": "Usted no puede hacer esta operación!", - "DefaultErrorMessage404": "No se encontró el recurso!", - "DefaultErrorMessage404Detail": "El recurso solicitado no se encontró en el servidor!", - "EntityNotFoundErrorMessage": "No hay una entidad {0} con el id = {1}!", + "InternalServerErrorMessage": "Un error interno ocurrido durante tu Solicitud!", + "ValidationErrorMessage": "Tu Solicitud no es valida.", + "ValidationNarrativeErrorMessageTitle": "Los siguientes errores fueron detectados durante la validación.", + "DefaultErrorMessage": "Un error ha ocurrido!", + "DefaultErrorMessageDetail": "Detalles del error no enviado por el servidor.", + "DefaultErrorMessage401": "Tu no estás autenticado!", + "DefaultErrorMessage401Detail": "Tu deberías iniciar sesión para realizar esta operación.", + "DefaultErrorMessage403": "Tu no estás autorizado!", + "DefaultErrorMessage403Detail": "No tienes permitido realizar esta operación!", + "DefaultErrorMessage404": "Recurso no encontrado!", + "DefaultErrorMessage404Detail": "El recurso solitiado podría no encontrarse en el servidor!", + "EntityNotFoundErrorMessage": "No hay una entidad {0} con id = {1}!", "Error": "Error", - "UnhandledException": "Excepción no controlada!", + "UnhandledException": "Excepción no manejada!", "401Message": "No autorizado", "403Message": "Prohibido", - "404Message": "La página no existe", - "500Message": "Error interno del servidor" + "404Message": "Página no encuentrada", + "500Message": "Error interno de servidor", + "403MessageDetail": "Tu no estás autorizado para realizar esta operación!", + "404MessageDetail": "Disculpa, no hay nada en esta dirección." } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Ldap/Volo/Abp/Ldap/Localization/es.json b/framework/src/Volo.Abp.Ldap/Volo/Abp/Ldap/Localization/es.json index 365856425e..65aa1c68b0 100644 --- a/framework/src/Volo.Abp.Ldap/Volo/Abp/Ldap/Localization/es.json +++ b/framework/src/Volo.Abp.Ldap/Volo/Abp/Ldap/Localization/es.json @@ -1,19 +1,15 @@ { "culture": "es", "texts": { - "DisplayName:Abp.Ldap.ServerHost": "Server host", - "Description:Abp.Ldap.ServerHost": "Servidor host", - - "DisplayName:Abp.Ldap.ServerPort": "Server port", - "Description:Abp.Ldap.ServerPort": "Puerto del servidor host", - - "DisplayName:Abp.Ldap.BaseDc": "Base domain component", + "DisplayName:Abp.Ldap.ServerHost": "Host del servidor", + "Description:Abp.Ldap.ServerHost": "Host del servidor", + "DisplayName:Abp.Ldap.ServerPort": "Puerto del servidor", + "Description:Abp.Ldap.ServerPort": "Puerto del servidor", + "DisplayName:Abp.Ldap.BaseDc": "Dominio base", "Description:Abp.Ldap.BaseDc": "Dominio base", - - "DisplayName:Abp.Ldap.UserName": "Username", + "DisplayName:Abp.Ldap.UserName": "Nombre de usuario", "Description:Abp.Ldap.UserName": "Nombre de usuario", - - "DisplayName:Abp.Ldap.Password": "Password", - "Description:Abp.Ldap.Password": "Contrasea" + "DisplayName:Abp.Ldap.Password": "Contraseña", + "Description:Abp.Ldap.Password": "Contraseña" } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/es.json b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/es.json new file mode 100644 index 0000000000..2098bdf26f --- /dev/null +++ b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/es.json @@ -0,0 +1,7 @@ +{ + "culture": "es", + "texts": { + "DisplayName:Abp.Localization.DefaultLanguage": "Idioma predeterminado.", + "Description:Abp.Localization.DefaultLanguage": "El idioma predeterminado de la aplicación" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Localization/es.json b/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Localization/es.json index a23fccc1c4..1f36710c14 100644 --- a/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Localization/es.json +++ b/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Localization/es.json @@ -2,6 +2,6 @@ "culture": "es", "texts": { "DisplayName:Abp.Timing.Timezone": "Zona horaria", - "Description:Abp.Timing.Timezone": "Zona horaria de la Aplicacion" + "Description:Abp.Timing.Timezone": "Zona horaria de aplicación" } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/es.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/es.json index 56d6b117cf..4f0906ee3e 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/es.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/es.json @@ -1,52 +1,52 @@ { "culture": "es", "texts": { - "Languages": "Lenguajes", - "AreYouSure": "¿Está seguro?", + "Languages": "Idiomas", + "AreYouSure": "¿Estas seguro?", "Cancel": "Cancelar", "Clear": "Limpiar", - "Yes": "Si", + "Yes": "Sí", "No": "No", - "Ok": "Aceptar", + "Ok": "Ok", "Close": "Cerrar", "Save": "Guardar", "SavingWithThreeDot": "Guardando...", - "Actions": "Acciones", - "Delete": "Eliminar", + "Actions": "Actiones", + "Delete": "Borrar", "Edit": "Editar", - "Refresh": "Refrescar", - "Language": "Lenguaje", + "Refresh": "Actualizar", + "Language": "Idioma", "LoadMore": "Cargar más", "ProcessingWithThreeDot": "Procesando...", - "LoadingWithThreeDot": "Cargando...", + "LoadingWithThreeDot": "Cargardo...", "Welcome": "Bienvenido", - "Login": "Iniciar session", + "Login": "Iniciar Sesión", "Register": "Registrarse", - "Logout": "Cerrar sessión", + "Logout": "Cerrar sesión", "Submit": "Enviar", - "Back": "Atrás", + "Back": "Volver", "PagerSearch": "Buscar", "PagerNext": "Siguiente", "PagerPrevious": "Anterior", "PagerFirst": "Primero", "PagerLast": "Último", - "PagerInfo": "Mostrando desde _START_ hasta _END_ total _TOTAL_", - "PagerInfo{0}{1}{2}": "Mostrando desde {0} hasta {1} total {2}", - "PagerInfoEmpty": "Mostrando desde 0 hasta 0 de 0 registros", - "PagerInfoFiltered": "(filtrado de un total de _MAX_ registros)", - "NoDataAvailableInDatatable": "No hay datos", - "Total": "total", - "Selected": "seleccionado", - "PagerShowMenuEntries": "Mostrar _MENU_ registros", + "PagerInfo": "Mostrando de la _START a la _END_ de _TOTAL_ entradas", + "PagerInfo{0}{1}{2}": "Mostrando de la {0} a la {1} de {2} entradas", + "PagerInfoEmpty": "Mostrando de la 0 a la 0 de 0 entradas", + "PagerInfoFiltered": "(filtrado desde _MAX_ entradas totales)", + "NoDataAvailableInDatatable": "No hay datos disponibles", + "Total": "Total", + "Selected": "Seleccionado", + "PagerShowMenuEntries": "Mostrar _MENU_ entradas", "DatatableActionDropdownDefaultText": "Acciones", "ChangePassword": "Cambiar contraseña", - "PersonalInfo": "My perfil", - "AreYouSureYouWantToCancelEditingWarningMessage": "Tiene cambios sin guardar.", + "PersonalInfo": "Mi perfil", + "AreYouSureYouWantToCancelEditingWarningMessage": "Tu tienes cambios sin guardar", "GoHomePage": "Ir a la página principal", - "GoBack": "Atras", + "GoBack": "Volver atrás", "Search": "Buscar", - "ItemWillBeDeletedMessageWithFormat": "Se eliminarán {0}!", - "ItemWillBeDeletedMessage": "Este itém será eliminado!", - "ManageYourAccount": "Administre su cuenta" + "ItemWillBeDeletedMessageWithFormat": "{0} serán borrados!", + "ItemWillBeDeletedMessage": "Este elemento será borrado", + "ManageYourAccount": "Gestiona tu cuenta" } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/es.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/es.json index bb7cb733fe..55884667f6 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/es.json +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/es.json @@ -1,34 +1,34 @@ { "culture": "es", "texts": { - "'{0}' and '{1}' do not match.": "'{0} \" y \"{1} \" no coinciden.", - "The {0} field is not a valid credit card number.": "{0} no es un número de tarjeta de crédito.", - "{0} is not valid.": "{0} no es válido.", - "The {0} field is not a valid e-mail address.": "{0} no es una dirección de correo electrónico válida.", - "The {0} field only accepts files with the following extensions: {1}": "{0} campo sólo acepta archivos con las siguientes extensiones: {1}", - "The field {0} must be a string or array type with a maximum length of '{1}'.": "El campo {0} debe ser una cadena o un array con una longitud máxima de '{1}'.", - "The field {0} must be a string or array type with a minimum length of '{1}'.": "El campo {0} debe ser una cadena o un array con una longitud mínima de '{1}'.", - "The {0} field is not a valid phone number.": "{0} no es un número de teléfono válido.", - "The field {0} must be between {1} and {2}.": "El campo {0} debe ser entre {1} y {2}.", + "'{0}' and '{1}' do not match.": "'{0}' y '{1}' no coinciden.", + "The {0} field is not a valid credit card number.": "El campo {0} no es un número de tarjeta de crédito valido.", + "{0} is not valid.": "{0} no es valido.", + "The {0} field is not a valid e-mail address.": "El campo {0} no es una dirección de e-mail valida.", + "The {0} field only accepts files with the following extensions: {1}": "El campo {0} sólo acepta ficheros con la siguientes extensiones: {1}", + "The field {0} must be a string or array type with a maximum length of '{1}'.": "El campo {0} debe ser de tipo cadena o lista con una longitud máxima de '{1}'.", + "The field {0} must be a string or array type with a minimum length of '{1}'.": "El campo {0} debe ser de tipo cadena o lista con una longitud máxima de '{1}'.", + "The {0} field is not a valid phone number.": "El campo no tiene un número de teléfono valido.", + "The field {0} must be between {1} and {2}.": "El campo {0} debe estar entre {1} y {2}.", "The field {0} must match the regular expression '{1}'.": "El campo {0} no coincide con el formato solicitado.", - "The {0} field is required.": "El {0} campo es obligatorio.", + "The {0} field is required.": "El campo {0} es requerido.", "The field {0} must be a string with a maximum length of {1}.": "El campo {0} debe ser una cadena con una longitud máxima de {1}.", - "The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.": "El campo {0} debe ser una cadena con una longitud mínima de {2} y una longitud máxima de {1}.", - "The {0} field is not a valid fully-qualified http, https, or ftp URL.": "El campo {0} no es una dirección URL válida http, https o ftp.", - "The field {0} is invalid.": "El campo {0} no es válido.", - "ThisFieldIsNotAValidCreditCardNumber.": "Este campo no es un número de tarjeta de crédito.", - "ThisFieldIsNotValid.": "Este campo no es válido.", - "ThisFieldIsNotAValidEmailAddress.": "Este campo no es una dirección de correo electrónico válida.", - "ThisFieldOnlyAcceptsFilesWithTheFollowingExtensions:{0}": "Este campo sólo acepta archivos con las siguientes extensiones: {0}", - "ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthOf{0}": "Este campo debe ser una cadena o un array con una longitud máxima de '{0}'.", - "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "Este campo debe ser una cadena o un array con una longitud mínima de '{0}'.", - "ThisFieldIsNotAValidPhoneNumber.": "Este campo no es un número de teléfono válido.", - "ThisFieldMustBeBetween{0}And{1}": "Este campo debe tener un valor entre {0} y {1}.", + "The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.": "El campo {0} debe ser una cadena con una longitud mínima de {2} y máxima de {1}.", + "The {0} field is not a valid fully-qualified http, https, or ftp URL.": "El campo {0} no es una URL (http, https o ftp) valida.", + "The field {0} is invalid.": "El campo {0} no es valido.", + "ThisFieldIsNotAValidCreditCardNumber.": "El campo no es un número de tarjeta de crédito valido.", + "ThisFieldIsNotValid.": "Este campo no es valido.", + "ThisFieldIsNotAValidEmailAddress.": "Este campo no es una dirección de e-mail valida.", + "ThisFieldOnlyAcceptsFilesWithTheFollowingExtensions:{0}": "Este campo sólo acepta ficheros con las siguientes extensiones: {0}", + "ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthOf{0}": "Este campo debe ser una cadena o lista con una longitud máxima de {1}.", + "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "Este campo debe ser una cadena o lista con una longitud mínima de {1}.", + "ThisFieldIsNotAValidPhoneNumber.": "Este campo no es un número de teléfono valido.", + "ThisFieldMustBeBetween{0}And{1}": "Este campo debe estar entre {0} y {1}.", "ThisFieldMustMatchTheRegularExpression{0}": "Este campo debe coincidir con la expresión regular '{0}'.", - "ThisFieldIsRequired.": "Este campo es obligatorio.", - "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "Este campo debe ser una cadena de caracteres con una longitud máxima de {0}.", - "ThisFieldMustBeAStringWithAMinimumLengthOf{1}AndAMaximumLengthOf{0}": "Este campo debe ser una cadena de caracteres con una longitud mínima de {1} y una longitud máxima de {0}.", - "ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "Este campo no es una dirección URL válida http, https o ftp.", - "ThisFieldIsInvalid.": "Este campo no es válido." + "ThisFieldIsRequired.": "Este campo es requerido", + "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "Este campo debe ser una cadena con una longitud máxima de {1}.", + "ThisFieldMustBeAStringWithAMinimumLengthOf{1}AndAMaximumLengthOf{0}": "Este campo debe ser una cadena con una longitud mínima de {2} y máxima de {1}.", + "ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "El campo {0} no es una URL (http, https o ftp) valida.", + "ThisFieldIsInvalid.": "Este en un campo no valido." } } \ No newline at end of file diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/es.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/es.json index 43554b2311..9ca4d954b4 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/es.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/es.json @@ -11,12 +11,12 @@ "InvalidUserNameOrPassword": "El nombre de usuario o la contraseña no son válidos", "LoginIsNotAllowed": "No está permitido el inicio de sesión! Usted tendrá que confirmar su correo electrónico o número de teléfono.", "SelfRegistrationDisabledMessage": "El autoregistro de usuario está deshabilitado para esta aplicación. Póngase en contacto con el administrador de la aplicación para registrar un nuevo usuario.", - "LocalLoginDisabledMessage": "No está habilitado el login local para esta aplicación.", + "LocalLoginDisabledMessage": "Inicio de sesión local ha sido deshabilitado para esta aplicación", "Login": "Iniciar sesión", "Cancel": "Cancelar", "Register": "Registrarse", - "AreYouANewUser": "¿Usted es un usuario nuevo?", - "AlreadyRegistered": "¿Está registrado en esta aplicación?", + "AreYouANewUser": "¿Eres un nuevo usuario?", + "AlreadyRegistered": "¿Ya registrado?", "InvalidLoginRequest": "Solicitud de inicio de sesión no válido", "ThereAreNoLoginSchemesConfiguredForThisClient": "No hay ningún esquema de inicio de sesión configurado para este cliente.", "LogInUsingYourProviderAccount": "Inicia sesión con tu cuenta de {0} ", @@ -37,9 +37,26 @@ "NewPasswordConfirmFailed": "Por favor, confirme la nueva contraseña.", "Manage": "Administrar", "ManageYourProfile": "Gestionar su perfil", - "DisplayName:Abp.Account.IsSelfRegistrationEnabled": "Habilitar el registro de usuario", - "Description:Abp.Account.IsSelfRegistrationEnabled": "Si está habilitado los usuarios pueden crear una cuenta mediante el registro automático.", - "DisplayName:Abp.Account.EnableLocalLogin": "Habilitar cuenta local", - "Description:Abp.Account.EnableLocalLogin": "Indica que el servidor permite iniciar sessión con una cuenta local." + "DisplayName:Abp.Account.IsSelfRegistrationEnabled": "¿Está el auto-registro habilitado?", + "Description:Abp.Account.IsSelfRegistrationEnabled": "Cuando un usuario puede registrar la cuenta por él/ ella mismo/a", + "DisplayName:Abp.Account.EnableLocalLogin": "Autenticado con una cuenta local", + "Description:Abp.Account.EnableLocalLogin": "Indica si el servidor permitirá a los usuarios autenticarse con una cuenta local.", + "LoggedOutTitle": "Sesión cerrada", + "LoggedOutText": "La sesión ha sido cerrada y serás redireccionado en breve.", + "ReturnToText": "Haz click aquí para redirigirte a {0}", + "OrLoginWith": "O inicia sesión con;", + "ForgotPassword": "¿Olvidaste la contraseña?", + "SendPasswordResetLink_Information": "Un link para resetear la contraseña será enviado a tu e-mail. Si no recibes el e-mail en unos minutos, por favor re-intenta.", + "PasswordResetMailSentMessage": "Un e-mail para recuperar la cuenta ha sido enviado a tu e-mail. Si no recibes el e-mail en unos minutos, por favor re-intentalo.", + "ResetPassword": "Resetear contraseña", + "ConfirmPassword": "Confirmar la contraseña", + "ResetPassword_Information": "Por favor, introduce tu nueva contraseña.", + "YourPasswordIsSuccessfullyReset": "Tu contraseña ha sido reseteada satisfactoriamente.", + "GoToTheApplication": "Ir a la aplicación", + "BackToLogin": "Volver al inicio de sesión", + "ProfileTab:Password": "Cambiar contraseña", + "ProfileTab:PersonalInfo": "Información personal", + "ReturnToApplication": "Volver a la aplicación", + "Volo.Account:InvalidEmailAddress": "No se puede encontrar la dirección de e-mail solicitada: {0}" } } \ No newline at end of file diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/Localization/es.json b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/Localization/es.json new file mode 100644 index 0000000000..4cc69f4224 --- /dev/null +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/Localization/es.json @@ -0,0 +1,6 @@ +{ + "culture": "es", + "texts": { + "ManageYourProfile": "Administra tu perfil" + } +} \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/es.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/es.json new file mode 100644 index 0000000000..304c3149ec --- /dev/null +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/es.json @@ -0,0 +1,58 @@ +{ + "culture": "es", + "texts": { + "Menu:Blogs": "Blogs", + "Menu:BlogManagement": "Blogging", + "Permission:Management": "Gestión", + "Permission:Edit": "Editar", + "Permission:Create": "Crear", + "Permission:Delete": "Borrar", + "Permission:Blogging": "Blog", + "Permission:Blogs": "Blogs", + "Permission:Posts": "Entradas", + "Permission:Tags": "Etiquetas", + "Permission:Comments": "Comentarios", + "Title": "Título", + "Delete": "Borrar", + "Reply": "Respondere", + "ReplyTo": "Responder a {0}", + "ContinueReading": "Continuar leyendo", + "DaysAgo": "Hace {0} días", + "YearsAgo": "Hace {0} años", + "MonthsAgo": "Hace {0} meses", + "WeeksAgo": "Hace {0} semanas", + "MinutesAgo": "Hacer {0} minutos", + "SecondsAgo": "Hace {0} segundos", + "HoursAgo": "Hace {0} horas", + "Now": "Ahora", + "Content": "Contenido", + "SeeAll": "Ver todo", + "PopularTags": "Etiquetas populares", + "WiewsWithCount": "{0} visualizaciones", + "LastPosts": "Última entrada", + "LeaveComment": "Deja un comentario", + "TagsInThisArticle": "Etiquetas en este artículo", + "Posts": "Entradas", + "Edit": "Editar", + "BLOG": "BLOG", + "CommentDeletionWarningMessage": "El comentario será borrado", + "PostDeletionWarningMessage": "La entrada será borrada.", + "BlogDeletionWarningMessage": "El blog será borrado.", + "AreYouSure": "¿Estás seguro?", + "CommentWithCount": "{0} comentarios", + "Comment": "Comentario", + "ShareOnTwitter": "Comparte en Twitter", + "CoverImage": "Imágen de portada", + "CreateANewPost": "Crear una nueva entrada", + "CreateANewBlog": "Crear un nuevo blog", + "WhatIsNew": "Novedades", + "Name": "Nombre", + "ShortName": "Nombre corto", + "CreationTime": "Fecha de creación", + "Description": "Descripción", + "Blogs": "Blogs", + "Tags": "Etiquetas", + "ShareOn": "Compartir en", + "TitleLengthWarning": "Manten el tamaño del título por debajo de 60 caracteres para ser amigable al SEO" + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/es.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/es.json new file mode 100644 index 0000000000..63be06e2c7 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/es.json @@ -0,0 +1,22 @@ +{ + "culture": "es", + "texts": { + "PickYourReaction": "Recoge tu reación", + "YourComment": "Tu comentario", + "YourReply": "Tu respuesta", + "Comments": "Comentarios", + "Send": "Enviar", + "Delete": "Borrar", + "Reply": "Responder", + "Update": "Actualizar", + "Edit": "Editar", + "LoginToAddComment": "Inicia sesión para añadir comentarios", + "LoginToReply": "Inicia sesión para responder", + "MessageDeletionConfirmationMessage": "Este comentario será completamente borrado.", + "CommentAuthorizationExceptionMessage": "Esos comentarios no están permitidos mostrarlos al público.", + "Undo": "Deshacer", + "RatingUndoMessage": "Tu puntuación sera removida.", + "LoginToRate": "Inicia sesión para puntuar", + "Star": "Valoración" + } +} \ No newline at end of file diff --git a/modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/es.json b/modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/es.json new file mode 100644 index 0000000000..e6bfd1e413 --- /dev/null +++ b/modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/es.json @@ -0,0 +1,10 @@ +{ + "culture": "es", + "texts": { + "DocsTitle": "VoloDocs", + "WelcomeVoloDocs": "Bienvenidos a VoloDocs", + "NoProjectWarning": "No hay proyectos definidos todavía!", + "CreateYourFirstProject": "Click aquí para comenzar to primer proyecto", + "NoProject": "No proyecto!" + } +} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/es.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/es.json new file mode 100644 index 0000000000..f09eb5386b --- /dev/null +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/es.json @@ -0,0 +1,59 @@ +{ + "culture": "es", + "texts": { + "Permission:DocumentManagement": "Gestión de documentos", + "Permission:Projects": "Proyectos", + "Permission:Edit": "Editar", + "Permission:Delete": "Borrar", + "Permission:Create": "Crear", + "Permission:Documents": "Documentos", + "Menu:Documents": "Documentos", + "Menu:DocumentManagement": "Documentos", + "Menu:ProjectManagement": "Proyectos", + "CreateANewProject": "Crear nuevo proyecto", + "Edit": "Editar", + "Create": "Crear", + "Pull": "Extraer", + "Projects": "Proyectos", + "Name": "Nombre", + "ShortName": "ShortName", + "DocumentStoreType": "DocumentStoreType", + "Format": "Formato", + "ShortNameInfoText": "Será usado para crear una URL única", + "DisplayName:Name": "Nombre", + "DisplayName:ShortName": "Nombre corto", + "DisplayName:Format": "Formato", + "DisplayName:DefaultDocumentName": "Nombre del documento predeterminado", + "DisplayName:NavigationDocumentName": "Nombre del documento de navegación", + "DisplayName:MinimumVersion": "Versión mínima", + "DisplayName:MainWebsiteUrl": "URL principal del sitio web", + "DisplayName:LatestVersionBranchName": "Nombre de la rama de la última versión ", + "DisplayName:GitHubRootUrl": "URL raíz de GitHub", + "DisplayName:GitHubAccessToken": "Token de acceso a GitHub", + "DisplayName:GitHubUserAgent": "Usuario agente de GitHub", + "DisplayName:GithubVersionProviderSource": "Versión del proveedor de Github", + "DisplayName:VersionBranchPrefix": "Prefijo de la rama de la versión", + "DisplayName:All": "Extraer tódo", + "DisplayName:LanguageCode": "Código de idioma", + "DisplayName:Version": "Versión", + "Documents": "Documentos", + "RemoveFromCache": "Borrado de caché", + "Reindex": "Reindexado", + "ReindexCompleted": "Reindexado completado", + "RemovedFromCache": "Borrar la caché", + "RemoveFromCacheConfirmation": "¿Estás seguro que quieres borrar este elemento de la caché?", + "ReIndexDocumentConfirmation": "¿Estás seguro que quieres reindexar este elemento?", + "DeleteFromDatabase": "Eliminado de la base de datos", + "Deleted": "Eliminado", + "Search": "Buscar", + "StartDate": "Fecha de inicio", + "EndDate": "Fecha de fin", + "CreationTime": "Fecha de creación", + "LastUpdateTime": "Última actualización", + "LastSignificantUpdateTime": "Última actualización significativa", + "Version": "Versión", + "LanguageCode": "Código de idioma", + "FileName": "Nombre de fichero", + "LastCachedTime": "Última actualización de caché" + } +} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/es.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/es.json index 700143ad76..c4dd345f5b 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/es.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/es.json @@ -2,18 +2,38 @@ "culture": "es", "texts": { "Documents": "Documentos", - "BackToWebsite": "Regresar al sitio", + "BackToWebsite": "Volver al sitio web", "Contributors": "Contribuidores", - "ShareOn": "Compartilhar no", - "Version": "Versão", + "ShareOn": "Compartir en", + "Version": "Versión", "Edit": "Editar", - "Delete": "Excluir", + "LastEditTime": "Última edición", + "Delete": "Borrar", + "ClearCache": "Borrar caché", + "ClearCacheConfirmationMessage": "Estas seguro que quieres borrar todas las cachés para el proyecto", + "ReIndexAllProjects": "Reindexar todos los proyectos", + "ReIndexProject": "Reindexar proyecto", + "ReIndexProjectConfirmationMessage": "¿Estás seguro que quieres reindexar el proyecto \"{0}\"?", + "SuccessfullyReIndexProject": "La reidexación para el proyecto \"{0}\" se completo correctamente", + "ReIndexAllProjectConfirmationMessage": "¿Estás seguro que quieres reindexar todos los proyectos?", + "SuccessfullyReIndexAllProject": "La reidexación para todos los proyectos se completo correctamente", "InThisDocument": "En este documento", - "GoToTop": "Subir", + "GoToTop": "Ir hacia arriba", "Projects": "Proyecto(s)", - "NoProjectWarning": "Não há projetos ainda!", - "DocumentNotFound": "Ups! O documento solicitado não foi encontrado!", - "NavigationDocumentNotFound": "Esta versão não possui um documento de navegação!", - "DocumentNotFoundInSelectedLanguage": "Documento no idioma desejado não foi encontrado. Documento no idioma padrão é mostrado." + "NoProjectWarning": "No hay proyectos todavía!", + "DocumentNotFound": "Oops, El documento solicitado no fue encontrado!", + "ProjectNotFound": "Oops, El proyecto solicitado no fue encontrado!", + "NavigationDocumentNotFound": "Esta versión no tiene un documento de navegación!", + "DocumentNotFoundInSelectedLanguage": "documento en el idioma que solicitaste no encontrado. El documento será mostrado en el idioma por defecto.", + "FilterTopics": "Filtrar temas ", + "FullSearch": "Buscar en documentos", + "Volo.Docs.Domain:010001": "Búsqueda elástica no habilida", + "MultipleVersionDocumentInfo": "Este documento tiene múltiple versiones. Selecciona las opciones que más te interesan.", + "New": "Nuevo", + "Upd": "Upd", + "NewExplanation": "Creado en las últimas dos semanas.", + "UpdatedExplanation": "Actualizo en las dos últimas semanas", + "Volo.Docs.Domain:010002": "ShortName {ShortName} ya existe.", + "Preview": "Previsualizar" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/es.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/es.json new file mode 100644 index 0000000000..74e51eb9d4 --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/es.json @@ -0,0 +1,10 @@ +{ + "culture": "es", + "texts": { + "Features": "Características", + "NoFeatureFoundMessage": "No hay ninguna característica disponible.", + "Permission:FeatureManagement": "Gestión de características", + "Permission:FeatureManagement.ManageHostFeatures": "Gestionar características del Host", + "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0} valor de característica no es valido!" + } +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/es.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/es.json new file mode 100644 index 0000000000..dfc5193e62 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/es.json @@ -0,0 +1,120 @@ +{ + "culture": "es", + "texts": { + "Menu:IdentityManagement": "Gestión de identidades", + "Users": "Usuarios", + "NewUser": "Nuevo Usuario", + "UserName": "Nombre de usuario", + "EmailAddress": "Dirección e-mail", + "PhoneNumber": "Número de teléfono", + "UserInformations": "Información de usuario", + "DisplayName:IsDefault": "Predeterminado", + "DisplayName:IsStatic": "Estático", + "DisplayName:IsPublic": "Público", + "Roles": "Roles", + "Password": "Contraseña", + "PersonalInfo": "Mi perfil", + "PersonalSettings": "Configuración personal", + "UserDeletionConfirmationMessage": "El usuario '{0}' será eliminado. ¿Quieres continuar?", + "RoleDeletionConfirmationMessage": "El role '{0}' será eliminado. ¿Quieres continuar? ", + "DisplayName:RoleName": "Nombre de Role", + "DisplayName:UserName": "Nombre de usuario", + "DisplayName:Name": "Nombre", + "DisplayName:Surname": "Apellido", + "DisplayName:Password": "Contraseña", + "DisplayName:Email": "Dirección de e-mail", + "DisplayName:PhoneNumber": "Número de teléfono", + "DisplayName:TwoFactorEnabled": "Autenticación en dos pasos", + "DisplayName:LockoutEnabled": "Bloquear la cuenta después de intentos de inicio de sesión fallidos", + "NewRole": "Nuevo role", + "RoleName": "Nombre de role", + "CreationTime": "Fecha de creación", + "Permissions": "Permisos", + "DisplayName:CurrentPassword": "Contraseña actual", + "DisplayName:NewPassword": "Nueva contraseña", + "DisplayName:NewPasswordConfirm": "Confirmar nueva contraseña", + "PasswordChangedMessage": "Tu contraseña ha sido cambiada satisfactoriamente.", + "PersonalSettingsSavedMessage": "Tu configuración personal ha sido guardada satisfactoriamente.", + "Volo.Abp.Identity:DefaultError": "Error desconocido.", + "Volo.Abp.Identity:ConcurrencyFailure": "Fallo de concurrencia optimista", + "Volo.Abp.Identity:DuplicateEmail": "E-mail '{0}' está en uso.", + "Volo.Abp.Identity:DuplicateRoleName": "Nombre de role '{0}' está en uso.", + "Volo.Abp.Identity:DuplicateUserName": "Nombre de usuario '{0}' está en uso.", + "Volo.Abp.Identity:InvalidEmail": "E-mail '{0}' no es válido.", + "Volo.Abp.Identity:InvalidPasswordHasherCompatibilityMode": "El PasswordHasherCompatibilityMode proporcionado no es válido.", + "Volo.Abp.Identity:InvalidPasswordHasherIterationCount": "La cuenta iterativa debe ser una entero positivo.", + "Volo.Abp.Identity:InvalidRoleName": "El nombre de role '{0}' no es válido.", + "Volo.Abp.Identity:InvalidToken": "token no válido", + "Volo.Abp.Identity:InvalidUserName": "Nombre de usuario '{0}' no es válido. Sólo puede contener letras o dígitos", + "Volo.Abp.Identity:LoginAlreadyAssociated": "Usuario con este inicio de sesión en uso.", + "Volo.Abp.Identity:PasswordMismatch": "Contraseña incorrecta.", + "Volo.Abp.Identity:PasswordRequiresDigit": "Contraseñas deben tener al menos un dígito ('0'-'9').", + "Volo.Abp.Identity:PasswordRequiresLower": "Contraseñas deben tener al menos un caráctere en minúscula ('a'-'z').", + "Volo.Abp.Identity:PasswordRequiresNonAlphanumeric": "Contraseñas deben tener al menos un carácter no alfanumérico", + "Volo.Abp.Identity:PasswordRequiresUpper": "Contraseñas deben tener al menos un carácter en mayúsculas ('A'-'Z').", + "Volo.Abp.Identity:PasswordTooShort": "Contraseñas deben tener al menos {0} caracteres", + "Volo.Abp.Identity:RoleNotFound": "El role {0} no existe.", + "Volo.Abp.Identity:UserAlreadyHasPassword": "El usuario tiene la contraseña establecida", + "Volo.Abp.Identity:UserAlreadyInRole": "El usuario ya tiene asignado el rol '{0}'´.", + "Volo.Abp.Identity:UserLockedOut": "El usuario está bloqueado.", + "Volo.Abp.Identity:UserLockoutNotEnabled": "El bloqueo no está habilitado para este usuario.", + "Volo.Abp.Identity:UserNameNotFound": "El usuario {0} no existe.", + "Volo.Abp.Identity:UserNotInRole": "El usuario no tiene asignado el rol '{0}'.", + "Volo.Abp.Identity:PasswordConfirmationFailed": "La contraseña no coincide con la confirmación.", + "Volo.Abp.Identity:010001": "Tu no puedes borrar tu propia cuenta!", + "Volo.Abp.Identity:010002": "No puedes establecer más de {MaxUserMembershipCount} unidades organizativas para un usuario!", + "Volo.Abp.Identity:010003": "No puedes cambiar la contraseña de un usuario que inicio sesión desde un servicio externo!", + "Volo.Abp.Identity:010004": "Hay una unidad organizativa con nombre {0}. Dos unidades con el mismo nombre no pueden ser creadas en el mismo nivel.", + "Volo.Abp.Identity:010005": "Roles estáticos no pueden ser renombrados.", + "Volo.Abp.Identity:010006": "Roles estáticos no pueden ser borrados.", + "Volo.Abp.Identity:010007": "No puedes cambiar tu configuración de autentificación de dos pasos.", + "Volo.Abp.Identity:010008": "No está permitido cambiar la configuración de autenticación de dos pasos.", + "Identity.OrganizationUnit.MaxUserMembershipCount": "Número máximo de unidades organizativas por usuario", + "Permission:IdentityManagement": "Gestión de identidades", + "Permission:RoleManagement": "Gestión de roles", + "Permission:Create": "Crear", + "Permission:Edit": "Editar", + "Permission:Delete": "Borrar", + "Permission:ChangePermissions": "Cambiar permisos", + "Permission:UserManagement": "Gestión de usuarios", + "Permission:UserLookup": "Busqueda de usuario", + "Feature:IdentityGroup": "Identidad", + "Feature:TwoFactor": "Autenticatión de dos pasos", + "Feature:TwoFactorDescription": "Establecer autenticación de dos pasos. Valores opcionales: Opcional, Deshabilitado, Obligatorio", + "Feature:TwoFactor.Optional": "Opcional", + "Feature:TwoFactor.Disabled": "Deshabilitado", + "Feature:TwoFactor.Forced": "Obligatorio", + "DisplayName:Abp.Identity.Password.RequiredLength": "Longitud requerida", + "DisplayName:Abp.Identity.Password.RequiredUniqueChars": "Caracteres únicos requeridos", + "DisplayName:Abp.Identity.Password.RequireNonAlphanumeric": "Caracteres no alfanuméricos requeridos", + "DisplayName:Abp.Identity.Password.RequireLowercase": "Carácter en minúsculas requerido", + "DisplayName:Abp.Identity.Password.RequireUppercase": "Carácter en mayúsculas requerido", + "DisplayName:Abp.Identity.Password.RequireDigit": "Dígito requerido", + "DisplayName:Abp.Identity.Lockout.AllowedForNewUsers": "Habilitado para nuevos usuarios", + "DisplayName:Abp.Identity.Lockout.LockoutDuration": "Duración del bloqueo (segundos)", + "DisplayName:Abp.Identity.Lockout.MaxFailedAccessAttempts": "Número máximo de accesos fallidos", + "DisplayName:Abp.Identity.SignIn.RequireConfirmedEmail": "Confirmación de e-mail requerida", + "DisplayName:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Permitir usuarios confirmar su número de teléfono", + "DisplayName:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Requerir confirmación de número de teléfono", + "DisplayName:Abp.Identity.User.IsUserNameUpdateEnabled": "Permitir a los usuarios cambiar su nombre de usuario.", + "DisplayName:Abp.Identity.User.IsEmailUpdateEnabled": "Permitir usuarios cambiar sus direcciones de e-mail", + "Description:Abp.Identity.Password.RequiredLength": "La mínima longitud de una contraseña debe ser.", + "Description:Abp.Identity.Password.RequiredUniqueChars": "El mínimo número de caracteres unicos que una contraseña debe contener.", + "Description:Abp.Identity.Password.RequireNonAlphanumeric": "Si las contraseñas deben contener un no alfanumérico carácter.", + "Description:Abp.Identity.Password.RequireLowercase": "Si las contraseñas deben contener un carácter en minúscula.", + "Description:Abp.Identity.Password.RequireUppercase": "Si las contreseñas deben contener un carácter en mayúscula", + "Description:Abp.Identity.Password.RequireDigit": "Si las contraseñas deben contener un dígito", + "Description:Abp.Identity.Lockout.AllowedForNewUsers": "Si un nuevo usuario puede ser bloqueado.", + "Description:Abp.Identity.Lockout.LockoutDuration": "La duración del bloqueo de un usuario cuando el bloqueo ocurre.", + "Description:Abp.Identity.Lockout.MaxFailedAccessAttempts": "El número de accessos fallidos permitidos antes de que un usuario sea bloqueado, el bloqueo de usuario debe estar habilitado.", + "Description:Abp.Identity.SignIn.RequireConfirmedEmail": "Si la confirmación de dirección de e-mail es requerida para iniciar sesión.", + "Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Si el número de teléfono puede ser confirmado por el usuario. ", + "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Sí un número de teléfono confirmado es requerido para iniciar sesión.", + "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Si el nombre de usuario puede ser actualizado por el usuario.", + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Si el e-mail puede ser actualizado por el usuario.", + "DisplayName:Abp.Identity.TwoFactorBehaviour": "Autenticación de dos pasos", + "Description:Abp.Identity.TwoFactorBehaviour": "Autenticación de dos pasos", + "DisplayName:Abp.Identity.UsersCanChange": "Permitir a los usuario cambiar su autenticación de dos pasos.", + "Description:Abp.Identity.UsersCanChange": "Permitir a los usuario cambiar su autenticación de dos pasos." + } +} \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/es.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/es.json new file mode 100644 index 0000000000..2b8507bb13 --- /dev/null +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/es.json @@ -0,0 +1,14 @@ +{ + "culture": "es", + "texts": { + "Volo.IdentityServer:DuplicateIdentityResourceName": "El nombre de recurso de identidad ya existe: {Name}", + "Volo.IdentityServer:DuplicateApiResourceName": "El nombre de recurso de Api ya existe: {Name}", + "Volo.IdentityServer:DuplicateApiScopeName": "El nombre de ámbito de Api ya existe: {Name}", + "Volo.IdentityServer:DuplicateClientId": "ClientId ya existe: {ClientId}", + "UserLockedOut": "La cuenta de usuario ha sido bloqueada debido a inicios de sesión no validos. Por favor, espera un rato e intentalo de nuevo.", + "InvalidUserNameOrPassword": "Nombre de usuario o contraseña no válido!", + "LoginIsNotAllowed": "No puedes iniciar sesión!, necesitas confirmar tu e-mail/ número de teléfono.", + "InvalidUsername": "", + "TheTargetUserIsNotLinkedToYou": "El usuario de destino no está asociado a tí" + } +} \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/es.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/es.json new file mode 100644 index 0000000000..f523ae1c41 --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/es.json @@ -0,0 +1,10 @@ +{ + "culture": "es", + "texts": { + "Permissions": "Permisos", + "OnlyProviderPermissons": "Sólo este proveedor", + "All": "Todos", + "SelectAllInAllTabs": "Condeder todos los permisos", + "SelectAllInThisTab": "Seleccionar todo" + } +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/es.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/es.json new file mode 100644 index 0000000000..3f0f40c819 --- /dev/null +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/es.json @@ -0,0 +1,7 @@ +{ + "culture": "es", + "texts": { + "Settings": "Configuraciones", + "SuccessfullySaved": "Guardado correctamente" + } +} \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/es.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/es.json new file mode 100644 index 0000000000..677a936bcf --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/es.json @@ -0,0 +1,23 @@ +{ + "culture": "es", + "texts": { + "Menu:TenantManagement": "Gestión de tenants", + "Tenants": "Inquilinos", + "NewTenant": "Nuevo inquilino", + "TenantName": "Nombre del inquilino", + "DisplayName:TenantName": "Nombre del inquilino", + "TenantDeletionConfirmationMessage": "Se eliminará el inquilino '{0}'. Confirmas eso?", + "ConnectionStrings": "Connection Strings", + "DisplayName:DefaultConnectionString": "Connection String predeterminado", + "DisplayName:UseSharedDatabase": "Usar la base de datos compartida", + "ManageHostFeatures": "Administrar funciones de host", + "Permission:TenantManagement": "Gestión de tenants", + "Permission:Create": "Crear", + "Permission:Edit": "Editar", + "Permission:Delete": "Borrar", + "Permission:ManageConnectionStrings": "Gestión de cadenas de conexión", + "Permission:ManageFeatures": "Gestión de características", + "DisplayName:AdminEmailAddress": "Dirección de e-mail de administrador", + "DisplayName:AdminPassword": "Contraseña de administrador" + } +} \ No newline at end of file diff --git a/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Localization/Resources/es.json b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Localization/Resources/es.json new file mode 100644 index 0000000000..e45f76aab0 --- /dev/null +++ b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Localization/Resources/es.json @@ -0,0 +1,14 @@ +{ + "culture": "es", + "texts": { + "VirtualFileExplorer": "Explorador de ficheros virtual", + "VirtualFileType": "Tipo de fichero virtual", + "Menu:VirtualFileExplorer": "explorador de ficheros virtuales", + "LastUpdateTime": "Última fecha de actualización", + "VirtualFileName": "Nombre del fichero virtual", + "FileContent": "Contenido del fichero", + "Size": "Tamaño", + "BackToRoot": "Volver al raíz", + "EmptyFileInfoList": "No hay ficheros virtuales" + } +} \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/Localization/MyProjectName/es.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/Localization/MyProjectName/es.json new file mode 100644 index 0000000000..31b4b59e25 --- /dev/null +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/Localization/MyProjectName/es.json @@ -0,0 +1,8 @@ +{ + "culture": "es", + "texts": { + "Menu:Home": "Inicio", + "Welcome": "Bienvenido", + "LongWelcomeMessage": "Bienvenido a la aplicación, este es un proyecto base basado en el framework ABP. Para más información, visita abp.io." + } +} \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs index 6a0ee29447..004733e389 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs @@ -136,6 +136,7 @@ namespace MyCompanyName.MyProjectName options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文")); options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文")); options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsche", "de")); + options.Languages.Add(new LanguageInfo("es", "es", "Español", "es")); }); } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs index 231544bdbc..512c08ac6b 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs @@ -153,6 +153,7 @@ namespace MyCompanyName.MyProjectName options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文")); options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文")); options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsche", "de")); + options.Languages.Add(new LanguageInfo("es", "es", "Español", "es")); }); } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs index 45322b2960..1899fbb432 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs @@ -71,6 +71,7 @@ namespace MyCompanyName.MyProjectName options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文")); options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文")); options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsche", "de")); + options.Languages.Add(new LanguageInfo("es", "es", "Español", "es")); }); Configure(options => diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs index 2db1d47151..12b7ebf1a4 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs @@ -169,6 +169,7 @@ namespace MyCompanyName.MyProjectName.Web options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文")); options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文")); options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsche", "de")); + options.Languages.Add(new LanguageInfo("es", "es", "Español")); }); } diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/Localization/MyProjectName/es.json b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/Localization/MyProjectName/es.json new file mode 100644 index 0000000000..2860c3fd3c --- /dev/null +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/Localization/MyProjectName/es.json @@ -0,0 +1,7 @@ +{ + "culture": "es", + "texts": { + "ManageYourProfile": "Gestiona tu perfil", + "SamplePageMessage": "Una página de ejemplo para el módulo MyProjectName " + } +} \ No newline at end of file