diff --git a/Directory.Packages.props b/Directory.Packages.props index 854123b215..b43886f7cf 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -6,7 +6,7 @@ - + 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/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.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json index 5bc1680708..825de3e1cc 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json @@ -72,7 +72,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", @@ -219,8 +219,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 +232,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", @@ -456,7 +456,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", @@ -587,9 +588,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 +624,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..09a56dffa1 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/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..075ba850c0 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json @@ -157,7 +157,7 @@ "ABPCLIExplanation": "ABP CLI (واجهة سطر الأوامر) هي أداة سطر أوامر لتنفيذ بعض العمليات الشائعة للحلول المستندة إلى ABP.", "ABPSuiteEasilyCURD": "ABP Suite هي أداة تسمح لك بإنشاء صفحات CRUD بسهولة", "WeAreHereToHelp": "نحن هنا من أجل المساعدة ", - "BrowseOrAskQuestion": "يمكنك تصفح مواضيع المساعدة الخاصة بنا أو البحث في الأسئلة الشائعة ، أو يمكنك طرح سؤال علينا باستخدام نموذج الاتصال .", + "BrowseOrAskQuestion": "يمكنك تصفح مواضيع المساعدة الخاصة بنا أو البحث في الأسئلة الشائعة ، أو يمكنك طرح سؤال علينا باستخدام نموذج الاتصال .", "SearchQuestionPlaceholder": "البحث في الأسئلة المتداولة", "WhatIsTheABPCommercial": "ما هو برنامج ABP التجاري؟", "WhatAreDifferencesThanAbpFramework": "ما هي الاختلافات بين إطار عمل ABP مفتوح المصدر وإطار عمل ABP التجاري؟", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json index e94c4108aa..9f7d48d78c 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?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json index 5d944a25c7..0f599be1ff 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?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json index 071f025a81..d0cfe5dbcd 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -47,7 +47,7 @@ "UnsubscribeLicenseExpirationEmailSuccessTitle": "Successfully unsubscribed", "UnsubscribeLicenseExpirationEmailSuccessMessage": "You will not receive license expiration date reminder emails anymore.", "IndexPageHeroSection": "A complete web development platformbuilt-on framework", - "AbpCommercialShortDescription": "ABP Commercial provides pre-built application modules, rapid application development tooling, professional UI themes, premium support and more.", + "AbpCommercialShortDescription": "ABP provides pre-built application modules, rapid application development tooling, professional UI themes, premium support and more.", "LiveDemo": "Live Demo", "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.", @@ -67,7 +67,7 @@ "Send": "Send", "WhatIsABPFramework": "WHAT IS THE ABP FRAMEWORK?", "OpenSourceBaseFramework": "Open Source Base Framework", - "ABPFrameworkExplanation": "

ABP Commercial is based on the ABP Framework, an open source and community driven web application framework for ASP.NET Core.

ABP Framework provides an excellent infrastructure to write maintainable, extensible and testable code with the best practices.

Built on and integrated to popular tools you already know. Low learning curve, easy adaptation, comfortable development.

", + "ABPFrameworkExplanation": "

ABP commercial version is based on the ABP Framework, an open source and community driven web application framework for ASP.NET Core.

ABP Framework provides an excellent infrastructure to write maintainable, extensible and testable code with the best practices.

Built on and integrated to popular tools you already know. Low learning curve, easy adaptation, comfortable development.

", "Modular": "Modular", "MicroserviceCompatible": "Microservice compatible", "DomainDrivenDesignInfrastructure": "Domain Driven Design Infrastructure", @@ -81,8 +81,8 @@ "AdvancedLocalization": "Advanced Localization", "ManyMore": "Many more", "ExploreTheABPFramework": "Explore the ABP Framework", - "WhyUseTheABPCommercial": "Why Use The ABP Commercial?", - "WhyUseTheABPCommercialExplanation": "

Building enterprise-grade web applications can be complex and time-consuming.

ABP Commercial offers the perfect base infrastructure necessary for all the modern enterprise-grade ASP.NET Core based solutions. Right from the design to deployment, the entire development cycle is empowered by the ABP's built-in features & modules.

", + "WhyUseTheABPCommercial": "Why Use The ABP Platform?", + "WhyUseTheABPCommercialExplanation": "

Building enterprise-grade web applications can be complex and time-consuming.

ABP offers the perfect base infrastructure necessary for all the modern enterprise-grade ASP.NET Core based solutions. Right from the design to deployment, the entire development cycle is empowered by the ABP's built-in features & modules.

", "StartupTemplatesShortDescription": "Startup templates make you jump-start your project in a few seconds.", "UIFrameworksOptions": "UI frameworks options;", "DatabaseProviderOptions": "Database provider options;", @@ -97,7 +97,7 @@ "TextTemplateManagement": "Text Template Management", "See All Modules": "SeeAllModules", "ABPSuite": "ABP Suite", - "AbpSuiteShortDescription": "ABP Suite is a complementary tool to ABP Commercial.", + "AbpSuiteShortDescription": "ABP Suite is a complementary tool to ABP projects.", "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.", "Details": "Details", "LeptonTheme": "Lepton Theme", @@ -110,7 +110,7 @@ "DarkBlueTheme": "Dark Blue Theme", "LightTheme": "Light Theme", "ProudToWorkWith": "Proud to Work With", - "OurConsumers": "Thousands of enterprises and developers over 70 countries worldwide rely on ABP Commercial.", + "OurConsumers": "Thousands of enterprises and developers over 70 countries worldwide rely on ABP.", "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", @@ -160,50 +160,50 @@ "ABPCLIExplanation": "ABP CLI (Command Line Interface) is a command line tool to perform some common operations 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.", + "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", - "WhatIsTheABPCommercial": "What is ABP Commercial?", - "WhatAreDifferencesThanAbpFramework": "What are the differences between the open source ABP Framework and ABP Commercial?", - "AbpCommercialMetaTitle": " {0} | ABP Commercial", + "WhatIsTheABPCommercial": "What is ABP?", + "WhatAreDifferencesThanAbpFramework": "What are the differences between the open-source ABP and commercial version of ABP?", + "AbpCommercialMetaTitle": " {0} | ABP", "AbpCommercialMetaDescription": "A comprehensive web development platform on ABP Framework with pre-built modules, startup templates, rapid dev tools, pro UI themes & premium support.", - "ABPCommercialExplanation": "ABP Commercial is a set of premium modules, tools, themes and services that are built on top of the open source ABP framework. ABP Commercial is being developed and supported by the same team behind the ABP framework.", + "ABPCommercialExplanation": "ABP Platform is a set of premium modules, tools, themes and services that are built on top of the open source ABP framework. ABP is being developed and supported by the same team behind the ABP framework.", "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} ", - "ABPCommercialFollowingBenefits": "ABP Commercial adds the following benefits on top of the ABP framework:", + "ABPCommercialFollowingBenefits": "ABP commercial version adds the following benefits on top of the ABP framework:", "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", - "WhatDoIDownloadABPCommercial": "What do I download when I purchase the ABP Commercial?", + "WhatDoIDownloadABPCommercial": "What do I download when I purchase the ABP commercial version?", "CreateUnlimitedSolutions": "Once you purchase an ABP Commercial license, you will be able to create unlimited solutions like described in the Getting Started document.", "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.", - "TryTheCommercialDemo": "You can try the Live Demo to see a sample application created using the ABP Commercial startup template.", - "HowManyProducts": "How many different products/solutions can I build using the ABP Commercial?", + "TryTheCommercialDemo": "You can try the Live Demo to see a sample application created using the ABP startup template.", + "HowManyProducts": "How many different products/solutions can I build using the ABP?", "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.", - "HowManyDevelopers": "How many developers can work on the ABP Commercial?", - "HowManyDevelopersExplanation": "ABP Commercial licenses are per developer. Different license types have different developer limits. However, you can add more developers to any license type whenever you need. Check out the Plans & Pricing page for license types, developer limits and additional developer costs.", + "HowManyDevelopers": "How many developers can work on the ABP?", + "HowManyDevelopersExplanation": "ABP licenses are per developer. Different license types have different developer limits. However, you can add more developers to any license type whenever you need. Check out the Plans & Pricing page for license types, developer limits and additional developer costs.", "ChangingLicenseType": "Can I upgrade my license type later?", - "ChangingLicenseTypeExplanation": "You can upgrade to a higher license by paying the difference within your active license period. When you upgrade to a higher license plan, you get the benefits of the new plan, but the license upgrade does not change the license expiry date. Besides, you can also add new developer seats to your existing license, check out the \"How many developers can work on the ABP Commercial?\" FAQ.", + "ChangingLicenseTypeExplanation": "You can upgrade to a higher license by paying the difference within your active license period. When you upgrade to a higher license plan, you get the benefits of the new plan, but the license upgrade does not change the license expiry date. Besides, you can also add new developer seats to your existing license, check out the \"How many developers can work on the ABP?\" FAQ.", "LicenseExtendUpgradeDiff": "What is the difference between license extend and upgrade?", "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 commercial modules and themes?", + "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 source code, which is an external tool that generates code for you and assists your development.

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

