diff --git a/.github/ISSUE_TEMPLATE/03_studio.yml b/.github/ISSUE_TEMPLATE/03_studio.yml new file mode 100644 index 0000000000..c6839403d7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/03_studio.yml @@ -0,0 +1,94 @@ +name: đŸ€  ABP Studio +description: Create a report to help us improve the ABP Studio +labels: [studio] +body: + - type: markdown + attributes: + value: | + We welcome bug reports! This template will help us gather the information we need to start the triage process. + + Please keep in mind that the GitHub issue tracker is not intended as a general support forum, but for reporting **non-security** bugs and feature requests. + If you believe you have an issue that affects the SECURITY of the platform, please do NOT create an issue and instead email your issue details to info@abp.io. + For other types of questions, consider using [StackOverflow](https://stackoverflow.com/questions/tagged/abp). + - type: checkboxes + id: searched + attributes: + label: Is there an existing issue for this? + description: Please search to see if an issue already exists for the bug you encountered or feature request ([abp/issues](https://github.com/abpframework/abp/issues?q=is%3Aopen+is%3Aissue+label%3Astudio)). + options: + - label: I have searched the existing issues + required: true + - type: textarea + id: background + attributes: + label: Description + description: Please share a clear and concise description of the problem. + placeholder: Description + validations: + required: true + - type: markdown + attributes: + value: | + ## Setup + Please provide more information on your ABP Studio setup. + - type: input + id: version + attributes: + label: Version + description: Which version of ABP Studio are you using? + placeholder: Version + validations: + required: true + - type: dropdown + id: Operation-System + attributes: + label: Operation System + description: What is the operation system of the computer? + options: + - Windows (Default) + - Linux + - macOS + - Others + validations: + required: true + - type: textarea + id: solution-config + attributes: + label: Solution Configuration + description: | + If there is an open solution, what are the configurations of the solution? + 🧐 Hint: You can see all the information about your solution from the configuration window, which opens when you right-click on the [solution](https://abp.io/docs/latest/studio/solution-explorer#solution) and click on the `Solution Configuration` button. + placeholder: | + - **Template**: app + - **Created ABP Studio Version**: 0.7.9 + - **Tiered**: No + - **UI Framework**: mvc + - **Theme**: leptonx + - **Theme Style**: system + - **Database Provider**: ef + - **Database Management System**: sqlserver + - **Separate Tenant Schema**: No + - **Mobile Framework**: none + - **Public Website**: No + - **Optional Modules**: + * GDPR + * TextTemplateManagement + * LanguageManagement + * AuditLogging + * SaaS + * OpenIddictAdmin + validations: + required: false + - type: markdown + attributes: + value: | + --- + - type: textarea + id: other-info + attributes: + label: Other information + description: | + If you have an idea where the problem might lie, let us know that here. Please include any pointers to code, relevant changes, or related issues you know of. + placeholder: Other information + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/03_article_request.yml b/.github/ISSUE_TEMPLATE/04_article_request.yml similarity index 76% rename from .github/ISSUE_TEMPLATE/03_article_request.yml rename to .github/ISSUE_TEMPLATE/04_article_request.yml index 34082596c5..282ac107bf 100644 --- a/.github/ISSUE_TEMPLATE/03_article_request.yml +++ b/.github/ISSUE_TEMPLATE/04_article_request.yml @@ -6,7 +6,7 @@ body: id: searched attributes: label: Is there an existing article or article request for this? - description: Please search to see if there is an article or article request related to your article request ([community.abp.io](https://community.abp.io/posts), [abp/issues](https://github.com/abpframework/abp/issues?q=is%3Aopen+is%3Aissue+label%3Acommunity-article-request)) + description: Please search to see if there is an article or article request related to your article request ([abp.io/community](https://abp.io/community/articles), [abp/issues](https://github.com/abpframework/abp/issues?q=is%3Aopen+is%3Aissue+label%3Acommunity-article-request)) options: - label: I have searched the existing resources required: true diff --git a/.github/ISSUE_TEMPLATE/04_performance_issue.md b/.github/ISSUE_TEMPLATE/05_performance_issue.md similarity index 100% rename from .github/ISSUE_TEMPLATE/04_performance_issue.md rename to .github/ISSUE_TEMPLATE/05_performance_issue.md diff --git a/.github/ISSUE_TEMPLATE/05_blank_issue.md b/.github/ISSUE_TEMPLATE/06_blank_issue.md similarity index 100% rename from .github/ISSUE_TEMPLATE/05_blank_issue.md rename to .github/ISSUE_TEMPLATE/06_blank_issue.md diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 2261ab7bab..9fca40ba4f 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,8 +1,8 @@ blank_issues_enabled: true contact_links: - name: Issue with ABP Commercial - url: https://support.abp.io/QA/Questions - about: Please open ABP Commercial related issues at https://support.abp.io. + url: https://abp.io/support/questions + about: Please open ABP Commercial related issues at https://abp.io/support/questions. - name: Ask a question (community support) url: https://stackoverflow.com/questions/tagged/abp about: Ask a question that will be answered by the ABP community diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 696d401fed..0bfa3e0711 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -51,7 +51,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-dotnet@master with: - dotnet-version: 8.0.100 + dotnet-version: 9.0.100-rc.1.24452.12 - name: chown run: | diff --git a/Directory.Packages.props b/Directory.Packages.props index 854123b215..f6db56e778 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -6,7 +6,7 @@ - + @@ -38,6 +38,7 @@ + @@ -50,69 +51,70 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + @@ -126,7 +128,7 @@ - + @@ -153,17 +155,17 @@ - + - + - - - + + + @@ -173,5 +175,6 @@ + diff --git a/NuGet.md b/NuGet.md index 1073e17b8c..29b17f9e03 100644 --- a/NuGet.md +++ b/NuGet.md @@ -11,21 +11,21 @@ ABP offers an opinionated architecture to build enterprise software solutions wi 🔗GitHub Repository: https://github.com/abpframework/abp -🔗Samples: https://docs.abp.io/en/abp/latest/Samples/Index +🔗Samples: https://abp.io/docs/latest/samples/ 🔗Official Theme: https://www.LeptonTheme.com -🔗Documentation: https://docs.abp.io +🔗Documentation: https://abp.io/docs/latest/ -🔗Community: https://community.abp.io +🔗Community: https://abp.io/community/ -🔗Blog: https://blog.abp.io +🔗Blog: https://abp.io/blog/ 🔗Books: https://abp.io/books 🔗Twitter: https://twitter.com/abpframework -🔗Discord: https://community.abp.io/discord +🔗Discord: https://abp.io/community/discord 🔗Stackoverflow: https://stackoverflow.com/questions/tagged/abp @@ -124,8 +124,8 @@ Support for open-source ABP Framework client-side packages is available at [GitH If you are building an enterprise-level application with pro support, extra tools like a code generator, fancy themes and a microservice template, time to invest in the commercial version! -To understand how it works, see [How it Works]( https://commercial.abp.io/how-it-works) page. +To understand how it works, see [How it Works]( https://abp.io/how-it-works) page. -If you wonder why you should choose ABP Commercial, check out [Why ABP.IO Platform](https://docs.abp.io/en/commercial/latest/why-abp-io-platform) page. +If you wonder why you should choose ABP, check out [Why ABP.IO Platform](https://abp.io/docs/latest/others/why-abp-platform) page. -Official website: [https://commercial.abp.io](https://commercial.abp.io/) +Official website: [https://abp.io](https://abp.io/) diff --git a/README.md b/README.md index dd953a6431..0f49bd7e12 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,17 @@ # ABP Framework -![build and test](https://img.shields.io/github/actions/workflow/status/abpframework/abp/build-and-test.yml?branch=dev&style=flat-square) đŸ”č [![codecov](https://codecov.io/gh/abpframework/abp/branch/dev/graph/badge.svg?token=jUKLCxa6HF)](https://codecov.io/gh/abpframework/abp) đŸ”č [![NuGet](https://img.shields.io/nuget/v/Volo.Abp.Core.svg?style=flat-square)](https://www.nuget.org/packages/Volo.Abp.Core) đŸ”č [![NuGet (with prereleases)](https://img.shields.io/nuget/vpre/Volo.Abp.Core.svg?style=flat-square)](https://www.nuget.org/packages/Volo.Abp.Core) đŸ”č [![MyGet (nightly builds)](https://img.shields.io/myget/abp-nightly/vpre/Volo.Abp.svg?style=flat-square)](https://docs.abp.io/en/abp/latest/Nightly-Builds) đŸ”č +![build and test](https://img.shields.io/github/actions/workflow/status/abpframework/abp/build-and-test.yml?branch=dev&style=flat-square) đŸ”č [![codecov](https://codecov.io/gh/abpframework/abp/branch/dev/graph/badge.svg?token=jUKLCxa6HF)](https://codecov.io/gh/abpframework/abp) đŸ”č [![NuGet](https://img.shields.io/nuget/v/Volo.Abp.Core.svg?style=flat-square)](https://www.nuget.org/packages/Volo.Abp.Core) đŸ”č [![NuGet (with prereleases)](https://img.shields.io/nuget/vpre/Volo.Abp.Core.svg?style=flat-square)](https://www.nuget.org/packages/Volo.Abp.Core) đŸ”č [![MyGet (nightly builds)](https://img.shields.io/myget/abp-nightly/vpre/Volo.Abp.svg?style=flat-square)](https://abp.io/docs/latest/release-info/nightly-builds) đŸ”č [![NuGet Download](https://img.shields.io/nuget/dt/Volo.Abp.Core.svg?style=flat-square)](https://www.nuget.org/packages/Volo.Abp.Core) đŸ”č [![Code of Conduct](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg)](https://github.com/abpframework/abp/blob/dev/CODE_OF_CONDUCT.md) đŸ”č [![CLA Signed](https://cla-assistant.io/readme/badge/abpframework/abp)](https://cla-assistant.io/abpframework/abp) đŸ”č [![Discord Shield](https://discord.com/api/guilds/951497912645476422/widget.png?style=shield)](https://discord.gg/abp) ABP Framework is a complete **infrastructure** based on **ASP.NET Core** that creates **modern web applications** and **APIs** by following the software development **best practices** and the **latest technologies**. -[![ABP Platform](https://github.com/abpframework/abp/assets/9526587/47531496-4088-406d-9c69-63cb0ffec2ba)](https://abp.io) - +[![ABP Platform](https://github.com/user-attachments/assets/200653c0-0e69-4b47-b76a-3a83460aaab6)](https://abp.io) ## Getting Started -- [Quick Start](https://docs.abp.io/en/abp/latest/Tutorials/Todo/Index) is a single-part, quick-start tutorial to build a simple application with the ABP Framework. Start with this tutorial if you want to understand how ABP works quickly. -- [Getting Started guide](https://docs.abp.io/en/abp/latest/Getting-Started) can be used to create and run ABP-based solutions with different options and details. -- [Web Application Development Tutorial](https://docs.abp.io/en/abp/latest/Tutorials/Part-1) is a complete tutorial on developing a full-stack web application with all aspects of a real-life solution. +- [Quick Start](https://abp.io/docs/latest/tutorials/todo) is a single-part, quick-start tutorial to build a simple application with the ABP Framework. Start with this tutorial if you want to understand how ABP works quickly. +- [Getting Started guide](https://abp.io/docs/latest/get-started) can be used to create and run ABP-based solutions with different options and details. +- [Web Application Development Tutorial](https://abp.io/docs/latest/tutorials/book-store) is a complete tutorial on developing a full-stack web application with all aspects of a real-life solution. ### Quick Start @@ -28,7 +27,7 @@ Create a new solution: > abp new BookStore -u mvc -d ef ```` -> See the [CLI documentation](https://docs.abp.io/en/abp/latest/CLI) for all available options. +> See the [CLI documentation](https://abp.io/docs/latest/cli) for all available options. @@ -54,21 +53,21 @@ ABP provides a **full stack developer experience**. -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 guidance to [implement this architecture](https://docs.abp.io/en/abp/latest/Domain-Driven-Design-Implementation-Guide). +ABP offers a complete, **modular** and **layered** software architecture based on **[Domain Driven Design](https://abp.io/docs/latest/framework/architecture/domain-driven-design)** principles and patterns. It also provides the necessary infrastructure and guidance to [implement this architecture](https://abp.io/books/implementing-domain-driven-design). -ABP Framework is suitable for **[microservice solutions](https://docs.abp.io/en/abp/latest/Microservice-Architecture)** as well as monolithic applications. +ABP Framework is suitable for **[microservice solutions](https://abp.io/docs/latest/framework/architecture/microservices)** 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/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. +There are a lot of features provided by the ABP Framework to achieve real-world scenarios easier, like [Event Bus](https://abp.io/docs/latest/framework/infrastructure/event-bus), [Background Job System](https://abp.io/docs/latest/framework/infrastructure/background-jobs), [Audit Logging](https://abp.io/docs/latest/framework/infrastructure/audit-logging), [BLOB Storing](https://abp.io/docs/latest/framework/infrastructure/blob-storing), [Data Seeding](https://abp.io/docs/latest/framework/infrastructure/data-seeding), [Data Filtering](https://abp.io/docs/latest/framework/infrastructure/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/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. +ABP also simplifies (and even automates wherever possible) cross-cutting concerns and common non-functional requirements like [Exception Handling](https://abp.io/docs/latest/framework/fundamentals/exception-handling), [Validation](https://abp.io/docs/latest/framework/fundamentals/validation), [Authorization](https://abp.io/docs/latest/framework/fundamentals/authorizationn), [Localization](https://abp.io/docs/latest/framework/fundamentals/localization), [Caching](https://abp.io/docs/latest/framework/fundamentals/caching), [Dependency Injection](https://abp.io/docs/latest/framework/fundamentals/dependency-injection), [Setting Management](https://abp.io/docs/latest/framework/infrastructure/settings), etc. @@ -76,18 +75,18 @@ ABP also simplifies (and even automates wherever possible) cross-cutting concern ABP is a modular framework and the Application Modules provide **pre-built application functionalities**; -- [**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. -- [**OpenIddict**](https://docs.abp.io/en/abp/latest/Modules/OpenIddict): Integrates to OpenIddict. -- [**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. +- [**Account**](https://abp.io/docs/latest/modules/account): Provides UI for the account management and allows user to login/register to the application. +- **[Identity](https://abp.io/docs/latest/modules/identity)**: Manages organization units, roles, users and their permissions based on the Microsoft Identity library. +- [**OpenIddict**](https://abp.io/docs/latest/modules/openiddict): Integrates to OpenIddict. +- [**Tenant Management**](https://abp.io/docs/latest/modules/tenant-management): Manages tenants for a [multi-tenant](https://abp.io/docs/latest/framework/architecture/multi-tenancy) (SaaS) application. -See the [Application Modules](https://docs.abp.io/en/abp/latest/Modules/Index) document for all pre-built modules. +See the [Application Modules](https://abp.io/docs/latest/modules) document for all pre-built modules. ### Startup Templates -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**. +The [Startup templates](https://abp.io/docs/latest/solution-templates) are pre-built Visual Studio solution templates. You can create your own solution based on these templates to **immediately start your development**. @@ -103,19 +102,19 @@ This book will help you to gain a complete understanding of the ABP Framework an ### ABP Community Web Site -The [ABP Community](https://community.abp.io/) is a website to publish **articles** and share **knowledge** about the ABP Framework. You can also create content for the community! +The [ABP Community](https://abp.io/community) is a website to publish **articles** and share **knowledge** about the ABP Framework. You can also create content for the community! ### Blog -Follow the [ABP Blog](https://blog.abp.io/) to learn the latest happenings in the ABP Framework. +Follow the [ABP Blog](https://abp.io/blog) to learn the latest happenings in the ABP Framework. ### Samples -See the [sample projects](https://docs.abp.io/en/abp/latest/Samples/Index) built with the ABP Framework. +See the [sample projects](https://abp.io/docs/latest/samples) 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/latest/Contribution/Index) if you want to participate in this project. +ABP is a community-driven open-source project. See [the contribution guide](https://abp.io/docs/latest/contribution) if you want to participate in this project. @@ -123,11 +122,11 @@ ABP is a community-driven open-source project. See [the contribution guide](http * [Home Website](https://abp.io) * [Get Started](https://abp.io/get-started) - * [Features](https://abp.io/features) -* [Documents](https://docs.abp.io/) -* [Samples](https://docs.abp.io/en/abp/latest/Samples/Index) -* [Blog](https://blog.abp.io/) -* [Community](https://community.abp.io/) + * [Features](https://abp.io/framework) +* [Documents](https://abp.io/docs/latest) +* [Samples](https://abp.io/docs/latest/samples) +* [Blog](https://abp.io/blog) +* [Community](https://abp.io/community) * [Stackoverflow](https://stackoverflow.com/questions/tagged/abp) * [Twitter](https://twitter.com/abpframework) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalization.csproj b/abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalization.csproj index 267ace87f2..6e7bbc184e 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalization.csproj +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalization.csproj @@ -1,7 +1,7 @@ - netstandard2.0;netstandard2.1;net8.0 + netstandard2.0;netstandard2.1;net8.0;net9.0 diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalizationModule.cs b/abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalizationModule.cs index fe24f4d4ec..3876b58c89 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalizationModule.cs +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalizationModule.cs @@ -2,8 +2,6 @@ using AbpIoLocalization.Admin.Localization; using AbpIoLocalization.Base.Localization; using AbpIoLocalization.Blog.Localization; -using AbpIoLocalization.Commercial.Localization; -using AbpIoLocalization.Community.Localization; using AbpIoLocalization.Docs.Localization; using AbpIoLocalization.Support.Localization; using AbpIoLocalization.Www; @@ -28,9 +26,7 @@ namespace AbpIoLocalization Configure(options => { - options.MapCodeNamespace("Volo.AbpIo.Commercial", typeof(AbpIoCommercialResource)); options.MapCodeNamespace("Volo.AbpIo.Domain", typeof(AbpIoBaseResource)); - options.MapCodeNamespace("Volo.AbpIo.Community", typeof(AbpIoCommunityResource)); }); Configure(options => @@ -57,11 +53,6 @@ namespace AbpIoLocalization .AddVirtualJson("/Blog/Localization/Resources") .AddBaseTypes(typeof(AbpIoBaseResource)); - options.Resources - .Add("en") - .AddVirtualJson("/Commercial/Localization/Resources") - .AddBaseTypes(typeof(AbpIoBaseResource)); - options.Resources .Add("en") .AddVirtualJson("/Docs/Localization/Resources") @@ -76,11 +67,6 @@ namespace AbpIoLocalization .Add("en") .AddVirtualJson("/Www/Localization/Resources") .AddBaseTypes(typeof(AbpIoBaseResource)); - - options.Resources - .Add("en") - .AddVirtualJson("/Community/Localization/Resources") - .AddBaseTypes(typeof(AbpIoBaseResource)); }); } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/sv.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/sv.json new file mode 100644 index 0000000000..d5b7e713d9 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/sv.json @@ -0,0 +1,18 @@ +{ + "culture": "sv", + "texts": { + "Account": "ABP-konto - Logga in och registrera dig | ABP.IO", + "Welcome": "VĂ€lkommen", + "UseOneOfTheFollowingLinksToContinue": "AnvĂ€nd nĂ„gon av följande lĂ€nkar för att fortsĂ€tta", + "FrameworkHomePage": "Ramverkets startsida", + "FrameworkDocumentation": "Dokumentation av ramverk", + "OfficialBlog": "Officiell blogg", + "CommercialHomePage": "Kommersiell hemsida", + "CommercialSupportWebSite": "Webbplats för kommersiellt stöd", + "CommunityWebSite": "ABP:s gemensamma webbplats", + "ManageAccount": "Mitt konto | ABP.IO", + "ManageYourProfile": "Hantera din profil", + "ReturnToApplication": "ÅtergĂ„ till ansökan", + "IdentityUserNotAvailable:Deleted": "Den hĂ€r e-postadressen Ă€r inte tillgĂ€nglig. Anledning till detta: Redan raderad." + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json index 2429f52eef..7e2642e88b 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json @@ -15,6 +15,7 @@ "Permission:Maintain": "Maintain", "Permission:ClearCaches": "Clear caches", "Permission:Modules": "Modules", + "Permission:UserDownloads": "User Downloads", "Permission:Packages": "Packages", "Permission:Edit": "Edit", "Permission:Delete": "Delete", @@ -32,12 +33,15 @@ "Name": "Name", "DisplayName": "Display name", "ShortDescription": "Short description", + "LongDescription": "Long description", "NameFilter": "Name", "CreationTime": "Creation time", - "IsPro": "Is pro", + "IsPro": "Pro package", "ShowOnModuleList": "Show in module list", "EfCoreConfigureMethodName": "Configure method name", "IsProFilter": "Is pro", + "ShowOnModuleFilter": "Show on module list", + "ShowOnModuleListFilter": "Show on module list", "ApplicationType": "Application type", "Target": "Target", "TargetFilter": "Target", @@ -56,8 +60,10 @@ "Refresh": "Refresh", "NpmPackages": "NPM Packages", "NugetPackages": "Nuget Packages", + "NuGetPackages": "NuGet Packages", "NpmPackageCount": "NPM Package Count", "NugetPackageCount": "Nuget Package Count", + "NuGetPackageCount": "NuGet Package Count", "Module": "Modules", "ModuleInfo": "Module info", "CreateANpmPackage": "Create a NPM package", @@ -102,6 +108,9 @@ "DoYouWantToCreateNewUser": "Do you want to create new user?", "MasterModules": "Master Modules", "OrganizationName": "Organisation name", + "DownloadType": "Download type", + "UserDownloads": "User Downloads", + "AcceptNewsletter": "Accept newsletter", "CreationDate": "Creation date", "LicenseStartDate": "License start date", "LicenseEndDate": "License end date", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json index 5bc1680708..9fb30d3fda 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json @@ -28,17 +28,21 @@ "Menu:DiscountRequests": "Discount Requests", "NpmPackageDeletionWarningMessage": "This NPM Package will be deleted. Do you confirm that?", "NugetPackageDeletionWarningMessage": "This Nuget Package will be deleted. Do you confirm that?", + "NuGetPackages": "NuGet Packages", "ModuleDeletionWarningMessage": "This Module will be deleted. Do you confirm that?", "Name": "Name", "DisplayName": "Display name", "ShortDescription": "Short description", + "LongDescription": "Long description", "NameFilter": "Name", "CreationTime": "Creation time", - "IsPro": "Is pro", + "IsPro": "Pro package", "IsFreeToActiveLicenseOwners": "Free to license owners", "ShowOnModuleList": "Show on module list", "EfCoreConfigureMethodName": "Configure method name", - "IsProFilter": "Is pro", + "IsProFilter": "Pro package", + "ShowOnModuleFilter": "Show on module list", + "ShowOnModuleListFilter": "Show on module list", "ApplicationType": "Application type", "Target": "Target", "TargetFilter": "Target", @@ -59,6 +63,7 @@ "NugetPackages": "Nuget Packages", "NpmPackageCount": "NPM Package Count", "NugetPackageCount": "Nuget Package Count", + "NuGetPackageCount": "NuGet Package Count", "Module": "Modules", "ModuleInfo": "Module info", "CreateANpmPackage": "Create a NPM package", @@ -72,7 +77,7 @@ "Menu:NpmPackages": "NPM Packages", "Menu:Modules": "Modules", "Menu:Maintenance": "Maintenance", - "Menu:NugetPackages": "Nuget Packages", + "Menu:NugetPackages": "NuGet Packages", "CreateAnOrganization": "Create an organization", "Organizations": "Organizations", "LongName": "Long name", @@ -120,8 +125,15 @@ "PurchaseOrderNo": "Purchase order no", "QuotationDate": "Quotation date", "CompanyName": "Company name", + "DownloadType": "Download type", + "UserDownloads": "User Downloads", + "AcceptNewsletter": "Accept newsletter", "CompanyAddress": "Company address", "Price": "Price", + "Unknown": "Unknown", + "DddEBook": "Ddd EBook", + "MasteringAbpFrameworkEBook": "Mastering AbpFramework EBook", + "MicroserviceEBook": "Microservice EBook", "DiscountText": "Discount text", "DiscountQuantity": "Discount quantity", "DiscountPrice": "Discount price", @@ -219,8 +231,8 @@ "ReIndexAllPostsConfirmationMessage": "Are you sure you want to reindex all posts?", "SuccessfullyReIndexAllPosts": "All posts have been successfully reindexed.", "Permission:FullSearch": "Full text search", - "Menu:CliAnalytics": "Cli Analytics", - "Menu:Reports": "Reports", + "Menu:CliAnalytics": "CLI Analytics", + "Menu:Reports": "Dynamic Reports", "TemplateName": "Template name", "TemplateVersion": "Template version", "DatabaseProvider": "Database provider", @@ -232,7 +244,7 @@ "UiFramework": "Ui framework", "Options": "Options", "CliAnalytics": "Cli Analytics", - "Reports": "Reports", + "Reports": "Dynamic Reports", "Permission:CliAnalyticses": "Cli Analyticses", "Permission:CliAnalytics": "Cli Analytics", "Permission:Reports": "Reports", @@ -284,6 +296,7 @@ "Menu:Quotation": "Quotation", "Menu:Invoice": "Invoice", "Menu:Quotation/Invoice": "Quotation/Invoice", + "Menu:UserDownloads": "User Downloads", "Menu:PaymentRequests": "Payment Requests", "Permission:PaymentRequests": "Payment Requests", "PaymentRequests": "Payment Requests", @@ -456,7 +469,8 @@ "InterestedLicenseType": "Interested License Type", "MoveWaitList": "Move to wait list", "CommunityLinkTitle": "Open on the community website", - "CommunityLink": "Community link", + "CommunityLink": "Link", + "IpAddress": "IP Address", "ReloadFromSource": "Reload From the Source", "ReloadFromSourceConfirmationMessage": "This post will be refreshed from \"{0}\". Do you want to continue?", "UnitPrice": "Unit Price", @@ -565,6 +579,7 @@ "AllowAbpStudioBetaAccess": "Allow ABP Studio Beta Access", "TotalQuestionCanNotBeNullMessage": "Total Question can not be null", "Permission:OrganizationAutoRenewalPayments": "Organization Auto Renewal Payments", + "Permission:UserDownloads": "User Downloads", "Permission:RetryFailedPayments": "Retry Failed Payments", "AutoRenewalIsNotEnabled": "Auto Renewal is not enabled!", "LicenseIsNotExpired": "License is not expired!", @@ -587,9 +602,10 @@ "AutoRenewalEnabled": "Auto Renewal Enabled", "LastAutoRenewalPaymentTime": "Last Auto Renewal Payment Time", "OrganizationDoesNotHaveACreditCard": "Organization does not have a credit card!", + "OrganizationDoesNotHaveACreditCardInGateway": "Organization does not have a credit card in the gateway!", "Permission:EditWinners": "Edit Winners", "Permission:ChangeDrawingStatus": "Change Drawing Status", - "Menu:Licenses": "Licenses", + "Menu:Licenses": "Licensing", "OrganizationId": "Organization Id", "RemoveAllWinnersConfirmationMessage": "Are you sure you want to remove all winners?", "AutoRenewals": "Auto Renewals", @@ -622,6 +638,17 @@ "DeleteImageSuccessMessage": "Image successfully deleted", "DeleteImage": "Delete Image", "NetTerms": "Terms (Days)", + "Menu:DynamicReports": "Dynamic Reports", + "Menu:Others": "Others", + "Menu:Packs&Modules": "Packs & Modules", + "ReleaseCaches": "Release Cache", + "Menu:HeroSections": "Hero Sections", + "HeroSections": "Hero Sections", + "DynamicReports": "Dynamic Reports", + "Menu:ReportsMenu": "Reports", + "Permission:HeroSections": "Hero Sections", + "RedirectLink": "Redirect link", + "HeroSectionsDeletionConfirmationMessage": "Are you sure you want to delete the hero section?", "AbpStudioName": "Abp Studio name" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/sv.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/sv.json new file mode 100644 index 0000000000..f6b113895b --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/sv.json @@ -0,0 +1,640 @@ +{ + "culture": "sv", + "texts": { + "Permission:Organizations": "Organisationer", + "Permission:Manage": "Hantera organisationer", + "Permission:DiscountRequests": "RabattförfrĂ„gningar", + "Permission:DiscountManage": "Hantera rabattförfrĂ„gningar", + "Permission:Disable": "Avaktivera", + "Permission:Enable": "Aktivera", + "Permission:EnableSendEmail": "Aktivera skicka e-post", + "Permission:SendEmail": "Skicka e-post", + "Permission:NpmPackages": "NPM-paket", + "Permission:NugetPackages": "Nuget-paket", + "Permission:Maintenance": "UnderhĂ„ll", + "Permission:Maintain": "BehĂ„lla", + "Permission:ClearCaches": "Rensa cacheminnen", + "Permission:Modules": "Moduler", + "Permission:Packages": "Paket", + "Permission:Edit": "Redigera", + "Permission:Delete": "Radera", + "Permission:Create": "Skapa", + "Permission:Accounting": "Redovisning", + "Permission:Accounting:Quotation": "Offert", + "Permission:Accounting:Invoice": "Faktura", + "Menu:Organizations": "Organisationer", + "Menu:Accounting": "Redovisning", + "Menu:Packages": "Paket", + "Menu:DiscountRequests": "RabattförfrĂ„gningar", + "NpmPackageDeletionWarningMessage": "Detta NPM-paket kommer att raderas. Kan du bekrĂ€fta det?", + "NugetPackageDeletionWarningMessage": "Detta Nuget-paket kommer att raderas. Kan du bekrĂ€fta det?", + "ModuleDeletionWarningMessage": "Denna modul kommer att raderas. Kan du bekrĂ€fta det?", + "Name": "Namn", + "DisplayName": "Visa namn", + "ShortDescription": "Kort beskrivning", + "NameFilter": "Namn", + "CreationTime": "Skapelsetid", + "IsPro": "Är pro", + "IsFreeToActiveLicenseOwners": "Gratis för licensinnehavare", + "ShowOnModuleList": "Visa pĂ„ modullistan", + "EfCoreConfigureMethodName": "Konfigurera metodnamn", + "IsProFilter": "Är pro", + "ApplicationType": "Typ av applikation", + "Target": "MĂ„l", + "TargetFilter": "MĂ„l", + "ModuleClass": "Modul klass", + "NugetPackageTarget.DomainShared": "Delad domĂ€n", + "NugetPackageTarget.Domain": "DomĂ€n", + "NugetPackageTarget.Application": "TillĂ€mpning", + "NugetPackageTarget.ApplicationContracts": "Ansökan Kontrakt", + "NugetPackageTarget.HttpApi": "Http Api", + "NugetPackageTarget.HttpApiClient": "Http Api-klient", + "NugetPackageTarget.Web": "Webb", + "NugetPackageTarget.EntityFrameworkCore": "DeleteAllEntityFramework Core", + "NugetPackageTarget.MongoDB": "MongoDB", + "Edit": "Redigera", + "Delete": "Radera", + "Refresh": "Uppdatera", + "NpmPackages": "NPM-paket", + "NugetPackages": "Nuget-paket", + "NpmPackageCount": "Antal NPM-paket", + "NugetPackageCount": "Antal Nuget-paket", + "Module": "Moduler", + "ModuleInfo": "Modulinformation", + "CreateANpmPackage": "Skapa ett NPM-paket", + "CreateAModule": "Skapa en modul", + "CreateANugetPackage": "Skapa ett Nuget-paket", + "AddNew": "LĂ€gg till ny", + "PackageAlreadyExist{0}": "\"{0}\"-paketet Ă€r redan tillagt.", + "ModuleAlreadyExist{0}": "\"{0}\"-modulen Ă€r redan tillagd.", + "ClearCache": "Rensa cache", + "SuccessfullyCleared": "FramgĂ„ngsrikt rensad", + "Menu:NpmPackages": "NPM-paket", + "Menu:Modules": "Moduler", + "Menu:Maintenance": "UnderhĂ„ll", + "Menu:NugetPackages": "NuGet-paket", + "CreateAnOrganization": "Skapa en organisation", + "Organizations": "Organisationer", + "LongName": "LĂ„ngt namn", + "LicenseType": "Typ av licens", + "MissingLicenseTypeField": "FĂ€ltet för licenstyp Ă€r obligatoriskt!", + "LicenseStartTime": "Licensens starttid", + "LicenseEndTime": "Licensens sluttid", + "AllowedDeveloperCount": "TillĂ„tet antal utvecklare", + "UserNameOrEmailAddress": "AnvĂ€ndarnamn eller e-postadress", + "AddOwner": "LĂ€gg till Ă€gare", + "UserName": "AnvĂ€ndarnamn", + "Email": "E-post", + "Developers": "Utvecklare", + "AddDeveloper": "LĂ€gg till utvecklare", + "Create": "Skapa", + "UserNotFound": "AnvĂ€ndaren hittades inte", + "{0}WillBeRemovedFromDevelopers": "{0} Kommer att tas bort frĂ„n utvecklare, bekrĂ€ftar du?", + "{0}WillBeRemovedFromOwners": "{Kommer att tas bort frĂ„n Ă€garna, bekrĂ€ftar du?", + "{0}WillBeRemovedFromMembers": "{0} Kommer att tas bort frĂ„n medlemmar, bekrĂ€ftar du?", + "Computers": "Datorer", + "UniqueComputerId": "Unikt dator-ID", + "LastSeenDate": "Datum för senaste observation", + "{0}Computer{1}WillBeRemovedFromRecords": "Dator för {0} ({1}) kommer att tas bort frĂ„n register", + "OrganizationDeletionWarningMessage": "Organisationen kommer att raderas", + "DeletingLastOwnerWarningMessage": "En organisation mĂ„ste ha minst en Ă€gare! DĂ€rför kan du inte ta bort den hĂ€r Ă€garen", + "This{0}AlreadyExistInThisOrganization": "Denna {0} finns redan i denna organisation", + "AreYouSureYouWantToDeleteAllComputers": "Är du sĂ€ker pĂ„ att du vill radera alla datorer?", + "DeleteAll": "Radera alla", + "DoYouWantToCreateNewUser": "Vill du skapa en ny anvĂ€ndare?", + "MasterModules": "Master-moduler", + "OrganizationName": "Organisationens namn", + "CreationDate": "Datum för skapande", + "LicenseStartDate": "Licensens startdatum", + "LicenseEndDate": "Licensens slutdatum", + "OrganizationNamePlaceholder": "Organisationens namn...", + "TotalQuestionCountPlaceholder": "Totalt antal frĂ„gor...", + "RemainingQuestionCountPlaceholder": "KvarstĂ„ende frĂ„gor Ă€r...", + "LicenseTypePlaceholder": "Licenstyp...", + "CreationDatePlaceholder": "Datum för skapande...", + "LicenseStartDatePlaceholder": "Licensens startdatum...", + "LicenseEndDatePlaceholder": "Licensens slutdatum...", + "UsernameOrEmail": "AnvĂ€ndarnamn eller e-post", + "UsernameOrEmailPlaceholder": "AnvĂ€ndarnamn eller e-post...", + "Member": "Ledamot", + "PurchaseOrderNo": "Inköpsorder nr", + "QuotationDate": "Datum för offert", + "CompanyName": "Företagets namn", + "CompanyAddress": "Företagets adress", + "Price": "Pris", + "DiscountText": "Rabatt text", + "DiscountQuantity": "Rabatt kvantitet", + "DiscountPrice": "Rabatterat pris", + "Quotation": "Offert", + "ExtraText": "Extra text", + "ExtraAmount": "Extra belopp", + "DownloadQuotation": "Ladda ner offert", + "Invoice": "Faktura", + "TaxNumber": "Skattenummer", + "InvoiceNumber": "Fakturanummer", + "InvoiceDate": "Fakturadatum", + "InvoiceNote": "Fakturanota", + "Quantity": "Kvantitet", + "AddProduct": "LĂ€gg till produkt", + "AddProductWarning": "Du mĂ„ste lĂ€gga till produkt!", + "TotalPrice": "Totalt pris", + "Generate": "Generera", + "MissingQuantityField": "KvantitetsfĂ€ltet Ă€r obligatoriskt!", + "MissingPriceField": "PrisfĂ€ltet Ă€r obligatoriskt!", + "CodeUsageStatus": "Status", + "Country": "Land", + "DeveloperCount": "Antal utvecklare", + "RequestCode": "BegĂ€r kod", + "WebSite": "Webbplats", + "GithubUsername": "AnvĂ€ndarnamn för Github", + "PhoneNumber": "Telefonnummer", + "ProjectDescription": "Projektbeskrivning", + "Referrer": "HĂ€nvisare", + "DiscountRequests": "BegĂ€ran om rabatt", + "Copylink": "Kopiera lĂ€nk", + "Disable": "Avaktivera", + "Enable": "Aktivera", + "EnableSendEmail": "Aktivera skicka e-post", + "SendEmail": "Skicka e-post", + "SuccessfullyDisabled": "FramgĂ„ngsrikt avaktiverad", + "SuccessfullyEnabled": "FramgĂ„ngsrikt aktiverad", + "EmailSent": "Skickad e-post", + "SuccessfullySent": "FramgĂ„ngsrikt skickat", + "SuccessfullyDeleted": "FramgĂ„ngsrikt raderad", + "DiscountRequestDeletionWarningMessage": "BegĂ€ran om rabatt kommer att raderas", + "BusinessType": "Typ av verksamhet", + "TotalQuestionCount": "Totalt antal frĂ„gor", + "RemainingQuestionCount": "Antal Ă„terstĂ„ende frĂ„gor", + "TotalQuestionMustBeGreaterWarningMessage": "TotalQuestionCount mĂ„ste vara större Ă€n RemainingQuestionCount !", + "QuestionCountsMustBeGreaterThanZero": "TotalQuestionCount och RemainingQuestionCount mĂ„ste vara noll eller större Ă€n noll!", + "UnlimitedQuestionCount": "ObegrĂ€nsat antal frĂ„gor", + "Notes": "Anteckningar", + "Menu:Community": "Gemenskap", + "Menu:Posts": "InlĂ€gg", + "Wait": "VĂ€nta", + "Approve": "GodkĂ€nna", + "Reject": "Avvisa", + "Details": "Detaljer", + "Url": "Url", + "Title": "Titel", + "ContentSource": "KĂ€lla för innehĂ„ll", + "Status": "Status", + "ReadPost": "LĂ€s inlĂ€gget", + "PostHasBeenWaiting": "Posten har vĂ€ntat", + "PostHasBeenApproved": "InlĂ€gget har godkĂ€nts", + "PostHasBeenRejected": "InlĂ€gget har avvisats", + "Permission:Community": "Gemenskap", + "Permission:CommunityPost": "Post", + "Link": "Link", + "Enum:ContentSource:0": "Github", + "Enum:ContentSource:1": "Extern", + "Enum:Status:0": "VĂ€ntar pĂ„", + "Enum:Status:1": "Avvisad", + "Enum:Status:2": "GodkĂ€nd", + "Summary": "Sammanfattning", + "AuthorName": "Författarens namn", + "CoverImage": "Omslagsbild", + "RemoveCacheConfirmationMessage": "Är du sĂ€ker pĂ„ att du tar bort cacheminnet för \"{0}\" -posten?", + "SuccessfullyRemoved": "FramgĂ„ngsrikt rensad", + "RemoveCache": "Ta bort cachen", + "Language": "SprĂ„k", + "Optional": "Valfritt", + "CreatePostLanguageInfo": "Det sprĂ„k som inlĂ€gget Ă€r skrivet pĂ„", + "Enum:ContentSource:2": "VideoinlĂ€gg", + "VideoPreview": "Förhandsgranskning av video", + "VideoPreviewErrorMessage": "Angiven video-URL kunde inte hĂ€mtas frĂ„n Youtube. Detta kan orsakas av att videon Ă€r privat eller att den angivna webbadressen inte Ă€r tillgĂ€nglig.", + "DeleteCoverImage": "Ta bort omslagsbild", + "DeleteCoverImageConfirmationMessage": "Är du sĂ€ker att du vill ta bort omslagsbilden för \"{0}\"?", + "DeleteCoverImageSuccessMessage": "Omslagsbilden har raderats framgĂ„ngsrikt", + "PaymentsOf": "Betalningar av", + "ShowPaymentsOfOrganization": "Betalningar", + "Date": "Datum", + "Products": "Produkter", + "TotalAmount": "Totalt belopp", + "Currency": "Valuta", + "Gateway": "Gateway", + "State": "Stat", + "FailReason": "Orsak till misslyckande", + "ReIndexAllPosts": "Återindexera alla inlĂ€gg", + "ReIndexAllPostsConfirmationMessage": "Är du sĂ€ker pĂ„ att du vill indexera om alla inlĂ€gg?", + "SuccessfullyReIndexAllPosts": "Alla inlĂ€gg har framgĂ„ngsrikt indexerats om.", + "Permission:FullSearch": "Fulltextsökning", + "Menu:CliAnalytics": "CLI Analys", + "Menu:Reports": "Dynamiska rapporter", + "TemplateName": "Mallens namn", + "TemplateVersion": "Mallversion", + "DatabaseProvider": "Databasleverantör", + "IsTiered": "Är Tiered", + "ProjectName": "Projektets namn", + "Username": "AnvĂ€ndarens namn", + "Tool": "Verktyg", + "Command": "Kommando", + "UiFramework": "Ramverk för anvĂ€ndargrĂ€nssnitt", + "Options": "Alternativ", + "CliAnalytics": "Cli Analytics", + "Reports": "Dynamiska rapporter", + "Permission:CliAnalyticses": "Cli Analyticses", + "Permission:CliAnalytics": "Cli Analytics", + "Permission:Reports": "Rapporter", + "Search": "Sök", + "ClearFilter": "Rensa filter", + "LicensePrivateKey": "Licens privat nyckel", + "LicensePublicKey": "Licens offentlig nyckel", + "ApiKey": "NuGet API-nyckel", + "ShowInvoiceRequestsOfOrganization": "FakturaförfrĂ„gningar", + "ShowQuestionsOfOrganization": "FrĂ„gor och svar", + "Question": "FrĂ„ga", + "Open": "Öppna", + "Questions": "FrĂ„gor och svar", + "InvoiceRequests": "FakturaförfrĂ„gningar", + "Address": "Adress", + "TaxNo": "Skatt Nej", + "Permission:InvoiceRequest": "FakturabegĂ€ran", + "Permission:Question": "FrĂ„ga", + "AddNoteSuccessMessage": "Not framgĂ„ngsrikt tillagd", + "NameSurname": "Namn Efternamn", + "Note": "Notera", + "Add": "LĂ€gg till", + "ProjectDownloads": "Projektnedladdningar", + "ShowProjectDownloadsOfOrganization": "Projektnedladdningar", + "ShowAuditLogsOfOrganization": "Granskningsloggar", + "Enum:EntityChangeType:0": "Skapad", + "Enum:EntityChangeType:1": "Uppdaterad", + "Enum:EntityChangeType:2": "Borttagen", + "TenantId": "HyresgĂ€st-ID", + "ChangeTime": "Ändra tid", + "EntityTypeFullName": "FullstĂ€ndigt namn pĂ„ entitetstyp", + "AuditLogsFor{0}Organization": "Granskningsloggar för organisationen \"{0}\"", + "Permission:EntityChange": "FörĂ€ndring av enhet", + "Permission:ProjectDownload": "Projekt Ladda ner", + "Permission:PaymentRequest": "BegĂ€ran om betalning", + "CreatorEmailAddress": "E-postadress till skaparen", + "EmailSendDate": "Datum för e-postutskick", + "PaymentRequestsFor{0}Organization": "BetalningsförfrĂ„gningar för \"{0}\" organisation", + "PaymentDetails": "Betalningsinformation", + "PaymentProduct": "Betalning Produkt", + "ProductName": "Produktens namn", + "Code": "Kod", + "GenerateInvoice": "Generera faktura", + "ExportOrganizationsToExcel": "Exportera till Excel", + "ThisExtensionIsNotAllowed": "Denna förlĂ€ngning Ă€r inte tillĂ„ten.", + "TheFileIsTooLarge": "Filen Ă€r för stor!", + "PostDeletionConfirmationMessage": "Är du sĂ€ker pĂ„ att du vill radera det hĂ€r inlĂ€gget?", + "ChooseCoverImage": "VĂ€lj en omslagsbild...", + "Menu:Quotation": "Offert", + "Menu:Invoice": "Faktura", + "Menu:Quotation/Invoice": "Offert/faktura", + "Menu:PaymentRequests": "BetalningsförfrĂ„gningar", + "Permission:PaymentRequests": "BetalningsförfrĂ„gningar", + "PaymentRequests": "BetalningsförfrĂ„gningar", + "Creator": "Skapare", + "ExtraProperties": "Extra egenskaper", + "Organization": "Organisation", + "Waiting": "VĂ€ntar pĂ„", + "Completed": "FĂ€rdigstĂ€lld", + "Failed": "Misslyckades", + "PaymentRequestDeletionWarningMessage": "Denna betalningsbegĂ€ran kommer att raderas. Kan du bekrĂ€fta det?", + "Payment": "Betalning", + "AddPayment": "LĂ€gg till betalning", + "Enum:PurchaseType:1": "Ny licens", + "Enum:PurchaseType:2": "LicensförlĂ€ngning", + "Enum:PurchaseType:3": "Uppgradering av licens", + "Enum:PurchaseType:4": "Ytterligare utvecklare", + "LicenceType": "Typ av licens", + "PurchaseType": "Typ av köp", + "ReceiptNo": "Kvitto nr", + "PaymentTime": "Betalningstid", + "ProductPrice": "Produktens pris", + "AdditionalDeveloper": "Ytterligare utvecklare", + "ThisPaymentHasBeenAlreadyUsed": "Denna betalning har redan anvĂ€nts", + "PaymentTimeCannotBeFutureTime": "Betalningstid kan inte vara en framtida tid!", + "SaveAndDownload": "Spara och ladda ner", + "BillingInfo": "Faktureringsinformation", + "DeleteInvoice": "Ta bort faktura", + "PaymentStateSetTo": "Betalningsstatus satt till {0}", + "ChangeState": "Ändra tillstĂ„nd", + "Permission:TrialLicense": "Trial-licens", + "Menu:TrialLicenses": "PreliminĂ€ra licenser", + "TrialLicenses": "PreliminĂ€ra licenser", + "UserNameFilter": "AnvĂ€ndarnamn", + "TrialLicenseStatusFilter": "Status", + "TrialLicenseStartDateFilter": "Startdatum", + "TrialLicenseEndDateFilter": "Slutdatum", + "FirstName": "Förnamn", + "LastName": "Efternamn", + "StartDate": "Startdatum", + "EndDate": "Slutdatum", + "PurchasedDate": "Inköpsdatum", + "OrganizationDetail": "Organisation Detalj", + "TrialLicenseStatus": "Status för provlicens", + "TrialLicenseDetail": "Trial licens detalj", + "AcceptsMarketingCommunications": "Marknadskommunikation", + "PurposeOfUsage": "Syfte med anvĂ€ndningen", + "CountryName": "Landets namn", + "CompanySize": "Företagets storlek", + "DetailTrialLicense": "Detaljer", + "Requested": "BegĂ€rd", + "Activated": "Aktiverad", + "PurchasedToNormalLicense": "Köpte", + "Expired": "UtgĂ„tt", + "TrialLicenseDeletionWarningMessage": "Är du sĂ€ker pĂ„ att du vill ta bort testlicensen? Testlicens, organisation och supportkonton kommer att raderas!", + "LicenseCategoryFilter": "Licenskategori", + "Permission:SendWelcomeEmail": "Skicka vĂ€lkomstmejl", + "SendWelcomeEmail": "Skicka vĂ€lkomstmejl", + "SendWelcomeEmailWarningMessage": "Är du sĂ€ker pĂ„ att du vill skicka ett vĂ€lkomstmeddelande till organisationens medlemmar?", + "SendWelcomeEmailSuccessMessage": "VĂ€lkomstmejl skickat framgĂ„ngsrikt!", + "Activate": "Aktivera", + "ActivateTrialLicenseWarningMessage": " NĂ€r du aktiverar en testlicens skickas ett vĂ€lkomstmeddelande till anvĂ€ndaren. Vill du aktivera det?", + "ActivateTrialLicenseSuccessMessage": "Aktiverades framgĂ„ngsrikt och vĂ€lkomstmeddelandet skickades till organisationsmedlemmarna.", + "PaymentRequestId": "BetalningsbegĂ€ran Id", + "AdditionalDeveloperCount": "Ytterligare antal utvecklare", + "LicensePrice": "Licenspris", + "PurchaseDate": "Köpdatum", + "IsAbpBookDownloaded": "Mastering ABP Book nedladdad?", + "IsMasteringAbpBookDownloadEnabled": "ABP Book nedladdning aktiverad", + "Permission:Accounting:CustomPaymentLinkGenerator": "Anpassad betalningslĂ€nk", + "CustomPaymentLink": "Anpassad betalningslĂ€nk", + "Menu:CustomPaymentLink": "Anpassad betalningslĂ€nk", + "Amount": "Belopp", + "GenerateCustomPaymentLink": "Generera anpassad betalningslĂ€nk", + "GeneratedPaymentLink": "Genererad betalningslĂ€nk", + "CopyText": "Kopiera text", + "Permission:CommunityEvents": "HĂ€ndelser", + "Menu:Events": "HĂ€ndelser", + "Events": "HĂ€ndelser", + "EventType": "Typ av hĂ€ndelse", + "Number": "Antal", + "RegistrationURL": "URL för registrering", + "URL": "URL", + "EventDeletionConfirmationMessage": "Är du sĂ€ker pĂ„ att du vill ta bort den hĂ€r hĂ€ndelsen?", + "Enum:EventType:0": "Samtal med gemenskapen", + "CreateAnEvent": "Skapa ett evenemang", + "Permission:CommunitySpeakers": "Högtalare", + "CreateASpeaker": "Skapa en högtalare", + "Speakers": "Högtalare", + "Image": "Bild", + "GithubURL": "URL till Github", + "SpeakerDeletionConfirmationMessage": "Är du sĂ€ker att du vill ta bort den hĂ€r högtalaren?", + "Menu:Speakers": "Högtalare", + "ChooseSpeakerImage": "VĂ€lj en högtalarbild...", + "SpeakerImage": "Bild pĂ„ högtalare", + "AddSpeaker": "LĂ€gg till högtalare", + "ShowPurchaseItemsOfOrganizations": "Köp av föremĂ„l", + "Enum:OrganizationPurchaseState:0": "Ej levererad", + "Enum:OrganizationPurchaseState:1": "Levereras", + "PurchaseItems": "Köp av föremĂ„l", + "SuccessfullyUpdated": "FramgĂ„ngsrikt uppdaterad", + "SuccessfullyAdded": "FramgĂ„ngsrikt tillagt", + "PurchaseState": "Status för köp", + "ShowBetweenDayCount": "Visa mellan dagarna", + "PurchaseOrder": "Inköpsorder", + "ShowCreateInvoiceOfOrganization": "Skapa faktura", + "ShowCreateQuotationOfOrganization": "Skapa offert/faktura", + "BookDiscounts": "Boka rabatter", + "Permission:BookDiscount": "Boka rabatt", + "Menu:BookDiscounts": "Boka rabatter", + "BookType": "Typ av bok", + "PurchasePlatform": "Plattform för inköp", + "StartTime": "Starttid", + "EndTime": "Sluttid", + "CreateABookDiscount": "Skapa en bokrabatt", + "BookDiscountDeletionConfirmationMessage": "Är du sĂ€ker pĂ„ att du vill ta bort den hĂ€r bokrabatten?", + "CustomPaymentFlexSwitchDescription": "Med licens", + "AllowFeatureUpgradeOnLicenseExpire": "TillĂ„t uppgradering av funktioner nĂ€r licensen löper ut", + "Deleted{0}": "[Raderad {0}]", + "Tags": "Etiketter", + "SetTagsInfo": "Taggar ska vara kommaseparerade. Exempel: CSharp, Entity Framework", + "RejectTrialLicenseWarningMessage": "Är du sĂ€ker pĂ„ att du vill avvisa denna begĂ€ran om testlicens?", + "ExportToExcel": "Exportera till Excel", + "OverallTotalPrice": "Totalt totalpris", + "OverallDiscountPrice": "Totalt Rabatt Pris", + "OverallDiscountText": "Övergripande rabatt Text", + "SelectReport": "- VĂ€lj rapport", + "NoDataAvailable": "Inga uppgifter tillgĂ€ngliga", + "StatisticsOfCachedContents": "Statistik över cachelagrat NuGet-paketinnehĂ„ll för nuget.abp.io", + "Compact": "Kompakt", + "EditSettings": "Redigera instĂ€llningar", + "CurrentEstimatedSize": "Nuvarande uppskattad storlek", + "CurrentEntryCount": "Aktuellt antal poster", + "TotalHits": "Totalt antal trĂ€ffar", + "TotalMisses": "Totalt antal missar", + "NoResponseFrom": "Inget svar frĂ„n", + "ContentCacheSlidingExpirationByDay": "InnehĂ„llscache glidande utgĂ„ng per dag", + "MaxDaysForCaching": "Max dagar för cachelagring", + "Enabled": "Aktiverad", + "Menu:NugetPackagesContentCache": "NuGet Cache", + "NugetPackagesContentCache": "NuGet Cache för innehĂ„ll", + "SlidingExpritionByDayInfo": "HĂ€mtar eller anger hur lĂ€nge en cache-post kan vara inaktiv (t.ex. inte Ă„tkommen) innan den tas bort. Detta kommer inte att förlĂ€nga postens livstid utöver den absoluta expirationen.", + "MaxDaysForCachingInfo": "HĂ€mtar eller anger en absolut utgĂ„ngstid i förhĂ„llande till nu.", + "CurrentEstimatedSizeInfo": "Anger en uppskattad summa av alla NuGet-pakets innehĂ„llsstorlek som för nĂ€rvarande finns i minnescachen", + "CurrentEntryCountInfo": "Anger antalet instanser som för nĂ€rvarande finns i minnescachen.", + "TotalHitsInfo": "Anger det totala antalet cache-missar. En cachetrĂ€ff intrĂ€ffar nĂ€r en fil begĂ€rs frĂ„n en cache och cachen kan uppfylla denna begĂ€ran.", + "TotalMissesInfo": "Anger det totala antalet trĂ€ffar i cachen. En cachemiss Ă€r nĂ€r cacheminnet inte innehĂ„ller det begĂ€rda innehĂ„llet.", + "Permission:VersionHistory": "Versionshistorik", + "Caches": "Cacher", + "VersionHistories": "Versionshistorik", + "Version": "Version", + "PublishDate": "Publiceringsdatum", + "IsStableVersion": "Stabil version", + "IsActive": "Aktiv", + "NewVersion": "Ny version", + "VersionHistoryDeletionConfirmationMessage": "Är du sĂ€ker pĂ„ att du vill radera den hĂ€r versionen?", + "CreateAbpConsultantLogoInfo": "Maximal filstorlek: 1MB
Filtyper som stöds: jpg, jpeg, png, SVG, WebP", + "UrlCode": "Url-kod", + "Clear": "Klart", + "Permission:AbpConsultant": "ABP Konsult", + "Menu:AbpConsultants": "ABP Konsulter", + "CreateAbpConsultant": "Skapa ABP-konsult", + "UrlCodeIsNotAvailable": "Url-koden anvĂ€nds av en annan ABP-konsult.", + "AbpConsultants": "ABP Konsulter", + "AbpConsultant": "ABP Konsult", + "AbpConsultantEdit": "Edit ABP Konsult", + "AbpConsultantCreate": "Skapa ABP-konsult", + "WhoWeAreItem": "Vilka vi Ă€r Artikel", + "FieldIsRequired": "{0} krĂ€vs.", + "FieldIsNotValid": " {0} Ă€r inte giltig.", + "InterestedLicenseType": "Intresserad licenstyp", + "MoveWaitList": "Flytta till vĂ€ntelista", + "CommunityLinkTitle": "Öppna pĂ„ community-webbplatsen", + "CommunityLink": "Link", + "IpAddress": "Ip-adress", + "ReloadFromSource": "Ladda om frĂ„n kĂ€llan", + "ReloadFromSourceConfirmationMessage": "Detta inlĂ€gg kommer att uppdateras frĂ„n \"{0}\". Vill du fortsĂ€tta?", + "UnitPrice": "Enhetspris", + "OverallDiscountAmount": "Totalt rabattbelopp", + "DiscountAmount": "Diskonteringsbelopp", + "FullChangeHistory": "FullstĂ€ndig Ă€ndringshistorik", + "Permission:RefreshReleaseLogs": "Uppdatera release-loggar", + "ReleaseLogs": "Release Loggar", + "AuthorUserName": "AnvĂ€ndarnamn för författare", + "Type": "Typ", + "TotalDiscount": "Total rabatt", + "SubTotal": "Subtotal", + "TotalDue": "Totalt förfallna", + "QuotationNo": "Offert nr", + "ValidTill": "Giltig till och med", + "QuotationNote": "Citatanteckning", + "QuotationTemplate.Address:": "Adress:", + "QuotationTemplate.VATNo:": "Momsregistreringsnummer", + "QuotationTemplate.Phone:": "Telefon:", + "QuotationTemplate.E-mail:": "E-post:", + "QuotationTemplate.Quotation": "Offert", + "QuotationTemplate.To": "Till", + "QuotationTemplate.Details": "Detaljer", + "QuotationTemplate.QuotationNo:": "Citat #:", + "QuotationTemplate.IssueDate:": "Utgivningsdatum:", + "QuotationTemplate.ValidTill:": "Giltig till:", + "QuotationTemplate.ValidDays": "{0} dagar", + "QuotationTemplate.Description": "Beskrivning", + "QuotationTemplate.UnitPrice": "Enhetspris", + "QuotationTemplate.Qty": "Antal", + "QuotationTemplate.Discount": "Rabatt", + "QuotationTemplate.Total": "Totalt", + "QuotationTemplate.Notes": "Anteckningar", + "QuotationTemplate.SubTotal:": "Sub Total :", + "QuotationTemplate.Tax/VAT:": "Skatt / moms (%{0}) :", + "QuotationTemplate.TotalDiscount:": "Total rabatt :", + "QuotationTemplate.TOTALDUE:": "TOTAL SKULD :", + "QuotationTemplate.BankAccount": "Information om vĂ„rt bankkonto finns pĂ„ {0}.", + "Permission:Raffles": "Lottdragning", + "Permission:Draw": "Dragning", + "Menu:Raffles": "Raffles", + "RaffleIsNotDrawable": "Lottdragning Ă€r inte dragbar", + "WinnerCountMustBeGreaterThanZero": "Antalet vinnare mĂ„ste vara större Ă€n noll", + "FullDescription": "FullstĂ€ndig beskrivning", + "VisibilityStartDate": "Synlighet Startdatum", + "VisibilityEndDate": "Slutdatum för synlighet", + "RaffleDate": "Lottdragning Datum", + "SubscriptionCode": "Prenumerationskod", + "GroupCode": "Gruppkod", + "MaxWinnerCount": "Max antal vinnare", + "ReDraw": "Rita om", + "EditRaffle": "Redigera utlottning", + "Raffles": "Raffles", + "CreateARaffle": "Skapa en utlottning", + "Draw": "Dragning", + "Enum:RaffleStatus:0": "Aktiv", + "Enum:RaffleStatus:1": "NĂ€sta", + "Enum:RaffleStatus:2": "Tidigare", + "DrawDone": "Ritning klar", + "HomePageShowType": "Startsida Visa typ", + "None": "Ingen", + "Card": "Kort", + "Horizontal": "Horisontell", + "Winners": "Vinnare", + "StartDateMustBeLessThanEndDate": "Startdatum mĂ„ste vara mindre Ă€n slutdatum", + "VisibilityStartDateMustBeLessThanVisibilityEndDate": "Startdatum för synlighet mĂ„ste vara mindre Ă€n slutdatum för synlighet", + "StartDateMustBeGreaterThanVisibilityStartDate": "Startdatum mĂ„ste vara större Ă€n startdatum för synlighet", + "EndDateMustBeLessThanVisibilityEndDate": "Slutdatum mĂ„ste vara mindre Ă€n visibilitetens slutdatum", + "DrawnDone": "Ritad Gjord", + "AddColor": "LĂ€gg till fĂ€rg", + "Colors": "FĂ€rger", + "RemoveColor": "Ta bort fĂ€rg", + "MaxColorCountWarning": "Du kan lĂ€gga till upp till {0} fĂ€rger", + "MinColorCountWarning": "Du mĂ„ste lĂ€gga till minst {0} fĂ€rger", + "RaffleDeletionConfirmationMessage": "Är du sĂ€ker pĂ„ att du vill ta bort den hĂ€r utlottningen?", + "CreateRaffle": "Skapa utlottning", + "RemoveImage": "Ta bort bild", + "SavedSuccessfully": "Sparades framgĂ„ngsrikt", + "Menu:CommunityTalks": "Samtal med gemenskapen", + "Menu:Conferences": "Konferenser", + "Menu:OtherLiveEvents": "Andra live-evenemang", + "Menu:SponsoredConferences": "Sponsrade konferenser", + "Logo": "Logotyp", + "Slug": "Snigel", + "CompanyUrl": "Företagets webbadress", + "TalkTitle": "Titel pĂ„ samtal", + "AbstractTopic": "Sammanfattning Ämne", + "Bio": "Bio", + "LinkedIn": "LinkedIn", + "Github": "Github", + "Twitch": "Twitch", + "Youtube": "Youtube", + "Twitter": "Twitter", + "PersonalWebsite": "Personlig webbplats", + "VideoId": "Video Id", + "Order": "BestĂ€llning", + "Image1x1": "Bild 1x1", + "Image16x9": "Bild 16x9", + "Banner": "Banner", + "Speaker": "Högtalare", + "SessionDate": "Datum för session", + "AddSession": "LĂ€gg till session", + "AddSponsor": "LĂ€gg till sponsor", + "SponsorLogo": "Sponsorlogotyp", + "RegistrationUrl": "Url för registrering", + "AllowAbpStudioBetaAccess": "TillĂ„t Ă„tkomst till ABP Studio Beta", + "TotalQuestionCanNotBeNullMessage": "Total frĂ„ga kan inte vara null", + "Permission:OrganizationAutoRenewalPayments": "Betalningar för automatisk förnyelse av organisation", + "Permission:RetryFailedPayments": "Försök pĂ„ nytt med misslyckade betalningar", + "AutoRenewalIsNotEnabled": "Automatisk förnyelse Ă€r inte aktiverad!", + "LicenseIsNotExpired": "Licensen har inte gĂ„tt ut!", + "PaymentNotFound": "Betalning hittades inte!", + "PaymentAlreadyTried": "Betalning redan försökt!", + "PaymentIsNotFailed": "Betalning Ă€r inte misslyckad!", + "OrganizationIdIsNull": "OrganizationId Ă€r null!", + "Menu:AutoRenewals": "Förnyelse av bilar", + "OrganizationAutoRenewalPayments": "Betalningar för automatisk förnyelse av organisation", + "PaymentDate": "Betalningsdag", + "TryCount": "Försök rĂ€kna", + "ErrorMessage": "Felmeddelande", + "ErrorCode": "Felkod", + "CreditCard": "Kreditkort", + "BuyerName": "Köparens namn", + "BuyerSurname": "Köparens efternamn", + "BuyerEmail": "Köparens e-post", + "AutoRenewalStartTime": "Starttid för automatisk förnyelse", + "AutoRenewalEndTime": "Sluttid för automatisk förnyelse", + "AutoRenewalEnabled": "Automatisk förnyelse aktiverad", + "LastAutoRenewalPaymentTime": "Sista betalningstid för automatisk förnyelse", + "OrganizationDoesNotHaveACreditCard": "Organisationen har inte ett kreditkort!", + "OrganizationDoesNotHaveACreditCardInGateway": "Organisationen har inte ett kreditkort i porten!", + "Permission:EditWinners": "Redigera vinnare", + "Permission:ChangeDrawingStatus": "Ändra ritningsstatus", + "Menu:Licenses": "Licensiering", + "OrganizationId": "Organisations-ID", + "RemoveAllWinnersConfirmationMessage": "Är du sĂ€ker pĂ„ att du vill ta bort alla vinnare?", + "AutoRenewals": "Förnyelse av bilar", + "OrganizationHasCreditCard": "Organisationen har kreditkort. VĂ€nligen ta bort kreditkortet först!", + "DisplayName:DontSendEmailForLicenseExpire": "Skicka inte e-post för att licensen löper ut", + "DontSendEmailForLicenseExpire": "Skicka inte e-post för att licensen löper ut", + "SuccessfullyChanged": "FramgĂ„ngsrikt Ă€ndrat", + "WinnerCountMustBeLessThanMaxWinnerCount": "Antalet vinnare mĂ„ste vara mindre Ă€n det maximala antalet vinnare", + "NoChangesDetected": "Inga förĂ€ndringar upptĂ€ckta", + "ProductCount": "ProduktrĂ€kning", + "Actions": "ÅtgĂ€rder", + "CreateInvoice": "Skapa faktura", + "IsVisible": "Synlig", + "Menu:Testimonials": "VittnesmĂ„l", + "TestimonialDeletionConfirmationMessage": "Är du sĂ€ker pĂ„ att du vill ta bort detta vittnesmĂ„l?", + "FullName": "FullstĂ€ndigt namn", + "TestimonialText": "Text i vittnesmĂ„l", + "ExperienceYear": "ErfarenhetsĂ„r", + "Position": "Titel", + "YearsOfExperience": "ErfarenhetsĂ„r", + "AllowedLicenses": "TillĂ„tna licenser", + "AllowedModules": "TillĂ„tna moduler", + "ModuleName": "Modulens namn", + "NonYet": "Inte Ă€nnu", + "Permission:Testimonials": "VittnesmĂ„l", + "SelectCompanySizePlaceholder": "Företagets storlek", + "SelectExperienceYearPlaceholder": "ErfarenhetsĂ„r", + "SelectCountryPlaceholder": "Land", + "DeleteImageConfirmationMessage": "Är du sĂ€ker att du vill ta bort bilden för \"{0}\"?", + "DeleteImageSuccessMessage": "Bilden har raderats framgĂ„ngsrikt", + "DeleteImage": "Ta bort bild", + "NetTerms": "Villkor (dagar)", + "Menu:DynamicReports": "Dynamiska rapporter", + "Menu:Others": "Övriga", + "Menu:Packs&Modules": "Paket & moduler", + "ReleaseCaches": "Frigör cachen", + "Menu:HeroSections": "HjĂ€lte-sektioner", + "HeroSections": "HjĂ€lte-sektioner", + "DynamicReports": "Dynamiska rapporter", + "Menu:ReportsMenu": "Rapporter", + "Permission:HeroSections": "HjĂ€lte-sektioner", + "RedirectLink": "Omdirigera lĂ€nk", + "HeroSectionsDeletionConfirmationMessage": "Är du sĂ€ker pĂ„ att du vill ta bort hjĂ€lteavsnittet?", + "AbpStudioName": "Abp Studio namn" + } +} \ 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 feb63fc93e..82aabed272 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json @@ -90,9 +90,9 @@ "TermsAndConditions": "Terms & Conditions", "WouldLikeToReceiveMarketingMaterials": "I would like to receive marketing materials like product deals & special offers.", "JoinOurMarketingNewsletter": "Join our marketing newsletter", - "CommunityPrivacyPolicyConfirmation": "I agree to the Terms & Conditions and Privacy Policy.", + "CommunityPrivacyPolicyConfirmation": "I agree to the Terms & Conditions and Privacy Policy.", "WouldLikeToReceiveNotification": "I would like to receive the latest news from abp.io websites.", - "CommercialNewsletterConfirmationMessage": "I agree to the Terms & Conditions and Privacy Policy.", + "CommercialNewsletterConfirmationMessage": "I agree to the Terms & Conditions and Privacy Policy.", "FreeDDDEBook": "Free DDD E-Book", "AdditionalServices": "Additional Services", "Learn": "Learn", @@ -118,7 +118,7 @@ "EULA": "EULA", "ABPCommercialIntroductionMessage": "Pre-built application modules, advanced startup templates, rapid application development tooling, professional UI themes and premium support.", "MasteringAbpFrameworkEBook": "Mastering ABP Framework", - "MasteringTheABPFrameworkExplanation": "Written by the creator of the ABP Framework, this book will help you gain a complete understanding of the framework and modern web application development techniques.", + "MasteringTheABPFrameworkExplanation": "Mastering ABP Framework e-book; written by the creator of the ABP Framework, will help you gain a complete understanding of the framework and modern web application development techniques.", "Speakers": "Speakers", "PreviousEvents": "Previous Events", "WatchTheEvent": "Watch the Event", @@ -158,7 +158,7 @@ "SeePreviousEvents": "See Previous Events", "CookieConsent_Accept": "Accept", "CookieConsent_Explanation_1": "We use cookies to give you the best experience on our website.", - "CookieConsent_Explanation_2": "If you continue to browse, then you agree to our Privacy policy and cookie policy..", + "CookieConsent_Explanation_2": "If you continue to browse, then you agree to our Privacy policy and cookie policy..", "Error_Page_400_Title": "There was a problem serving the requested page.", "Error_Page_400_Description_1": "Usually this means that an unexpected error happened while processing your request.", "Error_Page_400_Description_2": "If the problem persists, contact us at info@abp.io and we'll help get you on your way.", @@ -239,7 +239,7 @@ "Trainings": "Trainings", "MeetTheABPCommunity": "Meet the ABP Community", "DisplayName:CommunityIndexPagePoll": "Community Index Page Poll", - "ReturnOfInvestment": "Return Of Investment", + "ReturnOnInvestment": "Return on Investment", "PromotionalOffers": "Promotional Offers", "PromotionalOffersDefinition": "Discounts, seasonal campaigns, etc.", "EventsDefinition": "Community Talks, Webinars, ABP .NET Conference, etc.", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sv.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sv.json new file mode 100644 index 0000000000..9bcca4c170 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sv.json @@ -0,0 +1,256 @@ +{ + "culture": "sv", + "texts": { + "Volo.AbpIo.Domain:010004": "Maximalt antal medlemmar uppnĂ„tt!", + "Volo.AbpIo.Domain:010005": "Maximalt antal Ă€gare uppnĂ„tt!", + "Volo.AbpIo.Domain:010006": "Den hĂ€r anvĂ€ndaren Ă€r redan Ă€gare i den hĂ€r organisationen!", + "Volo.AbpIo.Domain:010007": "Den hĂ€r anvĂ€ndaren Ă€r redan en utvecklare i den hĂ€r organisationen!", + "Volo.AbpIo.Domain:010008": "TillĂ„tet antal utvecklare kan inte vara mindre Ă€n nuvarande antal utvecklare!", + "Volo.AbpIo.Domain:010009": "TillĂ„tet antal utvecklare kan inte vara mindre Ă€n 0!", + "Volo.AbpIo.Domain:010010": "Maximalt antal mac-adresser har överskridits!", + "Volo.AbpIo.Domain:010011": "Personlig licens kan inte ha mer Ă€n 1 utvecklare!", + "Volo.AbpIo.Domain:010012": "Licensen kan inte förlĂ€ngas en mĂ„nad efter att licensen har löpt ut!", + "Volo.AbpIo.Domain:020001": "Det gick inte att ta bort detta NPM-paket eftersom \"{NugetPackages}\" Nuget-paket Ă€r beroende av detta paket.", + "Volo.AbpIo.Domain:020002": "Det gick inte att ta bort detta NPM-paket eftersom \"{Moduler}\" Moduler anvĂ€nder detta paket.", + "Volo.AbpIo.Domain:020003": "Det gick inte att ta bort detta NPM-paket eftersom \"{Modules}\" Moduler anvĂ€nder det hĂ€r paketet och \"{NugetPackages}\" Nuget-paket Ă€r beroende av detta paket.", + "Volo.AbpIo.Domain:020004": "Det gick inte att ta bort detta Nuget-paket eftersom \"{Moduler}\" Moduler anvĂ€nder detta paket.", + "Volo.AbpIo.Domain:030000": "Du har redan avslutat din provperiod.", + "Volo.AbpIo.Domain:030001": "Det hĂ€r organisationsnamnet finns redan.", + "Volo.AbpIo.Domain:030002": "Efter aktivering kan du inte Ă€ndra testlicensen till -requested- status!", + "Volo.AbpIo.Domain:030003": "Det finns ingen sĂ„dan status!", + "Volo.AbpIo.Domain:030004": "Status kunde inte Ă€ndras pĂ„ grund av ett ovĂ€ntat fel!", + "Volo.AbpIo.Domain:030005": "Start- och slutdatum kan uppdateras nĂ€r testlicensen Ă€r i statusen -aktiverad!", + "Volo.AbpIo.Domain:030006": "Slutdatumet mĂ„ste vara större Ă€n startdatumet!", + "Volo.AbpIo.Domain:030007": "Denna testlicens har redan aktiverats!", + "Volo.AbpIo.Domain:030008": "Köpdatumet kan endast stĂ€llas in nĂ€r statusen Ă€r -köpt-!", + "Volo.AbpIo.Domain:030009": "AnvĂ€ndaren hittades inte!", + "Volo.AbpIo.Domain:030010": "För att köpa testlicensen mĂ„ste du först aktivera din testlicens!", + "Volo.AbpIo.Domain:030011": "Du kan inte ta bort en testlicens nĂ€r den Ă€r köpt!", + "Volo.AbpIo.Domain:030012": "En anvĂ€ndare har endast rĂ€tt till 1 gratis provperiod. Du har redan anvĂ€nt din testlicens.", + "Volo.AbpIo.Domain:030013": "En anvĂ€ndare med en aktiv licens kan inte starta en testlicens.", + "Volo.AbpIo.Domain:040000": "Telemetri finns redan!", + "Volo.AbpIo.Domain:050000": "Organisationen har kreditkort. Du kan inte ta bort det!", + "Volo.AbpIo.Domain:070000": "Organisationsnamnet fĂ„r endast innehĂ„lla latinska bokstĂ€ver, siffror, punkter och bindestreck!", + "Volo.AbpIo.Domain:070001": "Företagsnamnet fĂ„r endast innehĂ„lla latinska bokstĂ€ver, siffror, punkter, mellanslag och bindestreck!", + "WantToLearn?": "Vill du lĂ€ra dig mer?", + "ReadyToGetStarted?": "Är du redo att komma igĂ„ng?", + "JoinOurCommunity": "GĂ„ med i vĂ„r community", + "GetStartedUpper": "KOM IGÅNG", + "ForkMeOnGitHub": "Fork mig pĂ„ GitHub", + "Features": "Funktioner", + "GetStarted": "Kom igĂ„ng", + "Documents": "Dokument", + "Community": "Gemenskap", + "ContributionGuide": "Bidragsguide", + "Blog": "Blogg", + "Commercial": "Kommersiell", + "MyAccount": "Mitt konto", + "Permission:License": "Licens", + "Permission:UserInfo": "AnvĂ€ndarinformation", + "SeeDocuments": "Se dokument", + "Samples": "Prover", + "Framework": "Ramverk", + "Support": "Stöd", + "FreeDDDBook": "Gratis e-bok om DDD", + "New": "Nya", + "Volo.AbpIo.Domain:020005": "LicensförlĂ€ngningsĂ„ret fĂ„r inte vara lĂ€gre Ă€n {MinExtendLicenseYear} Ă„r och inte högre Ă€n {MaxExtendLicenseYear} Ă„r", + "TrialLicensePeriodHasExpired": "Din testlicensperiod löpte ut för {0} dagar sedan.", + "TrialLicensePeriodWillExpire": "Din testlicensperiod kommer att löpa ut om {0} dagar.", + "TrialLicensePeriodExpireToday": "Din testlicensperiod kommer att löpa ut idag.", + "PurchaseNow": "Köp nu!", + "LatestReleaseLogs": "Senaste versionsloggar", + "RoadMap": "VĂ€gkarta", + "FAQ": "VANLIGA FRÅGOR", + "SourceCode": "KĂ€llkod", + "SeeAllPosts": "Se alla inlĂ€gg", + "Contribute": "Bidra", + "LiveDemo": "Live Demo", + "GetLicense": "Skaffa licens", + "OpenSource": "Öppen kĂ€llkod", + "WebApplication": "Webbapplikation", + "MeetTheABP": "Möt ABP", + "CompleteWebDevelopment": "En komplett webbutveckling", + "Platform": "Plattform", + "ABPDescription": "Ett ramverk med öppen kĂ€llkod för utveckling av webbapplikationer för ASP.NET Core. Det erbjuder en komplett infrastruktur genom att följa bĂ€sta praxis för programvaruutveckling.", + "StrongInfrastructure": "Stark infrastruktur", + "CompleteArchitecture": "Komplett arkitektur", + "DeveloperFocused": "Fokus pĂ„ utvecklare", + "ShareYourExperiences": "Dela dina erfarenheter av ABP-ramverket", + "LatestPosts": "Senaste inlĂ€gg", + "LatestVideos": "Senaste videor", + "Views": "Utsikt", + "LearnLatestNewsAboutABPFramework": "FĂ„ information om hĂ€ndelser i ABP som nya utgĂ„vor, fria kĂ€llor, inlĂ€gg och mycket mer.", + "DeveloperTools": "Verktyg för utvecklare", + "StartupTemplates": "Mallar för nystartade företag", + "ApplicationModules": "Applikationsmoduler", + "UI": "UI", + "Themes": "Teman", + "Premium": "Premium", + "PrivacyPolicy": "Integritetspolicy", + "TermsAndConditions": "Villkor och anvisningar", + "WouldLikeToReceiveMarketingMaterials": "Jag skulle vilja fĂ„ marknadsföringsmaterial som produkterbjudanden och specialerbjudanden.", + "JoinOurMarketingNewsletter": "AnmĂ€l dig till vĂ„rt marknadsföringsnyhetsbrev", + "CommunityPrivacyPolicyConfirmation": "Jag godkĂ€nner de allmĂ€nna villkoren och Privatlivspolicyn.", + "WouldLikeToReceiveNotification": "Jag skulle vilja fĂ„ de senaste nyheterna frĂ„n abp.io webbplatser.", + "CommercialNewsletterConfirmationMessage": "Jag samtycker till Terms & Conditions och Privacy Policy.", + "FreeDDDEBook": "Gratis e-bok om DDD", + "AdditionalServices": "Ytterligare tjĂ€nster", + "Learn": "LĂ€r dig", + "AccountOverview": "Översikt över konton", + "MyOrganizations": "Mina organisationer", + "MySupportQuestions": "Mina frĂ„gor om support", + "MyProfile": "Min profil", + "Logout": "Logga ut", + "Home": "Hem", + "Posts": "InlĂ€gg", + "Videos": "Videor", + "JoinTheABPCommunity": "GĂ„ med i ABP:s gemenskap", + "SubmitYourPost": "Skicka in ditt inlĂ€gg", + "Modules": "Moduler", + "Tools": "Verktyg", + "Pricing": "PrissĂ€ttning", + "ChangeLogs": "Ändra loggar", + "SubscribeToNewsletter": "Prenumerera pĂ„ nyhetsbrevet", + "SubscribeToNewsletterDescription": "FĂ„ information om hĂ€ndelser i ABP som nya utgĂ„vor, fria kĂ€llor, inlĂ€gg och mycket mer.", + "EmailAddress": "E-postadress", + "Subscribe": "Prenumerera", + "WelcomeToABP": "VĂ€lkommen till ABP", + "EULA": "EULA", + "ABPCommercialIntroductionMessage": "Förbyggda applikationsmoduler, avancerade startmallar, verktyg för snabb applikationsutveckling, professionella UI-teman och premiumsupport.", + "MasteringAbpFrameworkEBook": "BehĂ€rskar ABP-ramverket", + "MasteringTheABPFrameworkExplanation": "Mastering ABP Framework e-bok; skriven av skaparen av ABP Framework, hjĂ€lper dig att fĂ„ en fullstĂ€ndig förstĂ„else för ramverket och moderna tekniker för utveckling av webbapplikationer.", + "Speakers": "Högtalare", + "PreviousEvents": "Tidigare hĂ€ndelser", + "WatchTheEvent": "Titta pĂ„ evenemanget", + "RegisterNow": "Registrera dig nu", + "ThereIsNoEvent": "Det finns ingen hĂ€ndelse.", + "Events": "HĂ€ndelser", + "Volo.AbpIo.Domain:080000": "Det finns redan ett inköpsobjekt som heter \"{Namn}\"", + "MasteringAbpFrameworkBook": "Bok: Att bemĂ€stra ABP:s ramverk", + "ABPIO-CommonPreferenceDefinition": "FĂ„ de senaste nyheterna om ABP Platform som nya inlĂ€gg, evenemang och mer.", + "BuiltOn": "Inbyggd", + "AbpFramework": "ABP-ramverk", + "Volo.AbpIo.Domain:080001": "Starttiden fĂ„r inte vara större Ă€n sluttiden", + "Enum:BookType:0": "BehĂ€rskar ABP-ramverket", + "Enum:PurchasePlatform:0": "Amazonas", + "Enum:PurchasePlatform:1": "Förpackningar", + "Copied": "Kopierat!", + "CouldNotCopy": "Kunde inte kopiera!", + "CopyNotSupportByYourBrowser": "Den hĂ€r funktionen fungerar inte i den webblĂ€sare du anvĂ€nder.", + "City": "Stad", + "ZipCode": "Postnummer", + "Address": "Adress", + "Homepage": "Hemsida", + "Year": "År", + "Year_Plural": "År", + "Copyright": "Copyright © {1}", + "DomainDrivenDesign": "DomĂ€nstyrd design", + "CrossCuttingConcerns": "TvĂ€rgĂ„ende angelĂ€genheter", + "AbpCommunity": "ABP Gemenskap", + "Footer_GithubStarCount": "{0} StjĂ€rnor pĂ„ GitHub", + "Footer_NugetDownloadCount": "{Nedladdningar pĂ„ NuGet", + "AbpDescription": "ABP Ă€r ett applikationsramverk med öppen kĂ€llkod som fokuserar pĂ„ AspNet Core-baserad utveckling av webbapplikationer. Upprepa inte dig sjĂ€lv, fokusera pĂ„ din egen affĂ€rskod.", + "Layout_AbpFramework_MetaTitle": "ABP Framework | Ramverk för webbapplikationer med öppen kĂ€llkod för ASP.NET Core", + "CommunityTalks_CountdownDays": "Dagar", + "CommunityTalks_CountdownHours": "Timmar", + "CommunityTalks_CountdownMinutes": "Min", + "CommunityTalks_CountdownSeconds": "Sek", + "SeePreviousEvents": "Se tidigare evenemang", + "CookieConsent_Accept": "Acceptera", + "CookieConsent_Explanation_1": "Vi anvĂ€nder cookies för att ge dig den bĂ€sta upplevelsen pĂ„ vĂ„r webbplats.", + "CookieConsent_Explanation_2": "Om du fortsĂ€tter att surfa samtycker du till vĂ„r Privatpolicy och cookiepolicy..", + "Error_Page_400_Title": "Det uppstod ett problem med att visa den begĂ€rda sidan.", + "Error_Page_400_Description_1": "Vanligtvis betyder det att ett ovĂ€ntat fel intrĂ€ffade nĂ€r vi behandlade din begĂ€ran.", + "Error_Page_400_Description_2": "Om problemet kvarstĂ„r, kontakta oss pĂ„ info@abp.io sĂ„ hjĂ€lper vi dig att komma vidare.", + "GoToHomepage": "GĂ„ till hemsidan", + "Error_Page_404_Title": "Sidan hittades inte!", + "Error_Page_404_Description_1": "Det hĂ€r Ă€r inte den webbsida du letar efter.", + "Error_Page_500_Title": "Det ser ut som om nĂ„got gick fel!", + "Error_Page_500_Description_1": "Vi spĂ„rar dessa fel automatiskt, men om problemet kvarstĂ„r Ă€r du vĂ€lkommen att
kontakta oss. Under tiden kan du prova att uppdatera.", + "Error_Page_500_Description_2": "Kontakta oss pĂ„ info@abp.io.", + "Books": "Böcker", + "ABPDiscordServer": "ABP Discord Server", + "ABPCommunityTalks": "ABP:s samtal med allmĂ€nheten", + "ABPCommunityPosts": "ABP Gemenskap InlĂ€gg", + "BuyAndGetMonths": "KÖP 12 MÅNADER, FÅ 14 MÅNADER!", + "GetYourDeal": "FĂ„ ditt erbjudande", + "BuyOrRenewLicense": "Köp eller förnya licensen nu och fĂ„ 2 extra mĂ„nader!", + "BuyOrRenewLicenseToGetExtra2Months": "Köp eller förnya licens nu och fĂ„ 2 extra mĂ„nader! SKYNDA DIG UPP! ⏰ Sista dag: {0}", + "HurryUp": "SKYNDA PÅ!", + "LastDay": "Sista dagen: {0}", + "BuyNewLicenseBetweenDatesToGetBenefit": "Köp en ny licens mellan {0} och {1} för att fĂ„ förmĂ„nen i extra 2 mĂ„nader!", + "CheckAllCommunityTalks": "Kontrollera alla inlĂ€gg i gemenskapen", + "ReadMore": "LĂ€s mer om", + "ContinueReading": "FortsĂ€tta lĂ€sa", + "Post": "Post", + "ExploreTheContentsCreatedByTheCoreABPTeamAndTheABPCommunity": "Utforska innehĂ„llet som skapats av ABP:s kĂ€rnteam och ABP:s community.", + "WelcomeFallCampaign": "VĂ€lkommen till höstkampanjen!", + "GiveAwayForNewPurchases": "Application Development Classroom Training kommer att ges bort för de nya inköpen!", + "BlackFriday": "BLACK FRIDAY", + "ValidForExistingCustomers": "GĂ€ller Ă€ven för
befintliga kunder!", + "CampaignBetweenDates": "FrÄn {0}
Till {1}", + "SaveUpTo": "Spara Upp till${0}K", + "ImplementingDDD": "Implementering av domÀndriven design", + "ExploreTheEBook": "Utforska e-boken", + "ExploreTheBook": "Utforska boken", + "ConsultantType": "Typ av konsultverksamhet", + "Expert": "ABP Expert", + "Partner": "ABP Partner", + "Industry": "Industri", + "Location": "Plats", + "Contact": "Kontakt", + "Partner_Year": "PartnerskapsÄr", + "Info": "Info", + "SpokenLanguages": "Talade sprÄk", + "SocialMedia": "Sociala medier", + "Activity": "Aktivitet", + "Type": "Typ", + "Contribution": "Bidrag", + "WhoWeAre": "Vilka vi Àr", + "Icons": "Ikoner", + "Url": "Url", + "Icon": "Ikon", + "RecentActivities": "Senaste aktiviteterna", + "SpringCampaign": "VÀlkommen
VÄrens försÀljning!", + "SpringCampaign2": "BegrÀnsat
tidserbjudande!
", + "AboutUs": "Om oss", + "HowItWorks": "Hur fungerar det?", + "ReleaseNotes": "Releaseanteckningar", + "DetailedChangeNotes": "Detaljerade Ă€ndringsanteckningar", + "SeeTrainings": "Se utbildningar", + "NoContent": "Inget innehĂ„ll", + "More": "Mer om", + "WhyABPIOPlatform": "Varför ABP.IO Platform?", + "AbpStudio": "ABP Studio", + "ExtraMonths": "{0}EXTRA MÅNADER", + "RSS": "RSS", + "RSSFeed": "RSS-flöde", + "Articles": "Artiklar", + "Organizations": "Organisationer", + "ManageAccount": "Hantera konto", + "CommunityProfile": "Gemenskapsprofil", + "BlogProfile": "Bloggprofil", + "Tickets": "Tickets", + "Raffles": "Raffles", + "Status": "Status", + "Resources": "Resurser", + "Video Courses": "Videokurser", + "Packages": "Paket", + "Trainings": "Utbildningar", + "MeetTheABPCommunity": "Möt ABP Community", + "DisplayName:CommunityIndexPagePoll": "Community Index Page Poll", + "ReturnOnInvestment": "Avkastning pĂ„ investeringar", + "PromotionalOffers": "Kampanjerbjudanden", + "PromotionalOffersDefinition": "Rabatter, sĂ€songskampanjer etc.", + "EventsDefinition": "Community Talks, webbseminarier, ABP .NET-konferens, etc.", + "ReleaseNotesDefinition": "ABP.IO Plattformsreleaser, nya produkter etc.", + "Newsletter": "Nyhetsbrev", + "NewsletterDefinition": "BlogginlĂ€gg, nyheter om samhĂ€llet etc.", + "OrganizationOverview": "Översikt över organisationen", + "EmailPreferences": "InstĂ€llningar för e-post", + "VideoCourses": "Viktiga videor", + "DoYouAgreePrivacyPolicy": "Genom att klicka pĂ„ Prenumerera-knappen godkĂ€nner du Villkor och bestĂ€mmelser och Privatlivspolicy.", + "AbpConferenceDescription": "ABP Conference Ă€r ett virtuellt evenemang för .NET-utvecklare dĂ€r de kan lĂ€ra sig mer och fĂ„ kontakt med andra.", + "Mobile": "Mobil" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/en.json index 2da5698215..880cb53a9e 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/en.json @@ -1,8 +1,9 @@ { "culture": "en", "texts": { - "AbpTitle": "Read All Blog Posts", + "AbpTitle": "New Blog Post | ABP.IO", "AbpDescription": "ABP is an open source application framework focused on AspNet Core based web application development. Don't repeat yourself, focus on your own business code.", - "AbpDefinition": "ABP blog for .NET development, cross-platform, ASP.NET application templates, ABP-related news and more..." + "AbpDefinition": "Create a new blog post and share your knowledge and experience with ABP.", + "Blogs": "Blog Posts" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/sv.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/sv.json new file mode 100644 index 0000000000..2ac06f43f8 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/sv.json @@ -0,0 +1,8 @@ +{ + "culture": "sv", + "texts": { + "AbpTitle": "LĂ€s alla blogginlĂ€gg", + "AbpDescription": "ABP Ă€r ett applikationsramverk med öppen kĂ€llkod som fokuserar pĂ„ AspNet Core-baserad utveckling av webbapplikationer. Upprepa inte dig sjĂ€lv, fokusera pĂ„ din egen affĂ€rskod.", + "AbpDefinition": "ABP-blogg för .NET-utveckling, plattformsoberoende, ASP.NET-applikationsmallar, ABP-relaterade nyheter och mer..." + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/AbpIoCommercialResource.cs b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/AbpIoCommercialResource.cs deleted file mode 100644 index 76eb74933d..0000000000 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/AbpIoCommercialResource.cs +++ /dev/null @@ -1,10 +0,0 @@ -ï»żusing Volo.Abp.Localization; - -namespace AbpIoLocalization.Commercial.Localization -{ - [LocalizationResourceName("AbpIoCommercial")] - public class AbpIoCommercialResource - { - - } -} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json index b8a92f19a4..5e3a26f6fb 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json @@ -157,11 +157,11 @@ "ABPCLIExplanation": "ABP CLI (ÙˆŰ§ŰŹÙ‡Ű© ۳۷۱ Ű§Ù„ŰŁÙˆŰ§Ù…Ű±) هي ۣۯۧ۩ ۳۷۱ ŰŁÙˆŰ§Ù…Ű± لŰȘÙ†ÙÙŠŰ° ŰšŰč۶ Ű§Ù„ŰčÙ…Ù„ÙŠŰ§ŰȘ Ű§Ù„ŰŽŰ§ŰŠŰčŰ© Ù„Ù„Ű­Ù„ÙˆÙ„ Ű§Ù„Ù…ŰłŰȘÙ†ŰŻŰ© Ű„Ù„Ù‰ ABP.", "ABPSuiteEasilyCURD": "ABP Suite هي ۣۯۧ۩ ŰȘŰłÙ…Ű­ لك ŰšŰ„Ù†ŰŽŰ§ŰĄ Ű”ÙŰ­Ű§ŰȘ CRUD ŰšŰłÙ‡ÙˆÙ„Ű©", "WeAreHereToHelp": "Ù†Ű­Ù† Ù‡Ù†Ű§ من ŰŁŰŹÙ„ Ű§Ù„Ù…ŰłŰ§ŰčŰŻŰ© ", - "BrowseOrAskQuestion": "يمكنك ŰȘŰ”ÙŰ­ Ù…ÙˆŰ§Ű¶ÙŠŰč Ű§Ù„Ù…ŰłŰ§ŰčŰŻŰ© Ű§Ù„ŰźŰ§Ű”Ű© ŰšÙ†Ű§ ŰŁÙˆ Ű§Ù„ŰšŰ­Ű« في Ű§Ù„ŰŁŰłŰŠÙ„Ű© Ű§Ù„ŰŽŰ§ŰŠŰčŰ© ی ŰŁÙˆ يمكنك ۷۱ۭ ŰłŰ€Ű§Ù„ ŰčÙ„ÙŠÙ†Ű§ ۚۧ۳ŰȘŰźŰŻŰ§Ù… Ù†Ù…ÙˆŰ°ŰŹ Ű§Ù„Ű§ŰȘŰ”Ű§Ù„ .", + "BrowseOrAskQuestion": "يمكنك ŰȘŰ”ÙŰ­ Ù…ÙˆŰ§Ű¶ÙŠŰč Ű§Ù„Ù…ŰłŰ§ŰčŰŻŰ© Ű§Ù„ŰźŰ§Ű”Ű© ŰšÙ†Ű§ ŰŁÙˆ Ű§Ù„ŰšŰ­Ű« في Ű§Ù„ŰŁŰłŰŠÙ„Ű© Ű§Ù„ŰŽŰ§ŰŠŰčŰ© ی ŰŁÙˆ يمكنك ۷۱ۭ ŰłŰ€Ű§Ù„ ŰčÙ„ÙŠÙ†Ű§ ۚۧ۳ŰȘŰźŰŻŰ§Ù… Ù†Ù…ÙˆŰ°ŰŹ Ű§Ù„Ű§ŰȘŰ”Ű§Ù„ .", "SearchQuestionPlaceholder": "Ű§Ù„ŰšŰ­Ű« في Ű§Ù„ŰŁŰłŰŠÙ„Ű© Ű§Ù„Ù…ŰȘŰŻŰ§ÙˆÙ„Ű©", "WhatIsTheABPCommercial": "Ù…Ű§ هو ŰšŰ±Ù†Ű§Ù…ŰŹ ABP Ű§Ù„ŰȘŰŹŰ§Ű±ÙŠŰŸ", "WhatAreDifferencesThanAbpFramework": "Ù…Ű§ هي Ű§Ù„Ű§ŰźŰȘÙ„Ű§ÙŰ§ŰȘ ŰšÙŠÙ† ۄ۷ۧ۱ Űčمل ABP مفŰȘÙˆŰ­ Ű§Ù„Ù…Ű”ŰŻŰ± ÙˆŰ„Ű·Ű§Ű± Űčمل ABP Ű§Ù„ŰȘŰŹŰ§Ű±ÙŠŰŸ", - "ABPCommercialExplanation": "ABP Commercial Űčۚۧ۱۩ Űčن Ù…ŰŹÙ…ÙˆŰčŰ© من Ű§Ù„ÙˆŰ­ŰŻŰ§ŰȘ Ű§Ù„Ù†Ù…Ű·ÙŠŰ© ÙˆŰ§Ù„ŰŁŰŻÙˆŰ§ŰȘ ÙˆŰ§Ù„ŰłÙ…Ű§ŰȘ ÙˆŰ§Ù„ŰźŰŻÙ…Ű§ŰȘ Ű§Ù„Ù…ŰȘميŰČŰ© Ű§Ù„ŰȘي ŰȘم Ű„Ù†ŰŽŰ§Ű€Ù‡Ű§ فوق ۄ۷ۧ۱ Űčمل ABP مفŰȘÙˆŰ­ Ű§Ù„Ù…Ű”ŰŻŰ±. يŰȘم ŰȘŰ·ÙˆÙŠŰ± ÙˆŰŻŰčم ABP Commercial من Ù‚ŰšÙ„ Ù†ÙŰł Ű§Ù„ÙŰ±ÙŠÙ‚ Ű§Ù„Ű°ÙŠ يقف ÙˆŰ±Ű§ŰĄ ۄ۷ۧ۱ Űčمل ABP.", + "ABPCommercialExplanation": "ABP Commercial Űčۚۧ۱۩ Űčن Ù…ŰŹÙ…ÙˆŰčŰ© من Ű§Ù„ÙˆŰ­ŰŻŰ§ŰȘ Ű§Ù„Ù†Ù…Ű·ÙŠŰ© ÙˆŰ§Ù„ŰŁŰŻÙˆŰ§ŰȘ ÙˆŰ§Ù„ŰłÙ…Ű§ŰȘ ÙˆŰ§Ù„ŰźŰŻÙ…Ű§ŰȘ Ű§Ù„Ù…ŰȘميŰČŰ© Ű§Ù„ŰȘي ŰȘم Ű„Ù†ŰŽŰ§Ű€Ù‡Ű§ فوق ۄ۷ۧ۱ Űčمل ABP مفŰȘÙˆŰ­ Ű§Ù„Ù…Ű”ŰŻŰ±. يŰȘم ŰȘŰ·ÙˆÙŠŰ± ÙˆŰŻŰčم ABP من Ù‚ŰšÙ„ Ù†ÙŰł Ű§Ù„ÙŰ±ÙŠÙ‚ Ű§Ù„Ű°ÙŠ يقف ÙˆŰ±Ű§ŰĄ ۄ۷ۧ۱ Űčمل ABP.", "WhatAreDifferencesThanABPFrameworkExplanation": "

ۄ۷ۧ۱ Űčمل ABP Űčۚۧ۱۩ Űčن ۄ۷ۧ۱ Űčمل لŰȘŰ·ÙˆÙŠŰ± ŰȘŰ·ŰšÙŠÙ‚Ű§ŰȘ مŰčÙŠŰ§Ű±ÙŠ ÙˆÙ‚Ű§ŰšÙ„ للŰȘŰźŰ”ÙŠŰ” ومŰȘÙˆŰ§ÙÙ‚ مŰč ŰźŰŻÙ…Ű© ŰŻÙ‚ÙŠÙ‚Ű© لـ ASP.NET Core. Ű„Ù†Ù‡ ÙŠÙˆÙŰ± ŰšÙ†ÙŠŰ© ÙƒŰ§Ù…Ù„Ű© ÙˆŰšÙ†ÙŠŰ© ŰȘŰ­ŰȘÙŠŰ© Ù‚ÙˆÙŠŰ© لŰȘŰŹŰčلك ŰȘŰ±ÙƒŰČ Űčلى Ű±Ù…ŰČ Űčملك Ű§Ù„ŰźŰ§Ű” ŰšŰŻÙ„Ű§Ù‹ من ŰȘÙƒŰ±Ű§Ű± Ù†ÙŰłÙƒ لكل Ù…ŰŽŰ±ÙˆŰč ŰŹŰŻÙŠŰŻ. يŰčŰȘÙ…ŰŻ Űčلى ŰŁÙŰ¶Ù„ Ù…Ù…Ű§Ű±ŰłŰ§ŰȘ ŰȘŰ·ÙˆÙŠŰ± Ű§Ù„ŰšŰ±Ű§Ù…ŰŹ ÙˆŰ§Ù„ŰŁŰŻÙˆŰ§ŰȘ Ű§Ù„ŰŽŰ§ŰŠŰčŰ© Ű§Ù„ŰȘي ŰȘŰčŰ±ÙÙ‡Ű§ ŰšŰ§Ù„ÙŰčل.

ۄ۷ۧ۱ Űčمل ABP Ù…ŰŹŰ§Ù†ÙŠ ŰȘÙ…Ű§Ù…Ù‹Ű§ ومفŰȘÙˆŰ­ Ű§Ù„Ù…Ű”ŰŻŰ± ÙˆÙ‚Ű§ŰŠÙ… Űčلى Ű§Ù„Ù…Ù†ŰȘŰŻÙ‰. ÙƒÙ…Ű§ ŰŁÙ†Ù‡ ÙŠÙˆÙŰ± ŰłÙ…Ű© Ù…ŰŹŰ§Ù†ÙŠŰ© ÙˆŰšŰč۶ Ű§Ù„ÙˆŰ­ŰŻŰ§ŰȘ Ű§Ù„Ù†Ù…Ű·ÙŠŰ© Ù…ŰłŰšÙ‚Ű© Ű§Ù„Ű”Ù†Űč (Ù…Ű«Ù„ ۄۯۧ۱۩ Ű§Ù„Ù‡ÙˆÙŠŰ© ÙˆŰ„ŰŻŰ§Ű±Ű© Ű§Ù„Ù…ŰłŰȘۣۏ۱). ", "VisitTheFrameworkVSCommercialDocument": "قم ŰšŰČÙŠŰ§Ű±Ű© Ű§Ù„Ű±Ű§ŰšŰ· Ű§Ù„ŰȘŰ§Ù„ÙŠ Ù„Ù„Ű­Ű”ÙˆÙ„ Űčلى مŰČÙŠŰŻ من Ű§Ù„Ù…ŰčÙ„ÙˆÙ…Ű§ŰȘ {1} ", "ABPCommercialFollowingBenefits": "ÙŠŰ¶ÙŠÙ ABP Commercial Ű§Ù„Ù…ŰČŰ§ÙŠŰ§ Ű§Ù„ŰȘŰ§Ù„ÙŠŰ© Ű„Ù„Ù‰ ŰŹŰ§Ù†Űš ۄ۷ۧ۱ Űčمل ABP ۛ", @@ -382,7 +382,7 @@ "TrialLicenseExpireMessage": "ŰŁÙ†ŰȘ ŰȘŰłŰȘŰźŰŻÙ… Ű§Ù„ŰȘŰ±ŰźÙŠŰ” Ű§Ù„ŰȘŰŹŰ±ÙŠŰšÙŠ ÙˆŰłŰȘنŰȘهي Ű”Ù„Ű§Ű­ÙŠŰ© Ű§Ù„ŰȘŰ±ŰźÙŠŰ” Ű§Ù„ŰȘŰŹŰ±ÙŠŰšÙŠ في {0}.", "TryForFree": "Ű­Ű§ÙˆÙ„ Ù…ŰŹŰ§Ù†Ű§", "TrialLicenseExpiredInfo": "Ű§Ù†ŰȘهŰȘ فŰȘ۱۩ Ű§Ù„ŰȘŰ±ŰźÙŠŰ” Ű§Ù„ŰȘŰŹŰ±ÙŠŰšÙŠ Ű§Ù„ŰźŰ§Ű” ŰšÙƒ!", - "CommercialNewsletterConfirmationMessage": "ŰŁÙˆŰ§ÙÙ‚ Űčلى Ű§Ù„ŰšÙ†ÙˆŰŻ ÙˆŰ§Ù„ŰŽŰ±ÙˆŰ· و ŰłÙŠŰ§ŰłŰ© Ű§Ù„ŰźŰ”ÙˆŰ”ÙŠŰ© .", + "CommercialNewsletterConfirmationMessage": "ŰŁÙˆŰ§ÙÙ‚ Űčلى Ű§Ù„ŰšÙ†ÙˆŰŻ ÙˆŰ§Ù„ŰŽŰ±ÙˆŰ· و ŰłÙŠŰ§ŰłŰ© Ű§Ù„ŰźŰ”ÙˆŰ”ÙŠŰ© .", "RenewLicenseEarly": "ۄ۰ۧ قمŰȘ ŰšŰȘŰŹŰŻÙŠŰŻ ۱۟۔ŰȘي في وقŰȘ Ù…ŰšÙƒŰ± ی هل ŰłŰŁŰ­Ű”Ù„ Űčلى Ű§Ù„ŰłÙ†Ű© ÙƒŰ§Ù…Ù„Ű©ŰŸ", "RenewLicenseEarylExplanation": "ŰčÙ†ŰŻ ŰȘŰŹŰŻÙŠŰŻ Ű§Ù„ŰȘŰ±ŰźÙŠŰ” Ű§Ù„ŰźŰ§Ű” ŰšÙƒ Ù‚ŰšÙ„ ŰȘŰ§Ű±ÙŠŰź Ű§Ù†ŰȘÙ‡Ű§ŰĄ Ű§Ù„ŰȘŰ±ŰźÙŠŰ” Ű§Ù„ŰźŰ§Ű” ŰšÙƒ ی ŰłŰȘŰȘم Ű„Ű¶Ű§ÙŰ© ŰłÙ†Ű© ÙˆŰ§Ű­ŰŻŰ© Ű„Ù„Ù‰ ŰȘŰ§Ű±ÙŠŰź Ű§Ù†ŰȘÙ‡Ű§ŰĄ Ű§Ù„ŰȘŰ±ŰźÙŠŰ” Ű§Ù„ŰźŰ§Ű” ŰšÙƒ. Űčلى ŰłŰšÙŠÙ„ Ű§Ù„Ù…Ű«Ű§Ù„ ی ۄ۰ۧ Ű§Ù†ŰȘهŰȘ Ű”Ù„Ű§Ű­ÙŠŰ© ŰȘŰ±ŰźÙŠŰ”Ùƒ في {0} -06-06 وقمŰȘ ŰšŰȘŰŹŰŻÙŠŰŻÙ‡ في {0} -01-01 ی ÙŰłÙŠÙƒÙˆÙ† ŰȘŰ§Ű±ÙŠŰź Ű§Ù†ŰȘÙ‡Ű§ŰĄ Ű”Ù„Ű§Ű­ÙŠŰ© Ű§Ù„ŰȘŰ±ŰźÙŠŰ” Ű§Ù„ŰŹŰŻÙŠŰŻ {1} -06-06.", "discountForYears": "{0}ÙȘ ŰźŰ”Ù… Ù„Ù…ŰŻŰ© {1} ŰłÙ†Ű© (ŰłÙ†ÙˆŰ§ŰȘ)", @@ -694,7 +694,7 @@ "Landing_Page_DocsModuleDescription_9": "ŰšŰ§Ù„Ű„Ű¶Ű§ÙŰ© Ű„Ù„Ù‰ Ù…Ű”ŰŻŰ± GitHubی ÙŠŰłÙ…Ű­ ۚۚ۳ۧ۷۩ ۚۧ۳ŰȘŰźŰŻŰ§Ù… Ù…ŰŹÙ„ŰŻ ÙƒÙ…Ű”ŰŻŰ± ŰȘÙˆŰ«ÙŠÙ‚.", "Landing_Page_FileManagementModuleDescription_1": "ŰȘŰ­Ù…ÙŠÙ„ وŰȘنŰČيل وŰȘÙ†ŰžÙŠÙ… Ű§Ù„Ù…Ù„ÙŰ§ŰȘ في هيكل Ù…ŰŹÙ„ŰŻ Ù‡Ű±Ù…ÙŠ.", "Landing_Page_FileManagementModuleDescription_2": "ŰȘÙŰłŰȘŰźŰŻÙ… Ù‡Ű°Ù‡ Ű§Ù„ÙˆŰ­ŰŻŰ© لŰȘŰ­Ù…ÙŠÙ„ Ű§Ù„Ù…Ù„ÙŰ§ŰȘ وŰȘنŰČÙŠÙ„Ù‡Ű§ وŰȘÙ†ŰžÙŠÙ…Ù‡Ű§ في هيكل Ù…ŰŹÙ„ŰŻ Ù‡Ű±Ù…ÙŠ. ÙƒÙ…Ű§ ŰŁÙ†Ù‡ مŰȘÙˆŰ§ÙÙ‚ مŰč ŰȘŰčŰŻŰŻÙŠŰ© Ű§Ù„Ű„ÙŠŰŹŰ§Ű±Ű§ŰȘ ويمكنك ŰȘŰ­ŰŻÙŠŰŻ Ű§Ù„Ű­ŰŹÙ… Ű§Ù„Ű„ŰŹÙ…Ű§Ù„ÙŠ Ù„Ù„Ù…ŰłŰȘŰŁŰŹŰ±ÙŠÙ†.", - "Landing_Page_FileManagementModuleDescription_3": "ŰȘŰčŰȘÙ…ŰŻ Ù‡Ű°Ù‡ Ű§Ù„ÙˆŰ­ŰŻŰ© Űčلى Ù†ŰžŰ§Ù… BLOB ŰȘŰźŰČÙŠÙ†ŰŒ Ù„Ű°Ű§ ÙŠÙ…ÙƒÙ†Ù‡Ű§ ۧ۳ŰȘŰźŰŻŰ§Ù… Ù…ÙˆÙŰ±ÙŠ ŰȘŰźŰČين Ù…ŰźŰȘلفين لŰȘŰźŰČين Ù…Ű­ŰȘÙˆÙŠŰ§ŰȘ Ű§Ù„Ù…Ù„Ù.", + "Landing_Page_FileManagementModuleDescription_3": "ŰȘŰčŰȘÙ…ŰŻ Ù‡Ű°Ù‡ Ű§Ù„ÙˆŰ­ŰŻŰ© Űčلى Ù†ŰžŰ§Ù… BLOB ŰȘŰźŰČÙŠÙ†ŰŒ Ù„Ű°Ű§ ÙŠÙ…ÙƒÙ†Ù‡Ű§ ۧ۳ŰȘŰźŰŻŰ§Ù… Ù…ÙˆÙŰ±ÙŠ ŰȘŰźŰČين Ù…ŰźŰȘلفين لŰȘŰźŰČين Ù…Ű­ŰȘÙˆÙŠŰ§ŰȘ Ű§Ù„Ù…Ù„Ù.", "Landing_Page_IdentityModuleDescription_1": "ŰȘŰ·ŰšÙ‚ Ù‡Ű°Ù‡ Ű§Ù„ÙˆŰ­ŰŻŰ© Ù†ŰžŰ§Ù… Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ… ÙˆŰ§Ù„ŰŻÙˆŰ± للŰȘŰ·ŰšÙŠÙ‚:", "Landing_Page_IdentityModuleDescription_2": "Ù…ŰšÙ†ÙŠ Űčلى مكŰȘۚ۩ Microsoft's ASP.NET Core Identity.", "Landing_Page_IdentityModuleDescription_3": "ۄۯۧ۱۩ Ű§Ù„ŰŁŰŻÙˆŰ§Ű± و Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ…ÙŠÙ† في Ű§Ù„Ù†ŰžŰ§Ù…. ÙŠÙŰłÙ…Ű­ Ù„Ù„Ù…ŰłŰȘŰźŰŻÙ… ŰšŰŁÙ† يكون له ŰŁŰŻÙˆŰ§Ű± مŰȘŰčŰŻŰŻŰ© .", @@ -710,7 +710,7 @@ "Landing_Page_PaymentModuleDescription_1": "ÙŠÙˆÙŰ± ŰȘÙƒŰ§Ù…Ù„Ű§Ù‹ Ù„ŰšÙˆŰ§ŰšŰ§ŰȘ Ű§Ù„ŰŻÙŰč Ű§Ù„Ù…ŰźŰȘÙ„ÙŰ©.", "Landing_Page_PaymentModuleDescription_2": "ŰȘÙˆÙŰ± Ù‡Ű°Ù‡ Ű§Ù„ÙˆŰ­ŰŻŰ© ŰȘÙƒŰ§Ù…Ù„Ű§Ù‹ Ù„ŰšÙˆŰ§ŰšŰ§ŰȘ Ű§Ù„ŰŻÙŰč ی ŰšŰ­ÙŠŰ« يمكنك ŰšŰłÙ‡ÙˆÙ„Ű© Ű§Ù„Ű­Ű”ÙˆÙ„ Űčلى Ù…ŰŻÙÙˆŰčۧŰȘ من ŰčÙ…Ù„Ű§ŰŠÙƒ.", "Landing_Page_PaymentModuleDescription_3": "ŰȘŰŻŰčم Ù‡Ű°Ù‡ Ű§Ù„ÙˆŰ­ŰŻŰ© ŰšÙˆŰ§ŰšŰ§ŰȘ Ű§Ù„ŰŻÙŰč Ű§Ù„ŰȘŰ§Ù„ÙŠŰ©", - "Welcome_Page_UseSameCredentialForCommercialWebsites": "ۧ۳ŰȘŰźŰŻÙ… Ù†ÙŰł ŰšÙŠŰ§Ù†Ű§ŰȘ Ű§Ù„Ű§ŰčŰȘÙ…Ű§ŰŻ Ù„ÙƒÙ„Ű§ commercial.abp.io و support.abp.io.", + "Welcome_Page_UseSameCredentialForCommercialWebsites": "ۧ۳ŰȘŰźŰŻÙ… Ù†ÙŰł ŰšÙŠŰ§Ù†Ű§ŰȘ Ű§Ù„Ű§ŰčŰȘÙ…Ű§ŰŻ Ù„ÙƒÙ„Ű§ commercial.abp.io و support.abp.io.", "WatchCrudPagesVideo": "ŰŽŰ§Ù‡ŰŻ ÙÙŠŰŻÙŠÙˆ \"Creating CRUD Pages with ABP Suite\"!", "WatchGeneratingFromDatabaseVideo": "Watch the \"ABP Suite: Generating CRUD Pages From Existing Database Tables\" Video!", "WatchTakeCloserLookVideo": "ŰŽŰ§Ù‡ŰŻ ÙÙŠŰŻÙŠÙˆ \"Take a closer look at the code generation: ABP Suite\"!", @@ -784,9 +784,9 @@ "UpgradePaymentInfoSection_LicenseRenewalPrice": "ŰȘŰŹŰŻÙŠŰŻ Ű§Ù„Ű±ŰźŰ”Ű©", "Total": "Ű§Ù„Ù…ŰŹÙ…ÙˆŰč", "SupportPolicyFaqTitle": "Ù…Ű§ هي ŰłÙŠŰ§ŰłŰ© Ű§Ù„ŰŻŰčم Ű§Ù„ŰźŰ§Ű”Ű© ŰšÙƒŰŸ", - "SupportPolicyFaqExplanation": "Ù†Ű­Ù† Ù†ŰŻŰčم ÙÙ‚Ű· Ű§Ù„Ű„Ű”ŰŻŰ§Ű± Ű§Ù„Ű±ŰŠÙŠŰłÙŠ Ű§Ù„Ù†ŰŽŰ· ÙˆŰ§Ù„ŰłŰ§ŰšÙ‚. Ù„Ű§ Ù†Ű¶Ù…Ù† ۄ۔ۯۧ۱ ŰȘŰ”Ű­ÙŠŰ­ Ù„Ù„Ű„Ű”ŰŻŰ§Ű±Ű§ŰȘ Ű§Ù„Ű±ŰŠÙŠŰłÙŠŰ© Ű§Ù„Ű«Ű§Ù„Ű«Ű© ÙˆŰ§Ù„ŰŁÙ‚ŰŻÙ…. Űčلى ŰłŰšÙŠÙ„ Ű§Ù„Ù…Ű«Ű§Ù„ ی ۄ۰ۧ ÙƒŰ§Ù† Ű§Ù„Ű„Ű”ŰŻŰ§Ű± Ű§Ù„Ù†ŰŽŰ· هو 7.0.0 ی ÙŰłÙ†Ű”ŰŻŰ± ۄ۔ۯۧ۱ۧŰȘ ŰȘŰ”Ű­ÙŠŰ­ لكل من 6.x.x و 7.x.x. Ű„Ù„Ù‰ ŰŹŰ§Ù†Űš Ű°Ù„Ùƒ ی Ù†Ű­Ù† Ù†Ù‚ŰŻÙ… Ű§Ù„ŰŻŰčم ÙÙ‚Ű· Ù„Ű„Ű·Ű§Ű± Űčمل ABP ÙˆŰ§Ù„Ù‚Ű¶Ű§ÙŠŰ§ Ű§Ù„ŰȘŰŹŰ§Ű±ÙŠŰ© Ű§Ù„Ù…ŰȘŰčÙ„Ù‚Ű© ŰšÙ€ ABP. Ù‡Ű°Ű§ يŰčني ŰŁÙ†Ù‡ Ù„Ű§ يŰȘم ŰȘÙ‚ŰŻÙŠÙ… ŰŁÙŠ ŰŻŰčم لŰȘŰ·ŰšÙŠÙ‚Ű§ŰȘ Ű§Ù„Ű·Ű±Ù Ű§Ù„Ű«Ű§Ù„Ű« ÙˆŰ§Ù„ŰźŰŻÙ…Ű§ŰȘ Ű§Ù„ŰłŰ­Ű§ŰšÙŠŰ© ÙˆŰ§Ù„Ù…ÙƒŰȘۚۧŰȘ Ű§Ù„Ű·Ű±ÙÙŠŰ© Ű§Ù„ŰŁŰźŰ±Ù‰ Ű§Ù„ŰȘي ŰȘŰłŰȘŰźŰŻÙ…Ù‡Ű§ منŰȘۏۧŰȘ ABP. ŰłÙ†ŰšŰ°Ù„ ŰŹÙ‡ÙˆŰŻÙ‹Ű§ مŰčÙ‚ÙˆÙ„Ű© ŰȘŰŹŰ§Ű±ÙŠÙ‹Ű§ لŰȘŰČÙˆÙŠŰŻ ŰčÙ…Ù„Ű§ŰŠÙ†Ű§ ŰšŰ§Ù„ŰŻŰčم Ű§Ù„ÙÙ†ÙŠ ŰźÙ„Ű§Ù„ ۳ۧŰčۧŰȘ Ű§Ù„Űčمل Ű§Ù„Ű±ŰłÙ…ÙŠŰ© لـ \"Volosoft Bilisim A.S\". من Ù†Ű§Ű­ÙŠŰ© ŰŁŰźŰ±Ù‰ ی Ù†Ű­Ù† Ù„Ű§ نلŰȘŰČم ŰšÙˆÙ‚ŰȘ ۧ۳ŰȘۏۧۚ۩ ۧŰȘÙŰ§Ù‚ÙŠŰ© Ù…ŰłŰȘوى Ű§Ù„ŰźŰŻÙ…Ű© (SLA) ی Ù„ÙƒÙ†Ù†Ű§ ŰłÙ†Ű­Ű§ÙˆÙ„ Ű§Ù„Ű±ŰŻ Űčلى Ű§Ù„Ù…ŰŽÙƒÙ„Ű§ŰȘ Ű§Ù„ÙÙ†ÙŠŰ© في ۣ۳۱Űč وقŰȘ ممكن ŰźÙ„Ű§Ù„ ۳ۧŰčۧŰȘ Ű§Ù„Űčمل Ű§Ù„Ű±ŰłÙ…ÙŠŰ© Ù„ŰŻÙŠÙ†Ű§. Ù…Ű§ لم يŰȘم Ű„ŰšŰ±Ű§Ù… ۧŰȘÙŰ§Ù‚ÙŠŰ© ۟ۧ۔۩ مŰč Ű§Ù„Űčميل ی ÙŰ„Ù†Ù†Ű§ Ù†Ù‚ŰŻÙ… Ű§Ù„ŰŻŰčم ÙÙ‚Ű· Űčلى https://support.abp.io. Ù„ŰŻÙŠÙ†Ű§ ŰŁÙŠŰ¶Ù‹Ű§ ŰŻŰčم ۟ۧ۔ ŰšŰ§Ù„ŰšŰ±ÙŠŰŻ Ű§Ù„Ű„Ù„ÙƒŰȘŰ±ÙˆÙ†ÙŠ ی وهو مŰȘۭۧ ÙÙ‚Ű· Ù„Ű­Ű§Ù…Ù„ÙŠ ŰȘŰ±Ű§ŰźÙŠŰ” Ű§Ù„Ù…Ű€ŰłŰłŰ©.", + "SupportPolicyFaqExplanation": "Ù†Ű­Ù† Ù†ŰŻŰčم ÙÙ‚Ű· Ű§Ù„Ű„Ű”ŰŻŰ§Ű± Ű§Ù„Ű±ŰŠÙŠŰłÙŠ Ű§Ù„Ù†ŰŽŰ· ÙˆŰ§Ù„ŰłŰ§ŰšÙ‚. Ù„Ű§ Ù†Ű¶Ù…Ù† ۄ۔ۯۧ۱ ŰȘŰ”Ű­ÙŠŰ­ Ù„Ù„Ű„Ű”ŰŻŰ§Ű±Ű§ŰȘ Ű§Ù„Ű±ŰŠÙŠŰłÙŠŰ© Ű§Ù„Ű«Ű§Ù„Ű«Ű© ÙˆŰ§Ù„ŰŁÙ‚ŰŻÙ…. Űčلى ŰłŰšÙŠÙ„ Ű§Ù„Ù…Ű«Ű§Ù„ ی ۄ۰ۧ ÙƒŰ§Ù† Ű§Ù„Ű„Ű”ŰŻŰ§Ű± Ű§Ù„Ù†ŰŽŰ· هو 7.0.0 ی ÙŰłÙ†Ű”ŰŻŰ± ۄ۔ۯۧ۱ۧŰȘ ŰȘŰ”Ű­ÙŠŰ­ لكل من 6.x.x و 7.x.x. Ű„Ù„Ù‰ ŰŹŰ§Ù†Űš Ű°Ù„Ùƒ ی Ù†Ű­Ù† Ù†Ù‚ŰŻÙ… Ű§Ù„ŰŻŰčم ÙÙ‚Ű· Ù„Ű„Ű·Ű§Ű± Űčمل ABP ÙˆŰ§Ù„Ù‚Ű¶Ű§ÙŠŰ§ Ű§Ù„ŰȘŰŹŰ§Ű±ÙŠŰ© Ű§Ù„Ù…ŰȘŰčÙ„Ù‚Ű© ŰšÙ€ ABP. Ù‡Ű°Ű§ يŰčني ŰŁÙ†Ù‡ Ù„Ű§ يŰȘم ŰȘÙ‚ŰŻÙŠÙ… ŰŁÙŠ ŰŻŰčم لŰȘŰ·ŰšÙŠÙ‚Ű§ŰȘ Ű§Ù„Ű·Ű±Ù Ű§Ù„Ű«Ű§Ù„Ű« ÙˆŰ§Ù„ŰźŰŻÙ…Ű§ŰȘ Ű§Ù„ŰłŰ­Ű§ŰšÙŠŰ© ÙˆŰ§Ù„Ù…ÙƒŰȘۚۧŰȘ Ű§Ù„Ű·Ű±ÙÙŠŰ© Ű§Ù„ŰŁŰźŰ±Ù‰ Ű§Ù„ŰȘي ŰȘŰłŰȘŰźŰŻÙ…Ù‡Ű§ منŰȘۏۧŰȘ ABP. ŰłÙ†ŰšŰ°Ù„ ŰŹÙ‡ÙˆŰŻÙ‹Ű§ مŰčÙ‚ÙˆÙ„Ű© ŰȘŰŹŰ§Ű±ÙŠÙ‹Ű§ لŰȘŰČÙˆÙŠŰŻ ŰčÙ…Ù„Ű§ŰŠÙ†Ű§ ŰšŰ§Ù„ŰŻŰčم Ű§Ù„ÙÙ†ÙŠ ŰźÙ„Ű§Ù„ ۳ۧŰčۧŰȘ Ű§Ù„Űčمل Ű§Ù„Ű±ŰłÙ…ÙŠŰ© لـ \"Volosoft Bilisim A.S\". من Ù†Ű§Ű­ÙŠŰ© ŰŁŰźŰ±Ù‰ ی Ù†Ű­Ù† Ù„Ű§ نلŰȘŰČم ŰšÙˆÙ‚ŰȘ ۧ۳ŰȘۏۧۚ۩ ۧŰȘÙŰ§Ù‚ÙŠŰ© Ù…ŰłŰȘوى Ű§Ù„ŰźŰŻÙ…Ű© (SLA) ی Ù„ÙƒÙ†Ù†Ű§ ŰłÙ†Ű­Ű§ÙˆÙ„ Ű§Ù„Ű±ŰŻ Űčلى Ű§Ù„Ù…ŰŽÙƒÙ„Ű§ŰȘ Ű§Ù„ÙÙ†ÙŠŰ© في ۣ۳۱Űč وقŰȘ ممكن ŰźÙ„Ű§Ù„ ۳ۧŰčۧŰȘ Ű§Ù„Űčمل Ű§Ù„Ű±ŰłÙ…ÙŠŰ© Ù„ŰŻÙŠÙ†Ű§. Ù…Ű§ لم يŰȘم Ű„ŰšŰ±Ű§Ù… ۧŰȘÙŰ§Ù‚ÙŠŰ© ۟ۧ۔۩ مŰč Ű§Ù„Űčميل ی ÙŰ„Ù†Ù†Ű§ Ù†Ù‚ŰŻÙ… Ű§Ù„ŰŻŰčم ÙÙ‚Ű· Űčلى https://abp.io/support/questions. Ù„ŰŻÙŠÙ†Ű§ ŰŁÙŠŰ¶Ù‹Ű§ ŰŻŰčم ۟ۧ۔ ŰšŰ§Ù„ŰšŰ±ÙŠŰŻ Ű§Ù„Ű„Ù„ÙƒŰȘŰ±ÙˆÙ†ÙŠ ی وهو مŰȘۭۧ ÙÙ‚Ű· Ù„Ű­Ű§Ù…Ù„ÙŠ ŰȘŰ±Ű§ŰźÙŠŰ” Ű§Ù„Ù…Ű€ŰłŰłŰ©.", "WhyUseAbpIoPlatform": "Ù„Ù…Ű§Ű°Ű§ ÙŠŰŹŰš Űčلي ۧ۳ŰȘŰźŰŻŰ§Ù… Ù…Ù†Ű”Ű© ABP.IO ŰšŰŻÙ„Ű§Ù‹ من Ű„Ù†ŰŽŰ§ŰĄ Ű­Ù„ ŰŹŰŻÙŠŰŻ من Ű§Ù„ŰšŰŻŰ§ÙŠŰ©ŰŸ", - "WhyUseAbpIoPlatformFaqExplanation": "Ű§Ù†ŰžŰ± Ű§Ù„Ù‰ Ù‡Ű°Ű§ Ű§Ù„Ù…ŰłŰȘÙ†ŰŻ Ù„Ù„Ű­Ű”ÙˆÙ„ Űčلى ێ۱ۭ Ù…ÙŰ”Ù„ Ù„ŰłŰšŰš ۧ۳ŰȘŰźŰŻŰ§Ù… ABP.IO Platform Ù„ÙŰ§ŰŠŰŻŰȘه Ű§Ù„ÙƒŰšÙŠŰ±Ű© ŰšŰŻÙ„Ù‹Ű§ من Ű§Ù„Ù‚ÙŠŰ§Ù… ŰšÙƒÙ„ ŰŽÙŠŰĄ ŰšÙ†ÙŰłÙƒ.", + "WhyUseAbpIoPlatformFaqExplanation": "Ű§Ù†ŰžŰ± Ű§Ù„Ù‰ Ù‡Ű°Ű§ Ű§Ù„Ù…ŰłŰȘÙ†ŰŻ Ù„Ù„Ű­Ű”ÙˆÙ„ Űčلى ێ۱ۭ Ù…ÙŰ”Ù„ Ù„ŰłŰšŰš ۧ۳ŰȘŰźŰŻŰ§Ù… ABP.IO Platform Ù„ÙŰ§ŰŠŰŻŰȘه Ű§Ù„ÙƒŰšÙŠŰ±Ű© ŰšŰŻÙ„Ù‹Ű§ من Ű§Ù„Ù‚ÙŠŰ§Ù… ŰšÙƒÙ„ ŰŽÙŠŰĄ ŰšÙ†ÙŰłÙƒ.", "EulaPageTitle": "ۧŰȘÙŰ§Ù‚ÙŠŰ© ŰȘŰ±ŰźÙŠŰ” Ű§Ù„Ù…ŰłŰȘŰźŰŻÙ… Ű§Ù„Ù†Ù‡Ű§ŰŠÙŠ (EULA)", "PrivacyPolicyPageTitle": "ŰłÙŠŰ§ŰłŰ© Ű§Ù„ŰźŰ”ÙˆŰ”ÙŠŰ© - ŰłÙŠŰ§ŰłŰ© Ù…Ù„ÙŰ§ŰȘ ŰȘŰčŰ±ÙŠÙ Ű§Ù„Ű§Ű±ŰȘۚۧ۷", "TermsConditionsPageTitle": "Ű§Ù„ŰŁŰ­ÙƒŰ§Ù… ÙˆŰ§Ù„ŰŽŰ±ÙˆŰ·", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json index e94c4108aa..30500aab9b 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json @@ -157,7 +157,7 @@ "ABPCLIExplanation": "ABP CLI (Command Line Interface) je nĂĄstroj pƙíkazovĂ©ho ƙádku pro provĂĄděnĂ­ některĂœch bÄ›ĆŸnĂœch operacĂ­ pro ƙeĆĄenĂ­ zaloĆŸenĂĄ na ABP.", "ABPSuiteEasilyCURD": "ABP Suite je nĂĄstroj, kterĂœ vĂĄm umoĆŸnĂ­ snadno vytváƙet strĂĄnky CRUD", "WeAreHereToHelp": "Jsme tu, abychom vĂĄm Pomohli", - "BrowseOrAskQuestion": "MĆŻĆŸete prochĂĄzet naĆĄe tĂ©mata nĂĄpovědy nebo vyhledĂĄvat v často kladenĂœch dotazech, pƙípadně nĂĄm mĆŻĆŸete poloĆŸit otĂĄzku pomocĂ­ kontaktnĂ­ho formuláƙe.", + "BrowseOrAskQuestion": "MĆŻĆŸete prochĂĄzet naĆĄe tĂ©mata nĂĄpovědy nebo vyhledĂĄvat v často kladenĂœch dotazech, pƙípadně nĂĄm mĆŻĆŸete poloĆŸit otĂĄzku pomocĂ­ kontaktnĂ­ho formuláƙe.", "SearchQuestionPlaceholder": "Hledejte v často kladenĂœch otĂĄzkĂĄch", "WhatIsTheABPCommercial": "Co je ABP Commercial?", "WhatAreDifferencesThanAbpFramework": "JakĂ© jsou rozdĂ­ly mezi open source ABP Framework a ABP Commercial?", @@ -382,7 +382,7 @@ "TrialLicenseExpireMessage": "PouĆŸĂ­vĂĄte zkuĆĄebnĂ­ licenci a platnost vaĆĄĂ­ zkuĆĄebnĂ­ licence vyprĆĄĂ­ dne {0}.", "TryForFree": "Zkus zadarmo", "TrialLicenseExpiredInfo": "VaĆĄe zkuĆĄebnĂ­ licenčnĂ­ obdobĂ­ vyprĆĄelo!", - "CommercialNewsletterConfirmationMessage": "I agree to the Terms & Conditions and Privacy Policy.", + "CommercialNewsletterConfirmationMessage": "I agree to the Terms & Conditions and Privacy Policy.", "ContinueWithNewOrganization": "Pokračujte s novou organizacĂ­", "RenewLicenseEarly": "Pokud si pƙedčasně obnovĂ­m licenci, dostanu celĂœ rok?", "RenewLicenseEarylExplanation": "KdyĆŸ obnovĂ­te licenci pƙed datem vyprĆĄenĂ­ platnosti licence, bude k datu vyprĆĄenĂ­ platnosti licence pƙidĂĄn 1 rok. Pokud napƙíklad platnost vaĆĄĂ­ licence vyprĆĄĂ­ dne {0}-06-06 a obnovĂ­te ji dne {0}-01-01, bude vaĆĄe novĂ© datum vyprĆĄenĂ­ platnosti licence {1}-06-06.", @@ -391,7 +391,7 @@ "OnboardingTrainingFaqTitle": "MĂĄte ĆĄkolenĂ­ ABP onboarding?", "OnboardingTrainingFaqExplanation": "Ano, mĂĄme ĆĄkolicĂ­ sluĆŸby ABP, kterĂ© vĂĄm pomohou rychle zahĂĄjit vĂĄĆĄ projekt ABP. DozvĂ­te se o ABP od hlavnĂ­ho člena tĂœmu ABP a zĂ­skĂĄte dovednosti pro zahĂĄjenĂ­ vaĆĄeho projektu ABP. Na onboarding ĆĄkolenĂ­ si vysvětlĂ­me, jak nastavit vaĆĄe vĂœvojovĂ© prostƙedĂ­, nainstalovat poĆŸadovanĂ© nĂĄstroje, vytvoƙit plně funkčnĂ­ strĂĄnku CRUD. Ć kolenĂ­ bude probĂ­hat ĆŸivě a bude se pouĆŸĂ­vat aplikace Zoom a jsme otevƙeni vyuĆŸitĂ­ dalĆĄĂ­ch online platforem pro setkĂĄvĂĄnĂ­. Jazykem ĆĄkolenĂ­ bude angličtina. Během sezenĂ­ mĆŻĆŸete takĂ© klĂĄst otĂĄzky tĂœkajĂ­cĂ­ se ABP. Pro obě strany bude naplĂĄnovĂĄn vhodnĂœ čas a datum. Chcete-li zĂ­skat dalĆĄĂ­ informace, kontaktujte nĂĄs na adrese info@abp.io.", "SupportPolicyFaqTitle": "JakĂĄ je vaĆĄe politika podpory?", - "SupportPolicyFaqExplanation": "Podporujeme pouze aktivnĂ­ a pƙedchozĂ­ hlavnĂ­ verzi. Nezaručujeme vydĂĄnĂ­ opravy pro tƙetĂ­ a starĆĄĂ­ hlavnĂ­ verzi. Napƙíklad pokud je aktivnĂ­ verze 7.0.0, vydĂĄme opravnĂ© verze pro verzi 6.x.x i 7.x.x. Kromě toho poskytujeme podporu pouze pro problĂ©my souvisejĂ­cĂ­ s ABP Framework a ABP Commercial. To znamenĂĄ, ĆŸe neposkytujeme ĆŸĂĄdnou podporu aplikacĂ­m tƙetĂ­ch stran, cloudovĂœm sluĆŸbĂĄm a dalĆĄĂ­m perifernĂ­m knihovnĂĄm pouĆŸĂ­vanĂœm produkty ABP. VynaloĆŸĂ­me komerčně pƙiměƙenĂ© ĂșsilĂ­, abychom naĆĄim zĂĄkaznĂ­kĆŻm poskytli technickou podporu během oficiĂĄlnĂ­ pracovnĂ­ doby společnosti \"Volosoft Bilisim A.S\". Na druhou stranu se nezavazujeme k době odezvy podle dohody o Ășrovni sluĆŸeb (SLA), ale budeme se snaĆŸit reagovat na technickĂ© problĂ©my co nejrychleji v rĂĄmci naĆĄĂ­ oficiĂĄlnĂ­ pracovnĂ­ doby. Pokud nenĂ­ se zĂĄkaznĂ­kem uzavƙena zvlĂĄĆĄtnĂ­ dohoda, poskytujeme podporu pouze na adrese https://support.abp.io. MĂĄme takĂ© soukromou e-mailovou podporu, kterĂĄ je k dispozici pouze drĆŸitelĆŻm licence Enterprise.", + "SupportPolicyFaqExplanation": "Podporujeme pouze aktivnĂ­ a pƙedchozĂ­ hlavnĂ­ verzi. Nezaručujeme vydĂĄnĂ­ opravy pro tƙetĂ­ a starĆĄĂ­ hlavnĂ­ verzi. Napƙíklad pokud je aktivnĂ­ verze 7.0.0, vydĂĄme opravnĂ© verze pro verzi 6.x.x i 7.x.x. Kromě toho poskytujeme podporu pouze pro problĂ©my souvisejĂ­cĂ­ s ABP Framework a ABP Commercial. To znamenĂĄ, ĆŸe neposkytujeme ĆŸĂĄdnou podporu aplikacĂ­m tƙetĂ­ch stran, cloudovĂœm sluĆŸbĂĄm a dalĆĄĂ­m perifernĂ­m knihovnĂĄm pouĆŸĂ­vanĂœm produkty ABP. VynaloĆŸĂ­me komerčně pƙiměƙenĂ© ĂșsilĂ­, abychom naĆĄim zĂĄkaznĂ­kĆŻm poskytli technickou podporu během oficiĂĄlnĂ­ pracovnĂ­ doby společnosti \"Volosoft Bilisim A.S\". Na druhou stranu se nezavazujeme k době odezvy podle dohody o Ășrovni sluĆŸeb (SLA), ale budeme se snaĆŸit reagovat na technickĂ© problĂ©my co nejrychleji v rĂĄmci naĆĄĂ­ oficiĂĄlnĂ­ pracovnĂ­ doby. Pokud nenĂ­ se zĂĄkaznĂ­kem uzavƙena zvlĂĄĆĄtnĂ­ dohoda, poskytujeme podporu pouze na adrese https://abp.io/support/questions. MĂĄme takĂ© soukromou e-mailovou podporu, kterĂĄ je k dispozici pouze drĆŸitelĆŻm licence Enterprise.", "DowngradeLicensePlan": "Mohu v budoucnu pƙejĂ­t na niĆŸĆĄĂ­ licenčnĂ­ plĂĄn?", "DowngradeLicensePlanExplanation": "StĂĄvajĂ­cĂ­ licenčnĂ­ plĂĄn nelze snĂ­ĆŸit. MĆŻĆŸete si vĆĄak zakoupit novĂœ niĆŸĆĄĂ­ licenčnĂ­ plĂĄn a pokračovat ve vĂœvoji s novou licencĂ­. Po zakoupenĂ­ niĆŸĆĄĂ­ licence se stačí pƙihlĂĄsit k novĂ©mu licenčnĂ­mu plĂĄnu pomocĂ­ pƙíkazu ABP CLI: abp login -o `.", "LicenseTransfer": "Lze licenci pƙevĂ©st z jednoho vĂœvojáƙe na druhĂ©ho?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json index 5d944a25c7..210f46ff8b 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json @@ -157,7 +157,7 @@ "ABPCLIExplanation": "ABP CLI (Command Line Interface) ist ein Befehlszeilentool zum AusfĂŒhren einiger allgemeiner Operationen fĂŒr ABP-basierte Lösungen.", "ABPSuiteEasilyCURD": "ABP Suite ist ein Tool, mit dem Sie einfach CRUD-Seiten erstellen können", "WeAreHereToHelp": "Wir sind hier, um Hilfe", - "BrowseOrAskQuestion": "Sie können unsere Hilfethemen durchsuchen oder in hĂ€ufig gestellten Fragen suchen oder uns ĂŒber das Kontaktformular eine Frage stellen.", + "BrowseOrAskQuestion": "Sie können unsere Hilfethemen durchsuchen oder in hĂ€ufig gestellten Fragen suchen oder uns ĂŒber das Kontaktformular eine Frage stellen.", "SearchQuestionPlaceholder": "Suche in hĂ€ufig gestellten Fragen", "WhatIsTheABPCommercial": "Was ist der ABP-Werbespot?", "WhatAreDifferencesThanAbpFramework": "Was sind die Unterschiede zwischen dem Open Source ABP Framework und dem ABP Commercial?", @@ -382,7 +382,7 @@ "TrialLicenseExpireMessage": "Sie verwenden die Testlizenz und Ihre Testlizenz lĂ€uft am {0} ab.", "TryForFree": "Kostenlos testen", "TrialLicenseExpiredInfo": "Ihr Testlizenzzeitraum ist abgelaufen!", - "CommercialNewsletterConfirmationMessage": "Ich stimme den Allgemeinen GeschĂ€ftsbedingungen und der DatenschutzerklĂ€rung . zu .", + "CommercialNewsletterConfirmationMessage": "Ich stimme den Allgemeinen GeschĂ€ftsbedingungen und der DatenschutzerklĂ€rung . zu .", "ContinueWithNewOrganization": "Weiter mit einer neuen Organisation", "RenewLicenseEarly": "Erhalte ich das ganze Jahr, wenn ich meine Lizenz vorzeitig erneuere?", "RenewLicenseEarylExplanation": "Wenn Sie Ihre Lizenz vor dem Ablaufdatum Ihrer Lizenz erneuern, wird Ihr Lizenzablaufdatum um 1 Jahr verlĂ€ngert. Wenn Ihre Lizenz beispielsweise am {0}-06-06 ablĂ€uft und Sie sie am {0}-01-01 erneuern, ist das neue Ablaufdatum der Lizenz der {1}-06-06.", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json index 1336c8ae0b..fb5064b9a6 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json @@ -95,14 +95,14 @@ "Or": "Or", "TellUsAboutYourself": "Tell us little bit about yourself", "Surname": "Surname", - "DoYouAgreePrivacyPolicy": "I agree to the Terms & Conditions and Privacy Policy.", + "DoYouAgreePrivacyPolicy": "I agree to the Terms & Conditions and Privacy Policy.", "VolosoftMarketingInformationMessage": "I would like information, tips, and offers about Solutions for Businesses and Organizations and other Volosoft products and services.", "VolosoftSharingInformationMessage": "I would like Volosoft to share my information with select partners so I can receive relevant information about their products and services.", "WeWillSendYouADownloadLink": "We've sent the file to {0}.", "InvalidFormInputs": "Please, type the valid information specified on the form.", "DDDBookEmailBody": "Thank you.
To download your book, click here.", "FreeDDDEBook": "Free DDD E-Book", - "CommercialNewsletterConfirmationMessage": "I agree to the Terms & Conditions and Privacy Policy.", + "CommercialNewsletterConfirmationMessage": "I agree to the Terms & Conditions and Privacy Policy.", "RemoveCurrentUserFromOrganizationWarningMessage": "You are removing yourself from your own organization. You will no longer be able to manage this organization, do you confirm?", "RenewExistingOrganizationOrCreateNewOneMessage": "You can renew the license of your organization(s) by clicking the below \"Extend Now\" button(s) and thus you can extend the license expiry date by 1 year. If you continue to checkout, you will have a new organization. Do you want to continue with a new organization?", "ExtendNow": "Extend / Renew", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json index 071f025a81..ae040e7fd2 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -720,7 +720,7 @@ "Landing_Page_DocsModuleDescription_9": "In addition to the GitHub source, allows to simply use a folder as the documentation source.", "Landing_Page_FileManagementModuleDescription_1": "Upload, download and organize files in a hierarchical folder structure.", "Landing_Page_FileManagementModuleDescription_2": "This module is used to upload, download and organize files in a hierarchical folder structure. It is also compatible with multi-tenancy and you can determine the total size limit for your tenants.", - "Landing_Page_FileManagementModuleDescription_3": "This module is based on the BLOB Storing system, so it can use different storage providers to store the file contents.", + "Landing_Page_FileManagementModuleDescription_3": "This module is based on the BLOB Storing system, so it can use different storage providers to store the file contents.", "Landing_Page_IdentityModuleDescription_1": "This module implements the User and Role system of an application;", "Landing_Page_IdentityModuleDescription_2": "Built on the Microsoft's ASP.NET Core Identity library.", "Landing_Page_IdentityModuleDescription_3": "Manage roles and users in the system. A user is allowed to have multiple roles.", @@ -736,7 +736,7 @@ "Landing_Page_PaymentModuleDescription_1": "Provides integration for different payment gateways.", "Landing_Page_PaymentModuleDescription_2": "This module provides integration for payment gateways, so you can easily get payment from your customers.", "Landing_Page_PaymentModuleDescription_3": "This module supports the following payment gateways", - "Welcome_Page_UseSameCredentialForCommercialWebsites": "Use the same credentials for both commercial.abp.io and support.abp.io.", + "Welcome_Page_UseSameCredentialForCommercialWebsites": "Use the same credentials for both commercial.abp.io and abp.io/support.", "WatchCrudPagesVideo": "Watch the \"Creating CRUD Pages with ABP Suite\" Video!", "WatchGeneratingFromDatabaseVideo": "Watch the \"ABP Suite: Generating CRUD Pages From Existing Database Tables\" Video!", "WatchTakeCloserLookVideo": "Watch the \"Take a closer look at the code generation: ABP Suite\" Video!", @@ -812,7 +812,7 @@ "UpgradePaymentInfoSection_LicenseRenewalPrice": "License renewal", "Total": "Total", "SupportPolicyFaqTitle": "What is your support policy?", - "SupportPolicyFaqExplanation": "We do support only the active and the previous major version. We do not guarantee a patch release for the 3rd and older major versions. For example, if the active version is 7.0.0, we will release patch releases for both 6.x.x and 7.x.x. Besides, we provide support only for ABP Framework and ABP Commercial related issues. That means no support is given for the 3rd party applications, cloud services and other peripheral libraries used by ABP products. We will use commercially reasonable efforts to provide our customers with technical support during \"Volosoft Bilisim A.S\"s official business hours. On the other hand, we do not commit to a service-level agreement (SLA) response time, but we will try to respond to the technical issues as quickly as possible within our official working hours. Unless a special agreement is made with the customer, we only provide support at https://support.abp.io. We also have private email support, which is only available to Enterprise License holders.", + "SupportPolicyFaqExplanation": "We do support only the active and the previous major version. We do not guarantee a patch release for the 3rd and older major versions. For example, if the active version is 7.0.0, we will release patch releases for both 6.x.x and 7.x.x. Besides, we provide support only for ABP Framework and ABP Commercial related issues. That means no support is given for the 3rd party applications, cloud services and other peripheral libraries used by ABP products. We will use commercially reasonable efforts to provide our customers with technical support during \"Volosoft Bilisim A.S\"s official business hours. On the other hand, we do not commit to a service-level agreement (SLA) response time, but we will try to respond to the technical issues as quickly as possible within our official working hours. Unless a special agreement is made with the customer, we only provide support at https://abp.io/support/questions. We also have private email support, which is only available to Enterprise License holders.", "TotalDevelopers": "Total {0} developer(s)", "CustomPurchaseExplanation": "Tailored to your specific needs", "WhereDidYouHearAboutUs": "Where did you hear about us?", @@ -849,7 +849,7 @@ "BlazoriseSupportExplanation5": "You can post your questions on the support website and generate a product token for your application.", "AbpLiveTrainingPackages": "ABP Live Training Packages", "Releases": "Releases", - "ReleasesDescription": "This page contains detailed information about each release. You can see all the closed pull requests for a specific release. For overall milestone developments, you can check out the brief release notes page.", + "ReleasesDescription": "This page contains detailed information about each release. You can see all the closed pull requests for a specific release. For overall milestone developments, you can check out the brief release notes page.", "ReleaseDate": "Release Date", "Labels": "Labels", "PreRelease": "Pre-release", @@ -886,8 +886,8 @@ "DevelopYourSolution_Description1": "ABP’s infrastructure makes you focus on your own business code by automating the repetitive work and providing pre-built infrastructure and application features.", "DevelopYourSolution_Description2": "In the following code block, you can see how the ABP Framework seamlessly integrates into your code and automates the repetitive tasks for you.", "DevelopYourSolution_Description3": "Even in this shortcode block, ABP does a lot of things for you.", - "DevelopYourSolution_Description4": "It provides base classes to apply conventions, like \n dependency injection. Generic \n repository services provide a convenient \n way to interact with the database. Declarative \n authorization works with a fine-tuned permission system.", - "DevelopYourSolution_Description5": "ABP completely automates \n unit of work (for database connection and transaction management), \n exception handling, \n validation\n and audit logging. It provides many more building blocks to simplify your daily development tasks and focus on your own code while creating production-ready \n applications.", + "DevelopYourSolution_Description4": "It provides base classes to apply conventions, like \n dependency injection. Generic \n repository services provide a convenient \n way to interact with the database. Declarative \n authorization works with a fine-tuned permission system.", + "DevelopYourSolution_Description5": "ABP completely automates \n unit of work (for database connection and transaction management), \n exception handling, \n validation\n and audit logging. It provides many more building blocks to simplify your daily development tasks and focus on your own code while creating production-ready \n applications.", "DevelopYourSolution_Description6": "You can imagine how much that code block can be long and complicated if you would do it all manually.", "SuiteCrudGenerationInFewSeconds": "In addition to hand coding your solution, you can create fully working advanced CRUD pages in a few minutes using the ABP Suite tooling. It generates the code into your solution, so you can fine-tune it based on your custom requirements.", "DeployAnywhere_Description1": "At the end of the day, you have a pure .NET solution. You can deploy your solution to your own server, to a cloud platform, to Kubernetes or anywhere you want. You can deploy to as many servers as you want. ABP is a deployment environment agnostic tool.", @@ -907,8 +907,8 @@ "ReleaseLogs_Pr": "Pull Request #{0} - {1}", "NoLabels": "No labels", "DoesTheSubscriptionRenewAutomatically": "Does the subscription renew automatically?", - "DoesTheSubscriptionRenewAutomaticallyExplanation": "The ABP Commercial does not have an auto-renewal billing model. Therefore your subscription will not be automatically renewed at the end of your license period. If you want to continue to have the benefits of ABP Commercial, you need to manually renew it at the organization management page. If you have multiple organizations, click the \"Manage\" button at your expiring organization and then click the \"Extend Now\" button to renew your license. You may also want to take a look at the What Happens When My License Ends? section.", - "DoesTheSubscriptionRenewAutomaticallyExplanationAutoRenewal": "ABP Commercial allows you to auto-renew your license. This is an optional service. You can toggle this feature when you purchase a new license or later enable it from your organization management page. Auto-renewal toggle is in the 'Payments Method' section of the organization management page. If you want to turn off auto-renewal, visit organization management page, go to the 'Payments Method' section and uncheck the 'Automatic Renewal' checkbox. When you turn off the auto-renewal feature, you must renew your license yourself.", + "DoesTheSubscriptionRenewAutomaticallyExplanation": "The ABP does not have an auto-renewal billing model. Therefore your subscription will not be automatically renewed at the end of your license period. If you want to continue to have the benefits of ABP, you need to manually renew it at the organization management page. If you have multiple organizations, click the \"Manage\" button at your expiring organization and then click the \"Extend Now\" button to renew your license. You may also want to take a look at the What Happens When My License Ends? section.", + "DoesTheSubscriptionRenewAutomaticallyExplanationAutoRenewal": "ABP allows you to auto-renew your license. This is an optional service. You can toggle this feature when you purchase a new license or later enable it from your organization management page. Auto-renewal toggle is in the 'Payments Method' section of the organization management page. If you want to turn off auto-renewal, visit organization management page, go to the 'Payments Method' section and uncheck the 'Automatic Renewal' checkbox. When you turn off the auto-renewal feature, you must renew your license yourself.", "ExtraQuestionCreditsFaqTitle": "Can I purchase extra support question credits?", "ExtraQuestionCreditsFaqExplanation": "Yes, you can. To buy extra question credits, send an e-mail to info@abp.io with your organization's name. Here's the price list for the extra question credits:

  • 50 questions pack $999
  • 25 questions pack $625
  • 15 questions pack $450
", "AlreadyBetaTester": "You have already joined the beta tester program.", @@ -1004,7 +1004,7 @@ "CreatingAnEmptySolution_THEPROBLEM_Description4": "How do you integrate to 3rd-party libraries?", "CreatingAnEmptySolution_THEPROBLEM_Description5": "How to set up automated tests?", "ABPSOLUTION": "ABP SOLUTION", - "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP provides a well-architected, layered and production-ready startup solution based on the Domain Driven Design principles. The solution also includes a pre-configured unit and integration test projects for each layer.", + "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP provides a well-architected, layered and production-ready startup solution based on the Domain Driven Design principles. The solution also includes a pre-configured unit and integration test projects for each layer.", "CommonLibraries": "Common Libraries", "CommonLibraries_THEPROBLEM_Description": "Which libraries should you use to implement common requirements? The software development ecosystem is highly dynamic, making it challenging to keep up with the latest tools, libraries, trends, and approaches.", "CommonLibraries_ABPSOLUTION_Description": "ABP pre-integrates popular, mature, and up-to-date libraries into the solution. You don't need to spend time integrating them or making them communicate with each other. They work properly out of the box.", @@ -1022,7 +1022,7 @@ "KeepingYourSolutionUpToDate": "Keeping Your Solution Up to Date", "KeepingYourSolutionUpToDate_THEPROBLEM_Description": "After you start your development, you must keep track of the new versions of the libraries you use for upgrades & patches.", "KeepingYourSolutionUpToDate_ABPSOLUTION_Description": "We regularly update all packages to the latest versions and test them before the stable release. When you update the ABP Framework, all its dependencies are upgraded to edge technology.", - "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "Abp update
CLI command automatically discovers and upgrades all ABP-dependant NuGet and NPM packages in a solution. With ABP, it is easier to stay with the latest versions.", + "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "Abp update CLI command automatically discovers and upgrades all ABP-dependant NuGet and NPM packages in a solution. With ABP, it is easier to stay with the latest versions.", "DRY": "Don't Repeat Yourself!", "DRY_Description": "Creating a base solution takes significant time and requires good architectural experience. However, this is just the beginning! As you start developing, you will likely have to write lots of repetitive code; that would be great if all this could be handled automatically.", "DRY_Description2": "ABP automates and simplifies repeating code as much as possible by following the convention over configuration principle. However, it doesn't restrict you when you need to switch to manual gear. The control is always in your hands.", @@ -1063,12 +1063,12 @@ "Modularity_THEPROBLEM_Description": "Building a truly modular system is not easy! All the aspects of the system (database, entities, APIs, UI pages/components) can be split into modules, and each module can be re-usable without others. The plain ASP.NET Core doesn't provide such a modular architecture. If you need it, you should think about it from scratch.", "Modularity_ABPSOLUTION_Description": "The ABP Framework is born to be a modular application development structure. Every feature in the framework is developed to be compatible with modularity. Documentation and guides explain how to develop re-usable modules in a standard way.", "SaaSMultiTenancy": "SaaS / Multi-Tenancy", - "SaaSMultiTenancy_THEPROBLEM_Description": "Multi-Tenancy is a common way to implement SaaS systems. However, implementing a consistent multi-tenant infrastructure may become complicated.", + "SaaSMultiTenancy_THEPROBLEM_Description": "Multi-Tenancy is a common way to implement SaaS systems. However, implementing a consistent multi-tenant infrastructure may become complicated.", "SaaSMultiTenancy_ABPSOLUTION_Description": "ABP Framework provides a complete multi-tenant infrastructure and abstract complexity from your business code. Your application code will be mostly multi-tenancy aware, while the ABP Framework automatically isolates the database, cache and other details of the tenants from each other. It supports single database, per tenant database and hybrid approaches. It properly configures the libraries like Microsoft Identity and OpenIddict, which are not normally multi-tenancy compatible.", "Microservices": "Microservices", "Microservices_THEPROBLEM_Description": "Building a microservice system requires many infrastructure details: Authenticating and authorizing applications and microservices and implementing asynchronous messaging and synchronous (Rest/GRPC) communication patterns between microservices are the most fundamental issues.", - "Microservices_ABPSOLUTION_Description": "The ABP Framework provides services, guides, and samples to help you implement your microservice solution using the industry standard tools.", - "Microservices_ABPSOLUTION_Description2": "ABP Commercial even goes one step further and provides a complete startup template to kick-start your microservice solution.", + "Microservices_ABPSOLUTION_Description": "The ABP Framework provides services, guides, and samples to help you implement your microservice solution using the industry standard tools.", + "Microservices_ABPSOLUTION_Description2": "ABP Commercial even goes one step further and provides a complete startup template to kick-start your microservice solution.", "PreBuiltModules": "Pre-Built Modules", "PreBuiltModules_THEPROBLEM_Description": "All of us have similar but slightly different business requirements. However, we all should re-invent the wheel since no one's code can directly work in our solution. They are all embedded parts of a larger solution.", "PreBuiltModules_ABPSOLUTION_Description": "ABP Commercial modules provides a lot of re-usable application modules like payment, chat, file management, audit log reporting... etc. All of these modules are easily installed into your solution and directly work. We are constantly adding more modules.", @@ -1208,9 +1208,9 @@ "Application{0}": "Application {0}", "PreBuiltApplicationModulesTitle": "Pre-Built Application Modules", "RegisterDemo": "Register", - "TrainingDescription": "We are offering the following training packages for who want to get expertise on the ABP Framework and the ABP Commercial.", + "TrainingDescription": "We are offering the following training packages for who want to get expertise on the ABP Framework and the ABP.", "PurchaseDevelopers": "developers", - "LinkExpiredMessage": "The payment link has expired! Contact us at sales@volosoft.com to update the link or click here to navigate to the contact page." + "LinkExpiredMessage": "The payment link has expired! Contact us at sales@volosoft.com to update the link or click here to navigate to the contact page." } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json index 67fa883440..8d68f0c60f 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json @@ -96,7 +96,7 @@ "TextTemplateManagement": "GestiĂłn de plantillas de texto", "See All Modules": "Ver todos los mĂłdulos", "ABPSuite": "Suite ABP", - "AbpSuiteShortDescription": "ABP Suite es una herramienta complementaria a ABP Commercial.", + "AbpSuiteShortDescription": "ABP Suite es una herramienta complementaria a ABP.", "AbpSuiteExplanation": "Te permite crear pĂĄginas web en cuestiĂłn de minutos. Es una herramienta global de .NET Core que se puede instalar desde la lĂ­nea de comandos. Puede crear una nueva soluciĂłn ABP, generar pĂĄginas CRUD desde la base de datos al front-end.", "Details": "Detalles", "LeptonTheme": "Tema de Lepton", @@ -157,7 +157,7 @@ "ABPCLIExplanation": "ABP CLI (Command Line Interface) es una herramienta de lĂ­nea de comandos para realizar algunas operaciones comunes para soluciones basadas en ABP.", "ABPSuiteEasilyCURD": "ABP Suite es una herramienta que le permite crear fĂĄcilmente pĂĄginas CRUD", "WeAreHereToHelp": "Estamos aquĂ­ para Ayuda ", - "BrowseOrAskQuestion": "Puede explorar nuestros temas de ayuda o buscar preguntas frecuentes, o puede hacernos una pregunta mediante el formulario de contacto .", + "BrowseOrAskQuestion": "Puede explorar nuestros temas de ayuda o buscar preguntas frecuentes, o puede hacernos una pregunta mediante el formulario de contacto .", "SearchQuestionPlaceholder": "Buscar en preguntas frecuentes", "WhatIsTheABPCommercial": "ÂżQuĂ© es ABP Commercial?", "WhatAreDifferencesThanAbpFramework": "ÂżCuĂĄles son las diferencias entre ABP Framework de cĂłdigo abierto y ABP Commercial?", @@ -382,7 +382,7 @@ "TrialLicenseExpireMessage": "EstĂĄ utilizando la licencia de prueba y su licencia de prueba caducarĂĄ el {0}.", "TryForFree": "Prueba gratis", "TrialLicenseExpiredInfo": "ÂĄSu perĂ­odo de licencia de prueba ha expirado!", - "CommercialNewsletterConfirmationMessage": "Acepto los TĂ©rminos y condiciones y la PolĂ­tica de privacidad .", + "CommercialNewsletterConfirmationMessage": "Acepto los TĂ©rminos y condiciones y la PolĂ­tica de privacidad .", "ContinueWithNewOrganization": "Continuar con una nueva organizaciĂłn", "RenewLicenseEarly": "Si renuevo mi licencia antes, ÂżobtendrĂ© el año completo?", "RenewLicenseEarylExplanation": "Cuando renueve su licencia antes de la fecha de vencimiento de su licencia, se agregarĂĄ 1 año a la fecha de vencimiento de su licencia. Por ejemplo, si su licencia vence el {0} -06-06 y la renueva el {0} -01-01, la fecha de vencimiento de su nueva licencia serĂĄ {1} -06-06.", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json index 57d76027b2..8a85358884 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json @@ -160,7 +160,7 @@ "ABPCLIExplanation": "ABP CLI (Command Line Interface) on komentorivityökalu joidenkin yleisten toimintojen suorittamiseen ABP-pohjaisiin ratkaisuihin.", "ABPSuiteEasilyCURD": "ABP Suite on työkalu, jonka avulla voit helposti luoda CRUD-sivuja", "WeAreHereToHelp": "Apua olemme tÀÀllĂ€", - "BrowseOrAskQuestion": "Voit selata ohjeaiheitamme tai etsiĂ€ usein kysyttyjĂ€ kysymyksiĂ€ tai voit esittÀÀ meille kysymyksiĂ€ yhteydenottolomakkeella .", + "BrowseOrAskQuestion": "Voit selata ohjeaiheitamme tai etsiĂ€ usein kysyttyjĂ€ kysymyksiĂ€ tai voit esittÀÀ meille kysymyksiĂ€ yhteydenottolomakkeella .", "SearchQuestionPlaceholder": "Hae usein kysyttyjĂ€ kysymyksiĂ€", "WhatIsTheABPCommercial": "MikĂ€ on ABP-kauppa?", "WhatAreDifferencesThanAbpFramework": "MitĂ€ eroja on avoimen lĂ€hdekoodin ABP Frameworkilla ja ABP Commercialilla?", @@ -718,7 +718,7 @@ "Landing_Page_DocsModuleDescription_9": "GitHub-lĂ€hteen lisĂ€ksi mahdollistaa tavallisen kansion kĂ€ytön dokumentaatiolĂ€hteenĂ€.", "Landing_Page_FileManagementModuleDescription_1": "Lataa, lataa ja jĂ€rjestĂ€ tiedostoja hierarkkisessa kansiorakenteessa.", "Landing_Page_FileManagementModuleDescription_2": "TĂ€tĂ€ moduulia kĂ€ytetÀÀn tiedostojen lataamiseen, lataamiseen ja jĂ€rjestĂ€miseen hierarkkisessa kansiorakenteessa. Se on myös yhteensopiva usean vuokrauksen kanssa, ja voit mÀÀrittÀÀ vuokralaisten kokonaiskokorajan.", - "Landing_Page_FileManagementModuleDescription_3": "TĂ€mĂ€ moduuli perustuu BLOB-tallennusjĂ€rjestelmÀÀn, joten se voi kĂ€yttÀÀ eri tallennuspalveluita tiedoston sisĂ€llön tallentamiseen.", + "Landing_Page_FileManagementModuleDescription_3": "TĂ€mĂ€ moduuli perustuu BLOB-tallennusjĂ€rjestelmÀÀn, joten se voi kĂ€yttÀÀ eri tallennuspalveluita tiedoston sisĂ€llön tallentamiseen.", "Landing_Page_IdentityModuleDescription_1": "TĂ€mĂ€ moduuli toteuttaa sovelluksen kĂ€yttĂ€jĂ€- ja roolijĂ€rjestelmĂ€n;", "Landing_Page_IdentityModuleDescription_2": "Luotu kĂ€yttĂ€en Microsoftin ASP.NET Core Identity -kirjastoa.", "Landing_Page_IdentityModuleDescription_3": "Hallinnoi rooleja ja kĂ€yttĂ€jiĂ€ jĂ€rjestelmĂ€ssĂ€. KĂ€yttĂ€jĂ€llĂ€ voi olla useita rooleja.", @@ -734,7 +734,7 @@ "Landing_Page_PaymentModuleDescription_1": "Tarjoaa integroinnin eri maksuyhdyskĂ€ytĂ€ville.", "Landing_Page_PaymentModuleDescription_2": "TĂ€mĂ€ moduuli integroi maksuyhdyskĂ€ytĂ€viĂ€, joten saat helposti maksuja asiakkailtasi.", "Landing_Page_PaymentModuleDescription_3": "TĂ€mĂ€ moduuli tukee seuraavia maksuyhdyskĂ€ytĂ€viĂ€", - "Welcome_Page_UseSameCredentialForCommercialWebsites": "KĂ€ytĂ€ samoja kirjautumistietoja sekĂ€ commercial.abp.io- ettĂ€ support.abp.io.", + "Welcome_Page_UseSameCredentialForCommercialWebsites": "KĂ€ytĂ€ samoja kirjautumistietoja sekĂ€ commercial.abp.io- ettĂ€ support.abp.io.", "WatchCrudPagesVideo": "Katso \"CRUD-sivujen luominen ABP Suiten avulla\" -video!", "WatchGeneratingFromDatabaseVideo": "Katso \"ABP Suite: CRUD-sivujen luominen olemassa olevista tietokantataulukoista\" -video!", "WatchTakeCloserLookVideo": "Katso \"Katso tarkemmin koodin sukupolvea: ABP Suite\" -video!", @@ -809,7 +809,7 @@ "UpgradePaymentInfoSection_LicenseRenewalPrice": "Lisenssin uusiminen", "Total": "Kaikki yhteensĂ€", "SupportPolicyFaqTitle": "MikĂ€ on tukipolitiikkanne?", - "SupportPolicyFaqExplanation": "Tuemme vain aktiivista ja edellistĂ€ pÀÀversiota. Emme takaa korjausjulkaisua 3. ja vanhemmille pÀÀversioille. Jos aktiivinen versio on esimerkiksi 7.0.0, julkaisemme korjaustiedostoja sekĂ€ versioista 6.x.x ettĂ€ 7.x.x. LisĂ€ksi tarjoamme tukea vain ABP Frameworkiin ja ABP Commercialiin liittyville ongelmille. TĂ€mĂ€ tarkoittaa, ettĂ€ tukea ei anneta kolmannen osapuolen sovelluksille, pilvipalveluille ja muille ABP-tuotteiden kĂ€yttĂ€mille oheiskirjastoille. KĂ€ytĂ€mme kaupallisesti kohtuullisia keinoja tarjotaksemme asiakkaillemme teknistĂ€ tukea \"Volosoft Bilisim A.S\"-yhtiön virallisina työaikoina. Toisaalta emme sitoudu palvelutasosopimuksen (SLA) mukaiseen vastausaikaan, mutta pyrimme vastaamaan teknisiin ongelmiin mahdollisimman nopeasti virallisten työaikojemme puitteissa. Ellei asiakkaan kanssa ole tehty erityistĂ€ sopimusta, tarjoamme tukea vain osoitteessa https://support.abp.io. MeillĂ€ on myös yksityinen sĂ€hköpostituki, joka on vain Enterprise-lisenssin haltijoiden kĂ€ytettĂ€vissĂ€.", + "SupportPolicyFaqExplanation": "Tuemme vain aktiivista ja edellistĂ€ pÀÀversiota. Emme takaa korjausjulkaisua 3. ja vanhemmille pÀÀversioille. Jos aktiivinen versio on esimerkiksi 7.0.0, julkaisemme korjaustiedostoja sekĂ€ versioista 6.x.x ettĂ€ 7.x.x. LisĂ€ksi tarjoamme tukea vain ABP Frameworkiin ja ABP Commercialiin liittyville ongelmille. TĂ€mĂ€ tarkoittaa, ettĂ€ tukea ei anneta kolmannen osapuolen sovelluksille, pilvipalveluille ja muille ABP-tuotteiden kĂ€yttĂ€mille oheiskirjastoille. KĂ€ytĂ€mme kaupallisesti kohtuullisia keinoja tarjotaksemme asiakkaillemme teknistĂ€ tukea \"Volosoft Bilisim A.S\"-yhtiön virallisina työaikoina. Toisaalta emme sitoudu palvelutasosopimuksen (SLA) mukaiseen vastausaikaan, mutta pyrimme vastaamaan teknisiin ongelmiin mahdollisimman nopeasti virallisten työaikojemme puitteissa. Ellei asiakkaan kanssa ole tehty erityistĂ€ sopimusta, tarjoamme tukea vain osoitteessa https://abp.io/support/questions. MeillĂ€ on myös yksityinen sĂ€hköpostituki, joka on vain Enterprise-lisenssin haltijoiden kĂ€ytettĂ€vissĂ€.", "TotalDevelopers": "YhteensĂ€ {0} kehittĂ€jÀÀ", "CustomPurchaseExplanation": "RÀÀtĂ€löity sinun tarpeidesi mukaan", "WhereDidYouHearAboutUs": "MistĂ€ kuulit meistĂ€?", @@ -827,7 +827,7 @@ "ExpirationDate": "Viimeinen kĂ€yttöpĂ€ivĂ€", "SpringCampaignDiscount": "KevÀÀn kampanja-alennus", "WhyUseAbpIoPlatform": "Miksi minun pitĂ€isi kĂ€yttÀÀ ABP.IO-alustaa sen sijaan, ettĂ€ luon uuden ratkaisun tyhjĂ€stĂ€?", - "WhyUseAbpIoPlatformFaqExplanation": "Katso kyseisestĂ€ asiakirjasta yksityiskohtainen selitys siitĂ€, miksi ABP.IO Platformin kĂ€yttĂ€minen on huomattavasti edullisempaa kuin kaiken tekeminen itse.", + "WhyUseAbpIoPlatformFaqExplanation": "Katso kyseisestĂ€ asiakirjasta yksityiskohtainen selitys siitĂ€, miksi ABP.IO Platformin kĂ€yttĂ€minen on huomattavasti edullisempaa kuin kaiken tekeminen itse.", "MultipleOrganizationInfo": "Katso kaikki organisaatiosi", "PaymentFailedInfo": "Anteeksi, maksu epĂ€onnistui! ", "UsedPayment": "TĂ€mĂ€ maksu on jo kĂ€ytetty", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json index 7bc6e12e95..998d0d9129 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json @@ -157,7 +157,7 @@ "ABPCLIExplanation": "ABP CLI (Command Line Interface) est un outil de ligne de commande pour effectuer certaines opĂ©rations courantes pour les solutions basĂ©es sur ABP.", "ABPSuiteEasilyCURD": "ABP Suite est un outil qui vous permet de crĂ©er facilement des pages CRUD", "WeAreHereToHelp": "Nous sommes ici pour Aide ", - "BrowseOrAskQuestion": "Vous pouvez parcourir nos rubriques d'aide ou rechercher dans les questions frĂ©quemment posĂ©es, ou vous pouvez nous poser une question en utilisant le formulaire de contact .", + "BrowseOrAskQuestion": "Vous pouvez parcourir nos rubriques d'aide ou rechercher dans les questions frĂ©quemment posĂ©es, ou vous pouvez nous poser une question en utilisant le formulaire de contact .", "SearchQuestionPlaceholder": "Rechercher dans les questions frĂ©quemment posĂ©es", "WhatIsTheABPCommercial": "Qu'est-ce que la publicitĂ© ABP?", "WhatAreDifferencesThanAbpFramework": "Quelles sont les diffĂ©rences entre le Framework ABP open source et le ABP Commercial?", @@ -382,7 +382,7 @@ "TrialLicenseExpireMessage": "Vous utilisez la licence d'essai et votre licence d'essai expirera le {0}.", "TryForFree": "Essayer gratuitement", "TrialLicenseExpiredInfo": "Votre pĂ©riode de licence d'essai a expiré !", - "CommercialNewsletterConfirmationMessage": "J'accepte les Conditions gĂ©nĂ©rales et la Politique de confidentialitĂ© .", + "CommercialNewsletterConfirmationMessage": "J'accepte les Conditions gĂ©nĂ©rales et la Politique de confidentialitĂ© .", "ContinueWithNewOrganization": "Continuer avec une nouvelle organisation", "RenewLicenseEarly": "Si je renouvelle ma licence plus tĂŽt, obtiendrai-je l'annĂ©e complĂšte ?", "RenewLicenseEarylExplanation": "Lorsque vous renouvelez votre licence avant la date d'expiration de votre licence, 1 an sera ajoutĂ© Ă  la date d'expiration de votre licence. Par exemple, si votre licence expire le {0}-06-06 et que vous la renouvelez le {0}-01-01, la nouvelle date d'expiration de votre licence sera le {1}-06-06.", @@ -391,7 +391,7 @@ "OnboardingTrainingFaqTitle": "Avez-vous une formation d'accueil ABP ?", "OnboardingTrainingFaqExplanation": "Oui, nous avons des services de formation ABP pour vous aider Ă  dĂ©marrer rapidement votre projet ABP. Vous en apprendrez plus sur l'ABP auprĂšs d'un membre de l'Ă©quipe principale d'ABP et vous acquerrez les compĂ©tences nĂ©cessaires pour commencer votre projet ABP. Dans la formation d'intĂ©gration, nous vous expliquerons comment configurer votre environnement de dĂ©veloppement, installer les outils requis, crĂ©er une page CRUD entiĂšrement fonctionnelle. La formation sera en direct et l'application Zoom sera utilisĂ©e, et nous sommes ouverts Ă  l'utilisation d'autres plateformes de rĂ©union en ligne. La langue de la formation sera l'anglais. Vous pouvez Ă©galement poser vos questions sur l'ABP pendant les sĂ©ances. Une heure et une date convenables seront prĂ©vues pour les deux parties. Pour obtenir plus d'informations, contactez-nous Ă  info@abp.io.", "SupportPolicyFaqTitle": "Quelle est votre politique de soutien ?", - "SupportPolicyFaqExplanation": "Nous ne prenons en charge que la version active et la version majeure prĂ©cĂ©dente. Nous ne garantissons pas la publication d'un correctif pour la troisiĂšme version majeure et la version majeure antĂ©rieure. Par exemple, si la version active est 7.0.0, nous publierons des correctifs pour les versions 6.x.x et 7.x.x. En outre, nous n'assurons le support que pour les problĂšmes liĂ©s Ă  ABP Framework et ABP Commercial. Cela signifie qu'aucun support n'est fourni pour les applications tierces, les services cloud et les autres bibliothĂšques pĂ©riphĂ©riques utilisĂ©es par les produits ABP. Nous ferons des efforts commercialement raisonnables pour fournir Ă  nos clients une assistance technique pendant les heures de bureau officielles de \"Volosoft Bilisim A.S\". D'autre part, nous ne nous engageons pas Ă  respecter un accord de niveau de service (SLA) sur le temps de rĂ©ponse, mais nous essaierons de rĂ©pondre aux problĂšmes techniques aussi rapidement que possible pendant nos heures de travail officielles. Sauf accord spĂ©cial avec le client, nous ne fournissons une assistance qu'Ă  l'adresse https://support.abp.io. Nous disposons Ă©galement d'une assistance privĂ©e par courrier Ă©lectronique, qui n'est accessible qu'aux dĂ©tenteurs d'une licence d'entreprise.", + "SupportPolicyFaqExplanation": "Nous ne prenons en charge que la version active et la version majeure prĂ©cĂ©dente. Nous ne garantissons pas la publication d'un correctif pour la troisiĂšme version majeure et la version majeure antĂ©rieure. Par exemple, si la version active est 7.0.0, nous publierons des correctifs pour les versions 6.x.x et 7.x.x. En outre, nous n'assurons le support que pour les problĂšmes liĂ©s Ă  ABP Framework et ABP Commercial. Cela signifie qu'aucun support n'est fourni pour les applications tierces, les services cloud et les autres bibliothĂšques pĂ©riphĂ©riques utilisĂ©es par les produits ABP. Nous ferons des efforts commercialement raisonnables pour fournir Ă  nos clients une assistance technique pendant les heures de bureau officielles de \"Volosoft Bilisim A.S\". D'autre part, nous ne nous engageons pas Ă  respecter un accord de niveau de service (SLA) sur le temps de rĂ©ponse, mais nous essaierons de rĂ©pondre aux problĂšmes techniques aussi rapidement que possible pendant nos heures de travail officielles. Sauf accord spĂ©cial avec le client, nous ne fournissons une assistance qu'Ă  l'adresse https://abp.io/support/questions. Nous disposons Ă©galement d'une assistance privĂ©e par courrier Ă©lectronique, qui n'est accessible qu'aux dĂ©tenteurs d'une licence d'entreprise.", "DowngradeLicensePlan": "Puis-je passer Ă  un plan de licence infĂ©rieur Ă  l'avenir ?", "DowngradeLicensePlanExplanation": "Vous ne pouvez pas rĂ©trograder votre plan de licence existant. Mais vous pouvez acheter un nouveau plan de licence infĂ©rieur et continuer votre dĂ©veloppement sur la nouvelle licence. AprĂšs avoir achetĂ© une licence infĂ©rieure, il vous suffit de vous connecter Ă  votre nouveau plan de licence via la commande CLI d'ABP : ` abp login -o `.", "LicenseTransfer": "Une licence peut-elle ĂȘtre transfĂ©rĂ©e d'un dĂ©veloppeur Ă  un autre ?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json index 9d202f3d5d..3adb4d3108 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json @@ -157,7 +157,7 @@ "ABPCLIExplanation": "ABP CLI (à€•à€źà€Ÿà€‚à€Ą à€Čà€Ÿà€‡à€š à€‡à€‚à€Ÿà€°à€«à„‡à€ž) ABP à€†à€§à€Ÿà€°à€żà€€ à€žà€źà€Ÿà€§à€Ÿà€šà„‹à€‚ à€•à„‡ à€Čà€żà€ à€•à„à€› à€žà€Ÿà€źà€Ÿà€šà„à€Ż à€‘à€Șà€°à„‡à€¶à€š à€•à€°à€šà„‡ à€•à„‡ à€Čà€żà€ à€à€• à€•à€źà€Ÿà€‚à€Ą à€Čà€Ÿà€‡à€š à€Ÿà„‚à€Č à€čà„ˆà„€", "ABPSuiteEasilyCURD": "à€à€Źà„€à€Șà„€ à€žà„‚à€Ÿ à€à€• à€‰à€Șà€•à€°à€Ł à€čà„ˆ à€œà„‹ à€†à€Șà€•à„‹ à€†à€žà€Ÿà€šà„€ à€žà„‡ CRUD à€Șà„‡à€œ à€Źà€šà€Ÿà€šà„‡ à€•à„€ à€…à€šà„à€źà€€à€ż à€Šà„‡à€€à€Ÿ à€čà„ˆ", "WeAreHereToHelp": "à€čà€ź à€Żà€čà€Ÿà€ à€čà„ˆà€‚ à€źà€Šà€Š ", - "BrowseOrAskQuestion": "à€†à€Ș à€čà€źà€Ÿà€°à„‡ à€žà€čà€Ÿà€Żà€€à€Ÿ à€”à€żà€·à€Żà„‹à€‚ à€•à„‹ à€Źà„à€°à€Ÿà€‰à€œà€Œ à€•à€° à€žà€•à€€à„‡ à€čà„ˆà€‚ à€Żà€Ÿ à€…à€•à„à€žà€° à€Șà„‚à€›à„‡ à€œà€Ÿà€šà„‡ à€”à€Ÿà€Čà„‡ à€Șà„à€°à€¶à„à€šà„‹à€‚ à€źà„‡à€‚ à€–à„‹à€œ à€•à€° à€žà€•à€€à„‡ à€čà„ˆà€‚, à€Żà€Ÿ à€†à€Ș à€žà€‚à€Șà€°à„à€• à€«à€Œà„‰à€°à„à€ź à€•à€Ÿ à€‰à€Șà€Żà„‹à€— à€•à€°à€•à„‡ à€čà€źà€žà„‡ à€à€• à€Șà„à€°à€¶à„à€š à€Șà„‚à€› à€žà€•à€€à„‡ à€čà„ˆà€‚à„€", + "BrowseOrAskQuestion": "à€†à€Ș à€čà€źà€Ÿà€°à„‡ à€žà€čà€Ÿà€Żà€€à€Ÿ à€”à€żà€·à€Żà„‹à€‚ à€•à„‹ à€Źà„à€°à€Ÿà€‰à€œà€Œ à€•à€° à€žà€•à€€à„‡ à€čà„ˆà€‚ à€Żà€Ÿ à€…à€•à„à€žà€° à€Șà„‚à€›à„‡ à€œà€Ÿà€šà„‡ à€”à€Ÿà€Čà„‡ à€Șà„à€°à€¶à„à€šà„‹à€‚ à€źà„‡à€‚ à€–à„‹à€œ à€•à€° à€žà€•à€€à„‡ à€čà„ˆà€‚, à€Żà€Ÿ à€†à€Ș à€žà€‚à€Șà€°à„à€• à€«à€Œà„‰à€°à„à€ź à€•à€Ÿ à€‰à€Șà€Żà„‹à€— à€•à€°à€•à„‡ à€čà€źà€žà„‡ à€à€• à€Șà„à€°à€¶à„à€š à€Șà„‚à€› à€žà€•à€€à„‡ à€čà„ˆà€‚à„€", "SearchQuestionPlaceholder": "à€…à€•à„à€žà€° à€Șà„‚à€›à„‡ à€œà€Ÿà€šà„‡ à€”à€Ÿà€Čà„‡ à€Șà„à€°à€¶à„à€šà„‹à€‚ à€źà„‡à€‚ à€–à„‹à€œà„‡à€‚", "WhatIsTheABPCommercial": "ABP à€•à€źà€°à„à€¶à€żà€Żà€Č à€•à„à€Żà€Ÿ à€čà„ˆ?", "WhatAreDifferencesThanAbpFramework": "à€“à€Șà€š à€žà„‹à€°à„à€ž ABP à€«à„à€°à„‡à€źà€”à€°à„à€• à€”à€° ABP à€•à€źà€°à„à€¶à€żà€Żà€Č à€•à„‡ à€Źà„€à€š à€•à„à€Żà€Ÿ à€…à€‚à€€à€° à€čà„ˆà€‚?", @@ -382,13 +382,13 @@ "TrialLicenseExpireMessage": "à€†à€Ș à€Șà€°à„€à€•à„à€·à€Ł à€Čà€Ÿà€‡à€žà„‡à€‚à€ž à€•à€Ÿ à€‰à€Șà€Żà„‹à€— à€•à€° à€°à€čà„‡ à€čà„ˆà€‚ à€”à€° à€†à€Șà€•à€Ÿ à€Șà€°à„€à€•à„à€·à€Ł à€Čà€Ÿà€‡à€žà„‡à€‚à€ž {0} à€•à„‹ à€žà€źà€Ÿà€Șà„à€€ à€čà„‹ à€œà€Ÿà€à€—à€Ÿà„€", "TryForFree": "à€źà„à€«à„à€€ à€źà„‡à€‚ à€†à€œà€źà€Ÿà€‡à€Żà„‡", "TrialLicenseExpiredInfo": "à€†à€Șà€•à„‡ à€Șà€°à„€à€•à„à€·à€Ł à€Čà€Ÿà€‡à€žà„‡à€‚à€ž à€•à„€ à€…à€”à€§à€ż à€žà€źà€Ÿà€Șà„à€€ à€čà„‹ à€—à€ˆ à€čà„ˆ!", - "CommercialNewsletterConfirmationMessage": "à€źà„ˆà€‚ à€šà€żà€Żà€ź à€”à€° à€¶à€°à„à€€à„‹à€‚ à€”à€° à€—à„‹à€Șà€šà„€à€Żà€€à€Ÿ à€šà„€à€€à€ż à€žà„‡ à€žà€čà€źà€€ à€čà„‚à€‚ .", + "CommercialNewsletterConfirmationMessage": "à€źà„ˆà€‚ à€šà€żà€Żà€ź à€”à€° à€¶à€°à„à€€à„‹à€‚ à€”à€° à€—à„‹à€Șà€šà„€à€Żà€€à€Ÿ à€šà„€à€€à€ż à€žà„‡ à€žà€čà€źà€€ à€čà„‚à€‚ .", "discountForYears": "{1}à€”à€°à„à€·(à€”à€°à„à€·à„‹à€‚) à€•à„‡ à€Čà€żà€ {0}% à€›à„‚à€Ÿ", "BlackFridayDiscount": "à€Źà„à€Čà„ˆà€• à€«à„à€°à€Ÿà€‡à€Ąà„‡ à€›à„‚à€Ÿ", "OnboardingTrainingFaqTitle": "à€•à„à€Żà€Ÿ à€†à€Șà€•à„‡ à€Șà€Ÿà€ž à€à€Źà„€à€Șà„€ à€‘à€šà€Źà„‹à€°à„à€Ąà€żà€‚à€— à€Șà„à€°à€¶à€żà€•à„à€·à€Ł à€čà„ˆ?", "OnboardingTrainingFaqExplanation": "à€čà€Ÿà€‚, à€†à€Șà€•à„‡ à€à€Źà„€à€Șà„€ à€Șà„à€°à„‹à€œà„‡à€•à„à€Ÿ à€•à„‹ à€€à„‡à€œà„€ à€žà„‡ à€¶à„à€°à„‚ à€•à€°à€šà„‡ à€źà„‡à€‚ à€†à€Șà€•à„€ à€źà€Šà€Š à€•à€°à€šà„‡ à€•à„‡ à€Čà€żà€ à€čà€źà€Ÿà€°à„‡ à€Șà€Ÿà€ž à€à€Źà„€à€Șà„€ à€Șà„à€°à€¶à€żà€•à„à€·à€Ł à€žà„‡à€”à€Ÿà€à€‚ à€čà„ˆà€‚à„€ à€†à€Ș ABP à€•à„‹à€° à€Ÿà„€à€ź à€•à„‡ à€žà€Šà€žà„à€Ż à€žà„‡ ABP à€•à„‡ à€Źà€Ÿà€°à„‡ à€źà„‡à€‚ à€œà€Ÿà€šà„‡à€‚à€—à„‡ à€”à€° à€†à€Șà€•à„‹ à€…à€Șà€šà€Ÿ ABP à€Șà„à€°à„‹à€œà„‡à€•à„à€Ÿ à€¶à„à€°à„‚ à€•à€°à€šà„‡ à€•à€Ÿ à€•à„Œà€¶à€Č à€Șà„à€°à€Ÿà€Șà„à€€ à€čà„‹à€—à€Ÿà„€ à€‘à€šà€Źà„‹à€°à„à€Ąà€żà€‚à€— à€Șà„à€°à€¶à€żà€•à„à€·à€Ł à€źà„‡à€‚, à€čà€ź à€žà€źà€à€Ÿà€à€‚à€—à„‡ à€•à€ż à€…à€Șà€šà„‡ à€”à€żà€•à€Ÿà€ž à€•à„‡ à€źà€Ÿà€čà„Œà€Č à€•à„‹ à€•à„ˆà€žà„‡ à€žà„à€„à€Ÿà€Șà€żà€€ à€•à€°à„‡à€‚, à€†à€”à€¶à„à€Żà€• à€‰à€Șà€•à€°à€Ł à€•à„ˆà€žà„‡ à€žà„à€„à€Ÿà€Șà€żà€€ à€•à€°à„‡à€‚, à€Șà„‚à€°à„€ à€€à€°à€č à€•à€Ÿà€°à„à€Żà€Ÿà€€à„à€źà€• CRUD à€Șà„‡à€œ à€•à„ˆà€žà„‡ à€Źà€šà€Ÿà€à€‚à„€ à€Șà„à€°à€¶à€żà€•à„à€·à€Ł à€Čà€Ÿà€‡à€” à€čà„‹à€—à€Ÿ à€”à€° à€œà„‚à€ź à€à€Șà„à€Čà€żà€•à„‡à€¶à€š à€•à€Ÿ à€‰à€Șà€Żà„‹à€— à€•à€żà€Żà€Ÿ à€œà€Ÿà€à€—à€Ÿ, à€”à€° à€čà€ź à€…à€šà„à€Ż à€‘à€šà€Čà€Ÿà€‡à€š à€źà„€à€Ÿà€żà€‚à€— à€Șà„à€Čà„‡à€Ÿà€«à„‰à€°à„à€ź à€•à€Ÿ à€‰à€Șà€Żà„‹à€— à€•à€°à€šà„‡ à€•à„‡ à€Čà€żà€ à€€à„ˆà€Żà€Ÿà€° à€čà„ˆà€‚à„€ à€Șà„à€°à€¶à€żà€•à„à€·à€Ł à€•à„€ à€­à€Ÿà€·à€Ÿ à€…à€‚à€—à„à€°à„‡à€œà„€ à€čà„‹à€—à„€à„€ à€†à€Ș à€žà€€à„à€°à„‹à€‚ à€•à„‡ à€Šà„Œà€°à€Ÿà€š ABP à€•à„‡ à€Źà€Ÿà€°à„‡ à€źà„‡à€‚ à€…à€Șà€šà„‡ à€Șà„à€°à€¶à„à€š à€­à„€ à€Șà„‚à€› à€žà€•à€€à„‡ à€čà„ˆà€‚à„€ à€Šà„‹à€šà„‹à€‚ à€Șà€•à„à€·à„‹à€‚ à€•à„‡ à€Čà€żà€ à€à€• à€žà„à€”à€żà€§à€Ÿà€œà€šà€• à€žà€źà€Ż à€”à€° à€€à€Ÿà€°à„€à€– à€•à„€ à€Żà„‹à€œà€šà€Ÿ à€Źà€šà€Ÿà€ˆ à€œà€Ÿà€à€—à„€à„€ à€…à€§à€żà€• à€œà€Ÿà€šà€•à€Ÿà€°à„€ à€Șà„à€°à€Ÿà€Șà„à€€ à€•à€°à€šà„‡ à€•à„‡ à€Čà€żà€, info@abp.io à€Șà€° à€čà€źà€žà„‡ à€žà€‚à€Șà€°à„à€• à€•à€°à„‡à€‚à„€", "SupportPolicyFaqTitle": "à€†à€Șà€•à„€ à€žà€źà€°à„à€„à€š à€šà„€à€€à€ż à€•à„à€Żà€Ÿ à€čà„ˆ?", - "SupportPolicyFaqExplanation": "à€čà€ź à€•à„‡à€”à€Č à€žà€•à„à€°à€żà€Ż à€”à€° à€Șà€żà€›à€Čà„‡ à€Șà„à€°à€źà„à€– à€žà€‚à€žà„à€•à€°à€Ł à€•à€Ÿ à€žà€źà€°à„à€„à€š à€•à€°à€€à„‡ à€čà„ˆà€‚à„€ à€čà€ź à€€à„€à€žà€°à„‡ à€”à€° à€Șà„à€°à€Ÿà€šà„‡ à€Șà„à€°à€źà„à€– à€žà€‚à€žà„à€•à€°à€Łà„‹à€‚ à€•à„‡ à€Čà€żà€ à€Șà„ˆà€š à€°à€żà€Čà„€à€œà€Œ à€•à„€ à€—à€Ÿà€°à€‚à€Ÿà„€ à€šà€čà„€à€‚ à€Šà„‡à€€à„‡ à€čà„ˆà€‚à„€ à€‰à€Šà€Ÿà€čà€°à€Ł à€•à„‡ à€Čà€żà€, à€Żà€Šà€ż à€žà€•à„à€°à€żà€Ż à€žà€‚à€žà„à€•à€°à€Ł 7.0.0 à€čà„ˆ, à€€à„‹ à€čà€ź 6.x.x à€”à€° 7.x.x à€Šà„‹à€šà„‹à€‚ à€•à„‡ à€Čà€żà€ à€Șà„ˆà€š à€°à€żà€Čà„€à€œà€Œ à€œà€Ÿà€°à„€ à€•à€°à„‡à€‚à€—à„‡à„€ à€‡à€žà€•à„‡ à€…à€Čà€Ÿà€”à€Ÿ, à€čà€ź à€•à„‡à€”à€Č ABP à€«à„à€°à„‡à€źà€”à€°à„à€• à€”à€° ABP à€•à€źà€°à„à€¶à€żà€Żà€Č à€žà€‚à€Źà€‚à€§à€żà€€ à€źà„à€Šà„à€Šà„‹à€‚ à€•à„‡ à€Čà€żà€ à€žà€źà€°à„à€„à€š à€Șà„à€°à€Šà€Ÿà€š à€•à€°à€€à„‡ à€čà„ˆà€‚à„€ à€‡à€žà€•à€Ÿ à€źà€€à€Čà€Ź à€čà„ˆ à€•à€ż à€€à„€à€žà€°à„‡ à€Șà€•à„à€· à€•à„‡ à€…à€šà„à€Șà„à€°à€Żà„‹à€—à„‹à€‚, à€•à„à€Čà€Ÿà€‰à€Ą à€žà„‡à€”à€Ÿà€“à€‚ à€”à€° à€à€Źà„€à€Șà„€ à€‰à€€à„à€Șà€Ÿà€Šà„‹à€‚ à€Šà„à€”à€Ÿà€°à€Ÿ à€‰à€Șà€Żà„‹à€— à€•à€żà€ à€œà€Ÿà€šà„‡ à€”à€Ÿà€Čà„‡ à€…à€šà„à€Ż à€Șà€°à€żà€§à„€à€Ż à€Șà„à€žà„à€€à€•à€Ÿà€Čà€Żà„‹à€‚ à€•à„‡ à€Čà€żà€ à€•à„‹à€ˆ à€žà€źà€°à„à€„à€š à€šà€čà„€à€‚ à€Šà€żà€Żà€Ÿ à€—à€Żà€Ÿ à€čà„ˆà„€ à€čà€ź à€…à€Șà€šà„‡ à€—à„à€°à€Ÿà€čà€•à„‹à€‚ à€•à„‹ \"Volosoft Bilisim A.S\" à€•à„‡ à€†à€§à€żà€•à€Ÿà€°à€żà€• à€”à„à€Żà€Ÿà€”à€žà€Ÿà€Żà€żà€• à€˜à€‚à€Ÿà„‹à€‚ à€•à„‡ à€Šà„Œà€°à€Ÿà€š à€€à€•à€šà„€à€•à„€ à€žà€čà€Ÿà€Żà€€à€Ÿ à€Șà„à€°à€Šà€Ÿà€š à€•à€°à€šà„‡ à€•à„‡ à€Čà€żà€ à€”à„à€Żà€Ÿà€”à€žà€Ÿà€Żà€żà€• à€°à„‚à€Ș à€žà„‡ à€‰à€šà€żà€€ à€Șà„à€°à€Żà€Ÿà€žà„‹à€‚ à€•à€Ÿ à€‰à€Șà€Żà„‹à€— à€•à€°à„‡à€‚à€—à„‡à„€ à€Šà„‚à€žà€°à„€ à€“à€°, à€čà€ź à€žà€°à„à€”à€żà€ž-à€Čà„‡à€”à€Č à€à€—à„à€°à„€à€źà„‡à€‚à€Ÿ (SLA) à€Șà„à€°à€€à€żà€•à„à€°à€żà€Żà€Ÿ à€žà€źà€Ż à€•à„‡ à€Čà€żà€ à€Șà„à€°à€€à€żà€Źà€Šà„à€§ à€šà€čà„€à€‚ à€čà„ˆà€‚, à€Čà„‡à€•à€żà€š à€čà€ź à€…à€Șà€šà„‡ à€†à€§à€żà€•à€Ÿà€°à€żà€• à€•à€Ÿà€źà€•à€Ÿà€œà„€ à€˜à€‚à€Ÿà„‹à€‚ à€•à„‡ à€­à„€à€€à€° à€œà€żà€€à€šà„€ à€œà€Čà„à€Šà„€ à€čà„‹ à€žà€•à„‡ à€€à€•à€šà„€à€•à„€ à€źà„à€Šà„à€Šà„‹à€‚ à€Șà€° à€Șà„à€°à€€à€żà€•à„à€°à€żà€Żà€Ÿ à€Šà„‡à€šà„‡ à€•à€Ÿ à€Șà„à€°à€Żà€Ÿà€ž à€•à€°à„‡à€‚à€—à„‡à„€ à€œà€Ź à€€à€• à€—à„à€°à€Ÿà€čà€• à€•à„‡ à€žà€Ÿà€„ à€•à„‹à€ˆ à€”à€żà€¶à„‡à€· à€žà€źà€à„Œà€€à€Ÿ à€šà€čà„€à€‚ à€•à€żà€Żà€Ÿ à€œà€Ÿà€€à€Ÿ à€čà„ˆ, à€čà€ź à€•à„‡à€”à€Č https://support.abp.io à€Șà€° à€žà€čà€Ÿà€Żà€€à€Ÿ à€Șà„à€°à€Šà€Ÿà€š à€•à€°à€€à„‡ à€čà„ˆà€‚à„€ à€čà€źà€Ÿà€°à„‡ à€Șà€Ÿà€ž à€šà€żà€œà„€ à€ˆà€źà„‡à€Č à€žà€źà€°à„à€„à€š à€­à„€ à€čà„ˆ, à€œà„‹ à€•à„‡à€”à€Č à€à€‚à€Ÿà€°à€Șà„à€°à€Ÿà€‡à€œà€Œ à€Čà€Ÿà€‡à€žà„‡à€‚à€ž à€§à€Ÿà€°à€•à„‹à€‚ à€•à„‡ à€Čà€żà€ à€‰à€Șà€Čà€Źà„à€§ à€čà„ˆà„€", + "SupportPolicyFaqExplanation": "à€čà€ź à€•à„‡à€”à€Č à€žà€•à„à€°à€żà€Ż à€”à€° à€Șà€żà€›à€Čà„‡ à€Șà„à€°à€źà„à€– à€žà€‚à€žà„à€•à€°à€Ł à€•à€Ÿ à€žà€źà€°à„à€„à€š à€•à€°à€€à„‡ à€čà„ˆà€‚à„€ à€čà€ź à€€à„€à€žà€°à„‡ à€”à€° à€Șà„à€°à€Ÿà€šà„‡ à€Șà„à€°à€źà„à€– à€žà€‚à€žà„à€•à€°à€Łà„‹à€‚ à€•à„‡ à€Čà€żà€ à€Șà„ˆà€š à€°à€żà€Čà„€à€œà€Œ à€•à„€ à€—à€Ÿà€°à€‚à€Ÿà„€ à€šà€čà„€à€‚ à€Šà„‡à€€à„‡ à€čà„ˆà€‚à„€ à€‰à€Šà€Ÿà€čà€°à€Ł à€•à„‡ à€Čà€żà€, à€Żà€Šà€ż à€žà€•à„à€°à€żà€Ż à€žà€‚à€žà„à€•à€°à€Ł 7.0.0 à€čà„ˆ, à€€à„‹ à€čà€ź 6.x.x à€”à€° 7.x.x à€Šà„‹à€šà„‹à€‚ à€•à„‡ à€Čà€żà€ à€Șà„ˆà€š à€°à€żà€Čà„€à€œà€Œ à€œà€Ÿà€°à„€ à€•à€°à„‡à€‚à€—à„‡à„€ à€‡à€žà€•à„‡ à€…à€Čà€Ÿà€”à€Ÿ, à€čà€ź à€•à„‡à€”à€Č ABP à€«à„à€°à„‡à€źà€”à€°à„à€• à€”à€° ABP à€•à€źà€°à„à€¶à€żà€Żà€Č à€žà€‚à€Źà€‚à€§à€żà€€ à€źà„à€Šà„à€Šà„‹à€‚ à€•à„‡ à€Čà€żà€ à€žà€źà€°à„à€„à€š à€Șà„à€°à€Šà€Ÿà€š à€•à€°à€€à„‡ à€čà„ˆà€‚à„€ à€‡à€žà€•à€Ÿ à€źà€€à€Čà€Ź à€čà„ˆ à€•à€ż à€€à„€à€žà€°à„‡ à€Șà€•à„à€· à€•à„‡ à€…à€šà„à€Șà„à€°à€Żà„‹à€—à„‹à€‚, à€•à„à€Čà€Ÿà€‰à€Ą à€žà„‡à€”à€Ÿà€“à€‚ à€”à€° à€à€Źà„€à€Șà„€ à€‰à€€à„à€Șà€Ÿà€Šà„‹à€‚ à€Šà„à€”à€Ÿà€°à€Ÿ à€‰à€Șà€Żà„‹à€— à€•à€żà€ à€œà€Ÿà€šà„‡ à€”à€Ÿà€Čà„‡ à€…à€šà„à€Ż à€Șà€°à€żà€§à„€à€Ż à€Șà„à€žà„à€€à€•à€Ÿà€Čà€Żà„‹à€‚ à€•à„‡ à€Čà€żà€ à€•à„‹à€ˆ à€žà€źà€°à„à€„à€š à€šà€čà„€à€‚ à€Šà€żà€Żà€Ÿ à€—à€Żà€Ÿ à€čà„ˆà„€ à€čà€ź à€…à€Șà€šà„‡ à€—à„à€°à€Ÿà€čà€•à„‹à€‚ à€•à„‹ \"Volosoft Bilisim A.S\" à€•à„‡ à€†à€§à€żà€•à€Ÿà€°à€żà€• à€”à„à€Żà€Ÿà€”à€žà€Ÿà€Żà€żà€• à€˜à€‚à€Ÿà„‹à€‚ à€•à„‡ à€Šà„Œà€°à€Ÿà€š à€€à€•à€šà„€à€•à„€ à€žà€čà€Ÿà€Żà€€à€Ÿ à€Șà„à€°à€Šà€Ÿà€š à€•à€°à€šà„‡ à€•à„‡ à€Čà€żà€ à€”à„à€Żà€Ÿà€”à€žà€Ÿà€Żà€żà€• à€°à„‚à€Ș à€žà„‡ à€‰à€šà€żà€€ à€Șà„à€°à€Żà€Ÿà€žà„‹à€‚ à€•à€Ÿ à€‰à€Șà€Żà„‹à€— à€•à€°à„‡à€‚à€—à„‡à„€ à€Šà„‚à€žà€°à„€ à€“à€°, à€čà€ź à€žà€°à„à€”à€żà€ž-à€Čà„‡à€”à€Č à€à€—à„à€°à„€à€źà„‡à€‚à€Ÿ (SLA) à€Șà„à€°à€€à€żà€•à„à€°à€żà€Żà€Ÿ à€žà€źà€Ż à€•à„‡ à€Čà€żà€ à€Șà„à€°à€€à€żà€Źà€Šà„à€§ à€šà€čà„€à€‚ à€čà„ˆà€‚, à€Čà„‡à€•à€żà€š à€čà€ź à€…à€Șà€šà„‡ à€†à€§à€żà€•à€Ÿà€°à€żà€• à€•à€Ÿà€źà€•à€Ÿà€œà„€ à€˜à€‚à€Ÿà„‹à€‚ à€•à„‡ à€­à„€à€€à€° à€œà€żà€€à€šà„€ à€œà€Čà„à€Šà„€ à€čà„‹ à€žà€•à„‡ à€€à€•à€šà„€à€•à„€ à€źà„à€Šà„à€Šà„‹à€‚ à€Șà€° à€Șà„à€°à€€à€żà€•à„à€°à€żà€Żà€Ÿ à€Šà„‡à€šà„‡ à€•à€Ÿ à€Șà„à€°à€Żà€Ÿà€ž à€•à€°à„‡à€‚à€—à„‡à„€ à€œà€Ź à€€à€• à€—à„à€°à€Ÿà€čà€• à€•à„‡ à€žà€Ÿà€„ à€•à„‹à€ˆ à€”à€żà€¶à„‡à€· à€žà€źà€à„Œà€€à€Ÿ à€šà€čà„€à€‚ à€•à€żà€Żà€Ÿ à€œà€Ÿà€€à€Ÿ à€čà„ˆ, à€čà€ź à€•à„‡à€”à€Č https://abp.io/support/questions à€Șà€° à€žà€čà€Ÿà€Żà€€à€Ÿ à€Șà„à€°à€Šà€Ÿà€š à€•à€°à€€à„‡ à€čà„ˆà€‚à„€ à€čà€źà€Ÿà€°à„‡ à€Șà€Ÿà€ž à€šà€żà€œà„€ à€ˆà€źà„‡à€Č à€žà€źà€°à„à€„à€š à€­à„€ à€čà„ˆ, à€œà„‹ à€•à„‡à€”à€Č à€à€‚à€Ÿà€°à€Șà„à€°à€Ÿà€‡à€œà€Œ à€Čà€Ÿà€‡à€žà„‡à€‚à€ž à€§à€Ÿà€°à€•à„‹à€‚ à€•à„‡ à€Čà€żà€ à€‰à€Șà€Čà€Źà„à€§ à€čà„ˆà„€", "DowngradeLicensePlan": "à€•à„à€Żà€Ÿ à€źà„ˆà€‚ à€­à€”à€żà€·à„à€Ż à€źà„‡à€‚ à€•à€ź à€Čà€Ÿà€‡à€žà„‡à€‚à€ž à€Żà„‹à€œà€šà€Ÿ à€źà„‡à€‚ à€Ąà€Ÿà€‰à€šà€—à„à€°à„‡à€Ą à€•à€° à€žà€•à€€à€Ÿ à€čà„‚à€?", "DowngradeLicensePlanExplanation": "à€†à€Ș à€…à€Șà€šà„€ à€źà„Œà€œà„‚à€Šà€Ÿ à€Čà€Ÿà€‡à€žà„‡à€‚à€ž à€Żà„‹à€œà€šà€Ÿ à€•à„‹ à€Ąà€Ÿà€‰à€šà€—à„à€°à„‡à€Ą à€šà€čà„€à€‚ à€•à€° à€žà€•à€€à„‡à„€ à€Čà„‡à€•à€żà€š à€†à€Ș à€šà€Żà€Ÿ à€Čà„‹à€…à€° à€Čà€Ÿà€‡à€žà„‡à€‚à€ž à€Șà„à€Čà€Ÿà€š à€–à€°à„€à€Š à€žà€•à€€à„‡ à€čà„ˆà€‚ à€”à€° à€šà€ à€Čà€Ÿà€‡à€žà„‡à€‚à€ž à€Șà€° à€…à€Șà€šà€Ÿ à€”à€żà€•à€Ÿà€ž à€œà€Ÿà€°à„€ à€°à€– à€žà€•à€€à„‡ à€čà„ˆà€‚à„€ à€†à€Șà€•à„‡ à€Šà„à€”à€Ÿà€°à€Ÿ à€•à€ź à€Čà€Ÿà€‡à€žà„‡à€‚à€ž à€–à€°à„€à€Šà€šà„‡ à€•à„‡ à€Źà€Ÿà€Š, à€†à€Șà€•à„‹ à€à€Źà„€à€Șà„€ à€žà„€à€à€Čà€†à€ˆ à€•à€źà€Ÿà€‚à€Ą à€•à„‡ à€źà€Ÿà€§à„à€Żà€ź à€žà„‡ à€…à€Șà€šà„€ à€šà€ˆ à€Čà€Ÿà€‡à€žà„‡à€‚à€ž à€Żà„‹à€œà€šà€Ÿ à€źà„‡à€‚ à€Șà„à€°à€”à„‡à€¶ à€•à€°à€šà„‡ à€•à„€ à€†à€”à€¶à„à€Żà€•à€€à€Ÿ à€čà„ˆ: `à€à€Źà„€à€Șà„€ à€Čà„‰à€—à€żà€š <à€‰à€Șà€Żà„‹à€—à€•à€°à„à€€à€Ÿ à€šà€Ÿà€ź> -à€“ <à€žà€‚à€—à€ à€š>`à„€", "LicenseTransfer": "à€•à„à€Żà€Ÿ à€Čà€Ÿà€‡à€žà„‡à€‚à€ž à€à€• à€Ąà„‡à€”à€Čà€Șà€° à€žà„‡ à€Šà„‚à€žà€°à„‡ à€Ąà„‡à€”à€Čà€Șà€° à€•à„‹ à€Ÿà„à€°à€Ÿà€‚à€žà€«à€° à€•à€żà€Żà€Ÿ à€œà€Ÿ à€žà€•à€€à€Ÿ à€čà„ˆ?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json index b51e3b94ee..d7865bf455 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json @@ -160,7 +160,7 @@ "ABPCLIExplanation": "ABP CLI (sučelje naredbenog retka) alat je naredbenog retka za izvođenje nekih uobičajenih operacija za rjeĆĄenja temeljena na ABP-u.", "ABPSuiteEasilyCURD": "ABP Suite je alat koji vam omogućuje jednostavno stvaranje CRUD stranica", "WeAreHereToHelp": "Ovdje smo da pomognemo", - "BrowseOrAskQuestion": "MoĆŸete pregledavati naĆĄe teme pomoći ili pretraĆŸivati u često postavljanim pitanjima ili nam moĆŸete postaviti pitanje koristeći obrazac za kontakt .", + "BrowseOrAskQuestion": "MoĆŸete pregledavati naĆĄe teme pomoći ili pretraĆŸivati u često postavljanim pitanjima ili nam moĆŸete postaviti pitanje koristeći obrazac za kontakt .", "SearchQuestionPlaceholder": "PretraĆŸite u često postavljanim pitanjima", "WhatIsTheABPCommercial": "Ć to je ABP Commercial?", "WhatAreDifferencesThanAbpFramework": "Koje su razlike između open source ABP Framework i ABP Commercial?", @@ -541,7 +541,7 @@ "Pricing_Page_Testimonial_2": "Vidimo vrijednost koriĆĄtenja ABP Commerciala za smanjenje reĆŸijskih troĆĄkova prilagođenih razvojnih projekata. Tim je u mogućnosti objediniti uzorak koda u različitim tokovima projekta. Vidimo viĆĄe potencijala u okviru za izgradnju novih značajki brĆŸe nego prije. Vjerujemo da ćemo stalno uviđati vrijednost iskoriĆĄtavanja ABP Commerciala.", "Pricing_Page_Testimonial_3": "Volimo ABP. Ne moramo sve pisati ispočetka. Počinjemo od značajki izvan okvira i fokusiramo se samo na ono ĆĄto stvarno trebamo napisati. Također, ABP je dobro projektiran i kod je visoke kvalitete s manje greĆĄaka. Kad bismo morali sami napisati sve ĆĄto nam treba, moĆŸda bismo morali potroĆĄiti godine. JoĆĄ jedna stvar koja nam se sviđa je ĆĄto nova verzija, popravak problema ili poboljĆĄanje izlazi vrlo brzo svaki drugi tjedan. Ne čekamo predugo.", "Pricing_Page_Testimonial_4": "ABP Commercial je fantastičan proizvod koji bih preporučio. Komercijalni proizvodi za trĆŸiĆĄte za naĆĄe kupce na jednoj platformi koja se moĆŸe konfigurirati. Skok počinje da okvir i alati pruĆŸaju bilo koji tim vrijedan svakog centa. ABP Commercial najbolje je odgovarao naĆĄim potrebama.", - "Pricing_Page_Testimonial_5": "ABP Framework nije samo okvir, već je i vodič za razvoj/upravljanje projektom jer pruĆŸa DDD, GenericRepository, DI, Microservice i obuku o modularnosti. Čak i ako nećete koristiti sam framework, moĆŸete se razvijati s docs.abp.io koji je dobro i profesionalno pripremljen (OpenIddict, Redis, Quartz itd.). Budući da su mnoge stvari unaprijed izgrađene, značajno skraćuje vrijeme razvoja projekta (kao ĆĄto je stranica za prijavu, rukovanje iznimkama, filtriranje podataka, sijanje, revizijsko biljeĆŸenje, lokalizacija, automatski API kontroler itd.). Kao primjer iz naĆĄe aplikacije, koristio sam Local Event Bus za kontrolu zaliha. Dakle, mogu upravljati kretanjem narudĆŸbi pisanjem rukovatelja zalihama. Divno je ne gubiti vrijeme za CreationTime, CreatorId. Pune se automatski.", + "Pricing_Page_Testimonial_5": "ABP Framework nije samo okvir, već je i vodič za razvoj/upravljanje projektom jer pruĆŸa DDD, GenericRepository, DI, Microservice i obuku o modularnosti. Čak i ako nećete koristiti sam framework, moĆŸete se razvijati s abp.io koji je dobro i profesionalno pripremljen (OpenIddict, Redis, Quartz itd.). Budući da su mnoge stvari unaprijed izgrađene, značajno skraćuje vrijeme razvoja projekta (kao ĆĄto je stranica za prijavu, rukovanje iznimkama, filtriranje podataka, sijanje, revizijsko biljeĆŸenje, lokalizacija, automatski API kontroler itd.). Kao primjer iz naĆĄe aplikacije, koristio sam Local Event Bus za kontrolu zaliha. Dakle, mogu upravljati kretanjem narudĆŸbi pisanjem rukovatelja zalihama. Divno je ne gubiti vrijeme za CreationTime, CreatorId. Pune se automatski.", "Pricing_Page_Testimonial_6": "ABP Framework je dobar okvir, ali mu treba vremena da razumije različite slojeve, klase i biblioteke koje koristi (osobito ABP). Proveo sam puno vremena čitajući bazu koda, ali ABP Commercial uĆĄtedio nam je vrijeme u stvaranju posebnih entiteta projekta (AR) i repozitorija povezanog sa svakim od njih. Svidio mi se i pristup koriĆĄten u ABP-u koji je vrlo zreo; znamo da se temelji na DDD i monolitu.", "Pricing_Page_Testimonial_7": "Kao startup, moramo brzo ponavljati i potroĆĄiti minimalno vremena na standardne i sporedne značajke. \n NaĆĄi inĆŸenjeri variraju od vrlo iskusnih do mlađih inĆŸenjera, a bilo nam je potrebno zajedničko razumijevanje i način dijeljenja tehničkog i domenskog znanja, ABP nam je to omogućio zahvaljujući njihovim sjajnim vodičima i dokumentaciji. \n Postoje stvari o kojima se ne moramo brinuti budući da rade izvan kutije s ABP-om. \n ABP pomogao nam je pojednostaviti brzu izradu prototipova i razvoj, manje od 4 tjedna od početka značajke do proizvodnje. Sa svim svojim premium značajkama uključenim u licencu, ABP nam je dao "Startup in a Box" na strani softverskog inĆŸenjeringa.", "Pricing_Page_Testimonial_8": "ABP komercijalu bih preporučio svima onima koji ĆŸele proĆĄiriti ponudu proizvoda dostupnih svojim kupcima. Fantastično je kada je potrebno koristiti distribuirano poslovno okruĆŸenje (Angular, WPF, Win&Linux). Osim njihovih proizvoda, volimo i njihovu podrĆĄku, koja nam posao čini brĆŸim i lakĆĄim. Već znamo da smo pronaĆĄli odličnog partnera za budućnost koji će nas podrĆŸati u ĆĄirenju poslovanja.", @@ -720,7 +720,7 @@ "Landing_Page_DocsModuleDescription_9": "Osim izvora GitHub, omogućuje jednostavno koriĆĄtenje mape kao izvora dokumentacije.", "Landing_Page_FileManagementModuleDescription_1": "Prijenos, preuzimanje i organiziranje datoteka u hijerarhijsku strukturu mapa.", "Landing_Page_FileManagementModuleDescription_2": "Ovaj se modul koristi za učitavanje, preuzimanje i organiziranje datoteka u hijerarhijskoj strukturi mapa. Također je kompatibilan s viĆĄestrukim zakupom i moĆŸete odrediti ograničenje ukupne veličine za svoje stanare.", - "Landing_Page_FileManagementModuleDescription_3": "Ovaj se modul temelji na BLOB sustavu pohrane , tako da moĆŸe koristiti različite pruĆŸatelje pohrane za pohranjivanje sadrĆŸaja datoteke.", + "Landing_Page_FileManagementModuleDescription_3": "Ovaj se modul temelji na BLOB sustavu pohrane , tako da moĆŸe koristiti različite pruĆŸatelje pohrane za pohranjivanje sadrĆŸaja datoteke.", "Landing_Page_IdentityModuleDescription_1": "Ovaj modul implementira sustav korisnika i uloga aplikacije;", "Landing_Page_IdentityModuleDescription_2": "Izgrađen na Microsoftovoj biblioteci ASP.NET Core Identity .", "Landing_Page_IdentityModuleDescription_3": "Upravljanje ulogama i korisnicima u sustavu. Korisnik moĆŸe imati viĆĄe uloga .", @@ -736,7 +736,7 @@ "Landing_Page_PaymentModuleDescription_1": "Omogućuje integraciju za različite pristupnike plaćanja.", "Landing_Page_PaymentModuleDescription_2": "Ovaj modul pruĆŸa integraciju za pristupnike plaćanja, tako da moĆŸete jednostavno dobiti plaćanje od svojih kupaca.", "Landing_Page_PaymentModuleDescription_3": "Ovaj modul podrĆŸava sljedeće pristupnike plaćanja", - "Welcome_Page_UseSameCredentialForCommercialWebsites": "Koristite iste vjerodajnice za commercial.abp.io i support.abp.io .", + "Welcome_Page_UseSameCredentialForCommercialWebsites": "Koristite iste vjerodajnice za commercial.abp.io i support.abp.io .", "WatchCrudPagesVideo": "Pogledajte video "Izrada CRUD stranica s ABP Suiteom"!", "WatchGeneratingFromDatabaseVideo": "Pogledajte video "ABP Suite: Generiranje CRUD stranica iz postojećih tablica baze podataka"!", "WatchTakeCloserLookVideo": "Pogledajte video "PobliĆŸe pogledajte generiranje koda: ABP Suite"!", @@ -812,7 +812,7 @@ "UpgradePaymentInfoSection_LicenseRenewalPrice": "Obnova licence", "Total": "Ukupno", "SupportPolicyFaqTitle": "Kakva je vaĆĄa politika podrĆĄke?", - "SupportPolicyFaqExplanation": "PodrĆŸavamo samo aktivnu i prethodnu glavnu verziju. Ne jamčimo izdavanje zakrpe za 3. i starije glavne verzije. Na primjer, ako je aktivna verzija 7.0.0, objavit ćemo izdanja zakrpa i za 6.xx i za 7.xx. Osim toga, pruĆŸamo podrĆĄku samo za ABP Framework i ABP Commercial pitanja. To znači da se ne daje podrĆĄka za aplikacije trećih strana, usluge u oblaku i druge periferne biblioteke koje koriste ABP proizvodi. UloĆŸit ćemo komercijalno razumne napore da svojim klijentima pruĆŸimo tehničku podrĆĄku tijekom sluĆŸbenog radnog vremena "Volosoft Bilisim AS". S druge strane, ne obvezujemo se na vrijeme odgovora ugovora o razini usluge (SLA), ali ćemo pokuĆĄati odgovoriti na tehničke probleme ĆĄto je brĆŸe moguće unutar naĆĄeg sluĆŸbenog radnog vremena. Osim ako nije sklopljen poseban ugovor s korisnikom, podrĆĄku pruĆŸamo samo na https://support.abp.io. Imamo i privatnu podrĆĄku e-poĆĄtom, koja je dostupna samo nositeljima Enterprise License.", + "SupportPolicyFaqExplanation": "PodrĆŸavamo samo aktivnu i prethodnu glavnu verziju. Ne jamčimo izdavanje zakrpe za 3. i starije glavne verzije. Na primjer, ako je aktivna verzija 7.0.0, objavit ćemo izdanja zakrpa i za 6.xx i za 7.xx. Osim toga, pruĆŸamo podrĆĄku samo za ABP Framework i ABP Commercial pitanja. To znači da se ne daje podrĆĄka za aplikacije trećih strana, usluge u oblaku i druge periferne biblioteke koje koriste ABP proizvodi. UloĆŸit ćemo komercijalno razumne napore da svojim klijentima pruĆŸimo tehničku podrĆĄku tijekom sluĆŸbenog radnog vremena "Volosoft Bilisim AS". S druge strane, ne obvezujemo se na vrijeme odgovora ugovora o razini usluge (SLA), ali ćemo pokuĆĄati odgovoriti na tehničke probleme ĆĄto je brĆŸe moguće unutar naĆĄeg sluĆŸbenog radnog vremena. Osim ako nije sklopljen poseban ugovor s korisnikom, podrĆĄku pruĆŸamo samo na https://abp.io/support/questions. Imamo i privatnu podrĆĄku e-poĆĄtom, koja je dostupna samo nositeljima Enterprise License.", "TotalDevelopers": "Ukupno {0} programera(a)", "CustomPurchaseExplanation": "Prilagođeno vaĆĄim specifičnim potrebama", "WhereDidYouHearAboutUs": "Gdje ste čuli za nas?", @@ -886,8 +886,8 @@ "DevelopYourSolution_Description1": "ABP-ova infrastruktura tjera vas da se usredotočite na vlastiti poslovni kod automatizirajući rad koji se ponavlja i pruĆŸa unaprijed izgrađenu infrastrukturu i značajke aplikacije.", "DevelopYourSolution_Description2": "U sljedećem bloku koda moĆŸete vidjeti kako se ABP Framework neprimjetno integrira u vaĆĄ kod i automatizira zadatke koji se ponavljaju umjesto vas.", "DevelopYourSolution_Description3": "Čak iu ovom bloku kratkog koda, ABP radi puno stvari za vas.", - "DevelopYourSolution_Description4": "Omogućuje osnovne klase za primjenu konvencija, poput \n ubrizgavanja ovisnosti . Generičke usluge repozitorija \n pruĆŸaju prikladan \n način interakcije s bazom podataka. Deklarativna autorizacija \n radi s fino podeĆĄenim sustavom dozvola.", - "DevelopYourSolution_Description5": "ABP potpuno automatizira radnu jedinicu \n (za povezivanje s bazom podataka i upravljanje transakcijama), rukovanje iznimkama \n , provjeru valjanosti \n \n i revizijsko biljeĆŸenje . Omogućuje mnogo viĆĄe sastavnih dijelova za pojednostavljenje vaĆĄih svakodnevnih razvojnih zadataka i fokusiranje na vlastiti kod dok stvarate \n aplikacije spremne za proizvodnju.", + "DevelopYourSolution_Description4": "Omogućuje osnovne klase za primjenu konvencija, poput \n ubrizgavanja ovisnosti . Generičke usluge repozitorija \n pruĆŸaju prikladan \n način interakcije s bazom podataka. Deklarativna autorizacija \n radi s fino podeĆĄenim sustavom dozvola.", + "DevelopYourSolution_Description5": "ABP potpuno automatizira radnu jedinicu \n (za povezivanje s bazom podataka i upravljanje transakcijama), rukovanje iznimkama \n , provjeru valjanosti \n \n i revizijsko biljeĆŸenje . Omogućuje mnogo viĆĄe sastavnih dijelova za pojednostavljenje vaĆĄih svakodnevnih razvojnih zadataka i fokusiranje na vlastiti kod dok stvarate \n aplikacije spremne za proizvodnju.", "DevelopYourSolution_Description6": "MoĆŸete zamisliti koliko taj blok koda moĆŸe biti dug i kompliciran kada biste sve to radili ručno.", "SuiteCrudGenerationInFewSeconds": "Osim ručnog kodiranja vaĆĄeg rjeĆĄenja, moĆŸete izraditi potpuno radne napredne CRUD stranice u nekoliko minuta pomoću alata ABP Suite. Generira kod u vaĆĄem rjeĆĄenju, tako da ga moĆŸete fino prilagoditi na temelju svojih prilagođenih zahtjeva.", "DeployAnywhere_Description1": "Na kraju dana, imate čisto .NET rjeĆĄenje. Svoje rjeĆĄenje moĆŸete implementirati na vlastiti posluĆŸitelj, na platformu u oblaku, na Kubernetes ili gdje god ĆŸelite. MoĆŸete implementirati na onoliko posluĆŸitelja koliko ĆŸelite. ABP je agnostički alat za razvojnu okolinu.", @@ -1002,7 +1002,7 @@ "CreatingAnEmptySolution_THEPROBLEM_Description4": "Kako se integrirate u biblioteku i sustave trećih strana?", "CreatingAnEmptySolution_THEPROBLEM_Description5": "Kako postaviti automatizirane testove?", "ABPSOLUTION": "ABP RJEĆ ENJE", - "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP pruĆŸa dobro projektirano, slojevito i za proizvodnju spremno startup rjeĆĄenje temeljeno na načelima Domain Driven Design . RjeĆĄenje također uključuje unaprijed konfiguriranu jedinicu i testne projekte integracije za svaki sloj.", + "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP pruĆŸa dobro projektirano, slojevito i za proizvodnju spremno startup rjeĆĄenje temeljeno na načelima Domain Driven Design . RjeĆĄenje također uključuje unaprijed konfiguriranu jedinicu i testne projekte integracije za svaki sloj.", "CommonLibraries": "Zajedničke knjiĆŸnice", "CommonLibraries_THEPROBLEM_Description": "Koje bi knjiĆŸnice trebali koristiti za implementaciju uobičajenih zahtjeva? Ekosustav razvoja softvera vrlo je dinamičan, ĆĄto ga čini izazovnim drĆŸati korak s najnovijim alatima, bibliotekama, trendovima i pristupima.", "CommonLibraries_ABPSOLUTION_Description": "ABP unaprijed integrira popularne, zrele i aĆŸurirane biblioteke u rjeĆĄenje. Ne morate troĆĄiti vrijeme na njihovu integraciju ili natjeravanje da međusobno komuniciraju. Rade ispravno iz kutije.", @@ -1060,12 +1060,12 @@ "Modularity_THEPROBLEM_Description": "Izgradnja istinski modularnog sustava nije laka! Svi aspekti sustava (baza podataka, entiteti, API-ji, UI stranice/komponente) mogu se podijeliti u module, a svaki se modul moĆŸe ponovno koristiti bez drugih. Obični ASP.NET Core ne pruĆŸa takvu modularnu arhitekturu. Ako vam treba, razmislite o tome od nule.", "Modularity_ABPSOLUTION_Description": "ABP Framework je rođen da bude modularna struktura za razvoj aplikacija. Svaka značajka u okviru razvijena je da bude kompatibilna s modularnoơću. Dokumentacija i vodiči objaĆĄnjavaju kako razviti module koji se mogu ponovno koristiti na standardni način.", "SaaSMultiTenancy": "SaaS / Multi-Tenancy", - "SaaSMultiTenancy_THEPROBLEM_Description": "Multi-Tenancy je uobičajeni način implementacije SaaS sustava. Međutim, implementacija dosljedne infrastrukture s viĆĄe stanara moĆŸe postati komplicirana.", + "SaaSMultiTenancy_THEPROBLEM_Description": "Multi-Tenancy je uobičajeni način implementacije SaaS sustava. Međutim, implementacija dosljedne infrastrukture s viĆĄe stanara moĆŸe postati komplicirana.", "SaaSMultiTenancy_ABPSOLUTION_Description": "ABP Framework pruĆŸa kompletnu infrastrukturu s viĆĄe korisnika i apstraktnu sloĆŸenost iz vaĆĄeg poslovnog koda. VaĆĄ aplikacijski kod će uglavnom biti svjestan viĆĄe zakupaca, dok ABP Framework automatski izolira bazu podataka, predmemoriju i druge detalje zakupaca jedne od drugih. PodrĆŸava jedinstvenu bazu podataka, bazu podataka po stanarima i hibridne pristupe. Ispravno konfigurira biblioteke kao ĆĄto su Microsoft Identity i OpenIddict, koje obično nisu kompatibilne s viĆĄe korisnika.", "Microservices": "Mikroservisi", "Microservices_THEPROBLEM_Description": "Izgradnja sustava mikroservisa zahtijeva mnoge infrastrukturne detalje: autentifikacija i autorizacija aplikacija i mikroservisa te implementacija asinkronog slanja poruka i sinkronih (Rest/GRPC) komunikacijskih obrazaca između mikroservisa najosnovnija su pitanja.", - "Microservices_ABPSOLUTION_Description": "ABP Framework pruĆŸa usluge, vodiče i uzorke koji će vam pomoći implementirati vaĆĄe mikrousluĆŸno rjeĆĄenje pomoću standardnih alata za industriju.", - "Microservices_ABPSOLUTION_Description2": "ABP Commercial čak ide korak dalje i pruĆŸa potpuni predloĆŸak za pokretanje za pokretanje vaĆĄeg mikroservisnog rjeĆĄenja.", + "Microservices_ABPSOLUTION_Description": "ABP Framework pruĆŸa usluge, vodiče i uzorke koji će vam pomoći implementirati vaĆĄe mikrousluĆŸno rjeĆĄenje pomoću standardnih alata za industriju.", + "Microservices_ABPSOLUTION_Description2": "ABP Commercial čak ide korak dalje i pruĆŸa potpuni predloĆŸak za pokretanje za pokretanje vaĆĄeg mikroservisnog rjeĆĄenja.", "PreBuiltModules": "Unaprijed izgrađeni moduli", "PreBuiltModules_THEPROBLEM_Description": "Svi mi imamo slične ali pomalo različite poslovne zahtjeve. Međutim, svi bismo trebali ponovno izmisliti kotač jer ničiji kod ne moĆŸe izravno funkcionirati u naĆĄem rjeĆĄenju. Svi su oni ugrađeni dijelovi većeg rjeĆĄenja.", "PreBuiltModules_ABPSOLUTION_Description": "ABP Commercial modules pruĆŸa mnoĆĄtvo viĆĄekratno upotrebljivih aplikacijskih modula kao ĆĄto su plaćanje, chat, upravljanje datotekama, izvjeơćivanje dnevnika revizije... itd. Svi ovi moduli lako se instaliraju u vaĆĄe rjeĆĄenje i izravno rade. Stalno dodajemo nove module.", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json index ac1f74eafc..5cbe578021 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json @@ -160,7 +160,7 @@ "ABPCLIExplanation": "Az ABP CLI (Command Line Interface) egy parancssori eszköz az ABP alapĂș megoldĂĄsok ĂĄltalĂĄnos mƱveleteinek vĂ©grehajtĂĄsĂĄra.", "ABPSuiteEasilyCURD": "Az ABP Suite egy olyan eszköz, amellyel könnyedĂ©n hozhat lĂ©tre CRUD oldalakat", "WeAreHereToHelp": "AzĂ©rt vagyunk itt, hogy segĂ­tsĂŒnk", - "BrowseOrAskQuestion": "BöngĂ©sszen a sĂșgĂłtĂ©mĂĄink között, kereshet a gyakran ismĂ©telt kĂ©rdĂ©sek között, vagy feltehet nekĂŒnk kĂ©rdĂ©st a kapcsolatfelvĂ©teli Ʊrlap hasznĂĄlatĂĄval.", + "BrowseOrAskQuestion": "BöngĂ©sszen a sĂșgĂłtĂ©mĂĄink között, kereshet a gyakran ismĂ©telt kĂ©rdĂ©sek között, vagy feltehet nekĂŒnk kĂ©rdĂ©st a kapcsolatfelvĂ©teli Ʊrlap hasznĂĄlatĂĄval.", "SearchQuestionPlaceholder": "Keressen a gyakran ismĂ©telt kĂ©rdĂ©sek között", "WhatIsTheABPCommercial": "Mi az az ABP Commercial?", "WhatAreDifferencesThanAbpFramework": "Mi a kĂŒlönbsĂ©g a nyĂ­lt forrĂĄskĂłdĂș ABP Framework Ă©s az ABP Commercial között?", @@ -718,7 +718,7 @@ "Landing_Page_DocsModuleDescription_9": "A GitHub-forrĂĄs mellett lehetƑvĂ© teszi egy mappa egyszerƱ hasznĂĄlatĂĄt dokumentĂĄciĂłs forrĂĄskĂ©nt.", "Landing_Page_FileManagementModuleDescription_1": "FĂĄjlok feltöltĂ©se, letöltĂ©se Ă©s rendezĂ©se hierarchikus mappastruktĂșrĂĄban.", "Landing_Page_FileManagementModuleDescription_2": "Ez a modul fĂĄjlok feltöltĂ©sĂ©re, letöltĂ©sĂ©re Ă©s hierarchikus mappastruktĂșrĂĄba rendezĂ©sĂ©re szolgĂĄl. Több bĂ©rlĂ©ssel is kompatibilis, Ă©s meghatĂĄrozhatja bĂ©rlƑi teljes mĂ©retkorlĂĄtjĂĄt.", - "Landing_Page_FileManagementModuleDescription_3": "Ez a modul a BLOB Storing rendszeren alapul, Ă­gy kĂŒlönbözƑ tĂĄrolĂłszolgĂĄltatĂłkat hasznĂĄlhat a fĂĄjltartalom tĂĄrolĂĄsĂĄra.", + "Landing_Page_FileManagementModuleDescription_3": "Ez a modul a BLOB Storing rendszeren alapul, Ă­gy kĂŒlönbözƑ tĂĄrolĂłszolgĂĄltatĂłkat hasznĂĄlhat a fĂĄjltartalom tĂĄrolĂĄsĂĄra.", "Landing_Page_IdentityModuleDescription_1": "Ez a modul egy alkalmazĂĄs FelhasznĂĄlĂł Ă©s szerepkör rendszerĂ©t valĂłsĂ­tja meg;", "Landing_Page_IdentityModuleDescription_2": "A Microsoft ASP.NET Core Identity könyvtĂĄrĂĄra Ă©pĂŒl.", "Landing_Page_IdentityModuleDescription_3": "Szerepkörök Ă©s felhasznĂĄlĂłk kezelĂ©se a rendszerben. Egy felhasznĂĄlĂłnak több szerepe is lehet.", @@ -734,7 +734,7 @@ "Landing_Page_PaymentModuleDescription_1": "IntegrĂĄciĂłt biztosĂ­t a kĂŒlönbözƑ fizetĂ©si ĂĄtjĂĄrĂłkhoz.", "Landing_Page_PaymentModuleDescription_2": "Ez a modul integrĂĄciĂłt biztosĂ­t a fizetĂ©si ĂĄtjĂĄrĂłkhoz, Ă­gy könnyen kaphat fizetĂ©st ĂŒgyfeleitƑl.", "Landing_Page_PaymentModuleDescription_3": "Ez a modul a következƑ fizetĂ©si ĂĄtjĂĄrĂłkat tĂĄmogatja", - "Welcome_Page_UseSameCredentialForCommercialWebsites": "Ugyanazokat a hitelesĂ­tĂ©si adatokat hasznĂĄlja a commercial.abp.io Ă©s a support.abp.io fĂĄjlokhoz .", + "Welcome_Page_UseSameCredentialForCommercialWebsites": "Ugyanazokat a hitelesĂ­tĂ©si adatokat hasznĂĄlja a commercial.abp.io Ă©s a support.abp.io fĂĄjlokhoz .", "WatchCrudPagesVideo": "NĂ©zze meg a \"CRUD oldalak lĂ©trehozĂĄsa az ABP Suite segĂ­tsĂ©gĂ©vel\" videĂłt!", "WatchGeneratingFromDatabaseVideo": "NĂ©zze meg az \"ABP Suite: CRUD-oldalak generĂĄlĂĄsa meglĂ©vƑ adatbĂĄzistĂĄblĂĄkbĂłl\" videĂłt!", "WatchTakeCloserLookVideo": "Tekintse meg a „NĂ©zze meg közelebbrƑl a kĂłdgenerĂĄlĂĄst: ABP Suite” videĂłt!", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json index 475ef5f98f..6e0572a790 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json @@ -157,7 +157,7 @@ "ABPCLIExplanation": "ABP CLI (Command Line Interface) er skipanalĂ­nutĂŠki til að framkvĂŠma nokkrar algengar aðgerðir fyrir ABP byggðar lausnir.", "ABPSuiteEasilyCURD": "ABP Suite er tĂŠki sem gerir ĂŸĂ©r kleift að bĂșa til CRUD síður auðveldlega", "WeAreHereToHelp": "Við erum hĂ©rna til að HjĂĄlpa", - "BrowseOrAskQuestion": "ÞĂș getur skoðað hjĂĄlparefni okkar eða leitað Ă­ algengum spurningum, eða ĂŸĂș getur spurt okkur spurningar með ĂŸvĂ­ að nota samskiptaform .", + "BrowseOrAskQuestion": "ÞĂș getur skoðað hjĂĄlparefni okkar eða leitað Ă­ algengum spurningum, eða ĂŸĂș getur spurt okkur spurningar með ĂŸvĂ­ að nota samskiptaform .", "SearchQuestionPlaceholder": "Leitaðu Ă­ algengum spurningum", "WhatIsTheABPCommercial": "Hvað er ABP Commercial?", "WhatAreDifferencesThanAbpFramework": "Hver er munurinn ĂĄ milli open source ABP Framework og ABP Commercial?", @@ -382,7 +382,7 @@ "TrialLicenseExpireMessage": "ÞĂș ert að nota prufuleyfið og prufuleyfið rennur Ășt {0}.", "TryForFree": "PrĂłfaðu Ăłkeypis", "TrialLicenseExpiredInfo": "PrĂłfunartĂ­mabil ĂŸitt er Ăștrunnið!", - "CommercialNewsletterConfirmationMessage": "Ég samĂŸykki skilmĂĄlana og persĂłnuverndarstefnuna .", + "CommercialNewsletterConfirmationMessage": "Ég samĂŸykki skilmĂĄlana og persĂłnuverndarstefnuna .", "BlackFridayDiscount": "Black Friday afslĂĄttur", "MultipleOrganizationInfo": "SjĂĄ öll samtök ĂŸĂ­n", "PaymentFailedInfo": "ÞvĂ­ miður, greiðsla mistĂłkst! ", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json index c668db7414..481a1a416a 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json @@ -157,7 +157,7 @@ "ABPCLIExplanation": "ABP CLI (Command Line Interface) Ăš uno strumento a riga di comando per eseguire alcune operazioni comuni per soluzioni basate su ABP.", "ABPSuiteEasilyCURD": "ABP Suite Ăš uno strumento che ti permette di creare facilmente pagine CRUD", "WeAreHereToHelp": "Siamo qui per Aiutarti", - "BrowseOrAskQuestion": "Puoi sfogliare i nostri argomenti della guida o cercare nelle domande frequenti oppure puoi farci una domanda utilizzando il modulo di contatto .", + "BrowseOrAskQuestion": "Puoi sfogliare i nostri argomenti della guida o cercare nelle domande frequenti oppure puoi farci una domanda utilizzando il modulo di contatto .", "SearchQuestionPlaceholder": "Cerca nelle domande frequenti", "WhatIsTheABPCommercial": "Cos'Ăš ABP Commercial?", "WhatAreDifferencesThanAbpFramework": "Quali sono le differenze tra ABP Framework open source e ABP Commercial?", @@ -382,13 +382,13 @@ "TrialLicenseExpireMessage": "Stai utilizzando la licenza di prova e la tua licenza di prova scadrĂ  il {0}.", "TryForFree": "Prova gratis", "TrialLicenseExpiredInfo": "Il periodo della tua licenza di prova Ăš scaduto!", - "CommercialNewsletterConfirmationMessage": "Accetto i Termini e condizioni e la Informativa sulla privacy .", + "CommercialNewsletterConfirmationMessage": "Accetto i Termini e condizioni e la Informativa sulla privacy .", "discountForYears": "{0}% di sconto per {1} anno/i", "BlackFridayDiscount": "Sconto Black Friday", "OnboardingTrainingFaqTitle": "Avete un corso di formazione ABP per l'onboarding?", "OnboardingTrainingFaqExplanation": "SĂŹ, abbiamo i servizi di formazione ABP per aiutarti a far partire rapidamente il tuo progetto ABP. Imparerai a conoscere ABP da un membro del core team ABP e otterrai le competenze per iniziare il tuo progetto ABP. Nella formazione onboarding, spiegheremo come configurare il tuo ambiente di sviluppo, installare gli strumenti richiesti, creare una pagina CRUD completamente funzionante. La formazione sarĂ  in diretta e verrĂ  utilizzata l'applicazione Zoom e siamo aperti all'utilizzo di altre piattaforme di riunioni online. La lingua della formazione sarĂ  l'inglese. Puoi anche porre le tue domande sull'ABP durante le sessioni. VerrĂ  pianificata una data e un orario convenienti per entrambe le parti. Per ulteriori informazioni, contattaci all'indirizzo info@abp.io.", "SupportPolicyFaqTitle": "Qual Ăš la vostra politica di assistenza?", - "SupportPolicyFaqExplanation": "Supportiamo solo la versione principale attiva e quella precedente. Non garantiamo il rilascio di patch per la terza e la precedente versione principale. Ad esempio, se la versione attiva Ăš la 7.0.0, rilasceremo patch sia per la 6.x.x che per la 7.x.x. Inoltre, forniamo supporto solo per i problemi relativi ad ABP Framework e ABP Commercial. CiĂČ significa che non viene fornito alcun supporto per le applicazioni di terze parti, i servizi cloud e altre librerie periferiche utilizzate dai prodotti ABP. Faremo tutto il possibile per fornire ai nostri clienti assistenza tecnica durante gli orari di lavoro ufficiali di Volosoft Bilisim A.S.. D'altra parte, non ci impegniamo a rispettare i tempi di risposta di un accordo sul livello di servizio (SLA), ma cercheremo di rispondere ai problemi tecnici il piĂč rapidamente possibile entro i nostri orari di lavoro ufficiali. A meno che non venga stipulato un accordo speciale con il cliente, forniamo assistenza solo all'indirizzo https://support.abp.io. Disponiamo anche di un supporto privato via e-mail, disponibile solo per i titolari di licenza Enterprise.", + "SupportPolicyFaqExplanation": "Supportiamo solo la versione principale attiva e quella precedente. Non garantiamo il rilascio di patch per la terza e la precedente versione principale. Ad esempio, se la versione attiva Ăš la 7.0.0, rilasceremo patch sia per la 6.x.x che per la 7.x.x. Inoltre, forniamo supporto solo per i problemi relativi ad ABP Framework e ABP Commercial. CiĂČ significa che non viene fornito alcun supporto per le applicazioni di terze parti, i servizi cloud e altre librerie periferiche utilizzate dai prodotti ABP. Faremo tutto il possibile per fornire ai nostri clienti assistenza tecnica durante gli orari di lavoro ufficiali di Volosoft Bilisim A.S.. D'altra parte, non ci impegniamo a rispettare i tempi di risposta di un accordo sul livello di servizio (SLA), ma cercheremo di rispondere ai problemi tecnici il piĂč rapidamente possibile entro i nostri orari di lavoro ufficiali. A meno che non venga stipulato un accordo speciale con il cliente, forniamo assistenza solo all'indirizzo https://abp.io/support/questions. Disponiamo anche di un supporto privato via e-mail, disponibile solo per i titolari di licenza Enterprise.", "DowngradeLicensePlan": "Posso passare a un piano di licenza inferiore in futuro?", "DowngradeLicensePlanExplanation": "Non Ăš possibile effettuare il downgrade del piano di licenza esistente. È perĂČ possibile acquistare un nuovo piano di licenza inferiore e continuare lo sviluppo con la nuova licenza. Dopo aver acquistato una licenza inferiore, Ăš sufficiente effettuare il login al nuovo piano di licenza tramite il comando ABP CLI: abp login -o `.", "LicenseTransfer": "È possibile trasferire una licenza da uno sviluppatore a un altro?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json index d99901743e..197c23d17b 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json @@ -157,7 +157,7 @@ "ABPCLIExplanation": "ABP CLI (Command Line Interface) is een opdrachtregelprogramma om een aantal veelvoorkomende bewerkingen uit te voeren voor op ABP gebaseerde oplossingen.", "ABPSuiteEasilyCURD": "ABP Suite is een tool waarmee u eenvoudig CRUD-pagina's kunt maken", "WeAreHereToHelp": "We zijn hier om Help", - "BrowseOrAskQuestion": "U kunt door onze Help-onderwerpen bladeren of zoeken in veelgestelde vragen, of u kunt ons een vraag stellen via het contactformulier.", + "BrowseOrAskQuestion": "U kunt door onze Help-onderwerpen bladeren of zoeken in veelgestelde vragen, of u kunt ons een vraag stellen via het contactformulier.", "SearchQuestionPlaceholder": "Zoeken in veelgestelde vragen", "WhatIsTheABPCommercial": "Wat is de ABP Commercial?", "WhatAreDifferencesThanAbpFramework": "Wat zijn de verschillen tussen het open source ABP Framework en de ABP Commercial?", @@ -382,7 +382,7 @@ "TrialLicenseExpireMessage": "U gebruikt de proeflicentie en uw proeflicentie verloopt op {0}.", "TryForFree": "Probeer gratis", "TrialLicenseExpiredInfo": "Uw proeflicentieperiode is verlopen!", - "CommercialNewsletterConfirmationMessage": "Ik ga akkoord met de Algemene voorwaarden en het Privacybeleid .", + "CommercialNewsletterConfirmationMessage": "Ik ga akkoord met de Algemene voorwaarden en het Privacybeleid .", "BlackFridayDiscount": "Black Friday korting", "MultipleOrganizationInfo": "Bekijk al uw organisaties", "PaymentFailedInfo": "Excuses, betaling mislukt! ", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json index 1b6f200b66..9bf2c05d39 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json @@ -157,7 +157,7 @@ "ABPCLIExplanation": "ABP CLI (Interfejs wiersza poleceƄ) to narzędzie wiersza poleceƄ do wykonywania niektĂłrych typowych operacji dla rozwiązaƄ opartych na ABP.", "ABPSuiteEasilyCURD": "ABP Suite to narzędzie, ktĂłre pozwala Ƃatwo tworzyć strony CRUD", "WeAreHereToHelp": "Jesteƛmy tutaj, aby pomoc", - "BrowseOrAskQuestion": "MoĆŒesz przeglądać nasze tematy pomocy lub przeszukiwać często zadawane pytania albo moĆŒesz zadać nam pytanie, korzystając z formularza kontaktowego.", + "BrowseOrAskQuestion": "MoĆŒesz przeglądać nasze tematy pomocy lub przeszukiwać często zadawane pytania albo moĆŒesz zadać nam pytanie, korzystając z formularza kontaktowego.", "SearchQuestionPlaceholder": "Szukaj w często zadawanych pytaniach", "WhatIsTheABPCommercial": "Co to jest reklama ABP?", "WhatAreDifferencesThanAbpFramework": "Jakie są rĂłĆŒnice między Open Source ABP Framework a ABP Commercial?", @@ -382,7 +382,7 @@ "TrialLicenseExpireMessage": "Korzystasz z licencji prĂłbnej, a Twoja licencja prĂłbna wygaƛnie w dniu {0}.", "TryForFree": "WyprĂłbuj za darmo", "TrialLicenseExpiredInfo": "Twoja licencja prĂłbna wygasƂa!", - "CommercialNewsletterConfirmationMessage": "WyraĆŒam zgodę na Warunki i Politykę prywatnoƛci .", + "CommercialNewsletterConfirmationMessage": "WyraĆŒam zgodę na Warunki i Politykę prywatnoƛci .", "BlackFridayDiscount": "ZniĆŒka Black Friday", "MultipleOrganizationInfo": "Zobacz wszystkie swoje organizacje", "PaymentFailedInfo": "Przepraszamy, pƂatnoƛć nie powiodƂa się! ", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json index 43d57e4184..2de960edf1 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json @@ -157,7 +157,7 @@ "ABPCLIExplanation": "ABP CLI (Command Line Interface) Ă© uma ferramenta de linha de comando para realizar algumas operaçÔes comuns para soluçÔes baseadas em ABP.", "ABPSuiteEasilyCURD": "ABP Suite Ă© uma ferramenta que permite criar facilmente pĂĄginas CRUD", "WeAreHereToHelp": "Estamos aqui para ajudar ", - "BrowseOrAskQuestion": "VocĂȘ pode navegar em nossos tĂłpicos de ajuda ou pesquisar as perguntas mais frequentes, ou pode nos fazer uma pergunta usando o formulĂĄrio de contato .", + "BrowseOrAskQuestion": "VocĂȘ pode navegar em nossos tĂłpicos de ajuda ou pesquisar as perguntas mais frequentes, ou pode nos fazer uma pergunta usando o formulĂĄrio de contato .", "SearchQuestionPlaceholder": "Pesquise nas perguntas mais frequentes", "WhatIsTheABPCommercial": "O que Ă© o comercial ABP?", "WhatAreDifferencesThanAbpFramework": "Quais sĂŁo as diferenças entre o ABP Framework de cĂłdigo aberto e o ABP Commercial?", @@ -383,14 +383,14 @@ "TrialLicenseExpireMessage": "VocĂȘ estĂĄ usando a licença de teste e sua licença de teste irĂĄ expirar em {0}.", "TryForFree": "Experimentar gratuitamente", "TrialLicenseExpiredInfo": "Seu perĂ­odo de licença de teste expirou!", - "CommercialNewsletterConfirmationMessage": "Eu concordo com os Termos e CondiçÔes e a PolĂ­tica de Privacidade ", + "CommercialNewsletterConfirmationMessage": "Eu concordo com os Termos e CondiçÔes e a PolĂ­tica de Privacidade ", "discountForYears": "{0}% de desconto por {1} ano(s)", "BlackFridayDiscount": "Desconto de Black Friday", "WhyUseAbpIoPlatform": "Por que devo usar a plataforma ABP.IO em vez de criar uma nova solução a partir do zero?", - "WhyUseAbpIoPlatformFaqExplanation": "Veja esse documento para uma explicação detalhada do porquĂȘ de usar a Plataforma ABP.IO tem uma vantagem significativa sobre fazer tudo vocĂȘ mesmo.", + "WhyUseAbpIoPlatformFaqExplanation": "Veja esse documento para uma explicação detalhada do porquĂȘ de usar a Plataforma ABP.IO tem uma vantagem significativa sobre fazer tudo vocĂȘ mesmo.", "OnboardingTrainingFaqTitle": "VocĂȘ tem treinamento de ABP a bordo?", "SupportPolicyFaqTitle": "Qual Ă© sua polĂ­tica de apoio?", - "SupportPolicyFaqExplanation": "NĂłs apoiamos apenas a versĂŁo ativa e a versĂŁo principal anterior. NĂŁo garantimos o lançamento de um patch para a 3ÂȘ e mais antigas versĂ”es principais. Por exemplo, se a versĂŁo ativa for a 7.0.0, lançaremos correçÔes tanto para a 6.x.x como para a 7.x.x.x. AlĂ©m disso, fornecemos suporte somente para questĂ”es relacionadas ao ABP Framework e ABP Commercial. Isso significa que nenhum suporte Ă© dado para as aplicaçÔes de terceiros, serviços de nuvem e outras bibliotecas perifĂ©ricas usadas pelos produtos ABP. Usaremos esforços comercialmente razoĂĄveis para fornecer suporte tĂ©cnico a nossos clientes durante o horĂĄrio comercial oficial da \"Volosoft Bilisim A.S\". Por outro lado, nĂŁo nos comprometemos com um acordo de nĂ­vel de serviço (SLA) de tempo de resposta, mas tentaremos responder Ă s questĂ”es tĂ©cnicas o mais rĂĄpido possĂ­vel dentro de nosso horĂĄrio oficial de trabalho. A menos que um acordo especial seja feito com o cliente, fornecemos suporte somente em https://support.abp.io. TambĂ©m temos suporte privado por e-mail, que sĂł estĂĄ disponĂ­vel para os detentores de licenças empresariais.", + "SupportPolicyFaqExplanation": "NĂłs apoiamos apenas a versĂŁo ativa e a versĂŁo principal anterior. NĂŁo garantimos o lançamento de um patch para a 3ÂȘ e mais antigas versĂ”es principais. Por exemplo, se a versĂŁo ativa for a 7.0.0, lançaremos correçÔes tanto para a 6.x.x como para a 7.x.x.x. AlĂ©m disso, fornecemos suporte somente para questĂ”es relacionadas ao ABP Framework e ABP Commercial. Isso significa que nenhum suporte Ă© dado para as aplicaçÔes de terceiros, serviços de nuvem e outras bibliotecas perifĂ©ricas usadas pelos produtos ABP. Usaremos esforços comercialmente razoĂĄveis para fornecer suporte tĂ©cnico a nossos clientes durante o horĂĄrio comercial oficial da \"Volosoft Bilisim A.S\". Por outro lado, nĂŁo nos comprometemos com um acordo de nĂ­vel de serviço (SLA) de tempo de resposta, mas tentaremos responder Ă s questĂ”es tĂ©cnicas o mais rĂĄpido possĂ­vel dentro de nosso horĂĄrio oficial de trabalho. A menos que um acordo especial seja feito com o cliente, fornecemos suporte somente em https://abp.io/support/questions. TambĂ©m temos suporte privado por e-mail, que sĂł estĂĄ disponĂ­vel para os detentores de licenças empresariais.", "DowngradeLicensePlan": "Posso baixar para um plano de licença mais baixo no futuro?", "DowngradeLicensePlanExplanation": "VocĂȘ nĂŁo pode rebaixar seu plano de licença existente. Mas vocĂȘ pode adquirir um novo plano de licença inferior e continuar seu desenvolvimento com a nova licença. ApĂłs adquirir uma licença inferior, vocĂȘ sĂł precisa fazer o login em seu novo plano de licença via comando ABP CLI: abp login -o `.", "LicenseTransfer": "Uma licença pode ser transferida de um desenvolvedor para outro?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json index 3e66a513d6..d48ea54135 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json @@ -157,7 +157,7 @@ "ABPCLIExplanation": "ABP CLI (Command Line Interface) este un instrument de linii de comandă pentru executarea unor operaĆŁii comune pentru soluĆŁiile ABP.", "ABPSuiteEasilyCURD": "Suita ABP este un instrument care vă permite crearea cu ußurinƣă a paginilor CRUD", "WeAreHereToHelp": "Suntem aici să Ajutăm", - "BrowseOrAskQuestion": "PuteĆŁi răsfoi subiectele noastre de ajutor sau puteĆŁi căuta Ăźn cadrul secĆŁiunii Ăźntrebărilor frecvent adresate, sau ne puteĆŁi adresa o Ăźntrebare folosind formularul de contact.", + "BrowseOrAskQuestion": "PuteĆŁi răsfoi subiectele noastre de ajutor sau puteĆŁi căuta Ăźn cadrul secĆŁiunii Ăźntrebărilor frecvent adresate, sau ne puteĆŁi adresa o Ăźntrebare folosind formularul de contact.", "SearchQuestionPlaceholder": "Caută Ăźn Ăźntrebările frecvent adresate", "WhatIsTheABPCommercial": "Ce este ABP Commercial?", "WhatAreDifferencesThanAbpFramework": "Care sunt diferenĆŁele dintre ABP Framework ßi ABP Comercial?", @@ -382,7 +382,7 @@ "TrialLicenseExpireMessage": "Utilizați licența de probă și licența de probă va expira pe {0}.", "TryForFree": "Încearcă pe gratis", "TrialLicenseExpiredInfo": "Perioada de licență de probă a expirat!", - "CommercialNewsletterConfirmationMessage": "Sunt de acord cu Termenii și condițiile și cu Politica de confidențialitate .", + "CommercialNewsletterConfirmationMessage": "Sunt de acord cu Termenii și condițiile și cu Politica de confidențialitate .", "BlackFridayDiscount": "Black Friday Discount", "MultipleOrganizationInfo": "Vedeți toate organizațiile dvs", "PaymentFailedInfo": "Ne pare rău, plata nu a reușit! ", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json index 0842b8ee55..dce8c92888 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json @@ -160,7 +160,7 @@ "ABPCLIExplanation": "ABP CLI (ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčс ĐșĐŸĐŒĐ°ĐœĐŽĐœĐŸĐč ŃŃ‚Ń€ĐŸĐșĐž) — ŃŃ‚ĐŸ ĐžĐœŃŃ‚Ń€ŃƒĐŒĐ”ĐœŃ‚ ĐșĐŸĐŒĐ°ĐœĐŽĐœĐŸĐč ŃŃ‚Ń€ĐŸĐșĐž ĐŽĐ»Ń ĐČŃ‹ĐżĐŸĐ»ĐœĐ”ĐœĐžŃ ĐœĐ”ĐșĐŸŃ‚ĐŸŃ€Ń‹Ń… Ń€Đ°ŃĐżŃ€ĐŸŃŃ‚Ń€Đ°ĐœĐ”ĐœĐœŃ‹Ń… ĐŸĐżĐ”Ń€Đ°Ń†ĐžĐč ĐŽĐ»Ń Ń€Đ”ŃˆĐ”ĐœĐžĐč ĐœĐ° ĐŸŃĐœĐŸĐČĐ” ABP.", "ABPSuiteEasilyCURD": "ABP Suite — ŃŃ‚ĐŸ ĐžĐœŃŃ‚Ń€ŃƒĐŒĐ”ĐœŃ‚, ĐșĐŸŃ‚ĐŸŃ€Ń‹Đč ĐżĐŸĐ·ĐČĐŸĐ»ŃĐ”Ń‚ лДгĐșĐŸ ŃĐŸĐ·ĐŽĐ°ĐČать ŃŃ‚Ń€Đ°ĐœĐžŃ†Ń‹ CRUD.", "WeAreHereToHelp": "Мы Đ·ĐŽĐ”ŃŃŒ, Ń‡Ń‚ĐŸĐ±Ń‹ ĐŸĐŸĐŒĐŸŃ‰ŃŒ", - "BrowseOrAskQuestion": "Вы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐżŃ€ĐŸŃĐŒĐŸŃ‚Ń€Đ”Ń‚ŃŒ разЎДлы спраĐČĐșĐž ОлО ĐČŃ‹ĐżĐŸĐ»ĐœĐžŃ‚ŃŒ ĐżĐŸĐžŃĐș ĐżĐŸ Ń‡Đ°ŃŃ‚ĐŸ заЎаĐČĐ°Đ”ĐŒŃ‹ĐŒ ĐČĐŸĐżŃ€ĐŸŃĐ°ĐŒ, Đ»ĐžĐ±ĐŸ Đ·Đ°ĐŽĐ°Ń‚ŃŒ ĐœĐ°ĐŒ ĐČĐŸĐżŃ€ĐŸŃ, ĐžŃĐżĐŸĐ»ŃŒĐ·ŃƒŃ Đ€ĐŸŃ€ĐŒĐ° ĐŸĐ±Ń€Đ°Ń‚ĐœĐŸĐč сĐČŃĐ·Đž.", + "BrowseOrAskQuestion": "Вы ĐŒĐŸĐ¶Đ”Ń‚Đ” ĐżŃ€ĐŸŃĐŒĐŸŃ‚Ń€Đ”Ń‚ŃŒ разЎДлы спраĐČĐșĐž ОлО ĐČŃ‹ĐżĐŸĐ»ĐœĐžŃ‚ŃŒ ĐżĐŸĐžŃĐș ĐżĐŸ Ń‡Đ°ŃŃ‚ĐŸ заЎаĐČĐ°Đ”ĐŒŃ‹ĐŒ ĐČĐŸĐżŃ€ĐŸŃĐ°ĐŒ, Đ»ĐžĐ±ĐŸ Đ·Đ°ĐŽĐ°Ń‚ŃŒ ĐœĐ°ĐŒ ĐČĐŸĐżŃ€ĐŸŃ, ĐžŃĐżĐŸĐ»ŃŒĐ·ŃƒŃ Đ€ĐŸŃ€ĐŒĐ° ĐŸĐ±Ń€Đ°Ń‚ĐœĐŸĐč сĐČŃĐ·Đž.", "SearchQuestionPlaceholder": "ĐŸĐŸĐžŃĐș ĐČ Ń‡Đ°ŃŃ‚ĐŸ заЎаĐČĐ°Đ”ĐŒŃ‹Ń… ĐČĐŸĐżŃ€ĐŸŃĐ°Ń…", "WhatIsTheABPCommercial": "Đ§Ń‚ĐŸ таĐșĐŸĐ” ABP Commercial?", "WhatAreDifferencesThanAbpFramework": "КаĐșĐŸĐČы Ń€Đ°Đ·Đ»ĐžŃ‡ĐžŃ ĐŒĐ”Đ¶ĐŽŃƒ ABP Framework с ĐŸŃ‚ĐșŃ€Ń‹Ń‚Ń‹ĐŒ ĐžŃŃ…ĐŸĐŽĐœŃ‹ĐŒ ĐșĐŸĐŽĐŸĐŒ Đž ABP Commercial?", @@ -721,7 +721,7 @@ "Landing_Page_DocsModuleDescription_9": "В ĐŽĐŸĐżĐŸĐ»ĐœĐ”ĐœĐžĐ” Đș ĐžŃŃ…ĐŸĐŽĐœĐŸĐŒŃƒ ĐșĐŸĐŽŃƒ GitHub ĐżĐŸĐ·ĐČĐŸĐ»ŃĐ”Ń‚ ĐżŃ€ĐŸŃŃ‚ĐŸ ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČать папĐșу ĐČ ĐșачДстĐČĐ” ĐžŃŃ‚ĐŸŃ‡ĐœĐžĐșа ĐŽĐŸĐșŃƒĐŒĐ”ĐœŃ‚Đ°Ń†ĐžĐž.", "Landing_Page_FileManagementModuleDescription_1": "Đ—Đ°ĐłŃ€ŃƒĐ¶Đ°ĐčтД, сĐșачоĐČаĐčтД Đž ŃƒĐżĐŸŃ€ŃĐŽĐŸŃ‡ĐžĐČаĐčтД фаĐčлы ĐČ ĐžĐ”Ń€Đ°Ń€Ń…ĐžŃ‡Đ”ŃĐșĐŸĐč струĐșŃ‚ŃƒŃ€Đ” ĐżĐ°ĐżĐŸĐș.", "Landing_Page_FileManagementModuleDescription_2": "Đ­Ń‚ĐŸŃ‚ ĐŒĐŸĐŽŃƒĐ»ŃŒ ĐžŃĐżĐŸĐ»ŃŒĐ·ŃƒĐ”Ń‚ŃŃ ĐŽĐ»Ń Đ·Đ°ĐłŃ€ŃƒĐ·ĐșĐž, сĐșачоĐČĐ°ĐœĐžŃ Đž ĐŸŃ€ĐłĐ°ĐœĐžĐ·Đ°Ń†ĐžĐž фаĐčĐ»ĐŸĐČ ĐČ ĐžĐ”Ń€Đ°Ń€Ń…ĐžŃ‡Đ”ŃĐșĐŸĐč струĐșŃ‚ŃƒŃ€Đ” ĐżĐ°ĐżĐŸĐș. ", - "Landing_Page_FileManagementModuleDescription_3": "Đ­Ń‚ĐŸŃ‚ ĐŒĐŸĐŽŃƒĐ»ŃŒ ĐŸŃĐœĐŸĐČĐ°Đœ ĐœĐ° Đ„Ń€Đ°ĐœĐ”ĐœĐžĐ” BLOB-ĐŸĐ±ŃŠĐ”ĐșŃ‚ĐŸĐČ ŃĐžŃŃ‚Đ”ĐŒĐ°, ĐżĐŸŃŃ‚ĐŸĐŒŃƒ ĐŸĐœĐ° ĐŒĐŸĐ¶Đ”Ń‚ ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČать Ń€Đ°Đ·ĐœŃ‹Ń… ĐżĐŸŃŃ‚Đ°ĐČщоĐșĐŸĐČ Ń…Ń€Đ°ĐœĐžĐ»ĐžŃ‰Đ° ĐŽĐ»Ń Ń…Ń€Đ°ĐœĐ”ĐœĐžŃ ŃĐŸĐŽĐ”Ń€Đ¶ĐžĐŒĐŸĐłĐŸ фаĐčла.", + "Landing_Page_FileManagementModuleDescription_3": "Đ­Ń‚ĐŸŃ‚ ĐŒĐŸĐŽŃƒĐ»ŃŒ ĐŸŃĐœĐŸĐČĐ°Đœ ĐœĐ° Đ„Ń€Đ°ĐœĐ”ĐœĐžĐ” BLOB-ĐŸĐ±ŃŠĐ”ĐșŃ‚ĐŸĐČ ŃĐžŃŃ‚Đ”ĐŒĐ°, ĐżĐŸŃŃ‚ĐŸĐŒŃƒ ĐŸĐœĐ° ĐŒĐŸĐ¶Đ”Ń‚ ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČать Ń€Đ°Đ·ĐœŃ‹Ń… ĐżĐŸŃŃ‚Đ°ĐČщоĐșĐŸĐČ Ń…Ń€Đ°ĐœĐžĐ»ĐžŃ‰Đ° ĐŽĐ»Ń Ń…Ń€Đ°ĐœĐ”ĐœĐžŃ ŃĐŸĐŽĐ”Ń€Đ¶ĐžĐŒĐŸĐłĐŸ фаĐčла.", "Landing_Page_IdentityModuleDescription_1": "Đ­Ń‚ĐŸŃ‚ ĐŒĐŸĐŽŃƒĐ»ŃŒ Ń€Đ”Đ°Đ»ĐžĐ·ŃƒĐ”Ń‚ ŃĐžŃŃ‚Đ”ĐŒŃƒ ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлДĐč Đž Ń€ĐŸĐ»Đ”Đč ĐżŃ€ĐžĐ»ĐŸĐ¶Đ”ĐœĐžŃ;", "Landing_Page_IdentityModuleDescription_2": "ĐŸĐŸŃŃ‚Ń€ĐŸĐ”Đœ ĐœĐ° Đ‘Đ°Đ·ĐŸĐČая ĐžĐŽĐ”ĐœŃ‚ĐžŃ‡ĐœĐŸŃŃ‚ŃŒ Microsoft ASP.NET Đ±ĐžĐ±Đ»ĐžĐŸŃ‚Đ”Đșа.", "Landing_Page_IdentityModuleDescription_3": "УпраĐČĐ»ŃŃ‚ŃŒ Ń€ĐŸĐ»Đž Đž ĐżĐŸĐ»ŃŒĐ·ĐŸĐČатДлО ĐČ ŃĐžŃŃ‚Đ”ĐŒĐ”. ĐœĐ”ŃĐșĐŸĐ»ŃŒĐșĐŸ Ń€ĐŸĐ»Đ”Đč.", @@ -737,7 +737,7 @@ "Landing_Page_PaymentModuleDescription_1": "ОбДспДчОĐČаДт ĐžĐœŃ‚Đ”ĐłŃ€Đ°Ń†ĐžŃŽ с Ń€Đ°Đ·Đ»ĐžŃ‡ĐœŃ‹ĐŒĐž ĐżĐ»Đ°Ń‚Đ”Đ¶ĐœŃ‹ĐŒĐž ŃˆĐ»ŃŽĐ·Đ°ĐŒĐž.", "Landing_Page_PaymentModuleDescription_2": "Đ­Ń‚ĐŸŃ‚ ĐŒĐŸĐŽŃƒĐ»ŃŒ ĐŸĐ±Đ”ŃĐżĐ”Ń‡ĐžĐČаДт ĐžĐœŃ‚Đ”ĐłŃ€Đ°Ń†ĐžŃŽ ĐżĐ»Đ°Ń‚Đ”Đ¶ĐœŃ‹Ń… ŃˆĐ»ŃŽĐ·ĐŸĐČ, ĐżĐŸŃŃ‚ĐŸĐŒŃƒ ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” лДгĐșĐŸ ĐżĐŸĐ»ŃƒŃ‡Đ°Ń‚ŃŒ платДжО ĐŸŃ‚ сĐČĐŸĐžŃ… ĐșĐ»ĐžĐ”ĐœŃ‚ĐŸĐČ.", "Landing_Page_PaymentModuleDescription_3": "Đ­Ń‚ĐŸŃ‚ ĐŒĐŸĐŽŃƒĐ»ŃŒ ĐżĐŸĐŽĐŽĐ”Ń€Đ¶ĐžĐČаДт ŃĐ»Đ”ĐŽŃƒŃŽŃ‰ĐžĐ” ĐżĐ»Đ°Ń‚Đ”Đ¶ĐœŃ‹Đ” ŃˆĐ»ŃŽĐ·Ń‹", - "Welcome_Page_UseSameCredentialForCommercialWebsites": "Đ˜ŃĐżĐŸĐ»ŃŒĐ·ŃƒĐčтД ĐŸĐŽĐœĐž Đž тД жД ŃƒŃ‡Đ”Ń‚ĐœŃ‹Đ” ĐŽĐ°ĐœĐœŃ‹Đ” ĐŽĐ»Ń ĐŸĐ±ĐŸĐžŃ… Commercial.abp.io Đž support.abp.io.", + "Welcome_Page_UseSameCredentialForCommercialWebsites": "Đ˜ŃĐżĐŸĐ»ŃŒĐ·ŃƒĐčтД ĐŸĐŽĐœĐž Đž тД жД ŃƒŃ‡Đ”Ń‚ĐœŃ‹Đ” ĐŽĐ°ĐœĐœŃ‹Đ” ĐŽĐ»Ń ĐŸĐ±ĐŸĐžŃ… Commercial.abp.io Đž support.abp.io.", "WatchCrudPagesVideo": "ĐŸĐŸŃĐŒĐŸŃ‚Ń€ĐžŃ‚Đ” ĐČĐžĐŽĐ”ĐŸ Â«ĐĄĐŸĐ·ĐŽĐ°ĐœĐžĐ” CRUD-ŃŃ‚Ń€Đ°ĐœĐžŃ† с ĐżĐŸĐŒĐŸŃ‰ŃŒŃŽ ABP Suite»!", "WatchGeneratingFromDatabaseVideo": "ĐŸĐŸŃĐŒĐŸŃ‚Ń€ĐžŃ‚Đ” ĐČĐžĐŽĐ”ĐŸ Â«ĐŸĐ°ĐșДт ABP: ŃĐŸĐ·ĐŽĐ°ĐœĐžĐ” ŃŃ‚Ń€Đ°ĐœĐžŃ† CRUD Оз ŃŃƒŃ‰Đ”ŃŃ‚ĐČующох таблОц базы ĐŽĐ°ĐœĐœŃ‹Ń…Â»!", "WatchTakeCloserLookVideo": "ĐŸĐŸŃĐŒĐŸŃ‚Ń€ĐžŃ‚Đ” ĐČĐžĐŽĐ”ĐŸ Â«ĐŸĐŸĐŽŃ€ĐŸĐ±ĐœĐ”Đ” ĐŸ ĐłĐ”ĐœĐ”Ń€Đ°Ń†ĐžĐž ĐșĐŸĐŽĐ°: ABP Suite»!", @@ -887,8 +887,8 @@ "DevelopYourSolution_Description1": "Đ˜ĐœŃ„Ń€Đ°ŃŃ‚Ń€ŃƒĐșтура ABP ĐżĐŸĐ·ĐČĐŸĐ»ŃĐ”Ń‚ ĐČĐ°ĐŒ ŃĐŸŃŃ€Đ”ĐŽĐŸŃ‚ĐŸŃ‡ŃŒŃ‚Đ”ŃŃŒ ĐœĐ° сĐČĐŸĐ”ĐŒ ŃĐŸĐ±ŃŃ‚ĐČĐ”ĐœĐœĐŸĐŒ Đ±ĐžĐ·ĐœĐ”Ń-ĐșĐŸĐŽĐ” ĐżŃƒŃ‚Đ”ĐŒ аĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžĐ·Đ°Ń†ĐžĐž ĐżĐŸĐČŃ‚ĐŸŃ€ŃŃŽŃ‰Đ”Đčся Ń€Đ°Đ±ĐŸŃ‚Ń‹ Đž ĐżŃ€Đ”ĐŽĐŸŃŃ‚Đ°ĐČĐ»Đ”ĐœĐžŃ прДЎĐČĐ°Ń€ĐžŃ‚Đ”Đ»ŃŒĐœĐŸ ŃĐŸĐ·ĐŽĐ°ĐœĐœĐŸĐč ĐžĐœŃ„Ń€Đ°ŃŃ‚Ń€ŃƒĐșтуры Đž ĐżŃ€ĐžĐ»ĐŸĐ¶Đ”ĐœĐžĐč. Ń„ŃƒĐœĐșцоо.", "DevelopYourSolution_Description2": "В ŃĐ»Đ”ĐŽŃƒŃŽŃ‰Đ”ĐŒ Đ±Đ»ĐŸĐșĐ” ĐșĐŸĐŽĐ° ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” уĐČĐžĐŽĐ”Ń‚ŃŒ, ĐșаĐș ABP Framework лДгĐșĐŸ ĐžĐœŃ‚Đ”ĐłŃ€ĐžŃ€ŃƒĐ”Ń‚ŃŃ ĐČ ĐČаш ĐșĐŸĐŽ Đž аĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžĐ·ĐžŃ€ŃƒĐ”Ń‚ ĐżĐŸĐČŃ‚ĐŸŃ€ŃŃŽŃ‰ĐžĐ”ŃŃ заЎачО.", "DevelopYourSolution_Description3": "ДажД ĐČ ŃŃ‚ĐŸĐŒ Đ±Đ»ĐŸĐșĐ” ŃˆĐŸŃ€Ń‚ĐșĐŸĐŽĐ° ABP ĐŒĐœĐŸĐłĐŸĐ” ЎДлаДт за ĐČас.", - "DevelopYourSolution_Description4": "ĐžĐœ ĐżŃ€Đ”ĐŽĐŸŃŃ‚Đ°ĐČĐ»ŃĐ”Ń‚ Đ±Đ°Đ·ĐŸĐČыД Đșлассы ĐŽĐ»Ń ĐżŃ€ĐžĐŒĐ”ĐœĐ”ĐœĐžŃ ŃĐŸĐłĐ»Đ°ŃˆĐ”ĐœĐžĐč, ĐœĐ°ĐżŃ€ĐžĐŒĐ”Ń€ \n ĐČĐœĐ”ĐŽŃ€Đ”ĐœĐžĐ” заĐČĐžŃĐžĐŒĐŸŃŃ‚Đž. \n Ń€Đ”ĐżĐŸĐ·ĐžŃ‚ĐŸŃ€ĐžĐč услугО ĐŸĐ±Đ”ŃĐżĐ”Ń‡ĐžĐČают ŃƒĐŽĐŸĐ±ĐœŃ‹Đč\n \n аĐČŃ‚ĐŸŃ€ĐžĐ·Đ°Ń†ĐžŃ Ń€Đ°Đ±ĐŸŃ‚Đ°Đ”Ń‚ с Ń‚ĐŸĐœĐșĐŸ ĐœĐ°ŃŃ‚Ń€ĐŸĐ”ĐœĐœĐŸĐč ŃĐžŃŃ‚Đ”ĐŒĐŸĐč Ń€Đ°Đ·Ń€Đ”ŃˆĐ”ĐœĐžĐč.", - "DevelopYourSolution_Description5": "ABP ĐżĐŸĐ»ĐœĐŸŃŃ‚ŃŒŃŽ аĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžĐ·ĐžŃ€ŃƒĐ”Ń‚ \n Đ”ĐŽĐžĐœĐžŃ†Đ° Ń€Đ°Đ±ĐŸŃ‚Ń‹ (ĐŽĐ»Ń ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ Đș базД ĐŽĐ°ĐœĐœŃ‹Ń… Đž упраĐČĐ»Đ”ĐœĐžŃ Ń‚Ń€Đ°ĐœĐ·Đ°ĐșŃ†ĐžŃĐŒĐž), \n ĐžĐ±Ń€Đ°Đ±ĐŸŃ‚Đșа ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐžĐč, \n ĐŸŃ€ĐŸĐČДрĐșа\n Đž Đ¶ŃƒŃ€ĐœĐ°Đ» ауЮота. ", + "DevelopYourSolution_Description4": "ĐžĐœ ĐżŃ€Đ”ĐŽĐŸŃŃ‚Đ°ĐČĐ»ŃĐ”Ń‚ Đ±Đ°Đ·ĐŸĐČыД Đșлассы ĐŽĐ»Ń ĐżŃ€ĐžĐŒĐ”ĐœĐ”ĐœĐžŃ ŃĐŸĐłĐ»Đ°ŃˆĐ”ĐœĐžĐč, ĐœĐ°ĐżŃ€ĐžĐŒĐ”Ń€ \n ĐČĐœĐ”ĐŽŃ€Đ”ĐœĐžĐ” заĐČĐžŃĐžĐŒĐŸŃŃ‚Đž. \n Ń€Đ”ĐżĐŸĐ·ĐžŃ‚ĐŸŃ€ĐžĐč услугО ĐŸĐ±Đ”ŃĐżĐ”Ń‡ĐžĐČают ŃƒĐŽĐŸĐ±ĐœŃ‹Đč\n \n аĐČŃ‚ĐŸŃ€ĐžĐ·Đ°Ń†ĐžŃ Ń€Đ°Đ±ĐŸŃ‚Đ°Đ”Ń‚ с Ń‚ĐŸĐœĐșĐŸ ĐœĐ°ŃŃ‚Ń€ĐŸĐ”ĐœĐœĐŸĐč ŃĐžŃŃ‚Đ”ĐŒĐŸĐč Ń€Đ°Đ·Ń€Đ”ŃˆĐ”ĐœĐžĐč.", + "DevelopYourSolution_Description5": "ABP ĐżĐŸĐ»ĐœĐŸŃŃ‚ŃŒŃŽ аĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžĐ·ĐžŃ€ŃƒĐ”Ń‚ \n Đ”ĐŽĐžĐœĐžŃ†Đ° Ń€Đ°Đ±ĐŸŃ‚Ń‹ (ĐŽĐ»Ń ĐżĐŸĐŽĐșĐ»ŃŽŃ‡Đ”ĐœĐžŃ Đș базД ĐŽĐ°ĐœĐœŃ‹Ń… Đž упраĐČĐ»Đ”ĐœĐžŃ Ń‚Ń€Đ°ĐœĐ·Đ°ĐșŃ†ĐžŃĐŒĐž), \n ĐžĐ±Ń€Đ°Đ±ĐŸŃ‚Đșа ОсĐșĐ»ŃŽŃ‡Đ”ĐœĐžĐč, \n ĐŸŃ€ĐŸĐČДрĐșа\n Đž Đ¶ŃƒŃ€ĐœĐ°Đ» ауЮота. ", "DevelopYourSolution_Description6": "Вы ĐŒĐŸĐ¶Đ”Ń‚Đ” сДбД прДЎстаĐČоть, ĐœĐ°ŃĐșĐŸĐ»ŃŒĐșĐŸ ĐŽĐ»ĐžĐœĐœŃ‹ĐŒ Đž ŃĐ»ĐŸĐ¶ĐœŃ‹ĐŒ ĐŒĐŸĐ¶Đ”Ń‚ Đ±Ń‹Ń‚ŃŒ ŃŃ‚ĐŸŃ‚ Đ±Đ»ĐŸĐș ĐșĐŸĐŽĐ°, ДслО ĐČы Đ±ŃƒĐŽĐ”Ń‚Đ” ĐŽĐ”Đ»Đ°Ń‚ŃŒ ĐČсД ŃŃ‚ĐŸ ĐČŃ€ŃƒŃ‡ĐœŃƒŃŽ.", "SuiteCrudGenerationInFewSeconds": "ĐŸĐŸĐŒĐžĐŒĐŸ Ń€ŃƒŃ‡ĐœĐŸĐłĐŸ ĐœĐ°ĐżĐžŃĐ°ĐœĐžŃ ĐșĐŸĐŽĐ° ĐČĐ°ŃˆĐ”ĐłĐŸ Ń€Đ”ŃˆĐ”ĐœĐžŃ, ĐČы ĐŒĐŸĐ¶Đ”Ń‚Đ” за ĐœĐ”ŃĐșĐŸĐ»ŃŒĐșĐŸ ĐŒĐžĐœŃƒŃ‚ ŃĐŸĐ·ĐŽĐ°Ń‚ŃŒ ĐżĐŸĐ»ĐœĐŸŃŃ‚ŃŒŃŽ Ń€Đ°Đ±ĐŸŃ‚Đ°ŃŽŃ‰ĐžĐ” Ń€Đ°ŃŃˆĐžŃ€Đ”ĐœĐœŃ‹Đ” ŃŃ‚Ń€Đ°ĐœĐžŃ†Ń‹ CRUD, ĐžŃĐżĐŸĐ»ŃŒĐ·ŃƒŃ ĐžĐœŃŃ‚Ń€ŃƒĐŒĐ”ĐœŃ‚Ń‹ ABP Suite. ", "DeployAnywhere_Description1": "В ĐșĐŸĐœŃ†Đ” ĐșĐŸĐœŃ†ĐŸĐČ Ńƒ ĐČас Đ”ŃŃ‚ŃŒ Ń‡ĐžŃŃ‚ĐŸĐ” Ń€Đ”ŃˆĐ”ĐœĐžĐ” .NET. ", @@ -1002,7 +1002,7 @@ "CreatingAnEmptySolution_THEPROBLEM_Description4": "КаĐș ĐČы ĐžĐœŃ‚Đ”ĐłŃ€ĐžŃ€ŃƒĐ”Ń‚Đ”ŃŃŒ ŃĐŸ ŃŃ‚ĐŸŃ€ĐŸĐœĐœĐžĐŒĐž Đ±ĐžĐ±Đ»ĐžĐŸŃ‚Đ”ĐșĐ°ĐŒĐž Đž ŃĐžŃŃ‚Đ”ĐŒĐ°ĐŒĐž?", "CreatingAnEmptySolution_THEPROBLEM_Description5": "КаĐș ĐœĐ°ŃŃ‚Ń€ĐŸĐžŃ‚ŃŒ аĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡Đ”ŃĐșОД тДсты?", "ABPSOLUTION": "РЕйЕНИЕ ABP", - "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP ĐżŃ€Đ”ĐŽĐŸŃŃ‚Đ°ĐČĐ»ŃĐ”Ń‚ Ń…ĐŸŃ€ĐŸŃˆĐŸ ŃĐżŃ€ĐŸĐ”ĐșŃ‚ĐžŃ€ĐŸĐČĐ°ĐœĐœŃƒŃŽ, ĐŒĐœĐŸĐłĐŸŃƒŃ€ĐŸĐČĐœĐ”ĐČую Đž ĐłĐŸŃ‚ĐŸĐČую Đș ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°ĐœĐžŃŽ Ń€Đ”ŃˆĐ”ĐœĐžĐ” ĐŽĐ»Ń запусĐșа ĐœĐ° ĐŸŃĐœĐŸĐČĐ” ĐŸŃ€ĐŸĐ”ĐșŃ‚ĐžŃ€ĐŸĐČĐ°ĐœĐžĐ”, ĐŸŃ€ĐžĐ”ĐœŃ‚ĐžŃ€ĐŸĐČĐ°ĐœĐœĐŸĐ” ĐœĐ° ĐżŃ€Đ”ĐŽĐŒĐ”Ń‚ĐœŃƒŃŽ ĐŸĐ±Đ»Đ°ŃŃ‚ŃŒ ĐżŃ€ĐžĐœŃ†ĐžĐżŃ‹. тДст ĐżŃ€ĐŸĐ”Đșты ĐŽĐ»Ń ĐșĐ°Đ¶ĐŽĐŸĐłĐŸ ŃĐ»ĐŸŃ.", + "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP ĐżŃ€Đ”ĐŽĐŸŃŃ‚Đ°ĐČĐ»ŃĐ”Ń‚ Ń…ĐŸŃ€ĐŸŃˆĐŸ ŃĐżŃ€ĐŸĐ”ĐșŃ‚ĐžŃ€ĐŸĐČĐ°ĐœĐœŃƒŃŽ, ĐŒĐœĐŸĐłĐŸŃƒŃ€ĐŸĐČĐœĐ”ĐČую Đž ĐłĐŸŃ‚ĐŸĐČую Đș ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČĐ°ĐœĐžŃŽ Ń€Đ”ŃˆĐ”ĐœĐžĐ” ĐŽĐ»Ń запусĐșа ĐœĐ° ĐŸŃĐœĐŸĐČĐ” ĐŸŃ€ĐŸĐ”ĐșŃ‚ĐžŃ€ĐŸĐČĐ°ĐœĐžĐ”, ĐŸŃ€ĐžĐ”ĐœŃ‚ĐžŃ€ĐŸĐČĐ°ĐœĐœĐŸĐ” ĐœĐ° ĐżŃ€Đ”ĐŽĐŒĐ”Ń‚ĐœŃƒŃŽ ĐŸĐ±Đ»Đ°ŃŃ‚ŃŒ ĐżŃ€ĐžĐœŃ†ĐžĐżŃ‹. тДст ĐżŃ€ĐŸĐ”Đșты ĐŽĐ»Ń ĐșĐ°Đ¶ĐŽĐŸĐłĐŸ ŃĐ»ĐŸŃ.", "CommonLibraries": "ОбщОД Đ±ĐžĐ±Đ»ĐžĐŸŃ‚Đ”ĐșĐž", "CommonLibraries_THEPROBLEM_Description": "КаĐșОД Đ±ĐžĐ±Đ»ĐžĐŸŃ‚Đ”ĐșĐž ŃĐ»Đ”ĐŽŃƒĐ”Ń‚ ĐžŃĐżĐŸĐ»ŃŒĐ·ĐŸĐČать ĐŽĐ»Ń рДалОзацОО ĐŸĐ±Ń‰ĐžŃ… Ń‚Ń€Đ”Đ±ĐŸĐČĐ°ĐœĐžĐč? ", "CommonLibraries_ABPSOLUTION_Description": "ABP прДЎĐČĐ°Ń€ĐžŃ‚Đ”Đ»ŃŒĐœĐŸ ĐžĐœŃ‚Đ”ĐłŃ€ĐžŃ€ŃƒĐ”Ń‚ ĐČ Ń€Đ”ŃˆĐ”ĐœĐžĐ” ĐżĐŸĐżŃƒĐ»ŃŃ€ĐœŃ‹Đ”, ĐżŃ€ĐŸĐČĐ”Ń€Đ”ĐœĐœŃ‹Đ” Đž аĐșŃ‚ŃƒĐ°Đ»ŃŒĐœŃ‹Đ” Đ±ĐžĐ±Đ»ĐžĐŸŃ‚Đ”ĐșĐž. ", @@ -1020,7 +1020,7 @@ "KeepingYourSolutionUpToDate": "ĐŸĐŸĐŽĐŽĐ”Ń€Đ¶Đ°ĐœĐžĐ” ĐČĐ°ŃˆĐ”ĐłĐŸ Ń€Đ”ŃˆĐ”ĐœĐžŃ ĐČ Đ°ĐșŃ‚ŃƒĐ°Đ»ŃŒĐœĐŸĐŒ ŃĐŸŃŃ‚ĐŸŃĐœĐžĐž", "KeepingYourSolutionUpToDate_THEPROBLEM_Description": "ĐŸĐŸŃĐ»Đ” ĐœĐ°Ń‡Đ°Đ»Đ° Ń€Đ°Đ·Ń€Đ°Đ±ĐŸŃ‚ĐșĐž ĐČы ĐŽĐŸĐ»Đ¶ĐœŃ‹ ĐŸŃ‚ŃĐ»Đ”Đ¶ĐžĐČать ĐœĐŸĐČыД ĐČДрсОО Đ±ĐžĐ±Đ»ĐžĐŸŃ‚Đ”Đș, ĐșĐŸŃ‚ĐŸŃ€Ń‹Đ” ĐČы ĐžŃĐżĐŸĐ»ŃŒĐ·ŃƒĐ”Ń‚Đ” ĐŽĐ»Ń ĐŸĐ±ĐœĐŸĐČĐ»Đ”ĐœĐžĐč.", "KeepingYourSolutionUpToDate_ABPSOLUTION_Description": "Мы Ń€Đ”ĐłŃƒĐ»ŃŃ€ĐœĐŸ ĐŸĐ±ĐœĐŸĐČĐ»ŃĐ”ĐŒ ĐČсД паĐșДты ĐŽĐŸ ĐżĐŸŃĐ»Đ”ĐŽĐœĐžŃ… ĐČДрсОĐč Đž Ń‚Đ”ŃŃ‚ĐžŃ€ŃƒĐ”ĐŒ ох пДрДЎ ĐČыпусĐșĐŸĐŒ ŃŃ‚Đ°Đ±ĐžĐ»ŃŒĐœĐŸĐč ĐČДрсОО. ", - "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "ĐžĐ±ĐœĐŸĐČĐ»Đ”ĐœĐžĐ” ABP ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčс ĐșĐŸĐŒĐ°ĐœĐŽĐœĐŸĐč ŃŃ‚Ń€ĐŸĐșĐž ĐšĐŸĐŒĐ°ĐœĐŽĐ° аĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡Đ”ŃĐșĐž ĐŸĐ±ĐœĐ°Ń€ŃƒĐ¶ĐžĐČаДт Đž ĐŸĐ±ĐœĐŸĐČĐ»ŃĐ”Ń‚ ĐČсД заĐČĐžŃŃŃ‰ĐžĐ” ĐŸŃ‚ ABP паĐșДты NuGet Đž NPM ĐČ Ń€Đ”ŃˆĐ”ĐœĐžĐž. ", + "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "ĐžĐ±ĐœĐŸĐČĐ»Đ”ĐœĐžĐ” ABP ĐžĐœŃ‚Đ”Ń€Ń„Đ”Đčс ĐșĐŸĐŒĐ°ĐœĐŽĐœĐŸĐč ŃŃ‚Ń€ĐŸĐșĐž ĐšĐŸĐŒĐ°ĐœĐŽĐ° аĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžŃ‡Đ”ŃĐșĐž ĐŸĐ±ĐœĐ°Ń€ŃƒĐ¶ĐžĐČаДт Đž ĐŸĐ±ĐœĐŸĐČĐ»ŃĐ”Ń‚ ĐČсД заĐČĐžŃŃŃ‰ĐžĐ” ĐŸŃ‚ ABP паĐșДты NuGet Đž NPM ĐČ Ń€Đ”ŃˆĐ”ĐœĐžĐž. ", "DRY": "ĐĐ” ĐżĐŸĐČŃ‚ĐŸŃ€ŃĐčŃ‚Đ”ŃŃŒ!", "DRY_Description": "ĐĄĐŸĐ·ĐŽĐ°ĐœĐžĐ” Đ±Đ°Đ·ĐŸĐČĐŸĐłĐŸ Ń€Đ”ŃˆĐ”ĐœĐžŃ Đ·Đ°ĐœĐžĐŒĐ°Đ”Ń‚ Đ·ĐœĐ°Ń‡ĐžŃ‚Đ”Đ»ŃŒĐœĐŸĐ” ĐČŃ€Đ”ĐŒŃ Đž Ń‚Ń€Đ”Đ±ŃƒĐ”Ń‚ Ń…ĐŸŃ€ĐŸŃˆĐ”ĐłĐŸ архОтДĐșŃ‚ŃƒŃ€ĐœĐŸĐłĐŸ ĐŸĐżŃ‹Ń‚Đ°. ", "DRY_Description2": "ABP ĐŒĐ°ĐșŃĐžĐŒĐ°Đ»ŃŒĐœĐŸ аĐČŃ‚ĐŸĐŒĐ°Ń‚ĐžĐ·ĐžŃ€ŃƒĐ”Ń‚ Đž ŃƒĐżŃ€ĐŸŃ‰Đ°Đ”Ń‚ ĐżĐŸĐČŃ‚ĐŸŃ€ŃŃŽŃ‰ĐžĐčся ĐșĐŸĐŽ, ŃĐ»Đ”ĐŽŃƒŃ ĐżŃ€ĐžĐœŃ†ĐžĐżŃƒ ŃĐŸĐłĐ»Đ°ŃˆĐ”ĐœĐžŃ, а ĐœĐ” ĐșĐŸĐœŃ„ĐžĐłŃƒŃ€Đ°Ń†ĐžĐž. ", @@ -1061,12 +1061,12 @@ "Modularity_THEPROBLEM_Description": "ĐŸĐŸŃŃ‚Ń€ĐŸĐžŃ‚ŃŒ ĐżĐŸ-ĐœĐ°ŃŃ‚ĐŸŃŃ‰Đ”ĐŒŃƒ ĐŒĐŸĐŽŃƒĐ»ŃŒĐœŃƒŃŽ ŃĐžŃŃ‚Đ”ĐŒŃƒ ĐœĐ”ĐżŃ€ĐŸŃŃ‚ĐŸ! ", "Modularity_ABPSOLUTION_Description": "ABP Framework прДЎстаĐČĐ»ŃĐ”Ń‚ ŃĐŸĐ±ĐŸĐč ĐŒĐŸĐŽŃƒĐ»ŃŒĐœŃƒŃŽ струĐșтуру Ń€Đ°Đ·Ń€Đ°Đ±ĐŸŃ‚ĐșĐž ĐżŃ€ĐžĐ»ĐŸĐ¶Đ”ĐœĐžĐč. ", "SaaSMultiTenancy": "SaaS/ĐŒŃƒĐ»ŃŒŃ‚ĐžĐ°Ń€Đ”ĐœĐŽĐœĐŸŃŃ‚ŃŒ", - "SaaSMultiTenancy_THEPROBLEM_Description": "ĐœŃƒĐ»ŃŒŃ‚Đž Đ°Ń€Đ”ĐœĐŽŃ‹ — Ń€Đ°ŃĐżŃ€ĐŸŃŃ‚Ń€Đ°ĐœĐ”ĐœĐœŃ‹Đč ŃĐżĐŸŃĐŸĐ± ĐČĐœĐ”ĐŽŃ€Đ”ĐœĐžŃ ŃĐžŃŃ‚Đ”ĐŒ SaaS. ", + "SaaSMultiTenancy_THEPROBLEM_Description": "ĐœŃƒĐ»ŃŒŃ‚Đž Đ°Ń€Đ”ĐœĐŽŃ‹ — Ń€Đ°ŃĐżŃ€ĐŸŃŃ‚Ń€Đ°ĐœĐ”ĐœĐœŃ‹Đč ŃĐżĐŸŃĐŸĐ± ĐČĐœĐ”ĐŽŃ€Đ”ĐœĐžŃ ŃĐžŃŃ‚Đ”ĐŒ SaaS. ", "SaaSMultiTenancy_ABPSOLUTION_Description": "ABP Framework ĐżŃ€Đ”ĐŽĐŸŃŃ‚Đ°ĐČĐ»ŃĐ”Ń‚ ĐżĐŸĐ»ĐœŃƒŃŽ ĐŒŃƒĐ»ŃŒŃ‚ĐžŃ‚Đ”ĐœĐ°ĐœŃ‚ĐœŃƒŃŽ ĐžĐœŃ„Ń€Đ°ŃŃ‚Ń€ŃƒĐșтуру Đž Đ°Đ±ŃŃ‚Ń€Đ°ĐłĐžŃ€ŃƒĐ”Ń‚ ŃĐ»ĐŸĐ¶ĐœĐŸŃŃ‚ŃŒ ĐČĐ°ŃˆĐ”ĐłĐŸ Đ±ĐžĐ·ĐœĐ”Ń-ĐșĐŸĐŽĐ°. ", "Microservices": "МоĐșŃ€ĐŸŃĐ”Ń€ĐČосы", "Microservices_THEPROBLEM_Description": "Đ”Đ»Ń ŃĐŸĐ·ĐŽĐ°ĐœĐžŃ ŃĐžŃŃ‚Đ”ĐŒŃ‹ ĐŒĐžĐșŃ€ĐŸŃĐ”Ń€ĐČĐžŃĐŸĐČ Ń‚Ń€Đ”Đ±ŃƒĐ”Ń‚ŃŃ ĐŒĐœĐŸĐ¶Đ”ŃŃ‚ĐČĐŸ ЎДталДĐč ĐžĐœŃ„Ń€Đ°ŃŃ‚Ń€ŃƒĐșтуры: Đ°ŃƒŃ‚Đ”ĐœŃ‚ĐžŃ„ĐžĐșацоя Đž аĐČŃ‚ĐŸŃ€ĐžĐ·Đ°Ń†ĐžŃ ĐżŃ€ĐžĐ»ĐŸĐ¶Đ”ĐœĐžĐč Đž ĐŒĐžĐșŃ€ĐŸŃĐ”Ń€ĐČĐžŃĐŸĐČ, а таĐșжД Ń€Đ”Đ°Đ»ĐžĐ·Đ°Ń†ĐžŃ ŃˆĐ°Đ±Đ»ĐŸĐœĐŸĐČ Đ°ŃĐžĐœŃ…Ń€ĐŸĐœĐœĐŸĐłĐŸ ĐŸĐ±ĐŒĐ”ĐœĐ° ŃĐŸĐŸĐ±Ń‰Đ”ĐœĐžŃĐŒĐž Đž ŃĐžĐœŃ…Ń€ĐŸĐœĐœĐŸĐłĐŸ ĐŸĐ±ĐŒĐ”ĐœĐ° ŃĐŸĐŸĐ±Ń‰Đ”ĐœĐžŃĐŒĐž (Rest/GRPC) ĐŒĐ”Đ¶ĐŽŃƒ ĐŒĐžĐșŃ€ĐŸŃĐ”Ń€ĐČĐžŃĐ°ĐŒĐž яĐČĐ»ŃŃŽŃ‚ŃŃ ĐœĐ°ĐžĐ±ĐŸĐ»Đ”Đ” Ń„ŃƒĐœĐŽĐ°ĐŒĐ”ĐœŃ‚Đ°Đ»ŃŒĐœŃ‹ĐŒĐž ĐżŃ€ĐŸĐ±Đ»Đ”ĐŒĐ°ĐŒĐž.", - "Microservices_ABPSOLUTION_Description": "ABP Framework ĐżŃ€Đ”ĐŽĐŸŃŃ‚Đ°ĐČĐ»ŃĐ”Ń‚ услугО, гоЮыо ĐżŃ€ĐžĐŒĐ”Ń€Ń‹, ĐșĐŸŃ‚ĐŸŃ€Ń‹Đ” ĐżĐŸĐŒĐŸĐłŃƒŃ‚ ĐČĐ°ĐŒ Ń€Đ”Đ°Đ»ĐžĐ·ĐŸĐČать ĐŒĐžĐșŃ€ĐŸŃĐ”Ń€ĐČĐžŃĐœĐŸĐ” Ń€Đ”ŃˆĐ”ĐœĐžĐ” с ĐżĐŸĐŒĐŸŃ‰ŃŒŃŽ ŃŃ‚Đ°ĐœĐŽĐ°Ń€Ń‚ĐœŃ‹Ń… ĐŸŃ‚Ń€Đ°ŃĐ»Đ”ĐČых ĐžĐœŃŃ‚Ń€ŃƒĐŒĐ”ĐœŃ‚ĐŸĐČ.", - "Microservices_ABPSOLUTION_Description2": "ABP Commercial ЎДлаДт ДщД ĐŸĐŽĐžĐœ шаг ĐČпДрДЎ Đž ĐżŃ€Đ”ĐŽĐŸŃŃ‚Đ°ĐČĐ»ŃĐ”Ń‚ ĐżĐŸĐ»ĐœŃ‹Đč ŃˆĐ°Đ±Đ»ĐŸĐœ запусĐșа ĐŽĐ»Ń запусĐșа ĐČĐ°ŃˆĐ”ĐłĐŸ ĐŒĐžĐșŃ€ĐŸŃĐ”Ń€ĐČĐžŃĐœĐŸĐłĐŸ Ń€Đ”ŃˆĐ”ĐœĐžŃ.", + "Microservices_ABPSOLUTION_Description": "ABP Framework ĐżŃ€Đ”ĐŽĐŸŃŃ‚Đ°ĐČĐ»ŃĐ”Ń‚ услугО, гоЮыо ĐżŃ€ĐžĐŒĐ”Ń€Ń‹, ĐșĐŸŃ‚ĐŸŃ€Ń‹Đ” ĐżĐŸĐŒĐŸĐłŃƒŃ‚ ĐČĐ°ĐŒ Ń€Đ”Đ°Đ»ĐžĐ·ĐŸĐČать ĐŒĐžĐșŃ€ĐŸŃĐ”Ń€ĐČĐžŃĐœĐŸĐ” Ń€Đ”ŃˆĐ”ĐœĐžĐ” с ĐżĐŸĐŒĐŸŃ‰ŃŒŃŽ ŃŃ‚Đ°ĐœĐŽĐ°Ń€Ń‚ĐœŃ‹Ń… ĐŸŃ‚Ń€Đ°ŃĐ»Đ”ĐČых ĐžĐœŃŃ‚Ń€ŃƒĐŒĐ”ĐœŃ‚ĐŸĐČ.", + "Microservices_ABPSOLUTION_Description2": "ABP ЎДлаДт ДщД ĐŸĐŽĐžĐœ шаг ĐČпДрДЎ Đž ĐżŃ€Đ”ĐŽĐŸŃŃ‚Đ°ĐČĐ»ŃĐ”Ń‚ ĐżĐŸĐ»ĐœŃ‹Đč ŃˆĐ°Đ±Đ»ĐŸĐœ запусĐșа ĐŽĐ»Ń запусĐșа ĐČĐ°ŃˆĐ”ĐłĐŸ ĐŒĐžĐșŃ€ĐŸŃĐ”Ń€ĐČĐžŃĐœĐŸĐłĐŸ Ń€Đ”ŃˆĐ”ĐœĐžŃ.", "PreBuiltModules": "Đ“ĐŸŃ‚ĐŸĐČыД ĐŒĐŸĐŽŃƒĐ»Đž", "PreBuiltModules_THEPROBLEM_Description": "ĐŁ ĐČсДх ĐœĐ°Ń ŃŃ…ĐŸĐ¶ĐžĐ”, ĐœĐŸ ĐœĐ”ĐŒĐœĐŸĐłĐŸ Ń€Đ°Đ·ĐœŃ‹Đ” Đ±ĐžĐ·ĐœĐ”Ń-Ń‚Ń€Đ”Đ±ĐŸĐČĐ°ĐœĐžŃ. ", "PreBuiltModules_ABPSOLUTION_Description": "ABP Commercial ĐŒĐŸĐŽŃƒĐ»Đž ĐżŃ€Đ”ĐŽĐŸŃŃ‚Đ°ĐČĐ»ŃĐ”Ń‚ ĐŒĐœĐŸĐ¶Đ”ŃŃ‚ĐČĐŸ ĐżĐŸĐČŃ‚ĐŸŃ€ĐœĐŸ ĐžŃĐżĐŸĐ»ŃŒĐ·ŃƒĐ”ĐŒŃ‹Ń… ĐŒĐŸĐŽŃƒĐ»Đ”Đč ĐżŃ€ĐžĐ»ĐŸĐ¶Đ”ĐœĐžĐč, таĐșох ĐșаĐș ĐŸĐżĐ»Đ°Ń‚Đ°, чат, упраĐČĐ»Đ”ĐœĐžĐ” фаĐčĐ»Đ°ĐŒĐž, ĐŸŃ‚Ń‡Đ”Ń‚Ń‹ Đ¶ŃƒŃ€ĐœĐ°Đ»Đ° ауЮота Đž т. ĐŽ. ВсД это ĐŒĐŸĐŽŃƒĐ»Đž лДгĐșĐŸ ŃƒŃŃ‚Đ°ĐœĐ°ĐČлОĐČаются ĐČ ĐČашД Ń€Đ”ŃˆĐ”ĐœĐžĐ” Đž Ń€Đ°Đ±ĐŸŃ‚Đ°ŃŽŃ‚ ĐœĐ°ĐżŃ€ŃĐŒŃƒŃŽ. ", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json index 6abcbcf1bf..e59887beab 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json @@ -157,7 +157,7 @@ "ABPCLIExplanation": "ABP CLI (Command Line Interface) je nĂĄstroj v prĂ­kazovom riadku na vykonĂĄvanie niektorĂœch beĆŸnĂœch operĂĄciĂ­ v rieĆĄeniach zaloĆŸenĂœch na ABP.", "ABPSuiteEasilyCURD": "ABP Suite je nĂĄstroj, ktorĂœ vĂĄm umoĆŸĆˆuje jednoducho vytvĂĄraĆ„ CRUD strĂĄnky.", "WeAreHereToHelp": "Sme tu, aby sme pomohli", - "BrowseOrAskQuestion": "MĂŽĆŸete si prezeraĆ„ tĂ©my naĆĄej nĂĄpovedy alebo vyhÄŸadĂĄvaĆ„ v často kladenĂœch otĂĄzkach, prĂ­padne nĂĄm mĂŽĆŸete poloĆŸiĆ„ otĂĄzku pomocou kontaktnĂ©ho formulĂĄra.", + "BrowseOrAskQuestion": "MĂŽĆŸete si prezeraĆ„ tĂ©my naĆĄej nĂĄpovedy alebo vyhÄŸadĂĄvaĆ„ v často kladenĂœch otĂĄzkach, prĂ­padne nĂĄm mĂŽĆŸete poloĆŸiĆ„ otĂĄzku pomocou kontaktnĂ©ho formulĂĄra.", "SearchQuestionPlaceholder": "VyhÄŸadĂĄvanie v často kladenĂœch otĂĄzkach", "WhatIsTheABPCommercial": "Čo je to ABP Commercial?", "WhatAreDifferencesThanAbpFramework": "AkĂ© sĂș rozdiely medzi open source ABP Framework a ABP Commercial?", @@ -382,13 +382,13 @@ "TrialLicenseExpireMessage": "PouĆŸĂ­vate skĂșĆĄobnĂș licenciu a platnosĆ„ vaĆĄej skĂșĆĄobnej licencie vyprĆĄĂ­ {0}.", "TryForFree": "SkĂșste zadarmo", "TrialLicenseExpiredInfo": "VaĆĄe skĂșĆĄobnĂ© licenčnĂ© obdobie vyprĆĄalo!", - "CommercialNewsletterConfirmationMessage": "I agree to the Terms & Conditions and Privacy Policy.", + "CommercialNewsletterConfirmationMessage": "I agree to the Terms & Conditions and Privacy Policy.", "discountForYears": "{0} % odpustenĂ©ho prĂ­vesku {1} an(ov)", "BlackFridayDiscount": "Black Friday zÄŸava", "OnboardingTrainingFaqTitle": "MĂĄte ĆĄkolenie ABP onboarding?", "OnboardingTrainingFaqExplanation": "Áno, mĂĄme ĆĄkoliace sluĆŸby ABP, ktorĂ© vĂĄm pomĂŽĆŸu rĂœchlo spustiĆ„ vĂĄĆĄ projekt ABP. Dozviete sa o ABP od hlavnĂ©ho člena tĂ­mu ABP a zĂ­skate zručnosti na začatie vĂĄĆĄho projektu ABP. Na onboardingovom ĆĄkolenĂ­ vĂĄm vysvetlĂ­me, ako nastaviĆ„ vaĆĄe vĂœvojovĂ© prostredie, nainĆĄtalovaĆ„ poĆŸadovanĂ© nĂĄstroje, vytvoriĆ„ plne funkčnĂș strĂĄnku CRUD. Ć kolenie bude prebiehaĆ„ naĆŸivo a bude sa pouĆŸĂ­vaĆ„ aplikĂĄcia Zoom a sme otvorenĂ­ vyuĆŸĂ­vaniu ďalĆĄĂ­ch platforiem online stretnutĂ­. Jazykom ĆĄkolenia bude angličtina. Svoje otĂĄzky o ABP mĂŽĆŸete klĂĄsĆ„ aj počas sedenĂ­. Pre obe strany bude naplĂĄnovanĂœ vhodnĂœ čas a dĂĄtum. Ak chcete zĂ­skaĆ„ ďalĆĄie informĂĄcie, kontaktujte nĂĄs na adrese info@abp.io.", "SupportPolicyFaqTitle": "AkĂĄ je vaĆĄa politika podpory?", - "SupportPolicyFaqExplanation": "Podporujeme iba aktĂ­vnu a predchĂĄdzajĂșcu hlavnĂș verziu. Nezaručujeme vydanie opravy pre 3. a starĆĄiu hlavnĂș verziu. NaprĂ­klad, ak je aktĂ­vna verzia 7.0.0, vydĂĄme opravnĂ© verzie pre 6.x.x aj 7.x.x. Okrem toho poskytujeme podporu len pre problĂ©my sĂșvisiace s ABP Framework a ABP Commercial. To znamenĂĄ, ĆŸe neposkytujeme podporu pre aplikĂĄcie tretĂ­ch strĂĄn, cloudovĂ© sluĆŸby a inĂ© perifĂ©rne kniĆŸnice pouĆŸĂ­vanĂ© produktmi ABP. VynaloĆŸĂ­me komerčne primeranĂ© Ășsilie, aby sme naĆĄim zĂĄkaznĂ­kom poskytli technickĂș podporu počas oficiĂĄlnej pracovnej doby spoločnosti \"Volosoft Bilisim A.S\". Na druhej strane sa nezavĂ€zujeme k času odozvy podÄŸa dohody o Ășrovni sluĆŸieb (SLA), ale budeme sa snaĆŸiĆ„ reagovaĆ„ na technickĂ© problĂ©my čo najrĂœchlejĆĄie v rĂĄmci naĆĄej oficiĂĄlnej pracovnej doby. Ak sa so zĂĄkaznĂ­kom nedohodnete inak, poskytujeme podporu len na adrese https://support.abp.io. MĂĄme aj sĂșkromnĂș e-mailovĂș podporu, ktorĂĄ je k dispozĂ­cii len drĆŸiteÄŸom licencie Enterprise.", + "SupportPolicyFaqExplanation": "Podporujeme iba aktĂ­vnu a predchĂĄdzajĂșcu hlavnĂș verziu. Nezaručujeme vydanie opravy pre 3. a starĆĄiu hlavnĂș verziu. NaprĂ­klad, ak je aktĂ­vna verzia 7.0.0, vydĂĄme opravnĂ© verzie pre 6.x.x aj 7.x.x. Okrem toho poskytujeme podporu len pre problĂ©my sĂșvisiace s ABP Framework a ABP Commercial. To znamenĂĄ, ĆŸe neposkytujeme podporu pre aplikĂĄcie tretĂ­ch strĂĄn, cloudovĂ© sluĆŸby a inĂ© perifĂ©rne kniĆŸnice pouĆŸĂ­vanĂ© produktmi ABP. VynaloĆŸĂ­me komerčne primeranĂ© Ășsilie, aby sme naĆĄim zĂĄkaznĂ­kom poskytli technickĂș podporu počas oficiĂĄlnej pracovnej doby spoločnosti \"Volosoft Bilisim A.S\". Na druhej strane sa nezavĂ€zujeme k času odozvy podÄŸa dohody o Ășrovni sluĆŸieb (SLA), ale budeme sa snaĆŸiĆ„ reagovaĆ„ na technickĂ© problĂ©my čo najrĂœchlejĆĄie v rĂĄmci naĆĄej oficiĂĄlnej pracovnej doby. Ak sa so zĂĄkaznĂ­kom nedohodnete inak, poskytujeme podporu len na adrese https://abp.io/support/questions. MĂĄme aj sĂșkromnĂș e-mailovĂș podporu, ktorĂĄ je k dispozĂ­cii len drĆŸiteÄŸom licencie Enterprise.", "DowngradeLicensePlan": "MĂŽĆŸem v budĂșcnosti prejsĆ„ na niĆŸĆĄĂ­ licenčnĂœ plĂĄn?", "DowngradeLicensePlanExplanation": "ExistujĂșci licenčnĂœ plĂĄn nemĂŽĆŸete znĂ­ĆŸiĆ„. MĂŽĆŸete si vĆĄak zakĂșpiĆ„ novĂœ niĆŸĆĄĂ­ licenčnĂœ plĂĄn a pokračovaĆ„ vo vĂœvoji s novou licenciou. Po zakĂșpenĂ­ niĆŸĆĄej licencie sa stačí prihlĂĄsiĆ„ do novĂ©ho licenčnĂ©ho plĂĄnu prostrednĂ­ctvom prĂ­kazu ABP CLI: abp login -o `.", "LicenseTransfer": "MĂŽĆŸe sa licencia preniesĆ„ z jednĂ©ho vĂœvojĂĄra na druhĂ©ho?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json index 880006579c..3fb3d559d4 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json @@ -157,7 +157,7 @@ "ABPCLIExplanation": "ABP CLI (vmesnik ukazne vrstice) je orodje ukazne vrstice za izvajanje nekaterih običajnih operacij za reĆĄitve, ki temeljijo na ABP.", "ABPSuiteEasilyCURD": "ABP Suite je orodje, ki vam omogoča preprosto ustvarjanje strani CRUD", "WeAreHereToHelp": "Tukaj smo za pomoč", - "BrowseOrAskQuestion": "Brskate lahko po naĆĄih temah pomoči ali iơčete po pogostih vpraĆĄanjih ali pa nam postavite vpraĆĄanje z uporabo kontaktnega obrazca.", + "BrowseOrAskQuestion": "Brskate lahko po naĆĄih temah pomoči ali iơčete po pogostih vpraĆĄanjih ali pa nam postavite vpraĆĄanje z uporabo kontaktnega obrazca.", "SearchQuestionPlaceholder": "Iơčite v pogosto zastavljenih vpraĆĄanjih", "WhatIsTheABPCommercial": "Kaj je reklama ABP?", "WhatAreDifferencesThanAbpFramework": "KakĆĄne so razlike med odprtokodnim okvirom ABP in ABP Commercial?", @@ -355,7 +355,7 @@ "FreeDDDEBook": "Brezplačna e-knjiga DDD", "StartFree": "Začnite brezplačno", "FreeTrial": "Brezplačen preizkus", - "AcceptsMarketingCommunications": " Da, rad bi prejemal marketinĆĄka sporočila ABP Commercial.", + "AcceptsMarketingCommunications": " Da, rad bi prejemal marketinĆĄka sporočila ABP.", "PurposeOfUsage": "Namen uporabe", "Industry": "Industrija", "Choose": "-Izberi -", @@ -382,7 +382,7 @@ "TrialLicenseExpireMessage": "Uporabljate preizkusno licenco in vaĆĄa preizkusna licenca bo potekla {0}.", "TryForFree": "Poskusite brezplačno", "TrialLicenseExpiredInfo": "VaĆĄa preizkusna licenca je potekla!", - "CommercialNewsletterConfirmationMessage": "Strinjam se s pogoji in določili in pravilnikom o zasebnosti .", + "CommercialNewsletterConfirmationMessage": "Strinjam se s pogoji in določili in pravilnikom o zasebnosti .", "BlackFridayDiscount": "Popust Black Friday", "MultipleOrganizationInfo": "Oglejte si vse svoje organizacije", "PaymentFailedInfo": "Ćœal plačilo ni uspelo! ", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sv.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sv.json new file mode 100644 index 0000000000..f6e1184c2d --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sv.json @@ -0,0 +1,1215 @@ +{ + "culture": "sv", + "texts": { + "OrganizationManagement": "Organisation och ledning", + "OrganizationList": "Organisationslista", + "Volo.AbpIo.Commercial:010003": "Du Ă€r inte Ă€gare till den hĂ€r organisationen!", + "OrganizationNotFoundMessage": "Ingen organisation hittades!", + "DeveloperCount": "Tilldelade / totala utvecklare", + "QuestionCount": "Kvarvarande / totala frĂ„gor", + "Unlimited": "ObegrĂ€nsad", + "Owners": "Ägare", + "Owner": "Ägare", + "AddMember": "LĂ€gg till medlem", + "AddNewOwner": "LĂ€gg till ny Ă€gare", + "AddNewDeveloper": "LĂ€gg till ny utvecklare", + "UserName": "AnvĂ€ndarnamn", + "Name": "Namn", + "EmailAddress": "E-postadress", + "Developers": "Utvecklare", + "LicenseType": "Typ av licens", + "Manage": "Hantera", + "SetDefault": "StĂ€ll in som standard", + "DefaultOrganization": "Standard", + "StartDate": "Startdatum", + "EndDate": "Slutdatum", + "Modules": "Moduler", + "LicenseExtendMessage": "Slutdatum för din licens förlĂ€ngs till {0}.", + "LicenseUpgradeMessage": "Din licens har uppgraderats till {0}.", + "LicenseExtendAdnUpgradeMessage": "Din licens har förlĂ€ngts till {0} och din licensplan har uppgraderats till {1}.", + "LicenseAddDeveloperMessage": "{0} utvecklare lĂ€ggs till i din licens", + "Volo.AbpIo.Commercial:010004": "Kan inte hitta den angivna anvĂ€ndaren! AnvĂ€ndaren mĂ„ste redan ha registrerats.", + "MyOrganizations": "Mina organisationer", + "ApiKey": "API-nyckel", + "UserNameNotFound": "Det finns ingen anvĂ€ndare med anvĂ€ndarnamnet {0}", + "SuccessfullyAddedToNewsletter": "Tack för att du prenumererar pĂ„ vĂ„rt nyhetsbrev!", + "MyProfile": "Min profil", + "EmailNotValid": "VĂ€nligen ange en giltig e-postadress.", + "JoinOurMarketingNewsletter": "AnmĂ€l dig till vĂ„rt marknadsföringsnyhetsbrev", + "WouldLikeToReceiveMarketingMaterials": "Jag skulle vilja fĂ„ marknadsföringsnyheter som produkterbjudanden och specialerbjudanden.", + "StartUsingYourLicenseNow": "Börja anvĂ€nda din licens nu!", + "WelcomePage": "VĂ€lkomstsida", + "UnsubscriptionExpireEmail": "Avregistrera dig frĂ„n e-postmeddelanden med pĂ„minnelser om licensens utgĂ„ngsdatum", + "UnsubscribeLicenseExpireEmailReminderMessage": "Denna e-postprenumeration innehĂ„ller endast pĂ„minnelser om utgĂ„ngsdatum för din licens.", + "UnsubscribeFromLicenseExpireEmails": "Om du inte vill fĂ„ e-postmeddelanden om utgĂ„ngsdatum för din licens kan du avsluta prenumerationen nĂ€r som helst.", + "Unsubscribe": "Avsluta prenumeration", + "NotOrganizationMember": "Du Ă€r inte medlem i nĂ„gon organisation.", + "UnsubscribeLicenseExpirationEmailSuccessTitle": "FramgĂ„ngsrikt avregistrerad", + "UnsubscribeLicenseExpirationEmailSuccessMessage": "Du kommer inte lĂ€ngre att fĂ„ e-postmeddelanden med pĂ„minnelser om licensens utgĂ„ngsdatum.", + "IndexPageHeroSection": "En komplettwebbutvecklingsplattformbyggd pĂ„ ramverk", + "AbpCommercialShortDescription": "ABP tillhandahĂ„ller förbyggda applikationsmoduler, verktyg för snabb applikationsutveckling, professionella UI-teman, premiumsupport och mycket mer.", + "LiveDemo": "Live Demo", + "LiveDemoLead": "{1} med ditt ABP-konto, {3} till abp.io eller fyll i formulĂ€ret nedan för att skapa en live demo nu", + "ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "Det finns redan ett konto med den angivna e-postadressen: {0}
Du bör logga in med ditt konto för att fortsĂ€tta.", + "GetLicence": "Skaffa licens", + "Application": "TillĂ€mpning", + "StartupTemplates": "Mallar för nystartade företag", + "Startup": "Nystartad verksamhet", + "Templates": "Mallar", + "Developer": "Utvecklare", + "Tools": "Verktyg", + "Premium": "Premium", + "PremiumSupport": "Premium-support", + "PremiumForumSupport": "Premium Forum Support", + "UI": "UI", + "Themes": "Teman", + "JoinOurNewsletter": "AnmĂ€l dig till vĂ„rt nyhetsbrev", + "Send": "Skicka", + "WhatIsABPFramework": "VAD ÄR ABP-RAMVERKET?", + "OpenSourceBaseFramework": "Basramverk med öppen kĂ€llkod", + "ABPFrameworkExplanation": "

ABP kommersiell version Àr baserad pÄ ABP Framework, en öppen kÀllkod och community-driven webbapplikationsram för ASP.NET Core.

ABP Framework ger en utmÀrkt infrastruktur för att skriva underhÄllbar, utdragbar och testbar kod med bÀsta praxis.

Byggd pÄ och integrerad med populÀra verktyg som du redan kÀnner till. LÄg inlÀrningskurva, enkel anpassning, bekvÀm utveckling.

", + "Modular": "ModulÀr", + "MicroserviceCompatible": "Kompatibel med mikrotjÀnster", + "DomainDrivenDesignInfrastructure": "DomÀnstyrd design Infrastruktur", + "MultiTenancy": "Multi-Tenancy", + "DistributedMessaging": "Distribuerad meddelandehantering", + "DynamicProxying": "Dynamisk proxyservering", + "BackgroundJobs": "Bakgrundsjobb", + "AuditLogging": "Loggning av revision", + "BLOBStoring": "BLOB Storing", + "BundlingMinification": "Paketering och minimering", + "AdvancedLocalization": "Avancerad lokalisering", + "ManyMore": "MÄnga fler", + "ExploreTheABPFramework": "Utforska ABP-ramverket", + "WhyUseTheABPCommercial": "Varför anvÀnda ABP-plattformen?", + "WhyUseTheABPCommercialExplanation": "

Att bygga webbapplikationer i företagsklass kan vara komplext och tidskrÀvande.

ABP erbjuder den perfekta basinfrastrukturen som krÀvs för alla moderna ASP.NET Core-baserade lösningar i företagsklass. FrÄn design till driftsÀttning, hela utvecklingscykeln förstÀrks av ABP: s inbyggda funktioner och moduler.

", + "StartupTemplatesShortDescription": "Startup-mallar gör att du kan starta ditt projekt pÄ nÄgra sekunder.", + "UIFrameworksOptions": "Alternativ för ramverk för anvÀndargrÀnssnitt;", + "DatabaseProviderOptions": "Alternativ för databasleverantör;", + "PreBuiltApplicationModules": "Förbyggda applikationsmoduler", + "PreBuiltApplicationModulesShortDescription": "De vanligaste applikationskraven Àr redan utvecklade Ät dig som ÄteranvÀndbara moduler.", + "Account": "Konto", + "Blogging": "Bloggande", + "Identity": "Identitet", + "IdentityServer": "Identitetsserver", + "Saas": "Saas", + "LanguageManagement": "SprÄkhantering", + "TextTemplateManagement": "Hantering av textmallar", + "See All Modules": "SeAllaModuler", + "ABPSuite": "ABP-svit", + "AbpSuiteShortDescription": "ABP Suite Àr ett kompletterande verktyg till ABP-projekt.", + "AbpSuiteExplanation": "Det gör att du kan bygga webbsidor pÄ bara nÄgra minuter. Det Àr ett .NET Core Global-verktyg som kan installeras frÄn kommandoraden. Det kan skapa en ny ABP-lösning och generera CRUD-sidor frÄn databasen till frontend.", + "Details": "Detaljer", + "LeptonTheme": "Lepton tema", + "ProfessionalModernUIThemes": "Professionella, moderna UI-teman", + "LeptonThemeExplanation": "Lepton tillhandahÄller en rad Bootstrap-adminteman som fungerar som en solid grund för alla projekt som krÀver en adminpanel.", + "DefaultTheme": "Standardtema", + "MaterialTheme": "Materialtema", + "Default2Theme": "Standard 2 Tema", + "DarkTheme": "Mörkt tema", + "DarkBlueTheme": "MörkblÄtt tema", + "LightTheme": "Ljus tema", + "ProudToWorkWith": "Stolt över att arbeta med", + "OurConsumers": "Tusentals företag och utvecklare i över 70 lÀnder vÀrlden över förlitar sig pÄ ABP.", + "JoinOurConsumers": "Anslut dig till dem och bygg fantastiska produkter snabbt.", + "AdditionalServicesExplanation": "Behöver du ytterligare eller anpassade tjÀnster? Vi och vÄra partners kan tillhandahÄlla;", + "CustomProjectDevelopment": "Anpassad projektutveckling", + "CustomProjectDevelopmentExplanation": "Dedikerade utvecklare för dina anpassade projekt.", + "PortingExistingProjects": "Portning av befintliga projekt", + "PortingExistingProjectsExplanation": "Migrera dina Àldre projekt till ABP-plattformen.", + "LiveSupport": "Support i realtid", + "LiveSupportExplanation": "FjÀrrsupport i realtid nÀr du behöver det.", + "Training": "Utbildning", + "TrainingExplanation": "Dedikerad utbildning för dina utvecklare.", + "OnBoarding": "Onboarding", + "OnBoardingExplanation": "HjÀlp med att konfigurera dina utvecklings-, CI- och CD-miljöer.", + "PrioritizedTechnicalSupport": "Prioriterad teknisk support", + "PremiumSupportExplanation": "Förutom det stora samhÀllsstödet i ABP-ramverket svarar vÄrt supportteam pÄ tekniska frÄgor och problem frÄn de kommersiella anvÀndarna med hög prioritet.", + "SeeTheSupportOptions": "Kolla in supportalternativen", + "Contact": "Kontakt", + "TellUsWhatYouNeed": "BerÀtta för oss vad du behöver.", + "YourMessage": "Ditt meddelande", + "YourFullName": "Ditt fullstÀndiga namn", + "FirstNameField": "Förnamn", + "LastNameField": "Efternamn", + "EmailField": "E-postadress", + "YourEmailAddress": "Din e-postadress", + "ValidEmailAddressIsRequired": "En giltig e-postadress krÀvs.", + "HowMayWeHelpYou": "Hur kan vi hjÀlpa dig?", + "SendMessage": "Skicka meddelande", + "Success": "FramgÄng", + "WeWillReplyYou": "Vi har mottagit ditt meddelande och kommer att kontakta dig inom kort.", + "GoHome": "GÄ hem", + "CreateLiveDemo": "Skapa live-demo", + "CreateLiveDemoDescription": "NÀr du har skickat in formulÀret kommer du att fÄ ett e-postmeddelande med din demolÀnk.", + "RegisterToTheNewsletter": "AnmÀl dig till nyhetsbrevet för att fÄ information om ABP.IO, inklusive nya releaser etc.", + "EnterYourEmailOrLogin": "Ange din e-postadress för att skapa din demo eller Logga in med ditt befintliga konto.", + "ApplicationTemplate": "Mall för ansökan", + "ApplicationTemplateExplanation": "Application startup template anvÀnds för att skapa en ny webbapplikation.", + "EfCoreProvider": "Entity Framework (Stödjer SQL Server, MySQL, PostgreSQL, Oracle och andra)", + "AlreadyIncludedInTemplateModules": "Följande moduler Àr redan inkluderade och konfigurerade i den hÀr mallen:", + "ApplicationTemplateArchitecture": "Den hÀr applikationsmallen stöder ocksÄ nivÄindelad arkitektur dÀr anvÀndargrÀnssnittslagret, API-lagret och autentiseringstjÀnsten Àr fysiskt Ätskilda.", + "SeeTheGuideOrGoToTheLiveDemo": "Kolla in utvecklarguiden för teknisk information om den hÀr mallen eller gÄ till live-demonstrationen.", + "DeveloperGuide": "Guide för utvecklare", + "ModuleTemplate": "Mall för modul", + "ModuleTemplateExplanation1": "Vill du skapa en modul och ÄteranvÀnda den i olika applikationer? Den hÀr startmallen förbereder allt för att börja skapa en ÄteranvÀndbar applikationsmodul eller en mikrotjÀnst.", + "ModuleTemplateExplanation2": "

Du kan stödja enstaka eller flera anvÀndargrÀnssnittsramverk, enstaka eller flera databasleverantörer för en enda modul. Startmallen Àr konfigurerad för att köra och testa din modul i en minimal applikation utöver infrastrukturen för enhets- och integrationstest.

Se utvecklarguiden för teknisk information om den hÀr mallen.

", + "WithAllStyleOptions": "med alla stilalternativ", + "Demo": "Demo", + "SeeAllModules": "Se alla moduler", + "ABPCLIExplanation": "ABP CLI (Command Line Interface) Àr ett kommandoradsverktyg för att utföra vissa vanliga ÄtgÀrder för ABP-baserade lösningar.", + "ABPSuiteEasilyCURD": "ABP Suite Àr ett verktyg som gör att du enkelt kan skapa CRUD-sidor", + "WeAreHereToHelp": "Vi Àr hÀr för att hjÀlpa", + "BrowseOrAskQuestion": "Du kan blÀddra i vÄra hjÀlpÀmnen eller söka i vanliga frÄgor, eller sÄ kan du stÀlla en frÄga till oss genom att anvÀnda kontaktformulÀret.", + "SearchQuestionPlaceholder": "Sök i vanliga frÄgor och svar", + "WhatIsTheABPCommercial": "Vad Àr ABP?", + "WhatAreDifferencesThanAbpFramework": "Vilka Àr skillnaderna mellan ABP med öppen kÀllkod och den kommersiella versionen av ABP?", + "AbpCommercialMetaTitle": " {0} | ABP", + "AbpCommercialMetaDescription": "En omfattande webbutvecklingsplattform pÄ ABP Framework med förbyggda moduler, startmallar, verktyg för snabb utveckling, proffsiga UI-teman och premiumsupport.", + "ABPCommercialExplanation": "ABP Platform Àr en uppsÀttning premiummoduler, verktyg, teman och tjÀnster som Àr byggda pÄ toppen av open source ABP-ramverket. ABP utvecklas och stöds av samma team som ligger bakom ABP-ramverket.", + "WhatAreDifferencesThanABPFrameworkExplanation": "

ABP-ramverket Àr ett modulÀrt, tematiserbart, mikrotjÀnstkompatibelt ramverk för applikationsutveckling för ASP.NET Core. Det ger en komplett arkitektur och en stark infrastruktur sÄ att du kan fokusera pÄ din egen affÀrskod istÀllet för att upprepa dig sjÀlv för varje nytt projekt. Det Àr baserat pÄ bÀsta praxis för mjukvaruutveckling och populÀra verktyg som du redan kÀnner till.

ABP-ramverket Àr helt gratis, öppen kÀllkod och community-driven. Det ger ocksÄ ett gratis tema och nÄgra förbyggda moduler (t.ex. identitetshantering och hyresgÀsthantering).

<", + "VisitTheFrameworkVSCommercialDocument": "Besök följande lĂ€nk för mer information {1} ", + "ABPCommercialFollowingBenefits": "ABP kommersiell version lĂ€gger till följande fördelar ovanpĂ„ ABP-ramverket:", + "Professional": "Professionell", + "UIThemes": "Teman för anvĂ€ndargrĂ€nssnitt", + "EnterpriseModules": "Enterprise ready, funktionsrika, förbyggda applikationsmoduler (t.ex. hantering av identitetsserver, SaaS-hantering, sprĂ„khantering)", + "ToolingToSupport": "Verktyg för att stödja din utvecklingsproduktivitet (t.ex. ABP Suite)", + "PremiumSupportLink": "Premium Support", + "WhatDoIDownloadABPCommercial": "Vad laddar jag ner nĂ€r jag köper den kommersiella versionen av ABP?", + "CreateUnlimitedSolutions": "NĂ€r du har köpt en ABP Commercial-licens kan du skapa obegrĂ€nsade lösningar som beskrivs i dokumentet GĂ„ igĂ„ng.", + "ABPCommercialSolutionExplanation": "NĂ€r du skapar en ny applikation fĂ„r du en Visual Studio-lösning (en startmall) som baseras pĂ„ dina önskemĂ„l. Den nedladdade lösningen har kommersiella moduler och teman som redan Ă€r installerade och konfigurerade Ă„t dig. Du kan ta bort en förinstallerad modul eller lĂ€gga till en annan modul om du vill. Alla moduler och teman anvĂ€nder NuGet/NPM-paket som standard.", + "StartDevelopWithTutorials": "Den nedladdade lösningen Ă€r vĂ€l arkitekterad och dokumenterad. Du kan börja utveckla din egen företagskod baserad pĂ„ den genom att följa handledningarna.", + "TryTheCommercialDemo": "Du kan prova Live Demo för att se ett exempel pĂ„ en applikation som skapats med hjĂ€lp av ABP-startmallen.", + "HowManyProducts": "Hur mĂ„nga olika produkter/lösningar kan jag bygga med hjĂ€lp av ABP?", + "HowManyProductsExplanation": "Du kan skapa sĂ„ mĂ„nga projekt du vill under din aktiva licensperiod; det finns ingen grĂ€ns! Efter att din licens har löpt ut kan du inte skapa nya projekt, men du kan fortsĂ€tta att utveckla de projekt du har laddat ner och distribuera dem till ett obegrĂ€nsat antal servrar.", + "HowManyDevelopers": "Hur mĂ„nga utvecklare kan arbeta med ABP?", + "HowManyDevelopersExplanation": "ABP-licenser Ă€r per utvecklare. Olika licenstyper har olika grĂ€nser för utvecklare. Du kan dock lĂ€gga till fler utvecklare till vilken licenstyp som helst nĂ€r du behöver. Kolla in sidan Planer och priser för licenstyper, utvecklargrĂ€nser och ytterligare utvecklingskostnader.", + "ChangingLicenseType": "Kan jag uppgradera min licenstyp senare?", + "ChangingLicenseTypeExplanation": "Du kan uppgradera till en högre licens genom att betala mellanskillnaden inom din aktiva licensperiod. NĂ€r du uppgraderar till en högre licensplan fĂ„r du fördelarna med den nya planen, men licensuppgraderingen Ă€ndrar inte licensens utgĂ„ngsdatum. Dessutom kan du ocksĂ„ lĂ€gga till nya utvecklarplatser till din befintliga licens, kolla in \"Hur mĂ„nga utvecklare kan arbeta med ABP?\" VANLIGA FRÅGOR.", + "LicenseExtendUpgradeDiff": "Vad Ă€r skillnaden mellan licensförlĂ€ngning och uppgradering?", + "LicenseExtendUpgradeDiffExplanation": "FörlĂ€ngning: Genom att förlĂ€nga/förnya din licens kommer du att fortsĂ€tta att fĂ„ premiumsupport och fĂ„ större eller mindre uppdateringar för modulerna och teman. Dessutom kommer du att kunna fortsĂ€tta skapa nya projekt. Och du kommer fortfarande att kunna anvĂ€nda ABP Suite, vilket pĂ„skyndar din utveckling. NĂ€r du förlĂ€nger din licens lĂ€ggs 1 Ă„r till licensens utgĂ„ngsdatum.
Uppgradering: Genom att uppgradera din licens kommer du att befordras till en högre licensplan, vilket gör att du kan fÄ ytterligare fördelar. Kolla in jÀmförelsetabellen för licenser för att se skillnaderna mellan licensplanerna. NÀr du uppgraderar Àndras dÀremot inte licensens utgÄngsdatum! För att förlÀnga licensens slutdatum mÄste du förlÀnga din licens.", + "LicenseRenewalCost": "Vad Àr kostnaden för licensförnyelse efter 1 Är?", + "LicenseRenewalCostExplanation": "Priset för förnyelse (förlÀngning) av standard Team License Àr ${0}, standard Business License Àr ${1} och standard Enterprise License Àr ${2}. Om du redan Àr kund, logga in pÄ ditt konto för att granska den aktuella förnyelseprissÀttningen.", + "HowDoIRenewMyLicense": "Hur förnyar jag min licens?", + "HowDoIRenewMyLicenseExplanation": "Du kan förnya din licens genom att navigera till organisationshanteringssidan. För att dra nytta av vÄra rabatterade priser för tidig förnyelse, se till att du förnyar innan din licens löper ut. Oroa dig inte för att du inte vet nÀr din möjlighet till tidig förnyelse stÀngs; du kommer att fÄ 3 pÄminnelse-e-postmeddelanden innan din prenumeration löper ut. Vi skickar dem 30 dagar, 7 dagar och 1 dag före utgÄngen.", + "IsSourceCodeIncluded": "Omfattar min licens kÀllkoden för pro-modulerna och teman?", + "IsSourceCodeIncludedExplanation1": "Beror pÄ vilken licenstyp du har köpt:", + "IsSourceCodeIncludedExplanation2": "Team: Din lösning anvÀnder moduler och teman som NuGet- och NPM-paket. Den inkluderar inte deras kÀllkod. PÄ sÄ sÀtt kan du enkelt uppgradera dessa moduler och teman nÀr en ny version Àr tillgÀnglig. Du kan dock inte fÄ kÀllkoden för dessa moduler och teman.", + "IsSourceCodeIncludedExplanation3": "Business/Enterprise: Utöver Team-licensen kan du ladda ner kÀllkoden för alla moduler eller teman du behöver. Du kan till och med ta bort NuGet/NPM-paketreferenserna för en viss modul och lÀgga till dess kÀllkod direkt i din lösning för att Àndra den helt.", + "IsSourceCodeIncludedExplanation4": "

Att inkludera kÀllkoden för en modul i din lösning ger dig maximal frihet att anpassa den modulen. Det kommer dock inte att vara möjligt att automatiskt uppgradera modulen nÀr en ny version slÀpps.

Ingen av licenserna inkluderar kÀllkoden för ABP Suite och ABP Studio, vilket Àr externa verktyg som genererar kod Ät dig och hjÀlper din utveckling.

Kolla in sidan Planer och priser för andra skillnader mellan licenstyperna.

<", + "ChangingDevelopers": "Kan jag Àndra de registrerade utvecklarna för min organisation i framtiden?", + "ChangingDevelopersExplanation": "Förutom att lÀgga till nya utvecklare till din licens kan du ocksÄ Àndra befintliga utvecklare (du kan ta bort en utvecklare och lÀgga till en ny pÄ samma plats) utan nÄgon extra kostnad.", + "WhatHappensWhenLicenseEnds": "Vad hÀnder nÀr min licensperiod upphör?", + "WhatHappensWhenLicenseEndsExplanation1": "ABP-licensen Àr en perpetuell licens. NÀr din licens löper ut kan du fortsÀtta att utveckla ditt projekt. Och du Àr inte skyldig att förnya din licens. Din licens levereras med en ettÄrig uppdaterings- och supportplan direkt ur lÄdan. För att fortsÀtta fÄ nya funktioner, prestandaförbÀttringar, buggfixar, support och fortsÀtta anvÀnda ABP Suite mÄste du förnya din licens. NÀr din licens löper ut;", + "WhatHappensWhenLicenseEndsExplanation2": "Du kan inte skapa nya lösningar med hjÀlp av den kommersiella versionen av ABP, men du kan fortsÀtta att utveckla dina befintliga applikationer för alltid.", + "WhatHappensWhenLicenseEndsExplanation3": "Du kommer att kunna fÄ uppdateringar för modulerna och teman inom din MINOR-version (utom RC- eller Preview-versioner). Om du t.ex. anvÀnder v3.2.0 av en modul kan du fortfarande fÄ uppdateringar för v3.2.x (v3.2.1, v3.2.5... etc.) av den modulen. Men du kan inte fÄ uppdateringar för nÀsta större eller mindre version (som v3.3.0, v3.3.3, 4.x.x.. etc.). Till exempel, nÀr din licens löpte ut, den senaste versionen var v4.4.3, och senare publicerade den bÄde 4.4.4-versionen och 4.5.0-versionen, skulle du kunna komma Ät v4.4.X men du skulle inte komma Ät v4.5.X.", + "WhatHappensWhenLicenseEndsExplanation4": "Du kan inte installera nya moduler och teman som lÀggs till i ABP:s kommersiella plattform efter att din licens har upphört.", + "WhatHappensWhenLicenseEndsExplanation5": "Du kan inte anvÀnda ABP Suite.", + "WhatHappensWhenLicenseEndsExplanation6": "Du kan inte fÄ premium support lÀngre.", + "WhatHappensWhenLicenseEndsExplanation7": "Du kan förlÀnga (förnya) din licens om du vill fortsÀtta att fÄ dessa förmÄner. Om du förlÀnger din licens inom {3} dagar efter att din licens har löpt ut, kommer följande rabatter att tillÀmpas: Teamlicens {0}; Företagslicens {1}; Enterprise-licens {2}.", + "discountForYears": "{0}% rabatt för {1} Är", + "WhatHappensWhenLicenseEndsExplanation8": "De ABP-projekt som du genererar lagras inte pÄ vÄra servrar. DÀrför Àr det ditt ansvar att behÄlla kÀllkoden som du laddar ner. NÀr din licens löper ut finns det inget sÀtt att fÄ tag pÄ kÀllkoden för dina genererade ABP-projekt.", + "WhenShouldIRenewMyLicense": "NÀr ska jag förnya min licens?", + "WhenShouldIRenewMyLicenseExplanation": "Om du förnyar din licens inom {3} dagar efter att din licens har löpt ut, kommer följande rabatter att tillÀmpas: Teamlicens {0}; Företagslicens {1}; Enterprise-licens {2}. Men om du förnyar din licens efter {3} dagar efter licensens utgÄngsdatum, kommer förnyelsepriset att vara detsamma som licensens inköpspris och det kommer inte att finnas nÄgon rabatt pÄ din förnyelse.", + "TrialPlan": "Har du en testplan?", + "TrialPlanExplanation": "Ja, för att starta din kostnadsfria testversion, kontakta marketing@volosoft.com. Vi erbjuder ocksÄ en 30-dagars pengarna-tillbaka-garanti för Team-licensen, inga frÄgor stÀlls! Du kan begÀra full Äterbetalning inom de första 30 dagarna efter licensköpet. Vi ger 60% Äterbetalning inom 30 dagar för Business- och Enterprise-licenser. Detta beror pÄ att Business- och Enterprise-licenserna innehÄller den fullstÀndiga kÀllkoden för alla moduler och teman.", + "DoYouAcceptBankWireTransfer": "Accepterar ni banköverföringar?", + "DoYouAcceptBankWireTransferExplanation": "Ja, vi accepterar banköverföringar.
NÀr du har skickat licensavgiften via banköverföring, skicka ditt kvitto och önskad licenstyp till accounting@volosoft.com.
VĂ„r internationella bankkontoinformation:", + "HowToUpgrade": "Hur uppgraderar man befintliga applikationer nĂ€r en ny version finns tillgĂ€nglig?", + "HowToUpgradeExplanation1": "NĂ€r du skapar en ny applikation med hjĂ€lp av ABP anvĂ€nds alla moduler och teman som NuGet- och NPM-paket. PĂ„ sĂ„ sĂ€tt kan du enkelt uppgradera paketen nĂ€r en ny version finns tillgĂ€nglig.", + "HowToUpgradeExplanation2": "Förutom de vanliga NuGet/NPM-uppgraderingarna tillhandahĂ„ller ABP CLI ett uppdateringskommando som automatiskt hittar och uppgraderar alla ABP-relaterade paket i din lösning.", + "DatabaseSupport": "Vilka databassystem stöds?", + "DatabaseSupportExplanation": "ABP Framework i sig Ă€r databasagnostiskt och kan fungera med alla databasleverantörer genom sin natur. Kolla in Data Access-dokumentet för en lista över för nĂ€rvarande implementerade leverantörer.", + "UISupport": "Vilka UI-ramverk stöds?", + "Supported": "Stödd", + "UISupportExplanation": "ABP Framework Ă€r i sig sjĂ€lvt agnostiskt och kan fungera med alla anvĂ€ndargrĂ€nssnitt. Startmallar, modul-anvĂ€ndargrĂ€nssnitt och teman implementerades dock inte för alla anvĂ€ndargrĂ€nssnittsramverk. Kolla in GĂ„ igĂ„ng-dokumentet för den uppdaterade listan över anvĂ€ndargrĂ€nssnittsalternativ.", + "MicroserviceSupport": "Stödjer den microservice-arkitekturen?", + "MicroserviceSupportExplanation1": "Ett av de viktigaste mĂ„len med ABP-ramverket Ă€r att tillhandahĂ„lla en bekvĂ€m infrastruktur för att skapa mikroservicelösningar. Kolla in Microservice Architecture-dokumentet för att förstĂ„ hur det hjĂ€lper till att skapa mikroservicesystem.", + "MicroserviceSupportExplanation2": "Alla ABP-moduler Ă€r utformade för att stödja distributionsscenarier för mikrotjĂ€nster (med eget API och egen databas) genom att följa dokumentet Module Development Best Practices.", + "MicroserviceSupportExplanation3": "Vi tillhandahĂ„ller ett exempel pĂ„ Microservice Demo Solution som visar en implementering av en mikrotjĂ€nstarkitektur för att hjĂ€lpa dig att skapa din egen lösning.", + "MicroserviceSupportExplanation4": "SĂ„ det korta svaret Ă€r: \"Ja, det stöder mikroservicearkitektur\".", + "MicroserviceSupportExplanation5": "Ett mikrotjĂ€nstsystem Ă€r dock en lösning och varje lösning kommer att ha olika krav, nĂ€tverkstopologi, kommunikationsscenarier, autentiseringsmöjligheter, databasdelning/partitioneringsbeslut, runtime-konfigurationer, integrationer med tredjepartssystem och mycket mer.", + "MicroserviceSupportExplanation6": "ABP tillhandahĂ„ller infrastruktur för microservice-scenarier, microservice-kompatibla moduler, exempel och dokumentation som hjĂ€lper dig att bygga din egen lösning. Men förvĂ€nta dig inte att direkt ladda ner din drömlösning som Ă€r förbyggd Ă„t dig. Du mĂ„ste förstĂ„ den och sammanföra specifika delar baserat pĂ„ dina krav.", + "WhereCanIDownloadSourceCode": "Var kan jag ladda ner kĂ€llkoden?", + "WhereCanIDownloadSourceCodeExplanation": "Du kan ladda ner kĂ€llkoden för alla ABP-moduler, Angular-paket och teman via ABP Suite eller ABP CLI. Kolla in Hur man laddar ner kĂ€llkoden?", + "ComputerLimitation": "Hur mĂ„nga datorer kan en utvecklare logga in pĂ„ nĂ€r han utvecklar ABP?", + "ComputerLimitationExplanation": "Vi tillĂ„ter specifikt {0} datorer per individ/licensierad utvecklare. NĂ€r det finns ett behov för en utvecklare att utveckla ABP-baserade produkter pĂ„ en tredje maskin, ska ett e-postmeddelande skickas till license@abp.io dĂ€r situationen förklaras, och vi kommer sedan att göra lĂ€mplig tilldelning i vĂ„rt system.", + "RefundPolicy": "Har ni nĂ„gon Ă„terbetalningspolicy?", + "RefundPolicyExplanation": "Du kan begĂ€ra Ă„terbetalning inom 30 dagar efter ditt licensköp. Licenstyperna Business och Enterprise har alternativ för nedladdning av kĂ€llkod; dĂ€rför ger vi en Ă„terbetalning pĂ„ 60 % inom 30 dagar för Business- och Enterprise-licenser. Dessutom görs inga Ă„terbetalningar för förnyelser och andra licensköp.", + "HowCanIRefundVat": "Hur kan jag Ă„terbetala moms?", + "HowCanIRefundVatExplanation1": "Om du gjorde betalningen med 2Checkout kan du Ă„terbetala momsen via ditt 2Checkout-konto:", + "HowCanIRefundVatExplanation2": "Logga in pĂ„ ditt 2Checkout-konto", + "HowCanIRefundVatExplanation3": "Leta upp rĂ€tt order och tryck pĂ„ \"Återbetala försenad moms\" (ange ditt momsregistreringsnummer)", + "HowCanIGetMyInvoice": "Hur kan jag fĂ„ min faktura?", + "HowCanIGetMyInvoiceExplanation": "Det finns 2 betalningsgateways för att köpa en licens: Iyzico och 2Checkout. Om du köper din licens via 2Checkout-gatewayen skickar den PDF-fakturan till din e-postadress; kolla in 2Checkout-fakturering. Om du köper via Iyzico-gatewayen, med en anpassad inköpslĂ€nk eller via en banköverföring, kommer vi att förbereda och skicka din faktura. Du kan begĂ€ra eller ladda ner din faktura frĂ„n sidan för organisationshantering. Innan du kontaktar oss för fakturan, kontrollera din organisationshanteringssida!", + "Forum": "Forum", + "SupportExplanation": "ABP-licensen ger ett premiumforumstöd av ett team som bestĂ„r av ABP Framework-experter.", + "PrivateTicket": "Privat biljett", + "PrivateTicketExplanation": "Enterprise License inkluderar Ă€ven en privat support med e-post och Ă€rendehanteringssystem.", + "AbpSuiteExplanation1": "Med ABP Suite kan du skapa webbsidor pĂ„ bara nĂ„gra minuter. Det Ă€r ett globalt .NET Core-verktyg som kan installeras frĂ„n kommandoraden.", + "AbpSuiteExplanation2": "Den kan skapa en ny ABP-lösning och generera CRUD-sidor frĂ„n databasen till frontend. För teknisk översikt se dokumentet", + "FastEasy": "Snabbt och enkelt", + "AbpSuiteExplanation3": "Med ABP Suite kan du enkelt skapa CRUD-sidor. Du behöver bara definiera din entitet och dess egenskaper och lĂ„ta resten gĂ„ till ABP Suite Ă„t dig! ABP Suite genererar all nödvĂ€ndig kod för din CRUD-sida pĂ„ nĂ„gra sekunder. Den stöder Angular, MVC och Blazor anvĂ€ndargrĂ€nssnitt.", + "RichOptions": "Rika alternativ", + "AbpSuiteExplanation4": "ABP Suite stöder flera anvĂ€ndargrĂ€nssnittsalternativ som Razor Pages och Angular. Den stöder ocksĂ„ flera databaser som MongoDB och alla databaser som stöds av EntityFramework Core (MS SQL Server, Oracle, MySql, PostgreSQL och andra leverantörer...).", + "AbpSuiteExplanation5": "Det som Ă€r bra Ă€r att du inte behöver oroa dig för dessa alternativ. ABP Suite förstĂ„r din projekttyp och genererar koden för ditt projekt och placerar den genererade koden pĂ„ rĂ€tt plats i ditt projekt.", + "SourceCode": "KĂ€llkod", + "AbpSuiteExplanation6": "ABP Suite genererar kĂ€llkoden Ă„t dig! Den genererar inte magiska filer för att generera webbsidan. ABP Suite genererar kĂ€llkoden för Entity, Repository, Application Service, Code First Migration, JavaScript/TypeScript och CSHTML/HTML och Ă€ven nödvĂ€ndiga grĂ€nssnitt. ABP Suite genererar ocksĂ„ koden enligt Best Practices för programvaruutveckling, sĂ„ du behöver inte oroa dig för den genererade kodens kvalitet.", + "AbpSuiteExplanation7": "Eftersom du har kĂ€llkoden för byggstenarna i den genererade CRUD-sidan i rĂ€tt applikationslager kan du enkelt Ă€ndra kĂ€llkoden och lĂ€gga till din egen anpassade affĂ€rslogik i den genererade koden.", + "CrossPlatform": "Plattformsoberoende", + "AbpSuiteExplanation8": "ABP Suite Ă€r byggt med .NET Core och Ă€r plattformsoberoende. Den körs som en webbapplikation pĂ„ din lokala dator. Du kan köra den pĂ„ Windows, Mac och Linux", + "OtherFeatures": "Andra funktioner", + "OtherFeatures1": "Uppdaterar enkelt NuGet- och NPM-paket pĂ„ din lösning.", + "OtherFeatures2": "Återskapar redan genererade sidor frĂ„n början.", + "OtherFeatures3": "Skapar nya lösningar", + "ThanksForCreatingProject": "Ditt projekt har skapats framgĂ„ngsrikt!", + "HotToRunSolution": "Hur kör du din lösning?", + "HotToRunSolutionExplanation": "I dokumentet Kom igĂ„ng kan du lĂ€sa om hur du konfigurerar och kör din lösning.", + "GettingStarted": "Komma igĂ„ng", + "WebAppDevTutorial": "Handledning för utveckling av webbapplikationer", + "WebAppDevTutorialExplanation": "I handledningsdokumentet för utveckling av webbapplikationer finns ett exempel pĂ„ utveckling steg för steg.", + "Document": "Dokument", + "UsingABPSuiteToCURD": "AnvĂ€nda ABP Suite för generering av CRUD-sidor och verktyg", + "SeeABPSuiteDocument": "Kolla in ABP Suite-dokumentet för att lĂ€ra dig anvĂ€ndningen av ABP Suite.", + "AskQuestionsOnSupport": "Du kan stĂ€lla frĂ„gor pĂ„ ABP Support.", + "Documentation": "Dokumentation", + "SeeModulesDocument": "Se sidan med moduler för en lista över alla PRO-moduler.", + "Pricing": "PrissĂ€ttning", + "PricingExplanation": "VĂ€lj de egenskaper och funktioner som ditt företag behöver idag. Uppgradera enkelt nĂ€r ditt företag vĂ€xer.", + "Team": "Team", + "Business": "Företag", + "Enterprise": "Företag", + "Custom": "Anpassad", + "IncludedDeveloperLicenses": "Inkluderade utvecklarlicenser", + "CustomLicenceOrAdditionalServices": "Behöver du en anpassad licens eller ytterligare tjĂ€nster?", + "CustomOrVolumeLicense": "Anpassad licens eller volymlicens", + "LiveTrainingSupport": "Utbildning och support i realtid", + "AndMore": "och mer", + "AdditionalDeveloperLicense": "Ytterligare licens för utvecklare", + "ProjectCount": "ProjektrĂ€kning", + "AllProModules": "Alla proffsmoduler", + "AllProThemes": "Alla proffsteman", + "AllProStartupTemplates": "Alla proffsmallar för nystartade företag", + "SourceCodeOfAllModules": "KĂ€llkod för alla moduler", + "SourceCodeOfAllThemes": "KĂ€llkod för alla teman", + "PerpetualLicense": "Evig licens", + "UnlimitedServerDeployment": "ObegrĂ€nsad serverdistribution", + "YearUpgrade": "1 Ă„rs uppgradering", + "YearPremiumForumSupport": "1 Ă„rs premiumsupport för forum", + "ForumSupportIncidentCountYear": "Antal incidenter för forumstöd/Ă„r", + "PrivateTicketEmailSupport": "Privat support via biljett och e-post", + "BuyNow": "Köp nu", + "PayViaAmexCard": "Hur kan jag betala med mitt AMEX-kort?", + "PayViaAmexCardDescription": "Standardbetalningsgatewayen \"Iyzico\" kan neka vissa AMEX-kreditkort pĂ„ grund av sĂ€kerhetsĂ„tgĂ€rder. I detta fall kan du betala via den alternativa betalningsgatewayen \"2Checkout\".", + "ThankYou": "Tack sĂ„ mycket", + "InvalidReCaptchaErrorMessage": "Det uppstod ett fel vid verifiering av reCAPTCHA. VĂ€nligen försök igen.", + "CompanyName": "Företagets namn", + "YourCompanyName": "Ditt företagsnamn", + "FirstName": "Förnamn", + "LastName": "Efternamn", + "Optional": "Valfritt", + "YourFirstName": "Ditt förnamn", + "YourLastName": "Ditt efternamn", + "SpecialOffer": "Specialerbjudande", + "SpecialOfferMessage": "Skynda dig! Priserna gĂ€ller under en begrĂ€nsad tid.", + "DiscountRequest": "BegĂ€ran om rabatt", + "DiscountRequestDescribeCustomerQuestion": "Vilken av följande beskrivningar stĂ€mmer in pĂ„ dig?", + "DiscountRequestStudentEmailMessage": "E-postadressen mĂ„ste innehĂ„lla \"edu\".", + "DiscountRequestDeveloperCount": "Hur mĂ„nga utvecklare Ă€r ni?", + "DiscountRequestDeveloperCountExceedMessage": "Vi erbjuder inte rabatterade licenser för företag som har fler Ă€n {0} utvecklare.", + "DiscountRequestOrganizationName": "Företagets/organisationens/skolans namn", + "Website": "Webbplats", + "GithubUsername": "AnvĂ€ndarnamn för GitHub", + "PhoneNumber": "Telefonnummer", + "Country": "Land", + "DescribeABPCommercialUsage": "Beskriv det projekt som du planerar att utveckla baserat pĂ„ APB", + "DiscountRequestCertifyInformationMessage": "Jag intygar att alla uppgifter Ă€r sanningsenliga och korrekta.", + "DiscountRequestReceived": "Vi har mottagit din begĂ€ran om rabatt.", + "DiscountRequestStatusMessage": "Vi kommer att svara dig efter att ha kontrollerat den information du har lĂ€mnat.", + "MVCOrRazorPages": "MVC (Razor Pages)", + "Angular": "Angular", + "Blazor": "Blazor", + "New": "Nya", + "MongoDB": "MongoDB", + "EBookDDD": "E-bok DomĂ€nstyrd design", + "PracticalGuideForImplementingDDD": "Den hĂ€r boken Ă€r en praktisk guide för att implementera domĂ€ndriven design med ABP-ramverket.", + "IntroducingDDD": "Introduktion till domĂ€ndriven design", + "DDDLayersAndCleanArchitecture": "DDD-skikt och ren arkitektur", + "LayeringOfADotnetSolution": "Skiktning av en .NET-lösning", + "ImplementingDDDBuildingBlocks": "Implementering av DDD-byggstenar", + "DomainVsApplicationLogic": "DomĂ€nlogik vs applikationslogik", + "SamplesAndDiscussions": "Provtagningar och diskussioner", + "Free": "Gratis", + "Download": "Nedladdningar", + "DDDEBook": "DDD E-bok", + "ImplementingDDD": "Implementering av domĂ€ndriven design", + "DDDBookExplanation": "En praktisk guide för implementering av domĂ€ndriven design med ABP-ramverket.", + "Overview": "Översikt", + "DDDBookPracticalGuide": "Detta Ă€r en praktisk guide för implementering av domĂ€ndriven design (DDD). Implementeringsdetaljerna bygger pĂ„ ABP Framework-infrastrukturen, men kĂ€rnkoncepten, principerna och mönstren Ă€r tillĂ€mpliga pĂ„ alla typer av lösningar, Ă€ven om det inte Ă€r en .NET-lösning.", + "TableOfContents": "InnehĂ„llsförteckning", + "IntroductionToImplementingDDD": "Introduktion till implementering av domĂ€ndriven design", + "WhatIsDDD": "Vad Ă€r domĂ€ndriven design?", + "Implementation": "Implementering", + "TheBigPicture": "Den stora bilden", + "TheBuildingBlock": "Byggstenen", + "ExampleUseCase": "Exempel AnvĂ€ndningsfall", + "DomainAndApplicationLogic": "DomĂ€nlogik och applikationslogik", + "Author": "Författaren", + "PublishedOn": "Publicerad pĂ„", + "Page": "Sidan", + "FreeEBook": "Gratis e-bok", + "EBookSignInForDownload": "För att ladda ner e-boken logga in", + "SignIn": "Logga in", + "Or": "Eller", + "TellUsAboutYourself": "BerĂ€tta lite om dig sjĂ€lv", + "Surname": "Efternamn", + "DoYouAgreePrivacyPolicy": "Jag samtycker till Terms & Conditions och Privacy Policy.", + "VolosoftMarketingInformationMessage": "Jag vill ha information, tips och erbjudanden om Solutions for Businesses and Organizations och andra produkter och tjĂ€nster frĂ„n Volosoft.", + "VolosoftSharingInformationMessage": "Jag vill att Volosoft ska dela min information med utvalda partners sĂ„ att jag kan fĂ„ relevant information om deras produkter och tjĂ€nster.", + "WeWillSendYouADownloadLink": "LĂ€nken för nedladdning av e-boken har skickats till {0}. Kontrollera din inkorg, skrĂ€ppost och spamboxar!", + "InvalidFormInputs": "VĂ€nligen skriv in den giltiga information som anges pĂ„ formulĂ€ret.", + "DDDBookEmailBody": "Tack sĂ„ mycket.
För att ladda ner din bok, klicka hÀr.", + "StartFree": "Starta gratis", + "FreeTrial": "Gratis provperiod", + "AcceptsMarketingCommunications": " Ja, jag vill gÀrna fÄ ABP-relaterade marknadsföringsnyheter.", + "PurposeOfUsage": "Syfte med anvÀndningen", + "Choose": "- VÀlj -", + "CompanyOrganizationName": "Företagets/organisationens namn", + "CompanySize": "Företagets storlek", + "Next": "NÀsta", + "StartTrial": "Starta min kostnadsfria testperiod", + "ContactUsQuestions": "Kontakta oss om du har nÄgra frÄgor", + "TrialActivatedWarning": "En anvÀndare har endast rÀtt till 1 gratis provperiod. Du har redan anvÀnt din provperiod.", + "ActivationRequirement": "Du Àr bara ett steg frÄn att starta din provperiod.
Efter att ha kontrollerat din information aktiverar vi din licens. NÀr din licens Àr aktiverad skickar vi ett e-postmeddelande till {0}. Oroa dig inte, den hÀr processen kommer inte att ta lÄng tid!", + "SaveAndDownload": "Spara och ladda ner", + "CompanyNameValidationMessage": "Företagsnamnet Àr för lÄngt!", + "AddressValidationMessage": "Adressen Àr för lÄng!", + "TaxNoValidationMessage": "TAX/VAT Nej Àr för lÄngt!", + "NotesValidationMessage": "AnteckningsfÀltet Àr för lÄngt!", + "CheckYourBillingInfo": "Du kan bara skapa din faktura en gÄng! Kontrollera din faktureringsinformation innan du skapar din faktura.", + "StartYourFreeTrial": "Starta din kostnadsfria testperiod", + "TrialLicenseModelInvalidErrorMessage": "Ett av följande fÀlt Àr ogiltigt: Landsnamn, Företagsstorlek, Bransch eller Syfte med anvÀndning.", + "Trial": "RÀttegÄng", + "Purchased": "Köpte", + "PurchaseNow": "Köp nu", + "PurchaseTrialLicenseMessage": "Din licens utgÄngsdatum Àr {0}.
Om du vill fortsĂ€tta anvĂ€nda de projekt som du skapade under din kostnadsfria testperiod mĂ„ste du Ă€ndra licensnycklarna i dina appsettings.secrets.json-filer. HĂ€r Ă€r din licensnyckel:", + "TrialLicenseExpireMessage": "Du anvĂ€nder en testlicens och din testlicens upphör att gĂ€lla den {0}.", + "TryForFree": "Prova gratis", + "TrialLicenseExpiredInfo": "Din testlicensperiod har löpt ut!", + "DowngradeLicensePlan": "Kan jag nedgradera till en lĂ€gre licensplan i framtiden?", + "DowngradeLicensePlanExplanation": "Du kan inte nedgradera din befintliga licensplan. Men du kan köpa en ny lĂ€gre licensplan och fortsĂ€tta din utveckling pĂ„ den nya licensen. NĂ€r du har köpt en lĂ€gre licens behöver du bara logga in pĂ„ din nya licensplan via ABP CLI-kommandot: ` abp login -o `.", + "LicenseTransfer": "Kan en licens överföras frĂ„n en utvecklare till en annan?", + "LicenseTransferExplanation": "Ja, det gör jag! NĂ€r du köper en licens blir du licensinnehavare och fĂ„r dĂ€rmed tillgĂ„ng till sidan för organisationshantering. En organisation har rollerna Ă€gare och utvecklare. Ägare kan hantera utvecklarplatserna och tilldela utvecklare. Varje tilldelad utvecklare loggar in via ABP CLI-kommandot i systemet och har utvecklings- och supportbehörighet.", + "UserOwnerDescription": "Organisationens \"Ă€gare\" Ă€r administratör för detta konto. Han/hon hanterar organisationen genom att köpa licenser och tilldela utvecklare. En \"Ă€gare\" kan inte skriva kod i ABP-projekten, kan inte ladda ner ABP-exempelprojekten och kan inte stĂ€lla frĂ„gor pĂ„ supportwebbplatsen. Om du vill göra allt detta mĂ„ste du ocksĂ„ lĂ€gga till dig sjĂ€lv som utvecklare.", + "UserDeveloperDescription": "\"Utvecklarna\" kan skriva kod i ABP-projekten, ladda ner ABP:s exempelprojekt och stĂ€lla frĂ„gor pĂ„ supportwebbplatsen. Å andra sidan kan \"utvecklarna\" inte hantera den hĂ€r organisationen.", + "RemoveCurrentUserFromOrganizationWarningMessage": "Du tar bort dig sjĂ€lv frĂ„n din egen organisation. Du kommer inte lĂ€ngre att kunna hantera den hĂ€r organisationen, bekrĂ€ftar du det?", + "RenewExistingOrganizationOrCreateNewOneMessage": "Du kan förnya licensen för din organisation (er) genom att klicka pĂ„ nedanstĂ„ende \"FörlĂ€ng nu\"-knapp (ar) och dĂ€rmed kan du förlĂ€nga licensens utgĂ„ngsdatum med 1 Ă„r. Om du fortsĂ€tter till kassan kommer du att ha en ny organisation. Vill du fortsĂ€tta med en ny organisation?", + "PurchaseTrialOrganizationOrCreateNewOneMessage": "Du har en testlicens. För att köpa din testlicens klickar du pĂ„ knappen Köp nu. Om du fortsĂ€tter till kassan kommer du att ha en ny organisation. Vill du fortsĂ€tta med en ny organisation?", + "ExtendNow": "FörlĂ€nga / Förnya", + "CreateNewOrganization": "Skapa en ny organisation", + "RenewLicenseEarly": "Om jag förnyar min licens tidigt, kommer jag att fĂ„ hela Ă„ret?", + "RenewLicenseEarylExplanation": "NĂ€r du förnyar din licens före licensens utgĂ„ngsdatum kommer 1 Ă„r att lĂ€ggas till licensens utgĂ„ngsdatum. Om din licens t.ex. löper ut den {0}-06-06 och du förnyar den den {0}-01-01, kommer din nya licens att löpa ut den {1}-06-06.", + "OpenSourceWebApplication": "Webbapplikation med öppen kĂ€llkod", + "CompleteWebDevelopment": "En komplett webbutveckling", + "ABPFrameworkDescription": "ABP Framework Ă€r en komplett infrastruktur för att skapa moderna webbapplikationer genom att följa de bĂ€sta metoderna för mjukvaruutveckling och konventioner.", + "CommunityDescription": "Dela dina erfarenheter av ABP-ramverket!", + "GetStarted": "Kom igĂ„ng", + "Views": "utsikt", + "LatestPosts": "Senaste inlĂ€gg", + "PreBuiltApplication": "Förbyggd applikation", + "DatabaseProviders": "Databasleverantörer", + "UIFrameworks": "Ramverk för anvĂ€ndargrĂ€nssnitt", + "UsefulLinks": "AnvĂ€ndbara lĂ€nkar", + "Platform": "Plattform", + "CoolestCompaniesUseABPCommercial": "De coolaste företagen anvĂ€nder redan ABP.", + "UserInterface": "AnvĂ€ndargrĂ€nssnitt", + "APIGateway": "API-gateway", + "Microservice": "Mikroservice", + "Database": "Databas", + "Architecture": "Arkitektur", + "MicroserviceArchitectureExplanation": "Det hĂ€r Ă€r en komplett lösningsarkitektur som bestĂ„r av flera applikationer, API-gateways, mikrotjĂ€nster och databaser för att bygga en skalbar mikrotjĂ€nstlösning med den senaste tekniken.", + "BusinessLogic": "AffĂ€rslogik", + "DataAccessLayer": "DataĂ„tkomstskikt", + "Monolith": "Monolit", + "ModularArchitectureExplanation": "Denna startup-mall ger en skiktad, modulĂ€r och DDD-baserad lösningsarkitektur för att bygga en ren och underhĂ„llbar kodbas.", + "SeeDetails": "Se detaljer", + "SeeDocumentation": "Kolla in dokumentationen", + "Bs5Compatible": "Professionellt tema som Ă€r kompatibelt med Bootstrap 5, perfekt för din administratörswebbplats.", + "LeptonXTheme": "LeptonX tema", + "LeptonXDark": "LeptonX Mörk", + "LeptonXLight": "LeptonX Ljus", + "LeptonXSemiDark": "LeptonX Halvmörk", + "BuiltOnBs5Library": "Byggd pĂ„ Bootstrap 5-biblioteket", + "FullyCompatibleWithBs5": "100% kompatibel med Bootstrap 5 HTML-struktur och CSS-klasser", + "ResponsiveAndMobileCompatible": "Responsiv, mobilkompatibel, RTL-stöd", + "ProvidesStylesForDatatables": "TillhandahĂ„ller stilar för datatabeller", + "MultipleLayoutOptions": "Flera layoutalternativ", + "EasilyInstallAndUpgrade": "Enkel installation och uppgradering", + "SupportForum": "Forum för support", + "TrustedBy": "Betrodda av", + "OurPricing": "VĂ„r prissĂ€ttning", + "Plans": "Planer", + "NameSurname": "Namn Efternamn", + "Unspecified": "Ospecificerad", + "LicenceType": "Typ av licens", + "LicenseDiscountWarning": "DENNA RABATTSIDA ANVÄNDER STANDARD RABATTKOD OCH FÖR VOLOSOFT UTVECKLARE. INKÖPSLÄNKAR NEDAN FUNGERAR INTE.", + "DiscountedLicenseExplanation": "Dessa licenspriser Ă€r avsedda för smĂ„ nystartade företag, enskilda utvecklare, studenter, ideella organisationer och projekt!", + "General": "AllmĂ€nt", + "License": "Licens", + "Development": "Utveckling", + "Payment": "Betalning", + "WatchExplainerVideo": "LĂ„t oss trĂ€ffas! Titta pĂ„ förklarande video", + "LightDarkAndSemiDarkThemes": "Ljus, mörk och halvmörk", + "LeptonXThemeExplanation": "Lepton Theme kan Ă€ndra ditt tema enligt dina systeminstĂ€llningar.", + "PRO": "PRO", + "WelcomeToABPCommercial": "VĂ€lkommen till ABP Platform!", + "YourAccountDetails": "Dina kontouppgifter", + "OrganizationName": "Organisationens namn", + "AddDevelopers": "LĂ€gg till utvecklare", + "StartDevelopment": "Starta utveckling", + "CreateAndRunApplicationUsingStartupTemplate": "LĂ€r dig hur du skapar och kör en ny webbapplikation med hjĂ€lp av ABP:s startmallar.", + "CommunityDescription2": "community.abp.io Ă€r en plats dĂ€r mĂ€nniskor kan dela ABP-relaterade artiklar. Sök efter artiklar, handledningar, kodprover, fallstudier och trĂ€ffa mĂ€nniskor som Ă€r i samma spĂ„r som du.", + "UseABPSuiteExplanation": "AnvĂ€nd ABP Suite för att ladda ner kĂ€llkoden för modulerna och temana.", + "ManageModulesWithSuite": "Du kan ocksĂ„ hantera dina ABP-moduler med Suite.", + "LearnHowToInstallSuite": "LĂ€r dig hur du installerar och anvĂ€nder ABP Suite.", + "SeeMore": "Se mer", + "SeeLess": "Se mindre", + "LayeredSolutionStructure": "Struktur med flera lager av lösningar", + "LayeredSolutionStructureExplanation": "Lösningen Ă€r uppbyggd i lager baserat pĂ„ principer och mönster för domĂ€ndriven design för att isolera affĂ€rslogiken frĂ„n infrastruktur och integrationer och för att maximera underhĂ„ll och Ă„teranvĂ€ndning av koden. ABP Framework tillhandahĂ„ller redan abstraktioner, basklasser och guider för att verkligen implementera DDD för din applikation.", + "MultipleUIOptions": "Flera alternativ för anvĂ€ndargrĂ€nssnitt", + "MultipleUIOptionsExplanation": "Vi Ă€lskar olika sĂ€tt att skapa anvĂ€ndargrĂ€nssnitt. Den hĂ€r startup-lösningen ger tre olika alternativ för anvĂ€ndargrĂ€nssnitt för din affĂ€rsapplikation.", + "MultipleDatabaseOptions": "Flera databasalternativ", + "MultipleDatabaseOptionsExplanation": "Du har tvĂ„ alternativ för databasleverantörer (förutom att du kan anvĂ€nda bĂ„da i en och samma applikation). AnvĂ€nd Entity Framework Core för att arbeta med alla relationsdatabaser och anvĂ€nd eventuellt Dapper nĂ€r du behöver skriva lĂ„gnivĂ„frĂ„gor för bĂ€ttre prestanda. MongoDB Ă€r ett annat alternativ om du behöver anvĂ€nda en dokumentbaserad NoSQL-databas. Även om dessa leverantörer Ă€r vĂ€lintegrerade, abstraherade och förkonfigurerade kan du faktiskt interagera med alla databassystem som du kan anvĂ€nda med .NET.", + "ModularArchitectureExplanation2": "Modularitet Ă€r en första klassens medborgare i ABP.IO-plattformen. Alla applikationsfunktionaliteter Ă€r uppdelade i vĂ€lisolerade valfria moduler. Startlösningen levereras redan med de grundlĂ€ggande ABP-modulerna förinstallerade. Du kan ocksĂ„ skapa dina egna moduler för att bygga ett modulĂ€rt system för din egen applikation.", + "MultiTenancyForSaasBusiness": "Multi-Tenancy för ditt SaaS-företag", + "MultiTenancyForSaasBusinessExplanation": "ABP tillhandahĂ„ller ett komplett, end-to-end multi-tenancy-system för att skapa dina SaaS-system (Software-as-a-Service). Det gör det möjligt för hyresgĂ€sterna att dela eller ha sina egna databaser med on-the-fly databasskapande och migrationssystem.", + "MicroserviceStartupSolution": "Microservice Startup-lösning", + "MicroserviceArchitectureExplanation2": "Du kan skaffa det till ditt nĂ€sta microservice-system för att dra nytta av den förbyggda baslösningen och destillerade erfarenheten.", + "PreIntegratedTools": "Förintegrerad i populĂ€ra verktyg", + "PreIntegratedToolsExplanation": "Lösningen Ă€r redan integrerad i branschens standardverktyg och -tekniker, men du kan alltid Ă€ndra dem och integrera dem med dina favoritverktyg.", + "SingleSignOnAuthenticationServer": "Server för autentisering med enkel inloggning", + "SingleSignOnAuthenticationServerExplanation": "Lösningen har en autentiseringsserverapplikation som anvĂ€nds av de andra applikationerna som en server för enkel inloggning med API-Ă„tkomsthanteringsfunktioner. Den Ă€r baserad pĂ„ IdentityServer.", + "WebAppsWithGateways": "2 Webbapp med 2 API-gateways", + "WebAppsWithGatewaysExplanation": "Lösningen innehĂ„ller tvĂ„ webbapplikationer som var och en har en dedikerad API-gateway (BFF - Backend For Frontend-mönster).", + "BackOfficeApplication": "Back Office-applikation", + "BackOfficeApplicationExplanation": "Den faktiska webbapplikationen för ditt system, med flera alternativ för anvĂ€ndargrĂ€nssnitt. Du kan skapa alla typer av affĂ€rsapplikationer.", + "LandingWebsite": "Landningswebbplats", + "LandingWebsiteExplanation": "En generisk landningsplats/publik webbplats som kan anvĂ€ndas för flera Ă€ndamĂ„l, t.ex. för att presentera ditt företag, sĂ€lja dina produkter osv.", + "ABPFrameworkEBook": "Mastering ABP Framework e-bok", + "MasteringAbpFrameworkEBookDescription": "IngĂ„r i din ABP-licens", + "FullName": "Full Name", + "LicenseTypeNotCorrect": "Licenstypen Ă€r inte korrekt!", + "Trainings": "Utbildningar", + "ChooseTrainingPlaceholder": "VĂ€lj utbildning...", + "DoYouNeedTrainings": "Behöver du nĂ„gon av dessa utbildningar?", + "DoYouNeedTraining": "Behöver du {0} utbildning?", + "GetInTouchUs": "Ta kontakt med oss", + "ForMoreInformationClickHere": "För mer information, klicka hĂ€r.", + "ForMoreInformationClickHereByClass": "För mer information, klicka hĂ€r.", + "IsGetOnboardingTraining": "Vill du fĂ„ utbildning i onboarding och utveckling av webbapplikationer?", + "OnboardingWebApplicationDevelopmentTrainingMessage": "För att schemalĂ€gga din utbildningskalender, vĂ€nligen kontakta {0} efter att du har skapat organisationen", + "CustomPurchaseMessage": "För nĂ€sta steg, klicka pĂ„ {0} för att kontakta oss.", + "Note": "Notera", + "AdditionalNote": "Ytterligare anmĂ€rkning", + "OnboardingTrainingFaqTitle": "Har du en ABP onboarding-utbildning?", + "OnboardingTrainingFaqExplanation": "Ja, vi har ABP Training Services som hjĂ€lper dig att snabbt komma igĂ„ng med ditt ABP-projekt. Du kommer att lĂ€ra dig om ABP frĂ„n en medlem i ABP:s kĂ€rnteam och du kommer att fĂ„ de fĂ€rdigheter som krĂ€vs för att starta ditt ABP-projekt. I onboarding-utbildningen förklarar vi hur du stĂ€ller in din utvecklingsmiljö, installerar de nödvĂ€ndiga verktygen och skapar en fullt fungerande CRUD-sida. Utbildningen kommer att vara live och Zoom-applikationen kommer att anvĂ€ndas, men vi Ă€r öppna för att anvĂ€nda andra online-mötesplattformar. SprĂ„ket för utbildningen kommer att vara engelska. Du kan ocksĂ„ stĂ€lla dina frĂ„gor om ABP under sessionerna. En lĂ€mplig tid och ett lĂ€mpligt datum kommer att planeras för bĂ„da parter. För att fĂ„ mer information, kontakta oss pĂ„ info@abp.io.", + "AddBasket": "LĂ€gg till i korgen", + "SendTrainingRequest": "Skicka förfrĂ„gan om utbildning", + "OnlyEnglishVersionOfThisDocumentIsTheRecentAndValid": "* Den engelska versionen av detta dokument Ă€r den mest aktuella och den engelska versionen ska ha företrĂ€de i alla tvister.", + "Pricing_Page_Title": "Priser och planer", + "Pricing_Page_Description": "VĂ€lj de funktioner och den funktionalitet som ditt företag behöver idag. Köp en ABP-licens och skapa obegrĂ€nsat med projekt.", + "Pricing_Page_HurryUp": "Skynda dig!", + "Pricing_Page_BuyLicense": "Köp en licens till 2021 Ă„rs priser fram till den 16 januari!", + "Pricing_Page_ValidForExistingCustomers": "GĂ€ller Ă€ven för befintliga kunder och licensförnyelser.", + "Pricing_Page_Hint1": "I licenspriset ingĂ„r ett visst antal platser för utvecklare. Om du har fler utvecklare kan du alltid köpa ytterligare platser.", + "Pricing_Page_Hint2": "Du kan köpa fler utvecklarlicenser nu eller i framtiden. Licenserna Ă€r platsbaserade, vilket innebĂ€r att du kan överföra en plats frĂ„n en utvecklare till en annan.", + "Pricing_Page_Hint3": "Du kan utveckla ett obegrĂ€nsat antal olika produkter med din licens.", + "Pricing_Page_Hint4": "ABP Suite Ă€r ett verktyg som hjĂ€lper dig att utveckla och förbĂ€ttra din produktivitet. Det stöder generering av CRUD-sidor och skapande av nya projekt.", + "Pricing_Page_Hint5": "Du kan anvĂ€nda alla de förbyggda modulerna i dina applikationer.", + "Pricing_Page_Hint6": "Du kan anvĂ€nda alla de förbyggda temana i dina applikationer.", + "Pricing_Page_Hint7": "En startmall Ă€r en Visual Studio-lösning som hjĂ€lper dig att komma igĂ„ng med ditt projekt. Alla grundlĂ€ggande moduler lĂ€ggs till och förkonfigureras Ă„t dig.", + "Pricing_Page_Hint8": "Mastering ABP Framework e-bok förklarar hur man implementerar .NET-lösningar med bĂ€sta praxis. Den sĂ€ljs pĂ„ Amazon.com, och du kan ladda ner boken gratis med din licens.", + "Pricing_Page_Hint9": "Du kan ladda ner kĂ€llkoden för alla moduler. Du kanske vill lĂ€gga till kĂ€llkoden i din lösning för att göra radikala Ă€ndringar eller bara behĂ„lla den för dig sjĂ€lv av sĂ€kerhetsskĂ€l.", + "Pricing_Page_Hint10": "Licenserna Ă€r livstidsbaserade. Det innebĂ€r att du kan fortsĂ€tta att utveckla din applikation för alltid. TillgĂ„ng till den senaste versionen och support beviljas inom licensperioden (1 Ă„r om du inte förnyar den).", + "Pricing_Page_Hint11": "Inga begrĂ€nsningar för driftsĂ€ttning! Du kan distribuera till sĂ„ mĂ„nga servrar som du vill, inklusive molntjĂ€nster eller lokalt.", + "Pricing_Page_Hint12": "Du kan uppdatera moduler, teman och verktyg till den senaste versionen inom din aktiva licensperiod. NĂ€r din licens löper ut mĂ„ste du förnya den för att fortsĂ€tta att fĂ„ uppdateringar för buggfixar, nya funktioner och förbĂ€ttringar.", + "Pricing_Page_Hint13": "Du kan fĂ„ premiumsupport i ett Ă„r (du kan förnya din licens för att förlĂ€nga den).", + "Pricing_Page_Hint14": "Team- och Business-licenser har en grĂ€ns för antal incidenter/frĂ„gor. Om du köper ytterligare utvecklarlicenser ökar incidentgrĂ€nsen med {0} (för Team-licensen) eller {1} (för Business-licensen) per utvecklare.", + "Pricing_Page_Hint15": "Endast Enterprise License inkluderar privat support. Du kan skicka ett e-postmeddelande direkt till ABP-teamet eller stĂ€lla frĂ„gor pĂ„ support.abp.io med ett privat biljettalternativ. De privata Ă€rendena Ă€r inte synliga för allmĂ€nheten.", + "Pricing_Page_Hint16": "Du kan ladda ner kĂ€llkoden för alla ABP-teman. Du kanske vill lĂ€gga till kĂ€llkoden i din lösning för att göra radikala Ă€ndringar eller bara behĂ„lla den för dig sjĂ€lv av sĂ€kerhetsskĂ€l.", + "Pricing_Page_Testimonial_1": "ABP gjorde det möjligt för SC Ventures att leverera en bankklassad SaaS-plattform med silodatabas med flera hyresgĂ€ster pĂ„ 9 mĂ„nader för att stödja leverantörskedjans kundfordringar / leverantörsskulder för finansiering av fakturor med betydande vĂ€rde frĂ„n flera integrerade ankare. ABP:s modularitet gjorde det möjligt för teamet att leverera pĂ„ rekordtid, klara alla VAPT och distribuera den containeriserade mikrotjĂ€nststacken via fullstĂ€ndig CI/CD och pipelines till produktion.", + "Pricing_Page_Testimonial_2": "Vi ser vĂ€rdet av att anvĂ€nda ABP för att minska omkostnaderna för kundanpassade utvecklingsprojekt. Teamet kan förena kodmönstret i olika projektströmmar. Vi ser mer potential i ramverket för att vi ska kunna bygga nya funktioner snabbare Ă€n tidigare. Vi litar pĂ„ att vi stĂ€ndigt kommer att se vĂ€rdet av att utnyttja ABP.", + "Pricing_Page_Testimonial_3": "Vi Ă€lskar ABP. Vi behöver inte skriva allt frĂ„n grunden. Vi utgĂ„r frĂ„n out-of-the-box-funktioner och fokuserar bara pĂ„ det vi verkligen behöver skriva. Dessutom Ă€r ABP vĂ€larkitekterat och koden Ă€r av hög kvalitet med fĂ€rre buggar. Om vi hade varit tvungna att skriva allt vi behövde pĂ„ egen hand hade vi kanske fĂ„tt lĂ€gga ner flera Ă„r. Ytterligare en sak vi gillar Ă€r att den nya versionen, problemfixningen eller förbĂ€ttringen kommer ut vĂ€ldigt snart, varannan vecka. Vi vĂ€ntar inte för lĂ€nge.", + "Pricing_Page_Testimonial_4": "ABP Ă€r en fantastisk produkt som jag skulle rekommendera. Kommersiella produkter till marknaden för vĂ„ra kunder i en enda konfigurerbar plattform. Den starthjĂ€lp som ramverket och verktygen ger alla team Ă€r vĂ€rd varenda cent. ABP var det som passade bĂ€st för vĂ„ra behov.", + "Pricing_Page_Testimonial_5": "ABP Framework Ă€r inte bara ett ramverk, utan det Ă€r ocksĂ„ en guide för projektutveckling/hantering, eftersom det ger utbildning i DDD, GenericRepository, DI, Microservice och Modularity. Även om du inte kommer att anvĂ€nda sjĂ€lva ramverket kan du utveckla dig sjĂ€lv med docs.abp.io som Ă€r vĂ€l och professionellt förberedd (OpenIddict, Redis, Quartz etc.). Eftersom mĂ„nga saker Ă€r förbyggda förkortar det projektutvecklingstiden avsevĂ€rt (t.ex. inloggningssida, undantagshantering, datafiltrering, sĂ„dd, revisionsloggning, lokalisering, automatisk API-kontroller etc.) Som ett exempel frĂ„n vĂ„r applikation har jag anvĂ€nt Local Event Bus för lagerstyrning. SĂ„ jag kan hantera orderrörelser genom att skriva lagerhanterare. Det Ă€r underbart att inte förlora tid för CreationTime, CreatorId. De fylls i automatiskt.", + "Pricing_Page_Testimonial_6": "ABP Framework Ă€r ett bra ramverk men det tar tid att förstĂ„ de olika lager, klasser och bibliotek som det anvĂ€nder (sĂ€rskilt ABP). Jag spenderade mycket tid pĂ„ att lĂ€sa kodbasen, men ABP sparade oss tid nĂ€r vi skapade projektspecialitetsenheterna (AR) och förvaret kopplat till var och en av dem. Jag gillade ocksĂ„ att den metod som anvĂ€nds i ABP Ă€r mycket mogen; vi vet att den Ă€r baserad pĂ„ DDD och monolit.", + "Pricing_Page_Testimonial_7": "Som ett nystartat företag mĂ„ste vi iterera snabbt och spendera minimal tid pĂ„ standardfunktioner och icke-kĂ€rnfunktioner.\nVĂ„ra ingenjörer strĂ€cker sig frĂ„n mycket erfarna till juniora ingenjörer, och vi behövde en gemensam förstĂ„else och ett sĂ€tt att dela teknisk och domĂ€nkunskap, ABP gjorde det möjligt för oss att göra detta tack vare deras fantastiska guider och dokumentation.\nDet finns saker som vi inte har behövt oroa oss för eftersom de fungerar direkt med ABP.\nABP hjĂ€lpte oss att effektivisera snabb prototyping och utveckling, mindre Ă€n 4 veckor frĂ„n funktionsstart till produktion. Med alla premiumfunktioner som ingĂ„r i licensen har ABP gett oss \"Startup in a Box\" pĂ„ Software Engineering-sidan.", + "Pricing_Page_Testimonial_8": "Jag skulle rekommendera ABP till alla som vill utöka utbudet av produkter som Ă€r tillgĂ€ngliga för sina kunder. Det Ă€r fantastiskt nĂ€r man behöver anvĂ€nda en distribuerad företagsmiljö (Angular, WPF, Win&Linux). Förutom deras produkter Ă€lskar vi deras support, som gör vĂ„rt jobb snabbare och enklare. Vi vet redan att vi har hittat en bra partner för framtiden som kommer att stödja oss i att expandera vĂ„r verksamhet.", + "Pricing_Page_Testimonial_9": "Vi Ă€r ett företag med 2 anstĂ€llda som har varit i branschen i över 20 Ă„r.\nNĂ€r det gĂ€ller vĂ„r erfarenhet av ABP kontaktades vi av en kund som ville att vi skulle utveckla en ny personalapplikation i en modern miljö för att ersĂ€tta deras 25 Ă„r gamla Access-applikation. Vi bestĂ€mde oss för att gĂ„ över frĂ„n en desktoplösning till en webbaserad lösning.\n\nVid den tidpunkten hade vi mycket liten kunskap om webbapplikationer och .NET, men vi snubblade över ABP, och med hjĂ€lp av ABP Framework, teknisk dokumentation och ABP Suite kunde vi inte bara utveckla applikationen enligt kundens specifikationer utan ocksĂ„ framgĂ„ngsrikt arbeta i en .NET-miljö inom ett Ă„r.", + "AbpBookDownloadArea_ClaimYourEBook": "Gör ansprĂ„k pĂ„ din e-bok om ABP Framework", + "AddMemberModal_Warning_1": "Om det anvĂ€ndarnamn som du försöker lĂ€gga till inte finns i systemet, be din teammedlem att registrera sig pĂ„ {0} och dela anvĂ€ndarnamnet pĂ„ hans/hennes konto med dig.", + "MyOrganizations_Detail_WelcomeMessage": "VĂ€lkommen till din organisation, {0}", + "MyOrganizations_Detail_OrganizationManagement": "Organisation Förvaltning", + "OrganizationDisplayName": "Organisationens visningsnamn", + "MyOrganizations_Detail_EditDisplayName": "Redigera visningsnamn", + "MyOrganizations_Detail_UpgradeYourLicense": "Uppgradera din licens", + "MyOrganizations_Detail_LicenseStartAndExpiryDate": "Licensens startdatum - utgĂ„ngsdatum", + "MyOrganizations_Detail_OwnerRightInfo": "Du anvĂ€nder {0} av din {1} Ă€gares rĂ€ttigheter.", + "MyOrganizations_Detail_CopyApiKey": "Kopiera nyckeln", + "MyOrganizations_Detail_ApiKeyDescription": "API-nyckeln Ă€r token för PRO-paket som finns pĂ„ {1}.", + "MyOrganizations_Detail_YourPrivateNugetSource": "Din privata NuGet-kĂ€lla Ă€r {0}", + "MyOrganizations_Detail_PrivateNugetSourceWarning": "Detta lĂ€ggs automatiskt till som en feed till din NuGet.Config i din ABP-lösning. Dela inte din privata nyckel med obehöriga anvĂ€ndare!", + "MyOrganizations_Detail_DeveloperSeatInfo": "Du anvĂ€nder {0} av dina {1} platser för utvecklare.", + "NeedMoreSeatsForYourTeam": "Behöver du fler platser för ditt team?", + "MyOrganizations_Detail_PricePerYear": "{0} / per Ă„r", + "MyOrganizations_Detail_PurchaseDeveloperSeats": "Köpa platser för utvecklare", + "Invoices": "Fakturor", + "RequestInvoice": "BegĂ€r faktura", + "OrderNumber": "BestĂ€llningsnummer", + "Date": "Datum", + "Products": "Produkter", + "TotalPrice": "Totalt pris", + "ThereIsNoInvoice": "Det finns ingen faktura", + "MyOrganizations_Detail_PaymentProviderInfo": "Om du har köpt din licens via {0} gateway skickas PDF-fakturan till din e-postadress, se {0} fakturering.", + "MyOrganizations_Detail_PayUInfo": "Om du har köpt via Iyzico-gatewayen klickar du pĂ„ knappen \"BegĂ€r faktura\" och fyller i faktureringsinformationen.", + "MyOrganizations_Detail_ConclusionInfo": "Din fakturabegĂ€ran kommer att behandlas inom {0} arbetsdagar.", + "ExtendYourLicense": "FörlĂ€ng din {0} licens", + "Continue": "FortsĂ€tt", + "PurchaseLicense": "Köp {0} licens", + "DownloadInvoiceModal_DownloadInvoice": "Ladda ner faktura", + "DownloadInvoiceModal_SaveInformationOnlyOnce": "Du kan bara spara din faktureringsinformation en gĂ„ng.", + "InvoiceModal_EnterCompanyName": "Ange ditt juridiska företagsnamn...", + "InvoiceModal_EnterCompanyAddress": "Ange din juridiska företagsadress...", + "InvoiceModal_EnterTaxNumber": "Ange ditt TAX/VAT-nummer om det finns tillgĂ€ngligt...", + "RequestInvoiceModal_EnterNotes": "Ytterligare information för din faktura... Denna anteckning kommer att skrivas i anteckningsavsnittet pĂ„ fakturan.", + "PrePayment_PayWithIyzico": "Du kommer att betala med Iyzico", + "ContinueToCheckout": "FortsĂ€tt till kassan", + "PrePayment_IyzicoRedirectionInfo": "Du kommer att omdirigeras till Iyzico Payment Gateway för att slutföra ditt köp pĂ„ ett sĂ€kert sĂ€tt.", + "PrePayment_IyzicoAcceptVisaAndMasterCard": "Iyzico tar emot Visa och MasterCard.", + "Purchase": "Köp", + "AcceptTermsAndConditions": "Jag har lĂ€st, förstĂ„tt och accepterar integritetspolicy, villkor och EULA.", + "AcceptTermsAndConditionsWarningMessage": "VĂ€nligen acceptera integritetspolicyn och villkoren", + "SelectGatewayToContinue": "VĂ€nligen vĂ€lj en Gateway för att fortsĂ€tta!", + "GatewaySelection_SelectGateway": "VĂ€lj en betalningsportal", + "GatewaySelection_RedirectionMessage": "DĂ€refter kommer du att omdirigeras till den valda betalningsgatewayens webbplats för transaktionen.", + "PaymentSucceed_PaymentSuccessMessage": "Betalning framgĂ„ngsrik", + "PaymentSucceed_ThanksForPurchase": "Tack för ditt köp!", + "PaymentSucceed_CreateYourOrganization": "Skapa din organisation", + "PaymentSucceed_AddMeAsDeveloper": "Jag Ă€r ocksĂ„ utvecklare, lĂ€gg till mig som utvecklare i min organisation.", + "PaymentSucceed_CreateOrganization": "Skapa organisation", + "PaymentSucceed_OrganizationDescription": "En organisation bestĂ„r av utvecklare och Ă€gare. Utvecklarna Ă€r anvĂ€ndare som skriver kod pĂ„ ABP-projektet och som kommer att dra nytta av webbplatsen {1}. Ägarna Ă€r anvĂ€ndare som tilldelar utvecklarplatser och hanterar licensiering.", + "PaymentSucceed_ViewOrganization": "Klicka hĂ€r för att se organisationen", + "Purchase_TotalAnnualPrice": "TOTALT (Ă„rsavgift)", + "Purchase_TrainingPrice": "Pris för utbildning", + "Purchase_OnboardingTraining": "Live-utbildning i onboarding och utveckling av webbapplikationer", + "TotalDeveloperPrice": "Totalt pris för utvecklare", + "Purchase_PricePerDeveloper": "{0} per utvecklare", + "Purchase_IncludedDeveloperInfo": "{0} {1} ingĂ„r.", + "Purchase_LicenseExtraDeveloperPurchaseMessage": "I {0} licens ingĂ„r {1} utvecklare. Du kan lĂ€gga till ytterligare utvecklare.", + "StartupTemplates_Page_Title": "ABP Startup Mallar", + "StartupTemplates_Page_Description": "Med ABP kan du bygga lösningar med valfri komplexitetsnivĂ„. Det ger tvĂ„ huvudsakliga förbyggda startlösningar. Du kan vĂ€lja den som ligger nĂ€rmast dina krav och bygga din egen anpassade lösning ovanpĂ„ den.", + "MicroserviceStartupSolutionForDotnet": "Microservice Startup-lösning för .NET", + "MonolithSolutionForDotnet": "Monolitisk (modulĂ€r) lösning för .NET", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} timmar", + "Trainings_Content": "Utbildningens innehĂ„ll", + "Trial_Page_StartYourFreeTrial": "Starta din gratis provperiod.", + "TrialLicenseFeatures": "Du kommer att kunna dra nytta av alla ABP:s kommersiella funktioner", + "TrialPeriodDays": "Du kommer att ha en {0} dagars teamlicens", + "TrialForumSupportIncident": "Du kommer att ha {0} forum support incidenter", + "Contact_Page_Title": "Kontakt med ABP:s utvecklingsteam", + "Contact_Page_Description": "Kontakta ABP:s utvecklingsteam om du behöver hjĂ€lp eller dela med dig av dina tankar och Ă„sikter! ABP Support Team Ă€r redo att hjĂ€lpa till.", + "Demo_Page_Title": "Skapa en demo", + "Demo_Page_Description": "Skapa en gratis demo för att se ett exempel pĂ„ en ansökan som skapats med hjĂ€lp av ABP:s startmallar. Upprepa inte dig sjĂ€lv för vanliga applikationskrav.", + "Discounted_Page_Title": "Rabatterad prissĂ€ttning", + "Discounted_Page_Description": "VĂ€lj de funktioner och den funktionalitet som ditt företag behöver redan idag. Köp en ABP-licens och skapa obegrĂ€nsat med projekt", + "Faq_Page_Title": "Vanliga frĂ„gor och svar (FAQ)", + "Faq_Page_Description": "Har du nĂ„gra frĂ„gor eller funderingar? Sök bland vanliga frĂ„gor eller stĂ€ll en frĂ„ga till oss via kontaktformulĂ€ret.", + "Faq_Page_SwiftCode": "SWIFT-kod", + "Faq_Page_BankName": "Bankens namn", + "Faq_Page_AccountName": "Kontots namn", + "Faq_Page_AccountNumber": "Kontonummer", + "Faq_Page_Currency": "Valuta", + "Faq_Page_VatNumber": "Momsregistreringsnummer", + "Faq_Page_OtherCurrenciesInfo": "För andra valutor, se alla konton", + "ProjectCreatedSuccess_Page_Title": "Ditt projekt skapat", + "ProjectCreatedSuccess_Page_Description": "Ditt ABP-projekt har skapats framgĂ„ngsrikt!", + "Suite_Page_Title": "ABP-svit", + "Suite_Page_Description": "ABP tillhandahĂ„ller verktyg för snabb applikationsutveckling för att öka utvecklarens produktivitet. Med ABP Suite kan du enkelt skapa CRUD-sidor.", + "Themes_Page_Title": "ABP Teman", + "Themes_Page_Description": "ABP tillhandahĂ„ller flera professionella, moderna UI-teman. Skapa en gratis demo för att fĂ„ en snabb bild av hur anvĂ€ndargrĂ€nssnittet ser ut.", + "Tools_Page_Title": "Verktyg för snabb applikationsutveckling", + "Tools_Page_Description": "ABP tillhandahĂ„ller verktyg för snabb applikationsutveckling för att öka utvecklarens produktivitet. Med ABP Suite kan du enkelt skapa CRUD-sidor.", + "DeveloperPrice": "Pris för utvecklare", + "AdditionalDeveloperPaymentInfoSection_AdditionalDevelopers": "{0} utvecklare", + "LicenseRemainingDays": "för {0} dagar", + "ExtendPaymentInfoSection_Description": "Genom att förlĂ€nga/förnya din licens kommer du att fortsĂ€tta att fĂ„ premium support. Du kommer ocksĂ„ att kunna fĂ„ större eller mindre uppdateringar för moduler och teman. Du kommer att kunna fortsĂ€tta skapa nya projekt. Och du kommer fortfarande att kunna anvĂ€nda ABP Suite som pĂ„skyndar din utveckling.", + "LicenseRenewalPrice": "Pris för förnyelse av licens", + "LicensePrice": "Licenspris", + "TrialLicensePaymentInfoSection_Description": "Köp licens: Genom att köpa en licens kommer du att fortsĂ€tta att fĂ„ premium support. Du kommer ocksĂ„ att kunna fĂ„ större eller mindre uppdateringar för moduler och teman. Du kommer att kunna fortsĂ€tta skapa nya projekt. Och du kommer fortfarande att kunna anvĂ€nda ABP Suite som pĂ„skyndar din utveckling.
Se jĂ€mförelsetabellen för licenser för att kontrollera skillnaderna mellan licenstyperna.", + "SelectTargetLicense": "VĂ€lj mĂ„llicens", + "UpgradePaymentInfoSection_ExtendMyLicenseForOneYear": "Ja, förlĂ€nga min licens utgĂ„ngsdatum med 1 Ă„r.", + "UpgradePaymentInfoSection_WantToExtendLicense": "Vill du förlĂ€nga din licens med ytterligare 1 Ă„r?", + "UpgradePaymentInfoSection_UpgradingWillNotExtendLicense": "Uppgradering kommer inte att förlĂ€nga licensens utgĂ„ngsdatum!", + "UpgradePaymentInfoSection_LicenseUpgradeDescription": "Genom att uppgradera din licens kommer du att bli befordrad till en högre licenstyp, vilket gör att du kan fĂ„ ytterligare fördelar. Se jĂ€mförelsetabellen för licenser för att kontrollera skillnaderna mellan licenstyperna.", + "Landing_Page_CustomerStories": "Customer Stories", + "Landing_Page_OurGreatCustomers": "VĂ„ra fantastiska kunder", + "Landing_Page_WebApplicationFramework": "Ramverk för webbapplikationer", + "Landing_Page_WebDevelopmentPlatform": "Plattform för webbutveckling", + "Landing_Page_CompleteWebDevelopmentPlatform": "Komplett plattform för webbutveckling", + "Landing_Page_TryFreeDemo": "Prova gratis demo", + "Landing_Page_StartingPointForWebApplications": "UtgĂ„ngspunkten för ASP.NET Core-baserade webbapplikationer! Den Ă€r baserad pĂ„ ABP-ramverket för bĂ€sta webbutveckling.", + "Landing_Page_AbpProvidesSoftwareInfrastructure": "ABP Framework tillhandahĂ„ller en mjukvaruinfrastruktur för att utveckla utmĂ€rkta webbapplikationer med bĂ€sta praxis.", + "Landing_Page_MicroserviceCompatibleArchitecture": "Kompatibel arkitektur för mikrotjĂ€nster", + "Landing_Page_PreBuiltApplicationModulesAndThemes": "Förbyggda applikationsmoduler och teman", + "Landing_Page_MultiTenantArchitecture": "Arkitektur för flera hyresgĂ€ster", + "Landing_Page_MultiTenancyDescription": "SaaS-applikationer pĂ„ ett enkelt sĂ€tt! Integrerad multi-tenancy frĂ„n databas till anvĂ€ndargrĂ€nssnitt.", + "Landing_Page_DDDIntroduction": "Designad och utvecklad utifrĂ„n DDD-mönster och principer. Ger en skiktad modell för din applikation.", + "Landing_Page_CrossCuttingConcernsInfo": "Komplett infrastruktur för auktorisering, validering, undantagshantering, cachelagring, revisionsloggning, transaktionshantering med mera.", + "Landing_Page_PreBuiltApplicationModules": "Förbyggda applikationsmoduler som omfattar de vanligaste kraven pĂ„ webbapplikationer.", + "Landing_Page_ChatModule": "Chatt", + "Landing_Page_DocsModule": "Dokument", + "Landing_Page_FileManagementModule": "Filhantering", + "Landing_Page_CustomerStory_1": "ABP gjorde det möjligt för SC Ventures att leverera en bankklassad SaaS-plattform med silodatabas med flera hyresgĂ€ster pĂ„ 9 mĂ„nader för att stödja leverantörskedjans kundfordringar / leverantörsskulder för finansiering av fakturor med betydande vĂ€rde frĂ„n flera integrerade ankare. ABP:s modularitet gjorde det möjligt för teamet att leverera pĂ„ rekordtid, klara alla VAPT och distribuera den containeriserade mikrotjĂ€nststacken via fullstĂ€ndig CI/CD och pipelines till produktion.", + "Landing_Page_CustomerStory_2": "Vi ser vĂ€rdet av att anvĂ€nda ABP för att minska omkostnaderna för anpassade utvecklingsprojekt. Teamet kan förenhetliga kodmönstret i olika projektflöden. Vi ser mer potential i ramverket för att vi ska kunna bygga nya funktioner snabbare Ă€n tidigare. Vi litar pĂ„ att vi stĂ€ndigt kommer att se vĂ€rdet av att utnyttja ABP.", + "Landing_Page_CustomerStory_3": "Vi Ă€lskar ABP. Vi behöver inte skriva allt frĂ„n grunden. Vi utgĂ„r frĂ„n out-of-the-box-funktioner och fokuserar bara pĂ„ det vi verkligen behöver skriva. Dessutom Ă€r ABP vĂ€larkitekterat och koden Ă€r av hög kvalitet med fĂ€rre buggar. Om vi hade varit tvungna att skriva allt vi behövde pĂ„ egen hand hade vi kanske fĂ„tt lĂ€gga ner flera Ă„r. Ytterligare en sak som vi gillar Ă€r att den nya versionen, problemfixningen eller förbĂ€ttringen kommer ut mycket snart\n varannan vecka. Vi vĂ€ntar inte för lĂ€nge.", + "Landing_Page_CustomerStory_4": "ABP Ă€r en fantastisk produkt som jag skulle rekommendera. Kommersiella produkter till marknaden för vĂ„ra kunder i en enda konfigurerbar plattform. Den starthjĂ€lp som ramverket och verktygen ger alla team Ă€r vĂ€rd varenda cent. ABP var det som passade bĂ€st för vĂ„ra behov.", + "Landing_Page_AdditionalServices": "Anpassad eller volymlicens, onboarding, liveutbildning och support, anpassad projektutveckling, portning av befintliga projekt och mycket mer...", + "Landing_Page_IncludedDeveloperLicenses": "Inkluderar {0} utvecklarlicenser", + "Landing_Page_SeeOnDemo": "Se pĂ„ Demo", + "Landing_Page_LeptonThemes": "LeptonTema", + "Landing_Page_AccountModuleDescription_1": "Denna modul implementerar autentiseringssystemet för en applikation;", + "Landing_Page_AccountModuleDescription_2": "TillhandahĂ„ller en inloggningssida med anvĂ€ndarnamn och lösenord", + "Landing_Page_AccountModuleDescription_3": "TillhandahĂ„ller en register-sida för att skapa ett nytt konto.", + "Landing_Page_AccountModuleDescription_4": "TillhandahĂ„ller en glömt lösenord-sida för att skicka en Ă„terstĂ€llningslĂ€nk för lösenord som ett e-postmeddelande.", + "Landing_Page_AccountModuleDescription_5": "Ger email confirmation-funktionalitet med UI.", + "Landing_Page_AccountModuleDescription_6": "Implementerar tvĂ„faktor-autentisering (SMS och e-post).", + "Landing_Page_AccountModuleDescription_7": "Implementerar anvĂ€ndarspĂ€rr (lĂ„ser kontot under en viss tid nĂ€r ett visst antal misslyckade inloggningar intrĂ€ffar pĂ„ grund av ogiltiga inloggningsuppgifter inom en viss tidsperiod).", + "Landing_Page_AccountModuleDescription_8": "Implementerar anvĂ€ndargrĂ€nssnitt och funktionalitet för autentiseringsservern Identity Server.", + "Landing_Page_AccountModuleDescription_9": "Gör det möjligt att vĂ€xla mellan hyresgĂ€ster i en miljö med flera hyresgĂ€ster.", + "Landing_Page_AccountModuleDescription_10": "Gör det möjligt att Ă€ndra UI-sprĂ„k i programmet.", + "Landing_Page_AuditLoggingModuleDescription_1": "Den hĂ€r modulen tillhandahĂ„ller grĂ€nssnittet för rapportering av granskningsloggar för granskningsinfrastrukturen. Gör det möjligt att söka, filtrera och visa poster i granskningsloggen och loggar över enhetsĂ€ndringar.", + "Landing_Page_AuditLoggingModuleDescription_2": "En post i granskningsloggen bestĂ„r av kritisk information om varje klientförfrĂ„gan:", + "Landing_Page_AuditLoggingModuleDescription_3": "URL, webblĂ€sare, IP-adress, klientnamn", + "Landing_Page_AuditLoggingModuleDescription_4": "AnvĂ€ndaren", + "Landing_Page_AuditLoggingModuleDescription_5": "HTTP-metod, HTTP-returstatuskod", + "Landing_Page_AuditLoggingModuleDescription_6": "FramgĂ„ng/misslyckande, detaljer om undantag om sĂ„dana finns", + "Landing_Page_AuditLoggingModuleDescription_7": "Tid för genomförande av begĂ€ran", + "Landing_Page_AuditLoggingModuleDescription_8": "Enheterna har skapats, tagits bort eller uppdaterats i denna begĂ€ran (med Ă€ndrade egenskaper).", + "Landing_Page_BloggingModuleDescription_1": "Denna modul lĂ€gger till en enkel blogg i din ABP-applikation;", + "Landing_Page_BloggingModuleDescription_2": "Gör det möjligt att skapa flera bloggar i en och samma applikation.", + "Landing_Page_BloggingModuleDescription_3": "Stöder Markdown-formatet.", + "Landing_Page_BloggingModuleDescription_4": "Gör det möjligt att skriva en kommentar till ett inlĂ€gg.", + "Landing_Page_BloggingModuleDescription_5": "Gör det möjligt att tilldela taggar till blogginlĂ€ggen.", + "Landing_Page_BloggingModuleDescription_6": "Se webbplatsen blog.abp.io som ett levande exempel pĂ„ bloggmodulen.", + "Landing_Page_ChatModuleDescription_1": "Denna modul anvĂ€nds för realtidsmeddelanden mellan anvĂ€ndare i applikationen.", + "Landing_Page_ChatModuleDescription_2": "Meddelanden i realtid pĂ„ chatt-sidan.", + "Landing_Page_ChatModuleDescription_3": "Sök efter anvĂ€ndare i applikationen för nya konversationer.", + "Landing_Page_ChatModuleDescription_4": "Kontaktlista för senaste konversationer.", + "Landing_Page_ChatModuleDescription_5": "Meddelanden om nya meddelanden nĂ€r anvĂ€ndaren tittar pĂ„ en annan sida.", + "Landing_Page_ChatModuleDescription_6": "Symbol för totalt antal olĂ€sta meddelanden pĂ„ menyikonen.", + "Landing_Page_ChatModuleDescription_7": "Antal olĂ€sta meddelanden för varje konversation.", + "Landing_Page_ChatModuleDescription_8": "Lata laddade konversationer.", + "Landing_Page_DocsModuleDescription_1": "Denna modul anvĂ€nds för att skapa webbplatser för teknisk dokumentation;", + "Landing_Page_DocsModuleDescription_2": "Inbyggd GitHub-integration: Skriv och hantera dokument direkt pĂ„ GitHub.", + "Landing_Page_DocsModuleDescription_3": "Stöd för Versioning direkt integrerat i GitHub-utgĂ„vor.", + "Landing_Page_DocsModuleDescription_4": "Stöd för flersprĂ„kighet (med fallback-stöd till standardsprĂ„ket).", + "Landing_Page_DocsModuleDescription_5": "Stöder formaten Markdown och HTML.", + "Landing_Page_DocsModuleDescription_6": "InnehĂ„ller en navigation och en outline.", + "Landing_Page_DocsModuleDescription_7": "Gör det möjligt att hosta flera projekt dokumentation i en enda applikation.", + "Landing_Page_DocsModuleDescription_8": "LĂ€nkar till filen pĂ„ GitHub, sĂ„ att vem som helst enkelt kan bidra genom att klicka pĂ„ Edit-lĂ€nken.", + "Landing_Page_DocsModuleDescription_9": "Förutom GitHub-kĂ€llan kan du helt enkelt anvĂ€nda en mapp som dokumentationskĂ€lla.", + "Landing_Page_FileManagementModuleDescription_1": "Ladda upp, ladda ner och organisera filer i en hierarkisk mappstruktur.", + "Landing_Page_FileManagementModuleDescription_2": "Den hĂ€r modulen anvĂ€nds för att ladda upp, ladda ner och organisera filer i en hierarkisk mappstruktur. Den Ă€r ocksĂ„ kompatibel med multi-tenancy och du kan bestĂ€mma den totala storleksgrĂ€nsen för dina hyresgĂ€ster.", + "Landing_Page_FileManagementModuleDescription_3": "Den hĂ€r modulen Ă€r baserad pĂ„ BLOB-lagring-systemet, sĂ„ den kan anvĂ€nda olika lagringsleverantörer för att lagra filinnehĂ„llet.", + "Landing_Page_IdentityModuleDescription_1": "Denna modul implementerar anvĂ€ndar- och rollsystemet i en applikation;", + "Landing_Page_IdentityModuleDescription_2": "Bygger pĂ„ Microsofts ASP.NET Core Identity-bibliotek.", + "Landing_Page_IdentityModuleDescription_3": "Hantera roller och anvĂ€ndare i systemet. En anvĂ€ndare kan ha flera roller.", + "Landing_Page_IdentityModuleDescription_4": "Ange behörigheter i roll- och anvĂ€ndarnivĂ„er.", + "Landing_Page_IdentityModuleDescription_5": "Aktivera/avaktivera tvĂ„faktorautentisering och lĂ„sning av anvĂ€ndare per anvĂ€ndare.", + "Landing_Page_IdentityModuleDescription_6": "Hantera grundlĂ€ggande anvĂ€ndarprofil och lösenord.", + "Landing_Page_IdentityModuleDescription_7": "Hantera ansprĂ„kstyper i systemet, koppla ansprĂ„k till roller och anvĂ€ndare.", + "Landing_Page_IdentityModuleDescription_8": "InstĂ€llningssida för att hantera lösenordskomplexitet, anvĂ€ndarinloggning, konto och spĂ€rr.", + "Landing_Page_IdentityModuleDescription_9": "Stöd för LDAP-autentisering.", + "Landing_Page_IdentityModuleDescription_10": "Ger verifiering av e-postadress och telefonnummer.", + "Landing_Page_IdentityModuleDescription_11": "Stödjer integrering av sociala inloggningar (Twitter, Facebook, GitHub etc.).", + "Landing_Page_IdentityModuleDescription_12": "Hantera organisationsenheter i systemet.", + "Landing_Page_PaymentModuleDescription_1": "Ger integration för olika betalningsgateways.", + "Landing_Page_PaymentModuleDescription_2": "Denna modul ger integration för betalningsgateways, sĂ„ att du enkelt kan fĂ„ betalning frĂ„n dina kunder.", + "Landing_Page_PaymentModuleDescription_3": "Denna modul stöder följande betalningsportaler", + "Welcome_Page_UseSameCredentialForCommercialWebsites": "AnvĂ€nd samma autentiseringsuppgifter för bĂ„de abp.io och abp.io/support.", + "WatchCrudPagesVideo": "Titta pĂ„ videon \"Skapa CRUD-sidor med ABP Suite\"!", + "WatchGeneratingFromDatabaseVideo": "Titta pĂ„ videon \"ABP Suite: Generera CRUD-sidor frĂ„n befintliga databastabeller\" Video!", + "WatchTakeCloserLookVideo": "Titta pĂ„ videon \"Ta en nĂ€rmare titt pĂ„ kodgenerering: ABP Suite\" Video!", + "ConfirmedEmailAddressRequiredToStartTrial": "Du mĂ„ste ha en bekrĂ€ftad e-postadress för att kunna starta en testlicens.", + "EmailVerificationMailNotSent": "E-postverifiering mail kunde inte skickas.", + "GetConfirmationEmail": "Klicka hĂ€r för att fĂ„ ett verifieringsmejl om du inte har fĂ„tt det tidigare.", + "WhichLicenseTypeYouAreInterestedIn": "Vilken licenstyp Ă€r du intresserad av?", + "DontTakeOurWordForIt": "Ta inte vĂ„rt ord för det...", + "ReadAbpCommercialUsersWantYouToKnow": "LĂ€s vad ABP:s anvĂ€ndare vill att du ska veta", + "Testimonial_ShortDescription_1": "ABP:s modularitet gjorde det möjligt för teamet att leverera i tid.", + "Testimonial_ShortDescription_2": "Bygg nya funktioner snabbare Ă€n tidigare.", + "Testimonial_ShortDescription_3": "Vi utgĂ„r frĂ„n out-of-the-box-funktioner och fokuserar bara pĂ„ det som vi verkligen behöver skriva.", + "Testimonial_ShortDescription_4": "ABP passade bĂ€st för vĂ„ra behov.", + "OnlineReviewersOnAbpCommercial": "Online recensioner om ABP", + "SeeWhatToldAboutAbpCommercial": "Se vad som har sagts om ABP och skriv dina tankar om du vill.", + "BlazoriseLicense": "MĂ„ste vi köpa en Blazorise-licens?", + "BlazoriseLicenseExplanation": "Vi har ett avtal mellan Volosoft och Megabit, med detta avtal Ă€r Blazorise-licensen buntad med ABP-produkter, dĂ€rför behöver vĂ„ra kunder inte köpa en extra Blazorise-licens.", + "ExtendPaymentInfoSection_DeveloperPrice": "{0}x Ytterligare utvecklare", + "ExtendPaymentInfoSection_DiscountRate": "Rabatt {0}%.", + "TotalNetPrice": "Totalt nettopris", + "EFCore": "Entity Framework Core", + "All": "Alla", + "Mvc": "MVC", + "DataBaseProvider": "Dataleverantör", + "UIFramework": "Ramverk för anvĂ€ndargrĂ€nssnitt", + "LeptonXThemeForDashboard": "LeptonX Theme för din Admin Dashboard av", + "AbpPlatform": "ABP-plattform", + "YouDeserveGoodUXUI": "Du förtjĂ€nar ett bra UI och ett bĂ€ttre UX. LeptonX Theme by ABP Ă€r hĂ€r för att tjĂ€na det.", + "ViewLiveDemo": "Visa demo för live-tema", + "GetLeptonX": "Skaffa LeptonX nu", + "SeeLeptonXDocumentation": "Se LeptonX dokumentation", + "SeeLeptonDocumentation": "Se Lepton Dokumentation", + "SimplifiedMenu": "Förenklad meny", + "SimplifiedMenuDescription": "Du kan enkelt hitta den sida du letar efter genom att filtrera i menyn", + "YourFavoritePages": "Dina favoritsidor inom rĂ€ckhĂ„ll", + "YourFavoritePagesDescription": "LĂ€gg enkelt till eller ta bort sidan frĂ„n favoriter genom att klicka pĂ„ stjĂ€rnikonen i det övre högra hörnet av sidan.", + "BreadCrumbs": "Breadcrumb för sömlös vĂ€xling", + "BreadCrumbsDescription": "Med Breadcrumb kan du vĂ€xla till sidorna pĂ„ samma nivĂ„ med ett klick, Ă€ven nĂ€r vĂ€nstermenyn Ă€r stĂ€ngd, och det fungerar pĂ„ surfplattor och mobiler!", + "YourMenu": "Din meny som du vill ha den", + "YourMenuDescription": "Anpassa de direktklickbara ikonerna och rullgardinsmenyerna i anvĂ€ndarmenyn som du vill. AnvĂ€ndarmenyn Ă€r helt anpassningsbar efter dina behov", + "RtlSupport": "RTL-stöd för ditt sprĂ„k", + "RtlSupportDescription": "LeptonX Theme stöder RTL för ditt sprĂ„k. SprĂ„kalternativen finns i instĂ€llningsmenyn sĂ„ att du kan Ă€ndra sprĂ„k.", + "YourColors": "Dina fĂ€rger i grĂ€nssnittet för din adminpanel", + "YourColorsDescription": "LeptonX Theme fungerar enligt dina systeminstĂ€llningar och har alternativ för dashboard light theme, dashboard dark theme och dashboard semi-dark theme.", + "ArrangeContentWidth": "Ordna enkelt bredden pĂ„ ditt innehĂ„ll", + "ArrangeContentWidthDescription": "Ändra enkelt bredden pĂ„ din innehĂ„llsyta.", + "LeptonXCompatibleWith": "LeptonX Theme Ă€r kompatibelt med", + "MobileResponsiveTemplate": "Mobil responsiv mall", + "MobileResponsiveTemplateDescription1": "FĂ„ tillgĂ„ng till LeptonX adminpanel frĂ„n vilken enhet du vill.", + "MobileResponsiveTemplateDescription2": "Den Ă€r utformad för att du enkelt ska kunna anvĂ€nda den i alla dina enheter. Den Ă€r responsiv pĂ„ mobila enheter och surfplattor.", + "TopMenuLayoutOption": "Alternativ för layout av toppmeny", + "TopMenuLayoutOptionDescription1": "Om du vill konfigurera din webbplats med samma adminpanel Ă€r det möjligt att göra det med LeptonX Theme!", + "TopMenuLayoutOptionDescription2": "Prova bara LeptonX toppmenylayout för att fĂ„ det att hĂ€nda!", + "EasilyCustomizable": "LĂ€tt att anpassa till ditt varumĂ€rkes fĂ€rger", + "EasilyCustomizableDescription1": "Du kan anpassa LeptonX-temat med bara nĂ„gra fĂ„ SCSS-variabler. Ingen Ă„sidosĂ€ttning, ingen extra CSS-belastning!", + "EasilyCustomizableDescription2": "Med LeptonX kan du ordna din adminpanel precis som du vill.", + "IndependentLayout": "Oberoende layout och innehĂ„llsyta", + "IndependentLayoutDescription1": "LeptonX:s layoutinfrastruktur utformades helt separat frĂ„n innehĂ„llet.", + "IndependentLayoutDescription2": "Detta innebĂ€r att du fritt kan utforma ditt projekt med en annan innehĂ„llsstruktur Ă€n Bootstrap om du vill.", + "MostUsedLibraries": "De mest anvĂ€nda biblioteken integrerade med LeptonX", + "MostUsedLibrariesDescription1": "LeptonX innehĂ„ller dina mest anvĂ€nda bibliotek. Det gör att du enkelt kan anvĂ€nda bibliotek som ApexCharts, DataTables, DropZone, FullCalender, JSTree, Select2 och Toastr.", + "MostUsedLibrariesDescription2": "LeptonX stöder ocksĂ„ MVC Angular och Blazor-specifika bibliotek.", + "CreateAndCustomize": "Skapa och anpassa de sidor du behöver pĂ„ nĂ„gra sekunder med LeptonX anpassade sidor", + "CreateAndCustomizeDescription": "Genom att anvĂ€nda LeptonX Theme fĂ„r du ocksĂ„ tillgĂ„ng till mĂ„nga fĂ€rdiga HTML-sidor. Dessa inkluderar mĂ„nga sidor som inloggningssida, blogg, FAQ, prenumerationslista, faktura, prissĂ€ttning och filhantering.", + "LeptonThemeForAdmin": "Lepton Theme för din adminpanel genom att", + "LeptonThemeForAdminDescription": "Lepton Theme Ă€r fortfarande tillgĂ€ngligt och kommer att underhĂ„llas. Om du vill byta till LeptonX Theme som Lepton Theme-anvĂ€ndare kan du se dokumentationen för att lĂ€ra dig hur du gör.", + "LeptonCompatibleWith": "Lepton Theme Ă€r kompatibelt med", + "BlackFridayDiscount": "Black Friday-rabatt", + "UpgradePaymentInfoSection_DeveloperPrice": "{0} för {1} ytterligare utvecklare", + "Upgrade": "Uppgradering", + "Renewal": "Förnyelse", + "UpgradePaymentInfoSection_LicensePrice": "{0} licens", + "UpgradePaymentInfoSection_LicenseRenewalPrice": "Förnyelse av licens", + "Total": "Totalt", + "SupportPolicyFaqTitle": "Vilken Ă€r er supportpolicy?", + "SupportPolicyFaqExplanation": "Vi stöder endast den aktiva och den tidigare huvudversionen. Vi garanterar inte en patchrelease för den tredje och Ă€ldre huvudversionen. Till exempel, om den aktiva versionen Ă€r 7.0.0, kommer vi att slĂ€ppa patchversioner för bĂ„de 6.x.x och 7.x.x. Dessutom ger vi support endast för ABP Framework och ABP-relaterade problem. Det betyder att inget stöd ges för tredjepartsapplikationer, molntjĂ€nster och andra perifera bibliotek som anvĂ€nds av ABP-produkter. Vi kommer att anvĂ€nda kommersiellt rimliga anstrĂ€ngningar för att ge vĂ„ra kunder teknisk support under \"Volosoft Bilisim A.S\" officiella öppettider. Å andra sidan förbinder vi oss inte till en svarstid enligt servicenivĂ„avtal (SLA), men vi kommer att försöka svara pĂ„ de tekniska frĂ„gorna sĂ„ snabbt som möjligt inom vĂ„ra officiella arbetstider. Om inte en sĂ€rskild överenskommelse görs med kunden tillhandahĂ„ller vi endast support pĂ„ https://support.abp.io. Vi har ocksĂ„ en privat e-postsupport som endast Ă€r tillgĂ€nglig för innehavare av Enterprise-licenser.", + "TotalDevelopers": "Totalt {0} utvecklare", + "CustomPurchaseExplanation": "SkrĂ€ddarsydd för dina specifika behov", + "WhereDidYouHearAboutUs": "Var har du hört talas om oss?", + "Twitter": "Twitter", + "Facebook": "Facebook", + "Youtube": "YouTube", + "Google": "Google", + "Github": "GitHub", + "Friend": " FrĂ„n en vĂ€n", + "Other": "Övriga", + "WhereDidYouHearAboutUs_explain": "Ange ...", + "DeletingMemberWarningMessage": "\"{0}\" kommer att tas bort frĂ„n listan över utvecklare. Om du vill kan du tilldela denna tomma plats till en annan utvecklare senare.", + "AdditionalInfo": "Om antalet platser för utvecklare överstiger dina krav kan du minska dem. Du kan skicka e-post till info@abp.io för att ta bort nĂ„gra av dina utvecklarplatser. Om du rensar bort oanvĂ€nda utvecklarplatser minskar kostnaden för licensförnyelse. Om du vill kan du Ă„terköpa ytterligare utvecklarplatser inom din aktiva licensperiod. Observera att eftersom det finns {0} utvecklare i det hĂ€r licenspaketet kan du inte minska detta antal.", + "LinkExpiredErrorMessage": "LĂ€nken du försöker komma Ă„t har gĂ„tt ut.", + "ExpirationDate": "UtgĂ„ngsdatum", + "SpringCampaignDiscount": "Rabatt pĂ„ vĂ„rkampanjen", + "WhyUseAbpIoPlatform": "Varför ska jag anvĂ€nda ABP.IO-plattformen i stĂ€llet för att skapa en ny lösning frĂ„n grunden?", + "WhyUseAbpIoPlatformFaqExplanation": "Se den sidan för en detaljerad förklaring av varför anvĂ€ndning av ABP.IO Platform har en betydande fördel jĂ€mfört med att göra allt sjĂ€lv.", + "EulaPageTitle": "Licensavtal för slutanvĂ€ndare (EULA)", + "PrivacyPolicyPageTitle": "Integritetspolicy - Cookiepolicy", + "TermsConditionsPageTitle": "Villkor och anvisningar", + "TrainingsPageTitle": "ABP:s utbildningspaket", + "ModulesPageTitle": "ABP Förbyggda applikationsmoduler", + "Volo.AbpIo.Commercial:040001": "API-Ă„tkomstnyckeln Ă€r felaktig.", + "GetLepton": "Skaffa Lepton nu", + "MyOrganizations_Detail_LicenseStartDate": "Startdatum", + "MyOrganizations_Detail_LicenseExpiryDate": "UtgĂ„ngsdatum", + "BlazoriseSupport": "Hur fĂ„r jag Blazorise-licensnyckeln och support frĂ„n Blazorise-teamet?", + "BlazoriseSupportExplanation": "Följ stegen nedan för att fĂ„ support frĂ„n Blazorise-teamet och fĂ„ din Blazorise-licensnyckel:", + "BlazoriseSupportExplanation1": "Registrera dig för ett nytt konto pĂ„ blazorise.com/support/register med samma e-postadress som ditt abp.io-konto. LĂ€mna posten \"Licensnyckel\" tom. Det mĂ„ste vara samma e-postadress som ditt e-postkonto pĂ„ abp.io.", + "BlazoriseSupportExplanation2": "Verifiera din e-postadress genom att kolla din e-postlĂ„da. Kontrollera din skrĂ€ppostlĂ„da om du inte ser ett e-postmeddelande i din inkorg!", + "BlazoriseSupportExplanation3": "Logga in pĂ„ Blazorise supportwebbplats pĂ„ blazorise.com/support/login.", + "BlazoriseSupportExplanation4": "Om du har en aktiv ABP betald licens kommer du ocksĂ„ att ha en Blazorise PRO-licens. Du kan fĂ„ din Blazorise-licensnyckel pĂ„ blazorise.com/support/user/manage/license.", + "BlazoriseSupportExplanation5": "Du kan stĂ€lla dina frĂ„gor pĂ„ supportwebbplatsen och generera en produkttoken för din applikation.", + "AbpLiveTrainingPackages": "ABP Live utbildningspaket", + "Releases": "UtgĂ„vor", + "ReleasesDescription": "Den hĂ€r sidan innehĂ„ller detaljerad information om varje release. Du kan se alla stĂ€ngda pull requests för en specifik release. För övergripande milstolpsutvecklingar kan du kolla in sidan med kortfattade releaseanteckningar.", + "ReleaseDate": "Utgivningsdatum", + "Labels": "Etiketter", + "PreRelease": "Förhandsrelease", + "AllTypes": "Alla typer", + "Enhancement": "FörbĂ€ttring", + "Bug": "Insekt", + "Feature": "Funktion", + "AllUIs": "Alla anvĂ€ndargrĂ€nssnitt", + "MVC": "MVC", + "BlazorServer": "Blazor Server", + "MAUI": "MAUI", + "HowItWorks_Page_Title": "Hur fungerar det?", + "HowItWorks_Page_Description": "ABP Framework utökar .NET-plattformen. SĂ„ allt du kan göra med en vanlig .NET-lösning Ă€r redan möjligt med ABP Framework. Det gör det enkelt att komma igĂ„ng med en lĂ„g inlĂ€rningskurva.", + "HowItWorks_Description1": "ABP Framework utökar .NET-plattformen. SĂ„ allt du kan göra med en vanlig .NET-lösning Ă€r redan möjligt med ABP Framework. Det gör det enkelt att komma igĂ„ng med en lĂ„g inlĂ€rningskurva.", + "HowItWorks_Description2": "NĂ€r du vĂ€l har börjat lĂ€ra dig och anvĂ€nda ABP Framework-funktionerna kommer det att bli mycket roligare Ă€n nĂ„gonsin att utveckla din programvara.", + "HowItWorks_Description3": "Den hĂ€r sidan förklarar i princip hur du anvĂ€nder ABP.IO Platform som .NET-utvecklare.", + "CreateANewSolution": "Skapa en ny .NET-lösning", + "CreateANewSolution_Description1": "Allt börjar med att skapa en ny ABP-integrerad .NET-lösning.", + "StartWithStartupTemplates": "Starta en av de förbyggda mallarna för startup-lösningar", + "SimpleMonolithApplicationTemplate": "Enkel mall för monolitisk applikation", + "LayeredApplicationTemplate": "Skiktad applikationsmall", + "MicroserviceSolutionTemplate": "Mall för mikroservicelösning", + "CreateEmptySolutionAndUseAbp": "Eller skapa en ny tom .NET-lösning och installera ABP NuGet & NPM paket sjĂ€lv.", + "CreatingSolutionWithMultipleOptions": "Det finns flera alternativ för anvĂ€ndargrĂ€nssnitt och databas nĂ€r du skapar en ny lösning.", + "UIFrameworkOptions": "Alternativ för anvĂ€ndargrĂ€nssnitt", + "DotnetSolutionWithoutDependency": "Nu har du en vanlig .NET-lösning i din lokala dator som inte Ă€r beroende av nĂ„gon molnplattform eller extern tjĂ€nst.", + "CheckTheDocumentForDetails": "Du kan kontrollera {1} dokumentet för detaljer.", + "UIAndDatabaseIndependent": "ABP kan fungera med alla anvĂ€ndargrĂ€nssnitt och alla databasleverantörer som stöds av .NET.\n Dessa anvĂ€ndargrĂ€nssnitt och databasleverantörer Ă€r dock förintegrerade och vĂ€ldokumenterade.", + "InstallAbpModules": "Installera ABP-moduler", + "DevelopYourSolution": "Utveckla din lösning", + "DeployAnywhere": "Distribuera var som helst", + "InstallAbpModule_Description1": "ABP Ă€r ett modulĂ€rt ramverk för applikationsutveckling. Mallarna för startup-lösningar levereras redan med de viktigaste modulerna installerade.\n Men det finns fler applikationsmoduler som du kanske vill anvĂ€nda i din lösning.", + "InstallAbpModule_Description2": "Varje modul bestĂ„r av ett fĂ„tal NuGet- och NPM-paket och har ett installationsdokument. ABP Suite gör det mesta av arbetet automatiskt, sedan konfigurerar eller finjusterar du modulen manuellt baserat pĂ„ dess dokumentation.", + "DevelopYourSolution_Description1": "ABP:s infrastruktur gör att du kan fokusera pĂ„ din egen affĂ€rskod genom att automatisera det repetitiva arbetet och tillhandahĂ„lla förbyggd infrastruktur och applikationsfunktioner.", + "DevelopYourSolution_Description2": "I följande kodblock kan du se hur ABP Framework sömlöst integreras i din kod och automatiserar de repetitiva uppgifterna Ă„t dig.", + "DevelopYourSolution_Description3": "Även i detta kortkodsblock gör ABP en hel del saker Ă„t dig.", + "DevelopYourSolution_Description4": "Den tillhandahĂ„ller basklasser för att tillĂ€mpa konventioner, som\n dependency injection. Generiska\n repository tjĂ€nster ger ett bekvĂ€mt sĂ€tt att\n sĂ€tt att interagera med databasen. Deklarativ\n auktorisering arbetar med ett finjusterat behörighetssystem.", + "DevelopYourSolution_Description5": "ABP automatiserar helt och hĂ„llet\n arbetsenhet (för databasanslutning och transaktionshantering),\n undantagshantering,\n validering\n och auditloggning. Det ger mĂ„nga fler byggstenar för att förenkla dina dagliga utvecklingsuppgifter och fokusera pĂ„ din egen kod medan du skapar produktionsklara\n applikationer.", + "DevelopYourSolution_Description6": "Du kan förestĂ€lla dig hur lĂ„ngt och komplicerat det kodblocket kan bli om du skulle göra allt manuellt.", + "SuiteCrudGenerationInFewSeconds": "Förutom att handkoda din lösning kan du skapa fullt fungerande avancerade CRUD-sidor pĂ„ nĂ„gra minuter med hjĂ€lp av ABP Suite-verktyget. Det genererar koden till din lösning, sĂ„ att du kan finjustera den utifrĂ„n dina anpassade krav.", + "DeployAnywhere_Description1": "I slutĂ€ndan har du en ren .NET-lösning. Du kan distribuera din lösning till din egen server, till en molnplattform, till Kubernetes eller var du vill. Du kan distribuera till sĂ„ mĂ„nga servrar som du vill. ABP Ă€r ett agnostiskt verktyg för driftsĂ€ttningsmiljöer.", + "ExpertiseAbpFramework": "Expertis ABP-ramverket", + "ExpertiseAbpFramework_Description1": "Vill du gĂ„ lĂ€ngre Ă€n till grunderna och fĂ„ expertis inom ABP.IO-plattformen?", + "FreeDownload": "Fri nedladdning", + "Read": "LĂ€s", + "HavingTrouble": "Har du problem?", + "HavingTrouble_Description1": "Har du problem med att utveckla din lösning? Vi finns hĂ€r för dig! AnvĂ€nd ABP:s supportplattform\n eller skicka ett e-postmeddelande för att fĂ„ hjĂ€lp direkt frĂ„n Core ABP Framework-teamets medlemmar.", + "WeAreHereToHelp_Description1": "Du kan blĂ€ddra bland vĂ„ra hjĂ€lpĂ€mnen eller söka i vanliga frĂ„gor,\n eller sĂ„ kan du stĂ€lla en frĂ„ga till oss genom att anvĂ€nda kontaktformulĂ€ret.", + "OtherModules": "Övriga moduler", + "OtherModules_Description1": "Konto, Audit Logging, Chatt, CMS Kit, Filhantering, FormulĂ€r, GDPR, Identitet, SprĂ„khantering, Betalning, Saas och mer ...", + "HowItWorks_DatabaseProviderOptions": "Alternativ för databasleverantör", + "SeeFAQ": "Se vanliga frĂ„gor", + "ReleaseLogs": "Release Loggar", + "ReleaseLogs_Tag": "{0} Loggar för frislĂ€ppande", + "ReleaseLogs_Pr": "Pull Request #{0} - {1}", + "NoLabels": "Inga etiketter", + "DoesTheSubscriptionRenewAutomatically": "Förnyas abonnemanget automatiskt?", + "DoesTheSubscriptionRenewAutomaticallyExplanation": "ABP.IO-plattformen har inte en faktureringsmodell för automatisk förnyelse. DĂ€rför kommer din prenumeration inte att förnyas automatiskt i slutet av din licensperiod. Om du vill fortsĂ€tta att ha fördelarna med ABP.IO-plattformen mĂ„ste du förnya den manuellt pĂ„ sidan för organisationshantering. Om du har flera organisationer klickar du pĂ„ knappen \"Hantera\" pĂ„ din organisation som löper ut och klickar sedan pĂ„ knappen \"FörlĂ€ng nu\" för att förnya din licens. Du kanske ocksĂ„ vill ta en titt pĂ„ avsnittet Vad hĂ€nder nĂ€r min licens gĂ„r ut?.", + "DoesTheSubscriptionRenewAutomaticallyExplanationAutoRenewal": "ABP tillĂ„ter dig att automatiskt förnya din licens. Detta Ă€r en valfri tjĂ€nst. Du kan vĂ€xla den hĂ€r funktionen nĂ€r du köper en ny licens eller senare aktivera den frĂ„n din organisationshanteringssida. VĂ€xling för automatisk förnyelse finns i avsnittet \"Betalningsmetod\" pĂ„ organisationshanteringssidan. Om du vill stĂ€nga av automatisk förnyelse, besök organisationshanteringssidan, gĂ„ till avsnittet \"Betalningsmetod\" och avmarkera kryssrutan \"Automatisk förnyelse\". NĂ€r du stĂ€nger av funktionen för automatisk förnyelse mĂ„ste du förnya din licens sjĂ€lv.", + "ExtraQuestionCreditsFaqTitle": "Kan jag köpa extra poĂ€ng för supportfrĂ„gor?", + "ExtraQuestionCreditsFaqExplanation": "Ja, det kan du göra. För att köpa extra frĂ„gepoĂ€ng, skicka ett e-postmeddelande till info@abp.io med din organisations namn. HĂ€r Ă€r prislistan för de extra frĂ„gekrediterna:
  • 50 frĂ„gor paket $999
  • 25 frĂ„gor paket $625
  • 15 frĂ„gor paket $450
", + "AlreadyBetaTester": "Du har redan gĂ„tt med i betatestarprogrammet.", + "AbpStudio": "ABP Studio", + "AbpStudio_Description": "ABP Studio Ă€r fortfarande under utveckling. Du kan fylla i formulĂ€ret nedan för att bli en av de första anvĂ€ndarna.", + "AbpStudio_Description1": "ABP Studio Ă€r en plattformsoberoende skrivbordsapplikation för ABP-utvecklare.", + "AbpStudio_Description2": "Det Ă€r vĂ€l integrerat i ABP-ramverket och syftar till att tillhandahĂ„lla en bekvĂ€m utvecklingsmiljö för dig genom att automatisera saker, ge insikter om din lösning, vilket gör det mycket enklare att utveckla, köra och distribuera dina lösningar.", + "AbpStudio_ComingSoon": "Om du vill testa ABP Studio före alla andra kan du bli BETA-testare", + "AbpStudio_PlannedPreviewDate": "Planerat utgivningsdatum för förhandsvisning: Q4 Ă„r 2023.", + "BetaRequest": "Beta förfrĂ„gan", + "CreateNewSolutions": "Skapa nya lösningar", + "CreateNewSolutions_Description1": "Du kan enkelt skapa allt frĂ„n enkla applikationer till modulĂ€ra monolit- eller mikroservicelösningar med mĂ„nga alternativ. Du fĂ„r en fullstĂ€ndig produktionsfĂ€rdig basprogramvarulösning för ditt företag.", + "ArchitectYourSolutions": "Arkitekt för dina lösningar", + "ArchitectYourSolutions_Description1": "Bygg enklare monolitiskt modulĂ€ra och mikrotjĂ€nstbaserade lösningsstrukturer genom att skapa moduler eller tjĂ€nster och upprĂ€tta relationer mellan dem. Du kan ocksĂ„ installera eller avinstallera förbyggda applikationsmoduler.", + "ExploreYourSolution": "Utforska din lösning", + "ExploreYourSolution_Description1": "ABP Studio visar en vy pĂ„ hög nivĂ„ av komponenterna i din lösning och de moduler som din lösning Ă€r beroende av. Du kan utforska entiteter, tjĂ€nster, HTTP API:er och mycket mer utan att behöva öppna din kodbas.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze": "Kör multiapplikations- eller microservice-lösningar pĂ„ ett kick", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description1": "Kör en, flera eller alla tjĂ€nster med ett enda klick. PĂ„ sĂ„ sĂ€tt Ă€r det mycket enkelt att stoppa en tjĂ€nst, köra den i Visual Studio för att testa eller debugga.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description2": "Se en lista över tjĂ€nster, visa HTTP Request i realtid och antal undantag för varje tjĂ€nst.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description3": "Se alla detaljer om alla HTTP-begĂ€randen som kommer till en tjĂ€nst.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description4": "Utforska undantagsdetaljer i realtid i alla tjĂ€nster, filtrera och sök enkelt.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description5": "Visa applikationsloggarna, filtrera efter loggnivĂ„ eller sök efter text...", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description6": "BlĂ€ddra genom anvĂ€ndargrĂ€nssnittet i din applikation utan att lĂ€mna solution runner.", + "IntegrateToYourKubernetesCluster": "Integrera till ditt Kubernetes-kluster", + "IntegrateToYourKubernetesCluster_Description1": "Koppla din lokala utvecklingsmiljö till ett lokalt eller avlĂ€gset Kubernetes-kluster, dĂ€r klustret redan kör din mikrotjĂ€nstlösning.", + "IntegrateToYourKubernetesCluster_Description2": "FĂ„ Ă„tkomst till alla tjĂ€nster i Kubernetes med deras tjĂ€nstenamn som DNS, precis som om de körs pĂ„ din lokala dator.", + "IntegrateToYourKubernetesCluster_Description3": "Interceptera vilken tjĂ€nst som helst i det klustret, sĂ„ att all trafik till den intercepterade tjĂ€nsten automatiskt omdirigeras till din tjĂ€nst som körs i din lokala maskin. NĂ€r din tjĂ€nst behöver anvĂ€nda nĂ„gon tjĂ€nst i Kubernetes omdirigeras trafiken tillbaka till klustret, precis som om din lokala tjĂ€nst körs inuti Kubernetes.", + "GetInformed": "Bli informerad", + "Studio_GetInformed_Description1": "LĂ€mna din kontaktinformation för att fĂ„ information och pröva först nĂ€r ABP Studio har lanserats.", + "Studio_GetInformed_Description2": "Planerat utgivningsdatum för förhandsvisning: Q3 Ă„r 2023.", + "ThankYou!": "Tack sĂ„ mycket!", + "SendBetaRequest": "Skicka Beta förfrĂ„gan", + "YouJoinedTheBetaTesterProgram": "Du har gĂ„tt med i betatestarprogrammet för ABP Studio.", + "PricingExplanation2": "30 dagars pengarna tillbaka-garanti - LĂ€s mer", + "MoneyBackGuaranteeText": "* 30-dagars pengarna-tillbaka-garanti pĂ„ alla licenser! 100% Ă„terbetalning pĂ„ Team-, 60% Ă„terbetalning pĂ„ Business- och Enterprise-licenser inom 30 dagar.", + "MobileApplicationStartupTemplates": "Mallar för uppstart av mobilapplikationer", + "MobileApplicationStartupTemplates_Description1": "Integrerade startmallar för mobilapplikationer för dina ABP-lösningar.", + "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates": "Skapa kraftfulla affĂ€rsapplikationer med hjĂ€lp av ABP Mobile Startup Templates", + "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates_Description1": "ABP tillhandahĂ„ller tvĂ„ startmallar för mobilapplikationer som implementerats med React Native och .NET MAUI. NĂ€r du skapar din nya ABP-baserade lösning kommer du ocksĂ„ att ha grundlĂ€ggande startapplikationer som Ă€r anslutna till dina backend-API:er.", + "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates_Description2": "Applikationen har en förbyggd autentiseringstokencykel, stöd för flera sprĂ„k, stöd för flera behörigheter, inloggning, glömt lösenord, profilhantering och en anvĂ€ndarhanteringssida. Du kan lĂ€gga till din egen affĂ€rslogik och anpassa den utifrĂ„n dina krav.", + "TwoFrameworkOptions": "TvĂ„ alternativ för ramverk", + "TwoFrameworkOptions_Description": "ABP tillhandahĂ„ller bĂ„de React Native och .NET MAUI mobila startup-mallar. PĂ„ sĂ„ sĂ€tt kan du vĂ€lja den som bĂ€st passar dina behov. BĂ„da apparna Ă„teranvĂ€nder kod i den högsta graden mellan iOS- och Android-plattformarna.", + "PreIntegratedToYourBackend": "Förintegrerad till din backend", + "PreIntegratedToYourBackend_Description": "ABP Mobile-applikationer Ă€r förintegrerade med dina backend-API:er. Den fĂ„r en giltig autentiseringstoken frĂ„n servern och gör autentiserade förfrĂ„gningar.", + "MultiLanguage": "FlersprĂ„kig", + "MultiLanguage_Description": "Det stöder redan mer Ă€n 10 sprĂ„k ur lĂ„dan. Du kan ocksĂ„ lĂ€gga till ytterligare sprĂ„k.", + "Arabic": "Arabiska", + "Czech": "Tjeckien", + "English": "Engelska", + "Hungarian": "Ungerska", + "Finnish": "Finska", + "French": "Franska", + "Hindi": "Hindi", + "Portuguese": "Portugisiska", + "Italian": "Italienska", + "Russian": "Ryska", + "Slovak": "Slovakien", + "Turkish": "Turkiska", + "EngageAndRetainYourCustomersWithABPMobileApps": "Engagera och behĂ„ll dina kunder med ABP:s mobilappar", + "EngageAndRetainYourCustomersWithABPMobileApps_Description1": "Dina kunder vill kunna hantera sina produkter och prenumerationer var som helst och nĂ€r som helst. Det krĂ€ver att organisationer skapar mobilappar som gör det möjligt för kunderna att uppfylla sina önskemĂ„l snabbt och smidigt.", + "EngageAndRetainYourCustomersWithABPMobileApps_Description2": "Med ABP Mobile apps kan du skapa högkvalitativa native mobilappar för Android och iOS... med en enda kodbas och utan att kompromissa med sĂ€kerhet, kvalitet eller skalbarhet.", + "OneCodeBaseMultipleDevices": "En kodbas Flera enheter", + "OneCodeBaseMultipleDevices_Description": "ABP:s mobilapplikationer Ă€r plattformsoberoende. De Ă€r redo att installeras och köras pĂ„ iOS- och Android-enheter, och de anpassar sig till olika formfaktorer med hjĂ€lp av en enda kodbas. Utvecklare behöver bara skapa anvĂ€ndargrĂ€nssnittet och front-end-koden en gĂ„ng, det finns inget behov av att anpassa koden för varje enhet du vill stödja.", + "ComesWithTheSourceCode": "Levereras med kĂ€llkoden", + "ComesWithTheSourceCode_Description": "Mobilapparna Ă€r försedda med kĂ€llkod. Anpassa enkelt UX/UI för dina appar för att uppfylla riktlinjerna för varumĂ€rkesprofilering.", + "Purchase_OneYearPrice": "1 Ă„r Pris", + "Purchase_DeveloperSeatCount": "Antal platser för utvecklare", + "Purchase_DevelopersAlreadyIncluded": "{0} utvecklare redan inkluderade", + "1Year": "1 Ă„r", + "{0}Years": "{0} Ă„r", + "1YearLicense": "1 Ă„rs licens", + "{0}YearsLicense": "{0} År Licens", + "1AdditionalDeveloper": "1 ytterligare utvecklare", + "{0}AdditionalDevelopers": "{0} Ytterligare utvecklare", + "Discount": "Rabatt ({0}%)", + "Summary": "Sammanfattning", + "TrainingPack": "Utbildningspaket", + "TrainingPackDiscount": "Rabatt pĂ„ utbildningspaket", + "Purchase_OnboardingTraining_Description": "Denna liveutbildning Ă€r giltig för en klass med 8 elever och denna rabatt Ă€r endast giltig nĂ€r den köps med den nya licensen. LĂ€s mer ", + "Purchase_Save": "{0}% Spara {1}", + "RemoveBasket": "Ta bort frĂ„n korgen", + "WhyABPIOPlatform?": "Varför ABP.IO Platform?", + "DocumentAim": "Detta dokument syftar till att besvara den stora frĂ„gan:", + "DocumentAim_Description": "\"Varför ska man anvĂ€nda ABP.IO-plattformen i stĂ€llet för att skapa en ny lösning frĂ„n grunden?\"", + "DocumentAim_Description2": "Dokumentet presenterar utmaningarna med att bygga en modern mjukvarulösning och förklarar hur ABP hanterar dessa utmaningar.", + "CreatingANewSolution": "Skapa en ny lösning", + "CreatingANewSolution_Description": "NĂ€r du ska starta en ny lösning finns det mĂ„nga frĂ„gor du mĂ„ste stĂ€lla dig sjĂ€lv, och du bör lĂ€gga ner mycket tid innan du börjar skriva din allra första affĂ€rskod.", + "CreatingAnEmptySolution": "Skapa en tom lösning", + "THEPROBLEM": "PROBLEMET", + "CreatingAnEmptySolution_THEPROBLEM_Description": "Även att skapa en nĂ€stan tom lösning Ă€r en utmaning;", + "CreatingAnEmptySolution_THEPROBLEM_Description2": "Hur organiserar du din kodbas mellan olika projekt?", + "CreatingAnEmptySolution_THEPROBLEM_Description3": "Vilka Ă€r lagren och hur samverkar de?", + "CreatingAnEmptySolution_THEPROBLEM_Description4": "Hur integrerar du med tredjepartsbibliotek?", + "CreatingAnEmptySolution_THEPROBLEM_Description5": "Hur stĂ€ller man in automatiserade tester?", + "ABPSOLUTION": "ABP-LÖSNING", + "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP tillhandahĂ„ller en vĂ€larkitekterad, skiktad och produktionsklar startup-lösning baserad pĂ„ Domain Driven Design-principerna. Lösningen innehĂ„ller ocksĂ„ en förkonfigurerad enhet och integration test -projekt för varje lager.", + "CommonLibraries": "Gemensamma bibliotek", + "CommonLibraries_THEPROBLEM_Description": "Vilka bibliotek bör du anvĂ€nda för att implementera gemensamma krav? Ekosystemet för programvaruutveckling Ă€r mycket dynamiskt, vilket gör det svĂ„rt att hĂ„lla jĂ€mna steg med de senaste verktygen, biblioteken, trenderna och metoderna.", + "CommonLibraries_ABPSOLUTION_Description": "ABP förintegrerar populĂ€ra, mogna och uppdaterade bibliotek i lösningen. Du behöver inte lĂ€gga tid pĂ„ att integrera dem eller fĂ„ dem att kommunicera med varandra. De fungerar som de ska direkt frĂ„n start.", + "UITheme&Layout": "UI Tema & Layout", + "UITheme&Layout_THEPROBLEM_Description": "NĂ€r man tar itu med anvĂ€ndargrĂ€nssnittet uppstĂ„r en rad olika utmaningar. Det handlar bland annat om att lĂ€gga grunden för ett responsivt, modernt och anpassningsbart UI-kit med ett konsekvent utseende och en mĂ€ngd funktioner som navigeringsmenyer, rubriker, verktygsfĂ€lt, sidfötter, widgetar med mera.", + "UITheme&Layout_THEPROBLEM_Description2": "Även om du vĂ€ljer ett fördesignat tema kan det ta flera dagars utveckling att integrera det sömlöst i ditt projekt. Ett ytterligare hinder ligger i att uppgradera sĂ„dana teman. Ofta blir temats HTML/CSS-struktur sammanflĂ€tad med din UI-kod, vilket gör framtida temaförĂ€ndringar eller uppgraderingar till komplicerade uppgifter. Denna sammanvĂ€vning av kod och design komplicerar flexibiliteten att göra justeringar lĂ€ngs linjen.", + "UITheme&Layout_ABPSOLUTION_Description": "ABP Framework erbjuder ett distinkt temasystem som frigör din UI-kod frĂ„n temabegrĂ€nsningar. Teman finns isolerade, paketerade som NuGet- eller NPM-paket, vilket gör installation eller uppgradering av teman till en frĂ„ga om minuter. Även om du behĂ„ller möjligheten att utveckla ditt eget tema eller integrera ett befintligt, presenterar ABP en samling polerade och moderna teman.", + "UITheme&Layout_ABPSOLUTION_Description2": "Dessutom finns det leverantörer av UI-komponenter som Telerik och DevExpress. Dessa leverantörer tillhandahĂ„ller dock frĂ€mst enskilda komponenter, vilket innebĂ€r att det Ă€r upp till dig att skapa ditt layoutsystem. NĂ€r du arbetar inom ABP-baserade projekt kan du sömlöst införliva dessa bibliotek, pĂ„ samma sĂ€tt som du skulle göra i alla andra projekt.", + "TestInfrastructure": "Testinfrastruktur", + "TestInfrastructure_THEPROBLEM_Description": "Att etablera en robust testmiljö Ă€r en tidskrĂ€vande uppgift. Det handlar om att skapa dedikerade testprojekt inom din lösning, noggrant vĂ€lja ut de verktyg som behövs, skapa mocks för tjĂ€nster och databaser, skapa viktiga basklasser och verktygstjĂ€nster för att minimera redundant kod i testerna och ta itu med olika relaterade uppgifter.", + "TestInfrastructure_ABPSOLUTION_Description": "ABP Startup Templates levereras fĂ€rdigutrustade med konfigurerade testprojekt, vilket effektiviserar processen för dig. Det innebĂ€r att du redan frĂ„n dag ett kan börja skriva din första enhets- eller integrationstestkod utan dröjsmĂ„l.", + "CodingStandards&Training": "Kodningsstandarder och utbildning", + "CodingStandards&Training_THEPROBLEM_Description": "NĂ€r du har konfigurerat lösningen för utveckling mĂ„ste du vanligtvis lĂ€ra utvecklarna hur systemet fungerar och hur man bygger det med hjĂ€lp av samma överenskomna metoder. Även om du ger dem utbildning kan det vara svĂ„rt att hĂ„lla dokumentationen uppdaterad. Med tiden kanske varje utvecklare skriver kod pĂ„ sitt eget sĂ€tt, vilket leder till att reglerna för att skriva kod skiljer sig frĂ„n varandra.", + "CodingStandards&Training_ABPSOLUTION_Description": "ABP-lösningen Ă€r redan snyggt organiserad och har tydliga förklaringar. Steg-för-steg-handledningar och guider visar exakt hur du ska arbeta med ett ABP-projekt.", + "KeepingYourSolutionUpToDate": "HĂ„ll din lösning uppdaterad", + "KeepingYourSolutionUpToDate_THEPROBLEM_Description": "NĂ€r du har pĂ„börjat din utveckling mĂ„ste du hĂ„lla reda pĂ„ de nya versionerna av de bibliotek du anvĂ€nder för uppgraderingar och korrigeringar.", + "KeepingYourSolutionUpToDate_ABPSOLUTION_Description": "Vi uppdaterar regelbundet alla paket till de senaste versionerna och testar dem före den stabila utgĂ„van. NĂ€r du uppdaterar ABP Framework uppgraderas alla dess beroenden till den senaste tekniken.", + "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "Abp update CLI-kommando hittar och uppgraderar automatiskt alla ABP-beroende NuGet- och NPM-paket i en lösning. Med ABP Ă€r det enklare att hĂ„lla sig till de senaste versionerna.", + "DRY": "Upprepa inte dig sjĂ€lv!", + "DRY_Description": "Att skapa en baslösning tar lĂ„ng tid och krĂ€ver god erfarenhet av arkitektur. Men detta Ă€r bara början! NĂ€r du börjar utveckla kommer du sannolikt att behöva skriva massor av repetitiv kod; det skulle vara fantastiskt om allt detta kunde hanteras automatiskt.", + "DRY_Description2": "ABP automatiserar och förenklar upprepningskoden sĂ„ mycket som möjligt genom att följa principen om konvention framför konfiguration. Det begrĂ€nsar dig dock inte nĂ€r du behöver vĂ€xla till manuell vĂ€xel. Kontrollen ligger alltid i dina hĂ€nder.", + "Authentication": "Autentisering", + "Authentication_THEPROBLEM_Description": "Single Sign On, Active Directory / LDAP-integration, OpenIddict-integration, sociala inloggningar, tvĂ„faktorsautentisering, glömt / Ă„terstĂ€llt lösenord, e-postaktivering, ny anvĂ€ndarregistrering, kontroll av lösenordskomplexitet, lĂ„sning av konto vid misslyckade försök, visning av misslyckade inloggningsförsök ... etc. Vi vet att alla dessa generiska krav Ă€r bekanta för dig. Du Ă€r inte ensam!", + "Authentication_ABPSOLUTION_Description": "ABP Framework och den kommersiella versionen tillhandahĂ„ller alla dessa standardgrejer förimplementerade Ă„t dig som en Ă„teranvĂ€ndbar kontomodul. Du aktiverar och konfigurerar bara det du behöver.", + "CrossCuttingConcerns": "Övergripande frĂ„gor", + "CrossCuttingConcerns_THEPROBLEM_Description": "Cross-Cutting Concerns Ă€r den grundlĂ€ggande upprepningslogik som bör implementeras för varje anvĂ€ndningsfall. NĂ„gra exempel;", + "CrossCuttingConcerns_THEPROBLEM_Description2": "Starta transaktioner, genomföra vid framgĂ„ng och rulla tillbaka vid fel.", + "CrossCuttingConcerns_THEPROBLEM_Description3": "Hantera och rapportera undantag, returnera ett korrekt felsvar till klienterna och hantera felfall pĂ„ klientsidan.", + "CrossCuttingConcerns_THEPROBLEM_Description4": "Implementera auktorisering och validering, returnera korrekta svar och hantera dessa pĂ„ klientsidan.", + "CrossCuttingConcerns_ABPSOLUTION_Description": "ABP Framework automatiserar eller förenklar alla vanliga övergripande problem. Du skriver bara kod som Ă€r viktig för ditt företag, och ABP hanterar resten genom konventioner.", + "ArchitecturalInfrastructure": "Arkitektonisk infrastruktur", + "ArchitecturalInfrastructure_THEPROBLEM_Description": "Du behöver vanligtvis bygga infrastruktur för att implementera din arkitektur pĂ„ rĂ€tt sĂ€tt. Till exempel implementerar du i allmĂ€nhet Repository-mönstret. Du definierar nĂ„gra basklasser för att förenkla och standardisera skapandet av entiteter, tjĂ€nster, controllers och andra objekt.", + "ArchitecturalInfrastructure_ABPSOLUTION_Description": "ABP Framework tillhandahĂ„ller allt detta och mer dĂ€rtill direkt frĂ„n start. Det Ă€r moget och vĂ€ldokumenterat.", + "EnterpriseApplicationRequirements": "Krav pĂ„ företagsapplikationer", + "EnterpriseApplicationRequirements_THEPROBLEM_Description": "Det finns mĂ„nga krav som du upprepade gĂ„nger mĂ„ste implementera i varje affĂ€rsapplikation;", + "EnterpriseApplicationRequirements_THEPROBLEM_Description2": "Detaljerat behörighetssystem och hantering av behörigheter i anvĂ€ndargrĂ€nssnittet baserat pĂ„ roller och anvĂ€ndare.", + "EnterpriseApplicationRequirements_THEPROBLEM_Description3": "Skriva granskningsloggar och entitetshistorik för att spĂ„ra nĂ€r en anvĂ€ndare Ă€ndrar en databaspost.", + "EnterpriseApplicationRequirements_THEPROBLEM_Description4": "Gör dina enheter mjukt raderade, sĂ„ att de markeras som raderade istĂ€llet för att fysiskt raderas frĂ„n databasen och automatiskt filtrera bort raderade enheter i dina frĂ„gor.", + "EnterpriseApplicationRequirements_THEPROBLEM_Description5": "Skapa abstraktioner och omslag för att konsumera dina backend-API:er frĂ„n frontend-koden.", + "EnterpriseApplicationRequirements_THEPROBLEM_Description6": "UppstĂ€llning i kö och utförande av bakgrundsjobb.", + "EnterpriseApplicationRequirements_THEPROBLEM_Description7": "Hantering av flera tidszoner i ett globalt system.", + "EnterpriseApplicationRequirements_THEPROBLEM_Description8": "Delning av validering, lokalisering och auktoriseringslogik mellan server och klient.", + "EnterpriseApplicationRequirements_ABPSOLUTION_Description": "ABP tillhandahĂ„ller en infrastruktur för att enkelt implementera sĂ„dana krav. Återigen behöver du inte spendera din vĂ€rdefulla tid pĂ„ att implementera alla dessa om och om igen.", + "GeneratingInitialCode&Tooling": "Generering av initialkod och verktyg", + "GeneratingInitialCode&Tooling_THEPROBLEM_Description": "Du kommer att bygga mĂ„nga liknande sidor i en typisk webbapplikation. De flesta av dem kommer att utföra liknande CRUD-operationer. Det Ă€r mycket trĂ„kigt och Ă€ven felbenĂ€get att upprepade gĂ„nger skapa sĂ„dana sidor.", + "GeneratingInitialCode&Tooling_ABPSOLUTION_Description": "ABP Suite kan generera en full-stack CRUD-sida för dina enheter pĂ„ nĂ„gra sekunder. Den genererade koden Ă€r skiktad och ren. Alla standardkrav för validering och auktorisering Ă€r implementerade. Dessutom genereras enhetstestklasser. NĂ€r du vĂ€l har fĂ„tt en helt fungerande sida kan du Ă€ndra den enligt dina affĂ€rsbehov.", + "IntegratingTo3rdPartyLibrariesAndSystems": "Integrering med bibliotek och system frĂ„n tredje part", + "IntegratingTo3rdPartyLibrariesAndSystems_THEPROBLEM_Description": "De flesta bibliotek Ă€r utformade pĂ„ lĂ„g nivĂ„ och du mĂ„ste vanligtvis göra en del arbete för att integrera dem pĂ„ rĂ€tt sĂ€tt utan att upprepa samma integrations- och konfigurationskod överallt i din lösning. Anta till exempel att du mĂ„ste anvĂ€nda RabbitMQ för att implementera din distribuerade hĂ€ndelsebuss. Allt du vill göra Ă€r att skicka ett meddelande till en kö och hantera de inkommande meddelandena. Men du mĂ„ste förstĂ„ meddelandemönster, köer och utbytesdetaljer. För att skriva effektiv kod mĂ„ste du skapa en pool för att hantera anslutningar, klienter och kanaler. Du mĂ„ste ocksĂ„ hantera undantag, ACK-meddelanden, Ă„teranslutning till RabbitMQ vid misslyckanden och mer.", + "IntegratingTo3rdPartyLibrariesAndSystems_ABPSOLUTION_Description": "Till exempel abstraherar ABP:s RabbitMQ Distributed Event Bus-integration alla dessa detaljer. Du skickar och tar emot meddelanden utan krĂ„ngel. Behöver du skriva kod pĂ„ lĂ„g nivĂ„? Inga problem, det kan du alltid göra. ABP begrĂ€nsar dig inte nĂ€r du behöver anvĂ€nda lĂ„gnivĂ„funktioner i det bibliotek du anvĂ€nder.", + "WhyNotBuildYourOwnFramework?": "Varför inte bygga ditt eget ramverk?", + "WhyNotBuildYourOwnFramework_THEPROBLEM_Description": "All infrastruktur, Ă€ven pĂ„ det enklaste sĂ€ttet, tar mycket tid att bygga, underhĂ„lla och dokumentera. Den blir större med tiden och det blir svĂ„rt att underhĂ„lla den i din lösning. Att separera dessa i ett Ă„teranvĂ€ndbart projekt Ă€r utgĂ„ngspunkten för att bygga ditt eget interna ramverk.", + "WhyNotBuildYourOwnFramework_THEPROBLEM_Description2": "Att bygga, dokumentera, utbilda och underhĂ„lla ett internt ramverk Ă€r verkligen svĂ„rt. Om du inte har ett erfaret, dedikerat ramverksteam blir ditt interna ramverk snabbt en odokumenterad Ă€ldre kod som ingen lĂ€ngre kan förstĂ„ och underhĂ„lla. Å andra sidan utvecklas dessa ramverk i allmĂ€nhet av en eller tvĂ„ utvecklare i teamet. Och dessa medarbetare hĂ„ller pĂ„ att bli en kunskapssilo. Det Ă€r bra för dem men dĂ„ligt för företaget eftersom de Ă€r projektets enda punkt för misslyckande -SPOF-. NĂ€r de lĂ€mnar företaget gĂ„r projektet dramatiskt ner.", + "WhyNotBuildYourOwnFramework_ABPSOLUTION_Description": "ABP Framework Ă€r ett community-drivet, vĂ€ldokumenterat, moget och generiskt applikationsramverk. Ett team av mycket erfarna utvecklare arbetar hĂ„rt för att hĂ„lla det uppdaterat, lĂ€tt att förstĂ„ och bekvĂ€mt att anvĂ€nda. Att anvĂ€nda ett sĂ„ stabilt ramverk gör att du kan fokusera pĂ„ din egen affĂ€rskod och fĂ„ hjĂ€lp med ramverket frĂ„n experter nĂ€r du behöver det.", + "ArchitecturalInfrastructure_Description": "SaaS-applikationer, modulĂ€ra system eller mikroservicesystem Ă€r de mest anvĂ€nda modellerna för företagsprogramvara. Att bygga sĂ„dana system krĂ€ver inte bara en god förstĂ„else och erfarenhet utan ocksĂ„ en stark mjukvaruinfrastruktur. Annars kommer du att fĂ„ lĂ€gga ner mycket arbete pĂ„ att stödja dessa arkitektoniska detaljer i din kodbas.", + "Modularity": "Modularitet", + "Modularity_THEPROBLEM_Description": "Att bygga ett verkligt modulĂ€rt system Ă€r inte lĂ€tt! Alla aspekter av systemet (databas, entiteter, API:er, UI-sidor/komponenter) kan delas upp i moduler, och varje modul kan Ă„teranvĂ€ndas utan andra. Den vanliga ASP.NET Core ger inte en sĂ„dan modulĂ€r arkitektur. Om du behöver det bör du tĂ€nka pĂ„ det frĂ„n grunden.", + "Modularity_ABPSOLUTION_Description": "ABP Framework Ă€r skapat för att vara en modulĂ€r struktur för applikationsutveckling. Varje funktion i ramverket Ă€r utvecklad för att vara kompatibel med modularitet. Dokumentation och guider förklarar hur man utvecklar Ă„teranvĂ€ndbara moduler pĂ„ ett standardiserat sĂ€tt.", + "SaaSMultiTenancy": "SaaS / Multi-Tenancy", + "SaaSMultiTenancy_THEPROBLEM_Description": "Multi-Tenancy Ă€r ett vanligt sĂ€tt att implementera SaaS-system. Att implementera en konsekvent multi-tenant infrastruktur kan dock bli komplicerat.", + "SaaSMultiTenancy_ABPSOLUTION_Description": "ABP Framework tillhandahĂ„ller en komplett infrastruktur för flera hyresgĂ€ster och abstraherar komplexiteten frĂ„n din företagskod. Din applikationskod kommer att vara mestadels multi-tenancy medveten, medan ABP Framework automatiskt isolerar databasen, cache och andra detaljer om hyresgĂ€sterna frĂ„n varandra. Det stöder en enda databas, per hyresgĂ€stdatabas och hybridmetoder. Det konfigurerar biblioteken som Microsoft Identity och OpenIddict, som normalt inte Ă€r multi-tenancy-kompatibla, pĂ„ rĂ€tt sĂ€tt.", + "Microservices": "MikrotjĂ€nster", + "Microservices_THEPROBLEM_Description": "Att bygga ett mikrotjĂ€nstsystem krĂ€ver mĂ„nga infrastrukturdetaljer: Autentisering och auktorisering av applikationer och mikrotjĂ€nster samt implementering av asynkrona meddelanden och synkrona (Rest/GRPC) kommunikationsmönster mellan mikrotjĂ€nster Ă€r de mest grundlĂ€ggande frĂ„gorna.", + "Microservices_ABPSOLUTION_Description": "ABP-ramverket tillhandahĂ„ller tjĂ€nster, guider och exempel som hjĂ€lper dig att implementera din mikrotjĂ€nstlösning med hjĂ€lp av branschens standardverktyg.", + "Microservices_ABPSOLUTION_Description2": "ABP:s kommersiella version gĂ„r till och med ett steg lĂ€ngre och tillhandahĂ„ller en komplett startup-mall för att kickstarta din microservice-lösning.", + "PreBuiltModules": "Förbyggda moduler", + "PreBuiltModules_THEPROBLEM_Description": "Alla har vi liknande men lite olika affĂ€rskrav. Men vi mĂ„ste alla uppfinna hjulet pĂ„ nytt eftersom ingen annans kod kan fungera direkt i vĂ„r lösning. De Ă€r alla inbĂ€ddade delar av en större lösning.", + "PreBuiltModules_ABPSOLUTION_Description": "ABP modules tillhandahĂ„ller mĂ„nga Ă„teranvĂ€ndbara applikationsmoduler som betalning, chatt, filhantering, revisionsloggrapportering ... etc. Alla dessa moduler installeras enkelt i din lösning och fungerar direkt. Vi lĂ€gger stĂ€ndigt till fler moduler.", + "PreBuiltModules_ABPSOLUTION_Description2": "Alla moduler Ă€r utformade sĂ„ att de kan anpassas efter dina affĂ€rsbehov. Om du behöver fullstĂ€ndig kontroll kan du ladda ner den fullstĂ€ndiga kĂ€llkoden för alla moduler och anpassa dem helt utifrĂ„n dina specifika affĂ€rskrav.", + "ABPCommunity": "ABP Gemenskap", + "ABPCommunity_Description": "Slutligen, att vara en del av en stor gemenskap dĂ€r alla följer liknande kodningsstilar och principer och delar en gemensam infrastruktur ger kraft nĂ€r du har problem eller behöver hjĂ€lp med designbeslut. Eftersom vi skriver kod pĂ„ liknande sĂ€tt kan vi hjĂ€lpa varandra mycket bĂ€ttre. ABP Ă€r ett community-stöttat projekt med mer Ă€n 10K stjĂ€rnor pĂ„ GitHub.", + "ABPCommunity_Description2": "Det Ă€r lĂ€tt att dela kod eller till och med Ă„teranvĂ€ndbara bibliotek mellan ABP-utvecklare. En kodsnutt som fungerar för dig kommer ocksĂ„ att fungera för andra. Det finns mĂ„nga exempel och handledningar som du direkt kan implementera i din applikation.", + "ABPCommunity_Description3": "NĂ€r du anlitar en utvecklare som tidigare arbetat med ABP-arkitekturen kommer denne omedelbart att förstĂ„ din lösning och pĂ„börja utvecklingen pĂ„ mycket kort tid.", + "WhyAbpIo_Page_Title": "Varför ABP.IO Platform?", + "AbpStudio_Page_Title": "ABP Studio", + "CampaignInfo": "Köp en ny licens eller förnya din befintliga licens och fĂ„ ytterligare 2 mĂ„nader utan extra kostnad! Detta erbjudande gĂ€ller för alla licensplaner. Se till att du utnyttjar denna tidsbegrĂ€nsade kampanj för att utöka din tillgĂ„ng till premiumfunktioner och uppgraderingar.", + "HurryUpLastDay": "Skynda pĂ„! Sista dagen: {0}", + "CreatingCRUDPagesWithABPSuite": "Skapa CRUD-sidor med ABP Suite", + "Testimonials": "VittnesmĂ„l", + "MultipleYearDiscount": "Rabatt för flera Ă„r", + "CampaignDiscountText": "Black Friday-rabatt", + "CampaignDiscountName": "Svart fredag", + "CampaignName:BlackFriday": "Svart fredag", + "MultipleOrganizationInfo": "Se alla dina organisationer", + "AbpStudioBetaAccessInfoTitle": "ABP Studio Beta Access", + "AbpStudioBetaAccessInfoText": "Vi Ă€r glada över att kunna dela med oss av beta-versionen av ABP Studio! Den hĂ€r versionen markerar en viktig milstolpe i vĂ„r utvecklingsresa, och vi Ă€r angelĂ€gna om att samla in din feedback för att göra applikationen Ă€nnu bĂ€ttre.", + "YouAreNotAuthorizedToDownloadStudio": "Du Ă€r inte behörig att ladda ner ABP Studio.", + "OrganizationHasNoDefaultCreditCard": "Din organisation har inget standardkreditkort. LĂ€gg till ett kreditkort för din organisation.", + "YouAreNotAuthorizedToPayThisPaymentRequest": "Du Ă€r inte behörig att betala denna betalningsbegĂ€ran.", + "YouAreNotAuthorizedToCreateBillingInfoForThisPaymentRequest": "Du Ă€r inte behörig att skapa faktureringsinformation för denna betalningsbegĂ€ran.", + "OrganizationNotFound": "Organisationen hittades inte.", + "CannotDeleteDefaultCardBecauseAutoRenewalEnabled": "Du kan inte ta bort kortet just nu eftersom funktionen Auto-Renewal Ă€r aktiverad. För att ta bort kortet mĂ„ste du först avaktivera Auto-Renewal.", + "AreYouSureWantToDeleteThisCard": "Är du sĂ€ker pĂ„ att du vill ta bort det hĂ€r kortet?", + "AreYouSureWantToSetThisCardAsDefault": "Är du sĂ€ker pĂ„ att du vill anvĂ€nda det hĂ€r kortet som standard?", + "OrganizationBillingInfoIsNotSuitableForIyzicoPayment": "Din organisations faktureringsinformation Ă€r inte lĂ€mplig för iyzico-betalning.", + "AutomaticRenewal": "Automatisk förnyelse", + "AutomaticRenewal_Description": "Om du förnyar en licens innan den gĂ„r ut fĂ„r du en rabatt pĂ„ upp till 40 %. Med den automatiska förnyelseprocessen kan du förnya din licens utan att förlora denna rabatt, och din utveckling kommer aldrig att avbrytas. Automatisk förnyelse Ă€r endast tillgĂ€nglig för kreditkortsbetalning. Du kan inaktivera automatisk förnyelse nĂ€r som helst genom att gĂ„ till din organisationshanteringssida. ABP sparar inte din kreditkortsinformation, men vĂ„ra globala betalningsgateways sĂ€krar besparingar.", + "CardNotFoundMessage": "Vill du lĂ€gga till ett nytt kort?", + "CardNotFoundTitle": "Kortet hittades inte", + "AutoRenewalEnabled": "Automatisk förnyelse aktiverad", + "AutoRenewalDisabled": "Automatisk förnyelse Avaktiverad", + "PaymentRequestIdIsNotProvided": "BetalningsförfrĂ„gans ID anges inte.", + "PaymentFailedInfo": "TyvĂ€rr, betalningen misslyckades! Detta kan bero pĂ„ otillrĂ€ckliga medel, ogiltigt kreditkortsnummer eller ogiltig pinkod", + "UsedPayment": "Denna betalning har redan anvĂ€nts", + "ManageLicense": "Hantera licens", + "AbpPlatformLeptonXTheme": "LeptonX Theme för din administrativa instrumentpanel av ABP Platform", + "NoActiveLicence": "Du Ă€r inte berĂ€ttigad till denna Ă„tgĂ€rd! Du har ingen aktiv licens.", + "ABPStudioBetaTester": "För att kunna skicka in din begĂ€ran mĂ„ste du logga in", + "ABPStudioBetaAccess": "ABP Studio Beta Access", + "VisitABPStudio": "Besök ABP Studio", + "EditBillingInformation": "Redigera faktureringsinformation", + "Organization": "Organisation", + "E-Book": "E-bok", + "CreditCards": "Kreditkort", + "BillingInformation": "Faktureringsinformation", + "AddNewCreditCard": "LĂ€gg till nytt kreditkort", + "MyOrganizations_LearnMorePlan": "LĂ€s mer om planer pĂ„ prissĂ€ttningssidan", + "AutoLicenseRenewalIsNotEnabled": "Automatisk licensförnyelse Ă€r inte aktiverad.", + "SetAsDefaultPaymentMethod": "Ange som standardbetalningsmetod", + "{0}PerAdditionalDeveloper": "{0} per ytterligare utvecklare", + "CardAlias": "Alias för kort (valfritt)", + "AbpDoesNotSaveYourPaymentDetails_Description": "Betalningsuppgifterna kommer att sparas i {2} sĂ€kerhetsvalv och du kan ta bort lagrade uppgifter nĂ€r som helst. Aktivering av automatisk förnyelse sĂ€kerstĂ€ller att din ABP-prenumeration automatiskt förnyas innan den löper ut, förutsatt att du har ett giltigt kreditkort. Om du avaktiverar automatisk förnyelse mĂ„ste du förnya din prenumeration manuellt. Om du vill fortsĂ€tta din projektutveckling utan avbrott föreslĂ„r vi att du aktiverar alternativet Automatisk förnyelse.", + "AddBillingInformation": "LĂ€gg till faktureringsinformation", + "YouHaveNoCardsSaved": "Kortet Ă€r inte sparat Ă€nnu.", + "CreateCreditCardModal_BillingDetails_Description": "Du mĂ„ste spara dina faktureringsuppgifter för att kunna lĂ€gga till ditt kreditkort.", + "TaxNo": "Skatt Nej", + "CardNumber": "Kortnummer", + "NameOnCard": "Namn pĂ„ kortet", + "BillingDetails": "Faktureringsinformation", + "ThereIsNoDeveloper": "Ingen utvecklare tillagd.", + "CardDetails": "Debit-/Kreditkortsuppgifter", + "YearCantBeNull": "ÅrsfĂ€ltet fĂ„r inte vara tomt.", + "CardHolderName": "Namn pĂ„ kortet", + "ExpireDate": "UtgĂ„ngsdatum", + "DisplayName:ExpireDate": "UtgĂ„ngsdatum", + "DisplayName:CardHolderName": "Namn pĂ„ kortet", + "CreditCardNumberLengthWarning": "Ogiltigt kortnummer", + "ExpirationWarning": "Ogiltigt utgĂ„ngsdatum", + "CreateCreditCardModal_Description": "NĂ€r du sparar ditt betalkort/kreditkort kommer en tillfĂ€llig avgift pĂ„ 1 USD att godkĂ€nnas för verifiering och Ă„terbetalas omedelbart.", + "ReturnOfInvestmentTitle": "Avkastning pĂ„ investering", + "ReduceYourDevelopmentCostsDescription": "Minska dina utvecklingskostnader med mer Ă€n 50 % med ABP-ramverket. Men hur? FortsĂ€tt lĂ€sa...", + "SettingUpTheArchitectureTitle": "UppsĂ€ttning av arkitekturen", + "DoingEverythingFromScratch": "Att göra allt frĂ„n början", + "SettingUpTheArchitecture_Description1": "Organisera kodbas och lösningsstruktur", + "SettingUpTheArchitecture_Description2": "Identifiera, installera och konfigurera viktiga tredjepartsbibliotek", + "SettingUpTheArchitecture_Description3": "UpprĂ€tta infrastruktur för automatiserad integration och enhetstest", + "SettingUpTheArchitecture_Description4": "FaststĂ€lla och dokumentera kodstandarder, utbilda utvecklingsteamet", + "UsingTheABPFramework": "AnvĂ€nda ABP-ramverket", + "UseABPSettingUpTheArchitecture_Description": "AnvĂ€nd ABP:s mallar för startup-lösningar", + "ReduceCostsWithABP": "Minska kostnaderna med ABP genom att", + "ReduceCostsBy": "80 % till 100 %.", + "DesigningTheUserInterfaceTitle": "Utformning av anvĂ€ndargrĂ€nssnittet", + "DesigningTheUserInterface_Description1": "Skapa eller köp ett UI-tema", + "DesigningTheUserInterface_Description2": "Anpassa anvĂ€ndargrĂ€nssnittets tema till lösningen", + "DesigningTheUserInterface_Description3": "Bygga de viktigaste delarna av anvĂ€ndargrĂ€nssnittet (layout, meny, sidhuvud, sidfot med responsiv design)", + "DesigningTheUserInterface_Description4": "Se till att designen Ă€r konsekvent pĂ„ alla applikationssidor", + "UseABPDesigningTheUserInterface_Description": "AnvĂ€nd ABP:s LeptonX UI Theme", + "DevelopingApplicationFeaturesTitle": "Utveckling av applikationsfunktioner", + "DevelopingApplicationFeatures_Description1": "Utveckla din egen affĂ€rslogik", + "DevelopingApplicationFeatures_Description2": "Utveckla varje sida en efter en", + "DevelopingApplicationFeatures_Description3": "Utveckla gemensamma affĂ€rsmoduler sjĂ€lv", + "DevelopingApplicationFeatures_Description4": "Utveckla autentiseringssystemet (enkel inloggning, 2-faktor autentisering, sociala inloggningar, Ă„terstĂ€llning av lösenord, e-postaktivering etc...)", + "DevelopingApplicationFeatures_Description5": "TillĂ€mpa övergripande frĂ„gor i varje anvĂ€ndningsfall (DB-transaktioner, auktorisering, validering, undantagshantering etc.)", + "DevelopingApplicationFeatures_Description6": "Utveckla gemensamma basklasser och nyttotjĂ€nster", + "DevelopingApplicationFeatures_Description7": "Utveckla gemensamma icke-affĂ€rsmĂ€ssiga krav (revisionsloggning, soft-delete, bakgrundsjobb, behörighetssystem etc.)", + "UseABPDevelopingApplicationFeatures_Description1": "Utveckla din egen affĂ€rslogik", + "UseABPDevelopingApplicationFeatures_Description2": "AnvĂ€nd ABP Suite för att automatiskt generera CRUD-liknande sidor", + "UseABPDevelopingApplicationFeatures_Description3": "AnvĂ€nd direkt ABP:s förbyggda gemensamma applikationsmoduler och anpassa dem utifrĂ„n dina unika krav", + "ReduceCostsBy_2": "40-60 procent", + "WhyABPIoPlatform": "Varför ABP.IO Platform?", + "WhyShouldYouUsetheABPIOPlatform": "Varför ska du anvĂ€nda ABP.IO-plattformen istĂ€llet för att skapa en ny lösning frĂ„n grunden?", + "ExploreMore": "Utforska mer", + "DocumentIntroducesDescription": "Om du vill veta mer om varför du ska anvĂ€nda ABP.IO Platform istĂ€llet för att skapa en ny lösning frĂ„n grunden, lĂ€s följande dokument:", + "ReturnOfInvestmentPageAbout": "PĂ„ den hĂ€r sidan beskrivs de grundlĂ€ggande stegen i utvecklingen av en programvarulösning och hur ABP.IO Platform minskar dina utvecklingskostnader i varje steg.", + "LearnMore": "LĂ€r dig mer", + "ReturnOfInvestment": "Avkastning pĂ„ investeringar", + "ReturnOfInvestment_Description": "LĂ€r dig hur du kan minska dina utvecklingskostnader med mer Ă€n 50 %.", + "Previous": "FöregĂ„ende", + "PricingDiscount": "Spara", + "PricingTeamTitle": "Team", + "PricingBusinessTitle": "Företag", + "PricingEnterpriseTitle": "Företag", + "SpecialDiscount": "SĂ€rskild rabatt", + "YourOrganizationOverview": "Översikt över din organisation", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} timme", + "ContactPageError": "VĂ€nligen skicka ditt meddelande via e-post till info@abp.io
HĂ€r Ă€r vad du skrev :", + "GoBack": "GĂ„ tillbaka", + "HereWhatYouWrote": "HĂ€r Ă€r vad du skrev:", + "Sales": "FörsĂ€ljning", + "LicensingPricing": "Licensiering/prissĂ€ttning", + "TrialDemo": "Testversion / Demo", + "TrainingOnboarding": "Utbildning / Onboarding", + "Resellers": "ÅterförsĂ€ljare", + "Others": "Övriga", + "Characters": "KaraktĂ€rer", + "Topic": "Ämne", + "SendUsEmail": "Skicka e-post till oss", + "ErrorExceptionMessage": "Ett fel intrĂ€ffade under behandlingen av din begĂ€ran", + "WatchTakeCodeGeneration": "Titta pĂ„ videon \"Utforska potentialen med kodgenerering: ABP Suite\" Video!", + "StartupTemplatesUser": "AnvĂ€ndare", + "StartupSingleSignOn": "Enkel inloggning", + "Application{0}": "TillĂ€mpning {0}", + "PreBuiltApplicationModulesTitle": "FĂ€rdigbyggda applikationer Moduler.", + "RegisterDemo": "Registrera", + "TrainingDescription": "Vi erbjuder följande utbildningspaket för dig som vill skaffa dig kunskap om ABP.", + "PurchaseDevelopers": "Utvecklare", + "LinkExpiredMessage": "BetalningslĂ€nken har löpt ut! Kontakta oss pĂ„ sales@volosoft.com för att uppdatera lĂ€nken eller klicka hĂ€r för att navigera till kontaktsidan." + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json index 22ef2ddc0f..2fd650a4fb 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json @@ -153,7 +153,7 @@ "ABPCLIExplanation": "ABP CLI (Komut Satırı ArayĂŒzĂŒ), ABP tabanlı projeler için bazı ortak ißlemleri gerçekleßtirmek için bir komut satırı aracıdır.", "ABPSuiteEasilyCURD": "ABP Suite, kolayca CRUD sayfaları olußturmanıza olanak sağlayan bir araçtır", "WeAreHereToHelp": "Yardım için buradayız", - "BrowseOrAskQuestion": "Yardım konularımıza göz atabilir veya sık sorulan sorularda arama yapabilir ya da iletißim formunu kullanarak bize soru sorabilirsiniz.", + "BrowseOrAskQuestion": "Yardım konularımıza göz atabilir veya sık sorulan sorularda arama yapabilir ya da iletißim formunu kullanarak bize soru sorabilirsiniz.", "SearchQuestionPlaceholder": "Sık sorulan sorularda ara", "WhatIsTheABPCommercial": "ABP Commercial nedir?", "WhatAreDifferencesThanAbpFramework": "Açık kaynaklı ABP FrameworkĂŒ ile ABP Commercial arasındaki farklar nelerdir?", @@ -547,7 +547,7 @@ "Pricing_Page_Testimonial_2": "Özel gelißtirme projelerinin ek yĂŒkĂŒnĂŒ azaltmak için ABP Commercial kullanmanın değerini görĂŒyoruz. Ekip, farklı proje akıßlarında kod modelini birleßtirebiliyor. Yeni özellikleri eskisinden daha hızlı olußturabilmemiz için Frameworkte daha fazla potansiyel görĂŒyoruz. ABP Commercial'dan yararlanmanın değerini sĂŒrekli olarak göreceğimize inanıyoruz.", "Pricing_Page_Testimonial_3": "ABP'yi seviyoruz. Her ßeyi sıfırdan yazmak zorunda kalmıyoruz. Kullanıma hazır özellikler ile baßlıyoruz ve sadece gerçekten yazmamız gerekenlere odaklanıyoruz. Ayrıca, ABP iyi tasarlanmıß, daha az kod ve dĂŒĆŸĂŒk hata ile yĂŒksek kalitede. İhtiyaç duyduğumuz her ßeyi kendi baßımıza yazmak zorunda kalsaydık, yıllarımızı harcamak zorunda kalabilirdik. Hoßumuza giden bir diğer ßey de yeni sĂŒrĂŒmĂŒn, sorun dĂŒzeltmenin ya da iyileßtirmenin iki haftada bir çıkması. Çok uzun sĂŒre beklemiyoruz.", "Pricing_Page_Testimonial_4": "ABP Commercial harika bir ĂŒrĂŒn, tavsiye ederim. MĂŒĆŸterilerimiz için ticari ĂŒrĂŒnleri tek bir yapılandırılabilir platformda pazara sunuyor. Framework ve araçların herhangi bir ekibe sağladığı hızlı baßlangıç her kurußa değer. ABP Commercial ihtiyaçlarımız için en uygun ĂŒrĂŒndĂŒ.", - "Pricing_Page_Testimonial_5": "ABP Framework sadece bir framework değil, aynı zamanda bir proje gelißtirme/yönetme rehberi, Ă§ĂŒnkĂŒ DDD, GenericRepository, DI, Microservice ve Modularity eğitimleri veriyor. Framework'ĂŒn kendisini kullanmayacak olsanız bile, iyi ve profesyonelce hazırlanmıß docs.abp.io ile kendinizi gelißtirebilirsiniz (OpenIddict, Redis, Quartz vb.). Birçok ßey önceden hazır olduğu için proje gelißtirme sĂŒresini önemli ölĂ§ĂŒde kısaltıyor (Giriß sayfası, istisna ißleme, veri filtreleme, tohumlama, denetim gĂŒnlĂŒÄŸĂŒ, yerelleßtirme, otomatik API denetleyicisi vb.) Uygulamamızdan bir örnek olarak, stok kontrolĂŒ için Local Event Bus kullandım. Böylece stok ißleyicisi yazarak sipariß hareketlerini yönetebiliyorum. CreationTime, CreatorId için zaman kaybetmemek harika. Bunlar otomatik olarak dolduruluyor.", + "Pricing_Page_Testimonial_5": "ABP Framework sadece bir framework değil, aynı zamanda bir proje gelißtirme/yönetme rehberi, Ă§ĂŒnkĂŒ DDD, GenericRepository, DI, Microservice ve Modularity eğitimleri veriyor. Framework'ĂŒn kendisini kullanmayacak olsanız bile, iyi ve profesyonelce hazırlanmıß abp.io/docs ile kendinizi gelißtirebilirsiniz (OpenIddict, Redis, Quartz vb.). Birçok ßey önceden hazır olduğu için proje gelißtirme sĂŒresini önemli ölĂ§ĂŒde kısaltıyor (Giriß sayfası, istisna ißleme, veri filtreleme, tohumlama, denetim gĂŒnlĂŒÄŸĂŒ, yerelleßtirme, otomatik API denetleyicisi vb.) Uygulamamızdan bir örnek olarak, stok kontrolĂŒ için Local Event Bus kullandım. Böylece stok ißleyicisi yazarak sipariß hareketlerini yönetebiliyorum. CreationTime, CreatorId için zaman kaybetmemek harika. Bunlar otomatik olarak dolduruluyor.", "Pricing_Page_Testimonial_6": "ABP Framework iyi bir framework ancak kullandığı farklı katmanları, sınıfları ve kĂŒtĂŒphaneleri (özellikle ABP) anlamak için zaman gerekiyor. Kod tabanını okumak için çok zaman harcadım, ancak ABP Commercial, proje özel entitylerini (AR) ve her birine bağlı depoyu olußturmak için bize zaman kazandırdı. ABP'de kullanılan yaklaßımın çok olgun olmasını da beğendim, DDD ve monolith'e dayandığını biliyoruz.", "Pricing_Page_Testimonial_7": "Bir baßlangıç olarak hızlı bir ßekilde yineleme yapmamız ve temel olmayan özellikler için minimum zaman harcamamız gerekiyor.\nMĂŒhendislerimiz son derece deneyimli mĂŒhendislerden genç mĂŒhendislere kadar çeßitlilik gösteriyor, ortak bir anlayıßa ve teknik ve alan bilgisini paylaßmanın bir yoluna ihtiyacımız vardı, ABP harika kılavuzları ve belgeleri sayesinde bunu yapmamızı sağladı. \nABP ile kutudan çıkar çıkmaz çalıßtıkları için endißelenmemize gerek kalmayan ßeyler var. \nABP, hızlı prototip olußturma ve gelißtirmeyi kolaylaßtırmamıza yardımcı oldu, özelliğin baßlangıcından ĂŒretime kadar 4 haftadan kısa bir sĂŒre geçti. Lisansa dahil olan tĂŒm premium özellikleriyle ABP, Yazılım MĂŒhendisliği tarafında bize \"Startup in a Box\" sağladı.", "Pricing_Page_Testimonial_8": "ABP Commercial'i mĂŒĆŸterilerine sunulan ĂŒrĂŒn yelpazesini genißletmek isteyen herkese tavsiye ederim. Dağıtılmıß bir kurumsal ortamı kullanmanız gerektiğinde (Angular, WPF, Win&Linux), harika bir seçenek. ÜrĂŒnlerinin yanı sıra, ißlerimizi daha hızlı ve kolay hale getiren desteklerini de seviyoruz. ƞimdiden gelecekte ißimizi genißletmemizde bize destek olacak harika bir ortağı bulduğumuzu biliyoruz.", @@ -726,7 +726,7 @@ "Landing_Page_DocsModuleDescription_9": "GitHub kaynağına ek olarak, dokĂŒmantasyon kaynağı olarak bir klasörĂŒn kullanılmasına izin verir.", "Landing_Page_FileManagementModuleDescription_1": "Dosyaları hiyerarßik bir klasör yapısı içinde yĂŒkleyin, indirin ve dĂŒzenleyin.", "Landing_Page_FileManagementModuleDescription_2": "Bu modĂŒl, dosyaları hiyerarßik bir klasör yapısında yĂŒklemek, indirmek ve dĂŒzenlemek için kullanılır. Ayrıca multi-tenancy uyumludur ve tenancy için toplam boyut sınırını belirleyebilirsiniz.", - "Landing_Page_FileManagementModuleDescription_3": "Bu modĂŒl BLOB Depolama sistemine dayanmaktadır, bu nedenle dosya içeriklerini depolamak için farklı depolama sağlayıcıları kullanabilir.", + "Landing_Page_FileManagementModuleDescription_3": "Bu modĂŒl BLOB Depolama sistemine dayanmaktadır, bu nedenle dosya içeriklerini depolamak için farklı depolama sağlayıcıları kullanabilir.", "Landing_Page_IdentityModuleDescription_1": "Bu modĂŒl bir uygulamanın Kullanıcı ve Rol sistemini uygular;", "Landing_Page_IdentityModuleDescription_2": "Microsoft'un ASP.NET Core Identity kĂŒtĂŒphanesi ĂŒzerine inßa edilmißtir.", "Landing_Page_IdentityModuleDescription_3": "Sistemdeki rolleri ve kullanıcıları yönetin. Bir kullanıcının birden çok role sahip olmasına izin verilir.", @@ -806,9 +806,9 @@ "SeeLeptonDocumentation": "Lepton DokĂŒmantasyonuna Bakın", "GetLepton": "Lepton'u ƞimdi Alın", "WhyUseAbpIoPlatform": "Sıfırdan yeni bir proje olußturmak yerine neden ABP.IO Platformunu kullanmalıyım?", - "WhyUseAbpIoPlatformFaqExplanation": "ABP.IO Platformunu kullanmanın her ßeyi kendiniz yapmaya göre neden önemli bir avantaja sahip olduğuna dair ayrıntılı bir açıklama için bu belgeye bakın.", + "WhyUseAbpIoPlatformFaqExplanation": "ABP.IO Platformunu kullanmanın her ßeyi kendiniz yapmaya göre neden önemli bir avantaja sahip olduğuna dair ayrıntılı bir açıklama için bu belgeye bakın.", "SupportPolicyFaqTitle": "Destek politikanız nedir?", - "SupportPolicyFaqExplanation": "Yalnızca etkin ve önceki ana sĂŒrĂŒmĂŒ destekliyoruz. ĂœĂ§ĂŒncĂŒ ve daha eski ana sĂŒrĂŒmler için bir yama sĂŒrĂŒmĂŒnĂŒ garanti etmiyoruz. Örneğin, etkin sĂŒrĂŒm 7.0.0 ise, hem 6.x.x hem de 7.x.x için yama sĂŒrĂŒmleri yayınlayacağız. Ayrıca, yalnızca ABP Framework ve ABP Commercial ile ilgili sorunlar için destek sağlıyoruz. Bu, ABP ĂŒrĂŒnleri tarafından kullanılan 3. taraf uygulamalar, bulut hizmetleri ve diğer çevresel kĂŒtĂŒphaneler için destek verilmediği anlamına gelir. MĂŒĆŸterilerimize \"Volosoft Bilißim A.ƞ\"nin resmi çalıßma saatleri içinde teknik destek sağlamak için ticari olarak makul çabayı göstereceğiz. Öte yandan, bir hizmet seviyesi anlaßması (SLA) yanıt sĂŒresi taahhĂŒt etmiyoruz, ancak teknik sorunlara resmi çalıßma saatlerimiz içinde mĂŒmkĂŒn olduğunca çabuk yanıt vermeye çalıßacağız. MĂŒĆŸteri ile özel bir anlaßma yapılmadığı sĂŒrece, yalnızca https://support.abp.io adresinden destek sağlıyoruz. Ayrıca, yalnızca Kurumsal Lisans sahiplerinin kullanabildiği özel e-posta desteğimiz de bulunmaktadır.", + "SupportPolicyFaqExplanation": "Yalnızca etkin ve önceki ana sĂŒrĂŒmĂŒ destekliyoruz. ĂœĂ§ĂŒncĂŒ ve daha eski ana sĂŒrĂŒmler için bir yama sĂŒrĂŒmĂŒnĂŒ garanti etmiyoruz. Örneğin, etkin sĂŒrĂŒm 7.0.0 ise, hem 6.x.x hem de 7.x.x için yama sĂŒrĂŒmleri yayınlayacağız. Ayrıca, yalnızca ABP Framework ve ABP Commercial ile ilgili sorunlar için destek sağlıyoruz. Bu, ABP ĂŒrĂŒnleri tarafından kullanılan 3. taraf uygulamalar, bulut hizmetleri ve diğer çevresel kĂŒtĂŒphaneler için destek verilmediği anlamına gelir. MĂŒĆŸterilerimize \"Volosoft Bilißim A.ƞ\"nin resmi çalıßma saatleri içinde teknik destek sağlamak için ticari olarak makul çabayı göstereceğiz. Öte yandan, bir hizmet seviyesi anlaßması (SLA) yanıt sĂŒresi taahhĂŒt etmiyoruz, ancak teknik sorunlara resmi çalıßma saatlerimiz içinde mĂŒmkĂŒn olduğunca çabuk yanıt vermeye çalıßacağız. MĂŒĆŸteri ile özel bir anlaßma yapılmadığı sĂŒrece, yalnızca https://abp.io/support/questions adresinden destek sağlıyoruz. Ayrıca, yalnızca Kurumsal Lisans sahiplerinin kullanabildiği özel e-posta desteğimiz de bulunmaktadır.", "ExtraQuestionCreditsFaqTitle": "Ekstra destek soru kredisi satın alabilir miyim?", "ExtraQuestionCreditsFaqExplanation": "Evet, alabilirsiniz. Ekstra soru kredisi satın almak için info@abp.io adresine kurulußunuzun e-posta adresini içeren bir e-posta gönderin. Ekstra soru kredileri için fiyat listesi ĆŸĂ¶yle:
  • 50 soru paketi $999
  • 25 soru paketi $625
  • 15 soru paketi $450
", "BlazoriseLicense": "Blazorise lisansı satın almamız gerekiyor mu?", @@ -880,7 +880,7 @@ "CreatingAnEmptySolution_THEPROBLEM_Description4": "3. taraf kĂŒtĂŒphaneleri nasıl entegre edersiniz?", "CreatingAnEmptySolution_THEPROBLEM_Description5": "Otomatik testler nasıl kurulur?", "ABPSOLUTION": "ABP PROJESİ", - "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP, iyi tasarlanmıß, katmanlı ve ĂŒretim için hazır bir baßlangıç projesi sağlar. Bu proje, aynı zamanda her katman için önceden yapılandırılmıß birim ve entegrasyon testlerini içerir. Temeli Domain Driven Design prensiplerine dayanmaktadır. ", + "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP, iyi tasarlanmıß, katmanlı ve ĂŒretim için hazır bir baßlangıç projesi sağlar. Bu proje, aynı zamanda her katman için önceden yapılandırılmıß birim ve entegrasyon testlerini içerir. Temeli Domain Driven Design prensiplerine dayanmaktadır. ", "CommonLibraries": "Ortak KĂŒtĂŒphaneler", "CommonLibraries_THEPROBLEM_Description": "Ortak gereksinimleri uygulayabilmek için hangi kĂŒtĂŒphaneleri kullanmalısınız? Yazılım gelißtirme ekosistemi son derece dinamik olduğundan, en son araçları, kĂŒtĂŒphaneleri, trendleri ve yaklaßımları takip etmek zorlayıcı olabilir.", "CommonLibraries_ABPSOLUTION_Description": "ABP, popĂŒler, olgun ve gĂŒncel kĂŒtĂŒphaneleri projeye önceden entegre eder. Bunları entegre etme veya birbirleriyle iletißim kurma konusunda zaman harcamanıza gerek yoktur. KĂŒtĂŒphaneler kutudan çıkar çıkmaz dĂŒzgĂŒn bir ßekilde çalıßırlar.", @@ -898,7 +898,7 @@ "KeepingYourSolutionUpToDate": "Projenizi GĂŒncel Tutma", "KeepingYourSolutionUpToDate_THEPROBLEM_Description": "Gelißtirmeye baßladıktan sonra, kullanılan kĂŒtĂŒphanelerin yeni sĂŒrĂŒmlerini gĂŒncellemeler ve yamalar için takip etmelisiniz.", "KeepingYourSolutionUpToDate_ABPSOLUTION_Description": "DĂŒzenli olarak tĂŒm paketleri en son sĂŒrĂŒmlere gĂŒncelliyor ve bunları kararlı sĂŒrĂŒm öncesinde test ediyoruz. ABP Framework'ĂŒ gĂŒncellediğinizde, tĂŒm bağımlılıkları en gĂŒncel teknolojiye yĂŒkseltilir.", - "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "Abp update CLI komutu, otomatik olarak bir projedeki tĂŒm ABP bağımlı NuGet ve NPM paketlerini keßfeder ve gĂŒnceller. ABP ile en son sĂŒrĂŒmlerde kalmak daha kolaydır.", + "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "Abp update CLI komutu, otomatik olarak bir projedeki tĂŒm ABP bağımlı NuGet ve NPM paketlerini keßfeder ve gĂŒnceller. ABP ile en son sĂŒrĂŒmlerde kalmak daha kolaydır.", "DRY": "Kendini Tekrar Etme!", "DRY_Description": "Temel bir proje olußturmak önemli zaman alır ve iyi bir mimari deneyimi gerektirir. Ancak bu sadece baßlangıçtır! Gelißtirmeye baßladıkça, muhtemelen birçok tekrarlayan kod yazmanız gerekecektir; eğer tĂŒm bunlar otomatik olarak ißlenebilseydi harika olurdu.", "DRY_Description2": "ABP, konvansiyon ĂŒzerinde konfigĂŒrasyon prensibini takip ederek tekrarlayan kodları mĂŒmkĂŒn olduğunca otomatikleßtirir ve basitleßtirir. Ancak manuel moda geçmeniz gerektiğinde sizi sınırlamaz. Kontrol her zaman sizin elinizdedir.", @@ -938,12 +938,12 @@ "Modularity_THEPROBLEM_Description": "Gerçekten modĂŒler bir sistem olußturmak kolay değildir! Sistemin tĂŒm yönleri (veritabanı, varlıklar, API'lar, UI sayfaları/bileßenleri) modĂŒllere ayrılabilir ve her modĂŒl, diğerleri olmadan tekrar kullanılabilir. ASP.NET Core, böyle bir modĂŒler mimari sunmaz. Bunu istiyorsanız, sıfırdan dĂŒĆŸĂŒnmeniz gerekebilir.", "Modularity_ABPSOLUTION_Description": "ABP Framework, modĂŒler bir uygulama gelißtirme yapısı olmak ĂŒzere doğmußtur. Frameworkteki her özellik, modĂŒlerlikle uyumlu olacak ßekilde gelißtirilmißtir. Belgeler ve rehberler, nasıl standart bir ßekilde yeniden kullanılabilir modĂŒller gelißtireceğinizi açıklar.", "SaaSMultiTenancy": "SaaS / Multi Tenancy", - "SaaSMultiTenancy_THEPROBLEM_Description": "Multi-Tenancy SaaS sistemlerini uygulamanın yaygın bir yoludur. Ancak, tutarlı bir Multi-Tenancy altyapısı uygulamak karmaßık hale gelebilir.", + "SaaSMultiTenancy_THEPROBLEM_Description": "Multi-Tenancy SaaS sistemlerini uygulamanın yaygın bir yoludur. Ancak, tutarlı bir Multi-Tenancy altyapısı uygulamak karmaßık hale gelebilir.", "SaaSMultiTenancy_ABPSOLUTION_Description": "ABP Framework, eksiksiz bir multi tenancy altyapı sağlar ve ißletme kodunuzdan karmaßıklığı soyutlar. Uygulama kodunuzun çoğu multi-tenancy duyarlı olacaktır, ancak ABP Framework otomatik olarak veritabanını, önbelleği ve diğer tenancy ayrıntılarını birbirinden izole eder. Tek bir veritabanını, her tenancy için bir veritabanını ve karma yaklaßımları destekler. Normalde multi-tenancy uyumlu olmayan Microsoft Identity ve OpenIddict gibi kĂŒtĂŒphaneleri uygun ßekilde yapılandırır.", "Microservices": "Mikroservisler", "Microservices_THEPROBLEM_Description": "Bir mikroservis sistemi olußturmak birçok altyapı ayrıntısı gerektirir: Uygulamaların ve mikroservislerin doğrulanması, yetkilendirilmesi ve mikroservisler arasında eßzamansız mesajlaßma ve eßzamanlı (Dinlenme/GRPC) iletißim kalıplarının uygulanması en temel konulardır.", - "Microservices_ABPSOLUTION_Description": "ABP Framework, endĂŒstri standardı araçları kullanarak mikroservis projenizi uygulamanıza yardımcı olacak hizmetler, rehberler, ve örnekler sağlar.", - "Microservices_ABPSOLUTION_Description2": "ABP Commercial bir adım daha ileri gider ve mikroservis projenizi baßlatmak için tam bir baßlangıç ßablonu sağlar.", + "Microservices_ABPSOLUTION_Description": "ABP Framework, endĂŒstri standardı araçları kullanarak mikroservis projenizi uygulamanıza yardımcı olacak hizmetler, rehberler, ve örnekler sağlar.", + "Microservices_ABPSOLUTION_Description2": "ABP Commercial bir adım daha ileri gider ve mikroservis projenizi baßlatmak için tam bir baßlangıç ßablonu sağlar.", "PreBuiltModules": "Önceden Olußturulmuß ModĂŒller", "PreBuiltModules_THEPROBLEM_Description": "Hepimizin benzer ancak biraz farklı iß gereksinimleri var. Ancak hiç kimsenin kodu doğrudan projenizde çalıßamadığından dolayı tekerleği yeniden icat etmeliyiz. Hepsi daha bĂŒyĂŒk bir projenin gömĂŒlĂŒ parçalarıdır.", "PreBuiltModules_ABPSOLUTION_Description": "ABP Commercial modĂŒlleri ödeme, sohbet, dosya yönetimi, denetim gĂŒnlĂŒÄŸĂŒ raporlama vb. gibi birçok yeniden kullanılabilir uygulama modĂŒlĂŒ sağlar. Bu modĂŒllerin hepsi projenize kolayca yĂŒklenir ve doğrudan çalıßır. SĂŒrekli olarak daha fazla modĂŒl ekliyoruz.", @@ -976,8 +976,8 @@ "DevelopYourSolution_Description1": "ABP'nin altyapısı, tekrarlayan ißleri otomatikleßtirerek ve önceden yapılandırılmıß altyapı ve uygulama özellikleri sağlayarak, kendi iß kodunuza odaklanmanızı sağlar.", "DevelopYourSolution_Description2": "Aßağıdaki kod bloğunda, ABP Framework'ĂŒnĂŒn kodunuza sorunsuz entegre olduğunu ve tekrarlayan görevleri sizin için otomatikleßtirdiğini görebilirsiniz.", "DevelopYourSolution_Description3": "Bu kısa kod bloğunda bile, ABP sizin için birçok ßey yapar.", - "DevelopYourSolution_Description4": "Temel sınıflar sağlar ve bağımlılık enjeksiyonu gibi kuralları uygulamanıza yardımcı olur. Generic repository servisleri, veritabanı ile etkileßimde bulunmak için uygun bir yol sunar. Deklaratif yetkilendirme, ince ayarlı bir izin sistemini kullanır.", - "DevelopYourSolution_Description5": "ABP, \n Unit of Work (veritabanı bağlantısı ve ißlem yönetimi için), \n istisna ißleme, \n doğrulama\n ve denetim kaydı tamamen otomatikleßtirir. GĂŒnlĂŒk gelißtirme görevlerinizi basitleßtirmek ve ĂŒretim için hazır \n uygulamalar olußtururken kendi kodunuza odaklanmanızı sağlamak için birçok baßka yapı taßı sağlar.", + "DevelopYourSolution_Description4": "Temel sınıflar sağlar ve bağımlılık enjeksiyonu gibi kuralları uygulamanıza yardımcı olur. Generic repository servisleri, veritabanı ile etkileßimde bulunmak için uygun bir yol sunar. Deklaratif yetkilendirme, ince ayarlı bir izin sistemini kullanır.", + "DevelopYourSolution_Description5": "ABP, \n Unit of Work (veritabanı bağlantısı ve ißlem yönetimi için), \n istisna ißleme, \n doğrulama\n ve denetim kaydı tamamen otomatikleßtirir. GĂŒnlĂŒk gelißtirme görevlerinizi basitleßtirmek ve ĂŒretim için hazır \n uygulamalar olußtururken kendi kodunuza odaklanmanızı sağlamak için birçok baßka yapı taßı sağlar.", "DevelopYourSolution_Description6": "Eğer bunu tamamen manuel olarak yapacaksanız, bu kod bloğunun ne kadar uzun ve karmaßık olabileceğini dĂŒĆŸĂŒnebilirsiniz.", "SuiteCrudGenerationInFewSeconds": "Projenizin el ile kodlamaya ek olarak, ABP Suite araçları kullanarak birkaç dakika içinde tamamen çalıßan gelißmiß CRUD sayfaları olußturabilirsiniz. Kodu projenize ĂŒretir, böylece özel gereksinimlerinize göre ayarlayabilirsiniz.", "DeployAnywhere_Description1": "GĂŒnĂŒn sonunda, saf bir .NET projeniz var. Projenizi kendi sunucunuza, bir bulut platformuna, Kubernetes'e veya istediğiniz herhangi bir yere dağıtabilirsiniz. İstediğiniz kadar sunucuya dağıtabilirsiniz. ABP, dağıtım ortamı bağımsız bir araçtır.", @@ -1084,8 +1084,8 @@ "SendBetaRequest": "Beta Talebi Gönder", "YouJoinedTheBetaTesterProgram": "ABP Studio beta test programına katıldınız.", "Releases": "SĂŒrĂŒm Notları", - "ReleasesDescription": "Bu sayfa, her bir sĂŒrĂŒmle ilgili detaylı bilgileri içerir. Belirli bir sĂŒrĂŒm için kapatılan tĂŒm pull requestleri görebilirsiniz. Genel milestone gelißmeleri için özet sĂŒrĂŒm notları sayfasını kontrol edebilirsiniz.", - "DoesTheSubscriptionRenewAutomaticallyExplanationAutoRenewal": "ABP Commercial lisansınızı otomatik olarak yenilemenize olanak tanır. Bu isteğe bağlı bir hizmettir. Yeni bir lisans satın alırken veya daha sonra kuruluß yönetim sayfanızdan bu özelliği etkinleßtirebilirsiniz. Otomatik yenileme, kuruluß yönetim sayfanızın 'Ödeme Yöntemi' bölĂŒmĂŒnde bulunur. Otomatik yenilemeyi kapatmak isterseniz, kuruluß yönetim sayfasına gidin, 'Ödeme Yöntemi' bölĂŒmĂŒne gidin ve 'Otomatik Yenileme' onay kutusundaki ißareti kaldırın. Otomatik yenileme özelliğini kapattığınızda, lisansınızı kendiniz yenilemelisiniz.", + "ReleasesDescription": "Bu sayfa, her bir sĂŒrĂŒmle ilgili detaylı bilgileri içerir. Belirli bir sĂŒrĂŒm için kapatılan tĂŒm pull requestleri görebilirsiniz. Genel milestone gelißmeleri için özet sĂŒrĂŒm notları sayfasını kontrol edebilirsiniz.", + "DoesTheSubscriptionRenewAutomaticallyExplanationAutoRenewal": "ABP Commercial lisansınızı otomatik olarak yenilemenize olanak tanır. Bu isteğe bağlı bir hizmettir. Yeni bir lisans satın alırken veya daha sonra kuruluß yönetim sayfanızdan bu özelliği etkinleßtirebilirsiniz. Otomatik yenileme, kuruluß yönetim sayfanızın 'Ödeme Yöntemi' bölĂŒmĂŒnde bulunur. Otomatik yenilemeyi kapatmak isterseniz, kuruluß yönetim sayfasına gidin, 'Ödeme Yöntemi' bölĂŒmĂŒne gidin ve 'Otomatik Yenileme' onay kutusundaki ißareti kaldırın. Otomatik yenileme özelliğini kapattığınızda, lisansınızı kendiniz yenilemelisiniz.", "CreditCards": "Kredi Kartları", "BillingInformation": "Ödeme Bilgileri", "MyOrganizations_LearnMorePlan": "Fiyatlandırma sayfasında planlar hakkında daha fazla bilgi edinin", @@ -1134,7 +1134,7 @@ "Purchase_Save": "{0}% İndirim {1}", "Total": "Toplam", "MultipleYearDiscount": "Çoklu Yıl İndirimi", - "TrainingDescription": "ABP Framework ve ABP Commercial konusunda uzmanlık kazanmak isteyenler için aßağıdaki eğitim paketlerini sunuyoruz.", + "TrainingDescription": "ABP Framework konusunda uzmanlık kazanmak isteyenler için aßağıdaki eğitim paketlerini sunuyoruz.", "PurchaseDevelopers": "gelißtirici", "RemoveBasket": "Sepetten kaldır", "TrainingPack": "Eğitim paketi", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json index a944e8e193..eab68bdf79 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json @@ -157,7 +157,7 @@ "ABPCLIExplanation": "ABP CLI (Giao diện dĂČng lệnh) lĂ  một cĂŽng cỄ dĂČng lệnh để thá»±c hiện một số hoáșĄt động phổ biáșżn cho cĂĄc giáșŁi phĂĄp dá»±a trĂȘn ABP.", "ABPSuiteEasilyCURD": "ABP Suite lĂ  một cĂŽng cỄ cho phĂ©p báșĄn dễ dĂ ng táșĄo cĂĄc trang CRUD", "WeAreHereToHelp": "ChĂșng tĂŽi ở đñy để Trợ giĂșp ", - "BrowseOrAskQuestion": "BáșĄn cĂł thể duyệt qua cĂĄc chá»§ đề trợ giĂșp cá»§a chĂșng tĂŽi hoáș·c tĂŹm kiáșżm trong cĂĄc cĂąu hỏi thường gáș·p hoáș·c báșĄn cĂł thể đáș·t cĂąu hỏi cho chĂșng tĂŽi báș±ng cĂĄch sá»­ dỄng biểu máș«u liĂȘn hệ .", + "BrowseOrAskQuestion": "BáșĄn cĂł thể duyệt qua cĂĄc chá»§ đề trợ giĂșp cá»§a chĂșng tĂŽi hoáș·c tĂŹm kiáșżm trong cĂĄc cĂąu hỏi thường gáș·p hoáș·c báșĄn cĂł thể đáș·t cĂąu hỏi cho chĂșng tĂŽi báș±ng cĂĄch sá»­ dỄng biểu máș«u liĂȘn hệ .", "SearchQuestionPlaceholder": "TĂŹm kiáșżm trong cĂĄc cĂąu hỏi thường gáș·p", "WhatIsTheABPCommercial": "ABP thÆ°ÆĄng máșĄi lĂ  gĂŹ?", "WhatAreDifferencesThanAbpFramework": "Sá»± khĂĄc biệt giữa Khung ABP nguồn mở vĂ  ABP ThÆ°ÆĄng máșĄi lĂ  gĂŹ?", @@ -382,7 +382,7 @@ "TrialLicenseExpireMessage": "BáșĄn đang sá»­ dỄng giáș„y phĂ©p dĂčng thá»­ vĂ  giáș„y phĂ©p dĂčng thá»­ cá»§a báșĄn sáșœ háșżt háșĄn vĂ o {0}.", "TryForFree": "Thá»­ miễn phĂ­", "TrialLicenseExpiredInfo": "Thời gian cáș„p phĂ©p dĂčng thá»­ cá»§a báșĄn đã háșżt háșĄn!", - "CommercialNewsletterConfirmationMessage": "TĂŽi đồng Ăœ với Điều khoáșŁn & điều kiện vĂ  ChĂ­nh sĂĄch quyền riĂȘng tư .", + "CommercialNewsletterConfirmationMessage": "TĂŽi đồng Ăœ với Điều khoáșŁn & điều kiện vĂ  ChĂ­nh sĂĄch quyền riĂȘng tư .", "BlackFridayDiscount": "GiáșŁm giĂĄ Black Friday", "MultipleOrganizationInfo": "Xem táș„t cáșŁ cĂĄc tổ chức cá»§a báșĄn", "PaymentFailedInfo": "Ráș„t tiáșżc, thanh toĂĄn khĂŽng thĂ nh cĂŽng! ", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json index a6af2260cb..60364800b6 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json @@ -160,7 +160,7 @@ "ABPCLIExplanation": "ABP CLIïŒˆć‘œä»€èĄŒç•ŒéąïŒ‰æ˜Żäž€ç§ć‘œä»€èĄŒć·„ć…·ïŒŒç”šäșŽæ‰§èĄŒćŸșäșŽ ABP çš„è§Łć†łæ–čæĄˆçš„䞀äș›ćžžç”šæ“äœœă€‚", "ABPSuiteEasilyCURD": "ABP Suite æ˜Żäž€æŹŸćŻèź©æ‚šèœ»æŸćˆ›ć»ș CRUD éĄ”éąçš„ć·„ć…·", "WeAreHereToHelp": "æˆ‘ä»Źćœšèż™é‡ŒćžźćŠ©", - "BrowseOrAskQuestion": "æ‚šćŻä»„æ”è§ˆæˆ‘ä»Źçš„ćžźćŠ©äž»éą˜æˆ–æœçŽąćžžè§é—źéą˜ïŒŒäčŸćŻä»„äœżç”š è”çł»èĄšć•ć‘æˆ‘ä»Źæé—źă€‚", + "BrowseOrAskQuestion": "æ‚šćŻä»„æ”è§ˆæˆ‘ä»Źçš„ćžźćŠ©äž»éą˜æˆ–æœçŽąćžžè§é—źéą˜ïŒŒäčŸćŻä»„äœżç”š è”çł»èĄšć•ć‘æˆ‘ä»Źæé—źă€‚", "SearchQuestionPlaceholder": "ćœšćžžè§é—źéą˜äž­æœçŽą", "WhatIsTheABPCommercial": "ABP Commercial æ˜Żä»€äčˆïŒŸ", "WhatAreDifferencesThanAbpFramework": "ćŒ€æș ABP æĄ†æž¶äžŽ ABP 敆侚版äč‹é—Žæœ‰ć“Șäș›ćŒșćˆ«ïŒŸ", @@ -720,7 +720,7 @@ "Landing_Page_DocsModuleDescription_9": "陀äș† GitHub æșä»Łç ć€–ïŒŒèż˜ć…èźžäœżç”šæ–‡ä»¶ć€č䜜äžșæ–‡æĄŁæșä»Łç ă€‚", "Landing_Page_FileManagementModuleDescription_1": "ä»„ćˆ†ć±‚æ–‡ä»¶ć€čç»“æž„äžŠäŒ ă€äž‹èœœć’Œæ•Žç†æ–‡ä»¶ă€‚", "Landing_Page_FileManagementModuleDescription_2": "èŻ„æšĄć—ç”šäșŽäžŠäŒ ă€äž‹èœœć’Œä»„ćˆ†ć±‚æ–‡ä»¶ć€čç»“æž„ç»„ç»‡æ–‡ä»¶ă€‚ćźƒèż˜äžŽć€šç§Ÿæˆ·ć…ŒćźčïŒŒäœ ćŻä»„çĄźćźšç§Ÿæˆ·çš„æ€»ć€§ć°é™ćˆ¶ă€‚", - "Landing_Page_FileManagementModuleDescription_3": "èŻ„æšĄć—ćŸșäșŽ BLOB ć­˜ć‚šçł»ç»ŸïŒŒć› æ­€ćŻä»„äœżç”šäžćŒçš„ć­˜ć‚šæäŸ›ć•†æ„ć­˜ć‚šæ–‡ä»¶ć†…ćźč。", + "Landing_Page_FileManagementModuleDescription_3": "èŻ„æšĄć—ćŸșäșŽ BLOB ć­˜ć‚šçł»ç»ŸïŒŒć› æ­€ćŻä»„äœżç”šäžćŒçš„ć­˜ć‚šæäŸ›ć•†æ„ć­˜ć‚šæ–‡ä»¶ć†…ćźč。", "Landing_Page_IdentityModuleDescription_1": "èŻ„æšĄć—ćźžçŽ°äș†ćș”甚皋ćșçš„ç”šæˆ·ć’Œè§’è‰Čçł»ç»ŸïŒ›", "Landing_Page_IdentityModuleDescription_2": "ćŸșäșŽ Microsoft 的 ASP.NET Core Identity ćș“æž„ć»ș。", "Landing_Page_IdentityModuleDescription_3": "çźĄç†çł»ç»Ÿäž­çš„è§’è‰Čć’Œç”šæˆ·ă€‚ć…èźžäž€äžȘç”šæˆ·æ‹„æœ‰ć€šäžȘ角è‰Č。", @@ -736,7 +736,7 @@ "Landing_Page_PaymentModuleDescription_1": "æäŸ›äžćŒæ”Żä»˜çœ‘ć…łçš„é›†æˆă€‚", "Landing_Page_PaymentModuleDescription_2": "èŻ„æšĄć—é›†æˆäș†æ”Żä»˜çœ‘ć…łïŒŒć› æ­€æ‚šćŻä»„èœ»æŸä»Žćźąæˆ·ć€„èŽ·ćŸ—ä»˜æŹŸă€‚", "Landing_Page_PaymentModuleDescription_3": "èŻ„æšĄć—æ”ŻæŒä»„äž‹æ”Żä»˜çœ‘ć…ł", - "Welcome_Page_UseSameCredentialForCommercialWebsites": "朹 commercial.abp.io 撌 support.abp.io äž­äœżç”šç›žćŒçš„ć‡­æźă€‚", + "Welcome_Page_UseSameCredentialForCommercialWebsites": "朹 commercial.abp.io 撌 support.abp.io äž­äœżç”šç›žćŒçš„ć‡­æźă€‚", "WatchCrudPagesVideo": "观看 \"äœżç”š ABP Suite 戛ć»ș CRUD éĄ”éą \"è§†éą‘ïŒ", "WatchGeneratingFromDatabaseVideo": "观看 \"ABP SuiteïŒšä»ŽçŽ°æœ‰æ•°æźćș“èĄšç”Ÿæˆ CRUD éĄ”éą \"è§†éą‘ïŒ", "WatchTakeCloserLookVideo": "观看 \"èż‘è·çŠ»äș†è§Łä»Łç ç”ŸæˆïŒšABP Suite \"è§†éą‘ïŒ", @@ -886,8 +886,8 @@ "DevelopYourSolution_Description1": "ABP 的ćŸșçĄ€æž¶æž„ćŻè‡ȘćŠšæ‰§èĄŒé‡ć€æ€§ć·„äœœïŒŒćč¶æäŸ›éą„æž„ć»ș的ćŸșçĄ€æž¶æž„ć’Œćș”甚皋ćș ćŠŸèƒœïŒŒä»Žè€Œäœżæ‚šäž“æłšäșŽè‡Ș深的䞚报代码。", "DevelopYourSolution_Description2": "ćœšäž‹éąçš„ä»Łç ć—äž­ïŒŒæ‚šćŻä»„çœ‹ćˆ° ABP æĄ†æž¶æ˜ŻćŠ‚äœ•æ— çŒé›†æˆćˆ°æ‚šçš„ä»Łç äž­ćč¶è‡ȘćŠšæ‰§èĄŒé‡ć€æ€§ä»»ćŠĄçš„ă€‚", "DevelopYourSolution_Description3": "ćłäœżćœšèż™äžȘçź€ç ć—äž­ïŒŒABP äčŸèƒœäžșæ‚šćšćŸˆć€šäș‹æƒ…。", - "DevelopYourSolution_Description4": "ćźƒæäŸ›äș†ćș”甚çșŠćźšçš„ćŸșç±»ïŒŒćŠ‚\n äŸè”–æłšć…„ă€‚é€šç”šç±»\n 蔄æșćș“æœćŠĄæäŸ›äș†äž€ç§æ–čäŸżçš„\n äžŽæ•°æźćș“äș€äș’çš„äŸżæ·æ–čæł•ă€‚ćŁ°æ˜ŽćŒ\n æŽˆæƒäžŽç»èż‡ćŸźè°ƒçš„æƒé™çł»ç»Ÿé…ćˆäœżç”šă€‚", - "DevelopYourSolution_Description5": "ABP 漌慹è‡Ș抹挖\n ć·„äœœć•ć…ƒïŒˆç”šäșŽæ•°æźćș“èżžæŽ„撌äș‹ćŠĄçźĄç†ïŒ‰ă€\n ćŒ‚ćžžć€„ç†ă€\n éȘŒèŻă€‚\n ä»„ćŠ ćźĄèźĄæ—„ćż—ă€‚ćźƒæäŸ›äș†æ›Žć€šçš„æž„ć»șæšĄć—ïŒŒćŻçź€ćŒ–æ‚šçš„æ—„ćžžćŒ€ć‘ä»»ćŠĄïŒŒćč¶ćœšćˆ›ć»ș生äș§ć°±ç»Șćș”甚皋ćșçš„ćŒæ—¶äž“æłšäșŽæ‚šè‡Ș深的代码。\n ćș”甚皋ćșă€‚", + "DevelopYourSolution_Description4": "ćźƒæäŸ›äș†ćș”甚çșŠćźšçš„ćŸșç±»ïŒŒćŠ‚\n äŸè”–æłšć…„ă€‚é€šç”šç±»\n 蔄æșćș“æœćŠĄæäŸ›äș†äž€ç§æ–čäŸżçš„\n äžŽæ•°æźćș“äș€äș’çš„äŸżæ·æ–čæł•ă€‚ćŁ°æ˜ŽćŒ\n æŽˆæƒäžŽç»èż‡ćŸźè°ƒçš„æƒé™çł»ç»Ÿé…ćˆäœżç”šă€‚", + "DevelopYourSolution_Description5": "ABP 漌慹è‡Ș抹挖\n ć·„äœœć•ć…ƒïŒˆç”šäșŽæ•°æźćș“èżžæŽ„撌äș‹ćŠĄçźĄç†ïŒ‰ă€\n ćŒ‚ćžžć€„ç†ă€\n éȘŒèŻă€‚\n ä»„ćŠ ćźĄèźĄæ—„ćż—ă€‚ćźƒæäŸ›äș†æ›Žć€šçš„æž„ć»șæšĄć—ïŒŒćŻçź€ćŒ–æ‚šçš„æ—„ćžžćŒ€ć‘ä»»ćŠĄïŒŒćč¶ćœšćˆ›ć»ș生äș§ć°±ç»Șćș”甚皋ćșçš„ćŒæ—¶äž“æłšäșŽæ‚šè‡Ș深的代码。\n ćș”甚皋ćșă€‚", "DevelopYourSolution_Description6": "ćŻä»„æƒłè±ĄïŒŒćŠ‚æžœć…šéƒšç”±äșșć·„ćźŒæˆïŒŒä»Łç ć—äŒšæœ‰ć€šäčˆć†—é•żć’Œć€æ‚ă€‚", "SuiteCrudGenerationInFewSeconds": "陀äș†æ‰‹ć·„çŒ–ç è§Łć†łæ–čæĄˆć€–ïŒŒæ‚šèż˜ćŻä»„äœżç”š ABP Suite ć·„ć…·ćœšć‡ ćˆ†é’Ÿć†…ćˆ›ć»șćŻć…šéąèżèĄŒçš„é«˜çș§ CRUD éĄ”éąă€‚ćźƒćŻć°†ä»Łç ç”Ÿæˆćˆ°æ‚šçš„è§Łć†łæ–čæĄˆäž­ïŒŒć› æ­€æ‚šćŻä»„æ čæźæ‚šçš„è‡Ș漚äč‰éœ€æ±‚ćŻčć…¶èż›èĄŒćŸźè°ƒă€‚", "DeployAnywhere_Description1": "æœ€ćŽïŒŒæ‚šć°†æ‹„æœ‰äž€äžȘçșŻçČč的 .NET è§Łć†łæ–čæĄˆă€‚æ‚šćŻä»„ć°†è§Łć†łæ–čæĄˆéƒšçœČ戰è‡Șć·±çš„æœćŠĄć™šă€äș‘ćčłć°ă€Kubernetes æˆ–ä»»äœ•æ‚šæƒłéƒšçœČ的朰æ–čă€‚æ‚šćŻä»„éƒšçœČćˆ°ä»»æ„ć€šçš„æœćŠĄć™šäžŠă€‚ABP æ˜Żäž€ç§äžŽéƒšçœČçŽŻćąƒæ— ć…łçš„ć·„ć…·ă€‚", @@ -1002,7 +1002,7 @@ "CreatingAnEmptySolution_THEPROBLEM_Description4": "ćŠ‚äœ•äžŽçŹŹäž‰æ–č蔄料ćș“ć’Œçł»ç»Ÿé›†æˆïŒŸ", "CreatingAnEmptySolution_THEPROBLEM_Description5": "ćŠ‚äœ•èźŸçœźè‡ȘćŠšæ”‹èŻ•ïŒŸ", "ABPSOLUTION": "ABP è§Łć†łæ–čæĄˆ", - "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP ćŸșäșŽéą†ćŸŸé©±ćŠšèźŸèźĄćŽŸćˆ™ïŒŒæäŸ›äș†äž€äžȘæž¶æž„ćźŒć–„ă€ćˆ†ć±‚äž”ćŻæŠ•ć…„ç”Ÿäș§çš„ćŻćŠšè§Łć†łæ–čæĄˆă€‚èŻ„è§Łć†łæ–čæĄˆèż˜ćŒ…æ‹ŹæŻäžȘć±‚çš„éą„é…çœźć•ć…ƒć’Œé›†æˆæ”‹èŻ•éĄč盼。", + "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP ćŸșäșŽéą†ćŸŸé©±ćŠšèźŸèźĄćŽŸćˆ™ïŒŒæäŸ›äș†äž€äžȘæž¶æž„ćźŒć–„ă€ćˆ†ć±‚äž”ćŻæŠ•ć…„ç”Ÿäș§çš„ćŻćŠšè§Łć†łæ–čæĄˆă€‚èŻ„è§Łć†łæ–čæĄˆèż˜ćŒ…æ‹ŹæŻäžȘć±‚çš„éą„é…çœźć•ć…ƒć’Œé›†æˆæ”‹èŻ•éĄč盼。", "CommonLibraries": "通甹ćș“", "CommonLibraries_THEPROBLEM_Description": "悚ćș”èŻ„äœżç”šć“Șäș›ćș“æ„ćźžçŽ°ćžžè§éœ€æ±‚ïŒŸèœŻä»¶ćŒ€ć‘ç”Ÿæ€çł»ç»Ÿæ˜Żé«˜ćșŠćŠšæ€çš„ïŒŒèŠè·ŸäžŠæœ€æ–°çš„ć·„ć…·ă€ćș“ă€è¶‹ćŠżć’Œæ–čæł•ć…·æœ‰æŒ‘æˆ˜æ€§ă€‚", "CommonLibraries_ABPSOLUTION_Description": "ABP ć°†æ”èĄŒă€æˆç†Ÿć’Œæœ€æ–°çš„ćș“éą„ć…ˆé›†æˆćˆ°è§Łć†łæ–čæĄˆäž­ă€‚äœ äžéœ€èŠèŠ±æ—¶é—Žé›†æˆćźƒä»Źæˆ–èź©ćźƒä»Źç›žäș’é€šäżĄă€‚ćźƒä»ŹćŒ€çź±ćłćŻæ­Łćžžć·„äœœă€‚", @@ -1020,7 +1020,7 @@ "KeepingYourSolutionUpToDate": "äżæŒè§Łć†łæ–čæĄˆæœ€æ–°", "KeepingYourSolutionUpToDate_THEPROBLEM_Description": "ćŒ€ć§‹ćŒ€ć‘ćŽïŒŒæ‚šćż…éĄ»è·ŸèžȘæ‰€äœżç”šćș“çš„æ–°ç‰ˆæœŹïŒŒä»„äŸżèż›èĄŒć‡çș§ć’Œæ‰“èĄ„侁。", "KeepingYourSolutionUpToDate_ABPSOLUTION_Description": "æˆ‘ä»ŹäŒšćźšæœŸć°†æ‰€æœ‰ćŒ…æ›Žæ–°è‡łæœ€æ–°ç‰ˆæœŹïŒŒćč¶ćœšçšłćźšç‰ˆæœŹć‘ćžƒć‰ćŻčć…¶èż›èĄŒæ”‹èŻ•ă€‚ćœ“äœ æ›Žæ–° ABP æĄ†æž¶æ—¶ïŒŒćźƒçš„æ‰€æœ‰äŸè”–éĄčéƒœäŒšć‡çș§ćˆ°èŸčçŒ˜æŠ€æœŻă€‚", - "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "Abp update CLI ć‘œä»€ćŻè‡Ș抹揑现ćč¶ć‡çș§è§Łć†łæ–čæĄˆäž­æ‰€æœ‰äŸè”– ABP 的 NuGet 撌 NPM ćŒ…ă€‚æœ‰äș† ABPïŒŒäœżç”šæœ€æ–°ç‰ˆæœŹć˜ćŸ—æ›ŽćŠ ćźčæ˜“ă€‚", + "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "Abp update CLI ć‘œä»€ćŻè‡Ș抹揑现ćč¶ć‡çș§è§Łć†łæ–čæĄˆäž­æ‰€æœ‰äŸè”– ABP 的 NuGet 撌 NPM ćŒ…ă€‚æœ‰äș† ABPïŒŒäœżç”šæœ€æ–°ç‰ˆæœŹć˜ćŸ—æ›ŽćŠ ćźčæ˜“ă€‚", "DRY": "äžèŠé‡ć€è‡Șć·±", "DRY_Description": "戛ć»șćŸșçĄ€è§Łć†łæ–čæĄˆéœ€èŠć€§é‡æ—¶é—ŽïŒŒćč¶éœ€èŠè‰Żć„œçš„ć»ș筑经éȘŒă€‚ç„¶è€ŒïŒŒèż™ä»…ä»…æ˜ŻäžȘćŒ€ć§‹ïŒćœšćŒ€ć§‹ćŒ€ć‘æ—¶ïŒŒæ‚šćŻèƒœéœ€èŠçŒ–ć†™ć€§é‡é‡ć€çš„ä»Łç ïŒ›ćŠ‚æžœæ‰€æœ‰èż™äș›ä»Łç éƒœèƒœè‡ȘćŠšć€„ç†ïŒŒé‚Łć°±ć†ć„œäžèż‡äș†ă€‚", "DRY_Description2": "ABP 達ćŸȘ \"çșŠćźšé‡äșŽé…çœź \"çš„ćŽŸćˆ™ïŒŒć°œćŻèƒœè‡ȘćŠšćŒ–ć’Œçź€ćŒ–é‡ć€ä»Łç ă€‚äžèż‡ïŒŒćœ“æ‚šéœ€èŠćˆ‡æąćˆ°æ‰‹ćŠšæĄŁæ—¶ïŒŒćźƒäčŸäžäŒšé™ćˆ¶æ‚šă€‚æŽ§ćˆ¶æƒć§‹ç»ˆæŽŒæĄćœšæ‚šçš„æ‰‹äž­ă€‚", @@ -1061,12 +1061,12 @@ "Modularity_THEPROBLEM_Description": "ć»ș立䞀äžȘçœŸæ­Łçš„æšĄć—ćŒ–çł»ç»Ÿćč¶éžæ˜“äș‹ïŒçł»ç»Ÿçš„æ‰€æœ‰æ–čéąïŒˆæ•°æźćș“ă€ćźžäœ“ă€API、UIéĄ”éą/ç»„ä»¶ïŒ‰éƒœćŻä»„ćˆ†ć‰ČæˆæšĄć—ïŒŒè€Œäž”æŻäžȘæšĄć—éƒœćŻä»„é‡ç”šïŒŒæ— éœ€ć…¶ä»–æšĄć—ă€‚æ™źé€šçš„ ASP.NET Core ćč¶äžæäŸ›èż™æ ·çš„æšĄć—ćŒ–æž¶æž„ă€‚ćŠ‚æžœéœ€èŠïŒŒæ‚šćș”èŻ„ä»Žć€ŽćŒ€ć§‹è€ƒè™‘ă€‚", "Modularity_ABPSOLUTION_Description": "ABP æĄ†æž¶æ˜Żäž€ç§æšĄć—ćŒ–ćș”甚皋ćșćŒ€ć‘ç»“æž„ă€‚æĄ†æž¶äž­çš„æŻéĄčćŠŸèƒœéƒœæ˜Żäžșć…ŒćźčæšĄć—ćŒ–è€ŒćŒ€ć‘çš„ă€‚æ–‡æĄŁć’ŒæŒ‡ć—è§Łé‡Šäș†ćŠ‚äœ•ä»„æ ‡ć‡†æ–čćŒćŒ€ć‘ćŻé‡ç”šçš„æšĄć—ă€‚", "SaaSMultiTenancy": "SaaS / ć€šç§Ÿæˆ·", - "SaaSMultiTenancy_THEPROBLEM_Description": " ć€šç§Ÿæˆ·æ˜Żćźžæ–œ SaaS çł»ç»Ÿçš„äž€ç§ćžžè§æ–čćŒă€‚äœ†æ˜ŻïŒŒćźžæ–œäž€è‡Žçš„ć€šç”šæˆ·ćŸșçĄ€èźŸæ–œćŻèƒœäŒšć˜ćŸ—ć€æ‚ă€‚", + "SaaSMultiTenancy_THEPROBLEM_Description": " ć€šç§Ÿæˆ·æ˜Żćźžæ–œ SaaS çł»ç»Ÿçš„äž€ç§ćžžè§æ–čćŒă€‚äœ†æ˜ŻïŒŒćźžæ–œäž€è‡Žçš„ć€šç”šæˆ·ćŸșçĄ€èźŸæ–œćŻèƒœäŒšć˜ćŸ—ć€æ‚ă€‚", "SaaSMultiTenancy_ABPSOLUTION_Description": "ABP æĄ†æž¶æäŸ›ćźŒæ•Žçš„ć€šç§Ÿæˆ·ćŸșçĄ€æž¶æž„ïŒŒćč¶ä»Žæ‚šçš„äžšćŠĄä»Łç äž­æŠœè±Ąć‡șć€æ‚æ€§ă€‚æ‚šçš„ćș”甚皋ćșä»Łç ć€§éƒšćˆ†ć°†ć…·æœ‰ć€šç§Ÿæˆ·æ„èŻ†ïŒŒè€Œ ABP æĄ†æž¶äŒšè‡ȘćŠšéš”çŠ»ç§Ÿæˆ·äč‹é—Žçš„æ•°æźćș“ă€çŒ“ć­˜ć’Œć…¶ä»–ç»†èŠ‚ă€‚ćꃿ”ŻæŒć•äžȘæ•°æźćș“ă€æŻäžȘç§Ÿæˆ·æ•°æźćș“ć’Œæ··ćˆæ–čæł•ă€‚ćźƒèƒœæ­ŁçĄźé…çœź Microsoft Identity 撌 OpenIddict 等ćș“ïŒŒèż™äș›ćș“é€šćžžäžŽć€šç§Ÿæˆ·äžć…Œćźč。", "Microservices": "ćŸźæœćŠĄ", "Microservices_THEPROBLEM_Description": "构ć»șćŸźæœćŠĄçł»ç»Ÿéœ€èŠèźžć€šćŸșçĄ€èźŸæ–œç»†èŠ‚ïŒšćŻčćș”甚皋ćșć’ŒćŸźæœćŠĄèż›èĄŒèș«ä»œéȘŒèŻć’ŒæŽˆæƒïŒŒä»„ćŠćœšćŸźæœćŠĄäč‹é—Žćźžæ–œćŒ‚æ­„æ¶ˆæŻäŒ é€’ć’ŒćŒæ­„ïŒˆRest/GRPCïŒ‰é€šäżĄæšĄćŒæ˜Żæœ€ćŸșæœŹçš„é—źéą˜ă€‚", - "Microservices_ABPSOLUTION_Description": "ABP æĄ†æž¶æäŸ›æœćŠĄă€æŒ‡ć—ć’Œç€șäŸ‹ïŒŒćžźćŠ©æ‚šäœżç”šèĄŒäžšæ ‡ć‡†ć·„ć…·ćźžæ–œćŸźæœćŠĄè§Łć†łæ–čæĄˆă€‚", - "Microservices_ABPSOLUTION_Description2": "ABP Commercial ç”šè‡łæ›Žèż›äž€æ­„ïŒŒæäŸ›äș†ćꌿ•Žçš„ ćŻćŠšæšĄæżïŒŒä»„ćŻćŠšæ‚šçš„ćŸźæœćŠĄè§Łć†łæ–čæĄˆă€‚", + "Microservices_ABPSOLUTION_Description": "ABP æĄ†æž¶æäŸ›æœćŠĄă€æŒ‡ć—ć’Œç€șäŸ‹ïŒŒćžźćŠ©æ‚šäœżç”šèĄŒäžšæ ‡ć‡†ć·„ć…·ćźžæ–œćŸźæœćŠĄè§Łć†łæ–čæĄˆă€‚", + "Microservices_ABPSOLUTION_Description2": "ABP Commercial ç”šè‡łæ›Žèż›äž€æ­„ïŒŒæäŸ›äș†ćꌿ•Žçš„ ćŻćŠšæšĄæżïŒŒä»„ćŻćŠšæ‚šçš„ćŸźæœćŠĄè§Łć†łæ–čæĄˆă€‚", "PreBuiltModules": "éą„ćˆ¶æšĄć—", "PreBuiltModules_THEPROBLEM_Description": "æˆ‘ä»ŹæŻäžȘäșșéƒœæœ‰ç›žäŒŒäœ†ç•„æœ‰äžćŒçš„äžšćŠĄéœ€æ±‚ă€‚äœ†æ˜ŻïŒŒæˆ‘ä»Źéƒœćș”èŻ„é‡æ–°ć‘æ˜Žèœźć­ïŒŒć› äžșæČĄæœ‰äșșçš„ä»Łç ćŻä»„ç›ŽæŽ„ç”šäșŽæˆ‘ä»Źçš„è§Łć†łæ–čæĄˆă€‚ćźƒä»Źéƒœæ˜Żæ›Žć€§è§Łć†łæ–čæĄˆçš„ć”Œć…„éƒšćˆ†ă€‚", "PreBuiltModules_ABPSOLUTION_Description": "ABP Commercial æšĄć—æäŸ›äș†ć€§é‡ćŻé‡ç”šçš„ćș”ç”šæšĄć—ïŒŒćŠ‚æ”Żä»˜ă€èŠć€©ă€æ–‡ä»¶çźĄç†ă€ćźĄèźĄæ—„ćż—æŠ„ć‘Š......ç­‰ă€‚æ‰€æœ‰èż™äș›æšĄć—éƒœćŻä»„èœ»æŸćź‰èŁ…ćˆ°æ‚šçš„è§Łć†łæ–čæĄˆäž­ćč¶ç›ŽæŽ„èżèĄŒă€‚æˆ‘ä»Źć°†äžæ–­æ·»ćŠ æ›Žć€šæšĄć—ă€‚", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json index ae5ba6708c..212c641305 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json @@ -159,7 +159,7 @@ "ABPCLIExplanation": "ABP CLI(ć‘œä»€èĄŒé éą)æ˜Żäž€ć€‹ćŸ·èĄŒćŸșæ–ŒABPè§Łæ±șæ–čæĄˆçš„䞀äș›ćžžèŠ‹æ“äœœçš„ć‘œä»€èĄŒć·„ć…·.", "ABPSuiteEasilyCURD": "ABP Suiteæ˜Żäž€ć€‹äœżäœ èŒ•æŸć‰”ć»șCURDé éąçš„ć·„ć…·", "WeAreHereToHelp": "æˆ‘ć€‘ćœšé€™èŁç‚ș䜠提䟛ćč«ćŠ©", - "BrowseOrAskQuestion": "äœ ćŻä»„ç€èŠœæˆ‘ć€‘çš„ćč«ćŠ©äž»éĄŒæˆ–æœçŽąćžžèŠ‹çš„ć•éĄŒ, æˆ–è€…äœ ćŻä»„äœżç”šèŻçł»èĄšć–źć‘æˆ‘ć€‘æć•.", + "BrowseOrAskQuestion": "äœ ćŻä»„ç€èŠœæˆ‘ć€‘çš„ćč«ćŠ©äž»éĄŒæˆ–æœçŽąćžžèŠ‹çš„ć•éĄŒ, æˆ–è€…äœ ćŻä»„äœżç”šèŻçł»èĄšć–źć‘æˆ‘ć€‘æć•.", "SearchQuestionPlaceholder": "æœçŽąćžžèŠ‹çš„ć•éĄŒ", "WhatIsTheABPCommercial": "什éșœæ˜ŻABPć•†æ„­ç‰ˆ?", "WhatAreDifferencesThanAbpFramework": "ABPæĄ†æž¶èˆ‡ABPć•†æ„­ç‰ˆæœ‰ä»€éșœäžćŒ?", @@ -529,7 +529,7 @@ "Pricing_Page_Testimonial_2": "æˆ‘ć€‘çœ‹ćˆ°äș†äœżç”š ABP Commercial äŸ†æž›ć°‘ćźąèŁœćŒ–é–‹ç™Œć°ˆæĄˆçš„é–‹éŠ·çš„ćƒčć€Œă€‚ćœ˜éšŠèƒœć€ ç”±äž€äžćŒć°ˆæĄˆæ”äž­çš„çš‹ćŒçąŒæšĄćŒă€‚æˆ‘ć€‘çœ‹ćˆ°è©ČæĄ†æž¶ć…·æœ‰æ›Žć€§çš„æœ›ćŠ›ïŒŒćŻä»„èź“æˆ‘ć€‘æŻ”ä»„ć‰æ›Žćż«ćœ°ć»șç«‹æ–°ćŠŸèƒœă€‚æˆ‘ć€‘ç›žäżĄæˆ‘ć€‘ć°‡äžæ–·çœ‹ćˆ°ćˆ©ç”š ABP Commercial 的ćƒčć€Œă€‚", "Pricing_Page_Testimonial_3": "æˆ‘ć€‘æ„› ABPă€‚æˆ‘ć€‘äžćż…ćŸžé ­é–‹ć§‹ç·šćŻ«æ‰€æœ‰ć…§ćźčă€‚æˆ‘ć€‘ćŸžé–‹çź±ćłç”šçš„ćŠŸèƒœé–‹ć§‹ïŒŒćȘć°ˆæłšæ–Œæˆ‘ć€‘çœŸæ­Łéœ€èŠç·šćŻ«çš„ć…§ćźčă€‚æ­€ć€–ïŒŒABP æž¶æ§‹è‰Żć„œïŒŒçš‹ćŒçąŒć“èłȘé«˜ïŒŒéŒŻèȘ€èŒƒć°‘ă€‚ćŠ‚æžœæˆ‘ć€‘ćż…é ˆè‡Șć·±ç·šćŻ«æ‰€éœ€çš„æ‰€æœ‰ć…§ćźčïŒŒæˆ‘ć€‘ćŻèƒœéœ€èŠèŠ±èČ»æ•žćčŽæ™‚é–“ă€‚æˆ‘ć€‘ć–œæ­Ąçš„ćŠäž€ä»¶äș‹æ˜ŻïŒŒæ–°ç‰ˆæœŹă€ć•éĄŒäżźćŸ©æˆ–æ”čé€ČæŻéš”äž€ć‘šćŸˆćż«ć°±æœƒç™Œćžƒă€‚æˆ‘ć€‘äžæœƒç­‰ć€Șäč…。", "Pricing_Page_Testimonial_4": "ABP Commercial æ˜Żäž€æŹŸæ„”äœłçš„ç”ąć“ïŒŒć€ŒćŸ—æŽšè–Šă€‚ćœšć–źäž€ćŻé…çœźćčłć°äžŠç‚șæˆ‘ć€‘çš„ćźąæˆ¶æŽšć‡șć•†æ„­ç”ąć“ă€‚ç‚șä»»äœ•ćœ˜éšŠæäŸ›çš„æĄ†æž¶ć’Œć·„ć…·çš„ćż«é€Ÿć•Ÿć‹•éƒœæ˜Żć€ŒćŸ—çš„ă€‚ ABP Commercial æœ€é©ćˆæˆ‘ć€‘çš„éœ€æ±‚ă€‚", - "Pricing_Page_Testimonial_5": "ABP Framework äžćƒ…ćƒ…æ˜Żäž€ć€‹æĄ†æž¶ïŒŒćźƒä蟿˜Żć°ˆæĄˆé–‹ç™Œ/çźĄç†çš„æŒ‡ć—ïŒŒć› ç‚șćźƒæäŸ›äș† DDD、GenericRepository、DIă€ćŸźæœć‹™ć’ŒæšĄç”„ćŒ–ćŸčèš“ă€‚ćłäœżæ‚šäžæ‰“çź—äœżç”šæĄ†æž¶æœŹèș«ïŒŒæ‚šäčŸćŻä»„äœżç”šç¶“éŽć……ćˆ†äž”ć°ˆæ„­æș–悙的 docs.abp.io é€ČèĄŒé–‹ç™ŒïŒˆOpenIddict、Redis、Quartz ç­‰ïŒ‰ă€‚ć› ç‚șćŸˆć€šæ±è„żéƒœæ˜Żé ć…ˆć»șç«‹çš„ïŒŒæ‰€ä»„ćźƒć€§ć€§çžźçŸ­äș†ć°ˆæĄˆé–‹ç™Œæ™‚é–“ïŒˆäŸ‹ćŠ‚ç™»ć…„é éąă€ç•°ćžžè™•ç†ă€èł‡æ–™éŽæżŸă€æ’­çšźă€çšœæ žæ—„èȘŒèš˜éŒ„ă€æœŹćœ°ćŒ–ă€è‡Ș拕 API æŽ§ćˆ¶ć™šç­‰ïŒ‰ă€‚äœœç‚șæˆ‘ć€‘æ‡‰ç”šçš‹ćŒçš„çŻ„äŸ‹ïŒŒæˆ‘äœżç”šæœŹćœ°äș‹ä»¶çžœç·šé€ČèĄŒćș«ć­˜æŽ§ćˆ¶ă€‚ć› æ­€ïŒŒæˆ‘ćŻä»„é€éŽç·šćŻ«ćș«ć­˜è™•理皋ćșäŸ†çźĄç†èš‚ć–źèꊿ›Žă€‚䞍æ”ȘèČ»æ™‚é–“ç”ŠCreationTime、CreatorIdçœŸæ˜Żć€Șć„œäș†ă€‚ćźƒć€‘æœƒèą«è‡Șć‹•ćĄ«æ»żă€‚", + "Pricing_Page_Testimonial_5": "ABP Framework äžćƒ…ćƒ…æ˜Żäž€ć€‹æĄ†æž¶ïŒŒćźƒä蟿˜Żć°ˆæĄˆé–‹ç™Œ/çźĄç†çš„æŒ‡ć—ïŒŒć› ç‚șćźƒæäŸ›äș† DDD、GenericRepository、DIă€ćŸźæœć‹™ć’ŒæšĄç”„ćŒ–ćŸčèš“ă€‚ćłäœżæ‚šäžæ‰“çź—äœżç”šæĄ†æž¶æœŹèș«ïŒŒæ‚šäčŸćŻä»„äœżç”šç¶“éŽć……ćˆ†äž”ć°ˆæ„­æș–悙的 abp.io/docs é€ČèĄŒé–‹ç™ŒïŒˆOpenIddict、Redis、Quartz ç­‰ïŒ‰ă€‚ć› ç‚șćŸˆć€šæ±è„żéƒœæ˜Żé ć…ˆć»șç«‹çš„ïŒŒæ‰€ä»„ćźƒć€§ć€§çžźçŸ­äș†ć°ˆæĄˆé–‹ç™Œæ™‚é–“ïŒˆäŸ‹ćŠ‚ç™»ć…„é éąă€ç•°ćžžè™•ç†ă€èł‡æ–™éŽæżŸă€æ’­çšźă€çšœæ žæ—„èȘŒèš˜éŒ„ă€æœŹćœ°ćŒ–ă€è‡Ș拕 API æŽ§ćˆ¶ć™šç­‰ïŒ‰ă€‚äœœç‚șæˆ‘ć€‘æ‡‰ç”šçš‹ćŒçš„çŻ„äŸ‹ïŒŒæˆ‘äœżç”šæœŹćœ°äș‹ä»¶çžœç·šé€ČèĄŒćș«ć­˜æŽ§ćˆ¶ă€‚ć› æ­€ïŒŒæˆ‘ćŻä»„é€éŽç·šćŻ«ćș«ć­˜è™•理皋ćșäŸ†çźĄç†èš‚ć–źèꊿ›Žă€‚䞍æ”ȘèČ»æ™‚é–“ç”ŠCreationTime、CreatorIdçœŸæ˜Żć€Șć„œäș†ă€‚ćźƒć€‘æœƒèą«è‡Șć‹•ćĄ«æ»żă€‚", "Pricing_Page_Testimonial_6": "ABPæĄ†æž¶æ˜Żäž€ć€‹ćŸˆć„œçš„æĄ†æž¶ïŒŒäœ†æ˜Żćźƒéœ€èŠæ™‚é–“äŸ†ç†è§Łćźƒäœżç”šçš„äžćŒć±€ă€éĄžćˆ„ć’Œć‡œćŒćș«ïŒˆć°€ć…¶æ˜ŻABPïŒ‰ă€‚æˆ‘èŠ±äș†ćŸˆć€šæ™‚é–“é–±èź€çš‹ćŒçąŒćș«ïŒŒäœ† ABP Commercial ç‚șæˆ‘ć€‘çŻ€çœäș†ć»șç«‹ć°ˆæĄˆć°ˆæ„­ćŻŠé«” (AR) ä»„ćŠé€Łç”ćˆ°æŻć€‹ćŻŠé«”çš„ć„Č歘ćș«çš„æ™‚é–“ă€‚æˆ‘é‚„ć–œæ­Ą ABP äž­äœżç”šçš„æ–čæł•éžćžžæˆç†ŸïŒ›æˆ‘ć€‘çŸ„é“ćźƒæ˜ŻćŸșæ–Œ DDD 撌 monolith 的。", "Pricing_Page_Testimonial_7": "䜜ç‚șäž€ćź¶æ–°ć‰”ć…ŹćžïŒŒæˆ‘ć€‘éœ€èŠćż«é€Ÿèż­ä»ŁïŒŒäžŠćœšæšŁæżć’Œéžæ žćżƒćŠŸèƒœäžŠèŠ±èČ»æœ€ć°‘çš„æ™‚é–“ă€‚ \næˆ‘ć€‘çš„ć·„çš‹ćž«æ—ąæœ‰ç¶“é©—è±ćŻŒçš„ć·„çš‹ćž«ïŒŒä蟿œ‰ćˆçŽšć·„çš‹ćž«ïŒŒæˆ‘ć€‘éœ€èŠäž€çšźć…±ćŒçš„ç†è§Łć’Œäž€çšźć…±äș«æŠ€èĄ“ć’Œé ˜ćŸŸçŸ„識的æ–čæł•ABP æ†‘è—‰ć…¶ć‡șè‰Čçš„æŒ‡ć—ć’Œæ–‡ä»¶äœżæˆ‘ć€‘èƒœć€ ćšćˆ°é€™äž€é»žă€‚ \n有äș›äș‹æƒ…æˆ‘ć€‘äžćż…æ“”ćżƒïŒŒć› ç‚șćźƒć€‘èˆ‡ ABP äž€è”·é–‹çź±ćłç”šă€‚ \n ABP ćč«ćŠ©æˆ‘ć€‘ç°ĄćŒ–äș†ćż«é€ŸćŽŸćž‹èš­èšˆć’Œé–‹ç™ŒïŒŒćŸžćŠŸèƒœć•Ÿć‹•ćˆ°ç”Ÿç”ąćȘ花äș†äžćˆ° 4 é€±çš„æ™‚é–“ă€‚æ†‘è—‰èš±ćŻè­‰äž­ćŒ…ć«çš„æ‰€æœ‰é«˜çŽšćŠŸèƒœïŒŒABP ç‚șæˆ‘ć€‘æäŸ›äș†è»Ÿé«”ć·„繋æ–č靱的「Startup in a Box」。", "Pricing_Page_Testimonial_8": "æˆ‘æœƒć‘æ‰€æœ‰æƒłèŠæ“Žć€§ćźąæˆ¶ćŻç”šç”ąć“çŻ„ćœçš„äșș掚薊 ABP Commercială€‚ç•¶éœ€èŠäœżç”šćˆ†æ•ŁćŒäŒæ„­ç’°ćąƒïŒˆAngular、WPF、Win&LinuxïŒ‰æ™‚ïŒŒćźƒéžćžžæŁ’ă€‚é™€äș†ä»–怑的甹擁äč‹ć€–ïŒŒæˆ‘ć€‘é‚„ć–œæ­Ąä»–ć€‘çš„æ”ŻæŒïŒŒé€™äœżæˆ‘ć€‘çš„ć·„äœœæ›Žćż«ă€æ›ŽèŒ•éŹ†ă€‚æˆ‘ć€‘ć·Čç¶“çŸ„é“ïŒŒæˆ‘ć€‘ć·Čç¶“æ‰Ÿćˆ°äș†äž€ć€‹éąć‘æœȘ䟆的ć„Șç§€ćˆäœœć€„äŒŽïŒŒä»–ć°‡æ”ŻæŒæˆ‘ć€‘æ‹“ć±•æ„­ć‹™ă€‚", @@ -707,7 +707,7 @@ "Landing_Page_DocsModuleDescription_9": "陀äș† GitHub 䟆æșäč‹ć€–ïŒŒé‚„ć…èš±ç°Ąć–źćœ°äœżç”šèł‡æ–™ć€Ÿäœœç‚ș文件䟆æșă€‚", "Landing_Page_FileManagementModuleDescription_1": "ćœšćˆ†ć±€èł‡æ–™ć€Ÿç”æ§‹äž­äžŠć‚łă€äž‹èŒ‰ć’Œç”„ç蔿–‡ä»¶ă€‚", "Landing_Page_FileManagementModuleDescription_2": "æ­€æšĄç”„ç”šæ–ŒäžŠć‚łă€äž‹èŒ‰æȘ”æĄˆäžŠä»„ćˆ†ć±€èł‡æ–™ć€Ÿç”æ§‹ç”„ç蔿Ș”æĄˆă€‚ćźƒé‚„èˆ‡ć€šç§Ÿæˆ¶ç›žćźčïŒŒæ‚šćŻä»„çąșćźšç§Ÿæˆ¶çš„çžœć€§ć°é™ćˆ¶ă€‚", - "Landing_Page_FileManagementModuleDescription_3": "æ­€æšĄç”„ćŸșæ–ŒBLOBć„Čć­˜çł»ç”±ïŒŒć› æ­€ćŻä»„äœżç”šäžćŒçš„ć„Čć­˜æäŸ›è€…äŸ†ć„Č歘æȘ”æĄˆć…§ćźč。", + "Landing_Page_FileManagementModuleDescription_3": "æ­€æšĄç”„ćŸșæ–ŒBLOBć„Čć­˜çł»ç”±ïŒŒć› æ­€ćŻä»„äœżç”šäžćŒçš„ć„Čć­˜æäŸ›è€…äŸ†ć„Č歘æȘ”æĄˆć…§ćźč。", "Landing_Page_IdentityModuleDescription_1": "è©ČæšĄç”„ćŻŠçŸäș†æ‡‰ç”šçš‹ćŒçš„äœżç”šè€…ć’Œè§’è‰Čçł»ç”±ïŒ›", "Landing_Page_IdentityModuleDescription_2": "ćŸșæ–ŒMicrosoft 的 ASP.NET Core Identityćș«ć»șçœźă€‚", "Landing_Page_IdentityModuleDescription_3": "çźĄç†çł»ç”±äž­çš„è§’è‰Čć’Œäœżç”šè€…ă€‚äž€ć€‹äœżç”šè€…ćŻä»„æ“æœ‰ć€šć€‹è§’è‰Č。", @@ -723,7 +723,7 @@ "Landing_Page_PaymentModuleDescription_1": "æäŸ›äžćŒæ”Żä»˜ç¶Čé—œçš„æ•Žćˆă€‚", "Landing_Page_PaymentModuleDescription_2": "æ­€æšĄç”„æäŸ›æ”Żä»˜ç¶Čé—œçš„é›†æˆïŒŒć› æ­€æ‚šćŻä»„èŒ•éŹ†ćœ°ćŸžćźąæˆ¶é‚ŁèŁĄçČćŸ—ä»˜æŹŸă€‚", "Landing_Page_PaymentModuleDescription_3": "æ­€æšĄç”„æ”ŻæŽä»„äž‹æ”Żä»˜ç¶Č關", - "Welcome_Page_UseSameCredentialForCommercialWebsites": "氍Commercial.abp.io撌support.abp.ioäœżç”šç›žćŒçš„æ†‘è­‰ă€‚", + "Welcome_Page_UseSameCredentialForCommercialWebsites": "氍abp.io撌abp.io/supportäœżç”šç›žćŒçš„æ†‘è­‰ă€‚", "WatchCrudPagesVideo": "è§€çœ‹ă€Œäœżç”š ABP Suite ć»ș立 CRUD é éąă€ćœ±ç‰‡ïŒ", "WatchGeneratingFromDatabaseVideo": "觀看“ABP SuiteïŒšćŸžçŸæœ‰èł‡æ–™ćș«èĄšć•ç”ąç”Ÿ CRUD é éąâ€ćœ±ç‰‡ïŒ", "WatchTakeCloserLookVideo": "è§€çœ‹â€œä»”çŽ°çœ‹çœ‹çš‹ćŒçąŒç”ąç”ŸïŒšABP Suiteâ€ćœ±ç‰‡ïŒ", @@ -868,8 +868,8 @@ "DevelopYourSolution_Description1": "ABP 的ćŸș瀎蚭斜透過è‡Șć‹•ćŒ–é‡è€‡æ€§ć·„äœœäžŠæäŸ›é ć…ˆć»șçœźçš„ćŸșç€Žæž¶æ§‹ć’Œæ‡‰ç”šçš‹ćŒćŠŸèƒœïŒŒäœżæ‚šèƒœć€ ć°ˆæłšæ–Œè‡Șć·±çš„æ„­ć‹™çš‹ćŒçąŒă€‚", "DevelopYourSolution_Description2": "ćœšäž‹éąçš„çš‹ćŒçąŒć€ćĄŠäž­ïŒŒæ‚šćŻä»„çœ‹ćˆ° ABP æĄ†æž¶ćŠ‚äœ•ç„Ąçž«æ•Žćˆćˆ°æ‚šçš„çš‹ćŒçąŒäž­äžŠè‡Ș拕ç‚șæ‚šćŸ·èĄŒé‡è€‡æ€§ä»»ć‹™ă€‚", "DevelopYourSolution_Description3": "ćłäœżćœšé€™ć€‹çŸ­ä»ŁçąŒć€ćĄŠäž­ïŒŒABP äčŸç‚șæ‚šćšäș†ćŸˆć€šäș‹æƒ…。", - "DevelopYourSolution_Description4": "ćźƒæäŸ›äș†æ‡‰ç”šçŽ„ćźšçš„ćŸșéĄžïŒŒäŸ‹ćŠ‚\näŸèłŽæłšć…„ă€‚é€šç”š\nć„Č歘ćș«æœć‹™æäŸ›äș†äž€ć€‹æ–čäŸżçš„\næ–čćŒèˆ‡èł‡æ–™ćș«äș’拕。èČæ˜ŽćŒ\næŽˆæŹŠèˆ‡ćŸźèȘżçš„æŹŠé™çł»ç”±äž€è”·äœżç”šă€‚", - "DevelopYourSolution_Description5": "ABP 漌慹è‡Ș拕挖äș†\nć·„äœœć–źć…ƒïŒˆç”šæ–Œèł‡æ–™ćș«é€ŁæŽ„撌äș€æ˜“çźĄç†ïŒ‰ă€ \nç•°ćžžè™•ç†ă€ \n驗證\nć’ŒćŻ©èšˆæ—„èȘŒèš˜éŒ„。ćꃿäŸ›äș†æ›Žć€šæ§‹ć»șćĄŠäŸ†ç°ĄćŒ–æ‚šçš„æ—„ćžžé–‹ç™Œä»»ć‹™äžŠć°ˆæłšæ–Œæ‚šè‡Șć·±çš„çš‹ćŒçąŒïŒŒćŒæ™‚ć‰”ć»șćŻç”šæ–Œç”Ÿç”ąçš„\næ‡‰ç”šçš‹ćŒă€‚", + "DevelopYourSolution_Description4": "ćźƒæäŸ›äș†æ‡‰ç”šçŽ„ćźšçš„ćŸșéĄžïŒŒäŸ‹ćŠ‚\näŸèłŽæłšć…„ă€‚é€šç”š\nć„Č歘ćș«æœć‹™æäŸ›äș†äž€ć€‹æ–čäŸżçš„\næ–čćŒèˆ‡èł‡æ–™ćș«äș’拕。èČæ˜ŽćŒ\næŽˆæŹŠèˆ‡ćŸźèȘżçš„æŹŠé™çł»ç”±äž€è”·äœżç”šă€‚", + "DevelopYourSolution_Description5": "ABP 漌慹è‡Ș拕挖äș†\nć·„äœœć–źć…ƒïŒˆç”šæ–Œèł‡æ–™ćș«é€ŁæŽ„撌äș€æ˜“çźĄç†ïŒ‰ă€ \nç•°ćžžè™•ç†ă€ \n驗證\nć’ŒćŻ©èšˆæ—„èȘŒèš˜éŒ„。ćꃿäŸ›äș†æ›Žć€šæ§‹ć»șćĄŠäŸ†ç°ĄćŒ–æ‚šçš„æ—„ćžžé–‹ç™Œä»»ć‹™äžŠć°ˆæłšæ–Œæ‚šè‡Șć·±çš„çš‹ćŒçąŒïŒŒćŒæ™‚ć‰”ć»șćŻç”šæ–Œç”Ÿç”ąçš„\næ‡‰ç”šçš‹ćŒă€‚", "DevelopYourSolution_Description6": "æ‚šćŻä»„æƒłćƒïŒŒćŠ‚æžœæ‚šć…šéƒšæ‰‹ć‹•ćźŒæˆïŒŒè©Čçš‹ćŒçąŒć€ćĄŠæœƒèźŠćŸ—ć€šéșŒé•·ć’Œè€‡é›œă€‚", "SuiteCrudGenerationInFewSeconds": "陀äș†æ‰‹ć‹•ç·šçąŒè§Łæ±șæ–čæĄˆäč‹ć€–ïŒŒæ‚šé‚„ćŻä»„äœżç”š ABP Suite ć·„ć…·ćœšćčŸćˆ†é˜ć…§ć»șç«‹ćźŒć…šćŻç”šçš„é«˜çŽš CRUD é éąă€‚ćźƒć°‡çš‹ćŒçąŒç”ąç”Ÿćˆ°æ‚šçš„è§Łæ±șæ–čæĄˆäž­ïŒŒä»„äŸżæ‚šćŻä»„æ č據悚的è‡Șèš‚èŠæ±‚ć°ć…¶é€ČèĄŒćŸźèȘżă€‚", "DeployAnywhere_Description1": "æœ€ç”‚ïŒŒæ‚šć°‡æ“æœ‰äž€ć€‹çŽ” .NET è§Łæ±șæ–čæĄˆă€‚æ‚šćŻä»„ć°‡è§Łæ±șæ–čæĄˆéƒšçœČćˆ°æ‚šè‡Ș深的äŒșæœć™šă€é›Č端ćčłć°ă€Kubernetes æˆ–æ‚šæƒłèŠçš„ä»»äœ•ćœ°æ–čă€‚æ‚šćŻä»„æ č據需芁郚çœČćˆ°ä»»æ„æ•žé‡çš„äŒșæœć™šă€‚ ABP æ˜Żäž€ć€‹èˆ‡éƒšçœČç’°ćąƒç„Ąé—œçš„ć·„ć…·ă€‚", @@ -984,7 +984,7 @@ "CreatingAnEmptySolution_THEPROBLEM_Description4": "ćŠ‚äœ•æ•Žćˆćˆ°çŹŹäž‰æ–čć‡œćŒćș«ć’Œçł»ç”±ïŒŸ", "CreatingAnEmptySolution_THEPROBLEM_Description5": "ćŠ‚äœ•èš­ćźšè‡Șć‹•ćŒ–æžŹè©ŠïŒŸ", "ABPSOLUTION": "ć‹•æ…‹èĄ€ćŁ“è§Łæ±șæ–čæĄˆ", - "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP ćŸșæ–Œé ˜ćŸŸé©…ć‹•èš­èšˆćŽŸć‰‡æäŸ›äș†äž€ć€‹æž¶æ§‹è‰Żć„œă€ćˆ†ć±€äž”ćŻç”šæ–Œç”Ÿç”ąçš„ć•Ÿć‹•è§Łæ±șæ–čæĄˆă€‚è©Čè§Łæ±șæ–čæĄˆé‚„ćŒ…æ‹ŹæŻć€‹ć±€çš„é ć…ˆé…çœźć–źć…ƒć’Œæ•ŽćˆæžŹè©Šé …ç›źă€‚", + "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP ćŸșæ–Œé ˜ćŸŸé©…ć‹•èš­èšˆćŽŸć‰‡æäŸ›äș†äž€ć€‹æž¶æ§‹è‰Żć„œă€ćˆ†ć±€äž”ćŻç”šæ–Œç”Ÿç”ąçš„ć•Ÿć‹•è§Łæ±șæ–čæĄˆă€‚è©Čè§Łæ±șæ–čæĄˆé‚„ćŒ…æ‹ŹæŻć€‹ć±€çš„é ć…ˆé…çœźć–źć…ƒć’Œæ•ŽćˆæžŹè©Šé …ç›źă€‚", "CommonLibraries": "é€šç”šć‡œćŒćș«", "CommonLibraries_THEPROBLEM_Description": "悚應è©Čäœżç”šć“Șäș›ć‡œćŒćș«äŸ†ćŻŠçŸćžžèŠ‹éœ€æ±‚ïŒŸè»Ÿé«”é–‹ç™Œç”Ÿæ…‹çł»ç”±æ˜Żé«˜ćșŠć‹•æ…‹çš„ïŒŒé€™äœżćŸ—è·ŸäžŠæœ€æ–°çš„ć·„ć…·ă€ć‡œćŒćș«ă€è¶šć‹ąć’Œæ–čæł•èźŠćŸ—ć…·æœ‰æŒ‘æˆ°æ€§ă€‚", "CommonLibraries_ABPSOLUTION_Description": "ABP ć°‡æ”èĄŒçš„ă€æˆç†Ÿçš„ć’Œæœ€æ–°çš„ćș«é ć…ˆæ•Žćˆćˆ°è§Łæ±șæ–čæĄˆäž­ă€‚æ‚šäžéœ€èŠèŠ±æ™‚é–“æ•Žćˆćźƒć€‘æˆ–äœżćźƒć€‘ç›žäș’æșé€šă€‚ćźƒć€‘é–‹çź±ćłç”šïŒŒćŻä»„æ­Łćžžć·„äœœă€‚", @@ -1042,12 +1042,12 @@ "Modularity_THEPROBLEM_Description": "芁ć»șç«‹çœŸæ­Łçš„æšĄç”„ćŒ–çł»ç”±äžŠäžćźčæ˜“ïŒçł»ç”±çš„æ‰€æœ‰æ–čéąïŒˆèł‡æ–™ćș«ă€ćŻŠé«”ă€API、UI 頁靱/ć…ƒä»¶ïŒ‰éƒœćŻä»„æ‹†ćˆ†ç‚șæšĄç”„ïŒŒäžŠäž”æŻć€‹æšĄç”„éƒœćŻä»„é‡è€‡äœżç”šïŒŒç„Ąéœ€ć…¶ä»–æšĄç”„ă€‚æ™źé€šçš„ ASP.NET Core äžŠäžæœƒæäŸ›é€™æšŁçš„æšĄç”„ćŒ–æž¶æ§‹ă€‚ćŠ‚æžœäœ éœ€èŠçš„è©±ïŒŒäœ æ‡‰è©ČćŸžé ­é–‹ć§‹è€ƒæ…źă€‚", "Modularity_ABPSOLUTION_Description": "ABPæĄ†æž¶ć€©ç”Ÿć°±æ˜Żäž€ć€‹æšĄç”„ćŒ–çš„æ‡‰ç”šçš‹ćŒé–‹ç™Œç”æ§‹ă€‚æĄ†æž¶äž­çš„æŻć€‹ćŠŸèƒœéƒœæ˜Żç‚șäș†èˆ‡æšĄç”„ćŒ–ç›žćźčè€Œé–‹ç™Œçš„ă€‚æ–‡ä»¶ć’ŒæŒ‡ć—è§Łé‡‹ćŠ‚äœ•ä»„æš™æș–æ–čćŒé–‹ç™ŒćŻé‡è€‡äœżç”šæšĄç”„ă€‚", "SaaSMultiTenancy": "SaaS/ć€šç§Ÿæˆ¶", - "SaaSMultiTenancy_THEPROBLEM_Description": "ć€šç§Ÿæˆ¶æ˜ŻćŻŠæ–œ SaaS 系由的枞甚æ–čæł•ă€‚ç„¶è€ŒïŒŒćŻŠæ–œäž€è‡Žçš„ć€šç§Ÿæˆ¶ćŸșç€Žèš­æ–œćŻèƒœæœƒèźŠćŸ—è€‡é›œă€‚", + "SaaSMultiTenancy_THEPROBLEM_Description": "ć€šç§Ÿæˆ¶æ˜ŻćŻŠæ–œ SaaS 系由的枞甚æ–čæł•ă€‚ç„¶è€ŒïŒŒćŻŠæ–œäž€è‡Žçš„ć€šç§Ÿæˆ¶ćŸșç€Žèš­æ–œćŻèƒœæœƒèźŠćŸ—è€‡é›œă€‚", "SaaSMultiTenancy_ABPSOLUTION_Description": "ABP æĄ†æž¶æäŸ›äș†ćꌿ•Žçš„ć€šç§Ÿæˆ¶ćŸșç€Žèš­æ–œïŒŒäžŠćŸžæ„­ć‹™çš‹ćŒçąŒäž­æŠœćƒć‡șè€‡é›œæ€§ă€‚æ‚šçš„æ‡‰ç”šçš‹ćŒçš‹ćŒçąŒć°‡äž»èŠæ˜Żć€šç§Ÿæˆ¶æ„ŸçŸ„çš„ïŒŒè€Œ ABP æĄ†æž¶æœƒè‡Șć‹•ć°‡èł‡æ–™ćș«ă€ćż«ć–ć’Œç§Ÿæˆ¶çš„ć…¶ä»–è©łçŽ°èł‡èšŠç›žäș’隔雹。ćꃿ”ŻæŽć–źäž€èł‡æ–™ćș«ă€æŻć€‹ç§Ÿæˆ¶èł‡æ–™ćș«ć’Œæ··ćˆæ–čæł•ă€‚ćźƒæ­Łçąșé…çœźäș† Microsoft Identity 撌 OpenIddict ç­‰çš‹ćŒćș«ïŒŒé€™äș›çš‹ćŒćș«é€šćžžäžç›žćźčæ–Œć€šç§Ÿç”šæˆ¶ă€‚", "Microservices": "ćŸźæœć‹™", "Microservices_THEPROBLEM_Description": "ć»șæ§‹ćŸźæœć‹™çł»ç”±éœ€èŠèš±ć€šćŸșç€Žèš­æ–œçŽ°çŻ€ïŒšć°æ‡‰ç”šçš‹ćŒć’ŒćŸźæœć‹™é€ČèĄŒèș«ä»œé©—è­‰ć’ŒæŽˆæŹŠä»„ćŠćœšćŸźæœć‹™äč‹é–“ćŻŠçŸéžćŒæ­„èšŠæŻć‚łéžć’ŒćŒæ­„ïŒˆRest/GRPCïŒ‰é€šèšŠæšĄćŒæ˜Żæœ€ćŸșæœŹçš„ć•éĄŒă€‚", - "Microservices_ABPSOLUTION_Description": "ABP æĄ†æž¶æäŸ›æœć‹™ă€æŒ‡ć—ć’ŒçŻ„äŸ‹ïŒŒć”ćŠ©æ‚šäœżç”šæ„­ç•Œæš™æș–ć·„ć…·ćŻŠæ–œćŸźæœć‹™è§Łæ±șæ–čæĄˆă€‚", - "Microservices_ABPSOLUTION_Description2": "ABP Commercial ç”šè‡łæ›Žé€Č䞀歄提䟛äș†äž€ć€‹ćꌿ•Žçš„ć•Ÿć‹•çŻ„æœŹäŸ†ć•Ÿć‹•æ‚šçš„ćŸźæœć‹™è§Łæ±șæ–čæĄˆă€‚", + "Microservices_ABPSOLUTION_Description": "ABP æĄ†æž¶æäŸ›æœć‹™ă€æŒ‡ć—ć’ŒçŻ„äŸ‹ïŒŒć”ćŠ©æ‚šäœżç”šæ„­ç•Œæš™æș–ć·„ć…·ćŻŠæ–œćŸźæœć‹™è§Łæ±șæ–čæĄˆă€‚", + "Microservices_ABPSOLUTION_Description2": "ABP Commercial ç”šè‡łæ›Žé€Č䞀歄提䟛äș†äž€ć€‹ćꌿ•Žçš„ć•Ÿć‹•çŻ„æœŹäŸ†ć•Ÿć‹•æ‚šçš„ćŸźæœć‹™è§Łæ±șæ–čæĄˆă€‚", "PreBuiltModules": "預ć»șæšĄć€ćĄŠ", "PreBuiltModules_THEPROBLEM_Description": "æˆ‘ć€‘æ‰€æœ‰äșșéƒœæœ‰ç›žäŒŒäœ†ç•„æœ‰äžćŒçš„æ„­ć‹™éœ€æ±‚ă€‚ç„¶è€ŒïŒŒæˆ‘ć€‘éƒœæ‡‰è©Č重新癌明èŒȘć­ïŒŒć› ç‚șæČ’有äșșçš„çš‹ćŒçąŒćŻä»„ç›ŽæŽ„ćœšæˆ‘ć€‘çš„è§Łæ±șæ–čæĄˆäž­ć·„äœœă€‚ćźƒć€‘éƒœæ˜Żæ›Žć€§è§Łæ±șæ–čæĄˆçš„ć”Œć…„éƒšćˆ†ă€‚", "PreBuiltModules_ABPSOLUTION_Description": "ABP CommercialæšĄç”„æäŸ›äș†ć€§é‡ćŻé‡è€‡äœżç”šçš„æ‡‰ç”šæšĄç”„ïŒŒäŸ‹ćŠ‚ä»˜æŹŸă€èŠć€©ă€æȘ”æĄˆçźĄç†ă€çšœæ žæ—„èȘŒć ±ć‘Šç­‰ă€‚所有這äș›æšĄç”„éƒœćŻä»„èŒ•éŹ†ćź‰èŁćˆ°æ‚šçš„è§Łæ±șæ–čæĄˆäž­äžŠç›ŽæŽ„é‹èĄŒă€‚æˆ‘ć€‘äžæ–·æ·»ćŠ æ›Žć€šæšĄç”„ă€‚", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/AbpIoCommunityResource.cs b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/AbpIoCommunityResource.cs deleted file mode 100644 index 2d7f93aeae..0000000000 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/AbpIoCommunityResource.cs +++ /dev/null @@ -1,10 +0,0 @@ -ï»żusing Volo.Abp.Localization; - -namespace AbpIoLocalization.Community.Localization -{ - [LocalizationResourceName("AbpIoCommunity")] - public class AbpIoCommunityResource - { - - } -} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/sv.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/sv.json new file mode 100644 index 0000000000..de8175fe77 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/sv.json @@ -0,0 +1,269 @@ +{ + "culture": "sv", + "texts": { + "Permission:CommunityPost": "Gemenskapens inlĂ€gg", + "Permission:Edit": "Redigera", + "Waiting": "VĂ€ntar pĂ„", + "Approved": "GodkĂ€nd", + "Rejected": "Avvisad", + "Wait": "VĂ€nta", + "Approve": "GodkĂ€nna", + "Reject": "Avvisa", + "ReadPost": "LĂ€s inlĂ€gget", + "Status": "Status", + "ContentSource": "KĂ€lla för innehĂ„ll", + "Details": "Detaljer", + "Title": "Titel", + "CreationTime": "Skapelsetid", + "Save": "Spara", + "SameUrlAlreadyExist": "Samma URL finns redan! Du mĂ„ste Ă€ndra webbadressen!", + "UrlIsNotValid": "Url Ă€r inte giltig.", + "UrlNotFound": "Url hittades inte.", + "UrlContentNotFound": "Url-innehĂ„llet hittades inte.", + "Summary": "Sammanfattning", + "MostRead": "Mest lĂ€st", + "Latest": "Senaste", + "ContributeAbpCommunity": "Bidra till ABP:s gemenskap", + "SubmitYourPost": "Skicka in ditt inlĂ€gg", + "ContributionGuide": "Bidragsguide", + "BugReport": "Bugg-rapport", + "SeeAllPosts": "Se alla inlĂ€gg", + "WelcomeToABP": "VĂ€lkommen till ABP", + "EmailNotValid": "VĂ€nligen ange en giltig e-postadress.", + "FeatureRequest": "BegĂ€ran om funktion", + "CreatePostTitleInfo": "Titel pĂ„ det inlĂ€gg som ska visas i inlĂ€ggslistan.", + "CreatePostSummaryInfo": "En kort sammanfattning av inlĂ€gget som ska visas i inlĂ€ggslistan. Maximal lĂ€ngd: {0}", + "CreatePostCoverInfo": "För att skapa ett effektivt inlĂ€gg, lĂ€gg till ett omslagsfoto. Ladda upp bilder i bildförhĂ„llandet 16:9 för bĂ€sta visning.
Maximal filstorlek Ă€r 1MB.", + "ThisExtensionIsNotAllowed": "Denna förlĂ€ngning Ă€r inte tillĂ„ten.", + "TheFileIsTooLarge": "Filen Ă€r för stor.", + "GoToThePost": "GĂ„ till inlĂ€gget", + "GoToTheVideo": "GĂ„ till videon", + "Contribute": "Bidra", + "OverallProgress": "Övergripande framsteg", + "Done": "Klar", + "Open": "Öppna", + "Closed": "StĂ€ngt", + "RecentQuestionFrom": "Senaste frĂ„gan frĂ„n {0}", + "Stackoverflow": "Stackoverflow", + "Votes": "röster", + "Answer": "Svar", + "Views": "utsikt", + "Answered": "Besvarad", + "WaitingForYourAnswer": "VĂ€ntar pĂ„ ditt svar", + "Asked": "aska", + "AllQuestions": "Alla frĂ„gor", + "NextVersion": "NĂ€sta version", + "MilestoneErrorMessage": "Det gick inte att fĂ„ aktuell milstolpsinformation frĂ„n Github.", + "QuestionItemErrorMessage": "Kunde inte fĂ„ de senaste frĂ„geuppgifterna frĂ„n Stackoverflow.", + "Oops": "Oops!", + "CreatePostSuccessMessage": "Ditt inlĂ€gg har skickats in med framgĂ„ng. Det kommer att publiceras efter granskning av webbplatsadministratören.", + "Browse": "BlĂ€ddra", + "CoverImage": "Omslagsbild", + "ShareYourExperiencesWithTheABPFramework": "Dela dina erfarenheter av ABP-ramverket!", + "Optional": "Valfritt", + "UpdateUserWebSiteInfo": "Exempel: https://johndoe.com", + "UpdateUserTwitterInfo": "Exempel: johndoe", + "UpdateUserGithubInfo": "Exempel: johndoe", + "UpdateUserLinkedinInfo": "Exempel: https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "Exempel: Volosoft", + "UpdateUserJobTitleInfo": "Exempel: Programvaruutvecklare", + "UserName": "AnvĂ€ndarnamn", + "Company": "Företag", + "PersonalWebsite": "Personlig webbplats", + "RegistrationDate": "Registreringsdatum", + "Social": "Sociala", + "Biography": "Biografi", + "HasNoPublishedPostsYet": "har inga publicerade inlĂ€gg Ă€nnu", + "Author": "Författaren", + "LatestGithubAnnouncements": "Senaste Github-tillkĂ€nnagivanden", + "SeeAllAnnouncements": "Se alla tillkĂ€nnagivanden", + "LatestBlogPost": "Senaste blogginlĂ€gget", + "Edit": "Redigera", + "ProfileImageChange": "Ändra profilbilden", + "BlogItemErrorMessage": "Kunde inte fĂ„ den senaste informationen om blogginlĂ€gg frĂ„n ABP.", + "PlannedReleaseDate": "Planerat utgivningsdatum", + "CommunityPostRequestErrorMessage": "Det gick inte att fĂ„ den senaste postförfrĂ„gan frĂ„n Github.", + "PostRequestFromGithubIssue": "Det finns inga postförfrĂ„gningar nu.", + "LatestPosts": "Senaste inlĂ€gg", + "ArticleRequests": "BegĂ€r ett innehĂ„ll", + "ArticleRequestsDescription": "Vill du se ett specifikt innehĂ„ll hĂ€r? Du kan be communityn att skapa det!", + "LatestContentRequests": "Senaste förfrĂ„gningar om innehĂ„ll", + "AllPostRequests": "Se alla postförfrĂ„gningar", + "SubscribeToTheNewsletter": "Prenumerera pĂ„ nyhetsbrevet", + "NewsletterEmailDefinition": "FĂ„ information om vad som hĂ€nder i ABP, t.ex. nya utgĂ„vor, fria kĂ€llor, inlĂ€gg och mycket mer.", + "NoThanks": "Nej, tack.", + "MaybeLater": "Kanske senare", + "JoinOurPostNewsletter": "AnmĂ€l dig till vĂ„rt nyhetsbrev", + "Community": "Gemenskap", + "Marketing": "Marknadsföring", + "CommunityPrivacyPolicyConfirmation": "Jag godkĂ€nner de allmĂ€nna villkoren och Integritetspolicy.", + "PostRequestMessageTitle": "Öppna en frĂ„ga pĂ„ GitHub för att begĂ€ra ett inlĂ€gg / en handledning som du vill se pĂ„ den hĂ€r webbplatsen.", + "PostRequestMessageBody": "HĂ€r Ă€r en lista över de inlĂ€gg som efterfrĂ„gats av communityn. Vill du skriva ett efterfrĂ„gat inlĂ€gg? Klicka pĂ„ önskemĂ„let och delta i diskussionen.", + "Language": "SprĂ„k", + "CreatePostLanguageInfo": "SprĂ„ket för inlĂ€ggets innehĂ„ll.", + "VideoPost": "VideoinlĂ€gg", + "Post": "Post", + "Read": "LĂ€s", + "CreateGithubPostUrlInfo": "FullstĂ€ndig URL till Markdown-filen pĂ„ GitHub (exempel).", + "CreateVideoContentUrlInfo": "InlĂ€ggets ursprungliga URL pĂ„ Youtube.", + "CreateExternalPostUrlInfo": "InlĂ€ggets ursprungliga externa webbadress.", + "VideoContentForm": "Skicka in video pĂ„ YouTube", + "GithubPostForm": "Skicka inlĂ€gg pĂ„ GitHub", + "ExternalPostForm": "Skicka in ett externt innehĂ„ll", + "HowToPost": "Hur postar jag?", + "Posts": "InlĂ€gg", + "VideoUrl": "Video webbadress", + "GithubPostUrl": "Url för GitHub-post", + "ExternalPostUrl": "Url för externt inlĂ€gg", + "ThankYouForContribution": "Tack för att du bidrar till ABP Community. Vi tar gĂ€rna emot artiklar och videohandledning om ABP Framework, .NET, ASP.NET Core och allmĂ€nna Ă€mnen inom programvaruutveckling.", + "GithubPost": "GitHub-inlĂ€gg", + "GithubPostSubmitStepOne": "1. Skriv ett inlĂ€gg pĂ„ ett offentligt GitHub-arkiv med Markdown-formatet. exempel", + "GithubPostSubmitStepTwo": "2. Skicka in din URL till inlĂ€gget med hjĂ€lp av formulĂ€ret.", + "GithubPostSubmitStepThree": "3. Ditt inlĂ€gg kommer att Ă„terges pĂ„ denna webbplats.", + "YoutubeVideo": "Youtube-video", + "YoutubeVideoSubmitStepOne": "1. Publicera din video pĂ„ YouTube.", + "YoutubeVideoSubmitStepTwo": "2. Skicka in video-URL:en med hjĂ€lp av formulĂ€ret.", + "YoutubeVideoSubmitStepThree": "3. Besökare kommer att kunna titta pĂ„ ditt videoinnehĂ„ll direkt pĂ„ denna webbplats.", + "ExternalContent": "Externt innehĂ„ll", + "ExternalContentSubmitStepOne": "1. Skapa innehĂ„ll pĂ„ en publik plattform (Medium, din egen blogg eller var du vill).", + "ExternalContentSubmitStepTwo": "2. Skicka in URL:en för ditt innehĂ„ll med hjĂ€lp av formulĂ€ret.", + "ExternalContentSubmitStepThree": "3. Besökare omdirigeras till innehĂ„llet pĂ„ den ursprungliga webbplatsen.", + "ChooseYourContentType": "VĂ€lj det sĂ€tt som du vill lĂ€gga till ditt innehĂ„ll pĂ„.", + "PostContentViaGithub": "Jag vill lĂ€gga till mitt inlĂ€gg med GitHub i enlighet med markdown-reglerna.", + "PostContentViaYoutube": "Jag vill dela mina videor som finns pĂ„ Youtube hĂ€r.", + "PostContentViaExternalSource": "Jag vill lĂ€gga till det innehĂ„ll jag publicerade pĂ„ en annan plattform hĂ€r.", + "GitHubUserNameValidationMessage": "Ditt Github-anvĂ€ndarnamn kan inte innehĂ„lla blanksteg, kontrollera att ditt Github-anvĂ€ndarnamn Ă€r korrekt.", + "PersonalSiteUrlValidationMessage": "URL:en till din personliga webbplats fĂ„r inte innehĂ„lla blanksteg, kontrollera att URL:en till din personliga webbplats Ă€r korrekt.", + "TwitterUserNameValidationMessage": "Ditt Twitter-anvĂ€ndarnamn fĂ„r inte innehĂ„lla blanksteg, kontrollera att ditt Twitter-anvĂ€ndarnamn Ă€r korrekt.", + "LinkedinUrlValidationMessage": "Din LinkedIn-URL fĂ„r inte innehĂ„lla blanksteg, kontrollera att din LinkedIn-URL Ă€r korrekt.", + "NoPostsFound": "Inga inlĂ€gg hittades!", + "SearchInPosts": "Sök i inlĂ€gg...", + "MinimumSearchContent": "Du mĂ„ste ange minst 3 tecken!", + "Volo.AbpIo.Domain:060001": "KĂ€llans URL(\"{PostUrl}\") Ă€r inte Github URL", + "Volo.AbpIo.Domain:060002": "InlĂ€ggets innehĂ„ll Ă€r inte tillgĂ€ngligt frĂ„n GitHub(\"{PostUrl}\")-resursen.", + "Volo.AbpIo.Domain:060003": "Inget innehĂ„ll i inlĂ€gget hittades!", + "SeeMore": "Se mer", + "JoinTheABPCommunity": "GĂ„ med i ABP:s gemenskap", + "ABPCommunityTalks": "ABP:s samtal med allmĂ€nheten", + "LiveDemo": "Live Demo", + "GetLicense": "Skaffa licens", + "GetStarted": "Kom igĂ„ng", + "SourceCode": "KĂ€llkod", + "LeaveComment": "LĂ€mna kommentar", + "ShowMore": "Visa mer", + "NoPublishedPostsYet": "Inga publicerade inlĂ€gg Ă€nnu.", + "Name": "Namn", + "Surname": "Efternamn", + "WebSite": "Webbplats", + "FullURL": "Full URL", + "JobTitle": "Befattning", + "Prev": "Före", + "Previous": "FöregĂ„ende", + "Next": "NĂ€sta", + "Share": "Aktie", + "SortBy": "Sortera efter", + "NoPublishedEventsYet": "Inga publicerade hĂ€ndelser Ă€nnu.", + "SubscribeYoutubeChannel": "Prenumerera pĂ„ Youtube-kanalen", + "Enum:EventType:0": "Samtal", + "MemberNotPublishedPostYet": "Denna medlem har inte publicerat nĂ„gra inlĂ€gg Ă€nnu.", + "TimeAgo": "för {0} sedan", + "Discord_Page_JoinCommunityMessage": "GĂ„ med i ABP Discord Community", + "Discord_Page_Announce": "Vi Ă€r glada att kunna presentera ABP Community Discord Server!", + "Discord_Page_Description_1": "ABP Community har vuxit sedan dag ett. Vi ville ta det till nĂ€sta steg genom att skapa en officiell ABP Discord-server sĂ„ att ABP-communityn kan interagera med varandra med hjĂ€lp av underverk som snabbmeddelanden.", + "Discord_Page_Description_2": "ABP Community Discord Server Ă€r platsen dĂ€r du kan visa upp dina skapelser med ABP Framework, dela de tips som fungerade för dig, fĂ„ de senaste nyheterna och tillkĂ€nnagivandena om ABP Framework, bara chatta med medlemmar i samhĂ€llet för att utbyta idĂ©er och ha kul!", + "Discord_Page_Description_3": "Denna ABP Community Discord Server Ă€r den officiella med ABP Core Team nĂ€rvarande pĂ„ servern för att övervaka.", + "Discord_Page_JoinToServer": "GĂ„ med i ABP Discord Server", + "Events_Page_MetaTitle": "ABP:s evenemang för allmĂ€nheten", + "Events_Page_MetaDescription": "Live-showerna, som leds av ABP-teamet, Ă€r avslappnade sessioner fulla av community-innehĂ„ll, demonstrationer, frĂ„gor och svar och diskussioner om vad som hĂ€nder i ABP.", + "Events_Page_Title": "ABP Community Samtal", + "Members_Page_WritingFromUser": "LĂ€s skrivning frĂ„n {0} pĂ„ ABP Community.", + "Post_Create_Page_MetaTitle": "Ny post", + "Post_Create_Page_MetaDescription": "Skapa ditt inlĂ€gg för att dela med dig av dina erfarenheter om ABP-ramverket och bidra till ABP-communityn.", + "Post_Create_Page_CreateNewPost": "Skapa nytt inlĂ€gg", + "Post_Index_Page_MetaDescription": "ABP Communitys syfte Ă€r att skapa en bidragsmiljö för utvecklare som anvĂ€nder ABP-ramverket.", + "Layout_Title": "{0} | ABP Gemenskap", + "Layout_MetaDescription": "Ett nav för ABP Framework, .NET och programvaruutveckling. FĂ„ tillgĂ„ng till artiklar, handledning, nyheter och bidra till ABP-communityn.", + "Index_Page_CommunityIntroduction": "Detta Ă€r ett nav för ABP Framework, .NET och programvaruutveckling. Du kan lĂ€sa artiklarna, titta pĂ„ videohandledningarna, fĂ„ information om ABP:s utvecklingsframsteg och ABP-relaterade evenemang, hjĂ€lpa andra utvecklare och dela med dig av din expertis till ABP-communityn.", + "TagsInArticle": "Taggar i artikel", + "IConsentToMedium": "Jag samtycker till publicering av detta inlĂ€gg pĂ„ https://medium.com/volosoft.", + "SearchResultsFor": "Sökresultat för \"{0}\"", + "SeeMoreVideos": "Se fler videor", + "DiscordPageTitle": "ABP Discord Gemenskap", + "ViewVideo": "Visa video", + "AbpCommunityTitleContent": "ABP Community - ABP-ramverk med öppen kĂ€llkod", + "CommunitySlogan": "En unik community-plattform för ABP-Ă€lskare.", + "RaffleIsNotActive": "Lottdragningen Ă€r inte aktiv", + "YouAreAlreadyJoinedToThisRaffle": "Du Ă€r redan med i utlottningen!", + "InvalidSubscriptionCode": "Ogiltig prenumerationskod", + "Raffle:{0}": "Lottdragning: {0}", + "Join": "GĂ„ med", + "Leave": "LĂ€mna", + "LoginToJoin": "Logga in för att gĂ„ med", + "ToEnd:": "För att avsluta:", + "ToStart:": "Det Ă€r en början:", + "days": "dagar", + "hrs": "timmar", + "min": "min", + "sec": "sek", + "Winners": "Vinnare", + "To{0}LuckyWinners": "till {0} lyckliga vinnare", + "ActiveRaffles": "Aktiva Rafflar.", + "UpcomingRaffles": "Kommande Rafflar", + "CompletedRaffles": "FĂ€rdigstĂ€llda Rafflar", + "NoActiveRaffleTitle": "Ingen aktiv utlottning Ă€r tillgĂ€nglig för tillfĂ€llet.", + "NoActiveRaffleDescription": "Ingen aktiv utlottning Ă€r tillgĂ€nglig för tillfĂ€llet.", + "RaffleSubscriptionCodeInputMessage": "Denna utlottning krĂ€ver en registreringskod. VĂ€nligen ange registreringskoden nedan:", + "RaffleSubscriptionCodeInputErrorMessage": "Registreringskoden Ă€r felaktig. VĂ€nligen försök igen.", + "GoodJob!": "Bra jobbat!", + "RaffleJoinSuccessMessage": "Du Ă€r nu registrerad för utlottningen. Du kommer att informeras via e-post om du vinner priset!", + "RaffleLoginAndRegisterMessage": "Du mĂ„ste logga in för att delta i utlottningen! Om du inte har registrerat dig Ă€nnu kan du skapa ett konto gratis nu.", + "Ok": "Ok", + "SeeDetails": "Se detaljer", + "WaitingForTheDraw": "VĂ€nta pĂ„ dragningen!", + "AllAttendees": "Alla deltagare", + "SeeRaffleDetail": "Se Raffle detalj", + "SeeRaffle": "Se Raffle", + "ParticipationIsComplete": "Deltagandet Ă€r fullstĂ€ndigt.", + "ABPCoreDevelopmentTeam": "ABP Core utvecklingsteam", + "RegisterTheEvent": "Registrera evenemanget", + "GoToConferencePage": "GĂ„ till konferenssidan", + "BuyTicket": "Buy Ticket", + "SeeEvent": "Se evenemang", + "PreviousEvents": "Tidigare evenemang", + "OtherLiveEvents": "Andra live-evenemang", + "SponsoredConferences": "Sponsrade konferenser", + "SponsoredConferencesDescription": "Vi Ă€r stolta över att stödja .NET-communities och evenemang för programvaruutvecklare.", + "UpcomingEvents": "Kommande evenemang", + "UpcomingCommunityTalkEventDescription": "Live-showerna, som leds av ABP-teamet, Ă€r avslappnade sessioner fulla av community-innehĂ„ll, demonstrationer, frĂ„gor och svar och diskussioner om vad som hĂ€nder i ABP.", + "UpcomingConferenceEventDescription": "ABP .NET Conference Ă€r ett virtuellt evenemang för .NET-utvecklare dĂ€r de kan trĂ€ffas och lyssna pĂ„ föredrag om .NET-vĂ€rlden, vanliga metoder för programvaruutveckling och ABP Framework med öppen kĂ€llkod.", + "LastOneYear": "Senaste 1 Ă„ret", + "AllTimes": "Alla tider", + "TopContributors": "De största bidragsgivarna", + "{0}Posts": "{0} InlĂ€gg", + "LATESTPOSTS": "SENASTE INLÄGGNINGAR", + "NoContributorsFound": "Inga bidragsgivare hittades!", + "LatestPost": "Senaste inlĂ€gget", + "MEMBERSINCE{0}": "MEDLEM EFTERSOM {0}", + "CopyLink": "Kopiera lĂ€nk", + "ShareOnTwitter": "Dela pĂ„ Twitter", + "ShareOnLinkedIn": "Dela pĂ„ LinkedIn", + "MoreFrom{0}": "Mer frĂ„n {0}", + "SeeAllFrom{0}": "Se alla frĂ„n {0}", + "MostWatched": "Mest bevakade", + "Articles({0})": "Artiklar ({0})", + "Videos({0})": "Videor ({0})", + "LatestArticles": "Senaste artiklar", + "RaffleHeader": "Hej ABP Community Member!", + "RafflesInfo": "
Det hÀr Àr utlottningssidan som Àr avsedd att visa vÄr uppskattning för att du Àr en aktiv gemenskapsmedlem. Vi gör ABP Community Talks ,ABP .NET Conference, deltar eller sponsrar .NET-relaterade evenemang dÀr vi ger bort nÄgra gÄvor.

Du kan följa den hÀr sidan för att se kommande lotterier, delta i dem eller se tidigare lotterier som vi dragit inklusive vinnarna.

Tack för att du Ă€r en aktiv medlem! Vi ses i de kommande lotterierna.", + "RafflesInfoTitle": "ABP Community Rafflar.", + "ToLuckyWinner": "till 1 lycklig vinnare", + "MarkdownSupported": "Stöd för Markdown.", + "Preview": "Förhandsgranskning", + "VisitPage": "Besök sidan", + "VisitVideoCourseDescription": "Om du vill lĂ€ra dig grunderna i ABP-ramverket kan du kolla in videokurserna ABP Essentials.", + "EditProfile": "Redigera profil", + "ConfirmEmailForPost": "För att kunna göra inlĂ€gg mĂ„ste du bekrĂ€fta din e-post. GĂ„ till account.abp.io/Account/Manage och verifiera din e-postadress under fliken Personal Info.", + "DailyPostCreateLimitation": "Du har nĂ„tt den dagliga grĂ€nsen för skapande av inlĂ€gg. Du kan skapa ett nytt inlĂ€gg i {0}.", + "YourAccountDisabled": "Ditt anvĂ€ndarkonto Ă€r inaktiverat!" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/en.json index 36cad167bd..23176ac6ac 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/en.json @@ -4,6 +4,7 @@ "Buy": "Buy", "SeeBookDetails": "See Book Details", "MasteringAbpFrameworkEBookDescription": "This book will help you gain a complete understanding of the framework and modern web application development techniques.", - "Feedback": "Feedback" + "Feedback": "Feedback", + "DocumentationDescription": "Dive into ABP's latest documentation. Find guides, API references, and best practices to help you effectively build and manage modern web apps with ABP" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/sv.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/sv.json new file mode 100644 index 0000000000..d24ece38ce --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/sv.json @@ -0,0 +1,9 @@ +{ + "culture": "sv", + "texts": { + "Buy": "Köp", + "SeeBookDetails": "Se bokdetaljer", + "MasteringAbpFrameworkEBookDescription": "Den hĂ€r boken hjĂ€lper dig att fĂ„ en fullstĂ€ndig förstĂ„else för ramverket och moderna tekniker för utveckling av webbapplikationer.", + "Feedback": "Återkoppling" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/sv.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/sv.json new file mode 100644 index 0000000000..e39cf79f0e --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/sv.json @@ -0,0 +1,6 @@ +{ + "culture": "sv", + "texts": { + "FAQ": "VANLIGA FRÅGOR" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ar.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ar.json index 720cbd39e1..da957142bb 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ar.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ar.json @@ -301,7 +301,7 @@ "ProgressiveWebApplication": "ŰȘŰ·ŰšÙŠÙ‚ ÙˆÙŠŰš ŰȘÙ‚ŰŻÙ…ÙŠ", "Preview": "مŰčŰ§ÙŠÙ†Ű©", "CreateANewSolution": "قم ŰšŰ„Ù†ŰŽŰ§ŰĄ Ű­Ù„ ŰŹŰŻÙŠŰŻ", - "ABPFrameworkFeatures": "ۄ۷ۧ۱ Űčمل ABP ميŰČۧŰȘ", + "FrameworkFeatures": "ۄ۷ۧ۱ Űčمل ABP ميŰČۧŰȘ", "Commercial": "ŰȘŰŹŰ§Ű±ÙŠ", "ThirdPartyTools": "ŰŁŰŻÙˆŰ§ŰȘ Ű§Ù„Ű·Ű±Ù Ű§Ù„Ű«Ű§Ù„Ű«", "Back": "ŰčÙˆŰŻŰ©", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/cs.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/cs.json index 2aea81b930..e57855cdae 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/cs.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/cs.json @@ -301,7 +301,7 @@ "ProgressiveWebApplication": "ProgresivnĂ­ webovĂĄ aplikace", "Preview": "NĂĄhled", "CreateANewSolution": "Vytvoƙte novĂ© ƙeĆĄenĂ­", - "ABPFrameworkFeatures": "Funkce rĂĄmce ABP", + "FrameworkFeatures": "Funkce rĂĄmce ABP", "Commercial": "KomerčnĂ­", "ThirdPartyTools": "NĂĄstroje tƙetĂ­ch stran", "Back": "ZadnĂ­", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/de.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/de.json index 0b0eb71adf..d125dbded4 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/de.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/de.json @@ -301,7 +301,7 @@ "ProgressiveWebApplication": "Progressive Webanwendung", "Preview": "Vorschau", "CreateANewSolution": "Erstellen Sie eine neue Lösung", - "ABPFrameworkFeatures": "ABP-Framework- Funktionen", + "FrameworkFeatures": "ABP-Framework- Funktionen", "Commercial": "Kommerziell", "ThirdPartyTools": "Tools von Drittanbietern", "Back": "ZurĂŒck", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en-GB.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en-GB.json index f0f5dbd496..f91152bf59 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en-GB.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en-GB.json @@ -153,6 +153,9 @@ "AndMore": "and more...", "Code": "Code", "Result": "Result", + "CommercialSupport": "Commercial Suport", + "GithubIssues": "GitHub Issues", + "TechnicalSupport": "Technical Support", "SeeTheDocumentForMoreInformation": "See the {0} document for more information", "IndexPageHeroSection": "open sourceWeb Application
Framework
for asp.net core", "UiFramework": "UI Framework", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json index d35936411c..c74b3d9445 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json @@ -2,6 +2,7 @@ "culture": "en", "texts": { "GetStarted": "Get Started", + "GetStarted_Page_Title": "Get Started with ABP | Quick and Easy Setup Guide", "Create": "Create", "NewProject": "New Project", "DirectDownload": "Direct Download", @@ -29,7 +30,7 @@ "DomainDrivenDesignExplanation": "Designed and developed based on DDD patterns and principles. Provides a layered model for your application.", "Authorization": "Authorization", "AuthorizationExplanation": "Advanced authorization with user, role and fine-grained permission system. Built on Microsoft Identity library.", - "MultiTenancy": "Multi-Tenancy", + "MultiTenancy": "Multi-tenancy", "MultiTenancyExplanationShort": "SaaS applications made easy! Integrated multi-tenancy from database to UI.", "CrossCuttingConcerns": "Cross Cutting Concerns", "CrossCuttingConcernsExplanationShort": "Complete infrastructure for authorization, validation, exception handling, caching, audit logging, transaction management and more.", @@ -94,7 +95,7 @@ "DynamicForms": "Dynamic Forms", "BundlingMinification": "Bundling & Minification", "BackgroundJobs": "Background Jobs", - "BackgroundJobsExplanation": "Define simple classes to execute jobs in the background as queued. Use the built-in job manager or integrate your own. Hangfire & RabbitMQ integrations are already available.", + "BackgroundJobsExplanation": "Define simple classes to execute jobs in the background as queued. Use the built-in job manager or integrate your own. Hangfire, RabbitMQ and Quartz integrations are already available.", "DDDInfrastructure": "DDD Infrastructure", "DomainDrivenDesignInfrastructure": "Domain Driven Design Infrastructure", "AutoRESTAPIs": "Auto REST APIs", @@ -109,18 +110,20 @@ "EmailSMSAbstractionsWithTemplatingSupport": "Email & SMS Abstractions with Templating Support", "Localization": "Localization", "SettingManagement": "Setting Management", + "CommercialSupport": "Commercial Suport", + "GithubIssues": "GitHub Issues", + "TechnicalSupport": "Technical Support", "ExtensionMethods": "Extension Methods", "ExtensionMethodsHelpers": "Extension Methods & Helpers", "AspectOrientedProgramming": "Aspect Oriented Programming", "DependencyInjection": "Dependency Injection", "DependencyInjectionByConventions": "Dependency Injection by Conventions", - "ABPCLIExplanation": "ABP CLI (Command Line Interface) is a command line tool to automate some common operations for ABP based solutions.", "ModularityExplanation": "ABP provides a complete infrastructure to build your own application modules that may have entities, services, database integration, APIs, UI components and so on..", - "MultiTenancyExplanation": "ABP framework doesn't only support developing multi-tenant applications, but also makes your code mostly unaware of the multi-tenancy.", + "MultiTenancyExplanation": "ABP doesn't only support developing multi-tenant applications, but also makes your code mostly unaware of the multi-tenancy.", "MultiTenancyExplanation2": "Can automatically determine the current tenant, isolate data of different tenants from each other.", "MultiTenancyExplanation3": "Supports single database, database per tenant and hybrid approaches.", "MultiTenancyExplanation4": "You focus on your business code and let the framework handle multi-tenancy on behalf of you.", - "BootstrapTagHelpersExplanation": "Instead of manually writing the repeating details of bootstrap components, use ABP's tag helpers to simplify it and take advantage of the IntelliSense. You can definitely use Bootstrap whenever you need it.", + "BootstrapTagHelpersExplanation": "Instead of manually writing the repeating details of bootstrap components, use ABP's tag helpers to simplify it and take advantage of the IntelliSense. You can directly use Bootstrap whenever you need it.", "DynamicFormsExplanation": "Dynamic form & input tag helpers can create the complete form from a C# class as the model.", "AuthenticationAuthorizationExplanation": "Rich authentication & authorization options integrated to ASP.NET Core Identity & OpenIddict. Provides an extensible & detailed permission system.", "CrossCuttingConcernsExplanation": "Don't repeat yourself to implement all this common stuff again & again. Focus on your business code and let ABP automate them by conventions.", @@ -137,7 +140,7 @@ "ApplicationService": "Application Service", "DataTransferObject": "Data Transfer Object", "AggregateRootEntity": "Aggregate Root, Entity", - "AutoRESTAPIsExplanation": "ABP can automagically configure your application services as API Controllers by convention.", + "AutoRESTAPIsExplanation": "ABP can automatically configure your application services as API Controllers by convention.", "DynamicClientProxiesExplanation": "Easily consume your APIs from JavaScript and C# clients.", "DistributedEventBusWithRabbitMQIntegrationExplanation": "Easily publish & consume distributed events using built-in Distributed Event Bus with RabbitMQ integration available.", "TestInfrastructureExplanation": "The framework has been developed with unit & integration testing in mind. Provides you base classes to make it easier. Startup templates come pre-configured for testing.", @@ -151,15 +154,18 @@ "DataFilteringExplanation": "Define and use data filters that are automatically applied when you query entities from the database. Soft Delete & MultiTenant filters are provided out of the box when you implement simple interfaces.", "PublishEvents": "Publish Events", "HandleEvents": "Handle Events", - "AndMore": "and more...", "Code": "Code", "Result": "Result", - "SeeTheDocumentForMoreInformation": "Check out the {0} document for more information", - "IndexPageHeroSection": "open sourceWeb Application
Framework
for asp.net core", + "SeeTheDocumentForMoreInformation": "Check out the {0} document for more information", "UiFramework": "UI Framework", "EmailAddress": "Email address", "Mobile": "Mobile", + "MobileTitle": "Select a Mobile Application", + "MobileTitleDescription" : "You can include a mobile application that is integrated to your backend.", "ReactNative": "React Native", + "AdditonalOptions" : "Additonal Options", + "CreateYourSolution" : "Create a Your Solution", + "CreateYourSolutionDescription" : "Execute the following ABP CLI command in your command-line terminal:", "Strong": "Strong", "Complete": "Complete", "BasedLayeringModel": "Based Layering Model", @@ -185,7 +191,7 @@ "InstallABPCLIInfo": "ABP CLI is the fastest way to start a new solution with the ABP framework. Install the ABP CLI using a command line window:", "DifferentLevelOfNamespaces": "You can use different levels of namespaces; e.g. BookStore, Acme.BookStore or Acme.Retail.BookStore.", "ABPCLIExamplesInfo": "The new command creates a layered MVC application with Entity Framework Core as the database provider. However, it has additional options.", - "SeeCliDocumentForMoreInformation": "Check out the ABP CLI document for more options or select the \"Direct Download\" tab above.", + "SeeCliDocumentForMoreInformation": "Check out the ABP CLI document for more options or select the \"Direct Download\" tab above.", "Optional": "Optional", "LocalFrameworkRef": "Keep the local project reference for the framework packages.", "BlobStoring": "BLOB Storing", @@ -194,7 +200,6 @@ "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 provided out of the box.", "MultipleDBOptionsExplanation": "The framework can work with any data source, while the following providers are officially developed and supported:", "SelectLanguage": "Select language", "LatestPostOnCommunity": "Latest Post on ABP Community", @@ -206,7 +211,7 @@ "SeeOnNpm": "See on NPM", "SeeOnNuget": "See on Nuget", "MVCGulpCommandExplanation": "If you are using MVC (Razor Pages) UI, then run the \"gulp\" command after the package installation.", - "UsingABPCLI": "Using Abp CLI", + "UsingABPCLI": "Using Abp CLI", "WithoutABPCLI": "Without ABP CLI", "ABPCLIModuleDependency": "Abp Cli automatically adds module dependency.", "AddModuleDependency": "Then add module dependency", @@ -236,11 +241,9 @@ "ClientSideDevelopment": "Client Side Development", "ClientSideDevelopmentDocumentationMessage": "Check out the {0} document to learn the key points for the user interface (client side) development.", "DatabaseProviderDocumentationMessage": "Check out the {0} document to learn the key points for the database layer development.", - "ABPCommercialExplanationMessage": "ABP Commercial provides premium modules, themes, tooling and support for the ABP Framework.", "ImplementingDDD": "Implementing Domain Driven Design", "DDDBookExplanation": "A practical guide for implementing the Domain Driven Design with the ABP Framework.", "Overview": "Overview", - "DDDBookPracticalGuide": "This is a practical guide for implementing the Domain Driven Design (DDD). While the implementation details are based on the ABP Framework infrastructure, the basic concepts, principles and models can be applied to any solution, even if it is not a .NET solution.", "TableOfContents": "Table of Contents", "IntroductionToImplementingDDD": "Introduction to Implementing the Domain Driven Design", "WhatIsDDD": "What is the Domain Driven Design?", @@ -251,6 +254,8 @@ "DomainAndApplicationLogic": "Domain Logic & Application Logic", "Author": "Author", "Pages": "Pages", + "Purchase_Page_Title": "{0} License", + "Purchase_Page_Description": "Don't waste time reinventing the wheel. Purchase the {0} License and start coding your business today!", "PublishedOn": "Published on", "FreeEBook": "Free E-Book", "Download": "Download", @@ -261,7 +266,8 @@ "Name": "Name", "Surname": "Surname", "CompanyName": "Company name", - "DoYouAgreePrivacyPolicy": "I agree to the Terms & Conditions and Privacy Policy.", + "CompanyAddress" : "Company Address", + "TaxNumber" : "Tax Number", "Free": "Free", "DDDEBook": "DDD E-Book", "PracticalGuideForImplementingDDD": "This book is a practical guide for implementing the Domain Driven Design with the ABP Framework.", @@ -276,7 +282,7 @@ "GoHome": "Go Home", "InvalidFormInputs": "Please, type the valid information specified on the form.", "DDDBookEmailBody": "Thank you.
To download your book, click here.", - "SubscribeToNewsletter": "Subscribe to the newsletter to get information about happenings in the ABP.IO Platform, such as new releases, posts, offers, and more.", + "SubscribeToNewsletter": "Subscribe to the newsletter to get information about happenings in the ABP Platform, such as new releases, posts, offers, and more.", "FirstEdition": "First Edition", "ThankYou": "Thank you!", "CheckboxMandatory": "You need to check this to proceed!", @@ -300,8 +306,8 @@ "SeparateAuthenticationServer": "Separate Authentication Server", "ProgressiveWebApplication": "Progressive Web Application", "Preview": "Preview", - "CreateANewSolution": "Create a new solution", - "ABPFrameworkFeatures": "ABP Framework Features", + "CreateANewSolution": "Create a New .NET Solution", + "FrameworkFeatures": "Framework Features", "Commercial": "Commercial", "ThirdPartyTools": "Third Party Tools", "Back": "Back", @@ -309,7 +315,7 @@ "SeeMore": "See More", "DetailsOfTheEBook": "Details of the E-Book", "JoinOurMarketingNewsletter": "Join our marketing newsletter", - "FrameworkNewsletterConfirmationMessage": "I agree to the Terms & Conditions and Privacy Policy.", + "FrameworkNewsletterConfirmationMessage": "I agree to the Terms & Conditions and Privacy Policy.", "GetYourFreeEBook": "Get Your Free DDD E-book ", "EverythingYouNeedToKnow": "Everything you need to know.", "PreOrderNow": "Pre-Order Now", @@ -317,11 +323,11 @@ "UIThemingExplanation": "Create reusable UI themes and layouts or use one of the pre-built UI themes.", "DataFilteringExplanation2": "Automatically filter on querying from the database to easily implement patterns like soft-delete and multi-tenancy.", "NeedHelp": "Need Help?", - "GiveYourProjectAName": "Give your project a name", - "SelectProjectType": "Select Project Type", - "SelectUIFramework": "Select UI Framework", - "SelectDatabaseProvider": "Select Database Provider", - "SelectDatabaseManagementSystem": "Select Database Management System", + "GiveYourProjectAName": "Give Your Project a Name", + "SelectProjectType": "Select a Project Type", + "SelectUIFramework": "Select a UI Framework", + "SelectDatabaseProvider": "Select a Database Provider", + "SelectDatabaseManagementSystem": "Select a Database Management System", "InstallingTheABPCLI": "Installing the ABP CLI", "CreateYourProjectNow": "Create Your Project Now", "OrderOn": "Order on {0}", @@ -356,6 +362,8 @@ "BuyOnDangDang": "Buy on DangDang", "BuyOnJD": "Buy on JD", "Discounted": "Discounted", + "MasteringAbpBookTitle": "Mastering ABP Framework", + "MasteringAbpBookDescription": "Written by the creator of ABP, this book will help you to gain a complete understanding of the ABP and web app development techniques.", "MasteringAbpFramework_Book_KeyFeatures": "Key Features", "MasteringAbpFramework_Book_Key_Features_Description_1": "Build robust, maintainable, modular, and scalable software solutions using ABP Framework.", "MasteringAbpFramework_Book_Key_Features_Description_2": "Learn how to implement SOLID principles and domain-driven design in your web applications.", @@ -373,7 +381,7 @@ "MasteringAbpFramework_Book_What_You_Will_Learn_6": "Work with multi-tenancy to create modular web applications.", "MasteringAbpFramework_Book_What_You_Will_Learn_7": "Understand modularity and create reusable application modules.", "MasteringAbpFramework_Book_What_You_Will_Learn_8": "Write unit, integration, and UI tests using ABP Framework.", - "MasteringAbpFramework_Book_WhoIsThisBookFor": "Who's this book for", + "MasteringAbpFramework_Book_WhoIsThisBookFor": "Who's This Book For", "MasteringAbpFramework_Book_WhoIsThisBookFor_Description": "This book is for web developers who want to learn software architectures and best practices for building\n maintainable web-based solutions using Microsoft technologies and ABP Framework. Basic knowledge of C#\n and ASP.NET Core is necessary to get started with this book.", "ComputersAndTechnology": "Computers & Technology", "BuildingMicroserviceSolutions": "Building Microservice Solutions", @@ -390,13 +398,13 @@ "ThisBookIsInDraftStageAndIsNotCompletedYet": "This book is in draft stage and is not completed yet.", "Authors": "Authors", "MicroserviceEBook": "Microservice E-Book", - "SelectUITheme": "Select UI Theme", + "SelectUITheme": "Select a UI Theme", "LeptonXLiteTheme": "LeptonX Lite Theme", "BasicTheme": "Basic Theme", "LeptonXLiteThemeInfo": " A modern and stylish Bootstrap UI theme. Ideal if you want to have a production ready UI theme. This is the newest theme and is the default.", "BasicThemeInfo": "Minimalist UI theme with plain Bootstrap colors and styles. Ideal if you will build your own UI theme.", - "SeeDocumentation": "See documentation.", - "SeeFullScreen": "đŸ–Œïž See the screenshot", + "SeeDocumentation": "See documentation.", + "SeeFullScreen": "đŸ–Œïž See the screenshot", "BuildingMicroserviceSolutionsShortDescription": "This book is a reference guide for developing and managing microservice-based applications using the ABP Framework.", "InstallAbpCliMessage": "Install the ABP CLI in a command line terminal, if you haven't installed it before:", "Terminal": "Terminal", @@ -424,14 +432,15 @@ "CreateSolutionFolder": "Create Solution Folder", "CreateSolutionFolderOption": "Specifies if the project will be in a new folder in the output folder or directly the output folder.", "BooksPageTitle": "ABP Books", + "BooksPageDescription": "Explore ABP books to deepen your understanding and mastery of ABP.", "PackageDetailPage_NuGetPackageInstallationOptions": "There are three ways to install {0} NuGet package to your project", "PackageDetailPage_InstallingWithABPCLI": "1: Installing with the ABP CLI", - "PackageDetailPage_InstallingWithABPCLIDescription1": "If you haven't installed the ABP CLI, first install by executing the following command in a command-line terminal", + "PackageDetailPage_InstallingWithABPCLIDescription1": "If you haven't installed the ABP CLI, first install by executing the following command in a command-line terminal", "PackageDetailPage_InstallingWithABPCLIDescription2": "Once you have installed the ABP CLI, open a command-line terminal in the location of the project (.csproj file) you want to install it and execute the following command", "PackageDetailPage_InstallingWithABPCLIDescription3": "It will add the {0} package reference to your project and the {1} dependency to your module class.", "PackageDetailPage_ManualInstallation": "2: Installing with the Dotnet CLI", "PackageDetailPage_ManualInstallationDescription1": "Add {0} NuGet package reference to your project using your IDE or executing the following command", - "PackageDetailPage_ManualInstallationDescription2": "Then add the {0} dependency to your module class as shown in the following example", + "PackageDetailPage_ManualInstallationDescription2": "Then add the {0} dependency to your module class as shown in the following example", "PackageDetailPage_SeeDocumentation": "See the documentation to learn how to use this package in your applications.", "PackageDetailPage_InstallingUsingPMC": "3: Installing with the Package Manager Console", "PackageDetailPage_InstallingUsingPMCDescription1": "Open the Package Manager Console in Visual Studio (Tools -> Nuget Package Manager -> Package Manager Console) and execute the following command", @@ -439,7 +448,7 @@ "Testimonials": "Testimonials", "CoolestCompaniesUseABPFramework": "Coolest Companies Use ABP Framework", "Index_Page_Testimonial_1": "ABP Framework is not just a tool but a catalyst that has accelerated my growth as a developer. It has made it possible for me to build new features faster than ever before, reminiscent of the experiences of other users. The unified coding pattern has streamlined my projects, giving me more time to focus on creating rather than troubleshooting.\nI would say the ABP Framework has been the cornerstone of my early professional journey. It has facilitated my transition from an aspiring developer to a confident professional ready to make a mark in the software world. I am looking forward to the exciting projects that await me, knowing that ABP will be there to guide me. It is more than just a product; it's a partner in success.", - "Index_Page_Testimonial_2": "ABP Framework is not only a framework, it is also a guidance for project development/management, because it provides DDD, GenericRepository, DI, Microservice, Modularity trainings. Even if you are not going to use framework itself, you can develop yourself with docs.abp.io which is well and professionally prepared. (OpenIddict, Redis, Quartz etc.)\nBecause many thing pre-built, it shortens project development time significantly. (Such as login page, exception handling, data filtering-seeding, audit logging, localization, auto api controller etc.)\nAs an example from our app, i have used Local Event Bus for stock control. So, I am able to manage order movements by writing stock handler.\nIt is wonderful not to lose time for CreationTime, CreatorId. They are filled automatically.", + "Index_Page_Testimonial_2": "ABP Framework is not only a framework, it is also a guidance for project development/management, because it provides DDD, GenericRepository, DI, Microservice, Modularity trainings. Even if you are not going to use framework itself, you can develop yourself with abp.io/docs which is well and professionally prepared. (OpenIddict, Redis, Quartz etc.)\nBecause many thing pre-built, it shortens project development time significantly. (Such as login page, exception handling, data filtering-seeding, audit logging, localization, auto api controller etc.)\nAs an example from our app, i have used Local Event Bus for stock control. So, I am able to manage order movements by writing stock handler.\nIt is wonderful not to lose time for CreationTime, CreatorId. They are filled automatically.", "VideosLoginAndRegisterMessage": "To be able to watch videos, you must sign in.", "Filter": "Filter", "VideoCourses": "Essential Videos", @@ -467,11 +476,12 @@ "TestimonialSend": "Thank you! We've received your testimonial.
We'll review and take the next step soon.", "Title": "Title", "TitlePlaceholder": "Software Developer, CTO etc.", - "Characters": "characters", + "characters": "characters", "Testimonial_YourProfilePicture": "Your profile picture (only {0})", "BootstrapCardTitle": "This is a sample card component built by ABP bootstrap card tag helper.", "GoSomewhere": "Go somewhere →", - "ABPTestimonialDescription": "ABP Framework: Let's hear your testimonial", + "ABPTestimonialTitle": "New Testimonial", + "ABPTestimonialDescription": "Submit your testimonial to the ABP Community by sharing your experiences and feedback about the framework.", "NotValidEmailAddress": "The Email field is not a valid e-mail address.", "EmailAddressMaxLength": "The field Email must be a string with a maximum length of 255.", "EmailAddressRequired": "The Email field is required.", @@ -480,14 +490,1382 @@ "AddressLength": "The field Address must be a string with a maximum length of 255.", "GenderRequired": "The Gender field is required.", "LeaveUsReview": "Leave us review", - "ABPVideoCoursesDescription": "Learn the basics of the ABP Framework through video courses created by the ABP team.", - "ABPVideoCoursesPageDescription": "Learn the basics of the ABP Framework through video courses created by the ABP team. In this video series, you will learn the essential topics of the ABP Framework. The numbers on each video are written according to the learning flow.", + "ABPVideoCoursesDescription": "Learn fundamental concepts and usage of ABP Framework in this video course series. Ideal for newbies!", + "ABPVideoCoursesPageDescription": "In this video series, you will learn the key topics of the ABP Framework through videos prepared by the ABP Team.", "DocumentationButtonTitle": "Documentation", - "ABPVideoCoursesTitle": "ABP Essential Videos", + "ABPVideoCoursesTitle": "Essentials Videos", "LovedDevelopers": "Loved by thousands of developers
around the world", - "ABPIOPlatformPackages": "ABP.IO Platform Packages", - "AbpPackagesDescription": "ABP templates are being distributed as NuGet and NPM packages. Here are all the official NuGet and NPM packages used by the ABP.IO Platform.", + "ABPIOPlatformPackages": "ABP Packages", + "AbpPackagesDescription": "Extend your application with various packages available in ABP, adding functionality and features.", "Cancel": "Cancel", - "Continue": "Continue" + "Continue": "Continue", + "WhatIsTheABPIOPlatform": "What is the ABP Platform?", + "AbpIoPlatformExplanation1": "ABP Platform is a comprehensive infrastructure for application development based on .NET and ASP.NET Core platforms. It fills the gap between the plain ASP.NET Core platform and the complex requirements of modern business software development.", + "AbpIoPlatformExplanation2": "In the core, it provides an open source and free framework that consists of hundreds of NuGet and NPM packages, each offering different functionalities. The core framework is modular, themeable and microservice compatible, providing a complete architecture and a robust infrastructure. This allows you to focus on your business code rather than repeating yourself for every new project. It is based on the best practices of software development and integrates popular tools you're already familiar with. The framework is completely free, open source and community-driven.", + "AbpIoPlatformExplanation3": "The ABP Platform offers free and paid licensing options. Depending on your license type, you can access multiple production-ready startup templates, many pre-built application modules, UI themes, CLI and GUI tooling, support and more.", + "WhatAreTheDifferencesBetweenFreeAndPaid": "What are the differences between the free and commercial licenses?", + "WhatAreTheDifferencesBetweenFreeAndPaidExplanation1": "Free (open source) ABP license includes the core framework, basic startup templates, basic modules, basic themes and the community edition of ABP Studio.", + "WhatAreTheDifferencesBetweenFreeAndPaidExplanation2": "Commercial licenses offer additional features, including more startup templates (such as the microservice startup template), professional application modules, a full-featured UI theme, professional editions of ABP Studio, ABP Suite for code generation, more options for mobile startup applications, premium support and some other benefits.", + "WhatAreTheDifferencesBetweenFreeAndPaidExplanation3": "For more information about the differences between the license types, please see the pricing page.", + "HowDoIUseTheABPIOPlatform": "How do I use the ABP Platform?", + "HowDoIUseTheABPIOPlatformExplanation": "ABP Framework extends the .NET platform, meaning anything you can do with a plain .NET solution is already possible with the ABP Framework. That makes it easy to get started with a low learning curve. See the How it works page to learn how to use the ABP Platform in practice.", + "SupportPolicyFaqExplanation1": "We provide two kinds of support: community support for users with a non-commercial license and premium support for commercial license holders. Community support is available on platforms like GitHub and Stackoverflow, where support is limited. On the other hand, premium support is provided on the official ABP Support website. Here, your questions are answered directly by the core ABP developers, ensuring higher quality support.", + "SupportPolicyFaqExplanation2": "Premium support details: We support only the active and the previous major version. We do not guarantee patch releases for the 3rd and older major versions. For example, if the active version is 7.0.0, we will release patch releases for both 6.x.x and 7.x.x. Besides, we provide support only for ABP Platform related issues. This means no support is given for the 3rd party applications, cloud services and other peripheral libraries used by ABP products.", + "SupportPolicyFaqExplanation3": "We commit to using commercially reasonable efforts to provide our customers with technical support during the official business hours of \"Volosoft Bilisim A.S\". However, we do not commit to a Service-Level Agreement (SLA) response time, but we will try to respond to the technical issues as quickly as possible within our official working hours. Unless a special agreement is made with the customer, support is provided exclusively at {1}. Furthermore, private email support is available only to Enterprise License holders.", + "HowManyProducts": "How many different products/solutions can I build?", + "HowManyDevelopers": "How many developers can work on the solutions using the ABP Platform?", + "HowManyDevelopersExplanation": "ABP.IO licenses are issued per developer. Different license types come with varying developer limits. However, you can add more developers to any license type whenever you need. For information on license types, developer limits, and the costs for additional developers, please refer to the pricing page.", + "ChangingLicenseTypeExplanation": "You can upgrade to a higher license by paying the difference during your active license period. When you upgrade to a higher license plan, you get the benefits of the new plan, however the license upgrade does not change the license expiry date. Besides, you can add new developer seats to your existing license. For details on how many developers can work on solutions using the ABP Platform, please see the 'How many developers can work on the solutions using the ABP Platform?' question.", + "DowngradeLicensePlanExplanation": "You cannot downgrade your existing license plan. For further information, contact us at info@abp.io.", + "LicenseTransferExplanation": "Yes! When you purchase a license, you become the license holder, which grants you access to the organization management page. An organization includes roles for owners and developers. Owners can manage developer seats and assign developers. Each assigned developer will log in to the system using the ABP CLI command and will have permissions for development and support.", + "LicenseExtendUpgradeDiff": "What is the difference between license renewal and upgrading?", + "LicenseExtendUpgradeDiffExplanation1": "Renewal: By renewing your license, you will continue to receive premium support and updates, both major and minor, for modules, tools, and themes. Additionally, you will be able to create new projects and use ABP Suite and ABP Studio, which can significantly speed up your development process. When you renew your license, one year is added to your license's expiry date.", + "LicenseExtendUpgradeDiffExplanation2": "Upgrading: By upgrading your license, you will be promoted to a higher license plan, allowing you to receive additional benefits. Check out the pricing page to see the differences between the license plans. On the other hand, when you upgrade, your license expiry date will not change! To extend your license end date, you need to renew your license.", + "WhatHappensWhenLicenseEndsExplanation1": "ABP licenses are perpetual licenses. After your license expires, you can continue developing your project without the obligation to renew. Your license comes with a one-year update and premium support plan out of the box. To receive new features, performance enhancements, bug fixes, and continued support, as well as to use ABP Suite and ABP Studio, you need to renew your license. When your license expires;", + "WhatHappensWhenLicenseEndsExplanation2": "You can not create new solutions using the pro startup templates, but you can continue developing your existing applications forever.", + "WhatHappensWhenLicenseEndsExplanation3": "You will receive updates for the application modules and themes within your MINOR version (excluding RC or Preview versions). For example, if you are using v3.2.0 of a module, you can still receive updates for v3.2.x (v3.2.1, v3.2.5... etc.) of that module. However, you cannot receive updates for the next major or minor version (such as v3.3.0, v3.3.3, 4.x.x.. etc.). For example, if the latest release was v4.4.3 when your license expired and later versions 4.4.4 and 4.5.0 were published, you would have access to v4.4.x but not to v4.5.x.", + "WhatHappensWhenLicenseEndsExplanation4": "You cannot install new application modules and themes added to your solution after your license ends.", + "WhatHappensWhenLicenseEndsExplanation5": "You cannot use the ABP Suite.", + "WhatHappensWhenLicenseEndsExplanation6": "You cannot use the ABP Studio’s pro features (you can use the Community Edition features of ABP Studio)", + "WhatHappensWhenLicenseEndsExplanation7": "You will no longer have access to premium support.", + "WhatHappensWhenLicenseEndsExplanation8": "You can renew (extend) your license to continue receiving these benefits. If you renew your license within {3} days after it expires, the following discounts will be applied: Team License {0}; Business License {1}; Enterprise License {2}.", + "WhenShouldIRenewMyLicenseExplanation1": "If you renew your license within 30 days after it expires, the following discounts will be applied:", + "WhenShouldIRenewMyLicenseExplanation2": "{0} for Team Licenses;", + "WhenShouldIRenewMyLicenseExplanation3": "{0} for Business and Enterprise Licenses;", + "WhenShouldIRenewMyLicenseExplanation4": "However, if you renew your license more than {0} days after the expiry date, the renewal price will be the same as the initial purchase price of the license, with no discounts applied to your renewal.", + "DoesTheSubscriptionRenewAutomaticallyExplanationAutoRenewal": "ABP Platform allows you to auto-renew your license. This is an optional free service. You can toggle this feature when you purchase a new license or later enable it from your organization management page. If you want to turn on or off the auto-renewal, visit the organization management page, go to the 'Payments Method' section and either check or uncheck the 'Automatic Renewal' checkbox. When you turn off the auto-renewal feature, it will be your responsibility to renew your license manually.", + "TrialPlanExplanation": "Yes, to start your free trial, please contact marketing@volosoft.com. We also offer a 30-day money-back guarantee for the Team license, with no questions asked! You can request a full refund within the first 30 days of purchasing the license. For Business and Enterprise licenses, we provide a 60% refund if requested within 30 days of purchase. This policy is due to the inclusion of the full source code for all modules and themes in the Business and Enterprise licenses.", + "BlazoriseLicenseExplanation": "We have an agreement between Volosoft and Megabit, according to which the Blazorise license is bundled with the ABP Platform’s commercial licenses. Therefore, our paid users do not need to purchase an additional Blazorise license.", + "HowToUpgradeExplanation1": "When you create a new application using the ABP startup templates, all the modules and themes are used as NuGet and NPM packages. This setup allows for easy upgrades to newer versions of the packages.", + "HowToUpgradeExplanation2": "In addition to the standard NuGet/NPM upgrades, ABP CLI provides an update command that automatically finds and upgrades all ABP-related packages in your solution.", + "HowToUpgradeExplanation3": "Beyond automatic package upgrades, we also publish a migration guide if the new version requires some manual steps to upgrade or it has some notes to be considered. Keep following the ABP blog for the news about new releases.", + "DatabaseSupportExplanation": "ABP is database agnostic and can work with any database provider by its nature. For a list of currently implemented providers, please check out the Data Access document.", + "MicroserviceSupportExplanation1": "Yes, it supports microservice architectures.", + "MicroserviceSupportExplanation2": "One of the major goals of the ABP platform is to provide a convenient infrastructure to create microservice solutions. All the official ABP application modules are designed to support microservice deployment scenarios (with its own API and database) by following the Module Development Best Practices document.", + "MicroserviceSupportExplanation3": "ABP Platform commercial licenses also includes a microservice startup template which can be used to directly create a production ready base solution for your microservice system.", + "MicroserviceSupportExplanation4": "For the non-paid users, we are also providing an example e-commerce solution that you can check to understand how you can build your microservice solution based on the ABP Framework.", + "MicroserviceSupportExplanation5": "However, a microservice system is a solution, and every solution will have different requirements, including network topology, communication scenarios, authentication possibilities, database sharding/partitioning decisions, runtime configurations, 3rd party system integrations and many more aspects. The ABP platform provides infrastructure for microservice scenarios, microservice-compatible modules, samples, and documentation to assist in building your own solution. However, don't expect to directly download your ideal, custom solution pre-built for you. You will need to understand it and bring specific parts together based on your requirements.", + "WhereCanIDownloadSourceCodeExplanation": "You can download the source code of all the ABP modules, Angular packages and themes via ABP Suite, ABP Studio or ABP CLI. Check out the forum question: How to download the source-code?", + "CommercialLicenses": "Commercial Licenses", + "WhatIsDifferencePaidLicenses": "What is the difference between a personal license and other types of paid licenses?", + "DifferencePaidLicenseExplanation1": "A non-personal paid license is the standard licensing option for enterprises and commercial entities. Licenses are purchased by the company and can be used by anyone within the organization.", + "DifferencePaidLicenseExplanation2": "Personal License; on the other hand, is a type of license for private individuals/freelancers/independent developers who purchase licenses with their own funds and solely for their own use. The Personal License has some limitations. In this plan, there can only be 1 developer working on the ABP project and no additional developers are allowed to be added later to the project. Downloading the source-code of PRO modules is not allowed in the personal license plan. Also, there is no microservice template and tier (layered) architecture in this plan. Personal License holders can only use the following modules: Account, Audit Logging UI, GDPR, Identity, Language Management, LeptonX PRO, OpenIddict UI and SaaS. Personal License holders cannot use the following modules: Chat, CMS-Kit PRO, File Management, Forms, Payment, Text Template Management, and Twilio SMS. You can access the full module list at abp.io/modules.", + "ReadyToStart": "Ready to start?", + "TransformYourIdeasIntoRealityWithOurProfessionalNETDevelopmentServices": "Transform your ideas into reality with our professional .NET development services.", + "ReadyToUpgrade": "Ready to upgrade?", + "SendServiceRequest": "Send a Service Request", + "Permission:CommunityPost": "Community Post", + "Permission:Edit": "Edit", + "Waiting": "Waiting", + "Approved": "Approved", + "Rejected": "Rejected", + "Wait": "Wait", + "Approve": "Approve", + "Reject": "Reject", + "ReadPost": "Read Post", + "Status": "Status", + "ContentSource": "Content Source", + "Details": "Details", + "CreationTime": "Creation time", + "Save": "Save", + "SameUrlAlreadyExist": "Same url already exists if you want to add this post, you should change the url!", + "UrlIsNotValid": "Url is not valid.", + "UrlNotFound": "Url not found.", + "UrlContentNotFound": "Url content not found.", + "Summary": "Summary", + "MostRead": "Most Read", + "Latest": "Latest", + "ContributeAbpCommunity": "Contribute to the ABP Community", + "ContributionGuide": "Contribution Guide", + "BugReport": "Bug Report", + "SeeAllPosts": "See All Posts", + "WelcomeToABP": "Welcome to the ABP", + "FeatureRequest": "Feature Request", + "CreatePostTitleInfo": "Title of the post to be shown on the post list.", + "CreatePostSummaryInfo": "A short summary of the post to be shown on the post list. Maximum length: {0}", + "CreatePostCoverInfo": "For creating an effective post, add a cover photo. Upload 16:9 aspect ratio pictures for the best view.
Maximum file size: 1MB.", + "CreatePostCoverInfo_Title": "Add a cover image to your post.", + "CreatePostCoverInfo1": " Accepted file types : JPEG, JPG, PNG", + "CreatePostCoverInfo2": " Max file size : 1 MB", + "CreatePostCoverInfo3": " Image proportion : 16:9", + "CreatePostCoverInfo4": " Download a sample cover image ", + "ThisExtensionIsNotAllowed": "This extension is not allowed.", + "TheFileIsTooLarge": "The file is too large.", + "GoToThePost": "Go to the Post", + "GoToTheVideo": "Go to the Video", + "Contribute": "Contribute", + "OverallProgress": "Overall Progress", + "Done": "Done", + "Open": "Open", + "Closed": "Closed", + "RecentQuestionFrom": "Recent question from {0}", + "Stackoverflow": "Stackoverflow", + "Votes": "votes", + "Answer": "Answer", + "views": "views", + "Answered": "Answered", + "WaitingForYourAnswer": "Waiting for your answer", + "Asked": "asked", + "AllQuestions": "All Questions", + "NextVersion": "Next Version", + "MilestoneErrorMessage": "Could not get the current milestone details from Github.", + "QuestionItemErrorMessage": "Could not get the latest question details from Stackoverflow.", + "Oops": "Oops!", + "CreatePostSuccessMessage": "The Post has been successfully submitted. It will be published after a review from the site admin.", + "Browse": "Browse", + "CoverImage": "Cover Image", + "ShareYourExperiencesWithTheABPFramework": "ABP Community Articles | Read or Submit Articles", + "CommunityVideosTitle": "ABP Community Videos | Watch and Share Your Videos", + "CommunityVideosDescription": "Watch the video tutorials, get informed about ABP news & updates and share your experiences with the community.", + "UpdateUserWebSiteInfo": "Example: https://johndoe.com", + "UpdateUserTwitterInfo": "Example: johndoe", + "UpdateUserGithubInfo": "Example: johndoe", + "UpdateUserLinkedinInfo": "Example: https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "Example: Volosoft", + "UpdateUserJobTitleInfo": "Example: Software Developer", + "UserName": "Username", + "Company": "Company", + "PersonalWebsite": "Personal Website", + "RegistrationDate": "Registration Date", + "Social": "Social", + "Biography": "Biography", + "HasNoPublishedPostsYet": "has no published posts yet", + "LatestGithubAnnouncements": "Latest Github Announcements", + "SeeAllAnnouncements": "See All Announcements", + "LatestBlogPost": "Latest Blog Post", + "Edit": "Edit", + "ProfileImageChange": "Change the profile image", + "BlogItemErrorMessage": "Could not get the latest blog post details from ABP.", + "PlannedReleaseDate": "Planned release date", + "CommunityPostRequestErrorMessage": "Could not get the latest post request from Github.", + "PostRequestFromGithubIssue": "There aren't any post requests now.", + "LatestPosts": "Latest Posts", + "ArticleRequests": "Request a content", + "ArticleRequestsDescription": "Want to see a specific content here? You can ask the community to create it!", + "LatestContentRequests": "Latest content requests", + "AllPostRequests": "See All Post Requests", + "SubscribeToTheNewsletter": "Subscribe to the Newsletter", + "NewsletterEmailDefinition": "Get information about happenings in ABP, such as new releases, free sources, posts, and more.", + "NoThanks": "No, thanks", + "MaybeLater": "Maybe later", + "JoinOurPostNewsletter": "Join our post newsletter", + "Marketing": "Marketing", + "CommunityPrivacyPolicyConfirmation": "I agree to the Terms & Conditions and Privacy Policy.", + "PostRequestMessageTitle": "Open an issue on GitHub to request a post/tutorial you want to see on this website.", + "PostRequestMessageBody": "Here's a list of the requested posts by the community. Do you want to write a requested post? Please click on the request and join the discussion.", + "Language": "Language", + "CreatePostLanguageInfo": "The language for the post content.", + "VideoPost": "Video Post", + "Post": "Post", + "Read": "Read", + "CreateGithubPostUrlInfo": "Full URL of the Markdown file on GitHub (example).", + "CreateVideoContentUrlInfo": "Original Youtube URL of the post.", + "CreateExternalPostUrlInfo": "Original External Url of the post.", + "VideoContentForm": "Submit Video on YouTube", + "GithubPostForm": "Submit Post on GitHub", + "ExternalPostForm": "Submit an External Content", + "HowToPost": "How to Post?", + "Posts": "Posts", + "VideoUrl": "Video Url", + "GithubPostUrl": "GitHub Post Url", + "ExternalPostUrl": "External Post Url", + "ThankYouForContribution": "Thank you for contributing to the ABP Community. We accept articles and video tutorials on ABP Framework, .NET, ASP.NET Core and general software development topics.", + "GithubPost": "GitHub Post", + "GithubPostSubmitStepOne": "1. Write a post on any public GitHub repository with the Markdown format. example", + "GithubPostSubmitStepTwo": "2. Submit your post URL using the form.", + "GithubPostSubmitStepThree": "3. Your post will be rendered in this website.", + "YoutubeVideo": "Youtube Video", + "YoutubeVideoSubmitStepOne": "1. Publish your video on YouTube.", + "YoutubeVideoSubmitStepTwo": "2. Submit the video URL using the form.", + "YoutubeVideoSubmitStepThree": "3. Visitors will be able to watch your video content directly on this website.", + "ExternalContent": "External Content", + "ExternalContentSubmitStepOne": "1. Create a content on any public platform (Medium, your own blog or anywhere you like).", + "ExternalContentSubmitStepTwo": "2. Submit your content URL using the form.", + "ExternalContentSubmitStepThree": "3. Visitors are redirected to the content on the original website.", + "ChooseYourContentType": "Please choose the way you want to add your content.", + "PostContentViaGithub": "I want to add my post with GitHub in accordance with the markdown rules.", + "PostContentViaYoutube": "I want to share my videos available on Youtube here.", + "PostContentViaExternalSource": "I want to add the content I published on another platform here.", + "GitHubUserNameValidationMessage": "Your Github username can not include whitespace, please make sure your Github username is correct.", + "PersonalSiteUrlValidationMessage": "Your personal site URL can not include whitespace, please make sure your personal site URL is correct.", + "TwitterUserNameValidationMessage": "Your Twitter username can not include whitespace, please make sure your Twitter username is correct.", + "LinkedinUrlValidationMessage": "Your Linkedin URL can not include whitespace, please make sure your Linkedin URL is correct.", + "NoPostsFound": "No posts found!", + "SearchInPosts": "Search in posts...", + "MinimumSearchContent": "You must enter at least 3 characters!", + "Volo.AbpIo.Domain:060001": "Source URL(\"{PostUrl}\") is not Github URL", + "Volo.AbpIo.Domain:060002": "Post Content is not available from Github(\"{PostUrl}\") resource.", + "Volo.AbpIo.Domain:060003": "No post content found!", + "JoinTheABPCommunity": "Join the ABP Community", + "ABPCommunityTalks": "ABP Community Talks", + "LiveDemo": "Live Demo", + "GetLicense": "Get a License", + "SourceCode": "Source Code", + "LeaveComment": "Leave Comment", + "ShowMore": "Show More", + "NoPublishedPostsYet": "No published posts yet.", + "FullURL": "Full URL", + "JobTitle": "Job Title", + "Prev": "Prev", + "Previous": "Previous", + "Next": "Next", + "Share": "Share", + "SortBy": "Sort by", + "NoPublishedEventsYet": "No published events yet.", + "SubscribeYoutubeChannel": "Subscribe to the Youtube Channel", + "Enum:EventType:0": "Talks", + "MemberNotPublishedPostYet": "This member hasn't published any posts yet.", + "MemberNotPublishedArticlesYet": "This member hasn't published any articles yet.", + "MemberNotPublishedVideosYet": "This member hasn't published any videos yet.", + "TimeAgo": "{0} ago", + "Discord_Page_JoinCommunityMessage": "Join ABP Discord Community", + "Discord_Page_Announce": "We are happy to announce ABP Community Discord Server!", + "Discord_Page_Description_1": "ABP Community has been growing since day one. We wanted to take it to the next step by creating an official ABP Discord server so the ABP Community can interact with each other using the wonders of instant messaging.", + "Discord_Page_Description_2": "ABP Community Discord Server is the place where you can showcase your creations using ABP Framework, share the tips that worked for you, catch up with the latest news and announcements about ABP Framework, just chat with community members to exchange ideas, and have fun!", + "Discord_Page_Description_3": "This ABP Community Discord Server is the official one with the ABP Core Team is present on the server to monitor.", + "Discord_Page_JoinToServer": "Join ABP Discord Server", + "Events_Page_MetaTitle": "ABP Events | Community Talks", + "Events_Page_MetaDescription": "Live ABP Community Talks hosted by the ABP Team and casual sessions full of community content, demos, Q&A, and discussions around what's happening in ABP.", + "Events_Page_Title": "ABP Community Talks", + "Members_Page_WritingFromUser": "Read writing from {0} on ABP Community.", + "Post_Create_Page_MetaTitle": "New Community Post", + "Post_Create_Page_MetaDescription": "Submit your own posts to the ABP Community platform, contributing your insights and experiences.", + "Post_Create_Page_CreateNewPost": "Create New Post", + "Post_Index_Page_MetaDescription": "Write, read articles or watch videos about ABP and .NET. Keep informed about the latest developments.", + "Layout_Title": "{0} | ABP Community", + "Layout_MetaDescription": "A hub for ABP Framework, .NET, and software development. Access articles, tutorials, news, and contribute to the ABP community.", + "Index_Page_CommunityIntroduction": "This is a hub for ABP Framework, .NET and software development. You can read the articles, watch the video tutorials, get informed about ABP’s development progress and ABP-related events, help other developers and share your expertise with the ABP community.", + "TagsInArticle": "Tags in article", + "IConsentToMedium": "I consent to the publication of this post at https://medium.com/volosoft.", + "SearchResultsFor": "Search results for \"{0}\"", + "SeeMoreVideos": "See More Videos", + "DiscordPageTitle": "Discord", + "DiscordPageDescription": "Join the ABP Community Discord to chat with other members, discuss ideas, and get support about ABP.", + "ViewVideo": "View Video", + "AbpCommunityTitleContent": "ABP Community - Open Source ABP Framework", + "CommunitySlogan": "A unique community platform for ABP Lovers", + "RaffleIsNotActive": "Raffle is not active", + "YouAreAlreadyJoinedToThisRaffle": "You already joined to this raffle!", + "InvalidSubscriptionCode": "Invalid subscription code", + "Raffle:{0}": "Raffle: {0}", + "Join": "Join", + "Leave": "Leave", + "LoginToJoin": "Login to join", + "ToEnd:": "To end:", + "ToStart:": "To start:", + "days": "days", + "hrs": "hrs", + "min": "min", + "sec": "sec", + "Winners": "Winners", + "To{0}LuckyWinners": "to {0} lucky winners", + "ActiveRaffles": "Active Raffles", + "UpcomingRaffles": "Upcoming Raffles", + "CompletedRaffles": "Completed Raffles", + "NoActiveRaffleTitle": "No active raffle is available at the moment.", + "NoActiveRaffleDescription": "No active raffle is available at the moment.", + "RaffleSubscriptionCodeInputMessage": "This raffle requires a registration code. Please enter the registration code below:", + "RaffleSubscriptionCodeInputErrorMessage": "The registration code is incorrect. Please try again.", + "GoodJob!": "Good Job!", + "RaffleJoinSuccessMessage": "You are successfully registered for the raffle. You will be informed via email if you win the prize!", + "RaffleLoginAndRegisterMessage": "You must sign in to join this raffle! If you haven't registered yet, create an account for free now.", + "Ok": "Ok", + "WaitingForTheDraw": "Wait for the draw!", + "AllAttendees": "All Attendees", + "SeeRaffleDetail": "See Raffle Detail", + "SeeRaffle": "See Raffle", + "ParticipationIsComplete": "Participation is complete.", + "ABPCoreDevelopmentTeam": "ABP Core Development Team", + "RegisterTheEvent": "Register the Event", + "GoToConferencePage": "Go to Conference Page", + "BuyTicket": "Buy Ticket", + "SeeEvent": "See Event", + "PreviousEvents": "Previous Events", + "OtherLiveEvents": "Other Live Events", + "SponsoredConferences": "Sponsored Conferences", + "SponsoredConferencesDescription": "We are honoring to support .NET communities and events for software developers.", + "UpcomingEvents": "Upcoming Events", + "UpcomingCommunityTalkEventDescription": "The live shows, hosted by the ABP Team, are casual sessions full of community content, demos, Q&A, and discussions around what's happening in ABP.", + "UpcomingConferenceEventDescription": "ABP .NET Conference is a virtual event for the .NET Developer community to come together and listen to talks about the .NET world, common software development practices and the open source ABP Framework.", + "LastOneYear": "Last 1 Year", + "AllTimes": "All Times", + "TopContributors": "Top Contributors", + "{0}Posts": "{0} Posts", + "LATESTPOSTS": "LATEST POSTS", + "NoContributorsFound": "No contributors found!", + "LatestPost": "Latest post", + "MEMBERSINCE{0}": "MEMBER SINCE {0}", + "CopyLink": "Copy Link", + "ShareOnTwitter": "Share on Twitter", + "ShareOnLinkedIn": "Share on LinkedIn", + "MoreFrom{0}": "More from {0}", + "SeeAllFrom{0}": "See all from {0}", + "MostWatched": "Most Watched", + "Articles({0})": "Articles ({0})", + "Videos({0})": "Videos ({0})", + "LatestArticles": "Latest Articles", + "Raffles": "Raffles", + "RafflesPageTitle": "ABP Community Raffles | Join and Win ABP Raffles", + "RafflesDescription": "Check the upcoming raffles, attend them and be a winner for various ABP licences.", + "RaffleHeader": "Hello ABP Community Member!", + "RafflesInfo": "
This is the raffle page dedicated to show our appreciation towards you for being an active Community Member. We do ABP Community Talks ABP Dotnet Conference, attend or sponsor to the .NET-related events in which we give away some gifts.

You can follow this page to see the upcoming raffles, attend them, or see previous raffles we draw including the winners.

Thank you for being an active member! See you in the upcoming raffles.", + "RafflesInfoTitle": "ABP Community Raffles", + "ToLuckyWinner": "to 1 lucky winner", + "MarkdownSupported": "Markdown supported.", + "VisitPage": "Visit Page", + "VisitVideoCourseDescription": "If you want to learn the basics of the ABP Framework, check out the ABP Essentials Video courses.", + "EditProfile": "Edit Profile", + "ConfirmEmailForPost": "To be able to post, you need to confirm your email. Go to account.abp.io/Account/Manage and verify your email in the Personal Info tab.", + "DailyPostCreateLimitation": "You have reached the daily post creation limit. You can create a new post in {0}.", + "OrganizationManagement": "Organization Management", + "OrganizationList": "Organization list", + "Volo.AbpIo.Commercial:010003": "You are not the owner of this organization!", + "OrganizationNotFoundMessage": "No organization found!", + "DeveloperCount": "Allocated / total developers", + "QuestionCount": "Remaining / total questions", + "Unlimited": "Unlimited", + "Owners": "Owners", + "Owner": "Owner", + "AddMember": "Add Member", + "AddNewOwner": "Add New Owner", + "AddNewDeveloper": "Add New Developer", + "Developers": "Developers", + "LicenseType": "License type", + "Manage": "Manage", + "SetDefault": "Set as default", + "DefaultOrganization": "Default", + "StartDate": "Start date", + "EndDate": "End date", + "Modules": "Modules", + "LicenseExtendMessage": "Your license end date is extended to {0}", + "LicenseUpgradeMessage": "Your license is upgraded to {0}", + "LicenseExtendAdnUpgradeMessage": "Your license has been extended until {0} and your license plan is upgraded to {1}.", + "LicenseAddDeveloperMessage": "{0} developers added to your license", + "Volo.AbpIo.Commercial:010004": "Can not find the specified user! The user must have already been registered.", + "MyOrganizations": "My organizations", + "ApiKey": "API Key", + "UserNameNotFound": "There is no user with the username {0}", + "SuccessfullyAddedToNewsletter": "Thank you for subscribing to our newsletter!", + "MyProfile": "My profile", + "WouldLikeToReceiveMarketingMaterials": "I would like to receive marketing news like product deals & special offers.", + "StartUsingYourLicenseNow": "Start using your license now!", + "WelcomePage": "Welcome Page", + "UnsubscriptionExpireEmail": "Unsubscribe from license expiration date reminder emails", + "UnsubscribeLicenseExpireEmailReminderMessage": "This email subscription only contains reminders of your license expiration date.", + "UnsubscribeFromLicenseExpireEmails": "If you don't want to receive the emails about your license expiration date, you can unsubscribe at any time you want.", + "Unsubscribe": "Unsubscribe", + "NotOrganizationMember": "You are not a member of any organization.", + "UnsubscribeLicenseExpirationEmailSuccessTitle": "Successfully unsubscribed", + "UnsubscribeLicenseExpirationEmailSuccessMessage": "You will not receive license expiration date reminder emails anymore.", + "LiveDemoLead": "{1} using your ABP account, {3} to abp.io or fill the form below to create a live demo now", + "ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "There is already an account with the given email address: {0}
You should login with your account to proceed.", + "GetLicence": "Get a License", + "Startup": "Startup", + "Templates": "Templates", + "Developer": "Developer", + "Tools": "Tools", + "Premium": "Premium", + "PremiumSupport": "Premium Support", + "PremiumForumSupport": "Premium Forum Support", + "UI": "UI", + "Themes": "Themes", + "JoinOurNewsletter": "Join Our Newsletter", + "Send": "Send", + "OpenSourceBaseFramework": "Open Source Base Framework", + "MicroserviceCompatible": "Microservice compatible", + "DistributedMessaging": "Distributed Messaging", + "DynamicProxying": "Dynamic Proxying", + "BLOBStoring": "BLOB Storing", + "AdvancedLocalization": "Advanced Localization", + "ManyMore": "Many more", + "ExploreTheABPFramework": "Explore the ABP Framework", + "StartupTemplatesShortDescription": "Startup templates make you jump-start your project in a few seconds.", + "UIFrameworksOptions": "UI frameworks options;", + "DatabaseProviderOptions": "Database provider options;", + "PreBuiltApplicationModules": "Pre-Built Application Modules", + "PreBuiltApplicationModulesShortDescription": "Most common application requirements are already developed for you as reusable modules.", + "Account": "Account", + "Blogging": "Blogging", + "Identity": "Identity", + "IdentityServer": "Identity Server", + "LanguageManagement": "Language Management", + "TextTemplateManagement": "Text Template Management", + "See All Modules": "SeeAllModules", + "ABPSuite": "ABP Suite", + "AbpSuiteShortDescription": "ABP Suite is a complementary tool to ABP Platform.", + "AbpSuiteExplanation": "It allows you to build web pages in a matter of minutes. It's a .NET Core Global tool that can be installed from the command line. It can create a new ABP solution and generate CRUD pages from the database to the front-end.", + "LeptonTheme": "Lepton Theme", + "ProfessionalModernUIThemes": "Professional, modern UI themes", + "LeptonThemeExplanation": "Lepton provides a gamut of Bootstrap admin themes that serve as a solid foundation for any project requiring an admin dashboard.", + "DefaultTheme": "Default Theme", + "MaterialTheme": "Material Theme", + "Default2Theme": "Default 2 Theme", + "DarkTheme": "Dark Theme", + "DarkBlueTheme": "Dark Blue Theme", + "LightTheme": "Light Theme", + "ProudToWorkWith": "Proud to Work With", + "JoinOurConsumers": "Join them and build amazing products fast.", + "AdditionalServicesExplanation": "Do you need additional or custom services? We and our partners can provide;", + "CustomProjectDevelopment": "Custom Project Development", + "CustomProjectDevelopmentExplanation": "Dedicated developers for your custom projects.", + "PortingExistingProjects": "Porting Existing Projects", + "PortingExistingProjectsExplanation": "Migrating your legacy projects to the ABP platform.", + "LiveSupport": "Live Support", + "LiveSupportExplanation": "Live remote support option when you need it.", + "Training": "Training", + "TrainingExplanation": "Dedicated training for your developers.", + "OnBoarding": "Onboarding", + "OnBoardingExplanation": "Help to setup your development, CI & CD environments.", + "PrioritizedTechnicalSupport": "Prioritized Technical Support", + "PremiumSupportExplanation": "Besides the great community support of the ABP framework, our support team answers technical questions and problems of the commercial users with high priority.", + "SeeTheSupportOptions": "Check out the Support Options", + "Contact": "Contact", + "TellUsWhatYouNeed": "Tell us what you need.", + "YourMessage": "Your Message", + "YourFullName": "Your full name", + "FirstNameField": "First Name", + "LastNameField": "Last Name", + "EmailField": "E-mail Address", + "YourEmailAddress": "Your e-mail address", + "ValidEmailAddressIsRequired": "A valid e-mail address is required.", + "HowMayWeHelpYou": "How may we help you?", + "SendMessage": "Send Message", + "Success": "Success", + "WeWillReplyYou": "We received your message and will be in touch shortly.", + "CreateLiveDemo": "Create Live Demo", + "CreateLiveDemoDescription": "Once you submit this form, you will receive an email containing your demo link.", + "RegisterToTheNewsletter": "Register for the newsletter to receive information regarding ABP.IO, including new releases etc.", + "EnterYourEmailOrLogin": "Enter your e-mail address to create your demo or Login using your existing account.", + "ApplicationTemplate": "Application Template", + "ApplicationTemplateExplanation": "Application startup template is used to create a new web application.", + "EfCoreProvider": "Entity Framework (Supports SQL Server, MySQL, PostgreSQL, Oracle and others)", + "AlreadyIncludedInTemplateModules": "Following modules are already included and configured in this template:", + "ApplicationTemplateArchitecture": "This application template also supports tiered architecture where the UI layer, API layer and authentication service are physically separated.", + "SeeTheGuideOrGoToTheLiveDemo": "Check out the developer guide for technical information about this template or go to the live demo.", + "DeveloperGuide": "Developer Guide", + "ModuleTemplate": "Module Template", + "ModuleTemplateExplanation1": "You want to create a module and reuse it across different applications? This startup template prepares everything to start to create a reusable application module or a microservice.", + "ModuleTemplateExplanation2": "

You can support single or multiple UI frameworks, single or multiple database providers for a single module. The startup template is configured to run and test your module in a minimal application in addition to the unit and integration test infrastructure.

Check out the developer guide for technical information about this template.

", + "WithAllStyleOptions": "with all style options", + "Demo": "Demo", + "SeeAllModules": "See All Modules", + "ABPCLIExplanation": "ABP CLI is a command line tool to perform common development tasks for ABP-based solutions.", + "ABPSuiteEasilyCURD": "ABP Suite is a tool which allows you to easily create CRUD pages", + "WeAreHereToHelp": "We are Here to Help", + "BrowseOrAskQuestion": "You can browse our help topics or search in the frequently asked questions, or you can ask us a question by using the contact form.", + "SearchQuestionPlaceholder": "Search in frequently asked questions", + "AbpCommercialMetaDescription": "A comprehensive web development platform on ABP Framework with pre-built modules, startup templates, rapid dev tools, pro UI themes & premium support.", + "WhatAreDifferencesThanABPFrameworkExplanation": "

ABP framework is a modular, themeable, microservice compatible application development framework for ASP.NET Core. It provides a complete architecture and a strong infrastructure to let you focus on your own business code rather than repeating yourself for every new project. It is based on the best practices of software development and popular tools you already know.

ABP framework is completely free, open source and community-driven. It also provides a free theme and some pre-built modules (e.g. identity management and tenant management).

", + "VisitTheFrameworkVSCommercialDocument": "Visit the following link for more information {1} ", + "Professional": "Professional", + "UIThemes": "UI Themes", + "EnterpriseModules": "Enterprise ready, feature-rich, pre-built Application Modules (e.g. Identity Server management, SaaS management, language management)", + "ToolingToSupport": "Tooling to support your development productivity (e.g. ABP Suite)", + "PremiumSupportLink": "Premium Support", + "ABPCommercialSolutionExplanation": "When you create a new application, you get a Visual Studio solution (a startup template) based on your preferences. The downloaded solution has commercial modules and themes already installed and configured for you. You can remove a pre-installed module or add another module if you like. All modules and themes use NuGet/NPM packages by default.", + "StartDevelopWithTutorials": "The downloaded solution is well architected and documented. You can start developing your own business code based on it following the tutorials.", + "HowManyProductsExplanation": "You can create as many projects as you want during your active license period; there is no limit! After your license expires, you cannot create new projects, but you can continue to develop the projects you have downloaded and deploy them to an unlimited count of servers.", + "ChangingLicenseType": "Can I upgrade my license type later?", + "LicenseExtendUpgradeDiffExplanation": "Extending: By extending/renewing your license, you will continue to get premium support and get major or minor updates for the modules and themes. Besides, you will be able to continue creating new projects. And you will still be able to use ABP Suite, which speeds up your development. When you extend your license, 1 year is added to your license expiry date.
Upgrading: By upgrading your license, you will be promoted to a higher license plan, which will allow you to get additional benefits. Check out the license comparison table to see the differences between the license plans. On the other hand, when you upgrade, your license expiry date will not change! To extend your license end date, you need to extend your license.", + "LicenseRenewalCost": "What is the license renewal cost after 1 year?", + "LicenseRenewalCostExplanation": "The renewal (extend) price of the standard Team License is ${0}, standard Business License is ${1} and standard Enterprise License is ${2}. If you are already a customer, log into your account to review the current renewal pricing.", + "HowDoIRenewMyLicense": "How do I renew my license?", + "HowDoIRenewMyLicenseExplanation": "You can renew your license by navigating to the organization management page. In order to take advantage of our discounted Early Renewal rates, ensure you renew before your license expires. Don't worry about not knowing when your Early Renewal opportunity closes; you'll receive 3 reminder e-mails before your subscription expires. We'll send them 30 days, 7 days and 1 day before expiration.", + "IsSourceCodeIncluded": "Does my license include the source code of the pro modules and themes?", + "IsSourceCodeIncludedExplanation1": "Depends on the license type you've purchased:", + "IsSourceCodeIncludedExplanation2": "Team: Your solution uses the modules and themes as NuGet and NPM packages. It doesn't include their source code. This way, you can easily upgrade these modules and themes whenever a new version is available. However, you can not get the source code of these modules and themes.", + "IsSourceCodeIncludedExplanation3": "Business/Enterprise: In addition to the Team license, you are able to download the source code of any module or theme you need. You can even remove the NuGet/NPM package references for a particular module and add its source code directly to your solution to fully change it.", + "IsSourceCodeIncludedExplanation4": "

Including the source code of a module to your solution gives you the maximum freedom to customize that module. However, it will then not be possible to automatically upgrade the module when a new version is released.

None of the licenses include the ABP Suite and ABP Studio source code, which is external tools that generates code for you and assists your development.

Check out the Plans & Pricing page for other differences between the license types.

", + "ChangingDevelopers": "Can I change the registered developers of my organization in the future?", + "ChangingDevelopersExplanation": "In addition to adding new developers to your license, you can also change the existing developers (you can remove a developer and add a new one to the same seat) without any additional cost.", + "WhatHappensWhenLicenseEnds": "What happens when my license period ends?", + "discountForYears": "{0}% discount for {1} year(s)", + "WhenShouldIRenewMyLicense": "When should I renew my license?", + "WhenShouldIRenewMyLicenseExplanation": "If you renew your license within {3} days after your license expires, the following discounts will be applied: Team License {0}; Business License {1}; Enterprise License {2}. However, if you renew your license after {3} days since the expiry date of your license, the renewal price will be the same as the license purchase price, and there will be no discount on your renewal.", + "TrialPlan": "Do you have a trial plan?", + "DoYouAcceptBankWireTransfer": "Do you accept bank wire transfers?", + "DoYouAcceptBankWireTransferExplanation": "Yes, we accept bank wire transfers.
After sending the license fee via bank transfer, send your receipt and requested license type to accounting@volosoft.com.
Our international bank account information:", + "HowToUpgrade": "How to upgrade existing applications when a new version is available?", + "DatabaseSupport": "Which database systems are supported?", + "UISupport": "Which UI frameworks are supported?", + "Supported": "Supported", + "UISupportExplanation": "ABP Framework itself is UI framework agnostic and can work with any UI framework. However, startup templates, module UIs and themes were not implemented for all UI frameworks. Check out the Getting Started document for the up-to-date list of UI options.", + "MicroserviceSupport": "Does it support the microservice architecture?", + "WhereCanIDownloadSourceCode": "Where can I download the source-code?", + "HowCanIUpgradeMyProjectToCommercialTemplate": "How can I upgrade my open-source project to the commercial PRO templates?", + "HowCanIUpgradeMyProjectToCommercialExplanation": "You can check out our documentation at Migrating from open source templates to upgrade your open-source projects to the paid PRO templates.", + "ComputerLimitation": "How many computers can a developer login when developing ABP?", + "ComputerLimitationExplanation": "We specifically permit {0} computers per individual/licensed developer. Whenever there is a need for a developer to develop ABP based products on a third machine, an e-mail should be sent to license@abp.io explaining the situation, and we will then make the appropriate allocation in our system.", + "RefundPolicy": "Do you have a refund policy?", + "RefundPolicyExplanation": "You can request a refund within 30 days of your license purchase. The Business and Enterprise license types have source-code download options; therefore, we provide a 60% refund within 30 days for Business and Enterprise licenses. In addition, no refunds are made for renewals and second license purchases.", + "HowCanIRefundVat": "How can I refund VAT?", + "HowCanIRefundVatExplanation1": "If you made the payment using 2Checkout, you can refund VAT via your 2Checkout account:", + "HowCanIRefundVatExplanation2": "Log in to your 2Checkout account", + "HowCanIRefundVatExplanation3": "Find the appropriate order and press \"Refund Belated VAT\" (enter your VAT ID)", + "HowCanIGetMyInvoice": "How can I get my invoice?", + "HowCanIGetMyInvoiceExplanation": "There are 2 payment gateways for purchasing a license: Iyzico and 2Checkout. If you purchase your license through the 2Checkout gateway, it sends the PDF invoice to your email address; check out 2Checkout invoicing. If you purchase through the Iyzico gateway, with a custom purchase link or via a bank wire transfer, we will prepare and send your invoice. You can request or download your invoice from the organization management page. Before contacting us for the invoice, check your organization management page!", + "Forum": "Forum", + "PrivateTicket": "Private Ticket", + "PrivateTicketExplanation": "Enterprise License also includes a private support with e-mail and ticket system.", + "AbpSuiteExplanation1": "ABP Suite allows you to build web pages in a matter of minutes. It's a .NET Core Global tool that can be installed from the command line.", + "AbpSuiteExplanation2": "It can create a new ABP solution and generate CRUD pages from the database to the front-end. For technical overview see the document", + "FastEasy": "Fast & Easy", + "AbpSuiteExplanation3": "ABP Suite allows you to easily create CRUD pages. You just need to define your entity and its properties and let the rest go to ABP Suite for you! ABP Suite generates all the necessary code for your CRUD page in a few seconds. It supports Angular, MVC and Blazor user interfaces.", + "RichOptions": "Rich Options", + "AbpSuiteExplanation4": "ABP Suite supports multiple UI options like Razor Pages and Angular. It also supports multiple databases like MongoDB and all databases supported by EntityFramework Core (MS SQL Server, Oracle, MySql, PostgreSQL, and other providers...).", + "AbpSuiteExplanation5": "The good thing is that you don't have to worry about those options. ABP Suite understands your project type and generates the code for your project and places the generated code in the correct place in your project.", + "AbpSuiteExplanation6": "ABP Suite generates the source code for Entity, Repository, Application Service, Code First Migration, JavaScript/TypeScript and CSHTML/HTML and necessary Interfaces as well. ABP Suite also generates the code according to the Best Practices of software development, so you don't have to worry about the generated code's quality.", + "AbpSuiteExplanation7": "Since you have the source code of the building blocks of the generated CRUD page in the correct application layers, you can easily modify the source code and inject your custom/business logic to the generated code.", + "CrossPlatform": "Cross Platform", + "AbpSuiteExplanation8": "ABP Suite is built with .NET Core, and it is cross-platform. It runs as a web application on your local computer. You can run it on Windows, Mac and Linux", + "OtherFeatures": "Other Features", + "OtherFeatures1": "Updates NuGet and NPM packages on your solution easily.", + "OtherFeatures2": "Regenerates already generated pages from scratch.", + "OtherFeatures3": "Creates new solutions", + "ThanksForCreatingProject": "Your project has been successfully created!", + "HotToRunSolution": "How to run your solution?", + "HotToRunSolutionExplanation": "Check out the getting started document to learn how to configure and run your solution.", + "GettingStarted": "Getting Started", + "WebAppDevTutorialExplanation": "Check out the web application development tutorial document for a step-by-step development sample.", + "Document": "Document", + "UsingABPSuiteToCURD": "Using ABP Suite for CRUD Page Generation & Tooling", + "SeeABPSuiteDocument": "Check out the ABP Suite document to learn the usage of ABP Suite.", + "SeeModulesDocument": "See the modules page for a list of all the PRO modules.", + "Pricing": "Pricing", + "PricingExplanation": "Choose the features and functionality your business needs today. Easily upgrade as your business grows.", + "Team": "Team", + "Business": "Business", + "Enterprise": "Enterprise", + "Custom": "Custom", + "IncludedDeveloperLicenses": "Included developer licenses", + "CustomLicenceOrAdditionalServices": "Need custom license or additional services?", + "CustomOrVolumeLicense": "Custom or volume license", + "LiveTrainingSupport": "Live training & support", + "AndMore": "and more", + "AdditionalDeveloperLicense": "Additional developer license", + "ProjectCount": "Project count", + "AllProModules": "All pro modules", + "AllProThemes": "All pro themes", + "AllProStartupTemplates": "All pro startup templates", + "SourceCodeOfAllModules": "Source code of all modules", + "SourceCodeOfAllThemes": "Source code of all themes", + "PerpetualLicense": "Perpetual license", + "UnlimitedServerDeployment": "Unlimited server deployment", + "YearUpgrade": "1 year upgrade", + "YearPremiumForumSupport": "1-year premium forum support", + "ForumSupportIncidentCountYear": "Forum support incident count/year", + "PrivateTicketEmailSupport": "Private ticket & email support", + "BuyNow": "Buy Now", + "PayViaAmexCard": "How can I pay via my AMEX card?", + "PayViaAmexCardDescription": "The default payment gateway 'Iyzico' may decline some AMEX credit cards due to security measures. In this case, you can pay through the alternative payment gateway '2Checkout'.", + "InvalidReCaptchaErrorMessage": "There was an error verifying reCAPTCHA. Please try again.", + "YourCompanyName": "Your company name", + "FirstName": "First name", + "LastName": "Last name", + "YourFirstName": "Your first name", + "YourLastName": "Your last name", + "SpecialOffer": "Special Offer", + "SpecialOfferMessage": "Hurry up! Prices are valid for a limited time.", + "DiscountRequest": "Discount Request", + "DiscountRequestDescribeCustomerQuestion": "Which of the following describes you?", + "DiscountRequestStudentEmailMessage": "Email Address must contain 'edu'.", + "DiscountRequestDeveloperCount": "How many developers are you?", + "DiscountRequestDeveloperCountExceedMessage": "We don't provide discounted licenses for companies that have over {0} developers.", + "DiscountRequestOrganizationName": "Company/organization/school name", + "Website": "Website", + "GithubUsername": "GitHub username", + "PhoneNumber": "Phone number", + "DescribeABPCommercialUsage": "Describe the project you are planning to develop based on APB Commercial", + "DiscountRequestCertifyInformationMessage": "I certify that all information is true and correct.", + "DiscountRequestReceived": "We have received your discount request.", + "DiscountRequestStatusMessage": "We will respond to you after checking the information you have provided.", + "MVCOrRazorPages": "MVC (Razor Pages)", + "Angular": "Angular", + "Blazor": "Blazor", + "New": "New", + "MongoDB": "MongoDB", + "EBookDDD": "E-Book Domain Driven Design", + "Page": "Page", + "DoYouAgreePrivacyPolicy": "I agree to the Terms & Conditions and Privacy Policy.", + "VolosoftMarketingInformationMessage": "I would like information, tips, and offers about Solutions for Businesses and Organizations and other Volosoft products and services.", + "VolosoftSharingInformationMessage": "I would like Volosoft to share my information with select partners so I can receive relevant information about their products and services.", + "StartFree": "Start free", + "FreeTrial": "Free Trial", + "AcceptsMarketingCommunications": " Yes, I`d like to receive ABP related marketing news.", + "PurposeOfUsage": "Purpose of usage", + "Choose": "- Choose -", + "CompanyOrganizationName": "Company / Organization name", + "StartTrial": "Start My Free Trial", + "ContactUsQuestions": "Contact us if you have any questions", + "TrialActivatedWarning": "A user is entitled to have only 1 free trial period. You already used your trial period.", + "ActivationRequirement": "You are last one step away from starting your trial.
After checking your information, we will activate your license. Once your license is activated, we will send an email to {0}. Don't worry, this process won't take long!", + "SaveAndDownload": "Save And Download", + "CompanyNameValidationMessage": "Company name is too long!", + "AddressValidationMessage": "Address is too long!", + "TaxNoValidationMessage": "TAX/VAT No is too long!", + "NotesValidationMessage": "Notes field is too long!", + "CheckYourBillingInfo": "You can create your invoice only once! Check your billing information before creating your invoice.", + "StartYourFreeTrial": "Start your free trial", + "TrialLicenseModelInvalidErrorMessage": "One of the following fields is invalid: Country Name, Company Size, Industry or Purpose Of Usage.", + "Trial": "Trial", + "Purchased": "Purchased", + "PurchaseNow": "Purchase Now", + "PurchaseTrialLicenseMessage": "Your license expiration date is {0}.
If you want to continue using the projects you created during your free trial period, you need to change the license keys in your appsettings.secrets.json files. Here is your license key:", + "TrialLicenseExpireMessage": "You are using the trial license and your trial license will expire on {0}.", + "TryForFree": "Try For Free", + "TrialLicenseExpiredInfo": "Your trial license period has expired!", + "DowngradeLicensePlan": "Can I downgrade to a lower license plan in the future?", + "LicenseTransfer": "Can a license be transferred from one developer to another?", + "UserOwnerDescription": "The 'Owner' of the organization is the admin of this account. He/she manages the organization by purchasing licenses and allocating developers. An 'Owner' cannot write code in the ABP projects, cannot download the ABP sample projects, and cannot ask questions on the support website. If you want to do all these, you have to add yourself as a developer too.", + "UserDeveloperDescription": "The 'Developers' can write code in the ABP projects, download the ABP sample projects, and ask questions on the support website. On the other hand, the 'Developers' cannot manage this organization.", + "RemoveCurrentUserFromOrganizationWarningMessage": "You are removing yourself from your own organization. You will no longer be able to manage this organization, do you confirm?", + "RenewExistingOrganizationOrCreateNewOneMessage": "You can renew the license of your organization(s) by clicking the below \"Extend Now\" button(s) and thus you can extend the license expiration date by 1 year. If you continue to checkout, you will have a new organization. Do you want to continue with a new organization?", + "PurchaseTrialOrganizationOrCreateNewOneMessage": "You have a trial license. To purchase your trial license click the Purchase Now button. If you continue to checkout, you will have a new organization. Do you want to continue with a new organization?", + "ExtendNow": "Extend / Renew", + "CreateNewOrganization": "Create a new organization", + "RenewLicenseEarly": "If I renew my license early, will I get the full year?", + "RenewLicenseEarylExplanation": "When you renew your license before your license expiration date, 1 year will be added to your license expiration date. For example, if your license expires on {0}-06-06 and you renew it on {0}-01-01, your new license expiration date will be {1}-06-06.", + "OpenSourceWebApplication": "Open source web application", + "CompleteWebDevelopment": "A complete web development", + "ABPFrameworkDescription": "ABP Framework is a complete infrastructure to create modern web applications by following the best practices of software development and conventions.", + "CommunityDescription": "Share your experiences with the ABP Framework!", + "PreBuiltApplication": "Pre-Built Application", + "DatabaseProviders": "Database Providers", + "UIFrameworks": "UI Frameworks", + "UsefulLinks": "Useful Links", + "Platform": "Platform", + "MicroserviceArchitectureExplanation": "This is a complete solution architecture that consists of multiple applications, API gateways, microservices and databases to build a scalable microservice solution with the latest technologies.", + "BusinessLogic": "Business Logic", + "DataAccessLayer": "Data Access Layer", + "Monolith": "Monolith", + "ModularArchitectureExplanation": "This startup template provides a layered, modular and DDD-based solution architecture to build a clean and maintainable codebase.", + "Bs5Compatible": "Bootstrap 5 compatible professional theme, perfect for your admin website.", + "LeptonXTheme": "LeptonX Theme", + "LeptonXDark": "LeptonX Dark", + "LeptonXLight": "LeptonX Light", + "LeptonXSemiDark": "LeptonX Semi-Dark", + "BuiltOnBs5Library": "Built on Bootstrap 5 library", + "FullyCompatibleWithBs5": "100% compatible with Bootstrap 5 HTML structure and CSS classes", + "ResponsiveAndMobileCompatible": "Responsive, mobile-compatible, RTL support", + "ProvidesStylesForDatatables": "Provides styles for Datatables", + "MultipleLayoutOptions": "Multiple layout options", + "EasilyInstallAndUpgrade": "Easily install and upgrade", + "SupportForum": "Support Forum", + "TrustedBy": "Trusted By", + "OurPricing": "Our Pricing", + "Plans": "Plans", + "NameSurname": "Name Surname", + "LicenceType": "Licence Type", + "LicenseDiscountWarning": "THIS DISCOUNT PAGE USES DEFAULT DISCOUNT CODE AND FOR VOLOSOFT DEVELOPERS. PURCHASE LINKS BELOW DO NOT WORK.", + "DiscountedLicenseExplanation": "These license prices are for small startups, individual developers, students, non-profit organizations and projects!", + "General": "General", + "Development": "Development", + "Payment": "Payment", + "WatchExplainerVideo": "Let's Meet! Watch Explainer Video", + "LightDarkAndSemiDarkThemes": "Light, Dark and Semi-Dark", + "LeptonXThemeExplanation": "Lepton Theme can change your theme according to your system settings.", + "PRO": "PRO", + "YourAccountDetails": "Your Account Details", + "OrganizationName": "Organization Name", + "MicroserviceDescription": "Discover ABP's complete solution architecture featuring multiple applications, API gateways, micro services, and databases using the latest technologies.", + "AddDevelopers": "Add Developers", + "StartDevelopment": "Start Development", + "ModularMonolithDescription": "Explore this ABP template designed for a layered, modular, and DDD-based solution architecture, helping you build a clean, maintainable codebase with ease.", + "CreateAndRunApplicationUsingStartupTemplate": "Learn how to create and run a new web application using the ABP startup template.", + "CommunityDescription2": "abp.io/community is a place where people can share ABP-related articles. Search for articles, tutorials, code samples, case studies and meet people in the same lane as you.", + "UseABPSuiteExplanation": "Use ABP Suite to download the source-code of the modules and themes.", + "ManageModulesWithSuite": "You can also manage your ABP modules with Suite.", + "LearnHowToInstallSuite": "Learn how to install and use ABP Suite.", + "SeeLess": "See Less", + "LayeredSolutionStructure": "Layered Solution Structure", + "LayeredSolutionStructureExplanation": "The solution is layered based on Domain Driven Design principles and patterns to isolate your business logic from the infrastructure and integrations and to maximize code maintainability and reusability. ABP Framework already provides abstractions, base classes and guides to truly implement DDD for your application.", + "SimpleMonolithDescription": "This ABP template is a simple monolith application that is designed to be a good starting point for your small to medium-sized projects.", + "MultipleUIOptionsExplanation": "We love different ways to create the UI. This startup solution provides three different UI framework options for your business application.", + "MultipleDatabaseOptions": "Multiple Database Options", + "MultipleDatabaseOptionsExplanation": "You have two database provider options (in addition to using both in a single application). Use Entity Framework Core to work with any relational database and optionally use Dapper when you need to write low-level queries for better performance. MongoDB is another option if you need to use a document-based NoSQL database. While these providers are well-integrated, abstracted and pre-configured, you can actually interact with any database system that you can use with .NET.", + "ModularArchitectureExplanation2": "Modularity is a first-class citizen in the ABP platform. All the application functionalities are split into well-isolated optional modules. The startup solution already comes with the fundamental ABP modules pre-installed. You can also create your own modules to build a modular system for your own application.", + "MultiTenancyForSaasBusiness": "Multi-tenancy for your SaaS Business", + "MultiTenancyForSaasBusinessExplanation": "The solution has been fully configured to support multi-tenant systems. It allows the tenants to share or have their own databases with on-the-fly database creation and migration system.", + "MicroserviceStartupSolution": "Microservice Startup Solution", + "MicroserviceArchitectureExplanation2": "You can get it for your next microservice system to take advantage of the pre-built base solution and distilled experience.", + "PreIntegratedTools": "Pre-integrated to Popular Tools", + "PreIntegratedToolsExplanation": "The solution is already integrated into the industry-standard tools and technologies, while you can always change them and integrate with your favorite tools.", + "SingleSignOnAuthenticationServer": "Single Sign-on Authentication Server", + "SingleSignOnAuthenticationServerExplanation": "The solution has an authentication server application that is used by the other applications as a single sign-on server with the API access management features. It is based on the Openiddict implementation.", + "WebAppsWithGateways": "2 Web Apps with 2 API Gateways", + "WebAppsWithGatewaysExplanation": "The solution contains two web applications, each one has a dedicated API gateway (BFF - Backend For Frontend pattern).", + "BackOfficeApplication": "Back Office Application", + "BackOfficeApplicationExplanation": "The actual web application of your system, with multiple UI framework options. You can create any kind of business application.", + "LandingWebsite": "Landing Website", + "LandingWebsiteExplanation": "A generic landing/public website that can be used for several purposes, like introducing your company, selling your products, etc.", + "ABPFrameworkEBook": "Mastering ABP Framework e-book", + "MasteringAbpFrameworkEBookDescription": "Included within your commercial license", + "LicenseTypeNotCorrect": "The license type is not correct!", + "Trainings": "Trainings", + "ChooseTrainingPlaceholder": "Choose the training...", + "DoYouNeedTrainings": "Do you need one of these trainings?", + "DoYouNeedTraining": "Do you need {0} training?", + "GetInTouchUs": "Get in touch with us", + "ForMoreInformationClickHere": "For more information, click here.", + "ForMoreInformationClickHereByClass": "For more information, click here.", + "IsGetOnboardingTraining": "Would you like to get onboarding & web application development training?", + "OnboardingWebApplicationDevelopmentTrainingMessage": "To schedule your training calendar, please contact {0} after creating the organization", + "CustomPurchaseMessage": "For the next step, click {0} to contact us.", + "Note": "Note", + "AdditionalNote": "Additional Note", + "OnboardingTrainingFaqTitle": "Do you have ABP onboarding training?", + "OnboardingTrainingFaqExplanation": "Yes, we have ABP Training Services to help you get your ABP project started fast. You will learn about ABP from an ABP core team member, and you will get the skills to begin your ABP project. In the onboarding training, we will explain how to set up your development environment, install the required tools, and create a fully functional CRUD page. The training will be live, and the Zoom application will be used, we are open to using other online meeting platforms. The language of the training will be English. You can also ask your questions about ABP during the sessions. A convenient time and date will be planned for both parties. For further information visit training page.", + "AddBasket": "Add to Basket", + "SendTrainingRequest": "Send Training Request", + "OnlyEnglishVersionOfThisDocumentIsTheRecentAndValid": "* The English version of this document is the most up-to-date, and the English version will prevail in any dispute.", + "Pricing_Page_Title": "ABP Pricing | Flexible Plans for Development Needs", + "Pricing_Page_Description": "See the licensing plans of the ABP, including free tiers. If standard plans don't fit, ask for a quote. Don't forget; we have a 30-day money-back guarantee!", + "Pricing_Page_HurryUp": "Hurry Up!", + "Pricing_Page_BuyLicense": "Buy a license at 2021 prices until January 16!", + "Pricing_Page_ValidForExistingCustomers": "Also valid for existing customers and license renewals.", + "Pricing_Page_Hint1": "The license price includes a certain number of developer seats. If you have more developers, you can always purchase additional seats.", + "Pricing_Page_Hint2": "You can purchase more developer licenses now or in the future. Licenses are seat-based, so you can transfer a seat from one developer to another.", + "Pricing_Page_Hint3": "You can develop an unlimited count of different products with your license.", + "Pricing_Page_Hint4": "ABP Suite is a tool to assist your development to improve your productivity. It supports generating CRUD pages and creating new projects.", + "Pricing_Page_Hint5": "You can use all the pre-built modules in your applications.", + "Pricing_Page_Hint6": "You can use all the pre-built themes in your applications.", + "Pricing_Page_Hint7": "A startup template is a Visual Studio solution to make you jump-start your project. All fundamental modules are added and pre-configured for you.", + "Pricing_Page_Hint8": "Mastering ABP Framework e-book explains how to implement .NET solutions with best practices. It is sold on Amazon.com, and you can download the book for free with your license.", + "Pricing_Page_Hint9": "You can download the source-code of any module. You may want to add the source code to your solution to make radical changes or just keep it for yourself for security reasons.", + "Pricing_Page_Hint10": "Licenses are for a lifetime. That means you can continue to develop your application forever. Accessing to the latest version and getting support are granted within the license period (1 year unless you renew it).", + "Pricing_Page_Hint11": "No restrictions on deployment! You can deploy to as many servers as you want, including the cloud services or on-premises.", + "Pricing_Page_Hint12": "You can update the modules, themes and tools to the latest version within your active license period. After your license expires, you need to renew it to continue to get updates for bug fixes, new features and enhancements.", + "Pricing_Page_Hint13": "You can get the premium support for one year (you can renew your license to extend it).", + "Pricing_Page_Hint14": "Team and Business licenses have incident/question count limit. If you buy additional developer licenses, your incident limit increases by {0} (for the Team License) or {1} (for the Business License) per developer.", + "Pricing_Page_Hint15": "Only Enterprise License includes private support. You can send an e-mail directly to the ABP Team or ask questions on abp.io/support/questions with a private ticket option. The private tickets are not visible to the public.", + "Pricing_Page_Hint16": "You can download the source-code of all ABP themes. You may want to add the source code to your solution to make radical changes or just keep it for yourself for security reasons.", + "Pricing_Page_Testimonial_1": "ABP Commercial allowed SC Ventures to deliver a bank-grade multi-tenant silo-database SaaS platform in 9 months to support the accounts receivable / accounts payable supply chain financing of significant value invoices from multiple integrated anchors. The modularity of ABP made it possible for the team to deliver in record time, pass all VAPT, and deploy the containerized microservices stack via full CI/CD and pipelines into production.", + "Pricing_Page_Testimonial_2": "We see the value of using ABP Commercial to reduce the overhead of custom development projects. The team is able to unify the code pattern in different project streams. We see more potential in the framework for us to build new features faster than before. We trust we will be constantly seeing the value of leveraging ABP Commercial.", + "Pricing_Page_Testimonial_3": "We love ABP. We don't have to write everything from scratch. We start from out-of-the-box features and just focus on what we really need to write. Also, ABP is well-architected and the code is high quality with fewer bugs. If we had to write everything we needed on our own, we might have to spend years. One more thing we like is that the new version, issue fixing, or improvement comes out very soon every other week. We don't wait too long.", + "Pricing_Page_Testimonial_4": "ABP Commercial is a fantastic product would recommend. Commercial products to market for our customers in a single configurable platform. The jump starts that the framework and tooling provide any team is worth every cent. ABP Commercial was the best fit for our needs.", + "Pricing_Page_Testimonial_5": "ABP Framework is not only a framework, but it is also a guide for project development/management, because it provides DDD, GenericRepository, DI, Microservice, and Modularity training. Even if you are not going to use the framework itself, you can develop yourself with abp.io/docs which is well and professionally prepared (OpenIddict, Redis, Quartz etc.). Because many things are pre-built, it shortens project development time significantly (Such as login page, exception handling, data filtering, seeding, audit logging, localization, auto API controller etc.). As an example from our application, I have used Local Event Bus for stock control. So, I am able to manage order movements by writing stock handler. It is wonderful not to lose time for CreationTime, CreatorId. They are being filled automatically.", + "Pricing_Page_Testimonial_6": "ABP Framework is a good framework but it needs time to understand the different layers, classes, and libraries it uses (especially ABP). I spent a lot of time reading the code base, but ABP Commercial saved us time in creating the project specialty entities (AR) and the repository linked to each of them. I liked also the approach used in ABP is very mature; we know is based on DDD and monolith.", + "Pricing_Page_Testimonial_7": "As a startup, we need to iterate quickly and spend minimal time on boilerplate and non-core features.\nOur engineers range from highly experienced to junior engineers, and we needed a common understanding and a way to share technical and domain knowledge, ABP allowed us to do this due to their great guides and documentation. \nThere are things we haven't had to worry about since they work out of the box with ABP. \nABP helped us streamline rapid prototyping and development, less than 4 weeks from feature inception to production. With all its premium features included in the license, ABP has given us, \"Startup in a Box\" on the Software Engineering Side.", + "Pricing_Page_Testimonial_8": "I would recommend ABP commercial to all those who want to expand the range of products available to their customers. It's fantastic when need to use a distributed enterprise environment (Angular, WPF, Win&Linux). In addition to their products, we love their support, which makes our job faster and easier. We already know that we have found a great partner for the future who will support us in expanding our business.", + "Pricing_Page_Testimonial_9": "We are a company of 2 employees that's been in business for over 20 years.\nIn terms of our experience with ABP Commercial, we were approached by a client who requested that we develop a new human resources application in a modern environment to replace their 25-year-old Access application. We decided to transition from a desktop solution to a web-based one.\n\nAt the time, we had very little knowledge of web applications and .NET, but we stumbled upon ABP Commercial, and with the help of ABP Framework, technical documentation, and ABP Suite, we were able to not only develop the application to the client's specifications but also successfully work within a .NET environment within a year.", + "AbpBookDownloadArea_ClaimYourEBook": "Claim your Mastering ABP Framework E-Book", + "AddMemberModal_Warning_1": "If the username you are trying to add doesn't exist in the system, please ask your team member to register on {0} and share the username of his/her account with you.", + "MyOrganizations_Detail_WelcomeMessage": "Welcome to your organization, {0}", + "MyOrganizations_Detail_OrganizationManagement": "Organization Management", + "OrganizationDisplayName": "Organization Display Name", + "MyOrganizations_Detail_EditDisplayName": "Edit Display Name", + "MyOrganizations_Detail_UpgradeYourLicense": "Upgrade your license", + "MyOrganizations_Detail_LicenseStartAndExpiryDate": "License Start Date - Expiry Date", + "MyOrganizations_Detail_OwnerRightInfo": "You are using {0} of your {1} owners rights.", + "MyOrganizations_Detail_CopyApiKey": "Copy the Key", + "MyOrganizations_Detail_ApiKeyDescription": "The API Key is the token of PRO packages hosted on {1}.", + "MyOrganizations_Detail_YourPrivateNugetSource": "Your private NuGet source is {0}", + "MyOrganizations_Detail_PrivateNugetSourceWarning": "This is automatically added as a feed to your NuGet.Config in your ABP solution. Do not share your private key with unauthorized users!", + "MyOrganizations_Detail_DeveloperSeatInfo": "You are using {0} of your {1} developer seats.", + "NeedMoreSeatsForYourTeam": "Need more seats for your team?", + "MyOrganizations_Detail_PricePerYear": "{0} / per year", + "MyOrganizations_Detail_PurchaseDeveloperSeats": "Purchase Developer Seats", + "Invoices": "Invoices", + "RequestInvoice": "Request Invoice", + "OrderNumber": "Order Number", + "Products": "Products", + "TotalPrice": "Total Price", + "ThereIsNoInvoice": "There is no invoice", + "MyOrganizations_Detail_PaymentProviderInfo": "If you have purchased your license through {0} gateway, it sends the PDF invoice to your email address, see {0} invoicing.", + "MyOrganizations_Detail_PayUInfo": "If you have purchased through the Iyzico gateway, click the \"Request Invoice\" button and fill in the billing information.", + "MyOrganizations_Detail_ConclusionInfo": "Your invoice request will be concluded within {0} business days.", + "ExtendYourLicense": "Extend your {0} License", + "PurchaseLicense": "Purchase {0} license", + "DownloadInvoiceModal_DownloadInvoice": "Download Invoice", + "DownloadInvoiceModal_SaveInformationOnlyOnce": "You can save your billing information only once.", + "InvoiceModal_EnterCompanyName": "Enter your legal company name...", + "InvoiceModal_EnterCompanyAddress": "Enter your legal company address...", + "InvoiceModal_EnterTaxNumber": "Enter your TAX/VAT number if available...", + "RequestInvoiceModal_EnterNotes": "Additional information for your invoice... This note will be written in the notes section of the invoice.", + "PrePayment_PayWithIyzico": "You will pay with Iyzico", + "ContinueToCheckout": "Continue to Checkout", + "PrePayment_IyzicoRedirectionInfo": "You will be redirected to Iyzico Payment Gateway to complete your purchase securely.", + "PrePayment_IyzicoAcceptVisaAndMasterCard": "Iyzico accepts Visa and MasterCard.", + "Purchase": "Purchase", + "AcceptTermsAndConditions": "I have read, understand and accept the privacy policy, terms & conditions and EULA.", + "AcceptTermsAndConditionsWarningMessage": "Please accept the privacy policy and terms & conditions", + "SelectGatewayToContinue": "Please select a Gateway to continue!", + "GatewaySelection_SelectGateway": "Select a Payment Gateway", + "GatewaySelection_RedirectionMessage": "Next, you will be redirected to the selected payment gateway's website for the transaction.", + "PaymentSucceed_PaymentSuccessMessage": "Payment Successful", + "PaymentSucceed_ThanksForPurchase": "Thank you for your purchase!", + "PaymentSucceed_CreateYourOrganization": "Create your organization", + "PaymentSucceed_AddMeAsDeveloper": "I'm a developer too, add me as a developer to my organization.", + "PaymentSucceed_CreateOrganization": "Create Organization", + "PaymentSucceed_OrganizationDescription": "An organization consists of developers and owners. The developers are users who write code on the ABP project and will benefit from the {1} website. The owners are users who allocate developer seats and manage licensing.", + "PaymentSucceed_ViewOrganization": "Click here to view organization", + "Purchase_TotalAnnualPrice": "TOTAL (annual fee)", + "Purchase_TrainingPrice": "Training Price", + "Purchase_OnboardingTraining": "Onboarding & Web Application Development Live Training", + "TotalDeveloperPrice": "Total Developer Price", + "Purchase_PricePerDeveloper": "{0} per developer", + "Purchase_IncludedDeveloperInfo": "{0} {1} included.", + "Purchase_LicenseExtraDeveloperPurchaseMessage": "The {0} License includes {1} developers. You can add additional developers.", + "StartupTemplates_Page_Title": "ABP Startup Templates", + "StartupTemplates_Page_Description": "Kickstart your new project with ABP's app templates! Leave all the infrastructure aspects to ABP and do what you do best; focus on your work
", + "MicroserviceStartupSolutionForDotnet": "Microservice Startup Solution for .NET", + "MonolithSolutionForDotnet": "Monolith (modular) Solution for .NET", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} hours", + "Trainings_Content": "Content of Training", + "Trial_Page_StartYourFreeTrial": "Start Your Free Trial", + "TrialLicenseFeatures": "You'll be able to benefit from all ABP commercial features", + "TrialPeriodDays": "You'll have a {0} days Team License", + "TrialForumSupportIncident": "You'll have {0} forum support incidents", + "Contact_Page_Title": "Contact Us", + "Contact_Page_Description": "Get in touch with us for licensing, additional services, inquiries or feedback about ABP. We're here to help!", + "Demo_Page_Title": "Create a Live Demo", + "CustomProjectDescription" : "Leverage ABP's expertise for custom project development. Get solutions built to your specifications with our modular architecture and cutting-edge technology", + "Demo_Page_Description": "Create a free live demo to experience the power of ABP with our interactive demos. Explore a variety of real-world web applications.", + "Discounted_Page_Title": "Discounted pricing", + "Discounted_Page_Description": "Choose the features and functionality your business needs today. Buy an commercial license and create unlimited projects", + "PortingExistingProjectsDescription": "Modernize your app with ABP's project porting services. Migrate your existing .NET projects to a robust, scalable architecture using the latest technologies", + "Faq_Page_Title": "Frequently Asked Questions", + "Faq_Page_Description": "Find answers to common questions about ABP in our FAQ section, covering various topics and issues.", + "Faq_Page_SwiftCode": "SWIFT Code", + "Faq_Page_BankName": "Bank Name", + "Faq_Page_AccountName": "Account Name", + "Faq_Page_AccountNumber": "Account Number", + "Faq_Page_Currency": "Currency", + "Faq_Page_VatNumber": "VAT number", + "Faq_Page_OtherCurrenciesInfo": "For other currencies, see all accounts", + "ProjectCreatedSuccess_Page_Title": "Your project created", + "ProjectCreatedSuccess_Page_Description": "Your ABP project created successfully!", + "Suite_Page_Title": "ABP Suite", + "Suite_Page_Description": "Meet ABP Suite, a rapid application development tool that increases productivity and efficiency. Create CRUD pages in minutes!", + "Themes_Page_Title": "ABP Themes", + "Themes_Page_Description": "Appearance matters! We present to you LeptonX Theme, a modern, customizable, flexible theme that creates a unique user experience.", + "Tools_Page_Title": "ABP Tools", + "Tools_Page_Description": "Explore the tool kits provided by ABP that enhance development productivity and streamline your development.", + "DeveloperPrice": "Developer Price", + "AdditionalDeveloperPaymentInfoSection_AdditionalDevelopers": "{0} developers", + "LicenseRemainingDays": "for {0} days", + "ExtendPaymentInfoSection_Description": "By extending/renewing your license, you will continue to get premium support. You will also be able to get major or minor updates for modules and themes. You will be able to continue creating new projects. And you will still be able to use ABP Suite which speeds up your development.", + "LicenseRenewalPrice": "License renewal price", + "LicensePrice": "License Price", + "TrialLicensePaymentInfoSection_Description": "Purchase license: By purchasing a license, you will continue to get premium support. You will also be able to get major or minor updates for modules and themes. You will be able to continue creating new projects. And you will still be able to use ABP Suite which speeds up your development.
See the license comparison table to check the differences between the license types.", + "SelectTargetLicense": "Select Target License", + "UpgradePaymentInfoSection_ExtendMyLicenseForOneYear": "Yes, extend my license expiration date for 1 year.", + "UpgradePaymentInfoSection_WantToExtendLicense": "Do you want to extend your license for 1 more year?", + "UpgradePaymentInfoSection_UpgradingWillNotExtendLicense": "Upgrading will not extend your license expiration date!", + "UpgradePaymentInfoSection_LicenseUpgradeDescription": "By upgrading your license, you will be promoted to a higher license type, which will allow you to get additional benefits. See the license comparison table to check the differences between the license types.", + "Welcome_Page_UseSameCredentialForCommercialWebsites": "Use the same credentials for both abp.io and abp.io/support/questions.", + "WatchCrudPagesVideo": "Watch the \"Creating CRUD Pages with ABP Suite\" Video!", + "WatchGeneratingFromDatabaseVideo": "Watch the \"ABP Suite: Generating CRUD Pages From Existing Database Tables\" Video!", + "WatchTakeCloserLookVideo": "Watch the \"Take a closer look at the code generation: ABP Suite\" Video!", + "ConfirmedEmailAddressRequiredToStartTrial": "You should have a confirmed email address in order to start a trial license.", + "EmailVerificationMailNotSent": "Email verification mail couldn't send.", + "GetConfirmationEmail": "Click here to get a verification email if you haven't got it before.", + "WhichLicenseTypeYouAreInterestedIn": "Which license type you are interested in?", + "DontTakeOurWordForIt": "Don't take our word for it...", + "BlazoriseLicense": "Do we need to buy a Blazorise license?", + "ExtendPaymentInfoSection_DeveloperPrice": "{0}x Additional Developer(s)", + "ExtendPaymentInfoSection_DiscountRate": "Discount {0}%", + "TotalNetPrice": "Total Net Price", + "EFCore": "Entity Framework Core", + "All": "All", + "Mvc": "MVC", + "DataBaseProvider": "Data Provider", + "UIFramework": "UI Framework", + "LeptonXThemeForDashboard": "LeptonX Theme for Your Admin Dashboard by", + "AbpPlatform": "ABP Platform", + "YouDeserveGoodUXUI": "You deserve a good UI and a better UX. LeptonX Theme by ABP is here to serve it.", + "ViewLiveDemo": "View Live Theme Demo", + "GetLeptonX": "Get LeptonX Now", + "SeeLeptonXDocumentation": "See LeptonX Documentation", + "SeeLeptonDocumentation": "See Lepton Documentation", + "SimplifiedMenu": "Simplified menu", + "SimplifiedMenuDescription": "You can easily find the page you are looking for by filtering the menu", + "YourFavoritePages": "Your favorite pages at your reach", + "YourFavoritePagesDescription": "Easily add or remove the page from favorites by clicking the star icon in the upper right corner of the page.", + "BreadCrumbs": "Breadcrumb for seamless switching", + "BreadCrumbsDescription": "Using Breadcrumb, you can switch to the pages at the same level with one click, even when the left menu is closed, and it works on tablet and mobile responsive!", + "YourMenu": "Your menu as you wish", + "YourMenuDescription": "Customize the directly clickable icons and dropdown boxes on the user menu as you wish. The user menu is completely customizable for your needs", + "RtlSupport": "RTL support for your language", + "RtlSupportDescription": "LeptonX Theme supports RTL for your language. The language options are in the settings menu for you to change the language.", + "YourColors": "Your colors on your admin dashboard UI", + "YourColorsDescription": "LeptonX Theme works according to your system preferences and has dashboard light theme, dashboard dark theme, and dashboard semi-dark theme options.", + "ArrangeContentWidth": "Easily arrange your content width", + "ArrangeContentWidthDescription": "Easily change the width of your content area.", + "LeptonXCompatibleWith": "LeptonX Theme is compatible with", + "MobileResponsiveTemplate": "Mobile Responsive Template", + "MobileResponsiveTemplateDescription1": "Access your LeptonX admin dashboard from any device you like.", + "MobileResponsiveTemplateDescription2": "It is designed for you to easily use in every device of yours. It is responsive on mobile devices and tablet sizes.", + "TopMenuLayoutOption": "Top Menu Layout Option", + "TopMenuLayoutOptionDescription1": "If you would like to set up your website with the same admin dashboard, it is possible to do it with LeptonX Theme!", + "TopMenuLayoutOptionDescription2": "Just try the LeptonX top menu layout to make it happen!", + "EasilyCustomizable": "Easily customizable for your brand colors", + "EasilyCustomizableDescription1": "You can customize the LeptonX theme using just a few SCSS variables. No overriding, no extra CSS load!", + "EasilyCustomizableDescription2": "With LeptonX, you can arrange your admin dashboard however you like.", + "IndependentLayout": "Independent layout and content area", + "IndependentLayoutDescription1": "LeptonX's layout infrastructure was designed completely separate from the content.", + "IndependentLayoutDescription2": "This means that you can freely design your project with a content structure other than Bootstrap if you want.", + "MostUsedLibraries": "Most used libraries integrated with LeptonX", + "MostUsedLibrariesDescription1": "LeptonX contains your most used libraries. It allows you to use libraries such as ApexCharts, DataTables, DropZone, FullCalender, JSTree, Select2, and Toastr effortlessly.", + "MostUsedLibrariesDescription2": "LeptonX also supports MVC Angular and Blazor-specific libraries.", + "CreateAndCustomize": "Create and customize the pages you need in seconds with LeptonX custom pages", + "CreateAndCustomizeDescription": "By using LeptonX Theme you also have access to many pre-made HTML pages. These include many pages such as login page, blog, FAQ, subscription list, invoice, pricing, and file management.", + "LeptonThemeForAdmin": "Lepton Theme for your admin dashboard by", + "LeptonThemeForAdminDescription": "Lepton Theme is still available and will be maintained. If you want to switch to LeptonX Theme as a Lepton Theme user, you can see the documentation to learn how-to.", + "LeptonCompatibleWith": "Lepton Theme is compatible with", + "BlackFridayDiscount": "Black Friday Discount", + "UpgradePaymentInfoSection_DeveloperPrice": "{0} for {1} additional developer(s)", + "Upgrade": "Upgrade", + "Renewal": "Renewal", + "UpgradePaymentInfoSection_LicensePrice": "{0} license", + "UpgradePaymentInfoSection_LicenseRenewalPrice": "License renewal", + "Total": "Total", + "SupportPolicyFaqTitle": "What is your support policy?", + "TotalDevelopers": "Total {0} developer(s)", + "CustomPurchaseExplanation": "Tailored to your specific needs", + "WhereDidYouHearAboutUs": "Where did you hear about us?", + "Twitter": "Twitter", + "Facebook": "Facebook", + "Youtube": "YouTube", + "Google": "Google", + "Github": "GitHub", + "Friend": " From a friend", + "Other": "Other", + "WhereDidYouHearAboutUs_explain": "Specify ...", + "DeletingMemberWarningMessage": "\"{0}\" will be removed from the developer list. If you want, you can assign this empty seat to another developer later.", + "AdditionalInfo": "If the developer seats are above your requirements, you can reduce them. You can email at info@abp.io to remove some of your developer seats. Clearing unused developer seats will reduce the license renewal cost. If you want, you can re-purchase additional developer seats within your active license period. Note that, since there are {0} developers in this license package, you cannot reduce this number.", + "LinkExpiredErrorMessage": "The link you are trying to access is expired.", + "ExpirationDate": "Expiration Date", + "SpringCampaignDiscount": "Spring Campaign Discount", + "WhyUseAbpIoPlatform": "Why should I use the ABP Platform instead of creating a new solution from scratch?", + "WhyUseAbpIoPlatformFaqExplanation": "See that page for a detailed explanation of why using ABP Platform has a significant advantage over doing everything yourself.", + "EulaPageTitle": "End User License Agreement (EULA)", + "EulaPageDescription": "Review ABP's End User License Agreement (EULA) to understand the terms and conditions to use our software, including rights, restrictions, obligations.", + "PrivacyPolicyPageTitle": "Privacy Policy | Cookie Policy", + "PrivacyPolicyPageDescription": "Discover how ABP ensures your privacy and protection. Learn about our commitment to safeguarding your information and the measures we take to secure data.", + "TermsConditionsPageTitle": "Terms and Conditions", + "TermsConditionsPageDescription": "Read ABP's Terms and Conditions to understand the rules, rights, and responsibilities for using our software and services.", + "TrainingsPageTitle": "Training Packages", + "ModulesPageTitle": "Modules | Pre-built Modules for .NET", + "ModulesPageDescription": "Discover ABP's pre-built modules designed for .NET applications. Enhance your development workflow with framework's customizable solutions.", + "Volo.AbpIo.Commercial:040001": "API Access Key is incorrect.", + "GetLepton": "Get Lepton Now", + "MyOrganizations_Detail_LicenseStartDate": "Start Date", + "MyOrganizations_Detail_LicenseExpiryDate": "Expiry Date", + "BlazoriseSupport": "How do I get the Blazorise license key and support from the Blazorise team?", + "BlazoriseSupportExplanation": "Follow the steps below to get support from the Blazorise team and get your Blazorise license key:", + "BlazoriseSupportExplanation1": "Sign up for a new account at blazorise.com/support/register with the same email address as your abp.io account. Leave the \"License Key\" entry blank. It must be the same email address as your email account on abp.io.", + "BlazoriseSupportExplanation2": "Verify your email address by checking your email box. Check your spam box if you don't see an email in your inbox!", + "BlazoriseSupportExplanation3": "Log into the Blazorise support website at blazorise.com/support/login.", + "BlazoriseSupportExplanation4": "If you have an active ABP Commercial License, you will also have a Blazorise PRO license. You can get your Blazorise license key at blazorise.com/support/user/manage/license.", + "BlazoriseSupportExplanation5": "You can post your questions on the support website and generate a product token for your application.", + "AbpLiveTrainingPackages": "ABP Live Training Packages", + "Releases": "Releases", + "ReleasesDescription": "This page contains detailed information about each release. You can see all the closed pull requests for a specific release. For overall milestone developments, you can check out the brief release notes page.", + "ReleaseDate": "Release Date", + "Labels": "Labels", + "PreRelease": "Pre-release", + "AllTypes": "All Types", + "Enhancement": "Enhancement", + "Bug": "Bug", + "Feature": "Feature", + "AllUIs": "All UIs", + "MVC": "MVC", + "BlazorServer": "Blazor Server", + "MAUI": "MAUI", + "HowItWorks_Page_Title": "How It Works?", + "HowItWorks_Page_Description": "Understand how ABP works with detailed documentation, including guides and best practices.", + "HowItWorks_Description_Title": "What’s possible with ASP.NET Core, easier with ABP!", + "HowItWorks_Description1": "ABP extends the .NET platform. So, anything you can do with a plain .NET solution is already possible with ABP. That makes it easy to get started with a low learning curve.", + "HowItWorks_Description2": "Once you start learning and using ABP features, developing your software will be much more enjoyable than ever.", + "HowItWorks_Description3": "This page basically explains how you use the ABP Platform as a .NET developer.", + "CreateANewSolution_Description1": "Everything starts by creating a new ABP integrated .NET solution.", + "StartWithStartupTemplates": "Start one of the pre-built startup solution templates", + "SimpleMonolithApplicationTemplate": "Simple monolith application template", + "LayeredApplicationTemplate": "Modular monolith application template", + "MicroserviceSolutionTemplate": "Microservice solution template", + "CreateEmptySolutionAndUseAbp": "Or create a new empty .NET solution and install ABP NuGet & NPM packages yourself.", + "CreatingSolutionWithMultipleOptions": "There are multiple UI and Database options while creating a new solution.", + "UIFrameworkOptions": "UI Framework Options", + "DotnetSolutionWithoutDependency": "Now, you have a regular .NET solution in your local computer that has no dependency on a cloud platform or external service.", + "CheckTheDocumentForDetails": "You can check the {1} document for details.", + "UIAndDatabaseIndependent": "ABP can work with any UI and any database provider supported by .NET. \n However, these UI and database providers are pre-integrated and well documented.", + "InstallAbpModules": "Install ABP Modules", + "DevelopYourSolution": "Develop Your Solution", + "DeployAnywhere": "Deploy Anywhere", + "InstallAbpModule_Description1": "ABP is a modular application development framework. Startup solution templates already come with the essential modules installed. \n But there are more application modules you may want to use in your solution.", + "InstallAbpModule_Description2": "Every module consists of a few NuGet and NPM packages and has an installation document. ABP Studio does most of the work automatically, then you manually configure or fine-tune the module based on its documentation.", + "DevelopYourSolution_Description1": "ABP’s infrastructure makes you focus on your own business code by automating the repetitive work and providing pre-built infrastructure and application features.", + "DevelopYourSolution_Description2": "In the following code block, you can see how the ABP seamlessly integrates into your code and automates the repetitive tasks for you.", + "DevelopYourSolution_Description3": "Even in this shortcode block, ABP does a lot of things for you.", + "DevelopYourSolution_Description4": "It provides base classes to apply conventions, like \n dependency injection. Generic \n repository services provide a convenient \n way to interact with the database. Declarative \n authorization works with a fine-tuned permission system.", + "DevelopYourSolution_Description5": "ABP completely automates \n unit of work (for database connection and transaction management), \n exception handling, \n validation\n and audit logging. It provides many more building blocks to simplify your daily development tasks and focus on your own code while creating production-ready \n applications.", + "DevelopYourSolution_Description6": "You can imagine how much that code block can be long and complicated if you would do it all manually.", + "SuiteCrudGenerationInFewSeconds": "In addition to hand coding your solution, you can create fully working advanced CRUD pages in a few minutes using the ABP Suite tooling. It generates the code into your solution, so you can fine-tune it based on your custom requirements.", + "DeployAnywhere_Description1": "At the end of the day, you have a pure .NET solution. You can deploy your solution to your own server, to a cloud platform, to Kubernetes or anywhere you want. You can deploy to as many servers as you want. ABP is a deployment environment agnostic tool.", + "ExpertiseAbpFramework": "Expertise ABP", + "ExpertiseAbpFramework_Description1": "Want to go beyond basics and get expertise with the ABP Platform?", + "FreeDownload": "Free Download", + "HavingTrouble": "Having Trouble?", + "HavingTrouble_Description1": "Do you have problems with developing your solution? We are here! Use the ABP Support platform \n or send an email to get help directly from the Core ABP team members.", + "WeAreHereToHelp_Description1": "You can browse our help topics or search in the frequently asked questions, \n or you can ask us a question by using the contact form.", + "OtherModules": "Other Modules", + "OtherModules_Description1": "Account, Audit Logging, Chat, CMS Kit, File Management, Forms, GDPR, Language Management and more...", + "HowItWorks_DatabaseProviderOptions": "Database provider options", + "SeeFAQ": "See FAQ", + "ReleaseLogs": "Release Logs", + "ReleaseLogs_Tag": "{0} Release Logs", + "ReleaseLogs_Pr": "Pull Request #{0} - {1}", + "NoLabels": "No labels", + "DoesTheSubscriptionRenewAutomatically": "Does the subscription renew automatically?", + "DoesTheSubscriptionRenewAutomaticallyExplanation": "ABP platform does not have an auto-renewal billing model. Therefore your subscription will not be automatically renewed at the end of your license period. If you want to continue to have the benefits of ABP platform, you need to manually renew it at the organization management page. If you have multiple organizations, click the \"Manage\" button at your expiring organization and then click the \"Extend Now\" button to renew your license. You may also want to take a look at the What Happens When My License Ends? section.", + "ExtraQuestionCreditsFaqTitle": "Can I purchase extra support question credits?", + "ExtraQuestionCreditsFaqExplanation": "Yes, you can. To buy extra question credits, send an e-mail to info@abp.io with your organization's name. Here's the price list for the extra question credits:
  • 50 questions pack $999
  • 25 questions pack $625
  • 15 questions pack $450
", + "AlreadyBetaTester": "You have already joined the beta tester program.", + "AbpStudio": "ABP Studio", + "AbpStudio_Description": "ABP Studio is still under development. You can fill out the form below to be one of the first users.", + "AbpStudio_Description1": "ABP Studio is a cross-platform desktop application for ABP developers.", + "AbpStudio_Description2": "It is well integrated to the ABP Framework and aims to provide a comfortable development environment for you by automating things, providing insights about your solution, making develop, run and deploy your solutions much easier.", + "AbpStudio_ComingSoon": "Coming Soon Planned beta release date: Q4 of 2023.", + "AbpStudio_PlannedPreviewDate": "Planned preview release date: Q4 of 2023.", + "BetaRequest": "Beta Request", + "CreateNewSolutions": "Create New Solutions", + "CreateNewSolutions_Description1": "You can create from simple applications to modular monolith or microservice solutions easily with a lot of options. You get a full production-ready base software solution for your business.", + "ArchitectYourSolutions": "Architect Your Solutions", + "ArchitectYourSolutions_Description1": "Build monolith-modular and microservice solution structures easier by creating modules or services and establishing relations between them. You can also install or uninstall pre-built application modules.", + "ExploreYourSolution": "Explore Your Solution", + "ExploreYourSolution_Description1": "ABP Studio shows a high-level view of components in your solution and the modules your solution depends on. You can explore entities, services, HTTP APIs and much more without needing to open your codebase.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze": "Run Multi-Application or Microservice Solutions in a Breeze", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description1": "Run one, multiple or all services with a single click. In this way, it is very easy to stop a service, run it in Visual Studio to test or debug.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description2": "See a list of services, view real-time HTTP request and exception counts for each service.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description3": "See all details of all HTTP requests coming to any service.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description4": "Explore exception details as real-time in any service, easily filter and search.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description5": "Show the application logs, filter by log level or search by text.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description6": "Browse the UI of your application without leaving the solution runner.", + "IntegrateToYourKubernetesCluster": "Integrate with your Kubernetes Cluster", + "IntegrateToYourKubernetesCluster_Description1": "Connect your local development environment to a local or remote Kubernetes cluster, where that cluster already runs your microservice solution.", + "IntegrateToYourKubernetesCluster_Description2": "Access any service in Kubernetes with their service name as DNS, just like they are running in your local computer.", + "IntegrateToYourKubernetesCluster_Description3": "Intercept any service in that cluster, so all the traffic to the intercepted service is automatically redirected to your service that is running in your local machine. When your service needs to use any service in Kubernetes, the traffic is redirected back to the cluster, just like your local service is running inside the Kubernetes.", + "GetInformed": "Get Informed", + "Studio_GetInformed_Description1": "Leave your contact information to get informed and try it first when ABP Studio has been launched.", + "Studio_GetInformed_Description2": "Planned preview release date: Q3 of 2023.", + "ThankYou!": "Thank you!", + "SendBetaRequest": "Send Beta Request", + "YouJoinedTheBetaTesterProgram": "You joined the ABP Studio beta tester program.", + "PricingExplanation2": "30 days money back guarantee — Learn more", + "MoneyBackGuaranteeText": "* 30-day money-back guarantee on all licenses! 100% refund on Team, 60% refund on Business and Enterprise licenses within 30 days.", + "MobileApplicationStartupTemplates": "Mobile Application Startup Templates", + "MobileApplicationStartupTemplates_Description1": "Integrated mobile application startup templates for your ABP projects.", + "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates": "Build Powerful Line of Business Applications using ABP Mobile Startup Templates", + "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates_Description1": "ABP provides two mobile application startup templates implemented with React Native and .NET MAUI. When you create your new ABP-based solution, you will also have basic startup applications connected to your backend APIs.", + "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates_Description2": "The application has a pre-built authentication token cycle, multi-language support, multi-tenancy support, login, forgot password, profile management and a user management page. You can add your own business logic and customize it based on your requirements.", + "TwoFrameworkOptions": "Two Framework Options", + "TwoFrameworkOptions_Description": "ABP provides both React Native and .NET MAUI mobile startup templates. This way, you can choose the one that best suits your needs. Both apps reuse code at the highest rate between iOS and Android platforms.", + "PreIntegratedToYourBackend": "Pre-integrated to Your Backend", + "PreIntegratedToYourBackend_Description": "ABP Mobile applications are pre-integrated to your backend APIs. It gets a valid authentication token from the server and makes authenticated requests.", + "MultiLanguage": "Multi-language", + "MultiLanguage_Description": "It already supports more than 10 languages out of the box. You can also add next languages.", + "Arabic": "Arabic", + "Czech": "Czech", + "English": "English", + "Hungarian": "Hungarian", + "Finnish": "Finnish", + "French": "French", + "Hindi": "Hindi", + "Portuguese": "Portuguese", + "Italian": "Italian", + "Russian": "Russian", + "Slovak": "Slovak", + "Turkish": "Turkish", + "EngageAndRetainYourCustomersWithABPMobileApps": "Engage and Retain Your Customers with ABP Mobile Apps", + "EngageAndRetainYourCustomersWithABPMobileApps_Description1": "Your customers want to manage their products and subscriptions from anywhere, anytime. That requires organizations to create mobile apps that enable customers to fulfill their requests quickly and seamlessly.", + "EngageAndRetainYourCustomersWithABPMobileApps_Description2": "With ABP Mobile apps, you can create high-quality native mobile apps for Android and iOS
 Using a single codebase and without compromising on security, quality, or scalability.", + "OneCodeBaseMultipleDevices": "One Code-Base Multiple Devices", + "OneCodeBaseMultipleDevices_Description": "ABP Mobile applications are cross-platform. They are ready to be installed and run on iOS and Android devices, and they adapt to different form factors using a single code base. Developers only need to create the UI and front-end code once, there is no need to adapt the code for each device you want to support.", + "ComesWithTheSourceCode": "Comes with the Source-Code", + "ComesWithTheSourceCode_Description": "The mobile apps are provided with the source-code. Easily customize the UX/UI of your apps to meet branding guidelines.", + "Purchase_OneYearPrice": "1 Year Price", + "Purchase_DeveloperSeatCount": "Developer Seat Count", + "Purchase_DevelopersAlreadyIncluded": "{0} developers already included", + "1Year": "1 year", + "{0}Years": "{0} years", + "1YearLicense": "1 Year License", + "{0}YearsLicense": "{0} Years License", + "1AdditionalDeveloper": "1 Additional Developer", + "{0}AdditionalDevelopers": "{0} Additional Developers", + "Discount": "Discount ({0}%)", + "TrainingPack": "Training pack", + "TrainingPackDiscount": "Training pack discount", + "Purchase_OnboardingTraining_Description": "This live training is valid for a class of 8 students and this discount is only valid when purchased with the new license. Learn more ", + "Purchase_Save": "{0}% Save {1}", + "RemoveBasket": "Remove from basket", + "WhyABPIOPlatform?": "Why ABP Platform?", + "DocumentAim": "This document aims to answer the big question:", + "DocumentAim_Description": "\"Why should you use the ABP Platform instead of creating a new solution from scratch?\"", + "DocumentAim_Description2": "The document introduces the challenges of building a modern software solution and explains how ABP addresses these challenges.", + "CreatingANewSolution": "Creating a New Solution", + "CreatingANewSolution_Description": "When you need to start a new solution, there are a lot of questions you need to ask yourself, and you should spend a lot of time before starting to write your very first business code.", + "CreatingAnEmptySolution": "Creating an Empty Solution", + "THEPROBLEM": "THE PROBLEM", + "CreatingAnEmptySolution_THEPROBLEM_Description": "Even creating an almost-empty solution is challenging;", + "CreatingAnEmptySolution_THEPROBLEM_Description2": "How do you organize your code-base across projects?", + "CreatingAnEmptySolution_THEPROBLEM_Description3": "What are the layers and how do they interact?", + "CreatingAnEmptySolution_THEPROBLEM_Description4": "How do you integrate with 3rd-party libraries?", + "CreatingAnEmptySolution_THEPROBLEM_Description5": "How to set up automated tests?", + "ABPSOLUTION": "ABP SOLUTION", + "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP provides a well-architected, layered and production-ready startup solution based on the Domain Driven Design principles. The solution also includes a pre-configured unit and integration test projects for each layer.", + "CommonLibraries": "Common Libraries", + "CommonLibraries_THEPROBLEM_Description": "Which libraries should you use to implement common requirements? The software development ecosystem is highly dynamic, making it challenging to keep up with the latest tools, libraries, trends, and approaches.", + "CommonLibraries_ABPSOLUTION_Description": "ABP pre-integrates popular, mature, and up-to-date libraries into the solution. You don't need to spend time integrating them or making them communicate with each other. They work properly out of the box.", + "UITheme&Layout": "UI Theme & Layout", + "UITheme&Layout_THEPROBLEM_Description": "When addressing UI concerns, a range of challenges surfaces. These include establishing the groundwork for a responsive, contemporary, and adaptable UI kit with a consistent appearance and a host of features like navigation menus, headers, toolbars, footers, widgets, and more.", + "UITheme&Layout_THEPROBLEM_Description2": "Even if you opt for a pre-designed theme, seamlessly integrating it into your project could demand days of development. An additional hurdle lies in upgrading such themes. Frequently, the theme's HTML/CSS structure becomes intertwined with your UI code, rendering future theme changes or upgrades intricate tasks. This interweaving of code and design complicates the flexibility of making adjustments down the line.", + "UITheme&Layout_ABPSOLUTION_Description": "ABP offers a distinctive theming system that liberates your UI code from theme constraints. Themes exist in isolation, packaged as NuGet or NPM packages, making theme installation or upgrades a matter of minutes. While you retain the option to develop your custom theme or integrate an existing one, ABP presents a collection of polished and contemporary themes.", + "UITheme&Layout_ABPSOLUTION_Description2": "Additionally, there are UI component providers like Telerik and DevExpress. However, these providers primarily furnish individual components, placing the onus on you to establish your layout system. When working within ABP-based projects, you can seamlessly incorporate these libraries, similar to how you would in any other project.", + "TestInfrastructure_THEPROBLEM_Description": "Establishing a robust testing environment is a time-consuming endeavor. It involves setting up dedicated test projects within your solution, carefully selecting the necessary tools, creating service and database mocks, crafting essential base classes and utility services to minimize redundant code across tests, and addressing various related tasks.", + "TestInfrastructure_ABPSOLUTION_Description": "ABP Startup Templates arrive pre-equipped with configured test projects, streamlining the process for you. This means that from day one, you can readily commence writing your initial unit or integration test code without delay.", + "CodingStandards&Training": "Coding Standards & Training", + "CodingStandards&Training_THEPROBLEM_Description": "After you've set up the solution for development, you usually have to teach the developers how the system works and how to build it using the same agreed-upon methods. Even if you give them training, keeping the documentation up-to-date can be difficult. As time goes on, each developer might write code in their own way, causing the rules for writing code to become different from each other.", + "CodingStandards&Training_ABPSOLUTION_Description": "The ABP solution is already neatly organized and has clear explanations. Step-by-step tutorials and guides show you exactly how to work on an ABP project.", + "KeepingYourSolutionUpToDate": "Keeping Your Solution Up to Date", + "KeepingYourSolutionUpToDate_THEPROBLEM_Description": "After you start your development, you must keep track of the new versions of the libraries you use for upgrades & patches.", + "KeepingYourSolutionUpToDate_ABPSOLUTION_Description": "We regularly update all packages to the latest versions and test them before the stable release. When you update your ABP based project, all its dependencies are upgraded to edge technology.", + "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "Abp update CLI command automatically discovers and upgrades all ABP-dependant NuGet and NPM packages in a solution. With ABP, it is easier to stay with the latest versions.", + "DRY": "Don't Repeat Yourself!", + "DRY_Description": "Creating a base solution takes significant time and requires good architectural experience. However, this is just the beginning! As you start developing, you will likely have to write lots of repetitive code; that would be great if all this could be handled automatically.", + "DRY_Description2": "ABP automates and simplifies repeating code as much as possible by following the convention over configuration principle. However, it doesn't restrict you when you need to switch to manual gear. The control is always in your hands.", + "Authentication": "Authentication", + "Authentication_THEPROBLEM_Description": "Single Sign On, Active Directory / LDAP Integration, OpenIddict integration, social logins, two-factor authentication, forgot/reset password, email activation, new user registration, password complexity control, locking account on failed attempts, showing failed login attempts... etc. We know that all these generic requirements are familiar to you. You are not alone!", + "Authentication_ABPSOLUTION_Description": "ABP provide all these standard stuff pre-implemented for you as a re-usable account module. You just enable and configure what you need.", + "CrossCuttingConcerns_THEPROBLEM_Description": "Cross-Cutting Concerns are the fundamental repeating logic that should be implemented for each use case. Some examples;", + "CrossCuttingConcerns_THEPROBLEM_Description2": "Starting transactions, committing on success and rollback on errors.", + "CrossCuttingConcerns_THEPROBLEM_Description3": "Handling and reporting exceptions, returning a proper error response to the clients and handling error cases on the client side.", + "CrossCuttingConcerns_THEPROBLEM_Description4": "Implementing authorization and validation, returning proper responses and handling these on the client side.", + "CrossCuttingConcerns_ABPSOLUTION_Description": "ABP automates or simplifies all the common cross-cutting concerns. You only write code that matters for your business, and ABP handles the rest by conventions.", + "ArchitecturalInfrastructure": "Architectural Infrastructure", + "ArchitecturalInfrastructure_THEPROBLEM_Description": "You typically need to build infrastructure to implement your architecture properly. For example, you generally implement the Repository pattern. You define some base classes to simplify and standardize to create entities, services, controllers and other objects.", + "ArchitecturalInfrastructure_ABPSOLUTION_Description": "ABP provides all these and more out of the box. It is mature and well-documented.", + "EnterpriseApplicationRequirements": "Enterprise Application Requirements", + "EnterpriseApplicationRequirements_THEPROBLEM_Description": "There are a lot of requirements you repeatedly implement in every business application;", + "EnterpriseApplicationRequirements_THEPROBLEM_Description2": "Detailed permission system and managing permissions on the UI based on roles and users.", + "EnterpriseApplicationRequirements_THEPROBLEM_Description3": "Writing audit logs and entity histories to track when a user modifies a database record.", + "EnterpriseApplicationRequirements_THEPROBLEM_Description4": "Make your entities soft delete, so they are marked as deleted instead of physically deleting from the database and automatically filtering deleted entities on your queries.", + "EnterpriseApplicationRequirements_THEPROBLEM_Description5": "Creating abstractions and wrappers to consume your backend APIs from the frontend code.", + "EnterpriseApplicationRequirements_THEPROBLEM_Description6": "Enqueuing and executing background jobs.", + "EnterpriseApplicationRequirements_THEPROBLEM_Description7": "Handling multiple time zones in a global system.", + "EnterpriseApplicationRequirements_THEPROBLEM_Description8": "Sharing validation, localization, authorization logic between server and client.", + "EnterpriseApplicationRequirements_ABPSOLUTION_Description": "ABP provides an infrastructure to implement such requirements easily. Again, you don't spend your valuable time to re-implement all these again and again.", + "GeneratingInitialCode&Tooling": "Generating Initial Code & Tooling", + "GeneratingInitialCode&Tooling_THEPROBLEM_Description": "You will build many similar pages in a typical web application. Most of them will perform similar CRUD operations. It is very tedious and also error-prone to repeatedly create such pages.", + "GeneratingInitialCode&Tooling_ABPSOLUTION_Description": "ABP Suite can generate a full-stack CRUD page for your entities in seconds. The generated code is layered and clean. All the standard validation and authorization requirements are implemented. Plus, unit test classes are generated. Once you get a fully running page, you can modify it according to your business requirements.", + "IntegratingTo3rdPartyLibrariesAndSystems": "Integrating to 3rd-Party Libraries and Systems", + "IntegratingTo3rdPartyLibrariesAndSystems_THEPROBLEM_Description": "Most libraries are designed as low level, and you typically do some work to integrate them properly without repeating the same integration and configuration code everywhere in your solution. For example, assume you must use RabbitMQ to implement your distributed event bus. All you want to do is; send a message to a queue and handle the incoming messages. But you need to understand messaging patterns, queues and exchange details. To write efficient code, you must create a pool to manage connections, clients and channels. You also must deal with exceptions, ACK messages, re-connecting to RabbitMQ on failures and more.", + "IntegratingTo3rdPartyLibrariesAndSystems_ABPSOLUTION_Description": "For example, ABP's RabbitMQ Distributed Event Bus integration abstracts all these details. You send and receive messages without the hustle and bustle. Do you need to write low-level code? No problem, you can always do that. ABP doesn't restrict you when you need to use low-level features of the library you are using.", + "WhyNotBuildYourOwnFramework?": "Why Not Build Your Own Framework?", + "WhyNotBuildYourOwnFramework_THEPROBLEM_Description": "All the infrastructure, even in the simplest way, takes a lot of time to build, maintain and document. It gets bigger over time, and it becomes hard to maintain it in your solution. Separating these into a re-usable project is the starting point for building your own internal framework.", + "WhyNotBuildYourOwnFramework_THEPROBLEM_Description2": "Building, documenting, training and maintaining an internal framework is really hard. If you don't have an experienced, dedicated framework team, your internal framework rapidly becomes an undocumented legacy code that no one can understand and maintain anymore. On the other hand, these frameworks are generally developed by one or two developers in the team. And these fellows are becoming a knowledge silo. It is good for them but bad for the company because they are the project's single point of failure -SPOF-. Once they leave the company, the project dramatically goes down.", + "WhyNotBuildYourOwnFramework_ABPSOLUTION_Description": "ABP is a community-driven, well-documented, mature and generic application framework. A team of highly experienced developers are working hard to keep it up-to-date, easy to understand and comfortable to use. Using such a stable framework makes you focus on your own business code and get help with the framework from experts whenever you need it.", + "ArchitecturalInfrastructure_Description": "SaaS applications, modular or microservice systems are most used enterprise software models. Building such systems not only requires a good understanding and experience but also requires a strong software infrastructure. Otherwise, you will find yourself spending a great effort to support these architectural details in your codebase.", + "Modularity_THEPROBLEM_Description": "Building a truly modular system is not easy! All the aspects of the system (database, entities, APIs, UI pages/components) can be split into modules, and each module can be re-usable without others. The plain ASP.NET Core doesn't provide such a modular architecture. If you need it, you should think about it from scratch.", + "Modularity_ABPSOLUTION_Description": "The ABP is born to be a modular application development structure. Every feature in the framework is developed to be compatible with modularity. Documentation and guides explain how to develop re-usable modules in a standard way.", + "SaaSMultiTenancy": "SaaS / Multi-tenancy", + "SaaSMultiTenancy_THEPROBLEM_Description": "Multi-tenancy is a common way to implement SaaS systems. However, implementing a consistent multi-tenant infrastructure may become complicated.", + "SaaSMultiTenancy_ABPSOLUTION_Description": "ABP provides a complete multi-tenant infrastructure and abstract complexity from your business code. Your application code will be mostly multi-tenancy aware, while the ABP automatically isolates the database, cache and other details of the tenants from each other. It supports single database, per tenant database and hybrid approaches. It properly configures the libraries like Microsoft Identity and OpenIddict, which are not normally multi-tenancy compatible.", + "Microservices": "Microservices", + "Microservices_THEPROBLEM_Description": "Building a microservice system requires many infrastructure details: Authenticating and authorizing applications and microservices and implementing asynchronous messaging and synchronous (Rest/GRPC) communication patterns between microservices are the most fundamental issues.", + "Microservices_ABPSOLUTION_Description": "The ABP provides services, guides, and samples to help you implement your microservice solution using the industry standard tools.", + "Microservices_ABPSOLUTION_Description2": "ABP's commercial licenses even goes one step further and provides a complete startup template to kick-start your microservice solution.", + "PreBuiltModules": "Pre-Built Modules", + "PreBuiltModules_THEPROBLEM_Description": "All of us have similar but slightly different business requirements. However, we all should re-invent the wheel since no one's code can directly work in our solution. They are all embedded parts of a larger solution.", + "PreBuiltModules_ABPSOLUTION_Description": "ABP modules provides a lot of re-usable application modules like payment, chat, file management, audit log reporting... etc. All of these modules are easily installed into your solution and directly work. We are constantly adding more modules.", + "PreBuiltModules_ABPSOLUTION_Description2": "All modules are designed as customizable for your business requirements. If you need complete control, you can download the full source code of any module and completely customize based on your specific business requirements.", + "ABPCommunity": "ABP Community", + "ABPCommunity_Description": "Finally, Being in a big community where everyone follows similar coding styles and principles and shares a common infrastructure brings power when you have troubles or need help with design decisions. Since we write code similarly, we can help each other much better. ABP is a community-backed project with more than 10K stars on GitHub.", + "ABPCommunity_Description2": "It is easy to share code or even re-usable libraries between ABP developers. A code snippet that works for you will also work for others. There are a lot of samples and tutorials that you can directly implement for your application.", + "ABPCommunity_Description3": "When you hire a developer who worked before with the ABP architecture will immediately understand your solution and start development in a very short time.", + "WhyAbpIo_Page_Title": "Why ABP Platform?", + "AbpStudio_Page_Title": "ABP Studio | Cross-Platform Desktop Application", + "AbpStudio_Page_Description": "ABP Studio is a cross-platform desktop application for ABP developers. It's the easiest way to get started with the ABP Platform.", + "CampaignInfo": "Buy a new license or renew your existing license and get an additional 2 months at no additional cost! This offer is valid for all license plans. Ensure you take advantage of this limited-time promotion to expand your access to premium features and upgrades.", + "HurryUpLastDay": "Hurry Up! Last Day: {0}", + "CreatingCRUDPagesWithABPSuite": "Creating CRUD pages with ABP Suite", + "MultipleYearDiscount": "Multiple Year Discount", + "CampaignDiscountText": "New Platform Discount", + "CampaignDiscountName": "New Platform", + "CampaignName:BlackFriday": "Black Friday", + "MultipleOrganizationInfo": "See All Your Organizations", + "AbpStudioBetaAccessInfoTitle": "ABP Studio Beta Access", + "AbpStudioBetaAccessInfoText": "We're thrilled to share with you the beta version of ABP Studio! This release marks a significant milestone in our development journey, and we're eager to gather your feedback to make the application even better.", + "YouAreNotAuthorizedToDownloadStudio": "You are not authorized to download ABP Studio.", + "OrganizationHasNoDefaultCreditCard": "Your organization has no default credit card. Please add a credit card to your organization.", + "YouAreNotAuthorizedToPayThisPaymentRequest": "You are not authorized to pay this payment request.", + "YouAreNotAuthorizedToCreateBillingInfoForThisPaymentRequest": "You are not authorized to create billing info for this payment request.", + "OrganizationNotFound": "Organization not found.", + "CannotDeleteDefaultCardBecauseAutoRenewalEnabled": "You cannot delete this card at the moment because the Auto-Renewal feature is enabled. To delete the card, first disable Auto-Renewal.", + "AreYouSureWantToDeleteThisCard": "Are you sure you want to delete this card?", + "AreYouSureWantToSetThisCardAsDefault": "Are you sure you want to set this card as default?", + "OrganizationBillingInfoIsNotSuitableForIyzicoPayment": "Your organization's billing info is not suitable for iyzico payment.", + "AutomaticRenewal": "Automatic Renewal", + "AutomaticRenewal_Description": "Renewing a license before it expires lets you get a discount of up to %40. The auto-renewal process lets you renew your license without losing this discount, and your development will never interrupt. Auto-renewal is only available for credit card payment. You can disable auto-renewal at any time by accessing your Organization Management page. ABP does not save your credit card information, but our global payment gateways do secure savings.", + "CardNotFoundMessage": "Do you want to add a new card?", + "CardNotFoundTitle": "Card Not Found", + "AutoRenewalEnabled": "Auto Renewal Enabled", + "AutoRenewalDisabled": "Auto Renewal Disabled", + "PaymentRequestIdIsNotProvided": "Payment request id is not provided.", + "PaymentFailedInfo": "Sorry, payment failed! This could be due to insufficient funds, invalid credit card numbers or invalid pin", + "UsedPayment": "This payment has been already used", + "ManageLicense": "Manage License", + "AbpPlatformLeptonXTheme": "LeptonX Theme for Your Admin Dashboard by ABP Platform", + "NoActiveLicence": "You are not eligible for this action! You have no active license.", + "ABPStudioBetaTester": "To be able to submit your request, you must sign in", + "ABPStudioBetaAccess": "ABP Studio Beta Access", + "VisitABPStudio": "Visit ABP Studio", + "EditBillingInformation": "Edit Billing Information", + "Organization": "Organization", + "E-Book": "E-Book", + "CreditCards": "Credit Cards", + "BillingInformation": "Billing Information", + "AddNewCreditCard": "Add New Credit Card", + "MyOrganizations_LearnMorePlan": "Learn more about plans on the pricing page", + "AutoLicenseRenewalIsNotEnabled": "Auto license renewal is not enabled.", + "SetAsDefaultPaymentMethod": "Set as default payment method", + "{0}PerAdditionalDeveloper": "${0} per additional developer", + "CardAlias": "Card Alias (Optional)", + "AbpDoesNotSaveYourPaymentDetails_Description": "The payment data will be saved in {2} security vaults and you can remove stored data anytime. Enabling auto-renewal ensures that your ABP subscription will automatically renew prior to expiration, providing a valid credit card. Disabling auto-renewal means you will have to renew your subscription manually. To continue your project development without interruption, we suggest you enable the Auto-Renewal option.", + "AddBillingInformation": "Add Billing Information", + "YouHaveNoCardsSaved": "Card not saved yet.", + "CreateCreditCardModal_BillingDetails_Description": "You must save your billing details to be able to add your credit card.", + "TaxNo": "Tax No", + "CardNumber": "Card Number", + "NameOnCard": "Name on Card", + "BillingDetails": "Billing Details", + "ThereIsNoDeveloper": "No developer added.", + "CardDetails": "Debit/Credit Card Details", + "YearCantBeNull": "Year field cannot be empty.", + "CardHolderName": "Name on Card", + "ExpireDate": "Expiration Date", + "DisplayName:ExpireDate": "Expiration Date", + "DisplayName:CardHolderName": "Name on Card", + "CreditCardNumberLengthWarning": "Invalid card number", + "ExpirationWarning": "Invalid expiration date", + "CreateCreditCardModal_Description": "When saving your debit/credit card, a temporary $1 charge will be authorized for verification and promptly refunded.", + "ReturnOnInvestmentTitle": "Return on Investment", + "ReduceYourDevelopmentCostsDescription": "Reduce your development costs by more than 50% with the ABP Platform.", + "SettingUpTheArchitectureTitle": "Setting up the Architecture", + "DoingEverythingFromScratch": "Doing everything from scratch", + "SettingUpTheArchitecture_Description1": "Organize code base and solution structure", + "SettingUpTheArchitecture_Description2": "Determine, install and configure essential 3rd-party libraries", + "SettingUpTheArchitecture_Description3": "Setup automated integration and unit test infrastructure", + "SettingUpTheArchitecture_Description4": "Determine and document code standards, train the development team", + "UsingTheABPFramework": "Using the ABP Platform", + "UseABPSettingUpTheArchitecture_Description": "Use ABP's startup solution templates", + "ReduceCostsWithABP": "Reduce Costs with ABP by", + "ReduceCostsBy": "80% to 100%", + "DesigningTheUserInterfaceTitle": "Designing the User Interface", + "DesigningTheUserInterface_Description1": "Create or buy a UI theme", + "DesigningTheUserInterface_Description2": "Adapt the UI theme to the solution", + "DesigningTheUserInterface_Description3": "Build the essential UI parts (layout, menu, header, footer with responsive design)", + "DesigningTheUserInterface_Description4": "Ensure the design consistency across application pages", + "UseABPDesigningTheUserInterface_Description": "Use ABP's LeptonX UI Theme", + "DevelopingApplicationFeaturesTitle": "Developing the Application Features", + "DevelopingApplicationFeatures_Description1": "Develop your own business logic", + "DevelopingApplicationFeatures_Description2": "Develop every page one by one", + "DevelopingApplicationFeatures_Description3": "Develop common business modules yourself", + "DevelopingApplicationFeatures_Description4": "Develop the authentication system (single sign on, 2 factor auth, social logins, reset password, email activation, etc...)", + "DevelopingApplicationFeatures_Description5": "Apply cross-cutting concerns in every use case (DB transactions, authorization, validation, exception handling, etc...)", + "DevelopingApplicationFeatures_Description6": "Develop common base classes and utility services", + "DevelopingApplicationFeatures_Description7": "Develop common non-business requirements (audit logging, soft-delete, background jobs, permission system, etc.)", + "UseABPDevelopingApplicationFeatures_Description1": "Develop your own business logic", + "UseABPDevelopingApplicationFeatures_Description2": "Use ABP Suite to automatically generate CRUD-like pages", + "UseABPDevelopingApplicationFeatures_Description3": "Directly use ABP's pre-built common application modules and customize based on your unique requirements", + "ReduceCostsBy_2": "40% to 60%", + "WhyABPIoPlatform": "Why ABP Platform?", + "WhyShouldYouUsetheABPIOPlatform": "Why should you use the ABP Platform instead of creating a new solution from scratch?", + "ExploreMore": "Explore More", + "DocumentIntroducesDescription": "If you want to learn more details about why should you use the ABP Platform instead of creating a new solution from scratch, read the following document. ", + "ReturnOnInvestmentPageAbout": "This page covers the fundamental steps of developing a software solution and explains how the ABP Platform reduces your development costs at each step.", + "LearnMore": "Learn More", + "ReturnOfInvestment": "Return of Investment", + "ReturnOnInvestment_Description": "Learn about the return on investment when using ABP, highlighting cost-effectiveness and efficiency.", + "PricingDiscount": "Save", + "PricingTeamTitle": "Team", + "PricingBusinessTitle": "Business", + "PricingEnterpriseTitle": "Enterprise", + "SpecialDiscount": "Special Discount", + "YourOrganizationOverview": "Your Organization Overview", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} hour", + "ContactPageError": "Please send your message via email to info@abp.io
Here's what you wrote :", + "GoBack": "Go back", + "HereWhatYouWrote": "Here's what you wrote :", + "Sales": "Sales", + "LicensingPricing": "Licensing / Pricing", + "TrialDemo": "Trial / Demo", + "TrainingOnboarding": "Training / Onboarding", + "Resellers": "Resellers", + "Reselling": "Reselling", + "Others": "Others", + "Characters": "Characters", + "Topic": "Topic", + "SendUsEmail": "Send us email", + "ErrorExceptionMessage": "An error occurred while processing your request", + "WatchTakeCodeGeneration": "Watch the \"Explore the Potential of Code Generation: ABP Suite\" Video!", + "StartupTemplatesUser": "User", + "StartupSingleSignOn": "Single Sign On", + "Application{0}": "Application {0}", + "PreBuiltApplicationModulesTitle": "Pre-Built Application Modules", + "RegisterDemo": "Register", + "TrainingDescription": "Enroll in ABP trainings to improve your skills and knowledge, keeping up with the latest developments.", + "PurchaseDevelopers": "developers", + "LinkExpiredMessage": "The payment link has expired! Contact us at sales@volosoft.com to update the link or click here to navigate to the contact page.", + "YourAccountDisabled": "Your user account is disabled!", + "WhyChooseAbpTitle": "Why Choose ABP?", + "WhyChooseAbpDescription": "Discover ABP Commercial benefits: modular architecture, microservice ready modules, productivity tools and robust features for modern line of business web apps.", + "AbpIo_Modern_Title": "ABP.IO - Modern ASP.NET Core Web Application Platform", + "AbpIo_Modern_Description": "ABP Platform provides an open-source framework on top of ASP.NET Core with Angular, Blazor, and MVC UI options to create scalable line of business web apps.", + "My_Organizations_Page_Title": "My Organizations", + "My_Organizations_Page_Description": "View your ABP Platform organizations to manage your developers, license renewals and upgrade.", + "Members_Page_Title": "{0} - Community Member", + "Members_Page_Description": "{0} is a member of the ABP Community. Check out the contributions and benefit this experience.", + "Framework_Page_Title": "ABP Framework", + "Framework_Page_Description": "ABP Framework is the most straightforward way to kick-start your project! Learn about ABP Framework's robust features.", + "CLI_Page_Title": "ABP CLI", + "CLI_Page_Description": "Use the ABP CLI dotnet global tool to create a new ABP project, update it, manage packages and access the source-code of ABP modules.", + "Mobile_Page_Title": "ABP Mobile Client", + "Mobile_Page_Description": "Develop powerful mobile applications with ABP's mobile development features, ensuring cross-platform compatibility.", + "ReleasesPageTitle": "ABP Commercial Releases", + "ReleasesPageDescription": "Stay updated with the latest features and updates in ABP Commercial Releases, ensuring your applications are cutting-edge.", + "GetStartedPageDescription": "Begin your journey with ABP by following our step-by-step guide. Learn how to set up your development environment, explore key features, start building apps", + "Community_Page_Title": "ABP Community", + "Community_Page_Description": "Connect and collaborate with other developers in the ABP Community, sharing knowledge and resources.", + "Services_Page_Title": "Additional Services", + "Services_Page_Description": "Get professional development and support services from the ABP Team or its solution partners, ensuring your project's success.", + "Contributors_Page_Title": "Contributors of ABP", + "Contributors_Page_Description": "Meet the contributors of the ABP Community, learning about their roles and contributions to the framework.", + "PackagesDetailTitle": "{0} - Package Details", + "PackagesDetailDescription": "Get detailed information about the {0} package, including features and usage.", + "Raffle_Page_Title": "Raffle - {0}", + "Raffle_Page_Description": "Participate in ABP raffles and stand a chance to win exciting prizes, engaging with the ABP Community.", + "Docs_Page_Title": "ABP Documentation", + "Docs_Page_Description": "Access comprehensive guides and API references in the ABP Documentation, aiding in development and troubleshooting.", + "Videos_Page_Title": "{0} - Video Post", + "AskQuestionsOnSupport": "You can ask questions on ABP Support.", + "MicroserviceApplicationExplanation1": "Creates a distributed solution.", + "MicroserviceApplicationExplanation2": "Recommended for large teams to create complex and scalable systems.", + "CancellationSupport": "Cancellation Support", + "CancellationSupportExplanation": "ABP allows for the graceful termination of asynchronous operations in applications, ensuring proper resource cleanup and responsive user experience.", + "DistributedLocking": "Distributed Locking", + "DistributedLockingExplanation": "ABP's distributed locking system ensures that resources are accessed in a mutually exclusive manner across different nodes in a distributed environment, preventing concurrent conflicts and ensuring data consistency.", + "EncryptionDecryptionServices": "Encryption & Decryption Services", + "EncryptionDecryptionServicesExplanation": "ABP provides string encryption feature that allows to Encrypt and Decrypt strings.", + "BackgroundWorkers": "Background Workers", + "BackgroundWorkersExplanation": "Define operations to run in a separate, dedicated thread. Use the built-in background workers or integrate your own. Hangfire and Quartz integrations are already available.", + "ConcurrencyCheck": "Concurrency Check", + "ConcurrencyCheckExplanation": "ABP provides an optimistic concurrency check mechanism to ensure data consistency in your application and prevents users access or change the same data in a database at the same time.", + "NewsletterEmailFooterCreateTemplateMessage": "
Thank you for subscribing! We're thrilled to have you on board.
As a subscriber, you'll receive the latest updates on:
  • Promotional Offers:Benefit from exclusive discounts, seasonal campaigns, and special offers.
  • Events:Stay informed about our Community Talks, Webinars, and the ABP DOTNET Conferences.
  • Release Notes:Get the latest on ABP Platform releases and new products.
  • Newsletter:Enjoy our blog posts, community news, and more.

We look forward to keeping you informed and engaged.
", + "NewsletterDeleteSubscriptionDescription": "
This is a confirmation that you have unsubscribed from the following email categories:
  • Promotional Offers:Discounts, seasonal campaigns, etc.
  • Events:Community Talks, Webinars, ABP DOTNET Conference, etc.
  • Release Notes:ABP Platform releases, new products, etc.
  • Newsletter:Blog posts, community news, etc.

Please note that you will still receive important transactional emails related to your account.
", + "NewsletterEmailFooterTemplateDeleteSubscription": "If you change your mind, you're always welcome to resubscribe!", + "GenerateQuote" : "Generate Quote" , + "GeneratePriceQuote": "Generate a Price Quote", + "Qa:QuestionPageTitle": "Support" } } \ 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 index 2c647327ef..20f77e2323 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/es.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/es.json @@ -301,7 +301,7 @@ "ProgressiveWebApplication": "AplicaciĂłn web progresiva", "Preview": "Avance", "CreateANewSolution": "Crear una nueva soluciĂłn", - "ABPFrameworkFeatures": "CaracterĂ­sticas del marco ABP", + "FrameworkFeatures": "CaracterĂ­sticas del marco ABP", "Commercial": "Comercial", "ThirdPartyTools": "Herramientas de terceros", "Back": "AtrĂĄs", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fi.json index 4a63cc389d..e189d7fd3e 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fi.json @@ -301,7 +301,7 @@ "ProgressiveWebApplication": "Progressiivinen verkkosovellus", "Preview": "Esikatsele", "CreateANewSolution": "Luo uusi ratkaisu", - "ABPFrameworkFeatures": "ABP-kehyksen Ominaisuudet", + "FrameworkFeatures": "ABP-kehyksen Ominaisuudet", "Commercial": "Kaupallinen", "ThirdPartyTools": "Kolmannen osapuolen työkalut", "Back": "Takaisin", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fr.json index d8278d2aea..918b66b3db 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fr.json @@ -301,7 +301,7 @@ "ProgressiveWebApplication": "Application Web progressive", "Preview": "Aperçu", "CreateANewSolution": "CrĂ©er une nouvelle solution", - "ABPFrameworkFeatures": "FonctionnalitĂ©s du cadre ABP", + "FrameworkFeatures": "FonctionnalitĂ©s du cadre ABP", "Commercial": "Commercial", "ThirdPartyTools": "Outils tiers", "Back": "Dos", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hi.json index 12113024fa..e421c2e5d1 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hi.json @@ -301,7 +301,7 @@ "ProgressiveWebApplication": "à€Șà„à€°à€—à€€à€żà€¶à„€à€Č à€”à„‡à€Ź à€…à€šà„à€Șà„à€°à€Żà„‹à€—", "Preview": "à€Șà„‚à€°à„à€” à€Šà€°à„à€¶à€š", "CreateANewSolution": "à€à€• à€šà€Żà€Ÿ à€žà€źà€Ÿà€§à€Ÿà€š à€Źà€šà€Ÿà€à€‚", - "ABPFrameworkFeatures": "à€à€Źà„€à€Șà„€ à€«à„à€°à„‡à€źà€”à€°à„à€• à€”à€żà€¶à„‡à€·à€€à€Ÿà€à€‚", + "FrameworkFeatures": "à€à€Źà„€à€Șà„€ à€«à„à€°à„‡à€źà€”à€°à„à€• à€”à€żà€¶à„‡à€·à€€à€Ÿà€à€‚", "Commercial": "à€”à„à€Żà€Ÿà€”à€žà€Ÿà€Żà€żà€•", "ThirdPartyTools": "à€€à„ƒà€€à„€à€Ż à€Șà€•à„à€· à€‰à€Șà€•à€°à€Ł", "Back": "à€Șà„€à€›à„‡", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hr.json index 96981e81a3..d54e9fd481 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hr.json @@ -301,7 +301,7 @@ "ProgressiveWebApplication": "Progresivna web aplikacija", "Preview": "Pregled", "CreateANewSolution": "Napravite novo rjeĆĄenje", - "ABPFrameworkFeatures": "Značajke ABP okvira", + "FrameworkFeatures": "Značajke ABP okvira", "Commercial": "Komercijalni", "ThirdPartyTools": "Alati trećih strana", "Back": "leđa", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hu.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hu.json index b7b8eb602c..60fdc4eb92 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hu.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hu.json @@ -301,7 +301,7 @@ "ProgressiveWebApplication": "ProgresszĂ­v webes alkalmazĂĄs", "Preview": "ElƑnĂ©zet", "CreateANewSolution": "Hozzon lĂ©tre egy Ășj megoldĂĄst", - "ABPFrameworkFeatures": "Az ABP keretrendszer jellemzƑi", + "FrameworkFeatures": "Az ABP keretrendszer jellemzƑi", "Commercial": "Kereskedelmi", "ThirdPartyTools": "Harmadik fĂ©ltƑl szĂĄrmazĂł eszközök", "Back": "Vissza", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/is.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/is.json index 562f09c178..e6b27aeae8 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/is.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/is.json @@ -301,7 +301,7 @@ "ProgressiveWebApplication": "FramsĂŠkið vefforrit", "Preview": "Forskoðun", "CreateANewSolution": "BĂșðu til nĂœja lausn", - "ABPFrameworkFeatures": "ABP Framework Eiginleikar", + "FrameworkFeatures": "ABP Framework Eiginleikar", "Commercial": "AuglĂœsing", "ThirdPartyTools": "VerkfĂŠri ĂŸriðja aðila", "Back": "Til baka", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/it.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/it.json index 4201960c15..e13fa64406 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/it.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/it.json @@ -301,7 +301,7 @@ "ProgressiveWebApplication": "Applicazione Web progressiva", "Preview": "Anteprima", "CreateANewSolution": "Creare una nuova soluzione", - "ABPFrameworkFeatures": "Caratteristiche della struttura ABP", + "FrameworkFeatures": "Caratteristiche della struttura ABP", "Commercial": "Commerciale", "ThirdPartyTools": "Strumenti di terze parti", "Back": "Indietro", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/nl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/nl.json index 9a49e6ab83..47469d7a90 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/nl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/nl.json @@ -301,7 +301,7 @@ "ProgressiveWebApplication": "Progressieve webapplicatie", "Preview": "Voorbeeld", "CreateANewSolution": "CreĂ«er een nieuwe oplossing", - "ABPFrameworkFeatures": "ABP Framework -functies", + "FrameworkFeatures": "ABP Framework -functies", "Commercial": "Reclame", "ThirdPartyTools": "Hulpmiddelen van derden", "Back": "Rug", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pl-PL.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pl-PL.json index 04af61c847..b2c9c3acf2 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pl-PL.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pl-PL.json @@ -301,7 +301,7 @@ "ProgressiveWebApplication": "Progresywna aplikacja internetowa", "Preview": "ZapowiedĆș", "CreateANewSolution": "UtwĂłrz nowe rozwiązanie", - "ABPFrameworkFeatures": "Funkcje struktury ABP", + "FrameworkFeatures": "Funkcje struktury ABP", "Commercial": "Handlowy", "ThirdPartyTools": "Narzędzia stron trzecich", "Back": "Z powrotem", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pt-BR.json index 02ade27a61..6ababfeac1 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pt-BR.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pt-BR.json @@ -301,7 +301,7 @@ "ProgressiveWebApplication": "Aplicativo Web Progressivo", "Preview": "Visualização", "CreateANewSolution": "Crie uma nova solução", - "ABPFrameworkFeatures": "Recursos da estrutura ABP", + "FrameworkFeatures": "Recursos da estrutura ABP", "Commercial": "Comercial", "ThirdPartyTools": "Ferramentas de terceiros", "Back": "Voltar", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ro-RO.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ro-RO.json index 1f7ad50da1..f1f80e27b8 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ro-RO.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ro-RO.json @@ -301,7 +301,7 @@ "ProgressiveWebApplication": "Aplicație web progresivă", "Preview": "previzualizare", "CreateANewSolution": "Creați o nouă soluție", - "ABPFrameworkFeatures": "Caracteristicile cadrului ABP", + "FrameworkFeatures": "Caracteristicile cadrului ABP", "Commercial": "Comercial", "ThirdPartyTools": "Instrumente de la terți", "Back": "Înapoi", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ru.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ru.json index dd022d4d26..8f0c0ef81e 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ru.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ru.json @@ -299,7 +299,7 @@ "ProgressiveWebApplication": "ĐŸŃ€ĐŸĐłŃ€Đ”ŃŃĐžĐČĐœĐŸĐ” ĐČДб-ĐżŃ€ĐžĐ»ĐŸĐ¶Đ”ĐœĐžĐ”", "Preview": "ĐŸŃ€Đ”ĐŽĐČĐ°Ń€ĐžŃ‚Đ”Đ»ŃŒĐœŃ‹Đč ĐżŃ€ĐŸŃĐŒĐŸŃ‚Ń€", "CreateANewSolution": "ĐĄĐŸĐ·ĐŽĐ°Ń‚ŃŒ ĐœĐŸĐČĐŸĐ” Ń€Đ”ŃˆĐ”ĐœĐžĐ”", - "ABPFrameworkFeatures": "СтруĐșтура ABP Đ€ŃƒĐœĐșцоо", + "FrameworkFeatures": "СтруĐșтура ABP Đ€ŃƒĐœĐșцоо", "Commercial": "ĐšĐŸĐŒĐŒĐ”Ń€Ń‡Đ”ŃĐșĐžĐč", "ThirdPartyTools": "ĐĄŃ‚ĐŸŃ€ĐŸĐœĐœĐžĐ” ĐžĐœŃŃ‚Ń€ŃƒĐŒĐ”ĐœŃ‚Ń‹", "Back": "ĐĐ°Đ·Đ°ĐŽ", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sk.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sk.json index e5634acb64..333020d4f5 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sk.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sk.json @@ -301,7 +301,7 @@ "ProgressiveWebApplication": "ProgresĂ­vna webovĂĄ aplikĂĄcia", "Preview": "NĂĄhÄŸad", "CreateANewSolution": "Vytvorte novĂ© rieĆĄenie", - "ABPFrameworkFeatures": "Funkcie rĂĄmca ABP", + "FrameworkFeatures": "Funkcie rĂĄmca ABP", "Commercial": "KomerčnĂœ", "ThirdPartyTools": "NĂĄstroje tretĂ­ch strĂĄn", "Back": "spÀƄ", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sl.json index 2b0b8274ec..424efaf1d3 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sl.json @@ -301,7 +301,7 @@ "ProgressiveWebApplication": "Progresivna spletna aplikacija", "Preview": "Predogled", "CreateANewSolution": "Ustvarite novo reĆĄitev", - "ABPFrameworkFeatures": "Funkcije ogrodja ABP", + "FrameworkFeatures": "Funkcije ogrodja ABP", "Commercial": "Komercialno", "ThirdPartyTools": "Orodja tretjih oseb", "Back": "Nazaj", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sv.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sv.json new file mode 100644 index 0000000000..a26f21b66b --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sv.json @@ -0,0 +1,1828 @@ +{ + "culture": "sv", + "texts": { + "GetStarted": "Kom igĂ„ng", + "Create": "Skapa", + "NewProject": "Nytt projekt", + "DirectDownload": "Direkt nedladdning", + "ProjectName": "Projektets namn", + "ProjectType": "Typ av projekt", + "DatabaseProvider": "Databasleverantör", + "DatabaseManagementSystem": "System för databashantering", + "NTier": "N-djur", + "IncludeUserInterface": "Inkludera anvĂ€ndargrĂ€nssnitt", + "CreateNow": "Skapa nu", + "TheStartupProject": "Uppstartsprojektet", + "Tutorial": "Handledning", + "UsingCLI": "AnvĂ€nda CLI", + "SeeDetails": "Se detaljer", + "AbpShortDescription": "ABP Framework Ă€r en komplett infrastruktur för att skapa mjukvarulösningar med moderna arkitekturer baserade pĂ„ ASP.NET Core-plattformen.", + "SourceCodeUpper": "KÄLLKOD", + "LatestReleaseLogs": "Senaste versionens loggar", + "Infrastructure": "Infrastruktur", + "Architecture": "Arkitektur", + "Modular": "ModulĂ€r", + "DontRepeatYourself": "Upprepa inte dig sjĂ€lv", + "DeveloperFocused": "Fokus pĂ„ utvecklare", + "FullStackApplicationInfrastructure": "Full stack applikationsinfrastruktur.", + "DomainDrivenDesign": "DomĂ€nstyrd design", + "DomainDrivenDesignExplanation": "Designad och utvecklad utifrĂ„n DDD-mönster och principer. Ger en skiktad modell för din applikation.", + "Authorization": "Auktorisering", + "AuthorizationExplanation": "Avancerad auktorisering med anvĂ€ndare, roll och finkornigt behörighetssystem. Byggt pĂ„ Microsoft Identity-biblioteket.", + "MultiTenancy": "Multi-tenancy", + "MultiTenancyExplanationShort": "SaaS-applikationer pĂ„ ett enkelt sĂ€tt! Integrerad multi-tenancy frĂ„n databas till anvĂ€ndargrĂ€nssnitt.", + "CrossCuttingConcerns": "TvĂ€rgĂ„ende angelĂ€genheter", + "CrossCuttingConcernsExplanationShort": "Komplett infrastruktur för auktorisering, validering, undantagshantering, cachelagring, revisionsloggning, transaktionshantering med mera.", + "BuiltInBundlingMinification": "Inbyggd paketering och minimering", + "BuiltInBundlingMinificationExplanation": "Du behöver inte anvĂ€nda externa verktyg för paketering och minifiering. ABP erbjuder ett enklare, mer dynamiskt, kraftfullt, modulĂ€rt och inbyggt sĂ€tt!", + "VirtualFileSystem": "Virtuellt filsystem", + "VirtualFileSystemExplanation": "BĂ€dda in vyer, skript, stilar, bilder ... i paket/libraries och Ă„teranvĂ€nd dem i olika applikationer.", + "Theming": "Tematisering", + "ThemingExplanationShort": "AnvĂ€nd och anpassa det bootstrap-baserade standardgrĂ€nssnittstemat eller skapa ditt eget.", + "BootstrapTagHelpersDynamicForms": "Bootstrap-tagghjĂ€lpmedel och dynamiska formulĂ€r", + "BootstrapTagHelpersDynamicFormsExplanation": "IstĂ€llet för att manuellt skriva de upprepade detaljerna i bootstrap-komponenter, anvĂ€nd ABP:s tagghjĂ€lpmedel för att förenkla dem och dra nytta av IntelliSense. Bygg snabbt anvĂ€ndargrĂ€nssnittsformulĂ€r baserat pĂ„ en C#-modell med hjĂ€lp av tagghjĂ€lpen för dynamiska formulĂ€r.", + "HTTPAPIsDynamicProxies": "HTTP API:er och dynamiska proxyservrar", + "HTTPAPIsDynamicProxiesExplanation": "Exponera automatiskt applikationstjĂ€nster som HTTP API:er i REST-stil och anvĂ€nd dem med dynamiska JavaScript- och C#-proxyer.", + "CompleteArchitectureInfo": "Modern arkitektur för att skapa underhĂ„llsfria programvarulösningar.", + "DomainDrivenDesignBasedLayeringModelExplanation": "HjĂ€lper till att implementera en DDD-baserad skiktad arkitektur och bygga en underhĂ„llbar kodbas.", + "DomainDrivenDesignBasedLayeringModelExplanationCont": "TillhandahĂ„ller startmallar, abstraktioner, basklasser, tjĂ€nster, dokumentation och guider som hjĂ€lper dig att utveckla din applikation baserat pĂ„ DDD-mönster och -principer.", + "MicroserviceCompatibleModelExplanation": "KĂ€rnramverket och de förbyggda modulerna Ă€r utformade med mikrotjĂ€nstarkitektur i Ă„tanke.", + "MicroserviceCompatibleModelExplanationCont": "TillhandahĂ„ller infrastruktur, integrationer, exempel och dokumentation för att göra det enklare att implementera mikrotjĂ€nstlösningar, samtidigt som det inte medför ytterligare komplexitet om du vill ha en monolitisk applikation.", + "ModularInfo": "ABP tillhandahĂ„ller ett modulsystem som gör att du kan utveckla Ă„teranvĂ€ndbara applikationsmoduler, knyta an till hĂ€ndelser i applikationens livscykel och uttrycka beroenden mellan centrala delar av ditt system.", + "PreBuiltModulesThemes": "Förbyggda moduler och teman", + "PreBuiltModulesThemesExplanation": "Moduler och teman med öppen kĂ€llkod och kommersiella moduler Ă€r redo att anvĂ€ndas i din affĂ€rsapplikation.", + "NuGetNPMPackages": "NuGet- och NPM-paket", + "NuGetNPMPackagesExplanation": "Distribueras som NuGet- och NPM-paket. LĂ€tt att installera och uppgradera.", + "ExtensibleReplaceable": "Utdragbar/utbytbar", + "ExtensibleReplaceableExplanation": "Alla tjĂ€nster och moduler Ă€r utformade med tanke pĂ„ utbyggbarhet. Du kan byta ut tjĂ€nster, sidor, stilar och komponenter.", + "CrossCuttingConcernsExplanation2": "HĂ„ll din kodbas mindre sĂ„ att du kan behĂ„lla fokus pĂ„ den kod som Ă€r specifik för ditt företag.", + "CrossCuttingConcernsExplanation3": "LĂ€gg inte tid pĂ„ att implementera gemensamma applikationskrav i flera projekt.", + "AuthenticationAuthorization": "Autentisering och auktorisering", + "ExceptionHandling": "Hantering av undantag", + "Validation": "Validering", + "DatabaseConnection": "Databasanslutning", + "TransactionManagement": "Transaktionshantering", + "AuditLogging": "Loggning av revision", + "Caching": "Caching", + "Multitenancy": "Multitenancy", + "DataFiltering": "Filtrering av data", + "ConventionOverConfiguration": "Konvention över konfiguration", + "ConventionOverConfigurationExplanation": "ABP implementerar vanliga applikationskonventioner som standard med minimal eller ingen konfiguration.", + "ConventionOverConfigurationExplanationList1": "Auto-registrering av kĂ€nda tjĂ€nster för beroendeinjektion.", + "ConventionOverConfigurationExplanationList2": "Exponerar applikationstjĂ€nster som HTTP API:er med hjĂ€lp av namnkonventioner.", + "ConventionOverConfigurationExplanationList3": "Skapar dynamiska HTTP-klientproxyer för C# och JavaScript.", + "ConventionOverConfigurationExplanationList4": "TillhandahĂ„ller standardförvar för dina enheter.", + "ConventionOverConfigurationExplanationList5": "Hanterar arbetsenhet per webbförfrĂ„gan eller applikationstjĂ€nstmetod.", + "ConventionOverConfigurationExplanationList6": "Publicerar skapa, uppdatera och ta bort hĂ€ndelser för dina enheter.", + "BaseClasses": "Basklasser", + "BaseClassesExplanation": "Förbyggda basklasser för vanliga applikationsmönster.", + "DeveloperFocusedExplanation": "ABP Ă€r till för utvecklare.", + "DeveloperFocusedExplanationCont": "Det syftar till att förenkla den dagliga programutvecklingen utan att hindra dig frĂ„n att skriva lĂ„gnivĂ„kod.", + "SeeAllFeatures": "Se alla funktioner", + "CLI_CommandLineInterface": "CLI (kommandoradsgrĂ€nssnitt)", + "CLI_CommandLineInterfaceExplanation": "InnehĂ„ller ett CLI som hjĂ€lper dig att automatisera skapandet av nya projekt och tillĂ€gg av nya moduler.", + "StartupTemplates": "Mallar för nystartade företag", + "StartupTemplatesExplanation": "ABP:s mall för applikationsstart ger en fullt konfigurerad lösning för att starta din utveckling.", + "BasedOnFamiliarTools": "Baserat pĂ„ vĂ€lkĂ€nda verktyg", + "BasedOnFamiliarToolsExplanation": "Byggd pĂ„ och integrerad med populĂ€ra verktyg som du redan kĂ€nner till. LĂ„g inlĂ€rningskurva, enkel anpassning, bekvĂ€m utveckling.", + "ORMIndependent": "ORM Oberoende", + "ORMIndependentExplanation": "KĂ€rnramverket Ă€r ORM/databasoberoende och kan fungera med alla datakĂ€llor. Entity Framework Core- och MongoDB-leverantörer finns redan tillgĂ€ngliga.", + "Features": "Utforska ABP-ramverkets funktioner", + "ABPCLI": "ABP CLI", + "Modularity": "Modularitet", + "BootstrapTagHelpers": "Bootstrap-taggarnas hjĂ€lpmedel", + "DynamicForms": "Dynamiska formulĂ€r", + "BundlingMinification": "Paketering och minimering", + "BackgroundJobs": "Bakgrundsjobb", + "BackgroundJobsExplanation": "Definiera enkla klasser för att utföra jobb i bakgrunden nĂ€r de stĂ„r i kö. AnvĂ€nd den inbyggda jobbhanteraren eller integrera din egen. Integrationer med Hangfire, RabbitMQ och Quartz Ă€r redan tillgĂ€ngliga.", + "DDDInfrastructure": "DDD Infrastruktur", + "DomainDrivenDesignInfrastructure": "DomĂ€nstyrd design Infrastruktur", + "AutoRESTAPIs": "Auto REST API:er", + "DynamicClientProxies": "Dynamiska klientproxyservrar", + "DistributedEventBus": "Distribuerad hĂ€ndelsebuss", + "DistributedEventBusWithRabbitMQIntegration": "Distribuerad hĂ€ndelsebuss med RabbitMQ-integration", + "TestInfrastructure": "Testinfrastruktur", + "AuditLoggingEntityHistories": "Audit Logging & Entity Histories", + "ObjectToObjectMapping": "Mappning av objekt till objekt", + "ObjectToObjectMappingExplanation": "Objekt-till-objekt-mappning abstraktion med AutoMapper-integration.", + "EmailSMSAbstractions": "E-post- och SMS-abstraktioner", + "EmailSMSAbstractionsWithTemplatingSupport": "E-post- och SMS-abstraktioner med stöd för templating", + "Localization": "Lokalisering", + "SettingManagement": "InstĂ€llning Management", + "ExtensionMethods": "Metoder för förlĂ€ngning", + "ExtensionMethodsHelpers": "Metoder och hjĂ€lpmedel för förlĂ€ngning", + "AspectOrientedProgramming": "Aspektorienterad programmering", + "DependencyInjection": "Injektion av beroenden", + "DependencyInjectionByConventions": "Dependency Injection enligt konventioner", + "ModularityExplanation": "ABP tillhandahĂ„ller en komplett infrastruktur för att bygga dina egna applikationsmoduler som kan innehĂ„lla enheter, tjĂ€nster, databasintegration, API:er, UI-komponenter och sĂ„ vidare.", + "MultiTenancyExplanation": "ABP stöder inte bara utveckling av applikationer med flera hyresgĂ€ster, utan gör ocksĂ„ din kod mestadels omedveten om flera hyresgĂ€ster.", + "MultiTenancyExplanation2": "Kan automatiskt bestĂ€mma den aktuella hyresgĂ€sten, isolera data frĂ„n olika hyresgĂ€ster frĂ„n varandra.", + "MultiTenancyExplanation3": "Stöd för en enda databas, databas per klient och hybridmetoder.", + "MultiTenancyExplanation4": "Du fokuserar pĂ„ din affĂ€rskod och lĂ„ter ramverket hantera multi-tenancy för din rĂ€kning.", + "BootstrapTagHelpersExplanation": "IstĂ€llet för att manuellt skriva de upprepande detaljerna i bootstrap-komponenterna, anvĂ€nd ABP:s tagghjĂ€lpmedel för att förenkla det och dra nytta av IntelliSense. Du kan anvĂ€nda Bootstrap direkt nĂ€r du behöver det.", + "DynamicFormsExplanation": "Dynamiska formulĂ€r- och inmatningstagghjĂ€lpmedel kan skapa ett komplett formulĂ€r frĂ„n en C#-klass som modell.", + "AuthenticationAuthorizationExplanation": "Rika autentiserings- och auktoriseringsalternativ integrerade med ASP.NET Core Identity & OpenIddict. TillhandahĂ„ller ett utbyggbart och detaljerat behörighetssystem.", + "CrossCuttingConcernsExplanation": "Upprepa inte dig sjĂ€lv för att implementera alla dessa vanliga saker om och om igen. Fokusera pĂ„ din affĂ€rskod och lĂ„t ABP automatisera dem genom konventioner.", + "DatabaseConnectionTransactionManagement": "Databasanslutning och transaktionshantering", + "CorrelationIdTracking": "SpĂ„rning av korrelation-Id", + "BundlingMinificationExplanation": "ABP erbjuder ett enkelt, dynamiskt, kraftfullt, modulĂ€rt och inbyggt system för paketering och minifiering.", + "VirtualFileSystemnExplanation": "Det virtuella filsystemet gör det möjligt att hantera filer som inte fysiskt finns i filsystemet (disken). Det anvĂ€nds frĂ€mst för att bĂ€dda in (js, css, image, cshtml...) filer i assemblies och anvĂ€nda dem som fysiska filer vid körning.", + "ThemingExplanation": "Theming-systemet gör det möjligt att utveckla dina applikationer och moduler tematiskt oberoende genom att definiera en uppsĂ€ttning gemensamma basbibliotek och layouter, baserade pĂ„ det senaste Bootstrap-ramverket.", + "DomainDrivenDesignInfrastructureExplanation": "En komplett infrastruktur för att bygga applikationer i flera lager baserat pĂ„ mönster och principer för domĂ€ndriven design;", + "Specification": "Specifikation", + "Repository": "Förvar", + "DomainService": "DomĂ€nservice", + "ValueObject": "VĂ€rdeobjekt", + "ApplicationService": "ApplikationstjĂ€nst", + "DataTransferObject": "Dataöverföringsobjekt", + "AggregateRootEntity": "Aggregerad rot, enhet", + "AutoRESTAPIsExplanation": "ABP kan automatiskt konfigurera dina applikationstjĂ€nster som API-controllers enligt konvention.", + "DynamicClientProxiesExplanation": "AnvĂ€nd enkelt dina API:er frĂ„n JavaScript- och C#-klienter.", + "DistributedEventBusWithRabbitMQIntegrationExplanation": "Publicera och konsumera enkelt distribuerade hĂ€ndelser med hjĂ€lp av den inbyggda Distributed Event Bus med RabbitMQ-integration.", + "TestInfrastructureExplanation": "Ramverket har utvecklats med enhets- och integrationstestning i Ă„tanke. Ger dig basklasser för att göra det enklare. Startmallar kommer förkonfigurerade för testning.", + "AuditLoggingEntityHistoriesExplanation": "Inbyggd revisionsloggning för affĂ€rskritiska applikationer. Granskningsloggning pĂ„ förfrĂ„gnings-, tjĂ€nste- och metodnivĂ„ samt entitetshistorik med detaljer pĂ„ egenskapsnivĂ„.", + "EmailSMSAbstractionsWithTemplatingSupportExplanation": "IEmailSender- och ISmsSender-abstraktionerna frikopplar din applikationslogik frĂ„n infrastrukturen. Avancerat e-postmallsystem gör det möjligt att skapa och lokalisera e-postmallar och enkelt anvĂ€nda dem nĂ€r det behövs.", + "LocalizationExplanation": "Lokaliseringssystemet gör det möjligt att skapa resurser i vanliga JSON-filer och anvĂ€nda dem för att lokalisera ditt anvĂ€ndargrĂ€nssnitt. Det stöder avancerade scenarier som arv, tillĂ€gg och JavaScript-integration samtidigt som det Ă€r helt kompatibelt med AspNet Core's lokaliseringssystem.", + "SettingManagementExplanation": "Definiera instĂ€llningar för din applikation och hĂ€mta vĂ€rdena i körtid baserat pĂ„ aktuell konfiguration, klient och anvĂ€ndare.", + "ExtensionMethodsHelpersExplanation": "Upprepa inte dig sjĂ€lv ens för triviala koddelar. Extensions & helpers för standardtyper gör din kod mycket renare och lĂ€ttare att skriva.", + "AspectOrientedProgrammingExplanation": "Ger en bekvĂ€m infrastruktur för att skapa dynamiska proxies och implementera aspektorienterad programmering. FĂ„nga upp valfri klass och kör din kod före och efter varje metodkörning.", + "DependencyInjectionByConventionsExplanation": "Du behöver inte registrera dina klasser för dependency injection manuellt. Registrerar automatiskt vanliga tjĂ€nstetyper enligt konvention. För andra typer av tjĂ€nster kan du anvĂ€nda grĂ€nssnitt och attribut för att göra det enklare och pĂ„ plats.", + "DataFilteringExplanation": "Definiera och anvĂ€nd datafilter som tillĂ€mpas automatiskt nĂ€r du söker efter enheter i databasen. Soft Delete & MultiTenant-filter tillhandahĂ„lls direkt nĂ€r du implementerar enkla grĂ€nssnitt.", + "PublishEvents": "Publicera evenemang", + "HandleEvents": "Hantera hĂ€ndelser", + "Code": "Kod", + "Result": "Resultat", + "SeeTheDocumentForMoreInformation": "Kolla in {0} dokumentet för mer information", + "UiFramework": "Ramverk för anvĂ€ndargrĂ€nssnitt", + "EmailAddress": "E-postadress", + "Mobile": "Mobil", + "ReactNative": "React Native", + "Strong": "Stark", + "Complete": "Komplett", + "BasedLayeringModel": "Baserad skiktningsmodell", + "Microservice": "Mikroservice", + "Compatible": "Kompatibel", + "MeeTTheABPCommunityInfo": "VĂ„rt uppdrag Ă€r att skapa en miljö dĂ€r utvecklare kan hjĂ€lpa varandra med inlĂ€gg, handledning, fallstudier etc. och trĂ€ffa likasinnade.", + "JoinTheABPCommunityInfo": "Engagera dig i en livlig gemenskap och bli en bidragsgivare till ABP-ramverket!", + "AllPosts": "Alla inlĂ€gg", + "SubmitYourPost": "Skicka in ditt inlĂ€gg", + "DynamicClientProxyDocument": "Kolla in dokumentationen för dynamisk klientproxy för JavaScript & C#.", + "EmailSMSAbstractionsDocument": "Mer information finns i dokumenten E-post och SMS-sĂ€ndning.", + "CreateProjectWizard": "Den hĂ€r guiden skapar ett nytt projekt frĂ„n startmallen som Ă€r korrekt konfigurerad för att starta upp ditt projekt.", + "TieredOption": "Skapar en skiktad lösning dĂ€r webb- och Http API-skikten Ă€r fysiskt Ă„tskilda. Om det inte Ă€r markerat skapas en skiktad lösning som Ă€r mindre komplex och lĂ€mplig för de flesta scenarier.", + "SeparateIdentityServerOption": "Separerar serversidan i tvĂ„ applikationer: Den första Ă€r för identitetsservern och den andra Ă€r för ditt HTTP-API pĂ„ serversidan.", + "SeparateAuthenticationServerOption": "Separerar serversidan i tvĂ„ applikationer: Den första Ă€r för autentiseringsservern och den andra Ă€r för ditt HTTP-API pĂ„ serversidan.", + "ProgressiveWebApplicationOption": "Anger projektet som Progressive Web Application", + "UseslatestPreVersion": "AnvĂ€nder den senaste pre-release-versionen", + "ReadTheDocumentation": "LĂ€s dokumentationen", + "Documentation": "Dokumentation", + "GettingStartedTutorial": "Handledning för att komma igĂ„ng", + "ApplicationDevelopmentTutorial": "Handledning för applikationsutveckling", + "TheStartupTemplate": "Startmall för nystartade företag", + "InstallABPCLIInfo": "ABP CLI Ă€r det snabbaste sĂ€ttet att starta en ny lösning med ABP-ramverket. Installera ABP CLI med hjĂ€lp av ett kommandoradsfönster:", + "DifferentLevelOfNamespaces": "Du kan anvĂ€nda olika nivĂ„er av namnrymder; t.ex. BookStore, Acme.BookStore eller Acme.Retail.BookStore.", + "ABPCLIExamplesInfo": "Kommandot new skapar en lagrad MVC-applikation med Entity Framework Core som databasleverantör. Det har dock ytterligare alternativ.", + "SeeCliDocumentForMoreInformation": "Kolla in ABP CLI-dokumentet för fler alternativ eller vĂ€lj fliken \"Direkt nedladdning\" ovan.", + "Optional": "Valfritt", + "LocalFrameworkRef": "BehĂ„ll den lokala projektreferensen för ramverkspaketen.", + "BlobStoring": "BLOB Storing", + "BlobStoringExplanation": "BLOB-lagringssystemet ger en abstraktion för att arbeta med BLOB. ABP tillhandahĂ„ller nĂ„gra förbyggda lagringsleverantörsintegrationer (Azure, AWS, File System, Database, etc.) som du enkelt kan anvĂ€nda i dina applikationer.", + "TextTemplating": "Templating av text", + "TextTemplatingExplanation": "Textmallar anvĂ€nds för att dynamiskt Ă„terge innehĂ„ll baserat pĂ„ en mall och en modell (ett dataobjekt). Du kan t.ex. anvĂ€nda det för att skapa dynamiskt e-postinnehĂ„ll med en förbyggd mall.", + "MultipleUIOptions": "Flera alternativ för anvĂ€ndargrĂ€nssnitt", + "MultipleDBOptions": "Flera databasleverantörer", + "MultipleDBOptionsExplanation": "Ramverket kan anvĂ€ndas med alla datakĂ€llor, men följande leverantörer Ă€r officiellt utvecklade och stöds:", + "SelectLanguage": "VĂ€lj sprĂ„k", + "LatestPostOnCommunity": "Senaste inlĂ€gget pĂ„ ABP Community", + "Register": "Registrera", + "IsDownloadable": "Är nedladdningsbar", + "DatabaseOptions": "Alternativ för databas", + "BackToPackagesPage": "Tillbaka till sidan Paket", + "HowToInstall": "SĂ„ hĂ€r installerar du", + "SeeOnNpm": "Se pĂ„ NPM", + "SeeOnNuget": "Detta Ă€r Nuget", + "MVCGulpCommandExplanation": "Om du anvĂ€nder MVC (Razor Pages) UI, kör kommandot \"gulp\" efter installationen av paketet.", + "UsingABPCLI": "AnvĂ€nda Abp CLI", + "WithoutABPCLI": "Utan ABP CLI", + "ABPCLIModuleDependency": "Abp Cli lĂ€gger automatiskt till modulberoende.", + "AddModuleDependency": "LĂ€gg sedan till modulberoende", + "Packages": "Paket", + "NugetPackages": "Nuget-paket", + "NPMPackages": "NPM-paket", + "SeeDocs": "Se dokument", + "None": "Ingen", + "Application": "TillĂ€mpning", + "ApplicationExplanation": "Skapar en heltĂ€ckande lösning baserad pĂ„ metoder för domĂ€ndriven design. Rekommenderas för lĂ„ngsiktiga projekt som behöver en underhĂ„llbar och utbyggbar kodbas.", + "ApplicationNoLayer": "Applikation (enstaka lager)", + "ApplicationNoLayerExplanation": "Skapar en webbapplikation i ett lager. Rekommenderas för att bygga en applikation med en enklare och mer lĂ€ttförstĂ„elig arkitektur.", + "Module": "Modul", + "ModuleExplanation": "Skapar en Ă„teranvĂ€ndbar, helt skiktad applikationsmodullösning. Du kan anvĂ€nda det hĂ€r alternativet för att skapa moduler för din modulĂ€ra applikation.", + "PackageName": "Paketets namn", + "LicenseURL": "URL för licens", + "License": "Licens", + "ProjectCreationSuccessMessage": "Ditt projekt har skapats framgĂ„ngsrikt", + "HowToRunSolution": "Hur kör jag din lösning?", + "GettingStartedMessage": "I dokumentet Kom igĂ„ng kan du lĂ€sa om hur du konfigurerar och kör din lösning.", + "WebAppDevTutorial": "Handledning för utveckling av webbapplikationer", + "WebAppDevTutorialMessage": "I handledningsdokumentet för utveckling av webbapplikationer finns ett exempel pĂ„ utveckling steg för steg.", + "CommunityPosts": "InlĂ€gg frĂ„n gemenskapen", + "CommunityPostMessage": "Kolla in ABP Community Platform för att lĂ€sa anvĂ€ndbara inlĂ€gg för ABP Framework.", + "InvestigateSolutionDetails": "Kolla in lösningsdetaljerna", + "StartupTemplateDocumentationMessage": "Ta en titt pĂ„ malldokumentet för applikationsstart för att lĂ€ra dig arkitekturen och strukturen för din lösning.", + "ClientSideDevelopment": "Utveckling pĂ„ klientsidan", + "ClientSideDevelopmentDocumentationMessage": "Kolla in {0}-dokumentet för att lĂ€ra dig de viktigaste punkterna för utvecklingen av anvĂ€ndargrĂ€nssnittet (klientsidan).", + "DatabaseProviderDocumentationMessage": "Kolla in dokumentet {0} för att lĂ€ra dig de viktigaste punkterna för utvecklingen av databaslagret.", + "ImplementingDDD": "Implementering av domĂ€ndriven design", + "DDDBookExplanation": "En praktisk guide för implementering av domĂ€ndriven design med ABP-ramverket.", + "Overview": "Översikt", + "TableOfContents": "InnehĂ„llsförteckning", + "IntroductionToImplementingDDD": "Introduktion till implementering av domĂ€ndriven design", + "WhatIsDDD": "Vad Ă€r domĂ€ndriven design?", + "Implementation": "Implementering", + "TheBigPicture": "Den stora bilden", + "TheBuildingBlock": "Byggstenen", + "ExampleUseCase": "Exempel AnvĂ€ndningsfall", + "DomainAndApplicationLogic": "DomĂ€nlogik och applikationslogik", + "Author": "Författaren", + "Pages": "Sidor", + "PublishedOn": "Publicerad pĂ„", + "FreeEBook": "Gratis e-bok", + "Download": "Nedladdningar", + "EBookSignInForDownload": "För att ladda ner e-boken logga in", + "SignIn": "Logga in", + "Or": "Eller", + "TellUsAboutYourself": "BerĂ€tta lite om dig sjĂ€lv", + "Name": "Namn", + "Surname": "Efternamn", + "CompanyName": "Företagets namn", + "Free": "Gratis", + "DDDEBook": "DDD e-bok", + "PracticalGuideForImplementingDDD": "Den hĂ€r boken Ă€r en praktisk guide för att implementera domĂ€ndriven design med ABP-ramverket.", + "IntroducingDDD": "Introduktion till domĂ€ndriven design", + "DDDLayersAndCleanArchitecture": "DDD-skikt och ren arkitektur", + "LayeringOfADotnetSolution": "Skiktning av en .NET-lösning", + "ImplementingDDDBuildingBlocks": "Implementering av DDD-byggstenar", + "DomainVsApplicationLogic": "DomĂ€nlogik vs applikationslogik", + "SamplesAndDiscussions": "Provtagningar och diskussioner", + "EmailNotValid": "VĂ€nligen ange en giltig e-postadress.", + "WeWillSendYouADownloadLink": "En lĂ€nk för att ladda ner e-boken har skickats till {0}. Kontrollera din inkorg, skrĂ€ppost eller spambox!", + "GoHome": "GĂ„ hem", + "InvalidFormInputs": "VĂ€nligen skriv in den giltiga information som anges pĂ„ formulĂ€ret.", + "DDDBookEmailBody": "Tack sĂ„ mycket.
För att ladda ner din bok, klicka hĂ€r.", + "SubscribeToNewsletter": "Prenumerera pĂ„ nyhetsbrevet för att fĂ„ information om vad som hĂ€nder i ABP Platform, t.ex. nya releaser, inlĂ€gg, erbjudanden och mycket mer.", + "FirstEdition": "Första upplagan", + "ThankYou": "Tack sĂ„ mycket!", + "CheckboxMandatory": "Du mĂ„ste kontrollera detta för att fortsĂ€tta!", + "UserInterface": "AnvĂ€ndargrĂ€nssnitt", + "APIGateway": "API-gateway", + "Database": "Databas", + "Saas": "Saas", + "OpenSourceWebApp": "Öppna kĂ€llan
webbapplikation", + "Framework": "Ramverk", + "AuditLoggingExplanation": "SpĂ„ra automatiskt alla operationer och dataförĂ€ndringar i ditt system.", + "AbpNewCommandExplanation": "Skapar nya lösningar med hjĂ€lp av ABP:s startmallar.", + "AbpAddModuleCommandExplanation": "Installerar förbyggda applikationsmoduler till din lösning", + "AbpUpdateCommandExplanation": "Uppdaterar automatiskt alla ABP-relaterade NuGet- och NPM-paket i din lösning.", + "ExploreAllCLICommands": "Utforska alla CLI-kommandon", + "ExploreDocumentationAndGuides": "Utforska den omfattande dokumentationen och guiderna.", + "Documentations": "Dokumentation", + "Views": "Utsikt", + "EnterYouEmailToGetNews": "Ange din e-postadress för att fĂ„ de senaste nyheterna om ABP-ramverket", + "Tiered": "Tiered", + "SeparateIdentityServer": "Separat identitetsserver", + "SeparateAuthenticationServer": "Separat autentiseringsserver", + "ProgressiveWebApplication": "Progressiv webbapplikation", + "Preview": "Förhandsgranskning", + "CreateANewSolution": "Skapa en ny .NET-lösning", + "FrameworkFeatures": "Funktioner för ramverk", + "Commercial": "Kommersiell", + "ThirdPartyTools": "Verktyg frĂ„n tredje part", + "Back": "Tillbaka", + "Community": "Gemenskap", + "SeeMore": "Se mer", + "DetailsOfTheEBook": "Detaljer om e-boken", + "JoinOurMarketingNewsletter": "AnmĂ€l dig till vĂ„rt marknadsföringsnyhetsbrev", + "FrameworkNewsletterConfirmationMessage": "Jag godkĂ€nner Villkor och bestĂ€mmelser och Privatlivspolicy.", + "GetYourFreeEBook": "HĂ€mta din gratis DDD e-bok ", + "EverythingYouNeedToKnow": "Allt du behöver veta.", + "PreOrderNow": "FörbestĂ€ll nu", + "UITheming": "Tematisering av anvĂ€ndargrĂ€nssnitt", + "UIThemingExplanation": "Skapa Ă„teranvĂ€ndbara UI-teman och layouter eller anvĂ€nd ett av de förbyggda UI-temana.", + "DataFilteringExplanation2": "Filtrera automatiskt vid förfrĂ„gningar frĂ„n databasen för att enkelt kunna implementera mönster som mjuk borttagning och multi-tenancy.", + "NeedHelp": "Behöver du hjĂ€lp?", + "GiveYourProjectAName": "Ge ditt projekt ett namn", + "SelectProjectType": "VĂ€lj projekttyp", + "SelectUIFramework": "VĂ€lj UI Framework", + "SelectDatabaseProvider": "VĂ€lj databasleverantör", + "SelectDatabaseManagementSystem": "VĂ€lj system för databashantering", + "InstallingTheABPCLI": "Installera ABP CLI", + "CreateYourProjectNow": "Skapa ditt projekt nu", + "OrderOn": "Order pĂ„ {0}", + "DownloadFreeDDDBook": "Ladda ner gratis DDD-bok", + "WhatIsABPFramework": "Vad Ă€r ABP-ramverket?", + "TenantDatabase": "HyresgĂ€st {0} Databas", + "SharedDatabase": "Delad databas", + "ConnectionResolver": "Återlösare för anslutning", + "TenantBasedDataFilter": "Filter för hyresgĂ€stbaserad data", + "ApplicationCode": "TillĂ€mpningskod", + "TenantResolution": "Lösning för hyresgĂ€ster", + "TenantUser": "HyresgĂ€st {0} AnvĂ€ndare", + "CardTitle": "Kortets titel", + "View": "Utsikt", + "Model": "Modell", + "Email": "E-post", + "Password": "Lösenord", + "Address": "Adress", + "Gender": "Kön", + "Male": "Man", + "Female": "Kvinna", + "Submit": "Skicka in", + "Unspecified": "Ospecificerad", + "StaticFileMiddleware": "Middleware för statiska filer", + "RazorViewEngine": "Razor View Motor", + "PhysicalFiles": "Fysiska filer (wwwroot)", + "EmbeddedFiles": "InbĂ€ddade filer (DLL)", + "DynamicFiles": "Dynamiska filer (minne)", + "BuildSolutionsWithAbp": "Skapa underhĂ„llbara .NET-lösningar genom att följa bĂ€sta praxis för programvaruutveckling med hjĂ€lp av ABP.", + "BuyOnAmazon": "Köp pĂ„ Amazon", + "BuyOnPackt": "Köp pĂ„ Packt", + "BuyOnDangDang": "Köp pĂ„ DangDang", + "BuyOnJD": "Köp pĂ„ JD", + "Discounted": "Rabatterad", + "MasteringAbpFramework_Book_KeyFeatures": "Viktiga funktioner", + "MasteringAbpFramework_Book_Key_Features_Description_1": "Bygga robusta, underhĂ„llbara, modulĂ€ra och skalbara programvarulösningar med hjĂ€lp av ABP Framework.", + "MasteringAbpFramework_Book_Key_Features_Description_2": "LĂ€r dig hur du implementerar SOLID-principer och domĂ€ndriven design i dina webbapplikationer.", + "MasteringAbpFramework_Book_Key_Features_Description_3": "UpptĂ€ck hur ABP Framework pĂ„skyndar din utvecklingscykel genom att automatisera repetitiva uppgifter.", + "MasteringAbpFramework_Book_Description": "Bokbeskrivning", + "MasteringAbpFramework_Book_Description_Details_1": "ABP Framework Ă€r en komplett infrastruktur för att skapa moderna webbapplikationer genom att följa\n bĂ€sta praxis och konventioner för mjukvaruutveckling. Med ABP:s ramverk och ekosystem pĂ„ hög nivĂ„ kan du\n implementera DRY-principen (Don't Repeat Yourself) och fokusera pĂ„ din affĂ€rskod.", + "MasteringAbpFramework_Book_Description_Details_2": "Den hĂ€r boken Ă€r skriven av skaparen av ABP Framework och hjĂ€lper dig att fĂ„ en fullstĂ€ndig förstĂ„else för ramverket\n ramverket och moderna tekniker för utveckling av webbapplikationer. Med steg-för-steg-förklaringar av viktiga\n begrepp och praktiska exempel kommer du att förstĂ„ kraven pĂ„ en modern webblösning och hur ABP\n Framework gör det enkelt att utveckla dina egna lösningar. Du kommer att upptĂ€cka de vanliga kraven pĂ„\n utveckling av webbapplikationer för företag och utforska den infrastruktur som tillhandahĂ„lls av ABP. Genom hela\n boken kommer du att lĂ€ra dig bĂ€sta praxis för mjukvaruutveckling för att bygga underhĂ„llbara och modulĂ€ra\n webblösningar.", + "MasteringAbpFramework_Book_Description_Details_3": "I slutet av den hĂ€r boken kommer du att kunna skapa en komplett webblösning som Ă€r lĂ€tt att utveckla, underhĂ„lla och testa,\n underhĂ„lla och testa.", + "MasteringAbpFramework_Book_WhatYouWillLearn": "Vad du kommer att lĂ€ra dig", + "MasteringAbpFramework_Book_What_You_Will_Learn_1": "Konfigurera utvecklingsmiljön och kom igĂ„ng med ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_2": "Arbeta med Entity Framework Core och MongoDB för att utveckla ditt dataĂ„tkomstlager.", + "MasteringAbpFramework_Book_What_You_Will_Learn_3": "FörstĂ„ övergripande problem och hur ABP automatiserar repetitiva uppgifter.", + "MasteringAbpFramework_Book_What_You_Will_Learn_4": "FĂ„ koll pĂ„ hur du implementerar domĂ€ndriven design med ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_5": "Bygg UI-sidor och komponenter med ASP.NET Core MVC (Razor Pages) och Blazor.", + "MasteringAbpFramework_Book_What_You_Will_Learn_6": "Arbeta med multi-tenancy för att skapa modulĂ€ra webbapplikationer.", + "MasteringAbpFramework_Book_What_You_Will_Learn_7": "FörstĂ„ modularitet och skapa Ă„teranvĂ€ndbara applikationsmoduler.", + "MasteringAbpFramework_Book_What_You_Will_Learn_8": "Skriva enhets-, integrations- och UI-tester med hjĂ€lp av ABP Framework.", + "MasteringAbpFramework_Book_WhoIsThisBookFor": "Vem Ă€r den hĂ€r boken för?", + "MasteringAbpFramework_Book_WhoIsThisBookFor_Description": "Den hĂ€r boken vĂ€nder sig till webbutvecklare som vill lĂ€ra sig programvaruarkitekturer och bĂ€sta praxis för att bygga\n underhĂ„llbara webbaserade lösningar med hjĂ€lp av Microsoft-teknik och ABP Framework. GrundlĂ€ggande kunskaper i C#\n och ASP.NET Core Ă€r nödvĂ€ndiga för att komma igĂ„ng med den hĂ€r boken.", + "ComputersAndTechnology": "Datorer & teknik", + "BuildingMicroserviceSolutions": "Bygga Microservice-lösningar", + "MicroserviceBookPracticalGuide": "Den hĂ€r boken Ă€r en referensguide för utveckling och hantering av mikrotjĂ€nstbaserade applikationer med hjĂ€lp av ABP Framework. Den refererar till .NET Microservice Sample Reference Application: eShopOnContainers och diskuterar den arkitektoniska utformningen och implementeringsmetoderna med hjĂ€lp av ABP-ramverket. I slutet av den hĂ€r boken kommer du att lĂ€ra dig hur ABP hanterar de vanligaste komplexiteterna för mikrotjĂ€nster, t.ex. auktorisering, distribuerade transaktioner, kommunikation mellan mikrotjĂ€nster, driftsĂ€ttning osv.", + "IntroducingTheSolution": "Vi presenterar lösningen eShopOnAbp", + "RunningTheSolution": "Kör lösningen", + "UnderstandingTheAuthenticationSystem": "FörstĂ„else för autentiseringssystemet", + "ExploringTheApplications": "Utforska applikationerna", + "UnderstandingTheAPIGateways": "FörstĂ„else för API-gateways", + "DevelopingTheMicroservices": "Utveckling av mikrotjĂ€nster", + "UnderstandingTheInfrastructure": "FörstĂ„else för infrastrukturen", + "DiggingInTheUseCases": "GrĂ€va i anvĂ€ndningsfallen", + "DeployingTheSolution": "Implementering av lösningen", + "ThisBookIsInDraftStageAndIsNotCompletedYet": "Denna bok Ă€r i utkaststadiet och Ă€r inte fĂ€rdigstĂ€lld Ă€nnu.", + "Authors": "Författarna", + "MicroserviceEBook": "Mikroservice e-bok", + "SelectUITheme": "VĂ€lj UI-tema", + "LeptonXLiteTheme": "LeptonX Lite tema", + "BasicTheme": "GrundlĂ€ggande tema", + "LeptonXLiteThemeInfo": " Ett modernt och snyggt Bootstrap UI-tema. Perfekt om du vill ha ett produktionsfĂ€rdigt UI-tema. Detta Ă€r det nyaste temat och Ă€r standard.", + "BasicThemeInfo": "Minimalistiskt UI-tema med vanliga Bootstrap-fĂ€rger och -stilar. Perfekt om du ska bygga ditt eget UI-tema.", + "SeeDocumentation": "Se dokumentation.", + "SeeFullScreen": "đŸ–Œïž Se skĂ€rmdump", + "BuildingMicroserviceSolutionsShortDescription": "Den hĂ€r boken Ă€r en referensguide för utveckling och hantering av mikrotjĂ€nstbaserade applikationer med hjĂ€lp av ABP-ramverket.", + "InstallAbpCliMessage": "Installera ABP CLI i en kommandoradsterminal om du inte har installerat det tidigare:", + "Terminal": "Terminal", + "Copy": "Kopia", + "RunTheFollowingCommand": "Kör följande kommando i en kommandoradsterminal:", + "ChangeSolutionOptionsBelow": "Du kan Ă€ndra lösningsalternativen nedan.", + "MultiLayerApplication": "Flera lager
AnvÀndningsomrÄde", + "MultiLayerApplicationExplanation1": "Skapar en heltÀckande lösning baserad pÄ metoder för domÀndriven design.", + "MultiLayerApplicationExplanation2": "Rekommenderas för lÄngsiktiga projekt som krÀver en underhÄllbar och utbyggbar kodbas.", + "SingleLayerApplication": "Enkelskikt
AnvÀndningsomrÄde", + "SingleLayerApplicationExplanation1": "Skapar en webbapplikation i ett lager. ", + "SingleLayerApplicationExplanation2": "Rekommenderas för att bygga en applikation med en enklare och mer lÀttförstÄelig arkitektur.", + "ApplicationModule": "Applikation
Modul", + "SeeTheScreenshot": "Se skĂ€rmdumpen", + "ApplicationModuleExplanation1": "Skapar en Ă„teranvĂ€ndbar, helt skiktad applikationsmodullösning.", + "ApplicationModuleExplanation2": "Du kan anvĂ€nda detta alternativ för att skapa moduler för din modulĂ€ra applikation.", + "Expert_": "Expert", + "Partner_": "Partnerskap", + "WebSite": "Webbplats", + "Expert_Year": "Kompetens År", + "CompanyInfo": "Företagsinformation", + "Date": "Datum", + "WhoWeAre_Partner": "Vilka vi Ă€r", + "WhoWeAre_Expert": "Om mig", + "CreateSolutionFolder": "Skapa lösningsmapp", + "CreateSolutionFolderOption": "Anger om projektet ska lĂ€ggas i en ny mapp i utdatamappen eller direkt i utdatamappen.", + "BooksPageTitle": "ABP Böcker", + "BooksPageDescription": "Utforska ABP-böcker för att fördjupa din förstĂ„else och behĂ€rskning av ABP-ramverket.", + "PackageDetailPage_NuGetPackageInstallationOptions": "Det finns tre sĂ€tt att installera {0} NuGet-paket till ditt projekt", + "PackageDetailPage_InstallingWithABPCLI": "1: Installera med ABP CLI", + "PackageDetailPage_InstallingWithABPCLIDescription1": "Om du inte har installerat ABP CLI, installera först genom att utföra följande kommando i en kommandoradsterminal", + "PackageDetailPage_InstallingWithABPCLIDescription2": "NĂ€r du har installerat ABP CLI öppnar du en kommandoradsterminal pĂ„ platsen för projektet (.csproj-filen) som du vill installera det och kör följande kommando", + "PackageDetailPage_InstallingWithABPCLIDescription3": "Den lĂ€gger till {0}-paketreferensen i ditt projekt och {1}-beroendet i din modulklass.", + "PackageDetailPage_ManualInstallation": "2: Installera med Dotnet CLI", + "PackageDetailPage_ManualInstallationDescription1": "LĂ€gg till {0} NuGet-paketreferens till ditt projekt med hjĂ€lp av din IDE eller genom att utföra följande kommando", + "PackageDetailPage_ManualInstallationDescription2": "LĂ€gg sedan till {0}-beroendet i din modulklass enligt följande exempel", + "PackageDetailPage_SeeDocumentation": "Se dokumentationen för att lĂ€ra dig hur du anvĂ€nder det hĂ€r paketet i dina program.", + "PackageDetailPage_InstallingUsingPMC": "3: Installera med Package Manager-konsolen", + "PackageDetailPage_InstallingUsingPMCDescription1": "Öppna Package Manager Console i Visual Studio (Verktyg -> Nuget Package Manager -> Package Manager Console) och kör följande kommando", + "UIOptions": "Alternativ för anvĂ€ndargrĂ€nssnitt", + "Testimonials": "VittnesmĂ„l", + "CoolestCompaniesUseABPFramework": "De coolaste företagen anvĂ€nder ABP-ramverket", + "Index_Page_Testimonial_1": "ABP Framework Ă€r inte bara ett verktyg utan en katalysator som har pĂ„skyndat min tillvĂ€xt som utvecklare. Det har gjort det möjligt för mig att bygga nya funktioner snabbare Ă€n nĂ„gonsin tidigare, som pĂ„minner om andra anvĂ€ndares erfarenheter. Det enhetliga kodningsmönstret har effektiviserat mina projekt, vilket ger mig mer tid att fokusera pĂ„ att skapa snarare Ă€n att felsöka.\nJag skulle sĂ€ga att ABP-ramverket har varit hörnstenen i min tidiga professionella resa. Det har underlĂ€ttat min övergĂ„ng frĂ„n en aspirerande utvecklare till en sjĂ€lvsĂ€ker yrkesman som Ă€r redo att göra avtryck i programvaruvĂ€rlden. Jag ser fram emot de spĂ€nnande projekt som vĂ€ntar mig, med vetskapen om att ABP kommer att finnas dĂ€r för att vĂ€gleda mig. Det Ă€r mer Ă€n bara en produkt; det Ă€r en partner i framgĂ„ng.", + "Index_Page_Testimonial_2": "ABP Framework Ă€r inte bara ett ramverk, det Ă€r ocksĂ„ en vĂ€gledning för projektutveckling / hantering, eftersom det ger DDD, GenericRepository, DI, Microservice, Modularity utbildningar. Även om du inte kommer att anvĂ€nda sjĂ€lva ramverket kan du utveckla dig sjĂ€lv med abp.io/docs som Ă€r vĂ€l och professionellt förberedda. (OpenIddict, Redis, Quartz etc.)\nEftersom mĂ„nga saker Ă€r förbyggda förkortar det projektutvecklingstiden avsevĂ€rt. (SĂ„som inloggningssida, undantagshantering, datafiltrering-sĂ„dd, revisionsloggning, lokalisering, automatisk api-kontroller etc.)\nSom ett exempel frĂ„n vĂ„r app har jag anvĂ€nt Local Event Bus för lagerstyrning. SĂ„ jag kan hantera orderrörelser genom att skriva lagerhanterare.\nDet Ă€r underbart att inte förlora tid för CreationTime, CreatorId. De fylls i automatiskt.", + "VideosLoginAndRegisterMessage": "För att kunna titta pĂ„ videor mĂ„ste du logga in.", + "Filter": "Filter", + "VideoCourses": "Viktiga videor", + "TestimonialText": "Ditt vittnesmĂ„l", + "Position": "Position", + "ExperienceYear": "Antal Ă„rs erfarenhet", + "FullName": "FullstĂ€ndigt namn", + "CompanySize": "Företagets storlek", + "TestimonialTitle": "LĂ„t oss höra ditt vittnesmĂ„l", + "TestimonialInfo": "Vad vĂ„ra kunder sĂ€ger Ă€r viktigt! BerĂ€tta om din erfarenhet av vĂ„ra produkter och tjĂ€nster. Vi rekommenderar att du skriver din testimonial pĂ„ engelska för att nĂ„ ut till en bredare publik.", + "Country": "Land", + "TestimonialTextPlaceholder": "Skriv en kort berĂ€ttelse om hur ABP hjĂ€lpte dig att bygga och leverera ditt projekt.", + "PositionPlaceholder": "Din position pĂ„ företaget", + "SelectExperienceYearPlaceholder": "Hur mĂ„nga Ă„r har du arbetat inom mjukvarubranschen", + "FullNamePlaceholder": "Ditt fullstĂ€ndiga namn", + "CompanyNamePlaceholder": "Ditt företagsnamn", + "SelectCompanySizePlaceholder": "Antal anstĂ€llda", + "ImagePlaceholder": "Din bild", + "SelectCountryPlaceholder": "Ditt land", + "YouAreNotAuthorizedToWriteTestimonial": "För att kunna skriva ett rekommendationsbrev mĂ„ste du vara inloggad.", + "UnAuthorizeTestimonialInfo": "Din Ă„sikt Ă€r viktig! Logga in för att dela den.", + "TheFileIsTooLargeForImage": "Din profilbild kan inte vara mer Ă€n {0} MB", + "ThisExtensionIsNotAllowedForImage": "Denna förlĂ€ngning Ă€r inte tillĂ„ten.", + "FileUploadError": "Fel vid filuppladdning", + "TestimonialSend": "Tack sĂ„ mycket! Vi har tagit emot ditt vittnesmĂ„l.
Vi kommer att granska och ta nĂ€sta steg snart.", + "Title": "Titel", + "TitlePlaceholder": "Programvaruutvecklare, CTO etc.", + "characters": "karaktĂ€rer", + "Testimonial_YourProfilePicture": "Din profilbild (endast {0})", + "BootstrapCardTitle": "Detta Ă€r ett exempel pĂ„ en kortkomponent som byggts av ABP bootstrap card tag helper.", + "GoSomewhere": "Åk nĂ„gonstans →.", + "ABPTestimonialTitle": "Nytt vittnesmĂ„l", + "ABPTestimonialDescription": "Skicka in din testimonial till ABP Community genom att dela med dig av dina erfarenheter och feedback om ramverket.", + "NotValidEmailAddress": "E-postfĂ€ltet Ă€r inte en giltig e-postadress.", + "EmailAddressMaxLength": "FĂ€ltet Email mĂ„ste vara en strĂ€ng med en maximal lĂ€ngd pĂ„ 255.", + "EmailAddressRequired": "FĂ€ltet E-post Ă€r obligatoriskt.", + "PasswordLength": "FĂ€ltet Password mĂ„ste vara en strĂ€ng med en maximal lĂ€ngd pĂ„ 32.", + "PasswordRequired": "FĂ€ltet Password (Lösenord) Ă€r obligatoriskt.", + "AddressLength": "FĂ€ltet Address mĂ„ste vara en strĂ€ng med en maximal lĂ€ngd pĂ„ 255.", + "GenderRequired": "FĂ€ltet Gender (kön) Ă€r obligatoriskt.", + "LeaveUsReview": "LĂ€mna oss en recension", + "ABPVideoCoursesDescription": "LĂ€r dig grundlĂ€ggande begrepp och anvĂ€ndning av ABP Framework i denna videokursserie. Perfekt för nybörjare!", + "ABPVideoCoursesPageDescription": "LĂ€r dig grunderna i ABP-ramverket genom videokurser som skapats av ABP-teamet. I den hĂ€r videoserien fĂ„r du lĂ€ra dig de viktigaste Ă€mnena i ABP-ramverket. Siffrorna i varje video Ă€r skrivna enligt inlĂ€rningsflödet.", + "DocumentationButtonTitle": "Dokumentation", + "ABPVideoCoursesTitle": "Viktiga videor", + "LovedDevelopers": "Älskad av tusentals utvecklare
runt om i vĂ€rlden", + "ABPIOPlatformPackages": "ABP-paket", + "AbpPackagesDescription": "Utöka din applikation med olika paket som finns i ABP och lĂ€gg till funktioner och egenskaper.", + "Cancel": "Avbryt", + "Continue": "FortsĂ€tt", + "WhatIsTheABPIOPlatform": "Vad Ă€r ABP-plattformen?", + "AbpIoPlatformExplanation1": "ABP Platform Ă€r en omfattande infrastruktur för applikationsutveckling baserad pĂ„ .NET- och ASP.NET Core-plattformarna. Den fyller gapet mellan den enkla ASP.NET Core-plattformen och de komplexa krav som stĂ€lls vid utveckling av programvara för moderna företag.", + "AbpIoPlatformExplanation2": "I kĂ€rnan tillhandahĂ„ller det ett open source och gratis ramverk som bestĂ„r av hundratals NuGet- och NPM-paket, som alla erbjuder olika funktioner. KĂ€rnramverket Ă€r modulĂ€rt, tematiserbart och kompatibelt med mikrotjĂ€nster, vilket ger en komplett arkitektur och en robust infrastruktur. Detta gör att du kan fokusera pĂ„ din affĂ€rskod snarare Ă€n att upprepa dig sjĂ€lv för varje nytt projekt. Det Ă€r baserat pĂ„ bĂ€sta praxis för programvaruutveckling och integrerar populĂ€ra verktyg som du redan kĂ€nner till. Ramverket Ă€r helt gratis, open source och community-drivet.", + "AbpIoPlatformExplanation3": "ABP Platform erbjuder gratis och betalda licensalternativ. Beroende pĂ„ din licenstyp fĂ„r du tillgĂ„ng till flera produktionsfĂ€rdiga startmallar, mĂ„nga förbyggda applikationsmoduler, UI-teman, CLI och GUI-verktyg, support och mycket mer.", + "WhatAreTheDifferencesBetweenFreeAndPaid": "Vilka Ă€r skillnaderna mellan de fria och kommersiella licenserna?", + "WhatAreTheDifferencesBetweenFreeAndPaidExplanation1": "ABP-licensen för fri (öppen kĂ€llkod) omfattar kĂ€rnramverket, grundlĂ€ggande startmallar, grundlĂ€ggande moduler, grundlĂ€ggande teman och community-utgĂ„van av ABP Studio.", + "WhatAreTheDifferencesBetweenFreeAndPaidExplanation2": "Kommersiella licenser erbjuder ytterligare funktioner, inklusive fler startmallar (t.ex. startmallen för mikrotjĂ€nster), professionella applikationsmoduler, ett fullfjĂ€drat UI-tema, professionella utgĂ„vor av ABP Studio, ABP Suite för kodgenerering, fler alternativ för mobila startapplikationer, premiumsupport och nĂ„gra andra fördelar.", + "WhatAreTheDifferencesBetweenFreeAndPaidExplanation3": "För mer information om skillnaderna mellan licenstyperna, se prissĂ€ttningssidan.", + "HowDoIUseTheABPIOPlatform": "Hur anvĂ€nder jag ABP-plattformen?", + "HowDoIUseTheABPIOPlatformExplanation": "ABP Framework utökar .NET-plattformen, vilket innebĂ€r att allt du kan göra med en vanlig .NET-lösning redan Ă€r möjligt med ABP Framework. Det gör det enkelt att komma igĂ„ng med en lĂ„g inlĂ€rningskurva. Se sidan Hur det fungerar för att lĂ€ra dig hur du anvĂ€nder ABP Platform i praktiken.", + "SupportPolicyFaqExplanation1": "Vi tillhandahĂ„ller tvĂ„ typer av support: Community-support för anvĂ€ndare med en icke-kommersiell licens och premium-support för kommersiella licensinnehavare. Community-support Ă€r tillgĂ€ngligt pĂ„ plattformar som GitHub och Stackoverflow, dĂ€r supporten Ă€r begrĂ€nsad. Å andra sidan tillhandahĂ„lls premiumsupport pĂ„ den officiella ABP Support-webbplatsen. HĂ€r besvaras dina frĂ„gor direkt av ABP:s kĂ€rnutvecklare, vilket garanterar support av högre kvalitet.", + "SupportPolicyFaqExplanation2": "Information om Premium-support: Vi ger endast support för den aktiva och den föregĂ„ende huvudversionen. Vi garanterar inte patchreleaser för den tredje och Ă€ldre huvudversionen. Till exempel, om den aktiva versionen Ă€r 7.0.0, kommer vi att slĂ€ppa patchversioner för bĂ„de 6.x.x och 7.x.x. Dessutom ger vi support endast för ABP Platform-relaterade problem. Detta innebĂ€r att inget stöd ges för tredjepartsapplikationer, molntjĂ€nster och andra perifera bibliotek som anvĂ€nds av ABP-produkter.", + "SupportPolicyFaqExplanation3": "Vi Ă„tar oss att anvĂ€nda kommersiellt rimliga anstrĂ€ngningar för att ge vĂ„ra kunder teknisk support under de officiella öppettiderna för \"Volosoft Bilisim A.S\". Vi förbinder oss dock inte till en SLA-svarstid (Service-Level Agreement), men vi kommer att försöka svara pĂ„ de tekniska frĂ„gorna sĂ„ snabbt som möjligt inom vĂ„ra officiella arbetstider. Om inte ett sĂ€rskilt avtal görs med kunden tillhandahĂ„lls support uteslutande pĂ„ {1}. Dessutom Ă€r privat e-postsupport endast tillgĂ€nglig för innehavare av Enterprise-licens.", + "HowManyProducts": "Hur mĂ„nga olika produkter/lösningar kan jag bygga?", + "HowManyDevelopers": "Hur mĂ„nga utvecklare kan arbeta med lösningar som anvĂ€nder ABP Platform?", + "HowManyDevelopersExplanation": "ABP.IO-licenser utfĂ€rdas per utvecklare. Olika licenstyper har varierande grĂ€nser för utvecklare. Du kan dock lĂ€gga till fler utvecklare till vilken licenstyp som helst nĂ€r du behöver. För information om licenstyper, utvecklargrĂ€nser och kostnader för ytterligare utvecklare, se prissĂ€ttningssidan.", + "ChangingLicenseTypeExplanation": "Du kan uppgradera till en högre licens genom att betala mellanskillnaden under din aktiva licensperiod. NĂ€r du uppgraderar till en högre licensplan fĂ„r du fördelarna med den nya planen, men licensuppgraderingen Ă€ndrar inte licensens utgĂ„ngsdatum. Dessutom kan du lĂ€gga till nya utvecklarplatser till din befintliga licens. För detaljer om hur mĂ„nga utvecklare som kan arbeta med lösningar som anvĂ€nder ABP Platform, se 'Hur mĂ„nga utvecklare kan arbeta med lösningar som anvĂ€nder ABP Platform?' frĂ„gan.", + "DowngradeLicensePlanExplanation": "Du kan inte nedgradera din befintliga licensplan. För ytterligare information, kontakta oss pĂ„ info@abp.io.", + "LicenseTransferExplanation": "Ja, det gör jag! NĂ€r du köper en licens blir du licensinnehavare, vilket ger dig tillgĂ„ng till sidan för organisationshantering. En organisation innehĂ„ller roller för Ă€gare och utvecklare. Ägare kan hantera utvecklarplatser och tilldela utvecklare. Varje tilldelad utvecklare loggar in i systemet med kommandot ABP CLI och har behörigheter för utveckling och support.", + "LicenseExtendUpgradeDiff": "Vad Ă€r skillnaden mellan licensförnyelse och uppgradering?", + "LicenseExtendUpgradeDiffExplanation1": "Förnyelse: Genom att förnya din licens kommer du att fortsĂ€tta att fĂ„ premiumsupport och uppdateringar, bĂ„de större och mindre, för moduler, verktyg och teman. Dessutom kommer du att kunna skapa nya projekt och anvĂ€nda ABP Suite och ABP Studio, vilket kan pĂ„skynda din utvecklingsprocess avsevĂ€rt. NĂ€r du förnyar din licens lĂ€ggs ett Ă„r till licensens utgĂ„ngsdatum.", + "LicenseExtendUpgradeDiffExplanation2": "Uppgradering: Genom att uppgradera din licens kommer du att befordras till en högre licensplan, vilket gör att du kan fĂ„ ytterligare fördelar. Kolla in prissĂ€ttningssidan för att se skillnaderna mellan licensplanerna. Å andra sidan Ă€ndras inte licensens utgĂ„ngsdatum nĂ€r du uppgraderar! Om du vill förlĂ€nga licensens slutdatum mĂ„ste du förnya din licens.", + "WhatHappensWhenLicenseEndsExplanation1": "ABP-licenser Ă€r eviga licenser. NĂ€r din licens löper ut kan du fortsĂ€tta att utveckla ditt projekt utan att behöva förnya den. Din licens levereras med en ettĂ„rig uppdaterings- och premiumsupportplan. För att fĂ„ nya funktioner, prestandaförbĂ€ttringar, buggfixar och fortsatt support, samt för att anvĂ€nda ABP Suite och ABP Studio, mĂ„ste du förnya din licens. NĂ€r din licens löper ut;", + "WhatHappensWhenLicenseEndsExplanation2": "Du kan inte skapa nya lösningar med hjĂ€lp av pro startup-mallarna, men du kan fortsĂ€tta att utveckla dina befintliga applikationer för alltid.", + "WhatHappensWhenLicenseEndsExplanation3": "Du kommer att fĂ„ uppdateringar för programmoduler och teman i din MINOR-version (exklusive RC- eller Preview-versioner). Om du t.ex. anvĂ€nder v3.2.0 av en modul kan du fortfarande fĂ„ uppdateringar för v3.2.x (v3.2.1, v3.2.5... etc.) av den modulen. Du kan dock inte fĂ„ uppdateringar för nĂ€sta större eller mindre version (t.ex. v3.3.0, v3.3.3, 4.x.x... etc.). Om t.ex. den senaste versionen var v4.4.3 nĂ€r din licens löpte ut och senare versioner 4.4.4 och 4.5.0 publicerades, skulle du ha tillgĂ„ng till v4.4.x men inte till v4.5.x.", + "WhatHappensWhenLicenseEndsExplanation4": "Du kan inte installera nya programmoduler och teman som lĂ€ggs till i din lösning efter att din licens har upphört att gĂ€lla.", + "WhatHappensWhenLicenseEndsExplanation5": "Du kan inte anvĂ€nda ABP Suite.", + "WhatHappensWhenLicenseEndsExplanation6": "Du kan inte anvĂ€nda ABP Studios proffsfunktioner (du kan anvĂ€nda ABP Studios Community Edition-funktioner)", + "WhatHappensWhenLicenseEndsExplanation7": "Du kommer inte lĂ€ngre att ha tillgĂ„ng till premiumsupport.", + "WhatHappensWhenLicenseEndsExplanation8": "Du kan förnya (förlĂ€nga) din licens för att fortsĂ€tta att fĂ„ dessa förmĂ„ner. Om du förnyar din licens inom {3} dagar efter att den har löpt ut kommer följande rabatter att tillĂ€mpas: Teamlicens {0}; Företagslicens {1}; Enterprise-licens {2}.", + "WhenShouldIRenewMyLicenseExplanation1": "Om du förnyar din licens inom 30 dagar efter att den har löpt ut kommer följande rabatter att tillĂ€mpas:", + "WhenShouldIRenewMyLicenseExplanation2": "{0} för Team Licenser;", + "WhenShouldIRenewMyLicenseExplanation3": "{0} för Business- och Enterprise-licenser;", + "WhenShouldIRenewMyLicenseExplanation4": "Om du förnyar din licens mer Ă€n {0} dagar efter utgĂ„ngsdatumet kommer dock förnyelsepriset att vara detsamma som det ursprungliga inköpspriset för licensen, utan att nĂ„gra rabatter tillĂ€mpas pĂ„ din förnyelse.", + "DoesTheSubscriptionRenewAutomaticallyExplanationAutoRenewal": "ABP Platform tillĂ„ter dig att automatiskt förnya din licens. Detta Ă€r en valfri gratis tjĂ€nst. Du kan vĂ€xla den hĂ€r funktionen nĂ€r du köper en ny licens eller senare aktivera den frĂ„n din organisationshanteringssida. Om du vill slĂ„ pĂ„ eller av den automatiska förnyelsen, besök organisationens hanteringssida, gĂ„ till avsnittet \"Betalningsmetod\" och antingen markera eller avmarkera kryssrutan \"Automatisk förnyelse\". NĂ€r du stĂ€nger av funktionen för automatisk förnyelse kommer det att vara ditt ansvar att förnya din licens manuellt.", + "TrialPlanExplanation": "Ja, för att starta din kostnadsfria testperiod, vĂ€nligen kontakta marketing@volosoft.com. Vi erbjuder ocksĂ„ en 30-dagars pengarna-tillbaka-garanti för Team-licensen, utan nĂ„gra frĂ„gor! Du kan begĂ€ra full Ă„terbetalning inom de första 30 dagarna efter att du köpt licensen. För Business- och Enterprise-licenser ger vi 60% Ă„terbetalning om det begĂ€rs inom 30 dagar efter köpet. Denna policy beror pĂ„ att den fullstĂ€ndiga kĂ€llkoden för alla moduler och teman ingĂ„r i Business- och Enterprise-licenserna.", + "BlazoriseLicenseExplanation": "Vi har ett avtal mellan Volosoft och Megabit, enligt vilket Blazorise-licensen buntas med ABP-plattformens kommersiella licenser. DĂ€rför behöver vĂ„ra betalda anvĂ€ndare inte köpa en ytterligare Blazorise-licens.", + "HowToUpgradeExplanation1": "NĂ€r du skapar en ny applikation med hjĂ€lp av ABP:s startmallar anvĂ€nds alla moduler och teman som NuGet- och NPM-paket. Den hĂ€r instĂ€llningen gör det enkelt att uppgradera till nyare versioner av paketen.", + "HowToUpgradeExplanation2": "Förutom de vanliga NuGet/NPM-uppgraderingarna tillhandahĂ„ller ABP CLI ett update-kommando som automatiskt hittar och uppgraderar alla ABP-relaterade paket i din lösning.", + "HowToUpgradeExplanation3": "Utöver automatiska paketuppgraderingar publicerar vi ocksĂ„ en migreringsguide om den nya versionen krĂ€ver nĂ„gra manuella steg för att uppgradera eller om den har nĂ„gra anteckningar som ska beaktas. FortsĂ€tt följa ABP-bloggen för nyheter om nya utgĂ„vor.", + "DatabaseSupportExplanation": "ABP Ă€r databasagnostisk och kan arbeta med alla databasleverantörer i sin natur. För en lista över för nĂ€rvarande implementerade leverantörer, vĂ€nligen kolla in Data Access-dokumentet.", + "MicroserviceSupportExplanation1": "Ja, det stöder mikrotjĂ€nstarkitekturer.", + "MicroserviceSupportExplanation2": "Ett av de viktigaste mĂ„len med ABP-plattformen Ă€r att tillhandahĂ„lla en bekvĂ€m infrastruktur för att skapa mikrotjĂ€nstlösningar. Alla officiella ABP-applikationsmoduler Ă€r utformade för att stödja mikroservice-distributionsscenarier (med eget API och databas) genom att följa dokumentet Module Development Best Practices.", + "MicroserviceSupportExplanation3": "ABP Platforms kommersiella licenser innehĂ„ller ocksĂ„ en microservice startup template som kan anvĂ€ndas för att direkt skapa en produktionsfĂ€rdig baslösning för ditt microservice-system.", + "MicroserviceSupportExplanation4": "För icke-betalande anvĂ€ndare tillhandahĂ„ller vi ocksĂ„ en exempel pĂ„ e-handelslösning som du kan kontrollera för att förstĂ„ hur du kan bygga din mikrotjĂ€nstlösning baserat pĂ„ ABP-ramverket.", + "MicroserviceSupportExplanation5": "Ett mikrotjĂ€nstsystem Ă€r dock en lösning och varje lösning kommer att ha olika krav, inklusive nĂ€tverkstopologi, kommunikationsscenarier, autentiseringsmöjligheter, beslut om databashardning/partitionering, körtidskonfigurationer, systemintegrationer frĂ„n tredje part och mĂ„nga fler aspekter. ABP-plattformen tillhandahĂ„ller infrastruktur för mikroservicescenarier, mikroservice-kompatibla moduler, exempel och dokumentation för att hjĂ€lpa till att bygga din egen lösning. FörvĂ€nta dig dock inte att direkt ladda ner din idealiska, anpassade lösning som Ă€r förbyggd Ă„t dig. Du mĂ„ste förstĂ„ den och sammanföra specifika delar baserat pĂ„ dina krav.", + "WhereCanIDownloadSourceCodeExplanation": "Du kan ladda ner kĂ€llkoden för alla ABP-moduler, Angular-paket och teman via ABP Suite, ABP Studio eller ABP CLI. Kolla in forumfrĂ„gan: Hur laddar man ner kĂ€llkoden?", + "CommercialLicenses": "Kommersiella licenser", + "WhatIsDifferencePaidLicenses": "Vad Ă€r skillnaden mellan en personlig licens och andra typer av betalda licenser?", + "DifferencePaidLicenseExplanation1": "En icke-personlig betald licens Ă€r standardlicensalternativet för företag och kommersiella enheter. Licenser köps av företaget och kan anvĂ€ndas av vem som helst inom organisationen.", + "DifferencePaidLicenseExplanation2": "Personal License Ă€r Ă„ andra sidan en typ av licens för privatpersoner/freelancers/oberoende utvecklare som köper licenser med egna medel och enbart för eget bruk. Den personliga licensen har vissa begrĂ€nsningar. I den hĂ€r planen kan det bara finnas 1 utvecklare som arbetar med ABP-projektet och inga ytterligare utvecklare fĂ„r lĂ€ggas till senare i projektet. Nedladdning av kĂ€llkoden för PRO-moduler Ă€r inte tillĂ„ten i den personliga licensplanen. Det finns inte heller nĂ„gon mikrotjĂ€nstmall och nivĂ„ (skiktad) arkitektur i denna plan. Personliga licensinnehavare kan endast anvĂ€nda följande moduler: Konto, Audit Log UI, GDPR, Identity, Language Management, LeptonX PRO, OpenIddict UI och SaaS. Personliga licensinnehavare kan inte anvĂ€nda följande moduler: Chatt, CMS-Kit PRO, FormulĂ€r, Identity Server User Interface, Lepton Theme, Text Template Management, File Management och Twilio SMS. Du kan komma Ă„t den fullstĂ€ndiga modullistan pĂ„ abp.io/modules.", + "ReadyToStart": "Är du redo att börja?", + "TransformYourIdeasIntoRealityWithOurProfessionalNETDevelopmentServices": "Förvandla dina idĂ©er till verklighet med vĂ„ra professionella .NET-utvecklingstjĂ€nster.", + "ReadyToUpgrade": "Är du redo att uppgradera?", + "SendServiceRequest": "Skicka en servicebegĂ€ran", + "Permission:CommunityPost": "Gemenskapens inlĂ€gg", + "Permission:Edit": "Redigera", + "Waiting": "VĂ€ntar pĂ„", + "Approved": "GodkĂ€nd", + "Rejected": "Avvisad", + "Wait": "VĂ€nta", + "Approve": "GodkĂ€nna", + "Reject": "Avvisa", + "ReadPost": "LĂ€s inlĂ€gget", + "Status": "Status", + "ContentSource": "KĂ€lla för innehĂ„ll", + "Details": "Detaljer", + "CreationTime": "Skapelsetid", + "Save": "Spara", + "SameUrlAlreadyExist": "Samma webbadress finns redan om du vill lĂ€gga till det hĂ€r inlĂ€gget, bör du Ă€ndra webbadressen!", + "UrlIsNotValid": "Url Ă€r inte giltig.", + "UrlNotFound": "Url hittades inte.", + "UrlContentNotFound": "Url-innehĂ„llet hittades inte.", + "Summary": "Sammanfattning", + "MostRead": "Mest lĂ€st", + "Latest": "Senaste", + "ContributeAbpCommunity": "Bidra till ABP:s gemenskap", + "ContributionGuide": "Bidragsguide", + "BugReport": "Bugg-rapport", + "SeeAllPosts": "Se alla inlĂ€gg", + "WelcomeToABP": "VĂ€lkommen till ABP", + "FeatureRequest": "BegĂ€ran om funktion", + "CreatePostTitleInfo": "Titel pĂ„ det inlĂ€gg som ska visas i inlĂ€ggslistan.", + "CreatePostSummaryInfo": "En kort sammanfattning av inlĂ€gget som ska visas i inlĂ€ggslistan. Maximal lĂ€ngd: {0}", + "CreatePostCoverInfo": "För att skapa ett effektivt inlĂ€gg, lĂ€gg till ett omslagsfoto. Ladda upp bilder med bildförhĂ„llandet 16:9 för bĂ€sta visning.
Maximal filstorlek: 1MB.", + "ThisExtensionIsNotAllowed": "Denna förlĂ€ngning Ă€r inte tillĂ„ten.", + "TheFileIsTooLarge": "Filen Ă€r för stor.", + "GoToThePost": "GĂ„ till inlĂ€gget", + "GoToTheVideo": "GĂ„ till videon", + "Contribute": "Bidra", + "OverallProgress": "Övergripande framsteg", + "Done": "Klar", + "Open": "Öppna", + "Closed": "StĂ€ngt", + "RecentQuestionFrom": "Senaste frĂ„gan frĂ„n {0}", + "Stackoverflow": "Stackoverflow", + "Votes": "röster", + "Answer": "Svar", + "views": "utsikt", + "Answered": "Besvarad", + "WaitingForYourAnswer": "VĂ€ntar pĂ„ ditt svar", + "Asked": "aska", + "AllQuestions": "Alla frĂ„gor", + "NextVersion": "NĂ€sta version", + "MilestoneErrorMessage": "Det gick inte att fĂ„ aktuell milstolpsinformation frĂ„n Github.", + "QuestionItemErrorMessage": "Kunde inte fĂ„ de senaste frĂ„geuppgifterna frĂ„n Stackoverflow.", + "Oops": "Oops!", + "CreatePostSuccessMessage": "InlĂ€gget har skickats in framgĂ„ngsrikt. Det kommer att publiceras efter en granskning frĂ„n webbplatsens administratör.", + "Browse": "BlĂ€ddra", + "CoverImage": "Omslagsbild", + "ShareYourExperiencesWithTheABPFramework": "Dela dina erfarenheter av ABP-ramverket!", + "UpdateUserWebSiteInfo": "Exempel: https://johndoe.com", + "UpdateUserTwitterInfo": "Exempel: johndoe", + "UpdateUserGithubInfo": "Exempel: johndoe", + "UpdateUserLinkedinInfo": "Exempel: https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "Exempel: Volosoft", + "UpdateUserJobTitleInfo": "Exempel: Programvaruutvecklare", + "UserName": "AnvĂ€ndarnamn", + "Company": "Företag", + "PersonalWebsite": "Personlig webbplats", + "RegistrationDate": "Registreringsdatum", + "Social": "Sociala", + "Biography": "Biografi", + "HasNoPublishedPostsYet": "har inga publicerade inlĂ€gg Ă€nnu", + "LatestGithubAnnouncements": "Senaste Github-tillkĂ€nnagivanden", + "SeeAllAnnouncements": "Se alla tillkĂ€nnagivanden", + "LatestBlogPost": "Senaste blogginlĂ€gget", + "Edit": "Redigera", + "ProfileImageChange": "Ändra profilbilden", + "BlogItemErrorMessage": "Kunde inte fĂ„ den senaste informationen om blogginlĂ€gg frĂ„n ABP.", + "PlannedReleaseDate": "Planerat utgivningsdatum", + "CommunityPostRequestErrorMessage": "Det gick inte att fĂ„ den senaste postförfrĂ„gan frĂ„n Github.", + "PostRequestFromGithubIssue": "Det finns inga postförfrĂ„gningar nu.", + "LatestPosts": "Senaste inlĂ€gg", + "ArticleRequests": "BegĂ€r ett innehĂ„ll", + "ArticleRequestsDescription": "Vill du se ett specifikt innehĂ„ll hĂ€r? Du kan be communityn att skapa det!", + "LatestContentRequests": "Senaste förfrĂ„gningar om innehĂ„ll", + "AllPostRequests": "Se alla postförfrĂ„gningar", + "SubscribeToTheNewsletter": "Prenumerera pĂ„ nyhetsbrevet", + "NewsletterEmailDefinition": "FĂ„ information om vad som hĂ€nder i ABP, t.ex. nya utgĂ„vor, fria kĂ€llor, inlĂ€gg och mycket mer.", + "NoThanks": "Nej, tack.", + "MaybeLater": "Kanske senare", + "JoinOurPostNewsletter": "AnmĂ€l dig till vĂ„rt nyhetsbrev", + "Marketing": "Marknadsföring", + "CommunityPrivacyPolicyConfirmation": "Jag godkĂ€nner de allmĂ€nna villkoren och Integritetspolicy.", + "PostRequestMessageTitle": "Öppna en frĂ„ga pĂ„ GitHub för att begĂ€ra ett inlĂ€gg / en handledning som du vill se pĂ„ den hĂ€r webbplatsen.", + "PostRequestMessageBody": "HĂ€r Ă€r en lista över de inlĂ€gg som efterfrĂ„gats av communityn. Vill du skriva ett efterfrĂ„gat inlĂ€gg? Klicka pĂ„ önskemĂ„let och delta i diskussionen.", + "Language": "SprĂ„k", + "CreatePostLanguageInfo": "SprĂ„ket för inlĂ€ggets innehĂ„ll.", + "VideoPost": "VideoinlĂ€gg", + "Post": "Post", + "Read": "LĂ€s", + "CreateGithubPostUrlInfo": "FullstĂ€ndig URL till Markdown-filen pĂ„ GitHub (exempel).", + "CreateVideoContentUrlInfo": "InlĂ€ggets ursprungliga URL pĂ„ Youtube.", + "CreateExternalPostUrlInfo": "InlĂ€ggets ursprungliga externa webbadress.", + "VideoContentForm": "Skicka in video pĂ„ YouTube", + "GithubPostForm": "Skicka inlĂ€gg pĂ„ GitHub", + "ExternalPostForm": "Skicka in ett externt innehĂ„ll", + "HowToPost": "Hur postar jag?", + "Posts": "InlĂ€gg", + "VideoUrl": "Video webbadress", + "GithubPostUrl": "Url för GitHub-post", + "ExternalPostUrl": "Url för externt inlĂ€gg", + "ThankYouForContribution": "Tack för att du bidrar till ABP Community. Vi tar gĂ€rna emot artiklar och videohandledning om ABP Framework, .NET, ASP.NET Core och allmĂ€nna Ă€mnen inom programvaruutveckling.", + "GithubPost": "GitHub-inlĂ€gg", + "GithubPostSubmitStepOne": "1. Skriv ett inlĂ€gg pĂ„ ett offentligt GitHub-arkiv med Markdown-formatet. exempel", + "GithubPostSubmitStepTwo": "2. Skicka in din URL till inlĂ€gget med hjĂ€lp av formulĂ€ret.", + "GithubPostSubmitStepThree": "3. Ditt inlĂ€gg kommer att Ă„terges pĂ„ denna webbplats.", + "YoutubeVideo": "Youtube-video", + "YoutubeVideoSubmitStepOne": "1. Publicera din video pĂ„ YouTube.", + "YoutubeVideoSubmitStepTwo": "2. Skicka in video-URL:en med hjĂ€lp av formulĂ€ret.", + "YoutubeVideoSubmitStepThree": "3. Besökare kommer att kunna titta pĂ„ ditt videoinnehĂ„ll direkt pĂ„ denna webbplats.", + "ExternalContent": "Externt innehĂ„ll", + "ExternalContentSubmitStepOne": "1. Skapa ett innehĂ„ll pĂ„ en publik plattform (Medium, din egen blogg eller var du vill).", + "ExternalContentSubmitStepTwo": "2. Skicka in URL:en för ditt innehĂ„ll med hjĂ€lp av formulĂ€ret.", + "ExternalContentSubmitStepThree": "3. Besökare omdirigeras till innehĂ„llet pĂ„ den ursprungliga webbplatsen.", + "ChooseYourContentType": "VĂ€lj det sĂ€tt som du vill lĂ€gga till ditt innehĂ„ll pĂ„.", + "PostContentViaGithub": "Jag vill lĂ€gga till mitt inlĂ€gg med GitHub i enlighet med markdown-reglerna.", + "PostContentViaYoutube": "Jag vill dela mina videor som finns pĂ„ Youtube hĂ€r.", + "PostContentViaExternalSource": "Jag vill lĂ€gga till det innehĂ„ll jag publicerade pĂ„ en annan plattform hĂ€r.", + "GitHubUserNameValidationMessage": "Ditt Github-anvĂ€ndarnamn kan inte innehĂ„lla blanksteg, kontrollera att ditt Github-anvĂ€ndarnamn Ă€r korrekt.", + "PersonalSiteUrlValidationMessage": "URL:en till din personliga webbplats fĂ„r inte innehĂ„lla blanksteg, kontrollera att URL:en till din personliga webbplats Ă€r korrekt.", + "TwitterUserNameValidationMessage": "Ditt Twitter-anvĂ€ndarnamn fĂ„r inte innehĂ„lla blanksteg, kontrollera att ditt Twitter-anvĂ€ndarnamn Ă€r korrekt.", + "LinkedinUrlValidationMessage": "Din Linkedin-URL fĂ„r inte innehĂ„lla blanksteg, kontrollera att din Linkedin-URL Ă€r korrekt.", + "NoPostsFound": "Inga inlĂ€gg hittades!", + "SearchInPosts": "Sök i inlĂ€gg...", + "MinimumSearchContent": "Du mĂ„ste ange minst 3 tecken!", + "Volo.AbpIo.Domain:060001": "KĂ€llans URL(\"{PostUrl}\") Ă€r inte Github URL", + "Volo.AbpIo.Domain:060002": "InlĂ€ggets innehĂ„ll Ă€r inte tillgĂ€ngligt frĂ„n Github(\"{PostUrl}\")-resursen.", + "Volo.AbpIo.Domain:060003": "Inget innehĂ„ll i inlĂ€gget hittades!", + "JoinTheABPCommunity": "GĂ„ med i ABP:s gemenskap", + "ABPCommunityTalks": "ABP:s samtal med allmĂ€nheten", + "LiveDemo": "Live Demo", + "GetLicense": "Skaffa licens", + "SourceCode": "KĂ€llkod", + "LeaveComment": "LĂ€mna kommentar", + "ShowMore": "Visa mer", + "NoPublishedPostsYet": "Inga publicerade inlĂ€gg Ă€nnu.", + "FullURL": "Full URL", + "JobTitle": "Befattning", + "Prev": "Före", + "Previous": "FöregĂ„ende", + "Next": "NĂ€sta", + "Share": "Aktie", + "SortBy": "Sortera efter", + "NoPublishedEventsYet": "Inga publicerade hĂ€ndelser Ă€nnu.", + "SubscribeYoutubeChannel": "Prenumerera pĂ„ Youtube-kanalen", + "Enum:EventType:0": "Samtal", + "MemberNotPublishedPostYet": "Denna medlem har inte publicerat nĂ„gra inlĂ€gg Ă€nnu.", + "MemberNotPublishedArticlesYet": "Denna medlem har inte publicerat nĂ„gra artiklar Ă€nnu.", + "MemberNotPublishedVideosYet": "Denna medlem har inte publicerat nĂ„gra videor Ă€nnu.", + "TimeAgo": "för {0} sedan", + "Discord_Page_JoinCommunityMessage": "GĂ„ med i ABP Discord Community", + "Discord_Page_Announce": "Vi Ă€r glada att kunna presentera ABP Community Discord Server!", + "Discord_Page_Description_1": "ABP Community har vuxit sedan dag ett. Vi ville ta det till nĂ€sta steg genom att skapa en officiell ABP Discord-server sĂ„ att ABP-communityn kan interagera med varandra med hjĂ€lp av underverk som snabbmeddelanden.", + "Discord_Page_Description_2": "ABP Community Discord Server Ă€r platsen dĂ€r du kan visa upp dina skapelser med ABP Framework, dela de tips som fungerade för dig, fĂ„ de senaste nyheterna och tillkĂ€nnagivandena om ABP Framework, bara chatta med medlemmar i samhĂ€llet för att utbyta idĂ©er och ha kul!", + "Discord_Page_Description_3": "Denna ABP Community Discord Server Ă€r den officiella med ABP Core Team Ă€r nĂ€rvarande pĂ„ servern för att övervaka.", + "Discord_Page_JoinToServer": "GĂ„ med i ABP Discord Server", + "Events_Page_MetaTitle": "ABP:s evenemang för allmĂ€nheten", + "Events_Page_MetaDescription": "Live-showerna, som leds av ABP-teamet, Ă€r avslappnade sessioner fulla av community-innehĂ„ll, demonstrationer, frĂ„gor och svar och diskussioner om vad som hĂ€nder i ABP.", + "Events_Page_Title": "ABP Community Samtal", + "Members_Page_WritingFromUser": "LĂ€s skrivning frĂ„n {0} pĂ„ ABP Community.", + "Post_Create_Page_MetaTitle": "Ny tjĂ€nst i gemenskapen", + "Post_Create_Page_MetaDescription": "Skicka in dina egna inlĂ€gg till ABP:s communityplattform och bidra med dina insikter och erfarenheter.", + "Post_Create_Page_CreateNewPost": "Skapa nytt inlĂ€gg", + "Post_Index_Page_MetaDescription": "ABP Communitys syfte Ă€r att skapa en bidragsmiljö för utvecklare som anvĂ€nder ABP-ramverket.", + "Layout_Title": "{0} | ABP Gemenskap", + "Layout_MetaDescription": "Ett nav för ABP Framework, .NET och programvaruutveckling. FĂ„ tillgĂ„ng till artiklar, handledning, nyheter och bidra till ABP-communityn.", + "Index_Page_CommunityIntroduction": "Detta Ă€r ett nav för ABP Framework, .NET och programvaruutveckling. Du kan lĂ€sa artiklarna, titta pĂ„ videohandledningarna, fĂ„ information om ABP:s utvecklingsframsteg och ABP-relaterade evenemang, hjĂ€lpa andra utvecklare och dela med dig av din expertis till ABP-communityn.", + "TagsInArticle": "Taggar i artikel", + "IConsentToMedium": "Jag samtycker till publicering av detta inlĂ€gg pĂ„ https://medium.com/volosoft.", + "SearchResultsFor": "Sökresultat för \"{0}\"", + "SeeMoreVideos": "Se fler videor", + "DiscordPageTitle": "Discord", + "DiscordPageDescription": "GĂ„ med i ABP Community Discord för att chatta med andra medlemmar, diskutera idĂ©er och fĂ„ stöd om ABP.", + "ViewVideo": "Visa video", + "AbpCommunityTitleContent": "ABP Community - ABP-ramverk med öppen kĂ€llkod", + "CommunitySlogan": "En unik community-plattform för ABP-Ă€lskare.", + "RaffleIsNotActive": "Lottdragningen Ă€r inte aktiv", + "YouAreAlreadyJoinedToThisRaffle": "Du har redan gĂ„tt med i denna utlottning!", + "InvalidSubscriptionCode": "Ogiltig prenumerationskod", + "Raffle:{0}": "Lottdragning: {0}", + "Join": "GĂ„ med", + "Leave": "LĂ€mna", + "LoginToJoin": "Logga in för att gĂ„ med", + "ToEnd:": "För att avsluta:", + "ToStart:": "Det Ă€r en början:", + "days": "dagar", + "hrs": "timmar", + "min": "min", + "sec": "sek", + "Winners": "Vinnare", + "To{0}LuckyWinners": "till {0} lyckliga vinnare", + "ActiveRaffles": "Aktiva Rafflar.", + "UpcomingRaffles": "Kommande Rafflar", + "CompletedRaffles": "FĂ€rdigstĂ€llda Rafflar", + "NoActiveRaffleTitle": "Ingen aktiv utlottning Ă€r tillgĂ€nglig för tillfĂ€llet.", + "NoActiveRaffleDescription": "Ingen aktiv utlottning Ă€r tillgĂ€nglig för tillfĂ€llet.", + "RaffleSubscriptionCodeInputMessage": "Denna utlottning krĂ€ver en registreringskod. VĂ€nligen ange registreringskoden nedan:", + "RaffleSubscriptionCodeInputErrorMessage": "Registreringskoden Ă€r felaktig. VĂ€nligen försök igen.", + "GoodJob!": "Bra jobbat!", + "RaffleJoinSuccessMessage": "Du Ă€r nu registrerad för utlottningen. Du kommer att informeras via e-post om du vinner priset!", + "RaffleLoginAndRegisterMessage": "Du mĂ„ste logga in för att delta i utlottningen! Om du inte har registrerat dig Ă€nnu kan du skapa ett konto gratis nu.", + "Ok": "Ok", + "WaitingForTheDraw": "VĂ€nta pĂ„ dragningen!", + "AllAttendees": "Alla deltagare", + "SeeRaffleDetail": "Se Raffle detalj", + "SeeRaffle": "Se Raffle", + "ParticipationIsComplete": "Deltagandet Ă€r fullstĂ€ndigt.", + "ABPCoreDevelopmentTeam": "ABP Core utvecklingsteam", + "RegisterTheEvent": "Registrera evenemanget", + "GoToConferencePage": "GĂ„ till konferenssidan", + "BuyTicket": "Buy Ticket", + "SeeEvent": "Se evenemang", + "PreviousEvents": "Tidigare evenemang", + "OtherLiveEvents": "Andra live-evenemang", + "SponsoredConferences": "Sponsrade konferenser", + "SponsoredConferencesDescription": "Vi Ă€r stolta över att stödja .NET-communities och evenemang för programvaruutvecklare.", + "UpcomingEvents": "Kommande evenemang", + "UpcomingCommunityTalkEventDescription": "Live-showerna, som leds av ABP-teamet, Ă€r avslappnade sessioner fulla av community-innehĂ„ll, demonstrationer, frĂ„gor och svar och diskussioner om vad som hĂ€nder i ABP.", + "UpcomingConferenceEventDescription": "ABP .NET Conference Ă€r ett virtuellt evenemang för .NET-utvecklare dĂ€r de kan trĂ€ffas och lyssna pĂ„ föredrag om .NET-vĂ€rlden, vanliga metoder för programvaruutveckling och ABP Framework med öppen kĂ€llkod.", + "LastOneYear": "Senaste 1 Ă„ret", + "AllTimes": "Alla tider", + "TopContributors": "De största bidragsgivarna", + "{0}Posts": "{0} InlĂ€gg", + "LATESTPOSTS": "SENASTE INLÄGGNINGAR", + "NoContributorsFound": "Inga bidragsgivare hittades!", + "LatestPost": "Senaste inlĂ€gget", + "MEMBERSINCE{0}": "MEDLEM EFTERSOM {0}", + "CopyLink": "Kopiera lĂ€nk", + "ShareOnTwitter": "Dela pĂ„ Twitter", + "ShareOnLinkedIn": "Dela pĂ„ LinkedIn", + "MoreFrom{0}": "Mer frĂ„n {0}", + "SeeAllFrom{0}": "Se alla frĂ„n {0}", + "MostWatched": "Mest bevakade", + "Articles({0})": "Artiklar ({0})", + "Videos({0})": "Videor ({0})", + "LatestArticles": "Senaste artiklar", + "RaffleHeader": "Hej ABP Community Member!", + "RafflesInfo": "
Detta Àr utlottningssidan som Àr avsedd att visa vÄr uppskattning för att du Àr en aktiv gemenskapsmedlem. Vi gör ABP Community Talks ABP Dotnet Conference, deltar eller sponsrar .NET-relaterade evenemang dÀr vi ger bort nÄgra gÄvor.

Du kan följa den hÀr sidan för att se kommande lotterier, delta i dem eller se tidigare lotterier som vi dragit inklusive vinnarna.

Tack för att du Ă€r en aktiv medlem! Vi ses i de kommande lotterierna.", + "RafflesInfoTitle": "ABP Community Rafflar.", + "ToLuckyWinner": "till 1 lycklig vinnare", + "MarkdownSupported": "Stöd för Markdown.", + "VisitPage": "Besök sidan", + "VisitVideoCourseDescription": "Om du vill lĂ€ra dig grunderna i ABP-ramverket kan du kolla in videokurserna ABP Essentials.", + "EditProfile": "Redigera profil", + "ConfirmEmailForPost": "För att kunna göra inlĂ€gg mĂ„ste du bekrĂ€fta din e-post. GĂ„ till account.abp.io/Account/Manage och verifiera din e-postadress under fliken Personal Info.", + "DailyPostCreateLimitation": "Du har nĂ„tt den dagliga grĂ€nsen för skapande av inlĂ€gg. Du kan skapa ett nytt inlĂ€gg i {0}.", + "OrganizationManagement": "Organisation och ledning", + "OrganizationList": "Organisationslista", + "Volo.AbpIo.Commercial:010003": "Du Ă€r inte Ă€gare till den hĂ€r organisationen!", + "OrganizationNotFoundMessage": "Ingen organisation hittades!", + "DeveloperCount": "Tilldelade / totala utvecklare", + "QuestionCount": "Kvarvarande / totala frĂ„gor", + "Unlimited": "ObegrĂ€nsad", + "Owners": "Ägare", + "Owner": "Ägare", + "AddMember": "LĂ€gg till medlem", + "AddNewOwner": "LĂ€gg till ny Ă€gare", + "AddNewDeveloper": "LĂ€gg till ny utvecklare", + "Developers": "Utvecklare", + "LicenseType": "Typ av licens", + "Manage": "Hantera", + "SetDefault": "StĂ€ll in som standard", + "DefaultOrganization": "Standard", + "StartDate": "Startdatum", + "EndDate": "Slutdatum", + "Modules": "Moduler", + "LicenseExtendMessage": "Slutdatum för din licens förlĂ€ngs till {0}.", + "LicenseUpgradeMessage": "Din licens har uppgraderats till {0}.", + "LicenseExtendAdnUpgradeMessage": "Din licens har förlĂ€ngts till {0} och din licensplan har uppgraderats till {1}.", + "LicenseAddDeveloperMessage": "{0} utvecklare lĂ€ggs till i din licens", + "Volo.AbpIo.Commercial:010004": "Kan inte hitta den angivna anvĂ€ndaren! AnvĂ€ndaren mĂ„ste redan ha registrerats.", + "MyOrganizations": "Mina organisationer", + "ApiKey": "API-nyckel", + "UserNameNotFound": "Det finns ingen anvĂ€ndare med anvĂ€ndarnamnet {0}", + "SuccessfullyAddedToNewsletter": "Tack för att du prenumererar pĂ„ vĂ„rt nyhetsbrev!", + "MyProfile": "Min profil", + "WouldLikeToReceiveMarketingMaterials": "Jag skulle vilja fĂ„ marknadsföringsnyheter som produkterbjudanden och specialerbjudanden.", + "StartUsingYourLicenseNow": "Börja anvĂ€nda din licens nu!", + "WelcomePage": "VĂ€lkomstsida", + "UnsubscriptionExpireEmail": "Avregistrera dig frĂ„n e-postmeddelanden med pĂ„minnelser om licensens utgĂ„ngsdatum", + "UnsubscribeLicenseExpireEmailReminderMessage": "Denna e-postprenumeration innehĂ„ller endast pĂ„minnelser om utgĂ„ngsdatum för din licens.", + "UnsubscribeFromLicenseExpireEmails": "Om du inte vill fĂ„ e-postmeddelanden om utgĂ„ngsdatum för din licens kan du avsluta prenumerationen nĂ€r som helst.", + "Unsubscribe": "Avsluta prenumeration", + "NotOrganizationMember": "Du Ă€r inte medlem i nĂ„gon organisation.", + "UnsubscribeLicenseExpirationEmailSuccessTitle": "FramgĂ„ngsrikt avregistrerad", + "UnsubscribeLicenseExpirationEmailSuccessMessage": "Du kommer inte lĂ€ngre att fĂ„ e-postmeddelanden med pĂ„minnelser om licensens utgĂ„ngsdatum.", + "LiveDemoLead": "{1} med ditt ABP-konto, {3} till abp.io eller fyll i formulĂ€ret nedan för att skapa en live demo nu", + "ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "Det finns redan ett konto med den angivna e-postadressen: {0}
Du bör logga in med ditt konto för att fortsÀtta.", + "GetLicence": "Skaffa licens", + "Startup": "Nystartad verksamhet", + "Templates": "Mallar", + "Developer": "Utvecklare", + "Tools": "Verktyg", + "Premium": "Premium", + "PremiumSupport": "Premium-support", + "PremiumForumSupport": "Premium Forum Support", + "UI": "UI", + "Themes": "Teman", + "JoinOurNewsletter": "AnmÀl dig till vÄrt nyhetsbrev", + "Send": "Skicka", + "OpenSourceBaseFramework": "Basramverk med öppen kÀllkod", + "MicroserviceCompatible": "Kompatibel med mikrotjÀnster", + "DistributedMessaging": "Distribuerad meddelandehantering", + "DynamicProxying": "Dynamisk proxyservering", + "BLOBStoring": "BLOB Storing", + "AdvancedLocalization": "Avancerad lokalisering", + "ManyMore": "MÄnga fler", + "ExploreTheABPFramework": "Utforska ABP-ramverket", + "StartupTemplatesShortDescription": "Startup-mallar gör att du kan starta ditt projekt pÄ nÄgra sekunder.", + "UIFrameworksOptions": "Alternativ för ramverk för anvÀndargrÀnssnitt;", + "DatabaseProviderOptions": "Alternativ för databasleverantör;", + "PreBuiltApplicationModules": "Förbyggda applikationsmoduler", + "PreBuiltApplicationModulesShortDescription": "De vanligaste applikationskraven Àr redan utvecklade Ät dig som ÄteranvÀndbara moduler.", + "Account": "Konto", + "Blogging": "Bloggande", + "Identity": "Identitet", + "IdentityServer": "Identitetsserver", + "LanguageManagement": "SprÄkhantering", + "TextTemplateManagement": "Hantering av textmallar", + "See All Modules": "SeAllaModuler", + "ABPSuite": "ABP-svit", + "AbpSuiteShortDescription": "ABP Suite Àr ett komplementÀrt verktyg till ABP Platform.", + "AbpSuiteExplanation": "Det gör att du kan bygga webbsidor pÄ bara nÄgra minuter. Det Àr ett .NET Core Global-verktyg som kan installeras frÄn kommandoraden. Det kan skapa en ny ABP-lösning och generera CRUD-sidor frÄn databasen till frontend.", + "LeptonTheme": "Lepton tema", + "ProfessionalModernUIThemes": "Professionella, moderna UI-teman", + "LeptonThemeExplanation": "Lepton tillhandahÄller en rad Bootstrap-adminteman som fungerar som en solid grund för alla projekt som krÀver en adminpanel.", + "DefaultTheme": "Standardtema", + "MaterialTheme": "Materialtema", + "Default2Theme": "Standard 2 Tema", + "DarkTheme": "Mörkt tema", + "DarkBlueTheme": "MörkblÄtt tema", + "LightTheme": "Ljus tema", + "ProudToWorkWith": "Stolt över att arbeta med", + "JoinOurConsumers": "Anslut dig till dem och bygg fantastiska produkter snabbt.", + "AdditionalServicesExplanation": "Behöver du ytterligare eller anpassade tjÀnster? Vi och vÄra partners kan tillhandahÄlla;", + "CustomProjectDevelopment": "Anpassad projektutveckling", + "CustomProjectDevelopmentExplanation": "Dedikerade utvecklare för dina anpassade projekt.", + "PortingExistingProjects": "Portning av befintliga projekt", + "PortingExistingProjectsExplanation": "Migrera dina Àldre projekt till ABP-plattformen.", + "LiveSupport": "Support i realtid", + "LiveSupportExplanation": "FjÀrrsupport i realtid nÀr du behöver det.", + "Training": "Utbildning", + "TrainingExplanation": "Dedikerad utbildning för dina utvecklare.", + "OnBoarding": "Onboarding", + "OnBoardingExplanation": "HjÀlp med att konfigurera dina utvecklings-, CI- och CD-miljöer.", + "PrioritizedTechnicalSupport": "Prioriterad teknisk support", + "PremiumSupportExplanation": "Förutom det stora samhÀllsstödet i ABP-ramverket svarar vÄrt supportteam pÄ tekniska frÄgor och problem frÄn de kommersiella anvÀndarna med hög prioritet.", + "SeeTheSupportOptions": "Kolla in supportalternativen", + "Contact": "Kontakt", + "TellUsWhatYouNeed": "BerÀtta för oss vad du behöver.", + "YourMessage": "Ditt meddelande", + "YourFullName": "Ditt fullstÀndiga namn", + "FirstNameField": "Förnamn", + "LastNameField": "Efternamn", + "EmailField": "E-postadress", + "YourEmailAddress": "Din e-postadress", + "ValidEmailAddressIsRequired": "En giltig e-postadress krÀvs.", + "HowMayWeHelpYou": "Hur kan vi hjÀlpa dig?", + "SendMessage": "Skicka meddelande", + "Success": "FramgÄng", + "WeWillReplyYou": "Vi har mottagit ditt meddelande och kommer att kontakta dig inom kort.", + "CreateLiveDemo": "Skapa live-demo", + "CreateLiveDemoDescription": "NÀr du har skickat in formulÀret kommer du att fÄ ett e-postmeddelande med din demolÀnk.", + "RegisterToTheNewsletter": "AnmÀl dig till nyhetsbrevet för att fÄ information om ABP.IO, inklusive nya releaser etc.", + "EnterYourEmailOrLogin": "Ange din e-postadress för att skapa din demo eller Logga in med ditt befintliga konto.", + "ApplicationTemplate": "Mall för ansökan", + "ApplicationTemplateExplanation": "Application startup template anvÀnds för att skapa en ny webbapplikation.", + "EfCoreProvider": "Entity Framework (Stödjer SQL Server, MySQL, PostgreSQL, Oracle och andra)", + "AlreadyIncludedInTemplateModules": "Följande moduler Àr redan inkluderade och konfigurerade i den hÀr mallen:", + "ApplicationTemplateArchitecture": "Den hÀr applikationsmallen stöder ocksÄ nivÄindelad arkitektur dÀr anvÀndargrÀnssnittslagret, API-lagret och autentiseringstjÀnsten Àr fysiskt Ätskilda.", + "SeeTheGuideOrGoToTheLiveDemo": "Kolla in utvecklarguiden för teknisk information om den hÀr mallen eller gÄ till live-demonstrationen.", + "DeveloperGuide": "Guide för utvecklare", + "ModuleTemplate": "Mall för modul", + "ModuleTemplateExplanation1": "Vill du skapa en modul och ÄteranvÀnda den i olika applikationer? Den hÀr startmallen förbereder allt för att börja skapa en ÄteranvÀndbar applikationsmodul eller en mikrotjÀnst.", + "ModuleTemplateExplanation2": "

Du kan stödja enstaka eller flera anvÀndargrÀnssnittsramverk, enstaka eller flera databasleverantörer för en enda modul. Startmallen Àr konfigurerad för att köra och testa din modul i en minimal applikation utöver infrastrukturen för enhets- och integrationstest.

Se utvecklarguiden för teknisk information om den hÀr mallen.

", + "WithAllStyleOptions": "med alla stilalternativ", + "Demo": "Demo", + "SeeAllModules": "Se alla moduler", + "ABPCLIExplanation": "ABP CLI Àr ett kommandoradsverktyg för att utföra vanliga utvecklingsuppgifter för ABP-baserade lösningar.", + "ABPSuiteEasilyCURD": "ABP Suite Àr ett verktyg som gör att du enkelt kan skapa CRUD-sidor", + "WeAreHereToHelp": "Vi Àr hÀr för att hjÀlpa", + "BrowseOrAskQuestion": "Du kan blÀddra i vÄra hjÀlpÀmnen eller söka i vanliga frÄgor, eller sÄ kan du stÀlla en frÄga till oss genom att anvÀnda kontaktformulÀret.", + "SearchQuestionPlaceholder": "Sök i vanliga frÄgor och svar", + "AbpCommercialMetaDescription": "En omfattande webbutvecklingsplattform pÄ ABP Framework med förbyggda moduler, startmallar, verktyg för snabb utveckling, proffsiga UI-teman och premiumsupport.", + "WhatAreDifferencesThanABPFrameworkExplanation": "

ABP-ramverket Àr ett modulÀrt, tematiserbart, mikrotjÀnstkompatibelt ramverk för applikationsutveckling för ASP.NET Core. Det ger en komplett arkitektur och en stark infrastruktur sÄ att du kan fokusera pÄ din egen affÀrskod istÀllet för att upprepa dig sjÀlv för varje nytt projekt. Det Àr baserat pÄ bÀsta praxis för mjukvaruutveckling och populÀra verktyg som du redan kÀnner till.

ABP-ramverket Àr helt gratis, öppen kÀllkod och community-driven. Det ger ocksÄ ett gratis tema och nÄgra förbyggda moduler (t.ex. identitetshantering och hyresgÀsthantering).

<", + "VisitTheFrameworkVSCommercialDocument": "Besök följande lÀnk för mer information {1} ", + "Professional": "Professionell", + "UIThemes": "Teman för anvÀndargrÀnssnitt", + "EnterpriseModules": "Enterprise ready, funktionsrika, förbyggda applikationsmoduler (t.ex. hantering av identitetsserver, SaaS-hantering, sprÄkhantering)", + "ToolingToSupport": "Verktyg för att stödja din utvecklingsproduktivitet (t.ex. ABP Suite)", + "PremiumSupportLink": "Premium Support", + "ABPCommercialSolutionExplanation": "NÀr du skapar en ny applikation fÄr du en Visual Studio-lösning (en startmall) som baseras pÄ dina önskemÄl. Den nedladdade lösningen har kommersiella moduler och teman som redan Àr installerade och konfigurerade Ät dig. Du kan ta bort en förinstallerad modul eller lÀgga till en annan modul om du vill. Alla moduler och teman anvÀnder NuGet/NPM-paket som standard.", + "StartDevelopWithTutorials": "Den nedladdade lösningen Àr vÀl arkitekterad och dokumenterad. Du kan börja utveckla din egen företagskod baserad pÄ den genom att följa handledningarna.", + "HowManyProductsExplanation": "Du kan skapa sÄ mÄnga projekt du vill under din aktiva licensperiod; det finns ingen grÀns! Efter att din licens har löpt ut kan du inte skapa nya projekt, men du kan fortsÀtta att utveckla de projekt du har laddat ner och distribuera dem till ett obegrÀnsat antal servrar.", + "ChangingLicenseType": "Kan jag uppgradera min licenstyp senare?", + "LicenseExtendUpgradeDiffExplanation": "FörlÀngning: Genom att förlÀnga/förnya din licens kommer du att fortsÀtta att fÄ premiumsupport och fÄ större eller mindre uppdateringar för modulerna och teman. Dessutom kommer du att kunna fortsÀtta skapa nya projekt. Och du kommer fortfarande att kunna anvÀnda ABP Suite, vilket pÄskyndar din utveckling. NÀr du förlÀnger din licens lÀggs 1 Är till licensens utgÄngsdatum.
Uppgradering: Genom att uppgradera din licens kommer du att befordras till en högre licensplan, vilket gör att du kan fÄ ytterligare fördelar. Kolla in jÀmförelsetabellen för licenser för att se skillnaderna mellan licensplanerna. NÀr du uppgraderar Àndras dÀremot inte licensens utgÄngsdatum! För att förlÀnga licensens slutdatum mÄste du förlÀnga din licens.", + "LicenseRenewalCost": "Vad Àr kostnaden för licensförnyelse efter 1 Är?", + "LicenseRenewalCostExplanation": "Priset för förnyelse (förlÀngning) av standard Team License Àr ${0}, standard Business License Àr ${1} och standard Enterprise License Àr ${2}. Om du redan Àr kund, logga in pÄ ditt konto för att granska den aktuella förnyelseprissÀttningen.", + "HowDoIRenewMyLicense": "Hur förnyar jag min licens?", + "HowDoIRenewMyLicenseExplanation": "Du kan förnya din licens genom att navigera till organisationshanteringssidan. För att dra nytta av vÄra rabatterade priser för tidig förnyelse, se till att du förnyar innan din licens löper ut. Oroa dig inte för att du inte vet nÀr din möjlighet till tidig förnyelse stÀngs; du kommer att fÄ 3 pÄminnelse-e-postmeddelanden innan din prenumeration löper ut. Vi skickar dem 30 dagar, 7 dagar och 1 dag före utgÄngen.", + "IsSourceCodeIncluded": "Omfattar min licens kÀllkoden för pro-modulerna och teman?", + "IsSourceCodeIncludedExplanation1": "Beror pÄ vilken licenstyp du har köpt:", + "IsSourceCodeIncludedExplanation2": "Team: Din lösning anvÀnder moduler och teman som NuGet- och NPM-paket. Den inkluderar inte deras kÀllkod. PÄ sÄ sÀtt kan du enkelt uppgradera dessa moduler och teman nÀr en ny version Àr tillgÀnglig. Du kan dock inte fÄ kÀllkoden för dessa moduler och teman.", + "IsSourceCodeIncludedExplanation3": "Business/Enterprise: Utöver Team-licensen kan du ladda ner kÀllkoden för alla moduler eller teman du behöver. Du kan till och med ta bort NuGet/NPM-paketreferenserna för en viss modul och lÀgga till dess kÀllkod direkt i din lösning för att Àndra den helt.", + "IsSourceCodeIncludedExplanation4": "

Att inkludera kÀllkoden för en modul i din lösning ger dig maximal frihet att anpassa den modulen. Det kommer dock inte att vara möjligt att automatiskt uppgradera modulen nÀr en ny version slÀpps.

Ingen av licenserna inkluderar kÀllkoden för ABP Suite och ABP Studio, vilket Àr externa verktyg som genererar kod Ät dig och hjÀlper din utveckling.

Kolla in sidan Planer och priser för andra skillnader mellan licenstyperna.

<", + "ChangingDevelopers": "Kan jag Àndra de registrerade utvecklarna för min organisation i framtiden?", + "ChangingDevelopersExplanation": "Förutom att lÀgga till nya utvecklare till din licens kan du ocksÄ Àndra befintliga utvecklare (du kan ta bort en utvecklare och lÀgga till en ny pÄ samma plats) utan nÄgon extra kostnad.", + "WhatHappensWhenLicenseEnds": "Vad hÀnder nÀr min licensperiod upphör?", + "discountForYears": "{0}% rabatt för {1} Är", + "WhenShouldIRenewMyLicense": "NÀr ska jag förnya min licens?", + "WhenShouldIRenewMyLicenseExplanation": "Om du förnyar din licens inom {3} dagar efter att din licens har löpt ut, kommer följande rabatter att tillÀmpas: Teamlicens {0}; Företagslicens {1}; Enterprise-licens {2}. Men om du förnyar din licens efter {3} dagar efter licensens utgÄngsdatum, kommer förnyelsepriset att vara detsamma som licensens inköpspris och det kommer inte att finnas nÄgon rabatt pÄ din förnyelse.", + "TrialPlan": "Har du en testplan?", + "DoYouAcceptBankWireTransfer": "Accepterar ni banköverföringar?", + "DoYouAcceptBankWireTransferExplanation": "Ja, vi accepterar banköverföringar.
NÀr du har skickat licensavgiften via banköverföring, skicka ditt kvitto och önskad licenstyp till accounting@volosoft.com.
VĂ„r internationella bankkontoinformation:", + "HowToUpgrade": "Hur uppgraderar man befintliga applikationer nĂ€r en ny version finns tillgĂ€nglig?", + "DatabaseSupport": "Vilka databassystem stöds?", + "UISupport": "Vilka UI-ramverk stöds?", + "Supported": "Stödd", + "UISupportExplanation": "ABP Framework Ă€r i sig sjĂ€lvt agnostiskt och kan fungera med alla anvĂ€ndargrĂ€nssnitt. Startmallar, modul-anvĂ€ndargrĂ€nssnitt och teman implementerades dock inte för alla anvĂ€ndargrĂ€nssnittsramverk. Kolla in GĂ„ igĂ„ng-dokumentet för den uppdaterade listan över anvĂ€ndargrĂ€nssnittsalternativ.", + "MicroserviceSupport": "Stödjer den microservice-arkitekturen?", + "WhereCanIDownloadSourceCode": "Var kan jag ladda ner kĂ€llkoden?", + "ComputerLimitation": "Hur mĂ„nga datorer kan en utvecklare logga in pĂ„ nĂ€r han utvecklar ABP?", + "ComputerLimitationExplanation": "Vi tillĂ„ter specifikt {0} datorer per individ/licensierad utvecklare. NĂ€r det finns ett behov för en utvecklare att utveckla ABP-baserade produkter pĂ„ en tredje maskin, ska ett e-postmeddelande skickas till license@abp.io dĂ€r situationen förklaras, och vi kommer sedan att göra lĂ€mplig tilldelning i vĂ„rt system.", + "RefundPolicy": "Har ni nĂ„gon Ă„terbetalningspolicy?", + "RefundPolicyExplanation": "Du kan begĂ€ra Ă„terbetalning inom 30 dagar efter ditt licensköp. Licenstyperna Business och Enterprise har alternativ för nedladdning av kĂ€llkod; dĂ€rför ger vi en Ă„terbetalning pĂ„ 60 % inom 30 dagar för Business- och Enterprise-licenser. Dessutom görs inga Ă„terbetalningar för förnyelser och andra licensköp.", + "HowCanIRefundVat": "Hur kan jag Ă„terbetala moms?", + "HowCanIRefundVatExplanation1": "Om du gjorde betalningen med 2Checkout kan du Ă„terbetala momsen via ditt 2Checkout-konto:", + "HowCanIRefundVatExplanation2": "Logga in pĂ„ ditt 2Checkout-konto", + "HowCanIRefundVatExplanation3": "Leta upp rĂ€tt order och tryck pĂ„ \"Återbetala försenad moms\" (ange ditt momsregistreringsnummer)", + "HowCanIGetMyInvoice": "Hur kan jag fĂ„ min faktura?", + "HowCanIGetMyInvoiceExplanation": "Det finns 2 betalningsgateways för att köpa en licens: Iyzico och 2Checkout. Om du köper din licens via 2Checkout-gatewayen skickar den PDF-fakturan till din e-postadress; kolla in 2Checkout-fakturering. Om du köper via Iyzico-gatewayen, med en anpassad inköpslĂ€nk eller via en banköverföring, kommer vi att förbereda och skicka din faktura. Du kan begĂ€ra eller ladda ner din faktura frĂ„n sidan för organisationshantering. Innan du kontaktar oss för fakturan, kontrollera din organisationshanteringssida!", + "Forum": "Forum", + "PrivateTicket": "Privat biljett", + "PrivateTicketExplanation": "Enterprise License inkluderar Ă€ven en privat support med e-post och Ă€rendehanteringssystem.", + "AbpSuiteExplanation1": "Med ABP Suite kan du skapa webbsidor pĂ„ bara nĂ„gra minuter. Det Ă€r ett globalt .NET Core-verktyg som kan installeras frĂ„n kommandoraden.", + "AbpSuiteExplanation2": "Den kan skapa en ny ABP-lösning och generera CRUD-sidor frĂ„n databasen till frontend. För teknisk översikt se dokumentet", + "FastEasy": "Snabbt och enkelt", + "AbpSuiteExplanation3": "Med ABP Suite kan du enkelt skapa CRUD-sidor. Du behöver bara definiera din entitet och dess egenskaper och lĂ„ta resten gĂ„ till ABP Suite Ă„t dig! ABP Suite genererar all nödvĂ€ndig kod för din CRUD-sida pĂ„ nĂ„gra sekunder. Den stöder Angular, MVC och Blazor anvĂ€ndargrĂ€nssnitt.", + "RichOptions": "Rika alternativ", + "AbpSuiteExplanation4": "ABP Suite stöder flera anvĂ€ndargrĂ€nssnittsalternativ som Razor Pages och Angular. Det stöder ocksĂ„ flera databaser som MongoDB och alla databaser som stöds av EntityFramework Core (MS SQL Server, Oracle, MySql, PostgreSQL och andra leverantörer...).", + "AbpSuiteExplanation5": "Det som Ă€r bra Ă€r att du inte behöver oroa dig för dessa alternativ. ABP Suite förstĂ„r din projekttyp och genererar koden för ditt projekt och placerar den genererade koden pĂ„ rĂ€tt plats i ditt projekt.", + "AbpSuiteExplanation6": "ABP Suite genererar kĂ€llkoden för Entity, Repository, Application Service, Code First Migration, JavaScript/TypeScript och CSHTML/HTML och Ă€ven nödvĂ€ndiga grĂ€nssnitt. ABP Suite genererar ocksĂ„ koden enligt Best Practices för programvaruutveckling, sĂ„ du behöver inte oroa dig för den genererade kodens kvalitet.", + "AbpSuiteExplanation7": "Eftersom du har kĂ€llkoden för byggstenarna i den genererade CRUD-sidan i rĂ€tt applikationslager kan du enkelt Ă€ndra kĂ€llkoden och lĂ€gga till din egen anpassade affĂ€rslogik i den genererade koden.", + "CrossPlatform": "Plattformsoberoende", + "AbpSuiteExplanation8": "ABP Suite Ă€r byggt med .NET Core och Ă€r plattformsoberoende. Den körs som en webbapplikation pĂ„ din lokala dator. Du kan köra den pĂ„ Windows, Mac och Linux", + "OtherFeatures": "Andra funktioner", + "OtherFeatures1": "Uppdaterar enkelt NuGet- och NPM-paket pĂ„ din lösning.", + "OtherFeatures2": "Återskapar redan genererade sidor frĂ„n början.", + "OtherFeatures3": "Skapar nya lösningar", + "ThanksForCreatingProject": "Ditt projekt har skapats framgĂ„ngsrikt!", + "HotToRunSolution": "Hur kör du din lösning?", + "HotToRunSolutionExplanation": "I dokumentet Kom igĂ„ng kan du lĂ€sa om hur du konfigurerar och kör din lösning.", + "GettingStarted": "Komma igĂ„ng", + "WebAppDevTutorialExplanation": "I handledningsdokumentet för utveckling av webbapplikationer finns ett exempel pĂ„ utveckling steg för steg.", + "Document": "Dokument", + "UsingABPSuiteToCURD": "AnvĂ€nda ABP Suite för generering av CRUD-sidor och verktyg", + "SeeABPSuiteDocument": "Kolla in ABP Suite-dokumentet för att lĂ€ra dig anvĂ€ndningen av ABP Suite.", + "SeeModulesDocument": "Se sidan med moduler för en lista över alla PRO-moduler.", + "Pricing": "PrissĂ€ttning", + "PricingExplanation": "VĂ€lj de egenskaper och funktioner som ditt företag behöver idag. Uppgradera enkelt nĂ€r ditt företag vĂ€xer.", + "Team": "Team", + "Business": "Företag", + "Enterprise": "Företag", + "Custom": "Anpassad", + "IncludedDeveloperLicenses": "Inkluderade utvecklarlicenser", + "CustomLicenceOrAdditionalServices": "Behöver du en anpassad licens eller ytterligare tjĂ€nster?", + "CustomOrVolumeLicense": "Anpassad licens eller volymlicens", + "LiveTrainingSupport": "Utbildning och support i realtid", + "AndMore": "och mer", + "AdditionalDeveloperLicense": "Ytterligare licens för utvecklare", + "ProjectCount": "ProjektrĂ€kning", + "AllProModules": "Alla proffsmoduler", + "AllProThemes": "Alla proffsteman", + "AllProStartupTemplates": "Alla proffsmallar för nystartade företag", + "SourceCodeOfAllModules": "KĂ€llkod för alla moduler", + "SourceCodeOfAllThemes": "KĂ€llkod för alla teman", + "PerpetualLicense": "Evig licens", + "UnlimitedServerDeployment": "ObegrĂ€nsad serverdistribution", + "YearUpgrade": "1 Ă„rs uppgradering", + "YearPremiumForumSupport": "1 Ă„rs premiumsupport för forum", + "ForumSupportIncidentCountYear": "Antal incidenter för forumstöd/Ă„r", + "PrivateTicketEmailSupport": "Privat support via biljett och e-post", + "BuyNow": "Köp nu", + "PayViaAmexCard": "Hur kan jag betala med mitt AMEX-kort?", + "PayViaAmexCardDescription": "Standardbetalningsgatewayen \"Iyzico\" kan neka vissa AMEX-kreditkort pĂ„ grund av sĂ€kerhetsĂ„tgĂ€rder. I detta fall kan du betala via den alternativa betalningsgatewayen \"2Checkout\".", + "InvalidReCaptchaErrorMessage": "Det uppstod ett fel vid verifiering av reCAPTCHA. VĂ€nligen försök igen.", + "YourCompanyName": "Ditt företagsnamn", + "FirstName": "Förnamn", + "LastName": "Efternamn", + "YourFirstName": "Ditt förnamn", + "YourLastName": "Ditt efternamn", + "SpecialOffer": "Specialerbjudande", + "SpecialOfferMessage": "Skynda dig! Priserna gĂ€ller under en begrĂ€nsad tid.", + "DiscountRequest": "BegĂ€ran om rabatt", + "DiscountRequestDescribeCustomerQuestion": "Vilken av följande beskrivningar stĂ€mmer in pĂ„ dig?", + "DiscountRequestStudentEmailMessage": "E-postadressen mĂ„ste innehĂ„lla \"edu\".", + "DiscountRequestDeveloperCount": "Hur mĂ„nga utvecklare Ă€r ni?", + "DiscountRequestDeveloperCountExceedMessage": "Vi erbjuder inte rabatterade licenser för företag som har fler Ă€n {0} utvecklare.", + "DiscountRequestOrganizationName": "Företagets/organisationens/skolans namn", + "Website": "Webbplats", + "GithubUsername": "AnvĂ€ndarnamn för GitHub", + "PhoneNumber": "Telefonnummer", + "DescribeABPCommercialUsage": "Beskriv det projekt som du planerar att utveckla baserat pĂ„ APB Commercial", + "DiscountRequestCertifyInformationMessage": "Jag intygar att alla uppgifter Ă€r sanningsenliga och korrekta.", + "DiscountRequestReceived": "Vi har mottagit din begĂ€ran om rabatt.", + "DiscountRequestStatusMessage": "Vi kommer att svara dig efter att ha kontrollerat den information du har lĂ€mnat.", + "MVCOrRazorPages": "MVC (Razor Pages)", + "Angular": "Angular", + "Blazor": "Blazor", + "New": "Nya", + "MongoDB": "MongoDB", + "EBookDDD": "E-bok DomĂ€nstyrd design", + "Page": "Sidan", + "DoYouAgreePrivacyPolicy": "Jag samtycker till Terms & Conditions och Privacy Policy.", + "VolosoftMarketingInformationMessage": "Jag vill ha information, tips och erbjudanden om Solutions for Businesses and Organizations och andra produkter och tjĂ€nster frĂ„n Volosoft.", + "VolosoftSharingInformationMessage": "Jag vill att Volosoft ska dela min information med utvalda partners sĂ„ att jag kan fĂ„ relevant information om deras produkter och tjĂ€nster.", + "StartFree": "Starta gratis", + "FreeTrial": "Gratis provperiod", + "AcceptsMarketingCommunications": " Ja, jag vill gĂ€rna fĂ„ ABP-relaterade marknadsföringsnyheter.", + "PurposeOfUsage": "Syfte med anvĂ€ndningen", + "Choose": "- VĂ€lj -", + "CompanyOrganizationName": "Företagets/organisationens namn", + "StartTrial": "Starta min kostnadsfria testperiod", + "ContactUsQuestions": "Kontakta oss om du har nĂ„gra frĂ„gor", + "TrialActivatedWarning": "En anvĂ€ndare har endast rĂ€tt till 1 gratis provperiod. Du har redan anvĂ€nt din provperiod.", + "ActivationRequirement": "Du Ă€r bara ett steg frĂ„n att starta din provperiod.
Efter att ha kontrollerat din information aktiverar vi din licens. NÀr din licens Àr aktiverad skickar vi ett e-postmeddelande till {0}. Oroa dig inte, den hÀr processen kommer inte att ta lÄng tid!", + "SaveAndDownload": "Spara och ladda ner", + "CompanyNameValidationMessage": "Företagsnamnet Àr för lÄngt!", + "AddressValidationMessage": "Adressen Àr för lÄng!", + "TaxNoValidationMessage": "TAX/VAT Nej Àr för lÄngt!", + "NotesValidationMessage": "AnteckningsfÀltet Àr för lÄngt!", + "CheckYourBillingInfo": "Du kan bara skapa din faktura en gÄng! Kontrollera din faktureringsinformation innan du skapar din faktura.", + "StartYourFreeTrial": "Starta din kostnadsfria testperiod", + "TrialLicenseModelInvalidErrorMessage": "Ett av följande fÀlt Àr ogiltigt: Landsnamn, Företagsstorlek, Bransch eller Syfte med anvÀndning.", + "Trial": "RÀttegÄng", + "Purchased": "Köpte", + "PurchaseNow": "Köp nu", + "PurchaseTrialLicenseMessage": "Din licens utgÄngsdatum Àr {0}.
Om du vill fortsĂ€tta anvĂ€nda de projekt som du skapade under din kostnadsfria testperiod mĂ„ste du Ă€ndra licensnycklarna i dina appsettings.secrets.json-filer. HĂ€r Ă€r din licensnyckel:", + "TrialLicenseExpireMessage": "Du anvĂ€nder en testlicens och din testlicens upphör att gĂ€lla den {0}.", + "TryForFree": "Prova gratis", + "TrialLicenseExpiredInfo": "Din testlicensperiod har löpt ut!", + "DowngradeLicensePlan": "Kan jag nedgradera till en lĂ€gre licensplan i framtiden?", + "LicenseTransfer": "Kan en licens överföras frĂ„n en utvecklare till en annan?", + "UserOwnerDescription": "Organisationens \"Ă€gare\" Ă€r administratör för detta konto. Han/hon hanterar organisationen genom att köpa licenser och tilldela utvecklare. En \"Ă€gare\" kan inte skriva kod i ABP-projekten, kan inte ladda ner ABP-exempelprojekten och kan inte stĂ€lla frĂ„gor pĂ„ supportwebbplatsen. Om du vill göra allt detta mĂ„ste du ocksĂ„ lĂ€gga till dig sjĂ€lv som utvecklare.", + "UserDeveloperDescription": "\"Utvecklarna\" kan skriva kod i ABP-projekten, ladda ner ABP:s exempelprojekt och stĂ€lla frĂ„gor pĂ„ supportwebbplatsen. Å andra sidan kan \"utvecklarna\" inte hantera den hĂ€r organisationen.", + "RemoveCurrentUserFromOrganizationWarningMessage": "Du tar bort dig sjĂ€lv frĂ„n din egen organisation. Du kommer inte lĂ€ngre att kunna hantera den hĂ€r organisationen, bekrĂ€ftar du det?", + "RenewExistingOrganizationOrCreateNewOneMessage": "Du kan förnya licensen för din organisation (er) genom att klicka pĂ„ nedanstĂ„ende \"FörlĂ€ng nu\"-knapp (ar) och dĂ€rmed kan du förlĂ€nga licensens utgĂ„ngsdatum med 1 Ă„r. Om du fortsĂ€tter till kassan kommer du att ha en ny organisation. Vill du fortsĂ€tta med en ny organisation?", + "PurchaseTrialOrganizationOrCreateNewOneMessage": "Du har en testlicens. För att köpa din testlicens klickar du pĂ„ knappen Köp nu. Om du fortsĂ€tter till kassan kommer du att ha en ny organisation. Vill du fortsĂ€tta med en ny organisation?", + "ExtendNow": "FörlĂ€nga / Förnya", + "CreateNewOrganization": "Skapa en ny organisation", + "RenewLicenseEarly": "Om jag förnyar min licens tidigt, kommer jag att fĂ„ hela Ă„ret?", + "RenewLicenseEarylExplanation": "NĂ€r du förnyar din licens före licensens utgĂ„ngsdatum kommer 1 Ă„r att lĂ€ggas till licensens utgĂ„ngsdatum. Om din licens t.ex. löper ut den {0}-06-06 och du förnyar den den {0}-01-01, kommer din nya licens att löpa ut den {1}-06-06.", + "OpenSourceWebApplication": "Webbapplikation med öppen kĂ€llkod", + "CompleteWebDevelopment": "En komplett webbutveckling", + "ABPFrameworkDescription": "ABP Framework Ă€r en komplett infrastruktur för att skapa moderna webbapplikationer genom att följa de bĂ€sta metoderna för mjukvaruutveckling och konventioner.", + "CommunityDescription": "Dela dina erfarenheter av ABP-ramverket!", + "PreBuiltApplication": "Förbyggd applikation", + "DatabaseProviders": "Databasleverantörer", + "UIFrameworks": "Ramverk för anvĂ€ndargrĂ€nssnitt", + "UsefulLinks": "AnvĂ€ndbara lĂ€nkar", + "Platform": "Plattform", + "MicroserviceArchitectureExplanation": "Det hĂ€r Ă€r en komplett lösningsarkitektur som bestĂ„r av flera applikationer, API-gateways, mikrotjĂ€nster och databaser för att bygga en skalbar mikrotjĂ€nstlösning med den senaste tekniken.", + "BusinessLogic": "AffĂ€rslogik", + "DataAccessLayer": "DataĂ„tkomstskikt", + "Monolith": "Monolit", + "ModularArchitectureExplanation": "Denna startup-mall ger en skiktad, modulĂ€r och DDD-baserad lösningsarkitektur för att bygga en ren och underhĂ„llbar kodbas.", + "Bs5Compatible": "Professionellt tema som Ă€r kompatibelt med Bootstrap 5, perfekt för din administratörswebbplats.", + "LeptonXTheme": "LeptonX tema", + "LeptonXDark": "LeptonX Mörk", + "LeptonXLight": "LeptonX Ljus", + "LeptonXSemiDark": "LeptonX Halvmörk", + "BuiltOnBs5Library": "Byggd pĂ„ Bootstrap 5-biblioteket", + "FullyCompatibleWithBs5": "100% kompatibel med Bootstrap 5 HTML-struktur och CSS-klasser", + "ResponsiveAndMobileCompatible": "Responsiv, mobilkompatibel, RTL-stöd", + "ProvidesStylesForDatatables": "TillhandahĂ„ller stilar för datatabeller", + "MultipleLayoutOptions": "Flera layoutalternativ", + "EasilyInstallAndUpgrade": "Enkel installation och uppgradering", + "SupportForum": "Forum för support", + "TrustedBy": "Betrodda av", + "OurPricing": "VĂ„r prissĂ€ttning", + "Plans": "Planer", + "NameSurname": "Namn Efternamn", + "LicenceType": "Typ av licens", + "LicenseDiscountWarning": "DENNA RABATTSIDA ANVÄNDER STANDARD RABATTKOD OCH FÖR VOLOSOFT UTVECKLARE. INKÖPSLÄNKAR NEDAN FUNGERAR INTE.", + "DiscountedLicenseExplanation": "Dessa licenspriser Ă€r avsedda för smĂ„ nystartade företag, enskilda utvecklare, studenter, ideella organisationer och projekt!", + "General": "AllmĂ€nt", + "Development": "Utveckling", + "Payment": "Betalning", + "WatchExplainerVideo": "LĂ„t oss trĂ€ffas! Titta pĂ„ förklarande video", + "LightDarkAndSemiDarkThemes": "Ljus, mörk och halvmörk", + "LeptonXThemeExplanation": "Lepton Theme kan Ă€ndra ditt tema enligt dina systeminstĂ€llningar.", + "PRO": "PRO", + "YourAccountDetails": "Dina kontouppgifter", + "OrganizationName": "Organisationens namn", + "AddDevelopers": "LĂ€gg till utvecklare", + "StartDevelopment": "Starta utveckling", + "CreateAndRunApplicationUsingStartupTemplate": "LĂ€r dig hur du skapar och kör en ny webbapplikation med hjĂ€lp av ABP:s startmall.", + "CommunityDescription2": "abp.io/community Ă€r en plats dĂ€r mĂ€nniskor kan dela ABP-relaterade artiklar. Sök efter artiklar, handledningar, kodprover, fallstudier och trĂ€ffa mĂ€nniskor som Ă€r i samma spĂ„r som du.", + "UseABPSuiteExplanation": "AnvĂ€nd ABP Suite för att ladda ner kĂ€llkoden för modulerna och temana.", + "ManageModulesWithSuite": "Du kan ocksĂ„ hantera dina ABP-moduler med Suite.", + "LearnHowToInstallSuite": "LĂ€r dig hur du installerar och anvĂ€nder ABP Suite.", + "SeeLess": "Se mindre", + "LayeredSolutionStructure": "Struktur med flera lager av lösningar", + "LayeredSolutionStructureExplanation": "Lösningen Ă€r uppbyggd i lager baserat pĂ„ principer och mönster för domĂ€ndriven design för att isolera affĂ€rslogiken frĂ„n infrastruktur och integrationer och för att maximera underhĂ„ll och Ă„teranvĂ€ndning av koden. ABP Framework tillhandahĂ„ller redan abstraktioner, basklasser och guider för att verkligen implementera DDD för din applikation.", + "MultipleUIOptionsExplanation": "Vi Ă€lskar olika sĂ€tt att skapa anvĂ€ndargrĂ€nssnittet. Den hĂ€r startup-lösningen ger tre olika alternativ för anvĂ€ndargrĂ€nssnitt för din affĂ€rsapplikation.", + "MultipleDatabaseOptions": "Flera databasalternativ", + "MultipleDatabaseOptionsExplanation": "Du har tvĂ„ alternativ för databasleverantörer (förutom att du kan anvĂ€nda bĂ„da i en och samma applikation). AnvĂ€nd Entity Framework Core för att arbeta med alla relationsdatabaser och anvĂ€nd eventuellt Dapper nĂ€r du behöver skriva lĂ„gnivĂ„frĂ„gor för bĂ€ttre prestanda. MongoDB Ă€r ett annat alternativ om du behöver anvĂ€nda en dokumentbaserad NoSQL-databas. Även om dessa leverantörer Ă€r vĂ€lintegrerade, abstraherade och förkonfigurerade kan du faktiskt interagera med alla databassystem som du kan anvĂ€nda med .NET.", + "ModularArchitectureExplanation2": "Modularitet Ă€r en förstklassig medborgare i ABP-plattformen. Alla applikationsfunktionaliteter Ă€r uppdelade i vĂ€lisolerade valfria moduler. Startlösningen levereras redan med de grundlĂ€ggande ABP-modulerna förinstallerade. Du kan ocksĂ„ skapa dina egna moduler för att bygga ett modulĂ€rt system för din egen applikation.", + "MultiTenancyForSaasBusiness": "Multi-tenancy för ditt SaaS-företag", + "MultiTenancyForSaasBusinessExplanation": "Lösningen har konfigurerats fullt ut för att stödja system med flera hyresgĂ€ster. Det gör det möjligt för hyresgĂ€sterna att dela eller ha sina egna databaser med on-the-fly databasskapande och migrationssystem.", + "MicroserviceStartupSolution": "Microservice Startup-lösning", + "MicroserviceArchitectureExplanation2": "Du kan skaffa det till ditt nĂ€sta microservice-system för att dra nytta av den förbyggda baslösningen och destillerade erfarenheten.", + "PreIntegratedTools": "Förintegrerad med populĂ€ra verktyg", + "PreIntegratedToolsExplanation": "Lösningen Ă€r redan integrerad i branschens standardverktyg och -tekniker, medan du alltid kan Ă€ndra dem och integrera dem med dina favoritverktyg.", + "SingleSignOnAuthenticationServer": "Server för autentisering med enkel inloggning", + "SingleSignOnAuthenticationServerExplanation": "Lösningen har en autentiseringsserverapplikation som anvĂ€nds av de andra applikationerna som en server för enkel inloggning med API-Ă„tkomsthanteringsfunktioner. Den Ă€r baserad pĂ„ implementeringen Openiddict.", + "WebAppsWithGateways": "2 webbappar med 2 API-gateways", + "WebAppsWithGatewaysExplanation": "Lösningen innehĂ„ller tvĂ„ webbapplikationer som var och en har en dedikerad API-gateway (BFF - Backend For Frontend-mönster).", + "BackOfficeApplication": "Back Office-applikation", + "BackOfficeApplicationExplanation": "Den faktiska webbapplikationen för ditt system, med flera alternativ för anvĂ€ndargrĂ€nssnitt. Du kan skapa alla typer av affĂ€rsapplikationer.", + "LandingWebsite": "Landningswebbplats", + "LandingWebsiteExplanation": "En generisk landningsplats/publik webbplats som kan anvĂ€ndas för flera Ă€ndamĂ„l, t.ex. för att presentera ditt företag, sĂ€lja dina produkter osv.", + "ABPFrameworkEBook": "Mastering ABP Framework e-bok", + "MasteringAbpFrameworkEBookDescription": "IngĂ„r i din kommersiella licens", + "LicenseTypeNotCorrect": "Licenstypen Ă€r inte korrekt!", + "Trainings": "Utbildningar", + "ChooseTrainingPlaceholder": "VĂ€lj utbildning...", + "DoYouNeedTrainings": "Behöver du nĂ„gon av dessa utbildningar?", + "DoYouNeedTraining": "Behöver du {0} utbildning?", + "GetInTouchUs": "Ta kontakt med oss", + "ForMoreInformationClickHere": "För mer information, klicka hĂ€r.", + "ForMoreInformationClickHereByClass": "För mer information, klicka hĂ€r.", + "IsGetOnboardingTraining": "Vill du fĂ„ utbildning i onboarding och utveckling av webbapplikationer?", + "OnboardingWebApplicationDevelopmentTrainingMessage": "För att schemalĂ€gga din utbildningskalender, vĂ€nligen kontakta {0} efter att du har skapat organisationen", + "CustomPurchaseMessage": "För nĂ€sta steg, klicka pĂ„ {0} för att kontakta oss.", + "Note": "Notera", + "AdditionalNote": "Ytterligare anmĂ€rkning", + "OnboardingTrainingFaqTitle": "Har du en ABP onboarding-utbildning?", + "OnboardingTrainingFaqExplanation": "Ja, vi har ABP Training Services som hjĂ€lper dig att snabbt komma igĂ„ng med ditt ABP-projekt. Du kommer att lĂ€ra dig om ABP frĂ„n en medlem i ABP:s kĂ€rnteam och du kommer att fĂ„ de fĂ€rdigheter som krĂ€vs för att starta ditt ABP-projekt. I onboarding-utbildningen förklarar vi hur du stĂ€ller in din utvecklingsmiljö, installerar de nödvĂ€ndiga verktygen och skapar en fullt fungerande CRUD-sida. Utbildningen kommer att vara live och Zoom-applikationen kommer att anvĂ€ndas, men vi Ă€r öppna för att anvĂ€nda andra online-mötesplattformar. SprĂ„ket för utbildningen kommer att vara engelska. Du kan ocksĂ„ stĂ€lla dina frĂ„gor om ABP under sessionerna. En lĂ€mplig tid och ett lĂ€mpligt datum kommer att planeras för bĂ„da parter. För ytterligare information besök utbildningssidan.", + "AddBasket": "LĂ€gg till i korgen", + "SendTrainingRequest": "Skicka förfrĂ„gan om utbildning", + "OnlyEnglishVersionOfThisDocumentIsTheRecentAndValid": "* Den engelska versionen av detta dokument Ă€r den mest aktuella och den engelska versionen ska ha företrĂ€de i alla tvister.", + "Pricing_Page_Title": "PrissĂ€ttning", + "Pricing_Page_Description": "Se de olika licensplanerna för ABP Platform, inklusive kostnadsfria nivĂ„er. Om standardplanerna inte passar, be om en offert. Glöm inte att vi har en 30-dagars pengarna-tillbaka-garanti!", + "Pricing_Page_HurryUp": "Skynda dig!", + "Pricing_Page_BuyLicense": "Köp en licens till 2021 Ă„rs priser fram till den 16 januari!", + "Pricing_Page_ValidForExistingCustomers": "GĂ€ller Ă€ven för befintliga kunder och licensförnyelser.", + "Pricing_Page_Hint1": "I licenspriset ingĂ„r ett visst antal platser för utvecklare. Om du har fler utvecklare kan du alltid köpa ytterligare platser.", + "Pricing_Page_Hint2": "Du kan köpa fler utvecklarlicenser nu eller i framtiden. Licenserna Ă€r platsbaserade, vilket innebĂ€r att du kan överföra en plats frĂ„n en utvecklare till en annan.", + "Pricing_Page_Hint3": "Du kan utveckla ett obegrĂ€nsat antal olika produkter med din licens.", + "Pricing_Page_Hint4": "ABP Suite Ă€r ett verktyg som hjĂ€lper dig att utveckla och förbĂ€ttra din produktivitet. Det stöder generering av CRUD-sidor och skapande av nya projekt.", + "Pricing_Page_Hint5": "Du kan anvĂ€nda alla de förbyggda modulerna i dina applikationer.", + "Pricing_Page_Hint6": "Du kan anvĂ€nda alla de förbyggda temana i dina applikationer.", + "Pricing_Page_Hint7": "En startmall Ă€r en Visual Studio-lösning som hjĂ€lper dig att komma igĂ„ng med ditt projekt. Alla grundlĂ€ggande moduler lĂ€ggs till och förkonfigureras Ă„t dig.", + "Pricing_Page_Hint8": "Mastering ABP Framework e-bok förklarar hur man implementerar .NET-lösningar med bĂ€sta praxis. Den sĂ€ljs pĂ„ Amazon.com, och du kan ladda ner boken gratis med din licens.", + "Pricing_Page_Hint9": "Du kan ladda ner kĂ€llkoden för alla moduler. Du kanske vill lĂ€gga till kĂ€llkoden i din lösning för att göra radikala Ă€ndringar eller bara behĂ„lla den för dig sjĂ€lv av sĂ€kerhetsskĂ€l.", + "Pricing_Page_Hint10": "Licenserna Ă€r livstidsbaserade. Det innebĂ€r att du kan fortsĂ€tta att utveckla din applikation för alltid. TillgĂ„ng till den senaste versionen och support beviljas inom licensperioden (1 Ă„r om du inte förnyar den).", + "Pricing_Page_Hint11": "Inga begrĂ€nsningar för driftsĂ€ttning! Du kan distribuera till sĂ„ mĂ„nga servrar som du vill, inklusive molntjĂ€nster eller lokalt.", + "Pricing_Page_Hint12": "Du kan uppdatera moduler, teman och verktyg till den senaste versionen inom din aktiva licensperiod. NĂ€r din licens löper ut mĂ„ste du förnya den för att fortsĂ€tta att fĂ„ uppdateringar för buggfixar, nya funktioner och förbĂ€ttringar.", + "Pricing_Page_Hint13": "Du kan fĂ„ premiumsupport i ett Ă„r (du kan förnya din licens för att förlĂ€nga den).", + "Pricing_Page_Hint14": "Team- och Business-licenser har en grĂ€ns för antal incidenter/frĂ„gor. Om du köper ytterligare utvecklarlicenser ökar incidentgrĂ€nsen med {0} (för Team-licensen) eller {1} (för Business-licensen) per utvecklare.", + "Pricing_Page_Hint15": "Endast Enterprise License inkluderar privat support. Du kan skicka ett e-postmeddelande direkt till ABP-teamet eller stĂ€lla frĂ„gor pĂ„ abp.io/support/questions med ett privat biljettalternativ. De privata Ă€rendena Ă€r inte synliga för allmĂ€nheten.", + "Pricing_Page_Hint16": "Du kan ladda ner kĂ€llkoden för alla ABP-teman. Du kanske vill lĂ€gga till kĂ€llkoden i din lösning för att göra radikala Ă€ndringar eller bara behĂ„lla den för dig sjĂ€lv av sĂ€kerhetsskĂ€l.", + "Pricing_Page_Testimonial_1": "ABP Commercial gjorde det möjligt för SC Ventures att leverera en bankklassad SaaS-plattform med silodatabas med flera hyresgĂ€ster pĂ„ 9 mĂ„nader för att stödja leverantörskedjans kundfordringar / leverantörsskulder för finansiering av fakturor med betydande vĂ€rde frĂ„n flera integrerade ankare. ABP:s modularitet gjorde det möjligt för teamet att leverera pĂ„ rekordtid, klara alla VAPT och driftsĂ€tta den containeriserade mikrotjĂ€nststacken via fullstĂ€ndig CI/CD och pipelines till produktion.", + "Pricing_Page_Testimonial_2": "Vi ser vĂ€rdet av att anvĂ€nda ABP Commercial för att minska omkostnaderna för kundanpassade utvecklingsprojekt. Teamet kan förena kodmönstret i olika projektströmmar. Vi ser mer potential i ramverket för att vi ska kunna bygga nya funktioner snabbare Ă€n tidigare. Vi litar pĂ„ att vi stĂ€ndigt kommer att se vĂ€rdet av att utnyttja ABP Commercial.", + "Pricing_Page_Testimonial_3": "Vi Ă€lskar ABP. Vi behöver inte skriva allt frĂ„n grunden. Vi utgĂ„r frĂ„n out-of-the-box-funktioner och fokuserar bara pĂ„ det vi verkligen behöver skriva. Dessutom Ă€r ABP vĂ€larkitekterat och koden Ă€r av hög kvalitet med fĂ€rre buggar. Om vi hade varit tvungna att skriva allt vi behövde pĂ„ egen hand hade vi kanske fĂ„tt lĂ€gga ner flera Ă„r. Ytterligare en sak vi gillar Ă€r att den nya versionen, problemfixningen eller förbĂ€ttringen kommer ut vĂ€ldigt snart, varannan vecka. Vi vĂ€ntar inte för lĂ€nge.", + "Pricing_Page_Testimonial_4": "ABP Commercial Ă€r en fantastisk produkt som jag skulle rekommendera. Kommersiella produkter till marknaden för vĂ„ra kunder i en enda konfigurerbar plattform. Den starthjĂ€lp som ramverket och verktygen ger alla team Ă€r vĂ€rd varenda krona. ABP Commercial var det som passade bĂ€st för vĂ„ra behov.", + "Pricing_Page_Testimonial_5": "ABP Framework Ă€r inte bara ett ramverk, utan ocksĂ„ en guide för projektutveckling/hantering, eftersom det ger utbildning i DDD, GenericRepository, DI, Microservice och Modularity. Även om du inte kommer att anvĂ€nda sjĂ€lva ramverket kan du utveckla dig sjĂ€lv med abp.io/docs som Ă€r vĂ€l och professionellt förberedda (OpenIddict, Redis, Quartz etc.). Eftersom mĂ„nga saker Ă€r förbyggda förkortar det projektutvecklingstiden avsevĂ€rt (t.ex. inloggningssida, undantagshantering, datafiltrering, seeding, revisionsloggning, lokalisering, automatisk API-kontroller etc.) Som ett exempel frĂ„n vĂ„r applikation har jag anvĂ€nt Local Event Bus för lagerstyrning. SĂ„ jag kan hantera orderrörelser genom att skriva lagerhanterare. Det Ă€r underbart att inte förlora tid för CreationTime, CreatorId. De fylls i automatiskt.", + "Pricing_Page_Testimonial_6": "ABP Framework Ă€r ett bra ramverk men det tar tid att förstĂ„ de olika lager, klasser och bibliotek som det anvĂ€nder (sĂ€rskilt ABP). Jag tillbringade mycket tid med att lĂ€sa kodbasen, men ABP Commercial sparade oss tid nĂ€r vi skapade projektspecialitetsenheterna (AR) och förvaret kopplat till var och en av dem. Jag gillade ocksĂ„ det tillvĂ€gagĂ„ngssĂ€tt som anvĂ€nds i ABP Ă€r mycket moget; vi vet Ă€r baserat pĂ„ DDD och monolit.", + "Pricing_Page_Testimonial_7": "Som ett nystartat företag mĂ„ste vi iterera snabbt och spendera minimal tid pĂ„ standardfunktioner och icke-kĂ€rnfunktioner.\nVĂ„ra ingenjörer strĂ€cker sig frĂ„n mycket erfarna till juniora ingenjörer, och vi behövde en gemensam förstĂ„else och ett sĂ€tt att dela teknisk och domĂ€nkunskap, ABP gjorde det möjligt för oss att göra detta tack vare deras fantastiska guider och dokumentation.\nDet finns saker som vi inte har behövt oroa oss för eftersom de fungerar direkt med ABP.\nABP hjĂ€lpte oss att effektivisera snabb prototyping och utveckling, mindre Ă€n 4 veckor frĂ„n funktionsstart till produktion. Med alla premiumfunktioner som ingĂ„r i licensen har ABP gett oss \"Startup in a Box\" pĂ„ Software Engineering-sidan.", + "Pricing_Page_Testimonial_8": "Jag skulle rekommendera ABP commercial till alla som vill utöka utbudet av produkter som Ă€r tillgĂ€ngliga för sina kunder. Det Ă€r fantastiskt nĂ€r man behöver anvĂ€nda en distribuerad företagsmiljö (Angular, WPF, Win&Linux). Förutom deras produkter Ă€lskar vi deras support, som gör vĂ„rt jobb snabbare och enklare. Vi vet redan att vi har hittat en bra partner för framtiden som kommer att stödja oss i att expandera vĂ„r verksamhet.", + "Pricing_Page_Testimonial_9": "Vi Ă€r ett företag med 2 anstĂ€llda som har varit verksamma i över 20 Ă„r.\nNĂ€r det gĂ€ller vĂ„r erfarenhet av ABP Commercial kontaktades vi av en kund som ville att vi skulle utveckla en ny personalapplikation i en modern miljö för att ersĂ€tta deras 25 Ă„r gamla Access-applikation. Vi bestĂ€mde oss för att gĂ„ över frĂ„n en desktoplösning till en webbaserad lösning.\n\nVid den tidpunkten hade vi mycket liten kunskap om webbapplikationer och .NET, men vi snubblade över ABP Commercial, och med hjĂ€lp av ABP Framework, teknisk dokumentation och ABP Suite kunde vi inte bara utveckla applikationen enligt kundens specifikationer utan ocksĂ„ framgĂ„ngsrikt arbeta i en .NET-miljö inom ett Ă„r.", + "AbpBookDownloadArea_ClaimYourEBook": "Gör ansprĂ„k pĂ„ din Mastering ABP Framework e-bok", + "AddMemberModal_Warning_1": "Om det anvĂ€ndarnamn som du försöker lĂ€gga till inte finns i systemet, be din teammedlem att registrera sig pĂ„ {0} och dela anvĂ€ndarnamnet pĂ„ hans/hennes konto med dig.", + "MyOrganizations_Detail_WelcomeMessage": "VĂ€lkommen till din organisation, {0}", + "MyOrganizations_Detail_OrganizationManagement": "Organisation Förvaltning", + "OrganizationDisplayName": "Organisationens visningsnamn", + "MyOrganizations_Detail_EditDisplayName": "Redigera visningsnamn", + "MyOrganizations_Detail_UpgradeYourLicense": "Uppgradera din licens", + "MyOrganizations_Detail_LicenseStartAndExpiryDate": "Licensens startdatum - utgĂ„ngsdatum", + "MyOrganizations_Detail_OwnerRightInfo": "Du anvĂ€nder {0} av din {1} Ă€gares rĂ€ttigheter.", + "MyOrganizations_Detail_CopyApiKey": "Kopiera nyckeln", + "MyOrganizations_Detail_ApiKeyDescription": "API-nyckeln Ă€r token för PRO-paket som finns pĂ„ {1}.", + "MyOrganizations_Detail_YourPrivateNugetSource": "Din privata NuGet-kĂ€lla Ă€r {0}", + "MyOrganizations_Detail_PrivateNugetSourceWarning": "Detta lĂ€ggs automatiskt till som en feed till din NuGet.Config i din ABP-lösning. Dela inte din privata nyckel med obehöriga anvĂ€ndare!", + "MyOrganizations_Detail_DeveloperSeatInfo": "Du anvĂ€nder {0} av dina {1} platser för utvecklare.", + "NeedMoreSeatsForYourTeam": "Behöver du fler platser för ditt team?", + "MyOrganizations_Detail_PricePerYear": "{0} / per Ă„r", + "MyOrganizations_Detail_PurchaseDeveloperSeats": "Köpa platser för utvecklare", + "Invoices": "Fakturor", + "RequestInvoice": "BegĂ€r faktura", + "OrderNumber": "BestĂ€llningsnummer", + "Products": "Produkter", + "TotalPrice": "Totalt pris", + "ThereIsNoInvoice": "Det finns ingen faktura", + "MyOrganizations_Detail_PaymentProviderInfo": "Om du har köpt din licens via {0} gateway skickas PDF-fakturan till din e-postadress, se {0} fakturering.", + "MyOrganizations_Detail_PayUInfo": "Om du har köpt via Iyzico-gatewayen klickar du pĂ„ knappen \"BegĂ€r faktura\" och fyller i faktureringsinformationen.", + "MyOrganizations_Detail_ConclusionInfo": "Din fakturabegĂ€ran kommer att behandlas inom {0} arbetsdagar.", + "ExtendYourLicense": "FörlĂ€ng din {0} licens", + "PurchaseLicense": "Köp {0} licens", + "DownloadInvoiceModal_DownloadInvoice": "Ladda ner faktura", + "DownloadInvoiceModal_SaveInformationOnlyOnce": "Du kan bara spara din faktureringsinformation en gĂ„ng.", + "InvoiceModal_EnterCompanyName": "Ange ditt juridiska företagsnamn...", + "InvoiceModal_EnterCompanyAddress": "Ange din juridiska företagsadress...", + "InvoiceModal_EnterTaxNumber": "Ange ditt TAX/VAT-nummer om det finns tillgĂ€ngligt...", + "RequestInvoiceModal_EnterNotes": "Ytterligare information för din faktura... Denna anteckning kommer att skrivas i anteckningsavsnittet pĂ„ fakturan.", + "PrePayment_PayWithIyzico": "Du kommer att betala med Iyzico", + "ContinueToCheckout": "FortsĂ€tt till kassan", + "PrePayment_IyzicoRedirectionInfo": "Du kommer att omdirigeras till Iyzico Payment Gateway för att slutföra ditt köp pĂ„ ett sĂ€kert sĂ€tt.", + "PrePayment_IyzicoAcceptVisaAndMasterCard": "Iyzico tar emot Visa och MasterCard.", + "Purchase": "Köp", + "AcceptTermsAndConditions": "Jag har lĂ€st, förstĂ„tt och accepterar integritetspolicy, villkor och EULA.", + "AcceptTermsAndConditionsWarningMessage": "VĂ€nligen acceptera integritetspolicyn och villkoren", + "SelectGatewayToContinue": "VĂ€nligen vĂ€lj en Gateway för att fortsĂ€tta!", + "GatewaySelection_SelectGateway": "VĂ€lj en betalningsportal", + "GatewaySelection_RedirectionMessage": "DĂ€refter kommer du att omdirigeras till den valda betalningsgatewayens webbplats för transaktionen.", + "PaymentSucceed_PaymentSuccessMessage": "Betalning framgĂ„ngsrik", + "PaymentSucceed_ThanksForPurchase": "Tack för ditt köp!", + "PaymentSucceed_CreateYourOrganization": "Skapa din organisation", + "PaymentSucceed_AddMeAsDeveloper": "Jag Ă€r ocksĂ„ utvecklare, lĂ€gg till mig som utvecklare i min organisation.", + "PaymentSucceed_CreateOrganization": "Skapa organisation", + "PaymentSucceed_OrganizationDescription": "En organisation bestĂ„r av utvecklare och Ă€gare. Utvecklarna Ă€r anvĂ€ndare som skriver kod i ABP-projektet och som kommer att dra nytta av webbplatsen {1}. Ägarna Ă€r anvĂ€ndare som tilldelar utvecklarplatser och hanterar licensiering.", + "PaymentSucceed_ViewOrganization": "Klicka hĂ€r för att se organisationen", + "Purchase_TotalAnnualPrice": "TOTALT (Ă„rsavgift)", + "Purchase_TrainingPrice": "Pris för utbildning", + "Purchase_OnboardingTraining": "Live-utbildning i onboarding och utveckling av webbapplikationer", + "TotalDeveloperPrice": "Totalt pris för utvecklare", + "Purchase_PricePerDeveloper": "{0} per utvecklare", + "Purchase_IncludedDeveloperInfo": "{0} {1} ingĂ„r.", + "Purchase_LicenseExtraDeveloperPurchaseMessage": "I {0} licens ingĂ„r {1} utvecklare. Du kan lĂ€gga till ytterligare utvecklare.", + "StartupTemplates_Page_Title": "ABP Startup Mallar", + "StartupTemplates_Page_Description": "Kickstarta ditt nya projekt med ABP:s appmallar! LĂ€mna alla infrastrukturaspekter till ABP och gör det du gör bĂ€st; fokusera pĂ„ ditt arbete...", + "MicroserviceStartupSolutionForDotnet": "Microservice Startup-lösning för .NET", + "MonolithSolutionForDotnet": "Monolitisk (modulĂ€r) lösning för .NET", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} timmar", + "Trainings_Content": "Utbildningens innehĂ„ll", + "Trial_Page_StartYourFreeTrial": "Starta din gratis provperiod.", + "TrialLicenseFeatures": "Du kommer att kunna dra nytta av alla ABP:s kommersiella funktioner", + "TrialPeriodDays": "Du kommer att ha en {0} dagars teamlicens", + "TrialForumSupportIncident": "Du kommer att ha {0} forum support incidenter", + "Contact_Page_Title": "Kontakta oss", + "Contact_Page_Description": "Kontakta oss om du har frĂ„gor om licenser, tillĂ€ggstjĂ€nster, förfrĂ„gningar eller feedback om ABP. Vi Ă€r hĂ€r för att hjĂ€lpa dig!", + "Demo_Page_Title": "Skapa en demo", + "Demo_Page_Description": "Skapa en gratis demo för att se ett exempel pĂ„ en ansökan som skapats med hjĂ€lp av ABP-startmallen. Upprepa inte dig sjĂ€lv för vanliga applikationskrav.", + "Discounted_Page_Title": "Rabatterad prissĂ€ttning", + "Discounted_Page_Description": "VĂ€lj de funktioner och den funktionalitet som ditt företag behöver redan idag. Köp en kommersiell licens och skapa obegrĂ€nsat med projekt", + "Faq_Page_Title": "Vanliga frĂ„gor och svar", + "Faq_Page_Description": "Hitta svar pĂ„ vanliga frĂ„gor om ABP Framework i vĂ„r FAQ-sektion, som tĂ€cker olika Ă€mnen och frĂ„gor.", + "Faq_Page_SwiftCode": "SWIFT-kod", + "Faq_Page_BankName": "Bankens namn", + "Faq_Page_AccountName": "Kontots namn", + "Faq_Page_AccountNumber": "Kontonummer", + "Faq_Page_Currency": "Valuta", + "Faq_Page_VatNumber": "Momsregistreringsnummer", + "Faq_Page_OtherCurrenciesInfo": "För andra valutor, se alla konton", + "ProjectCreatedSuccess_Page_Title": "Ditt projekt skapat", + "ProjectCreatedSuccess_Page_Description": "Ditt ABP-projekt har skapats framgĂ„ngsrikt!", + "Suite_Page_Title": "ABP-svit", + "Suite_Page_Description": "Möt ABP Suite, ett verktyg för snabb applikationsutveckling som ökar produktiviteten och effektiviteten. Skapa CRUD-sidor pĂ„ nĂ„gra minuter!", + "Themes_Page_Title": "ABP Teman", + "Themes_Page_Description": "Utseendet Ă€r viktigt! Vi presenterar LeptonX Theme, ett modernt, anpassningsbart och flexibelt tema som skapar en unik anvĂ€ndarupplevelse.", + "Tools_Page_Title": "ABP Verktyg", + "Tools_Page_Description": "Utforska de verktygslĂ„dor som ABP tillhandahĂ„ller och som ökar utvecklingsproduktiviteten och effektiviserar din utveckling.", + "DeveloperPrice": "Pris för utvecklare", + "AdditionalDeveloperPaymentInfoSection_AdditionalDevelopers": "{0} utvecklare", + "LicenseRemainingDays": "i {0} dagar", + "ExtendPaymentInfoSection_Description": "Genom att förlĂ€nga/förnya din licens kommer du att fortsĂ€tta att fĂ„ premium support. Du kommer ocksĂ„ att kunna fĂ„ större eller mindre uppdateringar för moduler och teman. Du kommer att kunna fortsĂ€tta skapa nya projekt. Och du kommer fortfarande att kunna anvĂ€nda ABP Suite som pĂ„skyndar din utveckling.", + "LicenseRenewalPrice": "Pris för förnyelse av licens", + "LicensePrice": "Licenspris", + "TrialLicensePaymentInfoSection_Description": "Köp licens: Genom att köpa en licens kommer du att fortsĂ€tta att fĂ„ premium support. Du kommer ocksĂ„ att kunna fĂ„ större eller mindre uppdateringar för moduler och teman. Du kommer att kunna fortsĂ€tta skapa nya projekt. Och du kommer fortfarande att kunna anvĂ€nda ABP Suite som pĂ„skyndar din utveckling.
Se jĂ€mförelsetabellen för licenser för att kontrollera skillnaderna mellan licenstyperna.", + "SelectTargetLicense": "VĂ€lj mĂ„llicens", + "UpgradePaymentInfoSection_ExtendMyLicenseForOneYear": "Ja, förlĂ€nga min licens utgĂ„ngsdatum med 1 Ă„r.", + "UpgradePaymentInfoSection_WantToExtendLicense": "Vill du förlĂ€nga din licens med ytterligare 1 Ă„r?", + "UpgradePaymentInfoSection_UpgradingWillNotExtendLicense": "Uppgradering kommer inte att förlĂ€nga licensens utgĂ„ngsdatum!", + "UpgradePaymentInfoSection_LicenseUpgradeDescription": "Genom att uppgradera din licens kommer du att bli befordrad till en högre licenstyp, vilket gör att du kan fĂ„ ytterligare fördelar. Se jĂ€mförelsetabellen för licenser för att kontrollera skillnaderna mellan licenstyperna.", + "Welcome_Page_UseSameCredentialForCommercialWebsites": "AnvĂ€nd samma autentiseringsuppgifter för bĂ„de abp.io och abp.io/support/questions.", + "WatchCrudPagesVideo": "Titta pĂ„ videon \"Skapa CRUD-sidor med ABP Suite\"!", + "WatchGeneratingFromDatabaseVideo": "Titta pĂ„ videon \"ABP Suite: Generera CRUD-sidor frĂ„n befintliga databastabeller\" Video!", + "WatchTakeCloserLookVideo": "Titta pĂ„ videon \"Ta en nĂ€rmare titt pĂ„ kodgenerering: ABP Suite\" Video!", + "ConfirmedEmailAddressRequiredToStartTrial": "Du mĂ„ste ha en bekrĂ€ftad e-postadress för att kunna starta en testlicens.", + "EmailVerificationMailNotSent": "E-postverifiering mail kunde inte skickas.", + "GetConfirmationEmail": "Klicka hĂ€r för att fĂ„ ett verifieringsmejl om du inte har fĂ„tt det tidigare.", + "WhichLicenseTypeYouAreInterestedIn": "Vilken licenstyp Ă€r du intresserad av?", + "DontTakeOurWordForIt": "Ta inte vĂ„rt ord för det...", + "BlazoriseLicense": "MĂ„ste vi köpa en Blazorise-licens?", + "ExtendPaymentInfoSection_DeveloperPrice": "{0}x Ytterligare utvecklare", + "ExtendPaymentInfoSection_DiscountRate": "Rabatt {0}%.", + "TotalNetPrice": "Totalt nettopris", + "EFCore": "Entity Framework Core", + "All": "Alla", + "Mvc": "MVC", + "DataBaseProvider": "Dataleverantör", + "UIFramework": "Ramverk för anvĂ€ndargrĂ€nssnitt", + "LeptonXThemeForDashboard": "LeptonX Theme för din Admin Dashboard av", + "AbpPlatform": "ABP-plattform", + "YouDeserveGoodUXUI": "Du förtjĂ€nar ett bra UI och ett bĂ€ttre UX. LeptonX Theme by ABP Ă€r hĂ€r för att tjĂ€na det.", + "ViewLiveDemo": "Visa demo för live-tema", + "GetLeptonX": "Skaffa LeptonX nu", + "SeeLeptonXDocumentation": "Se LeptonX dokumentation", + "SeeLeptonDocumentation": "Se Lepton Dokumentation", + "SimplifiedMenu": "Förenklad meny", + "SimplifiedMenuDescription": "Du kan enkelt hitta den sida du letar efter genom att filtrera i menyn", + "YourFavoritePages": "Dina favoritsidor inom rĂ€ckhĂ„ll", + "YourFavoritePagesDescription": "LĂ€gg enkelt till eller ta bort sidan frĂ„n favoriter genom att klicka pĂ„ stjĂ€rnikonen i det övre högra hörnet av sidan.", + "BreadCrumbs": "Breadcrumb för sömlös vĂ€xling", + "BreadCrumbsDescription": "Med Breadcrumb kan du vĂ€xla till sidorna pĂ„ samma nivĂ„ med ett klick, Ă€ven nĂ€r vĂ€nstermenyn Ă€r stĂ€ngd, och det fungerar pĂ„ surfplattor och mobiler!", + "YourMenu": "Din meny som du vill ha den", + "YourMenuDescription": "Anpassa de direktklickbara ikonerna och rullgardinsmenyerna i anvĂ€ndarmenyn som du vill. AnvĂ€ndarmenyn Ă€r helt anpassningsbar efter dina behov", + "RtlSupport": "RTL-stöd för ditt sprĂ„k", + "RtlSupportDescription": "LeptonX Theme stöder RTL för ditt sprĂ„k. SprĂ„kalternativen finns i instĂ€llningsmenyn sĂ„ att du kan Ă€ndra sprĂ„k.", + "YourColors": "Dina fĂ€rger i grĂ€nssnittet för din adminpanel", + "YourColorsDescription": "LeptonX Theme fungerar enligt dina systeminstĂ€llningar och har alternativ för dashboard light theme, dashboard dark theme och dashboard semi-dark theme.", + "ArrangeContentWidth": "Ordna enkelt bredden pĂ„ ditt innehĂ„ll", + "ArrangeContentWidthDescription": "Ändra enkelt bredden pĂ„ din innehĂ„llsyta.", + "LeptonXCompatibleWith": "LeptonX Theme Ă€r kompatibelt med", + "MobileResponsiveTemplate": "Mobil responsiv mall", + "MobileResponsiveTemplateDescription1": "FĂ„ tillgĂ„ng till LeptonX adminpanel frĂ„n vilken enhet du vill.", + "MobileResponsiveTemplateDescription2": "Den Ă€r utformad för att du enkelt ska kunna anvĂ€nda den i alla dina enheter. Den Ă€r responsiv pĂ„ mobila enheter och surfplattor.", + "TopMenuLayoutOption": "Alternativ för layout av toppmeny", + "TopMenuLayoutOptionDescription1": "Om du vill konfigurera din webbplats med samma adminpanel Ă€r det möjligt att göra det med LeptonX Theme!", + "TopMenuLayoutOptionDescription2": "Prova bara LeptonX toppmenylayout för att fĂ„ det att hĂ€nda!", + "EasilyCustomizable": "LĂ€tt att anpassa till ditt varumĂ€rkes fĂ€rger", + "EasilyCustomizableDescription1": "Du kan anpassa LeptonX-temat med bara nĂ„gra fĂ„ SCSS-variabler. Ingen Ă„sidosĂ€ttning, ingen extra CSS-belastning!", + "EasilyCustomizableDescription2": "Med LeptonX kan du ordna din adminpanel precis som du vill.", + "IndependentLayout": "Oberoende layout och innehĂ„llsyta", + "IndependentLayoutDescription1": "LeptonX:s layoutinfrastruktur utformades helt separat frĂ„n innehĂ„llet.", + "IndependentLayoutDescription2": "Detta innebĂ€r att du fritt kan utforma ditt projekt med en annan innehĂ„llsstruktur Ă€n Bootstrap om du vill.", + "MostUsedLibraries": "De mest anvĂ€nda biblioteken integrerade med LeptonX", + "MostUsedLibrariesDescription1": "LeptonX innehĂ„ller dina mest anvĂ€nda bibliotek. Det gör att du enkelt kan anvĂ€nda bibliotek som ApexCharts, DataTables, DropZone, FullCalender, JSTree, Select2 och Toastr.", + "MostUsedLibrariesDescription2": "LeptonX stöder ocksĂ„ MVC Angular och Blazor-specifika bibliotek.", + "CreateAndCustomize": "Skapa och anpassa de sidor du behöver pĂ„ nĂ„gra sekunder med LeptonX anpassade sidor", + "CreateAndCustomizeDescription": "Genom att anvĂ€nda LeptonX Theme fĂ„r du ocksĂ„ tillgĂ„ng till mĂ„nga fĂ€rdiga HTML-sidor. Dessa inkluderar mĂ„nga sidor som inloggningssida, blogg, FAQ, prenumerationslista, faktura, prissĂ€ttning och filhantering.", + "LeptonThemeForAdmin": "Lepton Theme för din adminpanel genom att", + "LeptonThemeForAdminDescription": "Lepton Theme Ă€r fortfarande tillgĂ€ngligt och kommer att underhĂ„llas. Om du vill byta till LeptonX Theme som Lepton Theme-anvĂ€ndare kan du se dokumentationen för att lĂ€ra dig hur du gör.", + "LeptonCompatibleWith": "Lepton Theme Ă€r kompatibelt med", + "BlackFridayDiscount": "Black Friday-rabatt", + "UpgradePaymentInfoSection_DeveloperPrice": "{0} för {1} ytterligare utvecklare", + "Upgrade": "Uppgradering", + "Renewal": "Förnyelse", + "UpgradePaymentInfoSection_LicensePrice": "{0} licens", + "UpgradePaymentInfoSection_LicenseRenewalPrice": "Förnyelse av licens", + "Total": "Totalt", + "SupportPolicyFaqTitle": "Vilken Ă€r er supportpolicy?", + "TotalDevelopers": "Totalt {0} utvecklare", + "CustomPurchaseExplanation": "SkrĂ€ddarsydd för dina specifika behov", + "WhereDidYouHearAboutUs": "Var har du hört talas om oss?", + "Twitter": "Twitter", + "Facebook": "Facebook", + "Youtube": "YouTube", + "Google": "Google", + "Github": "GitHub", + "Friend": " FrĂ„n en vĂ€n", + "Other": "Övriga", + "WhereDidYouHearAboutUs_explain": "Ange ...", + "DeletingMemberWarningMessage": "\"{0}\" kommer att tas bort frĂ„n listan över utvecklare. Om du vill kan du tilldela denna tomma plats till en annan utvecklare senare.", + "AdditionalInfo": "Om antalet platser för utvecklare överstiger dina krav kan du minska dem. Du kan skicka e-post till info@abp.io för att ta bort nĂ„gra av dina utvecklarplatser. Om du rensar bort oanvĂ€nda utvecklarplatser minskar kostnaden för licensförnyelse. Om du vill kan du Ă„terköpa ytterligare utvecklarplatser inom din aktiva licensperiod. Observera att eftersom det finns {0} utvecklare i det hĂ€r licenspaketet kan du inte minska detta antal.", + "LinkExpiredErrorMessage": "LĂ€nken du försöker komma Ă„t har gĂ„tt ut.", + "ExpirationDate": "UtgĂ„ngsdatum", + "SpringCampaignDiscount": "Rabatt pĂ„ vĂ„rkampanjen", + "WhyUseAbpIoPlatform": "Varför ska jag anvĂ€nda ABP Platform istĂ€llet för att skapa en ny lösning frĂ„n grunden?", + "WhyUseAbpIoPlatformFaqExplanation": "Se den sidan för en detaljerad förklaring av varför anvĂ€ndning av ABP Platform har en betydande fördel jĂ€mfört med att göra allt sjĂ€lv.", + "EulaPageTitle": "Licensavtal för slutanvĂ€ndare (EULA)", + "PrivacyPolicyPageTitle": "Integritetspolicy - Cookiepolicy", + "TermsConditionsPageTitle": "Villkor och anvisningar", + "TrainingsPageTitle": "Utbildningspaket", + "ModulesPageTitle": "ABP-moduler", + "ModulesPageDescription": "Utöka och anpassa din applikation med ABP:s modulĂ€ra arkitektur, som ger flexibilitet och skalbarhet.", + "Volo.AbpIo.Commercial:040001": "API-Ă„tkomstnyckeln Ă€r felaktig.", + "GetLepton": "Skaffa Lepton nu", + "MyOrganizations_Detail_LicenseStartDate": "Startdatum", + "MyOrganizations_Detail_LicenseExpiryDate": "UtgĂ„ngsdatum", + "BlazoriseSupport": "Hur fĂ„r jag Blazorise-licensnyckeln och support frĂ„n Blazorise-teamet?", + "BlazoriseSupportExplanation": "Följ stegen nedan för att fĂ„ support frĂ„n Blazorise-teamet och fĂ„ din Blazorise-licensnyckel:", + "BlazoriseSupportExplanation1": "Registrera dig för ett nytt konto pĂ„ blazorise.com/support/register med samma e-postadress som ditt abp.io-konto. LĂ€mna posten \"Licensnyckel\" tom. Det mĂ„ste vara samma e-postadress som ditt e-postkonto pĂ„ abp.io.", + "BlazoriseSupportExplanation2": "Verifiera din e-postadress genom att kolla din e-postlĂ„da. Kontrollera din skrĂ€ppostlĂ„da om du inte ser ett e-postmeddelande i din inkorg!", + "BlazoriseSupportExplanation3": "Logga in pĂ„ Blazorise supportwebbplats pĂ„ blazorise.com/support/login.", + "BlazoriseSupportExplanation4": "Om du har en aktiv ABP Commercial License kommer du ocksĂ„ att ha en Blazorise PRO-licens. Du kan fĂ„ din Blazorise-licensnyckel pĂ„ blazorise.com/support/user/manage/license.", + "BlazoriseSupportExplanation5": "Du kan stĂ€lla dina frĂ„gor pĂ„ supportwebbplatsen och generera en produkttoken för din applikation.", + "AbpLiveTrainingPackages": "ABP Live utbildningspaket", + "Releases": "UtgĂ„vor", + "ReleasesDescription": "Den hĂ€r sidan innehĂ„ller detaljerad information om varje release. Du kan se alla stĂ€ngda pull requests för en specifik release. För övergripande milstolpsutvecklingar kan du kolla in sidan med kortfattade releaseanteckningar.", + "ReleaseDate": "Utgivningsdatum", + "Labels": "Etiketter", + "PreRelease": "Förhandsrelease", + "AllTypes": "Alla typer", + "Enhancement": "FörbĂ€ttring", + "Bug": "Insekt", + "Feature": "Funktion", + "AllUIs": "Alla anvĂ€ndargrĂ€nssnitt", + "MVC": "MVC", + "BlazorServer": "Blazor Server", + "MAUI": "MAUI", + "HowItWorks_Page_Title": "Hur fungerar det?", + "HowItWorks_Page_Description": "FörstĂ„ hur ABP Framework fungerar med detaljerad dokumentation, inklusive guider och bĂ€sta praxis.", + "HowItWorks_Description1": "ABP utökar .NET-plattformen. SĂ„ allt du kan göra med en vanlig .NET-lösning Ă€r redan möjligt med ABP. Det gör det enkelt att komma igĂ„ng med en lĂ„g inlĂ€rningskurva.", + "HowItWorks_Description2": "NĂ€r du vĂ€l har börjat lĂ€ra dig och anvĂ€nda ABP-funktionerna kommer det att bli mycket roligare Ă€n nĂ„gonsin att utveckla din programvara.", + "HowItWorks_Description3": "Den hĂ€r sidan förklarar i princip hur du anvĂ€nder ABP Platform som .NET-utvecklare.", + "CreateANewSolution_Description1": "Allt börjar med att skapa en ny ABP-integrerad .NET-lösning.", + "StartWithStartupTemplates": "Starta en av de förbyggda mallarna för startup-lösningar", + "SimpleMonolithApplicationTemplate": "Enkel mall för monolitisk applikation", + "LayeredApplicationTemplate": "ModulĂ€r monolitisk applikationsmall", + "MicroserviceSolutionTemplate": "Mall för mikroservicelösning", + "CreateEmptySolutionAndUseAbp": "Eller skapa en ny tom .NET-lösning och installera ABP NuGet & NPM packages sjĂ€lv.", + "CreatingSolutionWithMultipleOptions": "Det finns flera alternativ för anvĂ€ndargrĂ€nssnitt och databas nĂ€r du skapar en ny lösning.", + "UIFrameworkOptions": "Alternativ för anvĂ€ndargrĂ€nssnitt", + "DotnetSolutionWithoutDependency": "Nu har du en vanlig .NET-lösning i din lokala dator som inte Ă€r beroende av nĂ„gon molnplattform eller extern tjĂ€nst.", + "CheckTheDocumentForDetails": "Du kan kontrollera {1} dokumentet för detaljer.", + "UIAndDatabaseIndependent": "ABP kan fungera med alla anvĂ€ndargrĂ€nssnitt och alla databasleverantörer som stöds av .NET.\n Dessa anvĂ€ndargrĂ€nssnitt och databasleverantörer Ă€r dock förintegrerade och vĂ€ldokumenterade.", + "InstallAbpModules": "Installera ABP-moduler", + "DevelopYourSolution": "Utveckla din lösning", + "DeployAnywhere": "Distribuera var som helst", + "InstallAbpModule_Description1": "ABP Ă€r ett modulĂ€rt ramverk för applikationsutveckling. Mallarna för startup-lösningar levereras redan med de viktigaste modulerna installerade.\n Men det finns fler applikationsmoduler som du kanske vill anvĂ€nda i din lösning.", + "InstallAbpModule_Description2": "Varje modul bestĂ„r av ett fĂ„tal NuGet- och NPM-paket och har ett installationsdokument. ABP Studio gör det mesta av arbetet automatiskt, sedan konfigurerar eller finjusterar du modulen manuellt baserat pĂ„ dess dokumentation.", + "DevelopYourSolution_Description1": "ABP:s infrastruktur gör att du kan fokusera pĂ„ din egen affĂ€rskod genom att automatisera det repetitiva arbetet och tillhandahĂ„lla förbyggd infrastruktur och applikationsfunktioner.", + "DevelopYourSolution_Description2": "I följande kodblock kan du se hur ABP sömlöst integreras i din kod och automatiserar de repetitiva uppgifterna Ă„t dig.", + "DevelopYourSolution_Description3": "Även i detta kortkodsblock gör ABP en hel del saker Ă„t dig.", + "DevelopYourSolution_Description4": "Det ger basklasser för att tillĂ€mpa konventioner, som\n dependency injection. Generiska\n repository tjĂ€nster ger ett bekvĂ€mt sĂ€tt att\n sĂ€tt att interagera med databasen. Deklarativ\n auktorisering arbetar med ett finjusterat behörighetssystem.", + "DevelopYourSolution_Description5": "ABP automatiserar helt och hĂ„llet\n arbetsenhet (för databasanslutning och transaktionshantering),\n undantagshantering,\n validering\n och auditloggning. Det ger mĂ„nga fler byggstenar för att förenkla dina dagliga utvecklingsuppgifter och fokusera pĂ„ din egen kod medan du skapar produktionsklara\n applikationer.", + "DevelopYourSolution_Description6": "Du kan förestĂ€lla dig hur lĂ„ngt och komplicerat det kodblocket kan bli om du skulle göra allt manuellt.", + "SuiteCrudGenerationInFewSeconds": "Förutom att handkoda din lösning kan du skapa fullt fungerande avancerade CRUD-sidor pĂ„ nĂ„gra minuter med hjĂ€lp av ABP Suite-verktyget. Det genererar koden till din lösning, sĂ„ att du kan finjustera den utifrĂ„n dina anpassade krav.", + "DeployAnywhere_Description1": "I slutĂ€ndan har du en ren .NET-lösning. Du kan distribuera din lösning till din egen server, till en molnplattform, till Kubernetes eller var du vill. Du kan distribuera till sĂ„ mĂ„nga servrar som du vill. ABP Ă€r ett agnostiskt verktyg för driftsĂ€ttningsmiljöer.", + "ExpertiseAbpFramework": "Expertis ABP", + "ExpertiseAbpFramework_Description1": "Vill du gĂ„ lĂ€ngre Ă€n grunderna och fĂ„ expertis med ABP Platform?", + "FreeDownload": "Fri nedladdning", + "HavingTrouble": "Har du problem?", + "HavingTrouble_Description1": "Har du problem med att utveckla din lösning? Vi finns hĂ€r för dig! AnvĂ€nd ABP:s supportplattform\n eller skicka ett e-postmeddelande för att fĂ„ hjĂ€lp direkt frĂ„n Core ABP-teammedlemmarna.", + "WeAreHereToHelp_Description1": "Du kan blĂ€ddra bland vĂ„ra hjĂ€lpĂ€mnen eller söka i vanliga frĂ„gor,\n eller sĂ„ kan du stĂ€lla en frĂ„ga till oss genom att anvĂ€nda kontaktformulĂ€ret.", + "OtherModules": "Övriga moduler", + "OtherModules_Description1": "Konto, Audit Logging, Chatt, CMS Kit, Filhantering, FormulĂ€r, GDPR, SprĂ„khantering och mer...", + "HowItWorks_DatabaseProviderOptions": "Alternativ för databasleverantör", + "SeeFAQ": "Se vanliga frĂ„gor", + "ReleaseLogs": "Release Loggar", + "ReleaseLogs_Tag": "{0} Loggar för frislĂ€ppande", + "ReleaseLogs_Pr": "Pull Request #{0} - {1}", + "NoLabels": "Inga etiketter", + "DoesTheSubscriptionRenewAutomatically": "Förnyas abonnemanget automatiskt?", + "DoesTheSubscriptionRenewAutomaticallyExplanation": "ABP-plattformen har inte en faktureringsmodell för automatisk förnyelse. DĂ€rför kommer din prenumeration inte att förnyas automatiskt i slutet av din licensperiod. Om du vill fortsĂ€tta att ha fördelarna med ABP-plattformen mĂ„ste du förnya den manuellt pĂ„ sidan för organisationshantering. Om du har flera organisationer klickar du pĂ„ knappen \"Hantera\" pĂ„ din organisation som löper ut och klickar sedan pĂ„ knappen \"FörlĂ€ng nu\" för att förnya din licens. Du kanske ocksĂ„ vill ta en titt pĂ„ avsnittet Vad hĂ€nder nĂ€r min licens gĂ„r ut?.", + "ExtraQuestionCreditsFaqTitle": "Kan jag köpa extra poĂ€ng för supportfrĂ„gor?", + "ExtraQuestionCreditsFaqExplanation": "Ja, det kan du göra. För att köpa extra frĂ„gepoĂ€ng, skicka ett e-postmeddelande till info@abp.io med din organisations namn. HĂ€r Ă€r prislistan för de extra frĂ„gekrediterna:
  • 50 frĂ„gor paket $999
  • 25 frĂ„gor paket $625
  • 15 frĂ„gor paket $450
", + "AlreadyBetaTester": "Du har redan gĂ„tt med i betatestarprogrammet.", + "AbpStudio": "ABP Studio", + "AbpStudio_Description": "ABP Studio Ă€r fortfarande under utveckling. Du kan fylla i formulĂ€ret nedan för att bli en av de första anvĂ€ndarna.", + "AbpStudio_Description1": "ABP Studio Ă€r en plattformsoberoende skrivbordsapplikation för ABP-utvecklare.", + "AbpStudio_Description2": "Det Ă€r vĂ€l integrerat i ABP-ramverket och syftar till att tillhandahĂ„lla en bekvĂ€m utvecklingsmiljö för dig genom att automatisera saker, ge insikter om din lösning, vilket gör det mycket enklare att utveckla, köra och distribuera dina lösningar.", + "AbpStudio_ComingSoon": "Kommer snart Planerat datum för betaversion: Q4 av 2023.", + "AbpStudio_PlannedPreviewDate": "Planerat utgivningsdatum för förhandsvisning: Q4 Ă„r 2023.", + "BetaRequest": "Beta förfrĂ„gan", + "CreateNewSolutions": "Skapa nya lösningar", + "CreateNewSolutions_Description1": "Du kan enkelt skapa allt frĂ„n enkla applikationer till modulĂ€ra monolit- eller mikroservicelösningar med mĂ„nga alternativ. Du fĂ„r en fullstĂ€ndig produktionsfĂ€rdig basprogramvarulösning för ditt företag.", + "ArchitectYourSolutions": "Arkitekt för dina lösningar", + "ArchitectYourSolutions_Description1": "Bygg enklare monolitiskt modulĂ€ra och mikrotjĂ€nstbaserade lösningsstrukturer genom att skapa moduler eller tjĂ€nster och upprĂ€tta relationer mellan dem. Du kan ocksĂ„ installera eller avinstallera förbyggda applikationsmoduler.", + "ExploreYourSolution": "Utforska din lösning", + "ExploreYourSolution_Description1": "ABP Studio visar en vy pĂ„ hög nivĂ„ av komponenterna i din lösning och de moduler som din lösning Ă€r beroende av. Du kan utforska entiteter, tjĂ€nster, HTTP API:er och mycket mer utan att behöva öppna din kodbas.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze": "Kör multiapplikations- eller microservice-lösningar pĂ„ ett kick", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description1": "Kör en, flera eller alla tjĂ€nster med ett enda klick. PĂ„ sĂ„ sĂ€tt Ă€r det mycket enkelt att stoppa en tjĂ€nst, köra den i Visual Studio för att testa eller debugga.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description2": "Se en lista över tjĂ€nster, visa HTTP-begĂ€ran i realtid och antal undantag för varje tjĂ€nst.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description3": "Se alla detaljer om alla HTTP-begĂ€randen som kommer till en tjĂ€nst.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description4": "Utforska undantagsdetaljer i realtid i alla tjĂ€nster, filtrera och sök enkelt.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description5": "Visa applikationsloggar, filtrera efter loggnivĂ„ eller sök efter text.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description6": "BlĂ€ddra genom anvĂ€ndargrĂ€nssnittet i din applikation utan att lĂ€mna solution runner.", + "IntegrateToYourKubernetesCluster": "Integrera med ditt Kubernetes-kluster", + "IntegrateToYourKubernetesCluster_Description1": "Koppla din lokala utvecklingsmiljö till ett lokalt eller avlĂ€gset Kubernetes-kluster, dĂ€r klustret redan kör din mikrotjĂ€nstlösning.", + "IntegrateToYourKubernetesCluster_Description2": "FĂ„ Ă„tkomst till alla tjĂ€nster i Kubernetes med deras tjĂ€nstenamn som DNS, precis som om de körs pĂ„ din lokala dator.", + "IntegrateToYourKubernetesCluster_Description3": "Interceptera vilken tjĂ€nst som helst i det klustret, sĂ„ att all trafik till den intercepterade tjĂ€nsten automatiskt omdirigeras till din tjĂ€nst som körs i din lokala maskin. NĂ€r din tjĂ€nst behöver anvĂ€nda nĂ„gon tjĂ€nst i Kubernetes omdirigeras trafiken tillbaka till klustret, precis som om din lokala tjĂ€nst körs inuti Kubernetes.", + "GetInformed": "Bli informerad", + "Studio_GetInformed_Description1": "LĂ€mna din kontaktinformation för att fĂ„ information och pröva först nĂ€r ABP Studio har lanserats.", + "Studio_GetInformed_Description2": "Planerat utgivningsdatum för förhandsvisning: Q3 Ă„r 2023.", + "ThankYou!": "Tack sĂ„ mycket!", + "SendBetaRequest": "Skicka Beta förfrĂ„gan", + "YouJoinedTheBetaTesterProgram": "Du har gĂ„tt med i betatestarprogrammet för ABP Studio.", + "PricingExplanation2": "30 dagars pengarna tillbaka-garanti - LĂ€s mer", + "MoneyBackGuaranteeText": "* 30-dagars pengarna-tillbaka-garanti pĂ„ alla licenser! 100% Ă„terbetalning pĂ„ Team-, 60% Ă„terbetalning pĂ„ Business- och Enterprise-licenser inom 30 dagar.", + "MobileApplicationStartupTemplates": "Mallar för uppstart av mobilapplikationer", + "MobileApplicationStartupTemplates_Description1": "Integrerade startmallar för mobilapplikationer för dina ABP-projekt.", + "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates": "Bygg kraftfulla applikationer för olika branscher med hjĂ€lp av ABP Mobile Startup Templates", + "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates_Description1": "ABP tillhandahĂ„ller tvĂ„ startmallar för mobilapplikationer som implementerats med React Native och .NET MAUI. NĂ€r du skapar din nya ABP-baserade lösning kommer du ocksĂ„ att ha grundlĂ€ggande startapplikationer som Ă€r anslutna till dina backend-API:er.", + "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates_Description2": "Applikationen har en förbyggd autentiseringstokencykel, stöd för flera sprĂ„k, stöd för flera behörigheter, inloggning, glömt lösenord, profilhantering och en anvĂ€ndarhanteringssida. Du kan lĂ€gga till din egen affĂ€rslogik och anpassa den utifrĂ„n dina krav.", + "TwoFrameworkOptions": "TvĂ„ alternativ för ramverk", + "TwoFrameworkOptions_Description": "ABP tillhandahĂ„ller bĂ„de React Native och .NET MAUI mobila startup-mallar. PĂ„ sĂ„ sĂ€tt kan du vĂ€lja den som bĂ€st passar dina behov. BĂ„da apparna Ă„teranvĂ€nder kod i den högsta graden mellan iOS- och Android-plattformarna.", + "PreIntegratedToYourBackend": "Förintegrerad till din backend", + "PreIntegratedToYourBackend_Description": "ABP Mobile-applikationer Ă€r förintegrerade med dina backend-API:er. Den fĂ„r en giltig autentiseringstoken frĂ„n servern och gör autentiserade förfrĂ„gningar.", + "MultiLanguage": "FlersprĂ„kig", + "MultiLanguage_Description": "Det stöder redan mer Ă€n 10 sprĂ„k ur lĂ„dan. Du kan ocksĂ„ lĂ€gga till ytterligare sprĂ„k.", + "Arabic": "Arabiska", + "Czech": "Tjeckien", + "English": "Engelska", + "Hungarian": "Ungerska", + "Finnish": "Finska", + "French": "Franska", + "Hindi": "Hindi", + "Portuguese": "Portugisiska", + "Italian": "Italienska", + "Russian": "Ryska", + "Slovak": "Slovakien", + "Turkish": "Turkiska", + "EngageAndRetainYourCustomersWithABPMobileApps": "Engagera och behĂ„ll dina kunder med ABP:s mobilappar", + "EngageAndRetainYourCustomersWithABPMobileApps_Description1": "Dina kunder vill kunna hantera sina produkter och prenumerationer var som helst och nĂ€r som helst. Det krĂ€ver att organisationer skapar mobilappar som gör det möjligt för kunderna att uppfylla sina önskemĂ„l snabbt och smidigt.", + "EngageAndRetainYourCustomersWithABPMobileApps_Description2": "Med ABP Mobile apps kan du skapa högkvalitativa native mobilappar för Android och iOS... med en enda kodbas och utan att kompromissa med sĂ€kerhet, kvalitet eller skalbarhet.", + "OneCodeBaseMultipleDevices": "En kodbas Flera enheter", + "OneCodeBaseMultipleDevices_Description": "ABP:s mobilapplikationer Ă€r plattformsoberoende. De Ă€r redo att installeras och köras pĂ„ iOS- och Android-enheter, och de anpassar sig till olika formfaktorer med hjĂ€lp av en enda kodbas. Utvecklare behöver bara skapa anvĂ€ndargrĂ€nssnittet och front-end-koden en gĂ„ng, det finns inget behov av att anpassa koden för varje enhet du vill stödja.", + "ComesWithTheSourceCode": "Levereras med kĂ€llkoden", + "ComesWithTheSourceCode_Description": "Mobilapparna Ă€r försedda med kĂ€llkod. Anpassa enkelt UX/UI för dina appar för att uppfylla riktlinjerna för varumĂ€rkesprofilering.", + "Purchase_OneYearPrice": "1 Ă„r Pris", + "Purchase_DeveloperSeatCount": "Antal platser för utvecklare", + "Purchase_DevelopersAlreadyIncluded": "{0} utvecklare redan inkluderade", + "1Year": "1 Ă„r", + "{0}Years": "{0} Ă„r", + "1YearLicense": "1 Ă„rs licens", + "{0}YearsLicense": "{0} År Licens", + "1AdditionalDeveloper": "1 ytterligare utvecklare", + "{0}AdditionalDevelopers": "{0} Ytterligare utvecklare", + "Discount": "Rabatt ({0}%)", + "TrainingPack": "Utbildningspaket", + "TrainingPackDiscount": "Rabatt pĂ„ utbildningspaket", + "Purchase_OnboardingTraining_Description": "Denna liveutbildning Ă€r giltig för en klass med 8 elever och denna rabatt Ă€r endast giltig nĂ€r den köps med den nya licensen. LĂ€s mer ", + "Purchase_Save": "{0}% Spara {1}", + "RemoveBasket": "Ta bort frĂ„n korgen", + "WhyABPIOPlatform?": "Varför ABP Platform?", + "DocumentAim": "Detta dokument syftar till att besvara den stora frĂ„gan:", + "DocumentAim_Description": "\"Varför ska du anvĂ€nda ABP Platform istĂ€llet för att skapa en ny lösning frĂ„n grunden?\"", + "DocumentAim_Description2": "Dokumentet presenterar utmaningarna med att bygga en modern mjukvarulösning och förklarar hur ABP hanterar dessa utmaningar.", + "CreatingANewSolution": "Skapa en ny lösning", + "CreatingANewSolution_Description": "NĂ€r du ska starta en ny lösning finns det mĂ„nga frĂ„gor du mĂ„ste stĂ€lla dig sjĂ€lv, och du bör lĂ€gga ner mycket tid innan du börjar skriva din allra första affĂ€rskod.", + "CreatingAnEmptySolution": "Skapa en tom lösning", + "THEPROBLEM": "PROBLEMET", + "CreatingAnEmptySolution_THEPROBLEM_Description": "Även att skapa en nĂ€stan tom lösning Ă€r en utmaning;", + "CreatingAnEmptySolution_THEPROBLEM_Description2": "Hur organiserar du din kodbas mellan olika projekt?", + "CreatingAnEmptySolution_THEPROBLEM_Description3": "Vilka Ă€r lagren och hur samverkar de?", + "CreatingAnEmptySolution_THEPROBLEM_Description4": "Hur integrerar ni med tredjepartsbibliotek?", + "CreatingAnEmptySolution_THEPROBLEM_Description5": "Hur stĂ€ller man in automatiserade tester?", + "ABPSOLUTION": "ABP-LÖSNING", + "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP tillhandahĂ„ller en vĂ€larkitekterad, skiktad och produktionsklar startup-lösning baserad pĂ„ Domain Driven Design-principerna. Lösningen innehĂ„ller ocksĂ„ en förkonfigurerad enhet och integration test -projekt för varje lager.", + "CommonLibraries": "Gemensamma bibliotek", + "CommonLibraries_THEPROBLEM_Description": "Vilka bibliotek bör du anvĂ€nda för att implementera gemensamma krav? Ekosystemet för programvaruutveckling Ă€r mycket dynamiskt, vilket gör det svĂ„rt att hĂ„lla jĂ€mna steg med de senaste verktygen, biblioteken, trenderna och metoderna.", + "CommonLibraries_ABPSOLUTION_Description": "ABP förintegrerar populĂ€ra, mogna och uppdaterade bibliotek i lösningen. Du behöver inte lĂ€gga tid pĂ„ att integrera dem eller fĂ„ dem att kommunicera med varandra. De fungerar som de ska direkt frĂ„n start.", + "UITheme&Layout": "UI Tema & Layout", + "UITheme&Layout_THEPROBLEM_Description": "NĂ€r man tar itu med anvĂ€ndargrĂ€nssnittet uppstĂ„r en rad olika utmaningar. Det handlar bland annat om att lĂ€gga grunden för ett responsivt, modernt och anpassningsbart UI-kit med ett konsekvent utseende och en mĂ€ngd funktioner som navigeringsmenyer, rubriker, verktygsfĂ€lt, sidfötter, widgetar med mera.", + "UITheme&Layout_THEPROBLEM_Description2": "Även om du vĂ€ljer ett fördesignat tema kan det ta flera dagars utveckling att integrera det sömlöst i ditt projekt. Ett ytterligare hinder ligger i att uppgradera sĂ„dana teman. Ofta blir temats HTML/CSS-struktur sammanflĂ€tad med din UI-kod, vilket gör framtida temaförĂ€ndringar eller uppgraderingar till komplicerade uppgifter. Denna sammanvĂ€vning av kod och design komplicerar flexibiliteten att göra justeringar lĂ€ngs linjen.", + "UITheme&Layout_ABPSOLUTION_Description": "ABP erbjuder ett distinkt temasystem som frigör din UI-kod frĂ„n temabegrĂ€nsningar. Teman existerar isolerat, paketerade som NuGet- eller NPM-paket, vilket gör installation eller uppgradering av teman till en frĂ„ga om minuter. Även om du behĂ„ller möjligheten att utveckla ditt eget tema eller integrera ett befintligt, presenterar ABP en samling polerade och moderna teman.", + "UITheme&Layout_ABPSOLUTION_Description2": "Dessutom finns det leverantörer av UI-komponenter som Telerik och DevExpress. Dessa leverantörer tillhandahĂ„ller dock frĂ€mst enskilda komponenter, vilket innebĂ€r att det Ă€r upp till dig att skapa ditt layoutsystem. NĂ€r du arbetar inom ABP-baserade projekt kan du sömlöst införliva dessa bibliotek, pĂ„ samma sĂ€tt som du skulle göra i alla andra projekt.", + "TestInfrastructure_THEPROBLEM_Description": "Att etablera en robust testmiljö Ă€r en tidskrĂ€vande uppgift. Det handlar om att skapa dedikerade testprojekt inom din lösning, noggrant vĂ€lja ut de verktyg som behövs, skapa mocks för tjĂ€nster och databaser, skapa viktiga basklasser och verktygstjĂ€nster för att minimera redundant kod i testerna och ta itu med olika relaterade uppgifter.", + "TestInfrastructure_ABPSOLUTION_Description": "ABP Startup Templates levereras fĂ€rdigutrustade med konfigurerade testprojekt, vilket effektiviserar processen för dig. Det innebĂ€r att du redan frĂ„n dag ett kan börja skriva din första enhets- eller integrationstestkod utan dröjsmĂ„l.", + "CodingStandards&Training": "Kodningsstandarder och utbildning", + "CodingStandards&Training_THEPROBLEM_Description": "NĂ€r du har konfigurerat lösningen för utveckling mĂ„ste du vanligtvis lĂ€ra utvecklarna hur systemet fungerar och hur man bygger det med hjĂ€lp av samma överenskomna metoder. Även om du ger dem utbildning kan det vara svĂ„rt att hĂ„lla dokumentationen uppdaterad. Med tiden kanske varje utvecklare skriver kod pĂ„ sitt eget sĂ€tt, vilket leder till att reglerna för att skriva kod skiljer sig frĂ„n varandra.", + "CodingStandards&Training_ABPSOLUTION_Description": "ABP-lösningen Ă€r redan snyggt organiserad och har tydliga förklaringar. Steg-för-steg-handledningar och guider visar exakt hur du ska arbeta med ett ABP-projekt.", + "KeepingYourSolutionUpToDate": "HĂ„ll din lösning uppdaterad", + "KeepingYourSolutionUpToDate_THEPROBLEM_Description": "NĂ€r du har pĂ„börjat din utveckling mĂ„ste du hĂ„lla reda pĂ„ de nya versionerna av de bibliotek du anvĂ€nder för uppgraderingar och korrigeringar.", + "KeepingYourSolutionUpToDate_ABPSOLUTION_Description": "Vi uppdaterar regelbundet alla paket till de senaste versionerna och testar dem före den stabila utgĂ„van. NĂ€r du uppdaterar ditt ABP-baserade projekt uppgraderas alla dess beroenden till den senaste tekniken.", + "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "Abp update CLI-kommandot hittar och uppgraderar automatiskt alla ABP-beroende NuGet- och NPM-paket i en lösning. Med ABP Ă€r det enklare att hĂ„lla sig till de senaste versionerna.", + "DRY": "Upprepa inte dig sjĂ€lv!", + "DRY_Description": "Att skapa en baslösning tar lĂ„ng tid och krĂ€ver god erfarenhet av arkitektur. Men detta Ă€r bara början! NĂ€r du börjar utveckla kommer du sannolikt att behöva skriva massor av repetitiv kod; det skulle vara fantastiskt om allt detta kunde hanteras automatiskt.", + "DRY_Description2": "ABP automatiserar och förenklar upprepningskoden sĂ„ mycket som möjligt genom att följa principen om konvention framför konfiguration. Det begrĂ€nsar dig dock inte nĂ€r du behöver vĂ€xla till manuell vĂ€xel. Kontrollen ligger alltid i dina hĂ€nder.", + "Authentication": "Autentisering", + "Authentication_THEPROBLEM_Description": "Single Sign On, Active Directory / LDAP-integration, OpenIddict-integration, sociala inloggningar, tvĂ„faktorsautentisering, glömt / Ă„terstĂ€llt lösenord, e-postaktivering, ny anvĂ€ndarregistrering, kontroll av lösenordskomplexitet, lĂ„sning av konto vid misslyckade försök, visning av misslyckade inloggningsförsök ... etc. Vi vet att alla dessa generiska krav Ă€r bekanta för dig. Du Ă€r inte ensam!", + "Authentication_ABPSOLUTION_Description": "ABP tillhandahĂ„ller alla dessa standardgrejer förimplementerade för dig som en Ă„teranvĂ€ndbar kontomodul. Du aktiverar och konfigurerar bara det du behöver.", + "CrossCuttingConcerns_THEPROBLEM_Description": "Cross-Cutting Concerns Ă€r den grundlĂ€ggande upprepningslogik som bör implementeras för varje anvĂ€ndningsfall. NĂ„gra exempel;", + "CrossCuttingConcerns_THEPROBLEM_Description2": "Starta transaktioner, genomföra vid framgĂ„ng och rulla tillbaka vid fel.", + "CrossCuttingConcerns_THEPROBLEM_Description3": "Hantera och rapportera undantag, returnera ett korrekt felsvar till klienterna och hantera felfall pĂ„ klientsidan.", + "CrossCuttingConcerns_THEPROBLEM_Description4": "Implementera auktorisering och validering, returnera korrekta svar och hantera dessa pĂ„ klientsidan.", + "CrossCuttingConcerns_ABPSOLUTION_Description": "ABP automatiserar eller förenklar alla vanliga övergripande problem. Du skriver bara kod som Ă€r viktig för din verksamhet, och ABP hanterar resten genom konventioner.", + "ArchitecturalInfrastructure": "Arkitektonisk infrastruktur", + "ArchitecturalInfrastructure_THEPROBLEM_Description": "Du behöver vanligtvis bygga infrastruktur för att implementera din arkitektur pĂ„ rĂ€tt sĂ€tt. Till exempel implementerar du i allmĂ€nhet Repository-mönstret. Du definierar nĂ„gra basklasser för att förenkla och standardisera skapandet av entiteter, tjĂ€nster, controllers och andra objekt.", + "ArchitecturalInfrastructure_ABPSOLUTION_Description": "ABP tillhandahĂ„ller allt detta och mer dĂ€rtill direkt frĂ„n start. Det Ă€r moget och vĂ€ldokumenterat.", + "EnterpriseApplicationRequirements": "Krav pĂ„ företagsapplikationer", + "EnterpriseApplicationRequirements_THEPROBLEM_Description": "Det finns mĂ„nga krav som du upprepade gĂ„nger mĂ„ste implementera i varje affĂ€rsapplikation;", + "EnterpriseApplicationRequirements_THEPROBLEM_Description2": "Detaljerat behörighetssystem och hantering av behörigheter i anvĂ€ndargrĂ€nssnittet baserat pĂ„ roller och anvĂ€ndare.", + "EnterpriseApplicationRequirements_THEPROBLEM_Description3": "Skriva granskningsloggar och entitetshistorik för att spĂ„ra nĂ€r en anvĂ€ndare Ă€ndrar en databaspost.", + "EnterpriseApplicationRequirements_THEPROBLEM_Description4": "Gör dina enheter mjukt raderade, sĂ„ att de markeras som raderade istĂ€llet för att fysiskt raderas frĂ„n databasen och automatiskt filtrera bort raderade enheter i dina frĂ„gor.", + "EnterpriseApplicationRequirements_THEPROBLEM_Description5": "Skapa abstraktioner och omslag för att konsumera dina backend-API:er frĂ„n frontend-koden.", + "EnterpriseApplicationRequirements_THEPROBLEM_Description6": "UppstĂ€llning i kö och utförande av bakgrundsjobb.", + "EnterpriseApplicationRequirements_THEPROBLEM_Description7": "Hantering av flera tidszoner i ett globalt system.", + "EnterpriseApplicationRequirements_THEPROBLEM_Description8": "Delning av validering, lokalisering och auktoriseringslogik mellan server och klient.", + "EnterpriseApplicationRequirements_ABPSOLUTION_Description": "ABP tillhandahĂ„ller en infrastruktur för att enkelt implementera sĂ„dana krav. Återigen behöver du inte spendera din vĂ€rdefulla tid pĂ„ att implementera alla dessa om och om igen.", + "GeneratingInitialCode&Tooling": "Generering av initialkod och verktyg", + "GeneratingInitialCode&Tooling_THEPROBLEM_Description": "Du kommer att bygga mĂ„nga liknande sidor i en typisk webbapplikation. De flesta av dem kommer att utföra liknande CRUD-operationer. Det Ă€r mycket trĂ„kigt och Ă€ven felbenĂ€get att upprepade gĂ„nger skapa sĂ„dana sidor.", + "GeneratingInitialCode&Tooling_ABPSOLUTION_Description": "ABP Suite kan generera en full-stack CRUD-sida för dina enheter pĂ„ nĂ„gra sekunder. Den genererade koden Ă€r skiktad och ren. Alla standardkrav för validering och auktorisering Ă€r implementerade. Dessutom genereras enhetstestklasser. NĂ€r du vĂ€l har fĂ„tt en helt fungerande sida kan du Ă€ndra den enligt dina affĂ€rsbehov.", + "IntegratingTo3rdPartyLibrariesAndSystems": "Integrering med bibliotek och system frĂ„n tredje part", + "IntegratingTo3rdPartyLibrariesAndSystems_THEPROBLEM_Description": "De flesta bibliotek Ă€r utformade pĂ„ lĂ„g nivĂ„ och du mĂ„ste vanligtvis göra en del arbete för att integrera dem pĂ„ rĂ€tt sĂ€tt utan att upprepa samma integrations- och konfigurationskod överallt i din lösning. Anta till exempel att du mĂ„ste anvĂ€nda RabbitMQ för att implementera din distribuerade hĂ€ndelsebuss. Allt du vill göra Ă€r att skicka ett meddelande till en kö och hantera de inkommande meddelandena. Men du mĂ„ste förstĂ„ meddelandemönster, köer och utbytesdetaljer. För att skriva effektiv kod mĂ„ste du skapa en pool för att hantera anslutningar, klienter och kanaler. Du mĂ„ste ocksĂ„ hantera undantag, ACK-meddelanden, Ă„teranslutning till RabbitMQ vid misslyckanden och mer.", + "IntegratingTo3rdPartyLibrariesAndSystems_ABPSOLUTION_Description": "Till exempel abstraherar ABP:s RabbitMQ Distributed Event Bus-integration alla dessa detaljer. Du skickar och tar emot meddelanden utan krĂ„ngel. Behöver du skriva kod pĂ„ lĂ„g nivĂ„? Inga problem, det kan du alltid göra. ABP begrĂ€nsar dig inte nĂ€r du behöver anvĂ€nda lĂ„gnivĂ„funktioner i det bibliotek du anvĂ€nder.", + "WhyNotBuildYourOwnFramework?": "Varför inte bygga ditt eget ramverk?", + "WhyNotBuildYourOwnFramework_THEPROBLEM_Description": "All infrastruktur, Ă€ven pĂ„ det enklaste sĂ€ttet, tar mycket tid att bygga, underhĂ„lla och dokumentera. Den blir större med tiden och det blir svĂ„rt att underhĂ„lla den i din lösning. Att separera dessa i ett Ă„teranvĂ€ndbart projekt Ă€r utgĂ„ngspunkten för att bygga ditt eget interna ramverk.", + "WhyNotBuildYourOwnFramework_THEPROBLEM_Description2": "Att bygga, dokumentera, utbilda och underhĂ„lla ett internt ramverk Ă€r verkligen svĂ„rt. Om du inte har ett erfaret, dedikerat ramverksteam blir ditt interna ramverk snabbt en odokumenterad Ă€ldre kod som ingen lĂ€ngre kan förstĂ„ och underhĂ„lla. Å andra sidan utvecklas dessa ramverk i allmĂ€nhet av en eller tvĂ„ utvecklare i teamet. Och dessa medarbetare hĂ„ller pĂ„ att bli en kunskapssilo. Det Ă€r bra för dem men dĂ„ligt för företaget eftersom de Ă€r projektets enda punkt för misslyckande -SPOF-. NĂ€r de lĂ€mnar företaget gĂ„r projektet dramatiskt ner.", + "WhyNotBuildYourOwnFramework_ABPSOLUTION_Description": "ABP Ă€r ett community-drivet, vĂ€ldokumenterat, moget och generiskt applikationsramverk. Ett team av mycket erfarna utvecklare arbetar hĂ„rt för att hĂ„lla det uppdaterat, lĂ€tt att förstĂ„ och bekvĂ€mt att anvĂ€nda. Att anvĂ€nda ett sĂ„ stabilt ramverk gör att du kan fokusera pĂ„ din egen affĂ€rskod och fĂ„ hjĂ€lp med ramverket frĂ„n experter nĂ€r du behöver det.", + "ArchitecturalInfrastructure_Description": "SaaS-applikationer, modulĂ€ra system eller mikroservicesystem Ă€r de mest anvĂ€nda modellerna för företagsprogramvara. Att bygga sĂ„dana system krĂ€ver inte bara en god förstĂ„else och erfarenhet utan ocksĂ„ en stark mjukvaruinfrastruktur. Annars kommer du att fĂ„ lĂ€gga ner mycket arbete pĂ„ att stödja dessa arkitektoniska detaljer i din kodbas.", + "Modularity_THEPROBLEM_Description": "Att bygga ett verkligt modulĂ€rt system Ă€r inte lĂ€tt! Alla aspekter av systemet (databas, entiteter, API:er, UI-sidor/komponenter) kan delas upp i moduler, och varje modul kan Ă„teranvĂ€ndas utan andra. Den vanliga ASP.NET Core ger inte en sĂ„dan modulĂ€r arkitektur. Om du behöver det bör du tĂ€nka pĂ„ det frĂ„n grunden.", + "Modularity_ABPSOLUTION_Description": "ABP Ă€r skapat för att vara en modulĂ€r struktur för applikationsutveckling. Varje funktion i ramverket Ă€r utvecklad för att vara kompatibel med modularitet. Dokumentation och guider förklarar hur man utvecklar Ă„teranvĂ€ndbara moduler pĂ„ ett standardiserat sĂ€tt.", + "SaaSMultiTenancy": "SaaS / Multi-tenancy", + "SaaSMultiTenancy_THEPROBLEM_Description": "Multi-tenancy Ă€r ett vanligt sĂ€tt att implementera SaaS-system. Att implementera en konsekvent multi-tenant infrastruktur kan dock bli komplicerat.", + "SaaSMultiTenancy_ABPSOLUTION_Description": "ABP tillhandahĂ„ller en komplett infrastruktur för flera hyresgĂ€ster och abstraherar komplexiteten frĂ„n din företagskod. Din applikationskod kommer att vara mestadels multi-tenancy medveten, medan ABP automatiskt isolerar databasen, cache och andra detaljer om hyresgĂ€sterna frĂ„n varandra. Den stöder en enda databas, per hyresgĂ€stdatabas och hybridmetoder. Den konfigurerar korrekt bibliotek som Microsoft Identity och OpenIddict, som normalt inte Ă€r kompatibla med multi-tenancy.", + "Microservices": "MikrotjĂ€nster", + "Microservices_THEPROBLEM_Description": "Att bygga ett mikrotjĂ€nstsystem krĂ€ver mĂ„nga infrastrukturdetaljer: Autentisering och auktorisering av applikationer och mikrotjĂ€nster samt implementering av asynkrona meddelanden och synkrona (Rest/GRPC) kommunikationsmönster mellan mikrotjĂ€nster Ă€r de mest grundlĂ€ggande frĂ„gorna.", + "Microservices_ABPSOLUTION_Description": "ABP tillhandahĂ„ller tjĂ€nster, guider och exempel som hjĂ€lper dig att implementera din microservice-lösning med hjĂ€lp av branschens standardverktyg.", + "Microservices_ABPSOLUTION_Description2": "ABP:s kommersiella licenser gĂ„r till och med ett steg lĂ€ngre och tillhandahĂ„ller en komplett startmall för att kickstarta din mikroservicelösning.", + "PreBuiltModules": "Förbyggda moduler", + "PreBuiltModules_THEPROBLEM_Description": "Alla har vi liknande men lite olika affĂ€rskrav. Men vi mĂ„ste alla uppfinna hjulet pĂ„ nytt eftersom ingen annans kod kan fungera direkt i vĂ„r lösning. De Ă€r alla inbĂ€ddade delar av en större lösning.", + "PreBuiltModules_ABPSOLUTION_Description": "ABP modules tillhandahĂ„ller mĂ„nga Ă„teranvĂ€ndbara applikationsmoduler som betalning, chatt, filhantering, revisionsloggrapportering ... etc. Alla dessa moduler installeras enkelt i din lösning och fungerar direkt. Vi lĂ€gger stĂ€ndigt till fler moduler.", + "PreBuiltModules_ABPSOLUTION_Description2": "Alla moduler Ă€r utformade sĂ„ att de kan anpassas efter dina affĂ€rsbehov. Om du behöver fullstĂ€ndig kontroll kan du ladda ner den fullstĂ€ndiga kĂ€llkoden för alla moduler och anpassa dem helt utifrĂ„n dina specifika affĂ€rskrav.", + "ABPCommunity": "ABP Gemenskap", + "ABPCommunity_Description": "Slutligen, att vara en del av en stor gemenskap dĂ€r alla följer liknande kodningsstilar och principer och delar en gemensam infrastruktur ger kraft nĂ€r du har problem eller behöver hjĂ€lp med designbeslut. Eftersom vi skriver kod pĂ„ liknande sĂ€tt kan vi hjĂ€lpa varandra mycket bĂ€ttre. ABP Ă€r ett community-stöttat projekt med mer Ă€n 10K stjĂ€rnor pĂ„ GitHub.", + "ABPCommunity_Description2": "Det Ă€r lĂ€tt att dela kod eller till och med Ă„teranvĂ€ndbara bibliotek mellan ABP-utvecklare. En kodsnutt som fungerar för dig kommer ocksĂ„ att fungera för andra. Det finns mĂ„nga exempel och handledningar som du direkt kan implementera i din applikation.", + "ABPCommunity_Description3": "NĂ€r du anlitar en utvecklare som tidigare arbetat med ABP-arkitekturen kommer denne omedelbart att förstĂ„ din lösning och pĂ„börja utvecklingen pĂ„ mycket kort tid.", + "WhyAbpIo_Page_Title": "Varför ABP Platform?", + "AbpStudio_Page_Title": "ABP Studio", + "AbpStudio_Page_Description": "Utforska ABP Studio, en integrerad utvecklingsmiljö för ABP Platform, som förbĂ€ttrar din utvecklingsprocess.", + "CampaignInfo": "Köp en ny licens eller förnya din befintliga licens och fĂ„ ytterligare 2 mĂ„nader utan extra kostnad! Detta erbjudande gĂ€ller för alla licensplaner. Se till att du utnyttjar denna tidsbegrĂ€nsade kampanj för att utöka din tillgĂ„ng till premiumfunktioner och uppgraderingar.", + "HurryUpLastDay": "Skynda pĂ„! Sista dagen: {0}", + "CreatingCRUDPagesWithABPSuite": "Skapa CRUD-sidor med ABP Suite", + "MultipleYearDiscount": "Rabatt för flera Ă„r", + "CampaignDiscountText": "Rabatt pĂ„ ny plattform", + "CampaignDiscountName": "Ny plattform", + "CampaignName:BlackFriday": "Svart fredag", + "MultipleOrganizationInfo": "Se alla dina organisationer", + "AbpStudioBetaAccessInfoTitle": "ABP Studio Beta Access", + "AbpStudioBetaAccessInfoText": "Vi Ă€r glada över att kunna dela med oss av beta-versionen av ABP Studio! Den hĂ€r versionen markerar en viktig milstolpe i vĂ„r utvecklingsresa, och vi Ă€r angelĂ€gna om att samla in din feedback för att göra applikationen Ă€nnu bĂ€ttre.", + "YouAreNotAuthorizedToDownloadStudio": "Du Ă€r inte behörig att ladda ner ABP Studio.", + "OrganizationHasNoDefaultCreditCard": "Din organisation har inget standardkreditkort. LĂ€gg till ett kreditkort för din organisation.", + "YouAreNotAuthorizedToPayThisPaymentRequest": "Du Ă€r inte behörig att betala denna betalningsbegĂ€ran.", + "YouAreNotAuthorizedToCreateBillingInfoForThisPaymentRequest": "Du Ă€r inte behörig att skapa faktureringsinformation för denna betalningsbegĂ€ran.", + "OrganizationNotFound": "Organisationen hittades inte.", + "CannotDeleteDefaultCardBecauseAutoRenewalEnabled": "Du kan inte ta bort kortet just nu eftersom funktionen Auto-Renewal Ă€r aktiverad. För att ta bort kortet mĂ„ste du först avaktivera Auto-Renewal.", + "AreYouSureWantToDeleteThisCard": "Är du sĂ€ker pĂ„ att du vill ta bort det hĂ€r kortet?", + "AreYouSureWantToSetThisCardAsDefault": "Är du sĂ€ker pĂ„ att du vill anvĂ€nda det hĂ€r kortet som standard?", + "OrganizationBillingInfoIsNotSuitableForIyzicoPayment": "Din organisations faktureringsinformation Ă€r inte lĂ€mplig för iyzico-betalning.", + "AutomaticRenewal": "Automatisk förnyelse", + "AutomaticRenewal_Description": "Om du förnyar en licens innan den gĂ„r ut fĂ„r du en rabatt pĂ„ upp till 40 %. Med den automatiska förnyelseprocessen kan du förnya din licens utan att förlora denna rabatt, och din utveckling kommer aldrig att avbrytas. Automatisk förnyelse Ă€r endast tillgĂ€nglig för kreditkortsbetalning. Du kan inaktivera automatisk förnyelse nĂ€r som helst genom att gĂ„ till din organisationshanteringssida. ABP sparar inte din kreditkortsinformation, men vĂ„ra globala betalningsgateways sĂ€krar besparingar.", + "CardNotFoundMessage": "Vill du lĂ€gga till ett nytt kort?", + "CardNotFoundTitle": "Kortet hittades inte", + "AutoRenewalEnabled": "Automatisk förnyelse aktiverad", + "AutoRenewalDisabled": "Automatisk förnyelse Avaktiverad", + "PaymentRequestIdIsNotProvided": "BetalningsförfrĂ„gans ID anges inte.", + "PaymentFailedInfo": "TyvĂ€rr, betalningen misslyckades! Detta kan bero pĂ„ otillrĂ€ckliga medel, ogiltigt kreditkortsnummer eller ogiltig pinkod", + "UsedPayment": "Denna betalning har redan anvĂ€nts", + "ManageLicense": "Hantera licens", + "AbpPlatformLeptonXTheme": "LeptonX Theme för din administrativa instrumentpanel av ABP Platform", + "NoActiveLicence": "Du Ă€r inte berĂ€ttigad till denna Ă„tgĂ€rd! Du har ingen aktiv licens.", + "ABPStudioBetaTester": "För att kunna skicka in din begĂ€ran mĂ„ste du logga in", + "ABPStudioBetaAccess": "ABP Studio Beta Access", + "VisitABPStudio": "Besök ABP Studio", + "EditBillingInformation": "Redigera faktureringsinformation", + "Organization": "Organisation", + "E-Book": "E-bok", + "CreditCards": "Kreditkort", + "BillingInformation": "Faktureringsinformation", + "AddNewCreditCard": "LĂ€gg till nytt kreditkort", + "MyOrganizations_LearnMorePlan": "LĂ€s mer om planer pĂ„ prissĂ€ttningssidan", + "AutoLicenseRenewalIsNotEnabled": "Automatisk licensförnyelse Ă€r inte aktiverad.", + "SetAsDefaultPaymentMethod": "Ange som standardbetalningsmetod", + "{0}PerAdditionalDeveloper": "${0} per ytterligare utvecklare", + "CardAlias": "Alias för kort (valfritt)", + "AbpDoesNotSaveYourPaymentDetails_Description": "Betalningsuppgifterna kommer att sparas i {2} sĂ€kerhetsvalv och du kan ta bort lagrade uppgifter nĂ€r som helst. Aktivering av automatisk förnyelse sĂ€kerstĂ€ller att din ABP-prenumeration automatiskt förnyas innan den löper ut, förutsatt att du har ett giltigt kreditkort. Om du avaktiverar automatisk förnyelse mĂ„ste du förnya din prenumeration manuellt. Om du vill fortsĂ€tta din projektutveckling utan avbrott föreslĂ„r vi att du aktiverar alternativet Automatisk förnyelse.", + "AddBillingInformation": "LĂ€gg till faktureringsinformation", + "YouHaveNoCardsSaved": "Kortet Ă€r inte sparat Ă€nnu.", + "CreateCreditCardModal_BillingDetails_Description": "Du mĂ„ste spara dina faktureringsuppgifter för att kunna lĂ€gga till ditt kreditkort.", + "TaxNo": "Skatt Nej", + "CardNumber": "Kortnummer", + "NameOnCard": "Namn pĂ„ kortet", + "BillingDetails": "Faktureringsinformation", + "ThereIsNoDeveloper": "Ingen utvecklare tillagd.", + "CardDetails": "Debit-/Kreditkortsuppgifter", + "YearCantBeNull": "ÅrsfĂ€ltet fĂ„r inte vara tomt.", + "CardHolderName": "Namn pĂ„ kortet", + "ExpireDate": "UtgĂ„ngsdatum", + "DisplayName:ExpireDate": "UtgĂ„ngsdatum", + "DisplayName:CardHolderName": "Namn pĂ„ kortet", + "CreditCardNumberLengthWarning": "Ogiltigt kortnummer", + "ExpirationWarning": "Ogiltigt utgĂ„ngsdatum", + "CreateCreditCardModal_Description": "NĂ€r du sparar ditt betalkort/kreditkort kommer en tillfĂ€llig avgift pĂ„ 1 USD att godkĂ€nnas för verifiering och Ă„terbetalas omedelbart.", + "ReturnOnInvestmentTitle": "Avkastning pĂ„ investeringar.", + "ReduceYourDevelopmentCostsDescription": "Minska dina utvecklingskostnader med mer Ă€n 50 % med ABP Platform.", + "SettingUpTheArchitectureTitle": "UppsĂ€ttning av arkitekturen", + "DoingEverythingFromScratch": "Att göra allt frĂ„n början", + "SettingUpTheArchitecture_Description1": "Organisera kodbas och lösningsstruktur", + "SettingUpTheArchitecture_Description2": "Identifiera, installera och konfigurera viktiga tredjepartsbibliotek", + "SettingUpTheArchitecture_Description3": "UpprĂ€tta infrastruktur för automatiserad integration och enhetstest", + "SettingUpTheArchitecture_Description4": "FaststĂ€lla och dokumentera kodstandarder, utbilda utvecklingsteamet", + "UsingTheABPFramework": "AnvĂ€nda ABP-plattformen", + "UseABPSettingUpTheArchitecture_Description": "AnvĂ€nd ABP:s mallar för startup-lösningar", + "ReduceCostsWithABP": "Minska kostnaderna med ABP genom att", + "ReduceCostsBy": "80 % till 100 %.", + "DesigningTheUserInterfaceTitle": "Utformning av anvĂ€ndargrĂ€nssnittet", + "DesigningTheUserInterface_Description1": "Skapa eller köp ett UI-tema", + "DesigningTheUserInterface_Description2": "Anpassa anvĂ€ndargrĂ€nssnittets tema till lösningen", + "DesigningTheUserInterface_Description3": "Bygga de viktigaste delarna av anvĂ€ndargrĂ€nssnittet (layout, meny, sidhuvud, sidfot med responsiv design)", + "DesigningTheUserInterface_Description4": "Se till att designen Ă€r konsekvent pĂ„ alla applikationssidor", + "UseABPDesigningTheUserInterface_Description": "AnvĂ€nd ABP:s LeptonX UI Theme", + "DevelopingApplicationFeaturesTitle": "Utveckling av applikationsfunktioner", + "DevelopingApplicationFeatures_Description1": "Utveckla din egen affĂ€rslogik", + "DevelopingApplicationFeatures_Description2": "Utveckla varje sida en efter en", + "DevelopingApplicationFeatures_Description3": "Utveckla gemensamma affĂ€rsmoduler sjĂ€lv", + "DevelopingApplicationFeatures_Description4": "Utveckla autentiseringssystemet (enkel inloggning, 2-faktor autentisering, sociala inloggningar, Ă„terstĂ€llning av lösenord, e-postaktivering etc...)", + "DevelopingApplicationFeatures_Description5": "TillĂ€mpa övergripande frĂ„gor i varje anvĂ€ndningsfall (DB-transaktioner, auktorisering, validering, undantagshantering etc.)", + "DevelopingApplicationFeatures_Description6": "Utveckla gemensamma basklasser och nyttotjĂ€nster", + "DevelopingApplicationFeatures_Description7": "Utveckla gemensamma icke-affĂ€rsmĂ€ssiga krav (revisionsloggning, soft-delete, bakgrundsjobb, behörighetssystem etc.)", + "UseABPDevelopingApplicationFeatures_Description1": "Utveckla din egen affĂ€rslogik", + "UseABPDevelopingApplicationFeatures_Description2": "AnvĂ€nd ABP Suite för att automatiskt generera CRUD-liknande sidor", + "UseABPDevelopingApplicationFeatures_Description3": "AnvĂ€nd direkt ABP:s förbyggda gemensamma applikationsmoduler och anpassa dem utifrĂ„n dina unika krav", + "ReduceCostsBy_2": "40-60 procent", + "WhyABPIoPlatform": "Varför ABP Platform?", + "WhyShouldYouUsetheABPIOPlatform": "Varför ska du anvĂ€nda ABP Platform istĂ€llet för att skapa en ny lösning frĂ„n grunden?", + "ExploreMore": "Utforska mer", + "DocumentIntroducesDescription": "Om du vill veta mer om varför du ska anvĂ€nda ABP Platform istĂ€llet för att skapa en ny lösning frĂ„n grunden kan du lĂ€sa följande dokument.", + "ReturnOnInvestmentPageAbout": "PĂ„ den hĂ€r sidan beskrivs de grundlĂ€ggande stegen i utvecklingen av en programvarulösning och hur ABP Platform minskar utvecklingskostnaderna i varje steg.", + "LearnMore": "LĂ€r dig mer", + "ReturnOfInvestment": "Avkastning pĂ„ investeringar", + "ReturnOnInvestment_Description": "LĂ€r dig hur du kan minska dina utvecklingskostnader med mer Ă€n 50 %.", + "PricingDiscount": "Spara", + "PricingTeamTitle": "Team", + "PricingBusinessTitle": "Företag", + "PricingEnterpriseTitle": "Företag", + "SpecialDiscount": "SĂ€rskild rabatt", + "YourOrganizationOverview": "Översikt över din organisation", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} timme", + "ContactPageError": "VĂ€nligen skicka ditt meddelande via e-post till info@abp.io
HĂ€r Ă€r vad du skrev :", + "GoBack": "GĂ„ tillbaka", + "HereWhatYouWrote": "HĂ€r Ă€r vad du skrev:", + "Sales": "FörsĂ€ljning", + "LicensingPricing": "Licensiering/prissĂ€ttning", + "TrialDemo": "Testversion / Demo", + "TrainingOnboarding": "Utbildning / Onboarding", + "Resellers": "ÅterförsĂ€ljare", + "Others": "Övriga", + "Characters": "KaraktĂ€rer", + "Topic": "Ämne", + "SendUsEmail": "Skicka e-post till oss", + "ErrorExceptionMessage": "Ett fel intrĂ€ffade under behandlingen av din begĂ€ran", + "WatchTakeCodeGeneration": "Titta pĂ„ videon \"Utforska potentialen med kodgenerering: ABP Suite\" Video!", + "StartupTemplatesUser": "AnvĂ€ndare", + "StartupSingleSignOn": "Enkel inloggning", + "Application{0}": "TillĂ€mpning {0}", + "PreBuiltApplicationModulesTitle": "FĂ€rdigbyggda applikationer Moduler.", + "RegisterDemo": "Registrera", + "TrainingDescription": "AnmĂ€l dig till ABP:s utbildningar för att förbĂ€ttra dina fĂ€rdigheter och kunskaper och hĂ„lla dig uppdaterad med den senaste utvecklingen.", + "PurchaseDevelopers": "Utvecklare", + "LinkExpiredMessage": "BetalningslĂ€nken har löpt ut! Kontakta oss pĂ„ sales@volosoft.com för att uppdatera lĂ€nken eller klicka hĂ€r för att navigera till kontaktsidan.", + "YourAccountDisabled": "Ditt anvĂ€ndarkonto Ă€r inaktiverat!", + "WhyChooseAbpTitle": "Varför vĂ€lja ABP? | ABP.IO", + "WhyChooseAbpDescription": "UpptĂ€ck fördelarna med ABP Commercial: modulĂ€r arkitektur, moduler redo för mikrotjĂ€nster, produktivitetsverktyg och robusta funktioner för moderna webbappar för affĂ€rsomrĂ„den.", + "AbpIo_Modern_Title": "ABP.IO - Modern ASP.NET Core plattform för webbapplikationer", + "AbpIo_Modern_Description": "ABP Platform tillhandahĂ„ller ett ramverk med öppen kĂ€llkod ovanpĂ„ ASP.NET Core med Angular-, Blazor- och MVC-grĂ€nssnittsalternativ för att skapa skalbara webbappar för företag.", + "My_Organizations_Page_Title": "Mina organisationer", + "My_Organizations_Page_Description": "Se dina ABP Platform-organisationer för att hantera dina utvecklare, licensförnyelser och uppgraderingar.", + "Members_Page_Title": "{0} - Medlem i gemenskapen | ABP.IO", + "Members_Page_Description": "{0} Ă€r medlem i ABP-communityn. Kolla in bidragen och dra nytta av denna erfarenhet.", + "Framework_Page_Title": "ABP-ramverk", + "Framework_Page_Description": "ABP Framework Ă€r det mest okomplicerade sĂ€ttet att kickstarta ditt projekt! LĂ€r dig mer om ABP Framework's robusta funktioner.", + "CLI_Page_Title": "ABP CLI", + "CLI_Page_Description": "AnvĂ€nd det globala verktyget ABP CLI dotnet för att skapa ett nytt ABP-projekt, uppdatera det, hantera paket och fĂ„ tillgĂ„ng till kĂ€llkoden för ABP-moduler.", + "Mobile_Page_Title": "ABP:s mobila klient", + "Mobile_Page_Description": "Utveckla kraftfulla mobila applikationer med ABP:s funktioner för mobil utveckling, vilket sĂ€kerstĂ€ller kompatibilitet mellan plattformar.", + "ReleasesPageTitle": "ABP Kommersiella meddelanden", + "ReleasesPageDescription": "HĂ„ll dig uppdaterad med de senaste funktionerna och uppdateringarna i ABP Commercial Releases, sĂ„ att dina applikationer Ă€r toppmoderna.", + "GetStartedPageTitle": "Kom snabbt igĂ„ng med ABP Framework med hjĂ€lp av vĂ„r omfattande guide som Ă€r utformad för nya anvĂ€ndare.", + "Community_Page_Title": "ABP Gemenskap", + "Community_Page_Description": "Anslut och samarbeta med andra utvecklare i ABP Community, dela kunskap och resurser.", + "Services_Page_Title": "Ytterligare tjĂ€nster", + "Services_Page_Description": "FĂ„ professionell utveckling och supporttjĂ€nster frĂ„n ABP-teamet eller dess lösningspartners, vilket sĂ€kerstĂ€ller att ditt projekt blir framgĂ„ngsrikt.", + "Contributors_Page_Title": "Bidragsgivare till ABP", + "Contributors_Page_Description": "Möt bidragsgivarna i ABP Community och lĂ€r dig mer om deras roller och bidrag till ramverket.", + "PackagesDetailTitle": "{0} - Paketdetaljer | ABP Framework", + "PackagesDetailDescription": "FĂ„ detaljerad information om paketet {0}, inklusive funktioner och anvĂ€ndning.", + "Raffle_Page_Title": "Utlottning - {0}", + "Raffle_Page_Description": "Delta i ABP:s utlottningar och ha chansen att vinna spĂ€nnande priser genom att engagera dig i ABP:s community.", + "Docs_Page_Title": "ABP-dokumentation", + "Docs_Page_Description": "FĂ„ tillgĂ„ng till omfattande guider och API-referenser i ABP Documentation, vilket underlĂ€ttar utveckling och felsökning.", + "Videos_Page_Title": "{0} - VideoinlĂ€gg | ABP.IO", + "AskQuestionsOnSupport": "Du kan stĂ€lla frĂ„gor pĂ„ ABP Support.", + "MicroserviceApplicationExplanation1": "Skapar en distribuerad lösning.", + "MicroserviceApplicationExplanation2": "Rekommenderas för stora team för att skapa komplexa och skalbara system.", + "CancellationSupport": "Stöd för avbokning", + "CancellationSupportExplanation": "ABP möjliggör en elegant avslutning av asynkrona operationer i applikationer, vilket sĂ€kerstĂ€ller korrekt resursrensning och en responsiv anvĂ€ndarupplevelse.", + "DistributedLocking": "Distribuerad lĂ„sning", + "DistributedLockingExplanation": "ABP:s distribuerade lĂ„ssystem sĂ€kerstĂ€ller att resurser nĂ„s pĂ„ ett ömsesidigt exklusivt sĂ€tt över olika noder i en distribuerad miljö, vilket förhindrar samtidiga konflikter och sĂ€kerstĂ€ller datakonsistens.", + "EncryptionDecryptionServices": "TjĂ€nster för kryptering och dekryptering", + "EncryptionDecryptionServicesExplanation": "ABP tillhandahĂ„ller strĂ€ngkrypteringsfunktion som gör det möjligt att Encrypt och Decrypt strĂ€ngar.", + "BackgroundWorkers": "Bakgrund Arbetstagare", + "BackgroundWorkersExplanation": "Definiera operationer som ska köras i en separat, dedikerad trĂ„d. AnvĂ€nd de inbyggda bakgrundsarbetarna eller integrera dina egna. Hangfire och Quartz integrationer Ă€r redan tillgĂ€ngliga.", + "ConcurrencyCheck": "Kontroll av samtidighet", + "ConcurrencyCheckExplanation": "ABP tillhandahĂ„ller en optimistisk mekanism för samtidighetskontroll för att sĂ€kerstĂ€lla datakonsistens i din applikation och förhindrar att anvĂ€ndare kommer Ă„t eller Ă€ndrar samma data i en databas samtidigt." + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/tr.json index b8c3514d66..64f97fc08b 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/tr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/tr.json @@ -298,7 +298,7 @@ "SeparateIdentityServer": "Ayrı Kimlik Sunucusu", "Preview": "Önizleme", "CreateANewSolution": "Yeni bir çözĂŒm olußturun", - "ABPFrameworkFeatures": "ABP Framework Özellikleri", + "FrameworkFeatures": "ABP Framework Özellikleri", "ThirdPartyTools": "ĂœĂ§ĂŒncĂŒ taraf araçlar", "Back": "Geri", "SeeMore": "Daha fazla göster", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/vi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/vi.json index 6a31739036..210be53393 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/vi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/vi.json @@ -301,7 +301,7 @@ "ProgressiveWebApplication": "Ớng dỄng web tiáșżn bộ", "Preview": "Xem trước", "CreateANewSolution": "TáșĄo một giáșŁi phĂĄp mới", - "ABPFrameworkFeatures": "TĂ­nh năng cá»§a khung ABP", + "FrameworkFeatures": "TĂ­nh năng cá»§a khung ABP", "Commercial": "Thuộc về thÆ°ÆĄng máșĄi", "ThirdPartyTools": "CĂŽng cỄ cá»§a bĂȘn thứ ba", "Back": "Máș·t sau", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json index 984a3d28a7..0dc5f525b1 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json @@ -301,7 +301,7 @@ "ProgressiveWebApplication": "æžèż›ćŒWebćș”甚皋ćș", "Preview": "éą„è§ˆ", "CreateANewSolution": "戛ć»șæ–°è§Łć†łæ–čæĄˆ", - "ABPFrameworkFeatures": "ABP æĄ†æž¶ ç‰čç‚čç‰čç‚čç‰č點", + "FrameworkFeatures": "ABPæĄ†æž¶ç‰č點", "Commercial": "ć•†æ„­çš„", "ThirdPartyTools": "第侉æ–čć·„ć…·", "Back": "ćŸŒé€€", diff --git a/abp_io/README.md b/abp_io/README.md index 3f59187ea4..aee8ca7791 100644 --- a/abp_io/README.md +++ b/abp_io/README.md @@ -9,7 +9,7 @@ By doing so, [abp.io](https://abp.io) websites will be translated into a new lan ## How to Translate abp.io Into Your Language: -1. Install [ABP CLI](https://docs.abp.io/en/abp/latest/CLI) command line tool. +1. Install [ABP CLI](https://abp.io/docs/latest/cli) command line tool. 2. Run the following command to generate the localization file. For example, for translating from English to French `fr`: @@ -28,5 +28,5 @@ By doing so, [abp.io](https://abp.io) websites will be translated into a new lan ## References: -* [ABP CLI Translate Command](https://docs.abp.io/en/abp/latest/Contribution/Index#using-the-abp-translate-command) +* [ABP CLI Translate Command](https://abp.io/docs/latest/contribution#using-the-abp-translate-command) * [Contribution Guide](https://github.com/abpframework/abp/blob/dev/docs/en/Contribution/Index.md) diff --git a/common.props b/common.props index befbbe384f..f189fd7d3f 100644 --- a/common.props +++ b/common.props @@ -1,8 +1,8 @@ latest - 8.3.0 - 3.3.0 + 9.0.0-preview + 4.0.0-preview $(NoWarn);CS1591;CS0436 https://abp.io/assets/abp_nupkg.png https://abp.io/ diff --git a/docs/en/Blog-Posts/2024-05 ABP Unification/post.md b/docs/en/Blog-Posts/2024-05 ABP Unification/post.md index 9da50ac06b..c09f9cc8e2 100644 --- a/docs/en/Blog-Posts/2024-05 ABP Unification/post.md +++ b/docs/en/Blog-Posts/2024-05 ABP Unification/post.md @@ -107,5 +107,4 @@ ABP Commercial license holders may wonder if any license change happens. The ans ## Last Words -With this post, we wanted to announce the changes to be made on the ABP platform to the ABP community, so don't be surprised or curious about what happened. If you have any questions or suggestions, feel free to write a comment for this blog post or send an email to info@abp.io. - +With this post, we wanted to announce the changes to be made on the ABP platform to the ABP community, so don't be surprised or curious about what happened. If you have any questions or suggestions, feel free to write a comment for this blog post or send an email to info@abp.io. \ No newline at end of file diff --git a/docs/en/Blog-Posts/2024-07-23-AbpIo-United-Is-Live/cover.png b/docs/en/Blog-Posts/2024-07-23-AbpIo-United-Is-Live/cover.png new file mode 100644 index 0000000000..95265fea29 Binary files /dev/null and b/docs/en/Blog-Posts/2024-07-23-AbpIo-United-Is-Live/cover.png differ diff --git a/docs/en/Blog-Posts/2024-07-23-AbpIo-United-Is-Live/post.md b/docs/en/Blog-Posts/2024-07-23-AbpIo-United-Is-Live/post.md new file mode 100644 index 0000000000..bc18035bf9 --- /dev/null +++ b/docs/en/Blog-Posts/2024-07-23-AbpIo-United-Is-Live/post.md @@ -0,0 +1,62 @@ + +# The new ABP Platform is live! + +We're thrilled to announce that the **new ABP.IO Platform is now live!** Our team has been hard at unifying and enhancing the entire platform to deliver a seamless, user-friendly experience. Here's what's new: + + +### Unified domain and enhanced navigation 🌍 +All our services are now consolidated under a single domain; [abp.io](https://abp.io). This means you no longer need to navigate through multiple subdomains. The new mega menu makes finding what you need easier and faster. + + +### Modern design and improved UX 🎹 +The platform boasts a fresh, modern design aimed at improving both aesthetics and functionality. This redesign enhances usability, making your interaction with ABP.IO more intuitive. + + + +### Documentation in one place 📃 +We’ve combined the ABP (open-source) and ABP Commercial (paid) documents into a single, comprehensive resource. This unified documentation will help you find what you're looking for more efficiently. The new documentation address is [abp.io/docs](https://abp.io/docs). When you switch to old ABP versions before v8.3, you will see the old documents are still available. + + + +### Introducing "ABP Studio Community Edition" đŸȘ„ +We're excited to introduce the **ABP Studio Community Edition**, which is now **available for free**. This edition provides powerful tools to streamline your development process. You can easily create a new project with a configuration wizard in ABP Studio. It also provides module management, which means you can add/remove an ABP Module easily. You can also debug your microservice project and track the HTTP requests easily. Connecting your local development environment to a local or remote Kubernetes cluster is another cool feature of ABP Studio. We aim for ABP Studio to be the primary tool for ABP developers to manage their projects. + +> Download ABP Studio 👉 [abp.io/studio](https://abp.io/studio). + + +### Enhanced "ABP CLI" 🚀 +ABP CLI is also renewed. The new CLI is compatible with ABP Studio. It adds new commands. The new CLI is now available on NuGet at [nuget.org/packages/Volo.Abp.Studio.Cli](https://www.nuget.org/packages/Volo.Abp.Studio.Cli). It's a dotnet global tool. When you install ABP Studio, the new ABP CLI is automatically installed. You can still use the old ABP CLI commands. To use the legacy ABP CLI commands just add `--old` parameter to your commands. + +> The docs of the new ABP CLI 👉 [abp.io/docs/latest/cli](https://abp.io/docs/latest/cli). + + + +### 20% Celebration discount 💰 +To celebrate the launch of the new platform, we're offering a **20% discount** for a limited time. This discount is valid for all new purchases, renewing existing licenses and buying additional developer seats. + +> Discounted prices 👉 [abp.io/pricing](https://abp.io/pricing). + + +### Existing customers 🛂 +In terms of licensing rules, existing customers will not be affected by this change. You can manage your license just like before at [abp.io/my-organizations](https://abp.io/my-organizations). + +> The new support website address 👉 [abp.io/support](https://abp.io/support). + +--- + +### Why choose the ABP Platform? 🙄 +ABP Platform simplifies modern software development with well-architected startup templates, modular design infrastructure, multi-tenancy support, comprehensive security features, and a vibrant community. If you are starting a new web project or transforming your legacy application, ABP is the perfect solution! If you still wonder why you need such a solution, see [abp.io/why-choose-abp](https://abp.io/why-choose-abp). + +There are several startup ASP.NET Core templates for your requirements. Read [abp.io/how-it-works](https://abp.io/how-it-works) page to understand ABP's approach. We have a FAQ page where you can find answers to many of your questions [abp.io/faq](https://abp.io/faq). + +> Start your new ABP project -for free- 👉[abp.io/get-started](https://abp.io/get-started)! + + +### Join our community 👹‍👹‍👩 +We invite developers, IT professionals, and businesses to join the ABP Community. Our community website is now [abp.io/community](https://abp.io/community). On this website, you can read ABP-related posts, watch live community shows and core team's fundamental video courses... + +------ + +For more information, visit our newly unified platform at [abp.io](https://abp.io). We look forward to your feedback and continued support as we grow together! + +> Found a bug in the new platform? Or if you have an idea, write to us 👉 [abp.io/contact](https://abp.io/contact). diff --git a/docs/en/Blog-Posts/2024-07-25-Introducing-The-New-ABP-CLI/cover-image.png b/docs/en/Blog-Posts/2024-07-25-Introducing-The-New-ABP-CLI/cover-image.png new file mode 100644 index 0000000000..d92621f403 Binary files /dev/null and b/docs/en/Blog-Posts/2024-07-25-Introducing-The-New-ABP-CLI/cover-image.png differ diff --git a/docs/en/Blog-Posts/2024-07-25-Introducing-The-New-ABP-CLI/post.md b/docs/en/Blog-Posts/2024-07-25-Introducing-The-New-ABP-CLI/post.md new file mode 100644 index 0000000000..699fbb2c56 --- /dev/null +++ b/docs/en/Blog-Posts/2024-07-25-Introducing-The-New-ABP-CLI/post.md @@ -0,0 +1,81 @@ +# Introducing the New ABP CLI + +![](cover-image.png) + +📱 We're excited to introduce the [new ABP CLI](https://abp.io/docs/latest/cli/index) after the announcement of [the new unified ABP Platform](https://abp.io/blog/new-abp-platform-is-live). + +As you know, we recently unified the ABP platform in a single domain ([abp.io](https://abp.io/)) and made some changes in our templating system to simplify your development. Also, we released more stable ABP Studio versions, which can dramatically improve and speed up your development time. Besides all of these changes, we have also introduced a new ABP CLI to bring you a more streamlined and efficient experience, which also extends the current commands. + +Here is a brief overview of what's new, what's changed, and why this change is happening... + +## The New ABP CLI + +ABP CLI is a command line tool to perform some common operations for ABP based solutions or [ABP Studio](https://abp.io/docs/latest/studio) features. With v8.2+, the old/legacy ABP CLI has been replaced with a new CLI system to align with the new templating system and ABP Studio. + +The new ABP CLI extends the old ABP CLI, adds more features that are used by ABP Studio behind the scenes, and is also fully compatible with the new templating system. Also, it allows you to use the old ABP CLI if you need, it by passing a single parameter. + +To be able to use the new ABP CLI, you should first delete the existing/old CLI with the following command if you installed it before: + +```bash +dotnet tool uninstall -g Volo.Abp.Cli +``` + +Then, to install the new ABP CLI, you can just simply execute the following command in your terminal: + +```bash +dotnet tool install -g Volo.Abp.Studio.Cli +``` + +> Both old and new ABP CLI binary names use the same `abp` command as the executing command. Therefore, you should uninstall the old CLI first, if you installed it before. + +> **Note**: Since the new ABP CLI uses the same `abp` command, you can use the same commands as you did before. + +## Reason for the Change + +ABP introduces a new templating system, which is fully compatible with the ABP Studio from v8.2+. Since, ABP Studio offers more and better features (such as tracking, monitoring, and deploying your applications from a single point), and the new templating system has a different versioning structure, we wanted to introduce a new ABP CLI by extending the current features and adding even more features that are compatible with the new templating system and ABP Studio. + +This change allows you to create your application with the new templating system either by running the cross-platform ABP Studio application or ABP CLI and allows you to create automated pipelines with the power of the new ABP CLI. + +## Using the Old ABP CLI + +If you have an older version of ABP solutions and need to use the old ABP CLI for any reason, you can do it easily with the new ABP CLI. + +You just need to put the `--old` command at the end of your command and execute the related CLI command as you would before. This allows you to use the old CLI commands with the new CLI without the need to uninstall the new CLI. + +For example, if you want to create a new ABP v8.2.0 solution, you can execute the following command: + +```bash +abp new Acme.BookStore --version 8.2.0 --old +``` + +When you run this command, the new ABP CLI installs the old CLI with `abp-old` name as the executing command within the latest version of ABP under the **%UserProfile%\\.abp\studio\cli\old** directory and allows you to use the old commands. + +If you want to use a specific version of the old ABP CLI, it's also possible with the new ABP CLI. You can use the `install-old-cli` command of the new CLI to either install or update an old CLI, then you can directly execute any old ABP CLI command by simply passing the `--old` parameter to the end of your command: + +```bash +# installing the old ABP CLI with v8.0 +abp install-old-cli --version 8.0.0 + +abp new Acme.BookStore --version 8.0 --old # alternatively, you can use the `abp-old` command without need to pass the "--old" parameter +``` + +## New Commands + +New ABP CLI extends the existing features of old ABP CLI and introduces new commands. Here are some of the new commands: + +* `kube-connect`: Connects to Kubernetes environment. (Available for **Business or higher licenses**) +* `kube-intercept`: Intercepts a service running in Kubernetes environment. (Available for **Business or higher licenses**) +* `list-module-sources`: Lists the remote module sources. +* and more... + +You can check the CLI documentation for all available commands and their usage. + +## Conclusion + +In this blog post, we briefly explained the new ABP CLI, what's the reason for this change, and how to use the old ABP CLI with the new ABP CLI. + +If you have any further questions related to the new ABP CLI, you can always refer to the [CLI](https://abp.io/docs/latest/cli/index) and [Old ABP CLI vs New ABP CLI](https://abp.io/docs/latest/cli/differences-between-old-and-new-cli) documentation. Also, we listed some of the questions that you may have, which you can [check from here](https://abp.io/docs/latest/cli/differences-between-old-and-new-cli#common-questions). + +Please try out the new ABP CLI, and provide feedback to help us release more stable versions, with additional features. + +Thanks for being a part of the ABP Community! \ No newline at end of file diff --git a/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-helm-charts.png b/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-helm-charts.png new file mode 100644 index 0000000000..edc9118d9c Binary files /dev/null and b/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-helm-charts.png differ diff --git a/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-license-comparison-table.png b/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-license-comparison-table.png new file mode 100644 index 0000000000..f0ca19268e Binary files /dev/null and b/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-license-comparison-table.png differ diff --git a/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-new-layered-solution-template-wizard-options.png b/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-new-layered-solution-template-wizard-options.png new file mode 100644 index 0000000000..051451d512 Binary files /dev/null and b/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-new-layered-solution-template-wizard-options.png differ diff --git a/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-new-layered-solution-template-wizard.png b/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-new-layered-solution-template-wizard.png new file mode 100644 index 0000000000..35e53cd3dc Binary files /dev/null and b/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-new-layered-solution-template-wizard.png differ diff --git a/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-solution-runner-overall.png b/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-solution-runner-overall.png new file mode 100644 index 0000000000..02a2ba1076 Binary files /dev/null and b/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-solution-runner-overall.png differ diff --git a/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-solution-runner-start-apps.png b/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-solution-runner-start-apps.png new file mode 100644 index 0000000000..87dbb07a41 Binary files /dev/null and b/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-solution-runner-start-apps.png differ diff --git a/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-suite-in-abp-studio.png b/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-suite-in-abp-studio.png new file mode 100644 index 0000000000..572cf40956 Binary files /dev/null and b/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-suite-in-abp-studio.png differ diff --git a/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-suite-open-in-abp-studio.png b/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-suite-open-in-abp-studio.png new file mode 100644 index 0000000000..e09cfb2ddd Binary files /dev/null and b/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-suite-open-in-abp-studio.png differ diff --git a/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/post.md b/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/post.md new file mode 100644 index 0000000000..a5fb9d7bee --- /dev/null +++ b/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/post.md @@ -0,0 +1,111 @@ +# Announcing ABP Studio (beta) General Availability + +ABP Framework makes your daily coding activities much easier, more convenient, and even more enjoyable. However, building a software product is not just about coding. We know that you need to build, run, test, debug and deploy your software, and trace errors on a failure. You also should to design architecture of your overall solution and perform many common operations on your solutions in addition to the coding activity. + +We'd already provided tools like [ABP CLI](https://abp.io/cli) and [ABP Suite](https://abp.io/suite) for these kind of purposes before. [ABP Studio](https://abp.io/studio) takes this one long step further and offers a tool that you can use continuously throughout your coding activities, help you for non-coding activities to make you focus on your software development. + +I am very excited to announce that the ABP Studio (beta) is generally available to everyone. It is now downloadable on the [get started page](https://abp.io/get-started) of the [new ABP Platform website](https://abp.io/blog/new-abp-platform-is-live). + +## What is ABP Studio? + +[ABP Studio](https://abp.io/docs/latest/studio) is a cross-platform desktop application for ABP and .NET developers. It aims to provide a comfortable development environment for you by automating things, providing insights about your solution, making develop, run, browse, monitor, trace and deploy your solutions much easier. + +**From now on, ABP Studio is the default way to start with the ABP Platform**; + +* The [get started page](https://abp.io/get-started) has updated so it offers to download ABP Studio to create a new ABP based solution. +* The ABP CLI ([Volo.Abp.Cli](https://nuget.org/packages/Volo.Abp.Cli)) is replaced by the ABP Studio CLI ([Volo.Abp.Studio.Cli](https://www.nuget.org/packages/Volo.Abp.Studio.Cli)). [The new ABP Studio CLI](https://abp.io/docs/latest/cli) is compatible with the old one, and extends it by introducing new commands. +* [Startup solution templates](https://abp.io/docs/latest/solution-templates) are completely renewed. The solution structures are similar to the old ones, but they are totally new templates built with the new templating engine. +* All the documentation and tutorials now uses ABP Studio and ABP Studio CLI. + +> **ABP Studio is in beta stage now.** It is also in rapid development and release cycle. We frequently release new feature and patch versions. Please [file an issue](https://github.com/abpframework/abp/issues/new/choose) if you have any problem. +> +> If you want to continue to use the old CLI and old startup templates, please [refer that document](https://abp.io/docs/latest/cli/differences-between-old-and-new-cli). + +## The Easiest Way to Start with the ABP Framework + +As mentioned before, the [startup solution templates](https://abp.io/docs/latest/solution-templates) are completely renewed with ABP Studio. They provide much more options compared to the old startup templates. The following screenshot is taken from the New Solution wizard of ABP Studio, which provides an comfortable and easy way to create new solutions: + +![abp-studio-new-layered-solution-template-wizard](abp-studio-new-layered-solution-template-wizard.png) + +For example, you can now select most of the non-fundamental modules as optional while creating a new solution: + +![abp-studio-new-layered-solution-template-wizard-options](abp-studio-new-layered-solution-template-wizard-options.png) + +### Developing Microservices Solutions is Now Much Easier + +The most important change is made on the [microservice startup template](https://abp.io/docs/latest/solution-templates/microservice) (which is available only for Business or higher license holders). We've designed the solution structure, integrations, Kubernetes/Helm configuration, database migrations and all others from scratch and well documented all the decisions we've applied. Developing microservice solutions with ABP Framework is now easier and more understandable than ever. + +## Architecting Your Complex Solutions + +One of the main purposes to build ABP Studio was to simplify to create multi-modular and distributed systems. Either you create a modular monolith application or a microservice solution, [ABP Studio's solution explorer](https://abp.io/docs/latest/studio/solution-explorer) provides a convenient way to design your high-level solution structure. + +You see a microservice solution in the following screenshot: + +![solution-explorer](solution-explorer.png) + +That ABP Studio solution contains multiple separate .NET solutions (`.sln`) each has multiple .NET projects (`.csproj`). ABP Studio allows you to easily manage such a multi-solution system on a single view. You can create new packages and modules, import existing packages and modules, manage their dependencies and so on. + +## Run and Test Your Multi-Application Solutions with a Single Click + +One of the biggest shortcomings we face when developing distributed or complex solutions is being able to easily run all components of the solutions so that we can test and debug a single service or application without caring about all the runtime dependencies. + +Here a screenshot from the ABP Studio's [Solution Runner](https://abp.io/docs/latest/studio/running-applications) view: + +![abp-studio-solution-runner-overall](abp-studio-solution-runner-overall.png) + +When you use ABP Studio, it is dramatically easier to run, monitor, test, debug and develop your applications and services. You can browse your web UI applications, monitor all the HTTP requests, distributed events, exceptions and logs in real time on a single screen. In this way, you can easily run all the systems and trace the problems when you have. + +All you need to click the *Play* button or right-click and select the *Run* -> *Start All* command: + +![abp-studio-solution-runner-start-apps](abp-studio-solution-runner-start-apps.png) + +The nice thing is that you can create multiple profiles for each of your teams so that they can run only the applications they need to develop the application they are working on. + +## Seamlessly Develop Your Service as Integrated to Kubernetes + +Kubernetes is the de-facto tool to deploy, run and scale complex systems. However, it can also be a great tool to develop such solutions in a local environment. + +With ABP Studio's [Kubernetes Integration](https://abp.io/docs/latest/studio/kubernetes) system, it is now possible to deploy and run a complex system in a Kubernetes cluster. Then you can establish a bridge between your local development environment and the Kubernetes cluster. In this way, you can develop, run, test and debug an application or service in your local development environment as it is running in the Kubernetes cluster. All incoming and outgoing traffic is properly routed and managed by ABP Studio. You just focus on the service you are responsible to develop and let the Kubernetes run rest of the system for you. + +You can see all the Helm charts in a solution in the Kubernetes panel of ABP Studio: + +![abp-studio-helm-charts](abp-studio-helm-charts.png) + +Here, you can easily build, install and uninstall the Helm charts to your Kubernetes cluster. In the Kubernetes tab, you can connect to the Kubernetes cluster and intercept a service to develop it locally. See [the documentation](https://abp.io/docs/latest/studio/kubernetes) for more information. + +The good news is that all the monitoring data (HTTP Requests, Events, Exceptions, Logs,...) is still visible in real time with the Kubernetes integration too. + +## Use the ABP Suite as Integrated to ABP Studio + +[ABP Suite](https://abp.io/suite) is a tool that is basically used to generate code for ABP Solutions. It has started by creating simple CRUD pages, and now it does much more. It can establish relations with existing entities, create complex user interfaces like parent/child tables and so on... + +ABP Suite can be used directly inside ABP Studio by clicking the *ABP Suite* -> *Open* command: + +![abp-suite-open-in-abp-studio](abp-suite-open-in-abp-studio.png) + +This will open ABP Suite in a new tab for the current solution and focus on the CRUD page generation: + +![abp-suite-in-abp-studio](abp-suite-in-abp-studio.png) + +The new ABP Studio solution templates and ABP Suite code generation are compatible with each other. Here a screenshot from the generated CRUD UI for a very simple Book entity: + +![suite-generated-entity](suite-generated-entity.png) + +## The Community Edition vs Commercial Licenses + +ABP Studio has a Community Edition which is completely free and available to everyone. As you can guess, there are come differences between the community edition and commercial editions. ABP Platform has 4 fundamental license types; + +* Open source (free) +* Team +* Business +* Enterprise + +Here, the comparison table for ABP Studio features for these license types: + +![abp-studio-license-comparison-table](abp-studio-license-comparison-table.png) + +Microservice startup template and Kubernetes integration features are available only for commercial licenses since these are considered more enterprise requirements. Also, the solution size is limited with the ABP Community edition. If you are building a large or distributed solution, consider to [purchase a commercial license](https://abp.io/pricing). + +## Conclusion + +I've introduced the ABP Studio General Availability with this post. It is still in the beta stage. You can expect frequent releases during the beta phase. We will add new features and fix issues quickly. Please [download](https://abp.io/studio) and use it now. If you find any problem, do not hesitate to open an [issue on GitHub](https://github.com/abpframework/abp/issues/new/choose). \ No newline at end of file diff --git a/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/solution-explorer.png b/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/solution-explorer.png new file mode 100644 index 0000000000..2d97e6067c Binary files /dev/null and b/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/solution-explorer.png differ diff --git a/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/suite-generated-entity.png b/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/suite-generated-entity.png new file mode 100644 index 0000000000..2f3342d573 Binary files /dev/null and b/docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/suite-generated-entity.png differ diff --git a/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/cms-kit-faq.png b/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/cms-kit-faq.png new file mode 100644 index 0000000000..be73de4d8f Binary files /dev/null and b/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/cms-kit-faq.png differ diff --git a/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/cmskit-module-comments-settings.png b/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/cmskit-module-comments-settings.png new file mode 100644 index 0000000000..c0b1a4fe48 Binary files /dev/null and b/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/cmskit-module-comments-settings.png differ diff --git a/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/cmskit-module-markedItems.png b/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/cmskit-module-markedItems.png new file mode 100644 index 0000000000..52eb61f285 Binary files /dev/null and b/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/cmskit-module-markedItems.png differ diff --git a/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/cover-image.png b/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/cover-image.png new file mode 100644 index 0000000000..875be518af Binary files /dev/null and b/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/cover-image.png differ diff --git a/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/docs-google-search.png b/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/docs-google-search.png new file mode 100644 index 0000000000..9398fa1070 Binary files /dev/null and b/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/docs-google-search.png differ diff --git a/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/faq-section-public-web.png b/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/faq-section-public-web.png new file mode 100644 index 0000000000..2f45635782 Binary files /dev/null and b/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/faq-section-public-web.png differ diff --git a/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/google-search-results.png b/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/google-search-results.png new file mode 100644 index 0000000000..082c567f8c Binary files /dev/null and b/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/google-search-results.png differ diff --git a/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/new-abp-cli-cover-image.png b/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/new-abp-cli-cover-image.png new file mode 100644 index 0000000000..d92621f403 Binary files /dev/null and b/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/new-abp-cli-cover-image.png differ diff --git a/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/new-platform-cover-image.png b/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/new-platform-cover-image.png new file mode 100644 index 0000000000..95265fea29 Binary files /dev/null and b/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/new-platform-cover-image.png differ diff --git a/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/post.md b/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/post.md new file mode 100644 index 0000000000..2d8a767568 --- /dev/null +++ b/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/post.md @@ -0,0 +1,177 @@ +# ABP Platform 8.3 RC Has Been Released + +![](cover-image.png) + +Today, we are happy to release [ABP](https://abp.io) version **8.3 RC** (Release Candidate). This blog post introduces the new features and important changes in this new version. + +Try this version and provide feedback for a more stable version of ABP v8.3! Thanks to you in advance. + +## Get Started with the 8.3 RC + +You can check the [Get Started page](https://abp.io/get-started) to see how to get started with ABP. You can either download [ABP Studio](https://abp.io/get-started#abp-studio-tab) (**recommended**, if you prefer a user-friendly GUI application - desktop application) or use the [ABP CLI](https://abp.io/docs/latest/cli). + +By default, ABP Studio uses stable versions to create solutions. Therefore, if you want to create a solution with a preview version, first you need to create a solution and then switch your solution to the preview version from the ABP Studio UI: + +![](studio-switch-to-preview.png) + +## Migration Guide + +There are a few breaking changes in this version that may affect your application. Please read the migration guide carefully, if you are upgrading from v8.2 or earlier: [ABP Version 8.3 Migration Guide](https://abp.io/docs/8.3/release-info/migration-guides/abp-8-3) + +## What's New with ABP v8.3? + +In this section, I will introduce some major features released in this version. +Here is a brief list of titles explained in the next sections: + +* CMS Kit: Marked Items/Favorites +* CMS Kit: Approvement System for Comments +* Docs: Added Google Translation Support & Introducing the Single Project Mode +* Using DBFunction for Global Query Filters +* CMS Kit (PRO): FAQ +* Package Updates (NuGet & NPM) + +### CMS Kit: Marked Items/Favorites + +CMS Kit provides a marking system to mark any kind of resource, like a blog post or a product, as a favorite, starred, flagged, or bookmarked. + +![](cmskit-module-markedItems.png) + +This system is especially useful if you need to highlight some resources and differentiate them from other items. To use the marking system, you need to define an entity type with the icon name, by configuring the `CmsKitMarkedItemOptions`: + +```csharp +Configure(options => +{ + options.EntityTypes.Add( + new MarkedItemEntityTypeDefinition( + entityType: "product", + icon: StandardMarkedItems.Favorite + ) + ); +}); +``` + +You can select any of the standard marked item icons (as used in the example above) or easily customize the icons shown in the toggling components. + +> Read the [CMS Kit: Marked Item System](https://abp.io/docs/8.3/modules/cms-kit/marked-items) documentation to learn more. + +### CMS Kit: Approvement System for Comments + +CMS Kit Module has been provided a [Commenting System](https://abp.io/docs/8.3/modules/cms-kit/comments) for a while. This system allows you to add the comment feature to any kind of resource, like blog posts, or products. However, this system wasn't providing an approvement system, that allows system administrations to review the comments before publishing them in their application. + +In this version, we have introduced the [Approvement System](https://abp.io/docs/8.3/modules/cms-kit/comments#settings), which allows you to _require approval for comments to be published_. It's disabled by default, but you can make it enabled by simply checking the related setting on the settings page: + +![](cmskit-module-comments-settings.png) + +When you enable it, whenever a user submits a comment, it can be directly seen on the back-office application (in the _cms/comments_ page), and you can determine if the comment should be approved or rejected. If you approve the comment, then it will be shown in the comment section for the related resource. + +> Read the [CMS Kit: Comments](https://abp.io/docs/8.3/modules/cms-kit/comments) documentation to learn more. + +### Docs: Added Google Translation Support & Introducing the Single Project Mode + +In this version, we made some improvements in the [Docs Module](https://abp.io/docs/8.3/modules/docs), added Google Translation support for better findings in the documentation, and introduced a single project mode to align our needs in the documentation system with [the unification of the ABP Platform](https://abp.io/blog/new-abp-platform-is-live). + +The single project mode allows you to use a single name as a project name in your application. If you are not considering supporting multiple projects with their multiple docs and instead if you have a single project and want to have documentation for it, it's especially useful for you. You just need to configure the `DocsUiOptions`, set the single project mode as **enabled** and also define a constant project name: + +```csharp +Configure(options => +{ + options.SingleProjectMode.Enable = true; + options.SingleProjectMode.ProjectName = "abp"; +}); +``` + +In addition to this feature, we also introduced Google Translation support for the documentation system and even integrated it into our [abp.io/docs](https://abp.io/docs/) website: + +![](docs-google-search.png) + +![](google-search-results.png) + +Thanks to this system, you can either translate your documentation into your own language by Google Translation System or search specific keywords to easily find the related topic in the documentation. + +### Using DBFunction for Global Query Filters + +In this version, ABP has started using [User-defined function mapping](https://learn.microsoft.com/en-us/ef/core/querying/user-defined-function-mapping) for global filters to gain performance improvements and let EF Core generate more precise SQL commands under the hook. + +> See the documentation for more info: [Using User-defined function mapping for global filters](https://abp.io/docs/8.3/framework/infrastructure/data-filtering#using-user-defined-function-mapping-for-global-filters) + +### CMS Kit: FAQ + +CMS Kit provides a [FAQ System](https://abp.io/docs/8.3/modules/cms-kit-pro/faq) to allow users to create, edit, and delete FAQs. Here is an example screenshot from the FAQ page on the admin side: + +![](cms-kit-faq.png) + +You can list, create, update, and delete sections and their questions on the admin side of your solution. Then, by using the `FaqViewComponent` in your public-web application, you can display FAQs, section by section: + +![](faq-section-public-web.png) + +> Read the [CMS Kit: FAQ System](https://abp.io/docs/8.3/modules/cms-kit-pro/faq) documentation to learn more. + +### Package Updates + +In this version, we also updated some of the core NuGet and NPM package versions. All of the removed or deprecated methods have already been updated at the framework level. However, if you used any methods from these packages, you should be aware of the change and update it in your code accordingly. + +You can see the following list of the package version changes: + +* [Updated Markdig.Signed from v0.33.0 to v0.37.0](https://github.com/abpframework/abp/pull/20195) - [NuGet](https://www.nuget.org/packages/Markdig.Signed) +* [Updated Hangfire from v1.8.6 to v1.8.12](https://github.com/abpframework/abp/pull/20009) - [NuGet](https://www.nuget.org/packages/Hangfire.AspNetCore) +* [Updated SixLabors.ImageSharp from v3.0.2 to v3.1.4](https://github.com/abpframework/abp/pull/19643) - [NuGet](https://www.nuget.org/packages/SixLabors.ImageSharp) +* [Updated Blazorise from v1.5.0 to v1.5.2](https://github.com/abpframework/abp/pull/19841) - [NuGet](https://www.nuget.org/packages/Blazorise) +* [Updated datatables.net from v1.11.4 to v2.0.2](https://github.com/abpframework/abp/pull/19340) - [NPM](https://www.npmjs.com/package/datatables.net) + +## Community News + +### The New ABP Platform Is Live! + +![](new-platform-cover-image.png) + +We're thrilled to announce that the **new ABP.IO Platform** is now live! Our team has been hard at unifying and enhancing the entire platform to deliver a seamless, user-friendly experience. We consolidated all our services under a single domain: [abp.io](https://abp.io/); added a new mega menu that makes finding what you need much easier and faster, and also improved the UX of our application and combined both ABP (open-source) and ABP Commercial (paid) documents into a single comprehensive resource. + +> Read the blog post to learn more about this unification 👉 [The new ABP Platform is live!](https://abp.io/blog/new-abp-platform-is-live) + +### Announcing ABP Studio (Beta) General Availability + +We're really excited to announce that the **ABP Studio (beta)** is generally available to everyone. It is now downloadable on the [get started page](https://abp.io/get-started) of the [new ABP Platform website](https://abp.io/blog/new-abp-platform-is-live). + +![](studio-beta-cover-image.png) + +> Read the blog post to learn more about the ABP Studio (Beta) 👉 [Announcing ABP Studio (beta) General Availability](https://abp.io/blog/announcing-abp-studio-general-availability) + +### Introducing the New ABP CLI + +As described above, we recently [unified the ABP platform in a single domain (abp.io)](https://abp.io/blog/new-abp-platform-is-live) and made some changes in our templating system to simplify your development. Also, we released more stable **ABP Studio** versions, which can dramatically improve and speed up your development time. + +Besides all of these changes, we have also introduced a [new ABP CLI](https://abp.io/docs/latest/cli/index) to bring you a more streamlined and efficient experience, which also extends the current commands. + +![](new-abp-cli-cover-image.png) + +The new ABP CLI extends the old ABP CLI, adds more features that are used by ABP Studio behind the scenes, and is also fully compatible with the new templating system. We created a blog post, which you can read at [https://abp.io/blog/introducing-the-new-abp-cli](https://abp.io/blog/introducing-the-new-abp-cli) to highlight the reason behind this change and insights into the new ABP CLI, you can check it out if you want to learn more. + +### New ABP Community Articles + +There are exciting articles contributed by the ABP community as always. I will highlight some of them here: + +* [Ahmed Tarek](https://twitter.com/AhmedTarekHasa1) has created **three** new community articles: + * [đŸ§Ș Unit Testing Best Practices In .NET C# đŸ€·â€â™‚ïž](https://abp.io/community/articles/-unit-testing-best-practices-in-.net-c--mnx65npu) + * [Memory Management In .NET](https://abp.io/community/articles/memory-management-in-.net-rqwbtzvl) + * [đŸ§” How String In .NET C# Works đŸ€·â€â™‚ïž](https://abp.io/community/articles/-how-string-in-.net-c-works--vj6d2pnm) + +* [Anto Subash](https://twitter.com/antosubash) has created **two** new community videos: + * [ABP React Template V2](https://abp.io/community/videos/abp-react-template-v2-ilc4cyqr) + * [Migrating Tye to Aspire - .NET Microservice with ABP](https://abp.io/community/videos/migrating-tye-to-aspire-.net-microservice-with-abp-ga1t4ckr) + +* [HeadChannel Team](https://headchannel.co.uk/) has created **two** new community articles: + * [Managing Baseline Creation in Applications Based on ABP Framework](https://abp.io/community/articles/managing-baseline-creation-in-applications-based-on-abp-framework-yiacte5c) + * [How to Test The System Using PostgreSQL and TestContainers](https://abp.io/community/articles/how-to-test-the-system-using-postgresql-and-testcontainers-8yh8t0j8) + +* [Create a Generic HTTP Service to Consume a Web API](https://abp.io/community/articles/create-a-generic-http-service-to-consume-a-web-api-yidme2kq) by [Bart Van Hoey](https://github.com/bartvanhoey) +* [Use User-Defined Function Mapping for Global Filter](https://abp.io/community/articles/use-userdefined-function-mapping-for-global-filter-pht26l07) by [Liming Ma](https://github.com/maliming) +* [How to use .NET Aspire with ABP framework](https://abp.io/community/articles/how-to-use-.net-aspire-with-abp-framework-h29km4kk) by [Berkan ƞaßmaz](https://twitter.com/berkansasmazz) +* [Exciting New Feature in ABP.IO CMS Kit: Marked Item System](https://abp.io/community/articles/exciting-new-feature-in-abp.io-cms-kit-marked-item-system.-2hvpq0me) by [Suhaib Mousa](https://abp.io/community/members/suhaibmousa032@gmail.com) + +Thanks to the ABP Community for all the content they have published. You can also [post your ABP-related (text or video) content](https://abp.io/community/posts/submit) to the ABP Community. + +## Conclusion + +This version comes with some new features and a lot of enhancements to the existing features. You can see the [Road Map](https://abp.io/docs/8.3/release-info/road-map) documentation to learn about the release schedule and planned features for the next releases. Please try ABP v8.3 RC and provide feedback to help us release a more stable version. + +Thanks for being a part of this community! \ No newline at end of file diff --git a/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/studio-beta-cover-image.png b/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/studio-beta-cover-image.png new file mode 100644 index 0000000000..cc468d4bf3 Binary files /dev/null and b/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/studio-beta-cover-image.png differ diff --git a/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/studio-switch-to-preview.png b/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/studio-switch-to-preview.png new file mode 100644 index 0000000000..32f6d01edb Binary files /dev/null and b/docs/en/Blog-Posts/2024-07-31 v8_3_Preview/studio-switch-to-preview.png differ diff --git a/docs/en/Blog-Posts/2024-08-01-switching-between-organization-units/0.png b/docs/en/Blog-Posts/2024-08-01-switching-between-organization-units/0.png new file mode 100644 index 0000000000..ccfe417544 Binary files /dev/null and b/docs/en/Blog-Posts/2024-08-01-switching-between-organization-units/0.png differ diff --git a/docs/en/Blog-Posts/2024-08-01-switching-between-organization-units/1.png b/docs/en/Blog-Posts/2024-08-01-switching-between-organization-units/1.png new file mode 100644 index 0000000000..e6bb3f64b6 Binary files /dev/null and b/docs/en/Blog-Posts/2024-08-01-switching-between-organization-units/1.png differ diff --git a/docs/en/Blog-Posts/2024-08-01-switching-between-organization-units/2.png b/docs/en/Blog-Posts/2024-08-01-switching-between-organization-units/2.png new file mode 100644 index 0000000000..1bb1b0e9dd Binary files /dev/null and b/docs/en/Blog-Posts/2024-08-01-switching-between-organization-units/2.png differ diff --git a/docs/en/Blog-Posts/2024-08-01-switching-between-organization-units/3.png b/docs/en/Blog-Posts/2024-08-01-switching-between-organization-units/3.png new file mode 100644 index 0000000000..5dd64da53e Binary files /dev/null and b/docs/en/Blog-Posts/2024-08-01-switching-between-organization-units/3.png differ diff --git a/docs/en/Blog-Posts/2024-08-01-switching-between-organization-units/POST.md b/docs/en/Blog-Posts/2024-08-01-switching-between-organization-units/POST.md new file mode 100644 index 0000000000..3a29539a51 --- /dev/null +++ b/docs/en/Blog-Posts/2024-08-01-switching-between-organization-units/POST.md @@ -0,0 +1,490 @@ +# Switching Between Organization Units + +In most companies, a user belongs to more than one organization. Also, in some applications, we need to filter the data shown depending on the logged-in user's organization. For such scenarios, allowing users to select one of the organizations they belong to is a good practice. + +![0](0.png) + +## Creating a Data Filter with Organization Units + +### IHasOrganization + +First, we need to create a data filter that filters data based on the organization unit. + +The `IHasOrganization` interface is used to define the organization unit property in the entity classes, and used to filter the data based on the organization unit. + +```csharp +public interface IHasOrganization +{ + public Guid? OrganizationId { get; set; } +} +``` + +```csharp +public class Book : AggregateRoot, IHasOrganization +{ + public string Name { get; set; } + + public string Isbn { get; set; } + + public Guid? OrganizationId { get; set; } +} +``` + +### Entity Framework Core DbContext Implementation + +We will override the `ShouldFilterEntity` and `CreateFilterExpression` methods in the `BookStoreDbContext` class to configure the data filter for the entity that implements the `IHasOrganization` interface. + +```csharp +public class BookStoreDbContext : AbpDbContext +{ + // Your others DbSet properties... + + public DbSet Books { get; set; } + + protected override void OnModelCreating(ModelBuilder builder) + { + base.OnModelCreating(builder); + + // Your configure code... + + builder.Entity(b => + { + b.ToTable(BookStoreConsts.DbTablePrefix + "Book", BookStoreConsts.DbSchema); + b.ConfigureByConvention(); + }); + } + + public CurrentOrganizationIdProvider CurrentOrganizationIdProvider => LazyServiceProvider.LazyGetRequiredService(); + + protected override bool ShouldFilterEntity(IMutableEntityType entityType) + { + if (typeof(IHasOrganization).IsAssignableFrom(typeof(TEntity))) + { + return true; + } + + return base.ShouldFilterEntity(entityType); + } + + protected override Expression> CreateFilterExpression(ModelBuilder modelBuilder) + { + var expression = base.CreateFilterExpression(modelBuilder); + + if (typeof(IHasOrganization).IsAssignableFrom(typeof(TEntity))) + { + Expression> hasOrganizationIdFilter = e => EF.Property(e, "OrganizationId") == CurrentOrganizationIdProvider.CurrentOrganizationId; + expression = expression == null ? hasOrganizationIdFilter : QueryFilterExpressionHelper.CombineExpressions(expression, hasOrganizationIdFilter); + } + + return expression; + } +} +``` + +### The CurrentOrganizationIdProvider + +This class is used to get the current `organization id`, We will use the `AsyncLocal` class to store the current `organization id`, The `Change` method is used to change the current `organization id`. This service is registered as a singleton service. + +```csharp +public class CurrentOrganizationIdProvider : ISingletonDependency +{ + private readonly AsyncLocal _currentOrganizationId = new AsyncLocal(); + + public Guid? CurrentOrganizationId => _currentOrganizationId.Value; + + public virtual IDisposable Change(Guid? organizationId) + { + var parent = CurrentOrganizationId; + _currentOrganizationId.Value = organizationId; + return new DisposeAction(() => + { + _currentOrganizationId.Value = parent; + }); + } +} +``` + +## Domain Service Implementation + +We will store the current `organization id` in the cache for the logged-in user. at the same time, we want to store it per browser. So we also add the different browser info for every logged-in user. + +In the `BrowserInfoClaimsPrincipalContributor` class, We add a random `BrowserInfo` claim to the logged-in user. And we will use `user id` and `browser info `as a cache key. + +```csharp +public static class CurrentUserExtensions +{ + public static Guid? GetBrowserInfo(this ICurrentUser currentUser) + { + var claimValue = currentUser.FindClaimValue("BrowserInfo"); + if (claimValue != null && Guid.TryParse(claimValue, out var result)) + { + return result; + } + return null; + } +} + +public class BrowserInfoClaimsPrincipalContributor : IAbpClaimsPrincipalContributor, ITransientDependency +{ + public Task ContributeAsync(AbpClaimsPrincipalContributorContext context) + { + var identity = context.ClaimsPrincipal.Identities.FirstOrDefault(); + identity?.AddClaim(new Claim("BrowserInfo", Guid.NewGuid().ToString())); + return Task.CompletedTask; + } +} +``` + +## Application Service Implementation + +The `CurrentOrganizationAppService` to get/change the current organization for the logged-in user. `BookAppService` to get the books based on the current `organization id`. + +```csharp +[Authorize] +public class CurrentOrganizationAppService : BookStoreAppService, ICurrentOrganizationAppService +{ + private readonly IdentityUserManager _identityUserManager; + private readonly IDistributedCache _cache; + + public CurrentOrganizationAppService(IdentityUserManager identityUserManager, IDistributedCache cache) + { + _identityUserManager = identityUserManager; + _cache = cache; + } + + public virtual async Task> GetOrganizationListAsync() + { + var user = await _identityUserManager.FindByIdAsync(CurrentUser.GetId().ToString()); + var organizationUnits = await _identityUserManager.GetOrganizationUnitsAsync(user); + return organizationUnits.Select(ou => new OrganizationDto + { + Id = ou.Id, + DisplayName = ou.DisplayName + }).ToList(); + } + + public virtual async Task GetCurrentOrganizationIdAsync() + { + var cacheKey = CurrentUser.Id.ToString() + ":" + CurrentUser.GetBrowserInfo(); + return (await _cache.GetAsync(cacheKey))?.OrganizationId; + } + + public virtual async Task ChangeAsync(Guid? organizationId) + { + var cacheKey = CurrentUser.Id.ToString() + ":" + CurrentUser.GetBrowserInfo(); + await _cache.SetAsync(cacheKey, new CurrentOrganizationIdCacheItem + { + OrganizationId = organizationId + }); + } +} +``` + +```csharp +[Authorize] +public class BookAppService : BookStoreAppService, IBookAppService +{ + private readonly IBasicRepository _bookRepository; + + public BookAppService(IBasicRepository bookRepository) + { + _bookRepository = bookRepository; + } + + public virtual async Task> GetListAsync() + { + var books = await _bookRepository.GetListAsync(); + return books.Select(book => new BookDto + { + Id = book.Id, + Name = book.Name, + Isbn = book.Isbn, + OrganizationId = book.OrganizationId + }).ToList(); + } +} +``` + +## Seed Sample Data + +Let's seed some sample data for the `Book` and `Organization` entities. + +We added two organization units, `USA Branch` and `Turkey Branch`, and some books to each organization unit. Also, we added the `admin` user to both organization units. + +```csharp +public class BooksDataSeedContributor : IDataSeedContributor, ITransientDependency +{ + public Guid UsaBranchId = Guid.Parse("00000000-0000-0000-0000-000000000001"); + public Guid TurkeyBranchId = Guid.Parse("00000000-0000-0000-0000-000000000002"); + + private readonly IBasicRepository _bookRepository; + private readonly OrganizationUnitManager _organizationUnitManager; + private readonly IOrganizationUnitRepository _organizationUnitRepository; + private readonly IdentityUserManager _identityUserManager; + private readonly IUnitOfWorkManager _unitOfWorkManager; + + public BooksDataSeedContributor( + IBasicRepository bookRepository, + OrganizationUnitManager organizationUnitManager, + IOrganizationUnitRepository organizationUnitRepository, + IdentityUserManager identityUserManager, + IUnitOfWorkManager unitOfWorkManager) + { + _bookRepository = bookRepository; + _organizationUnitManager = organizationUnitManager; + _organizationUnitRepository = organizationUnitRepository; + _identityUserManager = identityUserManager; + _unitOfWorkManager = unitOfWorkManager; + } + + public virtual async Task SeedAsync(DataSeedContext context) + { + using (var uow = _unitOfWorkManager.Begin()) + { + var usa = await _organizationUnitRepository.FindAsync(UsaBranchId); + if (usa == null) + { + await _organizationUnitManager.CreateAsync(new OrganizationUnit(UsaBranchId, "USA Branch")); + } + + var turkey = await _organizationUnitRepository.FindAsync(TurkeyBranchId); + if (turkey == null) + { + await _organizationUnitManager.CreateAsync(new OrganizationUnit(TurkeyBranchId, "Turkey Branch")); + } + + await uow.SaveChangesAsync(); + + var admin = await _identityUserManager.FindByNameAsync("admin"); + Check.NotNull(admin, "admin"); + + await _identityUserManager.AddToOrganizationUnitAsync(admin.Id, UsaBranchId); + await _identityUserManager.AddToOrganizationUnitAsync(admin.Id, TurkeyBranchId); + + if (await _bookRepository.GetCountAsync() <= 0) + { + await _bookRepository.InsertAsync(new Book + { + Name = "1984", + Isbn = "978-0451524935", + OrganizationId = UsaBranchId + }); + + await _bookRepository.InsertAsync(new Book + { + Name = "Animal Farm", + Isbn = "978-0451526342", + OrganizationId = UsaBranchId + }); + + await _bookRepository.InsertAsync(new Book + { + Name = "Brave New World", + Isbn = "978-0060850524", + OrganizationId = UsaBranchId + }); + + await _bookRepository.InsertAsync(new Book + { + Name = "Fahrenheit 451", + Isbn = "978-1451673319", + OrganizationId = TurkeyBranchId + }); + + await _bookRepository.InsertAsync(new Book + { + Name = "The Catcher in the Rye", + Isbn = "978-0316769488", + OrganizationId = TurkeyBranchId + }); + + await _bookRepository.InsertAsync(new Book + { + Name = "To Kill a Mockingbird", + Isbn = "978-0061120084", + OrganizationId = TurkeyBranchId + }); + } + + await uow.CompleteAsync(); + } + } +} +``` + +## Web Page Implementation + +We will add a dropdown list to the top right corner of the page to allow users to select the organization they belong to. When the dropdown list changes, we will call the application service api to change the current `organization id`. + +```csharp +public class OrganizationUnitComponent : AbpViewComponent +{ + public async Task InvokeAsync() + { + var currentOrganizationAppService = LazyServiceProvider.GetRequiredService(); + var organizationDtos = await currentOrganizationAppService.GetOrganizationListAsync(); + var currentOrganizationId = await currentOrganizationAppService.GetCurrentOrganizationIdAsync(); + return View("/Components/OrganizationUnits/Default.cshtml", new OrganizationUnitComponentModel + { + CurrentOrganizationId = currentOrganizationId, + OrganizationDtos = organizationDtos + }); + } +} + +public class OrganizationUnitComponentModel +{ + public Guid? CurrentOrganizationId { get; set; } + + public List OrganizationDtos { get; set; } +} +``` + +```html +@using Microsoft.AspNetCore.Mvc.TagHelpers +@using Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers +@model BookStore.Web.Components.OrganizationUnits.OrganizationUnitComponentModel + +
+ + + + +
+ + +``` + +Add the `OrganizationUnitComponent` to the toolbar. + +```csharp +public class BookStoreToolbarContributor : IToolbarContributor +{ + public virtual Task ConfigureToolbarAsync(IToolbarConfigurationContext context) + { + // ... + + if (context.Toolbar.Name == StandardToolbars.Main) + { + context.Toolbar.Items.Add(new ToolbarItem(typeof(OrganizationUnitComponent)).RequireAuthenticated()); + } + + return Task.CompletedTask; + } +} +``` + +In addition, we also need to add a middleware after `UseAuthorization` to change the current `organization id`. + +```csharp +app.UseAuthorization(); +app.Use(async (httpContext, next) => +{ + var currentUser = httpContext.RequestServices.GetRequiredService(); + var cacheKey = currentUser.Id.ToString() + ":" + currentUser.GetBrowserInfo(); + var cache = httpContext.RequestServices.GetRequiredService>(); + var cacheItem = await cache.GetAsync(cacheKey); + if (cacheItem != null) + { + var currentOrganizationIdProvider = httpContext.RequestServices.GetRequiredService(); + currentOrganizationIdProvider.Change(cacheItem.OrganizationId); + } + await next(httpContext); +}); +// ... +``` + +The `Index` page will show the books based on the current `organization id`. + +```cshtml +public class IndexModel : BookStorePageModel +{ + public List Books { get; set; } = new List(); + public string? OrganizationName { get; set; } + + protected readonly IBookAppService BookAppService; + protected readonly ICurrentOrganizationAppService CurrentOrganizationAppService; + protected readonly IOrganizationUnitRepository OrganizationUnitRepository; + + public IndexModel( + IBookAppService bookAppService, + ICurrentOrganizationAppService currentOrganizationAppService, + IOrganizationUnitRepository organizationUnitRepository) + { + BookAppService = bookAppService; + CurrentOrganizationAppService = currentOrganizationAppService; + OrganizationUnitRepository = organizationUnitRepository; + } + + public async Task OnGetAsync() + { + if (CurrentUser.IsAuthenticated) + { + var currentOrganizationId = await CurrentOrganizationAppService.GetCurrentOrganizationIdAsync(); + if (currentOrganizationId.HasValue) + { + OrganizationName = (await OrganizationUnitRepository.GetAsync(currentOrganizationId.Value)).DisplayName; + } + + Books = await BookAppService.GetListAsync(); + } + } +} +``` + +```html +@page +@model BookStore.Web.Pages.IndexModel +@using Microsoft.AspNetCore.Mvc.Localization +@using BookStore.Localization +@inject IHtmlLocalizer L + +@if (!Model.OrganizationName.IsNullOrEmpty()) +{ +
The books belonging to @Model.OrganizationName organization
+} + +
    + @foreach(var book in Model.Books) + { +
  • Book Name: @book.Name, ISBN: @book.Isbn
  • + } +
+``` + +### Final UI + +The final UI will look like this: + +The index page will show empty if the current organization id is not set. +After selecting the organization unit, the index page will show the books based on the selected organization unit. + +![1](1.png) + +![2](2.png) + +![3](3.png) + +## Summary + +In this blog post. We showd simple implementation of switching between organization units. You can extend this implementation to meet your requirements. + +After [ABP 8.3](https://github.com/abpframework/abp/pull/20065) we introduced [User-defined function mapping](https://learn.microsoft.com/en-us/ef/core/querying/user-defined-function-mapping) feature for global filters which will gain performance improvements. + +## References + +- [Data Filtering](https://abp.io/docs/latest/framework/infrastructure/data-filtering) +- [Claims Principal Factory](https://abp.io/docs/latest/framework/fundamentals/authorization#claims-principal-factory) diff --git a/docs/en/Blog-Posts/2024-08-01-switching-between-organization-units/cover.jpg b/docs/en/Blog-Posts/2024-08-01-switching-between-organization-units/cover.jpg new file mode 100644 index 0000000000..3503744fbc Binary files /dev/null and b/docs/en/Blog-Posts/2024-08-01-switching-between-organization-units/cover.jpg differ diff --git a/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/POST.md b/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/POST.md new file mode 100644 index 0000000000..69da89f2c0 --- /dev/null +++ b/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/POST.md @@ -0,0 +1,78 @@ +# New ABP Documentation System: Everything You Need In One Place 📣 + +We have combined the ABP (open-source) and ABP Commercial (paid) documents into a single, comprehensive resource. This unification brings you a better experience in the documentation system, helps you find what you're looking for more easily, allows you to read the documents that are related to each other one after the other, and also provides Google Search and Google Translation support for the documents. + +![](blog-cover.png) + +Let's see what's new with the unified documentation system in detail: + +## All Documentation In One Place 📃 + +We decided to combine the ABP (open-source) and ABP Commercial (paid) documents into a single place, along with [the new ABP Platform Unification](https://abp.io/blog/new-abp-platform-is-live). + +The new documentation address is [abp.io/docs](https://abp.io/docs) and seen like below: + +![](abp-docs.png) + +This unified documentation brings you a better search capability with Google Search support, allows you to not need to switch between documentation websites to read both framework and commercial features, look what you are looking for more easily from the unified menu structure, following new features and their documentation in a more stable and easier way. + +## Accessing Documents with Older VersionsđŸ—ƒïž + +From v8.2, with the new documentation system, since we merged all documents into a single place, you don't need to select if you want to show a framework or commercial document. However, if you want to access an old document, for example, if you are using an older version of ABP or don't want to create the solutions from ABP Studio and instead prefer ABP CLI (in the getting started and startup template docs, ABP Studio is shown for project creation and other features, for instance), you can change the version from the version select-box (prior to v8.2), and select which document type (framework or commercial) you want to read and then find/choose the document that you want: + +![](old-docs.png) + +You can access any old-version document as you would before, by specifying the version. But we suggest you update your solution to v8.2+ and start using ABP Studio! By doing that, you can get more benefits from the new features, and edge-cutting features of ABP Studio and easily manage your application from development to production! + +## Documentation Updates 🚀 + +With the [announcement of ABP Studio (beta) General Availability](https://abp.io/blog/announcing-abp-studio-general-availability), we made some improvements in our documents. Starting from v8.2, since ABP Studio is the suggested way to create and manage your applications, we updated the [Get started](https://abp.io/docs/latest/get-started) documentation and some other documents along with, and explained project creation via ABP Studio. If you prefer [creating a new solution with the ABP CLI](https://abp.io/docs/latest/cli), you can use the new ABP CLI as you did the old one before. + +Besides that, we revised all of our documents, updated most of them according to the [new ABP Platform unification](https://abp.io/blog/new-abp-platform-is-live). For example, we merged our migration guide documents into single documents for each version and categorized the related topics you need to do when updating your solutions under the **open-source** and **pro** sections, so either you are an open-source template user or a license owner, you can easily jump to the related section and read them easily and accordingly: + +![](in-this-document.png) + +Since we combined ABP (framework) and ABP Commercial documents, we added information notes in each document that indicate if the related feature is in your license plan or not. An example screenshot from ABP Suite documentation can be seen as follow: + +![](suite-license-note.png) + +Also, for the application modules, we added **(PRO)** postfixes in the navigation menu for you to easily understand if the module is for license owners or open-source users. Thanks to that you can easily distinguish the related application modules and read the related module documentation to understand it: + +![](pro-modules.png) + + +## New Navigation Tree 📚 + +With the documentation unification, we re-structured the navigation tree of the documents: + +![](navigation-menu.png) + +The new navigation tree allows you to find any document you want in a more desired way, in the related sub-menu. For example, if you want to learn more about *modularity*, you can find under the **Framework > Architecture > Modularity** menu items, or if you want to learn more about the ABP Studio, you can find the all related docs under the root **Tools** menu. + +## Google Translate & Search Capabilities 🔎 + +In ABP v8.3, we made some improvements in the [Docs Module](https://abp.io/docs/8.3/modules/docs), added Google Search support for better findings in the documentation, and introduced Google Translation for the documentation system. After implementing these features, we integrated them into our documentation system and removed the languages select box from the menu: + +![](google-translate-and-search.png) + +From now on, we will provide documents in English only. The reason behind that is, that with the new Google Translate support, you can directly translate any documentation to the desired language (of course, must be one of the supported languages). Thanks to the Google Translate feature, you can read the official documentation in your own language, and we as the core team, don't need to synchronize the documentation between different languages, it was really hard to keep them up to date, and now they all will be available all the time in the all supported languages. + +![](google-search-result.png) + +Also, thanks to Google Search, now you can search specific keywords to easily find the related topic in the documentation. For example, if you search the **Validation** keyword, Google will list all related documents according to their importance and relevancy: + +## Feedbacks 📝 + +Besides all changes, we also added a **feedback section** at the end of each document. You can share your thoughts, suggestions, or criticism for specific documentation. We would like to hear more from you about our documentation quality and get suggestions from each one of you to improve our documents and platform, so it will be much appreciated if you share your feedback for any documentation you want, please don't hesitate! + +![](docs-feedbacks.png) + +You can either directly scroll down to the bottom directly for a certain document, or click the **Feedback** action button to navigate to the feedbacks section, and provide feedback: + +![](docs-feedback-section.png) + +## Conclusion 🎯 + +To see the new ABP documentation system, please visit the [abp.io/docs](https://abp.io/docs/latest/) website. Check out the new navigation tree, read the documents you want, provide feedback to help us improve our documents, and more... + +We look forward to your feedback and continued support as we grow together! Thanks in advance 🙏 diff --git a/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/abp-docs.png b/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/abp-docs.png new file mode 100644 index 0000000000..7dbf8f7912 Binary files /dev/null and b/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/abp-docs.png differ diff --git a/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/blog-cover.png b/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/blog-cover.png new file mode 100644 index 0000000000..4aa3bd0222 Binary files /dev/null and b/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/blog-cover.png differ diff --git a/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/docs-feedback-section.png b/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/docs-feedback-section.png new file mode 100644 index 0000000000..68dddcad64 Binary files /dev/null and b/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/docs-feedback-section.png differ diff --git a/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/docs-feedbacks.png b/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/docs-feedbacks.png new file mode 100644 index 0000000000..6584dfc015 Binary files /dev/null and b/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/docs-feedbacks.png differ diff --git a/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/google-search-result.png b/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/google-search-result.png new file mode 100644 index 0000000000..082c567f8c Binary files /dev/null and b/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/google-search-result.png differ diff --git a/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/google-translate-and-search.png b/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/google-translate-and-search.png new file mode 100644 index 0000000000..9398fa1070 Binary files /dev/null and b/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/google-translate-and-search.png differ diff --git a/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/in-this-document.png b/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/in-this-document.png new file mode 100644 index 0000000000..46c8de76da Binary files /dev/null and b/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/in-this-document.png differ diff --git a/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/navigation-menu.png b/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/navigation-menu.png new file mode 100644 index 0000000000..7b4fdbba8e Binary files /dev/null and b/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/navigation-menu.png differ diff --git a/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/old-docs.png b/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/old-docs.png new file mode 100644 index 0000000000..269159c651 Binary files /dev/null and b/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/old-docs.png differ diff --git a/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/pro-modules.png b/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/pro-modules.png new file mode 100644 index 0000000000..8556ff38af Binary files /dev/null and b/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/pro-modules.png differ diff --git a/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/suite-license-note.png b/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/suite-license-note.png new file mode 100644 index 0000000000..3459635322 Binary files /dev/null and b/docs/en/Blog-Posts/2024-08-13 New-ABP-Documentation-System/suite-license-note.png differ diff --git a/docs/en/Blog-Posts/2024-09-06 v8_3_Release_Stable/POST.md b/docs/en/Blog-Posts/2024-09-06 v8_3_Release_Stable/POST.md new file mode 100644 index 0000000000..e69fbb86ea --- /dev/null +++ b/docs/en/Blog-Posts/2024-09-06 v8_3_Release_Stable/POST.md @@ -0,0 +1,77 @@ +# ABP.IO Platform 8.3 Final Has Been Released! + +![](cover-image.png) + +[ABP](https://abp.io/) 8.3 stable version has been released today. + +## What's New With Version 8.3? + +All the new features were explained in detail in the [8.3 RC Announcement Post](https://blog.abp.io/abp/announcing-abp-8-3-release-candidate), so there is no need to review them again. You can check it out for more details. + +## Getting Started with 8.3 + +### Creating New Solutions + +You can check the [Get Started page](https://abp.io/get-started) to see how to get started with ABP. You can either download [ABP Studio](https://abp.io/get-started#abp-studio-tab) (**recommended**, if you prefer a user-friendly GUI application - desktop application) or use the [ABP CLI](https://abp.io/docs/latest/cli) to create new solutions. + +By default, ABP Studio uses stable versions to create solutions. Therefore, it will be creating the solution with the latest stable version, which is v8.3 for now, so you don't need to specify the version. + +### How to Upgrade an Existing Solution + +You can upgrade your existing solutions with either ABP Studio or ABP CLI. In the following sections, both approaches are explained: + +### Upgrading via ABP Studio + +If you are already using the ABP Studio, you can upgrade it to the latest version to align it with ABP v8.3. ABP Studio periodically checks for updates in the background, and when a new version of ABP Studio is available, you will be notified through a modal. Then, you can update it by confirming the opened modal. See [the documentation](https://abp.io/docs/latest/studio/installation#upgrading) for more info. + +After upgrading the ABP Studio, then you can open your solution in the application, and simply click the **Switch to stable** action button to instantly upgrade your solution: + +![](switch-to-stable.png) + +### Upgrading via ABP CLI + +Alternatively, you can upgrade your existing solution via ABP CLI. First, you need to install the ABP CLI or upgrade it to the latest version. + +If you haven't installed it yet, you can run the following command: + +```bash +dotnet tool install -g Volo.Abp.Studio.Cli +``` + +Or to update the existing CLI, you can run the following command: + +```bash +dotnet tool update -g Volo.Abp.Studio.Cli +``` + +After installing/updating the ABP CLI, you can use the [`update` command](https://abp.io/docs/latest/CLI#update) to update all the ABP related NuGet and NPM packages in your solution as follows: + +```bash +abp update +``` + +> You can run this command in the root folder of your solution. + +## Migration Guides + +There are a few breaking changes in this version that may affect your application. Please read the migration guide carefully, if you are upgrading from v8.2 or earlier: [ABP Version 8.3 Migration Guide](https://abp.io/docs/8.3/release-info/migration-guides/abp-8-3) + +## Community News + +### New ABP Community Posts + +As always, exciting articles have been contributed by the ABP community. I will highlight some of them here: + +* [Alper Ebicoglu](https://twitter.com/alperebicoglu) has created **three** new community articles: + * [Do You Really Need Multi-tenancy?](https://abp.io/community/articles/do-you-really-need-multitenancy-hpwn44r3) + * [What is Angular Schematics?](https://abp.io/community/articles/what-is-angular-schematics-2z4jusf5) + * [Understanding Angular AOT vs JIT Compilations](https://abp.io/community/articles/understanding-angular-aot-vs-jit-compilations-0r0a0a3f) +* [Dynamic Widget Communication](https://abp.io/community/articles/dynamic-widget-communication-uvun7q23) by [Suhaib Mousa](https://suhaibmousa.com/) +* [Introducing the Google Cloud Storage BLOB Provider](https://abp.io/community/articles/introducing-the-google-cloud-storage-blob-provider-yrt6azc0) by [Engincan Veske](https://twitter.com/EngincanVeske) +* [Switching Between Organization Units](https://abp.io/community/articles/switching-between-organization-units-i5tokpzt) by [Liming Ma](https://github.com/maliming) + +Thanks to the ABP Community for all the content they have published. You can also [post your ABP-related (text or video) content](https://abp.io/community/posts/submit) to the ABP Community. + +## About the Next Version + +The next feature version will be 9.0. You can follow the [release planning here](https://github.com/abpframework/abp/milestones). Please [submit an issue](https://github.com/abpframework/abp/issues/new) if you have any problems with this version. \ No newline at end of file diff --git a/docs/en/Blog-Posts/2024-09-06 v8_3_Release_Stable/cover-image.png b/docs/en/Blog-Posts/2024-09-06 v8_3_Release_Stable/cover-image.png new file mode 100644 index 0000000000..875be518af Binary files /dev/null and b/docs/en/Blog-Posts/2024-09-06 v8_3_Release_Stable/cover-image.png differ diff --git a/docs/en/Blog-Posts/2024-09-06 v8_3_Release_Stable/switch-to-stable.png b/docs/en/Blog-Posts/2024-09-06 v8_3_Release_Stable/switch-to-stable.png new file mode 100644 index 0000000000..30883ebf92 Binary files /dev/null and b/docs/en/Blog-Posts/2024-09-06 v8_3_Release_Stable/switch-to-stable.png differ diff --git a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/banner.png b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/banner.png new file mode 100644 index 0000000000..a25baf863a Binary files /dev/null and b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/banner.png differ diff --git a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/boat-trip.jpg b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/boat-trip.jpg new file mode 100644 index 0000000000..7a9b89732a Binary files /dev/null and b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/boat-trip.jpg differ diff --git a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/collage-moscow.jpg b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/collage-moscow.jpg new file mode 100644 index 0000000000..69652780b7 Binary files /dev/null and b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/collage-moscow.jpg differ diff --git a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/general-1.png b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/general-1.png new file mode 100644 index 0000000000..20c9ef5b05 Binary files /dev/null and b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/general-1.png differ diff --git a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/general-collage.jpg b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/general-collage.jpg new file mode 100644 index 0000000000..459f151e25 Binary files /dev/null and b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/general-collage.jpg differ diff --git a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/halil-talk.jpg b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/halil-talk.jpg new file mode 100644 index 0000000000..8d2a116524 Binary files /dev/null and b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/halil-talk.jpg differ diff --git a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/my-talk-2.png b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/my-talk-2.png new file mode 100644 index 0000000000..34acae63da Binary files /dev/null and b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/my-talk-2.png differ diff --git a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/my-talk-pro-pictures.jpg b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/my-talk-pro-pictures.jpg new file mode 100644 index 0000000000..8cd11d2d11 Binary files /dev/null and b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/my-talk-pro-pictures.jpg differ diff --git a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/my-talk.png b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/my-talk.png new file mode 100644 index 0000000000..caa9194c3f Binary files /dev/null and b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/my-talk.png differ diff --git a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/post.md b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/post.md new file mode 100644 index 0000000000..c6ac51d273 --- /dev/null +++ b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/post.md @@ -0,0 +1,87 @@ +# DotNext 2024 Conference: A Speaker’s Impressions + +![banner](banner.png) + +Last week, I had the chance of being a speaker at **DotNext 2024** in Moscow. [JUG Ru Group](https://jugru.org/en/) is arranging the DotNext Conferences since [2014](https://dotnext.ru/archive/). It's a specific conference for .NET developers held at the [MonArch Moscow Hotel](https://www.moscowmonarch.com/) on 10, 11 September 2024. This event brought together over **600 developers on-site, 200 developers online**, with around **35 speakers** delivering more than **30 talks**, making it one of the largest gatherings of the .NET community in Russia. + +![Atmosphere-1](general-1.png) + +--- + + + +## Key Highlights & Popular Sessions + +One of the standout aspects of the conference was its strong technical focus, particularly on deep-dive .NET topics. Talks covered subjects like **low-level optimizations**, architecture, performance, and platform internals. + +The conference started with Sergei Benzenko's talk "What's New in .NET 9". There are important topics like ".NET Aspire in Action", "AI-Driven Software Development", "DDD and Strategic Design" and "OAuth 2.0 User-Managed Access in ASP.NET Core with Keycloak". + +![DotNext 2024 Speakers](speakers.png) + +There were two international speakers: me and Halil Ibrahim Kalkan from ABP Core Team. Halil's topic was **Implementing Domain-Driven Design as a Pragmatic Developer**. In his session, he gave practical real world examples of bad and best practices of DDD development. + +![halil-talk](halil-talk.jpg) + + +--- + + + +## My Talk + +My presentation topic was **Building Multi-Tenant ASP.NET Core Applications** was part of this technical deep dive, and I was thrilled to see so much interest in scalable multi-tenant solutions. I generally talked about meta data in SaaS development and explained how to identify the active tenant, how to isolate the data in the same database, how to set `TenantId` automatically for new entities, how to select DB connection for the active tenant, how to change the active tenant when needed, how to disable multi-tenancy temporarily, how to handle database migrations and lastly feature system. These features are major multi-tenancy features, and you'll learn how they are implemented in an open-source web app framework. + +![My Talk](my-talk.png) + +![my-talk-2](C:\Users\alper\OneDrive\Desktop\DotNext 2024 Photos\article\my-talk-2.png) + +- My presentation 🌐https://github.com/ebicoglu/presentations/tree/main. + +- My conf profile🌐 https://dotnext.ru/en/persons/cbe6e4b2cc214a47bfc3752cdb0b1f88/ + + +![My Talk Photos](my-talk-pro-pictures.jpg) + +--- + + + +## Venue and Atmosphere + +The MonArch Moscow Hotel provided a great venue, combining spacious halls for sessions with cozy areas for networking. There were also afterparty events, which added a fun, informal touch to the otherwise highly technical environment. The setup allowed plenty of opportunities for spontaneous discussions with attendees and experts, both during and after the sessions. + +![Atmoshpere-4](general-collage.jpg) + + +--- + + + +## Boat Tour on Moscow River + +After the conference ended, the organizing team took all the speakers on a boat tour on the Moscow River. It was a great open buffet dinner in a nice boat. We had a chance to chat with other speakers. + +![Boat Trip](boat-trip.jpg) + +--- + + + +## Networking and Community + +DotNext 2024 provided an excellent platform for connecting with fellow developers and industry leaders. In addition to presentations, there were plenty of opportunities to interact with other participants, including representatives from Microsoft, Volosoft, and local Russian tech giants like Ozon and beeline. The exhibition hall was filled with partner stands, including those from PVS-Studio, Kontur, Eremex and OzonTech which offered interactive displays and demos. + +--- + + + +## Conclusion + +Overall, DotNext 2024 lived up to its reputation as a key event for .NET developers. From highly technical talks to networking opportunities, it was a fantastic experience, and I came away with new insights into both the technical and community aspects of the .NET ecosystem. If you’re a .NET developer looking to stay ahead in your field, DotNext is definitely a conference worth attending! + +Looking forward to come again! + + +Lastly, I took some beautiful photos of Moscow, here are a few... + +![Moscow Pictures](collage-moscow.jpg) \ No newline at end of file diff --git a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/speakers.png b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/speakers.png new file mode 100644 index 0000000000..eccc1bd0b4 Binary files /dev/null and b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/speakers.png differ diff --git a/docs/en/Community-Articles/2023-02-22-Streamline-Localization-In-Your-ABP-Project/POST.md b/docs/en/Community-Articles/2023-02-22-Streamline-Localization-In-Your-ABP-Project/POST.md index 63936521c6..f5380e0f39 100644 --- a/docs/en/Community-Articles/2023-02-22-Streamline-Localization-In-Your-ABP-Project/POST.md +++ b/docs/en/Community-Articles/2023-02-22-Streamline-Localization-In-Your-ABP-Project/POST.md @@ -1,4 +1,4 @@ -## Streamline Localization in Your ABP Project +# Streamline Localization in Your ABP Project Making localization changes to an ABP project can be a daunting task, especially if you're dealing with multiple languages and translations. During development, it's easy to overlook some changes and that leads to inconsistencies across different languages. Fortunately, I have developed a tool that can help streamline the localization process and ensure consistency across different languages. diff --git a/docs/en/Community-Articles/2023-11-16-Upgrading-Your-Existing-Projects-to-NET8/POST.md b/docs/en/Community-Articles/2023-11-16-Upgrading-Your-Existing-Projects-to-NET8/POST.md index c0bf748876..3ed34680c1 100644 --- a/docs/en/Community-Articles/2023-11-16-Upgrading-Your-Existing-Projects-to-NET8/POST.md +++ b/docs/en/Community-Articles/2023-11-16-Upgrading-Your-Existing-Projects-to-NET8/POST.md @@ -52,7 +52,7 @@ For example, you can update the ASP.NET Core image as follows: ```diff - FROM mcr.microsoft.com/dotnet/aspnet:7.0-bullseye-slim AS base -+ FROM mcr.microsoft.com/dotnet/aspnet:8.0 ++ FROM mcr.microsoft.com/dotnet/aspnet:9.0 ``` You can check the related images from Docker Hub and update them accordingly: diff --git a/docs/en/Community-Articles/2024-08-28-Understanding-AOT-vs-JIT/POST.md b/docs/en/Community-Articles/2024-08-28-Understanding-AOT-vs-JIT/POST.md new file mode 100644 index 0000000000..295b509029 --- /dev/null +++ b/docs/en/Community-Articles/2024-08-28-Understanding-AOT-vs-JIT/POST.md @@ -0,0 +1,64 @@ + + +![book](images/cover.png) + +Ahead-of-Time (AOT) compilation and Just-in-Time (JIT) compilation are two different methods for compiling Angular applications. Here's a breakdown of the differences between them: + +### **Ahead-of-Time (AOT) Compilation** + +**What is AOT?** + +- AOT compilation refers to the process of compiling your Angular application during the build phase, before the application is served to the browser. +- The Angular compiler converts your TypeScript and HTML templates into efficient JavaScript code ahead of time. + +**Advantages:** + +1. **Faster Rendering:** Since the compilation is done beforehand, the browser receives precompiled code, leading to faster rendering and better performance when the app loads. +2. **Smaller Bundle Size:** AOT eliminates the need for the Angular compiler in the client-side bundle, which reduces the overall bundle size. +3. **Improved Security:** AOT compilation checks your templates and bindings during the build process, catching errors early and reducing the risk of injection attacks. +4. **Early Error Detection:** Errors related to templates and bindings are caught during the build time rather than at runtime, leading to more robust and error-free applications. + +**When to Use:** + +- AOT is typically used in production builds because it provides better performance, smaller bundles, and more secure applications. + +**How to Use:** + +- AOT is the default when you run `ng build --prod` in an Angular project. + +### **Just-in-Time (JIT) Compilation** + +**What is JIT?** + +- JIT compilation occurs in the browser at runtime. The Angular compiler translates the TypeScript and HTML templates into JavaScript code just before the application runs in the browser. +- The application is compiled on the fly as the user interacts with it. + +**Advantages:** + +1. **Faster Build Time:** Since there’s no pre-compilation step, the build process is faster during development. +2. **More Flexible Development:** JIT allows for rapid iteration during development, as changes can be quickly reflected without needing to rebuild the entire application. +3. **Dynamic Components:** JIT allows for more flexibility in scenarios where components need to be dynamically created or compiled at runtime. + +**When to Use:** + +- JIT is typically used in development environments because it allows for quicker build times and easier debugging. + +**How to Use:** + +- JIT is the default compilation method when you run `ng serve` for development builds in Angular. + +### **Comparison Summary:** + +| Feature | AOT (Ahead-of-Time) | JIT (Just-in-Time) | +| ---------------------- | ----------------------------- | ---------------------------------- | +| **Compilation Timing** | At build time | At runtime | +| **Performance** | Faster application startup | Slower application startup | +| **Bundle Size** | Smaller (no Angular compiler) | Larger (includes Angular compiler) | +| **Error Detection** | Catches template errors early | Errors caught at runtime | +| **Use Case** | Production | Development | +| **Dynamic Components** | Less flexible | More flexible | + +### **Best Practices:** + +- **Use AOT** for production builds to ensure faster load times, smaller bundle sizes, and more secure applications. +- **Use JIT** during development to take advantage of quicker builds and easier debugging. \ No newline at end of file diff --git a/docs/en/Community-Articles/2024-08-28-Understanding-AOT-vs-JIT/images/cover.png b/docs/en/Community-Articles/2024-08-28-Understanding-AOT-vs-JIT/images/cover.png new file mode 100644 index 0000000000..bd6d7e8cbf Binary files /dev/null and b/docs/en/Community-Articles/2024-08-28-Understanding-AOT-vs-JIT/images/cover.png differ diff --git a/docs/en/Community-Articles/2024-08-29-What-is-Angular-Schematics/Post.md b/docs/en/Community-Articles/2024-08-29-What-is-Angular-Schematics/Post.md new file mode 100644 index 0000000000..c13c5ab345 --- /dev/null +++ b/docs/en/Community-Articles/2024-08-29-What-is-Angular-Schematics/Post.md @@ -0,0 +1,85 @@ +# What is Angular Schematics? + +![Cover Image](cover.png) + +**Angular Schematics** is a powerful tool which is part of the Angular CLI that allows developers to automate various development tasks by **generating and modifying code**. Schematics provides a way to create **templates and boilerplate code** for Angular applications or libraries, enabling consistency and reducing the amount of repetitive work. + +### Key Concepts of Angular Schematics: + +1. **Code Generation:** + - Schematics can generate boilerplate code for various Angular artifacts, such as components, services, modules, pipes... For example, when you run a command like `ng generate component my-component`, Angular uses a schematic to create the component files and update the necessary modules. + +2. **Code Modification:** + - Schematics can also modify existing code in your project. This includes tasks like updating configuration files, adding new routes, or modifying Angular modules. They can be very useful when upgrading projects to a new version of Angular or adding new features that require changes to the existing codebase. + +3. **Custom Schematics:** + - Developers can create their own custom schematics to automate repetitive tasks specific to their projects. For example, if your team frequently needs to set up a certain type of service or configure specific libraries, you can create a schematic that automates these steps. In [ABP Suite](https://abp.io/suite), we use the custom schematics templates to generate CRUD pages for Angular UI. + +4. **Collection of Schematics:** + - Schematics are often grouped into collections. The Angular CLI itself is a collection of schematics. You can create your own collection or use third-party schematic collections created by the Angular community. + +5. **Integration with Angular CLI:** + - Schematics is integrated with the Angular CLI. The `ng generate` and `ng add` commands are examples of how schematics are used in everyday Angular development. When you use these commands, the Angular CLI runs the corresponding schematic to perform the desired operation. + +6. **Upgrade Tasks:** + - Schematics can be used to automate the process of upgrading Angular applications. For example, the Angular Update command (`ng update`) uses schematics to automatically apply necessary changes to your project when upgrading to a new version of Angular. + +### Common Use Cases: + +- **Generating Components, Services, Modules.:** Easily create Angular building blocks with commands like `ng generate component`, `ng generate service`, or `ng generate module`. + +- **Adding Libraries:** Automatically set up and configure third-party libraries with `ng add`. For example, `ng add @angular/material` uses a schematic to install and configure Angular Material in your project. + +- **Automating Project Upgrades:** Simplify the process of upgrading Angular versions by running `ng update`, which uses schematics to make necessary code changes. + +- **Custom Project Scaffolding:** Create custom schematics to enforce your team's development standards and best practices by automating the creation of specific project structures. + +### How to Create a Custom Schematic: + +Creating a custom schematic involves several steps: +1. **Install the Schematics CLI:** + ```bash + npm install -g @angular-devkit/schematics-cli + ``` + +2. **Create a New Schematic Project:** + ```bash + schematics blank --name=my-schematic + cd my-schematic + ``` + +3. **Define Your Schematic:** Modify the files in the schematic project to define what your schematic will generate or modify. + +4. **Test Your Schematic:** You can run your schematic locally using the `schematics` command. + +5. **Publish Your Schematic (Optional):** Once your schematic is ready, you can publish it to npm or include it in your Angular projects. + +#### Example: +If you want to create a custom component with specific settings or styles, you can create a schematic to automate this. Every time a developer on your team needs to create this type of component, they can run the schematic, ensuring consistency across the project. + + + +### Helpful Links + +Here are the direct links for the Angular Schematics resources: + +- [Angular Official Documentation: Schematics Overview — angular.io](https://angular.io/guide/schematics) + +- [Creating Custom Schematics — angular.io](https://angular.io/guide/schematics-for-libraries) + +- [CLI Schematic Command — angular.io](https://angular.io/cli/schematic) + +- [Devkit Schematics— github.com](https://github.com/angular/angular-cli/tree/main/packages/angular_devkit/schematics) + +- [Schematics Examples — github.com](https://github.com/angular/angular-cli/tree/main/packages/schematics/angular) + +- [Debugging Angular Schematics — dev.to](https://dev.to/nikolasleblanc/debugging-angular-schematics-1ne0) + +- [Using Schematics with Nx — nx.dev](https://nx.dev/guides/using-angular-schematics) + +- [Schematics API — angular.io](https://angular.io/api/schematics) + + + +### Conclusion: +Angular Schematics is a powerful tool for automating repetitive tasks, generating consistent code, and managing project upgrades. By leveraging schematics, Angular developers can save time, reduce errors, and enforce best practices across their projects. \ No newline at end of file diff --git a/docs/en/Community-Articles/2024-08-29-What-is-Angular-Schematics/cover.png b/docs/en/Community-Articles/2024-08-29-What-is-Angular-Schematics/cover.png new file mode 100644 index 0000000000..3e155996e8 Binary files /dev/null and b/docs/en/Community-Articles/2024-08-29-What-is-Angular-Schematics/cover.png differ diff --git a/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/Post.md b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/Post.md new file mode 100644 index 0000000000..b80917f4c4 --- /dev/null +++ b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/Post.md @@ -0,0 +1,123 @@ +# Do You Really Need Multi-tenancy? + +This article discusses whether you need a multi-tenancy architecture for your next project. Answer my critical questions to decide if multi-tenancy suits your application or not! + +![Cover image](cover.png) + +## What’s Multi-tenancy? + +It’s an architectural approach to building SaaS solutions. In this model, the hardware and software resources are shared between tenants, and application data is virtually or physically isolated between tenants. Here, **the main goal is minimizing costs and maximizing customer count**. + +**An ideal multi-tenant application should be;** + +- A multi-tenancy system should be designed to **work seamlessly** and make your application code **multi-tenancy aware** as much as possible. +- When a customer wants to separate their database, it **should also be deployable to on-premise**. + + +![Tenancy Schema](tenancy-schema.png) + + +--- + + + +## Multi-tenant Development is Hard - Reconsider! + +**Developing a multi-tenant application is harder** compared to non-multi-tenant applications. You add `TenandId` to all your shared entities. And each time you make a query, you need to filter by `TenantId`. There is an increased risk of security breaches if one tenant's data is compromised. Multi-tenancy can limit the extent of customization available to each tenant since they all operate on the same core infrastructure. Also, in a microservice environment, things get two times more complicated. So you should carefully consider if you need multi-tenancy or not. Sometimes, I got questions like; + +![Questions](questions.png) + +**No! These are not multi-tenant applications.** It just needs a simple filtering by your different branches/faculties/departments/holding sub-companies/ groups or whatever hierarchy is
 +**You are confusing "grouping" with "resource sharing".** + +--- + + + +## Do I Really Need Multi-tenancy? + +Ask yourself the following questions if you cannot decide whether your app needs multi-tenancy or not; + +1. Can a user be shared among other tenants? +2. Any tenant needs to see other tenant's data? +3. Does your application break when you physically move one of the tenants? +4. Do your customers need higher security and better GDPR enforcement? +5. Do you need cumulative queries over your tenants? + + + +Let's answer these questions; + + + +##### **1. Can a user be shared among other tenants?** + +If you need to *share a user among other tenants, or in other words, users can be members of different tenants,* then **your application is definitely not multi-tenant**! Multi-tenancy means a tenant’s data is always isolated, even if it’s logically separated. **You cannot share a user among your tenants.** The reason is simple: In the future, if you move a tenant to on-premise, then your application will break! + +![user-multiple-membership](user-multiple-membership.png) + +##### **2. Does any tenant need to see other tenants' data?** + +If your answer is **YES**, **then** **your application is not multi-tenant**. In multi-tenant apps, the tenant's data cannot be shared in any circumstances among the other tenants. Business decision-makers sometimes want to share some entities with other tenants. If there's this requirement, you shouldn't start a multi-tenant architecture. You can simply group these tenants manually. Again, reply to this question; **In the future, if I move a tenant physically to another environment, will my app still work properly?** In this case, it will not! + +![Shared entity](shared-entity.png) + +Let's say your app is *Amazon.com* and you have a product entity *iPhone* that you want to share with other sellers. This requirement violates the multi-tenant rule. While your *Amazon.com* is still SaaS, it shouldn't be multi-tenant. + +On the other hand, if you serve several online shopping websites dedicated to different brands. Let's say Nike and Adidas want to have their own e-commerce websites. And your ***Amazon.com* provides these companies with their own subdomains: *nike.amazon.com* and *adidas.amazon.com***. In this architecture, these companies will have their own user, roles, settings. Also these companies will have their own branding like custom login screen, custom logo, different theme layouts, menu items, language options, payment gateways etc... Hence, **this is %100 multi-tenant.** + + + +##### **3. Does your application break when you physically move one of the tenants?** + +If your answer is **YES**, you should **stop making it multi-tenant**. It is **not a multi-tenant app**! This means your tenants are tightly coupled with the application's infrastructure or database, and this requirement prevents you from making it multi-tenant because it disrupts the entire system when you take out a tenant. + +![Coupled Tenants](coupled-tenants.png) + + +##### **4. Do your customers need higher security and better GDPR enforcement?** + +If your answer is **YES**, you **should not make it multi-tenancy.** When a **hacker** gets into your server, he can **steal all your client data**. Also, if you have a security hole, **a tenant can gain access** to other tenants' data. Especially your tenants' data is being shared in the same database... On the other hand, some customers, for example, government agencies or banks, may be required to locate the database in their own geo-location and make it unreachable from the main application. In this case, you should go with a single-tenant architecture. Another difficulty is that some tenants may have **different data retention policies**, so you must implement different strategies for each tenant. In this case, you should also consider making it a single-tenant. + +![Security GDPR Data Retention](security-gdpr-db-retention.png) + +##### **5. Do you need cumulative queries over your tenants?** + +This question is not a clear decision parameter for multi-tenancy. But it can be a supportive parameter for your decision. Actually, this is a common feature in multi-tenant systems where aggregated reporting or analytics across tenants is required. In a virtually isolated multi-tenant environment, you can easily do this by just disabling the multi-tenancy filter. However, when some of your tenants have separate databases or application instances, it becomes harder to get aggregate reports. + +Do you need cumulative queries over your tenants? If your answer is YES, then you should keep all your tenants' data in a shared database to easily query them. But if you still need to physically move some of the tenants, then you have the following strategies: + +* First, all your databases need to be on the same network so that you can gather data from different databases. +* Second, in some cases, according to the GDPR requirements or government agency regulations, you must locate the database in their geo-location. And you cannot connect to these databases. In this case, you can create a Web API in your application that gives you a report for this specific tenant. Later, you'll gather the reports from all your tenants like this and merge them. +* Third; When the tenant databases are in different geo-location (inaccessible), then each tenant can send their report to your central server. So you can generate cumulative reports. + + + +## Conclusion + +- It's important to decide on the first day whether your application needs to be multi-tenant. To decide this, consider these topics; + + - **Do my tenants really have a relationship with each other?** No, they have nothing to do in common; **OK, go with multi-tenancy**. + - **My tenants don't have a relationship** with each other, and the only thing they have in common is sharing my application. **OK, go with multi-tenancy**. + - **When a tenant leaves the system (by removing their data), the other tenants also stop working** This means that the tenants are coupled. **Do not do multi-tenancy!** + + + +--- + + + +![Logo](https://abp.io/assets/platform/img/logos/logo-abp-dark.svg) + +We’ve been working for a long time on multi-tenancy, microservices, modular development topics, and developing tools and frameworks for repetitive development tasks. Check out the amazing open-source [ABP Framework](https://github.com/abpframework/abp), which provides all the alternative solutions to implement a multi-tenant architecture. The multi-tenancy logic is seamlessly done at the core level, and you can simply focus on your business code. Keep it simple, nice and neat with ABP. + + +```bash +ABP.IO: The Modern Way of Developing Web Apps for .NET Developers! +``` + + + +Alper Ebicoglu / [x.com/alperebicoglu](https://x.com/alperebicoglu) + +— ABP Team diff --git a/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/coupled-tenants.png b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/coupled-tenants.png new file mode 100644 index 0000000000..5dbe089084 Binary files /dev/null and b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/coupled-tenants.png differ diff --git a/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/cover.png b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/cover.png new file mode 100644 index 0000000000..0946615495 Binary files /dev/null and b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/cover.png differ diff --git a/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/questions.png b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/questions.png new file mode 100644 index 0000000000..d75731dbef Binary files /dev/null and b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/questions.png differ diff --git a/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/security-gdpr-db-retention.png b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/security-gdpr-db-retention.png new file mode 100644 index 0000000000..ae38dae0e2 Binary files /dev/null and b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/security-gdpr-db-retention.png differ diff --git a/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/shared-entity.png b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/shared-entity.png new file mode 100644 index 0000000000..bb9b5d979d Binary files /dev/null and b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/shared-entity.png differ diff --git a/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/tenancy-schema.png b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/tenancy-schema.png new file mode 100644 index 0000000000..952aca7266 Binary files /dev/null and b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/tenancy-schema.png differ diff --git a/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/user-multiple-membership.png b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/user-multiple-membership.png new file mode 100644 index 0000000000..9cd6bcfb48 Binary files /dev/null and b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/user-multiple-membership.png differ diff --git a/docs/en/Community-Articles/2024-09-18-Blazor-9-New-Features/cover.png b/docs/en/Community-Articles/2024-09-18-Blazor-9-New-Features/cover.png new file mode 100644 index 0000000000..2c1048c5ce Binary files /dev/null and b/docs/en/Community-Articles/2024-09-18-Blazor-9-New-Features/cover.png differ diff --git a/docs/en/Community-Articles/2024-09-18-Blazor-9-New-Features/post.md b/docs/en/Community-Articles/2024-09-18-Blazor-9-New-Features/post.md new file mode 100644 index 0000000000..bc73c13210 --- /dev/null +++ b/docs/en/Community-Articles/2024-09-18-Blazor-9-New-Features/post.md @@ -0,0 +1,149 @@ +# ASP.NET Core Blazor 9.0 New Features Summary 🆕 + +In this article, I'll highlight .NET 9's Blazor updates and important features for ASP.NET Core 9.0. These features are based on the latest .NET 9 Preview 7. + +![Cover](cover.png) + +## .NET MAUI Blazor Hybrid App and Web App solution template + +There's a new solution template to create .**NET MAUI native** and **Blazor web client** apps. This new template allows to choose a Blazor interactive render mode, it uses a shared Razor class library to maintain the UI's Razor components. + +For more info: + +* [learn.microsoft.com > maui blazor web app tutorial](https://learn.microsoft.com/en-us/aspnet/core/blazor/hybrid/tutorials/maui-blazor-web-app?view=aspnetcore-9.0) +* [reddit.com/r/Blazor/comments/1dabyzk/net_8_blazor_hybrid_maui_app_web_hosting/](https://www.reddit.com/r/Blazor/comments/1dabyzk/net_8_blazor_hybrid_maui_app_web_hosting/) + + + +## A new middleware: `MapStaticAssets` + +This new middleware optimizes the delivery of static assets in any ASP.NET Core app, also for Blazor. Basically it compresses assets via [Gzip](https://datatracker.ietf.org/doc/html/rfc1952), [fingerprints](https://developer.mozilla.org/docs/Glossary/Fingerprinting) for all assets at build time with a Base64 and removes caches when Visual Studio Hot Reload (development time) is in action. + +For more info: + +* [learn.microsoft.com > optimizing static web assets](https://learn.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-9.0?view=aspnetcore-8.0#optimizing-static-web-asset-delivery) +* [learn.microsoft.com > fundamentals of static files](https://learn.microsoft.com/en-us/aspnet/core/blazor/fundamentals/static-files?view=aspnetcore-9.0#static-asset-middleware) + + + +## Simplifying the process of querying component states at runtime + +1. Finding the component's current execution location: This can be especially helpful for component performance optimization and debugging. +2. Verifying whether the component is operating in a dynamic environment by checking: This can be useful for parts whose actions vary according to how their surroundings interact. +3. Obtaining the render mode allocated to the component: Comprehending the render mode can aid in enhancing the rendering procedure and augmenting the component's general efficiency. + +For more info: + +* [learn.microsoft.com > detect rendering location interactivity & render mode runtime](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-9.0#detect-rendering-location-interactivity-and-assigned-render-mode-at-runtime) + + + +## Detecting component's location, interactivity support and render mode + +The `ComponentBase.RendererInfo` and `ComponentBase.AssignedRenderMode` now allows to detect the following actions: + +* `RendererInfo.Name` returns the location where the component is executing +* `RendererInfo.IsInteractive` indicates if the component supports interactivity at the time of rendering. +* `ComponentBase.AssignedRenderMode` exposes the component's assigned render mode + + + +## Better server-side reconnection + +* When the previous app is disconnected and the user navigates to this app, or browser put this app in sleep mode, Blazor runs reconnection mechanism. + +* When reconnection is not successful because your server killed connection, it automatically makes a full page refresh. + +* With the new below config, you can adjust your reconnection retry time: + + * ```csharp + Blazor.start({ + circuit: { + reconnectionOptions: { + retryIntervalMilliseconds: (previousAttempts, maxRetries) => + previousAttempts >= maxRetries ? null : previousAttempts * 1000 + }, + }, + }); + ``` + + + +## Simple serialization for authentication + +The new APIs in ASP.NET make it easier to add authentication to existing Blazor Web Apps. These APIs, now part of the Blazor Web App project template, allow authentication state to be serialized on the server and deserialized in the browser, simplifying the process of integrating authentication. This removes the need for developers to manually implement or copy complex code, especially when using WebAssembly-based interactivity. + +For more info: + +- [learn.microsoft.com > blazor Identity UI individual accounts](https://learn.microsoft.com/en-us/aspnet/core/blazor/security/server/?view=aspnetcore-9.0#blazor-identity-ui-individual-accounts) +- [learn.microsoft.com > manage authentication state](https://learn.microsoft.com/en-us/aspnet/core/blazor/security/server/?view=aspnetcore-9.0#manage-authentication-state-in-blazor-web-apps) + + + +## Easily add static server-side rendering pages + +With .NET 9, adding static server-side rendering (SSR) pages to globally interactive Blazor Web Apps has become simpler. The new `[ExcludeFromInteractiveRouting]` attribute allows developers to mark specific Razor component pages that require static SSR, such as those relying on HTTP cookies and the request/response cycle. Pages annotated with this attribute exit interactive routing and trigger a full-page reload, while non-annotated pages default to interactive rendering modes like `InteractiveServer`. This approach enables flexibility between static and interactive rendering depending on the page's requirements. + +For more info: + +* [learn.microsoft.com > render-modes](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-9.0#static-ssr-pages-in-a-globally-interactive-app) + + + +## Constructor Injection in Razor Components + +Razor components support constructor injection, allowing services like `NavigationManager` to be injected directly into a component's constructor. This can be used to manage navigation actions, such as redirecting the user upon an event like a button click. + +For more info: + +* [learn.microsoft.com> dependency-injection](https://learn.microsoft.com/en-us/aspnet/core/blazor/fundamentals/dependency-injection?view=aspnetcore-9.0#request-a-service-in-a-component) + + + +## Configuring WebSocket Compression and Frame-Ancestors CSP in Interactive Server Components + +By default, Interactive Server components enable WebSocket compression and set a `frame-ancestors` Content Security Policy (CSP) to `self`, restricting embedding the app in ` + + + +

+ - diff --git a/templates/app/aspnet-core/README.md b/templates/app/aspnet-core/README.md index 3ac1e6aa79..e9dc40663d 100644 --- a/templates/app/aspnet-core/README.md +++ b/templates/app/aspnet-core/README.md @@ -2,7 +2,7 @@ ## About this solution -This is a layered startup solution based on [Domain Driven Design (DDD)](https://docs.abp.io/en/abp/latest/Domain-Driven-Design) practises. All the fundamental ABP modules are already installed. +This is a layered startup solution based on [Domain Driven Design (DDD)](https://abp.io/docs/latest/framework/architecture/domain-driven-design) practises. All the fundamental ABP modules are already installed. ### Pre-requirements @@ -52,7 +52,7 @@ It is recommended to use **two** RSA certificates, distinct from the certificate For more information, please refer to: https://documentation.openiddict.com/configuration/encryption-and-signing-credentials.html#registering-a-certificate-recommended-for-production-ready-scenarios -> Also, see the [Configuring OpenIddict](https://docs.abp.io/en/abp/latest/Deployment/Configuring-OpenIddict#production-environment) documentation for more information. +> Also, see the [Configuring OpenIddict](https://abp.io/docs/latest/deployment/configuring-openiddict#production-environment) documentation for more information. #### Install Client-Side Libraries @@ -108,43 +108,43 @@ This is a layered monolith application that consists of the following applicatio ### Deploying the application -Deploying an ABP application is not different than deploying any .NET or ASP.NET Core application. However, there are some topics that you should care about when you are deploying your applications. You can check ABP's [Deployment documentation](https://docs.abp.io/en/abp/latest/Deployment/Index) before deploying your application. +Deploying an ABP application is not different than deploying any .NET or ASP.NET Core application. However, there are some topics that you should care about when you are deploying your applications. You can check ABP's [Deployment documentation](https://abp.io/docs/latest/deployment) before deploying your application. ### Additional resources You can see the following resources to learn more about your solution and the ABP Framework: -* [Web Application Development Tutorial](https://docs.abp.io/en/abp/latest/Tutorials/Part-1) -* [Application Startup Template Structure](https://docs.abp.io/en/abp/latest/Startup-Templates/Application) +* [Web Application Development Tutorial](https://abp.io/docs/latest/tutorials/book-store/part-01?UI=Blazor&DB=EF) +* [Application Startup Template Structure](https://abp.io/docs/latest/solution-templates/layered-web-application) -* [ASP.NET Core MVC / Razor Pages: The Basic Theme](https://docs.abp.io/en/abp/latest/UI/AspNetCore/Basic-Theme) +* [ASP.NET Core MVC / Razor Pages: The Basic Theme](https://abp.io/docs/latest/framework/ui/mvc-razor-pages/basic-theme) -* [LeptonX Lite MVC UI](https://docs.abp.io/en/abp/latest/Themes/LeptonXLite/AspNetCore) +* [LeptonX Lite MVC UI](https://abp.io/docs/latest/ui-themes/lepton-x-lite/asp-net-core) -* [Blazor UI: Basic Theme](https://docs.abp.io/en/abp/latest/UI/Blazor/Basic-Theme?UI=BlazorServer) +* [Blazor UI: Basic Theme](https://abp.io/docs/latest/framework/ui/blazor/basic-theme?UI=BlazorServer) -* [LeptonX Lite Blazor UI](https://docs.abp.io/en/abp/latest/Themes/LeptonXLite/Blazor?UI=BlazorServer) +* [LeptonX Lite Blazor UI](https://abp.io/docs/latest/ui-themes/lepton-x-lite/blazor?UI=BlazorServer) -* [Blazor UI: Basic Theme](https://docs.abp.io/en/abp/latest/UI/Blazor/Basic-Theme?UI=Blazor) +* [Blazor UI: Basic Theme](https://abp.io/docs/latest/framework/ui/blazor/basic-theme?UI=Blazor) -* [LeptonX Lite Blazor UI](https://docs.abp.io/en/abp/latest/Themes/LeptonXLite/Blazor?UI=Blazor) +* [LeptonX Lite Blazor UI](https://abp.io/docs/latest/ui-themes/lepton-x-lite/blazor?UI=Blazor) -* [Angular UI: Basic Theme](https://docs.abp.io/en/abp/latest/UI/Angular/Basic-Theme) +* [Angular UI: Basic Theme](https://abp.io/docs/latest/framework/ui/angular/basic-theme) -* [LeptonX Lite Angular UI](https://docs.abp.io/en/abp/latest/Themes/LeptonXLite/Angular) +* [LeptonX Lite Angular UI](https://abp.io/docs/latest/ui-themes/lepton-x-lite/angular) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Application.Contracts/MyCompanyName.MyProjectName.Application.Contracts.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Application.Contracts/MyCompanyName.MyProjectName.Application.Contracts.csproj index 21d363eeed..ea45843b55 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Application.Contracts/MyCompanyName.MyProjectName.Application.Contracts.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Application.Contracts/MyCompanyName.MyProjectName.Application.Contracts.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Application/MyCompanyName.MyProjectName.Application.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Application/MyCompanyName.MyProjectName.Application.csproj index e8a13f5fb4..da75a2434a 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Application/MyCompanyName.MyProjectName.Application.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Application/MyCompanyName.MyProjectName.Application.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj index 1338fd2305..575ab35f8e 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -41,7 +41,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs index e8c1dd4646..19363e777b 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs @@ -206,7 +206,7 @@ public class MyProjectNameAuthServerModule : AbpModule } app.UseCorrelationId(); - app.UseStaticFiles(); + app.MapAbpStaticAssets(); app.UseRouting(); app.UseCors(); app.UseAuthentication(); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json index 2a1a50dcab..d5bcfbd471 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-authserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.1" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyCompanyName.MyProjectName.Blazor.Client.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyCompanyName.MyProjectName.Blazor.Client.csproj index aa508e1f5f..aa162240c1 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyCompanyName.MyProjectName.Blazor.Client.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyCompanyName.MyProjectName.Blazor.Client.csproj @@ -1,9 +1,9 @@ -ï»ż + - net8.0 + net9.0 enable true @@ -14,8 +14,8 @@ - - + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyProjectNameBundleContributor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyProjectNameBundleContributor.cs index 8ed6208237..3eb2bbc785 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyProjectNameBundleContributor.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyProjectNameBundleContributor.cs @@ -3,7 +3,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Client; /* Add your global styles/scripts here. - * See https://docs.abp.io/en/abp/latest/UI/Blazor/Global-Scripts-Styles to learn how to use it + * See https://abp.io/docs/latest/framework/ui/blazor/global-scripts-styles to learn how to use it */ public class MyProjectNameBundleContributor : IBundleContributor { diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Pages/Index.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Pages/Index.razor index 6b01b38267..a932861897 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Pages/Index.razor +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Pages/Index.razor @@ -1,4 +1,4 @@ -ï»ż@page "/" +@page "/" @using Volo.Abp.MultiTenancy @inherits MyProjectNameComponentBase @inject AuthenticationStateProvider AuthenticationStateProvider @@ -10,39 +10,30 @@

Getting Started

Learn how to create and run - a - new web application using the application startup - template.

- Getting - Started + a new web application using the application startup template.

+ Getting Started

Web Application Development Tutorial

-

Learn how to build an ABP based - web - application named Acme.BookStore.

+

Learn how to build an ABP based web application named Acme.BookStore.

Explore Tutorial

Customize Lepton Theme

-

Learn how to customize LeptonX - Theme - as you wish.

+

Learn how to customize LeptonX Theme as you wish.

Customize Lepton
+
-

You can check for - similar problems and solutions, or open a - new topic to discuss your specific issue.

- Visit Support +

You can check for similar problems and solutions, or open a new topic to discuss your specific issue.

+ Visit Support
@@ -51,232 +42,44 @@
-

You can find content - on .NET development, cross-platform, ASP.NET - application templates, ABP-related news, and - more.

- Visit Blog - +

You can find content on .NET development, cross-platform, ASP.NET application templates, ABP-related news, and more.

+ Visit Blog
-
-
-
- -

A unique community platform - for ABP Lovers!

-

Explore all ABP users' - experiences with the ABP Framework, discover - articles and videos on how to use ABP, and join - raffles for a chance to win surprise gifts!

- Join ABP - Community -
- -
-
- -
-
-
-
-
More from ABP.IO
-
-
- -
- - - - - - - - - - - - - - - - - - - - - - - -
-
-
Latest Release Logs
-
- - - -
-
-
Video Courses
-
- - - -
-
-
Samples
-
- - - -
-
-
Books
-
- - - -
-
-
FAQ
-
- - - -
-
-
-
+
+

Let's improve your application!

+

Here are some links to help you get started:

-
-
-
-
-
-

THE OFFICIAL GUIDE

-

Mastering ABP Framework

-

Written by the creator of the ABP - Framework, this book will help you gain a complete - understanding of the framework - and modern web application development techniques.

- + +
+
+
+
+
+
Learn the ABP Framework
+

Explore the comprehensive documentation to learn how to build a modern web application.

+ See Documents
-
- +
+
+
+
Samples
+

See the example projects built with the ABP Framework.

+ All samples
- -
-
-
-
-
-
-
Follow us on Social Media
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - -
- -
X.com
-
- - - -
- -
Discord
-
- - - -
- -
Stack Overflow
-
- - - -
- -
YouTube
-
- - - -
- -
Instagram
-
- - - -
+
+
+
ABP Community
+

Get involved with a vibrant community and become a contributor.

+ Community + Contribute +
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj index 67ce2fa924..7fc3fe773a 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj @@ -1,9 +1,9 @@ -ï»ż + - net8.0 + net9.0 enable true true @@ -18,7 +18,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs index dad869db4d..3414c945a3 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs @@ -361,7 +361,7 @@ public class MyProjectNameBlazorModule : AbpModule } app.UseCorrelationId(); - app.UseStaticFiles(); + app.MapAbpStaticAssets(); app.UseRouting(); app.UseAuthentication(); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json index c6901f62c8..0033791b97 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0", - "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.1", + "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.1" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Components/Pages/Index.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Components/Pages/Index.razor index d0a8d0ac7b..008b98b46d 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Components/Pages/Index.razor +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Components/Pages/Index.razor @@ -1,4 +1,4 @@ -ï»ż@page "/" +@page "/" @using Volo.Abp.MultiTenancy @inherits MyProjectNameComponentBase @inject AuthenticationStateProvider AuthenticationStateProvider @@ -9,276 +9,92 @@

Getting Started

-

Learn how to create and run - a - new web application using the application startup - template.

- Getting - Started +

Learn how to create and run a new web application using the application startup template.

+ Getting Started

Web Application Development Tutorial

-

Learn how to build an ABP based - web - application named Acme.BookStore.

+

Learn how to build an ABP based web application named Acme.BookStore.

Explore Tutorial

Customize Lepton Theme

-

Learn how to customize LeptonX - Theme - as you wish.

+

Learn how to customize LeptonX Theme as you wish.

Customize Lepton
-
-
-
-
-
- -

You can check for - similar problems and solutions, or open a - new topic to discuss your specific issue.

- Visit Support - -
-
-
-
-
-
- -

You can find content - on .NET development, cross-platform, ASP.NET - application templates, ABP-related news, and - more.

- Visit Blog - -
-
+
+
+
+ +

You can check for similar problems and solutions, or open a new topic to discuss your specific issue.

+ Visit Support +
+
-

A unique community platform - for ABP Lovers!

-

Explore all ABP users' - experiences with the ABP Framework, discover - articles and videos on how to use ABP, and join - raffles for a chance to win surprise gifts!

- Join ABP - Community +

A unique community platform for ABP Lovers!

+

Explore all ABP users' experiences with the ABP Framework, discover articles and videos on how to use ABP, and join raffles for a chance to win surprise gifts!

+ Join ABP Community
-
-
-
-
-
More from ABP.IO
-
-
+
+

Let's improve your application!

+

Here are some links to help you get started:

+
-
- - - - - - - - - - - - - - - - - - - - - - - -
-
-
Latest Release Logs
-
- - - -
-
-
Video Courses
-
- - - -
-
-
Samples
-
- - - -
-
-
Books
-
- - - -
-
-
FAQ
-
- - - -
+
+
+
+
+
+
Learn the ABP Framework
+

Explore the comprehensive documentation to learn how to build a modern web application.

+ See Documents
-
-
-
-
-
-
-
-

THE OFFICIAL GUIDE

-

Mastering ABP Framework

-

Written by the creator of the ABP - Framework, this book will help you gain a complete - understanding of the framework - and modern web application development techniques.

- -
-
- -
+
+
+
Samples
+

See the example projects built with the ABP Framework.

+ All samples +
+
+
+
+
ABP Community
+

Get involved with a vibrant community and become a contributor.

+ Community + Contribute
-
-
-
-
-
-
Follow us on Social Media
+
+
+
+
ABP Blog
+

Take a look at our recently published articles.

+ See Blog +
-
-
- - - - - - - - - - - - - - - - - - - - - - - -
- -
X.com
-
- - - -
- -
Discord
-
- - - -
- -
Stack Overflow
-
- - - -
- -
YouTube
-
- - - -
- -
Instagram
-
- - - -
+
+
+
Github
+

Do you love the ABP Framework? Please give a star to support it!

+ See Open Source Framework
-
\ No newline at end of file +
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj index 07d23ade47..17f6abd8b3 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj @@ -1,9 +1,9 @@ -ï»ż + - net8.0 + net9.0 enable true true @@ -14,7 +14,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs index e1e9a212d5..6fb111d98d 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs @@ -271,7 +271,7 @@ public class MyProjectNameBlazorModule : AbpModule app.UseHttpsRedirection(); app.UseCorrelationId(); - app.UseStaticFiles(); + app.MapAbpStaticAssets(); app.UseRouting(); app.UseAuthentication(); app.UseAbpOpenIddictValidation(); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json index c6901f62c8..0033791b97 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0", - "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.1", + "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.1" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Client/MyCompanyName.MyProjectName.Blazor.WebApp.Client.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Client/MyCompanyName.MyProjectName.Blazor.WebApp.Client.csproj index 524bf5e299..6817056575 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Client/MyCompanyName.MyProjectName.Blazor.WebApp.Client.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Client/MyCompanyName.MyProjectName.Blazor.WebApp.Client.csproj @@ -1,9 +1,9 @@ -ï»ż + - net8.0 + net9.0 enable true MyCompanyName.MyProjectName.Blazor.WebApp.Client @@ -15,8 +15,8 @@ - - + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Client/Pages/Index.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Client/Pages/Index.razor index 8efe9db682..b98f41c5c4 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Client/Pages/Index.razor +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Client/Pages/Index.razor @@ -1,4 +1,4 @@ -ï»ż@page "/" +@page "/" @inherits MyProjectNameComponentBase @inject AuthenticationStateProvider AuthenticationStateProvider @@ -8,40 +8,80 @@

Getting Started

-

Learn how to create and run - a - new web application using the application startup - template.

- Getting - Started +

Learn how to create and run a new web application using the application startup template.

+ Getting Started

Web Application Development Tutorial

-

Learn how to build an ABP based - web - application named Acme.BookStore.

+

Learn how to build an ABP based web application named Acme.BookStore.

Explore Tutorial

Customize Lepton Theme

-

Learn how to customize LeptonX - Theme - as you wish.

+

Learn how to customize LeptonX Theme as you wish.

Customize Lepton
+ +
+

Let's improve your application!

+

Here are some links to help you get started:

+
+ +
+
+
+
+
+
Learn the ABP Framework
+

Explore the comprehensive documentation to learn how to build a modern web application.

+ See Documents +
+
+
+
+
Samples
+

See the example projects built with the ABP Framework.

+ All samples +
+
+
+
+
ABP Community
+

Get involved with a vibrant community and become a contributor.

+ Community + Contribute +
+
+
+
+
+
+
ABP Blog
+

Take a look at our recently published articles.

+ See Blog +
+
+
+
+
Github
+

Do you love the ABP Framework? Please give a star to support it!

+ GitHub +
+
+
+
+
+
-

You can check for - similar problems and solutions, or open a - new topic to discuss your specific issue.

- Visit Support +

You can check for similar problems and solutions, or open a new topic to discuss your specific issue.

+ Visit Support
@@ -50,232 +90,62 @@
-

You can find content - on .NET development, cross-platform, ASP.NET - application templates, ABP-related news, and - more.

- Visit Blog - +

You can find content on .NET development, cross-platform, ASP.NET application templates, ABP-related news, and more.

+ Visit Blog
-
-
-
- -

A unique community platform - for ABP Lovers!

-

Explore all ABP users' - experiences with the ABP Framework, discover - articles and videos on how to use ABP, and join - raffles for a chance to win surprise gifts!

- Join ABP - Community -
- -
-
-
-
-
-
-
More from ABP.IO
-
-
+
+
+

+ ABP is a platform based on the open source ABP framework. It provides pre-built application modules, + rapid application development tooling, professional UI themes, premium support, and more. +

-
- - - - - - - - - - - - - - - - - - - - - - - -
-
-
Latest Release Logs
-
- - - -
-
-
Video Courses
-
- - - -
-
-
Samples
-
- - - -
-
-
Books
-
- - - -
-
-
FAQ
-
- - - -
+
+
+
+
+ Startup Templates + Details +
-
-
-
-
-
-
-
-

THE OFFICIAL GUIDE

-

Mastering ABP Framework

-

Written by the creator of the ABP - Framework, this book will help you gain a complete - understanding of the framework - and modern web application development techniques.

- -
-
- -
+
+
+
+ Application Modules + Details +
-
-
-
-
-
-
-
Follow us on Social Media
+
+
+
+ Developer
Tools + Details +
+
+
+
+
+
+ UI Themes + Details +
+
-
-
- - - - - - - - - - - - - - - - - - - - - - - -
- -
X.com
-
- - - -
- -
Discord
-
- - - -
- -
Stack Overflow
-
- - - -
- -
YouTube
-
- - - -
- -
Instagram
-
- - - -
+
+
+
+ Support + Details +
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client.csproj index 97c5e3919e..027674e0eb 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client.csproj @@ -1,9 +1,9 @@ -ï»ż + - net8.0 + net9.0 enable true MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client @@ -15,8 +15,8 @@ - - + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.csproj index 2217b369d4..5870e449f4 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.csproj @@ -1,9 +1,9 @@ -ï»ż + - net8.0 + net9.0 enable true true @@ -15,12 +15,12 @@ - + - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/MyProjectNameBlazorModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/MyProjectNameBlazorModule.cs index b9cee43363..4c85dd798a 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/MyProjectNameBlazorModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/MyProjectNameBlazorModule.cs @@ -364,7 +364,7 @@ public class MyProjectNameBlazorModule : AbpModule } app.UseCorrelationId(); - app.UseStaticFiles(); + app.MapAbpStaticAssets(); app.UseRouting(); app.UseAuthentication(); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/package.json index c6901f62c8..0033791b97 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0", - "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.1", + "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.1" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/MyCompanyName.MyProjectName.Blazor.WebApp.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/MyCompanyName.MyProjectName.Blazor.WebApp.csproj index bc76e1a579..f33ae47a95 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/MyCompanyName.MyProjectName.Blazor.WebApp.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/MyCompanyName.MyProjectName.Blazor.WebApp.csproj @@ -1,9 +1,9 @@ -ï»ż + - net8.0 + net9.0 enable true true @@ -15,7 +15,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/MyProjectNameBlazorModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/MyProjectNameBlazorModule.cs index 11e0e75f6c..d1ce178d29 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/MyProjectNameBlazorModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/MyProjectNameBlazorModule.cs @@ -274,7 +274,7 @@ public class MyProjectNameBlazorModule : AbpModule app.UseHttpsRedirection(); app.UseCorrelationId(); - app.UseStaticFiles(); + app.MapAbpStaticAssets(); app.UseRouting(); app.UseAuthentication(); app.UseAbpOpenIddictValidation(); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/package.json index c6901f62c8..0033791b97 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0", - "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.1", + "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.1" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj index 77bc0516c5..51d53b8aa8 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj @@ -3,12 +3,12 @@ - net8.0 + net9.0 enable - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Program.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Program.cs index 9fae4422f1..b7882b254a 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Program.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Program.cs @@ -33,7 +33,7 @@ else app.UseHttpsRedirection(); -app.UseStaticFiles(); +app.MapStaticAssets(); app.UseAntiforgery(); app.MapRazorComponents() diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj index b33239d30c..f67e885562 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj @@ -1,10 +1,10 @@ -ï»ż + Exe - net8.0 + net9.0 enable @@ -22,7 +22,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/Localization/MyProjectName/sv.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/Localization/MyProjectName/sv.json new file mode 100644 index 0000000000..bd1eae44a5 --- /dev/null +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/Localization/MyProjectName/sv.json @@ -0,0 +1,9 @@ +{ + "culture": "sv", + "texts": { + "AppName": "MittProjektNamn", + "Menu:Home": "Hem", + "Welcome": "VĂ€lkommen", + "LongWelcomeMessage": "VĂ€lkommen till applikationen. Detta Ă€r ett startup-projekt baserat pĂ„ ABP-ramverket. För mer information, besök abp.io." + } +} \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj index 9c9ad16b91..e1e5721334 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName true @@ -26,7 +26,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyCompanyName.MyProjectName.Domain.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyCompanyName.MyProjectName.Domain.csproj index 4a1ece449b..65c9cf59c3 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyCompanyName.MyProjectName.Domain.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyCompanyName.MyProjectName.Domain.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20240322114004_Initial.Designer.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20241002093350_Initial.Designer.cs similarity index 96% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20240322114004_Initial.Designer.cs rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20241002093350_Initial.Designer.cs index bd99dc092f..879497d553 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20240322114004_Initial.Designer.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20241002093350_Initial.Designer.cs @@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore; namespace MyCompanyName.MyProjectName.Migrations { [DbContext(typeof(MyProjectNameDbContext))] - [Migration("20240322114004_Initial")] + [Migration("20241002093350_Initial")] partial class Initial { /// @@ -22,7 +22,7 @@ namespace MyCompanyName.MyProjectName.Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "8.0.0") + .HasAnnotation("ProductVersion", "9.0.0-rc.1.24451.1") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); @@ -712,6 +712,13 @@ namespace MyCompanyName.MyProjectName.Migrations .HasMaxLength(64) .HasColumnType("nvarchar(64)"); + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .IsRequired() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + b.Property("Device") .IsRequired() .HasMaxLength(64) @@ -721,9 +728,14 @@ namespace MyCompanyName.MyProjectName.Migrations .HasMaxLength(64) .HasColumnType("nvarchar(64)"); + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + b.Property("IpAddresses") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); + .HasMaxLength(2048) + .HasColumnType("nvarchar(2048)"); b.Property("LastAccessed") .HasColumnType("datetime2"); @@ -1305,41 +1317,11 @@ namespace MyCompanyName.MyProjectName.Migrations b.Property("CreationDate") .HasColumnType("datetime2"); - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - b.Property("ExtraProperties") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - b.Property("Properties") .HasColumnType("nvarchar(max)"); @@ -1464,22 +1446,6 @@ namespace MyCompanyName.MyProjectName.Migrations b.Property("CreationDate") .HasColumnType("datetime2"); - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - b.Property("ExpirationDate") .HasColumnType("datetime2"); @@ -1488,20 +1454,6 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - b.Property("Payload") .HasColumnType("nvarchar(max)"); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20240322114004_Initial.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20241002093350_Initial.cs similarity index 97% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20240322114004_Initial.cs rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20241002093350_Initial.cs index 3c914f3225..e4c6ea09ef 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20240322114004_Initial.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20241002093350_Initial.cs @@ -287,9 +287,11 @@ namespace MyCompanyName.MyProjectName.Migrations TenantId = table.Column(type: "uniqueidentifier", nullable: true), UserId = table.Column(type: "uniqueidentifier", nullable: false), ClientId = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), - IpAddresses = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), + IpAddresses = table.Column(type: "nvarchar(2048)", maxLength: 2048, nullable: true), SignedIn = table.Column(type: "datetime2", nullable: false), - LastAccessed = table.Column(type: "datetime2", nullable: true) + LastAccessed = table.Column(type: "datetime2", nullable: true), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: false), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: false) }, constraints: table => { @@ -719,14 +721,7 @@ namespace MyCompanyName.MyProjectName.Migrations Subject = table.Column(type: "nvarchar(400)", maxLength: 400, nullable: true), Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: false), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: false), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: false) }, constraints: table => { @@ -778,14 +773,7 @@ namespace MyCompanyName.MyProjectName.Migrations Subject = table.Column(type: "nvarchar(400)", maxLength: 400, nullable: true), Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: false), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: false), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: false) }, constraints: table => { diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/MyProjectNameDbContextModelSnapshot.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/MyProjectNameDbContextModelSnapshot.cs index 6aca735728..31e0e736f1 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/MyProjectNameDbContextModelSnapshot.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/MyProjectNameDbContextModelSnapshot.cs @@ -19,7 +19,7 @@ namespace MyCompanyName.MyProjectName.Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "8.0.0") + .HasAnnotation("ProductVersion", "9.0.0-rc.1.24451.1") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); @@ -709,6 +709,13 @@ namespace MyCompanyName.MyProjectName.Migrations .HasMaxLength(64) .HasColumnType("nvarchar(64)"); + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .IsRequired() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + b.Property("Device") .IsRequired() .HasMaxLength(64) @@ -718,9 +725,14 @@ namespace MyCompanyName.MyProjectName.Migrations .HasMaxLength(64) .HasColumnType("nvarchar(64)"); + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + b.Property("IpAddresses") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); + .HasMaxLength(2048) + .HasColumnType("nvarchar(2048)"); b.Property("LastAccessed") .HasColumnType("datetime2"); @@ -1302,41 +1314,11 @@ namespace MyCompanyName.MyProjectName.Migrations b.Property("CreationDate") .HasColumnType("datetime2"); - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - b.Property("ExtraProperties") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - b.Property("Properties") .HasColumnType("nvarchar(max)"); @@ -1461,22 +1443,6 @@ namespace MyCompanyName.MyProjectName.Migrations b.Property("CreationDate") .HasColumnType("datetime2"); - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - b.Property("ExpirationDate") .HasColumnType("datetime2"); @@ -1485,20 +1451,6 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - b.Property("Payload") .HasColumnType("nvarchar(max)"); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj index 0b94c86bb1..f6f4ce8df7 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName @@ -22,7 +22,7 @@ - + all runtime; build; native; contentfiles; analyzers diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Client/MyCompanyName.MyProjectName.HttpApi.Client.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Client/MyCompanyName.MyProjectName.HttpApi.Client.csproj index 5687fbeea1..0c1dca286f 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Client/MyCompanyName.MyProjectName.HttpApi.Client.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Client/MyCompanyName.MyProjectName.HttpApi.Client.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj index f65ab7f0a5..d49bc6b89f 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName true @@ -13,8 +13,8 @@ - - + + 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 2c0b3838e0..73033bdda1 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 @@ -188,7 +188,7 @@ public class MyProjectNameHttpApiHostModule : AbpModule app.UseAbpRequestLocalization(); app.UseCorrelationId(); - app.UseStaticFiles(); + app.MapAbpStaticAssets(); app.UseRouting(); app.UseCors(); app.UseAuthentication(); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj index 7a34a8a7a0..54ee63cb92 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName true 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 9e2863aca4..9d28180208 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 @@ -193,7 +193,7 @@ public class MyProjectNameHttpApiHostModule : AbpModule } app.UseCorrelationId(); - app.UseStaticFiles(); + app.MapAbpStaticAssets(); app.UseRouting(); app.UseCors(); app.UseAuthentication(); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json index 2d93d3d4d5..437b7ad692 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.1" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi/MyCompanyName.MyProjectName.HttpApi.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi/MyCompanyName.MyProjectName.HttpApi.csproj index bd754ffc09..3e00a31dc5 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi/MyCompanyName.MyProjectName.HttpApi.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi/MyCompanyName.MyProjectName.HttpApi.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MyCompanyName.MyProjectName.MongoDB.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MyCompanyName.MyProjectName.MongoDB.csproj index 62de8f4c46..1afadc5fcb 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MyCompanyName.MyProjectName.MongoDB.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MyCompanyName.MyProjectName.MongoDB.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj index 1a39c32a88..cd0f2130f9 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName.Web $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -19,7 +19,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs index 777d3e8886..9c2db7971c 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs @@ -313,7 +313,7 @@ public class MyProjectNameWebModule : AbpModule } app.UseCorrelationId(); - app.UseStaticFiles(); + app.MapAbpStaticAssets(); app.UseRouting(); app.UseAuthentication(); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json index 2d93d3d4d5..437b7ad692 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.1" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj index 8b9f2572b4..0d07e2095e 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName.Web $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; 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 3d36e378f6..bec50e72eb 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs @@ -1,3 +1,4 @@ +using System; using System.IO; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Extensions.DependencyInjection; @@ -225,7 +226,7 @@ public class MyProjectNameWebModule : AbpModule } app.UseCorrelationId(); - app.UseStaticFiles(); + app.MapAbpStaticAssets(); app.UseRouting(); app.UseAuthentication(); app.UseAbpOpenIddictValidation(); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/Pages/Index.cshtml b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/Pages/Index.cshtml index 0aac26c69a..c25e4f4486 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/Pages/Index.cshtml +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/Pages/Index.cshtml @@ -1,57 +1,33 @@ -ï»ż@page -@using Microsoft.AspNetCore.Mvc.Localization -@using MyCompanyName.MyProjectName.Localization -@using Volo.Abp.Users -@model MyCompanyName.MyProjectName.Web.Pages.IndexModel -@inject IHtmlLocalizer L -@inject ICurrentUser CurrentUser -@section styles { - -} -@section scripts { - -} -

Getting Started

-

Learn how to create and run - a - new web application using the application startup - template.

- Getting - Started +

Learn how to create and run a new web application using the application startup template.

+ Getting Started

Web Application Development Tutorial

-

Learn how to build an ABP based - web - application named Acme.BookStore.

+

Learn how to build an ABP based web application named Acme.BookStore.

Explore Tutorial

Customize Lepton Theme

-

Learn how to customize LeptonX - Theme - as you wish.

+

Learn how to customize LeptonX Theme as you wish.

Customize Lepton
+
-

You can check for - similar problems and solutions, or open a - new topic to discuss your specific issue.

- Visit Support +

You can check for similar problems and solutions, or open a new topic to discuss your specific issue.

+ Visit Support
@@ -60,234 +36,24 @@
-

You can find content - on .NET development, cross-platform, ASP.NET - application templates, ABP-related news, and - more.

- Visit Blog - +

You can find content on .NET development, cross-platform, ASP.NET application templates, ABP-related news, and more.

+ Visit Blog
+
-

A unique community platform - for ABP Lovers!

-

Explore all ABP users' - experiences with the ABP Framework, discover - articles and videos on how to use ABP, and join - raffles for a chance to win surprise gifts!

- Join ABP - Community +

A unique community platform for ABP Lovers!

+

Explore all ABP users' experiences with the ABP Framework, discover articles and videos on how to use ABP, and join raffles for a chance to win surprise gifts!

+ Join ABP Community
- -
-
-
-
-
More from ABP.IO
-
-
- -
- - - - - - - - - - - - - - - - - - - - - - - -
-
-
Latest Release Logs
-
- - - -
-
-
Video Courses
-
- - - -
-
-
Samples
-
- - - -
-
-
Books
-
- - - -
-
-
FAQ
-
- - - -
-
-
-
-
-
-
-
-
-
-

THE OFFICIAL GUIDE

-

Mastering ABP Framework

-

Written by the creator of the ABP - Framework, this book will help you gain a complete - understanding of the framework - and modern web application development techniques.

- -
-
- -
-
- -
-
-
-
-
-
-
Follow us on Social Media
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - -
- -
X.com
-
- - - -
- -
Discord
-
- - - -
- -
Stack Overflow
-
- - - -
- -
YouTube
-
- - - -
- -
Instagram
-
- - - -
-
-
-
-
-
\ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json index 2d93d3d4d5..437b7ad692 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.1" } } diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj index 95fa802675..e0fa9e02d2 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName @@ -14,7 +14,7 @@
- +
diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj index bf2d814e9b..6e58703e70 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj @@ -3,13 +3,13 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName - + diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj index 8f96ce08ce..025c56a9d9 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName @@ -15,7 +15,7 @@ - +
diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj index 5804301f7e..0c6b8e7553 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj @@ -2,7 +2,7 @@ Exe - net8.0 + net9.0 enable @@ -22,8 +22,8 @@ - - + + diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj index f0d1a185e2..e0d0ad61cb 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName @@ -14,7 +14,7 @@ - + diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj index 3471f07d52..deb2ee12fe 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName @@ -16,7 +16,7 @@ - + all diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyCompanyName.MyProjectName.Web.Tests.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyCompanyName.MyProjectName.Web.Tests.csproj index 58ecff2be2..8b3cff7e1b 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyCompanyName.MyProjectName.Web.Tests.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyCompanyName.MyProjectName.Web.Tests.csproj @@ -3,18 +3,12 @@ - net8.0 + net9.0 enable - Exe - $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; - MyCompanyName.MyProjectName - true - true - true - + diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/Program.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/Program.cs index f4c388685f..a6e766fff3 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/Program.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/Program.cs @@ -3,7 +3,9 @@ using MyCompanyName.MyProjectName; using Volo.Abp.AspNetCore.TestBase; var builder = WebApplication.CreateBuilder(); -await builder.RunAbpModuleAsync(); + +builder.Environment.ContentRootPath = GetWebProjectContentRootPathHelper.Get("MyCompanyName.MyProjectName.Web.csproj"); +await builder.RunAbpModuleAsync(applicationName: "MyCompanyName.MyProjectName.Web" ); public partial class Program { diff --git a/templates/app/react-native/.eslintrc.json b/templates/app/react-native/.eslintrc.json deleted file mode 100644 index 6702dcefd6..0000000000 --- a/templates/app/react-native/.eslintrc.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "extends": ["airbnb", "prettier", "prettier/react"], - "parser": "babel-eslint", - "env": { - "jest": true - }, - "rules": { - "no-use-before-define": 0, - "react/jsx-filename-extension": 0, - "react/prop-types": ["error", { "ignore": ["navigation", "children"] }], - "react/require-default-props": 0, - "react/jsx-props-no-spreading": 0, - "react/forbid-prop-types": 0, - "import/prefer-default-export": 0, - "comma-dangle": 0, - "no-underscore-dangle": 1, - "no-plusplus": ["error", { "allowForLoopAfterthoughts": true }], - "no-param-reassign": 0, - "operator-linebreak": 0, - "global-require": 0 - }, - "globals": { - "fetch": false - } -} diff --git a/templates/app/react-native/.expo-shared/assets.json b/templates/app/react-native/.expo-shared/assets.json deleted file mode 100644 index 1e6decfbb5..0000000000 --- a/templates/app/react-native/.expo-shared/assets.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "12bb71342c6255bbf50437ec8f4441c083f47cdb74bd89160c15e4f43e52a1cb": true, - "40b842e832070c58deac6aa9e08fa459302ee3f9da492c7e77d93d2fbf4a56fd": true -} diff --git a/templates/app/react-native/.gitignore b/templates/app/react-native/.gitignore deleted file mode 100644 index ec8a36a257..0000000000 --- a/templates/app/react-native/.gitignore +++ /dev/null @@ -1,14 +0,0 @@ -node_modules/ -.expo/ -dist/ -npm-debug.* -*.jks -*.p8 -*.p12 -*.key -*.mobileprovision -*.orig.* -web-build/ - -# macOS -.DS_Store diff --git a/templates/app/react-native/.prettierrc b/templates/app/react-native/.prettierrc deleted file mode 100644 index 471fac2824..0000000000 --- a/templates/app/react-native/.prettierrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "trailingComma": "all", - "singleQuote": true, - "jsxSingleQuote": false, - "printWidth": 80, - "semi": true, - "jsxBracketSameLine": true, - "arrowParens": "avoid" -} diff --git a/templates/app/react-native/.vscode/extensions.json b/templates/app/react-native/.vscode/extensions.json deleted file mode 100644 index d7df89c9cd..0000000000 --- a/templates/app/react-native/.vscode/extensions.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "recommendations": ["esbenp.prettier-vscode", "dbaeumer.vscode-eslint"] -} diff --git a/templates/app/react-native/App.js b/templates/app/react-native/App.js deleted file mode 100644 index 6505569f2b..0000000000 --- a/templates/app/react-native/App.js +++ /dev/null @@ -1,101 +0,0 @@ -import { NavigationContainer } from '@react-navigation/native'; -import { createNativeStackNavigator } from '@react-navigation/native-stack'; -import i18n from 'i18n-js'; -import { NativeBaseProvider } from 'native-base'; -import React, { useEffect, useMemo, useState } from 'react'; -import { enableScreens } from 'react-native-screens'; -import { Provider } from 'react-redux'; -import { PersistGate } from 'redux-persist/integration/react'; -import { getEnvVars } from './Environment'; -import Loading from './src/components/Loading/Loading'; -import { LocalizationContext } from './src/contexts/LocalizationContext'; -import { initAPIInterceptor } from './src/interceptors/APIInterceptor'; -import AuthNavigator from './src/navigators/AuthNavigator'; -import DrawerNavigator from './src/navigators/DrawerNavigator'; -import { persistor, store } from './src/store'; -import AppActions from './src/store/actions/AppActions'; -import PersistentStorageActions from './src/store/actions/PersistentStorageActions'; -import { createLanguageSelector } from './src/store/selectors/AppSelectors'; -import { createTokenSelector } from './src/store/selectors/PersistentStorageSelectors'; -import { connectToRedux } from './src/utils/ReduxConnect'; -import { isTokenValid } from './src/utils/TokenUtils'; - -const Stack = createNativeStackNavigator(); - -const { localization } = getEnvVars(); - -i18n.defaultSeparator = '::'; - -const cloneT = i18n.t; -i18n.t = (key, ...args) => { - if (key.slice(0, 2) === '::') { - key = localization.defaultResourceName + key; - } - return cloneT(key, ...args); -}; - -enableScreens(); -initAPIInterceptor(store); - -export default function App() { - const language = createLanguageSelector()(store.getState()); - const [isReady, setIsReady] = useState(false); - - const localizationContextValue = useMemo( - () => ({ - t: i18n.t, - locale: (language || {}).cultureName, - }), - [language] - ); - - useEffect(() => { - store.dispatch( - AppActions.fetchAppConfigAsync({ - callback: () => setIsReady(true), - showLoading: true, - }) - ); - }, []); - - return ( - - - - - {isReady ? ( - - - - ) : null} - - - - - - ); -} - -function AppContainer({token, setToken}) { - const isValid = useMemo(() => isTokenValid(token), [token]); - - useEffect(() => { - if (!isValid && token && token.access_token) { - setToken({}) - } - }, [isValid]); - - - return isValid ? : -} - - -const ConnectedAppContainer = connectToRedux({ - component: AppContainer, - stateProps: (state) => ({ - token: createTokenSelector()(state), - }), - dispatchProps: { - setToken: PersistentStorageActions.setToken, - }, -}); diff --git a/templates/app/react-native/Environment.js b/templates/app/react-native/Environment.js deleted file mode 100644 index a4a23995f7..0000000000 --- a/templates/app/react-native/Environment.js +++ /dev/null @@ -1,32 +0,0 @@ -const yourIP = 'localhost'; // See the docs https://docs.abp.io/en/abp/latest/Getting-Started-React-Native?Tiered=No -const port = 44305; -const apiUrl = `http://${yourIP}:${port}`; -const ENV = { - dev: { - apiUrl: apiUrl, - oAuthConfig: { - issuer: apiUrl, - clientId: 'MyProjectName_App', - scope: 'offline_access MyProjectName', - }, - localization: { - defaultResourceName: 'MyProjectName', - }, - }, - prod: { - apiUrl: 'http://localhost:44305', - oAuthConfig: { - issuer: 'http://localhost:44305', - clientId: 'MyProjectName_App', - scope: 'offline_access MyProjectName', - }, - localization: { - defaultResourceName: 'MyProjectName', - }, - }, -}; - -export const getEnvVars = () => { - // eslint-disable-next-line no-undef - return __DEV__ ? ENV.dev : ENV.prod; -}; diff --git a/templates/app/react-native/app.json b/templates/app/react-native/app.json deleted file mode 100644 index 5b78afa519..0000000000 --- a/templates/app/react-native/app.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "expo": { - "name": "MyProjectName", - "slug": "MyProjectName", - "version": "1.0.0", - "orientation": "portrait", - "icon": "./assets/icon.png", - "splash": { - "image": "./assets/splash.png", - "resizeMode": "cover", - "backgroundColor": "#38003c" - }, - "updates": { - "fallbackToCacheTimeout": 0 - }, - "assetBundlePatterns": ["**/*"], - "ios": { - "supportsTablet": true, - "bundleIdentifier": "com.MyCompanyName.MyProjectName", - "buildNumber": "1.0.0" - }, - "android": { - "package": "com.MyCompanyName.MyProjectName", - "versionCode": 1, - "adaptiveIcon": { - "foregroundImage": "./assets/adaptive-icon.png", - "backgroundColor": "#FFFFFF" - } - }, - "web": { - "favicon": "./assets/icon.png" - } - } -} diff --git a/templates/app/react-native/assets/adaptive-icon.png b/templates/app/react-native/assets/adaptive-icon.png deleted file mode 100644 index 03d6f6b6c6..0000000000 Binary files a/templates/app/react-native/assets/adaptive-icon.png and /dev/null differ diff --git a/templates/app/react-native/assets/avatar.png b/templates/app/react-native/assets/avatar.png deleted file mode 100644 index 8a1daa0121..0000000000 Binary files a/templates/app/react-native/assets/avatar.png and /dev/null differ diff --git a/templates/app/react-native/assets/icon.png b/templates/app/react-native/assets/icon.png deleted file mode 100644 index 528c8711d7..0000000000 Binary files a/templates/app/react-native/assets/icon.png and /dev/null differ diff --git a/templates/app/react-native/assets/logo.png b/templates/app/react-native/assets/logo.png deleted file mode 100644 index b9b1e36c50..0000000000 Binary files a/templates/app/react-native/assets/logo.png and /dev/null differ diff --git a/templates/app/react-native/assets/splash.png b/templates/app/react-native/assets/splash.png deleted file mode 100644 index 0d5f0ec026..0000000000 Binary files a/templates/app/react-native/assets/splash.png and /dev/null differ diff --git a/templates/app/react-native/babel.config.js b/templates/app/react-native/babel.config.js deleted file mode 100644 index d715221e05..0000000000 --- a/templates/app/react-native/babel.config.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = function(api) { - api.cache(true); - return { - presets: ['babel-preset-expo'], - plugins: ['react-native-reanimated/plugin'], - }; -}; \ No newline at end of file diff --git a/templates/app/react-native/package.json b/templates/app/react-native/package.json deleted file mode 100644 index 9fbe23ea4b..0000000000 --- a/templates/app/react-native/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "myprojectname", - "version": "1.0.0", - "main": "node_modules/expo/AppEntry.js", - "scripts": { - "start": "expo start --port 19000", - "android": "expo start --android", - "ios": "expo start --ios", - "web": "expo start --web", - "eject": "expo eject" - }, - "dependencies": { - "@react-native-async-storage/async-storage": "1.18.2", - "@react-navigation/drawer": "^6.5.4", - "@react-navigation/native": "^6.1.0", - "@react-navigation/native-stack": "^6.9.5", - "@reduxjs/toolkit": "^1.7.1", - "axios": "~1.2.1", - "expo": "^49.0.0", - "expo-status-bar": "~1.6.0", - "formik": "^2.2.9", - "i18n-js": "^3.8.0", - "native-base": "^3.4.25", - "prop-types": "^15.8.1", - "react": "18.2.0", - "react-dom": "18.2.0", - "react-native": "0.72.10", - "react-native-chart-kit": "^6.11.0", - "react-native-gesture-handler": "~2.12.0", - "react-native-reanimated": "~3.3.0", - "react-native-safe-area-context": "4.6.3", - "react-native-screens": "~3.22.0", - "react-native-svg": "13.9.0", - "react-native-web": "~0.19.6", - "react-redux": "^8.0.5", - "redux-persist": "^6.0.0", - "redux-saga": "^1.2.1", - "yup": "^0.32.11" - }, - "devDependencies": { - "@babel/core": "^7.19.3" - }, - "private": true -} diff --git a/templates/app/react-native/src/api/API.js b/templates/app/react-native/src/api/API.js deleted file mode 100644 index dc604f62e9..0000000000 --- a/templates/app/react-native/src/api/API.js +++ /dev/null @@ -1,11 +0,0 @@ -import axios from 'axios'; -import { getEnvVars } from '../../Environment'; - -const { apiUrl } = getEnvVars(); - -const axiosInstance = axios.create({ - baseURL: apiUrl, - withCredentials: false -}); - -export default axiosInstance; diff --git a/templates/app/react-native/src/api/AccountAPI.js b/templates/app/react-native/src/api/AccountAPI.js deleted file mode 100644 index ddf49579d3..0000000000 --- a/templates/app/react-native/src/api/AccountAPI.js +++ /dev/null @@ -1,62 +0,0 @@ -import api from './API'; -import { getEnvVars } from '../../Environment'; - -const { oAuthConfig } = getEnvVars(); - -getLoginData = (username, password) => { - const formData = { - grant_type: 'password', - scope: oAuthConfig.scope, - username: username, - password: password, - client_id: oAuthConfig.clientId, - }; - - if (oAuthConfig.clientSecret) - formData['client_secret'] = oAuthConfig.clientSecret; - - return Object.entries(formData) - .map(([key, value]) => `${key}=${encodeURIComponent(value)}`) - .join('&'); -}; - -export const login = ({ username, password }) => - api({ - method: 'POST', - url: '/connect/token', - headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, - data: getLoginData(username, password), - baseURL: oAuthConfig.issuer, - }).then(({ data }) => data); - -export const Logout = ( - input = { client_id: '', token: '', token_type_hint: '' }, -) => { - if (!input.token_type_hint) { - input.token_type_hint = 'access_token'; - } - - const _data = Object.entries(input) - .map(([key, value]) => `${key}=${encodeURIComponent(value)}`) - .join('&'); - - return api({ - method: 'POST', - url: '/connect/revocat', - headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, - data: _data, - baseURL: oAuthConfig.issuer, - }).then(({ data }) => data); -}; - -export const getTenant = tenantName => - api({ - method: 'GET', - url: `/api/abp/multi-tenancy/tenants/by-name/${tenantName}`, - }).then(({ data }) => data); - -export const getTenantById = tenantId => - api({ - method: 'GET', - url: `/api/abp/multi-tenancy/tenants/by-id/${tenantId}`, - }).then(({ data }) => data); diff --git a/templates/app/react-native/src/api/ApplicationConfigurationAPI.js b/templates/app/react-native/src/api/ApplicationConfigurationAPI.js deleted file mode 100644 index 96fcbea5cd..0000000000 --- a/templates/app/react-native/src/api/ApplicationConfigurationAPI.js +++ /dev/null @@ -1,30 +0,0 @@ -import i18n from 'i18n-js'; -import api from './API'; - -export const getApplicationConfiguration = () => - api - .get('/api/abp/application-configuration') - .then(({ data }) => data) - .then(async config => { - const { cultureName } = config.localization.currentCulture; - i18n.locale = cultureName; - - Object.keys(config.localization.values).forEach(key => { - const resource = config.localization.values[key]; - - if (typeof resource !== 'object') return; - - Object.keys(resource).forEach(key2 => { - if (/'{|{/g.test(resource[key2])) { - resource[key2] = resource[key2].replace(/'{|{/g, '{{').replace(/}'|}/g, '}}'); - } - }); - }); - - i18n.translations[cultureName] = { - ...config.localization.values, - ...(i18n.translations[cultureName] || {}), - }; - - return config; - }); diff --git a/templates/app/react-native/src/api/IdentityAPI.js b/templates/app/react-native/src/api/IdentityAPI.js deleted file mode 100644 index 9ae81ad2b5..0000000000 --- a/templates/app/react-native/src/api/IdentityAPI.js +++ /dev/null @@ -1,27 +0,0 @@ -import api from './API'; - - -export const getAllRoles = () => api.get('/api/identity/roles/all').then(({ data }) => data.items); - -export const getUserRoles = id => - api.get(`/api/identity/users/${id}/roles`).then(({ data }) => data.items); - -export const getUsers = (params = { maxResultCount: 10, skipCount: 0 }) => - api.get('/api/identity/users', { params }).then(({ data }) => data); - -export const getUserById = id => api.get(`/api/identity/users/${id}`).then(({ data }) => data); - -export const createUser = body => api.post('/api/identity/users', body).then(({ data }) => data); - -export const updateUser = (body, id) => - api.put(`/api/identity/users/${id}`, body).then(({ data }) => data); - -export const removeUser = id => api.delete(`/api/identity/users/${id}`); - -export const getProfileDetail = () => api.get('/api/account/my-profile').then(({ data }) => data); - -export const updateProfileDetail = body => - api.put('/api/account/my-profile', body).then(({ data }) => data); - -export const changePassword = body => - api.post('/api/account/my-profile/change-password', body).then(({ data }) => data); diff --git a/templates/app/react-native/src/api/TenantManagementAPI.js b/templates/app/react-native/src/api/TenantManagementAPI.js deleted file mode 100644 index f60ed96450..0000000000 --- a/templates/app/react-native/src/api/TenantManagementAPI.js +++ /dev/null @@ -1,21 +0,0 @@ -import api from './API'; - -export function getTenants(params = {}) { - return api.get('/api/multi-tenancy/tenants', { params }).then(({ data }) => data); -} - -export function createTenant(body) { - return api.post('/api/multi-tenancy/tenants', body).then(({ data }) => data); -} - -export function getTenantById(id) { - return api.get(`/api/multi-tenancy/tenants/${id}`).then(({ data }) => data); -} - -export function updateTenant(body, id) { - return api.put(`/api/multi-tenancy/tenants/${id}`, body).then(({ data }) => data); -} - -export function removeTenant(id) { - return api.delete(`/api/multi-tenancy/tenants/${id}`).then(({ data }) => data); -} diff --git a/templates/app/react-native/src/components/AddIcon/AddIcon.js b/templates/app/react-native/src/components/AddIcon/AddIcon.js deleted file mode 100644 index b4cc26f36f..0000000000 --- a/templates/app/react-native/src/components/AddIcon/AddIcon.js +++ /dev/null @@ -1,16 +0,0 @@ -import { Ionicons } from '@expo/vector-icons'; -import { Icon } from 'native-base'; -import React from 'react'; - -export default function AddIcon({ onPress, ...iconProps }) { - return ( - - ); -} diff --git a/templates/app/react-native/src/components/DataList/DataList.js b/templates/app/react-native/src/components/DataList/DataList.js deleted file mode 100644 index 9dce6d9562..0000000000 --- a/templates/app/react-native/src/components/DataList/DataList.js +++ /dev/null @@ -1,143 +0,0 @@ -import { Ionicons } from '@expo/vector-icons'; -import { useFocusEffect } from '@react-navigation/native'; -import i18n from 'i18n-js'; -import { Box, Center, FlatList, Icon, Input, Spinner, Text } from 'native-base'; -import PropTypes from 'prop-types'; -import React, { forwardRef, useCallback, useEffect, useState } from 'react'; -import { StyleSheet, View } from 'react-native'; -import LoadingActions from '../../store/actions/LoadingActions'; -import { debounce } from '../../utils/Debounce'; -import { connectToRedux } from '../../utils/ReduxConnect'; -import LoadingButton from '../LoadingButton/LoadingButton'; - -function DataList({ - navigation, - fetchFn, - render, - maxResultCount = 15, - debounceTime = 350, - ...props -}) { - const [records, setRecords] = useState([]); - const [totalCount, setTotalCount] = useState(0); - const [loading, setLoading] = useState(false); - const [searchLoading, setSearchLoading] = useState(false); - const [buttonLoading, setButtonLoading] = useState(false); - const [skipCount, setSkipCount] = useState(0); - const [filter, setFilter] = useState(''); - - const fetch = (skip = 0, isRefreshingActive = true) => { - if (isRefreshingActive) setLoading(true); - return fetchFn({ filter, maxResultCount, skipCount: skip }) - .then(({ items, totalCount: total }) => { - setTotalCount(total); - setRecords(skip ? [...records, ...items] : items); - setSkipCount(skip); - }) - .finally(() => { - if (isRefreshingActive) setLoading(false); - }); - }; - - const fetchPartial = () => { - if (loading || records.length === totalCount) return; - - setButtonLoading(true); - fetch(skipCount + maxResultCount, false).finally(() => - setButtonLoading(false) - ); - }; - - useFocusEffect( - useCallback(() => { - setSkipCount(0); - fetch(0, false); - }, []) - ); - - useEffect(() => { - function searchFetch() { - setSearchLoading(true); - return fetch(0, false).finally(() => - setTimeout(() => setSearchLoading(false), 150) - ); - } - debounce(searchFetch, debounceTime)(); - }, [filter]); - - return ( -
- - - ) : ( - - ) - } - /> - ( - <> - {render(...args)} - {args.index + 1 === skipCount + maxResultCount && - totalCount > records.length ? ( - - fetchPartial()} - > - {i18n.t('AbpUi::LoadMore')} - - - ) : null} - - )} - {...props} - /> - -
- ); -} - -DataList.propTypes = { - ...FlatList.propTypes, - fetchFn: PropTypes.func.isRequired, - render: PropTypes.func.isRequired, - maxResultCount: PropTypes.number, - debounceTime: PropTypes.number, -}; - -const styles = StyleSheet.create({ - container: { flex: 1 }, - list: {}, -}); - -const Forwarded = forwardRef((props, ref) => ( - -)); - -export default connectToRedux({ - component: Forwarded, - dispatchProps: { - startLoading: LoadingActions.start, - stopLoading: LoadingActions.stop, - }, -}); diff --git a/templates/app/react-native/src/components/DrawerContent/DrawerContent.js b/templates/app/react-native/src/components/DrawerContent/DrawerContent.js deleted file mode 100644 index 4f7792fab5..0000000000 --- a/templates/app/react-native/src/components/DrawerContent/DrawerContent.js +++ /dev/null @@ -1,104 +0,0 @@ -import { Ionicons } from '@expo/vector-icons'; -import Constants from 'expo-constants'; -import i18n from 'i18n-js'; -import { List, Text, View } from 'native-base'; -import PropTypes from 'prop-types'; -import React from 'react'; -import { Image, StyleSheet } from 'react-native'; -import { SafeAreaView } from 'react-native-safe-area-context'; -import { withPermission } from '../../hocs/PermissionHOC'; - -const screens = { - HomeStack: { label: '::Menu:Home', iconName: 'home' }, - UsersStack: { - label: 'AbpIdentity::Users', - iconName: 'people', - requiredPolicy: 'AbpIdentity.Users', - }, - TenantsStack: { - label: 'AbpTenantManagement::Tenants', - iconName: 'book-outline', - requiredPolicy: 'AbpTenantManagement.Tenants', - }, - SettingsStack: { label: 'AbpSettingManagement::Settings', iconName: 'cog' }, -}; - -const ListItemWithPermission = withPermission(List.Item); - -function DrawerContent({ - navigation, - state: { routeNames, index: currentScreenIndex }, -}) { - const navigate = (screen) => { - navigation.navigate(screen); - navigation.closeDrawer(); - }; - - return ( - - - - - - - {routeNames.map((name) => ( - navigate(name)} - my="0" - > - - {i18n.t(screens[name].label)} - - ))} - - - - - © MyProjectName - - - v{Constants.expoConfig.version} - - - - ); -} - -const styles = StyleSheet.create({ - container: { - flexGrow: 1, - }, - logo: { - marginTop: 20, - marginBottom: 15, - }, - headerView: { - alignItems: 'center', - }, - footer: { - backgroundColor: '#eee', - flexDirection: 'row', - justifyContent: 'space-between', - }, - copyRight: { - margin: 15, - }, - version: { - margin: 15, - }, -}); - -DrawerContent.propTypes = { - state: PropTypes.object.isRequired, -}; - -export default DrawerContent; diff --git a/templates/app/react-native/src/components/FormButtons/FormButtons.js b/templates/app/react-native/src/components/FormButtons/FormButtons.js deleted file mode 100644 index d844f7747a..0000000000 --- a/templates/app/react-native/src/components/FormButtons/FormButtons.js +++ /dev/null @@ -1,78 +0,0 @@ -import i18n from 'i18n-js'; -import { Button, Text } from 'native-base'; -import PropTypes from 'prop-types'; -import React, { forwardRef } from 'react'; -import { Alert, StyleSheet, View } from 'react-native'; - -function FormButtons({ - submit, - remove, - removeMessage, - isRemoveDisabled, - isSubmitDisabled, - isShowRemove = false, - isShowSubmit = true, -}) { - const confirmation = () => { - Alert.alert( - i18n.t('AbpUi::AreYouSure'), - removeMessage, - [ - { - text: i18n.t('AbpUi::Cancel'), - style: 'cancel', - }, - { text: i18n.t('AbpUi::Yes'), onPress: () => remove() }, - ], - { cancelable: true }, - ); - }; - - return ( - - {isShowRemove ? ( - - ) : null} - {isShowSubmit ? ( - - ) : null} - - ); -} - -FormButtons.propTypes = { - submit: PropTypes.func.isRequired, - remove: PropTypes.func, - removeMessage: PropTypes.string, - style: PropTypes.any, - isRemoveDisabled: PropTypes.bool, - isSubmitDisabled: PropTypes.bool, - isShowRemove: PropTypes.bool, - isShowSubmit: PropTypes.bool, -}; - -const styles = StyleSheet.create({ - container: { - width: '100%', - justifyContent: 'center', - alignItems: 'center', - position: 'absolute', - bottom: 0, - flexDirection: 'row', - }, -}); - -const Forwarded = forwardRef((props, ref) => ); - -export default Forwarded; diff --git a/templates/app/react-native/src/components/FormButtons/index.js b/templates/app/react-native/src/components/FormButtons/index.js deleted file mode 100644 index bf8864e7e0..0000000000 --- a/templates/app/react-native/src/components/FormButtons/index.js +++ /dev/null @@ -1 +0,0 @@ -export { default as FormButtons } from './FormButtons'; diff --git a/templates/app/react-native/src/components/HamburgerIcon/HamburgerIcon.js b/templates/app/react-native/src/components/HamburgerIcon/HamburgerIcon.js deleted file mode 100644 index 2d165f8249..0000000000 --- a/templates/app/react-native/src/components/HamburgerIcon/HamburgerIcon.js +++ /dev/null @@ -1,17 +0,0 @@ -import { Ionicons } from '@expo/vector-icons'; -import { Icon } from 'native-base'; -import React from 'react'; -import { Platform } from 'react-native'; - -export default function HamburgerIcon({ navigation, ...iconProps }) { - return ( - navigation.openDrawer()} - as={Ionicons} - name={Platform.OS ? 'ios-menu' : 'md-menu'} - size="8" - marginLeft={2} - {...iconProps} - /> - ); -} diff --git a/templates/app/react-native/src/components/Loading/Loading.js b/templates/app/react-native/src/components/Loading/Loading.js deleted file mode 100644 index bd8f5ff180..0000000000 --- a/templates/app/react-native/src/components/Loading/Loading.js +++ /dev/null @@ -1,62 +0,0 @@ -import { Spinner, View } from 'native-base'; -import PropTypes from 'prop-types'; -import React, { forwardRef } from 'react'; -import { StyleSheet } from 'react-native'; -import { - createLoadingSelector, - createOpacitySelector -} from '../../store/selectors/LoadingSelectors'; -import { connectToRedux } from '../../utils/ReduxConnect'; - -function Loading({ loading, opacity }) { - return loading ? ( - - - - - ) : null; -} -const Forwarded = forwardRef((props, ref) => ); - -const backdropStyle = { - position: 'absolute', - top: 0, - left: 0, - width: '100%', - height: '100%', - backgroundColor: '#fff', -}; - -export const styles = StyleSheet.create({ - container: { - ...backdropStyle, - backgroundColor: 'transparent', - // zIndex: activeTheme.zIndex.indicator, // TODO - alignItems: 'center', - justifyContent: 'center', - }, - backdrop: backdropStyle, - spinner: { - // color: activeTheme.brandPrimary, // TODO - fontSize: 100, - }, -}); - -Loading.propTypes = { - style: PropTypes.objectOf(PropTypes.any), - loading: PropTypes.bool, - opacity: PropTypes.number, -}; - -export default connectToRedux({ - component: Forwarded, - stateProps: state => ({ - loading: createLoadingSelector()(state), - opacity: createOpacitySelector()(state), - }), -}); diff --git a/templates/app/react-native/src/components/LoadingButton/LoadingButton.js b/templates/app/react-native/src/components/LoadingButton/LoadingButton.js deleted file mode 100644 index d36c7fc68c..0000000000 --- a/templates/app/react-native/src/components/LoadingButton/LoadingButton.js +++ /dev/null @@ -1,22 +0,0 @@ -import { Button, Spinner } from 'native-base'; -import PropTypes from 'prop-types'; -import React from 'react'; -import { StyleSheet } from 'react-native'; - -export default function LoadingButton({ loading = false, style, children, ...props }) { - return ( - - ); -} - -LoadingButton.propTypes = { - ...Button.propTypes, - loading: PropTypes.bool.isRequired, -}; - -const styles = StyleSheet.create({ - button: { marginTop: 20, marginBottom: 30, height: 30 }, -}); \ No newline at end of file diff --git a/templates/app/react-native/src/components/TenantBox/TenantBox.js b/templates/app/react-native/src/components/TenantBox/TenantBox.js deleted file mode 100644 index 939efb3c88..0000000000 --- a/templates/app/react-native/src/components/TenantBox/TenantBox.js +++ /dev/null @@ -1,143 +0,0 @@ -import i18n from 'i18n-js'; -import { Box, Button, FormControl, Input, Text } from 'native-base'; -import PropTypes from 'prop-types'; -import React, { forwardRef, useState } from 'react'; -import { Alert, StyleSheet, View } from 'react-native'; -import { getTenant } from '../../api/AccountAPI'; -import PersistentStorageActions from '../../store/actions/PersistentStorageActions'; -import { createTenantSelector } from '../../store/selectors/PersistentStorageSelectors'; -import { connectToRedux } from '../../utils/ReduxConnect'; - -function TenantBox({ - tenant = {}, - setTenant, - showTenantSelection, - toggleTenantSelection, -}) { - const [tenantName, setTenantName] = useState(tenant.name); - - const findTenant = () => { - if (!tenantName) { - setTenant({}); - toggleTenantSelection(); - return; - } - - getTenant(tenantName).then(({ success, ...data }) => { - if (!success) { - Alert.alert( - i18n.t('AbpUi::Error'), - i18n.t('AbpUiMultiTenancy::GivenTenantIsNotAvailable', { - 0: tenantName, - }), - [{ text: i18n.t('AbpUi::Ok') }] - ); - return; - } - setTenant(data); - toggleTenantSelection(); - }); - }; - - return ( - <> - - - - {i18n.t('AbpUiMultiTenancy::Tenant')} - - - {tenant.name - ? tenant.name - : i18n.t('AbpUiMultiTenancy::NotSelected')} - - - - - {showTenantSelection ? ( - - - - {i18n.t('AbpUiMultiTenancy::Name')} - - - - - {i18n.t('AbpUiMultiTenancy::SwitchTenantHint')} - - - - - - - ) : null} - - ); -} - -TenantBox.propTypes = { - setTenant: PropTypes.func.isRequired, - showTenantSelection: PropTypes.bool.isRequired, - toggleTenantSelection: PropTypes.func.isRequired, - tenant: PropTypes.object.isRequired, -}; - -const styles = StyleSheet.create({ - button: { marginTop: 20, width: '49%' }, - - tenant: { color: '#777' }, - title: { - marginRight: 10, - fontSize: 13, - fontWeight: '600', - textTransform: 'uppercase', - }, - hint: { color: '#bbb', textAlign: 'left' }, -}); - -const Forwarded = forwardRef((props, ref) => ( - -)); - -export default connectToRedux({ - component: Forwarded, - dispatchProps: { - setTenant: PersistentStorageActions.setTenant, - }, - stateProps: (state) => ({ - tenant: createTenantSelector()(state), - }), -}); \ No newline at end of file diff --git a/templates/app/react-native/src/components/ValidationMessage/ValidationMessage.js b/templates/app/react-native/src/components/ValidationMessage/ValidationMessage.js deleted file mode 100644 index c2a398f379..0000000000 --- a/templates/app/react-native/src/components/ValidationMessage/ValidationMessage.js +++ /dev/null @@ -1,16 +0,0 @@ -import i18n from 'i18n-js'; -import React, { forwardRef } from 'react'; -import { Text } from 'react-native'; - -const ValidationMessage = ({ children, ...props }) => - children ? {i18n.t(children)} : null; - -const styles = { - fontSize: 12, - marginTop: 3, - color: '#ed2f2f', -}; - -const Forwarded = forwardRef((props, ref) => ); - -export default Forwarded diff --git a/templates/app/react-native/src/contexts/LocalizationContext.js b/templates/app/react-native/src/contexts/LocalizationContext.js deleted file mode 100644 index 83c68ba2bc..0000000000 --- a/templates/app/react-native/src/contexts/LocalizationContext.js +++ /dev/null @@ -1,3 +0,0 @@ -import React from 'react'; - -export const LocalizationContext = React.createContext(); diff --git a/templates/app/react-native/src/hocs/PermissionHOC.js b/templates/app/react-native/src/hocs/PermissionHOC.js deleted file mode 100644 index 6cf8025428..0000000000 --- a/templates/app/react-native/src/hocs/PermissionHOC.js +++ /dev/null @@ -1,17 +0,0 @@ -import React, { forwardRef } from 'react'; -import PropTypes from 'prop-types'; -import { usePermission } from '../hooks/UsePermission'; - -export function withPermission(Component, policyKey) { - const Forwarded = forwardRef((props, ref) => { - const isGranted = - policyKey || props.policyKey ? usePermission(policyKey || props.policyKey) : true; - return isGranted ? : null; - }); - - Forwarded.propTypes = { - policyKey: PropTypes.string, - }; - - return Forwarded; -} diff --git a/templates/app/react-native/src/hooks/UsePermission.js b/templates/app/react-native/src/hooks/UsePermission.js deleted file mode 100644 index a50d8f7fa1..0000000000 --- a/templates/app/react-native/src/hooks/UsePermission.js +++ /dev/null @@ -1,16 +0,0 @@ -import { useEffect, useState } from 'react'; -import { store } from '../store'; -import { createGrantedPolicySelector } from '../store/selectors/AppSelectors'; - -export function usePermission(key) { - const [permission, setPermission] = useState(false); - - const state = store.getState(); - const policy = createGrantedPolicySelector(key)(state); - - useEffect(() => { - setPermission(policy); - }, [policy]); - - return permission; -} diff --git a/templates/app/react-native/src/interceptors/APIInterceptor.js b/templates/app/react-native/src/interceptors/APIInterceptor.js deleted file mode 100644 index b5ffc56a3c..0000000000 --- a/templates/app/react-native/src/interceptors/APIInterceptor.js +++ /dev/null @@ -1,100 +0,0 @@ -import i18n from 'i18n-js'; -import { Toast } from 'native-base'; -import api from '../api/API'; -import LoadingActions from '../store/actions/LoadingActions'; -import PersistentStorageActions from '../store/actions/PersistentStorageActions'; - -export function initAPIInterceptor(store) { - api.interceptors.request.use( - async request => { - const { - persistentStorage: { token, language, tenant }, - } = store.getState(); - - if (!request.headers.Authorization && token && token.access_token) { - request.headers.Authorization = `${token.token_type} ${token.access_token}`; - } - - if (!request.headers['Content-Type']) { - request.headers['Content-Type'] = 'application/json'; - } - - if (!request.headers['Accept-Language'] && language) { - request.headers['Accept-Language'] = language; - } - - if (!request.headers.__tenant && tenant && tenant.tenantId) { - request.headers.__tenant = tenant.tenantId; - } - - return request; - }, - error => console.error(error), - ); - - api.interceptors.response.use( - response => response, - error => { - store.dispatch(LoadingActions.clear()); - const errorRes = error.response; - if (errorRes) { - if (errorRes.headers._abperrorformat && errorRes.status === 401) { - store.dispatch(PersistentStorageActions.setToken({})); - } - - showError({ error: errorRes.data.error || {}, status: errorRes.status }); - } else { - Toast.show({ - title: 'An unexpected error has occurred', - isClosable: true, - duration: 10000, - backgroundColor: 'danger.500', - }); - } - - return Promise.reject(error); - }, - ); -} - -function showError({ error = {}, status }) { - let message = ''; - let title = i18n.t('AbpAccount::DefaultErrorMessage'); - - if (typeof error === 'string') { - message = error; - } else if (error.details) { - message = error.details; - title = error.message; - } else if (error.message) { - message = error.message; - } else { - switch (status) { - case 401: - title = i18n.t('AbpAccount::DefaultErrorMessage401'); - message = i18n.t('AbpAccount::DefaultErrorMessage401Detail'); - break; - case 403: - title = i18n.t('AbpAccount::DefaultErrorMessage403'); - message = i18n.t('AbpAccount::DefaultErrorMessage403Detail'); - break; - case 404: - title = i18n.t('AbpAccount::DefaultErrorMessage404'); - message = i18n.t('AbpAccount::DefaultErrorMessage404Detail'); - break; - case 500: - title = i18n.t('AbpAccount::500Message'); - message = i18n.t('AbpAccount::InternalServerErrorMessage'); - break; - default: - break; - } - } - - Toast.show({ - title: `${title}\n${message}`, - isClosable: true, - duration: 10000, - backgroundColor: 'danger.500', - }); -} diff --git a/templates/app/react-native/src/navigators/AuthNavigator.js b/templates/app/react-native/src/navigators/AuthNavigator.js deleted file mode 100644 index 0311556deb..0000000000 --- a/templates/app/react-native/src/navigators/AuthNavigator.js +++ /dev/null @@ -1,22 +0,0 @@ -import { createNativeStackNavigator } from '@react-navigation/native-stack'; -import React, { useContext } from 'react'; -import { LocalizationContext } from '../contexts/LocalizationContext'; -import LoginScreen from '../screens/Login/LoginScreen'; - -const Stack = createNativeStackNavigator(); - -export default function AuthNavigator() { - const {t} = useContext(LocalizationContext); - - return ( - - ({ - title: t('AbpAccount::Login'), - })} - /> - - ); -} diff --git a/templates/app/react-native/src/navigators/DrawerNavigator.js b/templates/app/react-native/src/navigators/DrawerNavigator.js deleted file mode 100644 index 3cd83c8a13..0000000000 --- a/templates/app/react-native/src/navigators/DrawerNavigator.js +++ /dev/null @@ -1,43 +0,0 @@ -import { createDrawerNavigator } from '@react-navigation/drawer'; -import React from 'react'; -import DrawerContent from '../components/DrawerContent/DrawerContent'; -import HamburgerIcon from '../components/HamburgerIcon/HamburgerIcon'; -import { LocalizationContext } from '../contexts/LocalizationContext'; -import HomeStackNavigator from './HomeNavigator'; -import SettingsStackNavigator from './SettingsNavigator'; -import TenantsStackNavigator from './TenantsNavigator'; -import UsersStackNavigator from './UsersNavigator'; - -const Drawer = createDrawerNavigator(); - -export default function DrawerNavigator() { - const { t } = React.useContext(LocalizationContext); - - return ( - - ({ - title: t('::Menu:Home'), - headerLeft: () => , - })} - /> - null }} - /> - null }} - /> - null }} - /> - - ); -} diff --git a/templates/app/react-native/src/navigators/HomeNavigator.js b/templates/app/react-native/src/navigators/HomeNavigator.js deleted file mode 100644 index 8f9e588edd..0000000000 --- a/templates/app/react-native/src/navigators/HomeNavigator.js +++ /dev/null @@ -1,17 +0,0 @@ -import { createNativeStackNavigator } from '@react-navigation/native-stack'; -import React from 'react'; -import HomeScreen from '../screens/Home/HomeScreen'; - -const Stack = createNativeStackNavigator(); - -export default function HomeStackNavigator() { - return ( - - null}} - /> - - ); -} diff --git a/templates/app/react-native/src/navigators/SettingsNavigator.js b/templates/app/react-native/src/navigators/SettingsNavigator.js deleted file mode 100644 index 370da97b93..0000000000 --- a/templates/app/react-native/src/navigators/SettingsNavigator.js +++ /dev/null @@ -1,41 +0,0 @@ -import { createNativeStackNavigator } from '@react-navigation/native-stack'; -import i18n from 'i18n-js'; -import React from 'react'; -import HamburgerIcon from '../components/HamburgerIcon/HamburgerIcon'; -import { LocalizationContext } from '../contexts/LocalizationContext'; -import ChangePasswordScreen from '../screens/ChangePassword/ChangePasswordScreen'; -import ManageProfileScreen from '../screens/ManageProfile/ManageProfileScreen'; -import SettingsScreen from '../screens/Settings/SettingsScreen'; - -const Stack = createNativeStackNavigator(); - -export default function SettingsStackNavigator() { - const { t } = React.useContext(LocalizationContext); - - return ( - - ({ - headerLeft: () => , - title: t('AbpSettingManagement::Settings'), - })} - /> - - - - ); -} diff --git a/templates/app/react-native/src/navigators/TenantsNavigator.js b/templates/app/react-native/src/navigators/TenantsNavigator.js deleted file mode 100644 index 94ae711d42..0000000000 --- a/templates/app/react-native/src/navigators/TenantsNavigator.js +++ /dev/null @@ -1,35 +0,0 @@ - -import { createNativeStackNavigator } from '@react-navigation/native-stack'; -import React from 'react'; -import AddIcon from '../components/AddIcon/AddIcon'; -import HamburgerIcon from '../components/HamburgerIcon/HamburgerIcon'; -import { LocalizationContext } from '../contexts/LocalizationContext'; -import CreateUpdateTenantScreen from '../screens/CreateUpdateTenant/CreateUpdateTenantScreen'; -import TenantsScreen from '../screens/Tenants/TenantsScreen'; - -const Stack = createNativeStackNavigator(); - -export default function TenantsStackNavigator() { - const { t } = React.useContext(LocalizationContext); - - return ( - - ({ - title: t('AbpTenantManagement::Tenants'), - headerLeft: () => , - headerRight: () => navigation.navigate('CreateUpdateTenant')}/>, - })} - /> - ({ - title: t(route.params?.tenantId ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant'), - })} - /> - - ); -} diff --git a/templates/app/react-native/src/navigators/UsersNavigator.js b/templates/app/react-native/src/navigators/UsersNavigator.js deleted file mode 100644 index 537129be14..0000000000 --- a/templates/app/react-native/src/navigators/UsersNavigator.js +++ /dev/null @@ -1,34 +0,0 @@ -import { createNativeStackNavigator } from '@react-navigation/native-stack'; -import React from 'react'; -import AddIcon from '../components/AddIcon/AddIcon'; -import HamburgerIcon from '../components/HamburgerIcon/HamburgerIcon'; -import { LocalizationContext } from '../contexts/LocalizationContext'; -import CreateUpdateUserScreen from '../screens/CreateUpdateUser/CreateUpdateUserScreen'; -import UsersScreen from '../screens/Users/UsersScreen'; - -const Stack = createNativeStackNavigator(); - -export default function UsersStackNavigator() { - const { t } = React.useContext(LocalizationContext); - - return ( - - ({ - title: t('AbpIdentity::Users'), - headerLeft: () => , - headerRight: () => navigation.navigate('CreateUpdateUser')}/>, - })} - /> - ({ - title: t(route.params?.userId ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser'), - })} - /> - - ); -} diff --git a/templates/app/react-native/src/screens/ChangePassword/ChangePasswordForm.js b/templates/app/react-native/src/screens/ChangePassword/ChangePasswordForm.js deleted file mode 100644 index 8621d00a99..0000000000 --- a/templates/app/react-native/src/screens/ChangePassword/ChangePasswordForm.js +++ /dev/null @@ -1,121 +0,0 @@ -import { useFormik } from 'formik'; -import i18n from 'i18n-js'; -import { - Box, - FormControl, - Input, - KeyboardAvoidingView, - Stack, - Icon -} from 'native-base'; -import PropTypes from 'prop-types'; -import React, { useRef, useState } from 'react'; -import * as Yup from 'yup'; -import { FormButtons } from '../../components/FormButtons'; -import ValidationMessage from '../../components/ValidationMessage/ValidationMessage'; -import { Ionicons } from '@expo/vector-icons'; - -const ValidationSchema = Yup.object().shape({ - currentPassword: Yup.string().required('AbpAccount::ThisFieldIsRequired.'), - newPassword: Yup.string().required('AbpAccount::ThisFieldIsRequired.'), -}); - -function ChangePasswordForm({ submit, cancel }) { - const [showCurrentPassword, setShowCurrentPassword] = useState(false); - const [showNewPassword, setShowNewPassword] = useState(false); - - const currentPasswordRef = useRef(); - const newPasswordRef = useRef(); - - const onSubmit = (values) => { - submit({ - ...values, - newPasswordConfirm: values.newPassword, - }); - }; - - const formik = useFormik({ - enableReinitialize: true, - validationSchema: ValidationSchema, - initialValues: { - currentPassword: '', - newPassword: '', - }, - onSubmit, - }); - - return ( - <> - - - - - {i18n.t('AbpIdentity::DisplayName:CurrentPassword')} - - newPasswordRef?.current?.focus()} - returnKeyType="next" - onChangeText={formik.handleChange('currentPassword')} - onBlur={formik.handleBlur('currentPassword')} - value={formik.values.currentPassword} - textContentType="password" - secureTextEntry={!showCurrentPassword} - InputRightElement={ - setShowCurrentPassword(!showCurrentPassword)} - /> - } - /> - - {formik.errors.currentPassword} - - - - - - - - {i18n.t('AbpIdentity::DisplayName:NewPassword')} - - setShowNewPassword(!showNewPassword)} - /> - } - /> - {formik.errors.newPassword} - - - - - - ); -} - -ChangePasswordForm.propTypes = { - submit: PropTypes.func.isRequired, - cancel: PropTypes.func.isRequired, -}; - -export default ChangePasswordForm; diff --git a/templates/app/react-native/src/screens/ChangePassword/ChangePasswordScreen.js b/templates/app/react-native/src/screens/ChangePassword/ChangePasswordScreen.js deleted file mode 100644 index 196c762a38..0000000000 --- a/templates/app/react-native/src/screens/ChangePassword/ChangePasswordScreen.js +++ /dev/null @@ -1,33 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import { changePassword } from '../../api/IdentityAPI'; -import LoadingActions from '../../store/actions/LoadingActions'; -import { connectToRedux } from '../../utils/ReduxConnect'; -import ChangePasswordForm from './ChangePasswordForm'; - -function ChangePasswordScreen({ navigation, startLoading, stopLoading }) { - const submit = data => { - startLoading({ key: 'changePassword' }); - - changePassword(data) - .then(() => { - navigation.goBack(); - }) - .finally(() => stopLoading({ key: 'changePassword' })); - }; - - return navigation.goBack()} />; -} - -ChangePasswordScreen.propTypes = { - startLoading: PropTypes.func.isRequired, - stopLoading: PropTypes.func.isRequired, -}; - -export default connectToRedux({ - component: ChangePasswordScreen, - dispatchProps: { - startLoading: LoadingActions.start, - stopLoading: LoadingActions.stop, - }, -}); diff --git a/templates/app/react-native/src/screens/CreateUpdateTenant/CreateUpdateTenantForm.js b/templates/app/react-native/src/screens/CreateUpdateTenant/CreateUpdateTenantForm.js deleted file mode 100644 index b76f356062..0000000000 --- a/templates/app/react-native/src/screens/CreateUpdateTenant/CreateUpdateTenantForm.js +++ /dev/null @@ -1,144 +0,0 @@ -import { Ionicons } from '@expo/vector-icons'; -import { useFormik } from 'formik'; -import i18n from 'i18n-js'; -import { Box, FormControl, Icon, Input, Stack } from 'native-base'; -import PropTypes from 'prop-types'; -import React, { useRef, useState } from 'react'; -import * as Yup from 'yup'; -import { FormButtons } from '../../components/FormButtons'; -import ValidationMessage from '../../components/ValidationMessage/ValidationMessage'; -import { usePermission } from '../../hooks/UsePermission'; - -const validations = { - name: Yup.string().required('AbpAccount::ThisFieldIsRequired.'), -}; - -function CreateUpdateTenantForm({ editingTenant = {}, submit, remove }) { - const tenantNameRef = useRef(); - const adminEmailRef = useRef(); - const adminPasswordRef = useRef(); - - const [showAdminPassword, setShowAdminPassword] = useState(false); - const hasRemovePermission = usePermission('AbpTenantManagement.Tenants.Delete'); - - const adminEmailAddressValidation = Yup.lazy(() => - Yup.string() - .required('AbpAccount::ThisFieldIsRequired.') - .email('AbpAccount::ThisFieldIsNotAValidEmailAddress.'), - ); - - const adminPasswordValidation = Yup.lazy(() => - Yup.string().required('AbpAccount::ThisFieldIsRequired.'), - ); - - const onSubmit = values => { - submit({ - ...editingTenant, - ...values, - }); - }; - - const formik = useFormik({ - enableReinitialize: true, - validationSchema: Yup.object().shape({ - ...validations, - ...(!editingTenant.id && { - adminEmailAddress: adminEmailAddressValidation, - adminPassword: adminPasswordValidation, - }), - }), - initialValues: { - lockoutEnabled: false, - twoFactorEnabled: false, - ...editingTenant, - }, - onSubmit, - }); - - return ( - <> - - - - {i18n.t('AbpTenantManagement::TenantName')} - - {formik.errors.name} - - - - {!editingTenant.id ? ( - <> - - - - {i18n.t('AbpTenantManagement::DisplayName:AdminEmailAddress')} - - adminPasswordRef?.current?.focus()} - returnKeyType="next" - /> - {formik.errors.adminEmailAddress} - - - - - - - {i18n.t('AbpTenantManagement::DisplayName:AdminPassword')} - - setShowAdminPassword(!showAdminPassword)} - /> - } - /> - {formik.errors.adminPassword} - - - - ) : null} - - - - ); -} - -CreateUpdateTenantForm.propTypes = { - editingTenant: PropTypes.object, - submit: PropTypes.func.isRequired, - remove: PropTypes.func.isRequired, -}; - -export default CreateUpdateTenantForm; diff --git a/templates/app/react-native/src/screens/CreateUpdateTenant/CreateUpdateTenantScreen.js b/templates/app/react-native/src/screens/CreateUpdateTenant/CreateUpdateTenantScreen.js deleted file mode 100644 index a3f59a8cf7..0000000000 --- a/templates/app/react-native/src/screens/CreateUpdateTenant/CreateUpdateTenantScreen.js +++ /dev/null @@ -1,81 +0,0 @@ -import { useFocusEffect } from '@react-navigation/native'; -import PropTypes from 'prop-types'; -import React, { useCallback, useState } from 'react'; -import { - createTenant, - getTenantById, - removeTenant, - updateTenant -} from '../../api/TenantManagementAPI'; -import LoadingActions from '../../store/actions/LoadingActions'; -import { createLoadingSelector } from '../../store/selectors/LoadingSelectors'; -import { connectToRedux } from '../../utils/ReduxConnect'; -import CreateUpdateTenantForm from './CreateUpdateTenantForm'; - -function CreateUpdateTenantScreen({ navigation, route, startLoading, stopLoading }) { - const [tenant, setTenant] = useState(); - const tenantId = route.params?.tenantId; - - const remove = () => { - startLoading({ key: 'removeTenant' }); - removeTenant(tenantId) - .then(() => navigation.goBack()) - .finally(() => stopLoading({ key: 'removeTenant' })); - }; - - useFocusEffect( - useCallback(() => { - if (tenantId) { - getTenantById(tenantId).then((data = {}) => setTenant(data)); - } - }, []), - ); - - const submit = data => { - startLoading({ key: 'saveTenant' }); - let request; - if (data.id) { - request = updateTenant(data, tenantId); - } else { - request = createTenant(data); - } - - request - .then(() => { - navigation.goBack(); - }) - .finally(() => stopLoading({ key: 'saveTenant' })); - }; - - const renderForm = () => ( - - ); - - if (tenantId && tenant) { - return renderForm(); - } - - if (!tenantId) { - return renderForm(); - } - - return null; -} - -CreateUpdateTenantScreen.propTypes = { - startLoading: PropTypes.func.isRequired, - stopLoading: PropTypes.func.isRequired, -}; - -export default connectToRedux({ - component: CreateUpdateTenantScreen, - stateProps: state => ({ loading: createLoadingSelector()(state) }), - dispatchProps: { - startLoading: LoadingActions.start, - stopLoading: LoadingActions.stop, - }, -}); diff --git a/templates/app/react-native/src/screens/CreateUpdateUser/CreateUpdateUserForm.js b/templates/app/react-native/src/screens/CreateUpdateUser/CreateUpdateUserForm.js deleted file mode 100644 index bb394232ba..0000000000 --- a/templates/app/react-native/src/screens/CreateUpdateUser/CreateUpdateUserForm.js +++ /dev/null @@ -1,272 +0,0 @@ -import { Ionicons } from '@expo/vector-icons'; -import { useFormik } from 'formik'; -import i18n from 'i18n-js'; -import { - Box, - Button, - Checkbox, - FormControl, - Icon, - Input, - KeyboardAvoidingView, - Stack -} from 'native-base'; -import PropTypes from 'prop-types'; -import React, { useRef, useState } from 'react'; -import { Platform } from 'react-native'; -import * as Yup from 'yup'; -import { FormButtons } from '../../components/FormButtons'; -import ValidationMessage from '../../components/ValidationMessage/ValidationMessage'; -import { usePermission } from '../../hooks/UsePermission'; -import UserRoles from './UserRoles'; - -const validations = { - userName: Yup.string().required('AbpAccount::ThisFieldIsRequired.'), - email: Yup.string() - .email('AbpAccount::ThisFieldIsNotAValidEmailAddress.') - .required('AbpAccount::ThisFieldIsRequired.'), -}; - -let roleNames = []; - -function onChangeRoles(roles) { - roleNames = roles; -} - -function CreateUpdateUserForm({ editingUser = {}, submit, remove }) { - const [selectedTab, setSelectedTab] = useState(0); - const [showPassword, setShowPassword] = useState(false); - - const usernameRef = useRef(); - const nameRef = useRef(); - const surnameRef = useRef(); - const emailRef = useRef(); - const phoneNumberRef = useRef(); - const passwordRef = useRef(); - - const hasRemovePermission = usePermission('AbpIdentity.Users.Delete'); - - const onSubmit = (values) => { - submit({ - ...editingUser, - ...values, - roleNames, - }); - }; - - const passwordValidation = Yup.lazy(() => { - if (editingUser.id) { - return Yup.string(); - } - return Yup.string().required('AbpAccount::ThisFieldIsRequired.'); - }); - - const formik = useFormik({ - enableReinitialize: true, - validationSchema: Yup.object().shape({ - ...validations, - password: passwordValidation, - }), - initialValues: { - lockoutEnabled: false, - ...editingUser, - }, - onSubmit, - }); - - return ( - <> - - - - - - - - {selectedTab === 0 ? ( - <> - - - - {i18n.t('AbpIdentity::UserName')} - - nameRef.current.focus()} - returnKeyType="next" - onChangeText={formik.handleChange('userName')} - onBlur={formik.handleBlur('userName')} - value={formik.values.userName} - autoCapitalize="none" - /> - - {formik.errors.userName} - - - - - - - - {i18n.t('AbpIdentity::DisplayName:Name')} - - surnameRef.current.focus()} - returnKeyType="next" - onChangeText={formik.handleChange('name')} - onBlur={formik.handleBlur('name')} - value={formik.values.name} - /> - - - - - - - {i18n.t('AbpIdentity::DisplayName:Surname')} - - emailRef.current.focus()} - returnKeyType="next" - onChangeText={formik.handleChange('surname')} - onBlur={formik.handleBlur('surname')} - value={formik.values.surname} - /> - - - - - - - {i18n.t('AbpIdentity::EmailAddress')} - - phoneNumberRef.current.focus()} - returnKeyType="next" - onChangeText={formik.handleChange('email')} - onBlur={formik.handleBlur('email')} - value={formik.values.email} - autoCapitalize="none" - /> - {formik.errors.email} - - - - - - - {i18n.t('AbpIdentity::PhoneNumber')} - - passwordRef?.current?.focus()} - returnKeyType={!editingUser.id ? 'next' : 'default'} - onChangeText={formik.handleChange('phoneNumber')} - onBlur={formik.handleBlur('phoneNumber')} - value={formik.values.phoneNumber} - /> - - - - {!editingUser.id ? ( - - - - {i18n.t('AbpIdentity::Password')} - - setShowPassword(!showPassword)} - /> - } - /> - - {formik.errors.password} - - - - ) : null} - - - - - formik.setFieldValue( - 'lockoutEnabled', - !formik.values.lockoutEnabled - ) - } - > - {i18n.t('AbpIdentity::DisplayName:LockoutEnabled')} - - - - - ) : ( - - )} - - - - - ); -} - -CreateUpdateUserForm.propTypes = { - editingUser: PropTypes.object, - submit: PropTypes.func.isRequired, - remove: PropTypes.func.isRequired, -}; - -export default CreateUpdateUserForm; diff --git a/templates/app/react-native/src/screens/CreateUpdateUser/CreateUpdateUserScreen.js b/templates/app/react-native/src/screens/CreateUpdateUser/CreateUpdateUserScreen.js deleted file mode 100644 index e900fde8fc..0000000000 --- a/templates/app/react-native/src/screens/CreateUpdateUser/CreateUpdateUserScreen.js +++ /dev/null @@ -1,69 +0,0 @@ -import PropTypes from 'prop-types'; -import React, { useEffect, useState } from 'react'; -import { createUser, getUserById, removeUser, updateUser } from '../../api/IdentityAPI'; -import LoadingActions from '../../store/actions/LoadingActions'; -import { createLoadingSelector } from '../../store/selectors/LoadingSelectors'; -import { connectToRedux } from '../../utils/ReduxConnect'; -import CreateUpdateUserForm from './CreateUpdateUserForm'; - -function CreateUpdateUserScreen({ navigation, route, startLoading, stopLoading }) { - const [user, setUser] = useState(); - const userId = route.params?.userId; - - const remove = () => { - startLoading({ key: 'remove user' }); - removeUser(userId) - .then(() => navigation.goBack()) - .finally(() => stopLoading({ key: 'remove user' })); - }; - - useEffect(() => { - if (userId) { - getUserById(userId).then((data = {}) => setUser(data)); - } - }, []); - - const submit = data => { - startLoading({ key: 'saveUser' }); - let request; - if (data.id) { - request = updateUser(data, userId); - } else { - request = createUser(data); - } - - request - .then(() => { - navigation.goBack(); - }) - .finally(() => stopLoading({ key: 'saveUser' })); - }; - - const renderForm = () => ( - - ); - - if (userId && user) { - return renderForm(); - } - - if (!userId) { - return renderForm(); - } - - return null; -} - -CreateUpdateUserScreen.propTypes = { - startLoading: PropTypes.func.isRequired, - stopLoading: PropTypes.func.isRequired, -}; - -export default connectToRedux({ - component: CreateUpdateUserScreen, - stateProps: state => ({ loading: createLoadingSelector()(state) }), - dispatchProps: { - startLoading: LoadingActions.start, - stopLoading: LoadingActions.stop, - }, -}); diff --git a/templates/app/react-native/src/screens/CreateUpdateUser/UserRoles.js b/templates/app/react-native/src/screens/CreateUpdateUser/UserRoles.js deleted file mode 100644 index 25db76afee..0000000000 --- a/templates/app/react-native/src/screens/CreateUpdateUser/UserRoles.js +++ /dev/null @@ -1,58 +0,0 @@ -import { Box, Checkbox, List } from 'native-base'; -import PropTypes from 'prop-types'; -import React, { useEffect, useState } from 'react'; -import { getAllRoles, getUserRoles } from '../../api/IdentityAPI'; - -function UserRoles({ editingUser = {}, onChangeRoles }) { - const [roles, setRoles] = useState([]); - - const onPress = index => { - setRoles( - roles.map((role, i) => ({ - ...role, - isSelected: index === i ? !role.isSelected : role.isSelected, - })), - ); - }; - - useEffect(() => { - const requests = [getAllRoles()]; - if (editingUser.id) requests.push(getUserRoles(editingUser.id)); - - Promise.all(requests).then(([allRoles = [], userRoles = []]) => { - setRoles( - allRoles.map(role => ({ - ...role, - isSelected: editingUser.id - ? !!userRoles?.find(userRole => userRole?.id === role?.id) - : role.isDefault, - })), - ); - }); - }, []); - - useEffect(() => { - onChangeRoles(roles.filter(role => role.isSelected).map(role => role.name)); - }, [roles]); - - return ( - - - {roles.map((role, index) => ( - - onPress(index)} > - {role.name} - - - ))} - - - ); -} - -UserRoles.propTypes = { - editingUser: PropTypes.objectOf(PropTypes.any).isRequired, - onChangeRoles: PropTypes.func.isRequired, -}; - -export default UserRoles; diff --git a/templates/app/react-native/src/screens/Home/HomeScreen.js b/templates/app/react-native/src/screens/Home/HomeScreen.js deleted file mode 100644 index 82ca221e2d..0000000000 --- a/templates/app/react-native/src/screens/Home/HomeScreen.js +++ /dev/null @@ -1,30 +0,0 @@ -import i18n from 'i18n-js'; -import { Box, Center, Heading, Text } from 'native-base'; -import React from 'react'; -import { StyleSheet } from 'react-native'; - -function HomeScreen() { - return ( -
- - {i18n.t('::Welcome')} - - {i18n.t('::LongWelcomeMessage')} - - -
- ); -} - -const styles = StyleSheet.create({ - centeredText: { - textAlign: 'center', - marginBottom: 5 - }, -}); - -export default HomeScreen; diff --git a/templates/app/react-native/src/screens/Login/LoginScreen.js b/templates/app/react-native/src/screens/Login/LoginScreen.js deleted file mode 100644 index acb72076fa..0000000000 --- a/templates/app/react-native/src/screens/Login/LoginScreen.js +++ /dev/null @@ -1,154 +0,0 @@ -import { useFormik } from 'formik'; -import i18n from 'i18n-js'; -import { - Box, - Button, - Center, - FormControl, Image, Input, - Stack, - WarningOutlineIcon -} from 'native-base'; -import PropTypes from 'prop-types'; -import React, { useRef, useState } from 'react'; -import { View } from 'react-native'; -import { object, string } from 'yup'; -import { login } from '../../api/AccountAPI'; -import TenantBox from '../../components/TenantBox/TenantBox'; -import ValidationMessage from '../../components/ValidationMessage/ValidationMessage'; -import AppActions from '../../store/actions/AppActions'; -import LoadingActions from '../../store/actions/LoadingActions'; -import PersistentStorageActions from '../../store/actions/PersistentStorageActions'; -import { connectToRedux } from '../../utils/ReduxConnect'; - -const ValidationSchema = object().shape({ - username: string().required('AbpAccount::ThisFieldIsRequired.'), - password: string().required('AbpAccount::ThisFieldIsRequired.'), -}); - -function LoginScreen({ startLoading, stopLoading, setToken, fetchAppConfig }) { - const [showTenantSelection, setShowTenantSelection] = useState(false); - const passwordRef = useRef(null); - - const toggleTenantSelection = () => { - setShowTenantSelection(!showTenantSelection); - }; - - const submit = ({ username, password }) => { - startLoading({ key: 'login' }); - login({ username, password }) - .then((data) => - setToken({ - ...data, - expire_time: new Date().valueOf() + data.expires_in, - scope: undefined, - }) - ) - .then( - () => - new Promise((resolve) => - fetchAppConfig({ - showLoading: false, - callback: () => resolve(true), - }) - ) - ) - .finally(() => stopLoading({ key: 'login' })); - }; - - const formik = useFormik({ - validationSchema: ValidationSchema, - initialValues: { username: '', password: '' }, - onSubmit: submit, - }); - - return ( -
- - Image - - - - - - - - {i18n.t('AbpAccount::UserNameOrEmailAddress')} - - passwordRef?.current?.focus()} - size="lg" - /> - {formik.errors.username} - - - - - - - {i18n.t('AbpAccount::Password')} - - - } - > - {formik.errors.password} - - - - - - - - -
- ); -} - -LoginScreen.propTypes = { - startLoading: PropTypes.func.isRequired, - stopLoading: PropTypes.func.isRequired, - setToken: PropTypes.func.isRequired, - fetchAppConfig: PropTypes.func.isRequired, -}; - -export default connectToRedux({ - component: LoginScreen, - dispatchProps: { - startLoading: LoadingActions.start, - stopLoading: LoadingActions.stop, - fetchAppConfig: AppActions.fetchAppConfigAsync, - setToken: PersistentStorageActions.setToken, - }, -}); diff --git a/templates/app/react-native/src/screens/ManageProfile/ManageProfileForm.js b/templates/app/react-native/src/screens/ManageProfile/ManageProfileForm.js deleted file mode 100644 index 2dffd3624b..0000000000 --- a/templates/app/react-native/src/screens/ManageProfile/ManageProfileForm.js +++ /dev/null @@ -1,153 +0,0 @@ -import { useFormik } from 'formik'; -import i18n from 'i18n-js'; -import { - Box, - FormControl, - Input, - KeyboardAvoidingView, - Stack, -} from 'native-base'; -import PropTypes from 'prop-types'; -import React, { useRef } from 'react'; -import * as Yup from 'yup'; -import FormButtons from '../../components/FormButtons/FormButtons'; -import ValidationMessage from '../../components/ValidationMessage/ValidationMessage'; - -const ValidationSchema = Yup.object().shape({ - userName: Yup.string().required('AbpAccount::ThisFieldIsRequired.'), - email: Yup.string() - .required('AbpAccount::ThisFieldIsRequired.') - .email('AbpAccount::ThisFieldIsNotAValidEmailAddress.'), -}); - -function ManageProfileForm({ editingUser = {}, submit, cancel }) { - const usernameRef = useRef(); - const nameRef = useRef(); - const surnameRef = useRef(); - const emailRef = useRef(); - const phoneNumberRef = useRef(); - - const onSubmit = (values) => { - submit({ - ...editingUser, - ...values, - }); - }; - - const formik = useFormik({ - enableReinitialize: true, - validationSchema: ValidationSchema, - initialValues: { - ...editingUser, - }, - onSubmit, - }); - - return ( - <> - - - - - - {i18n.t('AbpIdentity::UserName')} - - nameRef?.current?.focus()} - returnKeyType="next" - onChangeText={formik.handleChange('userName')} - onBlur={formik.handleBlur('userName')} - value={formik.values.userName} - /> - {formik.errors.userName} - - - - - - - {i18n.t('AbpIdentity::DisplayName:Name')} - - surnameRef?.current?.focus()} - returnKeyType="next" - onChangeText={formik.handleChange('name')} - onBlur={formik.handleBlur('name')} - value={formik.values.name} - /> - - - - - - - {i18n.t('AbpIdentity::DisplayName:Surname')} - - phoneNumberRef?.current?.focus()} - returnKeyType="next" - onChangeText={formik.handleChange('surname')} - onBlur={formik.handleBlur('surname')} - value={formik.values.surname} - /> - - - - - - - {i18n.t('AbpIdentity::PhoneNumber')} - - emailRef?.current?.focus()} - returnKeyType="next" - onChangeText={formik.handleChange('phoneNumber')} - onBlur={formik.handleBlur('phoneNumber')} - value={formik.values.phoneNumber} - /> - - - - - - - {i18n.t('AbpIdentity::EmailAddress')} - - - {formik.errors.email} - - - - - - - ); -} - -ManageProfileForm.propTypes = { - editingUser: PropTypes.object.isRequired, - submit: PropTypes.func.isRequired, - cancel: PropTypes.func.isRequired, -}; - -export default ManageProfileForm; diff --git a/templates/app/react-native/src/screens/ManageProfile/ManageProfileScreen.js b/templates/app/react-native/src/screens/ManageProfile/ManageProfileScreen.js deleted file mode 100644 index 1f2e577a37..0000000000 --- a/templates/app/react-native/src/screens/ManageProfile/ManageProfileScreen.js +++ /dev/null @@ -1,50 +0,0 @@ -import React, { useState, useEffect } from 'react'; -import PropTypes from 'prop-types'; -import { updateProfileDetail, getProfileDetail } from '../../api/IdentityAPI'; -import ManageProfileForm from './ManageProfileForm'; -import LoadingActions from '../../store/actions/LoadingActions'; -import { connectToRedux } from '../../utils/ReduxConnect'; - -function ManageProfileScreen({ navigation, startLoading, stopLoading }) { - const [user, setUser] = useState(); - - useEffect(() => { - if (!user) { - startLoading({ key: 'manageProfile' }); - getProfileDetail() - .then((data = {}) => setUser(data)) - .finally(() => stopLoading({ key: 'manageProfile' })); - } - }); - - const submit = data => { - startLoading({ key: 'manageProfile' }); - - updateProfileDetail(data) - .then(() => { - navigation.goBack(); - }) - .finally(() => stopLoading({ key: 'manageProfile' })); - }; - - return ( - <> - {user ? ( - navigation.goBack()} /> - ) : null} - - ); -} - -ManageProfileScreen.propTypes = { - startLoading: PropTypes.func.isRequired, - stopLoading: PropTypes.func.isRequired, -}; - -export default connectToRedux({ - component: ManageProfileScreen, - dispatchProps: { - startLoading: LoadingActions.start, - stopLoading: LoadingActions.stop, - }, -}); diff --git a/templates/app/react-native/src/screens/Settings/SettingsScreen.js b/templates/app/react-native/src/screens/Settings/SettingsScreen.js deleted file mode 100644 index 58ede9cbb5..0000000000 --- a/templates/app/react-native/src/screens/Settings/SettingsScreen.js +++ /dev/null @@ -1,157 +0,0 @@ -import { Ionicons } from '@expo/vector-icons'; -import { useFocusEffect } from '@react-navigation/native'; -import i18n from 'i18n-js'; -import { - Avatar, - Button, - Divider, - FormControl, - List, - Select, - Stack, - Text, - View, -} from 'native-base'; -import PropTypes from 'prop-types'; -import React, { useCallback, useState } from 'react'; -import { getProfileDetail } from '../../api/IdentityAPI'; -import AppActions from '../../store/actions/AppActions'; -import { - createLanguageSelector, - createLanguagesSelector, -} from '../../store/selectors/AppSelectors'; -import { createTenantSelector } from '../../store/selectors/PersistentStorageSelectors'; -import { connectToRedux } from '../../utils/ReduxConnect'; -import { store } from '../../store/index'; -import { getEnvVars } from '../../../Environment'; - -const env = getEnvVars(); - -function SettingsScreen({ - navigation, - language, - languages, - setLanguageAsync, - logoutAsync, - tenant = {}, -}) { - const [user, setUser] = useState({}); - const [token, setToken] = useState(store.getState().persistentStorage.token); - - const fetchUser = () => { - getProfileDetail().then(data => { - setUser(data || {}); - }); - }; - - useFocusEffect( - useCallback(() => { - fetchUser(); - }, []), - ); - - const logout = () => { - const { clientId } = env.oAuthConfig; - const { access_token, refresh_token } = token; - - logoutAsync({ - client_id: clientId, - token: access_token, - refresh_token: refresh_token, - }); - }; - - return ( - - - navigation.navigate('ManageProfile')}> - - - - - {tenant.name ? `${tenant.name}/` : ''} - {user.userName ? `${user.userName}` : ''} - - - - - - - - navigation.navigate('ChangePassword')}> - - {i18n.t('AbpUi::ChangePassword')} - - - - - - - - - {i18n.t('AbpUi::Language')} - - - - - - - - - ); -} - -SettingsScreen.propTypes = { - setLanguageAsync: PropTypes.func.isRequired, - logoutAsync: PropTypes.func.isRequired, - language: PropTypes.object.isRequired, - languages: PropTypes.array.isRequired, - tenant: PropTypes.object.isRequired, -}; - -export default connectToRedux({ - component: SettingsScreen, - stateProps: state => ({ - languages: createLanguagesSelector()(state), - language: createLanguageSelector()(state), - tenant: createTenantSelector()(state), - }), - dispatchProps: { - setLanguageAsync: AppActions.setLanguageAsync, - logoutAsync: AppActions.logoutAsync, - }, -}); diff --git a/templates/app/react-native/src/screens/Tenants/TenantsScreen.js b/templates/app/react-native/src/screens/Tenants/TenantsScreen.js deleted file mode 100644 index da3dac53af..0000000000 --- a/templates/app/react-native/src/screens/Tenants/TenantsScreen.js +++ /dev/null @@ -1,51 +0,0 @@ -import { Box, HStack, Pressable, Text } from 'native-base'; -import React from 'react'; -import { getTenants } from '../../api/TenantManagementAPI'; -import DataList from '../../components/DataList/DataList'; -import { LocalizationContext } from '../../contexts/LocalizationContext'; - -function TenantsScreen({ navigation }) { - const { t } = React.useContext(LocalizationContext); - - return ( - - ( - navigateToCreateUpdateTenantScreen(navigation, item)} - > - - - {t('AbpTenantManagement::TenantName')}: - - {item.name} - - - - - )} - /> - - ); -} - -const navigateToCreateUpdateTenantScreen = (navigation, tenant = {}) => { - navigation.navigate('CreateUpdateTenant', { - tenantId: tenant.id, - }); -}; - -export default TenantsScreen; diff --git a/templates/app/react-native/src/screens/Users/UsersScreen.js b/templates/app/react-native/src/screens/Users/UsersScreen.js deleted file mode 100644 index b49658cb24..0000000000 --- a/templates/app/react-native/src/screens/Users/UsersScreen.js +++ /dev/null @@ -1,62 +0,0 @@ -import { Box, HStack, Pressable, Text } from 'native-base'; -import React from 'react'; -import { getUsers } from '../../api/IdentityAPI'; -import DataList from '../../components/DataList/DataList'; -import { LocalizationContext } from '../../contexts/LocalizationContext'; - -function UsersScreen({ navigation }) { - const { t } = React.useContext(LocalizationContext); - - return ( - ( - navigateToCreateUpdateUserScreen(navigation, item)} - > - - - {t('AbpIdentity::UserName')}: - - {item.userName} - - - - {t('AbpIdentity::EmailAddress')}: - - {item.email} - - - - {t('AbpIdentity::DisplayName:Name')}: - - {item.name} - - - - {t('AbpIdentity::DisplayName:Surname')}: - - {item.surname} - - - - - )} - /> - ); -} - -const navigateToCreateUpdateUserScreen = (navigation, user = {}) => { - navigation.navigate('CreateUpdateUser', { - userId: user.id, - }); -}; - -export default UsersScreen; diff --git a/templates/app/react-native/src/store/actions/AppActions.js b/templates/app/react-native/src/store/actions/AppActions.js deleted file mode 100644 index 413d923129..0000000000 --- a/templates/app/react-native/src/store/actions/AppActions.js +++ /dev/null @@ -1,26 +0,0 @@ -import { createAction } from '@reduxjs/toolkit'; - -const fetchAppConfigAsync = createAction( - 'app/fetchAppConfigAsync', - ({ callback = () => {}, showLoading = true } = {}) => ({ - payload: { callback, showLoading }, - }), -); - -const setAppConfig = createAction('app/setAppConfig'); - -const setLanguageAsync = createAction('app/setLanguageAsync'); - -const logoutAsync = createAction( - 'app/logoutAsync', - ({ client_id = '', token = '', refresh_token = '' } = {}) => ({ - payload: { client_id, token, refresh_token }, - }), -); - -export default { - fetchAppConfigAsync, - setAppConfig, - setLanguageAsync, - logoutAsync, -}; diff --git a/templates/app/react-native/src/store/actions/LoadingActions.js b/templates/app/react-native/src/store/actions/LoadingActions.js deleted file mode 100644 index 9705dc4e0f..0000000000 --- a/templates/app/react-native/src/store/actions/LoadingActions.js +++ /dev/null @@ -1,13 +0,0 @@ -import { createAction } from '@reduxjs/toolkit'; - -const start = createAction('loading/start'); - -const stop = createAction('loading/stop'); - -const clear = createAction('loading/clear'); - -export default { - start, - stop, - clear, -}; diff --git a/templates/app/react-native/src/store/actions/PersistentStorageActions.js b/templates/app/react-native/src/store/actions/PersistentStorageActions.js deleted file mode 100644 index 4b32d9ff31..0000000000 --- a/templates/app/react-native/src/store/actions/PersistentStorageActions.js +++ /dev/null @@ -1,13 +0,0 @@ -import { createAction } from '@reduxjs/toolkit'; - -const setToken = createAction('persistentStorage/setToken'); - -const setLanguage = createAction('persistentStorage/setLanguage'); - -const setTenant = createAction('persistentStorage/setTenant'); - -export default { - setToken, - setLanguage, - setTenant, -}; diff --git a/templates/app/react-native/src/store/index.js b/templates/app/react-native/src/store/index.js deleted file mode 100644 index d30a0890dd..0000000000 --- a/templates/app/react-native/src/store/index.js +++ /dev/null @@ -1,25 +0,0 @@ -import AsyncStorage from '@react-native-async-storage/async-storage'; -import { configureStore } from '@reduxjs/toolkit'; -import { persistReducer, persistStore } from 'redux-persist'; -import createSagaMiddleware from 'redux-saga'; -import rootReducer from './reducers'; -import { rootSaga } from './sagas'; - -const sagaMiddleware = createSagaMiddleware(); - -const persistConfig = { - key: 'root', - storage: AsyncStorage, - whitelist: ['persistentStorage'], -}; - -const persistedReducer = persistReducer(persistConfig, rootReducer); - -export const store = configureStore({ - reducer: persistedReducer, - middleware: [sagaMiddleware], -}); - -export const persistor = persistStore(store); - -sagaMiddleware.run(rootSaga); diff --git a/templates/app/react-native/src/store/reducers/AppReducer.js b/templates/app/react-native/src/store/reducers/AppReducer.js deleted file mode 100644 index a628f7f802..0000000000 --- a/templates/app/react-native/src/store/reducers/AppReducer.js +++ /dev/null @@ -1,12 +0,0 @@ -import { createReducer } from '@reduxjs/toolkit'; -import AppActions from '../actions/AppActions'; - -const initialState = { - appConfig: {}, -}; - -export default createReducer(initialState, builder => - builder.addCase(AppActions.setAppConfig, (state, action) => { - state.appConfig = action.payload; - }), -); diff --git a/templates/app/react-native/src/store/reducers/LoadingReducer.js b/templates/app/react-native/src/store/reducers/LoadingReducer.js deleted file mode 100644 index 99ccb14149..0000000000 --- a/templates/app/react-native/src/store/reducers/LoadingReducer.js +++ /dev/null @@ -1,23 +0,0 @@ -import { createReducer } from '@reduxjs/toolkit'; -import LoadingActions from '../actions/LoadingActions'; - -const initialState = { activeLoadings: {}, loading: false }; - -export default createReducer(initialState, builder => - builder - .addCase(LoadingActions.start, (state, action) => { - const { key, opacity } = action.payload; - return { - ...state, - actives: { ...state.activeLoadings, [key]: action }, - loading: true, - opacity, - }; - }) - .addCase(LoadingActions.stop, (state, action) => { - delete state.activeLoadings[action.payload.key]; - - state.loading = !!Object.keys(state.activeLoadings).length; - }) - .addCase(LoadingActions.clear, () => ({})), -); diff --git a/templates/app/react-native/src/store/reducers/PersistentStorageReducer.js b/templates/app/react-native/src/store/reducers/PersistentStorageReducer.js deleted file mode 100644 index d4d8f9a32b..0000000000 --- a/templates/app/react-native/src/store/reducers/PersistentStorageReducer.js +++ /dev/null @@ -1,17 +0,0 @@ -import { createReducer } from '@reduxjs/toolkit'; -import PersistentStorageActions from '../actions/PersistentStorageActions'; - -const initialState = { token: {}, language: null, tenant: {} }; - -export default createReducer(initialState, builder => - builder - .addCase(PersistentStorageActions.setToken, (state, action) => { - state.token = action.payload; - }) - .addCase(PersistentStorageActions.setLanguage, (state, action) => { - state.language = action.payload; - }) - .addCase(PersistentStorageActions.setTenant, (state, action) => { - state.tenant = action.payload; - }), -); diff --git a/templates/app/react-native/src/store/reducers/index.js b/templates/app/react-native/src/store/reducers/index.js deleted file mode 100644 index 0479999c14..0000000000 --- a/templates/app/react-native/src/store/reducers/index.js +++ /dev/null @@ -1,12 +0,0 @@ -import { combineReducers } from '@reduxjs/toolkit'; -import AppReducer from './AppReducer'; -import LoadingReducer from './LoadingReducer'; -import PersistentStorageReducer from './PersistentStorageReducer'; - -const rootReducer = combineReducers({ - loading: LoadingReducer, - app: AppReducer, - persistentStorage: PersistentStorageReducer, -}); - -export default rootReducer; diff --git a/templates/app/react-native/src/store/sagas/AppSaga.js b/templates/app/react-native/src/store/sagas/AppSaga.js deleted file mode 100644 index 8eb795a971..0000000000 --- a/templates/app/react-native/src/store/sagas/AppSaga.js +++ /dev/null @@ -1,50 +0,0 @@ -import { all, call, put, takeLatest } from 'redux-saga/effects'; -import { Logout } from '../../api/AccountAPI'; -import { getApplicationConfiguration } from '../../api/ApplicationConfigurationAPI'; -import AppActions from '../actions/AppActions'; -import LoadingActions from '../actions/LoadingActions'; -import PersistentStorageActions from '../actions/PersistentStorageActions'; - -function* fetchAppConfig({ payload: { showLoading, callback } }) { - if (showLoading) { - yield put(LoadingActions.start({ key: 'appConfig', opacity: 1 })); - } - - const data = yield call(getApplicationConfiguration); - yield put(AppActions.setAppConfig(data)); - yield put( - PersistentStorageActions.setLanguage( - data.localization.currentCulture.cultureName, - ), - ); - if (showLoading) yield put(LoadingActions.stop({ key: 'appConfig' })); - callback(); -} - -function* setLanguage(action) { - yield put(PersistentStorageActions.setLanguage(action.payload)); - yield put(AppActions.fetchAppConfigAsync()); -} - -function* logout({ payload: { client_id, token, refresh_token } }) { - const data = { client_id, token }; - - yield call(Logout, data); - - if (!!refresh_token) { - data.token = refresh_token; - data.token_type_hint = 'refresh_token'; - yield call(Logout, data); - } - - yield put(PersistentStorageActions.setToken({})); - yield put(AppActions.fetchAppConfigAsync()); -} - -export default function* () { - yield all([ - takeLatest(AppActions.setLanguageAsync.type, setLanguage), - takeLatest(AppActions.fetchAppConfigAsync.type, fetchAppConfig), - takeLatest(AppActions.logoutAsync.type, logout), - ]); -} diff --git a/templates/app/react-native/src/store/sagas/index.js b/templates/app/react-native/src/store/sagas/index.js deleted file mode 100644 index 1b56c35c2c..0000000000 --- a/templates/app/react-native/src/store/sagas/index.js +++ /dev/null @@ -1,6 +0,0 @@ -import { all, fork } from 'redux-saga/effects'; -import AppSaga from './AppSaga'; - -export function* rootSaga() { - yield all([fork(AppSaga)]); -} diff --git a/templates/app/react-native/src/store/selectors/AppSelectors.js b/templates/app/react-native/src/store/selectors/AppSelectors.js deleted file mode 100644 index 82e0000b71..0000000000 --- a/templates/app/react-native/src/store/selectors/AppSelectors.js +++ /dev/null @@ -1,19 +0,0 @@ -import { createSelector } from 'reselect'; - -const getApp = state => state.app; - -export function createAppConfigSelector() { - return createSelector([getApp], state => state.appConfig); -} - -export function createLanguageSelector() { - return createSelector([getApp], state => state?.appConfig?.localization?.currentCulture); -} - -export function createLanguagesSelector() { - return createSelector([getApp], state => state?.appConfig?.localization?.languages); -} - -export function createGrantedPolicySelector(key) { - return createSelector([getApp], state => state?.appConfig?.auth?.grantedPolicies[key] ?? false); -} diff --git a/templates/app/react-native/src/store/selectors/LoadingSelectors.js b/templates/app/react-native/src/store/selectors/LoadingSelectors.js deleted file mode 100644 index 47a798fe2c..0000000000 --- a/templates/app/react-native/src/store/selectors/LoadingSelectors.js +++ /dev/null @@ -1,11 +0,0 @@ -import { createSelector } from 'reselect'; - -const getLoading = state => state.loading; - -export function createLoadingSelector() { - return createSelector([getLoading], loading => loading.loading); -} - -export function createOpacitySelector() { - return createSelector([getLoading], loading => loading.opacity); -} diff --git a/templates/app/react-native/src/store/selectors/PersistentStorageSelectors.js b/templates/app/react-native/src/store/selectors/PersistentStorageSelectors.js deleted file mode 100644 index d5d86f8b7d..0000000000 --- a/templates/app/react-native/src/store/selectors/PersistentStorageSelectors.js +++ /dev/null @@ -1,11 +0,0 @@ -import { createSelector } from 'reselect'; - -const getPersistentStorage = state => state.persistentStorage; - -export function createTokenSelector() { - return createSelector([getPersistentStorage], persistentStorage => persistentStorage.token); -} - -export function createTenantSelector() { - return createSelector([getPersistentStorage], persistentStorage => persistentStorage.tenant); -} diff --git a/templates/app/react-native/src/utils/DateExtensions.js b/templates/app/react-native/src/utils/DateExtensions.js deleted file mode 100644 index 890a6fdfc5..0000000000 --- a/templates/app/react-native/src/utils/DateExtensions.js +++ /dev/null @@ -1,5 +0,0 @@ -export function toLocalISOString(date) { - const timezoneOffset = date.getTimezoneOffset(); - - return new Date(date.getTime() - timezoneOffset * 60000).toISOString(); -} diff --git a/templates/app/react-native/src/utils/Debounce.js b/templates/app/react-native/src/utils/Debounce.js deleted file mode 100644 index 34588c63d4..0000000000 --- a/templates/app/react-native/src/utils/Debounce.js +++ /dev/null @@ -1,14 +0,0 @@ -export function debounce(func, wait, immediate) { - let timeout; - return (...args) => { - const context = this; - const later = () => { - timeout = null; - if (!immediate) func.apply(context, args); - }; - const callNow = immediate && !timeout; - clearTimeout(timeout); - timeout = setTimeout(later, wait); - if (callNow) func.apply(context, args); - }; -} diff --git a/templates/app/react-native/src/utils/RandomColor.js b/templates/app/react-native/src/utils/RandomColor.js deleted file mode 100644 index a925d77763..0000000000 --- a/templates/app/react-native/src/utils/RandomColor.js +++ /dev/null @@ -1,12 +0,0 @@ -export function getRandomColors(count) { - const colors = []; - - for (let i = 0; i < count; i++) { - const r = ((i + 5) * (i + 5) * 474) % 255; - const g = ((i + 5) * (i + 5) * 1600) % 255; - const b = ((i + 5) * (i + 5) * 84065) % 255; - colors.push(`rgba(${r}, ${g}, ${b})`); - } - - return colors; -} diff --git a/templates/app/react-native/src/utils/ReduxConnect.js b/templates/app/react-native/src/utils/ReduxConnect.js deleted file mode 100644 index be68b186af..0000000000 --- a/templates/app/react-native/src/utils/ReduxConnect.js +++ /dev/null @@ -1,9 +0,0 @@ -import { connect } from 'react-redux'; - -export function connectToRedux({ component, stateProps = () => ({}), dispatchProps = () => ({}) }) { - const mapStateToProps = () => stateProps; - - const mapDispatchToProps = dispatchProps; - - return connect(mapStateToProps, mapDispatchToProps)(component); -} diff --git a/templates/app/react-native/src/utils/TokenUtils.js b/templates/app/react-native/src/utils/TokenUtils.js deleted file mode 100644 index ab1925061b..0000000000 --- a/templates/app/react-native/src/utils/TokenUtils.js +++ /dev/null @@ -1,7 +0,0 @@ -export function isTokenValid(token) { - if (!token || typeof token !== 'object' || !token.expire_time) return false; - - const now = new Date().valueOf(); - - return now < token.expire_time; -} diff --git a/templates/console/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj b/templates/console/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj index 2c90dee36c..e690b1217e 100644 --- a/templates/console/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj +++ b/templates/console/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj @@ -1,10 +1,10 @@ -ï»ż + Exe - net8.0 + net9.0 enable @@ -13,7 +13,7 @@
- + diff --git a/templates/maui/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj b/templates/maui/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj index 04c7d4fa36..5df925360e 100644 --- a/templates/maui/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj +++ b/templates/maui/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj @@ -1,12 +1,12 @@ -ï»ż + - net8.0-android;net8.0-ios;net8.0-maccatalyst - $(TargetFrameworks);net8.0-windows10.0.19041.0 + net9.0-android;net9.0-ios;net9.0-maccatalyst + $(TargetFrameworks);net9.0-windows10.0.19041.0 - + enable Exe MyCompanyName.MyProjectName @@ -35,7 +35,7 @@ - + diff --git a/templates/module/angular/package.json b/templates/module/angular/package.json index 13ec8b0b1b..6379a88a16 100644 --- a/templates/module/angular/package.json +++ b/templates/module/angular/package.json @@ -13,15 +13,15 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~8.3.0", - "@abp/ng.components": "~8.3.0", - "@abp/ng.core": "~8.3.0", - "@abp/ng.identity": "~8.3.0", - "@abp/ng.oauth": "~8.3.0", - "@abp/ng.setting-management": "~8.3.0", - "@abp/ng.tenant-management": "~8.3.0", - "@abp/ng.theme.basic": "~8.3.0", - "@abp/ng.theme.shared": "~8.3.0", + "@abp/ng.account": "~8.3.1", + "@abp/ng.components": "~8.3.1", + "@abp/ng.core": "~8.3.1", + "@abp/ng.identity": "~8.3.1", + "@abp/ng.oauth": "~8.3.1", + "@abp/ng.setting-management": "~8.3.1", + "@abp/ng.tenant-management": "~8.3.1", + "@abp/ng.theme.basic": "~8.3.1", + "@abp/ng.theme.shared": "~8.3.1", "@angular/animations": "~18.1.0", "@angular/common": "~18.1.0", "@angular/compiler": "~18.1.0", @@ -36,7 +36,7 @@ "zone.js": "~0.14.0" }, "devDependencies": { - "@abp/ng.schematics": "~8.3.0", + "@abp/ng.schematics": "~8.3.1", "@angular-devkit/build-angular": "~18.1.0", "@angular-eslint/builder": "~18.1.0", "@angular-eslint/eslint-plugin": "~18.1.0", diff --git a/templates/module/angular/projects/my-project-name/package.json b/templates/module/angular/projects/my-project-name/package.json index 6c95bc92b2..e3c0bec7d6 100644 --- a/templates/module/angular/projects/my-project-name/package.json +++ b/templates/module/angular/projects/my-project-name/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": "~18.1.0", "@angular/core": "~18.1.0", - "@abp/ng.core": "~8.3.0", - "@abp/ng.theme.shared": "~8.3.0" + "@abp/ng.core": "~8.3.1", + "@abp/ng.theme.shared": "~8.3.1" }, "dependencies": { "tslib": "^2.1.0" diff --git a/templates/module/aspnet-core/database/Dockerfile b/templates/module/aspnet-core/database/Dockerfile index 80c49b96e6..464feb4e57 100644 --- a/templates/module/aspnet-core/database/Dockerfile +++ b/templates/module/aspnet-core/database/Dockerfile @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build COPY . . WORKDIR /templates/service/host/IdentityServerHost diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Dockerfile b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Dockerfile index b3e3de1473..e977bcde30 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Dockerfile +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Dockerfile @@ -1,9 +1,9 @@ -FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base +FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base WORKDIR /app EXPOSE 80 ENV ASPNETCORE_URLS=http://+:80 -FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build WORKDIR /src COPY . . WORKDIR /src/templates/service/host/MyCompanyName.MyProjectName.AuthServer diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20240321011622_Initial.Designer.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20241002093429_Initial.Designer.cs similarity index 96% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20240321011622_Initial.Designer.cs rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20241002093429_Initial.Designer.cs index 6e7456f3ba..72a9b78e7c 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20240321011622_Initial.Designer.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20241002093429_Initial.Designer.cs @@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore; namespace MyCompanyName.MyProjectName.Migrations { [DbContext(typeof(AuthServerDbContext))] - [Migration("20240321011622_Initial")] + [Migration("20241002093429_Initial")] partial class Initial { /// @@ -22,7 +22,7 @@ namespace MyCompanyName.MyProjectName.Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "8.0.0") + .HasAnnotation("ProductVersion", "9.0.0-rc.1.24451.1") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); @@ -657,6 +657,13 @@ namespace MyCompanyName.MyProjectName.Migrations .HasMaxLength(64) .HasColumnType("nvarchar(64)"); + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .IsRequired() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + b.Property("Device") .IsRequired() .HasMaxLength(64) @@ -666,9 +673,14 @@ namespace MyCompanyName.MyProjectName.Migrations .HasMaxLength(64) .HasColumnType("nvarchar(64)"); + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + b.Property("IpAddresses") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); + .HasMaxLength(2048) + .HasColumnType("nvarchar(2048)"); b.Property("LastAccessed") .HasColumnType("datetime2"); @@ -1253,41 +1265,11 @@ namespace MyCompanyName.MyProjectName.Migrations b.Property("CreationDate") .HasColumnType("datetime2"); - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - b.Property("ExtraProperties") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - b.Property("Properties") .HasColumnType("nvarchar(max)"); @@ -1412,22 +1394,6 @@ namespace MyCompanyName.MyProjectName.Migrations b.Property("CreationDate") .HasColumnType("datetime2"); - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - b.Property("ExpirationDate") .HasColumnType("datetime2"); @@ -1436,20 +1402,6 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - b.Property("Payload") .HasColumnType("nvarchar(max)"); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20240321011622_Initial.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20241002093429_Initial.cs similarity index 97% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20240321011622_Initial.cs rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20241002093429_Initial.cs index a3dbf4a768..5a9324ad67 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20240321011622_Initial.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20241002093429_Initial.cs @@ -266,9 +266,11 @@ namespace MyCompanyName.MyProjectName.Migrations TenantId = table.Column(type: "uniqueidentifier", nullable: true), UserId = table.Column(type: "uniqueidentifier", nullable: false), ClientId = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), - IpAddresses = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), + IpAddresses = table.Column(type: "nvarchar(2048)", maxLength: 2048, nullable: true), SignedIn = table.Column(type: "datetime2", nullable: false), - LastAccessed = table.Column(type: "datetime2", nullable: true) + LastAccessed = table.Column(type: "datetime2", nullable: true), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: false), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: false) }, constraints: table => { @@ -698,14 +700,7 @@ namespace MyCompanyName.MyProjectName.Migrations Subject = table.Column(type: "nvarchar(400)", maxLength: 400, nullable: true), Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: false), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: false), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: false) }, constraints: table => { @@ -757,14 +752,7 @@ namespace MyCompanyName.MyProjectName.Migrations Subject = table.Column(type: "nvarchar(400)", maxLength: 400, nullable: true), Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: false), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: false), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: false) }, constraints: table => { diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/AuthServerDbContextModelSnapshot.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/AuthServerDbContextModelSnapshot.cs index 4da168ec59..7f784d4a1b 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/AuthServerDbContextModelSnapshot.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/AuthServerDbContextModelSnapshot.cs @@ -19,7 +19,7 @@ namespace MyCompanyName.MyProjectName.Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "8.0.0") + .HasAnnotation("ProductVersion", "9.0.0-rc.1.24451.1") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); @@ -654,6 +654,13 @@ namespace MyCompanyName.MyProjectName.Migrations .HasMaxLength(64) .HasColumnType("nvarchar(64)"); + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .IsRequired() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + b.Property("Device") .IsRequired() .HasMaxLength(64) @@ -663,9 +670,14 @@ namespace MyCompanyName.MyProjectName.Migrations .HasMaxLength(64) .HasColumnType("nvarchar(64)"); + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + b.Property("IpAddresses") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); + .HasMaxLength(2048) + .HasColumnType("nvarchar(2048)"); b.Property("LastAccessed") .HasColumnType("datetime2"); @@ -1250,41 +1262,11 @@ namespace MyCompanyName.MyProjectName.Migrations b.Property("CreationDate") .HasColumnType("datetime2"); - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - b.Property("ExtraProperties") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - b.Property("Properties") .HasColumnType("nvarchar(max)"); @@ -1409,22 +1391,6 @@ namespace MyCompanyName.MyProjectName.Migrations b.Property("CreationDate") .HasColumnType("datetime2"); - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - b.Property("ExpirationDate") .HasColumnType("datetime2"); @@ -1433,20 +1399,6 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - b.Property("Payload") .HasColumnType("nvarchar(max)"); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj index f6affd669e..78f468732b 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName true @@ -13,8 +13,8 @@ - - + + all runtime; build; native; contentfiles; analyzers diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs index ad5ba84144..feb60f2b34 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs @@ -210,7 +210,7 @@ public class MyProjectNameAuthServerModule : AbpModule app.UseHttpsRedirection(); app.UseCorrelationId(); - app.UseStaticFiles(); + app.MapAbpStaticAssets(); app.UseRouting(); app.UseCors(); app.UseAuthentication(); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json index ace84a4cf2..580e70e3e2 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-authserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.1" } } diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host.Client/MyCompanyName.MyProjectName.Blazor.Host.Client.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host.Client/MyCompanyName.MyProjectName.Blazor.Host.Client.csproj index 1f74a203b7..c45c9ee425 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host.Client/MyCompanyName.MyProjectName.Blazor.Host.Client.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host.Client/MyCompanyName.MyProjectName.Blazor.Host.Client.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable true MyCompanyName.MyProjectName.Blazor.Host.Client @@ -12,8 +12,8 @@ - - + + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj index 9791d142e3..9e51d6816c 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj @@ -3,12 +3,12 @@ - net8.0 + net9.0 enable - + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/Program.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/Program.cs index 99c5702ed3..cddfdec7d4 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/Program.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/Program.cs @@ -33,7 +33,7 @@ else app.UseHttpsRedirection(); -app.UseStaticFiles(); +app.MapStaticAssets(); app.UseAntiforgery(); app.MapRazorComponents() diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20240312033728_Initial.Designer.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20241002093412_Initial.Designer.cs similarity index 98% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20240312033728_Initial.Designer.cs rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20241002093412_Initial.Designer.cs index cc7dab7c4b..84f4aafd94 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20240312033728_Initial.Designer.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20241002093412_Initial.Designer.cs @@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore; namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations { [DbContext(typeof(UnifiedDbContext))] - [Migration("20240312033728_Initial")] + [Migration("20241002093412_Initial")] partial class Initial { /// @@ -22,7 +22,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "8.0.0") + .HasAnnotation("ProductVersion", "9.0.0-rc.1.24451.1") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); @@ -657,6 +657,13 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations .HasMaxLength(64) .HasColumnType("nvarchar(64)"); + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .IsRequired() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + b.Property("Device") .IsRequired() .HasMaxLength(64) @@ -666,9 +673,14 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations .HasMaxLength(64) .HasColumnType("nvarchar(64)"); + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + b.Property("IpAddresses") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); + .HasMaxLength(2048) + .HasColumnType("nvarchar(2048)"); b.Property("LastAccessed") .HasColumnType("datetime2"); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20240312033728_Initial.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20241002093412_Initial.cs similarity index 99% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20240312033728_Initial.cs rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20241002093412_Initial.cs index b79afe38fe..8b719e8c0d 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20240312033728_Initial.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20241002093412_Initial.cs @@ -266,9 +266,11 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations TenantId = table.Column(type: "uniqueidentifier", nullable: true), UserId = table.Column(type: "uniqueidentifier", nullable: false), ClientId = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), - IpAddresses = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), + IpAddresses = table.Column(type: "nvarchar(2048)", maxLength: 2048, nullable: true), SignedIn = table.Column(type: "datetime2", nullable: false), - LastAccessed = table.Column(type: "datetime2", nullable: true) + LastAccessed = table.Column(type: "datetime2", nullable: true), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: false), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: false) }, constraints: table => { diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/UnifiedDbContextModelSnapshot.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/UnifiedDbContextModelSnapshot.cs index 8c80cc940f..b747558823 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/UnifiedDbContextModelSnapshot.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/UnifiedDbContextModelSnapshot.cs @@ -19,7 +19,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "8.0.0") + .HasAnnotation("ProductVersion", "9.0.0-rc.1.24451.1") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); @@ -654,6 +654,13 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations .HasMaxLength(64) .HasColumnType("nvarchar(64)"); + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .IsRequired() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + b.Property("Device") .IsRequired() .HasMaxLength(64) @@ -663,9 +670,14 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations .HasMaxLength(64) .HasColumnType("nvarchar(64)"); + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + b.Property("IpAddresses") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); + .HasMaxLength(2048) + .HasColumnType("nvarchar(2048)"); b.Property("LastAccessed") .HasColumnType("datetime2"); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyCompanyName.MyProjectName.Blazor.Server.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyCompanyName.MyProjectName.Blazor.Server.Host.csproj index af37482bcd..76ef5698e5 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyCompanyName.MyProjectName.Blazor.Server.Host.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyCompanyName.MyProjectName.Blazor.Server.Host.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable true true @@ -17,7 +17,7 @@ - + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyProjectNameBlazorHostModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyProjectNameBlazorHostModule.cs index 4451d010a0..b845e23241 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyProjectNameBlazorHostModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyProjectNameBlazorHostModule.cs @@ -254,7 +254,7 @@ public class MyProjectNameBlazorHostModule : AbpModule app.UseHttpsRedirection(); app.UseCorrelationId(); - app.UseStaticFiles(); + app.MapAbpStaticAssets(); app.UseRouting(); app.UseAuthentication(); app.UseAbpOpenIddictValidation(); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json index 08805b20e8..f646ce2e1f 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0", - "@abp/aspnetcore.components.server.basictheme": "~8.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.1", + "@abp/aspnetcore.components.server.basictheme": "~8.3.1" } } diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Host.Shared/MyCompanyName.MyProjectName.Host.Shared.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Host.Shared/MyCompanyName.MyProjectName.Host.Shared.csproj index 8133f9cddf..83bb5689cf 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Host.Shared/MyCompanyName.MyProjectName.Host.Shared.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Host.Shared/MyCompanyName.MyProjectName.Host.Shared.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Dockerfile b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Dockerfile index 7740ffbc24..ab9507b7a2 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Dockerfile +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Dockerfile @@ -1,9 +1,9 @@ -FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base +FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base WORKDIR /app EXPOSE 80 ENV ASPNETCORE_URLS=http://+:80 -FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build WORKDIR /src COPY . . WORKDIR /src/templates/service/host/MyCompanyName.MyProjectName.HttpApi.Host diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Migrations/20240312033807_Initial.Designer.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Migrations/20241002093440_Initial.Designer.cs similarity index 89% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Migrations/20240312033807_Initial.Designer.cs rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Migrations/20241002093440_Initial.Designer.cs index 3407609e8f..88559ccc91 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Migrations/20240312033807_Initial.Designer.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Migrations/20241002093440_Initial.Designer.cs @@ -12,7 +12,7 @@ using Volo.Abp.EntityFrameworkCore; namespace MyCompanyName.MyProjectName.Migrations { [DbContext(typeof(MyProjectNameHttpApiHostMigrationsDbContext))] - [Migration("20240312033807_Initial")] + [Migration("20241002093440_Initial")] partial class Initial { /// @@ -21,7 +21,7 @@ namespace MyCompanyName.MyProjectName.Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "8.0.0") + .HasAnnotation("ProductVersion", "9.0.0-rc.1.24451.1") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Migrations/20240312033807_Initial.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Migrations/20241002093440_Initial.cs similarity index 100% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Migrations/20240312033807_Initial.cs rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Migrations/20241002093440_Initial.cs diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Migrations/MyProjectNameHttpApiHostMigrationsDbContextModelSnapshot.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Migrations/MyProjectNameHttpApiHostMigrationsDbContextModelSnapshot.cs index 30b1ab980c..8f18778ba3 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Migrations/MyProjectNameHttpApiHostMigrationsDbContextModelSnapshot.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Migrations/MyProjectNameHttpApiHostMigrationsDbContextModelSnapshot.cs @@ -18,7 +18,7 @@ namespace MyCompanyName.MyProjectName.Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "8.0.0") + .HasAnnotation("ProductVersion", "9.0.0-rc.1.24451.1") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj index f56f04fccc..f2b60eda06 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName true @@ -14,9 +14,9 @@ - - - + + + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs index bb759d2386..d53b3d90bc 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs @@ -175,7 +175,7 @@ public class MyProjectNameHttpApiHostModule : AbpModule app.UseHttpsRedirection(); app.UseCorrelationId(); - app.UseStaticFiles(); + app.MapAbpStaticAssets(); app.UseRouting(); app.UseCors(); app.UseAuthentication(); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj index f1579300a2..780571f7e8 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName true @@ -13,7 +13,7 @@ - + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs index f17251116f..e90eddd122 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs @@ -240,7 +240,7 @@ public class MyProjectNameWebHostModule : AbpModule } app.UseHttpsRedirection(); - app.UseStaticFiles(); + app.MapAbpStaticAssets(); app.UseRouting(); app.UseAuthentication(); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json index 7dad1fc3e2..a631510c85 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.1" } } diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20240312033830_Initial.Designer.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20241002093456_Initial.Designer.cs similarity index 98% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20240312033830_Initial.Designer.cs rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20241002093456_Initial.Designer.cs index 618206a870..c35a1f17a9 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20240312033830_Initial.Designer.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20241002093456_Initial.Designer.cs @@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore; namespace MyCompanyName.MyProjectName.Migrations { [DbContext(typeof(UnifiedDbContext))] - [Migration("20240312033830_Initial")] + [Migration("20241002093456_Initial")] partial class Initial { /// @@ -22,7 +22,7 @@ namespace MyCompanyName.MyProjectName.Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "8.0.0") + .HasAnnotation("ProductVersion", "9.0.0-rc.1.24451.1") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); @@ -657,6 +657,13 @@ namespace MyCompanyName.MyProjectName.Migrations .HasMaxLength(64) .HasColumnType("nvarchar(64)"); + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .IsRequired() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + b.Property("Device") .IsRequired() .HasMaxLength(64) @@ -666,9 +673,14 @@ namespace MyCompanyName.MyProjectName.Migrations .HasMaxLength(64) .HasColumnType("nvarchar(64)"); + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + b.Property("IpAddresses") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); + .HasMaxLength(2048) + .HasColumnType("nvarchar(2048)"); b.Property("LastAccessed") .HasColumnType("datetime2"); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20240312033830_Initial.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20241002093456_Initial.cs similarity index 99% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20240312033830_Initial.cs rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20241002093456_Initial.cs index 105890a571..a213cafa11 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20240312033830_Initial.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20241002093456_Initial.cs @@ -266,9 +266,11 @@ namespace MyCompanyName.MyProjectName.Migrations TenantId = table.Column(type: "uniqueidentifier", nullable: true), UserId = table.Column(type: "uniqueidentifier", nullable: false), ClientId = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), - IpAddresses = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), + IpAddresses = table.Column(type: "nvarchar(2048)", maxLength: 2048, nullable: true), SignedIn = table.Column(type: "datetime2", nullable: false), - LastAccessed = table.Column(type: "datetime2", nullable: true) + LastAccessed = table.Column(type: "datetime2", nullable: true), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: false), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: false) }, constraints: table => { diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/UnifiedDbContextModelSnapshot.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/UnifiedDbContextModelSnapshot.cs index 59eae27537..6275653b74 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/UnifiedDbContextModelSnapshot.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/UnifiedDbContextModelSnapshot.cs @@ -19,7 +19,7 @@ namespace MyCompanyName.MyProjectName.Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "8.0.0") + .HasAnnotation("ProductVersion", "9.0.0-rc.1.24451.1") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); @@ -654,6 +654,13 @@ namespace MyCompanyName.MyProjectName.Migrations .HasMaxLength(64) .HasColumnType("nvarchar(64)"); + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .IsRequired() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + b.Property("Device") .IsRequired() .HasMaxLength(64) @@ -663,9 +670,14 @@ namespace MyCompanyName.MyProjectName.Migrations .HasMaxLength(64) .HasColumnType("nvarchar(64)"); + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + b.Property("IpAddresses") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); + .HasMaxLength(2048) + .HasColumnType("nvarchar(2048)"); b.Property("LastAccessed") .HasColumnType("datetime2"); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj index ff44ba45ef..cc18d861ff 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName true @@ -13,7 +13,7 @@ - + all runtime; build; native; contentfiles; analyzers diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs index 8174c0d9ee..5bca5679e1 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs @@ -158,7 +158,7 @@ public class MyProjectNameWebUnifiedModule : AbpModule } app.UseHttpsRedirection(); - app.UseStaticFiles(); + app.MapAbpStaticAssets(); app.UseRouting(); app.UseAuthentication(); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json index 7dad1fc3e2..a631510c85 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.1" } } diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Application.Contracts/MyCompanyName.MyProjectName.Application.Contracts.csproj b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Application.Contracts/MyCompanyName.MyProjectName.Application.Contracts.csproj index 16c3760c74..c6501cf477 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Application.Contracts/MyCompanyName.MyProjectName.Application.Contracts.csproj +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Application.Contracts/MyCompanyName.MyProjectName.Application.Contracts.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Application/MyCompanyName.MyProjectName.Application.csproj b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Application/MyCompanyName.MyProjectName.Application.csproj index 147fa71672..df92d80ceb 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Application/MyCompanyName.MyProjectName.Application.csproj +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Application/MyCompanyName.MyProjectName.Application.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj index f50e44f2b7..b8675efd80 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebAssembly/MyCompanyName.MyProjectName.Blazor.WebAssembly.csproj b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebAssembly/MyCompanyName.MyProjectName.Blazor.WebAssembly.csproj index 9a03d5c6d6..bfc82bfb5d 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebAssembly/MyCompanyName.MyProjectName.Blazor.WebAssembly.csproj +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebAssembly/MyCompanyName.MyProjectName.Blazor.WebAssembly.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj index d3f3898f75..870ca204dd 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/Localization/MyProjectName/sv.json b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/Localization/MyProjectName/sv.json new file mode 100644 index 0000000000..a03ced4e7a --- /dev/null +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/Localization/MyProjectName/sv.json @@ -0,0 +1,7 @@ +{ + "culture": "sv", + "texts": { + "MyAccount": "Mitt konto", + "SamplePageMessage": "En exempelsida för modulen MyProjectName" + } +} \ No newline at end of file diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj index af72c8e86f..a8d979b688 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName true @@ -15,7 +15,7 @@ - + diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyCompanyName.MyProjectName.Domain.csproj b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyCompanyName.MyProjectName.Domain.csproj index 8960e4f276..d115667288 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyCompanyName.MyProjectName.Domain.csproj +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyCompanyName.MyProjectName.Domain.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj index f7130de067..6e10588a6c 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Client/MyCompanyName.MyProjectName.HttpApi.Client.csproj b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Client/MyCompanyName.MyProjectName.HttpApi.Client.csproj index 7271230ed1..28cf860031 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Client/MyCompanyName.MyProjectName.HttpApi.Client.csproj +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Client/MyCompanyName.MyProjectName.HttpApi.Client.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi/MyCompanyName.MyProjectName.HttpApi.csproj b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi/MyCompanyName.MyProjectName.HttpApi.csproj index 4b5b4fbf19..cc5a76306e 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi/MyCompanyName.MyProjectName.HttpApi.csproj +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi/MyCompanyName.MyProjectName.HttpApi.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Installer/MyCompanyName.MyProjectName.Installer.csproj b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Installer/MyCompanyName.MyProjectName.Installer.csproj index 9694d57c61..63c8329a73 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Installer/MyCompanyName.MyProjectName.Installer.csproj +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Installer/MyCompanyName.MyProjectName.Installer.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable true MyCompanyName.MyProjectName diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MyCompanyName.MyProjectName.MongoDB.csproj b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MyCompanyName.MyProjectName.MongoDB.csproj index bb53373ba6..a614e44d75 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MyCompanyName.MyProjectName.MongoDB.csproj +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MyCompanyName.MyProjectName.MongoDB.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj index ebeb932aef..9f45a1b2a3 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; true @@ -22,7 +22,7 @@ - + diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj index e35cec36d7..04b0de10b5 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj @@ -3,7 +3,7 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName @@ -11,7 +11,7 @@ - + diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj index e16b8e9883..6f5ed8316a 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj @@ -3,13 +3,13 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName - + diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj index 3a57b39d76..8cc9e6e105 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj @@ -1,16 +1,16 @@ -ï»ż + - net8.0 + net9.0 enable MyCompanyName.MyProjectName - - + + diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj index abc2cb00d8..ceb9b2ecbd 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj @@ -2,7 +2,7 @@ Exe - net8.0 + net9.0 enable MyCompanyName.MyProjectName @@ -23,7 +23,7 @@ - + diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj index d830b1a598..39bfa306c3 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj @@ -3,13 +3,13 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName - + diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj index 13d165e43d..5d7afeacaa 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj @@ -3,13 +3,13 @@ - net8.0 + net9.0 enable MyCompanyName.MyProjectName - + all diff --git a/templates/wpf/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj b/templates/wpf/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj index 885e0974e6..deabdcce13 100644 --- a/templates/wpf/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj +++ b/templates/wpf/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj @@ -1,10 +1,10 @@ -ï»ż + WinExe - net8.0-windows + net9.0-windows enable true @@ -14,7 +14,7 @@ - + diff --git a/test/AbpPerfTest/AbpPerfTest.WithAbp/AbpPerfTest.WithAbp.csproj b/test/AbpPerfTest/AbpPerfTest.WithAbp/AbpPerfTest.WithAbp.csproj index 364987cb4c..8ccebdd263 100644 --- a/test/AbpPerfTest/AbpPerfTest.WithAbp/AbpPerfTest.WithAbp.csproj +++ b/test/AbpPerfTest/AbpPerfTest.WithAbp/AbpPerfTest.WithAbp.csproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 diff --git a/test/AbpPerfTest/AbpPerfTest.WithoutAbp/AbpPerfTest.WithoutAbp.csproj b/test/AbpPerfTest/AbpPerfTest.WithoutAbp/AbpPerfTest.WithoutAbp.csproj index 878fe0f1b7..7f5ab9c780 100644 --- a/test/AbpPerfTest/AbpPerfTest.WithoutAbp/AbpPerfTest.WithoutAbp.csproj +++ b/test/AbpPerfTest/AbpPerfTest.WithoutAbp/AbpPerfTest.WithoutAbp.csproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 diff --git a/test/DistEvents/DistDemoApp.EfCoreRabbitMq/DistDemoApp.EfCoreRabbitMq.csproj b/test/DistEvents/DistDemoApp.EfCoreRabbitMq/DistDemoApp.EfCoreRabbitMq.csproj index 440fc82aee..1d18a97fca 100644 --- a/test/DistEvents/DistDemoApp.EfCoreRabbitMq/DistDemoApp.EfCoreRabbitMq.csproj +++ b/test/DistEvents/DistDemoApp.EfCoreRabbitMq/DistDemoApp.EfCoreRabbitMq.csproj @@ -2,7 +2,7 @@ Exe - net8.0 + net9.0 DistDemoApp diff --git a/test/DistEvents/DistDemoApp.MongoDbKafka/DistDemoApp.MongoDbKafka.csproj b/test/DistEvents/DistDemoApp.MongoDbKafka/DistDemoApp.MongoDbKafka.csproj index f7b490aa16..21abd5443a 100644 --- a/test/DistEvents/DistDemoApp.MongoDbKafka/DistDemoApp.MongoDbKafka.csproj +++ b/test/DistEvents/DistDemoApp.MongoDbKafka/DistDemoApp.MongoDbKafka.csproj @@ -2,7 +2,7 @@ Exe - net8.0 + net9.0 DistDemoApp diff --git a/test/DistEvents/DistDemoApp.MongoDbRebus/DistDemoApp.MongoDbRebus.csproj b/test/DistEvents/DistDemoApp.MongoDbRebus/DistDemoApp.MongoDbRebus.csproj index d662d560a5..0fc57319c8 100644 --- a/test/DistEvents/DistDemoApp.MongoDbRebus/DistDemoApp.MongoDbRebus.csproj +++ b/test/DistEvents/DistDemoApp.MongoDbRebus/DistDemoApp.MongoDbRebus.csproj @@ -2,7 +2,7 @@ Exe - net8.0 + net9.0 DistDemoApp diff --git a/test/DistEvents/DistDemoApp.Shared/DistDemoApp.Shared.csproj b/test/DistEvents/DistDemoApp.Shared/DistDemoApp.Shared.csproj index 936f29d9ec..ab666d9696 100644 --- a/test/DistEvents/DistDemoApp.Shared/DistDemoApp.Shared.csproj +++ b/test/DistEvents/DistDemoApp.Shared/DistDemoApp.Shared.csproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 DistDemoApp diff --git a/tools/localization-key-synchronizer/src/LocalizationKeySynchronizer.csproj b/tools/localization-key-synchronizer/src/LocalizationKeySynchronizer.csproj index c5f6097cb6..0af7223191 100644 --- a/tools/localization-key-synchronizer/src/LocalizationKeySynchronizer.csproj +++ b/tools/localization-key-synchronizer/src/LocalizationKeySynchronizer.csproj @@ -2,7 +2,7 @@ Exe - net8.0 + net9.0 enable enable