Browse Source

Merge branch 'dev' into auto-merge/rel-4-3/417

pull/9173/head
İsmail ÇAĞDAŞ 5 years ago
parent
commit
3becd27590
  1. 21
      .github/workflows/image-compression.yml
  2. 5
      .gitignore
  3. 5
      README.md
  4. 14
      abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/fi.json
  5. 14
      abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/fr.json
  6. 14
      abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/hi.json
  7. 14
      abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/it.json
  8. 7
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json
  9. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/es.json
  10. 282
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fi.json
  11. 282
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fr.json
  12. 282
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hi.json
  13. 282
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/it.json
  14. 10
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json
  15. 7
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json
  16. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en-GB.json
  17. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json
  18. 37
      abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fi.json
  19. 37
      abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fr.json
  20. 37
      abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hi.json
  21. 37
      abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/it.json
  22. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/tr.json
  23. 68
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json
  24. 68
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json
  25. 296
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json
  26. 296
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json
  27. 296
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json
  28. 296
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json
  29. 68
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json
  30. 36
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json
  31. 294
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json
  32. 5
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json
  33. 144
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/fi.json
  34. 144
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/fr.json
  35. 147
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/hi.json
  36. 147
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/it.json
  37. 78
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en-GB.json
  38. 82
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json
  39. 202
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fi.json
  40. 202
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fr.json
  41. 202
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hi.json
  42. 202
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/it.json
  43. 78
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/tr.json
  44. 35
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json
  45. 37
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hant.json
  46. 4
      common.props
  47. 37
      delete-bin-obj-folders.js
  48. 32
      docs/en/Authorization.md
  49. 6
      docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/POST.md
  50. 8
      docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md
  51. 86
      docs/en/Blog-Posts/2021-04-05 CmsKit/POST.md
  52. BIN
      docs/en/Blog-Posts/2021-04-05 CmsKit/cms-kit-menu.png
  53. 53
      docs/en/Blog-Posts/2021-04-26 v4_3_Release_Stable/POST.md
  54. 6
      docs/en/CLI-New-Command-Samples.md
  55. 4
      docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/How-To-Add-Custom-Property-To-The-User-Entity.md
  56. 29
      docs/en/Community-Articles/2020-12-04-Event-Organizer/Post.md
  57. 22
      docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/POST.md
  58. 114
      docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/POST.md
  59. BIN
      docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/example-result.png
  60. BIN
      docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/initial-project.png
  61. BIN
      docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/table-app-contract.png
  62. BIN
      docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/table-application.png
  63. BIN
      docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/table-web.png
  64. 456
      docs/en/Community-Articles/2021-05-24-Removing-EfCore-Migrations/POST.md
  65. BIN
      docs/en/Community-Articles/2021-05-24-Removing-EfCore-Migrations/default-solution.png
  66. BIN
      docs/en/Community-Articles/2021-05-24-Removing-EfCore-Migrations/new-prop-on-table.png
  67. 14
      docs/en/Entity-Framework-Core.md
  68. 14
      docs/en/MongoDB.md
  69. 125
      docs/en/SimpleStateChecker.md
  70. 578
      docs/en/Text-Templating-Razor.md
  71. 526
      docs/en/Text-Templating-Scriban.md
  72. 542
      docs/en/Text-Templating.md
  73. 19
      docs/en/UI/AspNetCore/Navigation-Menu.md
  74. 4
      docs/en/UI/AspNetCore/Toolbars.md
  75. 218
      docs/en/docs-nav.json
  76. BIN
      docs/en/images/hello-template-razor.png
  77. BIN
      docs/en/images/multiple-file-template-razor.png
  78. BIN
      docs/en/images/replace-email-layout-razor.png
  79. 2
      docs/zh-Hans/Blob-Storing-Minio.md
  80. 14
      docs/zh-Hans/Entity-Framework-Core.md
  81. 14
      docs/zh-Hans/MongoDB.md
  82. 76
      docs/zh-Hans/Value-Objects.md
  83. 42
      framework/Volo.Abp.sln
  84. 12
      framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Microsoft/Extensions/DependencyInjection/AbpOpenIdConnectExtensions.cs
  85. 14
      framework/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/AppWithoutAuth.razor
  86. 16
      framework/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/RedirectToLogin.razor
  87. 23
      framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/Security/AbpComponentsClaimsCache.cs
  88. 13
      framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/BasicThemeToolbarContributor.cs
  89. 27
      framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor
  90. 49
      framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor.cs
  91. 24
      framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/AbpComponentBase.cs
  92. 26
      framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/AbpAspNetCoreMultiTenancyOptions.cs
  93. 21
      framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs
  94. 4
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/MultiTenancy/FindTenantResultDto.cs
  95. 6
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionItemTagHelperService.cs
  96. 4
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpCollapseBodyTagHelperService.cs
  97. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Dropdown/AbpDropdownButtonTagHelperService.cs
  98. 19
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs
  99. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs
  100. 3
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelper.cs

21
.github/workflows/image-compression.yml

@ -0,0 +1,21 @@
name: Compress Images
on:
pull_request:
paths:
- '**.jpg'
- '**.jpeg'
- '**.png'
- '**.webp'
jobs:
build:
if: github.event.pull_request.head.repo.full_name == github.repository
name: calibreapp/image-actions
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v2
- name: Compress Images
uses: calibreapp/image-actions@main
with:
githubToken: ${{ secrets.GITHUB_TOKEN }}

5
.gitignore

@ -310,4 +310,7 @@ abp-build-config.json
/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Test/
# Identity Server temp signature file
tempkey.jwk
tempkey.jwk
# ABP Analyzing files
*.abppkg.analyze.json

5
README.md

@ -10,8 +10,9 @@ ABP Framework is a complete **infrastructure** based on the **ASP.NET Core** to
## Getting Started
- [Getting Started Guide](https://docs.abp.io/en/abp/latest/Getting-Started) is the easiest way to start a new web application with the ABP Framework.
- [Web Application Development Tutorial](https://docs.abp.io/en/abp/latest/Tutorials/Part-1) is a complete tutorial to develop a full stack web application.
- [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 quickly understand how ABP works.
- [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 to develop a full stack web application with all aspects of a real-life solution.
### Quick Start

14
abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/fi.json

@ -0,0 +1,14 @@
{
"culture": "fi",
"texts": {
"Account": "ABP-tili - Kirjaudu ja rekisteröidy | ABP.IO",
"Welcome": "Tervetuloa",
"UseOneOfTheFollowingLinksToContinue": "Käytä yhtä seuraavista linkeistä jatkaaksesi",
"FrameworkHomePage": "Kehyksen kotisivu",
"FrameworkDocumentation": "Puitteet",
"OfficialBlog": "Virallinen blogi",
"CommercialHomePage": "Kaupallinen kotisivu",
"CommercialSupportWebSite": "Kaupallisen tuen verkkosivusto",
"CommunityWebSite": "ABP-yhteisön verkkosivusto"
}
}

14
abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/fr.json

@ -0,0 +1,14 @@
{
"culture": "fr",
"texts": {
"Account": "Compte ABP - Connexion et enregistrement | ABP.IO",
"Welcome": "Bienvenue",
"UseOneOfTheFollowingLinksToContinue": "Utilisez l'un des liens suivants pour continuer",
"FrameworkHomePage": "Page d'accueil du framework",
"FrameworkDocumentation": "Documentation du framework",
"OfficialBlog": "Blog officiel",
"CommercialHomePage": "Page d'accueil commerciale",
"CommercialSupportWebSite": "Site Web de support commercial",
"CommunityWebSite": "Site Web de la communauté ABP"
}
}

14
abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/hi.json

@ -0,0 +1,14 @@
{
"culture": "hi",
"texts": {
"Account": "ABP खाता - लॉगिन और रजिस्टर | ABP.IO",
"Welcome": "स्वागत हे",
"UseOneOfTheFollowingLinksToContinue": "जारी रखने के लिए निम्न लिंक में से एक का उपयोग करें",
"FrameworkHomePage": "फ्रेमवर्क होम पेज",
"FrameworkDocumentation": "फ्रेमवर्क प्रलेखन",
"OfficialBlog": "आधिकारिक ब्लॉग",
"CommercialHomePage": "वाणिज्यिक मुख पृष्ठ",
"CommercialSupportWebSite": "वाणिज्यिक समर्थन वेब साइट",
"CommunityWebSite": "एबीपी सामुदायिक वेब साइट"
}
}

14
abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/it.json

@ -0,0 +1,14 @@
{
"culture": "it",
"texts": {
"Account": "Account ABP - Accesso e registrazione | ABP.IO",
"Welcome": "benvenuto",
"UseOneOfTheFollowingLinksToContinue": "Usa uno dei seguenti link per continuare",
"FrameworkHomePage": "Home page del framework",
"FrameworkDocumentation": "Documentazione del framework",
"OfficialBlog": "Blog ufficiale",
"CommercialHomePage": "Home page commerciale",
"CommercialSupportWebSite": "Sito web di supporto commerciale",
"CommunityWebSite": "Sito web della comunità ABP"
}
}

7
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json

@ -272,6 +272,11 @@
"PaymentProduct": "Payment Product",
"ProductName": "Product Name",
"Code": "Code",
"GenerateInvoice": "Generate Invoice"
"GenerateInvoice": "Generate Invoice",
"ExportOrganizationsToExcel": "Export to Excel",
"ThisExtensionIsNotAllowed": "This extension is not allowed.",
"TheFileIsTooLarge": "The file is too large!",
"ArticleDeletionConfirmationMessage": "Are you sure you want to hard delete this article?",
"ChooseCoverImage": "Choose a cover image..."
}
}

2
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/es.json

@ -7,7 +7,7 @@
"Permission:DiscountManage": "Gestionar solicitudes de descuento",
"Permission:Disable": "Desactivar",
"Permission:Enable": "Activar",
"Permission:EnableSendEmail": "Activar enviar email",
"Permission:EnableSendEmail": "Activar envio de email",
"Permission:SendEmail": "Enviar email",
"Permission:NpmPackages": "Paquetes NPM",
"Permission:NugetPackages": "Paquetes Nuget",

282
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fi.json

@ -0,0 +1,282 @@
{
"culture": "fi",
"texts": {
"Permission:Organizations": "Organisaatiot",
"Permission:Manage": "Hallitse organisaatioita",
"Permission:DiscountRequests": "Alennushakemukset",
"Permission:DiscountManage": "Hallitse alennuspyyntöjä",
"Permission:Disable": "Poista käytöstä",
"Permission:Enable": "ota käyttöön",
"Permission:EnableSendEmail": "Ota Lähetä sähköposti käyttöön",
"Permission:SendEmail": "Lähettää sähköpostia",
"Permission:NpmPackages": "NPM-paketit",
"Permission:NugetPackages": "Nuget-paketit",
"Permission:Maintenance": "Huolto",
"Permission:Maintain": "Ylläpitää",
"Permission:ClearCaches": "Tyhjennä välimuistit",
"Permission:Modules": "Moduulit",
"Permission:Packages": "Paketit",
"Permission:Edit": "Muokata",
"Permission:Delete": "Poistaa",
"Permission:Create": "Luoda",
"Permission:Accounting": "Kirjanpito",
"Permission:Accounting:Quotation": "Tarjous",
"Permission:Accounting:Invoice": "Lasku",
"Menu:Organizations": "Organisaatiot",
"Menu:Accounting": "Kirjanpito",
"Menu:Packages": "Paketit",
"Menu:DiscountRequests": "Alennushakemukset",
"NpmPackageDeletionWarningMessage": "Tämä NPM-paketti poistetaan. Vahvistatko sen?",
"NugetPackageDeletionWarningMessage": "Tämä Nuget-paketti poistetaan. Vahvistatko sen?",
"ModuleDeletionWarningMessage": "Tämä moduuli poistetaan. Vahvistatko sen?",
"Name": "Nimi",
"DisplayName": "Näyttönimi",
"ShortDescription": "Lyhyt kuvaus",
"NameFilter": "Nimi",
"CreationTime": "Luomisaika",
"IsPro": "On ammattilainen",
"IsFreeToActiveLicenseOwners": "Vapaa lisenssin omistajille",
"ShowOnModuleList": "Näytä moduuliluettelossa",
"EfCoreConfigureMethodName": "Määritä menetelmän nimi",
"IsProFilter": "On ammattilainen",
"ApplicationType": "Sovelluksen tyyppi",
"Target": "Kohde",
"TargetFilter": "Kohde",
"ModuleClass": "Moduuliluokka",
"NugetPackageTarget.DomainShared": "Verkkotunnus jaettu",
"NugetPackageTarget.Domain": "Verkkotunnus",
"NugetPackageTarget.Application": "Sovellus",
"NugetPackageTarget.ApplicationContracts": "Sovellussopimukset",
"NugetPackageTarget.HttpApi": "Http Api",
"NugetPackageTarget.HttpApiClient": "Http Api Client",
"NugetPackageTarget.Web": "Web",
"NugetPackageTarget.EntityFrameworkCore": "PoistaAllEntityFramework Core",
"NugetPackageTarget.MongoDB": "MongoDB",
"Edit": "Muokata",
"Delete": "Poistaa",
"Refresh": "virkistää",
"NpmPackages": "NPM-paketit",
"NugetPackages": "Nuget-paketit",
"NpmPackageCount": "NPM-pakettimäärä",
"NugetPackageCount": "Nugetin pakettimäärä",
"Module": "Moduulit",
"ModuleInfo": "Moduulin tiedot",
"CreateANpmPackage": "Luo NPM-paketti",
"CreateAModule": "Luo moduuli",
"CreateANugetPackage": "Luo Nuget-paketti",
"AddNew": "Lisää uusi",
"PackageAlreadyExist{0}": "Paketti \"{0}\" on jo lisätty.",
"ModuleAlreadyExist{0}": "\"{0}\" -moduuli on jo lisätty.",
"ClearCache": "Tyhjennä välimuisti",
"SuccessfullyCleared": "Tyhjennetty onnistuneesti",
"Menu:NpmPackages": "NPM-paketit",
"Menu:Modules": "Moduulit",
"Menu:Maintenance": "Huolto",
"Menu:NugetPackages": "Nuget-paketit",
"CreateAnOrganization": "Luo organisaatio",
"Organizations": "Organisaatiot",
"LongName": "Pitkä nimi",
"LicenseType": "Lisenssi-tyyppi",
"MissingLicenseTypeField": "Lisenssityyppikenttä vaaditaan!",
"LicenseStartTime": "Lisenssin aloitusaika",
"LicenseEndTime": "Lisenssin päättymisaika",
"AllowedDeveloperCount": "Sallittu kehittäjien määrä",
"UserNameOrEmailAddress": "Käyttäjänimi tai Sähköpostiosoite",
"AddOwner": "Lisää omistaja",
"UserName": "Käyttäjätunnus",
"Email": "Sähköposti",
"Developers": "Kehittäjät",
"AddDeveloper": "Lisää kehittäjä",
"Create": "Luoda",
"UserNotFound": "Käyttäjää ei löydy",
"{0}WillBeRemovedFromDevelopers": "{0} Poistetaanko kehittäjiltä, vahvistatko?",
"{0}WillBeRemovedFromOwners": "{0} Poistetaanko omistajilta, vahvistatko?",
"{0}WillBeRemovedFromMembers": "{0} Poistetaanko jäsenistä, vahvistatko?",
"Computers": "Tietokoneet",
"UniqueComputerId": "Ainutlaatuinen tietokoneen tunnus",
"LastSeenDate": "Viimeksi nähty päivämäärä",
"{0}Computer{1}WillBeRemovedFromRecords": "Käyttäjän {0} ({1}) tietokone poistetaan tietueista",
"OrganizationDeletionWarningMessage": "Organisaatio poistetaan",
"DeletingLastOwnerWarningMessage": "Organisaatiolla on oltava vähintään yksi omistaja! Siksi et voi poistaa tätä omistajaa",
"This{0}AlreadyExistInThisOrganization": "Tämä {0} on jo olemassa tässä organisaatiossa",
"AreYouSureYouWantToDeleteAllComputers": "Haluatko varmasti poistaa kaikki tietokoneet?",
"DeleteAll": "Poista kaikki",
"DoYouWantToCreateNewUser": "Haluatko luoda uuden käyttäjän?",
"MasterModules": "Master-moduulit",
"OrganizationName": "Organisaation nimi",
"CreationDate": "Luomispäivä",
"LicenseStartDate": "Lisenssin aloituspäivä",
"LicenseEndDate": "Lisenssin päättymispäivä",
"OrganizationNamePlaceholder": "Organisaation nimi...",
"TotalQuestionCountPlaceholder": "Kysymysten kokonaismäärä ...",
"RemainingQuestionCountPlaceholder": "Jäljellä oleva kysymysten määrä ...",
"LicenseTypePlaceholder": "Lisenssi-tyyppi...",
"CreationDatePlaceholder": "Luomispäivä...",
"LicenseStartDatePlaceholder": "Lisenssin aloituspäivä ...",
"LicenseEndDatePlaceholder": "Lisenssin päättymispäivä ...",
"UsernameOrEmail": "Käyttäjätunnus tai sähköpostiosoite",
"UsernameOrEmailPlaceholder": "Käyttäjätunnus tai sähköpostiosoite...",
"Member": "Jäsen",
"PurchaseOrderNo": "Ostotilaus nro",
"QuotationDate": "Tarjouspäivä",
"CompanyName": "Yrityksen nimi",
"CompanyAddress": "Yritys osoite",
"Price": "Hinta",
"DiscountText": "Alennusteksti",
"DiscountQuantity": "Alennusmäärä",
"DiscountPrice": "Alennushinta",
"Quotation": "Tarjous",
"ExtraText": "Lisäteksti",
"ExtraAmount": "Lisämäärä",
"DownloadQuotation": "Lataa tarjous",
"Invoice": "Lasku",
"TaxNumber": "Veronumero",
"InvoiceNumber": "Laskun numero",
"InvoiceDate": "Laskutus päivämäärä",
"InvoiceNote": "Laskuhuomautus",
"Quantity": "Määrä",
"AddProduct": "Lisää tuote",
"AddProductWarning": "Sinun on lisättävä tuote!",
"TotalPrice": "Kokonaishinta",
"Generate": "Tuottaa",
"MissingQuantityField": "Määrä-kenttä vaaditaan!",
"MissingPriceField": "Hinta-kenttä on pakollinen!",
"CodeUsageStatus": "Tila",
"Country": "Maa",
"DeveloperCount": "Kehittäjien määrä",
"RequestCode": "Varauskoodi",
"WebSite": "Verkkosivusto",
"GithubUsername": "Github-käyttäjätunnus",
"PhoneNumber": "Puhelinnumero",
"ProjectDescription": "Hankkeen kuvaus",
"Referrer": "Viittaaja",
"DiscountRequests": "Alennuspyyntö",
"Copylink": "Kopioi linkki",
"Disable": "Poista käytöstä",
"Enable": "ota käyttöön",
"EnableSendEmail": "Ota Lähetä sähköposti käyttöön",
"SendEmail": "Lähettää sähköpostia",
"SuccessfullyDisabled": "Poistettu onnistuneesti käytöstä",
"SuccessfullyEnabled": "Ota käyttöön",
"EmailSent": "Sähköposti lähetetty",
"SuccessfullySent": "Lähetetty onnistuneesti",
"SuccessfullyDeleted": "Poistaminen onnistui",
"DiscountRequestDeletionWarningMessage": "Alennuspyyntö poistetaan",
"BusinessType": "Yritystyyppi",
"TotalQuestionCount": "Kysymysten kokonaismäärä",
"RemainingQuestionCount": "Jäljellä oleva kysymyslaskenta",
"TotalQuestionMustBeGreaterWarningMessage": "TotalQuestionCountin on oltava suurempi kuin RemainingQuestionCount!",
"QuestionCountsMustBeGreaterThanZero": "TotalQuestionCount ja RemainingQuestionCount on oltava nolla tai suurempi kuin nolla!",
"UnlimitedQuestionCount": "Rajoittamaton kysymysten määrä",
"Notes": "Huomautuksia",
"Menu:Community": "Yhteisö",
"Menu:Articles": "Artikkelit",
"Wait": "Odota",
"Approve": "Hyväksyä",
"Reject": "Hylätä",
"Details": "Yksityiskohdat",
"Url": "URL-osoite",
"Title": "Otsikko",
"ContentSource": "Sisältölähde",
"Status": "Tila",
"ReadArticle": "Lue artikkeli",
"ArticleHasBeenWaiting": "Artikkeli on odottanut",
"ArticleHasBeenApproved": "Artikkeli on hyväksytty",
"ArticleHasBeenRejected": "Artikkeli on hylätty",
"Permission:Community": "Yhteisö",
"Permission:CommunityArticle": "Artikla",
"Link": "Linkki",
"Enum:ContentSource:0": "Github",
"Enum:ContentSource:1": "Ulkoinen",
"Enum:Status:0": "Odottaa",
"Enum:Status:1": "Hylätty",
"Enum:Status:2": "Hyväksytty",
"Summary": "Yhteenveto",
"AuthorName": "Kirjoittajan nimi",
"CoverImage": "Kansikuva",
"RemoveCacheConfirmationMessage": "Oletko varma, että poistat artikkelin {0} välimuistin?",
"SuccessfullyRemoved": "Tyhjennetty onnistuneesti",
"RemoveCache": "Poista välimuisti",
"Language": "Kieli",
"Optional": "Valinnainen",
"CreateArticleLanguageInfo": "Kieli, jolla viesti kirjoitetaan",
"Enum:ContentSource:2": "Videoposti",
"VideoPreview": "Videon esikatselu",
"VideoPreviewErrorMessage": "Annettua videon URL-osoitetta ei voitu noutaa Youtubesta. Tämä voi johtua siitä, että video on yksityinen tai annettu URL-osoite ei ole käytettävissä.",
"DeleteCoverImage": "Poista kansikuva",
"DeleteCoverImageConfirmationMessage": "Haluatko varmasti poistaa kansion \"{0}\" kansikuvan?",
"DeleteCoverImageSuccessMessage": "Kansikuvan poistaminen onnistui",
"PaymentsOf": "Maksut",
"ShowPaymentsOfOrganization": "Maksut",
"Date": "Päivämäärä",
"Products": "Tuotteet",
"TotalAmount": "Kokonaismäärä",
"Currency": "Valuutta",
"Gateway": "Yhdyskäytävä",
"State": "Osavaltio",
"FailReason": "Epäonnistunut syy",
"ReIndexAllPosts": "Reindex Kaikki viestit",
"ReIndexAllPostsConfirmationMessage": "Haluatko varmasti indeksoida kaikki viestit uudelleen?",
"SuccessfullyReIndexAllPosts": "Kaikki viestit on indeksoitu uudelleen.",
"Permission:FullSearch": "Koko tekstihaku",
"Menu:CliAnalytics": "Cli Analytics",
"TemplateName": "Mallin nimi",
"TemplateVersion": "Malliversio",
"DatabaseProvider": "Tietokannan tarjoaja",
"IsTiered": "Onko porrastettu",
"ProjectName": "Projektin nimi",
"Username": "Käyttäjänimi",
"Tool": "Työkalu",
"Command": "Komento",
"UiFramework": "Ui-kehys",
"Options": "Vaihtoehdot",
"CliAnalytics": "Cli Analytics",
"Permission:CliAnalyticses": "Cli Analyticses",
"Permission:CliAnalytics": "Cli Analytics",
"Search": "Hae",
"ClearFilter": "Tyhjennä suodatin",
"LicensePrivateKey": "Lisenssin yksityinen avain",
"LicensePublicKey": "Lisenssin julkinen avain",
"ApiKey": "NuGet API -avain",
"ShowInvoiceRequestsOfOrganization": "Laskupyynnöt",
"ShowQuestionsOfOrganization": "Kysymyksiä",
"Question": "Kysymys",
"Open": "Avata",
"Questions": "Kysymyksiä",
"InvoiceRequests": "Laskupyynnöt",
"Address": "Osoite",
"TaxNo": "Veronumero",
"Permission:InvoiceRequest": "Laskutuspyyntö",
"Permission:Question": "Kysymys",
"AddNoteSuccessMessage": "Muistiinpanon lisääminen onnistui",
"NameSurname": "Nimi sukunimi",
"Note": "Merkintä",
"Add": "Lisätä",
"ProjectDownloads": "Projektin lataukset",
"ShowProjectDownloadsOfOrganization": "Projektin lataukset",
"ShowAuditLogsOfOrganization": "Tarkastuslokit",
"Enum:EntityChangeType:0": "Luotu",
"Enum:EntityChangeType:1": "Päivitetty",
"Enum:EntityChangeType:2": "Poistettu",
"TenantId": "Vuokralaisen tunnus",
"ChangeTime": "Vaihda aikaa",
"EntityTypeFullName": "Yhteisön tyypin koko nimi",
"AuditLogsFor{0}Organization": "\"{0}\" -organisaation tarkastuslokit",
"Permission:EntityChange": "Entity Change",
"Permission:ProjectDownload": "Projektin lataus",
"Permission:PaymentRequest": "Maksupyyntö",
"CreatorEmailAddress": "Sisällöntuottajan sähköpostiosoite",
"EmailSendDate": "Sähköpostin lähetyspäivä",
"PaymentRequestsFor{0}Organization": "Maksupyynnöt organisaatiolle {0}",
"PaymentDetails": "Maksutiedot",
"PaymentProduct": "Maksutuote",
"ProductName": "tuotteen nimi",
"Code": "Koodi",
"GenerateInvoice": "Luo lasku",
"ExportOrganizationsToExcel": "Vie Exceliin",
"ThisExtensionIsNotAllowed": "Tätä laajennusta ei sallita.",
"TheFileIsTooLarge": "Tiedosto on liian suuri!",
"ArticleDeletionConfirmationMessage": "Haluatko varmasti poistaa tämän artikkelin vaikeasti?",
"ChooseCoverImage": "Valitse kansikuva ..."
}
}

282
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fr.json

@ -0,0 +1,282 @@
{
"culture": "fr",
"texts": {
"Permission:Organizations": "Organisations",
"Permission:Manage": "Gérer les organisations",
"Permission:DiscountRequests": "Demandes de remise",
"Permission:DiscountManage": "Gérer les demandes de remise",
"Permission:Disable": "Désactiver",
"Permission:Enable": "Activer",
"Permission:EnableSendEmail": "Activer l'envoi d'e-mail",
"Permission:SendEmail": "Envoyer un e-mail",
"Permission:NpmPackages": "Packages NPM",
"Permission:NugetPackages": "Packages Nuget",
"Permission:Maintenance": "Maintenance",
"Permission:Maintain": "Maintenir",
"Permission:ClearCaches": "Effacer les caches",
"Permission:Modules": "Modules",
"Permission:Packages": "Paquets",
"Permission:Edit": "Éditer",
"Permission:Delete": "Effacer",
"Permission:Create": "Créer",
"Permission:Accounting": "Comptabilité",
"Permission:Accounting:Quotation": "Devis",
"Permission:Accounting:Invoice": "Facturer",
"Menu:Organizations": "Organisations",
"Menu:Accounting": "Comptabilité",
"Menu:Packages": "Paquets",
"Menu:DiscountRequests": "Demandes de remise",
"NpmPackageDeletionWarningMessage": "Ce package NPM sera supprimé. Le confirmez-vous?",
"NugetPackageDeletionWarningMessage": "Ce package Nuget sera supprimé. Le confirmez-vous?",
"ModuleDeletionWarningMessage": "Ce module sera supprimé. Le confirmez-vous?",
"Name": "Nom",
"DisplayName": "Afficher un nom",
"ShortDescription": "Brève description",
"NameFilter": "Nom",
"CreationTime": "Temps de creation",
"IsPro": "Est pro",
"IsFreeToActiveLicenseOwners": "Gratuit pour les titulaires de licence",
"ShowOnModuleList": "Afficher sur la liste des modules",
"EfCoreConfigureMethodName": "Configurer le nom de la méthode",
"IsProFilter": "Est pro",
"ApplicationType": "Type d'application",
"Target": "Cible",
"TargetFilter": "Cible",
"ModuleClass": "Classe de module",
"NugetPackageTarget.DomainShared": "Domaine partagé",
"NugetPackageTarget.Domain": "Domaine",
"NugetPackageTarget.Application": "Application",
"NugetPackageTarget.ApplicationContracts": "Contrats d'application",
"NugetPackageTarget.HttpApi": "Http Api",
"NugetPackageTarget.HttpApiClient": "Client Api Http",
"NugetPackageTarget.Web": "Web",
"NugetPackageTarget.EntityFrameworkCore": "DeleteAllEntityFramework Core",
"NugetPackageTarget.MongoDB": "MongoDB",
"Edit": "Éditer",
"Delete": "Effacer",
"Refresh": "Rafraîchir",
"NpmPackages": "Packages NPM",
"NugetPackages": "Packages Nuget",
"NpmPackageCount": "Nombre de packages NPM",
"NugetPackageCount": "Nombre de paquets Nuget",
"Module": "Modules",
"ModuleInfo": "Informations sur le module",
"CreateANpmPackage": "Créer un package NPM",
"CreateAModule": "Créer un module",
"CreateANugetPackage": "Créer un package Nuget",
"AddNew": "Ajouter un nouveau",
"PackageAlreadyExist{0}": "Le package \"{0}\" est déjà ajouté.",
"ModuleAlreadyExist{0}": "Le module \"{0}\" est déjà ajouté.",
"ClearCache": "Vider le cache",
"SuccessfullyCleared": "Effacé avec succès",
"Menu:NpmPackages": "Packages NPM",
"Menu:Modules": "Modules",
"Menu:Maintenance": "Maintenance",
"Menu:NugetPackages": "Packages Nuget",
"CreateAnOrganization": "Créer une organisation",
"Organizations": "Organisations",
"LongName": "Nom long",
"LicenseType": "Type de licence",
"MissingLicenseTypeField": "Le champ du type de licence est obligatoire!",
"LicenseStartTime": "Heure de début de la licence",
"LicenseEndTime": "Heure de fin de la licence",
"AllowedDeveloperCount": "Nombre de développeurs autorisé",
"UserNameOrEmailAddress": "Nom d'utilisateur ou adresse e-mail",
"AddOwner": "Ajouter un propriétaire",
"UserName": "Nom d'utilisateur",
"Email": "E-mail",
"Developers": "Les développeurs",
"AddDeveloper": "Ajouter un développeur",
"Create": "Créer",
"UserNotFound": "Utilisateur non trouvé",
"{0}WillBeRemovedFromDevelopers": "{0} Sera supprimé des développeurs, confirmez-vous?",
"{0}WillBeRemovedFromOwners": "{0} Sera supprimé des propriétaires, confirmez-vous?",
"{0}WillBeRemovedFromMembers": "{0} Sera supprimé des membres, confirmez-vous?",
"Computers": "Ordinateurs",
"UniqueComputerId": "ID d'ordinateur unique",
"LastSeenDate": "Date de la dernière consultation",
"{0}Computer{1}WillBeRemovedFromRecords": "L'ordinateur de {0} ({1}) sera supprimé des enregistrements",
"OrganizationDeletionWarningMessage": "L'organisation sera supprimée",
"DeletingLastOwnerWarningMessage": "Une organisation doit avoir au moins un propriétaire! Par conséquent, vous ne pouvez pas supprimer ce propriétaire",
"This{0}AlreadyExistInThisOrganization": "Ce {0} existe déjà dans cette organisation",
"AreYouSureYouWantToDeleteAllComputers": "Voulez-vous vraiment supprimer tous les ordinateurs?",
"DeleteAll": "Tout supprimer",
"DoYouWantToCreateNewUser": "Voulez-vous créer un nouvel utilisateur?",
"MasterModules": "Modules maîtres",
"OrganizationName": "Nom de l'organisation",
"CreationDate": "Date de création",
"LicenseStartDate": "Date de début de la licence",
"LicenseEndDate": "Date de fin de licence",
"OrganizationNamePlaceholder": "Nom de l'organisation...",
"TotalQuestionCountPlaceholder": "Nombre total de questions ...",
"RemainingQuestionCountPlaceholder": "Nombre de questions restantes ...",
"LicenseTypePlaceholder": "Type de licence...",
"CreationDatePlaceholder": "Date de création...",
"LicenseStartDatePlaceholder": "Date de début de la licence ...",
"LicenseEndDatePlaceholder": "Date de fin de licence ...",
"UsernameOrEmail": "Nom d'utilisateur ou email",
"UsernameOrEmailPlaceholder": "Nom d'utilisateur ou email...",
"Member": "Membre",
"PurchaseOrderNo": "Bon de commande non",
"QuotationDate": "Date du devis",
"CompanyName": "Nom de la société",
"CompanyAddress": "Adresse de la société",
"Price": "Prix",
"DiscountText": "Texte de remise",
"DiscountQuantity": "Quantité de remise",
"DiscountPrice": "Prix bas",
"Quotation": "Devis",
"ExtraText": "Texte supplémentaire",
"ExtraAmount": "Montant supplémentaire",
"DownloadQuotation": "Télécharger le devis",
"Invoice": "Facturer",
"TaxNumber": "Numéro d'identification fiscale",
"InvoiceNumber": "Numéro de facture",
"InvoiceDate": "Date de la facture",
"InvoiceNote": "Note sur la facture",
"Quantity": "Quantité",
"AddProduct": "Ajouter un produit",
"AddProductWarning": "Vous devez ajouter un produit!",
"TotalPrice": "Prix total",
"Generate": "Générer",
"MissingQuantityField": "Le champ de quantité est obligatoire!",
"MissingPriceField": "Le champ Prix est obligatoire!",
"CodeUsageStatus": "Statut",
"Country": "Pays",
"DeveloperCount": "Nombre de développeurs",
"RequestCode": "Code requis",
"WebSite": "Site Internet",
"GithubUsername": "Nom d'utilisateur Github",
"PhoneNumber": "Numéro de téléphone",
"ProjectDescription": "Description du projet",
"Referrer": "Référent",
"DiscountRequests": "Demande de remise",
"Copylink": "Copier le lien",
"Disable": "Désactiver",
"Enable": "Activer",
"EnableSendEmail": "Activer l'envoi d'e-mail",
"SendEmail": "Envoyer un e-mail",
"SuccessfullyDisabled": "Désactivé avec succès",
"SuccessfullyEnabled": "Activé avec succès",
"EmailSent": "Email envoyé",
"SuccessfullySent": "Envoyé avec succès",
"SuccessfullyDeleted": "Supprimé avec succès",
"DiscountRequestDeletionWarningMessage": "La demande de remise sera supprimée",
"BusinessType": "Type d'entreprise",
"TotalQuestionCount": "Nombre total de questions",
"RemainingQuestionCount": "Nombre de questions restantes",
"TotalQuestionMustBeGreaterWarningMessage": "TotalQuestionCount doit être supérieur à RemainingQuestionCount!",
"QuestionCountsMustBeGreaterThanZero": "TotalQuestionCount et RemainingQuestionCount doivent être égaux à zéro ou supérieurs à zéro!",
"UnlimitedQuestionCount": "Nombre de questions illimité",
"Notes": "Remarques",
"Menu:Community": "Communauté",
"Menu:Articles": "Articles",
"Wait": "Attendez",
"Approve": "Approuver",
"Reject": "Rejeter",
"Details": "Détails",
"Url": "URL",
"Title": "Titre",
"ContentSource": "Source du contenu",
"Status": "Statut",
"ReadArticle": "Lire l'article",
"ArticleHasBeenWaiting": "L'article attendait",
"ArticleHasBeenApproved": "L'article a été approuvé",
"ArticleHasBeenRejected": "L'article a été rejeté",
"Permission:Community": "Communauté",
"Permission:CommunityArticle": "Article",
"Link": "Relier",
"Enum:ContentSource:0": "Github",
"Enum:ContentSource:1": "Externe",
"Enum:Status:0": "Attendre",
"Enum:Status:1": "Rejeté",
"Enum:Status:2": "Approuvé",
"Summary": "Résumé",
"AuthorName": "Nom de l'auteur",
"CoverImage": "Image de couverture",
"RemoveCacheConfirmationMessage": "Êtes-vous sûr de vouloir supprimer le cache de l'article \"{0}\"?",
"SuccessfullyRemoved": "Effacé avec succès",
"RemoveCache": "Supprimer le cache",
"Language": "Langue",
"Optional": "Optionnel",
"CreateArticleLanguageInfo": "La langue dans laquelle le message est rédigé",
"Enum:ContentSource:2": "Message vidéo",
"VideoPreview": "Aperçu vidéo",
"VideoPreviewErrorMessage": "L'URL de la vidéo donnée n'a pas pu être récupérée sur Youtube. Cela peut être dû au fait que la vidéo est privée ou que l'URL donnée n'est pas disponible.",
"DeleteCoverImage": "Supprimer l'image de couverture",
"DeleteCoverImageConfirmationMessage": "Voulez-vous vraiment supprimer l'image de couverture de \"{0}\"?",
"DeleteCoverImageSuccessMessage": "L'image de couverture a bien été supprimée",
"PaymentsOf": "Paiements de",
"ShowPaymentsOfOrganization": "Paiements",
"Date": "Date",
"Products": "Des produits",
"TotalAmount": "Montant total",
"Currency": "Devise",
"Gateway": "passerelle",
"State": "État",
"FailReason": "Raison de l'échec",
"ReIndexAllPosts": "Réindexer tous les messages",
"ReIndexAllPostsConfirmationMessage": "Voulez-vous vraiment réindexer tous les messages?",
"SuccessfullyReIndexAllPosts": "Tous les messages ont été réindexés avec succès.",
"Permission:FullSearch": "Recherche en texte intégral",
"Menu:CliAnalytics": "Cli Analytics",
"TemplateName": "Nom du modèle",
"TemplateVersion": "Version du modèle",
"DatabaseProvider": "Fournisseur de base de données",
"IsTiered": "Est hiérarchisé",
"ProjectName": "Nom du projet",
"Username": "Nom d'utilisateur",
"Tool": "Outil",
"Command": "Commander",
"UiFramework": "Framework de l'interface utilisateur",
"Options": "Options",
"CliAnalytics": "Cli Analytics",
"Permission:CliAnalyticses": "Analyses Cli",
"Permission:CliAnalytics": "Cli Analytics",
"Search": "Rechercher",
"ClearFilter": "Effacer le filtre",
"LicensePrivateKey": "Clé privée de licence",
"LicensePublicKey": "Clé publique de licence",
"ApiKey": "Clé d'API NuGet",
"ShowInvoiceRequestsOfOrganization": "Demandes de factures",
"ShowQuestionsOfOrganization": "Questions",
"Question": "Question",
"Open": "Ouvert",
"Questions": "Questions",
"InvoiceRequests": "Demandes de factures",
"Address": "Adresse",
"TaxNo": "Numéro de taxe",
"Permission:InvoiceRequest": "Demande de facturation",
"Permission:Question": "Question",
"AddNoteSuccessMessage": "Note ajoutée avec succès",
"NameSurname": "Prénom / nom de famille",
"Note": "Noter",
"Add": "Ajouter",
"ProjectDownloads": "Téléchargements de projets",
"ShowProjectDownloadsOfOrganization": "Téléchargements de projets",
"ShowAuditLogsOfOrganization": "Journaux d'audit",
"Enum:EntityChangeType:0": "Créé",
"Enum:EntityChangeType:1": "Mise à jour",
"Enum:EntityChangeType:2": "Supprimé",
"TenantId": "ID du souscrivant",
"ChangeTime": "Changer le temps",
"EntityTypeFullName": "Nom complet du type d'entité",
"AuditLogsFor{0}Organization": "Journaux d'audit pour l'organisation \"{0}\"",
"Permission:EntityChange": "Changement d'entité",
"Permission:ProjectDownload": "Télécharger le projet",
"Permission:PaymentRequest": "Demande de paiement",
"CreatorEmailAddress": "Adresse e-mail du créateur",
"EmailSendDate": "Date d'envoi de l'e-mail",
"PaymentRequestsFor{0}Organization": "Demandes de paiement pour l'organisation \"{0}\"",
"PaymentDetails": "Détails de paiement",
"PaymentProduct": "Produit de paiement",
"ProductName": "Nom du produit",
"Code": "Code",
"GenerateInvoice": "Générer une facture",
"ExportOrganizationsToExcel": "Exporter vers Excel",
"ThisExtensionIsNotAllowed": "Cette extension n'est pas autorisée.",
"TheFileIsTooLarge": "Le fichier est trop volumineux!",
"ArticleDeletionConfirmationMessage": "Voulez-vous vraiment supprimer définitivement cet article?",
"ChooseCoverImage": "Choisissez une image de couverture ..."
}
}

282
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hi.json

@ -0,0 +1,282 @@
{
"culture": "hi",
"texts": {
"Permission:Organizations": "संगठनों",
"Permission:Manage": "संगठनों को प्रबंधित करें",
"Permission:DiscountRequests": "छूट का अनुरोध",
"Permission:DiscountManage": "डिस्काउंट अनुरोध प्रबंधित करें",
"Permission:Disable": "अक्षम",
"Permission:Enable": "सक्षम",
"Permission:EnableSendEmail": "ईमेल सक्षम करें",
"Permission:SendEmail": "ईमेल भेजें",
"Permission:NpmPackages": "एनपीएम पैकेज",
"Permission:NugetPackages": "नगेट संकुल",
"Permission:Maintenance": "रखरखाव",
"Permission:Maintain": "बनाए रखें",
"Permission:ClearCaches": "साफ कैश",
"Permission:Modules": "मॉड्यूल",
"Permission:Packages": "संकुल",
"Permission:Edit": "संपादित करें",
"Permission:Delete": "हटाएं",
"Permission:Create": "सृजन करना",
"Permission:Accounting": "लेखांकन",
"Permission:Accounting:Quotation": "उद्धरण",
"Permission:Accounting:Invoice": "बीजक",
"Menu:Organizations": "संगठनों",
"Menu:Accounting": "लेखांकन",
"Menu:Packages": "संकुल",
"Menu:DiscountRequests": "छूट का अनुरोध",
"NpmPackageDeletionWarningMessage": "यह NPM पैकेज हटा दिया जाएगा। क्या आप इसकी पुष्टि करते हैं?",
"NugetPackageDeletionWarningMessage": "यह नुगेट पैकेज हटा दिया जाएगा। क्या आप इसकी पुष्टि करते हैं?",
"ModuleDeletionWarningMessage": "यह मॉड्यूल हटा दिया जाएगा। क्या आप इसकी पुष्टि करते हैं?",
"Name": "नाम",
"DisplayName": "प्रदर्शित होने वाला नाम",
"ShortDescription": "संक्षिप्त वर्णन",
"NameFilter": "नाम",
"CreationTime": "रचना समय",
"IsPro": "समर्थक है",
"IsFreeToActiveLicenseOwners": "मालिकों को लाइसेंस देना मुफ्त",
"ShowOnModuleList": "मॉड्यूल सूची पर दिखाएं",
"EfCoreConfigureMethodName": "विधि नाम कॉन्फ़िगर करें",
"IsProFilter": "समर्थक है",
"ApplicationType": "आवेदन का प्रकार",
"Target": "लक्ष्य",
"TargetFilter": "लक्ष्य",
"ModuleClass": "मॉड्यूल वर्ग",
"NugetPackageTarget.DomainShared": "डोमेन साझा किया गया",
"NugetPackageTarget.Domain": "डोमेन",
"NugetPackageTarget.Application": "आवेदन",
"NugetPackageTarget.ApplicationContracts": "आवेदन संविदा",
"NugetPackageTarget.HttpApi": "Http Api",
"NugetPackageTarget.HttpApiClient": "Http Api क्लाइंट",
"NugetPackageTarget.Web": "वेब",
"NugetPackageTarget.EntityFrameworkCore": "DeleteAllEntityFramework Core",
"NugetPackageTarget.MongoDB": "MongoDB",
"Edit": "संपादित करें",
"Delete": "हटाएं",
"Refresh": "ताज़ा करना",
"NpmPackages": "एनपीएम पैकेज",
"NugetPackages": "नगेट संकुल",
"NpmPackageCount": "एनपीएम पैकेज की गणना",
"NugetPackageCount": "नगेट पैकेज गणना",
"Module": "मॉड्यूल",
"ModuleInfo": "मॉड्यूल जानकारी",
"CreateANpmPackage": "एक एनपीएम पैकेज बनाएँ",
"CreateAModule": "एक मॉड्यूल बनाएँ",
"CreateANugetPackage": "एक Nuget पैकेज बनाएँ",
"AddNew": "नया जोड़ें",
"PackageAlreadyExist{0}": "\"{0}\" पैकेज पहले से ही जोड़ा गया है।",
"ModuleAlreadyExist{0}": "\"{0}\" मॉड्यूल पहले से ही जोड़ा गया है।",
"ClearCache": "कैश को साफ़ करें",
"SuccessfullyCleared": "सफलतापूर्वक साफ़ हो गया",
"Menu:NpmPackages": "एनपीएम पैकेज",
"Menu:Modules": "मॉड्यूल",
"Menu:Maintenance": "रखरखाव",
"Menu:NugetPackages": "नगेट संकुल",
"CreateAnOrganization": "एक संगठन बनाएं",
"Organizations": "संगठनों",
"LongName": "लंबा नाम",
"LicenseType": "लाइसेंस के प्रकार",
"MissingLicenseTypeField": "लाइसेंस प्रकार क्षेत्र की आवश्यकता है!",
"LicenseStartTime": "लाइसेंस शुरू होने का समय",
"LicenseEndTime": "लाइसेंस समाप्ति का समय",
"AllowedDeveloperCount": "अनुमत डेवलपर गणना",
"UserNameOrEmailAddress": "उपयोगकर्ता का नाम या ईमेल पता",
"AddOwner": "मालिक जोड़ें",
"UserName": "उपयोगकर्ता नाम",
"Email": "ईमेल",
"Developers": "डेवलपर्स",
"AddDeveloper": "डेवलपर जोड़ें",
"Create": "सृजन करना",
"UserNotFound": "उपयोगकर्ता नहीं मिला",
"{0}WillBeRemovedFromDevelopers": "{0} डेवलपर्स से हटा दिया जाएगा, क्या आप पुष्टि करते हैं?",
"{0}WillBeRemovedFromOwners": "{0} मालिकों से हटा दिया जाएगा, क्या आप पुष्टि करते हैं?",
"{0}WillBeRemovedFromMembers": "{0} सदस्यों से हटा दिया जाएगा, क्या आप पुष्टि करते हैं?",
"Computers": "कंप्यूटर",
"UniqueComputerId": "यूनिक कंप्यूटर आई.डी.",
"LastSeenDate": "अंतिम बार देखी गई तारीख",
"{0}Computer{1}WillBeRemovedFromRecords": "{0} ({1}) का कंप्यूटर रिकॉर्ड से हटा दिया जाएगा",
"OrganizationDeletionWarningMessage": "संगठन को हटा दिया जाएगा",
"DeletingLastOwnerWarningMessage": "एक संगठन में कम से कम एक मालिक होना चाहिए! इसलिए आप इस स्वामी को नहीं निकाल सकते",
"This{0}AlreadyExistInThisOrganization": "यह {0} इस संगठन में पहले से मौजूद है",
"AreYouSureYouWantToDeleteAllComputers": "क्या आप वाकई सभी कंप्यूटर हटाना चाहते हैं?",
"DeleteAll": "सभी हटा दो",
"DoYouWantToCreateNewUser": "क्या आप नया उपयोगकर्ता बनाना चाहते हैं?",
"MasterModules": "मास्टर मॉड्यूल",
"OrganizationName": "संगठन का नाम",
"CreationDate": "निर्माण तिथि",
"LicenseStartDate": "लाइसेंस शुरू होने की तारीख",
"LicenseEndDate": "लाइसेंस की अंतिम तिथि",
"OrganizationNamePlaceholder": "संगठन का नाम...",
"TotalQuestionCountPlaceholder": "कुल प्रश्न संख्या ...",
"RemainingQuestionCountPlaceholder": "शेष प्रश्न गणना ...",
"LicenseTypePlaceholder": "लाइसेंस के प्रकार...",
"CreationDatePlaceholder": "निर्माण तिथि...",
"LicenseStartDatePlaceholder": "लाइसेंस शुरू होने की तारीख ...",
"LicenseEndDatePlaceholder": "लाइसेंस की अंतिम तिथि ...",
"UsernameOrEmail": "उपयोगकर्ता का नाम या ईमेल",
"UsernameOrEmailPlaceholder": "उपयोगकर्ता का नाम या ईमेल...",
"Member": "सदस्य",
"PurchaseOrderNo": "खरीद आदेश ्संक्या",
"QuotationDate": "बोली की तारीख",
"CompanyName": "कंपनी का नाम",
"CompanyAddress": "कम्पनी का पता",
"Price": "कीमत",
"DiscountText": "डिस्काउंट पाठ",
"DiscountQuantity": "छूट मात्रा",
"DiscountPrice": "डिस्काउंट कीमत",
"Quotation": "उद्धरण",
"ExtraText": "अतिरिक्त पाठ",
"ExtraAmount": "अतिरिक्त राशि",
"DownloadQuotation": "उद्धरण डाउनलोड करें",
"Invoice": "बीजक",
"TaxNumber": "कर संख्या",
"InvoiceNumber": "बीजक संख्या",
"InvoiceDate": "चालान की तारीख",
"InvoiceNote": "चालान नोट",
"Quantity": "मात्रा",
"AddProduct": "उत्पाद जोड़ें",
"AddProductWarning": "आपको उत्पाद जोड़ने की आवश्यकता है!",
"TotalPrice": "कुल कीमत",
"Generate": "उत्पन्न",
"MissingQuantityField": "मात्रा फ़ील्ड आवश्यक है!",
"MissingPriceField": "मूल्य क्षेत्र की आवश्यकता है!",
"CodeUsageStatus": "स्थिति",
"Country": "देश",
"DeveloperCount": "डेवलपर गणना",
"RequestCode": "अनुरोध कोड",
"WebSite": "वेबसाइट",
"GithubUsername": "Github उपयोगकर्ता नाम",
"PhoneNumber": "फ़ोन नंबर",
"ProjectDescription": "परियोजना विवरण",
"Referrer": "संदर्भ",
"DiscountRequests": "छूट का अनुरोध",
"Copylink": "प्रतिरूप जोड़ना",
"Disable": "अक्षम",
"Enable": "सक्षम",
"EnableSendEmail": "ईमेल सक्षम करें",
"SendEmail": "ईमेल भेजें",
"SuccessfullyDisabled": "सफलतापूर्वक अक्षम किया गया",
"SuccessfullyEnabled": "सफलतापूर्वक सक्षम किया गया",
"EmailSent": "ईमेल भेजा",
"SuccessfullySent": "सफलतापूर्वक भेजा",
"SuccessfullyDeleted": "सफलतापूर्वक हटा दिया गया",
"DiscountRequestDeletionWarningMessage": "छूट अनुरोध हटा दिया जाएगा",
"BusinessType": "व्यापार के प्रकार",
"TotalQuestionCount": "कुल प्रश्न संख्या",
"RemainingQuestionCount": "शेष प्रश्न गणना",
"TotalQuestionMustBeGreaterWarningMessage": "TotalQuestionCount RemainingQuestionCount से अधिक होना चाहिए!",
"QuestionCountsMustBeGreaterThanZero": "TotalQuestionCount और RemainingQuestionCount शून्य या शून्य से अधिक होना चाहिए!",
"UnlimitedQuestionCount": "असीमित प्रश्न गणना",
"Notes": "टिप्पणियाँ",
"Menu:Community": "समुदाय",
"Menu:Articles": "सामग्री",
"Wait": "रुको",
"Approve": "मंजूर",
"Reject": "अस्वीकार",
"Details": "विवरण",
"Url": "यूआरएल",
"Title": "शीर्षक",
"ContentSource": "विषय - वस्तु का स्रोत",
"Status": "स्थिति",
"ReadArticle": "लेख पढ़ें",
"ArticleHasBeenWaiting": "लेख की प्रतीक्षा रही",
"ArticleHasBeenApproved": "अनुच्छेद स्वीकृत किया गया है",
"ArticleHasBeenRejected": "अनुच्छेद अस्वीकार कर दिया गया है",
"Permission:Community": "समुदाय",
"Permission:CommunityArticle": "लेख",
"Link": "संपर्क",
"Enum:ContentSource:0": "Github",
"Enum:ContentSource:1": "बाहरी",
"Enum:Status:0": "इंतज़ार कर रही",
"Enum:Status:1": "अस्वीकृत",
"Enum:Status:2": "मंजूर की",
"Summary": "सारांश",
"AuthorName": "लेखक का नाम",
"CoverImage": "कवर छवि",
"RemoveCacheConfirmationMessage": "क्या आप वाकई \"{0}\" लेख के लिए कैश निकालना चाहते हैं?",
"SuccessfullyRemoved": "सफलतापूर्वक साफ़ हो गया",
"RemoveCache": "कैश निकालें",
"Language": "भाषा: हिन्दी",
"Optional": "ऐच्छिक",
"CreateArticleLanguageInfo": "वह भाषा जिसमें पद लिखा जाता है",
"Enum:ContentSource:2": "वीडियो पोस्ट",
"VideoPreview": "वीडियो पूर्वावलोकन",
"VideoPreviewErrorMessage": "दिया गया वीडियो url Youtube से पुनः प्राप्त नहीं कर सका। यह वीडियो निजी होने के कारण हो सकता है या दिया गया URL उपलब्ध नहीं है।",
"DeleteCoverImage": "कवर छवि हटाएं",
"DeleteCoverImageConfirmationMessage": "क्या आप वाकई \"{0}\" के लिए कवर छवि को हटाना चाहते हैं?",
"DeleteCoverImageSuccessMessage": "कवर छवि सफलतापूर्वक हटा दी गई",
"PaymentsOf": "के भुगतान",
"ShowPaymentsOfOrganization": "भुगतान",
"Date": "तारीख",
"Products": "उत्पादों",
"TotalAmount": "कुल रकम",
"Currency": "मुद्रा",
"Gateway": "द्वार",
"State": "राज्य",
"FailReason": "विफल कारण",
"ReIndexAllPosts": "सभी पदों को फिर से लिखना",
"ReIndexAllPostsConfirmationMessage": "क्या आप वाकई सभी पदों को पुनः प्राप्त करना चाहते हैं?",
"SuccessfullyReIndexAllPosts": "सभी पदों को सफलतापूर्वक रीइंसेक्स किया गया है।",
"Permission:FullSearch": "पूरा पाठ खोजें",
"Menu:CliAnalytics": "Cli Analytics",
"TemplateName": "टेम्पलेट नाम",
"TemplateVersion": "टेम्पलेट संस्करण",
"DatabaseProvider": "डेटाबेस प्रदाता",
"IsTiered": "तीयर है",
"ProjectName": "परियोजना का नाम",
"Username": "उपयोगकर्ता नाम",
"Tool": "साधन",
"Command": "आदेश",
"UiFramework": "उई ढांचा",
"Options": "विकल्प",
"CliAnalytics": "Cli Analytics",
"Permission:CliAnalyticses": "क्ली एनालिटिक्स",
"Permission:CliAnalytics": "Cli Analytics",
"Search": "खोज",
"ClearFilter": "स्पष्ट निस्यंदक",
"LicensePrivateKey": "लाइसेंस निजी कुंजी",
"LicensePublicKey": "लाइसेंस सार्वजनिक कुंजी",
"ApiKey": "NuGet एपीआई कुंजी",
"ShowInvoiceRequestsOfOrganization": "चालान अनुरोध",
"ShowQuestionsOfOrganization": "प्रशन",
"Question": "सवाल",
"Open": "खुला हुआ",
"Questions": "प्रशन",
"InvoiceRequests": "चालान अनुरोध",
"Address": "पता",
"TaxNo": "टैक्स संख्या",
"Permission:InvoiceRequest": "बिल के लिए अनुरोध",
"Permission:Question": "सवाल",
"AddNoteSuccessMessage": "नोट सफलतापूर्वक जोड़ा गया",
"NameSurname": "नाम सरनेम",
"Note": "ध्यान दें",
"Add": "जोड़ना",
"ProjectDownloads": "प्रोजेक्ट डाउनलोड",
"ShowProjectDownloadsOfOrganization": "प्रोजेक्ट डाउनलोड",
"ShowAuditLogsOfOrganization": "ऑडिट लॉग",
"Enum:EntityChangeType:0": "बनाया था",
"Enum:EntityChangeType:1": "अद्यतन",
"Enum:EntityChangeType:2": "हटाए गए",
"TenantId": "किरायेदार आईडी",
"ChangeTime": "समय परिवर्तन करें",
"EntityTypeFullName": "संपूर्ण प्रकार पूर्ण नाम",
"AuditLogsFor{0}Organization": "\"{0}\" संगठन के लिए ऑडिट लॉग",
"Permission:EntityChange": "इकाई परिवर्तन",
"Permission:ProjectDownload": "प्रोजेक्ट डाउनलोड",
"Permission:PaymentRequest": "भुगतान अनुरोध",
"CreatorEmailAddress": "निर्माता का ईमेल पता",
"EmailSendDate": "ईमेल भेजने की तारीख",
"PaymentRequestsFor{0}Organization": "\"{0}\" संगठन के लिए भुगतान अनुरोध",
"PaymentDetails": "भुगतान विवरण",
"PaymentProduct": "भुगतान उत्पाद",
"ProductName": "उत्पाद का नाम",
"Code": "कोड",
"GenerateInvoice": "आनंद उत्पन्न करें",
"ExportOrganizationsToExcel": "एक्सेल में भेजे",
"ThisExtensionIsNotAllowed": "इस एक्सटेंशन की अनुमति नहीं है।",
"TheFileIsTooLarge": "फ़ाइल बहुत बड़ी है!",
"ArticleDeletionConfirmationMessage": "क्या आप वाकई इस लेख को हटाना चाहते हैं?",
"ChooseCoverImage": "कवर छवि चुनें ..."
}
}

282
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/it.json

@ -0,0 +1,282 @@
{
"culture": "it",
"texts": {
"Permission:Organizations": "Organizzazioni",
"Permission:Manage": "Gestisci organizzazioni",
"Permission:DiscountRequests": "Richieste di sconto",
"Permission:DiscountManage": "Gestisci le richieste di sconto",
"Permission:Disable": "disattivare",
"Permission:Enable": "Abilitare",
"Permission:EnableSendEmail": "Abilita Invia e-mail",
"Permission:SendEmail": "Invia una email",
"Permission:NpmPackages": "Pacchetti NPM",
"Permission:NugetPackages": "Pacchetti Nuget",
"Permission:Maintenance": "Manutenzione",
"Permission:Maintain": "Mantenere",
"Permission:ClearCaches": "Cancella cache",
"Permission:Modules": "Moduli",
"Permission:Packages": "Pacchi",
"Permission:Edit": "modificare",
"Permission:Delete": "Elimina",
"Permission:Create": "Creare",
"Permission:Accounting": "Contabilità",
"Permission:Accounting:Quotation": "Quotazione",
"Permission:Accounting:Invoice": "Fattura",
"Menu:Organizations": "Organizzazioni",
"Menu:Accounting": "Contabilità",
"Menu:Packages": "Pacchi",
"Menu:DiscountRequests": "Richieste di sconto",
"NpmPackageDeletionWarningMessage": "Questo pacchetto NPM verrà eliminato. Lo confermi?",
"NugetPackageDeletionWarningMessage": "Questo pacchetto Nuget verrà eliminato. Lo confermi?",
"ModuleDeletionWarningMessage": "Questo modulo verrà eliminato. Lo confermi?",
"Name": "Nome",
"DisplayName": "Nome da visualizzare",
"ShortDescription": "Breve descrizione",
"NameFilter": "Nome",
"CreationTime": "Tempo di creazione",
"IsPro": "È pro",
"IsFreeToActiveLicenseOwners": "Gratuito per i proprietari di licenze",
"ShowOnModuleList": "Mostra nell'elenco dei moduli",
"EfCoreConfigureMethodName": "Configurare il nome del metodo",
"IsProFilter": "È pro",
"ApplicationType": "Tipo di applicazione",
"Target": "Bersaglio",
"TargetFilter": "Bersaglio",
"ModuleClass": "Classe del modulo",
"NugetPackageTarget.DomainShared": "Dominio condiviso",
"NugetPackageTarget.Domain": "Dominio",
"NugetPackageTarget.Application": "Applicazione",
"NugetPackageTarget.ApplicationContracts": "Contratti applicativi",
"NugetPackageTarget.HttpApi": "Http Api",
"NugetPackageTarget.HttpApiClient": "Client API HTTP",
"NugetPackageTarget.Web": "ragnatela",
"NugetPackageTarget.EntityFrameworkCore": "DeleteAllEntityFramework Core",
"NugetPackageTarget.MongoDB": "MongoDB",
"Edit": "modificare",
"Delete": "Elimina",
"Refresh": "ricaricare",
"NpmPackages": "Pacchetti NPM",
"NugetPackages": "Pacchetti Nuget",
"NpmPackageCount": "Conteggio pacchetti NPM",
"NugetPackageCount": "Conteggio pacchetti Nuget",
"Module": "Moduli",
"ModuleInfo": "Informazioni sul modulo",
"CreateANpmPackage": "Crea un pacchetto NPM",
"CreateAModule": "Crea un modulo",
"CreateANugetPackage": "Crea un pacchetto Nuget",
"AddNew": "Aggiungere nuova",
"PackageAlreadyExist{0}": "Il pacchetto \"{0}\" è già aggiunto.",
"ModuleAlreadyExist{0}": "Il modulo \"{0}\" è già aggiunto.",
"ClearCache": "Cancella cache",
"SuccessfullyCleared": "Cancellato con successo",
"Menu:NpmPackages": "Pacchetti NPM",
"Menu:Modules": "Moduli",
"Menu:Maintenance": "Manutenzione",
"Menu:NugetPackages": "Pacchetti Nuget",
"CreateAnOrganization": "Crea un'organizzazione",
"Organizations": "Organizzazioni",
"LongName": "Nome lungo",
"LicenseType": "Tipo di licenza",
"MissingLicenseTypeField": "Il campo del tipo di licenza è obbligatorio!",
"LicenseStartTime": "Ora di inizio della licenza",
"LicenseEndTime": "Ora di fine della licenza",
"AllowedDeveloperCount": "Conteggio sviluppatori consentito",
"UserNameOrEmailAddress": "Username o Indirizzo Email",
"AddOwner": "Aggiungi proprietario",
"UserName": "Nome utente",
"Email": "E-mail",
"Developers": "Sviluppatori",
"AddDeveloper": "Aggiungi sviluppatore",
"Create": "Creare",
"UserNotFound": "Utente non trovato",
"{0}WillBeRemovedFromDevelopers": "{0} Verrà rimosso dagli sviluppatori, confermi?",
"{0}WillBeRemovedFromOwners": "{0} Verrà rimosso dai proprietari, confermi?",
"{0}WillBeRemovedFromMembers": "{0} Verrà rimosso dai membri, confermi?",
"Computers": "Computer",
"UniqueComputerId": "ID computer univoco",
"LastSeenDate": "Data dell'ultimo accesso",
"{0}Computer{1}WillBeRemovedFromRecords": "Il computer di {0} ({1}) verrà rimosso dai record",
"OrganizationDeletionWarningMessage": "L'organizzazione verrà eliminata",
"DeletingLastOwnerWarningMessage": "Un'organizzazione deve avere almeno un proprietario! Pertanto non puoi rimuovere questo proprietario",
"This{0}AlreadyExistInThisOrganization": "Questo {0} esiste già in questa organizzazione",
"AreYouSureYouWantToDeleteAllComputers": "Sei sicuro di voler eliminare tutti i computer?",
"DeleteAll": "Cancella tutto",
"DoYouWantToCreateNewUser": "Vuoi creare un nuovo utente?",
"MasterModules": "Moduli master",
"OrganizationName": "Nome dell'organizzazione",
"CreationDate": "Data di creazione",
"LicenseStartDate": "Data di inizio della licenza",
"LicenseEndDate": "Data di fine della licenza",
"OrganizationNamePlaceholder": "Nome dell'organizzazione...",
"TotalQuestionCountPlaceholder": "Conteggio totale delle domande ...",
"RemainingQuestionCountPlaceholder": "Numero di domande rimanenti ...",
"LicenseTypePlaceholder": "Tipo di licenza...",
"CreationDatePlaceholder": "Data di creazione...",
"LicenseStartDatePlaceholder": "Data di inizio della licenza ...",
"LicenseEndDatePlaceholder": "Data di fine della licenza ...",
"UsernameOrEmail": "Nome utente o email",
"UsernameOrEmailPlaceholder": "Nome utente o email...",
"Member": "Membro",
"PurchaseOrderNo": "Ordine d'Acquisto N °",
"QuotationDate": "Data di quotazione",
"CompanyName": "Nome della ditta",
"CompanyAddress": "Indirizzo aziendale",
"Price": "Prezzo",
"DiscountText": "Testo di sconto",
"DiscountQuantity": "Quantità di sconto",
"DiscountPrice": "Prezzo scontato",
"Quotation": "Quotazione",
"ExtraText": "Testo extra",
"ExtraAmount": "Importo extra",
"DownloadQuotation": "Scarica preventivo",
"Invoice": "Fattura",
"TaxNumber": "Codice fiscale",
"InvoiceNumber": "Numero di fattura",
"InvoiceDate": "Data fattura",
"InvoiceNote": "Nota fattura",
"Quantity": "Quantità",
"AddProduct": "Aggiungi prodotto",
"AddProductWarning": "Devi aggiungere il prodotto!",
"TotalPrice": "Prezzo totale",
"Generate": "creare",
"MissingQuantityField": "Il campo della quantità è obbligatorio!",
"MissingPriceField": "Il campo Prezzo è obbligatorio!",
"CodeUsageStatus": "Stato",
"Country": "Nazione",
"DeveloperCount": "Conteggio sviluppatori",
"RequestCode": "Codice richiesto",
"WebSite": "Sito web",
"GithubUsername": "Nome utente GitHub",
"PhoneNumber": "Numero di telefono",
"ProjectDescription": "descrizione del progetto",
"Referrer": "Referrer",
"DiscountRequests": "Richiesta di sconto",
"Copylink": "Copia link",
"Disable": "disattivare",
"Enable": "Abilitare",
"EnableSendEmail": "Abilita Invia e-mail",
"SendEmail": "Invia una email",
"SuccessfullyDisabled": "Disabilitato con successo",
"SuccessfullyEnabled": "Abilitato con successo",
"EmailSent": "Email inviata",
"SuccessfullySent": "Inviato con successo",
"SuccessfullyDeleted": "Eliminato con successo",
"DiscountRequestDeletionWarningMessage": "La richiesta di sconto verrà eliminata",
"BusinessType": "tipo di affari",
"TotalQuestionCount": "Conteggio totale delle domande",
"RemainingQuestionCount": "Numero di domande rimanenti",
"TotalQuestionMustBeGreaterWarningMessage": "TotalQuestionCount deve essere maggiore di RemainingQuestionCount!",
"QuestionCountsMustBeGreaterThanZero": "TotalQuestionCount e RemainingQuestionCount devono essere zero o maggiori di zero!",
"UnlimitedQuestionCount": "Conteggio illimitato delle domande",
"Notes": "Appunti",
"Menu:Community": "Comunità",
"Menu:Articles": "Articoli",
"Wait": "Aspettare",
"Approve": "Approvare",
"Reject": "Rifiutare",
"Details": "Dettagli",
"Url": "Url",
"Title": "Titolo",
"ContentSource": "Fonte di contenuto",
"Status": "Stato",
"ReadArticle": "Leggi l'articolo",
"ArticleHasBeenWaiting": "L'articolo è stato in attesa",
"ArticleHasBeenApproved": "L'articolo è stato approvato",
"ArticleHasBeenRejected": "L'articolo è stato respinto",
"Permission:Community": "Comunità",
"Permission:CommunityArticle": "Articolo",
"Link": "Link",
"Enum:ContentSource:0": "Github",
"Enum:ContentSource:1": "Esterno",
"Enum:Status:0": "In attesa",
"Enum:Status:1": "Respinto",
"Enum:Status:2": "Approvato",
"Summary": "Sommario",
"AuthorName": "Nome dell'autore",
"CoverImage": "Immagine di copertina",
"RemoveCacheConfirmationMessage": "Sei sicuro di aver rimosso la cache per l'articolo \"{0}\"?",
"SuccessfullyRemoved": "Cancellato con successo",
"RemoveCache": "Rimuovi cache",
"Language": "linguaggio",
"Optional": "Opzionale",
"CreateArticleLanguageInfo": "La lingua in cui è scritto il post",
"Enum:ContentSource:2": "Post video",
"VideoPreview": "Anteprima video",
"VideoPreviewErrorMessage": "Impossibile recuperare l'URL del video da Youtube. Ciò può essere causato dal fatto che il video è privato o l'URL fornito non è disponibile.",
"DeleteCoverImage": "Elimina immagine di copertina",
"DeleteCoverImageConfirmationMessage": "Sei sicuro di voler eliminare l'immagine di copertina per \"{0}\"?",
"DeleteCoverImageSuccessMessage": "Immagine di copertina eliminata con successo",
"PaymentsOf": "Pagamenti di",
"ShowPaymentsOfOrganization": "Pagamenti",
"Date": "Data",
"Products": "Prodotti",
"TotalAmount": "Importo totale",
"Currency": "Moneta",
"Gateway": "Gateway",
"State": "Stato",
"FailReason": "Motivo fallito",
"ReIndexAllPosts": "Reindicizza tutti i post",
"ReIndexAllPostsConfirmationMessage": "Sei sicuro di voler reindicizzare tutti i post?",
"SuccessfullyReIndexAllPosts": "Tutti i post sono stati reindicizzati con successo.",
"Permission:FullSearch": "Ricerca nel testo completo",
"Menu:CliAnalytics": "Cli Analytics",
"TemplateName": "Nome modello",
"TemplateVersion": "Versione modello",
"DatabaseProvider": "Provider di database",
"IsTiered": "È a livelli",
"ProjectName": "Nome del progetto",
"Username": "Nome utente",
"Tool": "Attrezzo",
"Command": "Comando",
"UiFramework": "Framework dell'interfaccia utente",
"Options": "Opzioni",
"CliAnalytics": "Cli Analytics",
"Permission:CliAnalyticses": "Cli Analyticses",
"Permission:CliAnalytics": "Cli Analytics",
"Search": "Ricerca",
"ClearFilter": "Filtro pulito",
"LicensePrivateKey": "Chiave privata della licenza",
"LicensePublicKey": "Licenza chiave pubblica",
"ApiKey": "Chiave API NuGet",
"ShowInvoiceRequestsOfOrganization": "Richieste di fattura",
"ShowQuestionsOfOrganization": "Domande",
"Question": "Domanda",
"Open": "Aperto",
"Questions": "Domande",
"InvoiceRequests": "Richieste di fattura",
"Address": "Indirizzo",
"TaxNo": "No fiscale",
"Permission:InvoiceRequest": "Richiesta di fattura",
"Permission:Question": "Domanda",
"AddNoteSuccessMessage": "Nota aggiunta con successo",
"NameSurname": "Nome cognome",
"Note": "Nota",
"Add": "Inserisci",
"ProjectDownloads": "Download del progetto",
"ShowProjectDownloadsOfOrganization": "Download del progetto",
"ShowAuditLogsOfOrganization": "Registri di controllo",
"Enum:EntityChangeType:0": "Creato",
"Enum:EntityChangeType:1": "Aggiornato",
"Enum:EntityChangeType:2": "Eliminato",
"TenantId": "ID inquilino",
"ChangeTime": "Cambia il tempo",
"EntityTypeFullName": "Nome completo del tipo di entità",
"AuditLogsFor{0}Organization": "Log di controllo per l'organizzazione \"{0}\"",
"Permission:EntityChange": "Modifica entità",
"Permission:ProjectDownload": "Download del progetto",
"Permission:PaymentRequest": "Richiesta di pagamento",
"CreatorEmailAddress": "Indirizzo email del creatore",
"EmailSendDate": "Data di invio dell'e-mail",
"PaymentRequestsFor{0}Organization": "Richieste di pagamento per l'organizzazione \"{0}\"",
"PaymentDetails": "Dettagli di pagamento",
"PaymentProduct": "Prodotto di pagamento",
"ProductName": "nome del prodotto",
"Code": "Codice",
"GenerateInvoice": "Genera fattura",
"ExportOrganizationsToExcel": "esportare in Excel",
"ThisExtensionIsNotAllowed": "Questa estensione non è consentita.",
"TheFileIsTooLarge": "Il file è troppo grande!",
"ArticleDeletionConfirmationMessage": "Sei sicuro di voler eliminare definitivamente questo articolo?",
"ChooseCoverImage": "Scegli un'immagine di copertina ..."
}
}

10
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json

@ -221,6 +221,12 @@
"PaymentProduct": "Ödeme Ürünü",
"ProductName": "Ürün İsmi",
"Code": "Kod",
"GenerateInvoice": "Fatura Oluştur"
"GenerateInvoice": "Fatura Oluştur",
"ExportOrganizationsToExcel": "Excel'e aktar",
"ThisExtensionIsNotAllowed": "Bu uzantıya izin verilmiyor.",
"TheFileIsTooLarge": "Dosya çok büyük.",
"ArticleDeletionConfirmationMessage": "Bu makaleyi kalıcı olarak silmek istediğinizden emin misiniz?",
"ChooseCoverImage": "Bir kapak resmi seçin...",
"CoverImage": "Kapak Resmi"
}
}
}

7
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json

@ -256,6 +256,11 @@
"PaymentProduct": "付款产品",
"ProductName": "产品名称",
"Code": "代码",
"GenerateInvoice": "生成发票"
"GenerateInvoice": "生成发票",
"ExportOrganizationsToExcel": "将组织导出到Excel",
"ThisExtensionIsNotAllowed": "不允许此扩展名.",
"TheFileIsTooLarge": "文件过大.",
"ArticleDeletionConfirmationMessage": "您确定要硬删除这篇文章吗?",
"ChooseCoverImage": "选项一张封面图片"
}
}

4
abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en-GB.json

@ -30,6 +30,8 @@
"Permission:License": "License",
"Permission:UserInfo": "User info",
"SeeDocuments": "See Documents",
"Samples": "Samples"
"Samples": "Samples",
"FreeDDDBook": "Free DDD E-book",
"New": "New"
}
}

4
abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json

@ -32,6 +32,8 @@
"SeeDocuments": "See Documents",
"Samples": "Samples",
"Framework": "Framework",
"Support": "Support"
"Support": "Support",
"FreeDDDBook": "Free DDD E-book",
"New": "New"
}
}

37
abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fi.json

@ -0,0 +1,37 @@
{
"culture": "fi",
"texts": {
"Volo.AbpIo.Domain:010004": "Jäsenmäärä on saavutettu!",
"Volo.AbpIo.Domain:010005": "Omistajien enimmäismäärä saavutettu!",
"Volo.AbpIo.Domain:010006": "Tämä käyttäjä on jo tämän organisaation omistaja!",
"Volo.AbpIo.Domain:010007": "Tämä käyttäjä on jo kehittäjä tässä organisaatiossa!",
"Volo.AbpIo.Domain:010008": "Sallittu kehittäjien määrä ei voi olla pienempi kuin nykyinen kehittäjien määrä!",
"Volo.AbpIo.Domain:010009": "Sallittu kehittäjien määrä ei voi olla pienempi kuin 0!",
"Volo.AbpIo.Domain:010010": "Mac-osoitteiden enimmäismäärä on ylitetty!",
"Volo.AbpIo.Domain:010011": "Henkilökohtaisella lisenssillä voi olla enintään yksi kehittäjä!",
"Volo.AbpIo.Domain:010012": "Lisenssiä ei voida pidentää kuukauden kuluttua lisenssin päättymisestä!",
"Volo.AbpIo.Domain:020001": "Tätä NPM-pakettia ei voitu poistaa, koska \"{NugetPackages}\" Nuget-paketit ovat riippuvaisia tästä paketista.",
"Volo.AbpIo.Domain:020002": "Tätä NPM-pakettia ei voitu poistaa, koska moduulit \"{Modules}\" käyttävät tätä pakettia.",
"Volo.AbpIo.Domain:020003": "Tätä NPM-pakettia ei voitu poistaa, koska moduulit \"{Modules}\" käyttävät tätä pakettia ja \"{NugetPackages}\" -nugettipaketit ovat riippuvaisia tästä paketista.",
"Volo.AbpIo.Domain:020004": "Tätä Nuget-pakettia ei voitu poistaa, koska moduulit \"{Modules}\" käyttävät tätä pakettia.",
"WantToLearn?": "Haluan oppia?",
"ReadyToGetStarted?": "Oletko valmis aloittamaan?",
"JoinOurCommunity": "Liity yhteisöömme",
"GetStartedUpper": "ALOITTAA",
"ForkMeOnGitHub": "Haaraa minut GitHubiin",
"Features": "ominaisuudet",
"GetStarted": "Aloittaa",
"Documents": "Asiakirjat",
"Community": "Yhteisö",
"ContributionGuide": "Contribution Guide",
"Blog": "Blogi",
"Commercial": "Kaupallinen",
"MyAccount": "Tilini",
"Permission:License": "Lisenssi",
"Permission:UserInfo": "Käyttäjän tiedot",
"SeeDocuments": "Katso Asiakirjat",
"Samples": "Näytteet",
"Framework": "Kehys",
"Support": "Tuki"
}
}

37
abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fr.json

@ -0,0 +1,37 @@
{
"culture": "fr",
"texts": {
"Volo.AbpIo.Domain:010004": "Nombre maximum de membres atteint!",
"Volo.AbpIo.Domain:010005": "Nombre maximum de propriétaires atteint!",
"Volo.AbpIo.Domain:010006": "Cet utilisateur est déjà propriétaire de cette organisation!",
"Volo.AbpIo.Domain:010007": "Cet utilisateur est déjà développeur dans cette organisation!",
"Volo.AbpIo.Domain:010008": "Le nombre de développeurs autorisé ne peut pas être inférieur au nombre de développeurs actuel!",
"Volo.AbpIo.Domain:010009": "Le nombre de développeurs autorisé ne peut pas être inférieur à 0!",
"Volo.AbpIo.Domain:010010": "Le nombre maximal d'adresses Mac est dépassé!",
"Volo.AbpIo.Domain:010011": "La licence personnelle ne peut pas avoir plus d'un développeur!",
"Volo.AbpIo.Domain:010012": "La licence ne peut pas être prolongée un mois après l'expiration de la licence!",
"Volo.AbpIo.Domain:020001": "Impossible de supprimer ce package NPM car les packages Nuget \"{NugetPackages}\" dépendent de ce package.",
"Volo.AbpIo.Domain:020002": "Impossible de supprimer ce package NPM car les modules \"{Modules}\" utilisent ce package.",
"Volo.AbpIo.Domain:020003": "Impossible de supprimer ce package NPM car les modules \"{Modules}\" utilisent ce package et les packages Nuget \"{NugetPackages}\" dépendent de ce package.",
"Volo.AbpIo.Domain:020004": "Impossible de supprimer ce package Nuget car les modules \"{Modules}\" utilisent ce package.",
"WantToLearn?": "Vous voulez apprendre?",
"ReadyToGetStarted?": "Prêt à commencer?",
"JoinOurCommunity": "Rejoignez notre communauté",
"GetStartedUpper": "COMMENCER",
"ForkMeOnGitHub": "Fork moi sur GitHub",
"Features": "Caractéristiques",
"GetStarted": "Commencer",
"Documents": "Des documents",
"Community": "Communauté",
"ContributionGuide": "Guide de contribution",
"Blog": "Blog",
"Commercial": "Commercial",
"MyAccount": "Mon compte",
"Permission:License": "Licence",
"Permission:UserInfo": "Informations sur l'utilisateur",
"SeeDocuments": "Voir les documents",
"Samples": "Échantillons",
"Framework": "Cadre",
"Support": "Support"
}
}

37
abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hi.json

@ -0,0 +1,37 @@
{
"culture": "hi",
"texts": {
"Volo.AbpIo.Domain:010004": "अधिकतम सदस्य संख्या तक पहुँच गया!",
"Volo.AbpIo.Domain:010005": "अधिकतम मालिक की गिनती तक पहुँच गया!",
"Volo.AbpIo.Domain:010006": "यह उपयोगकर्ता पहले से ही इस संगठन का मालिक है!",
"Volo.AbpIo.Domain:010007": "यह उपयोगकर्ता इस संगठन में पहले से ही एक डेवलपर है!",
"Volo.AbpIo.Domain:010008": "अनुमत डेवलपर गणना कम नहीं हो सकती है तो वर्तमान डेवलपर गणना!",
"Volo.AbpIo.Domain:010009": "अनुमत डेवलपर गणना 0 से कम नहीं हो सकती है!",
"Volo.AbpIo.Domain:010010": "अधिकतम मैक पता गणना पार हो गई है!",
"Volo.AbpIo.Domain:010011": "व्यक्तिगत लाइसेंस में 1 से अधिक डेवलपर नहीं हो सकते हैं!",
"Volo.AbpIo.Domain:010012": "लाइसेंस की अवधि समाप्त होने के एक महीने बाद तक लाइसेंस नहीं बढ़ाया जा सकता है!",
"Volo.AbpIo.Domain:020001": "इस NPM पैकेज को नहीं हटाया जा सका क्योंकि \"{NugetPackages}\" नुगेट पैकेज इस पैकेज पर निर्भर हैं।",
"Volo.AbpIo.Domain:020002": "यह NPM पैकेज नहीं हटा सका क्योंकि \"{मॉड्यूल}\" मॉड्यूल इस पैकेज का उपयोग कर रहे हैं।",
"Volo.AbpIo.Domain:020003": "इस NPM पैकेज को नहीं हटाया जा सका क्योंकि \"{मॉड्यूल}\" मॉड्यूल इस पैकेज का उपयोग कर रहे हैं और \"{NugetPackages}\" नुगेट पैकेज इस पैकेज पर निर्भर हैं।",
"Volo.AbpIo.Domain:020004": "इस Nuget पैकेज को हटाया नहीं जा सका क्योंकि \"{Modules}\" मॉड्यूल इस पैकेज का उपयोग कर रहे हैं।",
"WantToLearn?": "सीखना चाहते है?",
"ReadyToGetStarted?": "आरंभ करने के लिए तैयार हैं?",
"JoinOurCommunity": "हमारी संस्था से जुड़े",
"GetStartedUpper": "शुरू हो जाओ",
"ForkMeOnGitHub": "GitHub पर मेरे कांटा",
"Features": "विशेषताएं",
"GetStarted": "शुरू हो जाओ",
"Documents": "दस्तावेज़",
"Community": "समुदाय",
"ContributionGuide": "योगदान गाइड",
"Blog": "ब्लॉग",
"Commercial": "व्यावसायिक",
"MyAccount": "मेरा खाता",
"Permission:License": "लाइसेंस",
"Permission:UserInfo": "हमें जानकारी",
"SeeDocuments": "दस्तावेज़ देखें",
"Samples": "नमूने",
"Framework": "ढांचा",
"Support": "सहयोग"
}
}

37
abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/it.json

@ -0,0 +1,37 @@
{
"culture": "it",
"texts": {
"Volo.AbpIo.Domain:010004": "Numero massimo di membri raggiunto!",
"Volo.AbpIo.Domain:010005": "Numero massimo di proprietari raggiunto!",
"Volo.AbpIo.Domain:010006": "Questo utente è già proprietario di questa organizzazione!",
"Volo.AbpIo.Domain:010007": "Questo utente è già uno sviluppatore in questa organizzazione!",
"Volo.AbpIo.Domain:010008": "Il numero di sviluppatori consentito non può essere inferiore al numero di sviluppatori corrente!",
"Volo.AbpIo.Domain:010009": "Il numero di sviluppatori consentito non può essere inferiore a 0!",
"Volo.AbpIo.Domain:010010": "Il numero massimo di indirizzi mac è stato superato!",
"Volo.AbpIo.Domain:010011": "La licenza personale non può avere più di 1 sviluppatore!",
"Volo.AbpIo.Domain:010012": "La licenza non può essere estesa un mese dopo la scadenza della licenza!",
"Volo.AbpIo.Domain:020001": "Impossibile eliminare questo pacchetto NPM perché i pacchetti Nuget \"{NugetPackages}\" dipendono da questo pacchetto.",
"Volo.AbpIo.Domain:020002": "Impossibile eliminare questo pacchetto NPM perché i moduli \"{Modules}\" utilizzano questo pacchetto.",
"Volo.AbpIo.Domain:020003": "Impossibile eliminare questo pacchetto NPM perché i moduli \"{Modules}\" utilizzano questo pacchetto e i pacchetti Nuget \"{NugetPackages}\" dipendono da questo pacchetto.",
"Volo.AbpIo.Domain:020004": "Impossibile eliminare questo pacchetto Nuget perché i moduli \"{Modules}\" utilizzano questo pacchetto.",
"WantToLearn?": "Vuoi imparare?",
"ReadyToGetStarted?": "Pronto per iniziare?",
"JoinOurCommunity": "Unisciti alla nostra community",
"GetStartedUpper": "INIZIARE",
"ForkMeOnGitHub": "Fork me su GitHub",
"Features": "Caratteristiche",
"GetStarted": "Iniziare",
"Documents": "Documenti",
"Community": "Comunità",
"ContributionGuide": "Guida al contributo",
"Blog": "Blog",
"Commercial": "Commerciale",
"MyAccount": "Il mio conto",
"Permission:License": "Licenza",
"Permission:UserInfo": "Informazioni utente",
"SeeDocuments": "Vedi Documenti",
"Samples": "Campioni",
"Framework": "Struttura",
"Support": "Supporto"
}
}

4
abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/tr.json

@ -26,6 +26,8 @@
"ContributionGuide": "Katkı Rehberi",
"Blog": "Blog",
"Commercial": "Ticari",
"SeeDocuments": "Dokümanlara Göz Atın"
"SeeDocuments": "Dokümanlara Göz Atın",
"FreeDDDBook": "Ücretsiz DDD Kitabı",
"New": "Yeni"
}
}

68
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json

@ -34,6 +34,72 @@
"JoinOurMarketingNewsletter": "Join our marketing newsletter",
"WouldLikeToReceiveMarketingMaterials": "I would like to receive marketing materials e.g. product deals & special offers.",
"StartUsingYourLicenseNow": "Start using your license now!",
"WelcomePage": "Welcome Page"
"WelcomePage": "Welcome Page",
"CompanyName": "Company name",
"YourCompanyName": "Your company name",
"FirstName": "First name",
"LastName": "Last name",
"Optional": "Optional",
"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 license for companies that has over {0} developers.",
"DiscountRequestOrganizationName": "Company/organization/school name",
"Website": "Website",
"GithubUsername": "GitHub username",
"PhoneNumber": "Phone number",
"Country": "Country",
"DescribeABPCommercialUsage": "Describe the project you are planning to develop based on APB Commercial",
"DiscountRequestCertifyInformationMessage": "I certify 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",
"PracticalGuideForImplementingDDD": "This book is a practical guide for implementing the Domain Driven Design with the ABP Framework.",
"IntroducingDDD": "Introducing Domain Driven Design",
"DDDLayersAndCleanArchitecture": "DDD Layers & Clean Architecture",
"LayeringOfADotnetSolution": "Layering of a .NET Solution",
"ImplementingDDDBuildingBlocks": "Implementing DDD Building Blocks",
"DomainVsApplicationLogic": "Domain Logic vs Application Logic",
"SamplesAndDiscussions": "Samples & Discussions",
"Free": "Free",
"Download": "Download",
"DDDEBook": "DDD E-book",
"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 rely on the ABP Framework infrastructure, core concepts, principles, and patterns are applicable in any kind of solution, even if it is not a .NET solution.",
"TableOfContents": "Table of Contents",
"IntroductionToImplementingDDD": "Introduction to Implementing Domain Driven Design",
"WhatIsDDD": "What is Domain Driven Design?",
"Implementation": "Implementation",
"TheBigPicture": "The Big Picture",
"TheBuildingBlock": "The Building Block",
"ExampleUseCase": "Example Use Case",
"DomainAndApplicationLogic": "Domain Logic & Application Logic",
"Author": "Author",
"PublishedOn": "Published on",
"Page": "Page",
"FreeEBook": "Free E-Book",
"EBookSignInForDownload": "To download the e-book sign in",
"SignIn": "Sign In",
"Or": "Or",
"TellUsAboutYourself": "Tell us little bit about yourself",
"Surname": "Surname",
"DoYouAgreePrivacyPolicy": "I agree to the Terms & Conditions and <a href=\"https://commercial.abp.io/Privacy\">Privacy Policy</a>.",
"VolosoftMarketingInformationMessage": "I would like information, tips, and offers about Solutions for Businesses and Organizations and other Volosoft products and services.",
"VolosoftSharingInformationMessage": "I would like Volosoft to share my information with select partners so I can receive relevant information about their products and services.",
"WeWillSendYouADownloadLink": "We've sent the file to {0}.",
"InvalidFormInputs": "Please, type the valid information specified on the form.",
"DDDBookEmailBody": "Thank you. <br /> To download your book, <a href=\"{0}\">click here</a>."
}
}

68
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json

@ -291,6 +291,72 @@
"PayViaAmexCard": "How can I pay via my AMEX card?",
"PayViaAmexCardDescription": "The default payment gateway 'Iyzico' may decline some AMEX credit cards due to the security measures. In this case, you can pay through the alternative payment gateway '2Checkout'.",
"ThankYou": "Thank you",
"InvalidReCaptchaErrorMessage": "There was an error verifying reCAPTCHA. Please try again."
"InvalidReCaptchaErrorMessage": "There was an error verifying reCAPTCHA. Please try again.",
"CompanyName": "Company name",
"YourCompanyName": "Your company name",
"FirstName": "First name",
"LastName": "Last name",
"Optional": "Optional",
"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 license for companies that has over {0} developers.",
"DiscountRequestOrganizationName": "Company/organization/school name",
"Website": "Website",
"GithubUsername": "GitHub username",
"PhoneNumber": "Phone number",
"Country": "Country",
"DescribeABPCommercialUsage": "Describe the project you are planning to develop based on APB Commercial",
"DiscountRequestCertifyInformationMessage": "I certify 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",
"PracticalGuideForImplementingDDD": "This book is a practical guide for implementing the Domain Driven Design with the ABP Framework.",
"IntroducingDDD": "Introducing Domain Driven Design",
"DDDLayersAndCleanArchitecture": "DDD Layers & Clean Architecture",
"LayeringOfADotnetSolution": "Layering of a .NET Solution",
"ImplementingDDDBuildingBlocks": "Implementing DDD Building Blocks",
"DomainVsApplicationLogic": "Domain Logic vs Application Logic",
"SamplesAndDiscussions": "Samples & Discussions",
"Free": "Free",
"Download": "Download",
"DDDEBook": "DDD E-book",
"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 rely on the ABP Framework infrastructure, core concepts, principles, and patterns are applicable in any kind of solution, even if it is not a .NET solution.",
"TableOfContents": "Table of Contents",
"IntroductionToImplementingDDD": "Introduction to Implementing Domain Driven Design",
"WhatIsDDD": "What is Domain Driven Design?",
"Implementation": "Implementation",
"TheBigPicture": "The Big Picture",
"TheBuildingBlock": "The Building Block",
"ExampleUseCase": "Example Use Case",
"DomainAndApplicationLogic": "Domain Logic & Application Logic",
"Author": "Author",
"PublishedOn": "Published on",
"Page": "Page",
"FreeEBook": "Free E-Book",
"EBookSignInForDownload": "To download the e-book sign in",
"SignIn": "Sign In",
"Or": "Or",
"TellUsAboutYourself": "Tell us little bit about yourself",
"Surname": "Surname",
"DoYouAgreePrivacyPolicy": "I agree to the <a href=\"/TermsConditions\">Terms & Conditions<a/> and <a href=\"/Privacy\">Privacy Policy</a>.",
"VolosoftMarketingInformationMessage": "I would like information, tips, and offers about Solutions for Businesses and Organizations and other Volosoft products and services.",
"VolosoftSharingInformationMessage": "I would like Volosoft to share my information with select partners so I can receive relevant information about their products and services.",
"WeWillSendYouADownloadLink": "A link to download the e-book has been sent to {0}.<br/> Check your inbox / junk / spam boxes!",
"InvalidFormInputs": "Please, type the valid information specified on the form.",
"DDDBookEmailBody": "Thank you. <br /> To download your book, <a href=\"{0}\">click here</a>."
}
}

296
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json

@ -0,0 +1,296 @@
{
"culture": "fi",
"texts": {
"OrganizationManagement": "Organisaation hallinta",
"OrganizationList": "Organisaatioluettelo",
"Volo.AbpIo.Commercial:010003": "Et ole tämän organisaation omistaja!",
"OrganizationNotFoundMessage": "Organisaatiota ei löytynyt!",
"DeveloperCount": "Kohdistetut / yhteensä kehittäjät",
"QuestionCount": "Jäljellä olevat / yhteensä kysymykset",
"Unlimited": "Rajoittamaton",
"Owners": "Omistajat",
"AddMember": "Lisää jäsen",
"AddOwner": "Lisää omistaja",
"AddDeveloper": "Lisää kehittäjä",
"UserName": "Käyttäjätunnus",
"Name": "Nimi",
"EmailAddress": "Sähköpostiosoite",
"Developers": "Kehittäjät",
"LicenseType": "Lisenssi-tyyppi",
"Manage": "Hallitse",
"StartDate": "Aloituspäivämäärä",
"EndDate": "Päättymispäivä",
"Modules": "Moduulit",
"LicenseExtendMessage": "Käyttöoikeutesi päättymispäivä on pidennetty {0}",
"LicenseUpgradeMessage": "Lisenssisi on päivitetty versioon {0}",
"LicenseAddDeveloperMessage": "{0} kehittäjää lisäsi lisenssiisi",
"Volo.AbpIo.Commercial:010004": "Määritettyä käyttäjää ei löydy! Käyttäjän on oltava jo rekisteröitynyt.",
"MyOrganizations": "Omat organisaatiot",
"ApiKey": "API-avain",
"UserNameNotFound": "Käyttäjää, jolla on käyttäjänimi {0}, ei ole",
"SuccessfullyAddedToNewsletter": "Kiitos, että tilasit uutiskirjeemme!",
"MyProfile": "Profiilini",
"EmailNotValid": "Ole hyvä ja syötä toimiva sähköpostiosoite.",
"JoinOurMarketingNewsletter": "Liity markkinointikirjeeseemme",
"WouldLikeToReceiveMarketingMaterials": "Haluaisin saada markkinointimateriaalia, kuten tuotetarjouksia ja erikoistarjouksia.",
"StartUsingYourLicenseNow": "Aloita lisenssin käyttö nyt!",
"WelcomePage": "Tervetuloa sivu",
"UnsubscriptionExpireEmail": "Peruuta lisenssin vanhentumispäivämäärän muistutussähköpostit",
"UnsubscribeLicenseExpireEmailReminderMessage": "Tämä sähköpostitilaus sisältää vain muistutuksen lisenssin vanhentumispäivästä.",
"UnsubscribeFromLicenseExpireEmails": "Jos et halua vastaanottaa lisenssin voimassaolon päättymispäivää koskevia sähköposteja, voit peruuttaa tilauksen milloin tahansa.",
"Unsubscribe": "Lopeta tilaus",
"NotOrganizationMember": "Et ole minkään organisaation jäsen.",
"UnsubscribeLicenseExpirationEmailSuccessTitle": "Tilauksen peruutus onnistui",
"UnsubscribeLicenseExpirationEmailSuccessMessage": "Et enää saa muistutuksia lisenssin vanhentumispäivästä.",
"IndexPageHeroSection": "<span class = \"first-line\"> Täydellinen </span> <span class = \"second-line\"> verkkokehitysympäristö </span> <span class = \"third-line\"> sisäänrakennettu <img src = \"{0}\" width = \"110\" class = \"ml-1\" /> kehys </span>",
"AbpCommercialShortDescription": "ABP Commercial tarjoaa valmiita sovellusmoduuleja, nopean sovelluskehitystyökalun, ammattimaiset käyttöliittymäteemat, ensiluokkaisen tuen ja paljon muuta.",
"LiveDemo": "Live-esittely",
"GetLicence": "Hanki lisenssi",
"Application": "Sovellus",
"StartupTemplates": "Käynnistysmallit",
"Startup": "Aloittaa",
"Templates": "Mallit",
"Developer": "Kehittäjä",
"Tools": "Työkalut",
"Premium": "Premium",
"PremiumSupport": "Ensiluokkainen tuki",
"PremiumForumSupport": "Premium-foorumin tuki",
"UI": "UI",
"Themes": "Teemat",
"JoinOurNewsletter": "Liity uutiskirjeemme",
"Send": "Lähettää",
"Learn": "Oppia",
"AdditionalServices": "Lisäpalvelut",
"WhatIsABPFramework": "MIKÄ ON ABP-KEHYS?",
"OpenSourceBaseFramework": "Avoimen lähdekoodin peruskehys",
"ABPFrameworkExplanation": "<p class = \"lead\"> ABP Commercial perustuu ABP Frameworkiin, avoimen lähdekoodin ja yhteisövetoiseen verkkosovelluskehykseen ASP.NET Core -sovellukselle. </p> <p> ABP Framework tarjoaa erinomaisen infrastruktuurin ylläpitettävien, laajennettavien tiedostojen kirjoittamiseen. ja testattava koodi parhailla käytänteillä. </p> <p> Rakennettu ja integroitu jo tunnettujen suosittujen työkalujen kanssa. Matala oppimiskäyrä, helppo sopeutuminen, mukava kehitys. </p>",
"Modular": "Modulaarinen",
"MicroserviceCompatible": "Mikropalvelu yhteensopiva",
"DomainDrivenDesignInfrastructure": "Toimialueohjattu suunnittelun infrastruktuuri",
"MultiTenancy": "Monivuokraus",
"DistributedMessaging": "Hajautetut viestit",
"DynamicProxying": "Dynaaminen välityspalvelin",
"BackgroundJobs": "Taustatyöt",
"AuditLogging": "Tarkastusten kirjaaminen",
"BLOBStoring": "BLOB-tallennus",
"BundlingMinification": "Niputtaminen ja minimointi",
"AdvancedLocalization": "Edistynyt lokalisointi",
"ManyMore": "Monta lisää",
"ExploreTheABPFramework": "Tutustu ABP-kehykseen",
"WhyUseTheABPCommercial": "Miksi käyttää ABP-mainosta?",
"WhyUseTheABPCommercialExplanation": "<p class = \"lead mt- 5\"> Yritysluokan verkkosovellusten rakentaminen voi olla monimutkaista ja aikaa vievää. </p> <p> ABP Commercial tarjoaa täydellisen perusinfrastruktuurin, joka tarvitaan kaikille nykyaikaisille yritystason ASP.NET-ytimille perustuvat ratkaisut. ABP: n sisäänrakennetut ominaisuudet ja moduulit tukevat koko suunnittelusykliä suunnittelusta käyttöönottoon asti. </p>",
"StartupTemplatesShortDescription": "Käynnistysmallien avulla voit aloittaa projektisi muutamassa sekunnissa.",
"UIFrameworksOptions": "Käyttöliittymäkehysvaihtoehdot;",
"DatabaseProviderOptions": "Tietokannan tarjoajan vaihtoehdot;",
"PreBuiltApplicationModules": "Valmiit sovellusmoduulit",
"PreBuiltApplicationModulesShortDescription": "Yleisimmät sovellusvaatimukset on jo kehitetty sinulle uudelleenkäytettävinä moduuleina.",
"Account": "Tili",
"Blogging": "Bloggaaminen",
"Identity": "Identiteetti",
"IdentityServer": "Identity Server",
"Saas": "Saas",
"LanguageManagement": "Kielen hallinta",
"TextTemplateManagement": "Tekstimallien hallinta",
"See All Modules": "Katso kaikki moduulit",
"ABPSuite": "ABP Suite",
"AbpSuiteShortDescription": "ABP Suite on ABP-mainosmateriaalia täydentävä työkalu.",
"AbpSuiteExplanation": "Sen avulla voit rakentaa verkkosivuja muutamassa minuutissa. Se on .NET Core Global -työkalu, joka voidaan asentaa komentoriviltä. Se voi luoda uuden ABP-ratkaisun, luoda CRUD-sivuja tietokannasta käyttöliittymään.",
"Details": "Yksityiskohdat",
"LeptonTheme": "Lepton-teema",
"ProfessionalModernUIThemes": "Ammattimaiset, modernit käyttöliittymäteemat",
"LeptonThemeExplanation": "Lepton tarjoaa valikoiman Bootstrap-järjestelmänvalvojan teemoja, jotka ovat vankka perusta mille tahansa projektille, joka vaatii järjestelmänvalvojan hallintapaneelin.",
"DefaultTheme": "Oletusteema",
"MaterialTheme": "Materiaaliteema",
"Default2Theme": "Oletus 2 teema",
"DarkTheme": "Tumma teema",
"DarkBlueTheme": "Tummansininen teema",
"LightTheme": "Kevyt teema",
"ProudToWorkWith": "Ylpeä työskennellä",
"OurConsumers": "Sadat yritykset ja kehittäjät yli 50 maassa ympäri maailmaa luottavat ABP Commercialiin.",
"JoinOurConsumers": "Liity heihin ja rakenna upeita tuotteita nopeasti.",
"AdditionalServicesExplanation": "Tarvitsetko lisä- tai mukautettuja palveluita? <strong> Me ja kumppanimme voimme tarjota; </strong>",
"CustomProjectDevelopment": "Mukautettu projektikehitys",
"CustomProjectDevelopmentExplanation": "Omistetut kehittäjät mukautetuille projekteillesi.",
"PortingExistingProjects": "Olemassa olevien projektien siirtäminen",
"PortingExistingProjectsExplanation": "Vanhojen projektien siirtäminen ABP-alustalle.",
"LiveSupport": "Live-tuki",
"LiveSupportExplanation": "Live-etätukivaihtoehto, kun tarvitset sitä.",
"Training": "Koulutus",
"TrainingExplanation": "Oma koulutus kehittäjille.",
"OnBoarding": "Perehdytys",
"OnBoardingExplanation": "Auta määrittämään kehitys-, CI- ja CD-ympäristösi.",
"PrioritizedTechnicalSupport": "Ensisijainen tekninen tuki",
"PremiumSupportExplanation": "ABP-kehyksen suuren yhteisötuen lisäksi tukitiimimme vastaa ensisijaisesti kaupallisten käyttäjien teknisiin kysymyksiin ja ongelmiin.",
"SeeTheSupportOptions": "Katso tukivaihtoehdot",
"Contact": "Ottaa yhteyttä",
"TellUsWhatYouNeed": "Kerro meille mitä tarvitset.",
"YourMessage": "Viestisi",
"YourFullName": "Koko nimesi",
"EmailField": "Sähköpostiosoite",
"YourEmailAddress": "Sähköpostiosoitteesi",
"HowMayWeHelpYou": "Kuinka voimme auttaa sinua?",
"SendMessage": "Lähetä viesti",
"Success": "Menestys",
"WeWillReplyYou": "Saimme viestisi ja otamme sinuun pian yhteyttä.",
"GoHome": "Mene kotiin",
"CreateLiveDemo": "Luo live-esittely",
"RegisterToTheNewsletter": "Rekisteröidy uutiskirjeeseen saadaksesi tietoa ABP.IO: sta, mukaan lukien uudet julkaisut jne.",
"EnterYourEmailOrLogin": "Kirjoita sähköpostiosoitteesi luodaksesi esittely tai <a href=\"{0}\"> kirjaudu sisään </a> nykyisellä tililläsi.",
"ApplicationTemplate": "Sovelluksen malli",
"ApplicationTemplateExplanation": "Sovelluksen käynnistysmallia käytetään uuden verkkosovelluksen luomiseen.",
"EfCoreProvider": "Entity Framework (tukee SQL Serveriä, MySQL: ää, PostgreSQL: ää, Oracle <a href=\"https://docs.microsoft.com/en-us/ef/core/providers/\"> ja muita </a>)",
"AlreadyIncludedInTemplateModules": "Seuraavat moduulit ovat jo mukana ja määritetty tähän malliin:",
"ApplicationTemplateArchitecture": "Tämä sovellusmalli tukee myös porrastettua arkkitehtuuria, jossa käyttöliittymäkerros, API-kerros ja todennuspalvelu on fyysisesti erotettu.",
"SeeTheGuideOrGoToTheLiveDemo": "Katso teknistä tietoa tästä mallista kehittäjän oppaasta tai siirry live-esittelyyn.",
"DeveloperGuide": "Kehittäjän opas",
"ModuleTemplate": "Moduulimalli",
"ModuleTemplateExplanation1": "Haluatko luoda moduulin ja käyttää sitä uudelleen eri sovelluksissa? Tämä käynnistysmalli valmistaa kaiken aloittamaan uudelleenkäytettävän <strong> sovellusmoduulin </strong> tai <strong> mikropalvelun </strong> luomisen.",
"ModuleTemplateExplanation2": "<p> Voit tukea yhtä tai useampaa käyttöliittymäkehystä, yhtä tai useampaa tietokantapalvelua yhdelle moduulille. Käynnistysmalli on määritetty suorittamaan ja <strong> testaamaan moduulia </strong> pienimmässä sovelluksessa yksikön ja integraatiotestiinfrastruktuurin lisäksi. </p> <p> Katso teknistä tietoa mallista kehittäjän oppaasta. </p>",
"WithAllStyleOptions": "kaikilla tyylivaihtoehdoilla",
"Demo": "Demo",
"SeeAllModules": "Katso kaikki moduulit",
"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": "<Span class = \"zero-text\"> Apua </span> olemme täällä",
"BrowseOrAskQuestion": "Voit selata ohjeaiheitamme tai etsiä usein kysyttyjä kysymyksiä tai voit esittää meille kysymyksiä <a href=\"{0}\" class=\"text-success\"> yhteydenottolomakkeella </a>.",
"SearchQuestionPlaceholder": "Hae usein kysyttyjä kysymyksiä",
"WhatIsTheABPCommercial": "Mikä on ABP-kauppa?",
"WhatAreDifferencesThanAbpFramework": "Mitä eroja on avoimen lähdekoodin ABP Frameworkilla ja ABP Commercialilla?",
"ABPCommercialExplanation": "ABP Commercial on joukko ensiluokkaisia moduuleja, työkaluja, teemoja ja palveluja, jotka on rakennettu avoimen lähdekoodin <a target=\"_blank\" href=\"{0}\"> ABP-kehyksen </a> päälle. ABP Commercial kehittää ja tukee samaa tiimiä ABP-kehyksen takana.",
"WhatAreDifferencesThanABPFrameworkExplanation": "<p> <a target=\"_blank\" href=\"{0}\"> ABP-kehys </a> on modulaarinen, teemoitettava, mikropalvelujen kanssa yhteensopiva sovelluskehys ASP.NET Core -sovellukselle. Se tarjoaa täydellisen arkkitehtuurin ja vahvan infrastruktuurin, joka saa sinut keskittymään omaan yrityskoodiin sen sijaan, että toistat itsesi jokaisessa uudessa projektissa. Se perustuu ohjelmistokehityksen parhaisiin käytäntöihin ja jo tiedettyihin suosittuihin työkaluihin. </p> <p> ABP-kehykset ovat täysin ilmaisia, avoimen lähdekoodin ja yhteisölähtöisiä. Se tarjoaa myös ilmaisen teeman ja joitain valmiita moduuleja (esim. Henkilöllisyyden hallinta ja vuokralaisten hallinta). </p>",
"VisitTheFrameworkVSCommercialDocument": "Vieraile seuraavalla linkillä saadaksesi lisätietoja <a href=\"{0}\" target=\"_blank\"> {1} </a>",
"ABPCommercialFollowingBenefits": "ABP Commercial lisää seuraavat edut ABP-kehyksen päälle;",
"Professional": "Ammattilainen",
"UIThemes": "Käyttöliittymän teemat",
"EnterpriseModules": "Yrityskäyttöiset, monipuoliset, valmiit <a href=\"{0}\"> sovellusmoduulit </a> (esim. Identity Server -hallinta, SaaS-hallinta, kielen hallinta)",
"ToolingToSupport": "Työkalut, jotka tukevat kehitystesi tuottavuutta (esim. <a href=\"{0}\"> ABP Suite </a>)",
"PremiumSupportLink": "Ensiluokkainen <a href=\"{0}\" target=\"_blank\"> tuki </a>",
"WhatDoIDownloadABPCommercial": "Mitä lataan ostaessani ABP Commercial -palvelua?",
"CreateUnlimitedSolutions": "Kun olet ostanut ABP Commercial -lisenssin, voit luoda rajoittamattomia ratkaisuja, kuten <a href=\"{0}\"> Aloittaminen </a> -asiakirjassa kuvataan.",
"ABPCommercialSolutionExplanation": "Kun luot uuden sovelluksen, saat Visual Studio -ratkaisun (käynnistysmalli) mieltymystesi perusteella. Ladatussa ratkaisussa on kaupallisia moduuleja ja teemoja, jotka on jo asennettu ja määritetty sinulle. Voit poistaa esiasennetun moduulin tai lisätä toisen moduulin, jos haluat. Kaikissa moduuleissa ja teemoissa käytetään oletuksena NuGet / NPM-paketteja.",
"StartDevelopWithTutorials": "Ladattu ratkaisu on hyvin suunniteltu ja dokumentoitu. Voit aloittaa oman yrityskoodisi kehittämisen sen perusteella <a href=\"{0}\"> opetusohjelmien </a> mukaisesti",
"TryTheCommercialDemo": "Voit kokeilla <a href=\"{0}\"> esittelyä </a> nähdäksesi esimerkkisovelluksen, joka on luotu ABP Commercial -käynnistysmallin avulla.",
"HowManyProducts": "Kuinka monta erilaista tuotetta / ratkaisua voin rakentaa ABP Commercial -sovelluksella?",
"HowManyProductsExplanation": "ABP-projektin luomiselle ei ole rajoituksia. Voit luoda niin monta projektia kuin haluat, kehittää ja ladata ne eri palvelimille.",
"HowManyDevelopers": "Kuinka monta kehittäjää voi työskennellä ABP-kaupassa?",
"HowManyDevelopersExplanation": "ABP Commercial -lisenssit ovat kehittäjää kohti. Eri lisenssityypeillä on erilaiset kehittäjien rajoitukset. Voit kuitenkin lisätä lisää kehittäjiä mihin tahansa lisenssityyppiin milloin tahansa. Katso <a href=\"{0}\"> hinnat </a> -sivulta lisenssityypit, kehittäjien rajoitukset ja kehittäjien lisäkustannukset.",
"ChangingLicenseType": "Voinko muuttaa lisenssityyppiäni tulevaisuudessa?",
"ChangingLicenseTypeExplanation": "Voit aina lisätä uusia kehittäjiä samaan lisenssityyppiin. Katso myös \"Kuinka monta kehittäjää voi työskennellä ABP Commercialilla?\". Voit myös päivittää korkeampaan lisenssiin maksamalla lasketun hintaeron. Kun päivität korkeampaan lisenssisuunnitelmaan, saat uuden suunnitelman edut, mutta lisenssin päivitys ei muuta lisenssin voimassaolon päättymispäivää.",
"LicenseExtendUpgradeDiff": "Mitä eroa on lisenssin laajennuksella ja päivityksellä?",
"LicenseExtendUpgradeDiffExplanation": "<strong> Laajentaminen: </strong> Laajentamalla / uusimalla käyttöoikeutta saat jatkossakin ensiluokkaista tukea ja saat tärkeitä päivityksiä moduuleille ja teemoille. Lisäksi voit jatkaa uusien projektien luomista. Ja voit silti käyttää ABP Suitea, joka vauhdittaa kehitystäsi. <Hr /> <strong> Päivittäminen: </strong> Päivittämällä lisenssisi edistyt korkeampaan lisenssisuunnitelmaan, jonka avulla voit saada lisäetuja . Katso lisenssisuunnitelmien väliset erot <a href=\"/pricing\"> lisenssien vertailutaulukosta </a>. <strong> Toisaalta, kun päivität, lisenssin vanhentumispäivä ei muutu! </ Strong > Lisenssin päättymispäivän jatkamiseksi sinun on jatkettava käyttöoikeutta.",
"LicenseRenewalCost": "Mitkä ovat lisenssin uusimiskustannukset vuoden kuluttua?",
"LicenseRenewalCostExplanation": "Kaikkien ABP Commercial perpetual -lisenssien uusimis- (laajennus) hinta on {0} lisenssiluettelohinnasta. Tavallisen tiimilisenssin uusimishinta on $ {1}, tavallinen yrityslisenssi on $ {2} ja tavallinen yrityslisenssi on $ {3}. Jos olet jo asiakas, <a href='{4}' target='_blank'> kirjaudu tilillesi </a> ja tarkista käytettävissä oleva uusimishinta.",
"HowDoIRenewMyLicense": "Kuinka uusin lisenssin?",
"HowDoIRenewMyLicenseExplanation": "Voit uusia käyttöoikeutesi siirtymällä <a href='{0}' target='_blank'> organisaation hallintasivulle </a>. Jotta voisit hyödyntää alennettujen varhaisen uusimisen hintojamme, muista uusia ennen lisenssin voimassaolon päättymistä. Älä huoli siitä, ettet tiedä, milloin Varhaisen uudistamisen mahdollisuus sulkeutuu. Saat kaksi muistutussähköpostia ennen tilauksesi päättymistä. Lähetämme ne 30 päivää, 7 päivää ennen vanhenemista.",
"IsSourceCodeIncluded": "Sisältääkö lisenssini kaupallisten moduulien ja teemojen lähdekoodin?",
"IsSourceCodeIncludedExplanation1": "Riippuu ostamastasi lisenssityypistä:",
"IsSourceCodeIncludedExplanation2": "<strong> Tiimi </strong>: Ratkaisusi käyttää moduuleja ja teemoja NuGet- ja NPM-paketteina. Se ei sisällä heidän lähdekoodiaan. Tällä tavoin voit helposti päivittää nämä moduulit ja teemat aina, kun uusi versio on saatavana. Et kuitenkaan voi saada moduulien ja teemojen lähdekoodia.",
"IsSourceCodeIncludedExplanation3": "<strong> Yritys / yritys </strong>: Tiimilisenssin lisäksi voit ladata minkä tahansa tarvitsemasi moduulin tai teeman lähdekoodin. Voit jopa poistaa tietyn moduulin NuGet / NPM-pakettiviitteet ja lisätä sen lähdekoodin suoraan ratkaisuusi sen muuttamiseksi kokonaan.",
"IsSourceCodeIncludedExplanation4": "<p> Moduulin lähdekoodin sisällyttäminen ratkaisuun antaa sinulle maksimaalisen vapauden mukauttaa moduulia. Tällöin moduulia ei voida päivittää automaattisesti, kun uusi versio julkaistaan. </p> <p> Mikään lisensseistä ei sisällä ABP Suiten lähdekoodia, joka on ulkoinen työkalu, joka tuottaa koodia sinulle ja auttaa kehitykseen. </p> <p> Katso muita lisenssityyppien eroja <a href=\"{0}\"> hinnoittelusivulta </a>. </p>",
"ChangingDevelopers": "Voinko muuttaa organisaationi rekisteröityneitä kehittäjiä tulevaisuudessa?",
"ChangingDevelopersExplanation": "Uusien kehittäjien lisäämisen lisenssiin lisäksi voit myös muuttaa olemassa olevia kehittäjiä (voit poistaa kehittäjän ja lisätä uuden samalle paikalle) ilman lisäkustannuksia.",
"WhatHappensWhenLicenseEnds": "Mitä tapahtuu, kun lisenssikauteni päättyy?",
"WhatHappensWhenLicenseEndsExplanation1": "ABP Commercial -lisenssityyppi on <a href=\"{0}\" target=\"_blank\"> jatkuva lisenssi </a>. Kun lisenssi vanhenee, voit jatkaa projektisi kehittämistä. Ja sinun ei tarvitse uudistaa lisenssiäsi. Lisenssisi mukana toimitetaan yhden vuoden päivitys- ja tukisuunnitelma. Jos haluat edelleen saada uusia ominaisuuksia, suorituskyvyn parannuksia, virhekorjauksia, tukea ja jatkaa ABP Suite -sovelluksen käyttöä, muista uusia suunnitelma joka vuosi. Kun lisenssi vanhenee, et voi saada enemmän seuraavista eduista;",
"WhatHappensWhenLicenseEndsExplanation2": "Et voi luoda uusia ratkaisuja ABP Commercial -sovelluksella, mutta voit jatkaa olemassa olevien sovellusten kehittämistä ikuisesti.",
"WhatHappensWhenLicenseEndsExplanation3": "Voit saada päivityksiä moduuleista ja teemoista MAJOR-versiostasi. Esimerkiksi; jos käytät moduulin v3.2.0-versiota, voit silti saada päivityksiä kyseisen moduulin versiolle v3.x.x (v3.3.0, v3.5.2 ... jne.). Mutta et voi saada päivityksiä seuraavaan pääversioon (kuten v4.x, v5.x)",
"WhatHappensWhenLicenseEndsExplanation4": "Et voi asentaa uusia moduuleja ja teemoja, jotka on lisätty ABP Commercial -alustalle käyttöoikeuden päättymisen jälkeen.",
"WhatHappensWhenLicenseEndsExplanation5": "Et voi käyttää ABP Suitea.",
"WhatHappensWhenLicenseEndsExplanation6": "Et voi enää saada <a href=\"{0}\"> premium-tukea </a>.",
"WhatHappensWhenLicenseEndsExplanation7": "Voit uusia tilauksesi, jos haluat jatkaa näiden etujen saamista. Tilauksen uusimisessa on 20% alennus.",
"WhenShouldIRenewMyLicense": "Milloin minun pitäisi uusia lisenssini?",
"WhenShouldIRenewMyLicenseExplanation1": "Jos uusit lisenssin <strong> kuukauden kuluessa </strong> lisenssin voimassaolon päättymisestä, lisenssin kokonaishintaan sovelletaan 20% alennusta.",
"WhenShouldIRenewMyLicenseExplanation2": "Jos uusit lisenssin kuukauden kuluttua lisenssin voimassaolon päättymispäivästä, uusimishinta on sama kuin lisenssin ostohinta eikä uusimiselle ole alennusta.",
"TrialPlan": "Onko sinulla kokeilusuunnitelma?",
"TrialPlanExplanation": "Toistaiseksi ABP Commercialilla ei ole kokeilusuunnitelmaa. Joukkueen lisensseille tarjoamme 30 päivän rahanpalautustakuun. Voit vain pyytää hyvitystä 30 ensimmäisen päivän aikana. Yritys- ja yrityslisensseille hyvitämme 60% 30 päivässä. Tämä johtuu siitä, että yritys- ja yrityslisenssit sisältävät kaikkien moduulien ja teemojen täydellisen lähdekoodin.",
"DoYouAcceptBankWireTransfer": "Hyväksytkö pankkisiirron?",
"DoYouAcceptBankWireTransferExplanation": "Kyllä, hyväksymme pankkisiirron. <br /> Kun olet lähettänyt lisenssimäärän pankkisiirrolla, lähetä meille kuitti ja pyydetty lisenssityyppi sähköpostitse. <br /> Kansainväliset pankkitilitiedot:",
"HowToUpgrade": "Kuinka päivittää olemassa olevia sovelluksia, kun uusi versio on saatavilla?",
"HowToUpgradeExplanation1": "Kun luot uuden sovelluksen ABP Commercial -sovelluksella, kaikkia moduuleja ja teemaa käytetään NuGet- ja NPM-paketteina. Joten voit päivittää paketit helposti, kun uusi versio on saatavilla.",
"HowToUpgradeExplanation2": "Normaalien NuGet / NPM-päivitysten lisäksi <a href=\"{0}\"> ABP CLI </a> tarjoaa päivityskomennon, joka etsii ja päivittää kaikki ratkaisusi ABP-paketit.",
"DatabaseSupport": "Mitä tietokantajärjestelmiä tuetaan?",
"DatabaseSupportExplanation": "ABP Framework itsessään on tietokanta-agnostinen ja voi luonteeltaan työskennellä minkä tahansa tietokantapalvelujen kanssa. Katso <a href=\"{0}\" target=\"_blank\"> tietojen käyttöasiakirjasta </a> luettelo tällä hetkellä toteutetuista palveluntarjoajista.",
"UISupport": "Mitä käyttöliittymäkehyksiä tuetaan?",
"Supported": "Tuettu",
"UISupportExplanation": "ABP Framework itsessään on käyttöliittymäkehyksen agnostikko ja voi toimia minkä tahansa käyttöliittymäkehyksen kanssa. Käynnistysmalleja, moduulin käyttöliittymiä ja teemoja ei kuitenkaan otettu käyttöön kaikissa käyttöliittymäkehyksissä. Katso käyttöliittymävaihtoehtojen ajantasainen luettelo <a href=\"{0}\"> aloitusasiakirjasta </a>.",
"MicroserviceSupport": "Tukeeko se mikropalveluarkkitehtuuria?",
"MicroserviceSupportExplanation1": "Yksi sivutuotekehyksen tärkeimmistä tavoitteista on tarjota kätevä infrastruktuuri mikropalveluratkaisujen luomiseksi. Katso <a href=\"{0}\"> mikropalveluarkkitehtuuri </a> -asiakirjasta, miten se auttaa luomaan mikropalvelujärjestelmiä.",
"MicroserviceSupportExplanation2": "Kaikki ABP Commercial -moduulit on suunniteltu tukemaan mikropalvelujen käyttöönottotilanteita (omalla sovellusliittymällä ja tietokannalla) noudattamalla <a href=\"{0}\"> moduulien kehittämisen parhaita käytäntöjä </a> -asiakirjaa.",
"MicroserviceSupportExplanation3": "Tarjoamme esimerkin <a href=\"{0}\"> mikropalveluiden esittelyratkaisusta </a>, joka osoittaa mikropalveluarkkitehtuurin toteutuksen auttaakseen sinua luomaan oman ratkaisun.",
"MicroserviceSupportExplanation4": "Lyhyt vastaus on \"<strong> kyllä, se tukee mikropalveluarkkitehtuuria </strong>\".",
"MicroserviceSupportExplanation5": "Mikropalvelujärjestelmä on kuitenkin ratkaisu, ja jokaisella ratkaisulla on erilaiset vaatimukset, verkon topologia, viestintätavat, todennusmahdollisuudet, tietokannan erottamis- / jakamispäätökset, ajonaikaiset kokoonpanot, kolmannen osapuolen järjestelmäintegraatiot ja paljon muuta.",
"MicroserviceSupportExplanation6": "ABP Framework ja ABP Commercial tarjoavat infrastruktuurin mikropalvelumalleja varten, mikropalvelujen kanssa yhteensopivia moduuleja, näytteitä ja dokumentaatiota, jotka auttavat sinua rakentamaan oman ratkaisun. Mutta älä odota lataavan unelmaratkaisua suoraan sinulle valmiiksi. Sinun täytyy ymmärtää se ja tuoda joitain osia toiveidesi mukaan.",
"WhereCanIDownloadSourceCode": "Mistä voin ladata lähdekoodin?",
"WhereCanIDownloadSourceCodeExplanation": "Voit ladata kaikkien ABP-moduulien, kulmapakettien ja teemojen lähdekoodin ABP Suite- tai ABP CLI -palvelun kautta. Katso <a href=\"{0}\"> Lähdekoodin lataaminen? </a>",
"ComputerLimitation": "Kuinka monta tietokonetta kehittäjä voi kirjautua kehittäessään ABP: tä?",
"ComputerLimitationExplanation": "Sallimme erikseen <strong> {0} tietokoneet </strong> yksittäistä / lisensoitua kehittäjää kohti. Aina kun kehittäjän on tarpeen kehittää ABP Commercial -tuotteita kolmannella koneella, on lähetettävä sähköpostiviesti osoitteeseen license@abp.io, jossa selitetään tilanne, ja sitten suoritamme sopivan varauksen järjestelmäämme.",
"RefundPolicy": "Onko sinulla hyvityskäytäntö?",
"RefundPolicyExplanation": "Voit pyytää hyvitystä <strong> 30 päivän </strong> kuluessa lisenssiostoksestasi. Yritys- ja yrityslisenssityypeillä on lähdekoodin latausvaihtoehto, joten hyvityksiä ei ole saatavana yrityksille ja yrityksille (eikä lisensseille, jotka sisältävät oikeuden saada lähdekoodia). Lisäksi uusimista ja toisen lisenssin ostoja ei hyvitetä.",
"HowCanIRefundVat": "Kuinka voin palauttaa arvonlisäveron?",
"HowCanIRefundVatExplanation1": "Jos suoritit maksun käyttämällä 2Checkoutia, voit palauttaa arvonlisäveron 2Checkout-tilisi kautta:",
"HowCanIRefundVatExplanation2": "Kirjaudu sisään <a href=\"https://secure.2checkout.com/cpanel/login.php\" target=\"_blank\"> 2Tarkista </a> -tiliisi.",
"HowCanIRefundVatExplanation3": "Etsi sopiva tilaus ja paina \"Hyvitä myöhässä oleva alv\" (kirjoita ALV-tunnuksesi)",
"HowCanIGetMyInvoice": "Kuinka saan laskuni?",
"HowCanIGetMyInvoiceExplanation": "Lisenssin ostamiseen on 2 maksuyhdyskäytävää: PayU ja 2Checkout. Jos ostat lisenssin 2Checkout gatewayn kautta, se lähettää PDF-laskun sähköpostiosoitteeseesi, katso <a href = \"https://knowledgecenter.2checkout.com/Documentation/03Billing-and-payments/Payment-operations/How-do -laskut-työ \"> 2Tarkista laskutus. </a> Jos ostat PayU-yhdyskäytävän kautta tai pankkisiirrolla, valmistelemme ja lähetämme laskusi. Voit pyytää laskua <a href=\"{0}\"> organisaation hallintasivulta </a>",
"Forum": "Foorumi",
"SupportExplanation": "ABP Commercial -lisenssit tarjoavat ensiluokkaisen foorumituen ABP-kehyksen asiantuntijoista koostuvalle tiimille.",
"PrivateTicket": "Yksityinen lippu",
"PrivateTicketExplanation": "Yrityslisenssi sisältää myös yksityisen tuen sähköposti- ja lippujärjestelmällä.",
"AbpSuiteExplanation1": "ABP Suiten avulla voit luoda verkkosivuja muutamassa minuutissa. Se on .NET Core Global -työkalu, joka voidaan asentaa komentoriviltä.",
"AbpSuiteExplanation2": "Se voi luoda uuden ABP-ratkaisun, luoda CRUD-sivuja tietokannasta käyttöliittymään. Katso tekninen yleiskatsaus <a href=\"{0}\"> asiakirjasta </a>",
"FastEasy": "Nopea ja helppo",
"AbpSuiteExplanation3": "ABP Suiten avulla voit luoda helposti CRUD-sivuja. Sinun tarvitsee vain määritellä entiteetti ja sen ominaisuudet, antaa loput ABP Suiten puolestasi! ABP Suite luo kaikki tarvittavat koodit CRUD-sivullesi muutamassa sekunnissa. Se tukee Angular-, MVC- ja Blazor-käyttöliittymiä.",
"RichOptions": "Monipuoliset vaihtoehdot",
"AbpSuiteExplanation4": "ABP Suite tukee useita käyttöliittymävaihtoehtoja, kuten <a href=\"https://docs.microsoft.com/en-us/aspnet/core/razor-pages\"> Razor Pages </a> ja <a href = \"https: / /angular.io\">Kulma </a> .Se tukee myös useita tietokantoja, kuten <a href=\"https://www.mongodb.com\"> MongoDB </a> ja kaikkia <strong> EntityFramework Core <: n tukemia tietokantoja. / strong> (MS SQL Server, Oracle, MySql, PostgreSQL ja <a href=\"https://docs.microsoft.com/en-us/ef/core/providers/?tabs=dotnet-core-cli\"> lisää </a>).",
"AbpSuiteExplanation5": "Hyvä asia on, että sinun ei tarvitse huolehtia näistä vaihtoehdoista. ABP Suite ymmärtää projektisi tyypin ja luo koodin projektillesi ja sijoittaa luodun koodin oikeaan paikkaan projektissasi.",
"SourceCode": "Lähdekoodi",
"AbpSuiteExplanation6": "ABP Suite luo lähdekoodin sinulle! Se ei luo taikuustiedostoja verkkosivun luomiseksi. ABP Suite luo lähdekoodin <strong> Entity, Repository, Application Service, Code First Migration, JavaScript / TypeScript ja CSHTML / HTML </strong> sekä tarvittavat liitännät. ABP Suite tuottaa koodin myös ohjelmistokehityksen <strong> parhaiden käytäntöjen </strong> mukaisesti, joten sinun ei tarvitse huolehtia luodun koodin laadusta.",
"AbpSuiteExplanation7": "Koska luotun CRUD-sivun rakennuspalikoiden lähdekoodi on oikeissa sovelluskerroksissa, voit helposti muokata lähdekoodia ja pistää mukautetun / bussiness-logiikan luotuun koodiin.",
"CrossPlatform": "Cross Platform",
"AbpSuiteExplanation8": "ABP Suite on rakennettu .NET Core -sovelluksella ja se on alustojen välinen. Se toimii verkkosovelluksena paikallisella tietokoneellasi. Voit käyttää sitä <strong> Windows </strong>, <strong> Mac </strong> ja <strong> Linux </strong>",
"OtherFeatures": "Muut ominaisuudet",
"OtherFeatures1": "Päivittää ratkaisusi <strong> NuGet </strong> ja <strong> NPM </strong> -paketit helposti.",
"OtherFeatures2": "Palauttaa jo luodut sivut tyhjästä.",
"OtherFeatures3": "Luo uusia ratkaisuja",
"ThanksForCreatingProject": "Kiitos projektin luomisesta!",
"HotToRunSolution": "Kuinka ajaa ratkaisusi?",
"HotToRunSolutionExplanation": "Katso aloitusasiakirjasta lisätietoja ratkaisun määrittämisestä ja ajamisesta.",
"GettingStarted": "Päästä alkuun",
"WebAppDevTutorial": "Verkkosovellusten kehittäjän opetusohjelma",
"WebAppDevTutorialExplanation": "Katso vaiheittainen kehitysnäyte verkkosovellusten kehittämisoppaasta.",
"Document": "Asiakirja",
"UsingABPSuiteToCURD": "ABP Suiten käyttäminen CRUD-sivunluontia ja työkaluja varten",
"SeeABPSuiteDocument": "Katso ABP Suite -asiakirjasta ABP Suiten käyttö.",
"AskQuestionsOnSupport": "Voit esittää kysymyksiä ABP: n kaupallisesta tuesta.",
"Documentation": "Dokumentointi",
"SeeModulesDocument": "Katso moduulidokumentista luettelo kaikista kaupallisista (pro) moduuleista ja niiden asiakirjoista.",
"Pricing": "Hinnoittelu",
"PricingExplanation": "Valitse ominaisuudet ja toiminnot, joita yrityksesi tarvitsee tänään. Päivitä helposti, kun yrityksesi kasvaa.",
"Team": "Tiimi",
"Business": "Liiketoiminta",
"Enterprise": "Yritys",
"Custom": "Mukautettu",
"IncludedDeveloperLicenses": "Mukana kehittäjälisenssit",
"CustomLicenceOrAdditionalServices": "Tarvitsetko mukautettua lisenssiä tai lisäpalveluja?",
"CustomOrVolumeLicense": "Mukautettu tai volyymilisenssi",
"LiveTrainingSupport": "Live-koulutus ja tuki",
"AndMore": "ja enemmän",
"AdditionalDeveloperLicense": "Kehittäjän lisenssi",
"ProjectCount": "Projektilaskenta",
"AllProModules": "Kaikki pro-moduulit",
"AllProThemes": "Kaikki pro-teemat",
"AllProStartupTemplates": "Kaikki pro-käynnistysmallit",
"SourceCodeOfAllModules": "Kaikkien moduulien lähdekoodi",
"SourceCodeOfAllThemes": "Kaikkien teemojen lähdekoodi",
"PerpetualLicense": "Jatkuva lisenssi",
"UnlimitedServerDeployment": "Rajoittamaton palvelimen käyttöönotto",
"YearUpgrade": "1 vuoden päivitys",
"YearPremiumForumSupport": "Yhden vuoden premium-foorumin tuki",
"ForumSupportIncidentCountYear": "Foorumin tuen tapahtumien määrä / vuosi",
"PrivateTicketEmailSupport": "Yksityinen lippu- ja sähköpostituki",
"BuyNow": "Osta nyt",
"PayViaAmexCard": "Kuinka voin maksaa AMEX-korttini kautta?",
"PayViaAmexCardDescription": "Oletusmaksuyhdyskäytävä 'Iyzico' voi hylätä tietyt AMEX-luottokortit turvatoimenpiteiden takia. Tässä tapauksessa voit maksaa vaihtoehtoisen maksuyhdyskäytävän '2Checkout' kautta.",
"ThankYou": "Kiitos",
"InvalidReCaptchaErrorMessage": "ReCAPTCHA: n vahvistamisessa tapahtui virhe. Yritä uudelleen."
}
}

296
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json

@ -0,0 +1,296 @@
{
"culture": "fr",
"texts": {
"OrganizationManagement": "Gestion de l'organisation",
"OrganizationList": "Liste des organisations",
"Volo.AbpIo.Commercial:010003": "Vous n'êtes pas propriétaire de cette organisation!",
"OrganizationNotFoundMessage": "Aucune organisation trouvée!",
"DeveloperCount": "Développeurs alloués / totaux",
"QuestionCount": "Questions restantes / totales",
"Unlimited": "Illimité",
"Owners": "Propriétaires",
"AddMember": "Ajouter un membre",
"AddOwner": "Ajouter un propriétaire",
"AddDeveloper": "Ajouter un développeur",
"UserName": "Nom d'utilisateur",
"Name": "Nom",
"EmailAddress": "Adresse e-mail",
"Developers": "Développeurs",
"LicenseType": "Type de licence",
"Manage": "Gérer",
"StartDate": "Date de début",
"EndDate": "Date de fin",
"Modules": "Modules",
"LicenseExtendMessage": "La date de fin de votre licence est étendue au {0}",
"LicenseUpgradeMessage": "Votre licence est mise à niveau vers {0}",
"LicenseAddDeveloperMessage": "{0} développeurs ajoutés à votre licence",
"Volo.AbpIo.Commercial:010004": "Impossible de trouver l'utilisateur spécifié! L'utilisateur doit être déjà enregistré.",
"MyOrganizations": "Mes organisations",
"ApiKey": "Clé API",
"UserNameNotFound": "Il n'y a aucun utilisateur avec le nom d'utilisateur {0}",
"SuccessfullyAddedToNewsletter": "Merci de vous être abonné à notre newsletter!",
"MyProfile": "Mon profil",
"EmailNotValid": "S'il vous plaît, mettez une adresse email valide.",
"JoinOurMarketingNewsletter": "Rejoignez notre newsletter marketing",
"WouldLikeToReceiveMarketingMaterials": "Je souhaite recevoir des supports marketing tels que des offres de produits et des offres spéciales.",
"StartUsingYourLicenseNow": "Commencez à utiliser votre licence maintenant!",
"WelcomePage": "Page d'accueil",
"UnsubscriptionExpireEmail": "Se désabonner des e-mails de rappel de la date d'expiration de la licence",
"UnsubscribeLicenseExpireEmailReminderMessage": "Cet abonnement par e-mail ne contient que le rappel de la date d'expiration de votre licence.",
"UnsubscribeFromLicenseExpireEmails": "Si vous ne souhaitez pas recevoir les e-mails concernant la date d'expiration de votre licence, vous pouvez vous désinscrire à tout moment.",
"Unsubscribe": "Se désabonner",
"NotOrganizationMember": "Vous n'êtes membre d'aucune organisation.",
"UnsubscribeLicenseExpirationEmailSuccessTitle": "Désabonnement réussi",
"UnsubscribeLicenseExpirationEmailSuccessMessage": "Vous ne recevrez plus d'e-mails de rappel de la date d'expiration de la licence.",
"IndexPageHeroSection": "<span class = \"first-line\">Une plate-forme de développement Web</span><span class = \"second-line\"> complète </span> <span class = \"third-line\"> intégrée <img src = \"{0}\" width = \"110\" class = \"ml-1\" /> cadre </span>",
"AbpCommercialShortDescription": "ABP Commercial fournit des modules d'application prédéfinis, des outils de développement rapide d'applications, des thèmes d'interface utilisateur professionnels, un support premium et plus encore.",
"LiveDemo": "Démo en direct",
"GetLicence": "Obtenez une licence",
"Application": "Application",
"StartupTemplates": "Modèles de démarrage",
"Startup": "Commencez",
"Templates": "Modèles",
"Developer": "Développeur",
"Tools": "Outils",
"Premium": "Premium",
"PremiumSupport": "Assistance Premium",
"PremiumForumSupport": "Assistance du forum Premium",
"UI": "UI",
"Themes": "Thèmes",
"JoinOurNewsletter": "Rejoignez notre newsletter",
"Send": "Envoyer",
"Learn": "Apprendre",
"AdditionalServices": "Des services supplémentaires",
"WhatIsABPFramework": "QU'EST-CE QUE LE FRAMEWORK ABP?",
"OpenSourceBaseFramework": "Framework de base Open Source",
"ABPFrameworkExplanation": "<p class = \"lead\"> ABP Commercial est basé sur ABP Framework, un framework d'applications Web open source et communautaire pour ASP.NET Core. </p> <p> ABP Framework fournit une excellente infrastructure pour écrire maintenable et extensible et du code testable avec les meilleures pratiques. </p> <p> Construit et intégré à des outils populaires que vous connaissez déjà. Faible courbe d'apprentissage, adaptation facile, développement confortable. </p>",
"Modular": "Modulaire",
"MicroserviceCompatible": "Compatible avec les microservices",
"DomainDrivenDesignInfrastructure": "Infrastructure de conception pilotée par domaine",
"MultiTenancy": "Multi-souscrivant",
"DistributedMessaging": "Messagerie distribuée",
"DynamicProxying": "Proxying dynamique",
"BackgroundJobs": "Tâches d'arrière-plan",
"AuditLogging": "Journalisation d'audit",
"BLOBStoring": "Stockage BLOB",
"BundlingMinification": "Bundling et minification",
"AdvancedLocalization": "Localisation avancée",
"ManyMore": "Beaucoup plus",
"ExploreTheABPFramework": "Explorez le Framework ABP",
"WhyUseTheABPCommercial": "Pourquoi utiliser ABP Commercial?",
"WhyUseTheABPCommercialExplanation": "<p class = \"lead mt- 5\"> La création d'applications Web de niveau entreprise peut être complexe et prendre du temps. </p> <p> ABP Commercial offre l'infrastructure de base parfaite nécessaire pour tous les ASP.NET Core modernes de niveau entreprise solutions basées. De la conception au déploiement, l'ensemble du cycle de développement est optimisé par les fonctionnalités et modules intégrés d'ABP. </p>",
"StartupTemplatesShortDescription": "Les modèles de démarrage vous permettent de démarrer votre projet en quelques secondes.",
"UIFrameworksOptions": "Options de frameworks d'interface utilisateur;",
"DatabaseProviderOptions": "Options du fournisseur de base de données;",
"PreBuiltApplicationModules": "Modules d'application prédéfinis",
"PreBuiltApplicationModulesShortDescription": "Les exigences d'application les plus courantes sont déjà développées pour vous en tant que modules réutilisables.",
"Account": "Compte",
"Blogging": "Bloguer",
"Identity": "Identité",
"IdentityServer": "Serveur d'identité",
"Saas": "Saas",
"LanguageManagement": "Gestion de la langue",
"TextTemplateManagement": "Gestion des modèles de texte",
"See All Modules": "VoirTousModules",
"ABPSuite": "ABP Suite",
"AbpSuiteShortDescription": "ABP Suite est un outil complémentaire à ABP Commercial.",
"AbpSuiteExplanation": "Il vous permet de créer des pages Web en quelques minutes. C'est un outil global .NET Core qui peut être installé à partir de la ligne de commande. Il peut créer une nouvelle solution ABP, générer des pages CRUD de la base de données vers le front-end.",
"Details": "Détails",
"LeptonTheme": "Thème Lepton",
"ProfessionalModernUIThemes": "Thèmes d'interface utilisateur professionnels et modernes",
"LeptonThemeExplanation": "Lepton fournit une gamme de thèmes d'administration Bootstrap qui servent de base solide pour tout projet nécessitant un tableau de bord d'administration.",
"DefaultTheme": "Thème par défaut",
"MaterialTheme": "Thème Material",
"Default2Theme": "Thème par défaut 2",
"DarkTheme": "Thème sombre",
"DarkBlueTheme": "Thème bleu foncé",
"LightTheme": "Thème clair",
"ProudToWorkWith": "Fier de travailler avec",
"OurConsumers": "Des centaines d'entreprises et de développeurs dans plus de 50 pays dans le monde font confiance à ABP Commercial.",
"JoinOurConsumers": "Rejoignez-les et créez rapidement des produits incroyables.",
"AdditionalServicesExplanation": "Avez-vous besoin de services supplémentaires ou personnalisés? <strong> Nous et nos partenaires pouvons fournir; </strong>",
"CustomProjectDevelopment": "Développement de projets personnalisés",
"CustomProjectDevelopmentExplanation": "Développeurs dédiés pour vos projets personnalisés.",
"PortingExistingProjects": "Portage de projets existants",
"PortingExistingProjectsExplanation": "Migration de vos anciens projets vers la plateforme ABP.",
"LiveSupport": "Support en direct",
"LiveSupportExplanation": "Option d'assistance à distance en direct lorsque vous en avez besoin.",
"Training": "Formation",
"TrainingExplanation": "Une formation dédiée pour vos développeurs.",
"OnBoarding": "Intégration",
"OnBoardingExplanation": "Aide à la configuration de vos environnements de développement, CI et CD.",
"PrioritizedTechnicalSupport": "Assistance technique prioritaire",
"PremiumSupportExplanation": "Outre le grand support communautaire du framework ABP, notre équipe de support répond aux questions techniques et aux problèmes des utilisateurs commerciaux avec une priorité élevée.",
"SeeTheSupportOptions": "Voir les options de support",
"Contact": "Contacter",
"TellUsWhatYouNeed": "Dites-nous ce dont vous avez besoin.",
"YourMessage": "Votre message",
"YourFullName": "Votre nom complet",
"EmailField": "Adresse e-mail",
"YourEmailAddress": "Votre adresse email",
"HowMayWeHelpYou": "Comment pouvons nous vous aider?",
"SendMessage": "Envoyer le message",
"Success": "Succès",
"WeWillReplyYou": "Nous avons reçu votre message et vous contacterons sous peu.",
"GoHome": "Retour à l'acceuil",
"CreateLiveDemo": "Créer une démo en direct",
"RegisterToTheNewsletter": "Inscrivez-vous à la newsletter pour recevoir des informations concernant ABP.IO, y compris les nouvelles versions, etc.",
"EnterYourEmailOrLogin": "Saisissez votre adresse e-mail pour créer votre démo ou <a href=\"{0}\"> Connectez-vous </a> à l'aide de votre compte existant.",
"ApplicationTemplate": "Modèle d'application",
"ApplicationTemplateExplanation": "Le modèle de démarrage d'application est utilisé pour créer une nouvelle application Web.",
"EfCoreProvider": "Entity Framework (prend en charge SQL Server, MySQL, PostgreSQL, Oracle <a href=\"https://docs.microsoft.com/en-us/ef/core/providers/\"> et autres </a>)",
"AlreadyIncludedInTemplateModules": "Les modules suivants sont déjà inclus et configurés dans ce modèle:",
"ApplicationTemplateArchitecture": "Ce modèle d'application prend également en charge l'architecture à plusieurs niveaux dans laquelle la couche d'interface utilisateur, la couche API et le service d'authentification sont physiquement séparés.",
"SeeTheGuideOrGoToTheLiveDemo": "Consultez le guide du développeur pour obtenir des informations techniques sur ce modèle ou accédez à la démo en direct.",
"DeveloperGuide": "Guide du développeur",
"ModuleTemplate": "Modèle de module",
"ModuleTemplateExplanation1": "Vous souhaitez créer un module et le réutiliser dans différentes applications? Ce modèle de démarrage prépare tout pour commencer à créer un <strong> module d'application </strong> réutilisable ou un <strong> microservice </strong>.",
"ModuleTemplateExplanation2": "<p> Vous pouvez prendre en charge un ou plusieurs frameworks d'interface utilisateur, un ou plusieurs fournisseurs de bases de données pour un seul module. Le modèle de démarrage est configuré pour exécuter et <strong> tester votre module </strong> dans une application minimale en plus de l'infrastructure de test d'unité et d'intégration. </p> <p> Consultez le guide du développeur pour obtenir des informations techniques sur ce modèle. </p>",
"WithAllStyleOptions": "avec toutes les options de style",
"Demo": "Démo",
"SeeAllModules": "Voir tous les modules",
"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 <span class = \"zero-text\"> Aide </span>",
"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 <a href=\"{0}\" class=\"text-success\"> formulaire de contact </a>.",
"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?",
"ABPCommercialExplanation": "ABP Commercial est un ensemble de modules, d'outils, de thèmes et de services premium basés sur le <a target=\"_blank\" href=\"{0}\"> framework ABP </a> open source. ABP Commercial est développé et soutenu par la même équipe derrière le cadre ABP.",
"WhatAreDifferencesThanABPFrameworkExplanation": "<p> <a target=\"_blank\" href=\"{0}\"> Framework ABP </a> est un framework de développement d'applications modulaire, thématique et compatible avec les micro-services pour ASP.NET Core. Il fournit une architecture complète et une infrastructure solide pour vous permettre de vous concentrer sur votre propre code métier plutôt que de vous répéter à chaque nouveau projet. Il est basé sur les meilleures pratiques de développement logiciel et les outils populaires que vous connaissez déjà. </p> <p> Le framework ABP est entièrement gratuit, open source et géré par la communauté. Il fournit également un thème gratuit et des modules prédéfinis (par exemple, la gestion des identités et la gestion des locataires). </p>",
"VisitTheFrameworkVSCommercialDocument": "Pour plus d'informations, consultez le lien suivant: <a href=\"{0}\" target=\"_blank\"> {1} </a>",
"ABPCommercialFollowingBenefits": "ABP Commercial ajoute les avantages suivants en plus du cadre ABP;",
"Professional": "Professionnel",
"UIThemes": "Thèmes de l'interface utilisateur",
"EnterpriseModules": "Des <a href=\"{0}\"> modules d'application </a> prédéfinis, prêts pour l'entreprise, riches en fonctionnalités (par exemple, gestion d'Identity Server, gestion SaaS, gestion des langues)",
"ToolingToSupport": "Outils pour soutenir votre productivité de développement (par exemple, <a href=\"{0}\"> ABP Suite </a>)",
"PremiumSupportLink": "Assistance <a href=\"{0}\" target=\"_blank\"> Premium </a>",
"WhatDoIDownloadABPCommercial": "Que dois-je télécharger lorsque j'achète l'ABP Commercial?",
"CreateUnlimitedSolutions": "Une fois que vous avez acheté une licence commerciale ABP, vous pourrez créer des solutions illimitées comme décrit dans le document <a href=\"{0}\"> Premiers pas </a>.",
"ABPCommercialSolutionExplanation": "Lorsque vous créez une nouvelle application, vous obtenez une solution Visual Studio (un modèle de démarrage) en fonction de vos préférences. La solution téléchargée contient des modules et des thèmes commerciaux déjà installés et configurés pour vous. Vous pouvez supprimer un module préinstallé ou ajouter un autre module si vous le souhaitez. Tous les modules et thèmes sont utilisés par défaut dans des packages NuGet / NPM.",
"StartDevelopWithTutorials": "La solution téléchargée est bien architecturée et documentée. Vous pouvez commencer à développer votre propre code d'entreprise basé sur celui-ci en suivant <a href=\"{0}\"> les didacticiels </a>",
"TryTheCommercialDemo": "Vous pouvez essayer <a href=\"{0}\"> la démonstration </a> pour voir un exemple d'application créé à l'aide du modèle de démarrage ABP Commercial.",
"HowManyProducts": "Combien de produits / solutions différents puis-je créer à l'aide d'ABP Commercial?",
"HowManyProductsExplanation": "Il n'y a pas de limite pour créer un projet ABP. Vous pouvez créer autant de projets que vous le souhaitez, les développer et les télécharger sur différents serveurs.",
"HowManyDevelopers": "Combien de développeurs peuvent travailler sur l'ABP Commercial?",
"HowManyDevelopersExplanation": "Les licences commerciales ABP sont par développeur. Différents types de licence ont des limites de développeur différentes. Cependant, vous pouvez ajouter plus de développeurs à n'importe quel type de licence chaque fois que vous en avez besoin. Consultez la <a href=\"{0}\"> page des prix </a> pour connaître les types de licence, les limites pour les développeurs et les coûts supplémentaires pour les développeurs.",
"ChangingLicenseType": "Puis-je changer mon type de licence à l'avenir?",
"ChangingLicenseTypeExplanation": "Vous pouvez toujours ajouter de nouveaux développeurs dans votre même type de licence. Voir aussi \"Combien de développeurs peuvent travailler sur l'ABP Commercial?\". Vous pouvez également passer à une licence supérieure en payant la différence de prix calculée. Lorsque vous passez à un plan de licence supérieur, vous bénéficiez des avantages du nouveau plan, mais la mise à niveau de la licence ne modifie pas la date d'expiration de la licence.",
"LicenseExtendUpgradeDiff": "Quelle est la différence entre l'extension de licence et la mise à niveau?",
"LicenseExtendUpgradeDiffExplanation": "<strong> Extension: </strong> en prolongeant / renouvelant votre licence, vous continuerez à bénéficier d'une assistance premium et à des mises à jour majeures pour les modules et les thèmes. De plus, vous pourrez continuer à créer de nouveaux projets. Et vous pourrez toujours utiliser ABP Suite, ce qui accélère votre développement. <Hr /> <strong> Mise à niveau: </strong> En mettant à jour votre licence, vous passerez à un plan de licence supérieur qui vous permettra d’obtenir des avantages supplémentaires . Consultez le <a href=\"/pricing\"> tableau de comparaison des licences </a> pour vérifier les différences entre les plans de licence. <strong> En revanche, lors de la mise à niveau, la date d'expiration de votre licence ne changera pas! </ Strong > Pour prolonger la date de fin de votre licence, vous devez prolonger votre licence.",
"LicenseRenewalCost": "Quel est le coût du renouvellement de la licence après 1 an?",
"LicenseRenewalCostExplanation": "Le taux de renouvellement (extension) de toutes les licences perpétuelles ABP Commercial correspond à {0} du prix catalogue de la licence. Le prix de renouvellement de la licence d'équipe standard est de {1} $, la licence professionnelle standard de {2} $ et la licence d'entreprise standard de {3} $. Si vous êtes déjà client, <a href='{4}' target='_blank'> connectez-vous à votre compte </a> pour consulter les tarifs de renouvellement disponibles.",
"HowDoIRenewMyLicense": "Comment renouveler ma licence?",
"HowDoIRenewMyLicenseExplanation": "Vous pouvez renouveler votre licence en accédant à la <a href='{0}' target='_blank'> page de gestion de l'organisation </a>. Afin de profiter de nos tarifs réduits de renouvellement anticipé, assurez-vous de renouveler avant l'expiration de votre licence. Cependant, ne vous inquiétez pas de ne pas savoir quand votre opportunité de renouvellement anticipé se termine. Vous recevrez 2 e-mails de rappel avant l'expiration de votre abonnement. Nous les enverrons dans les 30 jours, 7 jours avant l'expiration.",
"IsSourceCodeIncluded": "Ma licence inclut-elle le code source des modules et thèmes commerciaux?",
"IsSourceCodeIncludedExplanation1": "Dépend du type de licence que vous avez acheté:",
"IsSourceCodeIncludedExplanation2": "<strong> Équipe </strong>: votre solution utilise les modules et les thèmes en tant que packages NuGet et NPM. Il n'inclut pas leur code source. De cette façon, vous pouvez facilement mettre à niveau ces modules et thèmes chaque fois qu'une nouvelle version est disponible. Cependant, vous ne pouvez pas obtenir le code source des modules et des thèmes.",
"IsSourceCodeIncludedExplanation3": "<strong> Entreprise / Entreprise </strong>: en plus de la licence Team, vous pouvez télécharger le code source de tout module ou thème dont vous avez besoin. Vous pouvez même supprimer les références de package NuGet / NPM pour un module particulier et ajouter son code source directement à votre solution pour le modifier complètement.",
"IsSourceCodeIncludedExplanation4": "<p> L'inclusion du code source d'un module dans votre solution vous donne le maximum de liberté pour personnaliser ce module. Cependant, il ne sera pas possible de mettre à jour automatiquement le module lorsqu'une nouvelle version est publiée. </p> <p> Aucune des licences n'inclut le code source d'ABP Suite, qui est un outil externe qui génère du code pour vous et vous aide à votre développement. </p> <p> Consultez la <a href=\"{0}\"> page de tarification </a> pour connaître les autres différences entre les types de licence. </p>",
"ChangingDevelopers": "Puis-je changer les développeurs enregistrés de mon organisation à l'avenir?",
"ChangingDevelopersExplanation": "En plus d'ajouter de nouveaux développeurs à votre licence, vous pouvez également modifier les développeurs existants (vous pouvez supprimer un développeur et en ajouter un nouveau sur le même siège) sans aucun coût supplémentaire.",
"WhatHappensWhenLicenseEnds": "Que se passe-t-il à la fin de ma période de licence?",
"WhatHappensWhenLicenseEndsExplanation1": "Le type de licence commerciale ABP est <a href=\"{0}\" target=\"_blank\"> licence perpétuelle </a>. Une fois votre licence expirée, vous pouvez continuer à développer votre projet. Et vous n'êtes pas obligé de renouveler votre licence. Votre licence est livrée avec un plan de mise à jour et de support d'un an prêt à l'emploi. Pour continuer à recevoir de nouvelles fonctionnalités, des améliorations de performances, des corrections de bogues, une assistance et continuer à utiliser ABP Suite, assurez-vous de renouveler votre plan chaque année. Lorsque votre licence expirera, vous ne pourrez plus bénéficier des avantages suivants;",
"WhatHappensWhenLicenseEndsExplanation2": "Vous ne pouvez pas créer de nouvelles solutions en utilisant ABP Commercial, mais vous pouvez continuer à développer vos applications existantes pour toujours.",
"WhatHappensWhenLicenseEndsExplanation3": "Vous pourrez obtenir des mises à jour pour les modules et les thèmes de votre version MAJEURE. Par example; si vous utilisez la v3.2.0 d'un module, vous pouvez toujours obtenir des mises à jour pour la v3.x.x (v3.3.0, v3.5.2 ... etc.) de ce module. Mais vous ne pouvez pas obtenir de mises à jour pour la prochaine version majeure (comme v4.x, v5.x)",
"WhatHappensWhenLicenseEndsExplanation4": "Vous ne pouvez pas installer de nouveaux modules et thèmes ajoutés à la plate-forme ABP Commercial après la fin de votre licence.",
"WhatHappensWhenLicenseEndsExplanation5": "Vous ne pouvez pas utiliser ABP Suite.",
"WhatHappensWhenLicenseEndsExplanation6": "Vous ne pouvez plus bénéficier de l '<a href=\"{0}\"> assistance premium </a>.",
"WhatHappensWhenLicenseEndsExplanation7": "Vous pouvez renouveler votre abonnement si vous souhaitez continuer à bénéficier de ces avantages. Il y a une réduction de 20% lorsque vous renouvelez votre abonnement.",
"WhenShouldIRenewMyLicense": "Quand dois-je renouveler ma licence?",
"WhenShouldIRenewMyLicenseExplanation1": "Si vous renouvelez votre licence dans un délai de <strong> 1 mois </strong> après l'expiration de votre licence, une réduction de 20% sera appliquée au prix total de la licence.",
"WhenShouldIRenewMyLicenseExplanation2": "Si vous renouvelez votre licence 1 mois après la date d'expiration de votre licence, le prix de renouvellement sera le même que le prix d'achat de la licence et il n'y aura pas de réduction pour votre renouvellement.",
"TrialPlan": "Avez-vous un plan d'essai?",
"TrialPlanExplanation": "Pour l'instant, ABP Commercial n'a pas de plan d'essai. Pour les licences Team, nous offrons une garantie de remboursement de 30 jours. Vous pouvez simplement demander un remboursement dans les 30 premiers jours. Pour les licences Business et Enterprise, nous fournissons un remboursement de 60% en 30 jours. En effet, les licences Business et Enterprise incluent le code source complet de tous les modules et thèmes.",
"DoYouAcceptBankWireTransfer": "Acceptez-vous les virements bancaires?",
"DoYouAcceptBankWireTransferExplanation": "Oui, nous acceptons les virements bancaires. <br /> Après avoir envoyé le montant de la licence par virement bancaire, envoyez-nous votre reçu et le type de licence demandé par e-mail. <br /> Nos coordonnées bancaires internationales:",
"HowToUpgrade": "Comment mettre à niveau des applications existantes lorsqu'une nouvelle version est disponible?",
"HowToUpgradeExplanation1": "Lorsque vous créez une nouvelle application à l'aide d'ABP Commercial, tous les modules et le thème sont utilisés en tant que packages NuGet et NPM. Ainsi, vous pouvez facilement mettre à jour les packages lorsqu'une nouvelle version est disponible.",
"HowToUpgradeExplanation2": "Outre les mises à niveau standard de NuGet / NPM, <a href=\"{0}\"> ABP CLI </a> fournit une commande de mise à jour qui recherche et met automatiquement à niveau tous les packages associés à ABP dans votre solution.",
"DatabaseSupport": "Quels systèmes de base de données sont pris en charge?",
"DatabaseSupportExplanation": "ABP Framework lui-même est indépendant de la base de données et peut fonctionner avec n'importe quel fournisseur de base de données de par sa nature. Consultez <a href=\"{0}\" target=\"_blank\"> le document d'accès aux données </a> pour obtenir la liste des fournisseurs actuellement mis en œuvre.",
"UISupport": "Quels frameworks d'interface utilisateur sont pris en charge?",
"Supported": "Prise en charge",
"UISupportExplanation": "ABP Framework lui-même est indépendant du framework d'interface utilisateur et peut fonctionner avec n'importe quel framework d'interface utilisateur. Cependant, les modèles de démarrage, les interfaces utilisateur de module et les thèmes n'étaient pas implémentés pour tous les frameworks d'interface utilisateur. Consultez <a href=\"{0}\"> le document de démarrage </a> pour la liste à jour des options d'interface utilisateur.",
"MicroserviceSupport": "Prend-il en charge l'architecture des micro-services?",
"MicroserviceSupportExplanation1": "L'un des principaux objectifs du cadre ABP est de fournir une infrastructure pratique pour créer des solutions de micro-services. Consultez le document <a href=\"{0}\"> architecture de micro-service </a> pour comprendre comment cela aide à créer des systèmes de micro-service.",
"MicroserviceSupportExplanation2": "Tous les modules ABP Commercial sont conçus pour prendre en charge les scénarios de déploiement de micro-services (avec sa propre API et sa propre base de données) en suivant le document <a href=\"{0}\"> bonnes pratiques de développement de modules </a>.",
"MicroserviceSupportExplanation3": "Nous fournissons un exemple de <a href=\"{0}\"> solution de démonstration de micro-service </a> qui présente une implémentation d'architecture de micro-service pour vous aider à créer votre propre solution.",
"MicroserviceSupportExplanation4": "Donc, la réponse courte est \"<strong> oui, il prend en charge l'architecture de micro-services </strong>\".",
"MicroserviceSupportExplanation5": "Cependant, un système de micro-service est une solution et chaque solution aura des exigences différentes, une topologie de réseau, des scénarios de communication, des possibilités d'authentification, des décisions de séparation / partage de base de données, des configurations d'exécution, des intégrations de systèmes tiers et bien d'autres.",
"MicroserviceSupportExplanation6": "Le Framework ABP et l'ABP Commercial fournissent une infrastructure pour des scénarios de micro-services, des modules compatibles avec les micro-services, des exemples et de la documentation pour vous aider à créer votre propre solution. Mais ne vous attendez pas à télécharger directement la solution de vos rêves préconfigurée pour vous. Vous devrez le comprendre et rassembler certaines parties en fonction de vos besoins.",
"WhereCanIDownloadSourceCode": "Où puis-je télécharger le code source?",
"WhereCanIDownloadSourceCodeExplanation": "Vous pouvez télécharger le code source de tous les modules ABP, packages angulaires et thèmes via ABP Suite ou ABP CLI. Voir <a href=\"{0}\"> Comment télécharger le code source? </a>",
"ComputerLimitation": "Combien d'ordinateurs un développeur peut-il se connecter lors du développement d'ABP?",
"ComputerLimitationExplanation": "Nous autorisons spécifiquement les <strong> {0} ordinateurs </strong> par développeur individuel / sous licence. Chaque fois qu'un développeur a besoin de développer des produits commerciaux ABP sur une troisième machine, un e-mail doit être envoyé à license@abp.io expliquant la situation et nous procéderons ensuite à l'allocation appropriée dans notre système.",
"RefundPolicy": "Avez-vous une politique de remboursement?",
"RefundPolicyExplanation": "Vous pouvez demander un remboursement dans les <strong> 30 jours </strong> suivant l'achat de votre licence. Les types de licence Business et Enterprise ont une option de téléchargement de code source, par conséquent, les remboursements ne sont pas disponibles pour les entreprises et les entreprises (et toutes les licences qui incluent un droit de recevoir le code source). De plus, aucun remboursement n'est effectué pour les renouvellements et les achats de deuxième licence.",
"HowCanIRefundVat": "Comment puis-je rembourser la TVA?",
"HowCanIRefundVatExplanation1": "Si vous avez effectué le paiement avec 2Checkout, vous pouvez rembourser la TVA via votre compte 2Checkout:",
"HowCanIRefundVatExplanation2": "Connectez-vous à votre compte <a href=\"https://secure.2checkout.com/cpanel/login.php\" target=\"_blank\"> 2Checkout </a>",
"HowCanIRefundVatExplanation3": "Trouvez la commande appropriée et appuyez sur \"Rembourser la TVA tardive\" (entrez votre numéro de TVA)",
"HowCanIGetMyInvoice": "Comment puis-je obtenir ma facture?",
"HowCanIGetMyInvoiceExplanation": "Il existe 2 passerelles de paiement pour l'achat d'une licence: PayU et 2Checkout. Si vous achetez votre licence via la passerelle 2Checkout, elle envoie la facture PDF à votre adresse e-mail, voir <a href = \"https://knowledgecenter.2checkout.com/Documentation/03Billing-and-payments/Payment-operations/How-do -invoices-work \"> Facturation 2Checkout. </a> Si vous achetez via la passerelle PayU ou par virement bancaire, nous préparerons et vous enverrons votre facture. Vous pouvez demander votre facture sur la <a href=\"{0}\"> page de gestion de l'organisation. </a>",
"Forum": "Forum",
"SupportExplanation": "ABP Commercial Licences fournit un support de forum premium par une équipe composée d'experts ABP Framework.",
"PrivateTicket": "Billet privé",
"PrivateTicketExplanation": "Enterprise License comprend également un support privé avec e-mail et système de ticket.",
"AbpSuiteExplanation1": "ABP Suite vous permet de créer des pages Web en quelques minutes. C'est un outil .NET Core Global qui peut être installé à partir de la ligne de commande.",
"AbpSuiteExplanation2": "Il peut créer une nouvelle solution ABP, générer des pages CRUD de la base de données vers le front-end. Pour une présentation technique, consultez <a href=\"{0}\"> le document </a>",
"FastEasy": "Rapide et facile",
"AbpSuiteExplanation3": "ABP Suite vous permet de créer facilement des pages CRUD. Il vous suffit de définir votre entité et ses propriétés, laissez le reste à ABP Suite pour vous! ABP Suite génère tout le code nécessaire pour votre page CRUD en quelques secondes. Il prend en charge les interfaces utilisateur Angular, MVC et Blazor.",
"RichOptions": "Options riches",
"AbpSuiteExplanation4": "ABP Suite prend en charge plusieurs options d'interface utilisateur telles que <a href=\"https://docs.microsoft.com/en-us/aspnet/core/razor-pages\"> Razor Pages </a> et <a href = \"https: / /angular.io\">Angular </a>. Il prend également en charge plusieurs bases de données telles que <a href=\"https://www.mongodb.com\"> MongoDB </a> et toutes les bases de données prises en charge par <strong> EntityFramework Core < / strong> (MS SQL Server, Oracle, MySql, PostgreSQL et <a href=\"https://docs.microsoft.com/en-us/ef/core/providers/?tabs=dotnet-core-cli\"> plus </a>).",
"AbpSuiteExplanation5": "La bonne chose est que vous n'avez pas à vous soucier de ces options. ABP Suite comprend votre type de projet et génère le code de votre projet et place le code généré au bon endroit dans votre projet.",
"SourceCode": "Code source",
"AbpSuiteExplanation6": "ABP Suite génère le code source pour vous! Il ne génère pas de fichiers magiques pour générer la page Web. ABP Suite génère le code source pour <strong> Entity, Repository, Application Service, Code First Migration, JavaScript / TypeScript et CSHTML / HTML </strong> ainsi que les interfaces nécessaires. ABP Suite génère également le code selon les <strong> meilleures pratiques </strong> de développement logiciel, vous n'avez donc pas à vous soucier de la qualité du code généré.",
"AbpSuiteExplanation7": "Puisque vous avez le code source des blocs de construction de la page CRUD générée dans les couches d'application correctes, vous pouvez facilement modifier le code source et injecter votre logique personnalisée / commerciale dans le code généré.",
"CrossPlatform": "Plateforme croisée",
"AbpSuiteExplanation8": "ABP Suite est construit avec .NET Core et est multiplateforme. Il fonctionne comme une application Web sur votre ordinateur local. Vous pouvez l'exécuter sur <strong> Windows </strong>, <strong> Mac </strong> et <strong> Linux </strong>",
"OtherFeatures": "Autres caractéristiques",
"OtherFeatures1": "Met à jour facilement les packages <strong> NuGet </strong> et <strong> NPM </strong> de votre solution.",
"OtherFeatures2": "Régénère les pages déjà générées à partir de zéro.",
"OtherFeatures3": "Crée de nouvelles solutions",
"ThanksForCreatingProject": "Merci d'avoir créé votre projet!",
"HotToRunSolution": "Comment faire fonctionner votre solution?",
"HotToRunSolutionExplanation": "Consultez le document de mise en route pour savoir comment configurer et exécuter votre solution.",
"GettingStarted": "Commencer",
"WebAppDevTutorial": "Tutoriel de développement d'applications Web",
"WebAppDevTutorialExplanation": "Consultez le document du didacticiel de développement d'applications Web pour un exemple de développement étape par étape.",
"Document": "Document",
"UsingABPSuiteToCURD": "Utilisation d'ABP Suite pour la génération et l'outillage de pages CRUD",
"SeeABPSuiteDocument": "Consultez le document ABP Suite pour en savoir plus sur l'utilisation d'ABP Suite.",
"AskQuestionsOnSupport": "Vous pouvez poser des questions sur le support commercial ABP.",
"Documentation": "Documentation",
"SeeModulesDocument": "Voir le document des modules pour une liste de tous les modules commerciaux (pro) et leurs documents.",
"Pricing": "Tarification",
"PricingExplanation": "Choisissez les fonctionnalités dont votre entreprise a besoin aujourd'hui. Mettez à niveau facilement au fur et à mesure que votre entreprise se développe.",
"Team": "Équipe",
"Business": "Affaires",
"Enterprise": "Entreprise",
"Custom": "Personnalisé",
"IncludedDeveloperLicenses": "Licences de développeur incluses",
"CustomLicenceOrAdditionalServices": "Besoin d'une licence personnalisée ou de services supplémentaires?",
"CustomOrVolumeLicense": "Licence personnalisée ou en volume",
"LiveTrainingSupport": "Formation et assistance en direct",
"AndMore": "et plus",
"AdditionalDeveloperLicense": "Licence de développeur supplémentaire",
"ProjectCount": "Nombre de projets",
"AllProModules": "Tous les modules pro",
"AllProThemes": "Tous les thèmes pro",
"AllProStartupTemplates": "Tous les modèles de démarrage pro",
"SourceCodeOfAllModules": "Code source de tous les modules",
"SourceCodeOfAllThemes": "Code source de tous les thèmes",
"PerpetualLicense": "Licence perpétuelle",
"UnlimitedServerDeployment": "Déploiement de serveur illimité",
"YearUpgrade": "Mise à jour d'un an",
"YearPremiumForumSupport": "1 an de support premium pour le forum",
"ForumSupportIncidentCountYear": "Nombre d'incidents de support du forum / an",
"PrivateTicketEmailSupport": "Support privé pour les tickets et e-mail",
"BuyNow": "Acheter maintenant",
"PayViaAmexCard": "Comment puis-je payer via ma carte AMEX?",
"PayViaAmexCardDescription": "La passerelle de paiement par défaut «Iyzico» peut refuser certaines cartes de crédit AMEX en raison des mesures de sécurité. Dans ce cas, vous pouvez payer via la passerelle de paiement alternative «2Checkout».",
"ThankYou": "Merci",
"InvalidReCaptchaErrorMessage": "Une erreur s'est produite lors de la vérification de reCAPTCHA. Veuillez réessayer."
}
}

296
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json

@ -0,0 +1,296 @@
{
"culture": "hi",
"texts": {
"OrganizationManagement": "संगठन का प्रबंधन",
"OrganizationList": "संगठन सूची",
"Volo.AbpIo.Commercial:010003": "आप इस संगठन के मालिक नहीं हैं!",
"OrganizationNotFoundMessage": "कोई संगठन नहीं मिला!",
"DeveloperCount": "आवंटित / कुल डेवलपर्स",
"QuestionCount": "शेष / कुल प्रश्न",
"Unlimited": "असीमित",
"Owners": "मालिकों",
"AddMember": "सदस्य जोड़ें",
"AddOwner": "मालिक जोड़ें",
"AddDeveloper": "डेवलपर जोड़ें",
"UserName": "उपयोगकर्ता नाम",
"Name": "नाम",
"EmailAddress": "ईमेल पता",
"Developers": "डेवलपर्स",
"LicenseType": "लाइसेंस के प्रकार",
"Manage": "प्रबंधित",
"StartDate": "आरंभ करने की तिथि",
"EndDate": "समाप्ति तिथि",
"Modules": "मॉड्यूल",
"LicenseExtendMessage": "आपकी लाइसेंस समाप्ति तिथि {0} तक बढ़ा दी गई है",
"LicenseUpgradeMessage": "आपका लाइसेंस {0} में अपग्रेड किया गया है",
"LicenseAddDeveloperMessage": "{0} डेवलपर्स ने आपके लाइसेंस में जोड़ा",
"Volo.AbpIo.Commercial:010004": "निर्दिष्ट उपयोगकर्ता नहीं मिल सकता है! उपयोगकर्ता को पहले से ही पंजीकृत होना चाहिए।",
"MyOrganizations": "मेरे संगठन",
"ApiKey": "एपीआई कुंजी",
"UserNameNotFound": "उपयोगकर्ता नाम {0} का कोई उपयोगकर्ता नहीं है",
"SuccessfullyAddedToNewsletter": "हमारे न्यूज़लेटर की सदस्यता के लिए धन्यवाद!",
"MyProfile": "मेरी प्रोफाइल",
"EmailNotValid": "कृपया एक वैध ई - मेल एड्रेस डालें।",
"JoinOurMarketingNewsletter": "हमारे विपणन समाचार पत्र में शामिल हों",
"WouldLikeToReceiveMarketingMaterials": "मैं उत्पाद सौदों और विशेष प्रस्तावों जैसे विपणन सामग्री प्राप्त करना चाहता हूं।",
"StartUsingYourLicenseNow": "अब अपने लाइसेंस का उपयोग शुरू करें!",
"WelcomePage": "स्वागत पृष्ठ",
"UnsubscriptionExpireEmail": "लाइसेंस समाप्ति तिथि अनुस्मारक ईमेल से सदस्यता समाप्त करें",
"UnsubscribeLicenseExpireEmailReminderMessage": "इस ईमेल सदस्यता में केवल आपकी लाइसेंस समाप्ति तिथि याद दिलाने की होती है।",
"UnsubscribeFromLicenseExpireEmails": "यदि आप अपने लाइसेंस की समाप्ति तिथि के बारे में ईमेल प्राप्त नहीं करना चाहते हैं, तो आप किसी भी समय अपनी सदस्यता समाप्त कर सकते हैं।",
"Unsubscribe": "सदस्यता रद्द",
"NotOrganizationMember": "आप किसी संगठन के सदस्य नहीं हैं।",
"UnsubscribeLicenseExpirationEmailSuccessTitle": "सफलतापूर्वक सदस्यता समाप्त कर दी गई",
"UnsubscribeLicenseExpirationEmailSuccessMessage": "अब आपको लाइसेंस समाप्ति तिथि अनुस्मारक ईमेल प्राप्त नहीं होंगे।",
"IndexPageHeroSection": "<span class = \"first-line\"> एक पूर्ण </ span> <span class = \"दूसरी-पंक्ति\"> वेब विकास मंच </ span> <span class = \"third-line\"> अंतर्निहित <img src = \"{0}\" चौड़ाई = \"110\" वर्ग = \"एमएल -1\" /> ढांचा </ span>",
"AbpCommercialShortDescription": "एबीपी कमर्शियल प्री-बिल्ट एप्लिकेशन मॉड्यूल, रैपिड एप्लिकेशन डेवलपमेंट टूलिंग, पेशेवर यूआई थीम, प्रीमियम सपोर्ट आदि प्रदान करता है।",
"LiveDemo": "लाइव डेमो",
"GetLicence": "एक लाइसेंस प्राप्त करें",
"Application": "आवेदन",
"StartupTemplates": "स्टार्टअप टेम्पलेट",
"Startup": "चालू होना",
"Templates": "टेम्पलेट्स",
"Developer": "डेवलपर",
"Tools": "उपकरण",
"Premium": "प्रीमियम",
"PremiumSupport": "प्रीमियम सहायता",
"PremiumForumSupport": "प्रीमियम फोरम समर्थन",
"UI": "यूआई",
"Themes": "विषयों",
"JoinOurNewsletter": "हमारे समाचार पत्र शामिल हों",
"Send": "संदेश",
"Learn": "सीखना",
"AdditionalServices": "अतिरिक्त सेवाएं",
"WhatIsABPFramework": "ABP फ्रेमवर्क क्या है?",
"OpenSourceBaseFramework": "ओपन सोर्स बेस फ्रेमवर्क",
"ABPFrameworkExplanation": "<p class = \"lead\"> ABP कमर्शियल ASP.NET Core पर एक खुला स्रोत और समुदाय संचालित वेब एप्लीकेशन फ्रेमवर्क है। और सर्वोत्तम प्रथाओं के साथ परीक्षण योग्य कोड। </ p> <p> आप पहले से ही जानते हैं कि लोकप्रिय उपकरणों पर निर्मित और एकीकृत। कम सीखने की अवस्था, आसान अनुकूलन, आरामदायक विकास। </ p>",
"Modular": "मॉड्यूलर",
"MicroserviceCompatible": "माइक्रोसिस्ट सेवा संगत",
"DomainDrivenDesignInfrastructure": "डोमेन संचालित डिज़ाइन इन्फ्रास्ट्रक्चर",
"MultiTenancy": "बहु किरायेदारी",
"DistributedMessaging": "वितरित संदेश",
"DynamicProxying": "गतिशील प्रॉक्सी",
"BackgroundJobs": "बैकग्राउंड जॉब्स",
"AuditLogging": "ऑडिट लॉगिंग",
"BLOBStoring": "ब्लॉब भंडारण",
"BundlingMinification": "बंडलिंग और न्यूनतमकरण",
"AdvancedLocalization": "उन्नत स्थानीयकरण",
"ManyMore": "बहुत सारी",
"ExploreTheABPFramework": "ABP फ्रेमवर्क का अन्वेषण करें",
"WhyUseTheABPCommercial": "एबीपी कमर्शियल का उपयोग क्यों करें?",
"WhyUseTheABPCommercialExplanation": "<p class = \"lead mt- 5\"> बिल्डिंग एंटरप्राइज-ग्रेड वेब एप्लिकेशन जटिल और समय लेने वाली हो सकती हैं। </ p> <p> ABP कमर्शियल सभी आधुनिक एंटरप्राइज-ग्रेड ASP.NET Core के लिए आवश्यक सही आधारभूत संरचना प्रदान करता है। आधारित समाधान। डिज़ाइन से परिनियोजन तक, संपूर्ण विकास चक्र ABP की अंतर्निहित विशेषताओं और मॉड्यूल द्वारा सशक्त है। </ p",
"StartupTemplatesShortDescription": "स्टार्टअप टेम्प्लेट आपको कुछ ही सेकंड में अपने प्रोजेक्ट के लिए जंप-स्टार्ट करते हैं।",
"UIFrameworksOptions": "यूआई चौखटे विकल्प;",
"DatabaseProviderOptions": "डेटाबेस प्रदाता विकल्प;",
"PreBuiltApplicationModules": "पूर्व निर्मित अनुप्रयोग मॉड्यूल",
"PreBuiltApplicationModulesShortDescription": "अधिकांश सामान्य अनुप्रयोग आवश्यकताएं आपके लिए पुन: प्रयोज्य मॉड्यूल के रूप में पहले से ही विकसित हैं।",
"Account": "लेखा",
"Blogging": "ब्लॉगिंग",
"Identity": "पहचान",
"IdentityServer": "पहचान सर्वर",
"Saas": "सास",
"LanguageManagement": "भाषा प्रबंधन",
"TextTemplateManagement": "पाठ टेम्पलेट प्रबंधन",
"See All Modules": "SeeAllModules",
"ABPSuite": "एबीपी सूट",
"AbpSuiteShortDescription": "ABP सुइट ABP वाणिज्यिक का एक पूरक उपकरण है।",
"AbpSuiteExplanation": "यह आपको कुछ ही मिनटों में वेब पेज बनाने की अनुमति देता है। यह .NET कोर ग्लोबल टूल है जिसे कमांड लाइन से इंस्टॉल किया जा सकता है। यह एक नया ABP समाधान बना सकता है, डेटाबेस से फ्रंट-एंड तक CRUD पेज बना सकता है।",
"Details": "विवरण",
"LeptonTheme": "लिप्टन थीम",
"ProfessionalModernUIThemes": "पेशेवर, आधुनिक यूआई थीम",
"LeptonThemeExplanation": "लेप्टान बूटस्ट्रैप व्यवस्थापक थीम का एक सरगम प्रदान करता है जो किसी भी परियोजना के लिए एक ठोस नींव के रूप में कार्य करता है जिसमें व्यवस्थापक डैशबोर्ड की आवश्यकता होती है।",
"DefaultTheme": "पूर्व निर्धारित विषय",
"MaterialTheme": "सामग्री थीम",
"Default2Theme": "डिफ़ॉल्ट 2 थीम",
"DarkTheme": "डार्क थीम",
"DarkBlueTheme": "डार्क ब्लू थीम",
"LightTheme": "प्रकाश थीम",
"ProudToWorkWith": "गर्व के साथ काम करने के लिए",
"OurConsumers": "दुनिया भर में 50 से अधिक देशों के सैकड़ों उद्यम और डेवलपर्स एबीपी कमर्शियल पर निर्भर हैं।",
"JoinOurConsumers": "उनके साथ जुड़ें और तेजी से अद्भुत उत्पादों का निर्माण करें।",
"AdditionalServicesExplanation": "क्या आपको अतिरिक्त या कस्टम सेवाओं की आवश्यकता है? <strong> हम और हमारे साथी प्रदान कर सकते हैं; </ strong>",
"CustomProjectDevelopment": "कस्टम परियोजना विकास",
"CustomProjectDevelopmentExplanation": "अपने कस्टम प्रोजेक्ट्स के लिए समर्पित डेवलपर्स।",
"PortingExistingProjects": "मौजूदा परियोजनाओं को पोर्ट करना",
"PortingExistingProjectsExplanation": "एबीपी प्लेटफॉर्म पर अपनी विरासत परियोजनाओं को माइग्रेट करना।",
"LiveSupport": "लाइव सहायता",
"LiveSupportExplanation": "जरूरत पड़ने पर लाइव रिमोट सपोर्ट का विकल्प।",
"Training": "प्रशिक्षण",
"TrainingExplanation": "अपने डेवलपर्स के लिए समर्पित प्रशिक्षण।",
"OnBoarding": "ज्ञानप्राप्ति",
"OnBoardingExplanation": "अपने विकास, CI और सीडी वातावरण को सेटअप करने में मदद करें।",
"PrioritizedTechnicalSupport": "प्राथमिक तकनीकी सहायता",
"PremiumSupportExplanation": "एबीपी ढांचे के महान सामुदायिक समर्थन के अलावा, हमारी सहायता टीम उच्च प्राथमिकता वाले वाणिज्यिक उपयोगकर्ताओं की तकनीकी सवालों और समस्याओं का जवाब देती है।",
"SeeTheSupportOptions": "समर्थन विकल्प देखें",
"Contact": "संपर्क करें",
"TellUsWhatYouNeed": "अपनी ज़रूरत के बारे में हमें बताएं।",
"YourMessage": "आपका संदेश",
"YourFullName": "आपका पूरा नाम",
"EmailField": "ईमेल पता",
"YourEmailAddress": "आपका ईमेल पता",
"HowMayWeHelpYou": "हम कैसे आपकी सहायता कर सकते हैं?",
"SendMessage": "मेसेज भेजें",
"Success": "सफलता",
"WeWillReplyYou": "हमें आपका संदेश प्राप्त हुआ और शीघ्र ही संपर्क में आएगा।",
"GoHome": "घर जाओ",
"CreateLiveDemo": "लाइव डेमो बनाएँ",
"RegisterToTheNewsletter": "ABP.IO के बारे में जानकारी प्राप्त करने के लिए न्यूज़लेटर के लिए रजिस्टर करें, जिसमें नई रिलीज़ आदि शामिल हैं।",
"EnterYourEmailOrLogin": "अपने मौजूदा खाते का उपयोग करके अपना डेमो बनाने के लिए अपना ई-मेल पता दर्ज करें या अपना प्रदर्शन <a href=\"lights0 Ideal\"> लॉगिन </a> करें।",
"ApplicationTemplate": "एप्लिकेशन टेम्पलेट",
"ApplicationTemplateExplanation": "एप्लिकेशन स्टार्टअप टेम्पलेट का उपयोग एक नया वेब एप्लिकेशन बनाने के लिए किया जाता है।",
"EfCoreProvider": "इकाई ढाँचा (SQL सर्वर, MySQL, PostgreSQL, Oracle <a href=\"https://docs.microsoft.com/en-us/ef/core/providers/\"> और अन्य </a> का समर्थन करता है)",
"AlreadyIncludedInTemplateModules": "निम्नलिखित मॉड्यूल पहले से ही इस टेम्पलेट में शामिल और कॉन्फ़िगर किए गए हैं:",
"ApplicationTemplateArchitecture": "यह एप्लिकेशन टेम्पलेट tiered आर्किटेक्चर का भी समर्थन करता है जहां UI लेयर, API लेयर और ऑथेंटिकेशन सर्विस को शारीरिक रूप से अलग किया जाता है।",
"SeeTheGuideOrGoToTheLiveDemo": "इस टेम्पलेट के बारे में तकनीकी जानकारी के लिए डेवलपर गाइड देखें या लाइव डेमो पर जाएं।",
"DeveloperGuide": "डेवलपर गाइड",
"ModuleTemplate": "मॉड्यूल टेम्पलेट",
"ModuleTemplateExplanation1": "आप एक मॉड्यूल बनाना और विभिन्न अनुप्रयोगों में पुन: उपयोग करना चाहते हैं? यह स्टार्टअप टेम्पलेट एक पुन: प्रयोज्य <strong> अनुप्रयोग मॉड्यूल </ strong> या <strong> microservice </ strong> बनाने के लिए शुरू करने के लिए सब कुछ तैयार करता है।",
"ModuleTemplateExplanation2": "<p> आप एकल मॉड्यूल के लिए एकल या एकाधिक UI फ्रेमवर्क, एकल या एकाधिक डेटाबेस प्रदाता का समर्थन कर सकते हैं। स्टार्टअप टेम्प्लेट को चलाने के लिए कॉन्फ़िगर किया गया है और <strong> अपने मॉड्यूल का परीक्षण करें </ strong> यूनिट और एकीकरण परीक्षण के बुनियादी ढांचे के अलावा न्यूनतम आवेदन में। </ p> <p> इस टेम्पलेट के बारे में तकनीकी जानकारी के लिए डेवलपर गाइड देखें। </ p>",
"WithAllStyleOptions": "सभी शैली विकल्पों के साथ",
"Demo": "डेमो",
"SeeAllModules": "सभी मॉड्यूल देखें",
"ABPCLIExplanation": "ABP CLI (कमांड लाइन इंटरफेस) ABP आधारित समाधानों के लिए कुछ सामान्य ऑपरेशन करने के लिए एक कमांड लाइन टूल है।",
"ABPSuiteEasilyCURD": "एबीपी सूट एक उपकरण है जो आपको आसानी से CRUD पेज बनाने की अनुमति देता है",
"WeAreHereToHelp": "हम यहाँ हैं <span class = \"zero-text\"> मदद </ span>",
"BrowseOrAskQuestion": "आप हमारे सहायता विषयों को ब्राउज़ कर सकते हैं या अक्सर पूछे जाने वाले प्रश्नों में खोज कर सकते हैं, या आप <a href=\" जटिलताओं0arios\" class=\"text-success\"> संपर्क फ़ॉर्म </a> का उपयोग करके हमसे एक प्रश्न पूछ सकते हैं।",
"SearchQuestionPlaceholder": "अक्सर पूछे जाने वाले प्रश्नों में खोजें",
"WhatIsTheABPCommercial": "ABP कमर्शियल क्या है?",
"WhatAreDifferencesThanAbpFramework": "ओपन सोर्स ABP फ्रेमवर्क और ABP कमर्शियल के बीच क्या अंतर हैं?",
"ABPCommercialExplanation": "एबीपी कमर्शियल, खुले स्रोत के शीर्ष पर बनाए गए प्रीमियम मॉड्यूल, टूल, थीम और सेवाओं का एक सेट है जो <a target=\"_blank\" href=\"ministr0arios\"> ABP फ्रेमवर्क </a> है। एबीपी कमर्शियल को एबीपी फ्रेमवर्क के पीछे उसी टीम द्वारा विकसित और समर्थित किया जा रहा है।",
"WhatAreDifferencesThanABPFrameworkExplanation": "<p> <a target=\"_blank\" href=\"lights0 Ideal\"> ABP फ्रेमवर्क </a> ASP.NET Core के लिए एक मॉड्यूलर, थीमेबल, माइक्रो-सर्विस संगत एप्लिकेशन डेवलपमेंट फ्रेमवर्क है। यह आपको हर नई परियोजना के लिए खुद को दोहराने के बजाय अपने खुद के व्यवसाय कोड पर ध्यान केंद्रित करने के लिए एक पूर्ण वास्तुकला और एक मजबूत बुनियादी ढांचा प्रदान करता है। यह सॉफ्टवेयर विकास सर्वोत्तम प्रथाओं और लोकप्रिय उपकरणों पर आधारित है जिन्हें आप पहले से जानते हैं। </ p> <p> एबीपी फ्रेमवर्क पूरी तरह से मुक्त, खुला स्रोत और समुदाय-संचालित है। यह एक मुफ्त थीम और कुछ पूर्व-निर्मित मॉड्यूल (जैसे पहचान प्रबंधन और किरायेदार प्रबंधन) प्रदान करता है। </ p>",
"VisitTheFrameworkVSCommercialDocument": "अधिक जानकारी के लिए, निम्न लिंक पर जाएं <a href=\"ministr0arios\" target=\"_blank\"> {1} </a>",
"ABPCommercialFollowingBenefits": "एबीपी वाणिज्यिक एबीपी ढांचे के शीर्ष पर निम्नलिखित लाभ जोड़ता है;",
"Professional": "पेशेवर",
"UIThemes": "यूआई थीम",
"EnterpriseModules": "एंटरप्राइज रेडी, फीचर से भरपूर, पहले से निर्मित <a href=\"lights0 Ideal\"> एप्लिकेशन मॉड्यूल </a> (जैसे पहचान सर्वर प्रबंधन, सास प्रबंधन, भाषा प्रबंधन)",
"ToolingToSupport": "अपनी विकास उत्पादकता का समर्थन करने का टूल",
"PremiumSupportLink": "प्रीमियम <a href=\"ministr0arios\" target=\"_blank\"> समर्थन </a>",
"WhatDoIDownloadABPCommercial": "जब मैं एबीपी कमर्शियल खरीदता हूं तो क्या डाउनलोड करता हूं?",
"CreateUnlimitedSolutions": "एक बार जब आप एक एबीपी कमर्शियल लाइसेंस खरीदते हैं, तो आप असीमित समाधान बना पाएंगे, जैसे कि <a href=\"find0 Ideal\"> Get Started </a> दस्तावेज़ में वर्णित है।",
"ABPCommercialSolutionExplanation": "जब आप एक नया एप्लिकेशन बनाते हैं, तो आपको अपनी प्राथमिकताओं के आधार पर एक विज़ुअल स्टूडियो समाधान (एक स्टार्टअप टेम्प्लेट) मिलता है। डाउनलोड किए गए समाधान में आपके लिए पहले से इंस्टॉल और कॉन्फ़िगर किए गए वाणिज्यिक मॉड्यूल और थीम हैं। यदि आप चाहें तो आप पहले से स्थापित मॉड्यूल को हटा सकते हैं या किसी अन्य मॉड्यूल को जोड़ सकते हैं। सभी मॉड्यूल और थीम डिफ़ॉल्ट रूप से एक NuGet / NPM पैकेज का उपयोग किया जाता है।",
"StartDevelopWithTutorials": "डाउनलोड किया गया समाधान अच्छी तरह से वास्तुकला और दस्तावेज है। आप अपने स्वयं के व्यवसाय कोड को इस आधार पर विकसित करना शुरू कर सकते हैं कि वह <a href=\"directory0 Ideal\"> ट्यूटोरियल्स </a> का अनुसरण कर सकता है",
"TryTheCommercialDemo": "ABP कमर्शियल स्टार्टअप टेम्प्लेट का उपयोग करके बनाए गए एक नमूना अनुप्रयोग को देखने के लिए आप <a href=\" जटिलताओं0 Ideal\"> डेमो </a> का प्रयास कर सकते हैं।",
"HowManyProducts": "ABP वाणिज्यिक का उपयोग करके मैं कितने विभिन्न उत्पाद / समाधान बना सकता हूं?",
"HowManyProductsExplanation": "ABP प्रोजेक्ट बनाने की कोई सीमा नहीं है। आप जितने चाहें उतने प्रोजेक्ट बना सकते हैं, उन्हें विकसित कर सकते हैं और उन्हें विभिन्न सर्वरों पर अपलोड कर सकते हैं।",
"HowManyDevelopers": "एबीपी कमर्शियल पर कितने डेवलपर काम कर सकते हैं?",
"HowManyDevelopersExplanation": "एबीपी वाणिज्यिक लाइसेंस प्रति डेवलपर हैं। विभिन्न लाइसेंस प्रकारों में अलग-अलग डेवलपर सीमाएँ होती हैं। हालाँकि, जब भी आपको आवश्यकता हो, आप किसी भी प्रकार के लाइसेंस में अधिक डेवलपर्स जोड़ सकते हैं। लाइसेंस प्रकार, डेवलपर सीमा और अतिरिक्त डेवलपर लागतों के लिए <a href=\" जटिलताओं0 Ideal\"> कीमतें </a> पृष्ठ देखें।",
"ChangingLicenseType": "क्या मैं भविष्य में अपना लाइसेंस प्रकार बदल सकता हूं?",
"ChangingLicenseTypeExplanation": "आप अपने समान लाइसेंस प्रकार में हमेशा नए डेवलपर्स को जोड़ सकते हैं। यह भी देखें \"एबीपी कमर्शियल पर कितने डेवलपर काम कर सकते हैं?\"। आप गणना मूल्य अंतर का भुगतान करके एक उच्च लाइसेंस के लिए भी अपग्रेड कर सकते हैं। जब आप उच्च लाइसेंस योजना में अपग्रेड करते हैं, तो आपको नई योजना का लाभ मिलता है, लेकिन लाइसेंस अपग्रेड लाइसेंस की समाप्ति की तारीख को नहीं बदलता है।",
"LicenseExtendUpgradeDiff": "लाइसेंस विस्तार और उन्नयन के बीच क्या अंतर है?",
"LicenseExtendUpgradeDiffExplanation": "<strong> विस्तार: </ strong> अपने लाइसेंस का विस्तार / नवीनीकरण करके, आप प्रीमियम समर्थन प्राप्त करना और मॉड्यूल और थीम के लिए प्रमुख अपडेट प्राप्त करना जारी रखेंगे। इसके अलावा, आप नई परियोजनाओं को जारी रखने में सक्षम होंगे। और आप अभी भी एबीपी सूट का उपयोग कर पाएंगे जो आपके विकास को गति देता है। <hr /> <strong> उन्नयन: </ strong> अपने लाइसेंस को अपग्रेड करके, आप एक उच्च लाइसेंस योजना को बढ़ावा देंगे जिससे आप अतिरिक्त लाभ प्राप्त कर सकेंगे। । लाइसेंस योजनाओं के बीच अंतर की जांच करने के लिए <a href=\"/pricing\"> लाइसेंस तुलना तालिका </a> देखें। <strong> दूसरी ओर, जब आप अपग्रेड करते हैं, तो आपकी लाइसेंस की समाप्ति तिथि नहीं बदलेगी! </ Strong> > अपनी लाइसेंस की अंतिम तिथि बढ़ाने के लिए, आपको अपने लाइसेंस का विस्तार करना होगा।",
"LicenseRenewalCost": "1 वर्ष के बाद लाइसेंस नवीनीकरण लागत क्या है?",
"LicenseRenewalCostExplanation": "सभी एबीपी वाणिज्यिक स्थायी लाइसेंसों का नवीकरण (विस्तार) दर लाइसेंस सूची मूल्य का {0} है। मानक टीम लाइसेंस का नवीनीकरण मूल्य $ {1} है, मानक व्यवसाय लाइसेंस $ {2} है और मानक एंटरप्राइज़ लाइसेंस $ {3} है। यदि आप पहले से ही ग्राहक हैं, तो उपलब्ध नवीनीकरण मूल्य निर्धारण की समीक्षा करने के लिए <a href='ministr4 Ideal' target='_blank'> अपने खाते में लॉग इन करें </a>।",
"HowDoIRenewMyLicense": "मैं अपने लाइसेंस का नवीनीकरण कैसे करूँ?",
"HowDoIRenewMyLicenseExplanation": "आप अपने लाइसेंस को <a href='elling0 Ideal' target='_blank'> संगठन प्रबंधन पृष्ठ </a> पर नेविगेट करके नवीनीकृत कर सकते हैं। हमारी रियायती अर्ली रिन्यूअल दरों का लाभ उठाने के लिए, सुनिश्चित करें कि आप अपने लाइसेंस की समय सीमा समाप्त होने से पहले नवीनीकरण करें। हालाँकि, जब आपका प्रारंभिक नवीनीकरण अवसर बंद हो जाता है, तो यह जानने की चिंता न करें। आपकी सदस्यता समाप्त होने से पहले आपको 2 अनुस्मारक ई-मेल प्राप्त होंगे। हम उन्हें 30 दिन, समाप्ति से 7 दिन पहले भेज देंगे।",
"IsSourceCodeIncluded": "क्या मेरे लाइसेंस में वाणिज्यिक मॉड्यूल और थीम का स्रोत कोड शामिल है?",
"IsSourceCodeIncludedExplanation1": "आपके द्वारा खरीदे गए लाइसेंस प्रकार पर निर्भर करता है:",
"IsSourceCodeIncludedExplanation2": "<strong> टीम </ strong>: आपका समाधान मॉड्यूल और थीम को NuGet और NPM पैकेज के रूप में उपयोग करता है। इसमें उनका स्रोत कोड शामिल नहीं है। इस तरह, जब भी कोई नया संस्करण उपलब्ध हो, आप इन मॉड्यूल और थीम को आसानी से अपग्रेड कर सकते हैं। हालाँकि, आप मॉड्यूल और थीम के स्रोत कोड प्राप्त नहीं कर सकते।",
"IsSourceCodeIncludedExplanation3": "<strong> व्यवसाय / उद्यम </ strong>: टीम लाइसेंस के अतिरिक्त, आप किसी भी मॉड्यूल या थीम की आवश्यकता के स्रोत कोड को डाउनलोड करने में सक्षम हैं। तुम भी एक विशेष मॉड्यूल के लिए NuGet / NPM पैकेज संदर्भ निकाल सकते हैं और इसे पूरी तरह से बदलने के लिए अपने समाधान के लिए अपने स्रोत कोड को सीधे जोड़ सकते हैं।",
"IsSourceCodeIncludedExplanation4": "<p> एक मॉड्यूल के स्रोत कोड को आपके समाधान में शामिल करना आपको उस मॉड्यूल को अनुकूलित करने की अधिकतम स्वतंत्रता देता है। हालाँकि, तब नया संस्करण जारी होने पर मॉड्यूल को स्वचालित रूप से अपग्रेड करना संभव नहीं होगा। </ p> <p> किसी भी लाइसेंस में ABP सुइट स्रोत कोड शामिल नहीं है, जो एक बाहरी उपकरण है जो आपके लिए कोड बनाता है और सहायता करता है आपके विकास के लिए। </ p> <p> लाइसेंस प्रकारों के अन्य अंतरों के लिए <a href=\"lights0 Ideal\"> मूल्य निर्धारण </a> पृष्ठ देखें। </ p>",
"ChangingDevelopers": "क्या मैं भविष्य में अपने संगठन के पंजीकृत डेवलपर्स को बदल सकता हूं?",
"ChangingDevelopersExplanation": "अपने लाइसेंस में नए डेवलपर्स को जोड़ने के अलावा, आप मौजूदा डेवलपर्स को भी बदल सकते हैं (आप एक डेवलपर को हटा सकते हैं और एक ही सीट पर एक नया जोड़ सकते हैं) बिना किसी अतिरिक्त लागत के।",
"WhatHappensWhenLicenseEnds": "मेरे लाइसेंस की अवधि समाप्त होने पर क्या होता है?",
"WhatHappensWhenLicenseEndsExplanation1": "ABP कमर्शियल लाइसेंस का प्रकार <a href=\" जटिलताओं0arios\" target=\"_blank\"> स्थायी लाइसेंस </a> है। आपके लाइसेंस की समय सीमा समाप्त होने के बाद, आप अपना प्रोजेक्ट विकसित करना जारी रख सकते हैं। और आप अपने लाइसेंस को नवीनीकृत करने के लिए बाध्य नहीं हैं। आपका लाइसेंस एक वर्ष के अपडेट और समर्थन योजना के साथ आता है। नई सुविधाओं को प्राप्त करने के लिए, प्रदर्शन में वृद्धि, बग फिक्स, समर्थन और एबीपी सूट का उपयोग करना जारी रखें, प्रत्येक वर्ष अपनी योजना को नवीनीकृत करना सुनिश्चित करें। जब आपका लाइसेंस समाप्त हो जाता है, तो आप निम्नलिखित लाभ प्राप्त नहीं कर पाएंगे;",
"WhatHappensWhenLicenseEndsExplanation2": "आप एबीपी कमर्शियल का उपयोग करके नए समाधान नहीं बना सकते हैं, लेकिन आप अपने मौजूदा अनुप्रयोगों को हमेशा के लिए विकसित कर सकते हैं।",
"WhatHappensWhenLicenseEndsExplanation3": "आप अपने मुख्य संस्करण के भीतर मॉड्यूल और विषयों के लिए अद्यतन प्राप्त करने में सक्षम होंगे। उदाहरण के लिए; यदि आप किसी मॉड्यूल के v3.2.0 का उपयोग कर रहे हैं, तो आप उस मॉड्यूल के v3.x.x (v3.3.0, v3.5.2 ... आदि) के लिए अपडेट प्राप्त कर सकते हैं। लेकिन आपको अगले प्रमुख संस्करण के लिए अपडेट नहीं मिल सकता है (जैसे v4.x, v5.x)",
"WhatHappensWhenLicenseEndsExplanation4": "आप अपने लाइसेंस समाप्त होने के बाद एबीपी वाणिज्यिक मंच में जोड़े गए नए मॉड्यूल और थीम स्थापित नहीं कर सकते।",
"WhatHappensWhenLicenseEndsExplanation5": "आप एबीपी सूट का उपयोग नहीं कर सकते।",
"WhatHappensWhenLicenseEndsExplanation6": "आपको अब और <a href=\" जटिलताओं0 Ideal\"> प्रीमियम सहायता </a> नहीं मिल सकती है।",
"WhatHappensWhenLicenseEndsExplanation7": "यदि आप इन लाभों को प्राप्त करना जारी रखना चाहते हैं तो आप अपनी सदस्यता को नवीनीकृत कर सकते हैं। जब आप अपनी सदस्यता को नवीनीकृत करते हैं तो 20% छूट मिलती है।",
"WhenShouldIRenewMyLicense": "मुझे अपना लाइसेंस कब नवीनीकृत करना चाहिए?",
"WhenShouldIRenewMyLicenseExplanation1": "यदि आप अपना लाइसेंस समाप्त होने के बाद अपने लाइसेंस का नवीनीकरण <strong> 1 महीने </ strong> के भीतर करते हैं, तो कुल लाइसेंस मूल्य पर% 20 छूट लागू होगी।",
"WhenShouldIRenewMyLicenseExplanation2": "यदि आप अपनी लाइसेंस की समाप्ति तिथि से 1 महीने के बाद अपना लाइसेंस नवीनीकृत करते हैं, तो नवीनीकरण मूल्य लाइसेंस खरीद मूल्य के समान होगा और आपके नवीकरण के लिए कोई छूट नहीं होगी।",
"TrialPlan": "क्या आपके पास एक परीक्षण योजना है?",
"TrialPlanExplanation": "अभी के लिए, एबीपी कमर्शियल में ट्रायल प्लान नहीं है। टीम लाइसेंस के लिए हम 30 दिन की मनी बैक गारंटी प्रदान करते हैं। आप पहले 30 दिनों में धनवापसी का अनुरोध कर सकते हैं। बिजनेस और एंटरप्राइज लाइसेंस के लिए, हम 30 दिनों में 60% रिफंड प्रदान करते हैं। ऐसा इसलिए है क्योंकि व्यवसाय और एंटरप्राइज़ लाइसेंस में सभी मॉड्यूल और थीम का पूर्ण स्रोत कोड शामिल है।",
"DoYouAcceptBankWireTransfer": "क्या आप बैंक वायर ट्रांसफर स्वीकार करते हैं?",
"DoYouAcceptBankWireTransferExplanation": "हां, हम बैंक वायर ट्रांसफर स्वीकार करते हैं। <br /> बैंक वायर ट्रांसफर के माध्यम से लाइसेंस राशि भेजने के बाद, हमें अपनी रसीद और अनुरोधित लाइसेंस प्रकार ई-मेल के माध्यम से भेजें। <br /> हमारे अंतरराष्ट्रीय बैंक खाते की जानकारी:",
"HowToUpgrade": "नया संस्करण उपलब्ध होने पर मौजूदा एप्लिकेशन को कैसे अपग्रेड किया जाए?",
"HowToUpgradeExplanation1": "जब आप ABP कमर्शियल का उपयोग करके एक नया एप्लिकेशन बनाते हैं, तो सभी मॉड्यूल और थीम को NuGet और NPM पैकेज के रूप में उपयोग किया जाता है। इसलिए, नया संस्करण उपलब्ध होने पर आप आसानी से संकुल को अपग्रेड कर सकते हैं।",
"HowToUpgradeExplanation2": "मानक NuGet / NPM अपग्रेड के अलावा, <a href=\"lights0arios\"> ABP CLI </a> एक अपडेट कमांड प्रदान करता है जो आपके समाधान में सभी एबीपी से संबंधित पैकेजों को स्वचालित रूप से ढूंढता है और उन्हें अपग्रेड करता है।",
"DatabaseSupport": "कौन से डेटाबेस सिस्टम समर्थित हैं?",
"DatabaseSupportExplanation": "ABP फ्रेमवर्क स्वयं ही डेटाबेस अज्ञेयवादी है और अपनी प्रकृति के अनुसार किसी भी डेटाबेस प्रदाता के साथ काम कर सकता है। वर्तमान में कार्यान्वित प्रदाताओं की सूची के लिए <a href=\" जटिलताओं0arios\" target=\"_blank\"> डेटा एक्सेस दस्तावेज़ </a> देखें।",
"UISupport": "कौन से UI फ्रेमवर्क समर्थित हैं?",
"Supported": "समर्थित",
"UISupportExplanation": "ABP फ्रेमवर्क स्वयं UI फ्रेमवर्क अज्ञेयवादी है और किसी भी UI फ्रेमवर्क के साथ काम कर सकता है। हालाँकि, सभी UI फ्रेमवर्क के लिए स्टार्टअप टेम्प्लेट, मॉड्यूल UI और थीम लागू नहीं किए गए थे। UI विकल्पों की अप-टू-डेट सूची के लिए <a href=\" जटिलताओं0arios\"> आरंभ किया गया दस्तावेज़ </a> देखें।",
"MicroserviceSupport": "क्या यह सूक्ष्म सेवा वास्तुकला का समर्थन करता है?",
"MicroserviceSupportExplanation1": "एबीपी ढांचे का एक प्रमुख लक्ष्य सूक्ष्म सेवा समाधान बनाने के लिए एक सुविधाजनक बुनियादी ढांचा प्रदान करना है। यह समझने के लिए कि यह माइक्रो-सर्विस सिस्टम बनाने में कैसे मदद करता है, यह समझने के लिए <a href=\" जटिलताओं0 Ideal\"> माइक्रो-सर्विस आर्किटेक्चर </a> दस्तावेज़ देखें।",
"MicroserviceSupportExplanation2": "सभी एबीपी कमर्शियल मॉड्यूल्स को <a href=\" जटिलताओं0arios\"> मॉड्यूल डेवलपमेंट बेस्ट प्रैक्टिस </a> दस्तावेज़ का पालन करके माइक्रो-सर्विस परिनियोजन परिदृश्य (अपने एपीआई और डेटाबेस के साथ) का समर्थन करने के लिए डिज़ाइन किया गया है।",
"MicroserviceSupportExplanation3": "हम आपको अपना स्वयं का समाधान बनाने में मदद करने के लिए एक माइक्रो-सेवा वास्तुकला कार्यान्वयन को प्रदर्शित करने वाला एक नमूना <a href=\"ministr0 Ideal\"> माइक्रो-सर्विस डेमो समाधान </a> प्रदान करते हैं।",
"MicroserviceSupportExplanation4": "तो, संक्षिप्त उत्तर \"<strong> हां है, यह सूक्ष्म सेवा वास्तुकला का समर्थन करता है </ strong>\"।",
"MicroserviceSupportExplanation5": "हालाँकि, एक माइक्रो-सर्विस सिस्टम एक समाधान है और हर समाधान में अलग-अलग आवश्यकताएं, नेटवर्क टोपोलॉजी, संचार परिदृश्य, प्रमाणीकरण संभावनाएं, डेटाबेस पृथक्करण / साझा करने के निर्णय, रनटाइम कॉन्फ़िगरेशन, 3 पार्टी सिस्टम एकीकरण और कई और अधिक होंगे।",
"MicroserviceSupportExplanation6": "ABP फ्रेमवर्क और ABP कमर्शियल आपको अपने स्वयं के समाधान का निर्माण करने में मदद करने के लिए सूक्ष्म सेवा परिदृश्य, सूक्ष्म सेवा संगत मॉड्यूल, नमूने और प्रलेखन के लिए बुनियादी ढाँचा प्रदान करता है। लेकिन अपने सपनों के समाधान को सीधे आपके लिए पहले से डाउनलोड करने की उम्मीद न करें। आपको इसे समझने और अपनी आवश्यकताओं के आधार पर कुछ हिस्सों को एक साथ लाने की आवश्यकता होगी।",
"WhereCanIDownloadSourceCode": "मैं स्रोत-कोड कहां से डाउनलोड कर सकता हूं?",
"WhereCanIDownloadSourceCodeExplanation": "आप एबीपी सूट या एबीपी सीएलआई के माध्यम से सभी एबीपी मॉड्यूल, कोणीय पैकेज और थीम के स्रोत कोड डाउनलोड कर सकते हैं। <a href=\"find0 Ideal\"> स्रोत-कोड डाउनलोड कैसे करें? </a> देखें",
"ComputerLimitation": "एबीपी विकसित करते समय एक डेवलपर कितने कंप्यूटरों पर लॉगिन कर सकता है?",
"ComputerLimitationExplanation": "हम विशेष रूप से प्रति व्यक्ति / लाइसेंस प्राप्त डेवलपर के लिए <strong> {0} कंप्यूटर </ strong> की अनुमति देते हैं। जब भी किसी तीसरे मशीन पर एबीपी कमर्शियल उत्पादों को विकसित करने के लिए डेवलपर की आवश्यकता होती है, तो स्थिति को समझाते हुए लाइसेंस@abp.io को एक ई-मेल भेजा जाना चाहिए और फिर हम अपने सिस्टम में उचित आवंटन करेंगे।",
"RefundPolicy": "क्या आपके पास धनवापसी नीति है?",
"RefundPolicyExplanation": "आप अपनी लाइसेंस खरीद के <strong> 30 दिन </ strong> के भीतर धनवापसी का अनुरोध कर सकते हैं। व्यवसाय और उद्यम लाइसेंस प्रकार में स्रोत-कोड डाउनलोड विकल्प होता है, इसलिए व्यापार और उद्यम के लिए धनवापसी उपलब्ध नहीं होती है (और कोई भी लाइसेंस जिसमें स्रोत-कोड प्राप्त करने का अधिकार शामिल होता है)। इसके अलावा, नवीनीकरण और दूसरे लाइसेंस खरीद के लिए कोई भी रिफंड नहीं किया जाता है।",
"HowCanIRefundVat": "मैं VAT कैसे वापस कर सकता हूँ?",
"HowCanIRefundVatExplanation1": "यदि आपने 2 चेकआउट का उपयोग करके भुगतान किया है, तो आप अपने 2 चेकआउट खाते के माध्यम से वैट वापस कर सकते हैं:",
"HowCanIRefundVatExplanation2": "अपने <a href=\"https://secure.2checkout.com/cpanel/login.php\" target=\"_blank\"> 2 चेकआउट </a> खाते में लॉग इन करें",
"HowCanIRefundVatExplanation3": "उपयुक्त आदेश खोजें और \"रिफंड बेल्ड वैट\" दबाएं (अपनी वैट आईडी दर्ज करें)",
"HowCanIGetMyInvoice": "मैं अपना चालान कैसे प्राप्त कर सकता हूं?",
"HowCanIGetMyInvoiceExplanation": "लाइसेंस खरीदने के लिए 2 भुगतान गेटवे हैं: PayU और 2 चेकआउट। यदि आप 2Checkout गेटवे के माध्यम से अपना लाइसेंस खरीदते हैं, तो यह आपके ईमेल पते पर पीडीएफ चालान भेजता है, देखें <a href = \"https://knowledgecenter.2checkout.com/Documentation/03Billing-and-payments/Payment-operations/How-do -invoices- काम \"> 2 चेकआउट चालान। </a> यदि आप पेयू गेटवे या बैंक वायर ट्रांसफर के माध्यम से खरीदते हैं, तो हम आपका चालान तैयार करेंगे और भेजेंगे। आप अपने चालान का अनुरोध <a href=\" जटिलताओं0 Ideal\"> संगठन प्रबंधन पृष्ठ </a> से कर सकते हैं",
"Forum": "मंच",
"SupportExplanation": "ABP कमर्शियल लाइसेंस एक टीम द्वारा प्रीमियम फ़ोरम सपोर्ट प्रदान करता है जिसमें ABP फ्रेमवर्क विशेषज्ञ होते हैं।",
"PrivateTicket": "निजी टिकट",
"PrivateTicketExplanation": "एंटरप्राइज लाइसेंस में ई-मेल और टिकट प्रणाली के साथ एक निजी सहायता भी शामिल है।",
"AbpSuiteExplanation1": "ABP सुइट आपको कुछ ही मिनटों में वेब पेज बनाने की अनुमति देता है। यह .NET कोर ग्लोबल टूल है जिसे कमांड लाइन से इंस्टॉल किया जा सकता है।",
"AbpSuiteExplanation2": "यह एक नया ABP समाधान बना सकता है, डेटाबेस से फ्रंट-एंड तक CRUD पेज बना सकता है। तकनीकी ओवरव्यू के लिए <a href=\" जटिलताओं0 Ideal\"> दस्तावेज़ </a> देखें",
"FastEasy": "तेज और आसान",
"AbpSuiteExplanation3": "ABP सुइट आपको आसानी से CRUD पेज बनाने की अनुमति देता है। आपको बस अपनी इकाई और उसके गुणों को परिभाषित करने की आवश्यकता है, बाकी को आप के लिए एबीपी सूट करने दें! एबीपी सूट कुछ ही सेकंड में आपके सीआरयूडी पृष्ठ के लिए सभी आवश्यक कोड उत्पन्न करता है। यह Angular, MVC और Blazor यूजर इंटरफेस को सपोर्ट करता है।",
"RichOptions": "अमीर विकल्प",
"AbpSuiteExplanation4": "ABP सुइट <a href=\"https://docs.microsoft.com/en-us/aspnet/core/razor-pages\"> रेजर पेज </a> और <a href = \"https: / जैसे कई UI विकल्पों का समर्थन करता है /angular.io\">Angular </a>। यह <a href=\"https://www.mongodb.com\"> MongoDB </a> जैसे कई डेटाबेस का समर्थन करता है और सभी डेटाबेस <strong> EntityFramework Core <द्वारा समर्थित है / strong> (MS SQL सर्वर, Oracle, MySql, PostgreSQL और <a href=\"https://docs.microsoft.com/en-us/ef/core/providers/?tabs=dotnet-core-cii] और </a>)।",
"AbpSuiteExplanation5": "अच्छी बात यह है कि, आपको उन विकल्पों के बारे में चिंता करने की ज़रूरत नहीं है। एबीपी सूट आपके प्रोजेक्ट के प्रकार को समझता है और आपकी परियोजना के लिए कोड बनाता है और उत्पन्न कोड को आपके प्रोजेक्ट में सही जगह पर रखता है।",
"SourceCode": "सोर्स कोड",
"AbpSuiteExplanation6": "ABP स्वीट आपके लिए सोर्स कोड जेनरेट करता है! यह वेब पेज जनरेट करने के लिए मैजिक फाइल्स जेनरेट नहीं करता है। एबीपी सूट <strong> इकाई, रिपोजिटरी, एप्लीकेशन सर्विस, कोड फर्स्ट माइग्रेशन, जावास्क्रिप्ट / टाइपस्क्रिप्ट और सीएसएचटीएमएल / एचटीएमएल </ strong> और आवश्यक इंटरफेस के लिए भी स्रोत कोड उत्पन्न करता है। ABP Suite सॉफ्टवेयर डेवलपमेंट के <strong> बेस्ट प्रैक्टिसेस </ strong> के अनुसार कोड भी तैयार करता है, इसलिए आपको जनरेट किए गए कोड की गुणवत्ता के बारे में चिंता करने की आवश्यकता नहीं है।",
"AbpSuiteExplanation7": "चूँकि आपके पास सही एप्लिकेशन लेयर्स में जेनरेट किए गए CRUD पेज के बिल्डिंग ब्लॉक्स का सोर्स कोड है, आप आसानी से सोर्स कोड को संशोधित कर सकते हैं और अपने कस्टम / bussiness लॉजिक को जेनरेट कोड में इंजेक्ट कर सकते हैं।",
"CrossPlatform": "क्रास प्लेटफार्म",
"AbpSuiteExplanation8": "ABP सुइट .NET .NET के साथ बनाया गया है और यह क्रॉस प्लेटफॉर्म है। यह आपके स्थानीय कंप्यूटर पर एक वेब एप्लिकेशन के रूप में चलता है। आप इसे <strong> Windows </ strong>, <strong> Mac </ strong> और <strong> Linux </ strong> पर चला सकते हैं",
"OtherFeatures": "अन्य सुविधाओं",
"OtherFeatures1": "अपडेट्स <strong> NuGet </ strong> और <strong> NPM </ strong> पैकेज आपके समाधान पर आसानी से।",
"OtherFeatures2": "खरोंच से पहले से ही उत्पन्न पृष्ठों को पुन: उत्पन्न करता है।",
"OtherFeatures3": "नए समाधान बनाता है",
"ThanksForCreatingProject": "अपना प्रोजेक्ट बनाने के लिए धन्यवाद!",
"HotToRunSolution": "अपना हल कैसे चलाएं?",
"HotToRunSolutionExplanation": "अपने समाधान को कॉन्फ़िगर करने और चलाने का तरीका जानने के लिए आरंभ किया गया दस्तावेज़ देखें।",
"GettingStarted": "शुरू करना",
"WebAppDevTutorial": "वेब ऐप देव ट्यूटोरियल",
"WebAppDevTutorialExplanation": "कदम विकास नमूना द्वारा एक कदम के लिए वेब अनुप्रयोग विकास ट्यूटोरियल दस्तावेज़ देखें।",
"Document": "डाक्यूमेंट",
"UsingABPSuiteToCURD": "CRUD पेज जनरेशन और टूलिंग के लिए ABP सूट का उपयोग करना",
"SeeABPSuiteDocument": "ABP सुइट का उपयोग जानने के लिए ABP सुइट दस्तावेज़ देखें।",
"AskQuestionsOnSupport": "आप एबीपी कमर्शियल सपोर्ट पर सवाल पूछ सकते हैं।",
"Documentation": "प्रलेखन",
"SeeModulesDocument": "सभी वाणिज्यिक (समर्थक) मॉड्यूल और उनके दस्तावेजों की सूची के लिए मॉड्यूल दस्तावेज़ देखें।",
"Pricing": "मूल्य निर्धारण",
"PricingExplanation": "आज अपनी व्यावसायिक आवश्यकताओं के लिए सुविधाओं और कार्यक्षमता का चयन करें। जैसे ही आपका व्यवसाय बढ़ता है, आसानी से अपग्रेड करें।",
"Team": "टीम",
"Business": "व्यापार",
"Enterprise": "उद्यम",
"Custom": "रिवाज",
"IncludedDeveloperLicenses": "डेवलपर लाइसेंस शामिल हैं",
"CustomLicenceOrAdditionalServices": "कस्टम लाइसेंस या अतिरिक्त सेवाओं की आवश्यकता है?",
"CustomOrVolumeLicense": "कस्टम या वॉल्यूम लाइसेंस",
"LiveTrainingSupport": "लाइव प्रशिक्षण और समर्थन",
"AndMore": "और अधिक",
"AdditionalDeveloperLicense": "अतिरिक्त डेवलपर लाइसेंस",
"ProjectCount": "प्रोजेक्ट की गिनती",
"AllProModules": "सभी प्रो मॉड्यूल",
"AllProThemes": "सभी प्रो थीम",
"AllProStartupTemplates": "सभी प्रो स्टार्टअप टेम्प्लेट",
"SourceCodeOfAllModules": "सभी मॉड्यूल का स्रोत कोड",
"SourceCodeOfAllThemes": "सभी विषयों का स्रोत कोड",
"PerpetualLicense": "हमेशा के लिए लाइसेंस",
"UnlimitedServerDeployment": "असीमित सर्वर की तैनाती",
"YearUpgrade": "1 साल का उन्नयन",
"YearPremiumForumSupport": "1 साल का प्रीमियम फोरम सपोर्ट",
"ForumSupportIncidentCountYear": "फोरम समर्थन घटना गिनती / वर्ष",
"PrivateTicketEmailSupport": "निजी टिकट और ईमेल समर्थन",
"BuyNow": "अभी खरीदें",
"PayViaAmexCard": "मैं अपने AMEX कार्ड के माध्यम से कैसे भुगतान कर सकता हूं?",
"PayViaAmexCardDescription": "डिफ़ॉल्ट भुगतान गेटवे 'Iyzico' सुरक्षा उपायों के कारण कुछ AMEX क्रेडिट कार्डों को अस्वीकार कर सकता है। इस मामले में, आप वैकल्पिक भुगतान गेटवे '2 चेकआउट' के माध्यम से भुगतान कर सकते हैं।",
"ThankYou": "धन्यवाद",
"InvalidReCaptchaErrorMessage": "ReCAPTCHA को सत्यापित करने में एक त्रुटि हुई थी। कृपया पुन: प्रयास करें।"
}
}

296
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json

@ -0,0 +1,296 @@
{
"culture": "it",
"texts": {
"OrganizationManagement": "Gestione dell'organizzazione",
"OrganizationList": "Elenco delle organizzazioni",
"Volo.AbpIo.Commercial:010003": "Non sei il proprietario di questa organizzazione!",
"OrganizationNotFoundMessage": "Nessuna organizzazione trovata!",
"DeveloperCount": "Sviluppatori allocati / totali",
"QuestionCount": "Domande rimanenti / totali",
"Unlimited": "Illimitato",
"Owners": "Proprietari",
"AddMember": "Aggiungi membro",
"AddOwner": "Aggiungi proprietario",
"AddDeveloper": "Aggiungi sviluppatore",
"UserName": "Nome utente",
"Name": "Nome",
"EmailAddress": "Indirizzo e-mail",
"Developers": "Sviluppatori",
"LicenseType": "Tipo di licenza",
"Manage": "Gestire",
"StartDate": "Data d'inizio",
"EndDate": "Data di fine",
"Modules": "Moduli",
"LicenseExtendMessage": "La data di fine della tua licenza è estesa a {0}",
"LicenseUpgradeMessage": "La tua licenza è stata aggiornata a {0}",
"LicenseAddDeveloperMessage": "{0} sviluppatori aggiunti alla tua licenza",
"Volo.AbpIo.Commercial:010004": "Impossibile trovare l'utente specificato! L'utente deve essere già registrato.",
"MyOrganizations": "Le mie organizzazioni",
"ApiKey": "Chiave API",
"UserNameNotFound": "Nessun utente con nome utente {0}",
"SuccessfullyAddedToNewsletter": "Grazie per esserti iscritto alla nostra newsletter!",
"MyProfile": "Il mio profilo",
"EmailNotValid": "Si prega di inserire un indirizzo email valido.",
"JoinOurMarketingNewsletter": "Iscriviti alla nostra newsletter di marketing",
"WouldLikeToReceiveMarketingMaterials": "Vorrei ricevere materiale di marketing come offerte di prodotti e offerte speciali.",
"StartUsingYourLicenseNow": "Inizia subito a usare la tua licenza!",
"WelcomePage": "Pagina di benvenuto",
"UnsubscriptionExpireEmail": "Annulla l'iscrizione alle e-mail di promemoria della data di scadenza della licenza",
"UnsubscribeLicenseExpireEmailReminderMessage": "Questa sottoscrizione e-mail contiene solo il promemoria della data di scadenza della licenza.",
"UnsubscribeFromLicenseExpireEmails": "Se non desideri ricevere le e-mail sulla data di scadenza della licenza, puoi annullare l'iscrizione in qualsiasi momento lo desideri.",
"Unsubscribe": "Annulla l'iscrizione",
"NotOrganizationMember": "Non sei membro di nessuna organizzazione.",
"UnsubscribeLicenseExpirationEmailSuccessTitle": "Iscrizione annullata con successo",
"UnsubscribeLicenseExpirationEmailSuccessMessage": "Non riceverai più email di promemoria della data di scadenza della licenza.",
"IndexPageHeroSection": "<span class = \"first-line\"> Una completa </span> <span class = \"second-line\"> piattaforma di sviluppo web </span> <span class = \"third-line\"> integrata <img src = \"{0}\" width = \"110\" class = \"ml-1\" /> framework </span>",
"AbpCommercialShortDescription": "ABP Commercial fornisce moduli applicativi predefiniti, strumenti per lo sviluppo rapido di applicazioni, temi dell'interfaccia utente professionale, supporto premium e altro ancora.",
"LiveDemo": "Dimostrazione dal vivo",
"GetLicence": "Ottieni una licenza",
"Application": "Applicazione",
"StartupTemplates": "Modelli di avvio",
"Startup": "Avviare",
"Templates": "Modelli",
"Developer": "Sviluppatore",
"Tools": "Utensili",
"Premium": "Premium",
"PremiumSupport": "Supporto premium",
"PremiumForumSupport": "Supporto forum premium",
"UI": "UI",
"Themes": "Temi",
"JoinOurNewsletter": "Iscriviti alla nostra newsletter",
"Send": "Spedire",
"Learn": "Imparare",
"AdditionalServices": "Servizi aggiuntivi",
"WhatIsABPFramework": "QUAL È IL QUADRO ABP?",
"OpenSourceBaseFramework": "Framework di base open source",
"ABPFrameworkExplanation": "<p class = \"lead\"> ABP Commercial si basa su ABP Framework, un framework per applicazioni web open source e guidato dalla comunità per ASP.NET Core. </p> <p> ABP Framework fornisce un'eccellente infrastruttura per la scrittura gestibile ed estensibile e codice testabile con best practice. </p> <p> Costruito e integrato in strumenti popolari che già conosci. Bassa curva di apprendimento, facile adattamento, sviluppo confortevole. </p>",
"Modular": "Modulare",
"MicroserviceCompatible": "Compatibile con microservizi",
"DomainDrivenDesignInfrastructure": "Infrastruttura di progettazione basata sul dominio",
"MultiTenancy": "Multi-Tenancy",
"DistributedMessaging": "Messaggistica distribuita",
"DynamicProxying": "Proxying dinamico",
"BackgroundJobs": "Lavori in background",
"AuditLogging": "Registrazione di audit",
"BLOBStoring": "Archiviazione BLOB",
"BundlingMinification": "Raggruppamento e minimizzazione",
"AdvancedLocalization": "Localizzazione avanzata",
"ManyMore": "Molti altri",
"ExploreTheABPFramework": "Esplora il framework ABP",
"WhyUseTheABPCommercial": "Perché utilizzare lo spot pubblicitario ABP?",
"WhyUseTheABPCommercialExplanation": "<p class = \"lead mt- 5\"> La creazione di applicazioni Web di livello aziendale può essere complessa e richiede tempo. </p> <p> ABP Commercial offre l'infrastruttura di base perfetta necessaria per tutti i moderni ASP.NET Core di livello aziendale soluzioni basate. Dalla progettazione all'implementazione, l'intero ciclo di sviluppo è potenziato dalle funzionalità e dai moduli integrati di ABP. </p>",
"StartupTemplatesShortDescription": "I modelli di avvio ti consentono di avviare rapidamente il tuo progetto in pochi secondi.",
"UIFrameworksOptions": "Opzioni dei framework dell'interfaccia utente;",
"DatabaseProviderOptions": "Opzioni del provider di database;",
"PreBuiltApplicationModules": "Moduli applicativi predefiniti",
"PreBuiltApplicationModulesShortDescription": "I requisiti delle applicazioni più comuni sono già stati sviluppati per te come moduli riutilizzabili.",
"Account": "account",
"Blogging": "Blogging",
"Identity": "Identità",
"IdentityServer": "Identity Server",
"Saas": "Saas",
"LanguageManagement": "Gestione della lingua",
"TextTemplateManagement": "Gestione dei modelli di testo",
"See All Modules": "SeeAllModules",
"ABPSuite": "ABP Suite",
"AbpSuiteShortDescription": "ABP Suite è uno strumento complementare all'ABP Commercial.",
"AbpSuiteExplanation": "Ti consente di creare pagine web in pochi minuti. È uno strumento .NET Core Global che può essere installato dalla riga di comando. Può creare una nuova soluzione ABP, generare pagine CRUD dal database al front-end.",
"Details": "Dettagli",
"LeptonTheme": "Tema Lepton",
"ProfessionalModernUIThemes": "Temi dell'interfaccia utente moderni e professionali",
"LeptonThemeExplanation": "Lepton fornisce una gamma di temi di amministrazione Bootstrap che fungono da solida base per qualsiasi progetto che richieda dashboard di amministrazione.",
"DefaultTheme": "Tema predefinito",
"MaterialTheme": "Tema materiale",
"Default2Theme": "Tema predefinito 2",
"DarkTheme": "Tema scuro",
"DarkBlueTheme": "Tema blu scuro",
"LightTheme": "Tema chiaro",
"ProudToWorkWith": "Orgoglioso di lavorare con",
"OurConsumers": "Centinaia di aziende e sviluppatori in oltre 50 paesi in tutto il mondo si affidano a ABP Commercial.",
"JoinOurConsumers": "Unisciti a loro e crea prodotti sorprendenti velocemente.",
"AdditionalServicesExplanation": "Hai bisogno di servizi aggiuntivi o personalizzati? <strong> Noi e i nostri partner possiamo fornire; </strong>",
"CustomProjectDevelopment": "Sviluppo di progetti personalizzati",
"CustomProjectDevelopmentExplanation": "Sviluppatori dedicati per i tuoi progetti personalizzati.",
"PortingExistingProjects": "Porting di progetti esistenti",
"PortingExistingProjectsExplanation": "Migrazione dei tuoi progetti legacy alla piattaforma ABP.",
"LiveSupport": "Supporto dal vivo",
"LiveSupportExplanation": "Opzione di supporto remoto dal vivo quando ne hai bisogno.",
"Training": "Formazione",
"TrainingExplanation": "Formazione dedicata per i tuoi sviluppatori.",
"OnBoarding": "Onboarding",
"OnBoardingExplanation": "Aiuta a configurare i tuoi ambienti di sviluppo, CI e CD.",
"PrioritizedTechnicalSupport": "Assistenza tecnica prioritaria",
"PremiumSupportExplanation": "Oltre al grande supporto della comunità del framework ABP, il nostro team di supporto risponde alle domande tecniche e ai problemi degli utenti commerciali con alta priorità.",
"SeeTheSupportOptions": "Vedi le opzioni di supporto",
"Contact": "Contatto",
"TellUsWhatYouNeed": "Dicci di cosa hai bisogno.",
"YourMessage": "Il tuo messaggio",
"YourFullName": "Il tuo nome completo",
"EmailField": "Indirizzo e-mail",
"YourEmailAddress": "Il tuo indirizzo di posta elettronica",
"HowMayWeHelpYou": "Come possiamo aiutarti?",
"SendMessage": "Invia messaggio",
"Success": "Successo",
"WeWillReplyYou": "Abbiamo ricevuto il tuo messaggio e ti contatteremo a breve.",
"GoHome": "Andare a casa",
"CreateLiveDemo": "Crea demo live",
"RegisterToTheNewsletter": "Registrati alla newsletter per ricevere informazioni su ABP.IO, comprese le nuove versioni ecc.",
"EnterYourEmailOrLogin": "Inserisci il tuo indirizzo e-mail per creare la tua demo o <a href=\"{0}\"> Accedi </a> utilizzando il tuo account esistente.",
"ApplicationTemplate": "Modello di applicazione",
"ApplicationTemplateExplanation": "Il modello di avvio dell'applicazione viene utilizzato per creare una nuova applicazione web.",
"EfCoreProvider": "Entity Framework (supporta SQL Server, MySQL, PostgreSQL, Oracle <a href=\"https://docs.microsoft.com/en-us/ef/core/providers/\"> e altri </a>)",
"AlreadyIncludedInTemplateModules": "I seguenti moduli sono già inclusi e configurati in questo modello:",
"ApplicationTemplateArchitecture": "Questo modello di applicazione supporta anche un'architettura a più livelli in cui il livello dell'interfaccia utente, il livello API e il servizio di autenticazione sono fisicamente separati.",
"SeeTheGuideOrGoToTheLiveDemo": "Consulta la guida per sviluppatori per informazioni tecniche su questo modello o vai alla demo live.",
"DeveloperGuide": "Guida per sviluppatori",
"ModuleTemplate": "Modello di modulo",
"ModuleTemplateExplanation1": "Vuoi creare un modulo e riutilizzarlo in diverse applicazioni? Questo modello di avvio prepara tutto per iniziare a creare un <strong> modulo dell'applicazione </strong> riutilizzabile o un <strong> microservizio </strong>.",
"ModuleTemplateExplanation2": "<p> Puoi supportare uno o più framework UI, uno o più provider di database per un singolo modulo. Il modello di avvio è configurato per eseguire e <strong> testare il modulo </strong> in un'applicazione minima oltre all'unità e all'infrastruttura di test di integrazione. </p> <p> Consulta la guida per sviluppatori per informazioni tecniche su questo modello. </p>",
"WithAllStyleOptions": "con tutte le opzioni di stile",
"Demo": "Demo",
"SeeAllModules": "Vedi tutti i moduli",
"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 <span class = \"zero-text\"> Aiuto </span>",
"BrowseOrAskQuestion": "Puoi sfogliare i nostri argomenti della guida o cercare nelle domande frequenti oppure puoi farci una domanda utilizzando il <a href=\"{0}\" class=\"text-success\"> modulo di contatto </a>.",
"SearchQuestionPlaceholder": "Cerca nelle domande frequenti",
"WhatIsTheABPCommercial": "Cos'è l'ABP Commercial?",
"WhatAreDifferencesThanAbpFramework": "Quali sono le differenze tra ABP Framework open source e ABP Commercial?",
"ABPCommercialExplanation": "ABP Commercial è un insieme di moduli, strumenti, temi e servizi premium basati sul <a target=\"_blank\" href=\"{0}\"> framework ABP </a> open source. ABP Commercial è sviluppato e supportato dallo stesso team dietro il framework ABP.",
"WhatAreDifferencesThanABPFrameworkExplanation": "<p> <a target=\"_blank\" href=\"{0}\"> ABP framework </a> è un framework di sviluppo di applicazioni compatibile con micro-servizi per ASP.NET Core modulare. Fornisce un'architettura completa e una solida infrastruttura per farti concentrare sul tuo codice aziendale piuttosto che ripetere te stesso per ogni nuovo progetto. Si basa sulle migliori pratiche di sviluppo software e su strumenti popolari che già conosci. </p> <p> Il framework ABP è completamente gratuito, open source e guidato dalla comunità. Fornisce inoltre un tema gratuito e alcuni moduli predefiniti (ad es. Gestione delle identità e gestione dei tenant). </p>",
"VisitTheFrameworkVSCommercialDocument": "Visita il seguente link, per ulteriori informazioni <a href=\"{0}\" target=\"_blank\"> {1} </a>",
"ABPCommercialFollowingBenefits": "ABP Commercial aggiunge i seguenti vantaggi al framework ABP;",
"Professional": "Professionale",
"UIThemes": "Temi dell'interfaccia utente",
"EnterpriseModules": "<a href=\"{0}\"> moduli applicativi </a> preconfigurati, ricchi di funzionalità (ad es. Gestione di Identity Server, gestione SaaS, gestione della lingua)",
"ToolingToSupport": "Strumenti per supportare la produttività dello sviluppo (ad es. <a href=\"{0}\"> ABP Suite </a>)",
"PremiumSupportLink": "Supporto <a href=\"{0}\" target=\"_blank\"> Premium </a> premium",
"WhatDoIDownloadABPCommercial": "Cosa devo scaricare quando acquisto ABP Commercial?",
"CreateUnlimitedSolutions": "Dopo aver acquistato una licenza commerciale ABP, sarai in grado di creare soluzioni illimitate come descritto nel documento <a href=\"{0}\"> Guida introduttiva </a>.",
"ABPCommercialSolutionExplanation": "Quando crei una nuova applicazione, ottieni una soluzione Visual Studio (un modello di avvio) in base alle tue preferenze. La soluzione scaricata ha moduli e temi commerciali già installati e configurati per te. Puoi rimuovere un modulo preinstallato o aggiungere un altro modulo, se lo desideri. Tutti i moduli e temi vengono usati come pacchetti NuGet / NPM per impostazione predefinita.",
"StartDevelopWithTutorials": "La soluzione scaricata è ben progettata e documentata. Puoi iniziare a sviluppare il tuo codice aziendale basato su di esso seguendo <a href=\"{0}\"> i tutorial </a>",
"TryTheCommercialDemo": "Puoi provare <a href=\"{0}\"> la demo </a> per vedere un'applicazione di esempio creata utilizzando il modello di avvio di ABP Commercial.",
"HowManyProducts": "Quanti prodotti / soluzioni differenti posso costruire utilizzando ABP Commercial?",
"HowManyProductsExplanation": "Non ci sono limiti per creare un progetto ABP. Puoi creare tutti i progetti che desideri, svilupparli e caricarli su server diversi.",
"HowManyDevelopers": "Quanti sviluppatori possono lavorare su ABP Commercial?",
"HowManyDevelopersExplanation": "Le licenze commerciali ABP sono per sviluppatore. Diversi tipi di licenza hanno diversi limiti per sviluppatori. Tuttavia, puoi aggiungere più sviluppatori a qualsiasi tipo di licenza ogni volta che ne hai bisogno. Consulta la pagina dei <a href=\"{0}\"> prezzi </a> per i tipi di licenza, i limiti per gli sviluppatori e i costi aggiuntivi per gli sviluppatori.",
"ChangingLicenseType": "Posso cambiare il mio tipo di licenza in futuro?",
"ChangingLicenseTypeExplanation": "Puoi sempre aggiungere nuovi sviluppatori con lo stesso tipo di licenza. Vedi anche \"Quanti sviluppatori possono lavorare su ABP Commercial?\". Puoi anche passare a una licenza superiore pagando la differenza di prezzo calcolata. Quando esegui l'aggiornamento a un piano di licenza superiore, ottieni i vantaggi del nuovo piano, ma l'aggiornamento della licenza non modifica la data di scadenza della licenza.",
"LicenseExtendUpgradeDiff": "Qual è la differenza tra estensione della licenza e aggiornamento?",
"LicenseExtendUpgradeDiffExplanation": "<strong> Estensione: </strong> estendendo / rinnovando la tua licenza, continuerai a ricevere supporto premium e a ricevere aggiornamenti importanti per moduli e temi. Inoltre, potrai continuare a creare nuovi progetti. E sarai ancora in grado di utilizzare ABP Suite che accelera il tuo sviluppo. <Hr /> <strong> Upgrade: </strong> aggiornando la tua licenza, promuoverai un piano di licenza superiore che ti consentirà di ottenere ulteriori vantaggi . Consulta la <a href=\"/pricing\"> tabella di confronto delle licenze </a> per verificare le differenze tra i piani di licenza. <strong> D'altra parte, quando esegui l'upgrade, la data di scadenza della licenza non cambierà! </ Strong > Per estendere la data di fine della licenza, è necessario estendere la licenza.",
"LicenseRenewalCost": "Qual è il costo del rinnovo della licenza dopo 1 anno?",
"LicenseRenewalCostExplanation": "La tariffa di rinnovo (estensione) di tutte le licenze perpetue ABP Commercial è {0} del prezzo di listino della licenza. Il prezzo di rinnovo della licenza Team standard è $ {1}, la licenza Business standard è $ {2} e la licenza Enterprise standard è $ {3}. Se sei già un cliente, <a href='{4}' target='_blank'> accedi al tuo account </a> per esaminare i prezzi di rinnovo disponibili.",
"HowDoIRenewMyLicense": "Come rinnovo la mia licenza?",
"HowDoIRenewMyLicenseExplanation": "Puoi rinnovare la licenza accedendo alla <a href='{0}' target='_blank'> pagina di gestione dell'organizzazione </a>. Per poter usufruire delle nostre tariffe scontate di rinnovo anticipato, assicurati di rinnovare prima della scadenza della licenza. Tuttavia, non preoccuparti di non sapere quando si chiude la tua opportunità di rinnovo anticipato. Riceverai 2 e-mail di promemoria prima della scadenza dell'abbonamento. Li invieremo a 30 giorni, 7 giorni prima della scadenza.",
"IsSourceCodeIncluded": "La mia licenza include il codice sorgente dei moduli e dei temi commerciali?",
"IsSourceCodeIncludedExplanation1": "Dipende dal tipo di licenza che hai acquistato:",
"IsSourceCodeIncludedExplanation2": "<strong> Team </strong>: la soluzione utilizza i moduli e i temi come pacchetti NuGet e NPM. Non include il loro codice sorgente. In questo modo, puoi aggiornare facilmente questi moduli e temi ogni volta che è disponibile una nuova versione. Tuttavia, non è possibile ottenere il codice sorgente dei moduli e dei temi.",
"IsSourceCodeIncludedExplanation3": "<strong> Business / Enterprise </strong>: oltre alla licenza Team, puoi scaricare il codice sorgente di qualsiasi modulo o tema di cui hai bisogno. È anche possibile rimuovere i riferimenti al pacchetto NuGet / NPM per un particolare modulo e aggiungere il relativo codice sorgente direttamente alla soluzione per modificarlo completamente.",
"IsSourceCodeIncludedExplanation4": "<p> Includere il codice sorgente di un modulo nella tua soluzione ti dà la massima libertà di personalizzare quel modulo. Tuttavia, non sarà possibile aggiornare automaticamente il modulo quando viene rilasciata una nuova versione. </p> <p> Nessuna delle licenze include il codice sorgente di ABP Suite, che è uno strumento esterno che genera codice per te e assiste al tuo sviluppo. </p> <p> Vedi <a href=\"{0}\"> la pagina dei prezzi </a> per altre differenze tra i tipi di licenza. </p>",
"ChangingDevelopers": "Posso cambiare gli sviluppatori registrati della mia organizzazione in futuro?",
"ChangingDevelopersExplanation": "Oltre ad aggiungere nuovi sviluppatori alla tua licenza, puoi anche modificare gli sviluppatori esistenti (puoi rimuovere uno sviluppatore e aggiungerne uno nuovo alla stessa postazione) senza alcun costo aggiuntivo.",
"WhatHappensWhenLicenseEnds": "Cosa succede al termine del periodo di licenza?",
"WhatHappensWhenLicenseEndsExplanation1": "Il tipo di licenza commerciale ABP è <a href=\"{0}\" target=\"_blank\"> licenza perpetua </a>. Dopo la scadenza della licenza, puoi continuare a sviluppare il tuo progetto. E non sei obbligato a rinnovare la tua licenza. La tua licenza viene fornita con un anno di aggiornamenti e piano di supporto pronto all'uso. Per continuare a ricevere nuove funzionalità, miglioramenti delle prestazioni, correzioni di bug, supporto e continuare a utilizzare ABP Suite, assicurati di rinnovare il tuo piano ogni anno. Quando la tua licenza scade, non sarai in grado di ottenere più dei seguenti vantaggi;",
"WhatHappensWhenLicenseEndsExplanation2": "Non è possibile creare nuove soluzioni utilizzando ABP Commercial, ma è possibile continuare a sviluppare le applicazioni esistenti per sempre.",
"WhatHappensWhenLicenseEndsExplanation3": "Sarai in grado di ottenere aggiornamenti per i moduli e i temi nella tua versione MAJOR. Per esempio; se stai usando la v3.2.0 di un modulo, puoi comunque ottenere gli aggiornamenti per la v3.x.x (v3.3.0, v3.5.2 ... ecc.) di quel modulo. Ma non puoi ottenere aggiornamenti per la prossima versione principale (come v4.x, v5.x)",
"WhatHappensWhenLicenseEndsExplanation4": "Non è possibile installare nuovi moduli e temi aggiunti alla piattaforma ABP Commercial al termine della licenza.",
"WhatHappensWhenLicenseEndsExplanation5": "Non è possibile utilizzare ABP Suite.",
"WhatHappensWhenLicenseEndsExplanation6": "Non puoi più ottenere l '<a href=\"{0}\"> assistenza premium </a>.",
"WhatHappensWhenLicenseEndsExplanation7": "Puoi rinnovare l'abbonamento se desideri continuare a usufruire di questi vantaggi. C'è uno sconto del 20% quando rinnovi l'abbonamento.",
"WhenShouldIRenewMyLicense": "Quando devo rinnovare la mia licenza?",
"WhenShouldIRenewMyLicenseExplanation1": "Se rinnovi la licenza entro <strong> 1 mese </strong> dalla scadenza della licenza, verrà applicato uno sconto del 20% sul prezzo totale della licenza.",
"WhenShouldIRenewMyLicenseExplanation2": "Se rinnovi la licenza dopo 1 mese dalla data di scadenza della licenza, il prezzo di rinnovo sarà lo stesso del prezzo di acquisto della licenza e non ci saranno sconti per il rinnovo.",
"TrialPlan": "Hai un piano di prova?",
"TrialPlanExplanation": "Per ora, ABP Commercial non ha un piano di prova. Per le licenze Team forniamo una garanzia di rimborso di 30 giorni. Puoi richiedere un rimborso solo nei primi 30 giorni. Per le licenze Business ed Enterprise, forniamo un rimborso del 60% in 30 giorni. Questo perché le licenze Business ed Enterprise includono il codice sorgente completo di tutti i moduli e i temi.",
"DoYouAcceptBankWireTransfer": "Accettate bonifici bancari?",
"DoYouAcceptBankWireTransferExplanation": "Sì, accettiamo bonifico bancario. <br /> Dopo aver inviato l'importo della licenza tramite bonifico bancario, inviaci la ricevuta e il tipo di licenza richiesto tramite e-mail. <br /> Informazioni sul nostro conto bancario internazionale:",
"HowToUpgrade": "Come aggiornare le applicazioni esistenti quando è disponibile una nuova versione?",
"HowToUpgradeExplanation1": "Quando crei una nuova applicazione utilizzando ABP Commercial, tutti i moduli e il tema vengono utilizzati come pacchetti NuGet e NPM. Quindi, puoi facilmente aggiornare i pacchetti quando è disponibile una nuova versione.",
"HowToUpgradeExplanation2": "Oltre agli aggiornamenti NuGet / NPM standard, <a href=\"{0}\"> ABP CLI </a> fornisce un comando di aggiornamento che trova e aggiorna automaticamente tutti i pacchetti relativi a ABP nella soluzione.",
"DatabaseSupport": "Quali sistemi di database sono supportati?",
"DatabaseSupportExplanation": "Lo stesso ABP Framework è indipendente dal database e può funzionare con qualsiasi provider di database per sua natura. Consulta il <a href=\"{0}\" target=\"_blank\"> documento di accesso ai dati </a> per un elenco dei fornitori attualmente implementati.",
"UISupport": "Quali framework dell'interfaccia utente sono supportati?",
"Supported": "Supportato",
"UISupportExplanation": "Lo stesso ABP Framework è indipendente dal framework dell'interfaccia utente e può funzionare con qualsiasi framework dell'interfaccia utente. Tuttavia, i modelli di avvio, le interfacce utente dei moduli e i temi non sono stati implementati per tutti i framework dell'interfaccia utente. Consulta il <a href=\"{0}\"> documento introduttivo </a> per l'elenco aggiornato delle opzioni dell'interfaccia utente.",
"MicroserviceSupport": "Supporta l'architettura dei micro-servizi?",
"MicroserviceSupportExplanation1": "Uno degli obiettivi principali del framework ABP è fornire un'infrastruttura conveniente per creare soluzioni di micro-servizi. Consulta il documento sull '<a href=\"{0}\"> architettura dei micro-servizi </a> per capire come aiuta a creare sistemi di micro-servizi.",
"MicroserviceSupportExplanation2": "Tutti i moduli ABP Commercial sono progettati per supportare scenari di distribuzione di micro-servizi (con la propria API e database) seguendo il documento <a href=\"{0}\"> best practice per lo sviluppo di moduli </a>.",
"MicroserviceSupportExplanation3": "Forniamo una <a href=\"{0}\"> soluzione demo di micro-servizi </a> di esempio che dimostra l'implementazione di un'architettura di micro-servizi per aiutarti a creare la tua soluzione.",
"MicroserviceSupportExplanation4": "Quindi, la risposta breve è \"<strong> sì, supporta l'architettura di micro-servizi </strong>\".",
"MicroserviceSupportExplanation5": "Tuttavia, un sistema di micro-servizi è una soluzione e ogni soluzione avrà requisiti diversi, topologia di rete, scenari di comunicazione, possibilità di autenticazione, decisioni di separazione / condivisione del database, configurazioni di runtime, integrazioni di sistemi di terze parti e molto altro.",
"MicroserviceSupportExplanation6": "L'ABP Framework e l'ABP Commercial forniscono un'infrastruttura per scenari di micro-servizi, moduli compatibili con micro-servizi, esempi e documentazione per aiutarti a creare la tua soluzione. Ma non aspettarti di scaricare direttamente la soluzione dei tuoi sogni precostruita per te. Dovrai capirlo e riunire alcune parti in base alle tue esigenze.",
"WhereCanIDownloadSourceCode": "Dove posso scaricare il codice sorgente?",
"WhereCanIDownloadSourceCodeExplanation": "È possibile scaricare il codice sorgente di tutti i moduli ABP, pacchetti e temi Angular tramite ABP Suite o ABP CLI. Vedi <a href=\"{0}\"> Come scaricare il codice sorgente? </a>",
"ComputerLimitation": "Quanti computer può accedere uno sviluppatore durante lo sviluppo di ABP?",
"ComputerLimitationExplanation": "Autorizziamo specificamente <strong> {0} computer </strong> per singolo sviluppatore / con licenza. Ogni volta che è necessario che uno sviluppatore sviluppi prodotti ABP Commercial su una terza macchina, deve essere inviata un'e-mail a license@abp.io spiegando la situazione e quindi effettueremo l'allocazione appropriata nel nostro sistema.",
"RefundPolicy": "Hai una politica di rimborso?",
"RefundPolicyExplanation": "Puoi richiedere un rimborso entro <strong> 30 giorni </strong> dall'acquisto della licenza. I tipi di licenza Business ed Enterprise hanno l'opzione di download del codice sorgente, pertanto i rimborsi non sono disponibili per Business ed Enterprise (e qualsiasi licenza che includa il diritto di ricevere il codice sorgente). Inoltre, non vengono effettuati rimborsi per rinnovi e acquisti di seconde licenze.",
"HowCanIRefundVat": "Come posso rimborsare l'IVA?",
"HowCanIRefundVatExplanation1": "Se hai effettuato il pagamento utilizzando 2Checkout, puoi rimborsare l'IVA tramite il tuo account 2Checkout:",
"HowCanIRefundVatExplanation2": "Accedi al tuo account <a href=\"https://secure.2checkout.com/cpanel/login.php\" target=\"_blank\"> 2Checkout </a>",
"HowCanIRefundVatExplanation3": "Trova l'ordine appropriato e premi \"Rimborsa IVA tardiva\" (inserisci il tuo numero di partita IVA)",
"HowCanIGetMyInvoice": "Come posso ricevere la mia fattura?",
"HowCanIGetMyInvoiceExplanation": "Esistono 2 gateway di pagamento per l'acquisto di una licenza: PayU e 2Checkout. Se acquisti la tua licenza tramite il gateway 2Checkout, invia la fattura in PDF al tuo indirizzo e-mail, vedi <a href = \"https://knowledgecenter.2checkout.com/Documentation/03Billing-and-payments/Payment-operations/How-do -invoices-work \"> Fatturazione 2Checkout. </a> Se acquisti tramite il gateway PayU o tramite bonifico bancario, prepareremo e invieremo la tua fattura. Puoi richiedere la fattura dalla <a href=\"{0}\"> pagina di gestione dell'organizzazione. </a>",
"Forum": "Forum",
"SupportExplanation": "Le licenze commerciali di ABP forniscono un supporto forum premium da parte di un team composto dagli esperti di ABP Framework.",
"PrivateTicket": "Biglietto privato",
"PrivateTicketExplanation": "Enterprise License include anche un supporto privato con e-mail e sistema di ticket.",
"AbpSuiteExplanation1": "ABP Suite ti consente di creare pagine web in pochi minuti. È uno strumento .NET Core Global che può essere installato dalla riga di comando.",
"AbpSuiteExplanation2": "Può creare una nuova soluzione ABP, generare pagine CRUD dal database al front-end. Per una panoramica tecnica, vedere <a href=\"{0}\"> il documento </a>",
"FastEasy": "Veloce e facile",
"AbpSuiteExplanation3": "ABP Suite ti consente di creare facilmente pagine CRUD. Devi solo definire la tua entità e le sue proprietà, lascia che il resto sia ABP Suite per te! ABP Suite genera tutto il codice necessario per la tua pagina CRUD in pochi secondi. Supporta le interfacce utente Angular, MVC e Blazor.",
"RichOptions": "Opzioni ricche",
"AbpSuiteExplanation4": "ABP Suite supporta più opzioni dell'interfaccia utente come <a href=\"https://docs.microsoft.com/en-us/aspnet/core/razor-pages\"> Razor Pages </a> e <a href = \"https: / /angular.io\">Angular </a>. Supporta anche più database come <a href=\"https://www.mongodb.com\"> MongoDB </a> e tutti i database supportati da <strong> EntityFramework Core < / strong> (MS SQL Server, Oracle, MySql, PostgreSQL e <a href=\"https://docs.microsoft.com/en-us/ef/core/providers/?tabs=dotnet-core-cli\"> altro </a>).",
"AbpSuiteExplanation5": "La cosa buona è che non devi preoccuparti di quelle opzioni. ABP Suite comprende il tipo di progetto e genera il codice per il progetto e inserisce il codice generato nella posizione corretta nel progetto.",
"SourceCode": "Codice sorgente",
"AbpSuiteExplanation6": "ABP Suite genera il codice sorgente per te! Non genera file magici per generare la pagina web. ABP Suite genera il codice sorgente per <strong> Entity, Repository, Application Service, Code First Migration, JavaScript / TypeScript e CSHTML / HTML </strong> e anche le interfacce necessarie. ABP Suite genera anche il codice in base alle <strong> Best Practices </strong> di sviluppo software, quindi non devi preoccuparti della qualità del codice generato.",
"AbpSuiteExplanation7": "Dal momento che hai il codice sorgente dei blocchi costitutivi della pagina CRUD generata nei livelli di applicazione corretti, puoi facilmente modificare il codice sorgente e inserire la tua logica personalizzata / aziendale nel codice generato.",
"CrossPlatform": "Piattaforma multipla",
"AbpSuiteExplanation8": "ABP Suite è costruito con .NET Core ed è multipiattaforma. Funziona come un'applicazione web sul tuo computer locale. Puoi eseguirlo su <strong> Windows </strong>, <strong> Mac </strong> e <strong> Linux </strong>",
"OtherFeatures": "Altre caratteristiche",
"OtherFeatures1": "Aggiorna facilmente i pacchetti <strong> NuGet </strong> e <strong> NPM </strong> sulla tua soluzione.",
"OtherFeatures2": "Rigenera le pagine già generate da zero.",
"OtherFeatures3": "Crea nuove soluzioni",
"ThanksForCreatingProject": "Grazie per aver creato il tuo progetto!",
"HotToRunSolution": "Come eseguire la tua soluzione?",
"HotToRunSolutionExplanation": "Vedere il documento introduttivo per apprendere come configurare ed eseguire la soluzione.",
"GettingStarted": "Iniziare",
"WebAppDevTutorial": "Tutorial per sviluppatori di app Web",
"WebAppDevTutorialExplanation": "Vedere il documento tutorial sullo sviluppo di applicazioni Web per un esempio di sviluppo passo passo.",
"Document": "Documento",
"UsingABPSuiteToCURD": "Utilizzo di ABP Suite per la generazione di pagine CRUD e gli strumenti",
"SeeABPSuiteDocument": "Vedere il documento ABP Suite per apprendere l'utilizzo di ABP Suite.",
"AskQuestionsOnSupport": "Puoi porre domande sul supporto commerciale ABP.",
"Documentation": "Documentazione",
"SeeModulesDocument": "Vedere il documento dei moduli per un elenco di tutti i moduli commerciali (pro) e dei relativi documenti.",
"Pricing": "Prezzi",
"PricingExplanation": "Scegli le caratteristiche e le funzionalità di cui la tua azienda ha bisogno oggi. Esegui facilmente l'upgrade man mano che la tua attività cresce.",
"Team": "Squadra",
"Business": "Attività commerciale",
"Enterprise": "Enterprise",
"Custom": "Personalizzato",
"IncludedDeveloperLicenses": "Licenze per sviluppatori incluse",
"CustomLicenceOrAdditionalServices": "Hai bisogno di una licenza personalizzata o di servizi aggiuntivi?",
"CustomOrVolumeLicense": "Licenza personalizzata o multilicenza",
"LiveTrainingSupport": "Formazione e supporto dal vivo",
"AndMore": "e altro ancora",
"AdditionalDeveloperLicense": "Licenza aggiuntiva per sviluppatori",
"ProjectCount": "Conteggio del progetto",
"AllProModules": "Tutti i moduli professionali",
"AllProThemes": "Tutti i temi professionali",
"AllProStartupTemplates": "Tutti i modelli di avvio professionali",
"SourceCodeOfAllModules": "Codice sorgente di tutti i moduli",
"SourceCodeOfAllThemes": "Codice sorgente di tutti i temi",
"PerpetualLicense": "Licenza perpetua",
"UnlimitedServerDeployment": "Distribuzione illimitata del server",
"YearUpgrade": "1 anno di aggiornamento",
"YearPremiumForumSupport": "1 anno di supporto forum premium",
"ForumSupportIncidentCountYear": "Conteggio degli incidenti di supporto del forum / anno",
"PrivateTicketEmailSupport": "Ticket privato e supporto via e-mail",
"BuyNow": "Acquista ora",
"PayViaAmexCard": "Come posso pagare tramite la mia carta AMEX?",
"PayViaAmexCardDescription": "Il gateway di pagamento predefinito \"Iyzico\" potrebbe rifiutare alcune carte di credito AMEX a causa delle misure di sicurezza. In questo caso, puoi pagare tramite il gateway di pagamento alternativo \"2Checkout\".",
"ThankYou": "Grazie",
"InvalidReCaptchaErrorMessage": "Si è verificato un errore durante la verifica di reCAPTCHA. Per favore riprova."
}
}

68
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json

@ -31,6 +31,72 @@
"SuccessfullyAddedToNewsletter": "Bültenimize abone olduğunuz için teşekkürler!",
"MyProfile": "Profilim",
"EmailNotValid": "Lütfen uygun bir e-posta adresi giriniz",
"InvalidReCaptchaErrorMessage": "ReCAPTCHA doğrulanırken hata oluştu, lütfen tekrar deneyin."
"InvalidReCaptchaErrorMessage": "ReCAPTCHA doğrulanırken hata oluştu, lütfen tekrar deneyin.",
"CompanyName": "Şirket",
"YourCompanyName": "Şirketiniz",
"FirstName": "Ad",
"LastName": "Soyad",
"Optional": "Opsiyonel",
"YourFirstName": "Adınız",
"YourLastName": "Soyadınız",
"SpecialOffer": "Özel Teklif",
"SpecialOfferMessage": "Acele et! Fiyatlar sınırlı bir süre için geçerlidir.",
"DiscountRequest": "İndirim İsteği",
"DiscountRequestDescribeCustomerQuestion": "Aşağıdakilerden hangisi sizi tanımlar?",
"DiscountRequestStudentEmailMessage": "E-posta Adresi \".edu\" içermelidir.",
"DiscountRequestDeveloperCount": "Kaç geliştiriciye sahipsiniz?",
"DiscountRequestDeveloperCountExceedMessage": "{0}'ten fazla geliştiricisi olan şirketler için indirimli lisans sağlamıyoruz.",
"DiscountRequestOrganizationName": "Şirket/organizasyon/okul adı",
"Website": "İnternet sitesi",
"GithubUsername": "GitHub kullanıcı adı",
"PhoneNumber": "Telefon numarası",
"Country": "Ülke",
"DescribeABPCommercialUsage": "ABP Commercial kullanarak geliştirmeyi planladığınız projeyi tanımlayın",
"DiscountRequestCertifyInformationMessage": "Tüm bilgilerin gerçek ve doğru olduğunu onaylıyorum.",
"DiscountRequestReceived": "İndirim talebinizi aldık.",
"DiscountRequestStatusMessage": "Verdiğiniz bilgileri kontrol ettikten sonra size cevap vereceğiz.",
"MVCOrRazorPages": "MVC (Razor Pages)",
"Angular": "Angular",
"Blazor": "Blazor",
"New": "Yeni",
"MongoDB": "MongoDB",
"EBookDDD": "Domain Driven Design E-Kitap",
"PracticalGuideForImplementingDDD": "Bu kitap ABP Framework ile birlikte Domain Driven Design'ın uygulanması için pratik bir kılavuz görevi görür.",
"IntroducingDDD": "Domain Driven Design Ile Tanışın",
"DDDLayersAndCleanArchitecture": "DDD Katmanları & Clean Architecture",
"LayeringOfADotnetSolution": "Bir .NET Uygulamasının Katmanlı Yapısı",
"ImplementingDDDBuildingBlocks": "DDD Yapı Taşlarının Uygulanması",
"DomainVsApplicationLogic": "Domain Mantığı vs Uygulama Mantığı",
"SamplesAndDiscussions": "Örnekler & Tartışmalar",
"Free": "Ücretsiz",
"Download": "İndir",
"DDDEBook": "DDD E-kitap",
"ImplementingDDD": "Domain Driven Design'ı Uygulayın",
"DDDBookExplanation": "ABP Framework ile Domain Driven Design'ın uygulanması için pratik bir kılavuz.",
"Overview": "Genel Bakış",
"DDDBookPracticalGuide": "Bu kitap Domain Driven Design'ın uygulanması için pratik bir kılavuz görevi görür. Uygulama ayrıntıları ABP Framework altyapısına dayanırken, temel kavramlar, prensipler ve modeller bir .NET çözümü olmasa bile her türlü çözümde uygulanabilir.",
"TableOfContents": "İçindekiler",
"IntroductionToImplementingDDD": "Domain Driven Design Uygulamasına Giriş",
"WhatIsDDD": "Domain Driven Design nedir?",
"Implementation": "Uygulama",
"TheBigPicture": "Büyük Resim",
"TheBuildingBlock": "Yapıtaşı",
"ExampleUseCase": "Örnek Kullanım Senaryosu",
"DomainAndApplicationLogic": "Domain ve Uygulama Mantığı",
"Author": "Yazar",
"PublishedOn": "Yayımlanma tarihi",
"Page": "Sayfa",
"FreeEBook": "Ücretsiz E-Kitap",
"EBookSignInForDownload": "E-Kitabı indirmek için giriş yapın",
"SignIn": "Giriş Yap",
"Or": "Veya",
"TellUsAboutYourself": "Bize biraz kendinizden bahsedin",
"Surname": "Soyad",
"DoYouAgreePrivacyPolicy": "Şartlar & Koşulları ve <a href=\"https://commercial.abp.io/Privacy\">Gizlilik Politikasını</a> kabul ediyorum.",
"VolosoftMarketingInformationMessage": "İşletmeler ve Organizasyonlar için çözümler ve diğer Volosoft ürün ve hizmetleri hakkında bilgi, ipucu ve teklifler almak istiyorum.",
"VolosoftSharingInformationMessage": "Volosoft'un ürünlerimi seçkin ortaklarla paylaşmasını kabul ediyorum, böylece ilgili ortakların ürünleri ve hizmetleri hakkında ilgili bilgileri alabilirim.",
"WeWillSendYouADownloadLink": "{0} adresine email gönderilmiştir.",
"InvalidFormInputs": "Lütfen formda belirtilen geçerli bilgileri yazınız.",
"DDDBookEmailBody": "Teşekkürler. <br /> Kitabı indirmek için, <a href=\"{0}\">buraya tıklayınız</a>."
}
}

36
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json

@ -143,7 +143,7 @@
"ApplicationTemplateArchitecture": "应用程序模板还支持UI,API,身份验证服务器物理分离的分层架构.",
"SeeTheGuideOrGoToTheLiveDemo": "查看开发人员指南或者查看在线演示了解更多关于模板的信息.",
"DeveloperGuide": "开发人员指南",
"ModuleTemplate": "模块模",
"ModuleTemplate": "模块模",
"ModuleTemplateExplanation1": "你是否想要创建可在不同应用程序之间重用的模块? 这个启动模板准备好了一切来创建可重用的<strong>应用程序模块</strong>或<strong>微服务</strong>.",
"ModuleTemplateExplanation2": "<p>你可以为一个模块支持单个或多个UI框架, 单个或多个数据库提供程序. 除了单元测试和集成测试基础架构外,启动模板被配置为在一个最小的应用程序中运行和<strong>测试你的模块</strong>. </p> <p>查看开发人员指南了解有关此模板的技术信息.</p>",
"WithAllStyleOptions": "使用所有的样式选项",
@ -288,8 +288,36 @@
"ForumSupportIncidentCountYear": "论坛支持事件数量/年",
"PrivateTicketEmailSupport": "私有票和email支持",
"BuyNow": "现在购买",
"PayViaAmexCard": "我如何通过我的AMEX卡付款?",
"PayViaAmexCardDescription": "由于安全措施,默认付款网关“ Iyzico”可能会拒绝某些AMEX信用卡。 在这种情况下,您可以通过备用付款网关“ 2Checkout”付款。",
"InvalidReCaptchaErrorMessage": "验证reCAPTCHA时出错,请重试。"
"PayViaAmexCard": "我如何通过我的AMEX卡付款?",
"PayViaAmexCardDescription": "由于安全措施,默认付款网关'Iyzico'可能会拒绝某些AMEX信用卡. 在这种情况下, 完全可以通过备用付款网关'2Checkout'付款.",
"InvalidReCaptchaErrorMessage": "验证reCAPTCHA时出错,请重试.",
"CompanyName": "公司名称",
"YourCompanyName": "你的公司名称",
"FirstName": "名",
"LastName": "姓",
"Optional": "可选的",
"YourFirstName": "你的名字",
"YourLastName": "你的姓氏",
"SpecialOffer": "特别优惠",
"SpecialOfferMessage": "尽快付款,价格在一定时间内有效.",
"DiscountRequest": "折扣申请",
"DiscountRequestDescribeCustomerQuestion": "以下哪个选项描述了你?",
"DiscountRequestStudentEmailMessage": "Email地址必须包含'edu'.",
"DiscountRequestDeveloperCount": "你有多少开发人员?",
"DiscountRequestDeveloperCountExceedMessage": "对于超过 {0} 开发人员的公司,我们不提供折扣.",
"DiscountRequestOrganizationName": "公司/组织/学校名称",
"Website": "网站",
"GithubUsername": "GitHub用户名",
"PhoneNumber": "手机号",
"Country": "国家",
"DescribeABPCommercialUsage": "描述你基于ABP商业版进行开发的项目",
"DiscountRequestCertifyInformationMessage": "我证明所有的信息都是真实的.",
"DiscountRequestReceived": "我们收到了你的折扣请求.",
"DiscountRequestStatusMessage": "我们会检查你提供的信息并且给你答复.",
"MVCOrRazorPages": "MVC (Razor Pages)",
"Angular": "Angular",
"Blazor": "Blazor",
"New": "新的",
"MongoDB": "MongoDB"
}
}

294
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json

@ -25,6 +25,298 @@
"Volo.AbpIo.Commercial:010004": "不能找到指定的使用者! 使用者必須已經註冊.",
"MyOrganizations": "我的組織",
"ApiKey": "API key",
"UserNameNotFound": "沒有使用者名稱為{0}的使用者"
"UserNameNotFound": "沒有使用者名稱為{0}的使用者",
"SuccessfullyAddedToNewsletter": "感謝你訂閱我們的新聞簡訊!",
"MyProfile": "我的資料",
"EmailNotValid": "請輸入有效的電子郵件地址",
"JoinOurMarketingNewsletter": "加入我們的營銷簡訊",
"WouldLikeToReceiveMarketingMaterials": "我想收到市場營銷資料,例如產品交易和特別優惠.",
"StartUsingYourLicenseNow": "立即開始使用你的許可",
"WelcomePage": "歡迎頁面",
"UnsubscriptionExpireEmail": "退訂許可到期提醒郵件",
"UnsubscribeLicenseExpireEmailReminderMessage": "此電子郵件訂閱僅提醒你許可的到期日期.",
"UnsubscribeFromLicenseExpireEmails": "如果你不想收到關於許可到期郵件,你可以在任何時間取消訂閱.",
"Unsubscribe": "取消訂閱",
"NotOrganizationMember": "你不是任何組織的成員.",
"UnsubscribeLicenseExpirationEmailSuccessTitle": "退訂成功",
"UnsubscribeLicenseExpirationEmailSuccessMessage": "你不會再收到任何許可到期提醒郵件.",
"IndexPageHeroSection": "<span class=\"first-line\">一個完整的</span><span class=\"second-line\">web開發平臺</span><span class=\"third-line\">基於 <img src=\"{0}\" width=\"110\" class=\"ml-1\" /> 框架</span>",
"AbpCommercialShortDescription": "ABP商業版提供了預構建的應用程序模塊, 快速的應用程序開發工具, 專業的UI主題, 高級支持等.",
"LiveDemo": "在線演示",
"GetLicence" :"獲得許可",
"Application": "應用程序",
"StartupTemplates": "啟動模板",
"Startup": "啟動",
"Templates": "模板",
"Developer": "開發人員",
"Tools": "工具",
"Premium": "高級",
"PremiumSupport": "高級支持",
"PremiumForumSupport": "高級論壇支持",
"UI": "UI",
"Themes": "主題",
"JoinOurNewsletter": "加入我們的時事通訊",
"Send": "發送",
"Learn": "學習",
"AdditionalServices": "額外的服務",
"WhatIsABPFramework": "什麽是ABP框架?",
"OpenSourceBaseFramework": "開源的框架",
"ABPFrameworkExplanation": "<p class=\"lead\">ABP商業版基於ABP框架, 這是一個開源和社區驅動的ASP.NET Core web應用程序開發框架.</p><p>ABP框架提供了出色的基礎設施, 使用最佳實踐編寫可維護,可擴展,可測試的代碼.</p><p>基於你已經知道的流行工具. 低學習曲線,容易適應,舒適的開發體檢.</p>",
"Modular": "模塊化",
"MicroserviceCompatible": "微服務兼容",
"DomainDrivenDesignInfrastructure": "領域驅動設計基礎設施",
"MultiTenancy": "多租戶",
"DistributedMessaging": "分布式消息",
"DynamicProxying": "動態代理",
"BackgroundJobs": "後臺作業",
"AuditLogging": "審計日誌",
"BLOBStoring": "BLOB存儲",
"BundlingMinification": "捆綁 & 壓縮",
"AdvancedLocalization": "高級本地化",
"ManyMore": "以及更多",
"ExploreTheABPFramework": "探索ABP框架",
"WhyUseTheABPCommercial": "為什麽使用ABP商業版?",
"WhyUseTheABPCommercialExplanation": "<p class=\"lead mt- 5\">構建企業級的web應用程序可能復雜和耗時.</p><p>ABP商業版提供所有現代企業級基於ASP.NET Core的解決方案所需要的基礎設施. 從設計到部署,整個開發生命周期都由ABP的內置功能和模塊提供支持.</p>",
"StartupTemplatesShortDescription": "啟動模板使你在幾秒內快速啟動項目.",
"UIFrameworksOptions": "UI框架選項;",
"DatabaseProviderOptions": "數據庫提供程序選項;",
"PreBuiltApplicationModules": "預構建的應用程序模塊",
"PreBuiltApplicationModulesShortDescription": "大多數常見的應用程序需求已經做為可重用的模塊為你開發了.",
"Account": "賬戶",
"Blogging": "博客",
"Identity": "Identity",
"IdentityServer": "Identity Server",
"Saas": "Saas",
"LanguageManagement": "語言管理",
"TextTemplateManagement": "文本模板管理",
"See All Modules": "查看所有的模塊",
"ABPSuite": "ABP Suite",
"AbpSuiteShortDescription": "ABP Suite是ABP商業版的輔助工具.",
"AbpSuiteExplanation": "它讓你在幾分鐘內構建web頁面. 它是一個.Net Core全局工具,可以使用命令行安裝. 它可以創建一個新的ABP解決方案,從數據庫生成前端CURD頁面.",
"Details": "詳情",
"LeptonTheme": "Lepton主題",
"ProfessionalModernUIThemes": "專業, 現代化的UI主題",
"LeptonThemeExplanation": "Lepton提供了一系列的Bootstrap管理主題,為任何需要管理儀表盤的項目提供了堅實的基礎.",
"DefaultTheme": "默認主題",
"MaterialTheme": "Material主題",
"Default2Theme": "默认主題2",
"DarkTheme": "深色主題",
"DarkBlueTheme": "深藍主題",
"LightTheme": "淺色主題",
"ProudToWorkWith": "榮幸與你合作",
"OurConsumers": "全球50多個國家的數百家企業和開發商使用ABP商業版.",
"JoinOurConsumers": "加它他們並快速構建令人驚嘆的產品.",
"AdditionalServicesExplanation": "你是否需要額外或自定義的服務? <strong>我們和我們的合作夥伴可以提供;</strong>",
"CustomProjectDevelopment": "自定義項目開發",
"CustomProjectDevelopmentExplanation": "專為你的自定義的開發人員.",
"PortingExistingProjects": "移植現有項目",
"PortingExistingProjectsExplanation": "將你的遷移傳統項目遷移到ABP平臺.",
"LiveSupport": "實時支持",
"LiveSupportExplanation": "在你需要時,可以實時提供遠程支持選項.",
"Training": "培訓",
"TrainingExplanation": "為你的開發人員提供專門培訓.",
"OnBoarding": "管理",
"OnBoardingExplanation": "幫助設置你的開發,CI和CD環境.",
"PrioritizedTechnicalSupport": "優先的技術支持",
"PremiumSupportExplanation": "除了社區對ABP框架出色支持外,我們的支持團隊會優先回答商業用戶的技術問題.",
"SeeTheSupportOptions": "查看支持選項",
"Contact": "聯系",
"TellUsWhatYouNeed": "告訴我們你需要什麽.",
"YourMessage": "你的消息",
"YourFullName": "你的全名",
"EmailField": "E-mail地址",
"YourEmailAddress": "你的e-mail地址",
"HowMayWeHelpYou": "我們如何幫助你",
"SendMessage": "發送消息",
"Success": "成功",
"WeWillReplyYou": "你的消息已經發送! 我們會在短時間內給你答復.",
"GoHome": "回到主頁面",
"CreateLiveDemo": "創建在線演示",
"RegisterToTheNewsletter": "註冊到時事簡報以獲取有關ABP.IO的消息,比如新發布的內容.",
"EnterYourEmailOrLogin": "輸入你的e-mail地址來創建你的演示或者使用你的已有賬號<a href=\"{0}\">登錄</a>.",
"ApplicationTemplate": "應用程序模板",
"ApplicationTemplateExplanation": "應用程序啟動模板用於創建新的web應用程序.",
"EfCoreProvider": "Entity Framework (支持 SQL Server, MySQL, PostgreSQL, Oracle <a href=\"https://docs.microsoft.com/zh-cn/ef/core/providers/\">和其它</a>)",
"AlreadyIncludedInTemplateModules": "以下模塊已經包含並配置在此模板中:",
"ApplicationTemplateArchitecture": "應用程序模板還支持UI,API,身份驗證服務器物理分離的分層架構.",
"SeeTheGuideOrGoToTheLiveDemo": "查看開發人員指南或者查看在線演示了解更多關於模板的信息.",
"DeveloperGuide": "開發人員指南",
"ModuleTemplate": "模块模板",
"ModuleTemplateExplanation1": "你是否想要創建可在不同應用程序之間重用的模塊? 這個啟動模板準備好了一切來創建可重用的<strong>應用程序模塊</strong>或<strong>微服務</strong>.",
"ModuleTemplateExplanation2": "<p>你可以為一個模塊支持單個或多個UI框架, 單個或多個數據庫提供程序. 除了單元測試和集成測試基礎架構外,啟動模板被配置為在一個最小的應用程序中運行和<strong>測試你的模塊</strong>. </p> <p>查看開發人員指南了解有關此模板的技術信息.</p>",
"WithAllStyleOptions": "使用所有的樣式選項",
"Demo": "演示",
"SeeAllModules": "查看所有的模塊",
"ABPCLIExplanation": "ABP CLI(命令行頁面)是一個執行基於ABP解決方案的一些常見操作的命令行工具.",
"ABPSuiteEasilyCURD": "ABP Suite是一個使你輕松創建CURD頁面的工具",
"WeAreHereToHelp": "我們在這裏為你提供<span class=\"zero-text\">幫助</span>",
"BrowseOrAskQuestion": "你可以瀏覽我們的幫助主題或搜索常見的問題, 或者你可以使用<a href=\"{0}\" class=\"text-success\">聯系表單</a>向我們提問.",
"SearchQuestionPlaceholder": "搜索常見的問題",
"WhatIsTheABPCommercial": "什麽是ABP商業版?",
"WhatAreDifferencesThanAbpFramework": "ABP框架與ABP商業版有什麽不同?",
"ABPCommercialExplanation": "ABP商業版是一套基於開源<a target=\"_blank\" href=\"{0}\">ABP框架</a>之上的高級模塊,工具,主題和服務. ABP商業版由ABP框架背後的同一團隊開發和支持.",
"WhatAreDifferencesThanABPFrameworkExplanation": "<p> <a target=\"_blank\" href=\"{0}\">ABP框架</a>是模塊化,主題化,微服務兼容的ASP.NET Core應用程序開發框架. 它提供了一個完整的架構和強大的基礎設施,讓你專註於自己的業務代碼而不是重復自己的每一個項目. 它基於軟件開發的最佳實踐和你已經知道的流行工具 </p> <p> ABP框架是完全免費,開源和由社區驅動的. 它還提供了一個免費的主題和一些預構建的模塊 (如 identity管理和租戶管理).</p>",
"VisitTheFrameworkVSCommercialDocument": "訪問以下鏈接,了解更多信息 <a href=\"{0}\" target=\"_blank\"> {1} </a>",
"ABPCommercialFollowingBenefits": "ABP商業版在ABP框架之上添加了以下好處;",
"Professional": "專業的",
"UIThemes": "UI主題",
"EnterpriseModules": "企業就緒,功能豐富,預構建的<a href=\"{0}\">應用程序模塊</a> (如 Identity Server管理, SaaS管理, 語言管理)",
"ToolingToSupport": "支持你的生產力的工具(如. <a href=\"{0}\">ABP Suite</a>)",
"PremiumSupportLink": "高級<a href=\"{0}\" target=\"_blank\">支持</a>",
"WhatDoIDownloadABPCommercial": "購買ABP商業版後我可以下載什麽?",
"CreateUnlimitedSolutions": "一旦你購買了ABP商業許可, 你可以創建<a href=\"{0}\">入門</a>文檔中描述的無限的解決方案.",
"ABPCommercialSolutionExplanation": "創建新應用程序時,將根據你的首選項獲得Visual Studio解決方案(啟動模板). 下載的解決方案已為你安裝並配置了商業模塊和主題. 你可以刪除預裝的模塊,也可以根據需要添加其他模塊. 默認情況下所有模塊和主題都使用NuGet/NPM軟件包.",
"StartDevelopWithTutorials": "下載的解決方案經過精心設計和記錄, 你可以根據<a href=\"{0}\">教程</a>來開發自己的業務代碼.",
"TryTheCommercialDemo": "你可以嘗試<a href=\"{0}\">示例</a>來查看使用ABP商業模板創建的示例應用程序.",
"HowManyProducts": "使用ABP商業版,我可以構建多少不同的產品/解決方案?",
"HowManyProductsExplanation": "創建ABP項目沒有限制. 你可以根據需要創建任意數量的項目,進行開發並將其部署到其他服務器.",
"HowManyDevelopers": "有多少開發者可以參與ABP商業版工作?",
"HowManyDevelopersExplanation": "ABP商業許可是針對每個開發人員的. 不同的許可類型具有不同的開發人員限制. 但是你可以在需要時將更多開發人員添加到任何許可類型. 查看許可類型,開發人員限制和額外的開發人員成本的<a href=\"{0}\">價格</a>頁面.",
"ChangingLicenseType": "將來更改我的許可類型嗎?",
"ChangingLicenseTypeExplanation": "你始終可以在同一許可中添加新的開發人員. 參閱 \"有多少開發者可以參與ABP商業版工作?\". 你還可以通過支付計算出的價格差來升級到更高的許可. 當你升級到更高的許可計劃時,可以享受新計劃的好處,但是許可升級不會更改許可的到期日期.",
"LicenseExtendUpgradeDiff": "許可擴展和升級有什麽區別?",
"LicenseExtendUpgradeDiffExplanation": "<strong>擴展:</strong> 通過擴展/更新許可,你將繼續獲得高級支持,並獲得有關模塊和主題的重大更新. 此外你將能夠繼續創建新項目. 而且你仍然可以使用ABP Suite來加快開發速度.<hr/><strong>升級:</strong> 通過升級許可,你將升級到更高的許可計劃,這將使你獲得更多好處. 查看 <a href=\"/pricing\">許可比較表</a>來檢查許可計劃之間的差異. <strong>另一方面,當你升級時你的許可到期日期不會改變!</strong>要延長你的許可終止日期,你需要延長你的許可.",
"LicenseRenewalCost": "一年後的許可續期費用是多少?",
"LicenseRenewalCostExplanation": "ABP商業版的續費價格均為原價的{0}. Team版本的續費價格是${1}, Business版本的續訂價格是${2}, Enterprise版本的續訂價格是${3}. 如果你已經購買了, 請<a href='{4}' target='_blank'>登錄帳戶</a>以查看續訂價格.",
"HowDoIRenewMyLicense": "如何續費我的許可證?",
"HowDoIRenewMyLicenseExplanation": "你可以<a href='{0} target='_blank'>登錄</a>以進行續費. 為了享受我們的續費折扣, 請確保在許可證到期之前進行續費, 我們會在到期前7天和30天發送2封續費提醒郵件.",
"IsSourceCodeIncluded": "我的許可是否包括商業模塊和主題的源代碼?",
"IsSourceCodeIncludedExplanation1": "取決於你購買的許可類型:",
"IsSourceCodeIncludedExplanation2": "<strong>團隊</strong>: 你的解決方案將這些模塊和主題作為NuGet和NPM包使用. 它不包括其源代碼. 這樣,只要有新版本可用,你就可以輕松升級這些模塊和主題. 但是,你無法獲取模塊和主題的源代碼.",
"IsSourceCodeIncludedExplanation3": "<strong>商業/企業</strong>: 除了團隊許可外,你還可以下載所需的任何模塊或主題的源代碼. 你甚至可以刪除特定模塊的NuGet/NPM軟件包引用,並將其源代碼直接添加到你的解決方案中以完全更改它.",
"IsSourceCodeIncludedExplanation4": "<p>將模塊的源代碼包含到解決方案中,可以最大程度地自定義該模塊. 但是當新版本發布時,將無法自動升級模塊.</p><p>這些許可均不包含ABP Suite源代碼,該源代碼是一個外部工具,可以為你生成代碼並幫助你進行開發</p><p>有關許可類型之間的其它差異查看<a href=\"{0}\">定價</a>頁面.</p>",
"ChangingDevelopers": "我將來可以更改我組織的註冊開發人員嗎?",
"ChangingDevelopersExplanation": "除了將新的開發人員添加到你的許可中之外,你還可以更改現有的開發人員(可以刪除一個開發人員並將新的開發人員添加到同一位置),而無需任何額外費用.",
"WhatHappensWhenLicenseEnds": "我的許可期限結束後會怎樣?",
"WhatHappensWhenLicenseEndsExplanation1": "ABP商業版具有<a href=\"{0}\" target=\"_blank\">永久許可類型</a>.許可到期後, 你可以繼續開發你的項目.並且你沒有義務續訂許可.許可到期後;",
"WhatHappensWhenLicenseEndsExplanation2": "你不能使用ABP商業版創建新的解決方案,但可以永遠繼續開發現有的應用程序.",
"WhatHappensWhenLicenseEndsExplanation3": "你能夠在你的主版本中獲得模塊和主題的更新.例如;如果你使用的是模塊的v3.2.0版本,你仍然可以獲得v3.x.x版本的更新.(v3.3.0 v3.5.2…等等)的.但是你無法獲得下一個主要版本(如v4.x,v5.x)的更新",
"WhatHappensWhenLicenseEndsExplanation4": "許可到期後,你無法安裝添加到ABP商業平臺的新模塊和主題.",
"WhatHappensWhenLicenseEndsExplanation5": "你不能使用ABP Suite.",
"WhatHappensWhenLicenseEndsExplanation6": "你不再獲得<a href=\"{0}\">高級支持</a>.",
"WhatHappensWhenLicenseEndsExplanation7": "如果你想繼續獲得這些好處,可以繼續續訂. 續訂時有20%的折扣.",
"WhenShouldIRenewMyLicense": "我什麽時候應該續訂我的許可?",
"WhenShouldIRenewMyLicenseExplanation1": "如果你在许可到期后的<strong> 1个月</strong>内续订许可,则许可总价将享受%20的折扣.",
"WhenShouldIRenewMyLicenseExplanation2": "如果你在你的許可過期日期1個月後更新你的許可,更新價格將與許可購買價格相同,你的更新將沒有折扣.",
"TrialPlan": "你們有試用計劃嗎?",
"TrialPlanExplanation": "目前,ABP商業版還沒有試用計劃.對於團隊許可,我們提供30天的退款保證.你可以在30天內要求退款.對於企業營業執照,我們提供30天內60%的退款.這是因為商業和企業許可包含所有模塊和主題的完整源代碼.",
"DoYouAcceptBankWireTransfer": "你們接受銀行電匯嗎?",
"DoYouAcceptBankWireTransferExplanation": "是的,我們接受銀行電匯.<br />通過銀行電匯轉賬,通過電子郵件將收據和所要求的許可類型發送給我們.<br />我們的國際銀行帳戶信息:",
"HowToUpgrade": "可用新版本時如何升級現有應用程序?",
"HowToUpgradeExplanation1": "使用ABP商業版創建新應用程序時,所有模塊和主題均用作NuGet和NPM軟件包. 因此,當有新版本可用時,你可以輕松升級軟件包.",
"HowToUpgradeExplanation2": "除了標準的NuGet/NPM升級之外,<a href=\"{0}\"> ABP CLI </a>還提供了一條更新命令,該命令可自動查找和升級解決方案中的所有與ABP相關的軟件包.",
"DatabaseSupport": "支持哪些數據庫系統?",
"DatabaseSupportExplanation": "ABP框架本身與數據庫無關,並且就其性質而言,可以與任何數據庫提供程序一起使用. 請參閱<a href=\"{0}\" target=\"_blank\">數據訪問文檔</a>以獲取當前實現的提供程序的列表.",
"UISupport": "支持哪些UI框架?",
"Supported": "支持的",
"UISupportExplanation": "ABP框架本身與UI框架無關,並且可以與任何UI框架一起使用. 但是,並非針對所有UI框架都實現了啟動模板,模塊UI和主題. 有關UI選項的最新列表,請參見<a href=\"{0}\">入門文檔</a>.",
"MicroserviceSupport": "它是否支持微服務架構?",
"MicroserviceSupportExplanation1": "ABP框架的主要目標之一是為創建微服務解決方案提供便利的基礎架構. 請參閱<a href=\"{0}\">微服務體系結構</a>文檔,以了解它如何幫助創建微服務系統.",
"MicroserviceSupportExplanation2": "所有的ABP商業模塊通過<a href=\"{0}\">模塊開發最佳實踐</a>文檔被設計為支持微服務部署場景(使用自己的API和數據庫).",
"MicroserviceSupportExplanation3": "我們提供了一個示例<a href=\"{0}\">微服務演示解決方案</a>,該示例演示了一種微服務架構實現,可幫助你創建自己的解決方案.",
"MicroserviceSupportExplanation4": "所以簡短的答案是 \"<strong>是的, 它支持微服務體系結構</strong>\".",
"MicroserviceSupportExplanation5": "但是,微服務系統是一個解決方案,每個解決方案都有不同的要求,網絡拓撲,通信場景,身份驗證可能性,數據庫分離/共享決策,運行時配置,第三方系統集成等等.",
"MicroserviceSupportExplanation6": "ABP框架和ABP商業版提供了微服務方案,微服務兼容模塊,示例和文檔的基礎結構,以幫助你構建自己的解決方案. 但是不要期望直接下載為你預先構建的夢想解決方案. 你將需要了解它,並根據需要將某些部分組合在一起.",
"WhereCanIDownloadSourceCode": "在哪裏可以下載源代碼?",
"WhereCanIDownloadSourceCodeExplanation": "你可以通過ABP Suite或ABP CLI下載所有ABP模塊,Angular軟件包和主題的源代碼. 請參見<a href=\"{0}\">如何下載源代碼?</a>",
"ComputerLimitation": "開發人員在開發ABP時可以登錄到多少臺計算機?",
"ComputerLimitationExplanation": "我們特別允許每個個人/許可的開發人員使用<strong> {0}臺計算機</strong>. 每當需要開發人員在第三臺計算機上開發ABP商業產品時,都應將電子郵件發送到license@abp.io,以說明情況,然後我們將在系統中進行適當分配.",
"RefundPolicy": "你們有退款政策嗎?",
"RefundPolicyExplanation": "你可以在購買許可的<strong>30天</strong>內請求退款.商業和企業許可類型都有源代碼下載選項,因此商業和企業(以及任何包含獲得源代碼的權利的許可)都不能退款.此外,續展和購買第二次許可也不退款.",
"HowCanIRefundVat": "我該如何退還增值稅?",
"HowCanIRefundVatExplanation1": "如果你使用2Checkout付款,則可以通過2Checkout帳戶退還增值稅:",
"HowCanIRefundVatExplanation2": "登錄到你的<a href=\"https://secure.2checkout.com/cpanel/login.php\" target=\"_blank\">2Checkout</a>賬戶",
"HowCanIRefundVatExplanation3": "找到適當的訂單,然後按\"退還已延期的增值稅\"(輸入你的增值稅ID",
"HowCanIGetMyInvoice": "我如何獲得發票?",
"HowCanIGetMyInvoiceExplanation": "有兩個用於購買許可的支付網關:PayU和2Checkout. 如果你通過2Checkout網關購買許可,則它將PDF發票發送到你的電子郵件地址,請參閱<a href=\"https://knowledgecenter.2checkout.com/Documentation/03Billing-and-payments/Payment-operations/How-do-invoices-work>2Checkout發票.</a>如果你是通過PayU網關或通過銀行電匯購買的,我們將準備並發送你的發票. 你可以從<a href=\"{0}\">組織管理頁面</a>索取發票.",
"Forum": "論壇",
"SupportExplanation": "ABP商業版許可包含由ABP框架專家組成的團隊提供的高級論壇支持.",
"PrivateTicket": "私有票",
"PrivateTicketExplanation": "企業許可還包含帶有電子郵件和票系統的私人支持.",
"AbpSuiteExplanation1": "ABP Suite使你在幾分鐘內構建web頁面. 它是一個.NET Core Global工具,可以使用命令行安裝.",
"AbpSuiteExplanation2": "它可以創建一個新的ABP解決方案, 從數據庫生成前端CURD頁面. 有關技術概述查看<a href=\"{0}\">文檔</a>",
"FastEasy": "快速並且簡單",
"AbpSuiteExplanation3": "ABP Suite允許你輕松的創建CURD頁面. 你只需要定義你的實體和它的屬性, 其它的讓ABP Suite幫你完成! ABP Suite會在幾秒內為你生成CURD頁面和必要的代碼. 它支持Angular, MVC和 Blazor用戶界面.",
"RichOptions": "豐富的選項",
"AbpSuiteExplanation4": "ABP Suite支持多個UI選項,例如 <a href=\"https://docs.microsoft.com/en-us/aspnet/core/razor-pages\">Razor Pages</a>和<a href=\"https://angular.io\">Angular</a>.它還支持多個數據庫, 如 <a href=\"https://www.mongodb.com\">MongoDB</a> 和<strong>EntityFramework Core</strong>支持的所有數據庫(MS SQL Server, Oracle, MySql, PostgreSQL 和 <a href=\"https://docs.microsoft.com/zh-cn/ef/core/providers/?tabs=dotnet-core-cli\">更多</a>).",
"AbpSuiteExplanation5": "好消息是, 你不必擔心這些選項. ABP Suite了解你的項目類型並且將生成的代碼放到項目中正確的位置.",
"SourceCode": "源碼",
"AbpSuiteExplanation6": "ABP Suite為你生成源代碼! 它不會生成魔法文件來生成web頁面. ABP Suite為<strong>實體, 倉儲, 應用程序, Code First遷移, JavaScript/TypeScript 和 CSHTML/HTML</strong>以及必要的頁面生成源代碼. ABP Suite根據軟件開發的<strong>最佳實踐</strong>來生成代碼, 所以你不必擔心生成的代碼的質量.",
"AbpSuiteExplanation7": "由於你有應用程序層中生成的CURD頁面的構建塊的源代碼, 因此你可以輕松修改源碼並將自定義/業務邏輯註入到所生成的代碼中.",
"CrossPlatform": "跨平台",
"AbpSuiteExplanation8": "ABP Suite使用.NET Core構建並且它是跨平臺的. 它在你的本地電腦中運行為web應用程序. 你可以在<strong>Windows</strong>, <strong>Mac</strong>和<strong>Linux</strong>上運行它",
"OtherFeatures": "其他功能",
"OtherFeatures1": "輕松更新你的解決方案的<strong>NuGet</strong>和<strong>NPM</strong>包.",
"OtherFeatures2": "重新生成已經生成的頁面.",
"OtherFeatures3": "創建新的解決方案",
"ThanksForCreatingProject": "感謝你創建你的項目!",
"HotToRunSolution": "如何運行你的解決方案?",
"HotToRunSolutionExplanation": "查看入門文檔來學習如何配置和運行你的解決方案.",
"GettingStarted": "入門",
"WebAppDevTutorial": "Web應用開發教程",
"WebAppDevTutorialExplanation": "查看web應用程序開發教程文檔來一步一步的了解開發示例.",
"Document": "文檔",
"UsingABPSuiteToCURD": "使用ABP Suite來生成CURD頁面",
"SeeABPSuiteDocument": "查看ABP Suite文檔學習如何使用ABP Suite.",
"AskQuestionsOnSupport": "你可以在ABP商業支持提出問題.",
"Documentation": "文檔",
"SeeModulesDocument": "查看模塊文檔獲取所有商業(專業)模塊列表和它們的文檔.",
"Pricing": "價格",
"PricingExplanation": "選擇當前業務需要的特性和功能. 隨著業務增長輕松升級.",
"Team": "團隊",
"Business": "商業",
"Enterprise": "企業",
"Custom": "自定義",
"IncludedDeveloperLicenses": "包括開發人員許可",
"CustomLicenceOrAdditionalServices": "需要自定義許可與額外服務?",
"CustomOrVolumeLicense": "自定義或批量許可",
"LiveTrainingSupport": "現場培訓和支持",
"AndMore": "和更多",
"AdditionalDeveloperLicense": "額外的開發人員許可",
"ProjectCount": "項目數量",
"AllProModules": "所有模塊",
"AllProThemes": "所有主題",
"AllProStartupTemplates": "所有專業啟動模板",
"SourceCodeOfAllModules": "所有模塊的源碼",
"SourceCodeOfAllThemes": "所有主題的源碼",
"PerpetualLicense": "永久的許可",
"UnlimitedServerDeployment": "無限制的服務器部署",
"YearUpgrade": "1年升級",
"YearPremiumForumSupport": "1年高級論壇支持",
"ForumSupportIncidentCountYear": "論壇支持事件數量/年",
"PrivateTicketEmailSupport": "私有票和email支持",
"BuyNow": "現在購買",
"PayViaAmexCard": "我如何通過我的AMEX卡付款?",
"PayViaAmexCardDescription": "由於安全措施,默認付款網關'Iyzico'可能會拒絕某些AMEX信用卡. 在這種情況下,完全可以通過備用付款網關'2Checkout'付款.",
"InvalidReCaptchaErrorMessage": "验证reCAPTCHA时出错,请重试.",
"CompanyName": "公司名稱",
"YourCompanyName": "你的公司名稱",
"FirstName": "名",
"LastName": "姓",
"Optional": "可選的",
"YourFirstName": "你的名字",
"YourLastName": "你的姓氏",
"SpecialOffer": "特別優惠",
"SpecialOfferMessage": "盡快付款,價格在一定時間內有效.",
"DiscountRequest": "折扣申請",
"DiscountRequestDescribeCustomerQuestion": "以下哪個選項描述了你?",
"DiscountRequestStudentEmailMessage": "Email地址必須包含'edu'.",
"DiscountRequestDeveloperCount": "你有多少開發人員?",
"DiscountRequestDeveloperCountExceedMessage": "對於超過 {0} 開發人員的公司,我們不提供折扣.",
"DiscountRequestOrganizationName": "公司/組織/學校名稱",
"Website": "網站",
"GithubUsername": "GitHub用戶名",
"PhoneNumber": "手機號",
"Country": "國家",
"DescribeABPCommercialUsage": "描述你基於ABP商業版進行開發的項目",
"DiscountRequestCertifyInformationMessage": "我證明所有的信息都是真實的.",
"DiscountRequestReceived": "我們收到了你的折扣請求.",
"DiscountRequestStatusMessage": "我們會檢查你提供的信息並且給你答復.",
"MVCOrRazorPages": "MVC (Razor Pages)",
"Angular": "Angular",
"Blazor": "Blazor",
"New": "新的",
"MongoDB": "MongoDB"
}
}

5
abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json

@ -139,6 +139,9 @@
"LinkedinUrlValidationMessage": "Your Linkedin URL can not include whitespace, please be sure your Linkedin URL is correct.",
"NoPostsFound": "No posts found!",
"SearchInPosts": "Search in posts...",
"MinimumSearchContent": "You must enter at least 3 characters!"
"MinimumSearchContent": "You must enter at least 3 characters!",
"Volo.AbpIo.Domain:060001": "Source URL(\"{ArticleUrl}\") is not Github URL",
"Volo.AbpIo.Domain:060002": "Article Content is not available from Github(\"{ArticleUrl}\") resource.",
"Volo.AbpIo.Domain:060003": "No article content found!"
}
}

144
abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/fi.json

@ -0,0 +1,144 @@
{
"culture": "fi",
"texts": {
"Permission:CommunityArticle": "Yhteisön artikkeli",
"Permission:Edit": "Muokata",
"Waiting": "Odottaa",
"Approved": "Hyväksytty",
"Rejected": "Hylätty",
"Wait": "Odota",
"Approve": "Hyväksyä",
"Reject": "Hylätä",
"ReadArticle": "Lue artikkeli",
"Status": "Tila",
"ContentSource": "Sisältölähde",
"Details": "Yksityiskohdat",
"Url": "URL-osoite",
"Title": "Otsikko",
"CreationTime": "Luomisaika",
"Save": "Tallentaa",
"SameUrlAlreadyExist": "Sama URL-osoite on jo olemassa, jos haluat lisätä tämän artikkelin, vaihda URL-osoite!",
"UrlIsNotValid": "URL-osoite ei kelpaa.",
"UrlNotFound": "URL-osoitetta ei löydy.",
"UrlContentNotFound": "URL-osoitteen sisältöä ei löydy.",
"Summary": "Yhteenveto",
"MostRead": "Luetuimmat",
"Latest": "Viimeisin",
"ContributeAbpCommunity": "Osallistu sivutuotteiden yhteisöön",
"SubmitYourArticle": "Lähetä viesti",
"ContributionGuide": "Contribution Guide",
"BugReport": "Virhe raportti",
"SeeAllArticles": "Katso kaikki viestit",
"WelcomeToABPCommunity!": "Tervetuloa ABP-yhteisöön!",
"MyProfile": "Profiilini",
"MyOrganizations": "Omat organisaatiot",
"EmailNotValid": "Ole hyvä ja syötä toimiva sähköpostiosoite.",
"FeatureRequest": "Ominaisuuspyyntö",
"CreateArticleTitleInfo": "Viestiluettelossa näytettävän viestin nimi.",
"CreateArticleSummaryInfo": "Lyhyt yhteenveto viestistä, joka näytetään postituslistalla.",
"CreateArticleCoverInfo": "Lisää tehokkaan artikkelin luomiseksi kansikuva. Lataa 16: 9-kuvasuhteen kuvat parhaan näkymän saamiseksi. Tiedoston enimmäiskoko: 1 Mt.",
"ThisExtensionIsNotAllowed": "Tätä laajennusta ei sallita.",
"TheFileIsTooLarge": "Tiedosto on liian suuri.",
"GoToTheArticle": "Siirry artikkeliin",
"Contribute": "Osallistu",
"OverallProgress": "Kokonaisedistyminen",
"Done": "Tehty",
"Open": "Avata",
"Closed": "Suljettu",
"LatestQuestionOnThe": "Viimeisin kysymys",
"Stackoverflow": "Pinoaminen",
"Votes": "ääntä",
"Answer": "Vastaus",
"Views": "näkymät",
"Answered": "Vastasi",
"WaitingForYourAnswer": "Odotan vastaustasi",
"Asked": "kysyi",
"AllQuestions": "Kaikki kysymykset",
"NextVersion": "Seuraava versio",
"MilestoneErrorMessage": "Nykyisiä virstanpylväitä koskevia tietoja ei saatu Githubilta.",
"QuestionItemErrorMessage": "Viimeisimmät kysymystiedot Stackoverflow'sta epäonnistui.",
"Oops": "Oho!",
"CreateArticleSuccessMessage": "Artikkeli on lähetetty onnistuneesti. Se julkaistaan sivuston järjestelmänvalvojan tarkistuksen jälkeen.",
"ChooseCoverImage": "Valitse kansikuva ...",
"CoverImage": "Kansikuva",
"ShareYourExperiencesWithTheABPFramework": "Jaa kokemuksesi ABP-puitteista!",
"Optional": "Valinnainen",
"UpdateUserWebSiteInfo": "Esimerkki: https://johndoe.com",
"UpdateUserTwitterInfo": "Esimerkki: johndoe",
"UpdateUserGithubInfo": "Esimerkki: johndoe",
"UpdateUserLinkedinInfo": "Esimerkki: https: //www.linkedin.com / ...",
"UpdateUserCompanyInfo": "Esimerkki: Volosoft",
"UpdateUserJobTitleInfo": "Esimerkki: Ohjelmistokehittäjä",
"UserName": "Käyttäjänimi",
"Company": "Yhtiö",
"PersonalWebsite": "Henkilökohtainen verkkosivusto",
"RegistrationDate": "rekisteröinti päivämäärä",
"Social": "Sosiaalinen",
"Biography": "Elämäkerta",
"HasNoPublishedArticlesYet": "ei ole vielä julkaissut artikkeleita",
"Author": "Kirjoittaja",
"LatestGithubAnnouncements": "Viimeisimmät Github-ilmoitukset",
"SeeAllAnnouncements": "Katso kaikki ilmoitukset",
"LatestBlogPost": "Viimeisin blogiviesti",
"Edit": "Muokata",
"ProfileImageChange": "Vaihda profiilikuva",
"BlogItemErrorMessage": "Viimeisimpiä blogiviestitietoja ei saatu ABP: ltä.",
"PlannedReleaseDate": "Suunniteltu julkaisupäivä",
"CommunityArticleRequestErrorMessage": "Uusinta artikkelipyyntöä ei saatu Githubilta.",
"ArticleRequestFromGithubIssue": "Artikkelipyyntöjä ei ole nyt.",
"LatestArticles": "Uusimmat viestit",
"ArticleRequests": "Artikkelipyynnöt",
"AllArticleRequests": "Katso kaikki artikkelipyynnöt",
"SubscribeToTheNewsletter": "Tilaa uutiskirje",
"NewsletterEmailDefinition": "Hanki tietoa ABP: n tapahtumista, kuten uusista julkaisuista, ilmaisista lähteistä, artikkeleista ja muusta.",
"NoThanks": "Ei kiitos",
"MaybeLater": "Ehkä myöhemmin",
"JoinOurArticleNewsletter": "Liity artikkeliuutiskirjeeseemme",
"Community": "Yhteisö",
"Marketing": "Markkinointi",
"CommunityPrivacyPolicyConfirmation": "Hyväksyn käyttöehdot ja <a href=\"https://commercial.abp.io/Privacy\"> tietosuojakäytännön </a>.",
"ArticleRequestMessageTitle": "<a href=\"https://github.com/abpframework/abp/issues/new\"> Avaa ongelma </a> GitHubissa pyytääksesi artikkelia / opetusohjelmaa, jonka haluat nähdä tällä verkkosivustolla.",
"ArticleRequestMessageBody": "Tässä luettelo yhteisön pyytämistä artikkeleista. Haluatko kirjoittaa pyydetyn artikkelin? Napsauta pyyntöä ja liity keskusteluun.",
"Language": "Kieli",
"CreateArticleLanguageInfo": "Viestin sisällön kieli.",
"VideoPost": "Videoposti",
"Article": "Artikla",
"Read": "Lukea",
"CreateGithubArticleUrlInfo": "Artikkelin alkuperäinen GitHub-URL-osoite.",
"CreateVideoContentUrlInfo": "Viestin alkuperäinen Youtube-URL-osoite.",
"CreateExternalArticleUrlInfo": "Artikkelin alkuperäinen ulkoinen URL-osoite.",
"VideoContentForm": "Lähetä video YouTubessa",
"GithubPostForm": "Lähetä artikkeli GitHubista",
"ExternalPostForm": "Lähetä ulkoinen sisältö",
"HowToPost": "Kuinka lähettää?",
"Posts": "Viestit",
"VideoUrl": "Videon URL-osoite",
"GithubArticleUrl": "Github-artikkelien URL-osoite",
"ExternalArticleUrl": "Ulkoisen artikkelin URL-osoite",
"CreatePostCoverInfo": "Lisää kansikuva, jotta voit luoda tehokkaan viestin. Lataa 16: 9-kuvasuhteen kuvat parhaan näkymän saamiseksi. Tiedoston enimmäiskoko: 1 Mt.",
"ThankYouForContribution": "Kiitos osallistumisesta ABP-yhteisöön.",
"GithubArticle": "Github-artikkeli",
"GithubArticleSubmitStepOne": "<span class = \"font-weight-bold\"> 1. </span> Kirjoita artikkeli mistä tahansa julkisesta GitHub-arkistosta Markdown-muodossa. <a target=\"_blank\" href=\"https://github.com/abpframework/abp/blob/dev/docs/fi/Community-Articles/2020-12-04-Event-Organizer/Post.md\"> esimerkki </a>",
"GithubArticleSubmitStepTwo": "<span class = \"font-weight-bold\"> 2. </span> Lähetä artikkelin URL-osoite lomaketta käyttämällä.",
"GithubArticleSubmitStepThree": "<span class = \"font-weight-bold\"> 3. </span> Artikkelisi renderöidään tällä verkkosivustolla.",
"YoutubeVideo": "Youtube-video",
"YoutubeVideoSubmitStepOne": "<span class = \"font-weight-bold\"> 1. </span> Julkaise videosi YouTubessa.",
"YoutubeVideoSubmitStepTwo": "<span class = \"font-weight-bold\"> 2. </span> Lähetä videon URL-osoite lomaketta käyttäen.",
"YoutubeVideoSubmitStepThree": "<span class = \"font-weight-bold\"> 3. </span> Vierailijat voivat katsella videosisältöäsi suoraan tällä verkkosivustolla.",
"ExternalContent": "Ulkoinen sisältö",
"ExternalContentSubmitStepOne": "<span class = \"font-weight-bold\"> 1. </span> Luo sisältöä mille tahansa julkiselle alustalle (media, oma blogi tai mihin tahansa haluat).",
"ExternalContentSubmitStepTwo": "<span class = \"font-weight-bold\"> 2. </span> Lähetä sisällön URL-osoite lomaketta käyttämällä.",
"ExternalContentSubmitStepThree": "<span class = \"font-weight-bold\"> 3. </span> Vierailijat ohjataan alkuperäisen verkkosivuston sisältöön.",
"ChooseYourContentType": "Valitse tapa, jolla haluat lisätä sisältöä.",
"PostContentViaGithub": "Haluan lisätä artikkelini <span class = \"font-weight-bold\"> <i class = \"fa fa-github\"> </i> GitHub </span> -merkintäsääntöjen mukaisesti.",
"PostContentViaYoutube": "Haluan jakaa videoni, jotka ovat käytettävissä <span class = \"font-weight-bold\"> <i class = \"fa fa-youtube\"> </i> Youtube </span> täällä.",
"PostContentViaExternalSource": "Haluan lisätä <span class = \"font-weight-bold\"> toisella alustalla </span> julkaisemani sisällön tähän.",
"GitHubUserNameValidationMessage": "Github-käyttäjänimesi ei voi sisältää välilyöntiä. Varmista, että Github-käyttäjänimesi on oikea.",
"PersonalSiteUrlValidationMessage": "Henkilökohtaisen sivuston URL-osoite ei voi sisältää välilyöntiä. Varmista, että henkilökohtaisen sivuston URL-osoite on oikea.",
"TwitterUserNameValidationMessage": "Twitter-käyttäjänimesi ei voi sisältää välilyöntiä. Varmista, että Twitter-käyttäjänimesi on oikea.",
"LinkedinUrlValidationMessage": "Linkedin-URL-osoitteesi ei voi sisältää välilyöntiä. Varmista, että Linkedin-URL-osoitteesi on oikea.",
"NoPostsFound": "Viestejä ei löytynyt!",
"SearchInPosts": "Hae viesteistä ...",
"MinimumSearchContent": "Sinun on annettava vähintään 3 merkkiä!"
}
}

144
abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/fr.json

@ -0,0 +1,144 @@
{
"culture": "fr",
"texts": {
"Permission:CommunityArticle": "Article communautaire",
"Permission:Edit": "Éditer",
"Waiting": "Attendre",
"Approved": "Approuvé",
"Rejected": "Rejeté",
"Wait": "Attendez",
"Approve": "Approuver",
"Reject": "Rejeter",
"ReadArticle": "Lire l'article",
"Status": "Statut",
"ContentSource": "Source du contenu",
"Details": "Des détails",
"Url": "URL",
"Title": "Titre",
"CreationTime": "Temps de creation",
"Save": "Sauvegarder",
"SameUrlAlreadyExist": "La même URL existe déjà si vous souhaitez ajouter cet article, vous devez changer l'url!",
"UrlIsNotValid": "L'URL n'est pas valide.",
"UrlNotFound": "URL introuvable.",
"UrlContentNotFound": "Contenu de l'URL introuvable.",
"Summary": "Résumé",
"MostRead": "Les plus lus",
"Latest": "Dernier",
"ContributeAbpCommunity": "Contribuez à la communauté ABP",
"SubmitYourArticle": "Soumettez votre message",
"ContributionGuide": "Guide de contribution",
"BugReport": "Rapport d'erreur",
"SeeAllArticles": "Voir tous les articles",
"WelcomeToABPCommunity!": "Bienvenue dans la communauté ABP!",
"MyProfile": "Mon profil",
"MyOrganizations": "Mes organisations",
"EmailNotValid": "S'il vous plaît, mettez une adresse email valide.",
"FeatureRequest": "Demande de fonctionnalité",
"CreateArticleTitleInfo": "Titre du message à afficher dans la liste des messages.",
"CreateArticleSummaryInfo": "Un bref résumé du message à afficher dans la liste des messages.",
"CreateArticleCoverInfo": "Pour créer un article efficace, ajoutez une photo de couverture. Téléchargez des images au format 16: 9 pour une meilleure vue. Taille maximale du fichier: 1 Mo.",
"ThisExtensionIsNotAllowed": "Cette extension n'est pas autorisée.",
"TheFileIsTooLarge": "Le fichier est trop volumineux.",
"GoToTheArticle": "Aller à l'article",
"Contribute": "Contribuer",
"OverallProgress": "Les progrès d'ensemble",
"Done": "Fait",
"Open": "Ouvert",
"Closed": "Fermé",
"LatestQuestionOnThe": "Dernière question sur le",
"Stackoverflow": "Stackoverflow",
"Votes": "les votes",
"Answer": "Répondre",
"Views": "vues",
"Answered": "Répondu",
"WaitingForYourAnswer": "En attente de votre réponse",
"Asked": "demandé",
"AllQuestions": "Toutes les questions",
"NextVersion": "Version suivante",
"MilestoneErrorMessage": "Impossible d'obtenir les détails de l'étape actuelle à partir de Github.",
"QuestionItemErrorMessage": "Impossible d'obtenir les derniers détails de la question de Stackoverflow.",
"Oops": "Oops!",
"CreateArticleSuccessMessage": "L'article a été soumis avec succès. Il sera publié après un examen de l'administrateur du site.",
"ChooseCoverImage": "Choisissez une image de couverture ...",
"CoverImage": "Image de couverture",
"ShareYourExperiencesWithTheABPFramework": "Partagez vos expériences avec le Framework ABP!",
"Optional": "Optionnel",
"UpdateUserWebSiteInfo": "Exemple: https://johndoe.com",
"UpdateUserTwitterInfo": "Exemple: johndoe",
"UpdateUserGithubInfo": "Exemple: johndoe",
"UpdateUserLinkedinInfo": "Exemple: https: //www.linkedin.com / ...",
"UpdateUserCompanyInfo": "Exemple: Volosoft",
"UpdateUserJobTitleInfo": "Exemple: développeur de logiciels",
"UserName": "Nom d'utilisateur",
"Company": "Compagnie",
"PersonalWebsite": "Site Web personnel",
"RegistrationDate": "Date d'inscription",
"Social": "Social",
"Biography": "Biographie",
"HasNoPublishedArticlesYet": "n'a pas encore d'articles publiés",
"Author": "Auteur",
"LatestGithubAnnouncements": "Dernières annonces Github",
"SeeAllAnnouncements": "Voir toutes les annonces",
"LatestBlogPost": "Dernier article de blog",
"Edit": "Éditer",
"ProfileImageChange": "Changer l'image de profil",
"BlogItemErrorMessage": "Impossible d'obtenir les derniers détails du billet de blog d'ABP.",
"PlannedReleaseDate": "Date de sortie prévue",
"CommunityArticleRequestErrorMessage": "Impossible d'obtenir la dernière demande d'article de Github.",
"ArticleRequestFromGithubIssue": "Il n'y a actuellement aucune demande d'article.",
"LatestArticles": "Derniers messages",
"ArticleRequests": "Demandes d'articles",
"AllArticleRequests": "Voir toutes les demandes d'articles",
"SubscribeToTheNewsletter": "Abonnez-vous à la newsletter",
"NewsletterEmailDefinition": "Obtenez des informations sur les événements d'ABP, comme les nouvelles versions, les sources gratuites, les articles, etc.",
"NoThanks": "Non merci",
"MaybeLater": "Peut-être plus tard",
"JoinOurArticleNewsletter": "Rejoignez notre newsletter d'article",
"Community": "Communauté",
"Marketing": "Commercialisation",
"CommunityPrivacyPolicyConfirmation": "J'accepte les conditions générales et la <a href=\"https://commercial.abp.io/Privacy\"> politique de confidentialité </a>.",
"ArticleRequestMessageTitle": "<a href=\"https://github.com/abpframework/abp/issues/new\"> Ouvrez un problème </a> sur le GitHub pour demander un article / didacticiel que vous souhaitez voir sur ce site Web.",
"ArticleRequestMessageBody": "Ici, la liste des articles demandés par la communauté. Voulez-vous écrire un article demandé? Veuillez cliquer sur la demande et vous joindre à la discussion.",
"Language": "Langue",
"CreateArticleLanguageInfo": "La langue du contenu de l'article.",
"VideoPost": "Message vidéo",
"Article": "Article",
"Read": "Lis",
"CreateGithubArticleUrlInfo": "URL GitHub d'origine de l'article.",
"CreateVideoContentUrlInfo": "URL Youtube d'origine du message.",
"CreateExternalArticleUrlInfo": "URL externe d'origine de l'article.",
"VideoContentForm": "Soumettre une vidéo sur YouTube",
"GithubPostForm": "Soumettre un article sur GitHub",
"ExternalPostForm": "Soumettre un contenu externe",
"HowToPost": "Comment publier?",
"Posts": "Des postes",
"VideoUrl": "URL de la vidéo",
"GithubArticleUrl": "URL de l'article Github",
"ExternalArticleUrl": "URL de l'article externe",
"CreatePostCoverInfo": "Pour créer un article efficace, ajoutez une photo de couverture. Téléchargez des images au format 16: 9 pour une meilleure vue. Taille maximale du fichier: 1 Mo.",
"ThankYouForContribution": "Merci de contribuer à la communauté ABP.",
"GithubArticle": "Article Github",
"GithubArticleSubmitStepOne": "<span class = \"font-weight-bold\"> 1. </span> Rédigez un article sur n'importe quel référentiel GitHub public au format Markdown. Exemple de <a target=\"_blank\" href=\"https://github.com/abpframework/abp/blob/dev/docs/en/Community-Articles/2020-12-04-Event-Organizer/Post.md\"> </a>",
"GithubArticleSubmitStepTwo": "<span class = \"font-weight-bold\"> 2. </span> Envoyez l'URL de votre article à l'aide du formulaire.",
"GithubArticleSubmitStepThree": "<span class = \"font-weight-bold\"> 3. </span> Votre article sera rendu sur ce site Web.",
"YoutubeVideo": "Vidéo Youtube",
"YoutubeVideoSubmitStepOne": "<span class = \"font-weight-bold\"> 1. </span> Publiez votre vidéo sur YouTube.",
"YoutubeVideoSubmitStepTwo": "<span class = \"font-weight-bold\"> 2. </span> Envoyez l'URL de la vidéo à l'aide du formulaire.",
"YoutubeVideoSubmitStepThree": "<span class = \"font-weight-bold\"> 3. </span> Les visiteurs pourront visionner votre contenu vidéo directement sur ce site Web.",
"ExternalContent": "Contenu externe",
"ExternalContentSubmitStepOne": "<span class = \"font-weight-bold\"> 1. </span> Créez un contenu sur n'importe quelle plate-forme publique (support, votre propre blog ou partout où vous le souhaitez).",
"ExternalContentSubmitStepTwo": "<span class = \"font-weight-bold\"> 2. </span> Envoyez votre URL de contenu à l'aide du formulaire.",
"ExternalContentSubmitStepThree": "<span class = \"font-weight-bold\"> 3. </span> Les visiteurs sont redirigés vers le contenu du site Web d'origine.",
"ChooseYourContentType": "Veuillez choisir la manière dont vous souhaitez ajouter votre contenu.",
"PostContentViaGithub": "Je souhaite ajouter mon article avec <span class = \"font-weight-bold\"> <i class = \"fa fa-github\"> </i> GitHub </span> conformément aux règles de démarque.",
"PostContentViaYoutube": "Je souhaite partager mes vidéos disponibles sur <span class = \"font-weight-bold\"> <i class = \"fa fa-youtube\"> </i> Youtube </span> ici.",
"PostContentViaExternalSource": "Je souhaite ajouter le contenu que j'ai publié sur <span class = \"font-weight-bold\"> une autre plate-forme </span> ici.",
"GitHubUserNameValidationMessage": "Votre nom d'utilisateur Github ne peut pas inclure d'espaces, veuillez vous assurer que votre nom d'utilisateur Github est correct.",
"PersonalSiteUrlValidationMessage": "L'URL de votre site personnel ne peut pas inclure d'espaces, veuillez vous assurer que l'URL de votre site personnel est correcte.",
"TwitterUserNameValidationMessage": "Votre nom d'utilisateur Twitter ne peut pas inclure d'espaces, veuillez vous assurer que votre nom d'utilisateur Twitter est correct.",
"LinkedinUrlValidationMessage": "Votre URL Linkedin ne peut pas inclure d'espace blanc, veuillez vous assurer que votre URL Linkedin est correcte.",
"NoPostsFound": "Aucun article trouvé!",
"SearchInPosts": "Rechercher dans les messages ...",
"MinimumSearchContent": "Vous devez saisir au moins 3 caractères!"
}
}

147
abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/hi.json

@ -0,0 +1,147 @@
{
"culture": "hi",
"texts": {
"Permission:CommunityArticle": "सामुदायिक अनुच्छेद",
"Permission:Edit": "संपादित करें",
"Waiting": "इंतज़ार कर रही",
"Approved": "मंजूर की",
"Rejected": "अस्वीकृत",
"Wait": "रुको",
"Approve": "मंजूर",
"Reject": "अस्वीकार",
"ReadArticle": "लेख पढ़ें",
"Status": "स्थिति",
"ContentSource": "विषय - वस्तु का स्रोत",
"Details": "विवरण",
"Url": "यूआरएल",
"Title": "शीर्षक",
"CreationTime": "रचना समय",
"Save": "सहेजें",
"SameUrlAlreadyExist": "वही url पहले से मौजूद है यदि आप इस लेख को जोड़ना चाहते हैं, तो आपको url को बदल देना चाहिए!",
"UrlIsNotValid": "यू आर एल मान्य नहीं है।",
"UrlNotFound": "Url नहीं मिला।",
"UrlContentNotFound": "यूआरएल सामग्री नहीं मिली।",
"Summary": "सारांश",
"MostRead": "सबसे ज़्यादा पढ़ा हुआ",
"Latest": "नवीनतम",
"ContributeAbpCommunity": "ABP समुदाय में योगदान दें",
"SubmitYourArticle": "अपनी पोस्ट सबमिट करें",
"ContributionGuide": "योगदान गाइड",
"BugReport": "बग रिपोर्ट",
"SeeAllArticles": "सभी पोस्ट देखें",
"WelcomeToABPCommunity!": "ABP समुदाय में आपका स्वागत है!",
"MyProfile": "मेरी प्रोफाइल",
"MyOrganizations": "मेरे संगठन",
"EmailNotValid": "कृपया एक वैध ई - मेल एड्रेस डालें।",
"FeatureRequest": "महत्वपूर्ण लेख मांगना",
"CreateArticleTitleInfo": "पोस्ट का शीर्षक पोस्ट सूची पर दिखाया जाना है।",
"CreateArticleSummaryInfo": "पोस्ट सूची पर दिखाए जाने वाले पोस्ट का संक्षिप्त सारांश।",
"CreateArticleCoverInfo": "एक प्रभावी लेख बनाने के लिए, एक कवर फ़ोटो जोड़ें। सर्वश्रेष्ठ दृश्य के लिए 16: 9 पहलू अनुपात चित्र अपलोड करें। अधिकतम फ़ाइल आकार: 1 एमबी।",
"ThisExtensionIsNotAllowed": "इस एक्सटेंशन की अनुमति नहीं है।",
"TheFileIsTooLarge": "फ़ाइल बहुत बड़ी है।",
"GoToTheArticle": "लेख पर जाएं",
"Contribute": "योगदान",
"OverallProgress": "समग्र प्रगति",
"Done": "किया हुआ",
"Open": "खुला हुआ",
"Closed": "बंद किया हुआ",
"LatestQuestionOnThe": "पर नवीनतम प्रश्न",
"Stackoverflow": "स्टैक ओवरफ़्लो",
"Votes": "वोट",
"Answer": "उत्तर",
"Views": "विचारों",
"Answered": "उत्तर",
"WaitingForYourAnswer": "आपके जवाब का इंतज़ार",
"Asked": "पूछा",
"AllQuestions": "सभी प्रश्न",
"NextVersion": "अगला संस्करण",
"MilestoneErrorMessage": "Github से वर्तमान मील का पत्थर का विवरण नहीं मिल सका।",
"QuestionItemErrorMessage": "Stackoverflow से नवीनतम प्रश्न विवरण प्राप्त नहीं कर सका।",
"Oops": "उफ़!",
"CreateArticleSuccessMessage": "अनुच्छेद सफलतापूर्वक प्रस्तुत किया गया है। इसे साइट व्यवस्थापक से समीक्षा के बाद प्रकाशित किया जाएगा।",
"ChooseCoverImage": "कवर छवि चुनें ...",
"CoverImage": "कवर छवि",
"ShareYourExperiencesWithTheABPFramework": "ABP फ्रेमवर्क के साथ अपने अनुभव साझा करें!",
"Optional": "ऐच्छिक",
"UpdateUserWebSiteInfo": "उदाहरण: https://johndoe.com",
"UpdateUserTwitterInfo": "उदाहरण: जॉन्डो",
"UpdateUserGithubInfo": "उदाहरण: जॉन्डो",
"UpdateUserLinkedinInfo": "उदाहरण: https: //www.linkedin.com / ...",
"UpdateUserCompanyInfo": "उदाहरण: वोलोसॉफ्ट",
"UpdateUserJobTitleInfo": "उदाहरण: सॉफ्टवेयर डेवलपर",
"UserName": "उपयोगकर्ता नाम",
"Company": "कंपनी",
"PersonalWebsite": "व्यक्तिगत वेबसाइट",
"RegistrationDate": "पंजीकरण की तारीख",
"Social": "सामाजिक",
"Biography": "जीवनी",
"HasNoPublishedArticlesYet": "अभी तक कोई प्रकाशित लेख नहीं है",
"Author": "लेखक",
"LatestGithubAnnouncements": "नवीनतम गितूब घोषणाएँ",
"SeeAllAnnouncements": "सभी घोषणाएँ देखें",
"LatestBlogPost": "नवीनतम ब्लॉग पोस्ट",
"Edit": "संपादित करें",
"ProfileImageChange": "प्रोफ़ाइल छवि बदलें",
"BlogItemErrorMessage": "ABP से नवीनतम ब्लॉग पोस्ट विवरण नहीं मिल सका।",
"PlannedReleaseDate": "योजना जारी करने की तारीख",
"CommunityArticleRequestErrorMessage": "जीथब से नवीनतम लेख अनुरोध नहीं मिल सका।",
"ArticleRequestFromGithubIssue": "अब कोई लेख अनुरोध नहीं है।",
"LatestArticles": "नवीनतम पोस्ट",
"ArticleRequests": "लेख अनुरोध",
"AllArticleRequests": "सभी लेख अनुरोध देखें",
"SubscribeToTheNewsletter": "न्यूज़लेटर की सदस्यता लें",
"NewsletterEmailDefinition": "एबीपी में होने वाली घटनाओं के बारे में जानकारी प्राप्त करें जैसे नए रिलीज़, मुफ्त स्रोत, लेख, और बहुत कुछ।",
"NoThanks": "जी नहीं, धन्यवाद",
"MaybeLater": "शायद बाद में",
"JoinOurArticleNewsletter": "हमारे लेख समाचार पत्र में शामिल हों",
"Community": "समुदाय",
"Marketing": "विपणन",
"CommunityPrivacyPolicyConfirmation": "मैं नियम और शर्तों और <a href=\"https://com Commercial.abp.io/Privacy\"> गोपनीयता नीति </a> से सहमत हूं।",
"ArticleRequestMessageTitle": "GitHub पर एक लेख / ट्यूटोरियल जिसे आप इस वेब साइट पर देखना चाहते हैं, का अनुरोध करने के लिए <a href=\"https://github.com/abpframework/abp/issues/new\"> एक समस्या खोलें </a>।",
"ArticleRequestMessageBody": "यहाँ, समुदाय द्वारा अनुरोधित लेखों की सूची। क्या आप एक अनुरोधित लेख लिखना चाहते हैं? कृपया अनुरोध पर क्लिक करें और चर्चा में शामिल हों।",
"Language": "भाषा: हिन्दी",
"CreateArticleLanguageInfo": "पोस्ट सामग्री के लिए भाषा।",
"VideoPost": "वीडियो पोस्ट",
"Article": "लेख",
"Read": "पढ़ें",
"CreateGithubArticleUrlInfo": "मूल GitHub लेख का URL।",
"CreateVideoContentUrlInfo": "पोस्ट का मूल Youtube URL।",
"CreateExternalArticleUrlInfo": "लेख के मूल बाहरी यूआरएल।",
"VideoContentForm": "YouTube पर वीडियो सबमिट करें",
"GithubPostForm": "GitHub पर लेख प्रस्तुत करें",
"ExternalPostForm": "एक बाहरी सामग्री सबमिट करें",
"HowToPost": "पोस्ट कैसे करें?",
"Posts": "पदों",
"VideoUrl": "वीडियो यूआरएल",
"GithubArticleUrl": "गीथब लेख उराल",
"ExternalArticleUrl": "बाहरी लेख यूआरएल",
"CreatePostCoverInfo": "एक प्रभावी पोस्ट बनाने के लिए, एक कवर फ़ोटो जोड़ें। सर्वश्रेष्ठ दृश्य के लिए 16: 9 पहलू अनुपात चित्र अपलोड करें। अधिकतम फ़ाइल आकार: 1 एमबी।",
"ThankYouForContribution": "ABP समुदाय में योगदान के लिए धन्यवाद।",
"GithubArticle": "गीथब लेख",
"GithubArticleSubmitStepOne": "<span class = \"font-weight-bold\"> 1। </ span> मार्कडाउन प्रारूप के साथ किसी भी सार्वजनिक GitHub रिपॉजिटरी पर एक लेख लिखें। <a target=\"_blank\" href=\"https://github.com/abpframework/abp/blob/dev/docs/en/Community-Articles/2020-12-04-Event-Offganizer/Post.md\"> उदाहरण </a>",
"GithubArticleSubmitStepTwo": "<span class = \"font-weight-bold\"> 2। </ span> फ़ॉर्म का उपयोग करके अपना लेख URL सबमिट करें।",
"GithubArticleSubmitStepThree": "<span class = \"font-weight-bold\"> 3। </ span> इस वेब साइट में आपका लेख प्रस्तुत किया जाएगा।",
"YoutubeVideo": "यूट्यूब वीडियो",
"YoutubeVideoSubmitStepOne": "<span class = \"font-weight-bold\"> 1। </ span> YouTube पर अपना वीडियो प्रकाशित करें।",
"YoutubeVideoSubmitStepTwo": "<span class = \"font-weight-bold\"> 2। </ span> फ़ॉर्म का उपयोग करके वीडियो URL सबमिट करें।",
"YoutubeVideoSubmitStepThree": "<span class = \"font-weight-bold\"> 3। </ span> आगंतुक इस वेबसाइट पर सीधे आपकी वीडियो सामग्री देख सकेंगे।",
"ExternalContent": "बाहरी सामग्री",
"ExternalContentSubmitStepOne": "<span class = \"font-weight-bold\"> 1। </ span> किसी भी सार्वजनिक मंच पर एक सामग्री बनाएं (मध्यम, अपना स्वयं का ब्लॉग या कहीं भी आप चाहें)।",
"ExternalContentSubmitStepTwo": "<span class = \"font-weight-bold\"> 2। </ span> फ़ॉर्म का उपयोग करके अपना सामग्री URL सबमिट करें।",
"ExternalContentSubmitStepThree": "<span class = \"font-weight-bold\"> 3। </ span> मूल वेबसाइट पर आगंतुकों को सामग्री पर पुनर्निर्देशित किया गया है।",
"ChooseYourContentType": "कृपया अपनी सामग्री जोड़ने का तरीका चुनें।",
"PostContentViaGithub": "मैं अपना लेख जोड़ना चाहता हूं <span class = \"font-weight-bold\"> <i class = \"fa fa-github\"> </ i> GitHub </ span> अंकन नियमों के अनुसार।",
"PostContentViaYoutube": "मैं यहां उपलब्ध अपने वीडियो को <span class = \"font-weight-bold\"> <i class = \"fa fa-youtube\"> </ i> Youtube </ span> पर साझा करना चाहता हूं।",
"PostContentViaExternalSource": "मैं यहां <span class = \"font-weight-bold\"> एक अन्य प्लेटफ़ॉर्म </ span> पर प्रकाशित सामग्री जोड़ना चाहता हूं।",
"GitHubUserNameValidationMessage": "आपके Github उपयोगकर्ता नाम में व्हॉट्सएप शामिल नहीं हो सकता है, कृपया सुनिश्चित करें कि आपका Github उपयोगकर्ता नाम सही है।",
"PersonalSiteUrlValidationMessage": "आपके व्यक्तिगत साइट URL में व्हॉट्सएप शामिल नहीं हो सकता है, कृपया सुनिश्चित करें कि आपका व्यक्तिगत साइट URL सही है।",
"TwitterUserNameValidationMessage": "आपके ट्विटर उपयोगकर्ता नाम में व्हाट्सएप शामिल नहीं हो सकता है, कृपया सुनिश्चित करें कि आपका ट्विटर उपयोगकर्ता नाम सही है।",
"LinkedinUrlValidationMessage": "आपके लिंक्डइन URL में व्हॉट्सएप शामिल नहीं हो सकता है, कृपया सुनिश्चित करें कि आपका लिंक्डइन URL सही है।",
"NoPostsFound": "कोई प्रकाशन नहीं मिला!",
"SearchInPosts": "पदों में खोजें ...",
"MinimumSearchContent": "आपको कम से कम 3 वर्ण दर्ज करने होंगे!",
"Volo.AbpIo.Domain:060001": "स्रोत URL (\"{ArticleUrl}\") जीथब URL नहीं है",
"Volo.AbpIo.Domain:060002": "लेख सामग्री Github (\"{ArticleUrl}\") संसाधन से उपलब्ध नहीं है।",
"Volo.AbpIo.Domain:060003": "कोई लेख सामग्री नहीं मिली!"
}
}

147
abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/it.json

@ -0,0 +1,147 @@
{
"culture": "it",
"texts": {
"Permission:CommunityArticle": "Articolo comunitario",
"Permission:Edit": "modificare",
"Waiting": "In attesa",
"Approved": "Approvato",
"Rejected": "Respinto",
"Wait": "Aspettare",
"Approve": "Approvare",
"Reject": "Rifiutare",
"ReadArticle": "Leggi l'articolo",
"Status": "Stato",
"ContentSource": "Fonte di contenuto",
"Details": "Dettagli",
"Url": "Url",
"Title": "Titolo",
"CreationTime": "Tempo di creazione",
"Save": "Salva",
"SameUrlAlreadyExist": "Lo stesso URL esiste già se vuoi aggiungere questo articolo, dovresti cambiare l'URL!",
"UrlIsNotValid": "URL non valido.",
"UrlNotFound": "URL non trovato.",
"UrlContentNotFound": "Contenuto URL non trovato.",
"Summary": "Sommario",
"MostRead": "I più letti",
"Latest": "Ultimo",
"ContributeAbpCommunity": "Contribuisci alla comunità ABP",
"SubmitYourArticle": "Invia il tuo post",
"ContributionGuide": "Guida al contributo",
"BugReport": "Riportare un errore",
"SeeAllArticles": "Vedi tutti i post",
"WelcomeToABPCommunity!": "Benvenuto nella comunità ABP!",
"MyProfile": "Il mio profilo",
"MyOrganizations": "Le mie organizzazioni",
"EmailNotValid": "Si prega di inserire un indirizzo email valido.",
"FeatureRequest": "Richiesta di funzionalità",
"CreateArticleTitleInfo": "Titolo del post da mostrare nell'elenco dei post.",
"CreateArticleSummaryInfo": "Un breve riassunto del post da mostrare nell'elenco dei post.",
"CreateArticleCoverInfo": "Per creare un articolo efficace, aggiungi una foto di copertina. Carica immagini in formato 16: 9 per una visualizzazione migliore. Dimensione massima del file: 1 MB.",
"ThisExtensionIsNotAllowed": "Questa estensione non è consentita.",
"TheFileIsTooLarge": "Il file è troppo grande.",
"GoToTheArticle": "Vai all'articolo",
"Contribute": "Contribuire",
"OverallProgress": "Progressi generali",
"Done": "Fatto",
"Open": "Aperto",
"Closed": "Chiuso",
"LatestQuestionOnThe": "Ultima domanda su",
"Stackoverflow": "Stackoverflow",
"Votes": "voti",
"Answer": "Risposta",
"Views": "visualizzazioni",
"Answered": "Risposto",
"WaitingForYourAnswer": "In attesa della tua risposta",
"Asked": "chiesto",
"AllQuestions": "Tutte le domande",
"NextVersion": "Versione successiva",
"MilestoneErrorMessage": "Impossibile ottenere i dettagli della pietra miliare corrente da Github.",
"QuestionItemErrorMessage": "Impossibile ottenere gli ultimi dettagli della domanda da Stackoverflow.",
"Oops": "Ops!",
"CreateArticleSuccessMessage": "L'articolo è stato inviato con successo. Verrà pubblicato dopo una revisione da parte dell'amministratore del sito.",
"ChooseCoverImage": "Scegli un'immagine di copertina ...",
"CoverImage": "Immagine di copertina",
"ShareYourExperiencesWithTheABPFramework": "Condividi le tue esperienze con ABP Framework!",
"Optional": "Opzionale",
"UpdateUserWebSiteInfo": "Esempio: https://johndoe.com",
"UpdateUserTwitterInfo": "Esempio: johndoe",
"UpdateUserGithubInfo": "Esempio: johndoe",
"UpdateUserLinkedinInfo": "Esempio: https: //www.linkedin.com / ...",
"UpdateUserCompanyInfo": "Esempio: Volosoft",
"UpdateUserJobTitleInfo": "Esempio: sviluppatore di software",
"UserName": "Nome utente",
"Company": "Azienda",
"PersonalWebsite": "Sito web personale",
"RegistrationDate": "Data di registrazione",
"Social": "Sociale",
"Biography": "Biografia",
"HasNoPublishedArticlesYet": "non ha ancora articoli pubblicati",
"Author": "Autore",
"LatestGithubAnnouncements": "Ultimi annunci su GitHub",
"SeeAllAnnouncements": "Vedi tutti gli annunci",
"LatestBlogPost": "Ultimo post sul blog",
"Edit": "modificare",
"ProfileImageChange": "Cambia l'immagine del profilo",
"BlogItemErrorMessage": "Impossibile ottenere i dettagli più recenti del post del blog da ABP.",
"PlannedReleaseDate": "Data di rilascio prevista",
"CommunityArticleRequestErrorMessage": "Impossibile ottenere l'ultima richiesta di articolo da Github.",
"ArticleRequestFromGithubIssue": "Non ci sono richieste di articoli al momento.",
"LatestArticles": "ultimi post",
"ArticleRequests": "Richieste di articoli",
"AllArticleRequests": "Vedi tutte le richieste di articoli",
"SubscribeToTheNewsletter": "Iscriviti alla Newsletter",
"NewsletterEmailDefinition": "Ottieni informazioni sugli eventi in ABP come nuove versioni, fonti gratuite, articoli e altro ancora.",
"NoThanks": "No grazie",
"MaybeLater": "Forse più tardi",
"JoinOurArticleNewsletter": "Iscriviti alla nostra newsletter articolo",
"Community": "Comunità",
"Marketing": "Marketing",
"CommunityPrivacyPolicyConfirmation": "Accetto i Termini e condizioni e l '<a href=\"https://commercial.abp.io/Privacy\"> Informativa sulla privacy </a>.",
"ArticleRequestMessageTitle": "<a href=\"https://github.com/abpframework/abp/issues/new\"> Apri un numero </a> su GitHub per richiedere un articolo / tutorial che desideri vedere su questo sito web.",
"ArticleRequestMessageBody": "Di seguito l'elenco degli articoli richiesti dalla community. Vuoi scrivere un articolo richiesto? Fare clic sulla richiesta e partecipare alla discussione.",
"Language": "linguaggio",
"CreateArticleLanguageInfo": "La lingua per il contenuto del post.",
"VideoPost": "Post video",
"Article": "Articolo",
"Read": "Leggere",
"CreateGithubArticleUrlInfo": "URL originale di GitHub dell'articolo.",
"CreateVideoContentUrlInfo": "URL YouTube originale del post.",
"CreateExternalArticleUrlInfo": "URL esterno originale dell'articolo.",
"VideoContentForm": "Invia video su YouTube",
"GithubPostForm": "Invia articolo su GitHub",
"ExternalPostForm": "Invia un contenuto esterno",
"HowToPost": "Come pubblicare?",
"Posts": "Messaggi",
"VideoUrl": "URL video",
"GithubArticleUrl": "URL articolo Github",
"ExternalArticleUrl": "URL articolo esterno",
"CreatePostCoverInfo": "Per creare un post efficace, aggiungi una foto di copertina. Carica immagini in formato 16: 9 per una visualizzazione migliore. Dimensione massima del file: 1 MB.",
"ThankYouForContribution": "Grazie per aver contribuito alla comunità ABP.",
"GithubArticle": "Articolo GitHub",
"GithubArticleSubmitStepOne": "<span class = \"font-weight-bold\"> 1. </span> Scrivi un articolo su qualsiasi repository GitHub pubblico con il formato Markdown. <a target=\"_blank\" href=\"https://github.com/abpframework/abp/blob/dev/docs/en/Community-Articles/2020-12-04-Event-Organizer/Post.md\"> esempio </a>",
"GithubArticleSubmitStepTwo": "<span class = \"font-weight-bold\"> 2. </span> Invia l'URL del tuo articolo utilizzando il modulo.",
"GithubArticleSubmitStepThree": "<span class = \"font-weight-bold\"> 3. </span> Il tuo articolo verrà visualizzato in questo sito web.",
"YoutubeVideo": "Video Youtube",
"YoutubeVideoSubmitStepOne": "<span class = \"font-weight-bold\"> 1. </span> Pubblica il tuo video su YouTube.",
"YoutubeVideoSubmitStepTwo": "<span class = \"font-weight-bold\"> 2. </span> Invia l'URL del video utilizzando il modulo.",
"YoutubeVideoSubmitStepThree": "<span class = \"font-weight-bold\"> 3. </span> I visitatori potranno guardare i tuoi contenuti video direttamente su questo sito web.",
"ExternalContent": "Contenuto esterno",
"ExternalContentSubmitStepOne": "<span class = \"font-weight-bold\"> 1. </span> Crea un contenuto su qualsiasi piattaforma pubblica (mezzo, il tuo blog o ovunque tu voglia).",
"ExternalContentSubmitStepTwo": "<span class = \"font-weight-bold\"> 2. </span> Invia l'URL dei tuoi contenuti utilizzando il modulo.",
"ExternalContentSubmitStepThree": "<span class = \"font-weight-bold\"> 3. </span> I visitatori vengono reindirizzati al contenuto del sito web originale.",
"ChooseYourContentType": "Scegli il modo in cui desideri aggiungere i tuoi contenuti.",
"PostContentViaGithub": "Voglio aggiungere il mio articolo con <span class = \"font-weight-bold\"> <i class = \"fa fa-github\"> </i> GitHub </span> in conformità con le regole di markdown.",
"PostContentViaYoutube": "Voglio condividere i miei video disponibili su <span class = \"font-weight-bold\"> <i class = \"fa fa-youtube\"> </i> Youtube </span> qui.",
"PostContentViaExternalSource": "Voglio aggiungere qui il contenuto che ho pubblicato su <span class = \"font-weight-bold\"> un'altra piattaforma </span>.",
"GitHubUserNameValidationMessage": "Il tuo nome utente Github non può includere spazi bianchi, assicurati che il tuo nome utente Github sia corretto.",
"PersonalSiteUrlValidationMessage": "L'URL del tuo sito personale non può includere spazi bianchi, assicurati che l'URL del tuo sito personale sia corretto.",
"TwitterUserNameValidationMessage": "Il tuo nome utente Twitter non può includere spazi bianchi, assicurati che il tuo nome utente Twitter sia corretto.",
"LinkedinUrlValidationMessage": "Il tuo URL di Linkedin non può includere spazi bianchi, assicurati che il tuo URL di Linkedin sia corretto.",
"NoPostsFound": "Nessun post trovato!",
"SearchInPosts": "Cerca nei post ...",
"MinimumSearchContent": "Devi inserire almeno 3 caratteri!",
"Volo.AbpIo.Domain:060001": "L'URL di origine (\"{ArticleUrl}\") non è l'URL di GitHub",
"Volo.AbpIo.Domain:060002": "Il contenuto dell'articolo non è disponibile dalla risorsa Github (\"{ArticleUrl}\").",
"Volo.AbpIo.Domain:060003": "Nessun contenuto dell'articolo trovato!"
}
}

78
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en-GB.json

@ -194,6 +194,82 @@
"MultipleUIOptionsExplanation": "The core framework is designed as UI independent and can work with any type of UI system, while there are multiple pre-built and integrated options are provided out of the box.",
"MultipleDBOptionsExplanation": "The framework can work with any data source, while the following providers are officially developed and supported:",
"SelectLanguage": "Select language",
"LatestArticleOnCommunity": "Latest Article on ABP Community"
"LatestArticleOnCommunity": "Latest Article on ABP Community",
"Register": "Register",
"IsDownloadable": "Is downloadable",
"DatabaseOptions": "Database Options",
"BackToPackagesPage": "Back to Packages Page",
"HowToInstall": "How to Install",
"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 <a href=\"https://docs.abp.io/en/abp/latest/CLI\">Abp CLI</a>",
"WithoutABPCLI": "Without ABP CLI",
"ABPCLIModuleDependency": "Abp Cli automatically adds module dependency.",
"AddModuleDependency": "Then add module dependency",
"Packages": "Packages",
"NugetPackages": "Nuget Packages",
"NPMPackages": "NPM Packages",
"SeeDocs": "See Docs",
"None": "None",
"Application": "Application",
"Module": "Module",
"PackageName": "Package Name",
"LicenseURL": "License URL",
"License": "License",
"ProjectCreationSuccessMessage": "Your project has been successfully created",
"HowToRunSolution": "How to Run Your Solution?",
"GettingStartedMessage": "See getting started document to learn how to configure and run your solution.",
"WebAppDevTutorial": "Web App Dev Tutorial",
"WebAppDevTutorialMessage": "See web application development tutorial document for a step by step development sample.",
"CommunityArticles": "Community Articles",
"CommunityArticleMessage": "Check ABP Community Platform to read useful articles for ABP Framework.",
"InvestigateSolutionDetails": "Investigate the Solution Details",
"StartupTemplateDocumentationMessage": "See application startup template document to learn the architecture and the structure of your solution.",
"ClientSideDevelopment": "Client Side Development",
"ClientSideDevelopmentDocumentationMessage": "See the {0} document to learn key points for user interface (client side) development.",
"DatabaseProviderDocumentationMessage": "See {0} document to learn key points for 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 rely on the ABP Framework infrastructure, core concepts, principles, and patterns are applicable in any kind of solution, even if it is not a .NET solution.",
"TableOfContents": "Table of Contents",
"IntroductionToImplementingDDD": "Introduction to Implementing Domain Driven Design",
"WhatIsDDD": "What is Domain Driven Design?",
"Implementation": "Implementation",
"TheBigPicture": "The Big Picture",
"TheBuildingBlock": "The Building Block",
"ExampleUseCase": "Example Use Case",
"DomainAndApplicationLogic": "Domain Logic & Application Logic",
"Author": "Author",
"Page": "Page",
"PublishedOn": "Published on",
"FreeEBook": "Free E-Book",
"Download": "Download",
"EBookSignInForDownload": "To download the e-book sign in",
"SignIn": "Sign In",
"Or": "Or",
"TellUsAboutYourself": "Tell us little bit about yourself",
"Name": "Name",
"Surname": "Surname",
"CompanyName": "Company Name",
"DoYouAgreePrivacyPolicy": "I agree to the Terms & Conditions and <a href=\"https://commercial.abp.io/Privacy\">Privacy Policy</a>.",
"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.",
"Free": "Free",
"DDDEBook": "DDD E-book",
"PracticalGuideForImplementingDDD": "This book is a practical guide for implementing the Domain Driven Design with the ABP Framework.",
"IntroducingDDD": "Introducing Domain Driven Design",
"DDDLayersAndCleanArchitecture": "DDD Layers & Clean Architecture",
"LayeringOfADotnetSolution": "Layering of a .NET Solution",
"ImplementingDDDBuildingBlocks": "Implementing DDD Building Blocks",
"DomainVsApplicationLogic": "Domain Logic vs Application Logic",
"SamplesAndDiscussions": "Samples & Discussions",
"EmailNotValid": "Please enter a valid email address.",
"WeWillSendYouADownloadLink": "We've sent the file to {0}.",
"GoHome": "Go Home",
"InvalidFormInputs": "Please, type the valid information specified on the form.",
"DDDBookEmailBody": "Thank you. <br /> To download your book, <a href=\"{0}\">click here</a>."
}
}

82
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json

@ -175,7 +175,7 @@
"TieredOption": "Creates a tiered solution where Web and Http API layers are physically separated. If not checked, creates a layered solution which is less complex and suitable for most scenarios.",
"SeparateIdentityServerOption": "Separates server side into two applications: First one is for the identity server and the second one is for your server side HTTP API.",
"UseslatestPreVersion": "Uses latest pre-release version",
"ReadTheDocumentation": "<span class=\"text-primary\">Read</span><span class=\"text-success\">The Documentation</span>",
"ReadTheDocumentation": "<span class=\"text-primary\">Read</span><span class=\"text-success\"> The Documentation</span>",
"Documentation": "Documentation",
"GettingStartedTutorial": "Getting Started Tutorial",
"ApplicationDevelopmentTutorial": "Application Development Tutorial",
@ -195,8 +195,82 @@
"MultipleUIOptionsExplanation": "The core framework is designed as UI independent and can work with any type of UI system, while there are multiple pre-built and integrated options are provided out of the box.",
"MultipleDBOptionsExplanation": "The framework can work with any data source, while the following providers are officially developed and supported;",
"SelectLanguage": "Select language",
"LatestArticleOnCommunity": "Latest Article on ABP Community",
"Register": "Register",
"IsDownloadable": "Is downloadable"
"LatestArticleOnCommunity": "Latest Article on ABP Community",
"Register": "Register",
"IsDownloadable": "Is downloadable",
"DatabaseOptions": "Database Options",
"BackToPackagesPage": "Back to Packages Page",
"HowToInstall": "How to Install",
"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 <a href=\"https://docs.abp.io/en/abp/latest/CLI\">Abp CLI</a>",
"WithoutABPCLI": "Without ABP CLI",
"ABPCLIModuleDependency": "Abp Cli automatically adds module dependency.",
"AddModuleDependency": "Then add module dependency",
"Packages": "Packages",
"NugetPackages": "Nuget Packages",
"NPMPackages": "NPM Packages",
"SeeDocs": "See Docs",
"None": "None",
"Application": "Application",
"Module": "Module",
"PackageName": "Package Name",
"LicenseURL": "License URL",
"License": "License",
"ProjectCreationSuccessMessage": "Your project has been successfully created",
"HowToRunSolution": "How to Run Your Solution?",
"GettingStartedMessage": "See getting started document to learn how to configure and run your solution.",
"WebAppDevTutorial": "Web App Dev Tutorial",
"WebAppDevTutorialMessage": "See web application development tutorial document for a step by step development sample.",
"CommunityArticles": "Community Articles",
"CommunityArticleMessage": "Check ABP Community Platform to read useful articles for ABP Framework.",
"InvestigateSolutionDetails": "Investigate the Solution Details",
"StartupTemplateDocumentationMessage": "See application startup template document to learn the architecture and the structure of your solution.",
"ClientSideDevelopment": "Client Side Development",
"ClientSideDevelopmentDocumentationMessage": "See the {0} document to learn key points for user interface (client side) development.",
"DatabaseProviderDocumentationMessage": "See {0} document to learn key points for 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 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 Domain Driven Design",
"WhatIsDDD": "What is Domain Driven Design?",
"Implementation": "Implementation",
"TheBigPicture": "The Big Picture",
"TheBuildingBlock": "The Building Block",
"ExampleUseCase": "Example Use Case",
"DomainAndApplicationLogic": "Domain Logic & Application Logic",
"Author": "Author",
"Page": "Page",
"PublishedOn": "Published on",
"FreeEBook": "Free E-Book",
"Download": "Download",
"EBookSignInForDownload": "To download the e-book sign in",
"SignIn": "Sign In",
"Or": "Or",
"TellUsAboutYourself": "Tell us little bit about yourself",
"Name": "Name",
"Surname": "Surname",
"CompanyName": "Company Name",
"DoYouAgreePrivacyPolicy": "I agree to the <a href=\"https://account.abp.io/Account/TermsConditions\">Terms & Conditions</a> and <a href=\"https://account.abp.io/Account/Privacy\">Privacy Policy</a>.",
"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.",
"Free": "Free",
"DDDEBook": "DDD E-book",
"PracticalGuideForImplementingDDD": "This book is a practical guide for implementing the Domain Driven Design with the ABP Framework.",
"IntroducingDDD": "Introducing Domain Driven Design",
"DDDLayersAndCleanArchitecture": "DDD Layers & Clean Architecture",
"LayeringOfADotnetSolution": "Layering of a .NET Solution",
"ImplementingDDDBuildingBlocks": "Implementing DDD Building Blocks",
"DomainVsApplicationLogic": "Domain Logic vs Application Logic",
"SamplesAndDiscussions": "Samples & Discussions",
"EmailNotValid": "Please enter a valid email address.",
"WeWillSendYouADownloadLink": "A link to download the e-book has been sent to {0}.<br/> Check your inbox / junk / spam boxes!",
"GoHome": "Go Home",
"InvalidFormInputs": "Please, type the valid information specified on the form.",
"DDDBookEmailBody": "Thank you. <br /> To download your book, <a href=\"{0}\">click here</a>."
}
}

202
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fi.json

@ -0,0 +1,202 @@
{
"culture": "fi",
"texts": {
"GetStarted": "Aloitus - Käynnistysmallit",
"Create": "Luoda",
"NewProject": "Uusi projekti",
"DirectDownload": "Suora lataus",
"ProjectName": "Projektin nimi",
"ProjectType": "Projektityyppi",
"DatabaseProvider": "Tietokannan tarjoaja",
"DatabaseManagementSystem": "Tietokannan ohjausjärjestelmä",
"NTier": "N-taso",
"IncludeUserInterface": "Sisällytä käyttöliittymä",
"CreateNow": "Luo nyt",
"TheStartupProject": "Käynnistysprojekti",
"Tutorial": "Opetusohjelma",
"UsingCLI": "CLI: n käyttö",
"SeeDetails": "Katso yksityiskohdat",
"AbpShortDescription": "ABP Framework on täydellinen infrastruktuuri nykyaikaisten verkkosovellusten luomiseen noudattamalla ohjelmistokehityksen parhaita käytäntöjä ja käytäntöjä.",
"SourceCodeUpper": "LÄHDEKOODI",
"LatestReleaseLogs": "Uusimmat julkaisulokit",
"Infrastructure": "Infrastruktuuri",
"Architecture": "Arkkitehtuuri",
"Modular": "Modulaarinen",
"DontRepeatYourself": "Älä toista itseäsi",
"DeveloperFocused": "Kehittäjä kohdennettu",
"FullStackApplicationInfrastructure": "Täyden pinon sovellusinfrastruktuuri.",
"DomainDrivenDesign": "Toimialueohjattu suunnittelu",
"DomainDrivenDesignExplanation": "Suunniteltu ja kehitetty DDD-mallien ja -periaatteiden perusteella. Tarjoaa kerrostetun mallin sovelluksellesi.",
"Authorization": "Valtuutus",
"AuthorizationExplanation": "Edistynyt käyttöoikeudet käyttäjän, roolin ja tarkan käyttöjärjestelmän avulla. Rakennettu Microsoft Identity -kirjastoon.",
"MultiTenancy": "Monivuokraus",
"MultiTenancyExplanationShort": "SaaS-sovellukset on tehty helpoksi! Integroitu monivuokraus tietokannasta käyttöliittymään.",
"CrossCuttingConcerns": "Laaja-alaiset huolenaiheet",
"CrossCuttingConcernsExplanationShort": "Täydellinen infrastruktuuri valtuutusta, validointia, poikkeusten käsittelyä, välimuistia, auditointilokia, tapahtumien hallintaa ja muuta varten.",
"BuiltInBundlingMinification": "Sisäänrakennettu niputtaminen ja pienentäminen",
"BuiltInBundlingMinificationExplanation": "Niputtamiseen ja pienentämiseen ei tarvitse käyttää ulkoisia työkaluja. ABP tarjoaa yksinkertaisemman, dynaamisemman, tehokkaamman, modulaarisemman ja sisäänrakennetun tavan!",
"VirtualFileSystem": "Virtuaalinen tiedostojärjestelmä",
"VirtualFileSystemExplanation": "Upota näkymät, komentosarjat, tyylit, kuvat ... paketteihin / kirjastoihin ja käytä niitä uudelleen eri sovelluksissa.",
"Theming": "Heidät",
"ThemingExplanationShort": "Käytä ja muokkaa bootstrap-pohjaista vakiokäyttöliittymän teemaa tai luo oma.",
"BootstrapTagHelpersDynamicForms": "Bootstrap Tag Helpers ja dynaamiset lomakkeet",
"BootstrapTagHelpersDynamicFormsExplanation": "Sen sijaan, että kirjoittaisit manuaalisesti käynnistysstrap-komponenttien toistuvia yksityiskohtia, käytä ABP: n tag-avustajia yksinkertaistaaksesi sitä ja hyödyntääksesi älykkäitä ominaisuuksia. Rakenna käyttöliittymälomakkeet nopeasti C # -mallin perusteella käyttämällä dynaamista lomaketunnisteen auttajaa.",
"HTTPAPIsDynamicProxies": "HTTP-sovellusliittymät ja dynaamiset välityspalvelimet",
"HTTPAPIsDynamicProxiesExplanation": "Altista sovelluspalvelut automaattisesti REST-tyylisiksi HTTP-sovellusliittymiksi ja kuluta niitä dynaamisilla JavaScript- ja C # -välityspalvelimilla.",
"CompleteArchitectureInfo": "Moderni arkkitehtuuri ylläpidettävien ohjelmistoratkaisujen luomiseksi.",
"DomainDrivenDesignBasedLayeringModelExplanation": "Auttaa sinua toteuttamaan DDD-pohjaisen kerrostetun arkkitehtuurin ja rakentamaan ylläpidettävän koodipohjan.",
"DomainDrivenDesignBasedLayeringModelExplanationCont": "Tarjoaa käynnistysmalleja, abstrakteja, perusluokkia, palveluja, dokumentaatiota ja oppaita, joiden avulla voit kehittää sovellustasi DDD-mallien ja -periaatteiden perusteella.",
"MicroserviceCompatibleModelExplanation": "Ydinkehys ja esirakennemoduulit on suunniteltu mikropalveluarkkitehtuuria ajatellen.",
"MicroserviceCompatibleModelExplanationCont": "Tarjoaa infrastruktuurin, integraatiot, näytteet ja dokumentaation mikropalveluratkaisujen toteuttamiseksi helpommin, mutta se ei tuo lisää monimutkaisuutta, jos haluat monoliittisen sovelluksen.",
"ModularInfo": "ABP tarjoaa moduulijärjestelmän, jonka avulla voit kehittää uudelleenkäytettäviä sovellusmoduuleja, sitoutua sovelluksen elinkaaren tapahtumiin ja ilmaista riippuvuuksia järjestelmän ydinosien välillä.",
"PreBuiltModulesThemes": "Valmiit moduulit ja teemat",
"PreBuiltModulesThemesExplanation": "Avoimen lähdekoodin ja kaupalliset moduulit ja teemat ovat käyttövalmiita yrityssovelluksessasi.",
"NuGetNPMPackages": "NuGet- ja NPM-paketit",
"NuGetNPMPackagesExplanation": "Jaettu NuGet- ja NPM-paketteina. Helppo asentaa ja päivittää.",
"ExtensibleReplaceable": "Laajennettavissa / vaihdettavissa",
"ExtensibleReplaceableExplanation": "Kaikki palvelut ja moduulit on suunniteltu laajennettavuutta ajatellen. Voit korvata palvelut, sivut, tyylit ja komponentit.",
"CrossCuttingConcernsExplanation2": "Pidä koodipohjasi pienempi, jotta voit keskittyä yritykseesi liittyvään koodiin.",
"CrossCuttingConcernsExplanation3": "Älä lähetä aikaa useiden projektien yhteisten hakemusvaatimusten toteuttamiseen.",
"AuthenticationAuthorization": "Todennus ja valtuutus",
"ExceptionHandling": "Poikkeusten käsittely",
"Validation": "Vahvistus",
"DatabaseConnection": "Tietokantayhteys",
"TransactionManagement": "Tapahtumien hallinta",
"AuditLogging": "Tarkastusten kirjaaminen",
"Caching": "Välimuisti",
"Multitenancy": "Monivärinen",
"DataFiltering": "Tietojen suodatus",
"ConventionOverConfiguration": "Kokoonpanon määritys",
"ConventionOverConfigurationExplanation": "ABP toteuttaa oletusarvoisesti yleiset sovelluskäytännöt minimaalisella tai nolla-kokoonpanolla.",
"ConventionOverConfigurationExplanationList1": "Auto rekisteröi tunnetut palvelut riippuvuusinjektioon.",
"ConventionOverConfigurationExplanationList2": "Paljastaa sovelluspalvelut HTTP-sovellusliittyminä nimeämällä käytäntöjä.",
"ConventionOverConfigurationExplanationList3": "Luo dynaamiset HTTP-asiakasvälityspalvelimet C #: lle ja JavaScriptille.",
"ConventionOverConfigurationExplanationList4": "Tarjoaa oletusvarastoja yhteisöillesi.",
"ConventionOverConfigurationExplanationList5": "Hallitsee työyksikköä verkkopyynnön tai sovelluspalvelumenetelmän mukaan.",
"ConventionOverConfigurationExplanationList6": "Julkaisee luoda, päivittää ja poistaa tapahtumia yhteisöillesi.",
"BaseClasses": "Perusluokat",
"BaseClassesExplanation": "Valmiiksi rakennettu perusluokka yleisiä sovelluskuvioita varten.",
"DeveloperFocusedExplanation": "ABP on kehittäjille.",
"DeveloperFocusedExplanationCont": "Sen tarkoituksena on yksinkertaistaa päivittäistä ohjelmistokehitystäsi samalla, kun se ei estä sinua kirjoittamasta matalan tason koodia.",
"SeeAllFeatures": "Katso kaikki ominaisuudet",
"CLI_CommandLineInterface": "CLI (komentoriviliitäntä)",
"CLI_CommandLineInterfaceExplanation": "Sisältää CLI: n, jonka avulla voit automatisoida uusien projektien luomisen ja uusien moduulien lisäämisen.",
"StartupTemplates": "Käynnistysmallit",
"StartupTemplatesExplanation": "Erilaiset käynnistysmallit tarjoavat täysin määritetyn ratkaisun kehityksen aloittamiseksi.",
"BasedOnFamiliarTools": "Perustuu tuttuihin työkaluihin",
"BasedOnFamiliarToolsExplanation": "Rakennettu ja integroitu jo tunnettujen suosittujen työkalujen kanssa. Matala oppimiskäyrä, helppo sopeutuminen, mukava kehitys.",
"ORMIndependent": "ORM riippumaton",
"ORMIndependentExplanation": "Ydinkehys on ORM / tietokannasta riippumaton ja voi toimia minkä tahansa tietolähteen kanssa. Entity Framework Core- ja MongoDB-palveluntarjoajat ovat jo saatavilla.",
"Features": "Tutustu ABP-kehyksen ominaisuuksiin",
"ABPCLI": "ABP CLI",
"Modularity": "Modulaarisuus",
"BootstrapTagHelpers": "Bootstrap Tag Helpers",
"DynamicForms": "Dynaamiset lomakkeet",
"BundlingMinification": "Niputtaminen ja minimointi",
"BackgroundJobs": "Taustatyöt",
"BackgroundJobsExplanation": "Määritä yksinkertaiset luokat taustalla olevien töiden suorittamiseksi jonossa. Käytä sisäänrakennettua työnhallintaa tai integroi oma. <a href=\"{0}\"> Hangfire </a> ja <a href=\"{1}\"> RabbitMQ </a> -integraatiot ovat jo käytettävissä.",
"DDDInfrastructure": "DDD-infrastruktuuri",
"DomainDrivenDesignInfrastructure": "Toimialueohjattu suunnittelun infrastruktuuri",
"AutoRESTAPIs": "Auto REST -sovellusliittymät",
"DynamicClientProxies": "Dynaamiset asiakaskohtaiset välityspalvelimet",
"DistributedEventBus": "Hajautettu tapahtumabussi",
"DistributedEventBusWithRabbitMQIntegration": "Hajautettu tapahtumaväylä RabbitMQ-integraatiolla",
"TestInfrastructure": "Testaa infrastruktuuri",
"AuditLoggingEntityHistories": "Tarkastusloki ja entiteettihistoria",
"ObjectToObjectMapping": "Object to Object Mapping",
"ObjectToObjectMappingExplanation": "<a href=\"{0}\"> Objektin kartoitus </a> abstraktio AutoMapper-integraatiolla.",
"EmailSMSAbstractions": "Sähköposti ja tekstiviestit",
"EmailSMSAbstractionsWithTemplatingSupport": "Sähköposti- ja SMS-abstraktit mallintamistuen avulla",
"Localization": "Lokalisointi",
"SettingManagement": "Asetusten hallinta",
"ExtensionMethods": "Laajennusmenetelmät",
"ExtensionMethodsHelpers": "Laajennusmenetelmät ja auttajat",
"AspectOrientedProgramming": "Aspektiorientoitu ohjelmointi",
"DependencyInjection": "Riippuvuuden injektio",
"DependencyInjectionByConventions": "Riippuvuuden injektio yleissopimusten mukaan",
"ABPCLIExplanation": "ABP CLI (Command Line Interface) on komentorivityökalu joidenkin yleisten toimintojen suorittamiseen ABP-pohjaisiin ratkaisuihin.",
"ModularityExplanation": "ABP tarjoaa täydellisen infrastruktuurin omien sovellusmoduulien rakentamiseen. Niillä voi olla entiteettejä, palveluja, tietokantaintegraatioita, sovellusliittymiä, käyttöliittymäkomponentteja ja niin edelleen.",
"MultiTenancyExplanation": "ABP-kehys ei vain tue useiden vuokralaisten sovellusten kehittämistä, vaan tekee koodistasi myös enimmäkseen tietämättömän monivuokralaisesta.",
"MultiTenancyExplanation2": "Voi määrittää automaattisesti nykyisen vuokralaisen, eristää eri vuokralaisten tiedot toisistaan.",
"MultiTenancyExplanation3": "Tukee yhtä tietokantaa, tietokantaa vuokralaista kohti ja hybridi-lähestymistapoja.",
"MultiTenancyExplanation4": "Keskity yrityksesi koodiin ja annat kehyksen hoitamaan monivuokrausta puolestasi.",
"BootstrapTagHelpersExplanation": "Sen sijaan, että kirjoittaisit manuaalisesti uudelleenkäynnistyskomponenttien yksityiskohtia, käytä ABP: n tunnisteita yksinkertaistaaksesi sitä ja hyödyntäksesi älykkäitä ominaisuuksia. Voit ehdottomasti käyttää Bootstrapia milloin tahansa.",
"DynamicFormsExplanation": "Dynaamiset lomake- ja syöttötunnisteiden apurit voivat luoda täydellisen lomakkeen mallina C # -luokasta.",
"AuthenticationAuthorizationExplanation": "ASP.NET Core Identity & IdentityServer4 -palveluun integroidut monipuoliset todennus- ja todennusvaihtoehdot. Tarjoaa laajennettavan ja yksityiskohtaisen lupajärjestelmän.",
"CrossCuttingConcernsExplanation": "Älä toista itseäsi kaikkien näiden yleisten asioiden toteuttamiseksi uudelleen ja uudelleen. Keskity yrityskoodiin ja anna ABP: n automatisoida ne käytäntöjen mukaan.",
"DatabaseConnectionTransactionManagement": "Tietokantayhteys ja tapahtumien hallinta",
"CorrelationIdTracking": "Korrelaatio-Id-seuranta",
"BundlingMinificationExplanation": "ABP tarjoaa yksinkertaisen, dynaamisen, tehokkaan, modulaarisen ja sisäänrakennetun niputus- ja pienentämisjärjestelmän.",
"VirtualFileSystemnExplanation": "Virtuaalinen tiedostojärjestelmä mahdollistaa sellaisten tiedostojen hallinnan, joita ei ole fyysisesti tiedostojärjestelmässä (levyllä). Sitä käytetään pääasiassa upottamaan (js, css, kuva, cshtml ...) tiedostot kokoonpanoiksi ja käyttämään niitä kuin fyysisiä tiedostoja ajon aikana.",
"ThemingExplanation": "Theming-järjestelmän avulla voit kehittää sovellus- ja moduuliteemasi itsenäisesti määrittelemällä joukon yhteisiä peruskirjastoja ja asetteluja uusimman Bootstrap-kehyksen perusteella.",
"DomainDrivenDesignInfrastructureExplanation": "Täydellinen infrastruktuuri kerrostettujen sovellusten rakentamiseen, joka perustuu toimialueohjattuihin suunnittelumalleihin ja periaatteisiin;",
"Specification": "Erittely",
"Repository": "Arkisto",
"DomainService": "Verkkotunnuspalvelu",
"ValueObject": "Arvo-objekti",
"ApplicationService": "Sovelluspalvelu",
"DataTransferObject": "Tiedonsiirtokohde",
"AggregateRootEntity": "Kokonaisjuuri, entiteetti",
"AutoRESTAPIsExplanation": "ABP voi määrittää sovelluspalvelut automaattisesti API-ohjaimiksi sopimuksen mukaan.",
"DynamicClientProxiesExplanation": "Kuluta helposti API: si JavaScript- ja C # -asiakkailta.",
"DistributedEventBusWithRabbitMQIntegrationExplanation": "Julkaise ja kuluta jaettuja tapahtumia helposti käyttämällä sisäänrakennettua hajautettua tapahtumaväylää, jossa on käytettävissä RabbitMQ-integraatio.",
"TestInfrastructureExplanation": "Kehys on kehitetty yksikkö- ja integraatiotestaus ajatellen. Tarjoaa sinulle perusluokkia helpottamaan. Käynnistysmalleissa on valmiiksi konfiguroitu testaus.",
"AuditLoggingEntityHistoriesExplanation": "Sisäänrakennettu tarkastuskirjaus yrityskriittisille sovelluksille. Pyyntö-, palvelu-, menetelmätason tarkastusloki ja entiteettihistoria omaisuuden tason yksityiskohdilla.",
"EmailSMSAbstractionsWithTemplatingSupportExplanation": "IEmailSender- ja ISmsSender-abstraktit erottavat sovelluslogiikkasi infrastruktuurista. Edistyneen sähköpostimallijärjestelmän avulla voit luoda ja lokalisoida sähköpostimalleja ja käyttää niitä helposti tarvittaessa.",
"LocalizationExplanation": "Lokalisointijärjestelmä antaa mahdollisuuden luoda resursseja yksinkertaisiin JSON-tiedostoihin ja käyttää niitä käyttöliittymän lokalisointiin. Se tukee edistyneitä skenaarioita, kuten perintö, laajennukset ja JavaScript-integrointi, samalla kun se on täysin yhteensopiva AspNet Core -järjestelmän lokalisointijärjestelmän kanssa.",
"SettingManagementExplanation": "Määritä sovelluksesi asetukset ja hanki ajonaikaiset arvot nykyisen kokoonpanon, vuokralaisen ja käyttäjän perusteella.",
"ExtensionMethodsHelpersExplanation": "Älä toista itseäsi edes triviaalien koodiosien suhteen. Vakiotyyppien laajennukset ja apuvälineet tekevät koodistasi paljon puhtaamman ja helpommin kirjoitettavan.",
"AspectOrientedProgrammingExplanation": "Tarjoaa mukavan infrastruktuurin dynaamisten valtakirjojen luomiseen ja Aspect Oriented Programming -toiminnon toteuttamiseen. Kuuntele mikä tahansa luokka ja suorita koodisi ennen ja jälkeen jokaisen menetelmän suorituksen.",
"DependencyInjectionByConventionsExplanation": "Luokat ei tarvitse rekisteröidä riippuvuusinjektioon manuaalisesti. Rekisteröi yleiset palvelutyypit sopimuksen mukaan automaattisesti. Muun tyyppisissä palveluissa voit käyttää käyttöliittymiä ja määritteitä sen helpottamiseksi ja paikoillaan.",
"DataFilteringExplanation": "Määritä ja käytä tietosuodattimia, joita käytetään automaattisesti, kun kysyt entiteettejä tietokannasta. Pehmeä poisto- ja MultiTenant-suodattimet toimitetaan heti, kun otat käyttöön yksinkertaiset käyttöliittymät.",
"PublishEvents": "Julkaise tapahtumia",
"HandleEvents": "Käsittele tapahtumia",
"AndMore": "ja enemmän...",
"Code": "Koodi",
"Result": "Tulos",
"SeeTheDocumentForMoreInformation": "Katso lisätietoja <a href=\"{1}\"> {0} asiakirjasta </a>",
"IndexPageHeroSection": "<span class = \"first-line shine\"> <strong> avoin lähdekoodi </strong> </span> <span class = \"second-line text-uppercase\"> verkkosovellus <br /> Framework </span> <span class = \"third-line shine2\"> <strong> asp.net-ytimelle </strong> </span>",
"UiFramework": "Käyttöliittymäkehys",
"EmailAddress": "Sähköpostiosoite",
"Mobile": "Matkapuhelin",
"ReactNative": "Reagoi Native",
"Strong": "Vahva",
"Complete": "Saattaa loppuun",
"BasedLayeringModel": "Perustuva kerrosmalli",
"Microservice": "Mikropalvelu",
"Compatible": "Yhteensopiva",
"MeeTTheABPCommunityInfo": "Tavoitteenamme on luoda ympäristö, jossa kehittäjät voivat auttaa toisiaan artikkeleilla, oppailla, tapaustutkimuksilla jne. Ja tavata samanmielisiä ihmisiä.",
"JoinTheABPCommunityInfo": "Ole mukana elävässä yhteisössä ja tule osallistujana sivutuotteiden kehykseen!",
"AllArticles": "Kaikki artikkelit",
"SubmitYourArticle": "Lähetä artikkelisi",
"DynamicClientProxyDocument": "Katso dynaamisen asiakkaan välityspalvelimen dokumentaatiot <a href=\"{0}\"> JavaScriptille </a> ja <a href=\"{1}\"> C # </a>.",
"EmailSMSAbstractionsDocument": "Katso lisätietoja <a href=\"{0}\"> sähköpostitse </a> ja <a href=\"{1}\"> tekstiviestien lähettäminen </a> -asiakirjoista.",
"CreateProjectWizard": "Tämä ohjattu toiminto luo uuden projektin käynnistysmallista, joka on määritetty oikein aloittamaan projekti.",
"TieredOption": "Luo porrastetun ratkaisun, jossa Web- ja Http-API-kerrokset erotetaan fyysisesti. Jos sitä ei ole valittu, luodaan kerrostettu ratkaisu, joka on vähemmän monimutkainen ja sopii useimpiin tilanteisiin.",
"SeparateIdentityServerOption": "Erottaa palvelinpuolen kahteen sovellukseen: Ensimmäinen on identiteettipalvelimelle ja toinen palvelinpuolen HTTP-sovellusliittymälle.",
"UseslatestPreVersion": "Käyttää uusinta julkaisua edeltävää versiota",
"ReadTheDocumentation": "<span class = \"text-primary\"> Lue </span> <span class = \"text-success\"> Dokumentaatio </span>",
"Documentation": "Dokumentointi",
"GettingStartedTutorial": "Aloitusopas",
"ApplicationDevelopmentTutorial": "Sovelluskehitysopastus",
"TheStartupTemplate": "Käynnistysmalli",
"InstallABPCLIInfo": "ABP CLI on nopein tapa aloittaa uusi ratkaisu ABP-kehyksellä. Asenna ABP CLI komentorivillä:",
"DifferentLevelOfNamespaces": "Voit käyttää eri nimiavaruustasoja; esimerkiksi. BookStore, Acme.BookStore tai Acme.Retail.BookStore.",
"ABPCLIExamplesInfo": "<strong> Uusi </strong> -komento luo <strong> kerrostetun MVC-sovelluksen </strong>, jonka tietokannan tarjoaja on <strong> Entity Framework Core </strong>. Sillä on kuitenkin muita vaihtoehtoja. Esimerkkejä:",
"SeeCliDocumentForMoreInformation": "Katso lisää vaihtoehtoja <a href=\"{0}\"> ABP CLI -asiakirjasta </a> tai valitse yllä Suora lataus -välilehti.",
"Optional": "Valinnainen",
"LocalFrameworkRef": "Säilytä kehyspakettien paikalliset projektiviitteet.",
"BlobStoring": "BLOB-tallennus",
"BlobStoringExplanation": "BLOB-tallennusjärjestelmä tarjoaa abstraktin BLOBien kanssa työskentelemiseen. ABP tarjoaa joitain valmiita tallennuspalveluntarjoajan integraatioita (Azure, AWS, tiedostojärjestelmä, tietokanta jne.), Joita voit helposti käyttää sovelluksissasi.",
"TextTemplating": "Tekstin mallintaminen",
"TextTemplatingExplanation": "Tekstimallia käytetään sisällön renderointiin dynaamisesti mallin ja mallin (dataobjektin) perusteella. Voit käyttää sitä esimerkiksi dynaamisen sähköpostisisällön luomiseen valmiilla mallilla.",
"MultipleUIOptions": "Useita käyttöliittymävaihtoehtoja",
"MultipleDBOptions": "Useita tietokantapalveluja",
"MultipleUIOptionsExplanation": "Ydinkehys on suunniteltu käyttöliittymästä riippumattomaksi ja se voi toimia minkä tahansa tyyppisen käyttöliittymäjärjestelmän kanssa, kun taas useita valmiiksi rakennettuja ja integroituja vaihtoehtoja toimitetaan heti.",
"MultipleDBOptionsExplanation": "Kehys voi toimia minkä tahansa tietolähteen kanssa, kun taas seuraavat palveluntarjoajat on virallisesti kehitetty ja tuettu;",
"SelectLanguage": "Valitse kieli",
"LatestArticleOnCommunity": "Viimeisin artikkeli ABP-yhteisöstä",
"Register": "Rekisteröidy",
"IsDownloadable": "On ladattavissa"
}
}

202
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fr.json

@ -0,0 +1,202 @@
{
"culture": "fr",
"texts": {
"GetStarted": "Commencer - Modèles de démarrage",
"Create": "Créer",
"NewProject": "Nouveau projet",
"DirectDownload": "Téléchargement direct",
"ProjectName": "Nom du projet",
"ProjectType": "Type de projet",
"DatabaseProvider": "Fournisseur de base de données",
"DatabaseManagementSystem": "Système de gestion de base de données",
"NTier": "N-Tier",
"IncludeUserInterface": "Inclure l'interface utilisateur",
"CreateNow": "Créer maintenant",
"TheStartupProject": "Le projet de démarrage",
"Tutorial": "Didacticiel",
"UsingCLI": "Utilisation de la CLI",
"SeeDetails": "Voir les détails",
"AbpShortDescription": "ABP Framework est une infrastructure complète pour créer des applications Web modernes en suivant les meilleures pratiques et conventions de développement logiciel.",
"SourceCodeUpper": "CODE SOURCE",
"LatestReleaseLogs": "Derniers journaux de version",
"Infrastructure": "Infrastructure",
"Architecture": "Architecture",
"Modular": "Modulaire",
"DontRepeatYourself": "Ne vous répétez pas",
"DeveloperFocused": "Axé sur les développeurs",
"FullStackApplicationInfrastructure": "Infrastructure d'application complète.",
"DomainDrivenDesign": "Conception pilotée par le domaine",
"DomainDrivenDesignExplanation": "Conçu et développé sur la base des modèles et principes DDD. Fournit un modèle en couches pour votre application.",
"Authorization": "Autorisation",
"AuthorizationExplanation": "Autorisation avancée avec utilisateur, rôle et système d'autorisation précis. Construit sur la bibliothèque d'identité Microsoft.",
"MultiTenancy": "Locations multiples",
"MultiTenancyExplanationShort": "Les applications SaaS simplifiées! Multi-location intégrée de la base de données à l'interface utilisateur.",
"CrossCuttingConcerns": "Préoccupations transversales",
"CrossCuttingConcernsExplanationShort": "Infrastructure complète pour l'autorisation, la validation, la gestion des exceptions, la mise en cache, la journalisation d'audit, la gestion des transactions et plus encore.",
"BuiltInBundlingMinification": "Regroupement et minification intégrés",
"BuiltInBundlingMinificationExplanation": "Pas besoin d'utiliser des outils externes pour le regroupement et la minimisation. ABP offre un moyen plus simple, dynamique, puissant, modulaire et intégré!",
"VirtualFileSystem": "Système de fichiers virtuel",
"VirtualFileSystemExplanation": "Incorporez des vues, des scripts, des styles, des images ... dans des packages / bibliothèques et réutilisez-les dans différentes applications.",
"Theming": "Thème",
"ThemingExplanationShort": "Utilisez et personnalisez le thème d'interface utilisateur standard basé sur le bootstrap ou créez le vôtre.",
"BootstrapTagHelpersDynamicForms": "Aide aux balises Bootstrap et formulaires dynamiques",
"BootstrapTagHelpersDynamicFormsExplanation": "Au lieu d'écrire manuellement les détails répétitifs des composants d'amorçage, utilisez les assistants de balises d'ABP pour le simplifier et tirer parti d'intellisense. Créez rapidement des formulaires d'interface utilisateur basés sur un modèle C # à l'aide de l'assistant de balise de formulaire dynamique.",
"HTTPAPIsDynamicProxies": "API HTTP et proxys dynamiques",
"HTTPAPIsDynamicProxiesExplanation": "Exposez automatiquement les services d'application en tant qu'API HTTP de style REST et utilisez-les avec des proxys JavaScript et C# dynamiques.",
"CompleteArchitectureInfo": "Architecture moderne pour créer des solutions logicielles maintenables.",
"DomainDrivenDesignBasedLayeringModelExplanation": "Vous aide à implémenter une architecture en couches basée sur DDD et à créer une base de code maintenable.",
"DomainDrivenDesignBasedLayeringModelExplanationCont": "Fournit des modèles de démarrage, des abstractions, des classes de base, des services, de la documentation et des guides pour vous aider à développer votre application basée sur les modèles et principes DDD.",
"MicroserviceCompatibleModelExplanation": "Le framework de base et les modules de pré-construction sont conçus avec l'architecture de microservice à l'esprit.",
"MicroserviceCompatibleModelExplanationCont": "Fournit une infrastructure, des intégrations, des exemples et de la documentation pour mettre en œuvre des solutions de microservices plus facilement, sans apporter de complexité supplémentaire si vous souhaitez une application monolithique.",
"ModularInfo": "ABP fournit un système de modules qui vous permet de développer des modules d'application réutilisables, de les relier aux événements du cycle de vie des applications et d'exprimer les dépendances entre les parties centrales de votre système.",
"PreBuiltModulesThemes": "Modules et thèmes prédéfinis",
"PreBuiltModulesThemesExplanation": "Les modules et thèmes open source et commerciaux sont prêts à être utilisés dans votre application professionnelle.",
"NuGetNPMPackages": "Packages NuGet et NPM",
"NuGetNPMPackagesExplanation": "Distribué sous forme de packages NuGet et NPM. Facile à installer et à mettre à jour.",
"ExtensibleReplaceable": "Extensible / remplaçable",
"ExtensibleReplaceableExplanation": "Tous les services et modules sont conçus pour l'extensibilité. Vous pouvez remplacer des services, des pages, des styles et des composants.",
"CrossCuttingConcernsExplanation2": "Réduisez la taille de votre base de code afin de rester concentré sur le code spécifique à votre entreprise.",
"CrossCuttingConcernsExplanation3": "N'envoyez pas de temps pour mettre en œuvre les exigences d'application communes sur plusieurs projets.",
"AuthenticationAuthorization": "Autorisation d'authentification",
"ExceptionHandling": "Gestion des exceptions",
"Validation": "Validation",
"DatabaseConnection": "Connexion à la base de données",
"TransactionManagement": "Gestion des transactions",
"AuditLogging": "Journalisation d'audit",
"Caching": "Mise en cache",
"Multitenancy": "Multi-souscrivants",
"DataFiltering": "Filtrage des données",
"ConventionOverConfiguration": "Convention plutôt que configuration",
"ConventionOverConfigurationExplanation": "ABP implémente par défaut des conventions d'application communes avec une configuration minimale ou nulle.",
"ConventionOverConfigurationExplanationList1": "Enregistre automatiquement les services connus pour l'injection de dépendances.",
"ConventionOverConfigurationExplanationList2": "Expose les services d'application en tant qu'API HTTP par des conventions de dénomination.",
"ConventionOverConfigurationExplanationList3": "Crée des proxys client HTTP dynamiques pour C# et JavaScript.",
"ConventionOverConfigurationExplanationList4": "Fournit des référentiels par défaut pour vos entités.",
"ConventionOverConfigurationExplanationList5": "Gère l'unité de travail par demande Web ou méthode de service d'application.",
"ConventionOverConfigurationExplanationList6": "Publie des événements de création, de mise à jour et de suppression pour vos entités.",
"BaseClasses": "Classes de base",
"BaseClassesExplanation": "Classes de base prédéfinies pour les modèles d'application courants.",
"DeveloperFocusedExplanation": "ABP est destiné aux développeurs.",
"DeveloperFocusedExplanationCont": "Il vise à simplifier votre développement logiciel quotidien sans vous empêcher d'écrire du code de bas niveau.",
"SeeAllFeatures": "Voir toutes les fonctionnalités",
"CLI_CommandLineInterface": "CLI (interface de ligne de commande)",
"CLI_CommandLineInterfaceExplanation": "Inclut une CLI pour vous aider à automatiser la création de nouveaux projets et l'ajout de nouveaux modules.",
"StartupTemplates": "Modèles de démarrage",
"StartupTemplatesExplanation": "Divers modèles de démarrage fournissent une solution entièrement configurée pour démarrer rapidement votre développement.",
"BasedOnFamiliarTools": "Basé sur des outils familiers",
"BasedOnFamiliarToolsExplanation": "Construit sur et intégré avec des outils populaires que vous connaissez déjà. Faible courbe d'apprentissage, adaptation facile, développement confortable.",
"ORMIndependent": "ORM indépendant",
"ORMIndependentExplanation": "Le framework de base est indépendant de l'ORM / de la base de données et peut fonctionner avec n'importe quelle source de données. Les fournisseurs Entity Framework Core et MongoDB sont déjà disponibles.",
"Features": "Explorez les fonctionnalités du framework ABP",
"ABPCLI": "CLI ABP",
"Modularity": "Modularité",
"BootstrapTagHelpers": "Assistants de balises Bootstrap",
"DynamicForms": "Formulaires dynamiques",
"BundlingMinification": "Regroupement et minification",
"BackgroundJobs": "Emplois d'arrière-plan",
"BackgroundJobsExplanation": "Définissez des classes simples pour exécuter les travaux en arrière-plan comme mis en file d'attente. Utilisez le gestionnaire de tâches intégré ou intégrez le vôtre. Les intégrations <a href=\"{0}\"> Hangfire </a> et <a href=\"{1}\"> RabbitMQ </a> sont déjà disponibles.",
"DDDInfrastructure": "Infrastructure DDD",
"DomainDrivenDesignInfrastructure": "Infrastructure Domain Driven Design",
"AutoRESTAPIs": "API REST automatiques",
"DynamicClientProxies": "Proxys clients dynamiques",
"DistributedEventBus": "Bus d'événements distribués",
"DistributedEventBusWithRabbitMQIntegration": "Bus d'événements distribués avec intégration RabbitMQ",
"TestInfrastructure": "Infrastructure de test",
"AuditLoggingEntityHistories": "Journalisation d'audit et historiques d'entités",
"ObjectToObjectMapping": "Mappage d'objet à objet",
"ObjectToObjectMappingExplanation": "<a href=\"{0}\"> Mappage objet à objet </a> abstraction avec intégration AutoMapper.",
"EmailSMSAbstractions": "Abstractions par e-mail et SMS",
"EmailSMSAbstractionsWithTemplatingSupport": "Abstractions par e-mail et SMS avec prise en charge de la création de modèles",
"Localization": "Localisation",
"SettingManagement": "Gestion des paramètres",
"ExtensionMethods": "Méthodes d'extension",
"ExtensionMethodsHelpers": "Méthodes d'extension et aides",
"AspectOrientedProgramming": "Programmation orientée aspect",
"DependencyInjection": "Injection de dépendance",
"DependencyInjectionByConventions": "Injection de dépendances par conventions",
"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.",
"ModularityExplanation": "ABP fournit une infrastructure complète pour créer vos propres modules d'application qui peuvent avoir des entités, des services, une intégration de base de données, des API, des composants d'interface utilisateur, etc.",
"MultiTenancyExplanation": "Le framework ABP prend non seulement en charge le développement d'applications multi-souscrivants, mais rend également votre code pratiquement inconscient de la multi-location.",
"MultiTenancyExplanation2": "Peut déterminer automatiquement le souscrivant actuel, isoler les données de différents locataires les uns des autres.",
"MultiTenancyExplanation3": "Prend en charge une base de données unique, une base de données par souscrivant et des approches hybrides.",
"MultiTenancyExplanation4": "Vous vous concentrez sur votre code métier et laissez le framework gérer la multi-souscrivants en votre nom.",
"BootstrapTagHelpersExplanation": "Au lieu d'écrire manuellement les détails répétitifs des composants Boostrap, utilisez les aides de balises d'ABP pour le simplifier et tirer parti d'intellisense. Vous pouvez certainement utiliser Bootstrap chaque fois que vous en avez besoin.",
"DynamicFormsExplanation": "Les assistants dynamiques de formulaire et de balise d'entrée peuvent créer le formulaire complet à partir d'une classe C# comme modèle.",
"AuthenticationAuthorizationExplanation": "Options d'authentification et d'autorisation riches intégrées à ASP.NET Core Identity & IdentityServer4. Fournit un système d'autorisation extensible et détaillé.",
"CrossCuttingConcernsExplanation": "Ne vous répétez pas pour mettre en œuvre toutes ces choses courantes encore et encore. Concentrez-vous sur votre code métier et laissez ABP les automatiser par des conventions.",
"DatabaseConnectionTransactionManagement": "Connexion à la base de données et gestion des transactions",
"CorrelationIdTracking": "Suivi des identifiants de corrélation",
"BundlingMinificationExplanation": "ABP offre un système de regroupement et de minification simple, dynamique, puissant, modulaire et intégré.",
"VirtualFileSystemnExplanation": "Le système de fichiers virtuel permet de gérer des fichiers qui n'existent pas physiquement sur le système de fichiers (disque). Il est principalement utilisé pour incorporer des fichiers (js, css, image, cshtml ...) dans des assemblys et les utiliser comme des fichiers physiques lors de l'exécution.",
"ThemingExplanation": "Le système de thématisation permet de développer votre application et vos modules indépendamment du thème en définissant un ensemble de bibliothèques et de mises en page de base communes, basées sur le dernier framework Bootstrap.",
"DomainDrivenDesignInfrastructureExplanation": "Une infrastructure complète pour créer des applications en couches basées sur les modèles et principes de conception pilotée par domaine;",
"Specification": "spécification",
"Repository": "Dépôt",
"DomainService": "Service de domaine",
"ValueObject": "Objet de valeur",
"ApplicationService": "Service d'application",
"DataTransferObject": "Objet de transfert de données",
"AggregateRootEntity": "Racine agrégée, entité",
"AutoRESTAPIsExplanation": "ABP peut configurer automatiquement vos services d'application en tant que contrôleurs d'API par convention.",
"DynamicClientProxiesExplanation": "Utilisez facilement vos API à partir de clients JavaScript et C#.",
"DistributedEventBusWithRabbitMQIntegrationExplanation": "Publiez et consommez facilement des événements distribués à l'aide du bus d'événements distribués intégré avec l'intégration RabbitMQ disponible.",
"TestInfrastructureExplanation": "Le framework a été développé en pensant aux tests unitaires et d'intégration. Vous fournit des classes de base pour vous faciliter la tâche. Les modèles de démarrage sont pré-configurés pour les tests.",
"AuditLoggingEntityHistoriesExplanation": "Journalisation d'audit intégrée pour les applications stratégiques. Requête, service, journalisation d'audit au niveau de la méthode et historiques d'entités avec des détails au niveau de la propriété.",
"EmailSMSAbstractionsWithTemplatingSupportExplanation": "Les abstractions IEmailSender et ISmsSender découpent la logique de votre application de l'infrastructure. Le système de modèle de courrier électronique avancé permet de créer et de localiser des modèles de courrier électronique et de les utiliser facilement en cas de besoin.",
"LocalizationExplanation": "Le système de localisation permet de créer des ressources dans des fichiers JSON simples et de les utiliser pour localiser votre interface utilisateur. Il prend en charge des scénarios avancés tels que l'héritage, les extensions et l'intégration JavaScript tout en étant entièrement compatible avec le système de localisation d'AspNet Core.",
"SettingManagementExplanation": "Définissez les paramètres de votre application et obtenez des valeurs à l'exécution en fonction de la configuration, du locataire et de l'utilisateur actuels.",
"ExtensionMethodsHelpersExplanation": "Ne vous répétez pas même pour des parties de code triviales. Les extensions et aides pour les types standard rendent votre code beaucoup plus propre et facile à écrire.",
"AspectOrientedProgrammingExplanation": "Fournit une infrastructure confortable pour créer des proxys dynamiques et mettre en œuvre la programmation orientée aspect. Interceptez n'importe quelle classe et exécutez votre code avant et après chaque exécution de méthode.",
"DependencyInjectionByConventionsExplanation": "Inutile d'inscrire manuellement vos classes à l'injection de dépendances. Enregistre automatiquement les types de services courants par convention. Pour les autres types de services, vous pouvez utiliser des interfaces et des attributs pour le rendre plus simple et sur place.",
"DataFilteringExplanation": "Définissez et utilisez des filtres de données qui sont automatiquement appliqués lorsque vous interrogez des entités de la base de données. Les filtres Soft Delete et MultiTenant sont fournis par défaut lorsque vous implémentez des interfaces simples.",
"PublishEvents": "Publier des événements",
"HandleEvents": "Gérer les événements",
"AndMore": "et plus...",
"Code": "Code",
"Result": "Résultat",
"SeeTheDocumentForMoreInformation": "Consultez le <a href=\"{1}\"> {0} document </a> pour plus d'informations",
"IndexPageHeroSection": "<span class = \"first-line shine\"> <strong> open source </strong> </span> <span class = \"second-line text-uppercase\"> Application Web <br /> Framework </span> <span class = \"troisième ligne shine2\"> <strong> pour asp.net core </strong> </span>",
"UiFramework": "Framework de l'interface utilisateur",
"EmailAddress": "Adresse e-mail",
"Mobile": "Mobile",
"ReactNative": "Réagir natif",
"Strong": "Fort",
"Complete": "Compléter",
"BasedLayeringModel": "Modèle basé sur des couches",
"Microservice": "Microservice",
"Compatible": "Compatible",
"MeeTTheABPCommunityInfo": "Notre mission est de créer un environnement où les développeurs peuvent s'entraider avec des articles, des tutoriels, des études de cas, etc. et rencontrer des personnes partageant les mêmes idées.",
"JoinTheABPCommunityInfo": "Impliquez-vous dans une communauté dynamique et devenez un contributeur au cadre ABP!",
"AllArticles": "Tous les articles",
"SubmitYourArticle": "Soumettez votre article",
"DynamicClientProxyDocument": "Consultez les documentations sur le proxy client dynamique pour <a href=\"{0}\"> JavaScript </a> et <a href=\"{1}\"> C # </a>.",
"EmailSMSAbstractionsDocument": "Consultez les documents <a href=\"{0}\"> e-mail </a> et <a href=\"{1}\"> Envoi de SMS </a> pour plus d'informations.",
"CreateProjectWizard": "Cet assistant crée un nouveau projet à partir du modèle de démarrage qui est correctement configuré pour démarrer rapidement votre projet.",
"TieredOption": "Crée une solution à plusieurs niveaux dans laquelle les couches API Web et Http sont physiquement séparées. Si elle n'est pas cochée, crée une solution en couches qui est moins complexe et adaptée à la plupart des scénarios.",
"SeparateIdentityServerOption": "Sépare le côté serveur en deux applications: la première est pour le serveur d'identité et la seconde pour votre API HTTP côté serveur.",
"UseslatestPreVersion": "Utilise la dernière version préliminaire",
"ReadTheDocumentation": "<span class = \"text-primary\"> Lire </span> <span class = \"text-success\"> La documentation </span>",
"Documentation": "Documentation",
"GettingStartedTutorial": "Tutoriel de mise en route",
"ApplicationDevelopmentTutorial": "Tutoriel de développement d'applications",
"TheStartupTemplate": "Le modèle de démarrage",
"InstallABPCLIInfo": "ABP CLI est le moyen le plus rapide de démarrer une nouvelle solution avec le framework ABP. Installez l'interface de ligne de commande ABP à l'aide d'une fenêtre de ligne de commande:",
"DifferentLevelOfNamespaces": "Vous pouvez utiliser différents niveaux d'espaces de noms; par exemple. BookStore, Acme.BookStore ou Acme.Retail.BookStore.",
"ABPCLIExamplesInfo": "La commande <strong> nouvelle </strong> crée une <strong> application MVC en couches </strong> avec <strong> Entity Framework Core </strong> comme fournisseur de base de données. Cependant, il a des options supplémentaires. Exemples:",
"SeeCliDocumentForMoreInformation": "Consultez le <a href=\"{0}\"> document ABP CLI </a> pour plus d'options ou sélectionnez l'onglet \"Téléchargement direct\" ci-dessus.",
"Optional": "Optionnel",
"LocalFrameworkRef": "Conservez la référence de projet locale pour les packages de structure.",
"BlobStoring": "Stockage BLOB",
"BlobStoringExplanation": "Le système de stockage BLOB fournit une abstraction pour travailler avec les BLOB. ABP fournit des intégrations de fournisseur de stockage prédéfinies (Azure, AWS, système de fichiers, base de données, etc.) que vous pouvez facilement utiliser dans vos applications.",
"TextTemplating": "Création de modèles de texte",
"TextTemplatingExplanation": "La création de modèles de texte est utilisée pour rendre le contenu de manière dynamique en fonction d'un modèle et d'un modèle (un objet de données). Par exemple, vous pouvez l'utiliser pour créer des contenus d'e-mail dynamiques avec un modèle prédéfini.",
"MultipleUIOptions": "Options d'interface utilisateur multiples",
"MultipleDBOptions": "Fournisseurs de bases de données multiples",
"MultipleUIOptionsExplanation": "Le framework de base est conçu comme indépendant de l'interface utilisateur et peut fonctionner avec tout type de système d'interface utilisateur, tandis que plusieurs options prédéfinies et intégrées sont fournies prêtes à l'emploi.",
"MultipleDBOptionsExplanation": "Le framework peut fonctionner avec n'importe quelle source de données, tandis que les fournisseurs suivants sont officiellement développés et pris en charge;",
"SelectLanguage": "Choisir la langue",
"LatestArticleOnCommunity": "Dernier article sur la communauté ABP",
"Register": "S'inscrire",
"IsDownloadable": "Est téléchargeable"
}
}

202
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hi.json

@ -0,0 +1,202 @@
{
"culture": "hi",
"texts": {
"GetStarted": "प्रारंभ करें - स्टार्टअप टेम्पलेट",
"Create": "सृजन करना",
"NewProject": "नया काम",
"DirectDownload": "प्रत्यक्षत: डाउनलोड",
"ProjectName": "परियोजना का नाम",
"ProjectType": "प्रोजेक्ट का प्रकार",
"DatabaseProvider": "डेटाबेस प्रदाता",
"DatabaseManagementSystem": "डेटाबेस प्रबंधन प्रणाली",
"NTier": "n स्तरीय",
"IncludeUserInterface": "उपयोगकर्ता इंटरफ़ेस शामिल करें",
"CreateNow": "अब बनाओ",
"TheStartupProject": "स्टार्टअप प्रोजेक्ट",
"Tutorial": "ट्यूटोरियल",
"UsingCLI": "सीएलआई का उपयोग करना",
"SeeDetails": "विवरण देखें",
"AbpShortDescription": "एबीपी फ्रेमवर्क सॉफ्टवेयर विकास सर्वोत्तम प्रथाओं और सम्मेलनों का पालन करके आधुनिक वेब एप्लिकेशन बनाने के लिए एक पूर्ण बुनियादी ढांचा है।",
"SourceCodeUpper": "सोर्स कोड",
"LatestReleaseLogs": "नवीनतम रिलीज़ लॉग",
"Infrastructure": "भूमिकारूप व्यवस्था",
"Architecture": "आर्किटेक्चर",
"Modular": "मॉड्यूलर",
"DontRepeatYourself": "खुद को दोहराएं नहीं",
"DeveloperFocused": "डेवलपर ने फोकस किया",
"FullStackApplicationInfrastructure": "पूर्ण स्टैक अनुप्रयोग अवसंरचना।",
"DomainDrivenDesign": "डोमेन संचालित डिजाइन",
"DomainDrivenDesignExplanation": "डीडीडी पैटर्न और सिद्धांतों के आधार पर डिजाइन और विकसित। आपके आवेदन के लिए एक स्तरित मॉडल प्रदान करता है।",
"Authorization": "प्राधिकार",
"AuthorizationExplanation": "उपयोगकर्ता, भूमिका और ठीक-ठीक अनुमति प्रणाली के साथ उन्नत प्राधिकरण। Microsoft पहचान लाइब्रेरी पर बनाया गया।",
"MultiTenancy": "बहु किरायेदारी",
"MultiTenancyExplanationShort": "सास अनुप्रयोगों आसान बना दिया! यूआई के लिए डेटाबेस से एकीकृत मल्टी-टेनेंसी।",
"CrossCuttingConcerns": "फिल्म आदि में दृश्यों के संपादन संबंधी चिंताएं",
"CrossCuttingConcernsExplanationShort": "प्राधिकरण, सत्यापन, अपवाद से निपटने, कैशिंग, ऑडिट लॉगिंग, लेनदेन प्रबंधन और बहुत कुछ के लिए पूरा बुनियादी ढांचा।",
"BuiltInBundlingMinification": "अंतर्निहित बंडलिंग और न्यूनतम",
"BuiltInBundlingMinificationExplanation": "बंडलिंग और लघुकरण के लिए बाहरी उपकरणों का उपयोग करने की आवश्यकता नहीं है। ABP एक सरल, गतिशील, शक्तिशाली, मॉड्यूलर और बिल्ट-इन तरीका प्रदान करता है!",
"VirtualFileSystem": "वर्चुअल फाइल सिस्टम",
"VirtualFileSystemExplanation": "पैकेज, पुस्तकालयों में विचार, स्क्रिप्ट, शैली, चित्र एम्बेड करें और विभिन्न अनुप्रयोगों में उनका पुन: उपयोग करें।",
"Theming": "थीम",
"ThemingExplanationShort": "बूटस्ट्रैप-आधारित मानक UI थीम का उपयोग करें और अनुकूलित करें या अपना स्वयं का बनाएं।",
"BootstrapTagHelpersDynamicForms": "बूटस्ट्रैप टैग हेल्पर्स और डायनामिक फॉर्म",
"BootstrapTagHelpersDynamicFormsExplanation": "बूटस्ट्रैप घटकों के दोहराए गए विवरणों को मैन्युअल रूप से लिखने के बजाय, इसे सरल बनाने और अंतरंगता का लाभ उठाने के लिए एबीपी के टैग सहायकों का उपयोग करें। डायनामिक फॉर्म टैग हेल्पर का उपयोग करके C # मॉडल के आधार पर जल्दी से UI फॉर्म का निर्माण करें।",
"HTTPAPIsDynamicProxies": "HTTP एपीआई और डायनेमिक प्रॉक्सी",
"HTTPAPIsDynamicProxiesExplanation": "REST शैली HTTP API के रूप में एप्लिकेशन सेवाओं को स्वचालित रूप से उजागर करें, और उन्हें गतिशील जावास्क्रिप्ट और C # प्रॉक्सी के साथ उपभोग करें।",
"CompleteArchitectureInfo": "बनाए रखने योग्य सॉफ़्टवेयर समाधान बनाने के लिए आधुनिक वास्तुकला।",
"DomainDrivenDesignBasedLayeringModelExplanation": "डीडीडी आधारित स्तरित वास्तुकला को लागू करने और बनाए रखने योग्य कोड आधार बनाने में आपकी सहायता करता है।",
"DomainDrivenDesignBasedLayeringModelExplanationCont": "DDD पैटर्न और सिद्धांतों के आधार पर आपके एप्लिकेशन को विकसित करने में मदद करने के लिए स्टार्टअप टेम्प्लेट, सार, आधार कक्षाएं, सेवाएं, प्रलेखन और मार्गदर्शिका प्रदान करता है।",
"MicroserviceCompatibleModelExplanation": "कोर फ्रेमवर्क और प्री-बिल्ड मॉड्यूल को दिमाग में माइक्रोसैस आर्किटेक्चर के साथ डिजाइन किया गया है।",
"MicroserviceCompatibleModelExplanationCont": "यदि आप एक अखंड आवेदन चाहते हैं, तो यह आसान नहीं है कि माइक्रोसॉफ़्ट समाधानों को लागू करने के लिए बुनियादी ढाँचा, एकीकरण, नमूने और प्रलेखन प्रदान करता है।",
"ModularInfo": "एबीपी एक मॉड्यूल प्रणाली प्रदान करता है जो आपको पुन: प्रयोज्य एप्लिकेशन मॉड्यूल विकसित करने, एप्लिकेशन जीवन चक्र घटनाओं में टाई करने और आपके सिस्टम के मुख्य भागों के बीच निर्भरता व्यक्त करने की अनुमति देता है।",
"PreBuiltModulesThemes": "पूर्व निर्मित मॉड्यूल और थीम",
"PreBuiltModulesThemesExplanation": "ओपन सोर्स और वाणिज्यिक मॉड्यूल और थीम आपके व्यावसायिक अनुप्रयोग में उपयोग करने के लिए तैयार हैं।",
"NuGetNPMPackages": "NuGet और NPM पैकेज",
"NuGetNPMPackagesExplanation": "NuGet और NPM पैकेज के रूप में वितरित। स्थापित करने और अपग्रेड करने में आसान।",
"ExtensibleReplaceable": "एक्स्टेंसिबल / बदली",
"ExtensibleReplaceableExplanation": "सभी सेवाओं और मॉड्यूल को ध्यान में रखते हुए डिजाइन किया गया है। आप सेवाओं, पृष्ठों, शैलियों और घटकों को बदल सकते हैं।",
"CrossCuttingConcernsExplanation2": "अपना कोडबेस छोटा रखें ताकि आप उस कोड पर ध्यान केंद्रित कर सकें जो आपके व्यवसाय के लिए विशिष्ट है।",
"CrossCuttingConcernsExplanation3": "कई परियोजनाओं पर सामान्य आवेदन आवश्यकताओं को लागू करने का समय न भेजें।",
"AuthenticationAuthorization": "प्रमाणीकरण प्राधिकरण",
"ExceptionHandling": "संचालन अपवाद",
"Validation": "मान्यकरण",
"DatabaseConnection": "डेटाबेस कनेक्शन",
"TransactionManagement": "आदान - प्रदान प्रबंधन",
"AuditLogging": "ऑडिट लॉगिंग",
"Caching": "कैशिंग",
"Multitenancy": "बहु किरायेदारी",
"DataFiltering": "डेटा फ़िल्टरिंग",
"ConventionOverConfiguration": "कॉन्फिगरेशन पर सम्मलेन",
"ConventionOverConfigurationExplanation": "ABP न्यूनतम या शून्य कॉन्फ़िगरेशन के साथ डिफ़ॉल्ट रूप से सामान्य अनुप्रयोग सम्मेलनों को लागू करता है।",
"ConventionOverConfigurationExplanationList1": "ऑटो निर्भरता इंजेक्शन के लिए सेवाओं को पंजीकृत करता है।",
"ConventionOverConfigurationExplanationList2": "नामकरण सम्मेलनों द्वारा HTTP APIs के रूप में अनुप्रयोग सेवाओं का प्रस्ताव है।",
"ConventionOverConfigurationExplanationList3": "C # और JavaScript के लिए गतिशील HTTP क्लाइंट प्रॉक्सी बनाता है।",
"ConventionOverConfigurationExplanationList4": "आपकी संस्थाओं के लिए डिफ़ॉल्ट रिपॉजिटरी प्रदान करता है।",
"ConventionOverConfigurationExplanationList5": "वेब अनुरोध या एप्लिकेशन सेवा पद्धति के अनुसार कार्य की इकाई का प्रबंधन।",
"ConventionOverConfigurationExplanationList6": "आपकी संस्थाओं के लिए ईवेंट बनाएं, अपडेट करें और हटाएं।",
"BaseClasses": "आधार वर्ग",
"BaseClassesExplanation": "सामान्य अनुप्रयोग पैटर्न के लिए पूर्व-निर्मित आधार कक्षाएं।",
"DeveloperFocusedExplanation": "एबीपी डेवलपर्स के लिए है।",
"DeveloperFocusedExplanationCont": "यह आपके दैनिक सॉफ्टवेयर विकास को सरल बनाने का लक्ष्य रखता है जबकि आपको निम्न स्तर के कोड लिखने से प्रतिबंधित नहीं करता है।",
"SeeAllFeatures": "सभी सुविधाएँ देखें",
"CLI_CommandLineInterface": "सीएलआई (कमांड लाइन इंटरफ़ेस)",
"CLI_CommandLineInterfaceExplanation": "नई परियोजनाओं के निर्माण और नए मॉड्यूल को जोड़ने में मदद करने के लिए एक CLI शामिल है।",
"StartupTemplates": "स्टार्टअप टेम्पलेट",
"StartupTemplatesExplanation": "विभिन्न स्टार्टअप टेम्प्लेट आपके विकास को शुरू करने के लिए पूरी तरह से कॉन्फ़िगर समाधान प्रदान करते हैं।",
"BasedOnFamiliarTools": "परिचित उपकरणों के आधार पर",
"BasedOnFamiliarToolsExplanation": "आप पहले से ही जानते हैं कि लोकप्रिय उपकरणों के साथ निर्मित और एकीकृत। कम सीखने की अवस्था, आसान अनुकूलन, आरामदायक विकास।",
"ORMIndependent": "ORM स्वतंत्र",
"ORMIndependentExplanation": "कोर फ्रेमवर्क ORM / डेटाबेस स्वतंत्र है और किसी भी डेटा स्रोत के साथ काम कर सकता है। इकाई फ्रेमवर्क कोर और MongoDB प्रदाता पहले से ही उपलब्ध हैं।",
"Features": "ABP फ्रेमवर्क सुविधाओं का अन्वेषण करें",
"ABPCLI": "एबीपी सीएलआई",
"Modularity": "प्रतिरूपकता",
"BootstrapTagHelpers": "बूटस्ट्रैप टैग हेल्पर्स",
"DynamicForms": "गतिशील रूप",
"BundlingMinification": "बंडलिंग और न्यूनतमकरण",
"BackgroundJobs": "बैकग्राउंड जॉब्स",
"BackgroundJobsExplanation": "सरल कक्षाओं को परिभाषित करें ताकि पृष्ठभूमि में नौकरियों को निष्पादित किया जा सके। अंतर्निहित नौकरी प्रबंधक का उपयोग करें या अपने स्वयं के एकीकृत करें। <a href=\" जटिलताओं0 Ideal\"> Hangfire </a> और <a href=\" जटिलताओं1 Ideal\"> RabbitMQ </a> एकीकरण पहले से ही उपलब्ध हैं।",
"DDDInfrastructure": "डीडीडी इन्फ्रास्ट्रक्चर",
"DomainDrivenDesignInfrastructure": "डोमेन संचालित डिज़ाइन इन्फ्रास्ट्रक्चर",
"AutoRESTAPIs": "ऑटो रीस्ट एपीआई",
"DynamicClientProxies": "गतिशील ग्राहक प्रॉक्सी",
"DistributedEventBus": "वितरित इवेंट बस",
"DistributedEventBusWithRabbitMQIntegration": "रैबिटएमक्यू इंटीग्रेशन वाली इवेंट बस वितरित की",
"TestInfrastructure": "टेस्ट इन्फ्रास्ट्रक्चर",
"AuditLoggingEntityHistories": "ऑडिट लॉगिंग और इकाई इतिहास",
"ObjectToObjectMapping": "ऑब्जेक्ट टू ऑब्जेक्ट मैपिंग",
"ObjectToObjectMappingExplanation": "AutoMapper एकीकरण के साथ अमूर्तता के लिए <a href=\" जटिलताओं0directory\"> ऑब्जेक्ट मैपिंग पर ऑब्जेक्ट </a>।",
"EmailSMSAbstractions": "ईमेल और एसएमएस अंश",
"EmailSMSAbstractionsWithTemplatingSupport": "ईमेल और एसएमएस अंशांकन समर्थन के साथ",
"Localization": "स्थानीयकरण",
"SettingManagement": "प्रबंधन की स्थापना",
"ExtensionMethods": "एक्सटेंशन के तरीके",
"ExtensionMethodsHelpers": "एक्सटेंशन के तरीके और मददगार",
"AspectOrientedProgramming": "पहलू आधारित प्रोग्रामिंग",
"DependencyInjection": "निर्भरता अन्तःक्षेपण",
"DependencyInjectionByConventions": "सम्मेलनों द्वारा निर्भरता इंजेक्शन",
"ABPCLIExplanation": "ABP CLI (कमांड लाइन इंटरफेस) ABP आधारित समाधानों के लिए कुछ सामान्य ऑपरेशन करने के लिए एक कमांड लाइन टूल है।",
"ModularityExplanation": "ABP अपने स्वयं के एप्लिकेशन मॉड्यूल बनाने के लिए एक पूर्ण बुनियादी ढांचा प्रदान करता है जिनके पास इकाइयाँ, सेवाएँ, डेटाबेस एकीकरण, API, UI घटक और इतने पर हो सकता है।",
"MultiTenancyExplanation": "एबीपी फ्रेमवर्क न केवल बहु-किरायेदार अनुप्रयोगों को विकसित करने का समर्थन करता है, बल्कि आपके कोड को बहु-किरायेदारी से अनजान बनाता है।",
"MultiTenancyExplanation2": "वर्तमान किरायेदार को स्वचालित रूप से निर्धारित कर सकते हैं, एक दूसरे से अलग किरायेदारों के डेटा को अलग कर सकते हैं।",
"MultiTenancyExplanation3": "एकल डेटाबेस, डेटाबेस प्रति किरायेदार और हाइब्रिड दृष्टिकोण का समर्थन करता है।",
"MultiTenancyExplanation4": "आप अपने व्यवसाय कोड पर ध्यान केंद्रित करते हैं और आपकी ओर से मल्टी-टेनेंसी को संभालने की रूपरेखा तैयार करते हैं।",
"BootstrapTagHelpersExplanation": "बूटस्ट्रैप घटकों के दोहराए गए विवरणों को मैन्युअल रूप से लिखने के बजाय, इसे सरल बनाने और अंतरंगता का लाभ उठाने के लिए एबीपी के टैग सहायकों का उपयोग करें। जब भी आपको जरूरत हो आप बूटस्ट्रैप का इस्तेमाल जरूर कर सकते हैं।",
"DynamicFormsExplanation": "डायनामिक फॉर्म और इनपुट टैग हेल्पर्स मॉडल के रूप में C # क्लास से पूरा फॉर्म बना सकते हैं।",
"AuthenticationAuthorizationExplanation": "रिच प्रमाणीकरण और प्राधिकरण विकल्प ASP.NET कोर आइडेंटिटी और आइडेंटिटी सेवर 4 को एकीकृत करता है। एक एक्स्टेंसिबल और विस्तृत अनुमति प्रणाली प्रदान करता है।",
"CrossCuttingConcernsExplanation": "इन सभी सामान्य चीज़ों को बार-बार लागू करने के लिए अपने आप को दोहराएं नहीं। अपने व्यवसाय कोड पर ध्यान दें और एबीपी को उन्हें सम्मेलनों द्वारा स्वचालित करें।",
"DatabaseConnectionTransactionManagement": "डेटाबेस कनेक्शन और लेनदेन प्रबंधन",
"CorrelationIdTracking": "सहसंबंध-आईडी ट्रैकिंग",
"BundlingMinificationExplanation": "ABP एक सरल, गतिशील, शक्तिशाली, मॉड्यूलर और बिल्ट-इन बंडलिंग और मिनिफिकेशन सिस्टम प्रदान करता है।",
"VirtualFileSystemnExplanation": "वर्चुअल फ़ाइल सिस्टम उन फ़ाइलों को प्रबंधित करना संभव बनाता है जो फ़ाइल सिस्टम (डिस्क) पर भौतिक रूप से मौजूद नहीं हैं। यह मुख्य रूप से विधानसभाओं में (js, css, image, cshtml ...) फ़ाइलों को एम्बेड करने और रनटाइम के दौरान भौतिक फ़ाइलों की तरह उपयोग करने के लिए उपयोग किया जाता है।",
"ThemingExplanation": "थिमिंग सिस्टम नवीनतम बूटस्ट्रैप ढांचे के आधार पर, सामान्य आधार पुस्तकालयों और लेआउट के एक सेट को परिभाषित करके आपके एप्लिकेशन और मॉड्यूल विषय को विकसित करने की अनुमति देता है।",
"DomainDrivenDesignInfrastructureExplanation": "डोमेन संचालित डिज़ाइन पैटर्न और सिद्धांतों के आधार पर स्तरित अनुप्रयोगों के निर्माण के लिए एक पूर्ण बुनियादी ढांचा;",
"Specification": "विनिर्देश",
"Repository": "कोष",
"DomainService": "डोमेन सेवा",
"ValueObject": "मान वस्तु",
"ApplicationService": "आवेदन सेवा",
"DataTransferObject": "डेटा ट्रांसफर ऑब्जेक्ट",
"AggregateRootEntity": "एग्रिगेट रूट, एंटिटी",
"AutoRESTAPIsExplanation": "एबीपी कन्वेंशन द्वारा एपीआई कंट्रोलर के रूप में आपकी एप्लिकेशन सेवाओं को स्वचालित रूप से कॉन्फ़िगर कर सकता है।",
"DynamicClientProxiesExplanation": "आसानी से जावास्क्रिप्ट और सी # क्लाइंट से अपने एपीआई का उपभोग करें।",
"DistributedEventBusWithRabbitMQIntegrationExplanation": "बिल्ट-इन डिस्ट्रीब्यूटेड इवेंट बस का उपयोग करके आसानी से प्रकाशित और उपभोग की गई घटनाओं को उपलब्ध करें।",
"TestInfrastructureExplanation": "फ्रेमवर्क को यूनिट और एकीकरण परीक्षण को ध्यान में रखते हुए विकसित किया गया है। यह आसान बनाने के लिए आपको आधार कक्षाएं प्रदान करता है। स्टार्टअप टेम्प्लेट परीक्षण के लिए पूर्व-कॉन्फ़िगर के साथ आते हैं।",
"AuditLoggingEntityHistoriesExplanation": "व्यावसायिक महत्वपूर्ण अनुप्रयोगों के लिए अंतर्निहित ऑडिट लॉगिंग। संपत्ति स्तर के विवरण के साथ अनुरोध, सेवा, विधि स्तर ऑडिट लॉगिंग और इकाई इतिहास।",
"EmailSMSAbstractionsWithTemplatingSupportExplanation": "IEmailSender और ISmsSender अमूर्त बुनियादी ढांचे से आपके आवेदन के तर्क को विघटित करते हैं। उन्नत ईमेल टेम्प्लेट सिस्टम ईमेल टेम्प्लेट बनाने और स्थानीय बनाने और जब भी आवश्यकता हो आसानी से उपयोग करने की अनुमति देता है।",
"LocalizationExplanation": "स्थानीयकरण प्रणाली सादे JSON फ़ाइलों में संसाधन बनाने और उन्हें आपके UI को स्थानीय बनाने के लिए उपयोग करने की अनुमति देती है। यह वंशानुक्रम, एक्सटेंशन और जावास्क्रिप्ट एकीकरण जैसे उन्नत परिदृश्यों का समर्थन करता है, जबकि यह AspNet Core के स्थानीयकरण प्रणाली के साथ पूरी तरह से संगत है।",
"SettingManagementExplanation": "अपने आवेदन के लिए सेटिंग्स को परिभाषित करें और वर्तमान कॉन्फ़िगरेशन, किरायेदार और उपयोगकर्ता के आधार पर रनटाइम पर मान प्राप्त करें।",
"ExtensionMethodsHelpersExplanation": "तुच्छ कोड भागों के लिए भी अपने आप को दोहराएं नहीं। मानक प्रकारों के लिए एक्सटेंशन और हेल्पर्स आपके कोड को बहुत क्लीनर और लिखने में आसान बनाते हैं।",
"AspectOrientedProgrammingExplanation": "गतिशील परदे के पीछे बनाने और पहलू ओरिएंटेड प्रोग्रामिंग को लागू करने के लिए एक आरामदायक बुनियादी ढांचा प्रदान करता है। किसी भी वर्ग को इंटरसेप्ट करें और हर विधि के निष्पादन से पहले और बाद में अपने कोड को निष्पादित करें।",
"DependencyInjectionByConventionsExplanation": "मैन्युअल रूप से निर्भरता इंजेक्शन के लिए अपनी कक्षाओं को पंजीकृत करने की आवश्यकता नहीं है। कन्वेंशन द्वारा स्वचालित रूप से आम सेवा प्रकारों को पंजीकृत करता है। अन्य प्रकार की सेवाओं के लिए, आप इसे आसान और सरल बनाने के लिए इंटरफेस और विशेषताओं का उपयोग कर सकते हैं।",
"DataFilteringExplanation": "उन डेटा फ़िल्टर को परिभाषित और उपयोग करें जो डेटाबेस से क्वेरी करने पर स्वचालित रूप से लागू होते हैं। जब आप साधारण इंटरफ़ेस लागू करते हैं, तो सॉफ्ट डिलीट और मल्टीटेन्नेर फिल्टर बॉक्स से बाहर दिए जाते हैं।",
"PublishEvents": "घटनाक्रम प्रकाशित करें",
"HandleEvents": "घटनाएँ संभालें",
"AndMore": "और अधिक...",
"Code": "कोड",
"Result": "परिणाम",
"SeeTheDocumentForMoreInformation": "अधिक जानकारी के लिए <a href=\"find1 Ideal\"> {0} दस्तावेज़ </a> देखें",
"IndexPageHeroSection": "<स्पैन क्लास = \"फर्स्ट-लाइन शाइन\"> <strong> ओपन सोर्स </ strong> </ span> <स्पैन क्लास = \"सेकंड-लाइन टेक्स्ट-अपरकेस\"> वेब एप्लिकेशन <br /> फ्रेमवर्क </ span> <span class = \"third-line shine2\"> <strong> asp.net core के लिए </ strong> </ span>",
"UiFramework": "यूआई फ्रेमवर्क",
"EmailAddress": "ईमेल पता",
"Mobile": "मोबाइल",
"ReactNative": "प्रतिक्रियाशील मूलनिवासी",
"Strong": "मजबूत",
"Complete": "पूर्ण",
"BasedLayeringModel": "आधारित लेयरिंग मॉडल",
"Microservice": "माइक्रो सर्विस",
"Compatible": "संगत",
"MeeTTheABPCommunityInfo": "हमारा मिशन एक ऐसा वातावरण बनाना है जहां डेवलपर्स लेख, ट्यूटोरियल, केस स्टडी आदि के साथ एक-दूसरे की मदद कर सकें और समान विचारधारा वाले लोगों से मिल सकें।",
"JoinTheABPCommunityInfo": "एक जीवंत समुदाय के साथ शामिल हों और ABP फ्रेमवर्क में योगदानकर्ता बनें!",
"AllArticles": "सभी चीज़ें",
"SubmitYourArticle": "अपना लेख प्रस्तुत करें",
"DynamicClientProxyDocument": "<a href=\" जटिलताओं0 Ideal\"> JavaScript </a> और <a href=\" जटिलताओं1 Ideal\"> C # </a> के लिए डायनेमिक क्लाइंट प्रॉक्सी दस्तावेज़ देखें।",
"EmailSMSAbstractionsDocument": "अधिक जानकारी के लिए <a href=\"lights0 Ideal\"> ईमेल करना </a> और <a href=\" जटिलताओं1 Ideal\"> एसएमएस भेजने </a> के दस्तावेज़ देखें।",
"CreateProjectWizard": "यह विज़ार्ड स्टार्टअप टेम्प्लेट से एक नई परियोजना बनाता है जो आपकी परियोजना को शुरू करने के लिए ठीक से कॉन्फ़िगर किया गया है।",
"TieredOption": "एक ऐसा समाधान तैयार करता है जहाँ वेब और Http API परतें शारीरिक रूप से अलग हो जाती हैं। यदि जांच नहीं की जाती है, तो एक स्तरित समाधान बनाता है जो कम जटिल है और अधिकांश परिदृश्यों के लिए उपयुक्त है।",
"SeparateIdentityServerOption": "सर्वर एप्लिकेशन को दो अनुप्रयोगों में अलग करता है: पहला पहचान सर्वर के लिए है और दूसरा आपके सर्वर साइड HTTP एपीआई के लिए है।",
"UseslatestPreVersion": "नवीनतम पूर्व-रिलीज़ संस्करण का उपयोग करता है",
"ReadTheDocumentation": "<स्पैन क्लास = \"टेक्स्ट-प्राइमरी\"> पढ़ें </ span> <स्पैन क्लास = \"टेक्स्ट-सक्सेस\"> डॉक्यूमेंटेशन </ span>",
"Documentation": "प्रलेखन",
"GettingStartedTutorial": "स्टार्टिंग ट्यूटोरियल",
"ApplicationDevelopmentTutorial": "अनुप्रयोग विकास ट्यूटोरियल",
"TheStartupTemplate": "स्टार्टअप टेम्पलेट",
"InstallABPCLIInfo": "एबीपी सीएलआई एबीपी ढांचे के साथ एक नया समाधान शुरू करने का सबसे तेज़ तरीका है। कमांड लाइन विंडो का उपयोग करके ABP CLI स्थापित करें:",
"DifferentLevelOfNamespaces": "आप विभिन्न स्तरों के नामस्थानों का उपयोग कर सकते हैं; जैसे BookStore, Acme.BookStore या Acme.Retail.BookStore।",
"ABPCLIExamplesInfo": "<strong> नया </ strong> कमांड डेटाबेस प्रदाता के रूप में <strong> एंटिटी फ्रेमवर्क कोर </ strong> के साथ <strong> स्तरित MVC एप्लिकेशन </ strong> बनाता है। हालांकि, इसके पास अतिरिक्त विकल्प हैं। उदाहरण:",
"SeeCliDocumentForMoreInformation": "अधिक विकल्पों के लिए <a href=\"lights0 Ideal\"> ABP CLI दस्तावेज़ </a> देखें या ऊपर \"डायरेक्ट डाउनलोड\" टैब चुनें।",
"Optional": "ऐच्छिक",
"LocalFrameworkRef": "फ्रेमवर्क पैकेज के लिए स्थानीय प्रोजेक्ट संदर्भ रखें।",
"BlobStoring": "ब्लॉब भंडारण",
"BlobStoringExplanation": "BLOB भंडारण प्रणाली BLOBs के साथ काम करने के लिए एक अमूर्तता प्रदान करती है। एबीपी कुछ प्री-बिल्ट स्टोरेज प्रोवाइडर इंटीग्रेशन (एज़्योर, एडब्ल्यूएस, फाइल सिस्टम, डेटाबेस इत्यादि) प्रदान करता है जिन्हें आप आसानी से अपने अनुप्रयोगों में उपयोग कर सकते हैं।",
"TextTemplating": "पाठ अस्थायी",
"TextTemplatingExplanation": "टेम्प्लेट टेम्प्लेटिंग का उपयोग टेम्प्लेट और मॉडल (डेटा ऑब्जेक्ट) के आधार पर सामग्री को गतिशील रूप से प्रस्तुत करने के लिए किया जाता है। उदाहरण के लिए, आप पूर्व-निर्मित टेम्पलेट के साथ गतिशील ईमेल सामग्री बनाने के लिए इसका उपयोग कर सकते हैं।",
"MultipleUIOptions": "एकाधिक यूआई विकल्प",
"MultipleDBOptions": "एकाधिक डेटाबेस प्रदाता",
"MultipleUIOptionsExplanation": "कोर फ्रेमवर्क को यूआई स्वतंत्र के रूप में डिज़ाइन किया गया है और यह किसी भी प्रकार के यूआई सिस्टम के साथ काम कर सकता है, जबकि कई पूर्व-निर्मित और एकीकृत विकल्प बॉक्स से बाहर प्रदान किए गए हैं।",
"MultipleDBOptionsExplanation": "रूपरेखा किसी भी डेटा स्रोत के साथ काम कर सकती है, जबकि निम्नलिखित प्रदाता आधिकारिक रूप से विकसित और समर्थित हैं;",
"SelectLanguage": "भाषा का चयन करें",
"LatestArticleOnCommunity": "एबीपी समुदाय पर नवीनतम लेख",
"Register": "रजिस्टर करें",
"IsDownloadable": "डाउनलोड करने योग्य है"
}
}

202
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/it.json

@ -0,0 +1,202 @@
{
"culture": "it",
"texts": {
"GetStarted": "Inizia - Modelli di avvio",
"Create": "Creare",
"NewProject": "Nuovo progetto",
"DirectDownload": "Download diretto",
"ProjectName": "Nome del progetto",
"ProjectType": "Tipo di progetto",
"DatabaseProvider": "Provider di database",
"DatabaseManagementSystem": "Sistema di gestione del database",
"NTier": "N-Tier",
"IncludeUserInterface": "Includi l'interfaccia utente",
"CreateNow": "Crea adesso",
"TheStartupProject": "Il progetto di avvio",
"Tutorial": "Tutorial",
"UsingCLI": "Utilizzo della CLI",
"SeeDetails": "Vedi i dettagli",
"AbpShortDescription": "ABP Framework è un'infrastruttura completa per creare applicazioni Web moderne seguendo le migliori pratiche e convenzioni di sviluppo software.",
"SourceCodeUpper": "CODICE SORGENTE",
"LatestReleaseLogs": "Ultimi registri di rilascio",
"Infrastructure": "Infrastruttura",
"Architecture": "Architettura",
"Modular": "Modulare",
"DontRepeatYourself": "Non ripetere te stesso",
"DeveloperFocused": "Concentrato sullo sviluppatore",
"FullStackApplicationInfrastructure": "Infrastruttura applicativa full stack.",
"DomainDrivenDesign": "Progettazione basata sul dominio",
"DomainDrivenDesignExplanation": "Progettato e sviluppato sulla base di modelli e principi DDD. Fornisce un modello a più livelli per la tua applicazione.",
"Authorization": "Autorizzazione",
"AuthorizationExplanation": "Autorizzazione avanzata con utente, ruolo e sistema di autorizzazioni granulare. Basato sulla libreria Microsoft Identity.",
"MultiTenancy": "Multi-Tenancy",
"MultiTenancyExplanationShort": "Applicazioni SaaS rese facili! Multi-tenancy integrato dal database all'interfaccia utente.",
"CrossCuttingConcerns": "Preoccupazioni trasversali",
"CrossCuttingConcernsExplanationShort": "Infrastruttura completa per autorizzazione, convalida, gestione delle eccezioni, memorizzazione nella cache, registrazione di audit, gestione delle transazioni e altro ancora.",
"BuiltInBundlingMinification": "Raggruppamento e minimizzazione incorporati",
"BuiltInBundlingMinificationExplanation": "Non è necessario utilizzare strumenti esterni per raggruppare e minimizzare. ABP offre un modo più semplice, dinamico, potente, modulare e integrato!",
"VirtualFileSystem": "File system virtuale",
"VirtualFileSystemExplanation": "Incorpora viste, script, stili, immagini ... in pacchetti / librerie e riutilizzali in diverse applicazioni.",
"Theming": "Theming",
"ThemingExplanationShort": "Usa e personalizza il tema dell'interfaccia utente standard basato su bootstrap o creane uno tuo.",
"BootstrapTagHelpersDynamicForms": "Bootstrap Tag Helpers e moduli dinamici",
"BootstrapTagHelpersDynamicFormsExplanation": "Invece di scrivere manualmente i dettagli ripetuti dei componenti bootstrap, usa gli helper tag di ABP per semplificarlo e sfruttare intellisense. Crea rapidamente moduli dell'interfaccia utente basati su un modello C # utilizzando l'helper tag del modulo dinamico.",
"HTTPAPIsDynamicProxies": "API HTTP e proxy dinamici",
"HTTPAPIsDynamicProxiesExplanation": "Esponi automaticamente i servizi dell'applicazione come API HTTP in stile REST e utilizzali con JavaScript dinamici e proxy C #.",
"CompleteArchitectureInfo": "Architettura moderna per creare soluzioni software manutenibili.",
"DomainDrivenDesignBasedLayeringModelExplanation": "Aiuta a implementare un'architettura a strati basata su DDD e a costruire una base di codice gestibile.",
"DomainDrivenDesignBasedLayeringModelExplanationCont": "Fornisce modelli di avvio, astrazioni, classi di base, servizi, documentazione e guide per aiutarti a sviluppare la tua applicazione in base a modelli e principi DDD.",
"MicroserviceCompatibleModelExplanation": "Il framework principale ei moduli di pre-compilazione sono progettati pensando all'architettura dei microservizi.",
"MicroserviceCompatibleModelExplanationCont": "Fornisce infrastruttura, integrazioni, campioni e documentazione per implementare più facilmente soluzioni di microservizi, mentre non apporta ulteriore complessità se si desidera un'applicazione monolitica.",
"ModularInfo": "ABP fornisce un sistema di moduli che consente di sviluppare moduli applicativi riutilizzabili, collegarsi agli eventi del ciclo di vita dell'applicazione ed esprimere le dipendenze tra le parti principali del sistema.",
"PreBuiltModulesThemes": "Moduli e temi predefiniti",
"PreBuiltModulesThemesExplanation": "Moduli e temi open source e commerciali sono pronti per l'uso nella tua applicazione aziendale.",
"NuGetNPMPackages": "Pacchetti NuGet e NPM",
"NuGetNPMPackagesExplanation": "Distribuito come pacchetti NuGet e NPM. Facile da installare e aggiornare.",
"ExtensibleReplaceable": "Estensibile / sostituibile",
"ExtensibleReplaceableExplanation": "Tutti i servizi e i moduli sono progettati tenendo conto dell'estensibilità. Puoi sostituire servizi, pagine, stili e componenti.",
"CrossCuttingConcernsExplanation2": "Mantieni la tua base di codice più piccola in modo da poter concentrarti sul codice specifico per la tua attività.",
"CrossCuttingConcernsExplanation3": "Non dedicare tempo all'implementazione dei requisiti delle applicazioni comuni su più progetti.",
"AuthenticationAuthorization": "Autenticazione e autorizzazione",
"ExceptionHandling": "La gestione delle eccezioni",
"Validation": "Validazione",
"DatabaseConnection": "Connessione al database",
"TransactionManagement": "Gestione delle transazioni",
"AuditLogging": "Registrazione di audit",
"Caching": "Caching",
"Multitenancy": "Multitenancy",
"DataFiltering": "Filtraggio dei dati",
"ConventionOverConfiguration": "Convenzione sulla configurazione",
"ConventionOverConfigurationExplanation": "ABP implementa convenzioni di applicazioni comuni per impostazione predefinita con una configurazione minima o zero.",
"ConventionOverConfigurationExplanationList1": "Registra automaticamente i servizi noti per l'inserimento delle dipendenze.",
"ConventionOverConfigurationExplanationList2": "Espone i servizi dell'applicazione come API HTTP mediante convenzioni di denominazione.",
"ConventionOverConfigurationExplanationList3": "Crea proxy client HTTP dinamici per C # e JavaScript.",
"ConventionOverConfigurationExplanationList4": "Fornisce archivi predefiniti per le tue entità.",
"ConventionOverConfigurationExplanationList5": "Gestisce l'unità di lavoro per richiesta Web o metodo di servizio dell'applicazione.",
"ConventionOverConfigurationExplanationList6": "Pubblica creare, aggiornare ed eliminare eventi per le tue entità.",
"BaseClasses": "Classi di base",
"BaseClassesExplanation": "Classi di base predefinite per modelli di applicazioni comuni.",
"DeveloperFocusedExplanation": "ABP è per gli sviluppatori.",
"DeveloperFocusedExplanationCont": "Ha lo scopo di semplificare lo sviluppo quotidiano del software senza impedirti di scrivere codice di basso livello.",
"SeeAllFeatures": "Visualizza tutte le funzionalità",
"CLI_CommandLineInterface": "CLI (Command Line Interface)",
"CLI_CommandLineInterfaceExplanation": "Include una CLI per aiutarti ad automatizzare la creazione di nuovi progetti e l'aggiunta di nuovi moduli.",
"StartupTemplates": "Modelli di avvio",
"StartupTemplatesExplanation": "Vari modelli di avvio forniscono una soluzione completamente configurata per avviare rapidamente lo sviluppo.",
"BasedOnFamiliarTools": "Basato su strumenti familiari",
"BasedOnFamiliarToolsExplanation": "Costruito e integrato con strumenti popolari che già conosci. Bassa curva di apprendimento, facile adattamento, sviluppo confortevole.",
"ORMIndependent": "ORM indipendente",
"ORMIndependentExplanation": "Il framework principale è indipendente da ORM / database e può funzionare con qualsiasi origine dati. I provider di Entity Framework Core e MongoDB sono già disponibili.",
"Features": "Esplora le funzionalità di ABP Framework",
"ABPCLI": "ABP CLI",
"Modularity": "Modularità",
"BootstrapTagHelpers": "Bootstrap Tag Helpers",
"DynamicForms": "Forme dinamiche",
"BundlingMinification": "Raggruppamento e minimizzazione",
"BackgroundJobs": "Lavori in background",
"BackgroundJobsExplanation": "Definire classi semplici per eseguire lavori in background come in coda. Usa il gestore dei lavori integrato o integra il tuo. Le integrazioni <a href=\"{0}\"> Hangfire </a> e <a href=\"{1}\"> RabbitMQ </a> sono già disponibili.",
"DDDInfrastructure": "Infrastruttura DDD",
"DomainDrivenDesignInfrastructure": "Infrastruttura di progettazione basata sul dominio",
"AutoRESTAPIs": "API REST automatiche",
"DynamicClientProxies": "Proxy client dinamici",
"DistributedEventBus": "Bus di eventi distribuito",
"DistributedEventBusWithRabbitMQIntegration": "Bus di eventi distribuito con integrazione RabbitMQ",
"TestInfrastructure": "Infrastruttura di test",
"AuditLoggingEntityHistories": "Registrazione di audit e cronologie delle entità",
"ObjectToObjectMapping": "Mappatura da oggetto a oggetto",
"ObjectToObjectMappingExplanation": "Astrazione della <a href=\"{0}\"> mappatura da oggetto a oggetto </a> con integrazione AutoMapper.",
"EmailSMSAbstractions": "Astrazioni tramite e-mail e SMS",
"EmailSMSAbstractionsWithTemplatingSupport": "Astrazioni tramite posta elettronica e SMS con supporto per i modelli",
"Localization": "Localizzazione",
"SettingManagement": "Gestione delle impostazioni",
"ExtensionMethods": "Metodi di estensione",
"ExtensionMethodsHelpers": "Metodi di estensione e aiutanti",
"AspectOrientedProgramming": "Programmazione orientata agli aspetti",
"DependencyInjection": "Iniezione di dipendenza",
"DependencyInjectionByConventions": "Inserimento delle dipendenze mediante convenzioni",
"ABPCLIExplanation": "ABP CLI (Command Line Interface) è uno strumento a riga di comando per eseguire alcune operazioni comuni per soluzioni basate su ABP.",
"ModularityExplanation": "ABP fornisce un'infrastruttura completa per creare i propri moduli applicativi che possono avere entità, servizi, integrazione di database, API, componenti dell'interfaccia utente e così via.",
"MultiTenancyExplanation": "Il framework ABP non solo supporta lo sviluppo di applicazioni multi-tenant, ma rende anche il tuo codice per lo più inconsapevole del multi-tenancy.",
"MultiTenancyExplanation2": "Può determinare automaticamente l'inquilino corrente, isolare i dati di diversi inquilini l'uno dall'altro.",
"MultiTenancyExplanation3": "Supporta database singolo, database per tenant e approcci ibridi.",
"MultiTenancyExplanation4": "Ti concentri sul tuo codice aziendale e lasci che il framework gestisca il multi-tenancy per tuo conto.",
"BootstrapTagHelpersExplanation": "Invece di scrivere manualmente i dettagli ripetuti dei componenti bootstrap, usa gli helper tag di ABP per semplificarlo e sfruttare intellisense. Puoi sicuramente usare Bootstrap ogni volta che ne hai bisogno.",
"DynamicFormsExplanation": "Gli helper dei moduli dinamici e dei tag di input possono creare il modulo completo da una classe C # come modello.",
"AuthenticationAuthorizationExplanation": "Ricche opzioni di autenticazione e autorizzazione integrate in ASP.NET Core Identity & IdentityServer4. Fornisce un sistema di autorizzazione estensibile e dettagliato.",
"CrossCuttingConcernsExplanation": "Non ripetere te stesso per implementare tutte queste cose comuni ancora e ancora. Concentrati sul tuo codice aziendale e lascia che ABP li automatizzi secondo le convenzioni.",
"DatabaseConnectionTransactionManagement": "Connessione al database e gestione delle transazioni",
"CorrelationIdTracking": "Monitoraggio dell'ID di correlazione",
"BundlingMinificationExplanation": "ABP offre un sistema di raggruppamento e minimizzazione semplice, dinamico, potente, modulare e integrato.",
"VirtualFileSystemnExplanation": "Il Virtual File System consente di gestire file che non esistono fisicamente nel file system (disco). Viene utilizzato principalmente per incorporare file (js, css, immagine, cshtml ...) negli assembly e utilizzarli come file fisici in runtime.",
"ThemingExplanation": "Il sistema di temi consente di sviluppare applicazioni e moduli indipendentemente dal tema definendo un set di librerie e layout di base comuni, basati sul più recente framework Bootstrap.",
"DomainDrivenDesignInfrastructureExplanation": "Un'infrastruttura completa per creare applicazioni a più livelli basate sui modelli e sui principi di Domain Driven Design;",
"Specification": "Specifica",
"Repository": "Repository",
"DomainService": "Servizio di dominio",
"ValueObject": "Oggetto valore",
"ApplicationService": "Servizio applicazioni",
"DataTransferObject": "Oggetto trasferimento dati",
"AggregateRootEntity": "Radice aggregata, entità",
"AutoRESTAPIsExplanation": "ABP può configurare automaticamente i servizi dell'applicazione come controller API per convenzione.",
"DynamicClientProxiesExplanation": "Utilizza facilmente le tue API da client JavaScript e C #.",
"DistributedEventBusWithRabbitMQIntegrationExplanation": "Pubblica e utilizza facilmente eventi distribuiti utilizzando Distributed Event Bus integrato con integrazione RabbitMQ disponibile.",
"TestInfrastructureExplanation": "Il framework è stato sviluppato in mente per test di unità e integrazione. Fornisce classi di base per renderlo più facile. I modelli di avvio vengono forniti preconfigurati per i test.",
"AuditLoggingEntityHistoriesExplanation": "Registrazione di audit integrata per applicazioni business-critical. Richiesta, servizio, registrazione di controllo a livello di metodo e cronologie di entità con dettagli a livello di proprietà.",
"EmailSMSAbstractionsWithTemplatingSupportExplanation": "Le astrazioni di IEmailSender e ISmsSender separano la logica dell'applicazione dall'infrastruttura. Il sistema avanzato di modelli di posta elettronica consente di creare e localizzare modelli di posta elettronica e di utilizzarli facilmente quando necessario.",
"LocalizationExplanation": "Il sistema di localizzazione consente di creare risorse in semplici file JSON e utilizzarli per localizzare la tua interfaccia utente. Supporta scenari avanzati come ereditarietà, estensioni e integrazione JavaScript mentre è completamente compatibile con il sistema di localizzazione di AspNet Core.",
"SettingManagementExplanation": "Definisci le impostazioni per la tua applicazione e ottieni i valori in fase di esecuzione in base alla configurazione, al tenant e all'utente correnti.",
"ExtensionMethodsHelpersExplanation": "Non ripeterti nemmeno per parti di codice banali. Le estensioni e gli helper per i tipi standard rendono il codice molto più pulito e facile da scrivere.",
"AspectOrientedProgrammingExplanation": "Fornisce una comoda infrastruttura per creare proxy dinamici e implementare la programmazione orientata agli aspetti. Intercetta qualsiasi classe ed esegui il codice prima e dopo l'esecuzione di ogni metodo.",
"DependencyInjectionByConventionsExplanation": "Non è necessario registrare manualmente le classi per l'inserimento delle dipendenze. Registra automaticamente i tipi di servizio comuni per convenzione. Per altri tipi di servizi, puoi utilizzare interfacce e attributi per renderlo più semplice e sul posto.",
"DataFilteringExplanation": "Definisci e utilizza i filtri di dati che vengono applicati automaticamente quando esegui query sulle entità dal database. Quando si implementano interfacce semplici, vengono forniti filtri Soft Delete e MultiTenant.",
"PublishEvents": "Pubblica eventi",
"HandleEvents": "Gestisci eventi",
"AndMore": "e altro ancora ...",
"Code": "Codice",
"Result": "Risultato",
"SeeTheDocumentForMoreInformation": "Consulta il <a href=\"{1}\"> {0} documento </a> per ulteriori informazioni",
"IndexPageHeroSection": "<span class = \"first-line shine\"> <strong> open source </strong> </span> <span class = \"second-line text-uppercase\"> Framework <br /> applicazione web </span> <span class = \"third-line shine2\"> <strong> per asp.net core </strong> </span>",
"UiFramework": "Framework dell'interfaccia utente",
"EmailAddress": "Indirizzo e-mail",
"Mobile": "Mobile",
"ReactNative": "React Native",
"Strong": "Forte",
"Complete": "Completare",
"BasedLayeringModel": "Modello di stratificazione basato",
"Microservice": "Microservizio",
"Compatible": "Compatibile",
"MeeTTheABPCommunityInfo": "La nostra missione è creare un ambiente in cui gli sviluppatori possano aiutarsi a vicenda con articoli, tutorial, casi di studio, ecc. E incontrare persone che la pensano allo stesso modo.",
"JoinTheABPCommunityInfo": "Fatti coinvolgere da una vivace comunità e diventa un collaboratore di ABP Framework!",
"AllArticles": "Tutti gli articoli",
"SubmitYourArticle": "Invia il tuo articolo",
"DynamicClientProxyDocument": "Consulta la documentazione relativa al proxy del client dinamico per <a href=\"{0}\"> JavaScript </a> e <a href=\"{1}\"> C # </a>.",
"EmailSMSAbstractionsDocument": "Per ulteriori informazioni, consulta i documenti di <a href=\"{0}\"> invio di email </a> e <a href=\"{1}\"> invio di SMS </a>.",
"CreateProjectWizard": "Questa procedura guidata crea un nuovo progetto dal modello di avvio che è configurato correttamente per avviare rapidamente il progetto.",
"TieredOption": "Crea una soluzione a più livelli in cui i livelli API Web e Http sono fisicamente separati. Se non selezionata, crea una soluzione a più livelli meno complessa e adatta alla maggior parte degli scenari.",
"SeparateIdentityServerOption": "Separa il lato server in due applicazioni: la prima è per il server di identità e la seconda è per l'API HTTP lato server.",
"UseslatestPreVersion": "Utilizza l'ultima versione pre-rilascio",
"ReadTheDocumentation": "<span class = \"text-primary\"> Leggi </span> <span class = \"text-success\"> La documentazione </span>",
"Documentation": "Documentazione",
"GettingStartedTutorial": "Tutorial introduttivo",
"ApplicationDevelopmentTutorial": "Tutorial sullo sviluppo di applicazioni",
"TheStartupTemplate": "Il modello di avvio",
"InstallABPCLIInfo": "ABP CLI è il modo più veloce per avviare una nuova soluzione con il framework ABP. Installa ABP CLI utilizzando una finestra della riga di comando:",
"DifferentLevelOfNamespaces": "È possibile utilizzare diversi livelli di spazi dei nomi; per esempio. BookStore, Acme.BookStore o Acme.Retail.BookStore.",
"ABPCLIExamplesInfo": "Il comando <strong> nuovo </strong> crea un '<strong> applicazione MVC a più livelli </strong> con <strong> Entity Framework Core </strong> come provider di database. Tuttavia, ha opzioni aggiuntive. Esempi:",
"SeeCliDocumentForMoreInformation": "Consulta il <a href=\"{0}\"> documento ABP CLI </a> per ulteriori opzioni o seleziona la scheda \"Download diretto\" in alto.",
"Optional": "Opzionale",
"LocalFrameworkRef": "Mantieni il riferimento al progetto locale per i pacchetti del framework.",
"BlobStoring": "Archiviazione BLOB",
"BlobStoringExplanation": "Il sistema di archiviazione BLOB fornisce un'astrazione per lavorare con i BLOB. ABP fornisce alcune integrazioni di provider di archiviazione predefinite (Azure, AWS, File System, Database e così via) che puoi facilmente utilizzare nelle tue applicazioni.",
"TextTemplating": "Modelli di testo",
"TextTemplatingExplanation": "La creazione di modelli di testo viene utilizzata per eseguire il rendering dinamico dei contenuti in base a un modello e un modello (un oggetto dati). Ad esempio, puoi utilizzarlo per creare contenuti di posta elettronica dinamici con un modello predefinito.",
"MultipleUIOptions": "Molteplici opzioni di interfaccia utente",
"MultipleDBOptions": "Più fornitori di database",
"MultipleUIOptionsExplanation": "Il framework principale è progettato come indipendente dall'interfaccia utente e può funzionare con qualsiasi tipo di sistema di interfaccia utente, mentre sono disponibili più opzioni predefinite e integrate.",
"MultipleDBOptionsExplanation": "Il framework può funzionare con qualsiasi fonte di dati, mentre i seguenti provider sono ufficialmente sviluppati e supportati;",
"SelectLanguage": "Seleziona la lingua",
"LatestArticleOnCommunity": "Ultimo articolo sulla comunità ABP",
"Register": "Registrati",
"IsDownloadable": "È scaricabile"
}
}

78
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/tr.json

@ -157,6 +157,82 @@
"EmailAddress": "E-Posta Adresi",
"Mobile": "Mobil",
"ReactNative": "React Native",
"SelectLanguage": "Dil seçin"
"SelectLanguage": "Dil seçin",
"Register": "Kayıt ol",
"IsDownloadable": "Yüklenebilir mi",
"DatabaseOptions": "Veritabanı Seçenekleri",
"BackToPackagesPage": "Paketler sayfasına geri dön",
"HowToInstall": "Nasıl Indirilir",
"SeeOnNpm": "NPM'de görüntüle",
"SeeOnNuget": "Nuget'de görüntüle",
"MVCGulpCommandExplanation": "Arayüz uygulaması olarak MVC (Razor Page) kullanıyorsanız, paketlerin indirilmesinden sonra \"gulp\" komutunu çalıştırın.",
"UsingABPCLI": "<a href=\"https://docs.abp.io/en/abp/latest/CLI\">ABP CLI </a>Kullanımı",
"WithoutABPCLI": "ABP CLI kullanmadan",
"ABPCLIModuleDependency": "ABP CLI otomatik olarak modül bağımlılıklarını ekler.",
"AddModuleDependency": "Modül bağımlılıklarını ekleyin",
"Packages": "Paketler",
"NugetPackages": "Nuget Paketleri",
"NPMPackages": "NPM Paketleri",
"SeeDocs": "Dökümanı Görüntüle",
"None": "Hiç",
"Application": "Uygulama",
"Module": "Modül",
"PackageName": "Paket adı",
"LicenseURL": "Lisans Linki",
"License": "Lisans",
"ProjectCreationSuccessMessage": "Projeniz başarıyla oluşturulmuştur",
"HowToRunSolution": "Uygulamayı Nasıl Çalıştırabiliriz?",
"GettingStartedMessage": "Uygulamanızı nasıl yapılandıracağınızı ve çalıştıracağınızı öğrenmek için başlanıç dökümanına bakınız.",
"WebAppDevTutorial": "Web Uygulaması Geliştirme Öğreticisi",
"WebAppDevTutorialMessage": "Adım adım web uygulaması geliştirme örneği için web uygulaması geliştirme öğreticisine bakınız.",
"CommunityArticles": "Topluluk Makaleleri",
"CommunityArticleMessage": "ABP Framework ile ilgili yararlı makaleleri okumak için ABP Topluluk Platformu'na bakın.",
"InvestigateSolutionDetails": "Çözüm detaylarını inceleyin",
"StartupTemplateDocumentationMessage": "Çözümünüzün mimarisini ve yapısını öğrenmek için uygulama başlangıç şablonu belgesine bakın.",
"ClientSideDevelopment": "İstemci Tarafı Geliştirme",
"ClientSideDevelopmentDocumentationMessage": "Kullanıcı arayüzü (istemci tarafı) geliştirmeyle ilgili temel noktaları öğrenmek için {0} belgesine bakın.",
"DatabaseProviderDocumentationMessage": "Veritabanı katmanı geliştirmeyle ilgili temel noktaları öğrenmek için {0} belgesine bakın.",
"ABPCommercialExplanationMessage": "ABP Commercial, ABP Framework için premium modüller, temalar, araçlar ve destek sağlar.",
"ImplementingDDD": "Domain Driven Design'ı Uygulayın",
"DDDBookExplanation": "ABP Framework ile Domain Driven Design'ın uygulanması için pratik bir kılavuz.",
"Overview": "Genel Bakış",
"DDDBookPracticalGuide": "Bu kitap Domain Driven Design'ın uygulanması için pratik bir kılavuz görevi görür. Uygulama ayrıntıları ABP Framework altyapısına dayanırken, temel kavramlar, prensipler ve modeller bir .NET çözümü olmasa bile her türlü çözümde uygulanabilir.",
"TableOfContents": "İçindekiler",
"IntroductionToImplementingDDD": "Domain Driven Design Uygulamasına Giriş",
"WhatIsDDD": "Domain Driven Design nedir?",
"Implementation": "Uygulama",
"TheBigPicture": "Büyük Resim",
"TheBuildingBlock": "Yapıtaşı",
"ExampleUseCase": "Örnek Kullanım Senaryosu",
"DomainAndApplicationLogic": "Domain ve Uygulama Mantığı",
"Author": "Yazar",
"Page": "Sayfa",
"PublishedOn": "Yayımlanma tarihi",
"FreeEBook": "Ücretsiz E-Kitap",
"Download": "İndir",
"EBookSignInForDownload": "E-Kitabı indirmek için giriş yapın",
"SignIn": "Giriş Yap",
"Or": "Veya",
"TellUsAboutYourself": "Bize biraz kendinizden bahsedin",
"Name": "Ad",
"Surname": "Soyad",
"CompanyName": "Şirket adı",
"DoYouAgreePrivacyPolicy": "Şartlar & Koşulları ve <a href=\"https://commercial.abp.io/Privacy\">Gizlilik Politikasını</a> kabul ediyorum.",
"VolosoftMarketingInformationMessage": "İşletmeler ve Organizasyonlar için çözümler ve diğer Volosoft ürün ve hizmetleri hakkında bilgi, ipucu ve teklifler almak istiyorum.",
"VolosoftSharingInformationMessage": "Volosoft'un ürünlerimi seçkin ortaklarla paylaşmasını kabul ediyorum, böylece ilgili ortakların ürünleri ve hizmetleri hakkında ilgili bilgileri alabilirim.",
"Free": "Ücretsiz",
"DDDEBook": "DDD E-kitap",
"PracticalGuideForImplementingDDD": "Bu kitap ABP Framework ile birlikte Domain Driven Design'ın uygulanması için pratik bir kılavuz görevi görür.",
"IntroducingDDD": "Domain Driven Design Ile Tanışın",
"DDDLayersAndCleanArchitecture": "DDD Katmanları & Clean Architecture",
"LayeringOfADotnetSolution": "Bir .NET Uygulamasının Katmanlı Yapısı",
"ImplementingDDDBuildingBlocks": "DDD Yapı Taşlarının Uygulanması",
"DomainVsApplicationLogic": "Domain Mantığı vs Uygulama Mantığı",
"SamplesAndDiscussions": "Örnekler & Tartışmalar",
"EmailNotValid": "Lütfen geçerli bir email adresi giriniz.",
"WeWillSendYouADownloadLink": "{0} adresine email gönderilmiştir.",
"GoHome": "Anasayfaya Dön",
"InvalidFormInputs": "Lütfen formda belirtilen geçerli bilgileri yazınız.",
"DDDBookEmailBody": "Teşekkürler. <br /> Kitabı indirmek için, <a href=\"{0}\">buraya tıklayınız</a>."
}
}

35
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json

@ -196,6 +196,39 @@
"MultipleDBOptionsExplanation": "该框架可以使用任何数据源,并且以下提供程序已得到正式开发和支持;",
"SelectLanguage": "选择语言",
"LatestArticleOnCommunity": "关于ABP社区的最新文章",
"Register": "寄存器"
"Register": "注册",
"DatabaseOptions": "数据库选项",
"BackToPackagesPage": "回到包页面",
"HowToInstall": "如何安装",
"SeeOnNpm": "在NPM查看",
"SeeOnNuget": "在Nuget查看",
"MVCGulpCommandExplanation": "如果你使用MVC (Razor Pages) UI,在包安装完成后运行 \"gulp\" 命令.",
"UsingABPCLI": "使用 <a href=\"https://docs.abp.io/en/abp/latest/CLI\">Abp CLI</a>",
"WithoutABPCLI": "不使用 ABP CLI",
"ABPCLIModuleDependency": "ABP CLI会自动添加模块依赖.",
"AddModuleDependency": "然后添加模块依赖",
"Packages": "包",
"NugetPackages": "Nuget包",
"NPMPackages": "NPM包",
"SeeDocs": "查看文档",
"None": "空",
"Application": "应用程序",
"Module": "模块",
"PackageName": "包名称",
"LicenseURL": "许可URL",
"License": "许可",
"ProjectCreationSuccessMessage": "你的项目创建成功",
"HowToRunSolution": "如何运行你的解决方案n?",
"GettingStartedMessage": "查看入门文档了解如何配置和运行你的解决方案.",
"WebAppDevTutorial": "Web App 开发教程",
"WebAppDevTutorialMessage": "查看web应用程序开发教程文档,一步一步的开发示例.",
"CommunityArticles": "社区文档",
"CommunityArticleMessage": "查看ABP社区平台来阅读关于ABP框架的文档.",
"InvestigateSolutionDetails": "调查解决方案细节",
"StartupTemplateDocumentationMessage": "查看应用程序启动模板文档来学习你的解决方案架构和结构.",
"ClientSideDevelopment": "客户端部分开发",
"ClientSideDevelopmentDocumentationMessage": "查看{0}文档来学习用户页面(客户端部分)开发.",
"DatabaseProviderDocumentationMessage": "查看{0}文档来学习用数据库层开发.",
"ABPCommercialExplanationMessage": "ABP商业版为ABP框架提供了高级模块,主题,工具和支持."
}
}

37
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hant.json

@ -155,6 +155,41 @@
"IndexPageHeroSection": "<span class=\"third-line shine2\"><strong>asp.net core的</strong></span><span class=\"first-line shine\"><strong>開源</strong></span><span class=\"second-line text-uppercase\">Web應用程式<br />框架 </span>",
"UiFramework": "UI框架",
"EmailAddress": "電子信箱地址",
"SelectLanguage": "选择语言"
"SelectLanguage": "选择语言",
"LatestArticleOnCommunity": "關於ABP社區的最新文章",
"Register": "註冊",
"DatabaseOptions": "數據庫選項",
"BackToPackagesPage": "回到包頁面",
"HowToInstall": "如何安裝",
"SeeOnNpm": "在NPM查看",
"SeeOnNuget": "在Nuget查看",
"MVCGulpCommandExplanation": "如果你使用MVC (Razor Pages) UI,在包安裝完成後運行 \"gulp\" 命令.",
"UsingABPCLI": "使用 <a href=\"https://docs.abp.io/en/abp/latest/CLI\">Abp CLI</a>",
"WithoutABPCLI": "不使用 ABP CLI",
"ABPCLIModuleDependency": "ABP CLI會自動添加模塊依賴.",
"AddModuleDependency": "然後添加模塊依賴",
"Packages": "包",
"NugetPackages": "Nuget包",
"NPMPackages": "NPM包",
"SeeDocs": "查看文檔",
"None": "空",
"Application": "應用程序",
"Module": "模塊",
"PackageName": "包名稱",
"LicenseURL": "許可URL",
"License": "許可",
"ProjectCreationSuccessMessage": "你的項目創建成功",
"HowToRunSolution": "如何運行你的解決方案?",
"GettingStartedMessage": "查看入門文檔了解如何配置和運行你的解決方案.",
"WebAppDevTutorial": "Web App 開發教程",
"WebAppDevTutorialMessage": "查看web應用程序開發教程文檔,一步一步的開發示例.",
"CommunityArticles": "社區文檔",
"CommunityArticleMessage": "查看ABP社區平臺來閱讀關於ABP框架的文檔.",
"InvestigateSolutionDetails": "調查解決方案細節",
"StartupTemplateDocumentationMessage": "查看應用程序啟動模板文檔來學習你的解決方案架構和結構.",
"ClientSideDevelopment": "客戶端部分開發",
"ClientSideDevelopmentDocumentationMessage": "查看{0}文檔來學習用戶頁面(客戶端部分)開發.",
"DatabaseProviderDocumentationMessage": "查看{0}文檔來學習用數據庫層開發.",
"ABPCommercialExplanationMessage": "ABP商業版為ABP框架提供了高級模塊,主題,工具和支持."
}
}

4
common.props

@ -1,7 +1,7 @@
<Project>
<PropertyGroup>
<LangVersion>latest</LangVersion>
<Version>4.3.2</Version>
<LangVersion>latest</LangVersion>
<Version>4.4.0</Version>
<NoWarn>$(NoWarn);CS1591;CS0436</NoWarn>
<PackageIconUrl>https://abp.io/assets/abp_nupkg.png</PackageIconUrl>
<PackageProjectUrl>https://abp.io/</PackageProjectUrl>

37
delete-bin-obj-folders.js

@ -0,0 +1,37 @@
const { resolve } = require("path");
const { readdir, rmdir } = require("fs").promises;
async function* removeFolder(dir) {
await rmdir(dir, { recursive: true });
yield dir;
}
async function* getBinObj(dir) {
const dirents = await readdir(dir, { withFileTypes: true });
for (const dirent of dirents) {
if (!dirent.isDirectory()) continue;
const name = dirent.name;
if (name === "node_modules") continue;
const res = resolve(dir, dirent.name);
if (name === "bin" || name === "obj") {
yield* removeFolder(res);
continue;
}
yield* getBinObj(res);
}
}
(async () => {
console.log("\x1b[36m%s\x1b[0m", "Deleting all BIN and OBJ folders...");
for await (const dir of getBinObj(".")) {
console.log("\x1b[33m%s\x1b[0m", `Removed: ${dir}`);
}
console.log("\x1b[36m%s\x1b[0m", "All BIN and OBJ folders are deleted.");
})();

32
docs/en/Authorization.md

@ -265,37 +265,7 @@ myGroup.AddPermission("Book_Creation")
#### Creating a Custom Permission Dependency
Any class implements the `IPermissionStateProvider` interface can disable a permission based on a custom condition.
**Example:**
````csharp
public class MyCustomPermissionStateProvider : IPermissionStateProvider
{
public Task<bool> IsEnabledAsync(PermissionStateContext context)
{
// You can implement your own logic here.
return Task.FromResult(
context.Permission.Name.StartsWith("Acme.BookStore"));
}
}
````
Then you can add `MyCustomPermissionStateProvider` to any permission definition, using the `AddStateProviders` extension method:
````csharp
myGroup.AddPermission("Book_Creation")
.AddStateProviders(new MyCustomPermissionStateProvider());
````
Or you can globally add your custom provider to make it working for all permissions:
````csharp
Configure<AbpPermissionOptions>(options =>
{
options.GlobalStateProviders.Add<MyCustomPermissionStateProvider>();
});
````
`PermissionDefinition` supports state check, Please refer to [Simple State Checker's documentation](SimpleStateChecker.md)
## IAuthorizationService

6
docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/POST.md

@ -1,6 +1,6 @@
# ABP Commercial 4.3 RC Has Been Published
ABP Commercial version 4.3 RC (Release Candidate) has been published alongside ABP Framework 4.3. RC (TODO: link). I will introduce the new features in this blog post. Here, a list of highlights for this release;
ABP Commercial version 4.3 RC (Release Candidate) has been published alongside [ABP Framework 4.3. RC](https://blog.abp.io/abp/ABP-Framework-4.3-RC-Has-Been-Published). I will introduce the new features in this blog post. Here, a list of highlights for this release;
* The **microservice starter template** is getting more mature. We've also added a **service template** to add new microservices to the solution.
* New option for the application starter template to have a **separate database schema for tenant databases**.
@ -15,7 +15,7 @@ Here, some other features already covered in the ABP Framework announcement, but
* **Email setting** management UI
* **Module extensibility** system is now available for the **Blazor UI** too.
> This post doesn't cover the features and changes done on the ABP Framework side. Please also see the **ABP Framework 4.3. RC blog post** (TODO: link).
> This post doesn't cover the features and changes done on the ABP Framework side. Please also see the **[ABP Framework 4.3. RC blog post](https://blog.abp.io/abp/ABP-Framework-4.3-RC-Has-Been-Published)**.
## The Migration Guide
@ -69,7 +69,7 @@ Automatic migration only tries one time. If it fails, it writes the exception lo
### New Module: CMS Kit
CMS Kit module initial version has been released with this version. As stated in the ABP Framework 4.3 announcement post (TODO: link), it should be considered premature for now.
CMS Kit module initial version has been released with this version. As stated in the [ABP Framework 4.3 announcement post](https://blog.abp.io/abp/ABP-Framework-4.3-RC-Has-Been-Published), it should be considered premature for now.
For ABP Commercial application startup template, we are providing an option to include the CMS Kit into the solution while creating new solutions:

8
docs/en/Blog-Posts/2021-03-31 v4_3 Preview/POST.md

@ -10,11 +10,11 @@ We are super excited to announce the ABP Framework 4.3 RC (Release Candidate). H
* CLI support to easily add the **Basic Theme** into the solution.
* New **IInitLogger** service to write logs before dependency injection phase completed.
Besides the new features above, we've done many performance improvements, enhancements and bug fixes on the current features. See the [4.3 milestone](https://github.com/abpframework/abp/milestone/49) on GitHub for all changes made on this version.
Besides the new features above, we've done many performance improvements, enhancements and bug fixes on the current features. See the [4.3 milestone](https://github.com/abpframework/abp/milestone/49?closed=1) on GitHub for all changes made on this version.
This version was a big development journey for us; [~160 issues](https://github.com/abpframework/abp/issues?q=is%3Aopen+is%3Aissue+milestone%3A4.3-preview) resolved, [~300 PRs](https://github.com/abpframework/abp/pulls?q=is%3Aopen+is%3Apr+milestone%3A4.3-preview) merged and **~1,700 commits** done only in the [main framework repository](https://github.com/abpframework/abp). **Thanks to the ABP Framework team and all the contributors.**
This version was a big development journey for us; [~160 issues](https://github.com/abpframework/abp/issues?q=is%3Aissue+milestone%3A4.3-preview+is%3Aclosed) resolved, [~300 PRs](https://github.com/abpframework/abp/issues?q=is%3Apr+milestone%3A4.3-preview+is%3Aclosed) merged and **~1,700 commits** done only in the [main framework repository](https://github.com/abpframework/abp). **Thanks to the ABP Framework team and all the contributors.**
> ABP Commercial 4.3 RC has also been published. We will write a separate blog post for it.
> ABP Commercial 4.3 RC has also been published. Check out [the commercial blog post](https://blog.abp.io/abp/ABP-Commercial-4.3-RC-Has-Been-Published).
## The Migration Guide
@ -63,7 +63,7 @@ CMS (Content Management System) Kit was a module we worked on for the last coupl
* **Reactions**: Allows users to react to content via emojis, like a smile, upvote, downvote, etc.
* **Rating**: This component is used to rate content by users.
All features are separately usable. For example, you can create an image gallery and reuse the Comments and Tags features for the images. You can enable/disable features individually using the [Global Features System](https://docs.abp.io/en/abp/4.3/global-features).
All features are separately usable. For example, you can create an image gallery and reuse the Comments and Tags features for the images. You can enable/disable features individually using the [Global Features System](https://docs.abp.io/en/abp/4.3/Global-Features).
> We will create a separate blog post for the CMS Kit module, so I keep it short.

86
docs/en/Blog-Posts/2021-04-05 CmsKit/POST.md

@ -1,3 +1,85 @@
# Introducing the CMS Kit Module for the ABP Framework
# Introducing The CMS-Kit Module
One of the most exciting announcements of the ABP Framework 4.3 release was releasing the initial version of the CMS Kit module. The team had been working hard to release the initial version for months. For those who didn't read the [ABP Framework 4.3 release post](https://blog.abp.io/abp/ABP-Framework-4.3-RC-Has-Been-Published), the CMS Kit module adds CMS(Content Management System) capabilities to your application. Some of the CMS Kit features are open source and free, while others are only included in the Pro version included in the ABP Commercial.
List of free and pro features in the CMS Kit module;
- Free
- Page System: Provides a **page** management system to manage dynamic pages.
- Blog System: Provides a **blog** system to create blogs and publish posts.
- Tag System: Provides a **tag** system to tag any kind of resources, such as blog posts.
- Comment System: Provides a **comment** system to add comments feature to any type of resource, such as blog posts, products, etc.
- Reaction System: Provides a **reaction** system to add reactions to any type of resource, such as blog posts or comments, etc.
- Rating System: Provides a **rating** system to add ratings feature to any type of resource, such as comments, products, etc.
- Pro
- Newsletter System: Provides a **newsletter** system to allow users to subscribe to newsletters.
- Contact Form System: Provides a **contact form** system to allow users to write a message to you on public websites.
## Installation
CMS Kit module comes installed with commercial templates when you create the solution with the public website option. You can run the following command and create a solution with a public website.
```bash
abp new Acme --with-public-website
```
If you're using the open-source version or adding the module to an existing project, the ABP CLI allows adding a module to a solution using `add-module` command.
You can run the following command to add the module to an open-source solution.
```bash
abp add-module Volo.CmsKit
```
If you're a commercial user, run the following command to install the pro version of the module.
```bash
abp add-module Volo.CmsKit.Pro
```
After adding the module to the solution, you need to configure features. The CMS Kit module uses the [global feature](https://docs.abp.io/en/abp/latest/Global-Features) system for all features. To enable the features in the CMS Kit module, open the `GlobalFeatureConfigurator` class in the `Domain.Shared` project and place the following code to the `Configure` method to enable all features in the CMS kit module.
```csharp
GlobalFeatureManager.Instance.Modules.CmsKit(cmsKit =>
{
cmsKit.EnableAll();
});
```
If you're a commercial user, you need to enable CMS Kit Pro features as well.
```csharp
GlobalFeatureManager.Instance.Modules.CmsKitPro(cmsKitPro =>
{
cmsKitPro.EnableAll();
});
```
> If you are using Entity Framework Core, do not forget to add a new migration and update your database after configuring the features.
We've completed the installation step. Run the project, and you will see the CMS menu item in the menu.
![cms-kit-menu](cms-kit-menu.png)
> CMS Kit's initial release only supports the MVC UI. We're planning to add Angular and Blazor support in upcoming releases.
## Package Structures
CMS Kit is designed for various usage scenarios. When you visit [nuget.org](https://www.nuget.org/packages?q=Volo.CmsKit) or [abp.io](https://abp.io/packages?moduleName=Volo.CmsKit.Pro) to see the available CMS Kit packages, you will find out that packages have admin, public and unified versions.
For example,
- `Volo.CmsKit.Admin.Application`: Contains functionality required by admin websites.
- `Volo.CmsKit.Public.Application`: Contains functionality required by public websites.
- `Volo.CmsKit.Application` : Unified package dependent on both public and admin packages.
If you want to separate admin and public website codes, you can use the admin and public packages. However, if you want to keep admin and public website codes in a shared project, you can use the unified packages to include admin and public packages.
> It is recommended to use the unified packages instead of adding both admin and public packages.
We've covered the initial features, installation and configuration steps in this post. You can read the [open-source](https://docs.abp.io/en/abp/latest/Modules/Cms-Kit) and [commercial](https://docs.abp.io/en/commercial/latest/modules/CMS-Kit) documentation to get further information about features and the CMS Kit module. CMS Kit's initial version contains lots of features that you can easily integrate and use in your applications. We're planning to improve the existing features, fixing bugs and adding new features in upcoming releases. If you want to give some feedback or have a feature request, please reach out to us from [GitHub](https://github.com/abpframework/abp) or [support.abp.io](https://support.abp.io). We will be happy to plan the CMS Kit module's future together.
Thank you!
TODO...

BIN
docs/en/Blog-Posts/2021-04-05 CmsKit/cms-kit-menu.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

53
docs/en/Blog-Posts/2021-04-26 v4_3_Release_Stable/POST.md

@ -0,0 +1,53 @@
# ABP.IO Platform 4.3 Final Has Been Released!
[ABP Framework](https://abp.io/) and [ABP Commercial](https://commercial.abp.io/) 4.3 versions have been released today.
## What's New With 4.3?
Since all the new features are already explained in details with the 4.3 RC announcement posts, I will not repeat all the details again. See the related blog posts for all the features and enhancements;
* [What's New with the ABP Framework 4.3](https://blog.abp.io/abp/ABP-Framework-4.3-RC-Has-Been-Published)
* [What's new with the ABP Commercial 4.3](https://blog.abp.io/abp/ABP-Commercial-4.3-RC-Has-Been-Published)
## The Quick Start Tutorial
With this version, we've created a minimalist [quick start tutorial](https://docs.abp.io/en/abp/latest/Tutorials/Todo/Index) for developers who are new to the ABP Framework.
## How to Upgrade an Existing Solution
### Install/Update the ABP CLI
First of all, install the ABP CLI or upgrade to the latest version.
If you haven't installed yet:
```bash
dotnet tool install -g Volo.Abp.Cli
```
To update an existing installation:
```bash
dotnet tool update -g Volo.Abp.Cli
```
### ABP UPDATE Command
[ABP CLI](https://docs.abp.io/en/abp/latest/CLI) provides a handy command to update all the ABP related NuGet and NPM packages in your solution with a single command:
```bash
abp update
```
Run this command in the root folder of your solution.
## Migration Guides
**Check the migration guides ([for ABP Framework](https://docs.abp.io/en/abp/latest/Migration-Guides/Abp-4_3) & for [ABP Commercial](https://docs.abp.io/en/commercial/latest/migration-guides/v4_3)) for the applications with the version 4.2.x upgrading to the version 4.3.0.**
## The Road Map
The next feature version will be 4.4. It is planned to release the 4.4 RC (Release Candidate) at the end of Quarter 2, 2021. See the updated road maps;
* [ABP Framework Road Map](https://docs.abp.io/en/abp/latest/Road-Map)
* [ABP Commercial Road Map](https://docs.abp.io/en/commercial/latest/road-map)

6
docs/en/CLI-New-Command-Samples.md

@ -126,6 +126,12 @@ Module are reusable sub applications used by your main project. Using ABP Module
```bash
abp new Acme.IssueManagement -t module --no-ui
```
* Creates the module and adds it to your solution
```bash
abp new Acme.IssueManagement -t module --add-to-solution-file
```
## Create a solution from a specific version

4
docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/How-To-Add-Custom-Property-To-The-User-Entity.md

@ -18,7 +18,7 @@ Abp Framework offers startup templates to get into the work faster. We can creat
`abp new CustomizeUserDemo`
> In this article, I will go through the MVC application, but it will work also in the [Angular](https://docs.abp.io/en/abp/latest/Getting-Started?UI=NG&DB=EF&Tiered=No) application.
> In this article, I will go through the MVC application, but it will work also in the [Angular](https://docs.abp.io/en/abp/latest/Getting-Started?UI=NG&DB=EF&Tiered=No), [Blazor Server](https://docs.abp.io/en/abp/latest/Getting-Started?UI=BlazorServer&DB=EF&Tiered=No), and [Blazor WebAssembly](https://docs.abp.io/en/abp/latest/Getting-Started?UI=Blazor&DB=EF&Tiered=No) application.
After the download is finished, we can run **CustomizeUserDemo.DbMigrator** project to create the database migrations and seed the initial data (admin user, role, etc). Then we can run `CustomizeUserDemo.Web` to see that our application is working.
@ -78,7 +78,7 @@ public static class CustomizeUserDemoEfCoreEntityExtensionMappings
nameof(AppUser.Title),
(entityBuilder, propertyBuilder) =>
{
propertyBuilder.HasDefaultValue();
propertyBuilder.HasDefaultValue("");
propertyBuilder.HasMaxLength(UserConsts.MaxTitleLength);
}
).MapEfCoreProperty<IdentityUser, int>(

29
docs/en/Community-Articles/2020-12-04-Event-Organizer/Post.md

@ -447,11 +447,12 @@ namespace EventOrganizer.Events
public async Task<List<EventDto>> GetUpcomingAsync()
{
var events = await AsyncExecuter.ToListAsync(
_eventRepository
.Where(x => x.StartTime > Clock.Now)
.OrderBy(x => x.StartTime)
);
var queryable = await _eventRepository.GetQueryableAsync();
var query = queryable
.Where(x => x.StartTime > Clock.Now)
.OrderBy(x => x.StartTime);
var events = await AsyncExecuter.ToListAsync(query);
return ObjectMapper.Map<List<Event>, List<EventDto>>(events);
}
@ -653,11 +654,12 @@ namespace EventOrganizer.Events
public async Task<List<EventDto>> GetUpcomingAsync()
{
var events = await AsyncExecuter.ToListAsync(
_eventRepository
.Where(x => x.StartTime > Clock.Now)
.OrderBy(x => x.StartTime)
);
var queryable = await _eventRepository.GetQueryableAsync();
var query = queryable
.Where(x => x.StartTime > Clock.Now)
.OrderBy(x => x.StartTime);
var events = await AsyncExecuter.ToListAsync(query);
return ObjectMapper.Map<List<Event>, List<EventDto>>(events);
}
@ -666,7 +668,12 @@ namespace EventOrganizer.Events
{
var @event = await _eventRepository.GetAsync(id);
var attendeeIds = @event.Attendees.Select(a => a.UserId).ToList();
var attendees = (await AsyncExecuter.ToListAsync(_userRepository.Where(u => attendeeIds.Contains(u.Id))))
var queryable = await _userRepository.GetQueryableAsync();
var query = queryable
.Where(u => attendeeIds.Contains(u.Id));
var attendees = (await AsyncExecuter.ToListAsync(query))
.ToDictionary(x => x.Id);
var result = ObjectMapper.Map<Event, EventDetailDto>(@event);

22
docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/POST.md

@ -38,8 +38,19 @@ Open `YourProjectWebModule.cs` class and add the following line to the `PreConfi
#### 2- Add Client Scripts
2- In the `ConfigureServices` method of your web module add the following code to add the `signalr.js` and `notification-hub.js`. We'll add these packages in the next steps.
2- In the `ConfigureServices` method of your web module add the following code to add the `signalr.js` and `notification-hub.js`. We'll add these packages in the next steps. If you are not using Lepton Theme you can add the files to `StandardBundles.Scripts.Global`.
```csharp
Configure<AbpBundlingOptions>(options =>
{
options
.ScriptBundles
.Get(LeptonThemeBundles.Scripts.Global) //or -> Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Bundling.StandardBundles.Scripts.Global
.AddFiles("/libs/signalr/signalr.js")
.AddFiles("/Pages/notification-hub.js");
});
```
![Script Bundles](add-script-bundles.jpg)
#### 3- Add Hub Endpoint
@ -71,6 +82,11 @@ Add the following JavaScript class into your `Pages` folder in your Web project.
Add [Microsoft.SignalR](https://www.npmjs.com/package/@microsoft/signalr) JavaScript package to the `package.json` which is located in your root folder of the Web project. After you add it, run `yarn` command in your Web directory to be able to install this package.
You can install the latest version (3.1.13 will be old)
```
"@microsoft/signalr": "^3.1.13"
````
![Add SignalR package](signalr-package.jpg)
#### 3- Add resource Mapping
@ -94,6 +110,8 @@ To do this replace the `Index.cshtml` and `Index.cshtml.cs` with the followings:
#### 5- See it in action
Run your web project and in the Index page you'll see a button named as "Get Notification". Click the button and see the notification that comes from SignalR. This is a basic usage of SignalR notification system. You can implement it according to your own requirements.
Run your web project and in the Index page you'll Server Time will be updated every second. The time information comes from backend via SignalR.
This is a very basic usage of SignalR notification system.
You can implement your own SignalR notification system based on your requirements.
![Result](result.jpg)

114
docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/POST.md

@ -0,0 +1,114 @@
## Integrating SyncFusion UI with ABP Framework Blazor UI
Hi, in this step by step article, I will show you how to integrate [Syncfusion](https://www.syncfusion.com/blazor-components), a blazor UI components into ABP Framework-based applications.
![example-result](example-result.png)
*(A screenshot from the example application developed in this article)*
## Create the Project
> First thing is to create the project. ABP Framework offers startup templates to get into business faster.
In this article, I will create a new startup template with EF Core as a database provider and Blazor for UI framework. But if you already have a project with Blazor UI, you don't need to create a new startup template, you can directly implement the following steps to your existing project.
> If you already have a project with the Blazor UI, you can skip this section.
* Before starting the development, we will create a new solution named `SyncfusionSample` (or whatever you want). We will create a new startup template with EF Core as a database provider and Blazor for UI framework by using [ABP CLI](https://docs.abp.io/en/abp/latest/CLI):
````bash
md SyncfusionSample
cd SyncfusionSample
````
After we have navigated inside of `SyncfusionSample` directory, we can create a new project. Note that I am creating Blazor Server (`blazor-server`) project. If you want to create a regular Blazor WebAssembly project just use `blazor` keyword instead.
````bash
abp new SyncfusionSample -u blazor-server
````
and
````bash
dotnet restore
````
* Our project boilerplate will be ready after the download is finished. Then, we can open the solution in the Visual Studio (or any other IDE) and run the `SyncfusionSample.DbMigrator` to create the database and seed initial data (which creates the admin user, admin role, permissions etc.)
![initial-project](initial-project.png)
* After database and initial data created,
* Run the `SyncfusionSample.Blazor` to see our UI working properly.
> _Default login credentials for admin: username is **admin** and password is **1q2w3E\***_
## Install Syncfusion
You can follow [this documentation](https://blazor.syncfusion.com/documentation/getting-started/blazor-server-side-visual-studio-2019/) to install Syncfusion packages into your computer.
### Adding Syncfusion NuGet Packages
Select `SyncfusionSample.Blazor` as the **default project** and then install NuGet packages.
```bash
Install-Package Syncfusion.Blazor.Grid
```
### Register Syncfusion Resources
1. Add the following line to the HEAD section of the `_Host.cshtml` file within the `SyncfusionSample.Blazor` project:
```Razor
<head>
<!--...-->
<link href="_content/Syncfusion.Blazor.Themes/fabric.css" rel="stylesheet" />
</head>
```
2. In the `SyncfusionSampleBlazorModule` class, call the `AddSyncfusionBlazor()` method from your project's `ConfigureServices()` method:
```csharp
public override void ConfigureServices(ServiceConfigurationContext context)
{
var hostingEnvironment = context.Services.GetHostingEnvironment();
var configuration = context.Services.GetConfiguration();
// ...
context.Services.AddSyncfusionBlazor();
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR LICENSE KEY");
}
```
> To get the `LICENSE KEY` you can login into your Syncfusion account and request the key. Trial keys are also available.
3. Register the **SyncfusionSample.Blazor** namespace(s) in the `_Imports.razor` file:
```Razor
@using Syncfusion.Blazor
@using Syncfusion.Blazor.Buttons
@using Syncfusion.Blazor.Inputs
@using Syncfusion.Blazor.Calendars
@using Syncfusion.Blazor.Popups
@using Syncfusion.Blazor.Grids
```
## The Sample Application
We have created a sample application with [SfGrid](https://blazor.syncfusion.com/documentation/datagrid/getting-started/) example.
### The Source Code
You can download the source code from [here](https://github.com/abpframework/abp-samples/tree/master/SyncfusionSample).
The related files for this example are marked in the following screenshots.
![table-app-contract](table-app-contract.png)
![table-application](table-application.png)
![table-web](table-web.png)
## Conclusion
In this article, I've explained how to use [Syncfusion](https://www.syncfusion.com/blazor-components) components in your application. ABP Framework is designed so that it can work with any UI library/framework.

BIN
docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/example-result.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/initial-project.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/table-app-contract.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

BIN
docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/table-application.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

BIN
docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/table-web.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

456
docs/en/Community-Articles/2021-05-24-Removing-EfCore-Migrations/POST.md

@ -0,0 +1,456 @@
# Unifying DbContexts for EF Core / Removing the EF Core Migrations Project
This article shows how to remove the `EntityFrameworkCore.DbMigrations` project from your solution to have a single `DbContext` for your database mappings and code first migrations.
## Source Code
You can find source of the example solution used in this article [here](https://github.com/abpframework/abp-samples/tree/master/UnifiedEfCoreMigrations).
## Motivation
If you create a new solution with **Entity Framework Core** as the database provider, you see two projects related to EF Core:
![default-solution](default-solution.png)
* `EntityFrameworkCore` project contains the actual `DbContext` of your application. It includes all the database mappings and your repository implementations.
* `EntityFrameworkCore.DbMigrations` project, on the other hand, contains another `DbContext` class that is only used to create and apply the database migrations. It contains the database mappings for all the modules you are using, so have a single, unified database schema.
There were two main reasons we'd created such a separation;
1. Your actual `DbContext` remains simple and focused. It only contains your own entities and doesn't contain anything related to the modules that are used by the application.
2. You can create your own classes that map to the tables of depending modules. For example, the `AppUser` entity (that is included in the downloaded solution) is mapped to `AbpUsers` table in the database, which is actually mapped to the `IdentityUser` entity of the [Identity Module](https://docs.abp.io/en/abp/latest/Modules/Identity). That means they share the same database table. `AppUser` includes less properties compared to `IdentityServer`. You only add the properties you need, not more. This also allows you to add new standard (type-safe) properties to the `AppUser` for your custom requirements as long as you carefully manage the database mappings.
We've [documented the structure](https://docs.abp.io/en/abp/latest/Entity-Framework-Core-Migrations) in details. However, it has always been a problem for the developers since that structure makes your database mappings complicated when you re-use tables of the depended modules. Many developers are misunderstanding or making mistakes while mapping such classes, especially when they try to use these entities in relations to other entities.
**So, [we've decided](https://github.com/abpframework/abp/issues/8776) to cancel that separation and remove the `EntityFrameworkCore.DbMigrations` project in the version 4.4. New startup solutions will come with a single `EntityFrameworkCore` project and single `DbContext` class.**
If you want to make it in your solution with today, follow the steps in this article.
## Warnings
> There is one **drawback** with the new design (everything in software development is a trade-off). We need to remove the `AppUser` entity, because EF Core can't map two classes to single table without an inheritance relation. I will cover this later in this article and provide suggestions to deal with it.
> If you are using **ABP Commercial**, ABP Suite code generation won't work correctly with the new design. In this case, we suggest to wait for the next version.
## The Steps
Our goal to enable database migrations in the `EntityFrameworkCore` project, remove the `EntityFrameworkCore.DbMigrations` project and revisit the code depending on that package.
> I've created a new solution with v4.3, then made all the changes in a pull request, so you can see all the changes line by line. While this article will cover all, you may want to [check the changes done in this PR](https://github.com/abpframework/abp-samples/pull/88) if you have problems with the implementation.
### 1) Add Microsoft.EntityFrameworkCore.Tools package to the EntityFrameworkCore project
Add the following code into the `EntityFrameworkCore.csproj` file:
````xml
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.*">
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
<PrivateAssets>compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native</PrivateAssets>
</PackageReference>
</ItemGroup>
````
### 2) Create design time DbContext factory
Create a class implementing `IDesignTimeDbContextFactory<T>` inside the `EntityFrameworkCore` project:
````csharp
using System.IO;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;
using Microsoft.Extensions.Configuration;
namespace UnifiedContextsDemo.EntityFrameworkCore
{
public class UnifiedContextsDemoDbContextFactory : IDesignTimeDbContextFactory<UnifiedContextsDemoDbContext>
{
public UnifiedContextsDemoDbContext CreateDbContext(string[] args)
{
UnifiedContextsDemoEfCoreEntityExtensionMappings.Configure();
var configuration = BuildConfiguration();
var builder = new DbContextOptionsBuilder<UnifiedContextsDemoDbContext>()
.UseSqlServer(configuration.GetConnectionString("Default"));
return new UnifiedContextsDemoDbContext(builder.Options);
}
private static IConfigurationRoot BuildConfiguration()
{
var builder = new ConfigurationBuilder()
.SetBasePath(Path.Combine(Directory.GetCurrentDirectory(), "../UnifiedContextsDemo.DbMigrator/"))
.AddJsonFile("appsettings.json", optional: false);
return builder.Build();
}
}
}
````
I basically copied from the `EntityFrameworkCore.DbMigrations` project, renamed and uses the actual `DbContext` of the application.
### 3) Create DB schema migrator
Copy `EntityFrameworkCore...DbSchemaMigrator` (`...` standard for your project name) class to the `EntityFrameworkCore` project and change the code in the `MigrateAsync` method to use the actual `DbContext` of the application. In my case, the final class is shown below:
````csharp
using System;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using UnifiedContextsDemo.Data;
using Volo.Abp.DependencyInjection;
namespace UnifiedContextsDemo.EntityFrameworkCore
{
public class EntityFrameworkCoreUnifiedContextsDemoDbSchemaMigrator
: IUnifiedContextsDemoDbSchemaMigrator, ITransientDependency
{
private readonly IServiceProvider _serviceProvider;
public EntityFrameworkCoreUnifiedContextsDemoDbSchemaMigrator(
IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
}
public async Task MigrateAsync()
{
/* We intentionally resolving the UnifiedContextsDemoMigrationsDbContext
* from IServiceProvider (instead of directly injecting it)
* to properly get the connection string of the current tenant in the
* current scope.
*/
await _serviceProvider
.GetRequiredService<UnifiedContextsDemoDbContext>()
.Database
.MigrateAsync();
}
}
}
````
### 4) Move module configurations
The migrations `DbContext` typically contains code lines like `builder.ConfigureXXX()` for each module you are using. We can move these lines to our actual `DbContext` in the `EntityFrameworkCore` project. Also, remove the database mappings for the `AppUser` (we will remove this entity). Optionally, you may move the database mappings code for your own entities from `...DbContextModelCreatingExtensions` class in the `OnModelCreating` method of the actual `DbContext`, and remove the static extension class.
For the example solution, the final `DbContext` class is shown below:
````csharp
using Microsoft.EntityFrameworkCore;
using UnifiedContextsDemo.Users;
using Volo.Abp.AuditLogging.EntityFrameworkCore;
using Volo.Abp.BackgroundJobs.EntityFrameworkCore;
using Volo.Abp.Data;
using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.FeatureManagement.EntityFrameworkCore;
using Volo.Abp.Identity.EntityFrameworkCore;
using Volo.Abp.IdentityServer.EntityFrameworkCore;
using Volo.Abp.PermissionManagement.EntityFrameworkCore;
using Volo.Abp.SettingManagement.EntityFrameworkCore;
using Volo.Abp.TenantManagement.EntityFrameworkCore;
namespace UnifiedContextsDemo.EntityFrameworkCore
{
[ConnectionStringName("Default")]
public class UnifiedContextsDemoDbContext
: AbpDbContext<UnifiedContextsDemoDbContext>
{
public DbSet<AppUser> Users { get; set; }
/* Add DbSet properties for your Aggregate Roots / Entities here.
* Also map them inside UnifiedContextsDemoDbContextModelCreatingExtensions.ConfigureUnifiedContextsDemo
*/
public UnifiedContextsDemoDbContext(
DbContextOptions<UnifiedContextsDemoDbContext> options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.ConfigurePermissionManagement();
builder.ConfigureSettingManagement();
builder.ConfigureBackgroundJobs();
builder.ConfigureAuditLogging();
builder.ConfigureIdentity();
builder.ConfigureIdentityServer();
builder.ConfigureFeatureManagement();
builder.ConfigureTenantManagement();
/* Configure your own tables/entities inside here */
//builder.Entity<YourEntity>(b =>
//{
// b.ToTable(UnifiedContextsDemoConsts.DbTablePrefix + "YourEntities", UnifiedContextsDemoConsts.DbSchema);
// b.ConfigureByConvention(); //auto configure for the base class props
// //...
//});
}
}
}
````
### 5) Remove `EntityFrameworkCore.DbMigrations` project from the solution
Remove the `EntityFrameworkCore.DbMigrations` project from the solution and replace references given to that project by the `EntityFrameworkCore` project reference.
Also, change usages of `...EntityFrameworkCoreDbMigrationsModule` to `...EntityFrameworkCoreModule` (`...` stands for your project name).
In this example, I had to change references and usages in the `DbMigrator`, `Web` and `EntityFrameworkCore.Tests` projects.
### 6) Remove AppUser Entity
We need to remove the `AppUser` entity, because EF Core can't map two classes to single table without an inheritance relation. So, remove this class and all the usages. You can replace the usages with `IdentityUser` if you need to query users in your application code. See The AppUser Entity & Custom Properties section for more info.
### 7) Create or move the migrations
We've removed the `EntityFrameworkCore.DbMigrations` project. What about the migrations created and applied into the database until now? If you want to keep your migrations history, copy all the migrations from the `EntityFrameworkCore.DbMigrations` project to the `EntityFrameworkCore` project and manually change the `DbContext` type in the designer classes.
If you want to clear the migrations history, but continue with the migrations already applied to the database, create a new database migration in the `EntityFrameworkCore` project, executing the following command in a command-line terminal in the directory of that project:
````bash
dotnet ef migrations add InitialUnified
````
You can specify a different migration name, surely. This will create a migration class that contains all the database tables you already have in the database. Keep calm and delete all the content in the `Up` and `Down` methods. Then you can apply the migration to the database:
````bash
dotnet ef database update
````
Your database won't have any change, because the migration is just empty and does nothing. From now, you can create new migrations as you change your entities, just like you normally do.
All the changes are done. The next section explains how to add custom properties to entities of depending modules with this design.
## The AppUser Entity & Custom Properties
The database mapping logic, solution structure and migrations become much simpler and easier to manage with that new setup.
As a drawback, we had to remove the `AppUser` entity, which was sharing the `AbpUsers` table with the `IdentityUser` entity of the Identity Module. Fortunately, ABP provides a flexible system to [extend existing entities](https://docs.abp.io/en/abp/latest/Module-Entity-Extensions) in case of you need to define some custom properties. In this section, I will show how to add a custom property to the `IdentityUser` entity and use it in your application code and database queries.
I've done all the changes in this part as a single PR, so you may want to [check the changes done in this PR](https://github.com/abpframework/abp-samples/pull/89) if you have problems with the implementation.
### Defining a Custom Property
The application startup template provides a point to configure the custom properties for existing entities, which is located under `Domain.Shared` project, in the `...ModuleExtensionConfigurator.cs` (`...` standard for your project name) class. Open that class and add the following code into the `ConfigureExtraProperties` method:
````csharp
ObjectExtensionManager.Instance.Modules()
.ConfigureIdentity(identity =>
{
identity.ConfigureUser(user =>
{
user.AddOrUpdateProperty<string>( //property type: string
"SocialSecurityNumber", //property name
property =>
{
//validation rules
property.Attributes.Add(new RequiredAttribute());
property.Attributes.Add(new StringLengthAttribute(64));
}
);
});
});
````
After that setup, just run the application to see the new property on the Users table:
![new-prop-on-table](new-prop-on-table.png)
The new `SocialSecurityNumber` property will also be available on the create and edit modals with the validation rules.
> See the [Module Entity Extensions](https://docs.abp.io/en/abp/latest/Module-Entity-Extensions) document to understand and control the new custom property with all the details.
### Mapping to the Database Table
By default, ABP saves all custom properties inside the `ExtraProperties` field as a single JSON object. If you prefer to create a table field for a custom property, you can configure it in the `...EfCoreEntityExtensionMappings.cs` (`...` standard for your project name) class in the `EntityFrameworkCore` project. You can write the following code inside this class (in the `OneTimeRunner.Run`):
````csharp
ObjectExtensionManager.Instance
.MapEfCoreProperty<IdentityUser, string>(
"SocialSecurityNumber",
(entityBuilder, propertyBuilder) =>
{
propertyBuilder.HasMaxLength(64).IsRequired().HasDefaultValue("");
}
);
````
After that, you can just run the following command in a command-line terminal to add a new database migration (in the directory of the `EntityFrameworkCore` project):
````bash
dotnet ef migrations add Added_SocialSecurityNumber_To_IdentityUser
````
This will add a new migration class to your project. You can then run the following command (or run the `.DbMigrator` application) to apply changes to the database:
````bash
dotnet ef database update
````
This will add a `SocialSecurityNumber` field to the `AbpUsers` table in the database.
### Using Custom Properties in the Application Code
Now, we can use `GetProperty` and `SetProperty` methods on the `IdentityUser` entity to work with the new property. The following code demonstrates to get/set the custom property:
````csharp
public class MyUserService : ITransientDependency
{
private readonly IRepository<IdentityUser, Guid> _userRepository;
public MyUserService(IRepository<IdentityUser, Guid> userRepository)
{
_userRepository = userRepository;
}
public async Task SetSocialSecurityNumberDemoAsync(string userName, string number)
{
var user = await _userRepository.GetAsync(u => u.UserName == userName);
user.SetProperty("SocialSecurityNumber", number);
await _userRepository.UpdateAsync(user);
}
public async Task<string> GetSocialSecurityNumberDemoAsync(string userName)
{
var user = await _userRepository.GetAsync(u => u.UserName == userName);
return user.GetProperty<string>("SocialSecurityNumber");
}
}
````
Tip: Using `SetProperty` and `GetProperty` with a string property name everywhere could be tedious and error-prone. I suggest you to create the following extension methods:
````csharp
public static class MyUserExtensions
{
public const string SocialSecurityNumber = "SocialSecurityNumber";
public static void SetSocialSecurityNumber(this IdentityUser user, string number)
{
user.SetProperty(SocialSecurityNumber, number);
}
public static string GetSocialSecurityNumber(this IdentityUser user)
{
return user.GetProperty<string>(SocialSecurityNumber);
}
}
````
Then we can change the previous demo method as shown below:
````csharp
public async Task SetSocialSecurityNumberDemoAsync(string userName, string number)
{
var user = await _userRepository.GetAsync(u => u.UserName == userName);
user.SetSocialSecurityNumber(number); //Using the new extension property
await _userRepository.UpdateAsync(user);
}
public async Task<string> GetSocialSecurityNumberDemoAsync(string userName)
{
var user = await _userRepository.GetAsync(u => u.UserName == userName);
return user.GetSocialSecurityNumber(); //Using the new extension property
}
````
### Querying Based on a Custom Property
You may want to query users based on `SocialSecurityNumber`. We will use Entity Framework's API to accomplish that. You have two options to use EF Core API in your application code:
1. Reference to the [Microsoft.EntityFrameworkCore](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore) NuGet package from your project (domain or application layer, depending on where you want to use the EF Core API).
2. Create a [repository](https://docs.abp.io/en/abp/latest/Repositories) interface in the domain layer and implement it in your `EntityFrameworkCore` project.
I will prefer the second approach, so I am defining a new repository interface in the `Domain` project:
````csharp
using System;
using System.Threading.Tasks;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Identity;
namespace UnifiedContextsDemo.Users
{
public interface IMyUserRepository : IRepository<IdentityUser, Guid>
{
Task<IdentityUser> FindBySocialSecurityNumber(string number);
}
}
````
Then implementing it in the `EntityFrameworkCore` project:
````csharp
using System;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using UnifiedContextsDemo.EntityFrameworkCore;
using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.Identity;
namespace UnifiedContextsDemo.Users
{
public class MyUserRepository
: EfCoreRepository<UnifiedContextsDemoDbContext, IdentityUser, Guid>,
IMyUserRepository
{
public MyUserRepository(
IDbContextProvider<UnifiedContextsDemoDbContext> dbContextProvider)
: base(dbContextProvider)
{
}
public async Task<IdentityUser> FindBySocialSecurityNumber(string number)
{
var dbContext = await GetDbContextAsync();
return await dbContext.Set<IdentityUser>()
.Where(u => EF.Property<string>(u, "SocialSecurityNumber") == number)
.FirstOrDefaultAsync();
}
}
}
````
Tip: Use the constant instead of `SocialSecurityNumber` as a magic string.
Now, I can use that repository method in my service by injecting the `IMyUserRepository`:
````csharp
public class MyUserService : ITransientDependency
{
private readonly IMyUserRepository _userRepository;
public MyUserService(IMyUserRepository userRepository)
{
_userRepository = userRepository;
}
//...other methods
public async Task<IdentityUser> FindBySocialSecurityNumberDemoAsync(string number)
{
return await _userRepository.FindBySocialSecurityNumber(number);
}
}
````
I changed `IRepository<IdentityUser, Guid>` dependency to `IMyUserRepository`.
## Conclusion
With this article, I wanted to show you how to remove the `EntityFrameworkCore.DbMigrations` project from your solution to simplify your database mappings, database migrations and your application code. In the next version (4.4), this [will be](https://github.com/abpframework/abp/issues/8776) the default approach.
### Source Code
You can find source of the example solution used in this article [here](https://github.com/abpframework/abp-samples/tree/master/UnifiedEfCoreMigrations).

BIN
docs/en/Community-Articles/2021-05-24-Removing-EfCore-Migrations/default-solution.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
docs/en/Community-Articles/2021-05-24-Removing-EfCore-Migrations/new-prop-on-table.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

14
docs/en/Entity-Framework-Core.md

@ -724,7 +724,19 @@ One advantage of using an interface for a DbContext is then it will be replaceab
### Replace Other DbContextes
Once you properly define and use an interface for DbContext, then any other implementation can replace it using the `ReplaceDbContext` option:
Once you properly define and use an interface for DbContext, then any other implementation can use the following ways to replace it:
**ReplaceDbContextAttribute**
```csharp
[ReplaceDbContext(typeof(IBookStoreDbContext))]
public class OtherDbContext : AbpDbContext<OtherDbContext>, IBookStoreDbContext
{
//...
}
```
**ReplaceDbContext option**
````csharp
context.Services.AddAbpDbContext<OtherDbContext>(options =>

14
docs/en/MongoDB.md

@ -391,7 +391,19 @@ One advantage of using interface for a MongoDbContext is then it becomes replace
#### Replace Other DbContextes
Once you properly define and use an interface for a MongoDbContext , then any other implementation can replace it using the `ReplaceDbContext` option:
Once you properly define and use an interface for a MongoDbContext , then any other implementation can use the following ways to replace it:
**ReplaceDbContextAttribute**
```csharp
[ReplaceDbContext(typeof(IBookStoreMongoDbContext))]
public class OtherMongoDbContext : AbpMongoDbContext, IBookStoreMongoDbContext
{
//...
}
```
**ReplaceDbContext option**
```csharp
context.Services.AddMongoDbContext<OtherMongoDbContext>(options =>

125
docs/en/SimpleStateChecker.md

@ -0,0 +1,125 @@
# Simple State Checker
The simple state checking system can be used to enable/disable an object based on some dynamic conditions. For example, you can disable a menu item on the user interface, if the current user has not granted for a given permission. The simple state checking system provides a generic way to define and check such conditions.
## Definition state checker.
Any class can inherit `IHasSimpleStateCheckers` to support state checks.
````csharp
public class MyObject : IHasSimpleStateCheckers<MyObject>
{
public int Id { get; set; }
public List<ISimpleStateChecker<MyObject>> SimpleStateCheckers { get; }
public MyObject()
{
SimpleStateCheckers = new List<ISimpleStateChecker<MyObject>>();
}
}
````
The `MyObject` class contains a collection of state checkers, you can add your custom checkers to it.
````csharp
public class MyObjectStateChecker : ISimpleStateChecker<MyObject>
{
public Task<bool> IsEnabledAsync(SimpleStateCheckerContext<MyObject> context)
{
var currentUser = context.ServiceProvider.GetRequiredService<ICurrentUser>();
return Task.FromResult(currentUser.IsInRole("Admin"));
}
}
````
````csharp
var myobj = new MyObject()
{
Id = 100
};
myobj.SimpleStateCheckers.Add(new MyObjectStateChecker());
````
## Definition Global State Checkers
`AbpSimpleStateCheckerOptions` is the options class that used to set the global state checkers for specific object.
Example: Add global state for `MyObject`:
````csharp
services.Configure<AbpSimpleStateCheckerOptions<MyObject>>(options =>
{
options.GlobalSimpleStateCheckers.Add<MyGlobalObjectStateChecker>();
//options.GlobalSimpleStateCheckers.Add<>(); //Add more global state checkers
});
````
> Write this inside the `ConfigureServices` method of your module.
## Check the state
You can inject `ISimpleStateCheckerManager<MyObject>` service to check state.
````csharp
bool enabled = await stateCheckerManager.IsEnabledAsync(myobj);
````
### Batch check the states
If there are many instance items that require state checking, there may be performance problems.
In this case, you can implement `ISimpleBatchStateChecker`. It can check multiple items at once.
You need to make sure that the same `ISimpleBatchStateChecker` instance is added to the `SimpleStateCheckers` of multiple instances.
> `SimpleBatchStateCheckerBase` inherits the `ISimpleBatchStateChecker` interface and implements the `IsEnabledAsync` method of a single object by default.
````csharp
public class MyObjectBatchStateChecker : SimpleBatchStateCheckerBase<MyObject>
{
public override Task<SimpleStateCheckerResult<MyObject>> IsEnabledAsync(SimpleBatchStateCheckerContext<MyObject> context)
{
var result = new SimpleStateCheckerResult<MyObject>(context.States);
foreach (var myObject in context.States)
{
if (myObject.Id > 100)
{
result[myObject] = true;
}
}
return Task.FromResult(result);
}
}
````
````csharp
var myobj1 = new MyObject()
{
Id = 100
};
var myobj2 = new MyObject()
{
Id = 99
};
var myObjectBatchStateChecker = new MyObjectBatchStateChecker();
myobj1.SimpleStateCheckers.Add(myObjectBatchStateChecker);
myobj2.SimpleStateCheckers.Add(myObjectBatchStateChecker);
SimpleStateCheckerResult<MyObject> stateCheckerResult = await stateCheckerManager.IsEnabledAsync(new []{ myobj1, myobj2 });
````
## Built-in State Checkers
The `PermissionDefinition`, `ApplicationMenuItem` and `ToolbarItem` objects have implemented state checks and have built-in general state checkers, you can directly use their extension methods.
````csharp
RequireAuthenticated();
RequirePermissions(bool requiresAll, params string[] permissions);
RequireFeatures(bool requiresAll, params string[] features);
RequireGlobalFeatures(bool requiresAll, params Type[] globalFeatures);
````

578
docs/en/Text-Templating-Razor.md

@ -0,0 +1,578 @@
# Razor Integration
The Razor template is a standard C# class, so you can freely use the functions of C#, such as `dependency injection`, using `LINQ`, custom methods, and even using `Repository`.
## Installation
It is suggested to use the [ABP CLI](CLI.md) to install this package.
### Using the ABP CLI
Open a command line window in the folder of the project (.csproj file) and type the following command:
````bash
abp add-package Volo.Abp.TextTemplating.Razor
````
### Manual Installation
If you want to manually install;
1. Add the [Volo.Abp.TextTemplating.Razor](https://www.nuget.org/packages/Volo.Abp.TextTemplating.Razor) NuGet package to your project:
````
Install-Package Volo.Abp.TextTemplating.Razor
````
2. Add the `AbpTextTemplatingRazorModule` to the dependency list of your module:
````csharp
[DependsOn(
//...other dependencies
typeof(AbpTextTemplatingRazorModule) //Add the new module dependency
)]
public class YourModule : AbpModule
{
}
````
## Add MetadataReference to CSharpCompilerOptions
You need to add the `MetadataReference` of the type used in the template to `CSharpCompilerOptions's References`.
````csharp
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpRazorTemplateCSharpCompilerOptions>(options =>
{
options.References.Add(MetadataReference.CreateFromFile(typeof(YourModule).Assembly.Location));
});
}
````
## Add MetadataReference for a template.
You can add some `MetadataReference` to the template
````csharp
public override void ConfigureServices(ServiceConfigurationContext context)
{
services.Configure<AbpCompiledViewProviderOptions>(options =>
{
//Hello is template name.
options.TemplateReferences.Add("Hello", new List<Assembly>()
{
Assembly.Load("Microsoft.Extensions.Logging.Abstractions"),
Assembly.Load("Microsoft.Extensions.Logging")
}
.Select(x => MetadataReference.CreateFromFile(x.Location))
.ToList());
});
}
````
## Defining Templates
Before rendering a template, you should define it. Create a class inheriting from the `TemplateDefinitionProvider` base class:
````csharp
public class DemoTemplateDefinitionProvider : TemplateDefinitionProvider
{
public override void Define(ITemplateDefinitionContext context)
{
context.Add(
new TemplateDefinition("Hello") //template name: "Hello"
.WithRazorEngine()
.WithVirtualFilePath(
"/Demos/Hello/Hello.cshtml", //template content path
isInlineLocalized: true
)
);
}
}
````
* `context` object is used to add new templates or get the templates defined by depended modules. Used `context.Add(...)` to define a new template.
* `TemplateDefinition` is the class represents a template. Each template must have a unique name (that will be used while you are rendering the template).
* `/Demos/Hello/Hello.cshtml` is the path of the template file.
* `isInlineLocalized` is used to declare if you are using a single template for all languages (`true`) or different templates for each language (`false`). See the Localization section below for more.
* `WithRenderEngine` method is used to set the render engine of the template.
### The Template Base
Every `cshtml` template page needs to inherit `RazorTemplatePageBase` or `RazorTemplatePageBase<Model>`.
There are some useful properties in the base class that can be used in templates. eg: `Localizer`, `ServiceProvider`.
### The Template Content
`WithVirtualFilePath` indicates that we are using the [Virtual File System](Virtual-File-System.md) to store the template content. Create a `Hello.cshtml` file inside your project and mark it as "**embedded resource**" on the properties window:
![hello-template-razor](images/hello-template-razor.png)
Example `Hello.cshtml` content is shown below:
````
@inherits Volo.Abp.TextTemplating.Razor.RazorTemplatePageBase<HelloModelNamespace.HelloModel>
Hello @Model.Name
````
The `HelloModel` class is:
````csharp
namespace HelloModelNamespace
{
public class HelloModel
{
public string Name { get; set; }
}
}
````
The [Virtual File System](Virtual-File-System.md) requires to add your files in the `ConfigureServices` method of your [module](Module-Development-Basics.md) class:
````csharp
Configure<AbpVirtualFileSystemOptions>(options =>
{
options.FileSets.AddEmbedded<TextTemplateDemoModule>("TextTemplateDemo");
});
````
* `TextTemplateDemoModule` is the module class that you define your template in.
* `TextTemplateDemo` is the root namespace of your project.
## Rendering the Template
`ITemplateRenderer` service is used to render a template content.
### Example: Rendering a Simple Template
````csharp
public class HelloDemo : ITransientDependency
{
private readonly ITemplateRenderer _templateRenderer;
public HelloDemo(ITemplateRenderer templateRenderer)
{
_templateRenderer = templateRenderer;
}
public async Task RunAsync()
{
var result = await _templateRenderer.RenderAsync(
"Hello", //the template name
new HelloModel
{
Name = "John"
}
);
Console.WriteLine(result);
}
}
````
* `HelloDemo` is a simple class that injects the `ITemplateRenderer` in its constructor and uses it inside the `RunAsync` method.
* `RenderAsync` gets two fundamental parameters:
* `templateName`: The name of the template to be rendered (`Hello` in this example).
* `model`: An object that is used as the `model` inside the template (a `HelloModel` object in this example).
The result shown below for this example:
````csharp
Hello John :)
````
## Localization
It is possible to localize a template content based on the current culture. There are two types of localization options described in the following sections.
### Inline localization
Inline localization uses the [localization system](Localization.md) to localize texts inside templates.
#### Example: Reset Password Link
Assuming you need to send an email to a user to reset her/his password. Here, the model/template content:
````csharp
namespace ResetMyPasswordModelNamespace
{
public class ResetMyPasswordModel
{
public string Link { get; set; }
public string Name { get; set; }
}
}
````
````html
@inherits Volo.Abp.TextTemplating.Razor.RazorTemplatePageBase<ResetMyPasswordModelNamespace.ResetMyPasswordModel>
<a title="@Localizer["ResetMyPasswordTitle"]" href="@Model.Link">@Localizer["ResetMyPassword", Model.Name]</a>
````
`Localizer` service is used to localize the given key based on the current user culture. You need to define the `ResetMyPassword` key inside your localization file:
````json
"ResetMyPasswordTitle": "Reset my password",
"ResetMyPassword": "Hi {0}, Click here to reset your password"
````
You also need to declare the localization resource to be used with this template, inside your template definition provider class:
````csharp
context.Add(
new TemplateDefinition(
"PasswordReset", //Template name
typeof(DemoResource) //LOCALIZATION RESOURCE
)
.WithRazorEngine()
.WithVirtualFilePath(
"/Demos/PasswordReset/PasswordReset.cshtml", //template content path
isInlineLocalized: true
)
);
````
That's all. When you render this template like that:
````csharp
var result = await _templateRenderer.RenderAsync(
"PasswordReset", //the template name
new PasswordResetModel
{
Name = "john",
Link = "https://abp.io/example-link?userId=123&token=ABC"
}
);
````
You will see the localized result:
````html
<a title="Reset my password" href="https://abp.io/example-link?userId=123&token=ABC">Hi john, Click here to reset your password</a>
````
> If you define the [default localization resource](Localization.md) for your application, then no need to declare the resource type for the template definition.
### Multiple Contents Localization
Instead of a single template that uses the localization system to localize the template, you may want to create different template files for each language. It can be needed if the template should be completely different for a specific culture rather than simple text localizations.
#### Example: Welcome Email Template
Assuming that you want to send a welcome email to your users, but want to define a completely different template based on the user culture.
First, create a folder and put your templates inside it, like `en.cshtml`, `tr.cshtml`... one for each culture you support:
![multiple-file-template-razor](images/multiple-file-template-razor.png)
Then add your template definition in the template definition provider class:
````csharp
context.Add(
new TemplateDefinition(
name: "WelcomeEmail",
defaultCultureName: "en"
)
.WithRazorEngine()
.WithVirtualFilePath(
"/Demos/WelcomeEmail/Templates", //template content folder
isInlineLocalized: false
)
);
````
* Set **default culture name**, so it fallbacks to the default culture if there is no template for the desired culture.
* Specify **the template folder** rather than a single template file.
* Set `isInlineLocalized` to `false` for this case.
That's all, you can render the template for the current culture:
````csharp
var result = await _templateRenderer.RenderAsync("WelcomeEmail");
````
> Skipped the modal for this example to keep it simple, but you can use models as just explained before.
### Specify the Culture
`ITemplateRenderer` service uses the current culture (`CultureInfo.CurrentUICulture`) if not specified. If you need, you can specify the culture as the `cultureName` parameter:
````csharp
var result = await _templateRenderer.RenderAsync(
"WelcomeEmail",
cultureName: "en"
);
````
## Layout Templates
Layout templates are used to create shared layouts among other templates. It is similar to the layout system in the ASP.NET Core MVC / Razor Pages.
### Example: Email HTML Layout Template
For example, you may want to create a single layout for all of your email templates.
First, create a template file just like before:
````html
@inherits Volo.Abp.TextTemplating.Razor.RazorTemplatePageBase
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
</head>
<body>
@Body
</body>
</html>
````
* A layout template must have a `Body` part as a place holder for the rendered child content.
The register your template in the template definition provider:
````csharp
context.Add(
new TemplateDefinition(
"EmailLayout",
isLayout: true //SET isLayout!
)
.WithRazorEngine()
.WithVirtualFilePath(
"/Demos/EmailLayout/EmailLayout.cshtml",
isInlineLocalized: true
)
);
````
Now, you can use this template as the layout of any other template:
````csharp
context.Add(
new TemplateDefinition(
name: "WelcomeEmail",
defaultCultureName: "en",
layout: "EmailLayout" //Set the LAYOUT
)
.WithRazorEngine()
.WithVirtualFilePath(
"/Demos/WelcomeEmail/Templates",
isInlineLocalized: false
)
);
````
## Global Context
ABP passes the `model` that can be used to access to the model inside the template. You can pass more global variables if you need.
An example template content:
````html
@inherits Volo.Abp.TextTemplating.Razor.RazorTemplatePageBase
A global object value: @GlobalContext["myGlobalObject"]
````
This template assumes that that is a `myGlobalObject` object in the template rendering context. You can provide it like shown below:
````csharp
var result = await _templateRenderer.RenderAsync(
"GlobalContextUsage",
globalContext: new Dictionary<string, object>
{
{"myGlobalObject", "TEST VALUE"}
}
);
````
The rendering result will be:
````
A global object value: TEST VALUE
````
## Replacing the Existing Templates
It is possible to replace a template defined by a module that used in your application. In this way, you can customize the templates based on your requirements without changing the module code.
### Option-1: Using the Virtual File System
The [Virtual File System](Virtual-File-System.md) allows you to override any file by placing the same file into the same path in your project.
#### Example: Replace the Standard Email Layout Template
ABP Framework provides an [email sending system](Emailing.md) that internally uses the text templating to render the email content. It defines a standard email layout template in the `/Volo/Abp/Emailing/Templates/Layout.cshtml` path. The unique name of the template is `Abp.StandardEmailTemplates.Layout` and this string is defined as a constant on the `Volo.Abp.Emailing.Templates.StandardEmailTemplates` static class.
Do the following steps to replace the template file with your own;
**1)** Add a new file into the same location (`/Volo/Abp/Emailing/Templates/Layout.cshtml`) in your project:
![replace-email-layout-razor](images/replace-email-layout-razor.png)
**2)** Prepare your email layout template:
````html
@inherits Volo.Abp.TextTemplating.Razor.RazorTemplatePageBase
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
</head>
<body>
<h1>This my header</h1>
@Body
<footer>
This is my footer...
</footer>
</body>
</html>
````
This example simply adds a header and footer to the template and renders the content between them (see the *Layout Templates* section above to understand it).
**3)** Configure the embedded resources in the `.csproj` file
* Add [Microsoft.Extensions.FileProviders.Embedded](https://www.nuget.org/packages/Microsoft.Extensions.FileProviders.Embedded) NuGet package to the project.
* Add `<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>` into the `<PropertyGroup>...</PropertyGroup>` section of your `.csproj` file.
* Add the following code into your `.csproj` file:
````xml
<ItemGroup>
<None Remove="Volo\Abp\Emailing\Templates\*.cshtml" />
<EmbeddedResource Include="Volo\Abp\Emailing\Templates\*.cshtml" />
</ItemGroup>
````
This makes the template files "embedded resource".
**4)** Configure the virtual file system
Configure the `AbpVirtualFileSystemOptions` in the `ConfigureServices` method of your [module](Module-Development-Basics.md) to add the embedded files into the virtual file system:
```csharp
Configure<AbpVirtualFileSystemOptions>(options =>
{
options.FileSets.AddEmbedded<BookStoreDomainModule>();
});
```
`BookStoreDomainModule` should be your module name, in this example code.
> Be sure that your module (directly or indirectly) [depends on](Module-Development-Basics.md) the `AbpEmailingModule`. Because the VFS can override files based on the dependency order.
Now, your template will be used when you want to render the email layout template.
### Option-2: Using the Template Definition Provider
You can create a template definition provider class that gets the email layout template and changes the virtual file path for the template.
**Example: Use the `/MyTemplates/EmailLayout.cshtml` file instead of the standard template**
```csharp
using Volo.Abp.DependencyInjection;
using Volo.Abp.Emailing.Templates;
using Volo.Abp.TextTemplating;
namespace MyProject
{
public class MyTemplateDefinitionProvider
: TemplateDefinitionProvider, ITransientDependency
{
public override void Define(ITemplateDefinitionContext context)
{
var emailLayoutTemplate = context.GetOrNull(StandardEmailTemplates.Layout);
emailLayoutTemplate
.WithVirtualFilePath(
"/MyTemplates/EmailLayout.cshtml",
isInlineLocalized: true
);
}
}
}
```
You should still add the file `/MyTemplates/EmailLayout.cshtml` to the virtual file system as explained before. This approach allows you to locate templates in any folder instead of the folder defined by the depended module.
Beside the template content, you can manipulate the template definition properties, like `DisplayName`, `Layout` or `LocalizationSource`.
## Advanced Features
This section covers some internals and more advanced usages of the text templating system.
### Template Content Provider
`ITemplateRenderer` is used to render the template, which is what you want for most of the cases. However, you can use the `ITemplateContentProvider` to get the raw (not rendered) template contents.
> `ITemplateContentProvider` is internally used by the `ITemplateRenderer` to get the raw template contents.
Example:
````csharp
public class TemplateContentDemo : ITransientDependency
{
private readonly ITemplateContentProvider _templateContentProvider;
public TemplateContentDemo(ITemplateContentProvider templateContentProvider)
{
_templateContentProvider = templateContentProvider;
}
public async Task RunAsync()
{
var result = await _templateContentProvider
.GetContentOrNullAsync("Hello");
Console.WriteLine(result);
}
}
````
The result will be the raw template content:
````
@inherits Volo.Abp.TextTemplating.Razor.RazorTemplatePageBase<HelloModelNamespace.HelloModel>
Hello @Model.Name
````
* `GetContentOrNullAsync` returns `null` if no content defined for the requested template.
* It can get a `cultureName` parameter that is used if template has different files for different cultures (see Multiple Contents Localization section above).
### Template Content Contributor
`ITemplateContentProvider` service uses `ITemplateContentContributor` implementations to find template contents. There is a single pre-implemented content contributor, `VirtualFileTemplateContentContributor`, which gets template contents from the virtual file system as described above.
You can implement the `ITemplateContentContributor` to read raw template contents from another source.
Example:
````csharp
public class MyTemplateContentProvider
: ITemplateContentContributor, ITransientDependency
{
public async Task<string> GetOrNullAsync(TemplateContentContributorContext context)
{
var templateName = context.TemplateDefinition.Name;
//TODO: Try to find content from another source
return null;
}
}
````
Return `null` if your source can not find the content, so `ITemplateContentProvider` fallbacks to the next contributor.
### Template Definition Manager
`ITemplateDefinitionManager` service can be used to get the template definitions (created by the template definition providers).
## See Also
* [The source code of the sample application](https://github.com/abpframework/abp-samples/tree/master/TextTemplateDemo) developed and referred through this document.
* [Localization system](Localization.md).
* [Virtual File System](Virtual-File-System.md).

526
docs/en/Text-Templating-Scriban.md

@ -0,0 +1,526 @@
# Razor Integration
## Installation
It is suggested to use the [ABP CLI](CLI.md) to install this package.
### Using the ABP CLI
Open a command line window in the folder of the project (.csproj file) and type the following command:
````bash
abp add-package Volo.Abp.TextTemplating.Scriban
````
### Manual Installation
If you want to manually install;
1. Add the [Volo.Abp.TextTemplating.Scriban](https://www.nuget.org/packages/Volo.Abp.TextTemplating.Scriban) NuGet package to your project:
````
Install-Package Volo.Abp.TextTemplating.Scriban
````
2. Add the `AbpTextTemplatingScribanModule` to the dependency list of your module:
````csharp
[DependsOn(
//...other dependencies
typeof(AbpTextTemplatingScribanModule) //Add the new module dependency
)]
public class YourModule : AbpModule
{
}
````
## Defining Templates
Before rendering a template, you should define it. Create a class inheriting from the `TemplateDefinitionProvider` base class:
````csharp
public class DemoTemplateDefinitionProvider : TemplateDefinitionProvider
{
public override void Define(ITemplateDefinitionContext context)
{
context.Add(
new TemplateDefinition("Hello") //template name: "Hello"
.WithVirtualFilePath(
"/Demos/Hello/Hello.tpl", //template content path
isInlineLocalized: true
)
.WithScribanEngine()
);
}
}
````
* `context` object is used to add new templates or get the templates defined by depended modules. Used `context.Add(...)` to define a new template.
* `TemplateDefinition` is the class represents a template. Each template must have a unique name (that will be used while you are rendering the template).
* `/Demos/Hello/Hello.tpl` is the path of the template file.
* `isInlineLocalized` is used to declare if you are using a single template for all languages (`true`) or different templates for each language (`false`). See the Localization section below for more.
* `WithRenderEngine` method is used to set the render engine of the template.
### The Template Content
`WithVirtualFilePath` indicates that we are using the [Virtual File System](Virtual-File-System.md) to store the template content. Create a `Hello.tpl` file inside your project and mark it as "**embedded resource**" on the properties window:
![hello-template](images/hello-template.png)
Example `Hello.tpl` content is shown below:
````
Hello {%{{{model.name}}}%} :)
````
The [Virtual File System](Virtual-File-System.md) requires to add your files in the `ConfigureServices` method of your [module](Module-Development-Basics.md) class:
````csharp
Configure<AbpVirtualFileSystemOptions>(options =>
{
options.FileSets.AddEmbedded<TextTemplateDemoModule>("TextTemplateDemo");
});
````
* `TextTemplateDemoModule` is the module class that you define your template in.
* `TextTemplateDemo` is the root namespace of your project.
## Rendering the Template
`ITemplateRenderer` service is used to render a template content.
### Example: Rendering a Simple Template
````csharp
public class HelloDemo : ITransientDependency
{
private readonly ITemplateRenderer _templateRenderer;
public HelloDemo(ITemplateRenderer templateRenderer)
{
_templateRenderer = templateRenderer;
}
public async Task RunAsync()
{
var result = await _templateRenderer.RenderAsync(
"Hello", //the template name
new HelloModel
{
Name = "John"
}
);
Console.WriteLine(result);
}
}
````
* `HelloDemo` is a simple class that injects the `ITemplateRenderer` in its constructor and uses it inside the `RunAsync` method.
* `RenderAsync` gets two fundamental parameters:
* `templateName`: The name of the template to be rendered (`Hello` in this example).
* `model`: An object that is used as the `model` inside the template (a `HelloModel` object in this example).
The result shown below for this example:
````csharp
Hello John :)
````
### Anonymous Model
While it is suggested to create model classes for the templates, it would be practical (and possible) to use anonymous objects for simple cases:
````csharp
var result = await _templateRenderer.RenderAsync(
"Hello",
new
{
Name = "John"
}
);
````
In this case, we haven't created a model class, but created an anonymous object as the model.
### PascalCase vs snake_case
PascalCase property names (like `UserName`) is used as snake_case (like `user_name`) in the templates.
## Localization
It is possible to localize a template content based on the current culture. There are two types of localization options described in the following sections.
### Inline localization
Inline localization uses the [localization system](Localization.md) to localize texts inside templates.
#### Example: Reset Password Link
Assuming you need to send an email to a user to reset her/his password. Here, the template content:
````
<a title="{%{{{L "ResetMyPasswordTitle"}}}%}" href="{%{{{model.link}}}%}">{%{{{L "ResetMyPassword" model.name}}}%}</a>
````
`L` function is used to localize the given key based on the current user culture. You need to define the `ResetMyPassword` key inside your localization file:
````json
"ResetMyPasswordTitle": "Reset my password",
"ResetMyPassword": "Hi {0}, Click here to reset your password"
````
You also need to declare the localization resource to be used with this template, inside your template definition provider class:
````csharp
context.Add(
new TemplateDefinition(
"PasswordReset", //Template name
typeof(DemoResource) //LOCALIZATION RESOURCE
)
.WithScribanEngine()
.WithVirtualFilePath(
"/Demos/PasswordReset/PasswordReset.tpl", //template content path
isInlineLocalized: true
)
);
````
That's all. When you render this template like that:
````csharp
var result = await _templateRenderer.RenderAsync(
"PasswordReset", //the template name
new PasswordResetModel
{
Name = "john",
Link = "https://abp.io/example-link?userId=123&token=ABC"
}
);
````
You will see the localized result:
````csharp
<a title="Reset my password" href="https://abp.io/example-link?userId=123&token=ABC">Hi john, Click here to reset your password</a>
````
> If you define the [default localization resource](Localization.md) for your application, then no need to declare the resource type for the template definition.
### Multiple Contents Localization
Instead of a single template that uses the localization system to localize the template, you may want to create different template files for each language. It can be needed if the template should be completely different for a specific culture rather than simple text localizations.
#### Example: Welcome Email Template
Assuming that you want to send a welcome email to your users, but want to define a completely different template based on the user culture.
First, create a folder and put your templates inside it, like `en.tpl`, `tr.tpl`... one for each culture you support:
![multiple-file-template](images/multiple-file-template.png)
Then add your template definition in the template definition provider class:
````csharp
context.Add(
new TemplateDefinition(
name: "WelcomeEmail",
defaultCultureName: "en"
)
.WithScribanEngine()
.WithVirtualFilePath(
"/Demos/WelcomeEmail/Templates", //template content folder
isInlineLocalized: false
)
);
````
* Set **default culture name**, so it fallbacks to the default culture if there is no template for the desired culture.
* Specify **the template folder** rather than a single template file.
* Set `isInlineLocalized` to `false` for this case.
That's all, you can render the template for the current culture:
````csharp
var result = await _templateRenderer.RenderAsync("WelcomeEmail");
````
> Skipped the modal for this example to keep it simple, but you can use models as just explained before.
### Specify the Culture
`ITemplateRenderer` service uses the current culture (`CultureInfo.CurrentUICulture`) if not specified. If you need, you can specify the culture as the `cultureName` parameter:
````csharp
var result = await _templateRenderer.RenderAsync(
"WelcomeEmail",
cultureName: "en"
);
````
## Layout Templates
Layout templates are used to create shared layouts among other templates. It is similar to the layout system in the ASP.NET Core MVC / Razor Pages.
### Example: Email HTML Layout Template
For example, you may want to create a single layout for all of your email templates.
First, create a template file just like before:
````xml
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
</head>
<body>
{%{{{content}}}%}
</body>
</html>
````
* A layout template must have a **{%{{{content}}}%}** part as a place holder for the rendered child content.
The register your template in the template definition provider:
````csharp
context.Add(
new TemplateDefinition(
"EmailLayout",
isLayout: true //SET isLayout!
)
.WithScribanEngine()
.WithVirtualFilePath(
"/Demos/EmailLayout/EmailLayout.tpl",
isInlineLocalized: true
)
);
````
Now, you can use this template as the layout of any other template:
````csharp
context.Add(
new TemplateDefinition(
name: "WelcomeEmail",
defaultCultureName: "en",
layout: "EmailLayout" //Set the LAYOUT
)
.WithScribanEngine()
.WithVirtualFilePath(
"/Demos/WelcomeEmail/Templates",
isInlineLocalized: false
)
);
````
## Global Context
ABP passes the `model` that can be used to access to the model inside the template. You can pass more global variables if you need.
An example template content:
````
A global object value: {%{{{myGlobalObject}}}%}
````
This template assumes that that is a `myGlobalObject` object in the template rendering context. You can provide it like shown below:
````csharp
var result = await _templateRenderer.RenderAsync(
"GlobalContextUsage",
globalContext: new Dictionary<string, object>
{
{"myGlobalObject", "TEST VALUE"}
}
);
````
The rendering result will be:
````
A global object value: TEST VALUE
````
## Replacing the Existing Templates
It is possible to replace a template defined by a module that used in your application. In this way, you can customize the templates based on your requirements without changing the module code.
### Option-1: Using the Virtual File System
The [Virtual File System](Virtual-File-System.md) allows you to override any file by placing the same file into the same path in your project.
#### Example: Replace the Standard Email Layout Template
ABP Framework provides an [email sending system](Emailing.md) that internally uses the text templating to render the email content. It defines a standard email layout template in the `/Volo/Abp/Emailing/Templates/Layout.tpl` path. The unique name of the template is `Abp.StandardEmailTemplates.Layout` and this string is defined as a constant on the `Volo.Abp.Emailing.Templates.StandardEmailTemplates` static class.
Do the following steps to replace the template file with your own;
**1)** Add a new file into the same location (`/Volo/Abp/Emailing/Templates/Layout.tpl`) in your project:
![replace-email-layout](images/replace-email-layout.png)
**2)** Prepare your email layout template:
````html
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
</head>
<body>
<h1>This my header</h1>
{%{{{content}}}%}
<footer>
This is my footer...
</footer>
</body>
</html>
````
This example simply adds a header and footer to the template and renders the content between them (see the *Layout Templates* section above to understand it).
**3)** Configure the embedded resources in the `.csproj` file
* Add [Microsoft.Extensions.FileProviders.Embedded](https://www.nuget.org/packages/Microsoft.Extensions.FileProviders.Embedded) NuGet package to the project.
* Add `<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>` into the `<PropertyGroup>...</PropertyGroup>` section of your `.csproj` file.
* Add the following code into your `.csproj` file:
````xml
<ItemGroup>
<None Remove="Volo\Abp\Emailing\Templates\*.tpl" />
<EmbeddedResource Include="Volo\Abp\Emailing\Templates\*.tpl" />
</ItemGroup>
````
This makes the template files "embedded resource".
**4)** Configure the virtual file system
Configure the `AbpVirtualFileSystemOptions` in the `ConfigureServices` method of your [module](Module-Development-Basics.md) to add the embedded files into the virtual file system:
```csharp
Configure<AbpVirtualFileSystemOptions>(options =>
{
options.FileSets.AddEmbedded<BookStoreDomainModule>();
});
```
`BookStoreDomainModule` should be your module name, in this example code.
> Be sure that your module (directly or indirectly) [depends on](Module-Development-Basics.md) the `AbpEmailingModule`. Because the VFS can override files based on the dependency order.
Now, your template will be used when you want to render the email layout template.
### Option-2: Using the Template Definition Provider
You can create a template definition provider class that gets the email layout template and changes the virtual file path for the template.
**Example: Use the `/MyTemplates/EmailLayout.tpl` file instead of the standard template**
```csharp
using Volo.Abp.DependencyInjection;
using Volo.Abp.Emailing.Templates;
using Volo.Abp.TextTemplating;
namespace MyProject
{
public class MyTemplateDefinitionProvider
: TemplateDefinitionProvider, ITransientDependency
{
public override void Define(ITemplateDefinitionContext context)
{
var emailLayoutTemplate = context.GetOrNull(StandardEmailTemplates.Layout);
emailLayoutTemplate
.WithVirtualFilePath(
"/MyTemplates/EmailLayout.tpl",
isInlineLocalized: true
);
}
}
}
```
You should still add the file `/MyTemplates/EmailLayout.tpl` to the virtual file system as explained before. This approach allows you to locate templates in any folder instead of the folder defined by the depended module.
Beside the template content, you can manipulate the template definition properties, like `DisplayName`, `Layout` or `LocalizationSource`.
## Advanced Features
This section covers some internals and more advanced usages of the text templating system.
### Template Content Provider
`ITemplateRenderer` is used to render the template, which is what you want for most of the cases. However, you can use the `ITemplateContentProvider` to get the raw (not rendered) template contents.
> `ITemplateContentProvider` is internally used by the `ITemplateRenderer` to get the raw template contents.
Example:
````csharp
public class TemplateContentDemo : ITransientDependency
{
private readonly ITemplateContentProvider _templateContentProvider;
public TemplateContentDemo(ITemplateContentProvider templateContentProvider)
{
_templateContentProvider = templateContentProvider;
}
public async Task RunAsync()
{
var result = await _templateContentProvider
.GetContentOrNullAsync("Hello");
Console.WriteLine(result);
}
}
````
The result will be the raw template content:
````
Hello {%{{{model.name}}}%} :)
````
* `GetContentOrNullAsync` returns `null` if no content defined for the requested template.
* It can get a `cultureName` parameter that is used if template has different files for different cultures (see Multiple Contents Localization section above).
### Template Content Contributor
`ITemplateContentProvider` service uses `ITemplateContentContributor` implementations to find template contents. There is a single pre-implemented content contributor, `VirtualFileTemplateContentContributor`, which gets template contents from the virtual file system as described above.
You can implement the `ITemplateContentContributor` to read raw template contents from another source.
Example:
````csharp
public class MyTemplateContentProvider
: ITemplateContentContributor, ITransientDependency
{
public async Task<string> GetOrNullAsync(TemplateContentContributorContext context)
{
var templateName = context.TemplateDefinition.Name;
//TODO: Try to find content from another source
return null;
}
}
````
Return `null` if your source can not find the content, so `ITemplateContentProvider` fallbacks to the next contributor.
### Template Definition Manager
`ITemplateDefinitionManager` service can be used to get the template definitions (created by the template definition providers).
## See Also
* [The source code of the sample application](https://github.com/abpframework/abp-samples/tree/master/TextTemplateDemo) developed and referred through this document.
* [Localization system](Localization.md).
* [Virtual File System](Virtual-File-System.md).

542
docs/en/Text-Templating.md

@ -12,552 +12,26 @@ It is very similar to an ASP.NET Core Razor View (or Page):
You can use the rendered output for any purpose, like sending emails or preparing some reports.
### Example
Here, a simple template:
````
Hello {%{{{model.name}}}%} :)
````
You can define a class with a `Name` property to render this template:
````csharp
public class HelloModel
{
public string Name { get; set; }
}
````
If you render the template with a `HelloModel` with the `Name` is `John`, the rendered output is will be:
````
Hello John :)
````
Template rendering engine is very powerful;
* It is based on the [Scriban](https://github.com/lunet-io/scriban) library, so it supports **conditional logics**, **loops** and much more.
* It supports **conditional logics**, **loops** and much more.
* Template content **can be localized**.
* You can define **layout templates** to be used as the layout while rendering other templates.
* You can pass arbitrary objects to the template context (beside the model) for advanced scenarios.
### Source Code
Get [the source code of the sample application](https://github.com/abpframework/abp-samples/tree/master/TextTemplateDemo) developed and referred through this document.
## Installation
It is suggested to use the [ABP CLI](CLI.md) to install this package.
### Using the ABP CLI
Open a command line window in the folder of the project (.csproj file) and type the following command:
````bash
abp add-package Volo.Abp.TextTemplating
````
### Manual Installation
If you want to manually install;
1. Add the [Volo.Abp.TextTemplating](https://www.nuget.org/packages/Volo.Abp.TextTemplating) NuGet package to your project:
````
Install-Package Volo.Abp.TextTemplating
````
2. Add the `AbpTextTemplatingModule` to the dependency list of your module:
````csharp
[DependsOn(
//...other dependencies
typeof(AbpTextTemplatingModule) //Add the new module dependency
)]
public class YourModule : AbpModule
{
}
````
## Defining Templates
Before rendering a template, you should define it. Create a class inheriting from the `TemplateDefinitionProvider` base class:
````csharp
public class DemoTemplateDefinitionProvider : TemplateDefinitionProvider
{
public override void Define(ITemplateDefinitionContext context)
{
context.Add(
new TemplateDefinition("Hello") //template name: "Hello"
.WithVirtualFilePath(
"/Demos/Hello/Hello.tpl", //template content path
isInlineLocalized: true
)
);
}
}
````
* `context` object is used to add new templates or get the templates defined by depended modules. Used `context.Add(...)` to define a new template.
* `TemplateDefinition` is the class represents a template. Each template must have a unique name (that will be used while you are rendering the template).
* `/Demos/Hello/Hello.tpl` is the path of the template file.
* `isInlineLocalized` is used to declare if you are using a single template for all languages (`true`) or different templates for each language (`false`). See the Localization section below for more.
### The Template Content
`WithVirtualFilePath` indicates that we are using the [Virtual File System](Virtual-File-System.md) to store the template content. Create a `Hello.tpl` file inside your project and mark it as "**embedded resource**" on the properties window:
![hello-template](images/hello-template.png)
Example `Hello.tpl` content is shown below:
````
Hello {%{{{model.name}}}%} :)
````
The [Virtual File System](Virtual-File-System.md) requires to add your files in the `ConfigureServices` method of your [module](Module-Development-Basics.md) class:
````csharp
Configure<AbpVirtualFileSystemOptions>(options =>
{
options.FileSets.AddEmbedded<TextTemplateDemoModule>("TextTemplateDemo");
});
````
* `TextTemplateDemoModule` is the module class that you define your template in.
* `TextTemplateDemo` is the root namespace of your project.
## Rendering the Template
`ITemplateRenderer` service is used to render a template content.
### Example: Rendering a Simple Template
````csharp
public class HelloDemo : ITransientDependency
{
private readonly ITemplateRenderer _templateRenderer;
public HelloDemo(ITemplateRenderer templateRenderer)
{
_templateRenderer = templateRenderer;
}
public async Task RunAsync()
{
var result = await _templateRenderer.RenderAsync(
"Hello", //the template name
new HelloModel
{
Name = "John"
}
);
Console.WriteLine(result);
}
}
````
* `HelloDemo` is a simple class that injects the `ITemplateRenderer` in its constructor and uses it inside the `RunAsync` method.
* `RenderAsync` gets two fundamental parameters:
* `templateName`: The name of the template to be rendered (`Hello` in this example).
* `model`: An object that is used as the `model` inside the template (a `HelloModel` object in this example).
The result shown below for this example:
````csharp
Hello John :)
````
### Anonymous Model
While it is suggested to create model classes for the templates, it would be practical (and possible) to use anonymous objects for simple cases:
````csharp
var result = await _templateRenderer.RenderAsync(
"Hello",
new
{
Name = "John"
}
);
````
In this case, we haven't created a model class, but created an anonymous object as the model.
### PascalCase vs snake_case
PascalCase property names (like `UserName`) is used as snake_case (like `user_name`) in the templates.
## Localization
It is possible to localize a template content based on the current culture. There are two types of localization options described in the following sections.
### Inline localization
Inline localization uses the [localization system](Localization.md) to localize texts inside templates.
#### Example: Reset Password Link
Assuming you need to send an email to a user to reset her/his password. Here, the template content:
````
<a title="{%{{{L "ResetMyPasswordTitle"}}}%}" href="{%{{{model.link}}}%}">{%{{{L "ResetMyPassword" model.name}}}%}</a>
````
`L` function is used to localize the given key based on the current user culture. You need to define the `ResetMyPassword` key inside your localization file:
````json
"ResetMyPasswordTitle": "Reset my password",
"ResetMyPassword": "Hi {0}, Click here to reset your password"
````
You also need to declare the localization resource to be used with this template, inside your template definition provider class:
````csharp
context.Add(
new TemplateDefinition(
"PasswordReset", //Template name
typeof(DemoResource) //LOCALIZATION RESOURCE
).WithVirtualFilePath(
"/Demos/PasswordReset/PasswordReset.tpl", //template content path
isInlineLocalized: true
)
);
````
That's all. When you render this template like that:
````csharp
var result = await _templateRenderer.RenderAsync(
"PasswordReset", //the template name
new PasswordResetModel
{
Name = "john",
Link = "https://abp.io/example-link?userId=123&token=ABC"
}
);
````
You will see the localized result:
````csharp
<a title="Reset my password" href="https://abp.io/example-link?userId=123&token=ABC">Hi john, Click here to reset your password</a>
````
> If you define the [default localization resource](Localization.md) for your application, then no need to declare the resource type for the template definition.
### Multiple Contents Localization
Instead of a single template that uses the localization system to localize the template, you may want to create different template files for each language. It can be needed if the template should be completely different for a specific culture rather than simple text localizations.
#### Example: Welcome Email Template
Assuming that you want to send a welcome email to your users, but want to define a completely different template based on the user culture.
First, create a folder and put your templates inside it, like `en.tpl`, `tr.tpl`... one for each culture you support:
![multiple-file-template](images/multiple-file-template.png)
Then add your template definition in the template definition provider class:
````csharp
context.Add(
new TemplateDefinition(
name: "WelcomeEmail",
defaultCultureName: "en"
)
.WithVirtualFilePath(
"/Demos/WelcomeEmail/Templates", //template content folder
isInlineLocalized: false
)
);
````
* Set **default culture name**, so it fallbacks to the default culture if there is no template for the desired culture.
* Specify **the template folder** rather than a single template file.
* Set `isInlineLocalized` to `false` for this case.
That's all, you can render the template for the current culture:
````csharp
var result = await _templateRenderer.RenderAsync("WelcomeEmail");
````
ABP Framework provides two templating engines;
> Skipped the modal for this example to keep it simple, but you can use models as just explained before.
* **[Razor](Text-Templating-Razor.md)**
* **[Scriban](Text-Templating-Scriban.md)**
### Specify the Culture
You can use different template engines in the same application, or even create a new custom template engine.
`ITemplateRenderer` service uses the current culture (`CultureInfo.CurrentUICulture`) if not specified. If you need, you can specify the culture as the `cultureName` parameter:
## Source Code
````csharp
var result = await _templateRenderer.RenderAsync(
"WelcomeEmail",
cultureName: "en"
);
````
## Layout Templates
Layout templates are used to create shared layouts among other templates. It is similar to the layout system in the ASP.NET Core MVC / Razor Pages.
### Example: Email HTML Layout Template
For example, you may want to create a single layout for all of your email templates.
First, create a template file just like before:
````xml
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
</head>
<body>
{%{{{content}}}%}
</body>
</html>
````
* A layout template must have a **{%{{{content}}}%}** part as a place holder for the rendered child content.
The register your template in the template definition provider:
````csharp
context.Add(
new TemplateDefinition(
"EmailLayout",
isLayout: true //SET isLayout!
).WithVirtualFilePath(
"/Demos/EmailLayout/EmailLayout.tpl",
isInlineLocalized: true
)
);
````
Now, you can use this template as the layout of any other template:
````csharp
context.Add(
new TemplateDefinition(
name: "WelcomeEmail",
defaultCultureName: "en",
layout: "EmailLayout" //Set the LAYOUT
).WithVirtualFilePath(
"/Demos/WelcomeEmail/Templates",
isInlineLocalized: false
)
);
````
## Global Context
ABP passes the `model` that can be used to access to the model inside the template. You can pass more global variables if you need.
An example template content:
````
A global object value: {%{{{myGlobalObject}}}%}
````
This template assumes that that is a `myGlobalObject` object in the template rendering context. You can provide it like shown below:
````csharp
var result = await _templateRenderer.RenderAsync(
"GlobalContextUsage",
globalContext: new Dictionary<string, object>
{
{"myGlobalObject", "TEST VALUE"}
}
);
````
The rendering result will be:
````
A global object value: TEST VALUE
````
## Replacing the Existing Templates
It is possible to replace a template defined by a module that used in your application. In this way, you can customize the templates based on your requirements without changing the module code.
### Option-1: Using the Virtual File System
The [Virtual File System](Virtual-File-System.md) allows you to override any file by placing the same file into the same path in your project.
#### Example: Replace the Standard Email Layout Template
ABP Framework provides an [email sending system](Emailing.md) that internally uses the text templating to render the email content. It defines a standard email layout template in the `/Volo/Abp/Emailing/Templates/Layout.tpl` path. The unique name of the template is `Abp.StandardEmailTemplates.Layout` and this string is defined as a constant on the `Volo.Abp.Emailing.Templates.StandardEmailTemplates` static class.
Do the following steps to replace the template file with your own;
**1)** Add a new file into the same location (`/Volo/Abp/Emailing/Templates/Layout.tpl`) in your project:
![replace-email-layout](images/replace-email-layout.png)
**2)** Prepare your email layout template:
````html
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
</head>
<body>
<h1>This my header</h1>
{%{{{content}}}%}
<footer>
This is my footer...
</footer>
</body>
</html>
````
This example simply adds a header and footer to the template and renders the content between them (see the *Layout Templates* section above to understand it).
**3)** Configure the embedded resources in the `.csproj` file
* Add [Microsoft.Extensions.FileProviders.Embedded](https://www.nuget.org/packages/Microsoft.Extensions.FileProviders.Embedded) NuGet package to the project.
* Add `<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>` into the `<PropertyGroup>...</PropertyGroup>` section of your `.csproj` file.
* Add the following code into your `.csproj` file:
````xml
<ItemGroup>
<None Remove="Volo\Abp\Emailing\Templates\*.tpl" />
<EmbeddedResource Include="Volo\Abp\Emailing\Templates\*.tpl" />
</ItemGroup>
````
This makes the template files "embedded resource".
**4)** Configure the virtual file system
Configure the `AbpVirtualFileSystemOptions` in the `ConfigureServices` method of your [module](Module-Development-Basics.md) to add the embedded files into the virtual file system:
```csharp
Configure<AbpVirtualFileSystemOptions>(options =>
{
options.FileSets.AddEmbedded<BookStoreDomainModule>();
});
```
`BookStoreDomainModule` should be your module name, in this example code.
> Be sure that your module (directly or indirectly) [depends on](Module-Development-Basics.md) the `AbpEmailingModule`. Because the VFS can override files based on the dependency order.
Now, your template will be used when you want to render the email layout template.
### Option-2: Using the Template Definition Provider
You can create a template definition provider class that gets the email layout template and changes the virtual file path for the template.
**Example: Use the `/MyTemplates/EmailLayout.tpl` file instead of the standard template**
```csharp
using Volo.Abp.DependencyInjection;
using Volo.Abp.Emailing.Templates;
using Volo.Abp.TextTemplating;
namespace MyProject
{
public class MyTemplateDefinitionProvider
: TemplateDefinitionProvider, ITransientDependency
{
public override void Define(ITemplateDefinitionContext context)
{
var emailLayoutTemplate = context.GetOrNull(StandardEmailTemplates.Layout);
emailLayoutTemplate
.WithVirtualFilePath(
"/MyTemplates/EmailLayout.tpl",
isInlineLocalized: true
);
}
}
}
```
You should still add the file `/MyTemplates/EmailLayout.tpl` to the virtual file system as explained before. This approach allows you to locate templates in any folder instead of the folder defined by the depended module.
Beside the template content, you can manipulate the template definition properties, like `DisplayName`, `Layout` or `LocalizationSource`.
## Advanced Features
This section covers some internals and more advanced usages of the text templating system.
### Template Content Provider
`ITemplateRenderer` is used to render the template, which is what you want for most of the cases. However, you can use the `ITemplateContentProvider` to get the raw (not rendered) template contents.
> `ITemplateContentProvider` is internally used by the `ITemplateRenderer` to get the raw template contents.
Example:
````csharp
public class TemplateContentDemo : ITransientDependency
{
private readonly ITemplateContentProvider _templateContentProvider;
public TemplateContentDemo(ITemplateContentProvider templateContentProvider)
{
_templateContentProvider = templateContentProvider;
}
public async Task RunAsync()
{
var result = await _templateContentProvider
.GetContentOrNullAsync("Hello");
Console.WriteLine(result);
}
}
````
The result will be the raw template content:
````
Hello {%{{{model.name}}}%} :)
````
* `GetContentOrNullAsync` returns `null` if no content defined for the requested template.
* It can get a `cultureName` parameter that is used if template has different files for different cultures (see Multiple Contents Localization section above).
### Template Content Contributor
`ITemplateContentProvider` service uses `ITemplateContentContributor` implementations to find template contents. There is a single pre-implemented content contributor, `VirtualFileTemplateContentContributor`, which gets template contents from the virtual file system as described above.
You can implement the `ITemplateContentContributor` to read raw template contents from another source.
Example:
````csharp
public class MyTemplateContentProvider
: ITemplateContentContributor, ITransientDependency
{
public async Task<string> GetOrNullAsync(TemplateContentContributorContext context)
{
var templateName = context.TemplateDefinition.Name;
//TODO: Try to find content from another source
return null;
}
}
````
Return `null` if your source can not find the content, so `ITemplateContentProvider` fallbacks to the next contributor.
### Template Definition Manager
`ITemplateDefinitionManager` service can be used to get the template definitions (created by the template definition providers).
Get [the source code of the sample application](https://github.com/abpframework/abp-samples/tree/master/TextTemplateDemo) developed and referred through this document.
## See Also
* [The source code of the sample application](https://github.com/abpframework/abp-samples/tree/master/TextTemplateDemo) developed and referred through this document.
* [Localization system](Localization.md).
* [Virtual File System](Virtual-File-System.md).
* [Virtual File System](Virtual-File-System.md).

19
docs/en/UI/AspNetCore/Navigation-Menu.md

@ -104,7 +104,6 @@ There are more options of a menu item (the constructor of the `ApplicationMenuIt
* `target` (`string`): Target of the menu item. Can be `null` (default), "\_*blank*", "\_*self*", "\_*parent*", "\_*top*" or a frame name for web applications.
* `elementId` (`string`): Can be used to render the element with a specific HTML `id` attribute.
* `cssClass` (`string`): Additional string classes for the menu item.
* `RequiredPermissionName` (`string`): The required permission name, this menu item will be removed if this permission is not granted.
### Authorization
@ -121,21 +120,21 @@ if (await context.IsGrantedAsync("MyPermissionName"))
}
````
For the authorization, you can use `RequiredPermissionName` as a shortcut. It is also more performant, ABP optimizes the permission check for all the items.
For the authorization, you can use `RequirePermissions` extension method as a shortcut. It is also more performant, ABP optimizes the permission check for all the items.
````csharp
context.Menu.AddItem(
new ApplicationMenuItem("MyProject.Crm", l["Menu:CRM"])
.AddItem(new ApplicationMenuItem(
name: "MyProject.Crm.Customers",
displayName: l["Menu:Customers"],
url: "/crm/customers",
requiredPermissionName: "MyProject.Crm.Customers")
name: "MyProject.Crm.Customers",
displayName: l["Menu:Customers"],
url: "/crm/customers")
.RequirePermissions("MyProject.Crm.Customers")
).AddItem(new ApplicationMenuItem(
name: "MyProject.Crm.Orders",
displayName: l["Menu:Orders"],
url: "/crm/orders",
requiredPermissionName: "MyProject.Crm.Orders")
name: "MyProject.Crm.Orders",
displayName: l["Menu:Orders"],
url: "/crm/orders")
.RequirePermissions("MyProject.Crm.Orders")
)
);
````

4
docs/en/UI/AspNetCore/Toolbars.md

@ -61,10 +61,10 @@ if (await context.IsGrantedAsync("MyPermissionName"))
}
````
You can use `RequiredPermissionName` as a shortcut. It is also more performant, ABP optimizes the permission check for all the items.
You can use `RequirePermissions` extension method as a shortcut. It is also more performant, ABP optimizes the permission check for all the items.
````csharp
context.Toolbar.Items.Insert(0, new ToolbarItem(typeof(NotificationViewComponent), requiredPermissionName: "MyPermissionName"));
context.Toolbar.Items.Insert(0, new ToolbarItem(typeof(NotificationViewComponent)).RequirePermissions("MyPermissionName"));
````
This class adds the `NotificationViewComponent` as the first item in the `Main` toolbar.

218
docs/en/docs-nav.json

@ -9,7 +9,21 @@
"items": [
{
"text": "Web Application",
"path": "Getting-Started.md"
"path": "Getting-Started.md",
"items": [
{
"text": "1: Setup Your Development Environment",
"path": "Getting-Started-Setup-Environment.md"
},
{
"text": "2: Creating a New Solution",
"path": "Getting-Started-Create-Solution.md"
},
{
"text": "3: Running the Solution",
"path": "Getting-Started-Running-Solution.md"
}
]
},
{
"text": "Console Application",
@ -85,7 +99,17 @@
},
{
"text": "CLI",
"path": "CLI.md"
"path": "CLI.md",
"items": [
{
"text": "Build Command",
"path": "CLI-BuildCommand.md"
},
{
"text": "Create Solution Sample Commands",
"path": "CLI-New-Command-Samples.md"
}
]
},
{
"text": "Startup Templates",
@ -350,7 +374,17 @@
},
{
"text": "Text Templating",
"path": "Text-Templating.md"
"path": "Text-Templating.md",
"items": [
{
"text": "Razor Integration",
"path": "Text-Templating-Razor.md"
},
{
"text": "Scriban Integration",
"path": "Text-Templating-Scriban.md"
}
]
},
{
"text": "Timing",
@ -363,6 +397,10 @@
{
"text": "Cancellation Token Provider",
"path": "Cancellation-Token-Provider.md"
},
{
"text": "Simple State Checker",
"path": "SimpleStateChecker.md"
}
]
},
@ -384,9 +422,70 @@
"text": "Customizing/Extending Modules",
"path": "Customizing-Application-Modules-Guide.md"
},
{
"text": "Customizing/Extending Entities",
"path": "Customizing-Application-Modules-Extending-Entities.md"
},
{
"text": "Customizing/Overriding Services",
"path": "Customizing-Application-Modules-Overriding-Services.md"
},
{
"text": "Module Entity Extensions",
"path": "Module-Entity-Extensions.md"
},
{
"text": "Best Practices",
"path": "Best-Practices/Index.md"
"path": "Best-Practices/Index.md",
"items": [
{
"text": "Module Architecture",
"path": "Best-Practices/Module-Architecture.md"
},
{
"text": "Domain Layer",
"items": [
{
"text": "Entities",
"path": "Best-Practices/Entities.md"
},
{
"text": "Repositories",
"path": "Best-Practices/Repositories.md"
},
{
"text": "Domain Services",
"path": "Best-Practices/Domain-Services.md"
}
]
},
{
"text": "Application Layer",
"items": [
{
"text": "Application Services",
"path": "Best-Practices/Application-Services.md"
},
{
"text": "Data Transfer Objects",
"path": "Best-Practices/Data-Transfer-Objects.md"
}
]
},
{
"text": "Data Access",
"items": [
{
"text": "Entity Framework Core Integration",
"path": "Best-Practices/Entity-Framework-Core-Integration.md"
},
{
"text": "MongoDB Integration",
"path": "Best-Practices/MongoDB-Integration.md"
}
]
}
]
}
]
},
@ -404,6 +503,10 @@
"text": "Entities & Aggregate Roots",
"path": "Entities.md"
},
{
"text": "Multi Lingual Entities",
"path": "Multi-Lingual-Entities.md"
},
{
"text": "Value Objects",
"path": "Value-Objects.md"
@ -631,6 +734,18 @@
{
"text": "Customize/Extend the UI",
"path": "UI/AspNetCore/Customization-User-Interface.md"
},
{
"text": "Entity Action Extensions",
"path": "UI/AspNetCore/Entity-Action-Extensions.md"
},
{
"text": "Data Table Column Extensions",
"path": "UI/AspNetCore/Data-Table-Column-Extensions.md"
},
{
"text": "Page Toolbar Extensions",
"path": "UI/AspNetCore/Page-Toolbar-Extensions.md"
}
]
},
@ -817,6 +932,10 @@
{
"text": "Multi Tenancy",
"path": "UI/Angular/Multi-Tenancy.md"
},
{
"text": "Account Module",
"path": "UI/Angular/Account-Module"
}
]
},
@ -870,12 +989,36 @@
{
"text": "Ellipsis",
"path": "UI/Angular/Ellipsis-Directive.md"
},
{
"text": "Context Strategy",
"path": "UI/Angular/Context-Strategy.md"
},
{
"text": "Cross Origin Strategy",
"path": "UI/Angular/Cross-Origin-Strategy.md"
},
{
"text": "Dom Strategy",
"path": "UI/Angular/Dom-Strategy.md"
},
{
"text": "Container Strategy",
"path": "UI/Angular/Container-Strategy.md"
},
{
"text": "Content Security Strategy",
"path": "UI/Angular/Content-Security-Strategy.md"
}
]
},
{
"text": "Customization",
"items": [
{
"text": "Customization Guide",
"path": "UI/Angular/Customization-User-Interface.md"
},
{
"text": "Modifying the Menu",
"path": "UI/Angular/Modifying-the-Menu.md"
@ -934,6 +1077,10 @@
{
"text": "Common",
"items": [
{
"text": "Overriding the User Interface",
"path": "Customizing-Application-Modules-Overriding-User-Interface.md"
},
{
"text": "Utilities",
"items": [
@ -976,7 +1123,17 @@
},
{
"text": "To Oracle",
"path": "Entity-Framework-Core-Oracle.md"
"path": "Entity-Framework-Core-Oracle.md",
"items": [
{
"text": "Oracle",
"path": "Entity-Framework-Core-Oracle-Official.md"
},
{
"text": "Oracle Devart",
"path": "Entity-Framework-Core-Oracle-Devart.md"
}
]
},
{
"text": "To SQLite",
@ -1104,7 +1261,56 @@
},
{
"text": "Migration Guides",
"path": "Migration-Guides/Index.md"
"path": "Migration-Guides/Index.md",
"items": [
{
"text": "MVC / Razor Pages",
"items": [
{
"text": "3.3 to 4.0",
"path": "Migration-Guides/Abp-4_0-MVC-Razor-Pages.md"
}
]
},
{
"text": "Blazor",
"items": [
{
"text": "3.2 to 3.3",
"path": "Migration-Guides/BlazorUI-3_3.md"
},
{
"text": "3.3 to 4.0",
"path": "Migration-Guides/Abp-4_0-Blazor.md"
}
]
},
{
"text": "Angular",
"items": [
{
"text": "3.3 to 4.0",
"path": "Migration-Guides/Abp-4_0-Angular.md"
}
]
},
{
"text": "3.3 to 4.0",
"path": "Migration-Guides/Abp-4_0.md"
},
{
"text": "4.2",
"path": "Migration-Guides/Abp-4_2.md"
},
{
"text": "4.x to 4.3",
"path": "Migration-Guides/Abp-4_3.md"
},
{
"text": "Upgrading the Startup Template",
"path": "Migration-Guides/Upgrading-Startup-Template.md"
}
]
}
]
},

BIN
docs/en/images/hello-template-razor.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

BIN
docs/en/images/multiple-file-template-razor.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

BIN
docs/en/images/replace-email-layout-razor.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

2
docs/zh-Hans/Blob-Storing-Minio.md

@ -42,7 +42,7 @@ Configure<AbpBlobStoringOptions>(options =>
* **EndPoint** (string): 你的Minio对象存储服务的URL, 查看文档:https://docs.min.io/docs/dotnet-client-quickstart-guide.html
* **AccessKey** (string): Access key是唯一标识你的账户的用户ID,
* **SecretKey** (string): Access key是唯一标识你的账户的用户ID
* **SecretKey** (string): Secret Key是你的账户的密码
* **BucketName** (string):你可以指定bucket名称,如果没有指定,将使用 `BlobContainerName` 属性定义的BLOB容器的名称(查阅[BLOB storing document](Blob-Storing.md)),MinIO完全兼容S3标准,所以有一些 **bucket命名规则**,必须符合[规则](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html):
* Bucket名称必须介于 3 到 63 个字符之间.
* Bucket名称只能由小写字母、数字、句点 (.) 和连字符 (-) 组成.

14
docs/zh-Hans/Entity-Framework-Core.md

@ -433,7 +433,19 @@ public class BookRepository : EfCoreRepository<IBookStoreDbContext, Book, Guid>,
### 替换其他仓储
正确定义并使用DbContext接口后,任何其他实现都可以使用以下ReplaceDbContext options 替换它:
正确定义并使用DbContext接口后,任何其他实现都可以使用以下方法替换它:
**ReplaceDbContextAttribute**
```csharp
[ReplaceDbContext(typeof(IBookStoreDbContext))]
public class OtherDbContext : AbpDbContext<OtherDbContext>, IBookStoreDbContext
{
//...
}
```
**ReplaceDbContext option**
````csharp
context.Services.AddAbpDbContext<OtherDbContext>(options =>

14
docs/zh-Hans/MongoDB.md

@ -329,7 +329,19 @@ public class BookRepository
##### 替换其他的DbContexts
一旦你正确定义并为MongoDbContext使用了接口,其他的实现就可以使用`ReplaceDbContext`来替换:
一旦你正确定义并为MongoDbContext使用了接口,任何其他实现都可以使用以下方法替换它:
**ReplaceDbContextAttribute**
```csharp
[ReplaceDbContext(typeof(IBookStoreMongoDbContext))]
public class OtherMongoDbContext : AbpMongoDbContext, IBookStoreMongoDbContext
{
//...
}
```
**ReplaceDbContext option**
```csharp
context.Services.AddMongoDbContext<OtherMongoDbContext>(options =>

76
docs/zh-Hans/Value-Objects.md

@ -1,3 +1,75 @@
## Value Objects
## 值对象
TODO
> 一个对象,表示领域的描述方面,没有概念上的身份被称为 值对象.
>
> (Eric Evans)
属性相同但`Id`不同的两个[实体](https://docs.abp.io/zh-Hans/abp/latest/Entities) 被视为不同的实体.但是,值对象没有`Id`
## 值对象的类
值对象是一个抽象类,可以继承它来创建值对象类
**示例: An Address class**
```csharp
public class Address : ValueObject
{
public Guid CityId { get; private set; }
public string Street { get; private set; }
public int Number { get; private set; }
private Address()
{
}
public Address(
Guid cityId,
string street,
int number)
{
CityId = cityId;
Street = street;
Number = number;
}
protected override IEnumerable<object> GetAtomicValues()
{
yield return Street;
yield return CityId;
yield return Number;
}
}
```
- 值对象类必须实现 `GetAtomicValues()`方法来返回原始值
### ValueEquals
`ValueObject.ValueEquals(...)` 用于检测两个值是否相等
**示例: Check if two addresses are equals**
```csharp
Address address1 = ...
Address address2 = ...
if (address1.ValueEquals(address2)) //Check equality
{
...
}
```
## 最佳实践
以下是使用值对象时的一些最佳实践:
- 如果没有充分的理由将值对象设计为可变的,则将其设计为**不可变**(如上面的地址).
- 构成一个值对象的属性应该形成一个概念整体.例如:CityId,Street和Number不应是个人实体的单独属性.这也使Person实体更简单.
## 另请参阅
- [实体](Entities.md)

42
framework/Volo.Abp.sln

@ -385,6 +385,18 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.AspNetCore.Mvc.UI.
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Authorization.Abstractions", "src\Volo.Abp.Authorization.Abstractions\Volo.Abp.Authorization.Abstractions.csproj", "{87B0C2A8-FE95-4779-8B9C-2181AA52B3FA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.TextTemplating.Core", "src\Volo.Abp.TextTemplating.Core\Volo.Abp.TextTemplating.Core.csproj", "{184E859A-282D-44D7-B8E9-FEA874644013}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.TextTemplating.Scriban", "src\Volo.Abp.TextTemplating.Scriban\Volo.Abp.TextTemplating.Scriban.csproj", "{228723E6-FA6D-406B-B8F8-C9BCC547AF8E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.TextTemplating.Razor", "src\Volo.Abp.TextTemplating.Razor\Volo.Abp.TextTemplating.Razor.csproj", "{42EA6F06-2D78-4D18-8AC4-8F2AB7E6DA19}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.TextTemplating.Razor.Tests", "test\Volo.Abp.TextTemplating.Razor.Tests\Volo.Abp.TextTemplating.Razor.Tests.csproj", "{C996F458-98FB-483D-9306-4701290E2FC1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.TextTemplating.Scriban.Tests", "test\Volo.Abp.TextTemplating.Scriban.Tests\Volo.Abp.TextTemplating.Scriban.Tests.csproj", "{75D8DADB-3FA9-4C1D-B23A-DBFD08133B7C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.MongoDB.Tests.SecondContext", "test\Volo.Abp.MongoDB.Tests.SecondContext\Volo.Abp.MongoDB.Tests.SecondContext.csproj", "{90B1866A-EF99-40B9-970E-B898E5AA523F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -1147,6 +1159,30 @@ Global
{87B0C2A8-FE95-4779-8B9C-2181AA52B3FA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{87B0C2A8-FE95-4779-8B9C-2181AA52B3FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{87B0C2A8-FE95-4779-8B9C-2181AA52B3FA}.Release|Any CPU.Build.0 = Release|Any CPU
{184E859A-282D-44D7-B8E9-FEA874644013}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{184E859A-282D-44D7-B8E9-FEA874644013}.Debug|Any CPU.Build.0 = Debug|Any CPU
{184E859A-282D-44D7-B8E9-FEA874644013}.Release|Any CPU.ActiveCfg = Release|Any CPU
{184E859A-282D-44D7-B8E9-FEA874644013}.Release|Any CPU.Build.0 = Release|Any CPU
{228723E6-FA6D-406B-B8F8-C9BCC547AF8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{228723E6-FA6D-406B-B8F8-C9BCC547AF8E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{228723E6-FA6D-406B-B8F8-C9BCC547AF8E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{228723E6-FA6D-406B-B8F8-C9BCC547AF8E}.Release|Any CPU.Build.0 = Release|Any CPU
{42EA6F06-2D78-4D18-8AC4-8F2AB7E6DA19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{42EA6F06-2D78-4D18-8AC4-8F2AB7E6DA19}.Debug|Any CPU.Build.0 = Debug|Any CPU
{42EA6F06-2D78-4D18-8AC4-8F2AB7E6DA19}.Release|Any CPU.ActiveCfg = Release|Any CPU
{42EA6F06-2D78-4D18-8AC4-8F2AB7E6DA19}.Release|Any CPU.Build.0 = Release|Any CPU
{C996F458-98FB-483D-9306-4701290E2FC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C996F458-98FB-483D-9306-4701290E2FC1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C996F458-98FB-483D-9306-4701290E2FC1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C996F458-98FB-483D-9306-4701290E2FC1}.Release|Any CPU.Build.0 = Release|Any CPU
{75D8DADB-3FA9-4C1D-B23A-DBFD08133B7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{75D8DADB-3FA9-4C1D-B23A-DBFD08133B7C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{75D8DADB-3FA9-4C1D-B23A-DBFD08133B7C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{75D8DADB-3FA9-4C1D-B23A-DBFD08133B7C}.Release|Any CPU.Build.0 = Release|Any CPU
{90B1866A-EF99-40B9-970E-B898E5AA523F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{90B1866A-EF99-40B9-970E-B898E5AA523F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{90B1866A-EF99-40B9-970E-B898E5AA523F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{90B1866A-EF99-40B9-970E-B898E5AA523F}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -1341,6 +1377,12 @@ Global
{B4B6B7DE-9798-4007-B1DF-7EE7929E392A} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6}
{E9CE58DB-0789-4D18-8B63-474F7D7B14B4} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6}
{87B0C2A8-FE95-4779-8B9C-2181AA52B3FA} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6}
{184E859A-282D-44D7-B8E9-FEA874644013} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6}
{228723E6-FA6D-406B-B8F8-C9BCC547AF8E} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6}
{42EA6F06-2D78-4D18-8AC4-8F2AB7E6DA19} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6}
{C996F458-98FB-483D-9306-4701290E2FC1} = {447C8A77-E5F0-4538-8687-7383196D04EA}
{75D8DADB-3FA9-4C1D-B23A-DBFD08133B7C} = {447C8A77-E5F0-4538-8687-7383196D04EA}
{90B1866A-EF99-40B9-970E-B898E5AA523F} = {447C8A77-E5F0-4538-8687-7383196D04EA}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {BB97ECF4-9A84-433F-A80B-2A3285BDD1D5}

12
framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Microsoft/Extensions/DependencyInjection/AbpOpenIdConnectExtensions.cs

@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authentication.OAuth.Claims;
using Microsoft.AspNetCore.Authentication.OpenIdConnect;
using Microsoft.Extensions.Options;
using Microsoft.IdentityModel.Protocols.OpenIdConnect;
using Volo.Abp.AspNetCore.MultiTenancy;
namespace Microsoft.Extensions.DependencyInjection
@ -35,6 +36,17 @@ namespace Microsoft.Extensions.DependencyInjection
SetAbpTenantId(receivedContext);
return authorizationCodeReceived.Invoke(receivedContext);
};
options.Events.OnRemoteFailure = remoteFailureContext =>
{
if (remoteFailureContext.Failure is OpenIdConnectProtocolException &&
remoteFailureContext.Failure.Message.Contains("access_denied"))
{
remoteFailureContext.HandleResponse();
remoteFailureContext.Response.Redirect($"{remoteFailureContext.Request.PathBase}/");
}
return Task.CompletedTask;
};
});
}

14
framework/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/AppWithoutAuth.razor

@ -0,0 +1,14 @@
@using Microsoft.Extensions.Options
@using Volo.Abp.AspNetCore.Components.Web.Theming.Routing
@inject IOptions<AbpRouterOptions> RouterOptions
<Router AppAssembly="RouterOptions.Value.AppAssembly"
AdditionalAssemblies="RouterOptions.Value.AdditionalAssemblies">
<Found Context="routeData">
<RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
</Found>
<NotFound>
<LayoutView Layout="@typeof(MainLayout)">
<p>Sorry, there's nothing at this address.</p>
</LayoutView>
</NotFound>
</Router>

16
framework/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/RedirectToLogin.razor

@ -1,7 +1,17 @@
@inject NavigationManager Navigation
@code {
@inject IJSRuntime JSRuntime
@code {
protected override void OnInitialized()
{
Navigation.NavigateTo($"authentication/login?returnUrl={Uri.EscapeDataString(Navigation.Uri)}");
}
bool isWebAssembly = JSRuntime is IJSInProcessRuntime;
if (isWebAssembly)
{
Navigation.NavigateTo($"authentication/login?returnUrl={Uri.EscapeDataString(Navigation.Uri)}");
}
else
{
Navigation.NavigateTo($"account/login?returnUrl={Uri.EscapeDataString(Navigation.Uri)}", true);
}
}
}

23
framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/Security/AbpComponentsClaimsCache.cs

@ -1,5 +1,6 @@
using System.Security.Claims;
using System.Threading.Tasks;
using JetBrains.Annotations;
using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.DependencyInjection;
@ -14,21 +15,29 @@ namespace Volo.Abp.AspNetCore.Components.Web.Security
{
public ClaimsPrincipal Principal { get; private set; }
[CanBeNull]
private readonly AuthenticationStateProvider _authenticationStateProvider;
public AbpComponentsClaimsCache(IClientScopeServiceProviderAccessor clientScopeServiceProviderAccessor)
public AbpComponentsClaimsCache(
IClientScopeServiceProviderAccessor serviceProviderAccessor)
{
_authenticationStateProvider = clientScopeServiceProviderAccessor.ServiceProvider.GetRequiredService<AuthenticationStateProvider>();
_authenticationStateProvider.AuthenticationStateChanged += async (task) =>
_authenticationStateProvider = serviceProviderAccessor.ServiceProvider.GetService<AuthenticationStateProvider>();
if (_authenticationStateProvider != null)
{
Principal = (await task).User;
};
_authenticationStateProvider.AuthenticationStateChanged += async (task) =>
{
Principal = (await task).User;
};
}
}
public virtual async Task InitializeAsync()
{
var authenticationState = await _authenticationStateProvider.GetAuthenticationStateAsync();
Principal = authenticationState.User;
if (_authenticationStateProvider != null)
{
var authenticationState = await _authenticationStateProvider.GetAuthenticationStateAsync();
Principal = authenticationState.User;
}
}
}
}

13
framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/BasicThemeToolbarContributor.cs

@ -1,7 +1,10 @@
using System.Threading.Tasks;
using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic;
using Volo.Abp.AspNetCore.Components.Web.Theming.Toolbars;
using Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Themes.Basic;
using Volo.Abp.DependencyInjection;
namespace Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme
{
@ -12,7 +15,15 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme
if (context.Toolbar.Name == StandardToolbars.Main)
{
context.Toolbar.Items.Add(new ToolbarItem(typeof(LanguageSwitch)));
context.Toolbar.Items.Add(new ToolbarItem(typeof(LoginDisplay)));
//TODO: Can we find a different way to understand if authentication was configured or not?
var authenticationStateProvider = context.ServiceProvider
.GetService<AuthenticationStateProvider>();
if (authenticationStateProvider != null)
{
context.Toolbar.Items.Add(new ToolbarItem(typeof(LoginDisplay)));
}
}
return Task.CompletedTask;

27
framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor

@ -1,13 +1,12 @@
@using Microsoft.AspNetCore.Components.WebAssembly.Authentication
@using Microsoft.Extensions.Localization
@using Microsoft.Extensions.Localization
@using Volo.Abp.Users
@using Volo.Abp.MultiTenancy
@using global::Localization.Resources.AbpUi
@inherits AbpComponentBase
@inject ICurrentUser CurrentUser
@inject ICurrentTenant CurrentTenant
@inject IJSRuntime JsRuntime
@inject NavigationManager Navigation
@inject SignOutSessionStateManager SignOutManager
@inject IStringLocalizer<AbpUiResource> UiLocalizer
<AuthorizeView>
<Authorized>
@ -38,24 +37,4 @@
<NotAuthorized>
<a class="nav-link" href="authentication/login">@UiLocalizer["Login"]</a>
</NotAuthorized>
</AuthorizeView>
@code{
private async Task NavigateToAsync(string uri, string target = null)
{
if (target == "_blank")
{
await JsRuntime.InvokeVoidAsync("open", uri, target);
}
else
{
Navigation.NavigateTo(uri);
}
}
private async Task BeginSignOut()
{
await SignOutManager.SetSignOutState();
await NavigateToAsync("authentication/logout");
}
}
</AuthorizeView>

49
framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor.cs

@ -1,8 +1,11 @@
using System;
using System.Threading.Tasks;
using JetBrains.Annotations;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.AspNetCore.Components.Routing;
using Microsoft.AspNetCore.Components.WebAssembly.Authentication;
using Microsoft.JSInterop;
using Volo.Abp.UI.Navigation;
namespace Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Themes.Basic
@ -11,23 +14,32 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Themes.Basic
{
[Inject]
protected IMenuManager MenuManager { get; set; }
[Inject]
protected AuthenticationStateProvider AuthenticationStateProvider { get; set; }
protected ApplicationMenu Menu { get; set; }
[CanBeNull]
protected AuthenticationStateProvider AuthenticationStateProvider;
[CanBeNull]
protected SignOutSessionStateManager SignOutManager;
protected ApplicationMenu Menu { get; set; }
protected override async Task OnInitializedAsync()
{
Menu = await MenuManager.GetAsync(StandardMenus.User);
Navigation.LocationChanged += OnLocationChanged;
AuthenticationStateProvider.AuthenticationStateChanged += async (task) =>
LazyGetService(ref AuthenticationStateProvider);
LazyGetService(ref SignOutManager);
if (AuthenticationStateProvider != null)
{
Menu = await MenuManager.GetAsync(StandardMenus.User);
await InvokeAsync(StateHasChanged);
};
AuthenticationStateProvider.AuthenticationStateChanged += async (task) =>
{
Menu = await MenuManager.GetAsync(StandardMenus.User);
await InvokeAsync(StateHasChanged);
};
}
}
protected virtual void OnLocationChanged(object sender, LocationChangedEventArgs e)
@ -39,5 +51,26 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Themes.Basic
{
Navigation.LocationChanged -= OnLocationChanged;
}
private async Task NavigateToAsync(string uri, string target = null)
{
if (target == "_blank")
{
await JsRuntime.InvokeVoidAsync("open", uri, target);
}
else
{
Navigation.NavigateTo(uri);
}
}
private async Task BeginSignOut()
{
if (SignOutManager != null)
{
await SignOutManager.SetSignOutState();
await NavigateToAsync("authentication/logout");
}
}
}
}

24
framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/AbpComponentBase.cs

@ -108,6 +108,18 @@ namespace Volo.Abp.AspNetCore.Components
return reference;
}
protected TService LazyGetService<TService>(ref TService reference) => LazyGetService(typeof(TService), ref reference);
protected TRef LazyGetService<TRef>(Type serviceType, ref TRef reference)
{
if (reference == null)
{
reference = (TRef)ScopedServices.GetService(serviceType);
}
return reference;
}
protected TService LazyGetNonScopedRequiredService<TService>(ref TService reference) => LazyGetNonScopedRequiredService(typeof(TService), ref reference);
@ -120,6 +132,18 @@ namespace Volo.Abp.AspNetCore.Components
return reference;
}
protected TService LazyGetNonScopedService<TService>(ref TService reference) => LazyGetNonScopedService(typeof(TService), ref reference);
protected TRef LazyGetNonScopedService<TRef>(Type serviceType, ref TRef reference)
{
if (reference == null)
{
reference = (TRef)NonScopedServices.GetService(serviceType);
}
return reference;
}
[Inject]
protected IServiceProvider NonScopedServices { get; set; }

26
framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/AbpAspNetCoreMultiTenancyOptions.cs

@ -1,4 +1,9 @@
using Volo.Abp.MultiTenancy;
using System;
using System.Globalization;
using System.Net;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Volo.Abp.MultiTenancy;
namespace Volo.Abp.AspNetCore.MultiTenancy
{
@ -9,9 +14,26 @@ namespace Volo.Abp.AspNetCore.MultiTenancy
/// </summary>
public string TenantKey { get; set; }
public Func<HttpContext, Exception, Task> MultiTenancyMiddlewareErrorPageBuilder { get; set; }
public AbpAspNetCoreMultiTenancyOptions()
{
TenantKey = TenantResolverConsts.DefaultTenantKey;
MultiTenancyMiddlewareErrorPageBuilder = async (context, exception)=>
{
context.Response.StatusCode = (int) HttpStatusCode.InternalServerError;;
context.Response.ContentType = "text/html";
var message = exception.Message;
var details = exception is BusinessException businessException ? businessException.Details : string.Empty;
await context.Response.WriteAsync($"<html lang=\"{CultureInfo.CurrentCulture.Name}\"><body>\r\n");
await context.Response.WriteAsync($"<h3>{message}</h3>{details}<br>\r\n");
await context.Response.WriteAsync("</body></html>\r\n");
// Note the 500 spaces are to work around an IE 'feature'
await context.Response.WriteAsync(new string(' ', 500));
};
}
}
}
}

21
framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs

@ -1,10 +1,14 @@
using System;
using System.Globalization;
using System.IO;
using System.Net;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Diagnostics;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Localization;
using Microsoft.AspNetCore.RequestLocalization;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Localization;
using Volo.Abp.MultiTenancy;
@ -16,18 +20,31 @@ namespace Volo.Abp.AspNetCore.MultiTenancy
{
private readonly ITenantConfigurationProvider _tenantConfigurationProvider;
private readonly ICurrentTenant _currentTenant;
private readonly AbpAspNetCoreMultiTenancyOptions _options;
public MultiTenancyMiddleware(
ITenantConfigurationProvider tenantConfigurationProvider,
ICurrentTenant currentTenant)
ICurrentTenant currentTenant,
IOptions<AbpAspNetCoreMultiTenancyOptions> options)
{
_tenantConfigurationProvider = tenantConfigurationProvider;
_currentTenant = currentTenant;
_options = options.Value;
}
public async Task InvokeAsync(HttpContext context, RequestDelegate next)
{
var tenant = await _tenantConfigurationProvider.GetAsync(saveResolveResult: true);
TenantConfiguration tenant;
try
{
tenant = await _tenantConfigurationProvider.GetAsync(saveResolveResult: true);
}
catch (Exception e)
{
await _options.MultiTenancyMiddlewareErrorPageBuilder(context, e);
return;
}
if (tenant?.Id != _currentTenant.Id)
{
using (_currentTenant.Change(tenant?.Id, tenant?.Name))

4
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/MultiTenancy/FindTenantResultDto.cs

@ -10,5 +10,7 @@ namespace Volo.Abp.AspNetCore.Mvc.MultiTenancy
public Guid? TenantId { get; set; }
public string Name { get; set; }
public bool IsActive { get; set; }
}
}
}

6
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionItemTagHelperService.cs

@ -13,9 +13,9 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Collapse
{
SetRandomIdIfNotProvided();
var innerContent = (await output.GetChildContentAsync()).GetContent();
var childContent = await output.GetChildContentAsync();
var html = GetAccordionHeaderItem(context, output) + GetAccordionContentItem(context, output, innerContent);
var html = GetAccordionHeaderItem(context, output) + GetAccordionContentItem(context, output, childContent);
var tabHeaderItems = context.GetValue<List<string>>(AccordionItems);
tabHeaderItems.Add(html);
@ -46,7 +46,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Collapse
return header.ToHtmlString();
}
protected virtual string GetAccordionContentItem(TagHelperContext context, TagHelperOutput output, string content)
protected virtual string GetAccordionContentItem(TagHelperContext context, TagHelperOutput output, TagHelperContent content)
{
var show = (TagHelper.Active ?? false) ? " show" : "";

4
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpCollapseBodyTagHelperService.cs

@ -22,9 +22,9 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Collapse
output.Attributes.AddClass("multi-collapse");
}
var innerContent = (await output.GetChildContentAsync()).GetContent();
var childContent = await output.GetChildContentAsync();
output.Content.SetHtmlContent(innerContent);
output.Content.SetHtmlContent(childContent);
}
}
}

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Dropdown/AbpDropdownButtonTagHelperService.cs

@ -70,7 +70,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Dropdown
var buttonTag = await abpButtonTagHelper.ProcessAndGetOutputAsync(attributes, context, "button", TagMode.StartTagAndEndTag);
buttonTag.PreContent.SetHtmlContent(content.GetContent());
buttonTag.PreContent.SetHtmlContent(content);
if ((TagHelper.NavLink ?? false) || (TagHelper.Link ?? false))
{

19
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs

@ -42,7 +42,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
NormalizeTagMode(context, output);
var childContent = (await output.GetChildContentAsync()).GetContent();
var childContent = await output.GetChildContentAsync();
await ConvertToMvcForm(context, output);
@ -78,8 +78,8 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
await formTagOutput.GetChildContentAsync();
output.PostContent.SetHtmlContent(output.PostContent.GetContent() + formTagOutput.PostContent.GetContent());
output.PreContent.SetHtmlContent(output.PreContent.GetContent() + formTagOutput.PreContent.GetContent());
output.PostContent.AppendHtml(formTagOutput.PostContent);
output.PreContent.AppendHtml(formTagOutput.PreContent);
}
protected virtual void NormalizeTagMode(TagHelperContext context, TagHelperOutput output)
@ -93,7 +93,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
output.Attributes.AddIfNotContains("method", "post");
}
protected virtual void SetContent(TagHelperContext context, TagHelperOutput output, List<FormGroupItem> items, string childContent)
protected virtual void SetContent(TagHelperContext context, TagHelperOutput output, List<FormGroupItem> items, TagHelperContent childContent)
{
var contentBuilder = new StringBuilder("");
@ -102,16 +102,17 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
contentBuilder.AppendLine(item.HtmlContent);
}
if (childContent.Contains(AbpFormContentPlaceHolder))
var content = childContent.GetContent();
if (content.Contains(AbpFormContentPlaceHolder))
{
childContent = childContent.Replace(AbpFormContentPlaceHolder, contentBuilder.ToString());
content = content.Replace(AbpFormContentPlaceHolder, contentBuilder.ToString());
}
else
{
childContent = contentBuilder + childContent;
content = contentBuilder + content;
}
output.Content.SetHtmlContent(childContent);
output.Content.SetHtmlContent(content);
}
protected virtual async Task SetSubmitButton(TagHelperContext context, TagHelperOutput output)
@ -123,7 +124,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
var buttonHtml = await ProcessSubmitButtonAndGetContentAsync(context, output);
output.PostContent.SetHtmlContent(output.PostContent.GetContent() + buttonHtml);
output.PostContent.AppendHtml(buttonHtml);
}
protected virtual List<FormGroupItem> InitilizeFormGroupContentsContext(TagHelperContext context, TagHelperOutput output)

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs

@ -57,7 +57,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
output.Attributes.AddClass(isCheckBox ? "custom-checkbox" : "form-group");
output.Attributes.AddClass(isCheckBox ? "custom-control" : "");
output.Attributes.AddClass(isCheckBox ? "mb-2" : "");
output.Content.SetHtmlContent(output.Content.GetContent() + innerHtml);
output.Content.AppendHtml(innerHtml);
}
}

3
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelper.cs

@ -5,12 +5,15 @@ using Microsoft.AspNetCore.Razor.TagHelpers;
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
{
[OutputElementHint("select")]
public class AbpSelectTagHelper : AbpTagHelper<AbpSelectTagHelper, AbpSelectTagHelperService>
{
public ModelExpression AspFor { get; set; }
public string Label { get; set; }
public bool SuppressLabel { get; set; }
public IEnumerable<SelectListItem> AspItems { get; set; }
public AbpFormControlSize Size { get; set; } = AbpFormControlSize.Default;

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save