", + "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?", - "WhatHappensWhenLicenseEndsExplanation1": "The ABP Commercial license is a perpetual license. After your license expires, you can continue developing your project. And you are not obliged to renew your license. Your license comes with a one-year update and support plan out of the box. In order to continue to get new features, performance enhancements, bug fixes, support and continue using ABP Suite, you need to renew your license. When your license expires;", - "WhatHappensWhenLicenseEndsExplanation2": "You can not create new solutions using the ABP Commercial, but you can continue developing your existing applications forever.", + "WhatHappensWhenLicenseEndsExplanation1": "The ABP license is a perpetual license. After your license expires, you can continue developing your project. And you are not obliged to renew your license. Your license comes with a one-year update and support plan out of the box. In order to continue to get new features, performance enhancements, bug fixes, support and continue using ABP Suite, you need to renew your license. When your license expires;", + "WhatHappensWhenLicenseEndsExplanation2": "You can not create new solutions using the ABP commercial version, but you can continue developing your existing applications forever.", "WhatHappensWhenLicenseEndsExplanation3": "You will be able to get updates for the modules and themes within your MINOR version (except RC or Preview versions). For example, if you are using v3.2.0 of a module, you can still get updates for v3.2.x (v3.2.1, v3.2.5... etc.) of that module. But you cannot get updates for the next major or minor version (like v3.3.0, v3.3.3, 4.x.x.. etc.). For example, when your license expired, the latest release was v4.4.3, and later, it published both 4.4.4 version and 4.5.0 version, you would be able to access the v4.4.X but you wouldn't be access the v4.5.X.", - "WhatHappensWhenLicenseEndsExplanation4": "You can not install new modules and themes added to the ABP Commercial platform after your license ends.", + "WhatHappensWhenLicenseEndsExplanation4": "You can not install new modules and themes added to the ABP commercial platform after your license ends.", "WhatHappensWhenLicenseEndsExplanation5": "You can not use the ABP Suite.", "WhatHappensWhenLicenseEndsExplanation6": "You can not get the premium support anymore.", "WhatHappensWhenLicenseEndsExplanation7": "You can extend (renew) your license if you want to continue getting these benefits. If you extend your license within {3} days after your license expires, the following discounts will be applied: Team License {0}; Business License {1}; Enterprise License {2}.", @@ -212,11 +212,11 @@ "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?", - "TrialPlanExplanation": "Yes, to start your free trial, contact marketing@volosoft.com. We also offer a 30-day money-back guarantee for the Team license, no questions asked! You can request a full refund within the first 30 days of the license purchase. We provide a 60% refund within 30 days for Business and Enterprise licenses. This is because the Business and Enterprise licenses contain the full source-code of all the modules and themes.", + "TrialPlanExplanation": "Yes, to start your free trial, contact marketing@volosoft.com. We also offer a 30-day money-back guarantee for the Team license, no questions asked! You can request a full refund within the first 30 days of the license purchase. We provide a 60% refund within 30 days for Business and Enterprise licenses. This is because the Business and Enterprise licenses contain the full source-code of all the modules and themes.", "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?", - "HowToUpgradeExplanation1": "When you create a new application using ABP Commercial, all the modules and themes are used as NuGet and NPM packages. So, you can easily upgrade the packages when a new version is available.", + "HowToUpgradeExplanation1": "When you create a new application using ABP, all the modules and themes are used as NuGet and NPM packages. So, you can easily upgrade the packages when a new version is available.", "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.", "DatabaseSupport": "Which database systems are supported?", "DatabaseSupportExplanation": "ABP Framework itself is database agnostic and can work with any database provider by its nature. Check out the Data Access document for a list of currently implemented providers.", @@ -225,15 +225,15 @@ "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?", "MicroserviceSupportExplanation1": "One of the major goals of the ABP framework is to provide a convenient infrastructure to create microservice solutions. Check out the Microservice Architecture document to understand how it helps with creating microservice systems.", - "MicroserviceSupportExplanation2": "All the ABP Commercial modules are designed to support microservice deployment scenarios (with its own API and database) by following the Module Development Best Practices document.", + "MicroserviceSupportExplanation2": "All the ABP modules are designed to support microservice deployment scenarios (with its own API and database) by following the Module Development Best Practices document.", "MicroserviceSupportExplanation3": "We provide a sample Microservice Demo Solution that demonstrates a microservice architecture implementation to help you create your own solution.", "MicroserviceSupportExplanation4": "So, the short answer is: \"Yes, it supports microservice architecture\".", "MicroserviceSupportExplanation5": "However, a microservice system is a solution, and every solution will have different requirements, network topology, communication scenarios, authentication possibilities, database sharding/partitioning decisions, runtime configurations, 3rd party system integrations and many more.", - "MicroserviceSupportExplanation6": "The ABP Framework and ABP Commercial provide infrastructure for microservice scenarios, microservice compatible modules, samples and documentation to help you build your own solution. But don't expect to directly download your dream solution pre-built for you. You will need to understand it and bring specific parts together based on your requirements.", + "MicroserviceSupportExplanation6": "ABP provides infrastructure for microservice scenarios, microservice compatible modules, samples and documentation to help you build your own solution. But don't expect to directly download your dream solution pre-built for you. You will need to understand it and bring specific parts together based on your requirements.", "WhereCanIDownloadSourceCode": "Where can I download the source-code?", "WhereCanIDownloadSourceCodeExplanation": "You can download the source code of all the ABP modules, Angular packages and themes via ABP Suite or ABP CLI. Check out How to download the source-code?", "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 Commercial 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.", + "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?", @@ -243,7 +243,7 @@ "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", - "SupportExplanation": "ABP Commercial license provides a premium forum support by a team consisting of the ABP Framework experts.", + "SupportExplanation": "ABP license provides a premium forum support by a team consisting of the ABP Framework experts.", "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.", @@ -271,7 +271,7 @@ "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.", - "AskQuestionsOnSupport": "You can ask questions on ABP Commercial Support.", + "AskQuestionsOnSupport": "You can ask questions on ABP Support.", "Documentation": "Documentation", "SeeModulesDocument": "See the modules page for a list of all the PRO modules.", "Pricing": "Pricing", @@ -322,7 +322,7 @@ "GithubUsername": "GitHub username", "PhoneNumber": "Phone number", "Country": "Country", - "DescribeABPCommercialUsage": "Describe the project you are planning to develop based on APB Commercial", + "DescribeABPCommercialUsage": "Describe the project you are planning to develop based on APB", "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.", @@ -371,7 +371,7 @@ "DDDBookEmailBody": "Thank you.
To download your book, click here.", "StartFree": "Start free", "FreeTrial": "Free Trial", - "AcceptsMarketingCommunications": " Yes, I`d like to receive ABP Commercial marketing communications.", + "AcceptsMarketingCommunications": " Yes, I`d like to receive ABP related marketing news.", "PurposeOfUsage": "Purpose of usage", "Choose": "- Choose -", "CompanyOrganizationName": "Company / Organization name", @@ -400,8 +400,8 @@ "DowngradeLicensePlanExplanation": "You cannot downgrade your existing license plan. But you can purchase a new lower license plan and continue your development on the new license. After you purchase a lower license, you just need to login to your new license plan via ABP CLI command: ` abp login -o `.", "LicenseTransfer": "Can a license be transferred from one developer to another?", "LicenseTransferExplanation": "Yes! When you purchase a license, you become the license holder, hence you will have access to the organization management page. An organization has owner and developer roles. Owners can manage the developer seats and assign developers. Each assigned developer will log in via ABP CLI command into the system and will have development and support permissions.", - "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 Commercial 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 Commercial projects, download the ABP sample projects, and ask questions on the support website. On the other hand, the 'Developers' cannot manage this organization.", + "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?", @@ -421,7 +421,7 @@ "UIFrameworks": "UI Frameworks", "UsefulLinks": "Useful Links", "Platform": "Platform", - "CoolestCompaniesUseABPCommercial": "The coolest companies already use ABP Commercial.", + "CoolestCompaniesUseABPCommercial": "The coolest companies already use ABP.", "UserInterface": "User Interface", "APIGateway": "API Gateway", "Microservice": "Microservice", @@ -462,12 +462,12 @@ "LightDarkAndSemiDarkThemes": "Light, Dark and Semi-Dark", "LeptonXThemeExplanation": "Lepton Theme can change your theme according to your system settings.", "PRO": "PRO", - "WelcomeToABPCommercial": "Welcome to ABP Commercial!", + "WelcomeToABPCommercial": "Welcome to ABP Platform!", "YourAccountDetails": "Your Account Details", "OrganizationName": "Organization Name", "AddDevelopers": "Add Developers", "StartDevelopment": "Start Development", - "CreateAndRunApplicationUsingStartupTemplate": "Learn how to create and run a new web application using the ABP Commercial startup template.", + "CreateAndRunApplicationUsingStartupTemplate": "Learn how to create and run a new web application using the ABP startup templates.", "CommunityDescription2": "community.abp.io 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.", @@ -480,9 +480,9 @@ "MultipleUIOptionsExplanation": "We love different ways to create the User Interface. 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.IO platform. All the application functionalities are split into well-isolated optional modules. The startup solution already comes with the fundamental ABP Commercial modules pre-installed. You can also create your own modules to build a modular system for your own application.", + "ModularArchitectureExplanation2": "Modularity is a first-class citizen in the ABP.IO 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": "ABP Commercial provides a complete, end-to-end multi-tenancy system to create your SaaS (Software-as-a-Service) systems. It allows the tenants to share or have their own databases with on-the-fly database creation and migration system.", + "MultiTenancyForSaasBusinessExplanation": "ABP provides a complete, end-to-end multi-tenancy system to create your SaaS (Software-as-a-Service) 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", @@ -496,7 +496,7 @@ "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 ABP Commercial license", + "MasteringAbpFrameworkEBookDescription": "Included within your ABP license", "FullName": "Full Name", "LicenseTypeNotCorrect": "The license type is not correct!", "Trainings": "Trainings", @@ -517,7 +517,7 @@ "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": "Pricing & Plans", - "Pricing_Page_Description": "Choose the features and functionality your business needs today. Buy an ABP Commercial license and create unlimited projects.", + "Pricing_Page_Description": "Choose the features and functionality your business needs today. Buy an ABP license and create unlimited projects.", "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.", @@ -537,16 +537,16 @@ "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 support.abp.io 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_1": "ABP 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 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.", "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_4": "ABP 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 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 docs.abp.io 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_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 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", + "Pricing_Page_Testimonial_8": "I would recommend ABP 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, 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, 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 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", @@ -607,7 +607,7 @@ "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": "ABP Commercial allows you to build solutions with any level of complexity. It provides two main pre-built startup solutions. You can select the one close to your requirements and build your own custom solution on top of it.", + "StartupTemplates_Page_Description": "ABP allows you to build solutions with any level of complexity. It provides two main pre-built startup solutions. You can select the one close to your requirements and build your own custom solution on top of it.", "MicroserviceStartupSolutionForDotnet": "Microservice Startup Solution for .NET", "MonolithSolutionForDotnet": "Monolith (modular) Solution for .NET", "TrainingDetailsHeaderInfo_TrainingHour": "{0} hours", @@ -619,9 +619,9 @@ "Contact_Page_Title": "Contact with ABP Development Team", "Contact_Page_Description": "Contact with ABP Development team, if you need any help or share your thoughts and opinions! ABP Support Team is ready to help.", "Demo_Page_Title": "Create a Demo", - "Demo_Page_Description": "Create a free demo to see a sample application created using the ABP Commercial startup template. Don't repeat yourself for common application requirements.", + "Demo_Page_Description": "Create a free demo to see a sample application created using the ABP startup templates. Don't repeat yourself for common application requirements.", "Discounted_Page_Title": "Discounted pricing", - "Discounted_Page_Description": "Choose the features and functionality your business needs today. Buy an ABP Commercial license and create unlimited projects", + "Discounted_Page_Description": "Choose the features and functionality your business needs today. Buy an ABP license and create unlimited projects", "Faq_Page_Title": "Frequently Asked Questions (FAQ)", "Faq_Page_Description": "Do you have any questions? Search frequently asked questions or ask us a question using the contact form.", "Faq_Page_SwiftCode": "SWIFT Code", @@ -634,11 +634,11 @@ "ProjectCreatedSuccess_Page_Title": "Your project created", "ProjectCreatedSuccess_Page_Description": "Your ABP project created successfully!", "Suite_Page_Title": "ABP Suite", - "Suite_Page_Description": "ABP Commercial provides rapid application development tooling to increase developer productivity. ABP Suite allows you to create CRUD pages easily.", + "Suite_Page_Description": "ABP provides rapid application development tooling to increase developer productivity. ABP Suite allows you to create CRUD pages easily.", "Themes_Page_Title": "ABP Themes", - "Themes_Page_Description": "ABP Commercial provides multiple professional, modern UI themes. Create a free demo to have a quick view of what the UI looks like.", + "Themes_Page_Description": "ABP provides multiple professional, modern UI themes. Create a free demo to have a quick view of what the UI looks like.", "Tools_Page_Title": "Rapid Application Development Tools", - "Tools_Page_Description": "ABP Commercial provides rapid application development tooling to increase developer productivity. ABP Suite allows you to create CRUD pages easily.", + "Tools_Page_Description": "ABP provides rapid application development tooling to increase developer productivity. ABP Suite allows you to create CRUD pages easily.", "DeveloperPrice": "Developer Price", "AdditionalDeveloperPaymentInfoSection_AdditionalDevelopers": "{0} developers", "LicenseRemainingDays": "for {0} days", @@ -669,10 +669,10 @@ "Landing_Page_ChatModule": "Chat", "Landing_Page_DocsModule": "Docs", "Landing_Page_FileManagementModule": "File Management", - "Landing_Page_CustomerStory_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.", - "Landing_Page_CustomerStory_2": "We see the value of using ABP Commercial to reduce the overhead of custom development projects. The team can 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.", + "Landing_Page_CustomerStory_1": "ABP 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.", + "Landing_Page_CustomerStory_2": "We see the value of using ABP to reduce the overhead of custom development projects. The team can 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.", "Landing_Page_CustomerStory_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, or issue fixing, or improvement comes out very soon\n every other week. We don't wait too long.", - "Landing_Page_CustomerStory_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.", + "Landing_Page_CustomerStory_4": "ABP 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 was the best fit for our needs.", "Landing_Page_AdditionalServices": "Custom or volume license, onboarding, live training & support, custom project development, porting existing projects and more...", "Landing_Page_IncludedDeveloperLicenses": "Included {0} developer licenses", "Landing_Page_SeeOnDemo": "See on Demo", @@ -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 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!", @@ -745,15 +745,15 @@ "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...", - "ReadAbpCommercialUsersWantYouToKnow": "Read what ABP Commercial users want you to know", + "ReadAbpCommercialUsersWantYouToKnow": "Read what ABP users want you to know", "Testimonial_ShortDescription_1": "The modularity of ABP made it possible for the team to deliver in time.", "Testimonial_ShortDescription_2": "Build new features faster than before.", "Testimonial_ShortDescription_3": "We start from out-of-the-box features and just focus on what we really need to write.", - "Testimonial_ShortDescription_4": "ABP Commercial was the best fit for our needs.", - "OnlineReviewersOnAbpCommercial": "Online Reviews on ABP Commercial", - "SeeWhatToldAboutAbpCommercial": "See what has been told about ABP Commercial and write your thoughts if you want.", + "Testimonial_ShortDescription_4": "ABP was the best fit for our needs.", + "OnlineReviewersOnAbpCommercial": "Online Reviews on ABP", + "SeeWhatToldAboutAbpCommercial": "See what has been told about ABP and write your thoughts if you want.", "BlazoriseLicense": "Do we need to buy a Blazorise license?", - "BlazoriseLicenseExplanation": "We have an agreement between Volosoft and Megabit, with this agreement Blazorise license is bundled with ABP Commercial products therefore our customers do not need to purchase an extra Blazorise license.", + "BlazoriseLicenseExplanation": "We have an agreement between Volosoft and Megabit, with this agreement Blazorise license is bundled with ABP products therefore our customers do not need to purchase an extra Blazorise license.", "ExtendPaymentInfoSection_DeveloperPrice": "{0}x Additional Developer(s)", "ExtendPaymentInfoSection_DiscountRate": "Discount {0}%", "TotalNetPrice": "Total Net Price", @@ -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 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.", "TotalDevelopers": "Total {0} developer(s)", "CustomPurchaseExplanation": "Tailored to your specific needs", "WhereDidYouHearAboutUs": "Where did you hear about us?", @@ -845,11 +845,11 @@ "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.", + "BlazoriseSupportExplanation4": "If you have an active ABP Paid 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.", + "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", @@ -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": "ABP.IO 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.IO 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.", + "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.", @@ -945,9 +945,9 @@ "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 Commercial solutions.", + "MobileApplicationStartupTemplates_Description1": "Integrated mobile application startup templates for your ABP solutions.", "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates": "Create Powerful line-of-business Applications using ABP Mobile Startup Templates", - "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates_Description1": "ABP Commercial 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_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.", @@ -1011,7 +1011,7 @@ "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 Framework 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 Commercial presents a collection of polished and contemporary themes.", + "UITheme&Layout_ABPSOLUTION_Description": "ABP Framework 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": "Test Infrastructure", "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.", @@ -1068,10 +1068,10 @@ "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_Description2": "ABP commercial version 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.", + "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.", @@ -1127,13 +1127,13 @@ "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": "You have no cards saved.", + "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": "There is no developer.", + "ThereIsNoDeveloper": "No developer added.", "CardDetails": "Debit/Credit Card Details", "YearCantBeNull": "Year field cannot be empty.", "CardHolderName": "Name on Card", @@ -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 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..da6b73e5f8 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json @@ -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?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json index 57d76027b2..6e7713a84f 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?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json index 7bc6e12e95..9f597be12c 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?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json index 9d202f3d5d..8ed7a3dd2a 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 कमर्शियल के बीच क्या अंतर हैं?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json index b51e3b94ee..7d268d1d87 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?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json index ac1f74eafc..7ac67635df 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?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json index 475ef5f98f..12bfd1de8c 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?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json index c668db7414..944be84b00 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?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json index d99901743e..88ec064f7c 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?", 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..e21262412b 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?", 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..f2822ae43b 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?", 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..0f2a61fe2a 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?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json index 0842b8ee55..d08d737d5a 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?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json index 6abcbcf1bf..b608be23ce 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?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json index 880006579c..ec160fea38 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?", 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..fd191d27a5 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?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json index a944e8e193..72bc10f649 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ì?", 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..a0e17b5e66 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 商业版之间有哪些区别?", 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..a3ff8212da 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商業版有什麽不同?", 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/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.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json index d35936411c..f7ed9a3df4 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json @@ -29,7 +29,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 +94,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", @@ -114,13 +114,12 @@ "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 +136,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,11 +150,9 @@ "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", @@ -185,7 +182,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 +191,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 +202,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 +232,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?", @@ -261,7 +255,6 @@ "Name": "Name", "Surname": "Surname", "CompanyName": "Company name", - "DoYouAgreePrivacyPolicy": "I agree to the Terms & Conditions and Privacy Policy.", "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 +269,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 +293,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 +302,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", @@ -373,7 +366,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", @@ -395,8 +388,8 @@ "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 +417,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 Framework.", "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 +433,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 +461,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 +475,1354 @@ "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 Log UI, GDPR, Identity, Language Management, LeptonX PRO, OpenIddict UI and SaaS. Personal License holders cannot use the following modules: Chat, CMS-Kit PRO, Forms, Identity Server User Interface, Lepton Theme, Text Template Management, File 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.", + "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": "Share your experiences with the ABP Framework!", + "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 Community Events", + "Events_Page_MetaDescription": "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.", + "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": "ABP Community's purpose is to create a contribution environment for developers who use the ABP framework.", + "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", + "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?", + "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", + "AddDevelopers": "Add Developers", + "StartDevelopment": "Start Development", + "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.", + "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": "Pricing", + "Pricing_Page_Description": "See the different licensing plans of the ABP Platform, 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 Demo", + "Demo_Page_Description": "Create a free demo to see a sample application created using the ABP startup template. Don't repeat yourself for common application requirements.", + "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", + "Faq_Page_Title": "Frequently Asked Questions", + "Faq_Page_Description": "Find answers to common questions about ABP Framework 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)", + "PrivacyPolicyPageTitle": "Privacy Policy - Cookie Policy", + "TermsConditionsPageTitle": "Terms and Conditions", + "TrainingsPageTitle": "Training Packages", + "ModulesPageTitle": "ABP Modules", + "ModulesPageDescription": "Extend and customize your application with ABP's modular architecture, providing flexibility and scalability.", + "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 Framework works with detailed documentation, including guides and best practices.", + "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", + "AbpStudio_Page_Description": "Explore ABP Studio, an integrated development environment for the ABP Platform, enhancing your development process.", + "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 how to reduce your development costs by more than %50.", + "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", + "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? | ABP.IO", + "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 | ABP.IO", + "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.", + "GetStartedPageTitle": "Quickly get started with ABP Framework using our comprehensive guide, designed for new users.", + "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 | ABP Framework", + "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 | ABP.IO", + "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." } } \ 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/common.props b/common.props index 305a1fc8d4..f189fd7d3f 100644 --- a/common.props +++ b/common.props @@ -1,8 +1,8 @@ latest - 8.3.0-rc.1 - 3.3.0-rc.1 + 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-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-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/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/images/angular-template-structure-diagram.png b/docs/en/images/angular-template-structure-diagram.png index 159248352c..dd7a4e5cc7 100644 Binary files a/docs/en/images/angular-template-structure-diagram.png and b/docs/en/images/angular-template-structure-diagram.png differ diff --git a/docs/en/images/auditlog-object-diagram.png b/docs/en/images/auditlog-object-diagram.png index 3e42fa1990..cfca7cd46b 100644 Binary files a/docs/en/images/auditlog-object-diagram.png and b/docs/en/images/auditlog-object-diagram.png differ diff --git a/docs/en/images/deployment-clustered.png b/docs/en/images/deployment-clustered.png index fe7c8b1179..2697b9e7a1 100644 Binary files a/docs/en/images/deployment-clustered.png and b/docs/en/images/deployment-clustered.png differ diff --git a/docs/en/images/deployment-single-instance.png b/docs/en/images/deployment-single-instance.png index 59a0824b27..4224ce53ac 100644 Binary files a/docs/en/images/deployment-single-instance.png and b/docs/en/images/deployment-single-instance.png differ diff --git a/docs/en/images/generic-repositories.png b/docs/en/images/generic-repositories.png index afaa01f783..6287afc56c 100644 Binary files a/docs/en/images/generic-repositories.png and b/docs/en/images/generic-repositories.png differ diff --git a/docs/en/images/integration-services.png b/docs/en/images/integration-services.png index 332e7cffdb..edd3a0b517 100644 Binary files a/docs/en/images/integration-services.png and b/docs/en/images/integration-services.png differ diff --git a/docs/en/images/layered-project-dependencies-blazor-server.png b/docs/en/images/layered-project-dependencies-blazor-server.png index 60c39c232a..747c5e4f0a 100644 Binary files a/docs/en/images/layered-project-dependencies-blazor-server.png and b/docs/en/images/layered-project-dependencies-blazor-server.png differ diff --git a/docs/en/images/layered-project-dependencies-blazor-wasm.png b/docs/en/images/layered-project-dependencies-blazor-wasm.png index 3ea76ace57..54678b3c3e 100644 Binary files a/docs/en/images/layered-project-dependencies-blazor-wasm.png and b/docs/en/images/layered-project-dependencies-blazor-wasm.png differ diff --git a/docs/en/images/layered-project-dependencies-module.png b/docs/en/images/layered-project-dependencies-module.png index ed08aa2e67..68dc214ee9 100644 Binary files a/docs/en/images/layered-project-dependencies-module.png and b/docs/en/images/layered-project-dependencies-module.png differ diff --git a/docs/en/images/layered-project-dependencies.png b/docs/en/images/layered-project-dependencies.png index 764bf2c996..1d5c4f1195 100644 Binary files a/docs/en/images/layered-project-dependencies.png and b/docs/en/images/layered-project-dependencies.png differ diff --git a/docs/en/images/multiple-database-usage.png b/docs/en/images/multiple-database-usage.png index 705d13703e..24655fb746 100644 Binary files a/docs/en/images/multiple-database-usage.png and b/docs/en/images/multiple-database-usage.png differ diff --git a/docs/en/images/payment-module-flow.png b/docs/en/images/payment-module-flow.png index 768d997901..a24e530d70 100644 Binary files a/docs/en/images/payment-module-flow.png and b/docs/en/images/payment-module-flow.png differ diff --git a/docs/en/images/react-native-navigation-structure.png b/docs/en/images/react-native-navigation-structure.png index 7300e7dadf..0b499257fc 100644 Binary files a/docs/en/images/react-native-navigation-structure.png and b/docs/en/images/react-native-navigation-structure.png differ diff --git a/docs/en/images/single-database-usage.png b/docs/en/images/single-database-usage.png index eb01239c01..286c816a50 100644 Binary files a/docs/en/images/single-database-usage.png and b/docs/en/images/single-database-usage.png differ diff --git a/docs/en/images/tiered-solution-applications-authserver.png b/docs/en/images/tiered-solution-applications-authserver.png index 550e76d772..1b79af73d0 100644 Binary files a/docs/en/images/tiered-solution-applications-authserver.png and b/docs/en/images/tiered-solution-applications-authserver.png differ diff --git a/docs/en/images/tiered-solution-applications.png b/docs/en/images/tiered-solution-applications.png index e7be4e1e7d..77eb23752e 100644 Binary files a/docs/en/images/tiered-solution-applications.png and b/docs/en/images/tiered-solution-applications.png differ diff --git a/docs/en/images/tiered-solution-servers.png b/docs/en/images/tiered-solution-servers.png index 72389ed741..77233195d3 100644 Binary files a/docs/en/images/tiered-solution-servers.png and b/docs/en/images/tiered-solution-servers.png differ diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/Extensibility/TableColumns/TableColumn.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/Extensibility/TableColumns/TableColumn.cs index 89cdb33729..07043e151b 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/Extensibility/TableColumns/TableColumn.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/Extensibility/TableColumns/TableColumn.cs @@ -9,8 +9,11 @@ namespace Volo.Abp.AspNetCore.Components.Web.Extensibility.TableColumns; public class TableColumn { public string Title { get; set; } = default!; + public string Data { get; set; } = default!; + public string Width { get; set; } = default!; + public string PropertyName { get; set; } = default!; public string? DisplayFormat { get; set; } @@ -24,7 +27,7 @@ public class TableColumn public Func? ValueConverter { get; set; } public bool Sortable { get; set; } - + public bool Visible { get; set; } = true; public TableColumn() diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/MultiTenant/WebAssemblyMultiTenantUrlOptions.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/MultiTenant/WebAssemblyMultiTenantUrlOptions.cs new file mode 100644 index 0000000000..b957e11dfb --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/MultiTenant/WebAssemblyMultiTenantUrlOptions.cs @@ -0,0 +1,6 @@ +namespace Volo.Abp.AspNetCore.Components.WebAssembly.MultiTenant; + +public class WebAssemblyMultiTenantUrlOptions +{ + public string DomainFormat { get; set; } = default!; +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/MultiTenant/WebAssemblyMultiTenantUrlProvider.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/MultiTenant/WebAssemblyMultiTenantUrlProvider.cs new file mode 100644 index 0000000000..b8ed7519cb --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/MultiTenant/WebAssemblyMultiTenantUrlProvider.cs @@ -0,0 +1,49 @@ +using System; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Components; +using Microsoft.Extensions.Options; +using Volo.Abp.DependencyInjection; +using Volo.Abp.MultiTenancy; +using Volo.Abp.Text.Formatting; + +namespace Volo.Abp.AspNetCore.Components.WebAssembly.MultiTenant; + +[Dependency(ReplaceServices = true)] +[ExposeServices(typeof(IMultiTenantUrlProvider), typeof(MultiTenantUrlProvider))] +public class WebAssemblyMultiTenantUrlProvider : MultiTenantUrlProvider +{ + private readonly static string[] ProtocolPrefixes = ["http://", "https://"]; + + protected NavigationManager NavigationManager { get; } + protected IOptions Options { get; } + + public WebAssemblyMultiTenantUrlProvider( + ICurrentTenant currentTenant, + ITenantStore tenantStore, + NavigationManager navigationManager, + IOptions options) + : base(currentTenant, tenantStore) + { + NavigationManager = navigationManager; + Options = options; + } + + public async override Task GetUrlAsync(string templateUrl) + { + if (!Options.Value.DomainFormat.IsNullOrEmpty() && !CurrentTenant.IsAvailable) + { + // If the domain format is configured and the tenant is not available + // try to extract the tenant name from the current blazor URL. + var url = NavigationManager.ToAbsoluteUri(NavigationManager.Uri).Authority; + var domainFormat = Options.Value.DomainFormat.RemovePreFix(ProtocolPrefixes).RemovePostFix("/"); + var extractResult = FormattedStringValueExtracter.Extract(url, domainFormat, ignoreCase: true); + if (extractResult.IsMatch) + { + var tenant = extractResult.Matches[0].Value; + return templateUrl.Replace(TenantPlaceHolder, tenant).Replace(TenantIdPlaceHolder, tenant).Replace(TenantNamePlaceHolder, tenant); + } + } + + return await base.GetUrlAsync(templateUrl); + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyDto.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyDto.cs index 68a915309d..db9a968846 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyDto.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyDto.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using JetBrains.Annotations; namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending; @@ -17,6 +16,8 @@ public class ExtensionPropertyDto public ExtensionPropertyUiDto Ui { get; set; } + public ExtensionPropertyPolicyDto Policy { get; set; } + public List Attributes { get; set; } public Dictionary Configuration { get; set; } @@ -27,6 +28,7 @@ public class ExtensionPropertyDto { Api = new ExtensionPropertyApiDto(); Ui = new ExtensionPropertyUiDto(); + Policy = new ExtensionPropertyPolicyDto(); Attributes = new List(); Configuration = new Dictionary(); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyFeaturePolicyDto.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyFeaturePolicyDto.cs new file mode 100644 index 0000000000..1e4f65d702 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyFeaturePolicyDto.cs @@ -0,0 +1,11 @@ +using System; + +namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending; + +[Serializable] +public class ExtensionPropertyFeaturePolicyDto +{ + public string[] Features { get; set; } = default!; + + public bool RequiresAll { get; set; } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyGlobalFeaturePolicyDto.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyGlobalFeaturePolicyDto.cs new file mode 100644 index 0000000000..80b8430257 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyGlobalFeaturePolicyDto.cs @@ -0,0 +1,11 @@ +using System; + +namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending; + +[Serializable] +public class ExtensionPropertyGlobalFeaturePolicyDto +{ + public string[] Features { get; set; } = default!; + + public bool RequiresAll { get; set; } = default!; +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyPermissionPolicyDto.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyPermissionPolicyDto.cs new file mode 100644 index 0000000000..55f3199f0d --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyPermissionPolicyDto.cs @@ -0,0 +1,11 @@ +using System; + +namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending; + +[Serializable] +public class ExtensionPropertyPermissionPolicyDto +{ + public string[] PermissionNames { get; set; } = default!; + + public bool RequiresAll { get; set; } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyPolicyDto.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyPolicyDto.cs new file mode 100644 index 0000000000..37bf1d3404 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyPolicyDto.cs @@ -0,0 +1,24 @@ +using System; +using JetBrains.Annotations; + +namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending; + +[Serializable] +public class ExtensionPropertyPolicyDto +{ + [NotNull] + public ExtensionPropertyGlobalFeaturePolicyDto GlobalFeatures { get; set; } + + [NotNull] + public ExtensionPropertyFeaturePolicyDto Features { get; set; } + + [NotNull] + public ExtensionPropertyPermissionPolicyDto Permissions { get; set; } + + public ExtensionPropertyPolicyDto() + { + GlobalFeatures = new ExtensionPropertyGlobalFeaturePolicyDto(); + Features = new ExtensionPropertyFeaturePolicyDto(); + Permissions = new ExtensionPropertyPermissionPolicyDto(); + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/ScriptTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/ScriptTagHelper.cs new file mode 100644 index 0000000000..69b4aac627 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/ScriptTagHelper.cs @@ -0,0 +1,45 @@ +using System; +using System.Linq; +using Microsoft.AspNetCore.Razor.TagHelpers; +using Microsoft.Extensions.Options; +using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers; + +[HtmlTargetElement("script")] +public class ScriptTagHelper : AbpTagHelper +{ + protected AbpBundlingOptions Options { get; } + + [HtmlAttributeName("deferred")] + public bool? Deferred { get; set; } + + public ScriptTagHelper(IOptions options) + { + Options = options.Value; + } + public override void Process(TagHelperContext context, TagHelperOutput output) + { + if(Deferred == true) + { + output.Attributes.Add("defer", ""); + return; + } + else if (Deferred == false) + { + return; + } + + if (Options.DeferScriptsByDefault) + { + output.Attributes.Add("defer", ""); + } + + var src = output.Attributes["src"]?.Value?.ToString(); + + if (!src.IsNullOrWhiteSpace() && Options.DeferScripts.Any(x => src.Equals(x, StringComparison.OrdinalIgnoreCase))) + { + output.Attributes.Add("defer", ""); + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/sv.json b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/sv.json new file mode 100644 index 0000000000..66737dc8e1 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/sv.json @@ -0,0 +1,13 @@ +{ + "culture": "sv", + "texts": { + "GivenTenantIsNotExist": "Given hyresgäst existerar inte: {0}", + "GivenTenantIsNotAvailable": "Angiven hyresgäst är inte tillgänglig: {0}", + "Tenant": "Hyresgäst", + "Switch": "Växla", + "Name": "Namn", + "SwitchTenantHint": "Lämna namnfältet tomt för att växla till värdsidan.", + "SwitchTenant": "Byta hyresgäst", + "NotSelected": "Ej vald" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/dom-event-handlers.js b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/dom-event-handlers.js index c9f7e09c07..3199900536 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/dom-event-handlers.js +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/dom-event-handlers.js @@ -210,7 +210,7 @@ abp.dom.initializers.initializeForms(args.$el.findWithSelf('form'), true); abp.dom.initializers.initializeScript(args.$el); abp.dom.initializers.initializeAutocompleteSelects(args.$el.findWithSelf('.auto-complete-select')); - abp.dom.initializers.initializeAbpCspStyles($("link[abp-csp-style]")); + abp.dom.initializers.initializeAbpCspStyles(args.$el.findWithSelf("link[abp-csp-style]")); }); abp.dom.onNodeRemoved(function (args) { diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/ui-extensions.js b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/ui-extensions.js index 0433ed22ad..97348ccb3a 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/ui-extensions.js +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/ui-extensions.js @@ -187,6 +187,14 @@ var abp = abp || {}; for (var i = 0; i < propertyNames.length; i++) { var propertyName = propertyNames[i]; var propertyConfig = objectConfig.properties[propertyName]; + + var policy = propertyConfig.policy; + if (!checkPolicy(policy.globalFeatures.features, policy.globalFeatures.requiresAll, abp.globalFeatures.isEnabled) || + !checkPolicy(policy.features.features, policy.features.requiresAll, abp.features.isEnabled) || + !checkPolicy(policy.permissions.permissionNames, policy.permissions.requiresAll, abp.auth.isGranted)) { + continue; + } + if (propertyConfig.ui.onTable.isVisible) { if (propertyName.endsWith("_Text")) { var lookupPropertyName = propertyName.replace("_Text", ""); @@ -216,6 +224,29 @@ var abp = abp || {}; return tableProperties; } + function checkPolicy(names, requiresAll, checkFunc) { + if (names.length === 0) { + return true; + } + + var hasAny = false; + for (var i = 0; i < names.length; i++) { + if (!checkFunc(names[i])) { + if (requiresAll) { + return false; + } + } + else { + hasAny = true; + if (!requiresAll) { + break; + } + } + } + + return hasAny; + } + function getValueFromRow(property, row) { return row.extraProperties[property.name]; } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/CachedObjectExtensionsDtoService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/CachedObjectExtensionsDtoService.cs index 66232802c0..10900f6ee4 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/CachedObjectExtensionsDtoService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/CachedObjectExtensionsDtoService.cs @@ -142,6 +142,24 @@ public class CachedObjectExtensionsDtoService : ICachedObjectExtensionsDtoServic { IsVisible = propertyConfig.UI.OnTable.IsVisible } + }, + Policy = new ExtensionPropertyPolicyDto + { + GlobalFeatures = new ExtensionPropertyGlobalFeaturePolicyDto + { + Features = propertyConfig.Policy.Features.Features, + RequiresAll = propertyConfig.Policy.Features.RequiresAll + }, + Features = new ExtensionPropertyFeaturePolicyDto + { + Features = propertyConfig.Policy.Features.Features, + RequiresAll = propertyConfig.Policy.Features.RequiresAll + }, + Permissions = new ExtensionPropertyPermissionPolicyDto + { + PermissionNames = propertyConfig.Policy.Permissions.PermissionNames, + RequiresAll = propertyConfig.Policy.Permissions.RequiresAll + } } }; @@ -157,7 +175,6 @@ public class CachedObjectExtensionsDtoService : ICachedObjectExtensionsDtoServic }; } - foreach (var attribute in propertyConfig.Attributes) { extensionPropertyDto.Attributes.Add( diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/ObjectExtending/MvcExtensionPropertyPolicyChecker.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/ObjectExtending/MvcExtensionPropertyPolicyChecker.cs new file mode 100644 index 0000000000..79195cc7c4 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/ObjectExtending/MvcExtensionPropertyPolicyChecker.cs @@ -0,0 +1,37 @@ + +using System.Threading.Tasks; +using Volo.Abp.Authorization.Permissions; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Features; +using Volo.Abp.GlobalFeatures; + +namespace Volo.Abp.ObjectExtending; + +[Dependency(ReplaceServices = true)] +[ExposeServices(typeof(ExtensionPropertyPolicyChecker))] +public class MvcExtensionPropertyPolicyChecker : ExtensionPropertyPolicyChecker +{ + protected IFeatureChecker FeatureChecker { get; } + protected IPermissionChecker PermissionChecker { get; } + + public MvcExtensionPropertyPolicyChecker(IFeatureChecker featureChecker, IPermissionChecker permissionChecker) + { + FeatureChecker = featureChecker; + PermissionChecker = permissionChecker; + } + + protected override Task CheckGlobalFeaturesAsync(string featureName) + { + return Task.FromResult(GlobalFeatureManager.Instance.IsEnabled(featureName)); + } + + protected async override Task CheckFeaturesAsync(string featureName) + { + return await FeatureChecker.IsEnabledAsync(featureName); + } + + protected async override Task CheckPermissionsAsync(string permissionName) + { + return await PermissionChecker.IsGrantedAsync(permissionName); + } +} diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Localization/sv.json b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Localization/sv.json new file mode 100644 index 0000000000..eabdca7cd1 --- /dev/null +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Localization/sv.json @@ -0,0 +1,10 @@ +{ + "culture": "sv", + "texts": { + "Volo.Authorization:010001": "Auktorisering misslyckades! Angiven policy har inte beviljats.", + "Volo.Authorization:010002": "Auktorisering misslyckades! Angiven policy har inte beviljat: {Policynamn}", + "Volo.Authorization:010003": "Auktorisering misslyckades! Given policy har inte beviljats för given resurs: {Resursnamn}", + "Volo.Authorization:010004": "Auktorisering misslyckades! Givet krav har inte beviljats för given resurs: {Resursnamn}", + "Volo.Authorization:010005": "Auktorisering misslyckades! Givet krav har inte beviljats för given resurs: {Resursnamn}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.BlazoriseUI/AbpBlazoriseUIModule.cs b/framework/src/Volo.Abp.BlazoriseUI/AbpBlazoriseUIModule.cs index 198dce54fc..a18e584705 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/AbpBlazoriseUIModule.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/AbpBlazoriseUIModule.cs @@ -5,6 +5,8 @@ using Microsoft.Extensions.DependencyInjection.Extensions; using Volo.Abp.Application; using Volo.Abp.AspNetCore.Components.Web; using Volo.Abp.Authorization; +using Volo.Abp.Features; +using Volo.Abp.GlobalFeatures; using Volo.Abp.Modularity; namespace Volo.Abp.BlazoriseUI; @@ -12,7 +14,9 @@ namespace Volo.Abp.BlazoriseUI; [DependsOn( typeof(AbpAspNetCoreComponentsWebModule), typeof(AbpDddApplicationContractsModule), - typeof(AbpAuthorizationModule) + typeof(AbpAuthorizationModule), + typeof(AbpGlobalFeaturesModule), + typeof(AbpFeaturesModule) )] public class AbpBlazoriseUIModule : AbpModule { @@ -32,4 +36,4 @@ public class AbpBlazoriseUIModule : AbpModule context.Services.Replace(ServiceDescriptor.Scoped()); context.Services.AddSingleton(typeof(AbpBlazorMessageLocalizerHelper<>)); } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs b/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs index 0e99a94460..1018eb3efa 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs @@ -177,7 +177,7 @@ public abstract class AbpCrudPageBase< [Inject] protected TAppService AppService { get; set; } = default!; [Inject] protected IStringLocalizer UiLocalizer { get; set; } = default!; [Inject] public IAbpEnumLocalizer AbpEnumLocalizer { get; set; } = default!; - + [Inject]protected ExtensionPropertyPolicyChecker ExtensionPropertyPolicyChecker { get; set; } = default!; protected virtual int PageSize { get; } = LimitedResultRequestDto.DefaultMaxResultCount; protected int CurrentPage = 1; @@ -642,23 +642,29 @@ public abstract class AbpCrudPageBase< return ValueTask.CompletedTask; } - protected virtual IEnumerable GetExtensionTableColumns(string moduleName, string entityType) + protected virtual async Task> GetExtensionTableColumnsAsync(string moduleName, string entityType) { - var properties = ModuleExtensionConfigurationHelper.GetPropertyConfigurations(moduleName, entityType); + var tableColumns = new List(); + var properties = ModuleExtensionConfigurationHelper.GetPropertyConfigurations(moduleName, entityType).ToList(); foreach (var propertyInfo in properties) { + if (!await ExtensionPropertyPolicyChecker.CheckPolicyAsync(propertyInfo.Policy)) + { + continue; + } + if (propertyInfo.IsAvailableToClients && propertyInfo.UI.OnTable.IsVisible) { if (propertyInfo.Name.EndsWith("_Text")) { var lookupPropertyName = propertyInfo.Name.RemovePostFix("_Text"); var lookupPropertyDefinition = properties.SingleOrDefault(t => t.Name == lookupPropertyName)!; - yield return new TableColumn + tableColumns.Add(new TableColumn { Title = lookupPropertyDefinition.GetLocalizedDisplayName(StringLocalizerFactory), Data = $"ExtraProperties[{propertyInfo.Name}]", PropertyName = propertyInfo.Name - }; + }); } else { @@ -680,9 +686,11 @@ public abstract class AbpCrudPageBase< AbpEnumLocalizer.GetString(propertyInfo.Type, val.As().ExtraProperties[propertyInfo.Name]!, new IStringLocalizer?[]{ StringLocalizerFactory.CreateDefaultOrNull() }); } - yield return column; + tableColumns.Add(column); } } } + + return tableColumns; } } diff --git a/framework/src/Volo.Abp.BlazoriseUI/BlazoriseExtensionPropertyPolicyChecker.cs b/framework/src/Volo.Abp.BlazoriseUI/BlazoriseExtensionPropertyPolicyChecker.cs new file mode 100644 index 0000000000..77fbf9dad3 --- /dev/null +++ b/framework/src/Volo.Abp.BlazoriseUI/BlazoriseExtensionPropertyPolicyChecker.cs @@ -0,0 +1,37 @@ +using System.Threading.Tasks; +using Volo.Abp.Authorization.Permissions; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Features; +using Volo.Abp.GlobalFeatures; +using Volo.Abp.ObjectExtending; + +namespace Volo.Abp.BlazoriseUI; + +[Dependency(ReplaceServices = true)] +[ExposeServices(typeof(ExtensionPropertyPolicyChecker))] +public class BlazoriseExtensionPropertyPolicyChecker : ExtensionPropertyPolicyChecker +{ + protected IFeatureChecker FeatureChecker { get; } + protected IPermissionChecker PermissionChecker { get; } + + public BlazoriseExtensionPropertyPolicyChecker(IFeatureChecker featureChecker, IPermissionChecker permissionChecker) + { + FeatureChecker = featureChecker; + PermissionChecker = permissionChecker; + } + + protected override Task CheckGlobalFeaturesAsync(string featureName) + { + return Task.FromResult(GlobalFeatureManager.Instance.IsEnabled(featureName)); + } + + protected async override Task CheckFeaturesAsync(string featureName) + { + return await FeatureChecker.IsEnabledAsync(featureName); + } + + protected async override Task CheckPermissionsAsync(string permissionName) + { + return await PermissionChecker.IsGrantedAsync(permissionName); + } +} diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor index ae87961e21..aa0ad21bac 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor @@ -74,7 +74,7 @@ { @if (column.ValueConverter == null) { - + @RenderCustomTableColumnComponent(column.Component, context!) @@ -82,7 +82,7 @@ } else { - + @RenderCustomTableColumnComponent(column.Component, context!) @@ -97,6 +97,7 @@ { @@ -118,7 +120,7 @@ } else { - + @{ var entity = context as IHasExtraProperties; diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/ExtensionProperties.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/ExtensionProperties.razor index aa546793b9..e43426a7ef 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/ExtensionProperties.razor +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/ExtensionProperties.razor @@ -6,7 +6,7 @@ @{ Entity.SetDefaultsForExtraProperties(); - foreach (var propertyInfo in ObjectExtensionManager.Instance.GetProperties()) + foreach (var propertyInfo in Properties) { if (!propertyInfo.Name.EndsWith("_Text")) { diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/ExtensionProperties.razor.cs b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/ExtensionProperties.razor.cs index beba718f0b..4890e2c369 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/ExtensionProperties.razor.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/ExtensionProperties.razor.cs @@ -1,4 +1,8 @@ -using Microsoft.AspNetCore.Components; +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Components; using Microsoft.Extensions.Localization; using Volo.Abp.AspNetCore.Components.Web; using Volo.Abp.Data; @@ -17,7 +21,17 @@ public partial class ExtensionProperties : Component [Parameter] public TEntityType Entity { get; set; } = default!; - + + [Inject] + public IServiceProvider ServiceProvider { get; set; } = default!; + [Parameter] public ExtensionPropertyModalType? ModalType { get; set; } + + public ImmutableList Properties { get; set; } = ImmutableList.Empty; + + protected async override Task OnInitializedAsync() + { + Properties = await ObjectExtensionManager.Instance.GetPropertiesAndCheckPolicyAsync(ServiceProvider); + } } diff --git a/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj b/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj index b391a5c7ef..ab0c8bc440 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj +++ b/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj @@ -13,6 +13,8 @@ + + diff --git a/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Localization/Resources/AbpDdd/sv.json b/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Localization/Resources/AbpDdd/sv.json new file mode 100644 index 0000000000..f77f85e6c9 --- /dev/null +++ b/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Localization/Resources/AbpDdd/sv.json @@ -0,0 +1,6 @@ +{ + "culture": "sv", + "texts": { + "MaxResultCountExceededExceptionMessage": "{0} kan inte vara mer än {1}! Öka {2}.{3} på serversidan för att tillåta fler resultat." + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/sv.json b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/sv.json new file mode 100644 index 0000000000..f63a0177f1 --- /dev/null +++ b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/sv.json @@ -0,0 +1,25 @@ +{ + "culture": "sv", + "texts": { + "DisplayName:Abp.Mailing.DefaultFromAddress": "Standard från adress", + "DisplayName:Abp.Mailing.DefaultFromDisplayName": "Standard från visningsnamn", + "DisplayName:Abp.Mailing.Smtp.Host": "Värd", + "DisplayName:Abp.Mailing.Smtp.Port": "Port", + "DisplayName:Abp.Mailing.Smtp.UserName": "Användarens namn", + "DisplayName:Abp.Mailing.Smtp.Password": "Lösenord", + "DisplayName:Abp.Mailing.Smtp.Domain": "Domän", + "DisplayName:Abp.Mailing.Smtp.EnableSsl": "Aktivera SSL", + "DisplayName:Abp.Mailing.Smtp.UseDefaultCredentials": "Använda standardautentiseringsuppgifter", + "Description:Abp.Mailing.DefaultFromAddress": "Standardadressen från", + "Description:Abp.Mailing.DefaultFromDisplayName": "Standard från visningsnamn", + "Description:Abp.Mailing.Smtp.Host": "Namnet på eller IP-adressen till den värd som används för SMTP-transaktioner.", + "Description:Abp.Mailing.Smtp.Port": "Den port som används för SMTP-transaktioner.", + "Description:Abp.Mailing.Smtp.UserName": "Användarnamn som är kopplat till autentiseringsuppgifterna.", + "Description:Abp.Mailing.Smtp.Password": "Lösenordet för det användarnamn som är kopplat till autentiseringsuppgifterna.", + "Description:Abp.Mailing.Smtp.Domain": "Domän- eller datornamnet som verifierar autentiseringsuppgifterna.", + "Description:Abp.Mailing.Smtp.EnableSsl": "Om SmtpClient använder SSL (Secure Sockets Layer) för att kryptera anslutningen.", + "Description:Abp.Mailing.Smtp.UseDefaultCredentials": "Om DefaultCredentials skickas med förfrågningar.", + "TextTemplate:StandardEmailTemplates.Layout": "Standardmall för e-postlayout", + "TextTemplate:StandardEmailTemplates.Message": "Enkel meddelandemall för e-post" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/sv.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/sv.json new file mode 100644 index 0000000000..614fec5984 --- /dev/null +++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/sv.json @@ -0,0 +1,29 @@ +{ + "culture": "sv", + "texts": { + "InternalServerErrorMessage": "Ett internt fel uppstod under din förfrågan!", + "ValidationErrorMessage": "Din begäran är inte giltig!", + "ValidationNarrativeErrorMessageTitle": "Följande fel upptäcktes under valideringen.", + "DefaultErrorMessage": "Ett fel har inträffat!", + "DefaultErrorMessageDetail": "Felinformationen skickades inte av servern.", + "DefaultErrorMessage401": "Du är inte autentiserad!", + "DefaultErrorMessage401Detail": "Du måste logga in för att utföra den här åtgärden.", + "DefaultErrorMessage403": "Du är inte behörig!", + "DefaultErrorMessage403Detail": "Du får inte utföra den här operationen!", + "DefaultErrorMessage404": "Resurs hittades inte!", + "DefaultErrorMessage404Detail": "Den begärda resursen kunde inte hittas på servern!", + "EntityNotFoundErrorMessage": "Det finns ingen entitet {0} med id = {1}!", + "AbpDbConcurrencyErrorMessage": "De uppgifter du har skickat har redan ändrats av en annan användare. Kassera dina ändringar och försök igen.", + "Error": "Fel", + "UnhandledException": "Obehandlat undantag!", + "401Message": "Obehörig", + "403Message": "Förbjudet", + "404Message": "Sidan hittades inte", + "500Message": "Internt serverfel", + "403MessageDetail": "Du är inte behörig att utföra denna operation!", + "404MessageDetail": "Tyvärr, det finns inget på den här adressen.", + "Unauthorized": "Obehörig", + "invalid_token": "Ogiltig token", + "SessionExpired": "Din session har löpt ut. Vänligen logga in igen för att fortsätta i applikationen." + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Features/Volo/Abp/Features/Localization/sv.json b/framework/src/Volo.Abp.Features/Volo/Abp/Features/Localization/sv.json new file mode 100644 index 0000000000..1a9265526b --- /dev/null +++ b/framework/src/Volo.Abp.Features/Volo/Abp/Features/Localization/sv.json @@ -0,0 +1,8 @@ +{ + "culture": "sv", + "texts": { + "Volo.Feature:010001": "Funktionen är inte aktiverad: {Funktionsnamn}", + "Volo.Feature:010002": "Obligatoriska funktioner är inte aktiverade. Alla dessa funktioner måste vara aktiverade: {Funktionsnamn}", + "Volo.Feature:010003": "Nödvändiga funktioner är inte aktiverade. Åtminstone en av dessa funktioner måste vara aktiverad: {Funktionsnamn}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.GlobalFeatures/Volo/Abp/GlobalFeatures/Localization/sv.json b/framework/src/Volo.Abp.GlobalFeatures/Volo/Abp/GlobalFeatures/Localization/sv.json new file mode 100644 index 0000000000..1a40be4b57 --- /dev/null +++ b/framework/src/Volo.Abp.GlobalFeatures/Volo/Abp/GlobalFeatures/Localization/sv.json @@ -0,0 +1,6 @@ +{ + "culture": "sv", + "texts": { + "Volo.GlobalFeature:010001": "Tjänsten '{ServiceName}' måste aktivera funktionen '{GlobalFeatureName}'." + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Ldap.Abstractions/Volo/Abp/Ldap/Localization/sv.json b/framework/src/Volo.Abp.Ldap.Abstractions/Volo/Abp/Ldap/Localization/sv.json new file mode 100644 index 0000000000..975d036490 --- /dev/null +++ b/framework/src/Volo.Abp.Ldap.Abstractions/Volo/Abp/Ldap/Localization/sv.json @@ -0,0 +1,19 @@ +{ + "culture": "sv", + "texts": { + "DisplayName:Abp.Ldap.Ldaps": "LDAP över SSL", + "Description:Abp.Ldap.Ldaps": "LDAP över SSL", + "DisplayName:Abp.Ldap.ServerHost": "Servervärd", + "Description:Abp.Ldap.ServerHost": "Servervärd", + "DisplayName:Abp.Ldap.ServerPort": "Serverport", + "Description:Abp.Ldap.ServerPort": "Serverport", + "DisplayName:Abp.Ldap.BaseDc": "Komponent för basdomän", + "Description:Abp.Ldap.BaseDc": "Komponent för basdomän", + "DisplayName:Abp.Ldap.Domain": "Domän", + "Description:Abp.Ldap.Domain": "Domän", + "DisplayName:Abp.Ldap.UserName": "Användarnamn", + "Description:Abp.Ldap.UserName": "Användarnamn", + "DisplayName:Abp.Ldap.Password": "Lösenord", + "Description:Abp.Ldap.Password": "Lösenord" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/sv.json b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/sv.json new file mode 100644 index 0000000000..684d38ee86 --- /dev/null +++ b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/sv.json @@ -0,0 +1,7 @@ +{ + "culture": "sv", + "texts": { + "DisplayName:Abp.Localization.DefaultLanguage": "Standardspråk", + "Description:Abp.Localization.DefaultLanguage": "Standardspråket för programmet." + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/sv.json b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/sv.json new file mode 100644 index 0000000000..e7f2743f71 --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/sv.json @@ -0,0 +1,9 @@ +{ + "culture": "sv", + "texts": { + "TenantNotFoundMessage": "Hyresgäst inte hittad!", + "TenantNotFoundDetails": "Det finns ingen hyresgäst med hyresgäst-ID eller namn: {0}", + "TenantNotActiveMessage": "Hyresgästen är inte aktiv!", + "TenantNotActiveDetails": "Hyresgästen är inte aktiv med hyresgäst-ID eller namn: {0}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ExtensionPropertyFeaturePolicyConfiguration.cs b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ExtensionPropertyFeaturePolicyConfiguration.cs new file mode 100644 index 0000000000..1a1ac56487 --- /dev/null +++ b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ExtensionPropertyFeaturePolicyConfiguration.cs @@ -0,0 +1,8 @@ +namespace Volo.Abp.ObjectExtending; + +public class ExtensionPropertyFeaturePolicyConfiguration +{ + public string[] Features { get; set; } = []; + + public bool RequiresAll { get; set; } = default!; +} diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ExtensionPropertyGlobalFeaturePolicyConfiguration.cs b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ExtensionPropertyGlobalFeaturePolicyConfiguration.cs new file mode 100644 index 0000000000..c6d28a309f --- /dev/null +++ b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ExtensionPropertyGlobalFeaturePolicyConfiguration.cs @@ -0,0 +1,8 @@ +namespace Volo.Abp.ObjectExtending; + +public class ExtensionPropertyGlobalFeaturePolicyConfiguration +{ + public string[] Features { get; set; } = []; + + public bool RequiresAll { get; set; } = default!; +} diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ExtensionPropertyPermissionPolicyConfiguration.cs b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ExtensionPropertyPermissionPolicyConfiguration.cs new file mode 100644 index 0000000000..6620e4f30b --- /dev/null +++ b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ExtensionPropertyPermissionPolicyConfiguration.cs @@ -0,0 +1,8 @@ +namespace Volo.Abp.ObjectExtending; + +public class ExtensionPropertyPermissionPolicyConfiguration +{ + public string[] PermissionNames { get; set; } = []; + + public bool RequiresAll { get; set; } = default!; +} diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ExtensionPropertyPolicyChecker.cs b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ExtensionPropertyPolicyChecker.cs new file mode 100644 index 0000000000..ba0c91dbde --- /dev/null +++ b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ExtensionPropertyPolicyChecker.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using JetBrains.Annotations; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.ObjectExtending; + +public class ExtensionPropertyPolicyChecker : ITransientDependency +{ + public virtual async Task CheckPolicyAsync([NotNull] ExtensionPropertyPolicyConfiguration policy) + { + if (!await CheckAsync(policy.GlobalFeatures.Features, policy.GlobalFeatures.RequiresAll, CheckGlobalFeaturesAsync)) + { + return false; + } + + if (!await CheckAsync(policy.Features.Features, policy.Features.RequiresAll, CheckFeaturesAsync)) + { + return false; + } + + return await CheckAsync(policy.Permissions.PermissionNames, policy.Permissions.RequiresAll, CheckPermissionsAsync); + } + + protected virtual async Task CheckAsync(string[] names, bool requiresAll, Func> checkFunc) + { + if (names.IsNullOrEmpty()) + { + return true; + } + + var hasAny = false; + foreach (var name in names) + { + if (!await checkFunc(name)) + { + if (requiresAll) + { + return false; + } + } + else + { + hasAny = true; + if (!requiresAll) + { + break; + } + } + } + + return hasAny; + } + + protected virtual Task CheckGlobalFeaturesAsync(string featureName) + { + return Task.FromResult(true); + } + + protected virtual Task CheckFeaturesAsync(string featureName) + { + return Task.FromResult(true); + } + + protected virtual Task CheckPermissionsAsync(string permissionName) + { + return Task.FromResult(true); + } +} diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ExtensionPropertyPolicyConfiguration.cs b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ExtensionPropertyPolicyConfiguration.cs new file mode 100644 index 0000000000..8c4303d5e1 --- /dev/null +++ b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ExtensionPropertyPolicyConfiguration.cs @@ -0,0 +1,17 @@ +namespace Volo.Abp.ObjectExtending; + +public class ExtensionPropertyPolicyConfiguration +{ + public ExtensionPropertyGlobalFeaturePolicyConfiguration GlobalFeatures { get; set; } + + public ExtensionPropertyFeaturePolicyConfiguration Features { get; set; } + + public ExtensionPropertyPermissionPolicyConfiguration Permissions { get; set; } + + public ExtensionPropertyPolicyConfiguration() + { + GlobalFeatures = new ExtensionPropertyGlobalFeaturePolicyConfiguration(); + Features = new ExtensionPropertyFeaturePolicyConfiguration(); + Permissions = new ExtensionPropertyPermissionPolicyConfiguration(); + } +} diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyConfiguration.cs b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyConfiguration.cs index 8099f1fc14..2b019c4697 100644 --- a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyConfiguration.cs +++ b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyConfiguration.cs @@ -45,6 +45,9 @@ public class ExtensionPropertyConfiguration : IHasNameWithLocalizableDisplayName [NotNull] public ExtensionPropertyApiConfiguration Api { get; } + [NotNull] + public ExtensionPropertyPolicyConfiguration Policy { get; } + /// /// Uses as the default value if was not set. /// @@ -72,6 +75,7 @@ public class ExtensionPropertyConfiguration : IHasNameWithLocalizableDisplayName Entity = new ExtensionPropertyEntityConfiguration(); UI = new ExtensionPropertyUiConfiguration(); Api = new ExtensionPropertyApiConfiguration(); + Policy = new ExtensionPropertyPolicyConfiguration(); Attributes.AddRange(ExtensionPropertyHelper.GetDefaultAttributes(Type)); DefaultValue = TypeHelper.GetDefaultValue(Type); diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfigurationHelper.cs b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfigurationHelper.cs index c1426e3833..9a13b17028 100644 --- a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfigurationHelper.cs +++ b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfigurationHelper.cs @@ -175,6 +175,7 @@ public static class ModuleExtensionConfigurationHelper property.DefaultValueFactory = propertyConfig.DefaultValueFactory; property.Lookup = propertyConfig.UI.Lookup; property.UI.Order = propertyConfig.UI.Order; + property.Policy = propertyConfig.Policy; foreach (var configuration in propertyConfig.Configuration) { property.Configuration[configuration.Key] = configuration.Value; diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionManagerExtensions.cs b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionManagerExtensions.cs index 71c7d78353..5cffda84ad 100644 --- a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionManagerExtensions.cs +++ b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionManagerExtensions.cs @@ -1,7 +1,9 @@ using System; using System.Collections.Generic; using System.Collections.Immutable; +using System.Threading.Tasks; using JetBrains.Annotations; +using Microsoft.Extensions.DependencyInjection; using Volo.Abp.Data; namespace Volo.Abp.ObjectExtending; @@ -130,4 +132,33 @@ public static class ObjectExtensionManagerExtensions return extensionInfo.GetProperties(); } + + public static Task> GetPropertiesAndCheckPolicyAsync( + [NotNull] this ObjectExtensionManager objectExtensionManager, + [NotNull] IServiceProvider serviceProvider) + { + return objectExtensionManager.GetPropertiesAndCheckPolicyAsync(typeof(TObject), serviceProvider); + } + + public async static Task> GetPropertiesAndCheckPolicyAsync( + [NotNull] this ObjectExtensionManager objectExtensionManager, + [NotNull] Type objectType, + [NotNull] IServiceProvider serviceProvider) + { + Check.NotNull(objectExtensionManager, nameof(objectExtensionManager)); + Check.NotNull(objectType, nameof(objectType)); + Check.NotNull(serviceProvider, nameof(serviceProvider)); + + var extensionPropertyPolicyConfigurationChecker = serviceProvider.GetRequiredService(); + var properties = new List(); + foreach (var propertyInfo in objectExtensionManager.GetProperties(objectType)) + { + if (await extensionPropertyPolicyConfigurationChecker.CheckPolicyAsync(propertyInfo.Policy)) + { + properties.Add(propertyInfo); + } + } + + return properties.ToImmutableList(); + } } diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfo.cs b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfo.cs index ab941a2f15..e5ed79b99e 100644 --- a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfo.cs +++ b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfo.cs @@ -59,6 +59,8 @@ public class ObjectExtensionPropertyInfo : IHasNameWithLocalizableDisplayName, I public ExtensionPropertyUI UI { get; set; } + public ExtensionPropertyPolicyConfiguration Policy { get; set; } + public ObjectExtensionPropertyInfo( [NotNull] ObjectExtensionInfo objectExtension, [NotNull] Type type, @@ -76,6 +78,7 @@ public class ObjectExtensionPropertyInfo : IHasNameWithLocalizableDisplayName, I DefaultValue = TypeHelper.GetDefaultValue(Type); Lookup = new ExtensionPropertyLookupConfiguration(); UI = new ExtensionPropertyUI(); + Policy = new ExtensionPropertyPolicyConfiguration(); } public object? GetDefaultValue() @@ -86,7 +89,7 @@ public class ObjectExtensionPropertyInfo : IHasNameWithLocalizableDisplayName, I public class ExtensionPropertyUI { public int Order { get; set; } - + public ExtensionPropertyUIEditModal EditModal { get; set; } public ExtensionPropertyUI() diff --git a/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Localization/sv.json b/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Localization/sv.json new file mode 100644 index 0000000000..c98fdf4ed5 --- /dev/null +++ b/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Localization/sv.json @@ -0,0 +1,7 @@ +{ + "culture": "sv", + "texts": { + "DisplayName:Abp.Timing.Timezone": "Tidszon", + "Description:Abp.Timing.Timezone": "Tidszon för tillämpning" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Localization/Resource/sv.json b/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Localization/Resource/sv.json new file mode 100644 index 0000000000..c63b74a9c7 --- /dev/null +++ b/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Localization/Resource/sv.json @@ -0,0 +1,6 @@ +{ + "culture": "sv", + "texts": { + "Menu:Administration": "Administration" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sv.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sv.json new file mode 100644 index 0000000000..40aaa0073f --- /dev/null +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sv.json @@ -0,0 +1,64 @@ +{ + "culture": "sv", + "texts": { + "Languages": "Språk", + "AreYouSure": "Är du säker?", + "Cancel": "Avbryt", + "Clear": "Klart", + "Yes": "Ja", + "No": "Nej", + "Ok": "Ok", + "Close": "Nära", + "Save": "Spara", + "SavingWithThreeDot": "Sparar...", + "Actions": "Åtgärder", + "Delete": "Radera", + "CreatedSuccessfully": "Skapades framgångsrikt", + "SavedSuccessfully": "Sparades framgångsrikt", + "DeletedSuccessfully": "Raderad framgångsrikt", + "Edit": "Redigera", + "Refresh": "Uppdatera", + "Language": "Språk", + "LoadMore": "Ladda mer", + "ProcessingWithThreeDot": "Bearbetning...", + "LoadingWithThreeDot": "Laddar...", + "Welcome": "Välkommen", + "Login": "Logga in", + "Register": "Registrera", + "Logout": "Logga ut", + "Submit": "Skicka in", + "Back": "Tillbaka", + "PagerSearch": "Sök", + "PagerNext": "Nästa", + "PagerPrevious": "Föregående", + "PagerFirst": "Första", + "PagerLast": "Sista", + "PagerInfo": "Visar _START_ till _Slut_ av _TOTAL_ poster", + "PagerInfo{0}{1}{2}": "Visar {0} till {1} av {2} poster", + "PagerInfoEmpty": "Visar 0 till 0 av 0 poster", + "PagerInfoFiltered": "(filtrerat från _MAX_ totala poster)", + "NoDataAvailableInDatatable": "Inga uppgifter tillgängliga", + "Total": "totalt", + "Selected": "utvalda", + "PagerShowMenuEntries": "Visa _MENY_-poster", + "DatatableActionDropdownDefaultText": "Åtgärder", + "ChangePassword": "Ändra lösenord", + "PersonalInfo": "Min profil", + "AreYouSureYouWantToCancelEditingWarningMessage": "Du har förändringar som inte är frälsta.", + "GoHomePage": "Gå till startsidan", + "GoBack": "Gå tillbaka", + "Search": "Sök", + "ItemWillBeDeletedMessageWithFormat": "{0} kommer att raderas!", + "ItemWillBeDeletedMessage": "Denna artikel kommer att raderas!", + "ManageYourAccount": "Hantera ditt konto", + "OthersGroup": "Övriga", + "Today": "Idag", + "Apply": "Tillämpa", + "InternetConnectionInfo": "Åtgärden kunde inte utföras. Din internetanslutning är inte tillgänglig för tillfället.", + "CopiedToTheClipboard": "Kopieras till urklipp", + "AddNew": "Lägg till ny", + "ProfilePicture": "Profilbild", + "Theme": "Tema", + "NotAssigned": "Ej tilldelad" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/sv.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/sv.json new file mode 100644 index 0000000000..c751837429 --- /dev/null +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/sv.json @@ -0,0 +1,39 @@ +{ + "culture": "sv", + "texts": { + "'{0}' and '{1}' do not match.": "'{0}' och '{1}' matchar inte varandra.", + "The {0} field is not a valid credit card number.": "Fältet {0} är inte ett giltigt kreditkortsnummer.", + "{0} is not valid.": "{0} är inte giltig.", + "The {0} field is not a valid e-mail address.": "Fältet {0} är inte en giltig e-postadress.", + "The {0} field only accepts files with the following extensions: {1}": "Fältet {0} accepterar endast filer med följande tillägg: {1}", + "The field {0} must be a string or array type with a maximum length of '{1}'.": "Fältet {0} måste vara en sträng eller en matris med en maximal längd av '{1}'.", + "The field {0} must be a string or array type with a minimum length of '{1}'.": "Fältet {0} måste vara en sträng eller en matris med en minsta längd av '{1}'.", + "The {0} field is not a valid phone number.": "Fältet {0} är inte ett giltigt telefonnummer.", + "The field {0} must be between {1} and {2}.": "Fältet {0} måste ligga mellan {1} och {2}.", + "The field {0} must match the regular expression '{1}'.": "Fältet {0} överensstämmer inte med det begärda formatet.", + "The {0} field is required.": "Fältet {0} är obligatoriskt.", + "The field {0} must be a string with a maximum length of {1}.": "Fältet {0} måste vara en sträng med en maximal längd av {1}.", + "The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.": "Fältet {0} måste vara en sträng med en minsta längd av {2} och en största längd av {1}.", + "The {0} field is not a valid fully-qualified http, https, or ftp URL.": "Fältet {0} är inte en giltig fullständigt kvalificerad http-, https- eller ftp-URL.", + "The field {0} is invalid.": "Fältet {0} är ogiltigt.", + "The value '{0}' is invalid.": "Värdet '{0}' är ogiltigt.", + "The field {0} must be a number.": "Fältet {0} måste vara ett tal.", + "The field must be a number.": "Fältet måste vara ett nummer.", + "ThisFieldIsNotAValidCreditCardNumber.": "Detta fält är inte ett giltigt kreditkortsnummer.", + "ThisFieldIsNotValid.": "Detta fält är inte giltigt.", + "ThisFieldIsNotAValidEmailAddress.": "Detta fält är inte en giltig e-postadress.", + "ThisFieldOnlyAcceptsFilesWithTheFollowingExtensions:{0}": "Detta fält accepterar endast filer med följande tillägg: {0}", + "ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthOf{0}": "Detta fält måste vara en sträng eller en matris med en maximal längd på '{0}'.", + "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "Detta fält måste vara en sträng eller en matris med en minsta längd av \"{0}\".", + "ThisFieldIsNotAValidPhoneNumber.": "Det här fältet är inte ett giltigt telefonnummer.", + "ThisFieldMustBeBetween{0}And{1}": "Detta fält måste vara mellan {0} och {1}.", + "ThisFieldMustBeGreaterThanOrEqual{0}": "Detta fält måste vara större än eller lika med {0}.", + "ThisFieldMustBeLessOrEqual{0}": "Detta fält måste vara mindre än eller lika med {0}.", + "ThisFieldMustMatchTheRegularExpression{0}": "Detta fält måste matcha det reguljära uttrycket \"{0}\".", + "ThisFieldIsRequired.": "Detta fält är obligatoriskt.", + "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "Detta fält måste vara en sträng med en maximal längd av {0}.", + "ThisFieldMustBeAStringWithAMinimumLengthOf{1}AndAMaximumLengthOf{0}": "Detta fält måste vara en sträng med en minsta längd av {1} och en största längd av {0}.", + "ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "Det här fältet är inte en giltig fullständigt kvalificerad http-, https- eller ftp-URL.", + "ThisFieldIsInvalid.": "Detta fält är ogiltigt." + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/Resource/sv.json b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/Resource/sv.json new file mode 100644 index 0000000000..8110f67e01 --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/Resource/sv.json @@ -0,0 +1,10 @@ +{ + "culture": "sv", + "texts": { + "DisplayName:PersonModel:BirthDate1": "Födelsedatum1", + "DisplayName:BirthDate2": "Födelsedatum2", + "PersonModel:BirthDate3": "Födelsedatum3", + "BirthDate": "Födelsedatum", + "Value1": "Värde ett" + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.Emailing.Tests/Volo/Abp/Emailing/Localization/sv.json b/framework/test/Volo.Abp.Emailing.Tests/Volo/Abp/Emailing/Localization/sv.json new file mode 100644 index 0000000000..810af19db5 --- /dev/null +++ b/framework/test/Volo.Abp.Emailing.Tests/Volo/Abp/Emailing/Localization/sv.json @@ -0,0 +1,6 @@ +{ + "culture": "sv", + "texts": { + "hello": "Hej" + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/Localization/sv.json b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/Localization/sv.json new file mode 100644 index 0000000000..62ea61f867 --- /dev/null +++ b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/Localization/sv.json @@ -0,0 +1,6 @@ +{ + "culture": "sv", + "texts": { + "Volo.Abp.Http.DynamicProxying:10001": "Företagsundantag med data: {0}" + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/CountryNames/sv.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/CountryNames/sv.json new file mode 100644 index 0000000000..8ac7c07f27 --- /dev/null +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/CountryNames/sv.json @@ -0,0 +1,7 @@ +{ + "culture": "sv", + "texts": { + "USA": "Amerikas Förenta Stater", + "Brazil": "Brasilien" + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/sv.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/sv.json new file mode 100644 index 0000000000..ee8b643b3f --- /dev/null +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/sv.json @@ -0,0 +1,12 @@ +{ + "culture": "sv", + "texts": { + "ThisFieldIsRequired": "Detta fält är obligatoriskt", + "MaxLenghtErrorMessage": "Detta fält kan innehålla högst '{0}' tecken", + "Enum:BookType.Undefined": "Odefinierad från ValidationResource", + "Enum:BookType.0": "Odefinierad med värdet 0 från ValidationResource", + "BookType.Adventure": "Äventyr från ValidationResource", + "BookType.1": "Äventyr med värde 1 från ValidationResource", + "Biography": "Biografi från ValidationResource" + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/sv.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/sv.json new file mode 100644 index 0000000000..ddf4fc67e9 --- /dev/null +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/sv.json @@ -0,0 +1,16 @@ +{ + "culture": "sv", + "texts": { + "Hello {0}.": "Hej {0}.", + "Car": "Bil", + "CarPlural": "Bilar", + "MaxLenghtErrorMessage": "Längden på detta fält kan vara högst '{0}' tecken", + "Universe": "Universum", + "FortyTwo": "Fyrtiotvå", + "Enum:BookType.Undefined": "Odefinierad", + "Enum:BookType.0": "Odefinierad med värde 0", + "BookType.Adventure": "Äventyr", + "BookType.1": "Äventyr med värde 1", + "Biography": "Biografi" + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/SourceExt/sv.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/SourceExt/sv.json new file mode 100644 index 0000000000..b5bceee203 --- /dev/null +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/SourceExt/sv.json @@ -0,0 +1,6 @@ +{ + "culture": "sv", + "texts": { + "SeeYou": "Se dig själv" + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/Localization/sv.json b/framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/Localization/sv.json new file mode 100644 index 0000000000..c398b9a593 --- /dev/null +++ b/framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/Localization/sv.json @@ -0,0 +1,7 @@ +{ + "culture": "sv", + "texts": { + "HelloText": "Hej", + "HowAreYou": "Hur är det med dig?" + } +} \ No newline at end of file diff --git a/latest-versions.json b/latest-versions.json index 298c513d8d..4649df25e4 100644 --- a/latest-versions.json +++ b/latest-versions.json @@ -1,6 +1,6 @@ [ { - "version": "8.2.0", + "version": "8.2.1", "releaseDate": "", "type": "stable", "message": "" diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/sv.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/sv.json new file mode 100644 index 0000000000..d06472ed7b --- /dev/null +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/sv.json @@ -0,0 +1,73 @@ +{ + "culture": "sv", + "texts": { + "Menu:Account": "Konto", + "UserName": "Användarnamn", + "EmailAddress": "E-postadress", + "UserNameOrEmailAddress": "Användarnamn eller e-postadress", + "Password": "Lösenord", + "RememberMe": "Kom ihåg mig", + "UseAnotherServiceToLogin": "Använd en annan tjänst för att logga in", + "UserLockedOutMessage": "Användarkontot har låsts på grund av ogiltiga inloggningsförsök. Vänligen vänta ett tag och försök igen.", + "InvalidUserNameOrPassword": "Ogiltigt användarnamn eller lösenord!", + "LoginIsNotAllowed": "Du kan inte logga in! Ditt konto är inaktivt eller så behöver du bekräfta din e-postadress eller ditt telefonnummer.", + "SelfRegistrationDisabledMessage": "Självregistrering är inaktiverat för denna applikation. Vänligen kontakta applikationsadministratören för att registrera en ny användare.", + "LocalLoginDisabledMessage": "Lokal inloggning är inaktiverad för denna applikation.", + "Login": "Logga in", + "Cancel": "Avbryt", + "Register": "Registrera", + "AreYouANewUser": "Är du en ny användare?", + "AlreadyRegistered": "Är du redan registrerad?", + "InvalidLoginRequest": "Ogiltig inloggningsbegäran", + "ThereAreNoLoginSchemesConfiguredForThisClient": "Det finns inga inloggningsscheman konfigurerade för den här klienten.", + "LogInUsingYourProviderAccount": "Logga in med ditt {0}-konto", + "DisplayName:CurrentPassword": "Aktuellt lösenord", + "DisplayName:NewPassword": "Nytt lösenord", + "DisplayName:NewPasswordConfirm": "Bekräfta nytt lösenord", + "PasswordChangedMessage": "Ditt lösenord har ändrats framgångsrikt.", + "DisplayName:UserName": "Användarnamn", + "DisplayName:Email": "E-post", + "DisplayName:Name": "Namn", + "DisplayName:Surname": "Efternamn", + "DisplayName:Password": "Lösenord", + "DisplayName:EmailAddress": "E-postadress", + "DisplayName:PhoneNumber": "Telefonnummer", + "PersonalSettings": "Personliga inställningar", + "PersonalSettingsSaved": "Personliga inställningar sparade", + "PersonalSettingsChangedConfirmationModalTitle": "Personuppgifter ändrade", + "PersonalSettingsChangedConfirmationModalDescription": "Ändringarna kommer att återspeglas efter att du loggat in igen. Vill du logga ut nu?", + "PasswordChanged": "Lösenord ändrat", + "NewPasswordConfirmFailed": "Vänligen bekräfta det nya lösenordet.", + "NewPasswordSameAsOld": "Det nya lösenordet måste vara ett annat än det gamla.", + "Manage": "Hantera", + "MyAccount": "Mitt konto", + "DisplayName:Abp.Account.IsSelfRegistrationEnabled": "Är självregistrering möjlig?", + "Description:Abp.Account.IsSelfRegistrationEnabled": "Om en användare kan registrera kontot själv.", + "DisplayName:Abp.Account.EnableLocalLogin": "Autentisera med ett lokalt konto", + "Description:Abp.Account.EnableLocalLogin": "Anger om servern tillåter användare att autentisera sig med ett lokalt konto.", + "LoggedOutTitle": "Utregistrerad", + "LoggedOutText": "Du har blivit utloggad och kommer att omdirigeras inom kort.", + "ReturnToText": "Klicka här för att komma tillbaka till ansökan", + "OrLoginWith": "Eller logga in med:", + "ForgotPassword": "Har du glömt lösenordet?", + "SendPasswordResetLink_Information": "En länk för att återställa lösenordet kommer att skickas till din e-post för att återställa ditt lösenord. Om du inte får ett e-postmeddelande inom några minuter, försök igen.", + "PasswordResetMailSentMessage": "E-postmeddelande om återställning av konto skickas till din e-postadress. Om du inte ser det här e-postmeddelandet i din inkorg inom 15 minuter, leta efter det i din skräppostmapp. Om du hittar det där, markera det som -Not Junk-.", + "ResetPassword": "Återställ lösenord", + "ConfirmPassword": "Bekräfta lösenordet", + "ResetPassword_Information": "Ange ditt nya lösenord.", + "YourPasswordIsSuccessfullyReset": "Ditt lösenord har återställts.", + "GoToTheApplication": "Gå till applikationen", + "BackToLogin": "Tillbaka till inloggning", + "ProfileTab:Password": "Ändra lösenord", + "ProfileTab:PersonalInfo": "Personlig information", + "ReturnToApplication": "Återgå till ansökan", + "Volo.Account:InvalidEmailAddress": "Kan inte hitta den angivna e-postadressen: {0}", + "PasswordReset": "Återställning av lösenord", + "PasswordResetInfoInEmail": "Vi har fått en begäran om återställning av konto! Om du initierade denna begäran, klicka på följande länk för att återställa ditt lösenord.", + "ResetMyPassword": "Återställ mitt lösenord", + "AccessDenied": "Åtkomst nekad!", + "AccessDeniedMessage": "Du har inte tillgång till denna resurs.", + "OrRegisterWith": "Eller registrera dig med", + "RegisterUsingYourProviderAccount": "Registrera dig med ditt {0} konto" + } +} \ No newline at end of file diff --git a/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/ProfileAppService.cs b/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/ProfileAppService.cs index 9749a607d5..d2baae8393 100644 --- a/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/ProfileAppService.cs +++ b/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/ProfileAppService.cs @@ -68,8 +68,8 @@ public class ProfileAppService : IdentityAppServiceBase, IProfileAppService (await UserManager.SetPhoneNumberAsync(user, input.PhoneNumber)).CheckErrors(); } - user.Name = input.Name; - user.Surname = input.Surname; + user.Name = input.Name?.Trim(); + user.Surname = input.Surname?.Trim(); input.MapExtraPropertiesTo(user); diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/sv.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/sv.json new file mode 100644 index 0000000000..f0b8b1ebee --- /dev/null +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/sv.json @@ -0,0 +1,98 @@ +{ + "culture": "sv", + "texts": { + "Permission:AuditLogging": "Granskning av loggning", + "Permission:AuditLogs": "Granskningsloggar", + "Menu:AuditLogging": "Granskningsloggar", + "AuditLogs": "Granskningsloggar", + "HttpStatus": "HTTP-status", + "HttpMethod": "HTTP-metod", + "HttpMethodFilter": "Filter för HTTP-metod", + "HttpRequest": "HTTP-förfrågan", + "User": "Användare", + "UserNameFilter": "Användarfilter", + "HasException": "Har undantag", + "IpAddress": "IP-adress", + "Time": "Tid", + "Date": "Datum", + "Duration": "Varaktighet", + "Detail": "Detalj", + "Overall": "Övergripande", + "Actions": "Åtgärder", + "ClientIpAddress": "Klientens IP-adress", + "ClientName": "Kundens namn", + "BrowserInfo": "Info om webbläsare", + "Url": "URL", + "UserName": "Användarens namn", + "TenantImpersonator": "Imitation av hyresgäst", + "UserImpersonator": "Användarimitatör", + "UrlFilter": "URL-filter", + "Exceptions": "Undantag", + "Comments": "Kommentarer", + "HttpStatusCode": "HTTP-statuskod", + "HttpStatusCodeFilter": "Filter för HTTP-statuskod", + "ServiceName": "Service", + "MethodName": "Metod", + "CorrelationId": "Korrelation Id", + "ApplicationName": "Applikationens namn", + "ExecutionDuration": "Varaktighet", + "ExtraProperties": "Extra egenskaper", + "MaxDuration": "Max. varaktighet", + "MinDuration": "Min. varaktighet", + "MinMaxDuration": "Varaktighet (min. - max.)", + "{0}Milliseconds": "{0} millisekunder", + "ExecutionTime": "Tid", + "Parameters": "Parametrar", + "EntityTypeFullName": "Entitetstyp Fullständigt namn", + "Entity": "Entitet", + "ChangeType": "Ändra typ", + "ChangeTime": "Tid", + "NewValue": "Nytt värde", + "OriginalValue": "Ursprungligt värde", + "PropertyName": "Namn på fastighet", + "PropertyTypeFullName": "Fastighetstyp Fullständigt namn", + "Yes": "Ja", + "No": "Nej", + "Changes": "Förändringar", + "AverageExecutionDurationInLogsPerDay": "Genomsnittlig exekveringstid", + "AverageExecutionDurationInMilliseconds": "Genomsnittlig exekveringstid i millisekunder", + "ErrorRateInLogs": "Felprocent i loggar", + "Success": "Framgång", + "Fault": "Fel", + "NoChanges": "Ingen förändring(ar)", + "EntityChanges": "Förändringar av enheter", + "EntityId": "Entitet Id", + "EntityChangeStartTime": "Min ändringsdatum", + "EntityChangeEndTime": "Max ändringsdatum", + "EntityHistory": "Enhetens historia", + "DaysAgoTitle": "{0} {1}.", + "DaysAgoWithUserTitle": "{0} {1} av {2}.", + "Created": "Skapad", + "Updated": "Uppdaterad", + "Deleted": "Borttagen", + "ChangeHistory": "Ändra historik", + "FullChangeHistory": "Fullständig ändringshistorik", + "ChangeDetails": "Ändra detaljer", + "DurationMs": "Varaktighet (ms)", + "StartDate": "Startdatum", + "EndDate": "Slutdatum", + "Feature:AuditLoggingGroup": "Granskning av loggning", + "Feature:AuditLoggingEnable": "Aktivera granskningsloggning sida", + "Feature:AuditLoggingEnableDescription": "Aktivera sidan för granskningsloggning i programmet.", + "Feature:AuditLoggingSettingManagementEnable": "Aktivera hantering av inställningar för granskningslogg", + "Feature:AuditLoggingSettingManagementEnableDescription": "Aktivera konfigurationen av inställningshanteringen för granskningsloggen i programmet.", + "InvalidAuditLogDeletionSettings": "Ogiltiga inställningar för radering av revisionslogg. Om radering är aktiverad ska perioden vara större än 0 dagar.", + "AuditLogSettingsGeneral": "Allmänt", + "AuditLogSettingsGlobal": "Globalt", + "DisplayName:IsPeriodicDeleterEnabled": "Möjliggör uppstädning av hela systemet", + "Description:IsPeriodicDeleterEnabled": "Om detta alternativ är avaktiverat fungerar inte den periodiska raderingen. Granskningsloggar kommer inte att raderas automatiskt.", + "DisplayName:GlobalIsExpiredDeleterEnabled": "Aktivera städservice för alla hyresgäster och värd", + "Description:GlobalIsExpiredDeleterEnabled": "Om det här alternativet är aktiverat raderas alla förfallna objekt för hyresgäster och värd automatiskt om det inte har en specifik inställning.", + "DisplayName:IsExpiredDeleterEnabled": "Möjliggör städning", + "Description:IsExpiredDeleterEnabled": "Om detta alternativ är aktiverat raderas de utgångna artiklarna automatiskt.", + "DisplayName:ExpiredDeleterPeriod": "Utgången raderingsperiod för objekt", + "Description:ExpiredDeleterPeriod": "Ställ in antalet dagar efter vilka utgångna objekt automatiskt ska raderas.", + "ExpiredDeleterPeriodUnit": "dag(ar)", + "AuditLogsBeforeXWillBeDeleted": "Granskningsloggar före {0} kommer att raderas." + } +} \ No newline at end of file diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Dockerfile.azure b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Dockerfile.azure new file mode 100644 index 0000000000..4586d6dc02 --- /dev/null +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Dockerfile.azure @@ -0,0 +1,22 @@ +FROM node:16 AS nodebase + +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build + +COPY --from=nodebase /usr/local/bin /usr/local/bin +COPY --from=nodebase /usr/local/lib /usr/local/lib + +WORKDIR /app +COPY . . + +RUN dotnet tool update --global Volo.Abp.Cli +ENV PATH="${PATH}:/root/.dotnet/tools/" +WORKDIR /app/abp/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo +RUN abp install-libs +RUN dotnet publish -c Release -o bin/Release/publish + +FROM mcr.microsoft.com/dotnet/aspnet:8.0 +WORKDIR /app +EXPOSE 80 +ENV ASPNETCORE_URLS=http://+:80 +COPY --from=build /app/abp/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/bin/Release/publish . +ENTRYPOINT ["dotnet", "Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.dll"] diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/azure-pipelines.yml b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/azure-pipelines.yml index 7ace2e891a..235ef306de 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/azure-pipelines.yml +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/azure-pipelines.yml @@ -21,7 +21,7 @@ variables: DOCKER_BUILDKIT: 1 pool: - vmImage: 'ubuntu-latest' + name: aks-deployer-agent stages: @@ -31,21 +31,21 @@ stages: - job: Build displayName: Package Helm Charts and Values pool: - vmImage: 'ubuntu-latest' + name: aks-deployer-agent steps: - checkout: self - checkout: devops - - script: | - cd $(bootstrapTaghelpersDir) && dotnet publish -c Release -o bin/Release/publish + # - script: | + # cd $(bootstrapTaghelpersDir) && dotnet publish -c Release -o bin/Release/publish - task: Docker@2 displayName: Build Image inputs: command: build repository: demo/bootstrap-taghelpers - dockerfile: $(bootstrapTaghelpersDir)/Dockerfile - buildContext: $(bootstrapTaghelpersDir) + dockerfile: $(bootstrapTaghelpersDir)/Dockerfile.azure + buildContext: $(workDir) containerRegistry: $(dockerRegistryServiceConnection) tags: | $(tag) diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/Localization/sv.json b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/Localization/sv.json new file mode 100644 index 0000000000..c091214de8 --- /dev/null +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/Localization/sv.json @@ -0,0 +1,6 @@ +{ + "culture": "sv", + "texts": { + "MyAccount": "Mitt konto" + } +} \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/sv.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/sv.json new file mode 100644 index 0000000000..9703219c04 --- /dev/null +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/sv.json @@ -0,0 +1,92 @@ +{ + "culture": "sv", + "texts": { + "Menu:Blogs": "Blogg", + "Menu:BlogManagement": "Bloggande", + "Permission:Management": "Förvaltning", + "Permission:Edit": "Redigera", + "Permission:Create": "Skapa", + "Permission:Delete": "Radera", + "Permission:Blogging": "Blogg", + "Permission:Blogs": "Blogg", + "Permission:Posts": "Inlägg", + "Permission:Tags": "Etiketter", + "Permission:Comments": "Kommentarer", + "Permission:ClearCache": "Rensa cache", + "Title": "Titel", + "Delete": "Radera", + "Reply": "Svar", + "ReplyTo": "Svara på {0}", + "ContinueReading": "Fortsätta läsa", + "DaysAgo": "{0} dagar sedan", + "DayAgo": "{0} dag sedan", + "YearsAgo": "{0} år sedan", + "YearAgo": "{0} år sedan", + "MonthsAgo": "{0} månader sedan", + "MonthAgo": "{0} månad sedan", + "WeeksAgo": "{0} veckor sedan", + "WeekAgo": "{0} vecka sedan", + "MinutesAgo": "{0} minuter sedan", + "MinuteAgo": "{0} minut sedan", + "SecondsAgo": "{0} sekunder sedan", + "SecondAgo": "{0} för en sekund sedan", + "HoursAgo": "för {0} timmar sedan", + "HourAgo": "{0} timme sedan", + "Now": "nu", + "Content": "Innehåll", + "SeeAll": "Se alla", + "PopularTags": "Populära taggar", + "WiewsWithCount": "{0} visningar", + "LastPosts": "Senaste inlägg", + "LeaveComment": "Lämna kommentar", + "TagsInThisArticle": "Taggar i denna artikel", + "Posts": "Inlägg", + "Edit": "Redigera", + "BLOG": "BLOGG", + "CommentDeletionWarningMessage": "Kommentaren kommer att raderas.", + "PostDeletionWarningMessage": "Inlägget kommer att raderas.", + "BlogDeletionWarningMessage": "Bloggen kommer att raderas.", + "AreYouSure": "Är du säker?", + "CommentWithCount": "{0} kommentarer", + "Comment": "Hur gör man", + "ShareOnTwitter": "Dela på Twitter", + "CoverImage": "Omslagsbild", + "CreateANewPost": "Skapa ett nytt inlägg", + "CreateANewBlog": "Skapa en ny blogg", + "WhatIsNew": "Vad är nytt?", + "Name": "Namn", + "ShortName": "Kort namn", + "CreationTime": "Skapelsetid", + "Description": "Beskrivning", + "Blogs": "Blogg", + "Tags": "Etiketter", + "ShareOn": "Dela på", + "TitleLengthWarning": "Håll din titelstorlek under 60 tecken för att vara SEO-vänlig!", + "ClearCache": "Rensa cache", + "ClearCacheConfirmationMessage": "Är du säker på att du vill rensa cacheminnet?", + "MarkdownSupported": "Markdown stöds", + "FileUploadInfo": "Dra, släpp eller klistra in en kopierad bild.", + "PostDescriptionHint": "* Kommer att återges i förhandsgranskningen av artikellänken, stöder HTML", + "ReadMore": "Fortsätta läsa", + "MemberNotPublishedPostYet": "Inga inlägg ännu!", + "UpdateUserWebSiteInfo": "Exempel: https://johndoe.com", + "UpdateUserTwitterInfo": "Exempel: johndoe", + "UpdateUserGithubInfo": "Exempel: johndoe", + "UpdateUserLinkedinInfo": "Exempel: https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "Exempel: Volosoft", + "UpdateUserJobTitleInfo": "Exempel: Programvaruutvecklare", + "WebSite": "Webbplats", + "UserName": "Användarnamn", + "FullURL": "Full URL", + "JobTitle": "Befattning", + "PersonalWebsite": "PERSONLIG WEBBPLATS", + "EditProfile": "Redigera profil", + "MoreFromBlog": "Mer från bloggen", + "MoreFromUser": "Mer från {0}", + "BlogPosts": "Inlägg", + "Views": "utsikt", + "Biography": "Biografi", + "Social": "Sociala", + "NewBlogPost": "Nytt blogginlägg" + } +} \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Detail.cshtml.cs b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Detail.cshtml.cs index de1f9dfdb0..f13936a5af 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Detail.cshtml.cs +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Detail.cshtml.cs @@ -98,7 +98,9 @@ namespace Volo.Blogging.Pages.Blogs.Posts await GetData(); - return Page(); + // PRG pattern + // Redirect to the same page to prevent form resubmission + return RedirectToPage(); } private async Task GetData() diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/sv.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/sv.json new file mode 100644 index 0000000000..6e8962915b --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/sv.json @@ -0,0 +1,259 @@ +{ + "culture": "sv", + "texts": { + "AddSubMenuItem": "Lägg till undermenyobjekt", + "AreYouSure": "Är du säker?", + "BlogDeletionConfirmationMessage": "Bloggen '{0}' kommer att raderas. Är du säker på det?", + "BlogFeatureNotAvailable": "Denna funktion är inte tillgänglig nu. Aktivera med 'GlobalFeatureManager' för att använda den.", + "BlogId": "Blogg", + "BlogPostDeletionConfirmationMessage": "Blogginlägget \"{0}\" kommer att raderas. Är du säker på det?", + "BlogPosts": "Blogginlägg", + "Blogs": "Blogg", + "ChoosePreference": "Välj preferens...", + "Cms": "CMS", + "CmsKit.Comments": "Kommentarer", + "CmsKit.Ratings": "Betyg", + "CmsKit.Reactions": "Reaktioner", + "CmsKit.Tags": "Etiketter", + "CmsKit:0002": "Innehållet finns redan!", + "CmsKit:0003": "Entiteten {0} är inte taggbar.", + "CmsKit:Blog:0001": "Den angivna sluggen ({Slug}) finns redan!", + "CmsKit:BlogPost:0001": "Den angivna sluggen finns redan!", + "CmsKit:Comments:0001": "Enheten {EntityType} är inte kommenterbar.", + "CmsKit:Media:0001": "'{Namn}' är inte ett giltigt medienamn.", + "CmsKit:Media:0002": "Enheten kan inte ha media.", + "CmsKit:Page:0001": "Den angivna webbadressen ({Slug}) finns redan. Vänligen försök med en annan webbadress.", + "CmsKit:Rating:0001": "Enheten {EntityType} kan inte betygsättas.", + "CmsKit:Reaction:0001": "Enheten {EntityType} kan inte ha reaktioner.", + "CmsKit:Tag:0002": "Enheten är inte taggbar!", + "CmsKit:MarkedItem:ToggleConfirmation": "Är du säker på att du vill växla det markerade objektet?", + "CommentAuthorizationExceptionMessage": "Dessa kommentarer är inte tillåtna för offentlig visning.", + "CmsKit:Modals:Login": "Logga in", + "CmsKit:Modals:LoginModalDefaultMessage": "Vänligen logga in för att fortsätta!", + "CmsKit:Modals:YouAreNotAuthenticated": "Denna åtgärd är inte auktoriserad för dig.", + "CommentDeletionConfirmationMessage": "Denna kommentar och alla svar kommer att raderas!", + "CmsKit:MarkedItem:0001": "Entiteten {EntityType} kan inte markeras.", + "CmsKit:MarkedItem:0002": "Ingen definition hittades för entitetstypen '{EntityType}'.", + "CmsKit:MarkedItem:0003": "Det finns redan en definition för entitetstypen '{EntityType}'. Varje entitetstyp bör endast ha en definition.", + "CmsKit:MarkedItem:LoginMessage": "Vänligen logga in för att markera denna artikel.", + "Comments": "Kommentarer", + "Content": "Innehåll", + "ContentDeletionConfirmationMessage": "Är du säker på att du vill radera detta innehåll?", + "Contents": "Innehåll", + "CoverImage": "Omslagsbild", + "CreateBlogPostPage": "Nytt blogginlägg", + "CreationTime": "Skapelsetid", + "Delete": "Radera", + "Detail": "Detalj", + "Details": "Detaljer", + "DisplayName": "Visa namn", + "DoYouPreferAdditionalEmails": "Vill du ha ytterligare e-postmeddelanden?", + "Edit": "Redigera", + "EndDate": "Slutdatum", + "EntityId": "Entitet Id", + "EntityType": "Typ av enhet", + "ExportCSV": "Exportera CSV", + "Features": "Funktioner", + "GenericDeletionConfirmationMessage": "Är du säker att du vill ta bort \"{0}\"?", + "IsActive": "Aktiv", + "LastModification": "Senaste modifiering", + "LastModificationTime": "Tidpunkt för senaste modifiering", + "LoginToAddComment": "Logga in för att lägga till en kommentar", + "LoginToRate": "Logga in för att betygsätta", + "LoginToReact": "Logga in för att reagera", + "LoginToReply": "Logga in för att svara", + "MainMenu": "Huvudmeny", + "MakeMainMenu": "Skapa huvudmeny", + "Menu:CMS": "CMS", + "Menus": "Menyer", + "MenuDeletionConfirmationMessage": "Menyn \"{0}\" kommer att raderas. Är du säker på det?", + "MenuItemDeletionConfirmationMessage": "Är du säker på att du vill ta bort det här menyalternativet?", + "MenuItemMoveConfirmMessage": "Är du säker på att du vill flytta '{0}' under '{1}'?", + "MenuItems": "Menyalternativ", + "Message": "Meddelande", + "MessageDeletionConfirmationMessage": "Denna kommentar kommer att raderas helt.", + "NewBlog": "Ny blogg", + "NewBlogPost": "Nytt blogginlägg", + "NewMenu": "Ny meny", + "NewMenuItem": "Nytt menyalternativ i rotmenyn", + "NewPage": "Ny sida", + "NewTag": "Ny etikett", + "NoMenuItems": "Det finns inget menyalternativ ännu!", + "OK": "OK", + "PageDeletionConfirmationMessage": "Är du säker på att du vill radera den här sidan?", + "PageId": "Sidan", + "Pages": "Sidor", + "PageSlugInformation": "Sluggen används på webbadressen. Din webbadress kommer att vara \"/{{slug}}\".", + "BlogSlugInformation": "Sluggen används på webbadressen. Din webbadress kommer att vara \"/{0}/{{slug}}\".", + "Permission:BlogManagement": "Hantering av bloggar", + "Permission:BlogManagement.Create": "Skapa", + "Permission:BlogManagement.Delete": "Radera", + "Permission:BlogManagement.Features": "Funktioner", + "Permission:BlogManagement.Update": "Uppdatering", + "Permission:BlogPostManagement": "Hantering av blogginlägg", + "Permission:BlogPostManagement.Create": "Skapa", + "Permission:BlogPostManagement.Delete": "Radera", + "Permission:BlogPostManagement.Update": "Uppdatering", + "Permission:BlogPostManagement.Publish": "Publicera", + "Permission:CmsKit": "CmsKit administratör", + "Permission:Comments": "Hur man hanterar", + "Permission:Comments.Delete": "Radera", + "Permission:Contents": "Hantering av innehåll", + "Permission:Contents.Create": "Skapa innehåll", + "Permission:Contents.Delete": "Ta bort innehåll", + "Permission:Contents.Update": "Uppdatera innehåll", + "Permission:MediaDescriptorManagement": "Hantering av media", + "Permission:MediaDescriptorManagement:Create": "Skapa", + "Permission:MediaDescriptorManagement:Delete": "Radera", + "Permission:MenuItemManagement": "Hantering av menyalternativ", + "Permission:MenuItemManagement.Create": "Skapa", + "Permission:MenuItemManagement.Delete": "Radera", + "Permission:MenuItemManagement.Update": "Uppdatering", + "Permission:MenuManagement": "Meny för hantering", + "Permission:MenuManagement.Create": "Skapa", + "Permission:MenuManagement.Delete": "Radera", + "Permission:MenuManagement.Update": "Uppdatering", + "Permission:Menus": "Meny för hantering", + "Permission:Menus.Create": "Skapa", + "Permission:Menus.Delete": "Radera", + "Permission:Menus.Update": "Uppdatering", + "Permission:PageManagement": "Hantering av sidor", + "Permission:PageManagement:Create": "Skapa", + "Permission:PageManagement:Delete": "Radera", + "Permission:PageManagement:Update": "Uppdatering", + "Permission:PageManagement:SetAsHomePage": "Ställ in som startsida", + "Permission:TagManagement": "Hantering av taggar", + "Permission:TagManagement.Create": "Skapa", + "Permission:TagManagement.Delete": "Radera", + "Permission:TagManagement.Update": "Uppdatering", + "Permission:GlobalResources": "Globala resurser", + "Permission:CmsKitPublic": "CmsKit allmän", + "Permission:Comments.DeleteAll": "Radera alla", + "PickYourReaction": "Välj din reaktion", + "Rating": "Betyg", + "RatingUndoMessage": "Ditt betyg kommer att ångras.", + "Reactions": "Reaktioner", + "Read": "Läs", + "RepliesToThisComment": "Svar på denna kommentar", + "Reply": "Svar", + "ReplyTo": "Svara på", + "SamplePageMessage": "En exempelsida för Pro-modulen", + "SaveChanges": "Spara ändringar", + "Script": "Skript", + "SelectAll": "Välj alla", + "Send": "Skicka", + "SendMessage": "Skicka meddelande", + "SelectedAuthor": "Författaren", + "ShortDescription": "Kort beskrivning", + "Slug": "Snigel", + "Source": "Källa", + "SourceUrl": "Källans webbadress", + "Star": "Stjärna", + "StartDate": "Startdatum", + "Style": "Stil", + "Subject": "Ämne", + "SubjectPlaceholder": "Vänligen skriv ett ämne", + "Submit": "Skicka in", + "Subscribe": "Prenumerera", + "SavedSuccessfully": "Sparad framgångsrikt!", + "TagDeletionConfirmationMessage": "Är du säker på att du vill ta bort taggen \"{0}\"?", + "Tags": "Etiketter", + "Text": "Text", + "ThankYou": "Tack så mycket", + "Title": "Titel", + "Undo": "Ångra", + "Update": "Uppdatering", + "UpdatePreferenceSuccessMessage": "Dina inställningar har sparats.", + "UpdateYourEmailPreferences": "Uppdatera dina e-postpreferenser", + "UnMakeMainMenu": "Unmake Huvudmeny", + "UploadFailedMessage": "Uppladdningen misslyckades.", + "UserId": "Användar-ID", + "Username": "Användarnamn", + "YourComment": "Din kommentar", + "YourEmailAddress": "Din e-postadress", + "YourFullName": "Ditt fullständiga namn", + "YourMessage": "Ditt meddelande", + "YourReply": "Ditt svar", + "MarkdownSupported": "Stöd för Markdown.", + "GlobalResources": "Globala resurser", + "CmsKit.BlogPost.Status.0": "Utkast", + "CmsKit.BlogPost.Status.1": "Publicerad", + "CmsKit.BlogPost.Status.2": "Väntar på recension", + "BlogPostPublishConfirmationMessage": "Är du säker på att du vill publicera blogginlägget \"{0}\"?", + "SuccessfullyPublished": "Framgångsrikt publicerad!", + "Draft": "Utkast", + "Publish": "Publicera", + "BlogPostDraftConfirmationMessage": "Är du säker på att du har angett blogginlägget \"{0}\" som utkast?", + "BlogPostSendToReviewConfirmationMessage": "Är du säker att du vill skicka blogginlägget \"{0}\" till administratörsgranskning för publicering?", + "SaveAsDraft": "Spara som utkast", + "SendToReview": "Skicka till recension", + "SendToReviewToPublish": "Skicka för granskning för publicering", + "BlogPostSendToReviewSuccessMessage": "Blogginlägget \"{0}\" har skickats till admin review för publicering.", + "HasBlogPostWaitingForReviewMessage": "Du har ett blogginlägg som väntar på att granskas. Klicka för att lista.", + "SelectAStatus": "Välj en status", + "Status": "Status", + "CmsKit.BlogPost.ScrollIndex": "Snabbnavigeringsfält i blogginlägg", + "CmsKit.BlogPost.PreventXssFeature": "Förhindra XSS", + "Add": "Lägg till", + "AddWidget": "Lägg till widget", + "PleaseConfigureWidgets": "Vänligen konfigurera widgets", + "SelectAnAuthor": "Välj en författare", + "InThisDocument": "I detta dokument", + "GoToTop": "Gå till toppen", + "SetAsHomePage": "Ändra status för startsidan", + "CompletedSettingAsHomePage": "Ställ in som startsida", + "IsHomePage": "Är hemsidan", + "RemovedSettingAsHomePage": "Borttagen inställning av startsidan", + "Feature:CmsKitGroup": "Cms-kit", + "Feature:BlogEnable": "Blogginlägg", + "Feature:BlogEnableDescription": "CMS Kits bloggpostsystem som gör det möjligt att skapa bloggar och inlägg dynamiskt i applikationen.", + "Feature:CommentEnable": "Kommentar", + "Feature:CommentEnableDescription": "CMS Kits kommentarsystem gör det möjligt att kommentera enheter som BlogPost.", + "Feature:GlobalResourceEnable": "Global resourcing", + "Feature:GlobalResourceEnableDescription": "CMS Kit's globala resoruces-funktion som gör det möjligt att hantera globala stilar och skript.", + "Feature:MenuEnable": "Meny", + "Feature:MenuEnableDescription": "CMS Kits dynamiska menysystem som gör det möjligt att lägga till/ta bort applikationsmenyer dynamiskt.", + "Feature:PageEnable": "Personsökning", + "Feature:PageEnableDescription": "CMS Kits sidosystem som gör det möjligt att skapa statiska sidor med en specifik URL.", + "Feature:RatingEnable": "Betyg", + "Feature:RatingEnableDescription": "CMS Kits betygssystem som gör det möjligt för användare att betygsätta enheter som BlogPost.", + "Feature:ReactionEnable": "Reaktion", + "Feature:ReactionEnableDescription": "CMS Kits reaktionssystem som gör det möjligt för användare att skicka reaktioner till enheter som BlogPost, Comments, etc.", + "Feature:TagEnable": "Taggning", + "Feature:TagEnableDescription": "CMS Kits taggsystem som gör det möjligt att tagga enheter som BlogPost.", + "Feature:MarkedItemEnable": "Markerat föremål", + "Feature:MarkedItemEnableDescription": "CMS Kits markeringssystem som gör det möjligt för användare att markera enheter som favoriter.", + "DeleteBlogPostMessage": "Bloggen kommer att raderas. Är du säker på det?", + "CaptchaCode": "Captcha-kod", + "CommentTextRequired": "Kommentar krävs", + "CaptchaCodeErrorMessage": "Det svar du angav för CAPTCHA var inte korrekt. Vänligen försök igen", + "CaptchaCodeMissingMessage": "Captcha-koden saknas!", + "UnAllowedExternalUrlMessage": "Du inkluderade en otillåten extern webbadress. Försök igen utan den externa webbadressen.", + "URL": "URL", + "PopularTags": "Populära taggar", + "RemoveCoverImageConfirmationMessage": "Är du säker på att du vill ta bort omslagsbilden?", + "RemoveCoverImage": "Ta bort omslagsbilden", + "CssClass": "CSS-klass", + "TagsHelpText": "Taggar ska vara kommaseparerade (t.ex.: tag1, tag2, tag3)", + "ThisPartOfContentCouldntBeLoaded": "Den här delen av innehållet kunde inte laddas.", + "DuplicateCommentAttemptMessage": "Duplikat försök att posta kommentar upptäckt. Din kommentar har redan skickats in.", + "NoBlogPostYet": "Inget blogginlägg ännu!", + "CmsKit:Comment": "Hur gör man", + "CmsKitCommentOptions:RequireApprovement": "Kräver godkännande för kommentarer", + "CmsKitCommentOptions:RequireApprovementDescription": "När funktionen är aktiverad måste kommentarer godkännas innan de publiceras.", + "CommentFilter:ApproveState": "Godkänna stat", + "ApproveState": "Godkänna stat", + "CommentFilter:0": "Alla", + "CommentFilter:1": "Godkänd", + "CommentFilter:2": "Avvisad", + "CommentFilter:4": "Väntar på", + "ApprovedSuccessfully": "Godkänd framgångsrikt", + "ApprovalRevokedSuccessfully": "Återkallat godkännande framgångsrikt", + "Approve": "Godkänna", + "Disapproved": "Avvisad", + "CommentAlertMessage": "Det finns {0} kommentarer som väntar på godkännande", + "Settings:Menu:CmsKit": "CMS", + "CommentsAwaitingApproval": "Kommentarer som väntar på godkännande", + "CommentSubmittedForApproval": "Din kommentar har skickats in för godkännande." + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/SimpleMathsCaptchaGenerator.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/SimpleMathsCaptchaGenerator.cs index bd5e374226..7cc8ac8c7d 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/SimpleMathsCaptchaGenerator.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/SimpleMathsCaptchaGenerator.cs @@ -100,72 +100,83 @@ public class SimpleMathsCaptchaGenerator : ITransientDependency private byte[] GenerateInternal(string stringText, CaptchaOptions options) { - var random = new Random(); - var family = MagickNET.FontFamilies.First(); - - var drawables = new Drawables() - .Font(family, options.FontStyle, FontWeight.Normal, FontStretch.Normal) - .FontPointSize(options.FontSize) - .StrokeColor(MagickColors.Transparent); - - var size = (ushort)(drawables.FontTypeMetrics(stringText)?.TextWidth ?? 0); - using var image = new MagickImage(MagickColors.White, size + 15, options.Height); - - double position = 0; - var startWith = (byte)random.Next(5, 10); - - foreach (var character in stringText) + try { - var text = character.ToString(); - var color = options.TextColor[random.Next(0, options.TextColor.Length)]; - drawables.FillColor(new MagickColor(color.R, color.G, color.B, color.A)) - .Text(startWith + position, - RandomTextGenerator.GenerateNextFloat(image.BaseHeight / 2.3, image.BaseHeight / 1.7), text); - - position += drawables.FontTypeMetrics(text)?.TextWidth ?? 0; - } + var random = new Random(); + + var drawables = new Drawables() + .FontPointSize(options.FontSize) + .StrokeColor(MagickColors.Transparent); + + var family = MagickNET.FontFamilies.FirstOrDefault(); + if (!family.IsNullOrWhiteSpace()) + { + drawables = drawables.Font(family, options.FontStyle, FontWeight.Normal, FontStretch.Normal); + } - // add rotation - var rotation = GetRotation(options); - drawables.Rotation(rotation); + var size = (ushort)(drawables.FontTypeMetrics(stringText)?.TextWidth ?? 0); + using var image = new MagickImage(MagickColors.White, size + 15, options.Height); - drawables.Draw(image); + double position = 0; + var startWith = (byte)random.Next(5, 10); - Parallel.For(0, options.DrawLines, _ => - { - // ReSharper disable once AccessToDisposedClosure - if (image is { IsDisposed: false }) + foreach (var character in stringText) { - var x0 = random.Next(0, random.Next(0, 30)); - var y0 = random.Next(10, image.Height); + var text = character.ToString(); + var color = options.TextColor[random.Next(0, options.TextColor.Length)]; + drawables.FillColor(new MagickColor(color.R, color.G, color.B, color.A)) + .Text(startWith + position, + RandomTextGenerator.GenerateNextFloat(image.BaseHeight / 2.3, image.BaseHeight / 1.7), text); - var x1 = random.Next(30, image.Width); - var y1 = random.Next(0, image.Height); - - image.Draw(new Drawables() - .StrokeColor(options.DrawLinesColor[random.Next(0, options.DrawLinesColor.Length)]) - .StrokeWidth(RandomTextGenerator.GenerateNextFloat(options.MinLineThickness, - options.MaxLineThickness)) - .Line(x0, y0, x1, y1)); + position += drawables.FontTypeMetrics(text)?.TextWidth ?? 0; } - }); - Parallel.For(0, options.NoiseRate, _ => - { - if (image is { IsDisposed: false }) - { - var x = random.Next(0, image.Width); - var y = random.Next(0, image.Height); - image.Draw(new Drawables() - .FillColor(options.NoiseRateColor[random.Next(0, options.NoiseRateColor.Length)]) - .Point(x, y) - ); - } - }); + // add rotation + var rotation = GetRotation(options); + drawables.Rotation(rotation); - image.Resize(new MagickGeometry(options.Width, options.Height) { IgnoreAspectRatio = true }); + drawables.Draw(image); - return image.ToByteArray(options.Encoder); + Parallel.For(0, options.DrawLines, _ => + { + // ReSharper disable once AccessToDisposedClosure + if (image is { IsDisposed: false }) + { + var x0 = random.Next(0, random.Next(0, 30)); + var y0 = random.Next(10, image.Height); + + var x1 = random.Next(30, image.Width); + var y1 = random.Next(0, image.Height); + + image.Draw(new Drawables() + .StrokeColor(options.DrawLinesColor[random.Next(0, options.DrawLinesColor.Length)]) + .StrokeWidth(RandomTextGenerator.GenerateNextFloat(options.MinLineThickness, + options.MaxLineThickness)) + .Line(x0, y0, x1, y1)); + } + }); + + Parallel.For(0, options.NoiseRate, _ => + { + if (image is { IsDisposed: false }) + { + var x = random.Next(0, image.Width); + var y = random.Next(0, image.Height); + image.Draw(new Drawables() + .FillColor(options.NoiseRateColor[random.Next(0, options.NoiseRateColor.Length)]) + .Point(x, y) + ); + } + }); + + image.Resize(new MagickGeometry(options.Width, options.Height) { IgnoreAspectRatio = true }); + + return image.ToByteArray(options.Encoder); + } + catch (Exception e) + { + return Array.Empty(); + } } private double GetRotation(CaptchaOptions options) diff --git a/modules/docs/app/VoloDocs.Web/.gitignore b/modules/docs/app/VoloDocs.Web/.gitignore new file mode 100644 index 0000000000..37fb7c967f --- /dev/null +++ b/modules/docs/app/VoloDocs.Web/.gitignore @@ -0,0 +1 @@ +**/wwwroot/libs/**/*.* \ No newline at end of file diff --git a/modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/sv.json b/modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/sv.json new file mode 100644 index 0000000000..f4453a0565 --- /dev/null +++ b/modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/sv.json @@ -0,0 +1,10 @@ +{ + "culture": "sv", + "texts": { + "DocsTitle": "VoloDocs", + "WelcomeVoloDocs": "Välkommen till VoloDocs!", + "NoProjectWarning": "Det finns inget definierat projekt ännu!", + "CreateYourFirstProject": "Klicka här för att starta ditt första projekt", + "NoProject": "Inget projekt!" + } +} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/sv.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/sv.json new file mode 100644 index 0000000000..cbde97c756 --- /dev/null +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/sv.json @@ -0,0 +1,62 @@ +{ + "culture": "sv", + "texts": { + "Permission:DocumentManagement": "Dokumenthantering", + "Permission:Projects": "Projekt", + "Permission:Edit": "Redigera", + "Permission:Delete": "Radera", + "Permission:Create": "Skapa", + "Permission:Documents": "Dokument", + "Menu:Documents": "Dokument", + "Menu:DocumentManagement": "Dokument", + "Menu:ProjectManagement": "Projekt", + "CreateANewProject": "Skapa ett nytt projekt", + "Edit": "Redigera", + "Create": "Skapa", + "Pull": "Dra från", + "Projects": "Projekt", + "Name": "Namn", + "ShortName": "Kortnamn", + "DocumentStoreType": "DokumentStoreTyp", + "Format": "Format", + "ShortNameInfoText": "Kommer att användas för unik URL.", + "DisplayName:Name": "Namn", + "DisplayName:ShortName": "Kort namn", + "DisplayName:Format": "Format", + "DisplayName:DefaultDocumentName": "Standardnamn för dokument", + "DisplayName:NavigationDocumentName": "Namn på navigeringsdokument", + "DisplayName:MinimumVersion": "Minsta version", + "DisplayName:MainWebsiteUrl": "URL för huvudwebbplats", + "DisplayName:LatestVersionBranchName": "Grennamn för senaste versionen", + "DisplayName:GitHubRootUrl": "URL för GitHub-rot", + "DisplayName:GitHubAccessToken": "Token för GitHub-åtkomst", + "DisplayName:GitHubUserAgent": "GitHub användaragent", + "DisplayName:GithubVersionProviderSource": "GitHub version leverantör källa", + "DisplayName:VersionBranchPrefix": "Prefix för versionsgren", + "DisplayName:All": "Dra alla", + "DisplayName:LanguageCode": "Språkkod", + "DisplayName:Version": "Version", + "Documents": "Dokument", + "RemoveFromCache": "Ta bort från cache och indexera på nytt", + "Reindex": "Återindexera", + "ReindexCompleted": "Omindexering slutförd", + "RemovedFromCache": "Borttagen från cache och indexerad på nytt", + "RemoveFromCacheConfirmation": "Är du säker på att du vill ta bort det här objektet från cacheminnet?", + "ReIndexDocumentConfirmation": "Är du säker att du vill indexera om \"{0}\"?", + "DeleteFromDatabase": "Ta bort från databasen", + "Deleted": "Borttagen", + "Search": "Sök", + "StartDate": "Startdatum", + "EndDate": "Slutdatum", + "CreationTime": "Skapelsetid", + "LastUpdateTime": "Senaste uppdatering", + "LastSignificantUpdateTime": "Senaste betydande uppdatering", + "Version": "Version", + "LanguageCode": "Språkkod", + "FileName": "Filens namn", + "LastCachedTime": "Cache-tid", + "Project": "Projekt", + "AdvancedFilters": "Avancerade filter", + "RemoveCacheAndReIndexConfirmation": "Dokumentet \"{0}\" kommer att tas bort från cacheminnet och indexeras på nytt. Kan du bekräfta detta?" + } +} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Web/Properties/launchSettings.json b/modules/docs/src/Volo.Docs.Admin.Web/Properties/launchSettings.json new file mode 100644 index 0000000000..1661881b2b --- /dev/null +++ b/modules/docs/src/Volo.Docs.Admin.Web/Properties/launchSettings.json @@ -0,0 +1,12 @@ +{ + "profiles": { + "Volo.Docs.Admin.Web": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "https://localhost:50279;http://localhost:50281" + } + } +} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/DocumentRenderErrorEvent.cs b/modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/DocumentRenderErrorEvent.cs new file mode 100644 index 0000000000..2f30099576 --- /dev/null +++ b/modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/DocumentRenderErrorEvent.cs @@ -0,0 +1,8 @@ +namespace Volo.Docs.Documents; + +public class DocumentRenderErrorEvent +{ + public string Name { get; set; } + + public string ErrorMessage { get; set; } +} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/NavigationNode.cs b/modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/NavigationNode.cs index 6ecf7eb204..2f1afce342 100644 --- a/modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/NavigationNode.cs +++ b/modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/NavigationNode.cs @@ -29,12 +29,17 @@ namespace Volo.Docs.Documents public DateTime? LastSignificantUpdateTime { get; set; } public bool IsSelected(string documentName) + { + return FindNavigation(documentName) != null; + } + + public NavigationNode FindNavigation(string documentName) { if (documentName == null) { - return false; + return null; } - + var path = Path ?? string.Empty; var pathHasExtension = System.IO.Path.HasExtension(path); @@ -44,26 +49,26 @@ namespace Volo.Docs.Documents path = path.EnsureEndsWith('/') + "index" + extension; } - if (string.Equals(documentName, path, StringComparison.OrdinalIgnoreCase)) { - return true; + return this; } if (Items == null) { - return false; + return null; } foreach (var childItem in Items) { - if (childItem.IsSelected(documentName)) + var node = childItem.FindNavigation(documentName); + if (node != null) { - return true; + return node; } } - return false; + return null; } } diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/ElasticDocumentFullSearch.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/ElasticDocumentFullSearch.cs index 22d4bf9ff4..a34e27cf20 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/ElasticDocumentFullSearch.cs +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/ElasticDocumentFullSearch.cs @@ -283,7 +283,7 @@ namespace Volo.Docs.Documents.FullSearch.Elastic protected virtual string NormalizeField(string field) { - return field.Replace("-", "").ToLower(); + return field?.Replace("-", "").ToLower(); } } } diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en.json index a4a5e3ddf0..b4414be0ea 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en.json @@ -41,6 +41,8 @@ "Next": "Next", "Previous": "Previous", "ProjectDeletionWarningMessage": "Project will be deleted.", + "Docs_Page_Title": "ABP Documentation", + "Docs_Page_Description": "Access comprehensive guides and API references in the ABP Documentation, aiding in development and troubleshooting.", "GoogleTranslate": "Google Translate" } } diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/sv.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/sv.json new file mode 100644 index 0000000000..2ec28362f0 --- /dev/null +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/sv.json @@ -0,0 +1,48 @@ +{ + "culture": "sv", + "texts": { + "Documents": "Dokument", + "BackToWebsite": "Tillbaka till webbplatsen", + "Contributors": "Medverkande", + "ShareOn": "Dela på", + "Version": "Version", + "Edit": "Redigera", + "LastEditTime": "Sista redigeringen", + "Delete": "Radera", + "ClearCache": "Rensa cache", + "ClearCacheConfirmationMessage": "Är du säker på att du vill rensa alla cacheminnen för projekt \"{0}\"", + "ReIndexAllProjects": "Omindexera alla projekt", + "ReIndexProject": "ReIndex-projektet", + "ReIndexProjectConfirmationMessage": "Är du säker på att omindexera för projekt \"{0}\"", + "SuccessfullyReIndexProject": "Framgångsrikt omindexerad: \"{0}\"", + "ReIndexAllProjectConfirmationMessage": "Är du säker på att omindexera alla projekt?", + "SuccessfullyReIndexAllProject": "Framgångsrik omindexering av alla projekt", + "InThisDocument": "I detta dokument", + "GoToTop": "Gå till toppen", + "Projects": "Projekt", + "NoProjectWarning": "Det finns inga projekt ännu!", + "DocumentNotFound": "Oops, det begärda dokumentet hittades inte!", + "ProjectNotFound": "Oops, det begärda projektet hittades inte!", + "NavigationDocumentNotFound": "Denna version har inte något navigationsdokument!", + "DocumentNotFoundInSelectedLanguage": "Dokumentet på det språk du ville ha hittades inte. Dokumentet visas på standardspråket.", + "FilterTopics": "Filtrera ämnen", + "FullSearch": "Sök i dokument", + "Volo.Docs.Domain:010001": "Elastisk sökning är inte aktiverad.", + "MultipleVersionDocumentInfo": "Det finns flera versioner av detta dokument. Välj de alternativ som passar dig bäst.", + "New": "Nya", + "Upd": "Uppdatering", + "NewExplanation": "Skapad under de senaste två veckorna.", + "UpdatedExplanation": "Uppdaterad under de senaste två veckorna.", + "Volo.Docs.Domain:010002": "Kortnamn {Kortnamn} finns redan.", + "Preview": "förhandsvisning", + "Search": "Sök", + "SearchResults": "Sökresultat", + "SearchInTheAllDocuments": "Sök i alla dokument", + "Next": "Nästa", + "Previous": "Föregående", + "ProjectDeletionWarningMessage": "Projektet kommer att raderas.", + "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.", + "GoogleTranslate": "Google Översätt" + } +} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Web/HtmlConverting/ScribanDocumentSectionRenderer.cs b/modules/docs/src/Volo.Docs.Web/HtmlConverting/ScribanDocumentSectionRenderer.cs index b95966ea28..e8d0149cf8 100644 --- a/modules/docs/src/Volo.Docs.Web/HtmlConverting/ScribanDocumentSectionRenderer.cs +++ b/modules/docs/src/Volo.Docs.Web/HtmlConverting/ScribanDocumentSectionRenderer.cs @@ -13,8 +13,11 @@ namespace Volo.Docs.HtmlConverting { public class ScribanDocumentSectionRenderer : IDocumentSectionRenderer { - private const string JsonOpener = "````json"; - private const string JsonCloser = "````"; + private readonly static List DocsJsonSections = new List + { + new DocsJsonSection("````json", "````"), + new DocsJsonSection("```json", "```") + }; private const string DocsParam = "//[doc-params]"; private const string DocsTemplates = "//[doc-template]"; private const string DocsNav = "//[doc-nav]"; @@ -59,12 +62,12 @@ namespace Volo.Docs.HtmlConverting { try { - if (!document.Contains(JsonOpener) || !document.Contains(sectionName)) + if (!HasJsonSection(document) || !document.Contains(sectionName)) { return new T(); } - var (jsonBeginningIndex, jsonEndingIndex, insideJsonSection) = GetJsonBeginEndIndexesAndPureJson(document, sectionName); + var (jsonBeginningIndex, jsonEndingIndex, insideJsonSection, _) = GetJsonBeginEndIndexesAndPureJson(document, sectionName); if (jsonBeginningIndex < 0 || jsonEndingIndex <= 0 || string.IsNullOrWhiteSpace(insideJsonSection)) { @@ -96,12 +99,12 @@ namespace Volo.Docs.HtmlConverting try { - if (!document.Contains(JsonOpener) || !document.Contains(sectionName)) + if (!HasJsonSection(document) || !document.Contains(sectionName)) { continue; } - var (jsonBeginningIndex, jsonEndingIndex, insideJsonSection) = GetJsonBeginEndIndexesAndPureJson(document, sectionName); + var (jsonBeginningIndex, jsonEndingIndex, insideJsonSection, jsonSection) = GetJsonBeginEndIndexesAndPureJson(document, sectionName); if (jsonBeginningIndex < 0 || jsonEndingIndex <= 0 || string.IsNullOrWhiteSpace(insideJsonSection)) { @@ -109,8 +112,8 @@ namespace Volo.Docs.HtmlConverting } document = document.Remove( - jsonBeginningIndex - JsonOpener.Length, - (jsonEndingIndex + JsonCloser.Length) - (jsonBeginningIndex - JsonOpener.Length) + jsonBeginningIndex - jsonSection.Opener.Length, + (jsonEndingIndex + jsonSection.Closer.Length) - (jsonBeginningIndex - jsonSection.Opener.Length) ); } catch (Exception) @@ -121,122 +124,193 @@ namespace Volo.Docs.HtmlConverting return document; } - - private static (int, int, string) GetJsonBeginEndIndexesAndPureJson(string document, string sectionName) + + private static bool HasJsonSection(string document) { - var searchedIndex = 0; + return DocsJsonSections.Any(section => document.Contains(section.Opener) && document.Contains(section.Closer)); + } - while (searchedIndex < document.Length) + private static (int, int, string, DocsJsonSection) GetJsonBeginEndIndexesAndPureJson(string document, string sectionName) + { + foreach (var section in DocsJsonSections) { - var jsonBeginningIndex = document.Substring(searchedIndex).IndexOf(JsonOpener, StringComparison.Ordinal) + JsonOpener.Length + searchedIndex; - - if (jsonBeginningIndex < 0) - { - return (-1, -1, ""); - } - - var jsonEndingIndex = document.Substring(jsonBeginningIndex).IndexOf(JsonCloser, StringComparison.Ordinal) + jsonBeginningIndex; - var insideJsonSection = document[jsonBeginningIndex..jsonEndingIndex]; + var (jsonBeginningIndex, jsonEndingIndex, insideJsonSection) = section.GetJsonBeginEndIndexesAndPureJson(document, sectionName); - if (insideJsonSection.IndexOf(sectionName, StringComparison.Ordinal) < 0) + if (jsonBeginningIndex >= 0 && jsonEndingIndex > 0 && !string.IsNullOrWhiteSpace(insideJsonSection)) { - searchedIndex = jsonEndingIndex + JsonCloser.Length; - continue; + return (jsonBeginningIndex, jsonEndingIndex, insideJsonSection, section); } - - return (jsonBeginningIndex, jsonEndingIndex, insideJsonSection); } - return (-1, -1, ""); + return (-1, -1, "", null); } public async Task> GetPartialTemplatesInDocumentAsync(string documentContent) { var templates = new List(); - while (documentContent.Contains(JsonOpener)) + foreach (var section in DocsJsonSections) { - var afterJsonOpener = documentContent.Substring( - documentContent.IndexOf(JsonOpener, StringComparison.Ordinal) + JsonOpener.Length - ); + templates.AddRange(await section.GetPartialTemplatesInDocumentAsync(documentContent)); + } - var betweenJsonOpenerAndCloser = afterJsonOpener.Substring(0, - afterJsonOpener.IndexOf(JsonCloser, StringComparison.Ordinal) - ); + return templates; + } + + private static string SetPartialTemplates(string document, IReadOnlyCollection templates) + { + foreach (var section in DocsJsonSections) + { + document = section.SetPartialTemplates(document, templates); + } + + return document; + } + + private class DocsJsonSection + { + public string Opener { get; } + public string Closer { get; } + + public DocsJsonSection(string opener, string closer) + { + Opener = opener; + Closer = closer; + } - documentContent = afterJsonOpener.Substring( - afterJsonOpener.IndexOf(JsonCloser, StringComparison.Ordinal) + JsonCloser.Length - ); + public (int, int, string) GetJsonBeginEndIndexesAndPureJson(string document, string sectionName) + { + var searchedIndex = 0; - if (!betweenJsonOpenerAndCloser.Contains(DocsTemplates)) + while (searchedIndex < document.Length) { - continue; - } + var jsonBeginningIndex = document.Substring(searchedIndex).IndexOf(Opener, StringComparison.Ordinal); - var json = betweenJsonOpenerAndCloser.Substring(betweenJsonOpenerAndCloser.IndexOf(DocsTemplates, StringComparison.Ordinal) + DocsTemplates.Length); + if (jsonBeginningIndex < 0) + { + return (-1, -1, ""); + } + + jsonBeginningIndex += Opener.Length + searchedIndex; - if (!DocsJsonSerializerHelper.TryDeserialize(json, out var template)) - { - throw new UserFriendlyException($"ERROR-20200327: Cannot validate JSON content for `AvailableParameters`!"); - } + var jsonEndingIndex = document.Substring(jsonBeginningIndex).IndexOf(Closer, StringComparison.Ordinal); + if (jsonEndingIndex < 0) + { + return (-1, -1, ""); + } + + jsonEndingIndex += jsonBeginningIndex; + var insideJsonSection = document[jsonBeginningIndex..jsonEndingIndex]; - templates.Add(template); - } + if (insideJsonSection.IndexOf(sectionName, StringComparison.Ordinal) < 0) + { + searchedIndex = jsonEndingIndex + Closer.Length; + continue; + } - return await Task.FromResult(templates); - } + return (jsonBeginningIndex, jsonEndingIndex, insideJsonSection); + } - private static string SetPartialTemplates(string document, IReadOnlyCollection templates) - { - var newDocument = new StringBuilder(); + return (-1, -1, ""); + } - while (document.Contains(JsonOpener)) + public async Task> GetPartialTemplatesInDocumentAsync( + string documentContent) { - var beforeJson = document.Substring(0, - document.IndexOf(JsonOpener, StringComparison.Ordinal) + JsonOpener.Length - ); + var templates = new List(); - var afterJsonOpener = document.Substring( - document.IndexOf(JsonOpener, StringComparison.Ordinal) + JsonOpener.Length - ); + while (documentContent.Contains(Opener)) + { + var afterJsonOpener = documentContent.Substring( + documentContent.IndexOf(Opener, StringComparison.Ordinal) + Opener.Length + ); - var betweenJsonOpenerAndCloser = afterJsonOpener.Substring(0, - afterJsonOpener.IndexOf(JsonCloser, StringComparison.Ordinal) - ); + var betweenJsonOpenerAndCloser = afterJsonOpener.Substring(0, + afterJsonOpener.IndexOf(Closer, StringComparison.Ordinal) + ); - if (!betweenJsonOpenerAndCloser.Contains(DocsTemplates)) - { - document = afterJsonOpener.Substring( - afterJsonOpener.IndexOf(JsonCloser, StringComparison.Ordinal) + JsonCloser.Length + documentContent = afterJsonOpener.Substring( + afterJsonOpener.IndexOf(Closer, StringComparison.Ordinal) + Closer.Length ); - newDocument.Append(beforeJson + betweenJsonOpenerAndCloser + JsonCloser); - continue; + if (!betweenJsonOpenerAndCloser.Contains(DocsTemplates)) + { + continue; + } + + var json = betweenJsonOpenerAndCloser.Substring( + betweenJsonOpenerAndCloser.IndexOf(DocsTemplates, StringComparison.Ordinal) + + DocsTemplates.Length); + + if (!DocsJsonSerializerHelper.TryDeserialize(json, + out var template)) + { + throw new UserFriendlyException( + $"ERROR-20200327: Cannot validate JSON content for `AvailableParameters`!"); + } + + templates.Add(template); } - var json = betweenJsonOpenerAndCloser.Substring( - betweenJsonOpenerAndCloser.IndexOf(DocsTemplates, StringComparison.Ordinal) + DocsTemplates.Length - ); + return await Task.FromResult(templates); + } + + public string SetPartialTemplates(string document, + IReadOnlyCollection templates) + { + var newDocument = new StringBuilder(); - if (DocsJsonSerializerHelper.TryDeserialize(json, out var documentPartialTemplateWithValuesDto)) + while (document.Contains(Opener)) { - var template = templates.FirstOrDefault(t => t.Path == documentPartialTemplateWithValuesDto.Path); + var beforeJson = document.Substring(0, + document.IndexOf(Opener, StringComparison.Ordinal) + Opener.Length + ); - var beforeTemplate = document.Substring(0, - document.IndexOf(JsonOpener, StringComparison.Ordinal) + var afterJsonOpener = document.Substring( + document.IndexOf(Opener, StringComparison.Ordinal) + Opener.Length ); - newDocument.Append(beforeTemplate + template?.Content + JsonCloser); + var betweenJsonOpenerAndCloser = afterJsonOpener.Substring(0, + afterJsonOpener.IndexOf(Closer, StringComparison.Ordinal) + ); + + if (!betweenJsonOpenerAndCloser.Contains(DocsTemplates)) + { + document = afterJsonOpener.Substring( + afterJsonOpener.IndexOf(Closer, StringComparison.Ordinal) + Closer.Length + ); + + newDocument.Append(beforeJson + betweenJsonOpenerAndCloser + Closer); + continue; + } - document = afterJsonOpener.Substring( - afterJsonOpener.IndexOf(JsonCloser, StringComparison.Ordinal) + JsonCloser.Length + var json = betweenJsonOpenerAndCloser.Substring( + betweenJsonOpenerAndCloser.IndexOf(DocsTemplates, StringComparison.Ordinal) + + DocsTemplates.Length ); + + if (DocsJsonSerializerHelper.TryDeserialize(json, + out var documentPartialTemplateWithValuesDto)) + { + var template = + templates.FirstOrDefault(t => t.Path == documentPartialTemplateWithValuesDto.Path); + + var beforeTemplate = document.Substring(0, + document.IndexOf(Opener, StringComparison.Ordinal) + ); + + newDocument.Append(beforeTemplate + template?.Content + Closer); + + document = afterJsonOpener.Substring( + afterJsonOpener.IndexOf(Closer, StringComparison.Ordinal) + Closer.Length + ); + } } - } - newDocument.Append(document); + newDocument.Append(document); - return newDocument.ToString(); + return newDocument.ToString(); + } } } } diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml index e029f2685e..b856fff614 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml @@ -6,6 +6,8 @@ @inject IHtmlLocalizer L @model IndexModel @{ + ViewBag.Title = L["Docs_Page_Title"].Value; + ViewBag.Description = L["Docs_Page_Description"].Value; } @section styles { diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml.cs b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml.cs index 82b43dbfca..a5a40eb43b 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml.cs +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml.cs @@ -29,7 +29,7 @@ namespace Volo.Docs.Pages.Documents { if (_uiOptions.SingleProjectMode.Enable) { - return RedirectToPage("/Documents/Project/Index"); + return RedirectToPage("/Documents/Project/Index", new {version = DocsAppConsts.Latest }); } var listResult = await _projectAppService.GetListAsync(); diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml index b60ad9507f..9507da66ce 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml @@ -28,7 +28,7 @@ @{ ViewBag.FluidLayout = true; Layout = ThemeManager.CurrentTheme.GetEmptyLayout(); - PageLayout.Content.Title = Model.DocumentName?.Replace("-", " "); + PageLayout.Content.Title = Model.DocumentPageTitle; ViewBag.Description = Model.GetDescription(); ViewBag.CanonicalUrl = Model.IsLatestVersion ? null : Model.GetFullUrlOfTheLatestDocument(); //issue #12355 } diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs index c3c1ae9643..c80b81bf71 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Globalization; using System.Linq; +using System.Net; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; @@ -16,6 +17,7 @@ using Volo.Abp.Application.Dtos; using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; using Volo.Abp.Data; using Volo.Abp.Domain.Entities; +using Volo.Abp.EventBus.Local; using Volo.Docs.Documents; using Volo.Docs.HtmlConverting; using Volo.Docs.Models; @@ -55,6 +57,8 @@ namespace Volo.Docs.Pages.Documents.Project public List LanguageSelectListItems { get; set; } public string DocumentNameWithExtension { get; private set; } + + public string DocumentPageTitle { get; private set; } public DocumentWithDetailsDto Document { get; private set; } @@ -96,6 +100,8 @@ namespace Volo.Docs.Pages.Documents.Project private readonly DocsUiOptions _uiOptions; protected IDocsLinkGenerator DocsLinkGenerator => LazyServiceProvider.LazyGetRequiredService(); + + protected ILocalEventBus LocalEventBus => LazyServiceProvider.LazyGetRequiredService(); public IndexModel( IDocumentAppService documentAppService, @@ -191,6 +197,7 @@ namespace Volo.Docs.Pages.Documents.Project await SetNavigationAsync(); SetLanguageSelectListItems(); + SetDocumentPageTitle(); return Page(); } @@ -455,12 +462,18 @@ namespace Volo.Docs.Pages.Documents.Project Version = Version } ); + } catch (DocumentNotFoundException) //TODO: What if called on a remote service which may return 404 { return; } } + + private void SetDocumentPageTitle() + { + DocumentPageTitle = Navigation.FindNavigation(DocumentNameWithExtension)?.Text ?? DocumentName?.Replace("-", " "); + } public string CreateVersionLink(VersionInfoViewModel latestVersion, string version, string documentName = null) { @@ -540,7 +553,14 @@ namespace Volo.Docs.Pages.Documents.Project DocumentNavigationsDto = await _documentSectionRenderer.GetDocumentNavigationsAsync(Document.Content); - Document.Content = await _documentSectionRenderer.RenderAsync(Document.Content, UserPreferences, partialTemplates); + try + { + Document.Content = await _documentSectionRenderer.RenderAsync(Document.Content, UserPreferences, partialTemplates); + } + catch (Exception e) + { + await OnSectionRenderingErrorAsync(e); + } } var converter = _documentToHtmlConverterFactory.Create(Document.Format ?? Project.Format); @@ -563,6 +583,19 @@ namespace Volo.Docs.Pages.Documents.Project Document.Content = content; } + + protected virtual async Task OnSectionRenderingErrorAsync(Exception e) + { + var message = $"Error occurred during the rendering of this document. The document is not valid: {e.Message}"; + Document.Content = $"````txt{Environment.NewLine}{message}{Environment.NewLine}````"; + await LocalEventBus.PublishAsync(new DocumentRenderErrorEvent + { + ErrorMessage = message, Name = Document.Name + }); + + // Slow down with crawling + HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError; + } private async Task> GetDocumentPartialTemplatesAsync() { diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.min.css.map b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.min.css.map deleted file mode 100644 index 0f394fc16a..0000000000 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.min.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["index.scss"],"names":[],"mappings":"AACI,8BACI,4BACA,4CACA,uBAKJ,+BACI,0CAMA,0DACI,cACA,kEACI,eAGR,4DACI,gBACA,eACA","file":"Index.min.css"} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.min.css b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.min.css deleted file mode 100644 index 6fc6088aca..0000000000 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.min.css +++ /dev/null @@ -1 +0,0 @@ -.code-toolbar .line-highlight{margin-top:1.5em !important;background:rgba(233,237,241,0.34) !important;padding:1px !important;}.input-group .input-group-text{background-color:transparent !important;}.navigation .next-link .desc,.navigation .prev-link .desc{color:#0D6EFD;}.navigation .next-link .desc .fa,.navigation .prev-link .desc .fa{font-size:12px;}.navigation .next-link .title,.navigation .prev-link .title{font-weight:600;font-size:18px;color:#0B1621;}body{top:0px !important;}.skiptranslate iframe{display:none !important;}.google_translate_text{color:#aaa;font-family:var(--bs-body-font-family);font-size:10pt;margin-left:2px;font-weight:500;}.goog-te-gadget{white-space:break-spaces !important;}.goog-te-combo:focus-visible{border:0px;outline:none;}/*# sourceMappingURL=Index.min.css.map */ \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Web/Properties/launchSettings.json b/modules/docs/src/Volo.Docs.Web/Properties/launchSettings.json new file mode 100644 index 0000000000..e975819bc5 --- /dev/null +++ b/modules/docs/src/Volo.Docs.Web/Properties/launchSettings.json @@ -0,0 +1,12 @@ +{ + "profiles": { + "Volo.Docs.Web": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "https://localhost:50280;http://localhost:50283" + } + } +} \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/sv.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/sv.json new file mode 100644 index 0000000000..fcdac9b109 --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/sv.json @@ -0,0 +1,17 @@ +{ + "culture": "sv", + "texts": { + "Features": "Funktioner", + "NoFeatureFoundMessage": "Det finns inte någon tillgänglig funktion.", + "ManageHostFeatures": "Hantera värdfunktioner", + "ManageHostFeaturesText": "Du kan hantera funktionerna på hostsidan genom att klicka på följande knapp.", + "Permission:FeatureManagement": "Hantering av funktioner", + "Permission:FeatureManagement.ManageHostFeatures": "Hantera värdfunktioner", + "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0} Funktionsvärdet är inte giltigt!", + "Menu:FeatureManagement": "Hantering av funktioner", + "ResetToDefault": "Återställ till standard", + "ResetedToDefault": "Återställd till standard", + "AreYouSure": "Är du säker?", + "AreYouSureToResetToDefault": "Är du säker på att återställa till standard?" + } +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityUserAppService.cs b/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityUserAppService.cs index 9219e5169a..a56935424e 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityUserAppService.cs +++ b/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityUserAppService.cs @@ -172,21 +172,21 @@ public class IdentityUserAppService : IdentityAppServiceBase, IIdentityUserAppSe (await UserManager.SetEmailAsync(user, input.Email)).CheckErrors(); } - if (!string.Equals(user.PhoneNumber, input.PhoneNumber, StringComparison.InvariantCultureIgnoreCase)) { (await UserManager.SetPhoneNumberAsync(user, input.PhoneNumber)).CheckErrors(); } + (await UserManager.SetLockoutEnabledAsync(user, input.LockoutEnabled)).CheckErrors(); + if (user.Id != CurrentUser.Id) { - (await UserManager.SetLockoutEnabledAsync(user, input.LockoutEnabled)).CheckErrors(); + user.SetIsActive(input.IsActive); } - user.Name = input.Name; - user.Surname = input.Surname; + user.Name = input.Name?.Trim(); + user.Surname = input.Surname?.Trim(); (await UserManager.UpdateAsync(user)).CheckErrors(); - user.SetIsActive(input.IsActive); if (input.RoleNames != null && await PermissionChecker.IsGrantedAsync(IdentityPermissions.Users.ManageRoles)) { (await UserManager.SetRolesAsync(user, input.RoleNames)).CheckErrors(); diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleManagement.razor.cs b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleManagement.razor.cs index a960c051ae..d683823461 100644 --- a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleManagement.razor.cs +++ b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleManagement.razor.cs @@ -80,7 +80,7 @@ public partial class RoleManagement return base.SetEntityActionsAsync(); } - protected override ValueTask SetTableColumnsAsync() + protected override async ValueTask SetTableColumnsAsync() { RoleManagementTableColumns .AddRange(new TableColumn[] @@ -99,10 +99,10 @@ public partial class RoleManagement }, }); - RoleManagementTableColumns.AddRange(GetExtensionTableColumns(IdentityModuleExtensionConsts.ModuleName, + RoleManagementTableColumns.AddRange(await GetExtensionTableColumnsAsync(IdentityModuleExtensionConsts.ModuleName, IdentityModuleExtensionConsts.EntityNames.Role)); - return base.SetTableColumnsAsync(); + await base.SetTableColumnsAsync(); } protected override async Task SetPermissionsAsync() diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor index 761f95c531..9ecb31e9e7 100644 --- a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor +++ b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor @@ -129,12 +129,11 @@ @L["DisplayName:IsActive"] - @if (!IsEditCurrentUser) - { - - @L["DisplayName:LockoutEnabled"] - - } + + + @L["DisplayName:LockoutEnabled"] + + @@ -253,12 +252,17 @@ + @if (!IsEditCurrentUser) + { + + @L["DisplayName:IsActive"] + + } - @L["DisplayName:IsActive"] - - - @L["DisplayName:LockoutEnabled"] - + + @L["DisplayName:LockoutEnabled"] + + @if (EditUserRoles != null && EditUserRoles.Any()) diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor.cs b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor.cs index 53fde974db..a2bf95fa0c 100644 --- a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor.cs +++ b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor.cs @@ -197,7 +197,7 @@ public partial class UserManagement return base.SetEntityActionsAsync(); } - protected override ValueTask SetTableColumnsAsync() + protected override async ValueTask SetTableColumnsAsync() { UserManagementTableColumns .AddRange(new TableColumn[] @@ -227,9 +227,9 @@ public partial class UserManagement } }); - UserManagementTableColumns.AddRange(GetExtensionTableColumns(IdentityModuleExtensionConsts.ModuleName, + UserManagementTableColumns.AddRange(await GetExtensionTableColumnsAsync(IdentityModuleExtensionConsts.ModuleName, IdentityModuleExtensionConsts.EntityNames.User)); - return base.SetTableColumnsAsync(); + await base.SetTableColumnsAsync(); } protected override ValueTask SetToolbarItemsAsync() diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ar.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ar.json index 7b3edfb3d9..21dd7ac142 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ar.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ar.json @@ -28,6 +28,7 @@ "DisplayName:TwoFactorEnabled": "التحقق من عاملين", "DisplayName:IsActive": "نشيط", "DisplayName:LockoutEnabled": "تأمين الحساب", + "Description:LockoutEnabled": "قفل الحساب بعد محاولات تسجيل الدخول الفاشلة", "NewRole": "دور جديد", "RoleName": "اسم الدور", "CreationTime": "وقت الإنشاء", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/cs.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/cs.json index a3079f81af..ca65951c3e 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/cs.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/cs.json @@ -28,6 +28,7 @@ "DisplayName:TwoFactorEnabled": "Dvoufázové ověřování", "DisplayName:IsActive": "Aktivní", "DisplayName:LockoutEnabled": "Zamčení účtu", + "Description:LockoutEnabled": "Zamknout účet po neúspěšných pokusech o přihlášení", "NewRole": "Nová role", "RoleName": "Název role", "CreationTime": "Vytvořeno", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/de.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/de.json index 1db549aee7..009d41fd0b 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/de.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/de.json @@ -28,6 +28,7 @@ "DisplayName:TwoFactorEnabled": "Zwei-Faktor-Überprüfung", "DisplayName:IsActive": "Aktiv", "DisplayName:LockoutEnabled": "Konto-Sperrung", + "Description:LockoutEnabled": "Konto nach fehlgeschlagenen Anmeldeversuchen sperren", "NewRole": "Neue Rolle", "RoleName": "Rollenname", "CreationTime": "Erstellungszeitpunkt", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/el.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/el.json index fa761f73f3..97dfcb9a50 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/el.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/el.json @@ -27,6 +27,7 @@ "DisplayName:TwoFactorEnabled": "Επαλήθευση δύο παραγόντων", "DisplayName:IsActive": "Ενεργός", "DisplayName:LockoutEnabled": "Κλείδωμα λογαριασμού", + "Description:LockoutEnabled": "Κλείδωμα λογαριασμού μετά από αποτυχημένες προσπάθειες σύνδεσης", "NewRole": "Νέος ρόλος", "RoleName": "Όνομα ρόλου", "CreationTime": "Χρόνος δημιουργίας", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/en-GB.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/en-GB.json index a6c719d29e..999b387032 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/en-GB.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/en-GB.json @@ -27,6 +27,7 @@ "DisplayName:PhoneNumber": "Phone Number", "DisplayName:TwoFactorEnabled": "Two factor verification", "DisplayName:LockoutEnabled": "Account lockout", + "Description:LockoutEnabled": "Lock account after failed login attempts", "NewRole": "New role", "RoleName": "Role name", "CreationTime": "Creation time", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/en.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/en.json index 024c4c8b79..e8f2abba48 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/en.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/en.json @@ -28,6 +28,7 @@ "DisplayName:TwoFactorEnabled": "Two factor verification", "DisplayName:IsActive": "Active", "DisplayName:LockoutEnabled": "Account lockout", + "Description:LockoutEnabled": "Lock account after failed login attempts", "NewRole": "New role", "RoleName": "Role name", "CreationTime": "Creation time", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/es.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/es.json index 118a53d47a..7cf85929a6 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/es.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/es.json @@ -28,6 +28,7 @@ "DisplayName:TwoFactorEnabled": "Autenticación en dos pasos", "DisplayName:IsActive": "Activo", "DisplayName:LockoutEnabled": "Bloqueo de cuenta", + "Description:LockoutEnabled": "Bloquear cuenta después de intentos de inicio de sesión fallidos", "NewRole": "Nuevo rol", "RoleName": "Nombre de rol", "CreationTime": "Fecha de creación", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/fa.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/fa.json index 625e5feea7..f21b2204db 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/fa.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/fa.json @@ -5,6 +5,7 @@ "Users": "کاربران", "NewUser": "کاربر جدید", "UserName": "نام کاربر", + "Surname":"نام خانوادگی", "EmailAddress": "آدرس ایمیل", "PhoneNumber": "شماره تلفن", "UserInformations": "اطلاعات کاربر", @@ -27,6 +28,7 @@ "DisplayName:TwoFactorEnabled": "احراز هویت دو مرحله ای", "DisplayName:IsActive": "فعال", "DisplayName:LockoutEnabled": "قفل کردن حساب", + "Description:LockoutEnabled": "قفل کردن حساب پس از تلاش های ناموفق برای ورود", "NewRole": "نقش/وظیفه جدید", "RoleName": "نام نقش/وظیفه", "CreationTime": "زمان ایجاد", @@ -118,6 +120,13 @@ "Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "آیا شماره تلفن توسط کاربر قابل تایید باشد یا خیر.", "Description:Abp.Identity.SignIn.RequireConfippedPhoneNumber": "آیا برای ورود به سیستم شماره تلفن تأیید شده لازم است یا خیر", "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "آیا کاربر می تواند نام کاربری را به روز کند یا خیر.", - "Description:Abp.Identity.User.IsEmailUpdateEnabled": "آیا کاربر می تواند آدرس ایمیل خود را به روز کند با خیر." + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "آیا کاربر می تواند آدرس ایمیل خود را به روز کند با خیر.", + "Details": "جزئیات", + "CreatedBy": "ایجاد شده توسط", + "ModifiedBy": "ویرایش شده توسط", + "ModificationTime": "زمان اصلاح", + "PasswordUpdateTime": "زمان ویرایش رمز", + "LockoutEndTime": "زمان اتمام قفل", + "FailedAccessCount": "تعداد دسترسی ناموفق" } } diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/fi.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/fi.json index a433aa3d88..5aab8fb4d2 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/fi.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/fi.json @@ -28,6 +28,7 @@ "DisplayName:TwoFactorEnabled": "Kahden tekijän todentaminen", "DisplayName:IsActive": "Aktiivinen", "DisplayName:LockoutEnabled": "Tilin lukitus", + "Description:LockoutEnabled": "Tilin lukitus epäonnistuneiden kirjautumisyritysten jälkeen", "NewRole": "Uusi rooli", "RoleName": "Roolinimi", "CreationTime": "Luomisaika", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/fr.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/fr.json index 4e4d878da8..776233b642 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/fr.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/fr.json @@ -28,6 +28,7 @@ "DisplayName:TwoFactorEnabled": "Vérification de deux facteurs", "DisplayName:IsActive": "actif", "DisplayName:LockoutEnabled": "Verrouillage du compte", + "Description:LockoutEnabled": "Verrouiller le compte après des tentatives de connexion échouées", "NewRole": "Nouveau rôle", "RoleName": "Nom du rôle", "CreationTime": "Temps de création", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/hi.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/hi.json index 5b13ce5d3d..630e1c3103 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/hi.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/hi.json @@ -28,6 +28,7 @@ "DisplayName:TwoFactorEnabled": "दो कारक सत्यापन", "DisplayName:IsActive": "सक्रिय", "DisplayName:LockoutEnabled": "खाता लॉकआउट", + "Description:LockoutEnabled": "विफल लॉगिन प्रयासों के बाद खाता लॉक करें", "NewRole": "नयी भूमिका", "RoleName": "भूमिका का नाम", "CreationTime": "रचना समय", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/hr.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/hr.json index 95c14b6f2f..a5203a7067 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/hr.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/hr.json @@ -28,6 +28,7 @@ "DisplayName:TwoFactorEnabled": "Two factor verifikacija", "DisplayName:IsActive": "Aktivan", "DisplayName:LockoutEnabled": "Zaključavanje računa", + "Description:LockoutEnabled": "Zaključaj račun nakon neuspješnih pokušaja prijave", "NewRole": "Nova uloga", "RoleName": "Naziv uloge", "CreationTime": "Vrijeme stvaranja", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/hu.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/hu.json index c9e5181bcb..79e58d5b6a 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/hu.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/hu.json @@ -28,6 +28,7 @@ "DisplayName:TwoFactorEnabled": "Kétlépcsős azonosítás", "DisplayName:IsActive": "Aktív", "DisplayName:LockoutEnabled": "Fiók zárolása", + "Description:LockoutEnabled": "Fiók zárolása sikertelen bejelentkezési kísérletek után", "NewRole": "Új szerepkör", "RoleName": "Szerepkör neve", "CreationTime": "Létrehozás időpontja", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/is.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/is.json index b038b06c07..6a9406c832 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/is.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/is.json @@ -28,6 +28,7 @@ "DisplayName:TwoFactorEnabled": "Tvíþætt sannprófun", "DisplayName:IsActive": "Virkur", "DisplayName:LockoutEnabled": "Loka reikningi", + "Description:LockoutEnabled": "Loka reikningi eftir misheppnaðar innskráningar tilraunir", "NewRole": "Nýtt hlutverk", "RoleName": "Nafn hlutverks", "CreationTime": "Búið til", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/it.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/it.json index c57e5af8ab..9ad338ef73 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/it.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/it.json @@ -28,6 +28,7 @@ "DisplayName:TwoFactorEnabled": "Verifica a due fattori", "DisplayName:IsActive": "Attivo", "DisplayName:LockoutEnabled": "Blocco account", + "Description:LockoutEnabled": "Blocca l'account dopo tentativi di accesso non riusciti", "NewRole": "Nuovo ruolo", "RoleName": "Nome del ruolo", "CreationTime": "Orario di creazione", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/nl.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/nl.json index 586523f3f0..c5f10d7dfb 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/nl.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/nl.json @@ -28,6 +28,7 @@ "DisplayName:TwoFactorEnabled": "Tweefactor authenticatie", "DisplayName:IsActive": "Actief", "DisplayName:LockoutEnabled": "Account vergrendelen", + "Description:LockoutEnabled": "Account vergrendelen na mislukte inlogpogingen", "NewRole": "Nieuwe rol", "RoleName": "Rol naam", "CreationTime": "Creatie tijd", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/pl-PL.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/pl-PL.json index 825338bf07..5eb3c85b6d 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/pl-PL.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/pl-PL.json @@ -28,6 +28,7 @@ "DisplayName:TwoFactorEnabled": "Dwustopniowa weryfikacja", "DisplayName:IsActive": "Aktywny", "DisplayName:LockoutEnabled": "Blokada konta", + "Description:LockoutEnabled": "Zablokuj konto po nieudanych próbach logowania", "NewRole": "Nowa rola", "RoleName": "Nazwa roli", "CreationTime": "Data utworzenia", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/pt-BR.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/pt-BR.json index ff89754e8c..d9bff0967e 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/pt-BR.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/pt-BR.json @@ -28,6 +28,7 @@ "DisplayName:TwoFactorEnabled": "Verificação em dois fatores", "DisplayName:IsActive": "Ativo", "DisplayName:LockoutEnabled": "Bloqueio de Conta", + "Description:LockoutEnabled": "Bloquear conta após tentativas de login falhas", "NewRole": "Novo Perfil", "RoleName": "Perfil", "CreationTime": "Data de Criação", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ro-RO.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ro-RO.json index 1723206fc2..b03357bd6d 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ro-RO.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ro-RO.json @@ -28,6 +28,7 @@ "DisplayName:TwoFactorEnabled": "Autentificare în doi paşi", "DisplayName:IsActive": "Activ", "DisplayName:LockoutEnabled": "Blocare cont", + "Description:LockoutEnabled": "Blochează contul după încercări eşuate de autentificare", "NewRole": "Rol nou", "RoleName": "Nume rol", "CreationTime": "Data creării", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ru.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ru.json index 871324d8e5..c7a4869ec0 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ru.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ru.json @@ -28,6 +28,7 @@ "DisplayName:TwoFactorEnabled": "Двухфакторная проверка подлинности", "DisplayName:IsActive": "Активный", "DisplayName:LockoutEnabled": "Блокировка учетной записи", + "Description:LockoutEnabled": "Блокировать учетную запись после неудачных попыток входа", "NewRole": "Новая роль", "RoleName": "Имя роли", "CreationTime": "Время создания", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/sk.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/sk.json index 3233f064a4..d8f7fa8d46 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/sk.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/sk.json @@ -28,6 +28,7 @@ "DisplayName:TwoFactorEnabled": "Dvojfaktorové overenie", "DisplayName:IsActive": "Aktívne", "DisplayName:LockoutEnabled": "Uzamknúť účet", + "Description:LockoutEnabled": "Uzamknúť účet po neúspešných pokusoch o prihlásenie", "NewRole": "Nová rola", "RoleName": "Názov roly", "CreationTime": "Čas vytvorenia", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/sl.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/sl.json index bf25f83bff..9273c257a6 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/sl.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/sl.json @@ -28,6 +28,7 @@ "DisplayName:TwoFactorEnabled": "Dvostopenjsko preverjanje", "DisplayName:IsActive": "Aktiven", "DisplayName:LockoutEnabled": "Zaklepanje računa", + "Description:LockoutEnabled": "Zakleni račun po neuspelih poskusih prijave", "NewRole": "Nova vloga", "RoleName": "Naziv vloge", "CreationTime": "Čas nastanka", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/sv.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/sv.json new file mode 100644 index 0000000000..3a2139a240 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/sv.json @@ -0,0 +1,132 @@ +{ + "culture": "sv", + "texts": { + "Menu:IdentityManagement": "Identitetshantering", + "Users": "Användare", + "NewUser": "Ny användare", + "UserName": "Användarens namn", + "Surname": "Efternamn", + "EmailAddress": "E-postadress", + "PhoneNumber": "Telefonnummer", + "UserInformations": "Användarinformation", + "DisplayName:IsDefault": "Standard", + "DisplayName:IsStatic": "Statisk", + "DisplayName:IsPublic": "Allmänheten", + "Roles": "Roller", + "Password": "Lösenord", + "PersonalInfo": "Min profil", + "PersonalSettings": "Personliga inställningar", + "UserDeletionConfirmationMessage": "Användaren '{0}' kommer att raderas. Kan du bekräfta det?", + "RoleDeletionConfirmationMessage": "Roll '{0}' kommer att raderas. Kan du bekräfta det?", + "DisplayName:RoleName": "Namn på roll", + "DisplayName:UserName": "Användarens namn", + "DisplayName:Name": "Namn", + "DisplayName:Surname": "Efternamn", + "DisplayName:Password": "Lösenord", + "DisplayName:Email": "E-postadress", + "DisplayName:PhoneNumber": "Telefonnummer", + "DisplayName:TwoFactorEnabled": "Verifiering med två faktorer", + "DisplayName:IsActive": "Aktiv", + "DisplayName:LockoutEnabled": "Spärrat konto", + "Description:LockoutEnabled": "Lås konto efter misslyckade inloggningsförsök", + "NewRole": "Ny roll", + "RoleName": "Namn på roll", + "CreationTime": "Skapelsetid", + "Permissions": "Behörigheter", + "DisplayName:CurrentPassword": "Aktuellt lösenord", + "DisplayName:NewPassword": "Nytt lösenord", + "DisplayName:NewPasswordConfirm": "Bekräfta nytt lösenord", + "PasswordChangedMessage": "Ditt lösenord har ändrats framgångsrikt.", + "PersonalSettingsSavedMessage": "Dina personliga inställningar har sparats framgångsrikt.", + "Volo.Abp.Identity:DefaultError": "Ett okänt fel har uppstått.", + "Volo.Abp.Identity:ConcurrencyFailure": "Optimistisk samtidighetskontroll har misslyckats. Den entitet du arbetar med har ändrats av en annan användare. Kassera dina ändringar och försök igen.", + "Volo.Abp.Identity:DuplicateEmail": "E-post '{0}' är redan upptagen.", + "Volo.Abp.Identity:DuplicateRoleName": "Rollnamnet '{0}' är redan upptaget.", + "Volo.Abp.Identity:DuplicateUserName": "Användarnamnet '{0}' är redan upptaget.", + "Volo.Abp.Identity:InvalidEmail": "E-post '{0}' är ogiltig.", + "Volo.Abp.Identity:InvalidPasswordHasherCompatibilityMode": "Det angivna PasswordHasherCompatibilityMode är ogiltigt.", + "Volo.Abp.Identity:InvalidPasswordHasherIterationCount": "Antalet iterationer måste vara ett positivt heltal.", + "Volo.Abp.Identity:InvalidRoleName": "Rollnamnet '{0}' är ogiltigt.", + "Volo.Abp.Identity:InvalidToken": "Ogiltig token.", + "Volo.Abp.Identity:InvalidUserName": "Användarnamn '{0}' är ogiltigt, kan bara innehålla bokstäver eller siffror.", + "InvalidUserName": "Användarnamnet '{0}' är ogiltigt.", + "Volo.Abp.Identity:LoginAlreadyAssociated": "En användare med den här inloggningen finns redan.", + "Volo.Abp.Identity:PasswordMismatch": "Felaktigt lösenord.", + "Volo.Abp.Identity:PasswordRequiresDigit": "Lösenord måste innehålla minst en siffra ('0'-'9').", + "Volo.Abp.Identity:PasswordRequiresLower": "Lösenord måste innehålla minst en gemen bokstav ('a'-'z').", + "Volo.Abp.Identity:PasswordRequiresNonAlphanumeric": "Lösenord måste innehålla minst ett icke-alfanumeriskt tecken.", + "Volo.Abp.Identity:PasswordRequiresUpper": "Lösenord måste innehålla minst en versal ('A'-'Z').", + "Volo.Abp.Identity:PasswordTooShort": "Lösenord måste innehålla minst {0} tecken.", + "Volo.Abp.Identity:PasswordRequiresUniqueChars": "Lösenord måste innehålla minst {0} olika tecken.", + "Volo.Abp.Identity:RoleNotFound": "Roll {0} finns inte.", + "Volo.Abp.Identity:UserAlreadyHasPassword": "Användaren har redan ett lösenord inställt.", + "Volo.Abp.Identity:UserAlreadyInRole": "Användaren har redan rollen '{0}'.", + "Volo.Abp.Identity:UserLockedOut": "Användaren är utelåst.", + "Volo.Abp.Identity:UserLockoutNotEnabled": "Spärren är inte aktiverad för den här användaren.", + "Volo.Abp.Identity:UserNameNotFound": "Användaren {0} finns inte.", + "Volo.Abp.Identity:UserNotInRole": "Användaren är inte i rollen '{0}'.", + "Volo.Abp.Identity:PasswordConfirmationFailed": "Lösenordet stämmer inte överens med det bekräftade lösenordet.", + "Volo.Abp.Identity:NullSecurityStamp": "Användarens säkerhetsstämpel kan inte vara null.", + "Volo.Abp.Identity:RecoveryCodeRedemptionFailed": "Inlösen av återställningskod misslyckades.", + "Volo.Abp.Identity:010001": "Du kan inte radera ditt eget konto!", + "Volo.Abp.Identity:010002": "Det går inte att ange mer än {MaxUserMembershipCount} organisationsenhet för en användare!", + "Volo.Abp.Identity:010003": "Kan inte ändra lösenord för en externt inloggad användare!", + "Volo.Abp.Identity:010004": "Det finns redan en organisationsenhet med namnet {0}. Två enheter med samma namn kan inte skapas på samma nivå.", + "Volo.Abp.Identity:010005": "Statiska roller kan inte bytas namn på.", + "Volo.Abp.Identity:010006": "Statiska roller kan inte tas bort.", + "Volo.Abp.Identity:010007": "Du kan inte ändra din tvåfaktorsinställning.", + "Volo.Abp.Identity:010008": "Det är inte tillåtet att ändra inställningen för två faktorer.", + "Volo.Abp.Identity:010009": "Du kan inte delegera dig själv.", + "Volo.Abp.Identity:010021": "Namn finns: '{0}'.", + "Identity.OrganizationUnit.MaxUserMembershipCount": "Högsta tillåtna antal medlemskap i organisationsenheter för en användare", + "ThisUserIsNotActiveMessage": "Den här användaren är inte aktiv.", + "Permission:IdentityManagement": "Identitetshantering", + "Permission:RoleManagement": "Hantering av roller", + "Permission:Create": "Skapa", + "Permission:Edit": "Redigera", + "Permission:Delete": "Radera", + "Permission:ChangePermissions": "Ändra behörigheter", + "Permission:ManageRoles": "Hantera roller", + "Permission:UserManagement": "Hantering av användare", + "Permission:UserLookup": "Användaruppslagning", + "DisplayName:Abp.Identity.Password.RequiredLength": "Erforderlig längd", + "DisplayName:Abp.Identity.Password.RequiredUniqueChars": "Obligatoriska unika tecken nummer", + "DisplayName:Abp.Identity.Password.RequireNonAlphanumeric": "Obligatoriskt icke-alfanumeriskt tecken", + "DisplayName:Abp.Identity.Password.RequireLowercase": "Obligatoriskt tecken för gemener", + "DisplayName:Abp.Identity.Password.RequireUppercase": "Obligatoriskt tecken för versaler", + "DisplayName:Abp.Identity.Password.RequireDigit": "Nödvändig siffra", + "DisplayName:Abp.Identity.Password.ForceUsersToPeriodicallyChangePassword": "Tvinga användare att regelbundet byta lösenord", + "DisplayName:Abp.Identity.Password.PasswordChangePeriodDays": "Period för byte av lösenord (dagar)", + "DisplayName:Abp.Identity.Lockout.AllowedForNewUsers": "Aktiverad för nya användare", + "DisplayName:Abp.Identity.Lockout.LockoutDuration": "Varaktighet för låsning (sekunder)", + "DisplayName:Abp.Identity.Lockout.MaxFailedAccessAttempts": "Max misslyckade åtkomstförsök", + "DisplayName:Abp.Identity.SignIn.RequireConfirmedEmail": "Kräver bekräftad e-post", + "DisplayName:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Tillåt användare att bekräfta sitt telefonnummer", + "DisplayName:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Kräver bekräftat telefonnummer", + "DisplayName:Abp.Identity.User.IsUserNameUpdateEnabled": "Tillåt användare att ändra sina användarnamn", + "DisplayName:Abp.Identity.User.IsEmailUpdateEnabled": "Tillåt användare att ändra sina e-postadresser", + "Description:Abp.Identity.Password.RequiredLength": "Den minsta längd som ett lösenord måste ha.", + "Description:Abp.Identity.Password.RequiredUniqueChars": "Det minsta antal unika tecken som ett lösenord måste innehålla.", + "Description:Abp.Identity.Password.RequireNonAlphanumeric": "Om lösenorden måste innehålla ett icke-alfanumeriskt tecken.", + "Description:Abp.Identity.Password.RequireLowercase": "Om lösenorden måste innehålla ett ASCII-tecken med gemener.", + "Description:Abp.Identity.Password.RequireUppercase": "Om lösenorden måste innehålla ett ASCII-tecken i versaler.", + "Description:Abp.Identity.Password.RequireDigit": "Om lösenorden måste innehålla en siffra.", + "Description:Abp.Identity.Password.ForceUsersToPeriodicallyChangePassword": "Om användare tvingas byta lösenord med jämna mellanrum.", + "Description:Abp.Identity.Password.PasswordChangePeriodDays": "Antal dagar som en användares lösenord är giltigt.", + "Description:Abp.Identity.Lockout.AllowedForNewUsers": "Om en ny användare kan låsas ute.", + "Description:Abp.Identity.Lockout.LockoutDuration": "Den tid som en användare är utelåst när en utelåsning inträffar.", + "Description:Abp.Identity.Lockout.MaxFailedAccessAttempts": "Det antal misslyckade åtkomstförsök som tillåts innan en användare låses ut, förutsatt att låsning är aktiverad.", + "Description:Abp.Identity.SignIn.RequireConfirmedEmail": "Om det krävs en bekräftad e-postadress för att logga in.", + "Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Huruvida phoneNumber kan bekräftas av användaren.", + "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Om det krävs ett bekräftat telefonnummer för att logga in.", + "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Om användarnamnet kan uppdateras av användaren.", + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Om e-postmeddelandet kan uppdateras av användaren.", + "Details": "Detaljer", + "CreatedBy": "Skapad av", + "ModifiedBy": "Ändrad av", + "ModificationTime": "Tid för modifiering", + "PasswordUpdateTime": "Uppdateringstid för lösenord", + "LockoutEndTime": "Sluttid för låsning", + "FailedAccessCount": "Antal misslyckade åtkomster" + } +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/tr.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/tr.json index 9910fa338c..69667e5ad7 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/tr.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/tr.json @@ -28,6 +28,7 @@ "DisplayName:TwoFactorEnabled": "İki aşamalı doğrulama", "DisplayName:IsActive": "Aktif", "DisplayName:LockoutEnabled": "Hesap kilitlenmesi", + "Description:LockoutEnabled": "Başarısız giriş denemelerinden sonra hesabı kitle", "NewRole": "Yeni rol", "RoleName": "Rol adı", "CreationTime": "Oluşturma zamanı", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/vi.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/vi.json index 70cf3635a6..de42bfc2d8 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/vi.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/vi.json @@ -28,6 +28,7 @@ "DisplayName:TwoFactorEnabled": "Xác thực hai yếu tố", "DisplayName:IsActive": "Tích cực", "DisplayName:LockoutEnabled": "Khóa tài khoản", + "Description:LockoutEnabled": "Khóa tài khoản sau các lần đăng nhập thất bại", "NewRole": "Vai trò mới", "RoleName": "Tên vai trò", "CreationTime": "Thời gian tạo", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/zh-Hans.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/zh-Hans.json index b690b3a437..9a55ce9ad2 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/zh-Hans.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/zh-Hans.json @@ -28,6 +28,7 @@ "DisplayName:TwoFactorEnabled": "二次认证", "DisplayName:IsActive": "启用", "DisplayName:LockoutEnabled": "账户锁定", + "Description:LockoutEnabled": "登录尝试失败后锁定帐户", "NewRole": "新角色", "RoleName": "角色名称", "CreationTime": "创建时间", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/zh-Hant.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/zh-Hant.json index fad617e511..055482121f 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/zh-Hant.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/zh-Hant.json @@ -28,6 +28,7 @@ "DisplayName:TwoFactorEnabled": "二次認證", "DisplayName:IsActive": "啟用", "DisplayName:LockoutEnabled": "帳號鎖定", + "Description:LockoutEnabled": "登錄嘗試失敗后鎖定帳戶", "NewRole": "新角色", "RoleName": "角色名稱", "CreationTime": "建立時間", diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/CreateModal.cshtml b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/CreateModal.cshtml index 4ebac325fb..0ec8571e8c 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/CreateModal.cshtml +++ b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/CreateModal.cshtml @@ -24,7 +24,7 @@ - @foreach (var propertyInfo in ObjectExtensionManager.Instance.GetProperties()) + @foreach (var propertyInfo in await ObjectExtensionManager.Instance.GetPropertiesAndCheckPolicyAsync(HttpContext.RequestServices)) { if (!propertyInfo.Name.EndsWith("_Text")) { diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/EditModal.cshtml b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/EditModal.cshtml index bb83b865e2..e166dd4dd5 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/EditModal.cshtml +++ b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/EditModal.cshtml @@ -34,7 +34,7 @@ - @foreach (var propertyInfo in ObjectExtensionManager.Instance.GetProperties()) + @foreach (var propertyInfo in await ObjectExtensionManager.Instance.GetPropertiesAndCheckPolicyAsync(HttpContext.RequestServices)) { if (!propertyInfo.Name.EndsWith("_Text")) { diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/CreateModal.cshtml b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/CreateModal.cshtml index fdf33444de..0032ab98d8 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/CreateModal.cshtml +++ b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/CreateModal.cshtml @@ -37,9 +37,9 @@ - + - @foreach (var propertyInfo in ObjectExtensionManager.Instance.GetProperties()) + @foreach (var propertyInfo in await ObjectExtensionManager.Instance.GetPropertiesAndCheckPolicyAsync(HttpContext.RequestServices)) { if (!propertyInfo.Name.EndsWith("_Text")) { diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/EditModal.cshtml b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/EditModal.cshtml index 9dc1958d63..1a20dc6651 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/EditModal.cshtml +++ b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/EditModal.cshtml @@ -38,12 +38,12 @@ - @if (!Model.IsEditCurrentUser) { - + } - @foreach (var propertyInfo in ObjectExtensionManager.Instance.GetProperties()) + + @foreach (var propertyInfo in await ObjectExtensionManager.Instance.GetPropertiesAndCheckPolicyAsync(HttpContext.RequestServices)) { if (!propertyInfo.Name.EndsWith("_Text")) { diff --git a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/LocalizationExtensions/sv.json b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/LocalizationExtensions/sv.json new file mode 100644 index 0000000000..571fdfb4fc --- /dev/null +++ b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/LocalizationExtensions/sv.json @@ -0,0 +1,7 @@ +{ + "culture": "sv", + "texts": { + "Volo.Abp.Identity:PasswordTooShort": "Lösenordslängden måste vara större än {0} tecken.", + "Volo.Abp.Identity:PasswordRequiresNonAlphanumeric": "Lösenordet måste innehålla minst ett icke-alfanumeriskt tecken." + } +} \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/fa.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/fa.json index dc7feffa1c..8713511f43 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/fa.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/fa.json @@ -10,6 +10,7 @@ "LoginIsNotAllowed": "شما اجازه ورود به سیستم را ندارید! حساب شما غیرفعال است یا نیاز به تایید ایمیل/شماره تلفن شما دارد.", "InvalidUsername": "نام کاربری یا رمز عبور نامعتبر!", "InvalidAuthenticatorCode": "کد احراز هویت نامعتبر!", + "InvalidRecoveryCode": "کد بازیابی نامعتبر!", "TheTargetUserIsNotLinkedToYou": "کاربر هدف به شما پیوند داده نشده است!" } } diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/sv.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/sv.json new file mode 100644 index 0000000000..cdbf5d0dff --- /dev/null +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/sv.json @@ -0,0 +1,16 @@ +{ + "culture": "sv", + "texts": { + "Volo.IdentityServer:DuplicateIdentityResourceName": "Identity Resursnamnet finns redan: {Namn}", + "Volo.IdentityServer:DuplicateApiResourceName": "Api-resursnamnet finns redan: {Namn}", + "Volo.IdentityServer:DuplicateApiScopeName": "Namnet på Api-omfånget finns redan: {Namn}", + "Volo.IdentityServer:DuplicateClientId": "KlientId finns redan: {KlientId}", + "UserLockedOut": "Användarkontot har låsts på grund av ogiltiga inloggningsförsök. Vänligen vänta ett tag och försök igen.", + "InvalidUserNameOrPassword": "Ogiltigt användarnamn eller lösenord!", + "LoginIsNotAllowed": "Du får inte logga in! Ditt konto är inaktivt eller så behöver du bekräfta din e-post eller ditt telefonnummer.", + "InvalidUsername": "Ogiltigt användarnamn eller lösenord!", + "InvalidAuthenticatorCode": "Ogiltig autentiseringskod!", + "InvalidRecoveryCode": "Ogiltig återställningskod!", + "TheTargetUserIsNotLinkedToYou": "Målanvändaren är inte kopplad till dig!" + } +} \ No newline at end of file diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/fa.json b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/fa.json new file mode 100644 index 0000000000..f1649533a9 --- /dev/null +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/fa.json @@ -0,0 +1,15 @@ +{ + "culture": "fa", + "texts": { + "TheOpenIDConnectRequestCannotBeRetrieved": "درخواست OpenID Connect قابل بازیابی نیست.", + "TheUserDetailsCannotBbeRetrieved" : "جزئیات کاربر قابل بازیابی نیست.", + "TheApplicationDetailsCannotBeFound": "جزئیات اپلیکیشن را نمی توان یافت.", + "DetailsConcerningTheCallingClientApplicationCannotBeFound": "جزئیات مربوط به اپلیکیشن کلاینت فراخوانی کننده را نمی توان یافت.", + "TheSpecifiedGrantTypeIsNotImplemented": "گرنت تایپ مشخص شده {0} پیاده سازی نشده است.", + "Authorization": "مجوز", + "DoYouWantToGrantAccessToYourData": "آیا می خواهید به {0} اجازه دسترسی به داده های خود را بدهید؟", + "ScopesRequested": "محدوده های درخواستی", + "Accept": "پذیرش", + "Deny": "رد" + } +} \ No newline at end of file diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/sv.json b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/sv.json new file mode 100644 index 0000000000..3e2a58578e --- /dev/null +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/sv.json @@ -0,0 +1,15 @@ +{ + "culture": "sv", + "texts": { + "TheOpenIDConnectRequestCannotBeRetrieved": "OpenID Connect-begäran kan inte hämtas.", + "TheUserDetailsCannotBbeRetrieved": "Användaruppgifterna kan inte hämtas.", + "TheApplicationDetailsCannotBeFound": "Ansökningsuppgifterna kan inte hittas.", + "DetailsConcerningTheCallingClientApplicationCannotBeFound": "Detaljer om den anropande klientapplikationen kan inte hittas.", + "TheSpecifiedGrantTypeIsNotImplemented": "Den angivna grant-typen {0} är inte implementerad.", + "Authorization": "Auktorisering", + "DoYouWantToGrantAccessToYourData": "Vill du ge {0} tillgång till dina data?", + "ScopesRequested": "Begärda omfattningar", + "Accept": "Acceptera", + "Deny": "Förneka" + } +} \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sv.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sv.json new file mode 100644 index 0000000000..0a151cb50a --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sv.json @@ -0,0 +1,11 @@ +{ + "culture": "sv", + "texts": { + "Permissions": "Behörigheter", + "OnlyProviderPermissons": "Endast denna leverantör", + "All": "Alla", + "SelectAllInAllTabs": "Ge alla behörigheter", + "SelectAllInThisTab": "Välj alla", + "SaveWithoutAnyPermissionsWarningMessage": "Är du säker på att du vill spara utan några behörigheter?" + } +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sv.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sv.json new file mode 100644 index 0000000000..0cb4b2aafa --- /dev/null +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sv.json @@ -0,0 +1,38 @@ +{ + "culture": "sv", + "texts": { + "Settings": "Inställningar", + "SavedSuccessfully": "Sparades framgångsrikt", + "Permission:SettingManagement": "Hantering av inställningar", + "Permission:Emailing": "E-post", + "Permission:EmailingTest": "Test av e-post", + "Permission:TimeZone": "Tidszon", + "SendTestEmail": "Skicka testmejl", + "SenderEmailAddress": "E-postadress till avsändaren", + "TargetEmailAddress": "E-postadress för målgruppen", + "Subject": "Ämne", + "Body": "Kropp", + "TestEmailSubject": "Testa e-post {0}", + "TestEmailBody": "Testa e-postmeddelandets brödtext här", + "SuccessfullySent": "Framgångsrikt skickat", + "Send": "Skicka", + "Menu:Emailing": "E-post", + "Menu:TimeZone": "Tidszon", + "DisplayName:Timezone": "Tidszon", + "TimezoneHelpText": "Denna inställning används för applikationsomfattande eller hyresgästbaserad.", + "SmtpHost": "Värd", + "SmtpPort": "Port", + "SmtpUserName": "Användarens namn", + "SmtpPassword": "Lösenord", + "SmtpDomain": "Domän", + "SmtpEnableSsl": "Aktivera ssl", + "SmtpUseDefaultCredentials": "Använda standardautentiseringsuppgifter", + "DefaultFromAddress": "Standard från adress", + "DefaultFromDisplayName": "Standard från visningsnamn", + "Feature:SettingManagementGroup": "Hantering av inställningar", + "Feature:SettingManagementEnable": "Aktivera hantering av inställningar", + "Feature:SettingManagementEnableDescription": "Aktivera inställningshanteringssystem i applikationen.", + "Feature:AllowChangingEmailSettings": "Tillåt ändring av e-postinställningar.", + "Feature:AllowChangingEmailSettingsDescription": "Tillåt ändring av e-postinställningar." + } +} \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs index 9d1edbad7a..ee1f339d5d 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs @@ -102,7 +102,7 @@ public partial class TenantManagement return base.SetEntityActionsAsync(); } - protected override ValueTask SetTableColumnsAsync() + protected override async ValueTask SetTableColumnsAsync() { TenantManagementTableColumns .AddRange(new TableColumn[] @@ -120,11 +120,11 @@ public partial class TenantManagement }, }); - TenantManagementTableColumns.AddRange(GetExtensionTableColumns( + TenantManagementTableColumns.AddRange(await GetExtensionTableColumnsAsync( TenantManagementModuleExtensionConsts.ModuleName, TenantManagementModuleExtensionConsts.EntityNames.Tenant)); - return base.SetTableColumnsAsync(); + await base.SetTableColumnsAsync(); } protected virtual void TogglePasswordVisibility() diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/sv.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/sv.json new file mode 100644 index 0000000000..f112b05001 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/sv.json @@ -0,0 +1,23 @@ +{ + "culture": "sv", + "texts": { + "Volo.Abp.TenantManagement:DuplicateTenantName": "Hyresgästens namn finns redan: {Namn}", + "Menu:TenantManagement": "Förvaltning av hyresgäster", + "Tenants": "Hyresgäster", + "NewTenant": "Ny hyresgäst", + "TenantName": "Hyresgästens namn", + "DisplayName:TenantName": "Hyresgästens namn", + "TenantDeletionConfirmationMessage": "Hyresgäst '{0}' kommer att raderas. Kan du bekräfta det?", + "ConnectionStrings": "Anslutningssträngar", + "DisplayName:DefaultConnectionString": "Standard anslutningssträng", + "DisplayName:UseSharedDatabase": "Använd den delade databasen", + "Permission:TenantManagement": "Förvaltning av hyresgäster", + "Permission:Create": "Skapa", + "Permission:Edit": "Redigera", + "Permission:Delete": "Radera", + "Permission:ManageConnectionStrings": "Hantera anslutningssträngar", + "Permission:ManageFeatures": "Hantera funktioner", + "DisplayName:AdminEmailAddress": "Admin E-postadress", + "DisplayName:AdminPassword": "Lösenord för administratör" + } +} \ No newline at end of file diff --git a/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Localization/Resources/sv.json b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Localization/Resources/sv.json new file mode 100644 index 0000000000..84e3bf8dde --- /dev/null +++ b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Localization/Resources/sv.json @@ -0,0 +1,14 @@ +{ + "culture": "sv", + "texts": { + "VirtualFileExplorer": "Virtuell filutforskare", + "VirtualFileType": "Virtuell filtyp", + "Menu:VirtualFileExplorer": "Virtuell filutforskare", + "LastUpdateTime": "Senaste uppdateringstid", + "VirtualFileName": "Virtuellt filnamn", + "FileContent": "Filens innehåll", + "Size": "Storlek", + "BackToRoot": "Tillbaka till roten", + "EmptyFileInfoList": "Det finns inga virtuella filer" + } +} \ No newline at end of file diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Localization/MyProjectName/sv.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Localization/MyProjectName/sv.json new file mode 100644 index 0000000000..f9502a88d4 --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Localization/MyProjectName/sv.json @@ -0,0 +1,9 @@ +{ + "culture": "sv", + "texts": { + "AppName": "MittProjektNamn", + "Welcome_Title": "Välkommen", + "Welcome_Text": "Detta är en minimalistisk startmall för applikationer i ett lager för ABP-ramverket.", + "Menu:Home": "Hem" + } +} \ No newline at end of file diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Localization/MyProjectName/sv.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Localization/MyProjectName/sv.json new file mode 100644 index 0000000000..f9502a88d4 --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Localization/MyProjectName/sv.json @@ -0,0 +1,9 @@ +{ + "culture": "sv", + "texts": { + "AppName": "MittProjektNamn", + "Welcome_Title": "Välkommen", + "Welcome_Text": "Detta är en minimalistisk startmall för applikationer i ett lager för ABP-ramverket.", + "Menu:Home": "Hem" + } +} \ No newline at end of file diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/Localization/MyProjectName/sv.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/Localization/MyProjectName/sv.json new file mode 100644 index 0000000000..f9502a88d4 --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/Localization/MyProjectName/sv.json @@ -0,0 +1,9 @@ +{ + "culture": "sv", + "texts": { + "AppName": "MittProjektNamn", + "Welcome_Title": "Välkommen", + "Welcome_Text": "Detta är en minimalistisk startmall för applikationer i ett lager för ABP-ramverket.", + "Menu:Home": "Hem" + } +} \ No newline at end of file diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Localization/MyProjectName/sv.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Localization/MyProjectName/sv.json new file mode 100644 index 0000000000..f9502a88d4 --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Localization/MyProjectName/sv.json @@ -0,0 +1,9 @@ +{ + "culture": "sv", + "texts": { + "AppName": "MittProjektNamn", + "Welcome_Title": "Välkommen", + "Welcome_Text": "Detta är en minimalistisk startmall för applikationer i ett lager för ABP-ramverket.", + "Menu:Home": "Hem" + } +} \ No newline at end of file diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Localization/MyProjectName/sv.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Localization/MyProjectName/sv.json new file mode 100644 index 0000000000..f9502a88d4 --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Localization/MyProjectName/sv.json @@ -0,0 +1,9 @@ +{ + "culture": "sv", + "texts": { + "AppName": "MittProjektNamn", + "Welcome_Title": "Välkommen", + "Welcome_Text": "Detta är en minimalistisk startmall för applikationer i ett lager för ABP-ramverket.", + "Menu:Home": "Hem" + } +} \ No newline at end of file diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Localization/MyProjectName/sv.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Localization/MyProjectName/sv.json new file mode 100644 index 0000000000..f9502a88d4 --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Localization/MyProjectName/sv.json @@ -0,0 +1,9 @@ +{ + "culture": "sv", + "texts": { + "AppName": "MittProjektNamn", + "Welcome_Title": "Välkommen", + "Welcome_Text": "Detta är en minimalistisk startmall för applikationer i ett lager för ABP-ramverket.", + "Menu:Home": "Hem" + } +} \ No newline at end of file diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Localization/MyProjectName/sv.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Localization/MyProjectName/sv.json new file mode 100644 index 0000000000..8d93ff9f71 --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Localization/MyProjectName/sv.json @@ -0,0 +1,8 @@ +{ + "culture": "sv", + "texts": { + "AppName": "MittProjektNamn", + "Welcome_Text": "Detta är en minimalistisk startmall för applikationer i ett lager för ABP-ramverket.", + "Menu:Home": "Hem" + } +} \ No newline at end of file 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/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