-ABP offers a complete, **modular** and **layered** software architecture based on **[Domain Driven Design](https://docs.abp.io/en/abp/latest/Domain-Driven-Design)** principles and patterns. It also provides the necessary infrastructure and guiding to [implement this architecture](https://docs.abp.io/en/abp/4.0/Domain-Driven-Design-Implementation-Guide).
+ABP offers a complete, **modular** and **layered** software architecture based on **[Domain Driven Design](https://docs.abp.io/en/abp/latest/Domain-Driven-Design)** principles and patterns. It also provides the necessary infrastructure and guiding to [implement this architecture](https://docs.abp.io/en/abp/latest/Domain-Driven-Design-Implementation-Guide).
ABP Framework is suitable for **[microservice solutions](https://docs.abp.io/en/abp/latest/Microservice-Architecture)** as well as monolithic applications.
### Infrastructure
-There are a lot of features provided by the ABP Framework to achieve real world scenarios easier, like [Event Bus](https://docs.abp.io/en/abp/4.0/Event-Bus), [Background Job System](https://docs.abp.io/en/abp/4.0/Background-Jobs), [Audit Logging](https://docs.abp.io/en/abp/4.0/Audit-Logging), [BLOB Storing](https://docs.abp.io/en/abp/4.0/Blob-Storing), [Data Seeding](https://docs.abp.io/en/abp/4.0/Data-Seeding), [Data Filtering](https://docs.abp.io/en/abp/4.0/Data-Filtering), etc.
+There are a lot of features provided by the ABP Framework to achieve real world scenarios easier, like [Event Bus](https://docs.abp.io/en/abp/latest/Event-Bus), [Background Job System](https://docs.abp.io/en/abp/latest/Background-Jobs), [Audit Logging](https://docs.abp.io/en/abp/latest/Audit-Logging), [BLOB Storing](https://docs.abp.io/en/abp/latest/Blob-Storing), [Data Seeding](https://docs.abp.io/en/abp/latest/Data-Seeding), [Data Filtering](https://docs.abp.io/en/abp/latest/Data-Filtering), etc.
### Cross Cutting Concerns
-ABP also simplifies (and even automates wherever possible) cross cutting concerns and common non-functional requirements like [Exception Handling](https://docs.abp.io/en/abp/4.0/Exception-Handling), [Validation](https://docs.abp.io/en/abp/4.0/Validation), [Authorization](https://docs.abp.io/en/abp/4.0/Authorization), [Localization](https://docs.abp.io/en/abp/4.0/Localization), [Caching](https://docs.abp.io/en/abp/4.0/Caching), [Dependency Injection](https://docs.abp.io/en/abp/4.0/Dependency-Injection), [Setting Management](https://docs.abp.io/en/abp/4.0/Settings), etc.
+ABP also simplifies (and even automates wherever possible) cross cutting concerns and common non-functional requirements like [Exception Handling](https://docs.abp.io/en/abp/latest/Exception-Handling), [Validation](https://docs.abp.io/en/abp/latest/Validation), [Authorization](https://docs.abp.io/en/abp/latest/Authorization), [Localization](https://docs.abp.io/en/abp/latest/Localization), [Caching](https://docs.abp.io/en/abp/latest/Caching), [Dependency Injection](https://docs.abp.io/en/abp/latest/Dependency-Injection), [Setting Management](https://docs.abp.io/en/abp/latest/Settings), etc.
### Application Modules
ABP is a modular framework and the Application Modules provide **pre-built application functionalities**;
-- [**Account**](https://docs.abp.io/en/abp/4.0/Modules/Account): Provides UI for the account management and allows user to login/register to the application.
-- **[Identity](https://docs.abp.io/en/abp/4.0/Modules/Identity)**: Manages organization units, roles, users and their permissions, based on the Microsoft Identity library.
-- [**IdentityServer**](https://docs.abp.io/en/abp/4.0/Modules/IdentityServer): Integrates to IdentityServer4.
-- [**Tenant Management**](https://docs.abp.io/en/abp/4.0/Modules/Tenant-Management): Manages tenants for a [multi-tenant](https://docs.abp.io/en/abp/4.0/Multi-Tenancy) (SaaS) application.
+- [**Account**](https://docs.abp.io/en/abp/latest/Modules/Account): Provides UI for the account management and allows user to login/register to the application.
+- **[Identity](https://docs.abp.io/en/abp/latest/Modules/Identity)**: Manages organization units, roles, users and their permissions, based on the Microsoft Identity library.
+- [**IdentityServer**](https://docs.abp.io/en/abp/latest/Modules/IdentityServer): Integrates to IdentityServer4.
+- [**Tenant Management**](https://docs.abp.io/en/abp/latest/Modules/Tenant-Management): Manages tenants for a [multi-tenant](https://docs.abp.io/en/abp/latest/Multi-Tenancy) (SaaS) application.
-See the [Application Modules](https://docs.abp.io/en/abp/4.0/Modules/Index) document for all pre-built modules.
+See the [Application Modules](https://docs.abp.io/en/abp/latest/Modules/Index) document for all pre-built modules.
### Startup Templates
-The [Startup templates](https://docs.abp.io/en/abp/4.0/Startup-Templates/Index) are pre-built Visual Studio solution templates. You can create your own solution based on these templates to **immediately start your development**.
+The [Startup templates](https://docs.abp.io/en/abp/latest/Startup-Templates/Index) are pre-built Visual Studio solution templates. You can create your own solution based on these templates to **immediately start your development**.
## ABP Community
@@ -83,11 +83,11 @@ Follow the [ABP Blog](https://blog.abp.io/) to learn the latest happenings in th
### Samples
-See the [sample projects](https://docs.abp.io/en/abp/4.0/Samples/Index) built with the ABP Framework.
+See the [sample projects](https://docs.abp.io/en/abp/latest/Samples/Index) built with the ABP Framework.
### Want to Contribute?
-ABP is a community-driven open source project. See [the contribution guide](https://docs.abp.io/en/abp/4.0/Contribution/Index) if you want to be a part of this project.
+ABP is a community-driven open source project. See [the contribution guide](https://docs.abp.io/en/abp/latest/Contribution/Index) if you want to be a part of this project.
## Official Links
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json
index 6e3c1df3ce..32d3c16a01 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json
@@ -194,6 +194,9 @@
"CoverImage": "Cover Image",
"RemoveCacheConfirmationMessage": "Are you sure you remove the cache for \"{0}\" article?",
"SuccessfullyRemoved": "Successfully cleared",
- "RemoveCache": "Remove Cache"
+ "RemoveCache": "Remove Cache",
+ "Language": "Language",
+ "Optional": "Optional",
+ "CreateArticleLanguageInfo": "The language in which the article is written"
}
}
\ 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
index 1cf2e4f365..89ef8706e0 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/es.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/es.json
@@ -116,84 +116,84 @@
"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": "",
+ "QuotationDate": "Fecha de presupuesto",
+ "CompanyName": "Nombre de empresa",
+ "CompanyAddress": "Dirección de empresa",
+ "Price": "Precio",
+ "DiscountText": "Texto de descuento",
+ "DiscountQuantity": "Cantidad de descuento",
+ "DiscountPrice": "Precio de descuento",
+ "Quotation": "Presupuesto",
+ "ExtraText": "Texto extra",
+ "ExtraAmount": "Cantidad extra",
+ "DownloadQuotation": "Descarga el presupuesto",
+ "Invoice": "Factura",
+ "TaxNumber": "Identificación fiscal",
+ "InvoiceNumber": "Número de factura",
+ "InvoiceDate": "Fecha de factura",
+ "InvoiceNote": "Nota de factura",
+ "Quantity": "Cantidad",
+ "AddProduct": "Añadir producto",
+ "AddProductWarning": "Tu necesitas añadir un producto!",
+ "TotalPrice": "Precio total",
+ "Generate": "Generar",
+ "MissingQuantityField": "El campo cantidad es requerido!",
+ "MissingPriceField": "El campo precio es requerido!",
+ "CodeUsageStatus": "Estado",
+ "Country": "País",
+ "DeveloperCount": "Cuentas de desarrollo",
+ "RequestCode": "Solicitud de código",
+ "WebSite": "Sitio web",
+ "GithubUsername": "Nombre de usuario Github",
+ "PhoneNumber": "Número de teléfono",
+ "ProjectDescription": "Descripción del proyecto",
+ "Referrer": "Referente",
+ "DiscountRequests": "Solicitud de descuento",
+ "Copylink": "Copiar Link",
+ "Disable": "Deshabilitar",
+ "Enable": "Habilitar",
+ "EnableSendEmail": "Habilitar el envío de Email",
+ "SendEmail": "Enviar Email",
+ "SuccessfullyDisabled": "Deshabilitado correctamente",
+ "SuccessfullyEnabled": "Habilitado correctamente",
+ "EmailSent": "Email enviado",
+ "SuccessfullySent": "Enviado correctamente",
+ "SuccessfullyDeleted": "Borrado correctamente",
+ "DiscountRequestDeletionWarningMessage": "La solicitud de descuento será borrada",
+ "BusinessType": "Tipo de negocio",
+ "TotalQuestionCount": "Número total de preguntas",
+ "RemainingQuestionCount": "Número de preguntas restantes",
+ "TotalQuestionMustBeGreaterWarningMessage": "TotalQuestionCount debe ser mayor que RemainingQuestionCount !",
+ "QuestionCountsMustBeGreaterThanZero": "TotalQuestionCount y RemainingQuestionCount debe ser cero o más grande que cero !",
+ "UnlimitedQuestionCount": "Número de preguntas ilimitadas",
+ "Notes": "Notas",
+ "Menu:Community": "Comunidad",
+ "Menu:Articles": "Artículos",
+ "Wait": "Esperar",
+ "Approve": "Aprobar",
+ "Reject": "Rechazar",
+ "Details": "Detalles",
+ "Url": "Url",
+ "Title": "Título",
+ "ContentSource": "Fuente de contenido",
+ "Status": "Estado",
+ "ReadArticle": "Leer artículo",
+ "ArticleHasBeenWaiting": "El artículo ha sido puesto en espera",
+ "ArticleHasBeenApproved": "El artículo ha sido aprobado",
+ "ArticleHasBeenRejected": "El artículo ha sido rechazado",
+ "Permission:Community": "Comunidad",
+ "Permission:CommunityArticle": "Artículo",
+ "Link": "Link",
+ "Enum:ContentSource:0": "Github",
+ "Enum:ContentSource:1": "Externo",
+ "Enum:Status:0": "En espera",
+ "Enum:Status:1": "Rechazado",
+ "Enum:Status:2": "Aprobado",
+ "Summary": "Resumen",
+ "AuthorName": "Nombre del autor",
+ "CoverImage": "Imagen de portada",
+ "RemoveCacheConfirmationMessage": "¿Estás seguro que quieres borrar la caché para \"{0}\" artículo?",
+ "SuccessfullyRemoved": "Borrada correctamente",
"RemoveCache": ""
}
}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json
index b7f7cb41a5..9ac7e39b9e 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json
@@ -156,6 +156,9 @@
"RemainingQuestionCount": "Kalan soru sayısı",
"TotalQuestionMustBeGreaterWarningMessage": "Toplam soru sayısı kalan soru sayısından büyük olmalıdır!",
"QuestionCountsMustBeGreaterThanZero": "Toplam soru sayısı ve kalan soru sayısı sıfır veya sıfırdan daha büyük olmalıdır!",
- "UnlimitedQuestionCount": "Sınırsız soru sayısı"
+ "UnlimitedQuestionCount": "Sınırsız soru sayısı",
+ "Language": "Dil",
+ "Optional": "Opsiyonel",
+ "CreateArticleLanguageInfo": "Makalenin yazıldığı dil"
}
}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json
index a916cd82d9..71dc425dc6 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json
@@ -27,6 +27,8 @@
"Blog": "Blog",
"Commercial": "Commercial",
"MyAccount": "My account",
+ "Permission:License": "License",
+ "Permission:UserInfo": "Usere info",
"SeeDocuments": "See Documents",
"Samples": "Samples"
}
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/es.json
index 2b210888c5..9974232511 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/es.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/es.json
@@ -1,33 +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": ""
+ "Volo.AbpIo.Domain:010004": "Número máximo de miembros alcanzado!",
+ "Volo.AbpIo.Domain:010005": "Número máximo de propietarios alcanzado!",
+ "Volo.AbpIo.Domain:010006": "Este usuario ya es un propietario de esta organización!",
+ "Volo.AbpIo.Domain:010007": "Este usuario ya es un desarrollador en este organización!",
+ "Volo.AbpIo.Domain:010008": "Número de desarrolladores permitido no puede ser menor que el número actual de desarrolladores!",
+ "Volo.AbpIo.Domain:010009": "El número de desarrolladores no puede ser menor que cero!",
+ "Volo.AbpIo.Domain:010010": "Número máximo de dirección mac excedido!",
+ "Volo.AbpIo.Domain:010011": "Una licencia personal no puede tener más de un desarrollador!",
+ "Volo.AbpIo.Domain:010012": "La licencia no puede ser extendida un mes despues de que expire!",
+ "Volo.AbpIo.Domain:020001": "Este paquete NPM no pudo ser borrado porque \"{NugetPackages}\" paquetes Nuget son dependientes de este paquete.",
+ "Volo.AbpIo.Domain:020002": "Este paquete NPM no pudo ser borrado porque \"{Modules}\" modulos están usando este paquete.",
+ "Volo.AbpIo.Domain:020003": "Este paquete NPM no pudo ser borrado porque \"{Modules}\" modulos están usando este paquete.y \"{NugetPackages}\" paquetes Nuget son dependientes de este paquete.",
+ "Volo.AbpIo.Domain:020004": "Este paquete Nuget no pudo ser borrado porque \"{Modules}\" modulos están usando este paquete.",
+ "WantToLearn?": "¿Quieres aprender?",
+ "ReadyToGetStarted?": "¿Preparado para comenzar?",
+ "JoinOurCommunity": "Unete a nuestra comunidad",
+ "GetStartedUpper": "COMENZAR",
+ "ForkMeOnGitHub": "Fork en GitHub",
+ "Features": "Características",
+ "GetStarted": "Comenzar",
+ "Documents": "Documentos",
+ "Community": "Comunidad",
+ "ContributionGuide": "Guia de contribución",
+ "Blog": "Blog",
+ "Commercial": "Comercial",
+ "MyAccount": "Mi cuenta",
+ "SeeDocuments": "Ver documentos",
+ "Samples": "Ejemplos"
}
}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json
index e029499b06..c6eb1ad645 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json
@@ -32,6 +32,8 @@
"MyProfile": "My profile",
"EmailNotValid": "Please enter a valid email address.",
"JoinOurMarketingNewsletter": "Join our marketing newsletter",
- "WouldLikeToReceiveMarketingMaterials": "I would like to receive marketing materials like product deals & special offers."
+ "WouldLikeToReceiveMarketingMaterials": "I would like to receive marketing materials like product deals & special offers.",
+ "StartUsingYourLicenseNow": "Start using your license now!",
+ "WelcomePage": "Welcome Page"
}
}
\ 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
index 7aa24608d4..80647e85e9 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json
@@ -1,35 +1,35 @@
{
"culture": "es",
"texts": {
- "OrganizationManagement": "",
- "OrganizationList": "",
- "Volo.AbpIo.Commercial:010003": "",
- "OrganizationNotFoundMessage": "",
- "DeveloperCount": "",
- "QuestionCount": "",
- "Unlimited": "",
- "Owners": "",
- "AddMember": "",
- "AddOwner": "",
- "AddDeveloper": "",
- "UserName": "",
- "Name": "",
- "EmailAddress": "",
- "Developers": "",
+ "OrganizationManagement": "Gestión de la organización",
+ "OrganizationList": "Lista organización",
+ "Volo.AbpIo.Commercial:010003": "Tu no eres el propietario de esta organización!",
+ "OrganizationNotFoundMessage": "Organización no encontrada!",
+ "DeveloperCount": "Total desarrolladores asignados",
+ "QuestionCount": "Total de preguntas restantes",
+ "Unlimited": "Ilimitado",
+ "Owners": "Propietarios",
+ "AddMember": "Añadir miembro",
+ "AddOwner": "Añadir propietario",
+ "AddDeveloper": "Añadir desarrollador",
+ "UserName": "Nombre de usuario",
+ "Name": "Nombre",
+ "EmailAddress": "Dirección de Email",
+ "Developers": "Desarrolladores",
"LicenseType": "Tipo de licencia",
- "Manage": "",
- "StartDate": "",
- "EndDate": "",
+ "Manage": "Gestionar",
+ "StartDate": "Fecha de inicio",
+ "EndDate": "Fecha de fin",
"Modules": "Módulos",
- "LicenseExtendMessage": "",
- "LicenseUpgradeMessage": "",
- "LicenseAddDeveloperMessage": "",
- "Volo.AbpIo.Commercial:010004": "",
- "MyOrganizations": "",
- "ApiKey": "",
- "UserNameNotFound": "",
- "SuccessfullyAddedToNewsletter": "",
- "MyProfile": "",
- "EmailNotValid": ""
+ "LicenseExtendMessage": "Tu fecha de finalización de tu licencia ha sido extendido a {0}",
+ "LicenseUpgradeMessage": "Tu licencia esta actualizada a {0}",
+ "LicenseAddDeveloperMessage": "{0} desarrolladores añadidos a tu licencia",
+ "Volo.AbpIo.Commercial:010004": "No se pudo encontrar el usuario especificado. El usuario debe estar ya registrado.",
+ "MyOrganizations": "Mis organizaciones",
+ "ApiKey": "API Key",
+ "UserNameNotFound": "No hay un usuario con el nombre de usuario {0}",
+ "SuccessfullyAddedToNewsletter": "Gracias por suscribirte a nuestro boletín de noticias!",
+ "MyProfile": "Mi perfil",
+ "EmailNotValid": "Por favor, introduce una dirección de email válida."
}
}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/de-DE.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/de-DE.json
index cc8d76012c..0db3c9b29b 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/de-DE.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/de-DE.json
@@ -43,13 +43,13 @@
"GoToTheArticle": "Gehe zum Beitrag",
"Contribute": "Beitragen",
"OverallProgress": "Gesamtfortschritt",
- "Done": "Ferig",
+ "Done": "Fertig",
"Open": "Offen",
"Closed": "Geschlossen",
"LatestQuestionOnThe": "Letzte Frage zum",
"Stackoverflow": "Stackoverflow",
"Votes": "Stimmen",
- "Answer": "Antworten",
+ "Answer": "Antwort",
"Views": "Ansichten",
"Answered": "Beantwortet",
"WaitingForYourAnswer": "Warten auf Ihre Antwort",
@@ -60,9 +60,9 @@
"QuestionItemErrorMessage": "Die neuesten Fragendetails konnten von Stackoverflow nicht abgerufen werden.",
"Oops": "Hoppla!",
"CreateArticleSuccessMessage": "Der Beitrag wurde erfolgreich eingereicht. Er wird nach einer Überprüfung durch den Site-Administrator veröffentlicht.",
- "ChooseCoverImage": "Wählen Sie ein Titelbild ...",
+ "ChooseCoverImage": "Ein Titelbild auswählen...",
"CoverImage": "Titelbild",
- "ShareYourExperiencesWithTheABPFramework": "Teilen Sie Ihre Erfahrungen mit dem ABP Framework!",
+ "ShareYourExperiencesWithTheABPFramework": "Ihre Erfahrungen mit dem ABP Framework teilen!",
"Optional": "Optional",
"UpdateUserWebSiteInfo": "Beispiel: https://johndoe.com",
"UpdateUserTwitterInfo": "Beispiel: johndoe",
@@ -83,8 +83,8 @@
"LatestBlogPost": "Letzter Blog-Beitrag",
"Edit": "Bearbeiten",
"ProfileImageChange": "Ändern Sie das Profilbild",
- "BlogItemErrorMessage": "Die neuesten Blogpost-Details konnten von ABP nicht abgerufen werden.",
+ "BlogItemErrorMessage": "Die neuesten Blogpost-Details konnten nicht abgerufen werden.",
"PlannedReleaseDate": "Geplantes Erscheinungsdatum",
"CommunityArticleRequestErrorMessage": "Die Anfrage nach den neuesten Beiträgen von Github konnte nicht abgerufen werden."
}
-}
\ No newline at end of file
+}
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json
index c570e6fb1e..a29355b401 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json
@@ -99,6 +99,8 @@
"Marketing": "Marketing",
"CommunityPrivacyPolicyConfirmation": "I agree to the Terms & Conditions and Privacy Policy.",
"ArticleRequestMessageTitle": "Open an issue on the GitHub to request an article/tutorial you want to see on this web site.",
- "ArticleRequestMessageBody": "Here, the list of the requested articles by the community. Do you want to write a requested article? Please click to the request and join to the discussion."
+ "ArticleRequestMessageBody": "Here, the list of the requested articles by the community. Do you want to write a requested article? Please click to the request and join to the discussion.",
+ "Language": "Language",
+ "CreateArticleLanguageInfo": "The language in which the article is written"
}
}
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/es.json
index d495720a93..433de31852 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/es.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/es.json
@@ -1,90 +1,90 @@
{
"culture": "es",
"texts": {
- "Permission:CommunityArticle": "",
- "Permission:Edit": "",
- "Waiting": "",
- "Approved": "",
- "Rejected": "",
- "Wait": "",
- "Approve": "",
- "Reject": "",
- "ReadArticle": "",
- "Status": "",
- "ContentSource": "",
- "Details": "",
- "Url": "",
- "Title": "",
- "CreationTime": "",
+ "Permission:CommunityArticle": "Artículo de comunidad",
+ "Permission:Edit": "Editar",
+ "Waiting": "Esperando",
+ "Approved": "Aprobado",
+ "Rejected": "Rechazado",
+ "Wait": "Esperar",
+ "Approve": "Aprobar",
+ "Reject": "Rechazar",
+ "ReadArticle": "Leer artículo",
+ "Status": "Estado",
+ "ContentSource": "Fuente de contenido",
+ "Details": "Detalles",
+ "Url": "Url",
+ "Title": "Título",
+ "CreationTime": "Fecha de creación",
"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": "",
+ "SameUrlAlreadyExist": "La url ya existe si tu quieres añadir este artículo, tu debes cambiar la url!",
+ "UrlIsNotValid": "Url no es valida",
+ "UrlNotFound": "Url no encontrada",
+ "UrlContentNotFound": "Contenido de la Url no encontrado",
+ "Summary": "Resumen",
+ "MostRead": "Más leído",
+ "Latest": "Últimos",
+ "ContributeAbpCommunity": "Contribuye a la comunidad ABP",
+ "SubmitYourArticle": "Envía tu artículo",
+ "ContributionGuide": "Guía de contribución",
+ "BugReport": "Informe de errores",
+ "SeeAllArticles": "Ver todos los artículos",
+ "WelcomeToABPCommunity!": "Bienvenido a la comunidad ABP",
+ "MyProfile": "Mi perfil",
+ "MyOrganizations": "Mis organizaciones",
+ "EmailNotValid": "Por favor entra una dirección de email válida.",
+ "FeatureRequest": "Solucitud de característica",
+ "CreateArticleTitleInfo": "Título del artículo para ser mostrado en la lista de artículos.",
+ "CreateArticleUrlInfo": "Url original del artículo GitHub/ Externo",
+ "CreateArticleSummaryInfo": "Un pequeño resumen del artículo para ser mostrado en la lista de artículos.",
+ "CreateArticleCoverInfo": "Para crear un artículo eficaz, agregue una foto de portada. Cargue imágenes con una relación de aspecto de 16: 9 para obtener la mejor vista.",
+ "ThisExtensionIsNotAllowed": "Esta extensión no está permitida.",
+ "TheFileIsTooLarge": "El fichero es demasiado grande.",
+ "GoToTheArticle": "Ir a el artículo",
+ "Contribute": "Contribuir",
+ "OverallProgress": "Progreso general",
+ "Done": "Hecho",
+ "Open": "Abrir",
+ "Closed": "Cerrado",
+ "LatestQuestionOnThe": "Última pregunta en la",
+ "Stackoverflow": "Stackoverflow",
+ "Votes": "Votos",
+ "Answer": "Respuesta",
+ "Views": "Vistas",
+ "Answered": "Respondido",
+ "WaitingForYourAnswer": "Esperando tu respuesta",
+ "Asked": "Preguntado",
+ "AllQuestions": "Todas las preguntas",
+ "NextVersion": "Siguiente versión",
+ "MilestoneErrorMessage": "No se pudieron obtener los detalles del hito actual en Github.",
+ "QuestionItemErrorMessage": "no se pudieron obtener los detalles de pregunta actual en Stackoverflow.",
+ "Oops": "Oops!",
+ "CreateArticleSuccessMessage": "El artículo se ha enviado correctamente. Se publicará después de una revisión del administrador del sitio.",
+ "ChooseCoverImage": "Elige una imagen de portada...",
+ "CoverImage": "Imagen de portada",
+ "ShareYourExperiencesWithTheABPFramework": "Comparte tus experiencias con el ABP Framework!",
+ "Optional": "Opcional",
+ "UpdateUserWebSiteInfo": "Ejemplo: https://johndoe.com",
+ "UpdateUserTwitterInfo": "Ejemplo: johndoe",
+ "UpdateUserGithubInfo": "Ejemplo: johndoe",
+ "UpdateUserLinkedinInfo": "Ejemplo: https://www.linkedin.com/...",
+ "UpdateUserCompanyInfo": "Ejemplo: Volosoft",
+ "UpdateUserJobTitleInfo": "Ejemplo: desarrollador de software",
+ "UserName": "Nombre de usuario",
+ "Company": "Empresa",
+ "PersonalWebsite": "Sitio web personal",
+ "RegistrationDate": "Fecha de registro",
+ "Social": "Social",
+ "Biography": "Biografía",
+ "HasNoPublishedArticlesYet": "No has publicado articules todavía",
+ "Author": "Autor",
+ "LatestGithubAnnouncements": "Últimas notificaciones de Github",
+ "SeeAllAnnouncements": "Ver todos las notificaciones",
"LatestBlogPost": "",
- "Edit": "",
- "ProfileImageChange": "",
- "BlogItemErrorMessage": "",
- "PlannedReleaseDate": "",
- "CommunityArticleRequestErrorMessage": ""
+ "Edit": "Editar",
+ "ProfileImageChange": "Cambiar la imagen de perfil",
+ "BlogItemErrorMessage": "No se pudo obtener los detalles del último blog desde ABP.",
+ "PlannedReleaseDate": "Fecha de entrega planificada",
+ "CommunityArticleRequestErrorMessage": "No se pudo obtener la última petición de artículo desde Github"
}
}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json
index 492229d6bb..e1dd405851 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json
@@ -184,6 +184,14 @@
"ABPCLIExamplesInfo": "new command creates a layered MVC application with Entity Framework Core as the database provider. However, it has additional options. Examples:",
"SeeCliDocumentForMoreInformation": "See the ABP CLI document for more options or select the \"Direct Download\" tab above.",
"Optional": "Optional",
- "LocalFrameworkRef": "Keep local project reference for the framework packages."
+ "LocalFrameworkRef": "Keep local project reference for the framework packages.",
+ "BlobStoring": "BLOB Storing",
+ "BlobStoringExplanation": "BLOB Storing system provides an abstraction to work with BLOBs. ABP provides some pre-built storage provider integrations (Azure, AWS, File System, Database, etc.) that you can easily use in your applications.",
+ "TextTemplating": "Text Templating",
+ "TextTemplatingExplanation": "Text templating is used to dynamically render contents based on a template and a model (a data object). For example, you can use it to create dynamic email contents with a pre-built template.",
+ "MultipleUIOptions": "Multiple UI Options",
+ "MultipleDBOptions": "Multiple Database Providers",
+ "MultipleUIOptionsExplanation": "The core framework is designed as UI independent and can work with any type of UI system, while there are multiple pre-built and integrated options are provided out of the box.",
+ "MultipleDBOptionsExplanation": "The framework can work with any data source, while the following providers are officially developed and supported;"
}
}
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/es.json
index 76132f71ba..3c36634f56 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/es.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/es.json
@@ -1,189 +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": "",
+ "GetStarted": "Comencemos - Plantillas de inicio",
+ "Create": "Crear",
+ "NewProject": "Nuevo proyecto",
+ "DirectDownload": "Descarga directa",
+ "ProjectName": "Nombre de proyecto",
+ "ProjectType": "Tipo de proyecto",
+ "DatabaseProvider": "Proveedor de base de datos",
+ "NTier": "N-Capas",
+ "IncludeUserInterface": "Incluir interface de usuario",
+ "CreateNow": "Crear ahora",
+ "TheStartupProject": "El proyecto de inicio",
+ "Tutorial": "Tutorial",
+ "UsingCLI": "Usando CLI",
+ "SeeDetails": "Ver detalles",
+ "AbpShortDescription": "ABP Framework es una completa infraestructure para crear modernas aplicaciones web que sigue las mejores prácticas y convenciones de desarrollo de software.",
+ "SourceCodeUpper": "CÓDIGO FUENTE",
+ "LatestReleaseLogs": "Últimos registros de lanzamiento",
+ "Infrastructure": "infraestructura",
+ "Architecture": "Arquitectura",
+ "Modular": "Modular",
+ "DontRepeatYourself": "No te repitas tu mismo",
+ "DeveloperFocused": "Pensado para el desarrollador",
+ "FullStackApplicationInfrastructure": "infraestructura de aplicación Full stack",
"DomainDrivenDesign": "",
- "DomainDrivenDesignExplanation": "",
- "Authorization": "",
- "AuthorizationExplanation": "",
- "MultiTenancy": "",
- "MultiTenancyExplanationShort": "",
- "CrossCuttingConcerns": "",
- "CrossCuttingConcernsExplanationShort": "",
- "BuiltInBundlingMinification": "",
- "BuiltInBundlingMinificationExplanation": "",
- "VirtualFileSystem": "",
- "VirtualFileSystemExplanation": "",
- "Theming": "",
- "ThemingExplanationShort": "",
- "BootstrapTagHelpersDynamicForms": "",
+ "DomainDrivenDesignExplanation": "Diseñado y desarrollado basandose en los patrones y principios de DDD. Promorciona una capa de modelo para tus aplicaciones.",
+ "Authorization": "Autorización",
+ "AuthorizationExplanation": "Sistema de autorización avanzado con usuarios, roles y permisos de granularidad-fina. Construido sobre la librería Microsoft Identity.",
+ "MultiTenancy": "Multi-inquilino",
+ "MultiTenancyExplanationShort": "Aplicaciones SaaS sencillas!, integradas con multi-inquilino desde la base de datos hasta la UI.",
+ "CrossCuttingConcerns": "Requerimientos comunes",
+ "CrossCuttingConcernsExplanationShort": "Completa infraestructura de autorización, validación, manejo de excepciones, caching, auditoría, gestión de transacciones y más.",
+ "BuiltInBundlingMinification": "Empaquetado y minificado integrado",
+ "BuiltInBundlingMinificationExplanation": "No se necesitan usar herramientas externas para el empaquetado y minificado. ABP ofrece un camino simple, dinámico, potente, modular e integrado.",
+ "VirtualFileSystem": "Sistema de ficheros virtual",
+ "VirtualFileSystemExplanation": "Incrusta vistas, scripts, estilos, imágenes en paquetes/ librerias y reusalos en diferentes aplicaciones.",
+ "Theming": "Temas",
+ "ThemingExplanationShort": "Usa y personaliza la UI estandar basada en bootstrap o crea tu propio tema.",
+ "BootstrapTagHelpersDynamicForms": "Boostrap Tag Helpers y formularios dinámicos",
"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": "",
+ "HTTPAPIsDynamicProxies": "HTTP APIs y proxies dinámicos",
+ "HTTPAPIsDynamicProxiesExplanation": "Expon servicios de aplicación como REST HTPP APIs y consumelos dinámicamente desde proxies JavaScript y C#.",
+ "CompleteArchitectureInfo": "Arquitectura moderna para crear soluciones software sostenibles.",
+ "DomainDrivenDesignBasedLayeringModelExplanation": "Ayuda a implementar ",
+ "DomainDrivenDesignBasedLayeringModelExplanationCont": "Promorciona plantillas de inicio, clases base, servicios, documentación y guías de ayuda para desarrollar tu aplicación basada en patrones y principios DDD.",
+ "MicroserviceCompatibleModelExplanation": "El núcleo del framework y los modules pre-construidos están diseñados con una arquitectura microservicios en mente.",
+ "MicroserviceCompatibleModelExplanationCont": "Proporciona la infraestructura, integraciones, ejemplos y documentación para implementar soluciones microservicios más facilmente, mientras no trae complejidad adicional si quieres una aplicación monolítica.",
+ "ModularInfo": "ABP proporciona un sistema de modulos que te permite desarrollar modulos de aplicacion resusables. Conectado en el ciclo de eventos de aplicación y mínimas dependencias entre las partes principales de tu sistema.",
+ "PreBuiltModulesThemes": "Modulos y temas integrados",
+ "PreBuiltModulesThemesExplanation": "Módulos y temas de código abierto y comerciales preparados para usar en tu aplicación de negocio.",
+ "NuGetNPMPackages": "Paquetes Nuget y NPM",
+ "NuGetNPMPackagesExplanation": "Paquetes distribuidos a través de Nuget y NPM para instalar y actualizar.",
+ "ExtensibleReplaceable": "Extensible/ Reemplazable",
+ "ExtensibleReplaceableExplanation": "Todos los serivios y módulos están diseñados para ser extensibles. Tu puedes reemplazar servicios, páginas, estilos y componentes.",
+ "CrossCuttingConcernsExplanation2": "Mantiene tu código base más pequeño y te permite enforcate en el código que es especifico en tu negocio.",
+ "CrossCuttingConcernsExplanation3": "No pierdas tiempo implementando requerimientos comunes de aplicación en múltiples proyectos.",
+ "AuthenticationAuthorization": "Autenticación y autorización",
+ "ExceptionHandling": "Manejo de excepciones.",
+ "Validation": "Validación",
+ "DatabaseConnection": "Conexión a la base de datos",
+ "TransactionManagement": "Gestión de transacciones",
+ "AuditLogging": "Registro de auditoría",
+ "Caching": "Caché",
+ "Multitenancy": "Multi-inquilino",
+ "DataFiltering": "Filtrado de datos",
+ "ConventionOverConfiguration": "Convención sobre la configuración",
+ "ConventionOverConfigurationExplanation": "ABP implementa comunes convenciones de aplicación por defecto con una mínima o nula configuración.",
+ "ConventionOverConfigurationExplanationList1": "Los registradores conocen los servicios para la inyección de dependencias.",
+ "ConventionOverConfigurationExplanationList2": "Expone servicios de aplicación como APIs HTTP mediante convenciones de nomenclatura.",
+ "ConventionOverConfigurationExplanationList3": "Crea clientes proxies HTTP dinámicos para C# y JavaScript.",
+ "ConventionOverConfigurationExplanationList4": "Proporciona repositorios por defecto para tus entidades.",
+ "ConventionOverConfigurationExplanationList5": "Maneja Unit of Work por cada petición web o metodo de servicio de aplicación.",
+ "ConventionOverConfigurationExplanationList6": "Publica, crea, actualiza y borra eventos para tus entidades.",
+ "BaseClasses": "Clase base",
+ "BaseClassesExplanation": "Clases base integradas para patrones comunes de aplicación.",
+ "DeveloperFocusedExplanation": "ABP es para desarrolladores.",
+ "DeveloperFocusedExplanationCont": "Su objetivo es simplificar su desarrollo diario de software sin restringirle la escritura de código de bajo nivel.",
+ "SeeAllFeatures": "Ver todas las características",
+ "CLI_CommandLineInterface": "CLI (Command Line Interface)",
+ "CLI_CommandLineInterfaceExplanation": "Incluye un CLI que te ayuda a automatizar la creación de nuevos proyectos y añadir nuevos módulos.",
+ "StartupTemplates": "Plantillas de inicio",
+ "StartupTemplatesExplanation": "Varias plantillas de inicio proporcionan una solución completamente configurada lista para comenzar el desarrollo.",
+ "BasedOnFamiliarTools": "Basado en herramientas familiares",
+ "BasedOnFamiliarToolsExplanation": "Construido y diseñado con herramientas populares que tu ya conoces. Baja curva de aprendizaje, facil adaptación y desarrollo confortable.",
+ "ORMIndependent": "Independiente del ORM",
+ "ORMIndependentExplanation": "El núcleo del core es independiente del ORM/ base de datos y puedes trabajar con cualquier fuente de datos. Entity Framework Core y MongoDB están actualmente disponibles.",
+ "Features": "Explora las características de ABP Framework",
+ "ABPCLI": "ABP CLI",
+ "Modularity": "Modularidad",
+ "BootstrapTagHelpers": "Bootstrap Tag Helpers",
+ "DynamicForms": "Formularios dinámicos",
+ "BundlingMinification": "Empaquetado y Minimificación",
"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": ""
+ "BackgroundJobsExplanation": "Defina clases simples para ejecutar trabajos en segundo plano como en cola. Utilice el administrador de trabajos integrado o integre el suyo propio. Hangfire & RabbitMQ integraciones están actualmente disponibles.",
+ "DDDInfrastructure": "infraestructura DSS",
+ "DomainDrivenDesignInfrastructure": "infraestructura Domain Driven Design",
+ "AutoRESTAPIs": "Auto REST APIs",
+ "DynamicClientProxies": "Clientes proxies dinámicos",
+ "DistributedEventBus": "Bus de eventos distribuido",
+ "DistributedEventBusWithRabbitMQIntegration": "Bus de eventos distribuido con la integración RabbitMQ ",
+ "TestInfrastructure": "infraestructura de Test",
+ "AuditLoggingEntityHistories": "Registro de auditoría y historial de entidades",
+ "ObjectToObjectMapping": "Mapeado objeto a objeto",
+ "ObjectToObjectMappingExplanation": "Mapeado objeto a objeto abstracción integrada con AutoMapper.",
+ "EmailSMSAbstractions": "Abstracciones para Email y SMS",
+ "EmailSMSAbstractionsWithTemplatingSupport": "Abstracciones para Email y SMS con soporte para plantillas",
+ "Localization": "Localización",
+ "SettingManagement": "Gestión de la configuración",
+ "ExtensionMethods": "Extension Methods",
+ "ExtensionMethodsHelpers": "Extension Methods & Helpers",
+ "AspectOrientedProgramming": "Programación orientada a aspectos",
+ "DependencyInjection": "Inyección de dependencias",
+ "DependencyInjectionByConventions": "Inyección de dependencias por convenciones",
+ "ABPCLIExplanation": "ABP CLI (Command Line Interface) es una herramienta en línea de comandos que proporciona ciertas tareas comunes para soluciones basadas en ABP.",
+ "ModularityExplanation": "ABP proporciona una infraestructura completa para construir tu propios módulos de aplicación que pueden contener entidades, servicios, base de datos integradas, APIs, componentes de UI y otros...",
+ "MultiTenancyExplanation": "ABP framework no sólo soporta el desarrollo de aplicaciones multi-inquilino, si no también hace que tu código no tenga que preocuparse de multi-inquilino.",
+ "MultiTenancyExplanation2": "Puedes determinar automaticamente el inquilino actual, y aislar los datos de diferentes inquilinos entre sí. ",
+ "MultiTenancyExplanation3": "Soporta base de datos única, base de datos por inquilino y enfoques híbridos.",
+ "MultiTenancyExplanation4": "Enfocate en tu código y deja al framework que maneje multi-inquilino en tu nombre.",
+ "BootstrapTagHelpersExplanation": "En vez de escribir repetidamente los detalle de componentes bootstrap, usa ABP's tag helpers para simplificarlo y obtener ventaja de intellisence. Tu puedes definitivamente usar Bootstrp cuando tu lo necesites.",
+ "DynamicFormsExplanation": "Los formularios dinámicos y tag helpers de entrada pueden crear el formulario completo a partir de una clase de C# como modelo. ",
+ "AuthenticationAuthorizationExplanation": "Autenticación enriquecidad y opciones de autorización integradas con ASP.NET Core Identity & IdentityServer4. Proporciona un extensible y detallado sistema de permisos.",
+ "CrossCuttingConcernsExplanation": "No te repitas tu mismo al implementar todas esas cosas comunes una y otra vez. Enfocate en tu negocio y permite a ABP automatizarlos por convención.",
+ "DatabaseConnectionTransactionManagement": "Conexión de base de datos y gestión de transacciones",
+ "CorrelationIdTracking": "Correlation-Id de seguimiento",
+ "BundlingMinificationExplanation": "ABP ofrece un sistema simple, dinámico, potente, modular y empaquetado & minificación ",
+ "VirtualFileSystemnExplanation": "El sistema de archivos virtuales permite administrar archivos que no existen físicamente en el sistema de archivos (disco). Se utiliza principalmente para incrustar (js, css, image, cshtml...) en ensamblados y utilizarlos como archivos físicos en tiempo de ejecución.",
+ "ThemingExplanation": "El sistema de temas permite desarrollar el tema de su aplicación y módulos independiente mediante la definición de un conjunto de bibliotecas y diseños base comunes, basado en el último marco de Trabajo bootstrap.",
+ "DomainDrivenDesignInfrastructureExplanation": "Una infraestructura completa para crear aplicaciones en capas basadas en los patrones y principios DDD",
+ "Specification": "Especificación",
+ "Repository": "Repositorios",
+ "DomainService": "Servicio de dominio",
+ "ValueObject": "Objetos de valor",
+ "ApplicationService": "Servicio de aplicación",
+ "DataTransferObject": "Objetos de transferencia de datos",
+ "AggregateRootEntity": "Agregado ráiz, Entidad",
+ "AutoRESTAPIsExplanation": "ABP puede configurar automáticamente los servicios de aplicación como controladores de API por convención.",
+ "DynamicClientProxiesExplanation": "Consuma fácilmente sus API de clientes de JavaScript y C#",
+ "DistributedEventBusWithRabbitMQIntegrationExplanation": "Publique y consuma eventos distribuidos fácilmente mediante el bus de eventos distribuido integrado con la integración RabbitMQ disponible.",
+ "TestInfrastructureExplanation": "El framework se ha desarrollado unitariamente y pruebas de integración. Proporciona clases base para que sea más fácil. Las plantillas de inicio vienen preconfiguradas para las pruebas.",
+ "AuditLoggingEntityHistoriesExplanation": "Registro de auditoría integrado para aplicaciones críticas para el negocio. Registro de auditorías de solicitud, servicio, nivel de método e historiales de entidades con detalles de nivel de propiedad.",
+ "EmailSMSAbstractionsWithTemplatingSupportExplanation": "Las abstracciones IEmailSender e ISmsSender desacoplan la lógica de la aplicación de la infraestructura. El sistema avanzado de plantillas de correo electrónico permite crear y localizar plantillas de correo electrónico y utilizarlas fácilmente cuando sea necesario.",
+ "LocalizationExplanation": "El sistema de localización permite crear recursos en archivos JSON sin formato y utilizarlos para localizar la interfaz de usuario. Admite escenarios avanzados como herencia, extensiones e integración de JavaScript, mientras que es totalmente compatible con el sistema de localización de AspNet Core.",
+ "SettingManagementExplanation": "Defina la configuración de la aplicación y obtenga valores en tiempo de ejecución en función de la configuración actual, el inquilino y el usuario.",
+ "ExtensionMethodsHelpersExplanation": "No te repitas ni siquiera para partes de código triviales. Extensiones y ayudantes para tipos estándar hace que su código sea mucho más limpio y fácil de escribir.",
+ "AspectOrientedProgrammingExplanation": "Proporciona una infraestructura cómoda para crear servidores proxy dinámicos e implementar la programación orientada a aspectos. Interceptar cualquier clase y ejecutar el código antes y después de cada ejecución del método.",
+ "DependencyInjectionByConventionsExplanation": "No es necesario registrar las clases en la inserción de dependencias manualmente. Registra automáticamente los tipos de servicio comunes por convención. Para otro tipo de servicios, puede utilizar interfaces y atributos para que sea más fácil y in situ.",
+ "DataFilteringExplanation": "Definir y usar filtros de datos que se aplican automáticamente al consultar entidades desde la base de datos. Los filtros Soft Delete & MultiTenant se proporcionan de fábrica cuando se implementan interfaces sencillas.",
+ "PublishEvents": "Publicar eventos",
+ "HandleEvents": "Manejar eventos",
+ "AndMore": "y más...",
+ "Code": "Código",
+ "Result": "Resultado",
+ "SeeTheDocumentForMoreInformation": "Ver el {0} documento para más información.",
+ "IndexPageHeroSection": "Código fuente abiertoWeb Application
> What if I want Azure AD as my authorization server and not IdentityServer?
-This means your application will be using AzureAD user store for authentication. By registering both angular app and HttpApi to AzureAD, authentication might work but **authorization won't**. Users need to be registered to Abp identity system for auditing, permissions etc. So the flow should be 3rd party registration.
+This means your application will be using AzureAD user store for authentication. By registering both Angular app and HttpApi to AzureAD, authentication might work but **authorization won't**. Users need to be registered to ABP identity system for auditing, permissions etc. So the flow should be 3rd party registration.
## Setting up OpenId Connection
diff --git a/docs/en/Community-Articles/2020-12-04-Event-Organizer/Post.md b/docs/en/Community-Articles/2020-12-04-Event-Organizer/Post.md
new file mode 100644
index 0000000000..b36d83d0ba
--- /dev/null
+++ b/docs/en/Community-Articles/2020-12-04-Event-Organizer/Post.md
@@ -0,0 +1,936 @@
+# Creating an Event Organizer Application with the ABP Framework & Blazor UI.
+
+## Introduction
+
+In this article, we will create an example application that is a simple **meeting/event organizer**: People create events and other people registers to the event.
+
+The application has been developed with **Blazor** as the UI framework and **MongoDB** as the database provider.
+
+> This tutorial is based on my notes that I'd created to implement this application in a workshop. It shows the necessary steps to build the application rather than detailed explanations.
+
+### Source Code
+
+Source code of the completed application is [available on GitHub](https://github.com/abpframework/abp-samples/tree/master/EventOrganizer).
+
+### Screenshots
+
+Here, the pages of the final application.
+
+**Home Page - Event List**
+
+
+
+**Creating a new Event**
+
+
+
+**Event Detail Page**
+
+
+
+## Requirements
+
+The following tools are needed to be able to run the solution.
+
+* .NET 5.0 SDK
+* Visual Studio 2019 16.8.0+ or another compatible IDE
+* MongoDB Server (with MongoDB Compass)
+
+## Development
+
+### Creating a new Application
+
+* Use the following ABP CLI command:
+
+````bash
+abp new EventOrganizer -u blazor -d mongodb
+````
+
+### Open & Run the Application
+
+* Open the solution in Visual Studio (or your favorite IDE).
+* Run the `EventOrganizer.DbMigrator` application to seed the initial data.
+* Run the `EventOrganizer.HttpApi.Host` application that starts the server side.
+* Run the `EventOrganizer.Blazor` application to start the UI.
+
+### Apply the Custom Styles
+
+* Add styles to `wwwroot/main.css`:
+
+````css
+body.abp-application-layout {
+ background-color: #222 !important;
+ font-size: 18px;
+}
+nav#main-navbar.bg-dark {
+ background-color: #222 !important;
+ box-shadow: none !important;
+}
+.event-pic {
+ width: 100%;
+ border-radius: 12px;
+ box-shadow: 5px 5px 0px 0px rgba(0,0,0,.5);
+ margin-bottom: 10px;
+}
+.event-link:hover, .event-link:hover *{
+ text-decoration: none;
+}
+.event-link:hover .event-pic {
+ box-shadow: 5px 5px 0px 0px #ffd800;
+}
+.event-form {
+ background-color: #333 !important;
+ box-shadow: 5px 5px 0px 0px rgba(0,0,0,.5);
+ border-radius: 12px;
+}
+.table {
+ background: #fff;
+ border-radius: 12px;
+ box-shadow: 5px 5px 0px 0px rgba(0,0,0,.5);
+}
+.table th{
+ border: 0 !important;
+}
+.modal {
+ color: #333;
+}
+.page-item:first-child .page-link {
+ margin-left: 0;
+ border-top-left-radius: 12px;
+ border-bottom-left-radius: 12px;
+}
+.page-item:last-child .page-link {
+ border-top-right-radius: 12px;
+ border-bottom-right-radius: 12px;
+}
+.btn {
+ border-radius: 8px;
+}
+.att-list {
+ list-style: none;
+ padding: 0;
+}
+.att-list li {
+ padding: 4px 0 0 0;
+}
+````
+
+* `wwwroot/index.html`: Remove `bg-light` class from the `body` tag and add `bg-dark text-light`.
+
+### Domain Layer
+
+* Add the following `Event` aggregate (with `EventAttendee`) to the solution:
+
+**Event**
+
+````csharp
+using System;
+using System.Collections.Generic;
+using Volo.Abp.Domain.Entities.Auditing;
+
+namespace EventOrganizer.Events
+{
+ public class Event : FullAuditedAggregateRoot@upcomingEvent.Title
+@upcomingEvent.Description.TruncateWithPostfix(150)
+@Event.Description
+You are registered in this event
+ + } +Email: @Comment.Email
++ Message: @Comment.Body +
+| + {{'::Name' | abpLocalization}} + | +{{element.name}} | ++ {{'::Type' | abpLocalization}} + | ++ {{ '::Enum:BookType:' + element.type | abpLocalization }} + | +
|---|
{{ data.description | abpLocalization }}
+| + {{'::Actions' | abpLocalization}} + | ++ + | + {{'::Name' | abpLocalization}} + | +{{element.name}} | ++ {{'::BirthDate' | abpLocalization}} + | ++ {{ element.birthDate | date }} + | +
|---|
- <abp-button button-type="Primary" data-toggle="modal" data-target="#myModal">Launch modal</abp-button>
-
- <abp-modal centered="true" size="Large" id="myModal">
- <abp-modal-header title="Modal title"></abp-modal-header>
- <abp-modal-body>
- Woohoo, you're reading this text in a modal!
- </abp-modal-body>
- <abp-modal-footer buttons="@(AbpModalButtons.Save|AbpModalButtons.Close)"></abp-modal-footer>
- </abp-modal>
+
+ <abp-button button-type="Primary" data-toggle="modal" data-target="#myModal">Launch modal</abp-button>
+
+ <abp-modal centered="true" scrollable="true" size="Large" id="myModal">
+ <abp-modal-header title="Modal title"></abp-modal-header>
+ <abp-modal-body>
+ Woohoo, you're reading this text in a modal!
+ </abp-modal-body>
+ <abp-modal-footer buttons="@(AbpModalButtons.Save|AbpModalButtons.Close)"></abp-modal-footer>
+ </abp-modal>