Browse Source

Merge branch 'dev' into salihozkara/localization

pull/16081/head
Salih 3 years ago
parent
commit
6c77045851
  1. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalizationModule.cs
  2. 7
      abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/fi.json
  3. 180
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fi.json
  4. 175
      abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fi.json
  5. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/ar.json
  6. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/en.json
  7. 8
      abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/fi.json
  8. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/tr.json
  9. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/zh-Hans.json
  10. 16
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json
  11. 18
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json
  12. 482
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json
  13. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json
  14. 20
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json
  15. 20
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json
  16. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/ar.json
  17. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json
  18. 80
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/fi.json
  19. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/tr.json
  20. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/zh-Hans.json
  21. 6
      abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/fi.json
  22. 6
      abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/fi.json
  23. 5
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ar.json
  24. 5
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/cs.json
  25. 5
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/de.json
  26. 5
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json
  27. 5
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/es.json
  28. 169
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fi.json
  29. 5
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fr.json
  30. 5
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hi.json
  31. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hu.json
  32. 5
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/is.json
  33. 5
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/it.json
  34. 5
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/nl.json
  35. 5
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pl-PL.json
  36. 5
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pt-BR.json
  37. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ro-RO.json
  38. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ru.json
  39. 5
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sk.json
  40. 5
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sl.json
  41. 5
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/tr.json
  42. 5
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/vi.json
  43. 7
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json
  44. 5
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hant.json
  45. 2
      docs/en/Background-Jobs-Hangfire.md
  46. 44
      docs/en/Background-Workers-Hangfire.md
  47. 114
      docs/en/Blog-Posts/2023-03-24-status.abp.io/POST.md
  48. BIN
      docs/en/Blog-Posts/2023-03-24-status.abp.io/images/discord.png
  49. BIN
      docs/en/Blog-Posts/2023-03-24-status.abp.io/images/gh-status.png
  50. BIN
      docs/en/Blog-Posts/2023-03-24-status.abp.io/images/issue.png
  51. BIN
      docs/en/Blog-Posts/2023-03-24-status.abp.io/images/status-abpio.png
  52. 1
      docs/en/CLI.md
  53. BIN
      docs/en/Community-Articles/2023-03-27-What-is-new-in-NET8/cover.jpg
  54. 222
      docs/en/Community-Articles/2023-03-27-What-is-new-in-NET8/post.md
  55. 12
      docs/en/UI/Blazor/Toolbars.md
  56. 2
      docs/zh-Hans/Background-Jobs-Hangfire.md
  57. 30
      docs/zh-Hans/Background-Workers-Hangfire.md
  58. 131
      docs/zh-Hans/UI/Angular/Multi-Tenancy.md
  59. 266
      docs/zh-Hans/UI/AspNetCore/Tag-Helpers/Form-elements.md
  60. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelper.cs
  61. 1
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelperService.cs
  62. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/fi.json
  63. 42
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Controllers/ErrorController.cs
  64. 8
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApiExploring/AbpApiDefinitionController.cs
  65. 12
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationConfigurationController.cs
  66. 34
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationConfigurationScriptController.cs
  67. 6
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Localization/AbpApplicationLocalizationScriptController.cs
  68. 20
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ProxyScripting/AbpServiceProxyScriptController.cs
  69. 8
      framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Localization/fi.json
  70. 2
      framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/fi.json
  71. 2
      framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs
  72. 8
      framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/AbpSwashbuckleController.cs
  73. 2
      framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Localization/fi.json
  74. 36
      framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fi.json
  75. 14
      framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/fi.json
  76. 7
      framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/fi.json
  77. 7
      framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/fi.json
  78. 8
      modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/fi.json
  79. 23
      modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/fi.json
  80. 21
      modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/fi.json
  81. 130
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/fi.json
  82. 23
      modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/fi.json
  83. 19
      modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/fi.json
  84. 11
      modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/fi.json
  85. 6
      modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/fi.json
  86. 2
      modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/OrganizationUnitManager.cs
  87. 6
      modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo.Abp.OpenIddict.AspNetCore.csproj
  88. 2
      modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo.Abp.OpenIddict.Domain.Shared.csproj
  89. 15
      modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/fi.json
  90. 2
      modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo.Abp.OpenIddict.Domain.csproj
  91. 3
      modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fi.json
  92. 20
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fi.json
  93. 12
      modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/fi.json

2
abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalizationModule.cs

@ -84,4 +84,4 @@ namespace AbpIoLocalization
});
}
}
}
}

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

@ -4,13 +4,14 @@
"Account": "ABP-tili - Kirjaudu ja rekisteröidy | ABP.IO",
"Welcome": "Tervetuloa",
"UseOneOfTheFollowingLinksToContinue": "Käytä yhtä seuraavista linkeistä jatkaaksesi",
"FrameworkHomePage": "Kehyksen kotisivu",
"FrameworkDocumentation": "Puitteet",
"FrameworkHomePage": "Frameworkin kotisivu",
"FrameworkDocumentation": "Frameworkin dokumentaatio",
"OfficialBlog": "Virallinen blogi",
"CommercialHomePage": "Kaupallinen kotisivu",
"CommercialSupportWebSite": "Kaupallisen tuen verkkosivusto",
"CommunityWebSite": "ABP-yhteisön verkkosivusto",
"ManageAccount": "Oma tili | ABP.IO",
"ManageYourAccount": "Hallitse tiliäsi"
"ManageYourProfile": "Hallinnoi profiiliasi",
"ReturnToApplication": "Palaa sovellukseen"
}
}

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

@ -6,22 +6,22 @@
"Permission:DiscountRequests": "Alennushakemukset",
"Permission:DiscountManage": "Hallitse alennuspyyntöjä",
"Permission:Disable": "Poista käytöstä",
"Permission:Enable": "ota käyttöön",
"Permission:Enable": "Ota käyttöön",
"Permission:EnableSendEmail": "Ota Lähetä sähköposti käyttöön",
"Permission:SendEmail": "Lähetä sähköpostia",
"Permission:SendEmail": "Lähetä sähköpostia",
"Permission:NpmPackages": "NPM-paketit",
"Permission:NugetPackages": "Nuget-paketit",
"Permission:Maintenance": "Huolto",
"Permission:Maintain": "Ylläpitää",
"Permission:Maintain": "Ylläpito",
"Permission:ClearCaches": "Tyhjennä välimuistit",
"Permission:Modules": "Moduulit",
"Permission:Packages": "Paketit",
"Permission:Edit": "Muokata",
"Permission:Delete": "Poistaa",
"Permission:Create": "Luoda",
"Permission:Edit": "Muokkaus",
"Permission:Delete": "Poisto",
"Permission:Create": "Luonti",
"Permission:Accounting": "Kirjanpito",
"Permission:Accounting:Quotation": "Tarjous",
"Permission:Accounting:Invoice": "Lasku",
"Permission:Accounting:Quotation": "Tarjoukset",
"Permission:Accounting:Invoice": "Laskutus",
"Menu:Organizations": "Organisaatiot",
"Menu:Accounting": "Kirjanpito",
"Menu:Packages": "Paketit",
@ -52,9 +52,9 @@
"NugetPackageTarget.Web": "Web",
"NugetPackageTarget.EntityFrameworkCore": "PoistaAllEntityFramework Core",
"NugetPackageTarget.MongoDB": "MongoDB",
"Edit": "Muokata",
"Delete": "Poistaa",
"Refresh": "virkistää",
"Edit": "Muokkaa",
"Delete": "Poista",
"Refresh": "Virkistä",
"NpmPackages": "NPM-paketit",
"NugetPackages": "Nuget-paketit",
"NpmPackageCount": "NPM-pakettimäärä",
@ -87,7 +87,7 @@
"Email": "Sähköposti",
"Developers": "Kehittäjät",
"AddDeveloper": "Lisää kehittäjä",
"Create": "Luoda",
"Create": "Luo",
"UserNotFound": "Käyttäjää ei löydy",
"{0}WillBeRemovedFromDevelopers": "{0} Poistetaanko kehittäjiltä, vahvistatko?",
"{0}WillBeRemovedFromOwners": "{0} Poistetaanko omistajilta, vahvistatko?",
@ -153,7 +153,7 @@
"DiscountRequests": "Alennuspyyntö",
"Copylink": "Kopioi linkki",
"Disable": "Poista käytöstä",
"Enable": "ota käyttöön",
"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ä",
@ -168,12 +168,12 @@
"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",
"Notes": "Huomautukset",
"Menu:Community": "Yhteisö",
"Menu:Posts": "Artikkelit",
"Wait": "Odota",
"Approve": "Hyväksyä",
"Reject": "Hylätä",
"Approve": "Hyväksy",
"Reject": "Hylkää",
"Details": "Yksityiskohdat",
"Url": "URL-osoite",
"Title": "Otsikko",
@ -184,7 +184,7 @@
"PostHasBeenApproved": "Artikkeli on hyväksytty",
"PostHasBeenRejected": "Artikkeli on hylätty",
"Permission:Community": "Yhteisö",
"Permission:CommunityPost": "Artikla",
"Permission:CommunityPost": "Artikkeli",
"Link": "Linkki",
"Enum:ContentSource:0": "Github",
"Enum:ContentSource:1": "Ulkoinen",
@ -215,24 +215,27 @@
"Gateway": "Yhdyskäytävä",
"State": "Osavaltio",
"FailReason": "Epäonnistunut syy",
"ReIndexAllPosts": "Reindex Kaikki viestit",
"ReIndexAllPosts": "Indeksoi uudelleen kaikki viestit",
"ReIndexAllPostsConfirmationMessage": "Haluatko varmasti indeksoida kaikki viestit uudelleen?",
"SuccessfullyReIndexAllPosts": "Kaikki viestit on indeksoitu uudelleen.",
"Permission:FullSearch": "Koko tekstihaku",
"Menu:CliAnalytics": "Cli Analytics",
"Menu:CliAnalytics": "Cli-analytiikka",
"Menu:Reports": "Raportit",
"TemplateName": "Mallin nimi",
"TemplateVersion": "Malliversio",
"DatabaseProvider": "Tietokannan tarjoaja",
"IsTiered": "Onko porrastettu",
"IsTiered": "Onko monikerros",
"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",
"CliAnalytics": "Cli-analytiikka",
"Reports": "Raportit",
"Permission:CliAnalyticses": "Cli-analytiikat",
"Permission:CliAnalytics": "Cli-analytiikka",
"Permission:Reports": "Raportit",
"Search": "Hae",
"ClearFilter": "Tyhjennä suodatin",
"LicensePrivateKey": "Lisenssin yksityinen avain",
@ -316,14 +319,12 @@
"TrialLicenseStatusFilter": "Tila",
"TrialLicenseStartDateFilter": "Aloituspäivämäärä",
"TrialLicenseEndDateFilter": "Päättymispäivä",
"FirsName": "Etunimi",
"FirstName": "Etunimi",
"LastName": "Sukunimi",
"StartDate": "Aloituspäivämäärä",
"EndDate": "Päättymispäivä",
"PurchasedDate": "Ostopäivämäärä",
"OrganizationDetail": "Organisaation tiedot",
"SendActivationMail": "Lähetä aktivointiviesti",
"ActivationMailSentSuccessfully": "Aktivointiviesti lähetetty onnistuneesti!",
"TrialLicenseStatus": "Kokeilulisenssin tila",
"TrialLicenseDetail": "Kokeilulisenssin tiedot",
"AcceptsMarketingCommunications": "Markkinointiviestintä",
@ -337,17 +338,120 @@
"Expired": "Vanhentunut",
"TrialLicenseDeletionWarningMessage": "Haluatko varmasti poistaa koekäyttöluvan? Kokeilulisenssi, organisaatio, tukitilit poistetaan!",
"LicenseCategoryFilter": "Lisenssiluokka",
"Volo.AbpIo.Commercial:030000": "Olet jo käyttänyt kokeilujaksosi.",
"Volo.AbpIo.Commercial:030001": "Tämä organisaation nimi on jo olemassa.",
"Volo.AbpIo.Commercial:030002": "Kun kokeilukäyttöoikeus on aktivoitu, sitä ei voi asettaa pyydettyksi!",
"Volo.AbpIo.Commercial:030003": "Sellaista statusta ei ole!",
"Volo.AbpIo.Commercial:030004": "Tilaa ei voitu muuttaa odottamattoman virheen vuoksi!",
"Volo.AbpIo.Commercial:030005": "Alkamis- ja lopetuspäivämäärät voidaan päivittää, kun koekäyttölisenssi on -aktivoitu-tilassa!",
"Volo.AbpIo.Commercial:030006": "Päättymispäivän on aina oltava aloituspäivää suurempi!",
"Volo.AbpIo.Commercial:030007": "Tämä kokeiluversio on jo aktivoitu kerran!",
"Volo.AbpIo.Commercial:030008": "Ostopäivä voidaan asettaa vain, kun tila on Ostettu!",
"Volo.AbpIo.Commercial:030009": "Käyttäjää ei löydy!",
"Volo.AbpIo.Commercial:030010": "Kokeilulisenssin ostamiseksi sinun on ensin aktivoitava kokeilulisenssi!",
"Volo.AbpIo.Commercial:030011": "Kokeilulisenssiä ei voi poistaa, kun se on ostettu!"
"Permission:SendWelcomeEmail": "Lähetä tervetulosähköposti",
"SendWelcomeEmail": "Lähetä tervetulosähköposti",
"SendWelcomeEmailWarningMessage": "Haluatko varmasti lähettää tervetuloviestin organisaation jäsenille?",
"SendWelcomeEmailSuccessMessage": "Tervetulosähköposti lähetetty onnistuneesti!",
"Activate": "Aktivoi",
"ActivateTrialLicenseWarningMessage": " Kun aktivoit kokeilulisenssin, käyttäjälle lähetetään tervetulosähköposti. Haluatko aktivoida sen?",
"ActivateTrialLicenseSuccessMessage": "Aktivointi onnistui ja tervetulosähköposti lähetetty organisaation jäsenille.",
"PaymentRequestId": "Maksupyynnön tunnus",
"AdditionalDeveloperCount": "Lisäkehittäjien määrä",
"LicensePrice": "Lisenssin hinta",
"PurchaseDate": "Ostopäivä",
"IsAbpBookDownloaded": "Mastering ABP Book ladattu?",
"IsMasteringAbpBookDownloadEnabled": "ABP-kirjan lataus käytössä",
"Permission:Accounting:CustomPaymentLinkGenerator": "Mukautettu maksulinkki",
"CustomPaymentLink": "Mukautettu maksulinkki",
"Menu:CustomPaymentLink": "Mukautettu maksulinkki",
"Amount": "Määrä",
"GenerateCustomPaymentLink": "Luo mukautettu maksulinkki",
"GeneratedPaymentLink": "Luotu maksulinkki",
"CopyText": "Kopioi teksti",
"Permission:CommunityEvents": "Tapahtumat",
"Menu:Events": "Tapahtumat",
"Events": "Tapahtumat",
"EventType": "Tapahtumatyyppi",
"Number": "Määrä",
"RegistrationURL": "Rekisteröinnin URL-osoite",
"URL": "URL-osoite",
"EventDeletionConfirmationMessage": "Haluatko varmasti poistaa tämän tapahtuman?",
"Enum:EventType:0": "Yhteisön keskustelut",
"CreateAnEvent": "Luo tapahtuma",
"Permission:CommunitySpeakers": "Esiintyjät",
"CreateASpeaker": "Luo esiintyjä",
"Speakers": "Esiintyjät",
"Image": "Kuva",
"GithubURL": "Githubin URL-osoite",
"SpeakerDeletionConfirmationMessage": "Haluatko varmasti poistaa tämän esiintyjän?",
"Menu:Speakers": "Esiintyjät",
"ChooseSpeakerImage": "Valitse esiintyjän kuva...",
"SpeakerImage": "Esiintyjän kuva",
"AddSpeaker": "Lisää esiintyjä",
"ShowPurchaseItemsOfOrganizations": "Osta kohteita",
"Enum:OrganizationPurchaseState:0": "Ei toimitettu",
"Enum:OrganizationPurchaseState:1": "Toimitettu",
"PurchaseItems": "Osta kohteita",
"SuccessfullyUpdated": "Päivitetty onnistuneesti",
"SuccessfullyAdded": "Lisätty onnistuneesti",
"PurchaseState": "Ostoksen tila",
"ShowBetweenDayCount": "Näytä päivien välissä",
"PurchaseOrder": "Ostotilaus",
"ShowCreateInvoiceOfOrganization": "Luo lasku",
"ShowCreateQuotationOfOrganization": "Luo tarjous",
"BookDiscounts": "Kirja-alennukset",
"Permission:BookDiscount": "Varaa alennus",
"Menu:BookDiscounts": "Kirja-alennukset",
"BookType": "Kirjan tyyppi",
"PurchasePlatform": "Ostoalusta",
"StartTime": "Aloitusaika",
"EndTime": "Loppu aika",
"CreateABookDiscount": "Luo kirja-alennus",
"BookDiscountDeletionConfirmationMessage": "Haluatko varmasti poistaa tämän kirja-alennuksen?",
"CustomPaymentFlexSwitchDescription": "Lisenssillä",
"AllowFeatureUpgradeOnLicenseExpire": "Salli ominaisuuden päivitys lisenssin vanhentuessa",
"Deleted{0}": "[poistettu {0}]",
"Tags": "Tunnisteet",
"SetTagsInfo": "Tunnisteet on erotettava pilkuilla. Esim: CSharp, Entity Framework",
"RejectTrialLicenseWarningMessage": "Haluatko varmasti hylätä tämän kokeilulupapyynnön?",
"ExportToExcel": "Vie Exceliin",
"OverallTotalPrice": "Kokonaishinta",
"OverallDiscountPrice": "Kokonaisalennushinta",
"OverallDiscountText": "Kokonaisalennusteksti",
"SelectReport": "- Valitse Raportti -",
"NoDataAvailable": "Tietoja ei ole saatavilla",
"StatisticsOfCachedContents": "Nuget.abp.io:n välimuistissa olevan NuGet-paketin sisällön tilastot",
"Compact": "Kompakti",
"EditSettings": "Muokkaa asetuksia",
"CurrentEstimatedSize": "Nykyinen arvioitu koko",
"CurrentEntryCount": "Nykyinen kohteiden määrä",
"TotalHits": "Yhteensä osumia",
"TotalMisses": "Yhteensä huteja",
"NoResponseFrom": "Ei vastausta käyttäjältä",
"ContentCacheSlidingExpirationByDay": "Sisällön välimuistin liukuva vanheneminen päivältä",
"MaxDaysForCaching": "Enimmäispäiviä välimuistiin",
"Enabled": "Käytössä",
"Menu:NugetPackagesContentCache": "NuGet-välimuisti",
"NugetPackagesContentCache": "NuGet-sisältövälimuisti",
"SlidingExpritionByDayInfo": "Hakee tai määrittää, kuinka kauan välimuistimerkintä voi olla passiivinen (esim. sitä ei käytetä), ennen kuin se poistetaan. Tämä ei pidennä merkinnän käyttöikää absoluuttisen vanhenemisen jälkeen.",
"MaxDaysForCachingInfo": "Hakee tai asettaa absoluuttisen vanhenemisajan suhteessa nykyhetkeen.",
"CurrentEstimatedSizeInfo": "Ilmaisee arvioidun summan kaikkien NuGet-pakettien tämänhetkisen sisältökoon välimuistissa",
"CurrentEntryCountInfo": "Ilmaisee välimuistissa tällä hetkellä olevien esiintymien määrän.",
"TotalHitsInfo": "Ilmaisee välimuistin hutien kokonaismäärän. Välimuistiosuma tapahtuu, kun välimuistista pyydetään tiedostoa ja välimuisti pystyy täyttämään pyynnön.",
"TotalMissesInfo": "Ilmaisee välimuistin osumien kokonaismäärän. Välimuisti puuttuu, kun välimuisti ei sisällä pyydettyä sisältöä.",
"Permission:VersionHistory": "Versiohistoria",
"Caches": "Välimuistit",
"VersionHistories": "Versiohistoria",
"Version": "Versio",
"PublishDate": "Julkaisupäivämäärä",
"IsStableVersion": "Vakaa versio",
"IsActive": "Aktiivinen",
"NewVersion": "Uusi versio",
"VersionHistoryDeletionConfirmationMessage": "Haluatko varmasti poistaa tämän version?",
"CreateAbpConsultantLogoInfo": "Tiedoston enimmäiskoko: <b>1Mt</b> <br/> Tuetut tiedostotyypit: <b>jpg, jpeg, png, SVG, WebP</b>",
"UrlCode": "URL-koodi",
"Clear": "Tyhjennä",
"Permission:AbpConsultant": "ABP-konsultti",
"Menu:AbpConsultants": "ABP konsultit",
"CreateAbpConsultant": "Luo ABP-konsultti",
"UrlCodeIsNotAvailable": "Toinen ABP-konsultti käyttää URL-koodia.",
"AbpConsultants": "ABP konsultit",
"AbpConsultant": "ABP-konsultti",
"AbpConsultantEdit": "Muokkaa ABP-konsulttia",
"AbpConsultantCreate": "Luo ABP-konsultti",
"WhoWeAreItem": "Keitä me olemme -tuote",
"FieldIsRequired": "{0} vaaditaan.",
"FieldIsNotValid": " {0} ei kelpaa.",
"InterestedLicenseType": "Kiinnostunut lisenssityyppi"
}
}

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

@ -14,13 +14,29 @@
"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.",
"Volo.AbpIo.Domain:030000": "Olet jo suorittanut kokeilujaksosi.",
"Volo.AbpIo.Domain:030001": "Tämä organisaation nimi on jo olemassa.",
"Volo.AbpIo.Domain:030002": "Kun kokeilukäyttöoikeus on aktivoitu, et voi vaihtaa -pyynnön tilaan!",
"Volo.AbpIo.Domain:030003": "Sellaista statusta ei ole!",
"Volo.AbpIo.Domain:030004": "Tilaa ei voitu muuttaa odottamattoman virheen vuoksi!",
"Volo.AbpIo.Domain:030005": "Alkamis- ja päättymispäivä voidaan päivittää, kun koekäyttöoikeus on -aktivoitu-tilassa!",
"Volo.AbpIo.Domain:030006": "Päättymispäivän on oltava aloituspäivää suurempi!",
"Volo.AbpIo.Domain:030007": "Tämä kokeilukäyttöoikeus on jo aktivoitu!",
"Volo.AbpIo.Domain:030008": "Ostopäivä voidaan asettaa vain, kun tila on -ostettu-!",
"Volo.AbpIo.Domain:030009": "Käyttäjää ei löydy!",
"Volo.AbpIo.Domain:030010": "Kokeilulisenssin ostamiseksi sinun on ensin aktivoitava kokeilulisenssi!",
"Volo.AbpIo.Domain:030011": "Kokeilulisenssiä ei voi poistaa, kun se on ostettu!",
"Volo.AbpIo.Domain:030012": "Käyttäjällä on oikeus saada vain yksi ilmainen kokeilujakso. Olet jo käyttänyt kokeilukäyttölupaasi.",
"Volo.AbpIo.Domain:030013": "Käyttäjä, jolla on aktiivinen käyttöoikeus, ei voi aloittaa kokeilukäyttöoikeutta.",
"Volo.AbpIo.Domain:070000": "Organisaation nimi saa sisältää vain latinalaisia kirjaimia, numeroita, pisteitä ja yhdysmerkkejä!",
"Volo.AbpIo.Domain:070001": "Yrityksen nimi saa sisältää vain latinalaisia kirjaimia, numeroita, pisteitä, välilyöntejä ja yhdysmerkkejä!",
"WantToLearn?": "Haluan oppia?",
"ReadyToGetStarted?": "Oletko valmis aloittamaan?",
"JoinOurCommunity": "Liity yhteisöömme",
"GetStartedUpper": "ALOITTAA",
"GetStartedUpper": "ALOITA",
"ForkMeOnGitHub": "Haaraa minut GitHubiin",
"Features": "ominaisuudet",
"GetStarted": "Aloittaa",
"GetStarted": "Aloita",
"Documents": "Asiakirjat",
"Community": "Yhteisö",
"ContributionGuide": "Contribution Guide",
@ -39,6 +55,159 @@
"TrialLicensePeriodHasExpired": "Kokeilulisenssijaksosi päättyi {0} päivää sitten.",
"TrialLicensePeriodWillExpire": "Kokeilulisenssijaksosi vanhenee {0} päivän kuluttua.",
"TrialLicensePeriodExpireToday": "Kokeilulisenssijaksosi päättyy tänään.",
"PurchaseNow": "Osta nyt!"
"PurchaseNow": "Osta nyt!",
"LatestReleaseLogs": "Uusimmat julkaisulokit",
"RoadMap": "Tiekartta",
"FAQ": "FAQ",
"SourceCode": "Lähdekoodi",
"SeeAllPosts": "Katso kaikki viestit",
"Contribute": "Osallistu",
"LiveDemo": "Live-demo",
"GetLicense": "Hanki lisenssi",
"OpenSource": "Avoin lähdekoodi",
"WebApplication": "Verkkosovellus",
"MeetTheABP": "Tapaa ABP",
"CompleteWebDevelopment": "Täydellinen verkkokehitys",
"Platform": "Alusta",
"ABPDescription": "ABP Framework on täydellinen infrastruktuuri nykyaikaisten verkkosovellusten luomiseen noudattamalla ohjelmistokehityksen parhaita käytäntöjä.",
"StrongInfrastructure": "Vahva infrastruktuuri",
"CompleteArchitecture": "Täydellinen arkkitehtuuri",
"DeveloperFocused": "Kehittäjä-fokusoitunut",
"ShareYourExperiences": "Jaa kokemuksesi ABP Frameworkista",
"LatestPosts": "Uusimmat viestit",
"LatestVideos": "Uusimmat videot",
"Views": "Näkymät",
"LearnLatestNewsAboutABPFramework": "Hanki tietoa ABP:n tapahtumista, kuten uusista julkaisuista, ilmaisista lähteistä, julkaisuista ja paljon muuta.",
"DeveloperTools": "Kehittäjän työkalut",
"StartupTemplates": "Käynnistysmallit",
"ApplicationModules": "Sovellusmoduulit",
"UI": "UI",
"Themes": "Teemat",
"Premium": "Premium",
"PrivacyPolicy": "Tietosuojakäytäntö",
"TermsAndConditions": "Käyttöehdot",
"WouldLikeToReceiveMarketingMaterials": "Haluan saada markkinointimateriaaleja, kuten tuotetarjouksia ja erikoistarjouksia.",
"JoinOurMarketingNewsletter": "Liity markkinointiuutiskirjeeseemme",
"CommunityPrivacyPolicyConfirmation": "Hyväksyn käyttöehdot ja <a class=\"text-white fw-6 text-decoration-underline opacity-50\" href=\"https://commercial.abp.io/Privacy\">tietosuojakäytännön</a> .",
"WouldLikeToReceiveNotification": "Haluan saada viimeisimmät uutiset abp.io-sivustoilta.",
"CommercialNewsletterConfirmationMessage": "Hyväksyn <a class=\"text-white fw-6 text-decoration-underline opacity-50\" href=\"https://commercial.abp.io/TermsConditions\">käyttöehdot</a> ja <a class=\"text-white fw-6 text-decoration-underline opacity-50\" href=\"https://commercial.abp.io/Privacy\">tietosuojakäytännön</a>.",
"FreeDDDEBook": "Ilmainen DDD e-kirja",
"AdditionalServices": "Lisäpalvelut",
"Learn": "Opi",
"AccountOverview": "Tilin yleiskatsaus",
"MyOrganizations": "Omat organisaatiot",
"MySupportQuestions": "Tukikysymykseni",
"MyProfile": "Profiilini",
"Logout": "Kirjaudu ulos",
"Home": "Koti",
"Posts": "Viestit",
"Videos": "Videot",
"JoinTheABPCommunity": "Liity ABP-yhteisöön",
"SubmitYourPost": "Lähetä viestisi",
"Modules": "Moduulit",
"Tools": "Työkalut",
"Pricing": "Hinnoittelu",
"ChangeLogs": "Muutoslokit",
"SubscribeToNewsletter": "Tilaa uutiskirje",
"SubscribeToNewsletterDescription": "Hanki tietoa ABP:n tapahtumista, kuten uusista julkaisuista, ilmaisista lähteistä, julkaisuista ja muusta.",
"EmailAddress": "Sähköpostiosoite",
"Subscribe": "Tilaa",
"WelcomeToABP": "Tervetuloa ABP:hen",
"EULA": "EULA",
"ABPCommercialIntroductionMessage": "Valmiiksi rakennetut sovellusmoduulit, edistyneet käynnistysmallit, nopeat sovelluskehitystyökalut, ammattikäyttöliittymäteemat ja ensiluokkainen tuki.",
"MasteringAbpFrameworkEBook": "ABP-kehyksen hallitseminen",
"MasteringTheABPFrameworkExplanation": "Tämä ABP Frameworkin luojan kirjoittama kirja auttaa sinua saamaan täydellisen käsityksen viitekehyksestä ja nykyaikaisista verkkosovelluskehitystekniikoista.",
"Speakers": "Esiintyjät",
"PreviousEvents": "Aiemmat tapahtumat",
"WatchTheEvent": "Katso Tapahtuma",
"RegisterNow": "Rekisteröidy nyt",
"ThereIsNoEvent": "Tapahtumaa ei ole.",
"Events": "Tapahtumat",
"Volo.AbpIo.Domain:080000": "Ostokohde nimeltä \"{Name}\" on jo olemassa",
"MasteringAbpFrameworkBook": "Kirja: Mastering ABP Framework",
"ABPIO-CommonPreferenceDefinition": "Hanki viimeisimmät uutiset ABP Platformista, kuten uudet viestit, tapahtumat ja paljon muuta.",
"BuiltOn": "Rakennettu",
"AbpFramework": "ABP-kehys",
"Volo.AbpIo.Domain:080001": "Aloitusaika ei voi olla suurempi kuin lopetusaika",
"Enum:BookType:0": "Mastering ABP Framework",
"Enum:PurchasePlatform:0": "Amazon",
"Enum:PurchasePlatform:1": "Packt",
"Copied": "Kopioitu!",
"CouldNotCopy": "Ei voitu kopioida!",
"CopyNotSupportByYourBrowser": "Tämä ominaisuus ei toimi käyttämässäsi selaimessa.",
"City": "Kaupunki",
"ZipCode": "Postinumero",
"Address": "Osoite",
"Homepage": "Kotisivu",
"Year": "vuosi",
"Copyright": "Tekijänoikeus © <a href=\"{0}\" target=\"_blank\">{1}</a>",
"DomainDrivenDesign": "Domain Driven Design",
"CrossCuttingConcerns": "Cross Cutting Concerns",
"AbpCommunity": "ABP-yhteisö",
"Footer_GithubStarCount": "{0} tähteä GitHubissa",
"Footer_NugetDownloadCount": "{0} Lataukset NuGetissä",
"AbpDescription": "ABP on avoimen lähdekoodin sovelluskehys, joka keskittyy AspNet Core -pohjaiseen verkkosovelluskehitykseen. Älä toista itseäsi, vaan keskity omaan yrityskoodiisi.",
"Layout_AbpFramework_MetaTitle": "ABP Framework - avoimen lähdekoodin verkkosovelluskehys",
"CommunityTalks_CountdownDays": "Pv",
"CommunityTalks_CountdownHours": "T",
"CommunityTalks_CountdownMinutes": "Min",
"CommunityTalks_CountdownSeconds": "Sek",
"SeePreviousEvents": "Katso aiemmat tapahtumat",
"CookieConsent_Accept": "Hyväksy",
"CookieConsent_Explanation_1": "Käytämme evästeitä tarjotaksemme sinulle parhaan kokemuksen verkkosivustollamme.",
"CookieConsent_Explanation_2": "Jos jatkat selaamista, hyväksyt <a href=\"@Url.Page(\"/Privacy\")\">tietosuojakäytäntömme ja evästekäytäntömme</a>.",
"Error_Page_400_Title": "Pyydetyn sivun näyttämisessä oli ongelma.",
"Error_Page_400_Description_1": "Yleensä tämä tarkoittaa, että pyyntöäsi käsiteltäessä tapahtui odottamaton virhe.",
"Error_Page_400_Description_2": "Jos ongelma jatkuu, ota meihin yhteyttä osoitteeseen <a href=\"mailto:info@abp.io\">info@abp.io</a>, niin autamme sinua pääsemään eteenpäin.",
"GoToHomepage": "Mene kotisivulle",
"Error_Page_404_Title": "Sivua ei löytynyt!",
"Error_Page_404_Description_1": "Tämä ei ole etsimäsi verkkosivu.",
"Error_Page_500_Title": "Näyttää siltä, että jotain meni pieleen!",
"Error_Page_500_Description_1": "Seuraamme näitä virheitä automaattisesti, mutta jos ongelma jatkuu, <br /> ota meihin yhteyttä. Kokeile sillä välin sivun päivittämistä.",
"Error_Page_500_Description_2": "Ota meihin yhteyttä osoitteessa <a href=\"mailto:info@abp.io\" target=\"_blank\">info@abp.io</a>.",
"Books": "Kirjat",
"ABPDiscordServer": "ABP Discord-palvelin",
"ABPCommunityTalks": "ABP Community Talks",
"ABPCommunityPosts": "ABP-yhteisön viestit",
"BuyAndGetMonths": "OSTA 12 KUUKAUTA, <span class=\"text-info\">SAAT 14 KUUKAUTA!</span>",
"GetYourDeal": "Hanki tarjouksesi",
"BuyOrRenewLicense": "Osta tai uusi lisenssi nyt ja saat 2 lisäkuukautta!",
"BuyOrRenewLicenseToGetExtra2Months": "Osta tai uusi lisenssi nyt ja saat 2 lisäkuukautta! KIIREHDI! ⏰ Viimeinen päivä: {0}",
"HurryUp": "KIIREHDI!",
"LastDay": "Viimeinen päivä: {0}",
"BuyNewLicenseBetweenDatesToGetBenefit": "Osta uusi lisenssi välillä {0} - {1}, niin saat 2 lisäkuukautta!",
"CheckAllCommunityTalks": "Tarkista kaikki yhteisön viestit",
"ReadMore": "Lue lisää",
"Post": "Viesti",
"ExploreTheContentsCreatedByTheCoreABPTeamAndTheABPCommunity": "Tutustu ABP-ydintiimin ja ABP-yhteisön luomaan sisältöön.",
"WelcomeFallCampaign": "Tervetuloa syksyn kampanjaan!",
"GiveAwayForNewPurchases": "Sovelluskehityksen luokkahuonekoulutus jaetaan uusien ostosten yhteydessä!",
"BlackFriday": "<strong>MUSTA</strong> <span>PERJANTAI</span>",
"ValidForExistingCustomers": "Voimassa myös <br> olemassa oleville asiakkaille!",
"CampaignBetweenDates": "{0} <br>- {1}",
"SaveUpTo": "<span>SÄÄSTÄ</span> JOPA<strong>${0}K</strong>",
"ImplementingDDD": "Implementing Domain Driven Design",
"ExploreTheEBook": "Tutustu e-kirjaan",
"ExploreTheBook": "Tutustu Kirjaan",
"ConsultantType": "Konsultointityyppi",
"Expert": "ABP-asiantuntija",
"Partner": "ABP kumppani",
"Industry": "Ala",
"Location": "Sijainti",
"Contact": "Ottaa yhteyttä",
"Partner_Year": "Kumppanuuden vuosi",
"Info": "Tiedot",
"SpokenLanguages": "Puhutut kielet",
"SocialMedia": "Sosiaalinen media",
"Activity": "Toiminta",
"Type": "Tyyppi",
"Contribution": "Osallistuminen",
"WhoWeAre": "Keitä olemme",
"Icons": "Kuvakkeet",
"Url": "URL-osoite",
"Icon": "Kuvake",
"RecentActivities": "Viimeaikaiset toimet",
"SpringCampaign": "Tervetuloa kevätaleen!",
"SpringCampaign2": "<span>Rajoitetun <br> ajan tarjous!</span>"
}
}

2
abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/ar.json

@ -1,7 +1,7 @@
{
"culture": "ar",
"texts": {
"AbpTitle": "إطار عمل ABP - إطار عمل تطبيق ويب مفتوح المصدر",
"AbpTitle": "قراءة جميع مشاركات المدونة",
"AbpDescription": "ABP هو إطار عمل مفتوح المصدر يركز على تطوير تطبيقات الويب القائمة على AspNet Core. لا تكرر نفسك ، ركز على كود عملك الخاص."
}
}

2
abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/en.json

@ -1,7 +1,7 @@
{
"culture": "en",
"texts": {
"AbpTitle": "ABP Framework - Open Source Web Application Framework",
"AbpTitle": "Read All Blog Posts",
"AbpDescription": "ABP is an open source application framework focused on AspNet Core based web application development. Don't repeat yourself, focus on your own business code.",
"AbpDefinition": "ABP blog for .NET development, cross-platform, ASP.NET application templates, ABP-related news and more..."
}

8
abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/fi.json

@ -0,0 +1,8 @@
{
"culture": "fi",
"texts": {
"AbpTitle": "ABP Framework - avoimen lähdekoodin verkkosovelluskehys",
"AbpDescription": "ABP on avoimen lähdekoodin sovelluskehys, joka keskittyy AspNet Core -pohjaiseen verkkosovelluskehitykseen. Älä toista itseäsi, vaan keskity omaan yrityskoodiisi.",
"AbpDefinition": "ABP-blogi .NET-kehityksestä, useista alustoista, ASP.NET-sovellusmalleista, ABP:hen liittyvistä uutisista ja muusta..."
}
}

2
abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/tr.json

@ -1,7 +1,7 @@
{
"culture": "tr",
"texts": {
"AbpTitle": "ABP Framework - Açık Kaynak Web Uygulama Çerçevesi",
"AbpTitle": "Tüm Blog Yazılarını Oku",
"AbpDescription": "ABP, AspNet Core tabanlı web uygulaması geliştirmeye odaklanan açık kaynaklı bir uygulama çerçevesidir. Kendinizi tekrar etmeyin, kendi iş kodunuza odaklanın."
}
}

2
abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/zh-Hans.json

@ -1,7 +1,7 @@
{
"culture": "zh-Hans",
"texts": {
"AbpTitle": "ABP 框架 - 开源 Web 应用程序框架",
"AbpTitle": "阅读所有博客文章",
"AbpDescription": "ABP 是一个开源应用程序框架,专注于基于 AspNet Core 的 Web 应用程序开发。 Don't repeat yourself,专注于自己的业务代码。",
"AbpDefinition": ".NET开发的ABP博客,跨平台,ASP.NET应用程序模板,ABP相关新闻等..."
}

16
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json

@ -48,7 +48,7 @@
"LiveDemo": "عرض حي",
"GetLicence": "احصل على ترخيص",
"Application": "تطبيق",
"StartupTemplates": "قوالب بدء التشغيل",
"StartupTemplates": "قوالب بدء تشغيل ABP",
"Startup": "بدء",
"Templates": "القوالب",
"Developer": "مطور",
@ -489,7 +489,7 @@
"AddBasket": "إضافة إلى السلة",
"SendTrainingRequest": "إرسال طلب تدريب",
"OnlyEnglishVersionOfThisDocumentIsTheRecentAndValid": "* النسخة الإنجليزية من هذه الوثيقة هي الأحدث وستتم العةدة اليها خلال أي نزاع.",
"Pricing_Page_Title": "الخطط والتسعير",
"Pricing_Page_Title": "التسعير والخطط",
"Pricing_Page_Description": "اختر الميزات والوظائف التي يحتاجها عملك اليوم. شراء رخصة تجارية ABP وإنشاء مشاريع غير محدودة.",
"Pricing_Page_HurryUp": "أسرع!",
"Pricing_Page_BuyLicense": "اشترِ رخصة من <strong>أسعار 2021</strong> حتى 16 يناير!",
@ -599,12 +599,11 @@
"Faq_Page_Currency": "العملة",
"Faq_Page_VatNumber": "رقم ضريبة القيمة المضافة",
"Faq_Page_OtherCurrenciesInfo": "للعملات الأخرى ، انظر الى <a href='{0}'>جميع الحسابات</a>",
"ModuleDetail_Page_Title": "تفاصيل الوحدة - {0}",
"ProjectCreatedSuccess_Page_Title": "تم إنشاء مشروعك",
"ProjectCreatedSuccess_Page_Description": "تم إنشاء مشروع ABP الخاص بك بنجاح!",
"Suite_Page_Title": "ABP Suite - إنشاء صفحات CRUD",
"Suite_Page_Title": "جناح ABP",
"Suite_Page_Description": "يوفر ABP التجاري أدوات تطوير سريعة للتطبيقات لزيادة إنتاجية المطورين. يتيح لك ABP Suite إنشاء صفحات CRUD بسهولة.",
"Themes_Page_Title": "سمات واجهة المستخدم الحديثة والوظيفية",
"Themes_Page_Title": "ثيمات ABP",
"Themes_Page_Description": "يوفر ABP التجاري العديد من سمات واجهة المستخدم الاحترافية والحديثة. أنشئ عرضًا تجريبيًا مجانيًا للحصول على عرض سريع لشكل واجهة المستخدم.",
"Tools_Page_Title": "أدوات تطوير التطبيقات السريعة",
"Tools_Page_Description": "يوفر ABP التجاري أدوات تطوير سريعة للتطبيقات لزيادة إنتاجية المطورين. يتيح لك ABP Suite إنشاء صفحات CRUD بسهولة.",
@ -781,6 +780,11 @@
"SupportPolicyFaqTitle": "ما هي سياسة الدعم الخاصة بك؟",
"SupportPolicyFaqExplanation": "نحن ندعم فقط الإصدار الرئيسي النشط والسابق. لا نضمن إصدار تصحيح للإصدارات الرئيسية الثالثة والأقدم. على سبيل المثال ، إذا كان الإصدار النشط هو 7.0.0 ، فسنصدر إصدارات تصحيح لكل من 6.x.x و 7.x.x. إلى جانب ذلك ، نحن نقدم الدعم فقط لإطار عمل ABP والقضايا التجارية المتعلقة بـ ABP. هذا يعني أنه لا يتم تقديم أي دعم لتطبيقات الطرف الثالث والخدمات السحابية والمكتبات الطرفية الأخرى التي تستخدمها منتجات ABP. سنبذل جهودًا معقولة تجاريًا لتزويد عملائنا بالدعم الفني خلال ساعات العمل الرسمية لـ \"Volosoft Bilisim A.S\". من ناحية أخرى ، نحن لا نلتزم بوقت استجابة اتفاقية مستوى الخدمة (SLA) ، لكننا سنحاول الرد على المشكلات الفنية في أسرع وقت ممكن خلال ساعات العمل الرسمية لدينا. ما لم يتم إبرام اتفاقية خاصة مع العميل ، فإننا نقدم الدعم فقط على https://support.abp.io. لدينا أيضًا دعم خاص بالبريد الإلكتروني ، وهو متاح فقط لحاملي تراخيص المؤسسة.",
"WhyUseAbpIoPlatform": "لماذا يجب علي استخدام منصة ABP.IO بدلاً من إنشاء حل جديد من البداية؟",
"WhyUseAbpIoPlatformFaqExplanation": "انظر الى <a href=\"https://docs.abp.io/en/commercial/latest/why-abp-io-platform \"> هذا المستند </a> للحصول على شرح مفصل لسبب استخدام ABP.IO Platform لفائدته الكبيرة بدلًا من القيام بكل شيء بنفسك."
"WhyUseAbpIoPlatformFaqExplanation": "انظر الى <a href=\"https://docs.abp.io/en/commercial/latest/why-abp-io-platform \"> هذا المستند </a> للحصول على شرح مفصل لسبب استخدام ABP.IO Platform لفائدته الكبيرة بدلًا من القيام بكل شيء بنفسك.",
"EulaPageTitle": "اتفاقية ترخيص المستخدم النهائي (EULA)",
"PrivacyPolicyPageTitle": "سياسة الخصوصية - سياسة ملفات تعريف الارتباط",
"TermsConditionsPageTitle": "الأحكام والشروط",
"TrainingsPageTitle": "حزم تدريب ABP",
"ModulesPageTitle": "وحدات تطبيق ABP سابقة البناء"
}
}

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

@ -160,7 +160,7 @@
"SearchQuestionPlaceholder": "Search in frequently asked questions",
"WhatIsTheABPCommercial": "What is ABP Commercial?",
"WhatAreDifferencesThanAbpFramework": "What are the differences between the open source ABP Framework and ABP Commercial?",
"AbpCommercialMetaTitle": "ABP Commercial - Complete Web Development Platform : {0} | ABP Commercial",
"AbpCommercialMetaTitle": " {0} | ABP Commercial",
"AbpCommercialMetaDescription": "ABP Commercial is a set of pre-built application modules, rapid development tooling, UI themes and services built on top of the open-source ABP framework.",
"ABPCommercialExplanation": "ABP Commercial is a set of premium modules, tools, themes and services that are built on top of the open source <a target=\"_blank\" href=\"{0}\">ABP framework</a>. ABP Commercial is being developed and supported by the same team behind the ABP framework.",
"WhatAreDifferencesThanABPFrameworkExplanation": "<p> <a target=\"_blank\" href=\"{0}\">ABP framework</a> is a modular, themeable, microservice compatible application development framework for ASP.NET Core. It provides a complete architecture and a strong infrastructure to let you focus on your own business code rather than repeating yourself for every new project. It is based on the best practices of software development and popular tools you already know. </p> <p> ABP framework is completely free, open source and community-driven. It also provides a free theme and some pre-built modules (e.g. identity management and tenant management).</p>",
@ -511,7 +511,7 @@
"AddBasket": "Add to Basket",
"SendTrainingRequest": "Send Training Request",
"OnlyEnglishVersionOfThisDocumentIsTheRecentAndValid": "* The English version of this document is the most up-to-date and the English version will prevail in any dispute.",
"Pricing_Page_Title": "Plans & Pricing",
"Pricing_Page_Title": "Pricing & Plans",
"Pricing_Page_Description": "Choose the features and functionality your business needs today. Buy an ABP Commercial license and create unlimited projects.",
"Pricing_Page_HurryUp": "Hurry Up!",
"Pricing_Page_BuyLicense": "Buy a license at <strong>2021 prices</strong> until January 16!",
@ -597,7 +597,7 @@
"Purchase_PricePerDeveloper": "<span>{0} {1}</span> per developer",
"Purchase_IncludedDeveloperInfo": "{0} {1} included.",
"Purchase_LicenseExtraDeveloperPurchaseMessage": "The <span class=\"fw-6\">{0} license</span> contains {1} developer(s). You can add additional developers now or later.",
"StartupTemplates_Page_Title": "The Startup Templates",
"StartupTemplates_Page_Title": "ABP Startup Templates",
"StartupTemplates_Page_Description": "ABP Commercial allows you to build solutions with any level of complexity. It provides two main pre-built startup solutions. You can select the one close to your requirements and build your own custom solution on top of it.",
"MicroserviceStartupSolutionForDotnet": "Microservice Startup Solution for .NET",
"MonolithSolutionForDotnet": "Monolith (modular) Solution for .NET",
@ -622,12 +622,11 @@
"Faq_Page_Currency": "Currency",
"Faq_Page_VatNumber": "VAT number",
"Faq_Page_OtherCurrenciesInfo": "For other currencies, see <a href='{0}'>all accounts</a>",
"ModuleDetail_Page_Title": "Module Detail - {0}",
"ProjectCreatedSuccess_Page_Title": "Your project created",
"ProjectCreatedSuccess_Page_Description": "Your ABP project created successfully!",
"Suite_Page_Title": "ABP Suite - Create CRUD Pages",
"Suite_Page_Title": "ABP Suite",
"Suite_Page_Description": "ABP Commercial provides rapid application development tooling to increase developer productivity. ABP Suite allows you to create CRUD pages easily.",
"Themes_Page_Title": "Modern and Functional UI Themes",
"Themes_Page_Title": "ABP Themes",
"Themes_Page_Description": "ABP Commercial provides multiple professional, modern UI themes. Create a free demo to have a quick view of what the UI looks like.",
"Tools_Page_Title": "Rapid Application Development Tools",
"Tools_Page_Description": "ABP Commercial provides rapid application development tooling to increase developer productivity. ABP Suite allows you to create CRUD pages easily.",
@ -821,6 +820,11 @@
"ExpirationDate": "Expiration Date",
"SpringCampaignDiscount": "Spring Campaign Discount",
"WhyUseAbpIoPlatform": "Why should I use the ABP.IO Platform instead of creating a new solution from scratch?",
"WhyUseAbpIoPlatformFaqExplanation": "See <a href=\"https://docs.abp.io/en/commercial/latest/why-abp-io-platform \"> that document </a> for a detailed explanation of why using ABP.IO Platform has a significant advantage over doing everything yourself."
"WhyUseAbpIoPlatformFaqExplanation": "See <a href=\"https://docs.abp.io/en/commercial/latest/why-abp-io-platform \"> that document </a> for a detailed explanation of why using ABP.IO Platform has a significant advantage over doing everything yourself.",
"EulaPageTitle": "End User License Agreement (EULA)",
"PrivacyPolicyPageTitle": "Privacy Policy - Cookie Policy",
"TermsConditionsPageTitle": "Terms and Conditions",
"TrainingsPageTitle": "ABP Training Packages",
"ModulesPageTitle": "ABP Pre-Built Application Modules"
}
}

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

@ -9,15 +9,18 @@
"QuestionCount": "Jäljellä olevat/yhteensä kysymykset",
"Unlimited": "Rajoittamaton",
"Owners": "Omistajat",
"Owner": "Omistaja",
"AddMember": "Lisää jäsen",
"AddOwner": "Lisää omistaja",
"AddDeveloper": "Lisää kehittäjä",
"AddNewOwner": "Lisää uusi omistaja",
"AddNewDeveloper": "Lisää uusi kehittäjä",
"UserName": "Käyttäjätunnus",
"Name": "Nimi",
"EmailAddress": "Sähköpostiosoite",
"Developers": "Kehittäjät",
"LicenseType": "Lisenssi-tyyppi",
"Manage": "Hallitse",
"SetDefault": "Aseta oletukseksi",
"DefaultOrganization": "Oletus",
"StartDate": "Aloituspäivämäärä",
"EndDate": "Päättymispäivä",
"Modules": "Moduulit",
@ -60,8 +63,6 @@
"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>",
@ -127,6 +128,8 @@
"TellUsWhatYouNeed": "Kerro meille mitä tarvitset.",
"YourMessage": "Viestisi",
"YourFullName": "Koko nimesi",
"FirstNameField": "Etunimi",
"LastNameField": "Sukunimi",
"EmailField": "Sähköpostiosoite",
"YourEmailAddress": "Sähköpostiosoitteesi",
"HowMayWeHelpYou": "Kuinka voimme auttaa sinua?",
@ -141,7 +144,7 @@
"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.",
"ApplicationTemplateArchitecture": "Tämä sovellusmalli tukee myös monikerros 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",
@ -157,6 +160,8 @@
"SearchQuestionPlaceholder": "Hae usein kysyttyjä kysymyksiä",
"WhatIsTheABPCommercial": "Mikä on ABP-kauppa?",
"WhatAreDifferencesThanAbpFramework": "Mitä eroja on avoimen lähdekoodin ABP Frameworkilla ja ABP Commercialilla?",
"AbpCommercialMetaTitle": "ABP Commercial - täydellinen verkkokehitysalusta: {0} | ABP Commercial",
"AbpCommercialMetaDescription": "ABP Commercial on joukko valmiita sovellusmoduuleja, nopean kehityksen työkaluja, käyttöliittymäteemoja ja palveluita, jotka on rakennettu avoimen lähdekoodin ABP-kehyksen päälle.",
"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>",
@ -178,6 +183,7 @@
"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>Pidentäminen:</strong> pidentämällä/uusimalla lisenssiä saat jatkossakin premium-tuen ja saat isoja tai pieniä päivityksiä moduuleille ja teemoille. Lisäksi voit jatkaa uusien projektien luomista. Ja voit silti käyttää ABP Suitea, joka nopeuttaa kehitystäsi. Kun jatkat lisenssiäsi, lisenssin voimassaolopäivään lisätään 1 vuosi. <hr/><strong>Päivitys:</strong> Päivittämällä lisenssisi siirryt korkeampaan lisenssisuunnitelmaan, jonka avulla saat lisäetuja. Tutustu <a href=\"/pricing\">lisenssien vertailutaulukkoon</a> nähdäksesi erot lisenssisuunnitelmien välillä. <strong>Toisaalta, kun päivität, lisenssisi viimeinen voimassaolopäivä ei muutu!</strong> Jos haluat pidentää lisenssin päättymispäivää, sinun on jatkettava lisenssiäsi.",
"LicenseRenewalCost": "Mitkä ovat lisenssin uusimiskustannukset vuoden kuluttua?",
"LicenseRenewalCostExplanation": "Standardin tiimilisenssin uusimishinta (pidennys) on ${0}, normaalin yrityslisenssin hinta on {1} $ ja normaalin yrityslisenssin hinta on {2} $. Jos olet jo asiakas, <a href='{3}' target='_blank'>kirjaudu sisään tiliisi</a> ja tarkista käytettävissä olevat uusimishinnat.",
"HowDoIRenewMyLicense": "Kuinka uusin lisenssin?",
@ -189,9 +195,20 @@
"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 -lisenssi on <a href=\"{0}\" target=\"_blank\">ikuinen lisenssi</a>. Kun lisenssi päättyy, voit jatkaa projektisi kehittämistä. Etkä ole velvollinen uusimaan lisenssiäsi. Lisenssisi mukana tulee yhden vuoden päivitys- ja tukisuunnitelma suoraan pakkauksesta. Jotta voit jatkossakin saada uusia ominaisuuksia, suorituskykyparannuksia, vikakorjauksia, tukea ja jatkaa ABP Suiten käyttöä, sinun on uusittava lisenssi. Kun lisenssi päättyy;",
"WhatHappensWhenLicenseEndsExplanation2": "Et voi luoda uusia ratkaisuja ABP Commercialin avulla, mutta voit jatkaa olemassa olevien sovellusten kehittämistä ikuisesti.",
"WhatHappensWhenLicenseEndsExplanation3": "Voit saada päivityksiä moduuleihin ja teemoihin MINOR-versiossasi (lukuun ottamatta RC- tai Preview-versioita). Esimerkiksi: jos käytät moduulin v3.2.0 versiota, voit silti saada päivityksiä kyseisen moduulin v3.2.x versiolle (v3.2.1, v3.2.5... jne.). Mutta et voi saada päivityksiä seuraavaan pää- tai pienempään versioon (kuten v3.3.0, v3.3.3.3, 4.x.x.. jne.). Esimerkiksi, kun lisenssisi päättyi, uusin julkaisu oli v4.4.3, ja myöhemmin julkaistiin sekä 4.4.4.4 että 4.5.0-versio, voit käyttää v4.4.X-versiota, mutta et v4.5.X-versiota.",
"WhatHappensWhenLicenseEndsExplanation4": "Et voi asentaa uusia moduuleja ja teemoja, jotka on lisätty ABP Commercial -alustaan lisenssisi päätyttyä.",
"WhatHappensWhenLicenseEndsExplanation5": "Et voi käyttää ABP Suitea.",
"WhatHappensWhenLicenseEndsExplanation6": "Et voi enää saada <a href=\"{0}\">premium-tukea</a>.",
"WhatHappensWhenLicenseEndsExplanation7": "Voit jatkaa (uusia) lisenssiäsi, jos haluat jatkaa näiden etujen saamista. Jos jatkat lisenssiäsi <strong>yhden kuukauden</strong> kuluessa lisenssin vanhenemisesta, seuraavat alennukset sovelletaan: Tiimilisenssi {0}; Toimilupa {1}; Yrityslisenssi {2}.",
"discountForYears": "{0}% de remise pendant {1} an(s)",
"WhatHappensWhenLicenseEndsExplanation8": "Luomiasi ABP-projekteja ei tallenneta palvelimillemme. Siksi on sinun vastuullasi säilyttää lataamasi lähdekoodi. Kun lisenssisi vanhenee, luotua ABP-projektin lähdekoodia ei ole mahdollista saada.",
"WhenShouldIRenewMyLicense": "Milloin minun pitäisi uusia lisenssini?",
"WhenShouldIRenewMyLicenseExplanation": "Jos uusit lisenssisi <strong>{3} päivää</strong> kuluessa lisenssin vanhenemisesta, seuraavat alennukset sovelletaan: Team License {0} ; Business License {1} ; Enterprise License {2} ; . Jos uusit lisenssisi <strong>{3} päivää</strong> lisenssin päättymispäivän jälkeen, uusimishinta on sama kuin lisenssin ostohinta, eikä uusimisesta saa alennusta.",
"WhenShouldIRenewMyLicenseExplanation": "Jos uusit lisenssisi <strong>1 kuukauden</strong> kuluessa lisenssin vanhenemisesta, seuraavat alennukset sovelletaan: Team License {0} ; Business License {1} ; Enterprise License {2} ; . Jos uusit lisenssisi <strong>1 kuukauden</strong> lisenssin päättymispäivän jälkeen, uusimishinta on sama kuin lisenssin ostohinta, eikä uusimisesta saa alennusta.",
"TrialPlan": "Onko sinulla kokeilusuunnitelma?",
"TrialPlanExplanation": "Ei, ABP Commercialille ei ole kokeiluversiota. Voit tarkistaa yhteisön versiosta ymmärtääksesi koodin laadun ja lähestymistavat. Tarjoamme myös 30 päivän rahat takaisin -takuun Team-lisenssille ilman kysymyksiä! Voit pyytää hyvitystä ensimmäisten 30 päivän sisällä. Tarjoamme 60 %:n hyvityksen 30 päivän kuluessa Business- ja Enterprise-lisensseistä. Tämä johtuu siitä, että Business- ja Enterprise-lisenssit sisältävät kaikkien moduulien ja teemojen täyden lähdekoodin.",
"DoYouAcceptBankWireTransfer": "Hyväksytkö pankkisiirron?",
"DoYouAcceptBankWireTransferExplanation": "Kyllä, hyväksymme pankkisiirron.<br />Kun olet lähettänyt lisenssimaksun pankkisiirrolla, lähetä meille sähköposti osoitteeseen accounting@abp.io kuittisi ja pyydetty lisenssityyppi. Kansainväliset pankkitilitietomme:",
"HowToUpgrade": "Kuinka päivittää olemassa olevia sovelluksia, kun uusi versio on saatavilla?",
@ -348,61 +365,462 @@
"WeWillSendYouADownloadLink": "Linkki e-kirjan latausta varten on lähetetty osoitteeseen {0}.<br/> Tarkista postilaatikkosi/roskapostisi/roskapostilaatikot!",
"InvalidFormInputs": "Ole hyvä ja kirjoita lomakkeessa ilmoitetut voimassa olevat tiedot.",
"DDDBookEmailBody": "Kiitos. <br /> Lataa kirjasi <a href=\"{0}\">napsauttamalla tätä</a>.",
"FreeDDDEBook": "Ilmainen DDD e-kirja",
"StartFree": "Aloita ilmaiseksi",
"FreeTrial": "Ilmainen kokeilu",
"AcceptsMarketingCommunications": " Kyllä, haluaisin saada ABP Commercial -markkinointiviestintää.",
"PurposeOfUsage": "Käytön tarkoitus",
"Industry": "Ala",
"Choose": "- Valitse -",
"CompanyOrganizationName": "Yrityksen/organisaation nimi",
"CompanySize": "Yhtiön koko",
"Next": "Seuraava",
"StartTrial": "Aloita ilmainen kokeilujaksoni",
"ContactUsIssues": "Ota yhteyttä, jos sinulla on ongelmia",
"ContactUsQuestions": "Ota yhteyttä, jos sinulla on kysyttävää",
"TrialActivatedWarning": "Käyttäjällä on oikeus vain yhteen ilmaiseen kokeilujaksoon. Olet jo käyttänyt kokeilujaksosi.",
"ActivationRequirement": "Olet viimeisen askeleen päässä kokeilujakson aloittamisesta.<br>Tarkistettuasi tietosi aktivoimme lisenssisi. Kun käyttölupasi on aktivoitu, lähetämme sähköpostin osoitteeseen <b>{0}</b>. Älä huoli, tämä prosessi ei vie kauan!",
"SaveAndDownload": "Tallenna ja lataa",
"CompanyNameValidationMessage": "Yrityksen nimi on liian pitkä!",
"AddressValidationMessage": "Osoite on liian pitkä!",
"TaxNoValidationMessage": "TAX/ALV-numero on liian pitkä!",
"NotesValidationMessage": "Huomautuskenttä on liian pitkä!",
"CheckYourBillingInfo": "Voit luoda laskun vain kerran! Tarkista laskutustietosi ennen laskun luomista.",
"Volo.AbpIo.Commercial:030000": "Olet jo käyttänyt kokeilujaksosi.",
"Volo.AbpIo.Commercial:030001": "Tämä organisaation nimi on jo olemassa.",
"StartYourFreeTrial": "Aloita ilmainen kokeilujaksosi",
"TrialLicenseModelInvalidErrorMessage": "Yksi seuraavista kentistä on virheellinen: maan nimi, yrityksen koko, toimiala tai käyttötarkoitus.",
"Trial": "Oikeudenkäynti",
"Purchased": "Osti",
"PurchaseLicense": "Osta {0} lisenssi",
"PurchaseNow": "Osta nyt",
"PurchaseTrialLicenseMessage": "Lisenssisi viimeinen voimassaolopäivä on {0}. <br> Jos haluat jatkaa ilmaisen kokeilujakson aikana luomiesi projektien käyttöä, sinun on vaihdettava lisenssiavaimet <code>appsettings.secrets.json</code>-tiedostoissasi. Tässä on lisenssiavaimesi:",
"TrialLicenseExpireMessage": "Käytät kokeiluversiota, ja kokeilukäyttölupasi vanhenee {0}.",
"TryForFree": "Kokeile ilmaiseksi",
"TrialLicenseExpiredInfo": "Kokeilulisenssijaksosi on umpeutunut!",
"CommercialNewsletterConfirmationMessage": "Hyväksyn <a href=\"https://commercial.abp.io/TermsConditions\">käyttöehdot</a> ja <a href=\"https://commercial.abp.io/Privacy\">tietosuojakäytännön </a>.",
"ContinueWithNewOrganization": "Jatka uudessa organisaatiossa",
"DowngradeLicensePlan": "Voinko tulevaisuudessa vaihtaa alempaan lisenssisuunnitelmaan?",
"DowngradeLicensePlanExplanation": "Et voi alentaa olemassa olevaa lisenssisuunnitelmaa. Voit kuitenkin ostaa uuden alemman lisenssisuunnitelman ja jatkaa kehitystyötäsi uudella lisenssillä. Kun olet ostanut alemman lisenssin, sinun tarvitsee vain kirjautua uuteen lisenssisuunnitelmaan ABP CLI -komennolla: ` abp login <käyttäjätunnus> -o <organisaatio> `.",
"LicenseTransfer": "Voiko lisenssin siirtää kehittäjältä toiselle?",
"LicenseTransferExplanation": "Kyllä! Kun ostat lisenssin, sinusta tulee lisenssin haltija, joten sinulla on pääsy organisaation hallintasivulle. Organisaatiolla on omistaja- ja kehittäjäroolit. Omistajat voivat hallita kehittäjäpaikkoja ja määrittää kehittäjiä. Kukin nimetty kehittäjä kirjautuu ABP CLI -komennolla järjestelmään, ja sillä on kehitys- ja tukioikeudet.",
"UserOwnerDescription": "Organisaation 'omistaja' on tämän tilin järjestelmänvalvoja. Hän johtaa organisaatiota ostamalla lisenssejä ja allokoimalla kehittäjiä. 'Omistaja' ei voi kirjoittaa koodia ABP Commercial -projekteihin, ladata ABP-näyteprojekteja eikä esittää kysymyksiä tukisivustolla. Jos haluat tehdä kaikki nämä, sinun on lisättävä itsesi myös kehittäjäksi.",
"UserDeveloperDescription": "'Kehittäjät' voivat kirjoittaa koodia ABP Commercial -projekteihin, ladata ABP-näyteprojekteja ja esittää kysymyksiä tukisivustolla. Toisaalta 'kehittäjät' eivät voi hallita tätä organisaatiota.",
"RemoveCurrentUserFromOrganizationWarningMessage": "Olet poistamassa itsesi omasta organisaatiostasi. Et voi enää hallinnoida tätä organisaatiota, vahvistatko?",
"RenewExistingOrganizationOrCreateNewOneMessage": "Voit uusia organisaatiosi lisenssin napsauttamalla alla olevaa \"Pidennä nyt\" -painiketta, jolloin voit pidentää lisenssin voimassaolopäivää yhdellä vuodella. Jos jatkat maksamista, sinulla on uusi organisaatio. Haluatko jatkaa uudessa organisaatiossa?",
"PurchaseTrialOrganizationOrCreateNewOneMessage": "Sinulla on koekäyttölupa. Voit ostaa kokeiluversion lisenssin napsauttamalla Osta nyt -painiketta. Jos jatkat maksamista, sinulla on uusi organisaatio. Haluatko jatkaa uudessa organisaatiossa?",
"ExtendNow": "Laajenna nyt",
"CreateNewOrganization": "Luo uusi organisaatio",
"RenewLicenseEarly": "Jos uusin ajokorttini etuajassa, saanko koko vuoden?",
"RenewLicenseEarylExplanation": "Kun uusit lisenssisi ennen lisenssin vanhenemispäivää, lisenssin voimassaolopäivään lisätään 1 vuosi. Jos lisenssisi vanhenee esimerkiksi {0}-06-06 ja uusit sen {0}-01-01, uusi lisenssisi päättymispäivä on {1}-06-06.",
"discountForYears": "{0}% de remise pendant {1} an(s)",
"BlackFridayDiscount": "Black Friday -alennus",
"WhyUseAbpIoPlatform": "Miksi minun pitäisi käyttää ABP.IO-alustaa sen sijaan, että luon uuden ratkaisun tyhjästä?",
"WhyUseAbpIoPlatformFaqExplanation": "Katso <a href=\"https://docs.abp.io/en/commercial/latest/why-abp-io-platform \"> kyseisestä asiakirjasta </a> yksityiskohtainen selitys siitä, miksi ABP.IO Platformin käyttäminen on huomattavasti edullisempaa kuin kaiken tekeminen itse.",
"OpenSourceWebApplication": "Avoimen lähdekoodin verkkosovellus",
"CompleteWebDevelopment": "Täydellinen verkkokehitys",
"ABPFrameworkDescription": "ABP Framework on täydellinen infrastruktuuri nykyaikaisten verkkosovellusten luomiseen noudattamalla ohjelmistokehityksen parhaita käytäntöjä ja käytäntöjä.",
"CommunityDescription": "Jaa kokemuksesi ABP Frameworkista!",
"GetStarted": "Aloita",
"Views": "näkymät",
"LatestPosts": "Uusimmat viestit",
"PreBuiltApplication": "Valmiiksi rakennettu sovellus",
"DatabaseProviders": "Tietokannan tarjoajat",
"UIFrameworks": "UI-kehykset",
"UsefulLinks": "Hyödyllisiä linkkejä",
"Platform": "Alusta",
"CoolestCompaniesUseABPCommercial": "Tyylikkäimmät yritykset käyttävät jo <span class=\"fw-6\">ABP Commercialia.</span>",
"UserInterface": "Käyttöliittymä",
"APIGateway": "API-yhdyskäytävä",
"Microservice": "Mikropalvelu",
"Database": "Tietokanta",
"Architecture": "Arkkitehtuuri",
"MicroserviceArchitectureExplanation": "Tämä on täydellinen ratkaisuarkkitehtuuri, joka koostuu useista sovelluksista, API-yhdyskäytävistä, mikropalveluista ja tietokannoista, jotta voidaan rakentaa skaalautuva mikropalveluratkaisu uusimmalla tekniikalla.",
"BusinessLogic": "Liiketoimintalogiikka",
"DataAccessLayer": "Tietojen käyttökerros",
"Monolith": "Monoliitti",
"ModularArchitectureExplanation": "Tämä käynnistysmalli tarjoaa kerroksellisen, modulaarisen ja DDD-pohjaisen ratkaisuarkkitehtuurin puhtaan ja ylläpidettävän koodikannan luomiseksi.",
"SeeDetails": "Katso yksityiskohdat",
"SeeDocumentation": "Tutustu dokumentaatioon",
"Bs5Compatible": "Bootstrap 5 -yhteensopiva ammattiteema, täydellinen järjestelmänvalvojan verkkosivustollesi.",
"LeptonXTheme": "LeptonX teema",
"LeptonXDark": "LeptonX tumma",
"LeptonXLight": "LeptonX vaalea",
"LeptonXSemiDark": "LeptonX puolitumma",
"BuiltOnBs5Library": "Pohjautuu Bootstrap 5 -kirjastoon",
"FullyCompatibleWithBs5": "100 % yhteensopiva Bootstrap 5:n HTML-rakenteen ja CSS-luokkien kanssa",
"ResponsiveAndMobileCompatible": "Responsiivinen, mobiiliyhteensopiva, RTL-tuki",
"ProvidesStylesForDatatables": "Tarjoaa tyylejä tietotaulukoille",
"MultipleLayoutOptions": "Useita asetteluvaihtoehtoja",
"EasilyInstallAndUpgrade": "Asenna ja päivitä helposti",
"SupportForum": "Tukifoorumi",
"TrustedBy": "Luotettu",
"OurPricing": "<span class=\"gradient-commercial\">Hinnoittelumme</span>",
"Plans": "Suunnitelmat",
"NameSurname": "Nimi sukunimi",
"Unspecified": "Määrittelemätön",
"LicenceType": "Lisenssityyppi",
"LicenseDiscountWarning": "TÄMÄ ALENNUSSIVU KÄYTTÄÄ OLETUSALENNUSKOODIA JA VOLOSOFT-KEHITTÄJILLE. ALLA OLEVAT OSTOLINKIT EIVÄT TOIMI.",
"DiscountedLicenseExplanation": "Nämä lisenssihinnat ovat pienille startup-yrityksille, yksittäisille kehittäjille, opiskelijoille, voittoa tavoittelemattomille järjestöille ja projekteille!",
"General": "Yleiset",
"License": "Lisenssi",
"Development": "Kehitys",
"Payment": "Maksu",
"WatchExplainerVideo": "Tavataan! Katso selittävä video",
"LightDarkAndSemiDarkThemes": "Vaalea, tumma ja puolitumma",
"LeptonXThemeExplanation": "Lepton Theme voi muuttaa teemaasi järjestelmäasetustesi mukaan.",
"PRO": "PRO",
"WelcomeToABPCommercial": "Tervetuloa <span class=\"gradient-commercial\">ABP Commercialiin!</span>",
"YourAccountDetails": "Tilisi tiedot",
"OrganizationName": "Organisaation nimi",
"AddDevelopers": "Lisää kehittäjiä",
"StartDevelopment": "Aloita kehittäminen",
"CreateAndRunApplicationUsingStartupTemplate": "Opi luomaan ja suorittamaan uusi verkkosovellus ABP Commercial -käynnistysmallin avulla.",
"CommunityDescription2": "<span class=\"fw-6\">community.abp.io</span> on paikka, jossa ihmiset voivat jakaa ABP-aiheisia artikkeleita. Etsi artikkeleita, opetusohjelmia, koodinäytteitä, tutkimuksia ja tapaa ihmisiä samalla taajuudella kuin sinä.",
"UseABPSuiteExplanation": "Lataa moduulien ja teemojen lähdekoodi ABP Suiten avulla.",
"ManageModulesWithSuite": "Voit myös hallita ABP-moduulejasi Suiten avulla.",
"LearnHowToInstallSuite": "Opi asentamaan ja käyttämään ABP Suitea.",
"SeeMore": "Katso lisää",
"SeeLess": "Katso Vähemmän",
"LayeredSolutionStructure": "Kerrostettu ratkaisurakenne",
"LayeredSolutionStructureExplanation": "Ratkaisu on kerrostettu Domain Driven Design -periaatteiden ja -mallien perusteella, jotta liiketoimintalogiikkasi voidaan eristää infrastruktuurista ja integraatioista ja maksimoida koodin ylläpidettävyys ja uudelleenkäytettävyys. ABP Framework tarjoaa jo abstraktioita, perusluokkia ja oppaita DDD:n toteuttamiseen sovelluksessasi.",
"MultipleUIOptions": "Useita käyttöliittymävaihtoehtoja",
"MultipleUIOptionsExplanation": "Rakastamme erilaisia tapoja luoda käyttöliittymä. Tämä käynnistysratkaisu tarjoaa kolme erilaista käyttöliittymäkehysvaihtoehtoa yrityssovelluksellesi.",
"MultipleDatabaseOptions": "Useita tietokantavaihtoehtoja",
"MultipleDatabaseOptionsExplanation": "Sinulla on kaksi tietokannan tarjoajavaihtoehtoa (sen lisäksi, että voit käyttää molempia yhdessä sovelluksessa). Käytä Entity Framework Corea työskennelläksesi minkä tahansa relaatiotietokannan kanssa ja käytä valinnaisesti Dapperia, kun sinun on kirjoitettava matalan tason kyselyitä parantaaksesi suorituskykyä. MongoDB on toinen vaihtoehto, jos haluat käyttää dokumenttipohjaista NoSQL-tietokantaa. Vaikka nämä palveluntarjoajat ovat hyvin integroituja, abstrakteja ja esikonfiguroituja, voit itse asiassa olla vuorovaikutuksessa minkä tahansa tietokantajärjestelmän kanssa, jota voit käyttää .NET:n kanssa.",
"ModularArchitectureExplanation2": "Modulaarisuus on ensiluokkainen kansalainen ABP.IO-alustalla. Kaikki sovelluksen toiminnot on jaettu hyvin eristettyihin valinnaisiin moduuleihin. Käynnistysratkaisussa on valmiiksi asennettuna perus <a href=\"@Url.Page(\"/Modules\")\" class=\"text-primary\">ABP Commercial -moduulit</a>. Voit myös luoda omia moduuleita rakentaaksesi modulaarisen järjestelmän omalle sovelluksellesi.",
"MultiTenancyForSaasBusiness": "Monivuokraus SaaS-yrityksellesi",
"MultiTenancyForSaasBusinessExplanation": "ABP Commercial tarjoaa täydellisen, päästä-päähän usean vuokrausjärjestelmän SaaS-järjestelmien (Software-as-a-Service) luomiseen. Sen avulla vuokralaiset voivat jakaa tai käyttää omia tietokantojaan tietokantojen luonti- ja siirtojärjestelmässä.",
"MicroserviceStartupSolution": "Mikropalvelun käynnistysratkaisu",
"MicroserviceArchitectureExplanation2": "Voit hankkia sen seuraavaan mikropalvelujärjestelmääsi hyödyntääksesi valmiiksi rakennetun perusratkaisun ja laadukkaan kokemuksen.",
"PreIntegratedTools": "Esiintegroitu suosittuihin työkaluihin",
"PreIntegratedToolsExplanation": "Ratkaisu on jo integroitu alan standardityökaluihin ja teknologioihin, mutta voit aina muuttaa niitä ja integroida suosikkityökaluihisi.",
"SingleSignOnAuthenticationServer": "Kertakirjautumisen todennuspalvelin",
"SingleSignOnAuthenticationServerExplanation": "Ratkaisussa on todennuspalvelinsovellus, jota muut sovellukset käyttävät kertakirjautumispalvelimena API-käyttöoikeuksien hallintaominaisuuksilla. Se perustuu IdentityServeriin.",
"WebAppsWithGateways": "2 verkkosovellusta kahdella API-yhdyskäytävällä",
"WebAppsWithGatewaysExplanation": "Ratkaisu sisältää kaksi verkkosovellusta, joista jokaisessa on oma API-yhdyskäytävä (BFF - Backend For Frontend -malli).",
"BackOfficeApplication": "Back Office -sovellus",
"BackOfficeApplicationExplanation": "Järjestelmäsi todellinen verkkosovellus, jossa on useita käyttöliittymäkehysvaihtoehtoja. Voit luoda minkä tahansa yrityssovelluksen.",
"LandingWebsite": "Julkinen sivusto",
"LandingWebsiteExplanation": "Yleinen etusivu/julkinen verkkosivusto, jota voidaan käyttää useisiin tarkoituksiin, kuten yrityksesi esittelyyn, tuotteiden myymiseen jne.",
"ABPFrameworkEBook": "Mastering ABP Framework e-kirja",
"MasteringAbpFrameworkEBookDescription": "Sisältyy ABP Commercial -lisenssiisi",
"FullName": "Koko nimi",
"LicenseTypeNotCorrect": "Lisenssityyppi ei ole oikea!",
"Trainings": "Koulutukset",
"ChooseTrainingPlaceholder": "Valitse koulutus...",
"DoYouNeedTrainings": "Tarvitsetko jotain näistä koulutuksista?",
"DoYouNeedTraining": "Tarvitsetko {0} koulutusta?",
"GetInTouchUs": "Ota yhteyttä meihin",
"ForMoreInformationClickHere": "Saat lisätietoja napsauttamalla <a href='{0}'>tätä.</a>",
"IsGetOnboardingTraining": "Haluaisitko perehdytys- ja verkkosovelluskehityskoulutukseen?",
"OnboardingWebApplicationDevelopmentTrainingMessage": "Voit ajoittaa koulutuskalenterisi ottamalla yhteyttä osoitteeseen {0} organisaation luomisen jälkeen",
"CustomPurchaseMessage": "Ota meihin yhteyttä napsauttamalla {0} seuraavaa vaihetta varten.",
"Note": "Huomautus",
"AdditionalNote": "Lisähuomautus",
"OnboardingTrainingFaqTitle": "Onko teillä ABP onboarding -koulutusta?",
"OnboardingTrainingFaqExplanation": "Kyllä, meillä on ABP-koulutuspalvelut, jotka auttavat sinua saamaan ABP-projektisi käyntiin nopeasti. Opit ABP:stä ABP:n ydintiimin jäseneltä ja saat valmiudet aloittaa ABP-projektisi. Perehdytyskoulutuksessa kerromme kuinka perustat kehitysympäristösi, asennat tarvittavat työkalut ja luot täysin toimivan CRUD-sivun. Koulutus toteutetaan livenä ja Zoom-sovellusta käytetään ja olemme avoimia muiden online-kokousalustojen käyttöön. Koulutuksen kieli on englanti. Voit myös esittää kysymyksiäsi ABP:stä istuntojen aikana. Molemmille osapuolille suunnitellaan sopiva aika ja päivämäärä. Saat lisätietoja ottamalla yhteyttä meihin osoitteessa <a href=\"mailto:info@abp.io\">info@abp.io</a>.",
"AddBasket": "Lisää ostoskoriin",
"SendTrainingRequest": "Lähetä koulutuspyyntö",
"OnlyEnglishVersionOfThisDocumentIsTheRecentAndValid": "* Tämän asiakirjan englanninkielinen versio on ajan tasalla ja englanninkielinen versio toimii ensisijaisena kaikissa riita-asioissa.",
"Pricing_Page_Title": "Suunnitelmat ja hinnoittelu",
"Pricing_Page_Description": "Valitse yrityksesi tarvitsemat ominaisuudet ja toiminnot tänään. Osta ABP Commercial -lisenssi ja luo rajattomasti projekteja.",
"Pricing_Page_HurryUp": "Kiirehdi!",
"Pricing_Page_BuyLicense": "Osta lisenssi <strong>2021 hinnoilla</strong> 16. tammikuuta asti!",
"Pricing_Page_ValidForExistingCustomers": "Koskee myös nykyisiä asiakkaita ja lisenssien uusimista.",
"Pricing_Page_Hint1": "Lisenssihinta sisältää tietyn määrän kehittäjäpaikkoja. Jos sinulla on enemmän kehittäjiä, voit aina ostaa lisää paikkoja.",
"Pricing_Page_Hint2": "Voit ostaa lisää kehittäjälisenssejä nyt tai tulevaisuudessa. Lisenssit ovat paikkaperusteisia, joten voit siirtää paikan kehittäjältä toiselle.",
"Pricing_Page_Hint3": "Voit kehittää rajoittamattoman määrän erilaisia tuotteita lisenssilläsi.",
"Pricing_Page_Hint4": "ABP Suite on työkalu, joka auttaa kehitystäsi parantamaan tuottavuuttasi. Se tukee CRUD-sivujen luomista ja uusien projektien luomista.",
"Pricing_Page_Hint5": "Voit käyttää kaikkia valmiita moduuleja sovelluksissasi.",
"Pricing_Page_Hint6": "Voit käyttää kaikkia valmiita teemoja sovelluksissasi.",
"Pricing_Page_Hint7": "Käynnistysmalli on Visual Studio -ratkaisu, jonka avulla pääset alkuun projektissasi. Kaikki perusmoduulit on lisätty ja valmiiksi määritetty sinua varten.",
"Pricing_Page_Hint8": "Mastering ABP Framework -e-kirja selittää, kuinka .NET-ratkaisuja toteutetaan parhaiden käytäntöjen avulla. Sitä myydään Amazon.com-sivustolla ja voit ladata kirjan ilmaiseksi lisenssisi puitteissa.",
"Pricing_Page_Hint9": "Voit ladata minkä tahansa moduulin lähdekoodin. Voit halutessasi lisätä lähdekoodin ratkaisuusi tehdäksesi radikaaleja muutoksia tai säilyttää sen itsellesi turvallisuussyistä.",
"Pricing_Page_Hint10": "Lisenssit ovat elinikäisiä. Tämä tarkoittaa, että voit jatkaa sovelluksesi kehittämistä ikuisesti. Uusimman version käyttö ja tuen saaminen myönnetään lisenssijakson sisällä (1 vuosi, ellet uusi sitä).",
"Pricing_Page_Hint11": "Ei rajoituksia käyttöönotolle! Voit ottaa käyttöön niin monelle palvelimelle kuin haluat, mukaan lukien pilvipalvelut tai paikan päällä.",
"Pricing_Page_Hint12": "Voit päivittää moduulit, teemat ja työkalut uusimpaan versioon aktiivisen lisenssijaksosi aikana. Kun lisenssisi vanhenee, sinun on uusittava se, jotta voit jatkaa päivitysten saamista virheenkorjauksista, uusista ominaisuuksista ja parannuksista.",
"Pricing_Page_Hint13": "Voit saada premium-tuen vuodeksi (voit uusia lisenssin jatkaaksesi sitä).",
"Pricing_Page_Hint14": "Team- ja Business-lisensseillä on tapausten/kysymysten määräraja. Jos ostat lisää kehittäjälisenssejä, tapahtumarajasi kasvaa {0} (Tiimilisenssi) tai {1} (Business License) kehittäjää kohden.",
"Pricing_Page_Hint15": "Vain Enterprise License sisältää yksityisen tuen. Voit lähettää sähköpostia suoraan ABP-tiimille tai esittää kysymyksiä osoitteessa support.abp.io yksityisellä lippuvaihtoehdolla. Yksityiset liput eivät ole yleisön nähtävissä.",
"Pricing_Page_Hint16": "Voit ladata kaikkien ABP-teemojen lähdekoodin. Voit halutessasi lisätä lähdekoodin ratkaisuusi tehdäksesi radikaaleja muutoksia tai säilyttää sen itsellesi turvallisuussyistä.",
"Pricing_Page_Testimonial_1": "ABP Commercial antoi SC Venturesille mahdollisuuden toimittaa pankkitason usean vuokralaisen siilotietokanta SaaS-alustan yhdeksässä kuukaudessa tukemaan myyntisaamisten / ostovelkojen toimitusketjun rahoitusta merkittävien arvolaskujen kautta useilta integroiduilta ankkureilta. ABP:n modulaarisuus mahdollisti sen, että tiimi toimitti ennätysajassa, läpäisi kaiken VAPT:n ja ottaa käyttöön konttimuotoisen mikropalvelupinon täyden CI/CD:n ja putkien kautta tuotantoon.",
"Pricing_Page_Testimonial_2": "Näemme ABP Commercialin käytön arvon mukautettujen kehitysprojektien yleiskustannusten vähentämiseen. Ja tiimi pystyy yhdistämään koodimallin eri projektivirroissa. Näemme viitekehyksessä enemmän mahdollisuuksia rakentaa uusia ominaisuuksia nopeammin kuin ennen. Luotamme, että näemme jatkuvasti ABP Commercialin hyödyntämisen arvon.",
"Pricing_Page_Testimonial_3": "Rakastamme ABP:tä. Meidän ei tarvitse kirjoittaa kaikkea tyhjästä. Aloitamme valmiista ominaisuuksista ja keskitymme vain siihen, mitä todella tarvitsemme kirjoittaa. Lisäksi ABP on hyvin suunniteltu ja koodi on korkealaatuista ja siinä on vähemmän bugeja. Jos joutuisimme kirjoittamaan kaiken tarvitsemamme itse, joudumme ehkä viettämään vuosia. Jälleen kerran pidämme siitä, että uusi versio, ongelmankorjaus tai parannus ilmestyy hyvin pian joka toinen viikko. Emme odota liian kauan.",
"Pricing_Page_Testimonial_4": "ABP Commercial on loistava tuote, jota suosittelen. Kaupalliset tuotteet markkinoille asiakkaillemme yhdellä konfiguroitavalla alustalla. Kehyksen ja työkalujen tarjoama aloitus jokaiselle joukkueelle on jokaisen sentin arvoinen. ABP Commercial sopi parhaiten tarpeisiimme.",
"Pricing_Page_Testimonial_5": "ABP Framework ei ole vain viitekehys, vaan se on myös opas projektin kehittämiseen/hallintaan, koska se tarjoaa DDD-, GenericRepository-, DI-, Microservice- ja Modularity-koulutusta. Vaikka et itse käyttäisikään kehystä, voit kehittää itseäsi docs.abp.io:lla, joka on hyvin ja ammattimaisesti valmisteltu (OpenIddict, Redis, Quartz jne.). Koska monet asiat on rakennettu valmiiksi, se lyhentää projektin kehitysaikaa merkittävästi (kuten kirjautumissivu, poikkeusten käsittely, tietojen suodatus, kylvö, tarkastusloki, lokalisointi, automaattinen API-ohjain jne.). Esimerkkinä sovelluksestamme olen käyttänyt paikallista tapahtumaväylää varastonhallintaan. Pystyn siis hallitsemaan tilausliikkeitä kirjoittamalla varastokäsittelijäksi. On hienoa olla hukkaamatta aikaa CreationTimelle, CreatorId:lle. Ne täytetään automaattisesti.",
"AbpBookDownloadArea_ClaimYourEBook": "Lunasta <span class='gradient-framework'>Mastering ABP Framework</span> -e-kirja",
"AddMemberModal_Warning_1": "Jos <strong>käyttäjätunnusta</strong>, jota yrität lisätä, ei ole järjestelmässä, pyydä tiimisi jäsentä rekisteröitymään osoitteessa <a href='{0}/Account/Register'>{0}</ a> ja jakaa hänen tilinsä käyttäjätunnus kanssasi.",
"MyOrganizations_Detail_WelcomeMessage": "Tervetuloa organisaatioosi, {0}",
"MyOrganizations_Detail_OrganizationManagement": "Organisaation <span class=\"gradient-commercial\">hallinta</span>",
"OrganizationDisplayName": "Organisaation näyttönimi",
"MyOrganizations_Detail_EditDisplayName": "Muokkaa näyttönimeä",
"MyOrganizations_Detail_UpgradeYourLicense": "Päivitä lisenssisi",
"MyOrganizations_Detail_LicenseStartAndExpiryDate": "Lisenssin alkamispäivä - viimeinen voimassaolopäivä",
"MyOrganizations_Detail_OwnerRightInfo": "Käytät {0} {1} omistajan oikeuksistasi.",
"MyOrganizations_Detail_CopyApiKey": "Kopioi avain",
"MyOrganizations_Detail_ApiKeyDescription": "API-avain on <a href=\"{0}\" target=\"_blank\" class=\"text-primary\" rel=\"noopener\">{1}-palvelussa isännöivien PRO-pakettien tunnus.</a>",
"MyOrganizations_Detail_YourPrivateNugetSource": "Yksityinen NuGet-lähteesi on <a href=\"{0}\" target=\"_blank\" class=\"text-primary\" rel=\"noopener\">{0}</a>",
"MyOrganizations_Detail_PrivateNugetSourceWarning": "Tämä lisätään automaattisesti syötteeksi NuGet.Configiin ABP-ratkaisussasi. Älä jaa yksityistä avaintasi luvattomien käyttäjien kanssa!",
"MyOrganizations_Detail_DeveloperSeatInfo": "Käytät {0} {1} kehittäjäpaikastasi.",
"NeedMoreSeatsForYourTeam": "Tarvitsetko lisää paikkoja tiimillesi?",
"MyOrganizations_Detail_PricePerYear": "{0} / vuosi",
"MyOrganizations_Detail_PurchaseDeveloperSeats": "Osta kehittäjäistuimet",
"Invoices": "Laskut",
"RequestInvoice": "Pyydä lasku",
"OrderNumber": "Tilausnumero",
"Date": "Päivämäärä",
"Products": "Tuotteet",
"TotalPrice": "Kokonaishinta",
"ThereIsNoInvoice": "Ei ole laskua",
"MyOrganizations_Detail_PaymentProviderInfo": "Jos olet ostanut käyttöluvan <i>{0}</i>-yhdyskäytävän kautta, se lähettää PDF-laskun sähköpostiosoitteeseesi, katso <a href=\"{1}\" target=\"_blank\">{0}-laskutus. </a>",
"MyOrganizations_Detail_PayUInfo": "Jos olet ostanut <i>PayU</i>-yhdyskäytävän kautta, napsauta \"Pyydä lasku\" -painiketta ja täytä laskutustiedot.",
"MyOrganizations_Detail_ConclusionInfo": "Laskupyyntösi saatetaan päätökseen {0} arkipäivän kuluessa.",
"ExtendYourLicense": "Laajenna <span class=\"text-primary\">{0}</span>-lisenssiäsi",
"Continue": "Jatka",
"PurchaseLicense": "Osta {0} lisenssi",
"DownloadInvoiceModal_DownloadInvoice": "Lataa lasku",
"DownloadInvoiceModal_SaveInformationOnlyOnce": "Voit tallentaa laskutustietosi vain kerran.",
"InvoiceModal_EnterCompanyName": "Anna yrityksesi virallinen nimi...",
"InvoiceModal_EnterCompanyAddress": "Anna laillinen yrityksesi osoite...",
"InvoiceModal_EnterTaxNumber": "Anna vero-/alv-numerosi, jos se on saatavilla...",
"RequestInvoiceModal_EnterNotes": "Kirjoita lisäviestisi laskustasi...",
"PrePayment_PayWithIyzico": "Maksat Iyzicolla",
"ContinueToCheckout": "Jatka Checkoutiin",
"PrePayment_IyzicoRedirectionInfo": "Sinut ohjataan Iyzico Payment Gatewaylle viimeistelemään ostoksesi turvallisesti.",
"PrePayment_IyzicoAcceptVisaAndMasterCard": "Iyzico hyväksyy Visa- ja MasterCard-kortit.",
"Purchase": "Osta",
"AcceptTermsAndConditions": "Olen lukenut, ymmärtänyt ja hyväksyn <a href=\"{0}\" target=\"_blank\" class=\"text-primary\" rel=\"noopener\">tietosuojakäytännön</a>, <a href=\"{1} \" target=\"_blank\" class=\"text-primary\" rel=\"noopener\">käyttöehdot</a> ja <a href=\"{2}\" target=\"_blank\" class=\"text-primary\"> EULA:n.</a>",
"AcceptTermsAndConditionsWarningMessage": "Hyväksy tietosuojakäytäntö ja ehdot",
"SelectGatewayToContinue": "Valitse yhdyskäytävä jatkaaksesi!",
"GatewaySelection_SelectGateway": "Valitse maksuyhdyskäytävä",
"GatewaySelection_RedirectionMessage": "Seuraavaksi sinut ohjataan tapahtumaa varten valitun maksuyhdyskäytävän verkkosivustolle.",
"PaymentSucceed_PaymentSuccessMessage": "Maksu suoritettu",
"PaymentSucceed_ThanksForPurchase": "Kiitos ostoksestasi!",
"PaymentSucceed_CreateYourOrganization": "Luo organisaatiosi",
"PaymentSucceed_AddMeAsDeveloper": "Olen myös kehittäjä, lisää minut kehittäjäksi organisaatiooni.",
"PaymentSucceed_CreateOrganization": "Luo organisaatio",
"PaymentSucceed_OrganizationDescription": "Organisaatio koostuu kehittäjistä ja omistajista. Kehittäjät ovat käyttäjiä, jotka kirjoittavat koodia ABP-projektiin ja hyötyvät <a href=\"{0}\" target=\"_blank\">{1}</a>-verkkosivustosta. Omistajat ovat käyttäjiä, jotka jakavat kehittäjäpaikkoja ja hallinnoivat lisensointia.",
"PaymentSucceed_ViewOrganization": "Napsauta tästä nähdäksesi organisaation",
"Purchase_TotalAnnualPrice": "YHTEENSÄ <small class=\"opacity-50\">(vuosimaksu)</small>",
"Purchase_TrainingPrice": "Koulutuksen hinta",
"Purchase_OnboardingTraining": "ABP:n perehdytys ja verkkosovelluskehitys live-koulutus",
"TotalDeveloperPrice": "Kehittäjän kokonaishinta",
"Purchase_PricePerDeveloper": "<span>{0} {1}</span> kehittäjää kohden",
"Purchase_IncludedDeveloperInfo": "{0} {1} mukana.",
"Purchase_LicenseExtraDeveloperPurchaseMessage": "<span class=\"fw-6\">{0} lisenssi</span> sisältää {1} kehittäjää. Voit lisätä uusia kehittäjiä nyt tai myöhemmin.",
"StartupTemplates_Page_Title": "Käynnistysmallit",
"StartupTemplates_Page_Description": "ABP Commercialin avulla voit rakentaa minkä tahansa monimutkaisia ratkaisuja. Se tarjoaa kaksi pääasiallista valmiiksi rakennettua käynnistysratkaisua. Voit valita tarpeitasi vastaavan ja rakentaa oman mukautetun ratkaisun sen päälle.",
"MicroserviceStartupSolutionForDotnet": "Mikropalvelu käynnistysmalli .NET:ille",
"MonolithSolutionForDotnet": "Monoliitti (modulaarinen) Ratkaisu .NET:ille",
"TrainingDetailsHeaderInfo_TrainingHour": "{0} tunti(a)",
"Trainings_Content": "Koulutuksen sisältö",
"Trial_Page_StartYourFreeTrial": "Aloita <span class=\"gradient-commercial\">ilmainen kokeilujaksosi</span>",
"TrialLicenseFeatures": "Voit hyötyä kaikista ABP:n kaupallisista ominaisuuksista",
"TrialPeriodDays": "Sinulla on {0} päivän tiimilisenssi",
"TrialForumSupportIncident": "Sinulla on {0} keskustelupalstan tukitapausta",
"Contact_Page_Title": "Ota yhteyttä ABP:n kehitystiimiin",
"Contact_Page_Description": "Ota yhteyttä ABP:n kehitystiimiin, jos tarvitset apua tai kerro ajatuksesi ja mielipiteesi! ABP-tukitiimi on valmis auttamaan.",
"Demo_Page_Title": "Luo demo",
"Demo_Page_Description": "Luo ilmainen demo nähdäksesi esimerkkisovelluksen, joka on luotu käyttämällä ABP Commercial -käynnistysmallia. Älä toista itseäsi yleisten hakemusvaatimusten suhteen.",
"Discounted_Page_Title": "Alennettu hinnoittelu",
"Discounted_Page_Description": "Valitse yrityksesi tänään tarvitsemat ominaisuudet ja toiminnot. Osta ABP Commercial -lisenssi ja luo rajattomasti projekteja",
"Faq_Page_Title": "Usein kysytyt kysymykset (FAQ)",
"Faq_Page_Description": "Onko sinulla kysymyksiä? Hae usein kysyttyjä kysymyksiä tai kysy meiltä yhteydenottolomakkeella.",
"Faq_Page_SwiftCode": "Swift-koodi",
"Faq_Page_BankName": "Pankin nimi",
"Faq_Page_AccountName": "Tilin nimi",
"Faq_Page_AccountNumber": "Tilinumero",
"Faq_Page_Currency": "Valuutta",
"Faq_Page_VatNumber": "ALV-numero",
"Faq_Page_OtherCurrenciesInfo": "Jos haluat lisätietoja muista valuutoista, katso <a href='{0}'>kaikki tilit</a>",
"ModuleDetail_Page_Title": "Moduulin tiedot - {0}",
"ProjectCreatedSuccess_Page_Title": "Projektisi on luotu",
"ProjectCreatedSuccess_Page_Description": "ABP-projektisi luotu onnistuneesti!",
"Suite_Page_Title": "ABP Suite - Luo CRUD-sivuja",
"Suite_Page_Description": "ABP Commercial tarjoaa nopeat sovelluskehitystyökalut kehittäjien tuottavuuden lisäämiseksi. ABP Suiten avulla voit luoda CRUD-sivuja helposti.",
"Themes_Page_Title": "Modernit ja toimivat käyttöliittymäteemat",
"Themes_Page_Description": "ABP Commercial tarjoaa useita ammattimaisia, moderneja käyttöliittymäteemoja. Luo ilmainen demo nähdäksesi nopeasti, miltä käyttöliittymä näyttää.",
"Tools_Page_Title": "Nopeat sovelluskehitystyökalut",
"Tools_Page_Description": "ABP Commercial tarjoaa nopeat sovelluskehitystyökalut kehittäjien tuottavuuden lisäämiseksi. ABP Suiten avulla voit luoda CRUD-sivuja helposti.",
"DeveloperPrice": "Kehittäjän hinta",
"AdditionalDeveloperPaymentInfoSection_AdditionalDevelopers": "{0} <small>kehittäjät</small>",
"LicenseRemainingDays": "<span> {0}</span> päivän ajan",
"ExtendPaymentInfoSection_Description": "Pidentämällä/uusimalla käyttölupaasi saat edelleen <a href=\"{0}\" target=\"_blank\">premium-tuen</a>. Voit myös saada suurempia tai pieniä päivityksiä moduuleille ja teemoille. Voit jatkaa uusien projektien luomista. Voit silti käyttää <a href=\"{1}\" target=\"_blank\">ABP Suitea</a>, joka nopeuttaa kehitystäsi.",
"LicenseRenewalPrice": "Lisenssin uusimisen hinta",
"LicensePrice": "Lisenssin hinta",
"TrialLicensePaymentInfoSection_Description": "<strong>Osta käyttölupa:</strong> Ostamalla lisenssin saat edelleen <a href=\"{0}\" target=\"_blank\" rel=\"noopener\">premium-tuen</a>. Voit myös saada suurempia tai pieniä päivityksiä moduuleille ja teemoille. Voit jatkaa uusien projektien luomista. Voit edelleen käyttää <a href=\"{1}\" target=\"_blank\" rel=\"noopener\">ABP Suitea</a>, joka nopeuttaa kehitystäsi.<br>Katso <a href=\" {2}\" target=\"_blank\" rel=\"noopener\">käyttölupien vertailutaulukko</a>, jolla voit tarkistaa lisenssityyppien väliset erot.",
"SelectTargetLicense": "Valitse kohdelisenssi",
"UpgradePaymentInfoSection_ExtendMyLicenseForOneYear": "Kyllä, jatka lisenssini voimassaolopäivää 1 vuodella.",
"UpgradePaymentInfoSection_WantToExtendLicense": "Haluatko jatkaa lisenssiäsi vielä {0} vuodella?",
"UpgradePaymentInfoSection_UpgradingWillNotExtendLicense": "Päivitys ei pidennä lisenssisi vanhenemispäivää!",
"UpgradePaymentInfoSection_LicenseUpgradeDescription": "Päivittämällä lisenssisi ylennät korkeampaan lisenssityyppiin, mikä antaa sinulle lisäetuja. Katso lisenssityyppien väliset erot <a href=\"/Pricing\" target=\"_blank\">lisenssivertailutaulukosta</a>.",
"Landing_Page_CustomerStories": "Asiakkaiden tarinoita",
"Landing_Page_OurGreatCustomers": "Hienot asiakkaamme",
"Landing_Page_WebApplicationFramework": "Web Application Framework",
"Landing_Page_WebDevelopmentPlatform": "Web-kehitysalusta",
"Landing_Page_CompleteWebDevelopmentPlatform": "Täydellinen Web-kehitysalusta",
"Landing_Page_TryFreeDemo": "Kokeile ilmaista demoa",
"Landing_Page_StartingPointForWebApplications": "Lähtökohta ASP.NET Core -pohjaisille verkkosovelluksille! Se perustuu parhaan verkkokehityksen ABP-kehykseen.",
"Landing_Page_AbpProvidesSoftwareInfrastructure": "ABP Framework tarjoaa ohjelmistoinfrastruktuurin erinomaisten verkkosovellusten kehittämiseen parhaiden käytäntöjen kanssa.",
"Landing_Page_MicroserviceCompatibleArchitecture": "Microservice-yhteensopiva arkkitehtuuri",
"Landing_Page_PreBuiltApplicationModulesAndThemes": "Valmiiksi rakennetut sovellusmoduulit ja teemat",
"Landing_Page_MultiTenantArchitecture": "Monivuokraus arkkitehtuuri",
"Landing_Page_MultiTenancyDescription": "SaaS-sovellukset on tehty helpoksi! Integroitu monivuokraus tietokannasta käyttöliittymään.",
"Landing_Page_DDDIntroduction": "Suunniteltu ja kehitetty DDD-mallien ja -periaatteiden perusteella. Tarjoaa kerrostetun mallin sovelluksellesi.",
"Landing_Page_CrossCuttingConcernsInfo": "Täydellinen infrastruktuuri valtuutukseen, validointiin, poikkeusten käsittelyyn, välimuistiin, tarkastuslokiin, tapahtumien hallintaan ja muuhun.",
"Landing_Page_PreBuiltApplicationModules": "Valmiiksi rakennetut sovellusmoduulit, jotka sisältävät yleisimmät verkkosovellusvaatimukset.",
"Landing_Page_ChatModule": "Keskustelut",
"Landing_Page_DocsModule": "Asiakirjat",
"Landing_Page_FileManagementModule": "Tiedostonhallinta",
"Landing_Page_CustomerStory_1": "ABP Commercial antoi SC Venturesille mahdollisuuden toimittaa pankkitason usean vuokralaisen siilotietokanta SaaS-alustan yhdeksässä kuukaudessa tukemaan myyntisaamisten / ostovelkojen toimitusketjun rahoitusta merkittävien arvolaskujen kautta useilta integroiduilta ankkureilta. ABP:n modulaarisuus mahdollisti sen, että tiimi toimitti ennätysajassa, läpäisi kaiken VAPT:n ja siirsi konttipohjaisen mikropalvelupinon täyden CI/CD:n ja putkien kautta tuotantoon.",
"Landing_Page_CustomerStory_2": "Näemme ABP Commercialin käytön arvon mukautettujen kehitysprojektien yleiskustannusten vähentämiseen. Ja tiimi pystyy yhdistämään koodimallin eri projektivirroissa. Näemme viitekehyksessä enemmän mahdollisuuksia rakentaa uusia ominaisuuksia nopeammin kuin ennen. Luotamme, että näemme jatkuvasti ABP Commercialin hyödyntämisen arvon.",
"Landing_Page_CustomerStory_3": "Rakastamme ABP:tä. Meidän ei tarvitse kirjoittaa kaikkea tyhjästä. Aloitamme valmiista ominaisuuksista ja keskitymme vain siihen, mitä todella tarvitsemme kirjoittaa. Lisäksi ABP on hyvin suunniteltu ja koodi on korkealaatuista ja siinä on vähemmän bugeja. Jos joutuisimme kirjoittamaan kaiken tarvitsemamme itse, joudumme ehkä viettämään vuosia. Jälleen kerran pidämme siitä, että uusi versio, ongelmankorjaus tai parannus julkaistaan hyvin pian\n joka toinen viikko. Emme odota liian kauan.",
"Landing_Page_CustomerStory_4": "ABP Commercial on loistava tuote, jota suosittelen. Kaupalliset tuotteet markkinoille asiakkaillemme yhdellä konfiguroitavalla alustalla. Kehyksen ja työkalujen tarjoama aloitus jokaiselle joukkueelle on jokaisen sentin arvoinen. ABP Commercial sopi parhaiten tarpeisiimme.",
"Landing_Page_AdditionalServices": "Mukautettu tai volyymilisenssi, perehdytys, suora koulutus ja tuki, mukautettu projektikehitys, olemassa olevien projektien siirtäminen ja paljon muuta...",
"Landing_Page_IncludedDeveloperLicenses": "Mukana <strong>{0}</strong> kehittäjälisenssi",
"Landing_Page_SeeOnDemo": "Katso Demosta",
"Landing_Page_LeptonThemes": "Lepton-teemat",
"Landing_Page_AccountModuleDescription_1": "Tämä moduuli toteuttaa sovelluksen todennusjärjestelmän;",
"Landing_Page_AccountModuleDescription_2": "Tarjoaa <strong>kirjautumissivun</strong>, jossa on käyttäjätunnus ja salasana",
"Landing_Page_AccountModuleDescription_3": "Tarjoaa <strong>rekisteröintisivun</strong> uuden tilin luomista varten.",
"Landing_Page_AccountModuleDescription_4": "Tarjoaa <strong>unohdin salasanan</strong> -sivun <strong>salasanan palautus</strong> -linkin lähettämistä varten sähköpostitse.",
"Landing_Page_AccountModuleDescription_5": "Tarjoaa <strong>sähköpostivahvistustoiminnon</strong> käyttöliittymän kanssa.",
"Landing_Page_AccountModuleDescription_6": "Toteuttaa <strong>kaksivaiheisen</strong> todennuksen (tekstiviesti ja sähköposti).",
"Landing_Page_AccountModuleDescription_7": "Toteuttaa <strong>käyttäjän lukituksen</strong> (lukitsee tilin määritetyksi ajaksi, kun tietty määrä epäonnistuneita kirjautumisia tapahtuu virheellisten tunnistetietojen vuoksi tietyn ajanjakson sisällä).",
"Landing_Page_AccountModuleDescription_8": "Toteuttaa <strong>Identity Server</strong> -todennuspalvelimen käyttöliittymän ja toiminnot.",
"Landing_Page_AccountModuleDescription_9": "Mahdollistaa <strong>vaihtamisen vuokralaisten välillä</strong> usean vuokralaisen ympäristössä.",
"Landing_Page_AccountModuleDescription_10": "Mahdollistaa sovelluksen <strong>käyttöliittymän kielen</strong> muuttamisen.",
"Landing_Page_AuditLoggingModuleDescription_1": "Tämä moduuli tarjoaa tarkastuslokin raportoinnin käyttöliittymän valvontainfrastruktuurille. Mahdollistaa tarkastuslokimerkintöjen ja entiteettimuutoslokien etsimisen, suodattamisen ja näyttämisen.",
"Landing_Page_AuditLoggingModuleDescription_2": "Tarkastuslokikirjaus sisältää tärkeitä tietoja jokaisesta asiakaspyynnöstä:",
"Landing_Page_AuditLoggingModuleDescription_3": "URL, selain, IP-osoite, asiakkaan nimi",
"Landing_Page_AuditLoggingModuleDescription_4": "Käyttäjä",
"Landing_Page_AuditLoggingModuleDescription_5": "HTTP-metodi, HTTP-vastauksen tilakoodi",
"Landing_Page_AuditLoggingModuleDescription_6": "Onnistuminen/epäonnistuminen, poikkeustiedot, jos saatavilla",
"Landing_Page_AuditLoggingModuleDescription_7": "Pyynnön suoritusaika",
"Landing_Page_AuditLoggingModuleDescription_8": "Entiteetit on luotu, poistettu tai päivitetty tässä pyynnössä (muuttunein ominaisuuksin).",
"Landing_Page_BloggingModuleDescription_1": "Tämä moduuli lisää yksinkertaisen blogin ABP-sovellukseesi;",
"Landing_Page_BloggingModuleDescription_2": "Mahdollistaa useiden blogien luomisen yhdessä sovelluksessa.",
"Landing_Page_BloggingModuleDescription_3": "Tukee Markdown-formaattia.",
"Landing_Page_BloggingModuleDescription_4": "Mahdollistaa kommentin kirjoittamisen viestiin.",
"Landing_Page_BloggingModuleDescription_5": "Mahdollistaa tunnisteiden liittämisen blogikirjoituksiin.",
"Landing_Page_BloggingModuleDescription_6": "Katso <a href=\"blog.abp.io\">blog.abp.io</a>-verkkosivusto elävänä esimerkkinä blogimoduulista.",
"Landing_Page_ChatModuleDescription_1": "Tätä moduulia käytetään reaaliaikaiseen viestintään sovelluksen käyttäjien välillä.",
"Landing_Page_ChatModuleDescription_2": "Reaaliaikainen viestintä chat-sivulla.",
"Landing_Page_ChatModuleDescription_3": "Hae käyttäjiltä uusia keskusteluja sovelluksessa.",
"Landing_Page_ChatModuleDescription_4": "Yhteystiedot viimeaikaisista keskusteluista.",
"Landing_Page_ChatModuleDescription_5": "Uusi viesti-ilmoitukset, kun käyttäjä katselee toista sivua.",
"Landing_Page_ChatModuleDescription_6": "Lukemattomien viestien kokonaismäärä -merkki valikkokuvakkeessa.",
"Landing_Page_ChatModuleDescription_7": "Lukemattomien viestien määrä jokaisessa keskustelussa.",
"Landing_Page_ChatModuleDescription_8": "Lazy Load -keskustelut.",
"Landing_Page_DocsModuleDescription_1": "Tätä moduulia käytetään teknisen dokumentaation web-sivustojen luomiseen;",
"Landing_Page_DocsModuleDescription_2": "Sisäänrakennettu <strong>GitHub-integraatio</strong>: Kirjoita ja hallitse asiakirjoja suoraan GitHubissa.",
"Landing_Page_DocsModuleDescription_3": "<strong>Versiointi</strong>-tuki integroitu suoraan GitHub-julkaisuihin.",
"Landing_Page_DocsModuleDescription_4": "Tukee <strong>monia kieltä</strong> (varatuki oletuskielelle).",
"Landing_Page_DocsModuleDescription_5": "Tukee <strong>Markdown</strong>- ja HTML-formaatteja.",
"Landing_Page_DocsModuleDescription_6": "Tarjoaa <strong>navigointi-</strong> ja <strong>ääriviivat</strong>-osion.",
"Landing_Page_DocsModuleDescription_7": "Mahdollistaa <strong>useiden projektien</strong> dokumentaation yhdessä sovelluksessa.",
"Landing_Page_DocsModuleDescription_8": "Linkit tiedostoon GitHubissa, jotta kuka tahansa voi helposti osallistua klikkaamalla <strong>Muokkaa-linkkiä</strong>.",
"Landing_Page_DocsModuleDescription_9": "GitHub-lähteen lisäksi mahdollistaa tavallisen kansion käytön dokumentaatiolähteenä.",
"Landing_Page_FileManagementModuleDescription_1": "Lataa, lataa ja järjestä tiedostoja hierarkkisessa kansiorakenteessa.",
"Landing_Page_FileManagementModuleDescription_2": "Tätä moduulia käytetään tiedostojen lataamiseen, lataamiseen ja järjestämiseen hierarkkisessa kansiorakenteessa. Se on myös yhteensopiva usean vuokrauksen kanssa, ja voit määrittää vuokralaisten kokonaiskokorajan.",
"Landing_Page_FileManagementModuleDescription_3": "Tämä moduuli perustuu <a href=\"https://docs.abp.io/en/abp/latest/Blob-Storing\">BLOB-tallennusjärjestelmään</a>, joten se voi käyttää eri tallennuspalveluita tiedoston sisällön tallentamiseen.",
"Landing_Page_IdentityModuleDescription_1": "Tämä moduuli toteuttaa sovelluksen käyttäjä- ja roolijärjestelmän;",
"Landing_Page_IdentityModuleDescription_2": "Luotu käyttäen <a href=\"https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity\">Microsoftin ASP.NET Core Identity</a> -kirjastoa.",
"Landing_Page_IdentityModuleDescription_3": "Hallinnoi <strong>rooleja</strong> ja <strong>käyttäjiä</strong> järjestelmässä. Käyttäjällä voi olla <strong>useita rooleja</strong>.",
"Landing_Page_IdentityModuleDescription_4": "Aseta <strong>käyttöoikeudet</strong> rooli- ja käyttäjätasoilla.",
"Landing_Page_IdentityModuleDescription_5": "Ota käyttöön tai poista käytöstä <strong>kaksivaihetodennus</strong> ja käyttäjän <strong>lukitus</strong> käyttäjää kohti.",
"Landing_Page_IdentityModuleDescription_6": "Hallinnoi perus <strong>käyttäjäprofiilia</strong> ja <strong>salasanaa</strong>.",
"Landing_Page_IdentityModuleDescription_7": "Hallitse <strong>vaatimustyyppejä</strong> järjestelmässä, aseta vaatimuksia rooleille ja käyttäjille.",
"Landing_Page_IdentityModuleDescription_8": "Asetussivu <strong>salasanan monimutkaisuuden</strong>, käyttäjän kirjautumisen, tilin ja lukituksen hallintaa varten.",
"Landing_Page_IdentityModuleDescription_9": "Tukee <strong>LDAP</strong>-todennusta.",
"Landing_Page_IdentityModuleDescription_10": "Tarjoaa <strong>sähköpostin ja puhelinnumeron</strong> vahvistuksen.",
"Landing_Page_IdentityModuleDescription_11": "Tukee sosiaalisen kirjautumisen integraatioita (Twitter, Facebook, GitHub jne.).",
"Landing_Page_IdentityModuleDescription_12": "Hallinnoi järjestelmän <strong>organisaatioyksiköitä</strong>.",
"Landing_Page_PaymentModuleDescription_1": "Tarjoaa integroinnin eri maksuyhdyskäytäville.",
"Landing_Page_PaymentModuleDescription_2": "Tämä moduuli integroi maksuyhdyskäytäviä, joten saat helposti maksuja asiakkailtasi.",
"Landing_Page_PaymentModuleDescription_3": "Tämä moduuli tukee seuraavia maksuyhdyskäytäviä",
"Welcome_Page_UseSameCredentialForCommercialWebsites": "Käytä samoja kirjautumistietoja sekä <a href=\"https://commercial.abp.io\" class=\"text-primary\">commercial.abp.io</a>- että <a href=\"https://support\"-osoitteessa. abp.io\" class=\"text-primary\">support.abp.io</a>.",
"WatchCrudPagesVideo": "Katso \"CRUD-sivujen luominen ABP Suiten avulla\" -video!",
"WatchGeneratingFromDatabaseVideo": "Katso \"ABP Suite: CRUD-sivujen luominen olemassa olevista tietokantataulukoista\" -video!",
"WatchTakeCloserLookVideo": "Katso \"Katso tarkemmin koodin sukupolvea: ABP Suite\" -video!",
"ConfirmedEmailAddressRequiredToStartTrial": "Sinulla tulee olla vahvistettu sähköpostiosoite, jotta voit aloittaa kokeilukäyttöoikeuden.",
"EmailVerificationMailNotSent": "Sähköpostivahvistusviestiä ei voitu lähettää.",
"GetConfirmationEmail": "<a href=\"javascript:void(0);\" id=\"{0}\" class=\"text-decoration-underline\">Klikkaa tätä saadaksesi vahvistussähköpostin</a>, jos et ole saanut sitä aiemmin.",
"WhichLicenseTypeYouAreInterestedIn": "Mistä lisenssityypistä olet kiinnostunut?",
"DontTakeOurWordForIt": "Älä luota sanaamme...",
"ReadAbpCommercialUsersWantYouToKnow": "Lue, mitä ABP Commercialin käyttäjät haluavat sinun tietävän",
"Testimonial_ShortDescription_1": "ABP:n modulaarisuus mahdollisti tiimin toimituksen ajoissa.",
"Testimonial_ShortDescription_2": "Rakenna uusia ominaisuuksia nopeammin kuin ennen.",
"Testimonial_ShortDescription_3": "Aloitamme valmiista ominaisuuksista ja keskitymme vain siihen, mitä todella tarvitsee kirjoittaa.",
"Testimonial_ShortDescription_4": "ABP Commercial sopi parhaiten tarpeisiimme.",
"OnlineReviewersOnAbpCommercial": "Online-arvostelut ABP Commercialista",
"SeeWhatToldAboutAbpCommercial": "Katso, mitä ABP Commercialista on kerrottu, ja kirjoita ajatuksesi, jos haluat.",
"BlazoriseLicense": "Pitääkö meidän ostaa Blazorise-lisenssi?",
"BlazoriseLicenseExplanation": "Meillä on Volosoftin ja Megabitin välinen sopimus, jonka mukaan Blazorise-lisenssi on niputettu ABP Commercial -tuotteisiin, joten asiakkaidemme ei tarvitse ostaa ylimääräistä Blazorise-lisenssiä.",
"ExtendPaymentInfoSection_DeveloperPrice": "{0}x lisäkehittäjä(ä)",
"ExtendPaymentInfoSection_DiscountRate": "Alennus {0} %",
"TotalNetPrice": "Nettohinta yhteensä",
"EFCore": "Entity Framework Core",
"All": "Kaikki",
"Mvc": "MVC",
"DataBaseProvider": "Tietojen tarjoaja",
"UIFramework": "UI Framework",
"LeptonXThemeForDashboard": "LeptonX-teema järjestelmänvalvojan hallintapaneelillesi",
"AbpPlatform": "ABP-alusta",
"YouDeserveGoodUXUI": "Ansaitset hyvän käyttöliittymän ja paremman UX:n. ABP:n LeptonX Theme on täällä palvelemassa sitä.",
"ViewLiveDemo": "Katso live-teeman esittely",
"GetLeptonX": "Hanki LeptonX nyt",
"SeeLeptonXDocumentation": "Katso LeptonX-dokumentaatio",
"SimplifiedMenu": "Yksinkertaistettu valikko",
"SimplifiedMenuDescription": "Löydät etsimäsi sivun helposti suodattamalla valikkoa",
"YourFavoritePages": "Suosikkisivusi ulottuvillasi",
"YourFavoritePagesDescription": "Lisää tai poista sivu helposti suosikeista napsauttamalla tähtikuvaketta sivun oikeassa yläkulmassa.",
"BreadCrumbs": "Leivänmurut (Breadcrumbs) saumattomaan sivun vaihtamiseen",
"BreadCrumbsDescription": "Breadcrumbin avulla voit siirtyä samalla tasolla oleville sivuille yhdellä napsautuksella, vaikka vasen valikko olisi suljettu, ja se toimii sekä tabletilla että mobiililaitteella responsiivisesti!",
"YourMenu": "Valikko kuten haluat",
"YourMenuDescription": "Mukauta käyttäjävalikon suoraan napsautettavat kuvakkeet ja avattavat ruudut haluamallasi tavalla. Käyttäjävalikko on täysin muokattavissa tarpeidesi mukaan",
"RtlSupport": "RTL-tuki kielellesi",
"RtlSupportDescription": "LeptonX Theme tukee RTL:ää kielelläsi. Kielivaihtoehdot ovat asetusvalikossa, jotta voit vaihtaa kieltä.",
"YourColors": "Värit hallintapaneelin käyttöliittymässä",
"YourColorsDescription": "LeptonX Theme toimii järjestelmäasetustesi mukaan, ja siinä on kojelaudan vaalea teema, kojelaudan tumma teema ja kojelaudan puolitumma teema.",
"ArrangeContentWidth": "Järjestä sisällön leveys helposti",
"ArrangeContentWidthDescription": "Muuta helposti sisältöalueen leveyttä.",
"LeptonXCompatibleWith": "LeptonX-teema on yhteensopiva",
"MobileResponsiveTemplate": "Mobiiliresponsiivinen malli",
"MobileResponsiveTemplateDescription1": "Käytä LeptonX-hallintapaneelia miltä tahansa haluamaltasi laitteelta.",
"MobileResponsiveTemplateDescription2": "Se on suunniteltu käytettäväksi helposti kaikissa laitteissasi. Se on responsiivinen mobiililaitteissa ja tablet-koossa.",
"TopMenuLayoutOption": "Ylävalikon asetteluvaihtoehto",
"TopMenuLayoutOptionDescription1": "Jos haluat määrittää verkkosivustollesi saman järjestelmänvalvojan hallintapaneelin, voit tehdä sen LeptonX-teemalla!",
"TopMenuLayoutOptionDescription2": "Kokeile vain LeptonX:n ylävalikkoasettelua, jotta se tapahtuu!",
"EasilyCustomizable": "Helposti muokattavissa brändisi väreihin",
"EasilyCustomizableDescription1": "Voit mukauttaa LeptonX-teemaa vain muutamalla SCSS-muuttujalla. Ei ohittamista, ei ylimääräistä CSS-kuormaa!",
"EasilyCustomizableDescription2": "LeptonX:n avulla voit järjestää järjestelmänvalvojan kojelautasi haluamallasi tavalla.",
"IndependentLayout": "Itsenäinen ulkoasu ja sisältöalue",
"IndependentLayoutDescription1": "LeptonX:n asetteluinfrastruktuuri suunniteltiin täysin erillään sisällöstä.",
"IndependentLayoutDescription2": "Tämä tarkoittaa, että voit vapaasti suunnitella projektisi muulla sisältörakenteella kuin Bootstrapilla, jos haluat.",
"MostUsedLibraries": "Useimmat käytetyt LeptonX:ään integroidut kirjastot",
"MostUsedLibrariesDescription1": "LeptonX sisältää eniten käytetyt kirjastosi. Sen avulla voit käyttää vaivattomasti kirjastoja, kuten ApexCharts, DataTables, DropZone, FullCalender, JSTree, Select2, Toast.",
"MostUsedLibrariesDescription2": "LeptonX tukee myös MVC Angular- ja Blazor-spesifisiä kirjastoja.",
"CreateAndCustomize": "Luo ja mukauta tarvitsemasi sivut sekunneissa LeptonX mukautetuilla sivuilla",
"CreateAndCustomizeDescription": "Käyttämällä LeptonX-teemaa sinulla on myös pääsy monille valmiiksi tehdyille html-sivuille. Näitä ovat monet sivut, kuten kirjautumissivu, blogi, UKK, tilausluettelo, lasku, hinnoittelu, tiedostojen hallinta.",
"LeptonThemeForAdmin": "Lepton-teema järjestelmänvalvojan hallintapaneelillesi",
"LeptonThemeForAdminDescription": "Lepton-teema on edelleen saatavilla ja sitä ylläpidetään. Jos haluat siirtyä LeptonX-teemaan Lepton-teeman käyttäjänä, voit katsoa ohjeista ohjeita.",
"LeptonCompatibleWith": "Lepton-teema on yhteensopiva",
"BlackFridayDiscount": "Black Friday -alennus",
"UpgradePaymentInfoSection_DeveloperPrice": "{0} {1} lisäkehittäjälle",
"Upgrade": "Päivitä",
"Renewal": "Uusiminen",
"UpgradePaymentInfoSection_LicensePrice": "{0} lisenssi",
"UpgradePaymentInfoSection_LicenseRenewalPrice": "Lisenssin uusiminen",
"Total": "Kaikki yhteensä",
"SupportPolicyFaqTitle": "Mikä on tukipolitiikkanne?",
"SupportPolicyFaqExplanation": "Tuemme vain aktiivista ja edellistä pääversiota. Emme takaa korjausjulkaisua 3. ja vanhemmille pääversioille. Jos aktiivinen versio on esimerkiksi 7.0.0, julkaisemme korjaustiedostoja sekä versioista 6.x.x että 7.x.x. Lisäksi tarjoamme tukea vain ABP Frameworkiin ja ABP Commercialiin liittyville ongelmille. Tämä tarkoittaa, että tukea ei anneta kolmannen osapuolen sovelluksille, pilvipalveluille ja muille ABP-tuotteiden käyttämille oheiskirjastoille. Käytämme kaupallisesti kohtuullisia keinoja tarjotaksemme asiakkaillemme teknistä tukea \"Volosoft Bilisim A.S\"-yhtiön virallisina työaikoina. Toisaalta emme sitoudu palvelutasosopimuksen (SLA) mukaiseen vastausaikaan, mutta pyrimme vastaamaan teknisiin ongelmiin mahdollisimman nopeasti virallisten työaikojemme puitteissa. Ellei asiakkaan kanssa ole tehty erityistä sopimusta, tarjoamme tukea vain osoitteessa https://support.abp.io. Meillä on myös yksityinen sähköpostituki, joka on vain Enterprise-lisenssin haltijoiden käytettävissä.",
"DowngradeLicensePlan": "Voinko tulevaisuudessa vaihtaa alempaan lisenssisuunnitelmaan?",
"DowngradeLicensePlanExplanation": "Et voi alentaa olemassa olevaa lisenssisuunnitelmaa. Voit kuitenkin ostaa uuden alemman lisenssisuunnitelman ja jatkaa kehitystyötäsi uudella lisenssillä. Kun olet ostanut alemman lisenssin, sinun tarvitsee vain kirjautua uuteen lisenssisuunnitelmaan ABP CLI -komennolla: ` abp login <käyttäjätunnus> -o <organisaatio> `.",
"LicenseTransfer": "Voiko lisenssin siirtää kehittäjältä toiselle?",
"LicenseTransferExplanation": "Kyllä! Kun ostat lisenssin, sinusta tulee lisenssin haltija, joten sinulla on pääsy organisaation hallintasivulle. Organisaatiolla on omistaja- ja kehittäjäroolit. Omistajat voivat hallita kehittäjäpaikkoja ja määrittää kehittäjiä. Kukin nimetty kehittäjä kirjautuu ABP CLI -komennolla järjestelmään, ja sillä on kehitys- ja tukioikeudet.",
"WhatHappensWhenLicenseEnds": "Mitä tapahtuu, kun lisenssikauteni päättyy?",
"WhatHappensWhenLicenseEndsExplanation1": "ABP Commercial -lisenssi on <a href=\"{0}\" target=\"_blank\">ikuinen lisenssi</a>. Kun lisenssi päättyy, voit jatkaa projektisi kehittämistä. Etkä ole velvollinen uusimaan lisenssiäsi. Lisenssisi mukana tulee yhden vuoden päivitys- ja tukisuunnitelma suoraan pakkauksesta. Jotta voit jatkossakin saada uusia ominaisuuksia, suorituskykyparannuksia, vikakorjauksia, tukea ja jatkaa ABP Suiten käyttöä, sinun on uusittava lisenssi. Kun lisenssi päättyy;",
"WhatHappensWhenLicenseEndsExplanation2": "Et voi luoda uusia ratkaisuja ABP Commercialin avulla, mutta voit jatkaa olemassa olevien sovellusten kehittämistä ikuisesti.",
"WhatHappensWhenLicenseEndsExplanation3": "Voit saada päivityksiä moduuleihin ja teemoihin MINOR-versiossasi (lukuun ottamatta RC- tai Preview-versioita). Esimerkiksi: jos käytät moduulin v3.2.0 versiota, voit silti saada päivityksiä kyseisen moduulin v3.2.x versiolle (v3.2.1, v3.2.5... jne.). Mutta et voi saada päivityksiä seuraavaan pää- tai pienempään versioon (kuten v3.3.0, v3.3.3.3, 4.x.x.. jne.). Esimerkiksi, kun lisenssisi päättyi, uusin julkaisu oli v4.4.3, ja myöhemmin julkaistiin sekä 4.4.4.4 että 4.5.0-versio, voit käyttää v4.4.X-versiota, mutta et v4.5.X-versiota.",
"WhatHappensWhenLicenseEndsExplanation4": "Et voi asentaa uusia moduuleja ja teemoja, jotka on lisätty ABP Commercial -alustaan lisenssisi päätyttyä.",
"WhatHappensWhenLicenseEndsExplanation5": "Et voi käyttää ABP Suitea.",
"WhatHappensWhenLicenseEndsExplanation6": "Et voi enää saada <a href=\"{0}\">premium-tukea</a>.",
"WhatHappensWhenLicenseEndsExplanation7": "Voit jatkaa (uusia) lisenssiäsi, jos haluat jatkaa näiden etujen saamista. Jos jatkat lisenssiäsi <strong>{3} päivää</strong> kuluessa lisenssin vanhenemisesta, seuraavat alennukset sovelletaan: Tiimilisenssi {0}; Toimilupa {1}; Yrityslisenssi {2}.",
"BlazoriseLicense": "Pitääkö meidän ostaa Blazorise-lisenssi?",
"BlazoriseLicenseExplanation": "Meillä on Volosoftin ja Megabitin välinen sopimus, jonka mukaan Blazorise-lisenssi on niputettu ABP Commercial -tuotteisiin, joten asiakkaidemme ei tarvitse ostaa ylimääräistä Blazorise-lisenssiä."
"TotalDevelopers": "Yhteensä {0} kehittäjää",
"CustomPurchaseExplanation": "Räätälöity sinun tarpeidesi mukaan",
"WhereDidYouHearAboutUs": "Mistä kuulit meistä?",
"Twitter": "Twitter",
"Facebook": "Facebook",
"Youtube": "YouTube",
"Google": "Google",
"Github": "GitHub",
"Friend": " Ystävältä",
"Other": "Muu",
"WhereDidYouHearAboutUs_explain": "Täsmennä ...",
"DeletingMemberWarningMessage": "\"{0}\" poistetaan kehittäjäluettelosta. Jos haluat, voit määrittää tämän tyhjän paikan myöhemmin toiselle kehittäjälle.",
"AdditionalInfo": "Jos kehittäjäistuimet ylittävät vaatimukset, voit vähentää niitä. Voit poistaa joitain kehittäjäpaikkojasi lähettämällä sähköpostia osoitteeseen <a href=\"mailto:info@abp.io\">info@abp.io</a>. Käyttämättömien kehittäjäpaikkojen tyhjentäminen vähentää lisenssin uusimiskustannuksia. Voit halutessasi ostaa uudelleen lisää kehittäjäpaikkoja aktiivisen lisenssijaksosi aikana. Huomaa, että koska tässä lisenssipaketissa on {0} kehittäjää, et voi vähentää tätä määrää.",
"LinkExpiredErrorMessage": "Linkki, jota yrität käyttää, on vanhentunut.",
"ExpirationDate": "Viimeinen käyttöpäivä",
"SpringCampaignDiscount": "Kevään kampanja-alennus",
"WhyUseAbpIoPlatform": "Miksi minun pitäisi käyttää ABP.IO-alustaa sen sijaan, että luon uuden ratkaisun tyhjästä?",
"WhyUseAbpIoPlatformFaqExplanation": "Katso <a href=\"https://docs.abp.io/en/commercial/latest/why-abp-io-platform \"> kyseisestä asiakirjasta </a> yksityiskohtainen selitys siitä, miksi ABP.IO Platformin käyttäminen on huomattavasti edullisempaa kuin kaiken tekeminen itse."
}
}

3
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json

@ -160,7 +160,7 @@
"SearchQuestionPlaceholder": "Keressen a gyakran ismételt kérdések között",
"WhatIsTheABPCommercial": "Mi az az ABP Commercial?",
"WhatAreDifferencesThanAbpFramework": "Mi a különbség a nyílt forráskódú ABP Framework és az ABP Commercial között?",
"AbpCommercialMetaTitle": "ABP Commercial – Teljes webfejlesztési platform: {0} | ABP Commercial",
"AbpCommercialMetaTitle": "{0} | ABP Commercial",
"AbpCommercialMetaDescription": "Az ABP Commercial a nyílt forráskódú ABP keretrendszerre épülő előre beépített alkalmazásmodulok, gyorsfejlesztő eszközök, UI témák és szolgáltatások készlete.",
"ABPCommercialExplanation": "Az ABP Commercial prémium modulok, eszközök, témák és szolgáltatások készlete a nyílt forráskódú <a target=\"_blank\" href=\"{0}\">ABP keretrendszerre</a> épül fel. Az ABP Commercial-t ugyanaz a csapat fejleszti és támogatja az ABP keretrendszer mögött.",
"WhatAreDifferencesThanABPFrameworkExplanation": "<p> Az <a target=\"_blank\" href=\"{0}\">ABP-keretrendszer</a> egy moduláris, tematikus, mikroszolgáltatásokkal kompatibilis alkalmazásfejlesztési keretrendszer az ASP.NET Core számára. Teljes architektúrát és erős infrastruktúrát biztosít ahhoz, hogy a saját üzleti kódjára összpontosítson, ahelyett, hogy megismételné magát minden új projektnél. A szoftverfejlesztés bevált gyakorlatain és a már ismert népszerű eszközökön alapul. </p> <p> Az ABP keretrendszer teljesen ingyenes, nyílt forráskódú és közösségvezérelt. Ingyenes témát és néhány előre beépített modult is biztosít (pl. személyazonosság-kezelés és bérlőkezelés).</p>",
@ -623,7 +623,6 @@
"Faq_Page_Currency": "Valuta",
"Faq_Page_VatNumber": "Adószám",
"Faq_Page_OtherCurrenciesInfo": "A többi pénznemhez lásd <a href='{0}'>az összes fiókot</a>",
"ModuleDetail_Page_Title": "Modul részletei – {0}",
"ProjectCreatedSuccess_Page_Title": "A projekt létrehozva",
"ProjectCreatedSuccess_Page_Description": "ABP projektje sikeresen létrejött!",
"Suite_Page_Title": "ABP Suite – CRUD oldalak létrehozása",

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

@ -391,7 +391,7 @@
"AddNewDeveloper": "Yeni geliştirici ekle",
"FirstNameField": "Ad",
"LastNameField": "Soyad",
"AbpCommercialMetaTitle": "ABP Commercial - Eksiksiz Web Geliştirme Platformu : {0} | ABP Commercial",
"AbpCommercialMetaTitle": " {0} | ABP Commercial",
"AbpCommercialMetaDescription": "ABP Commercial, açık kaynaklı ABP çerçevesinin üzerine inşa edilmiş önceden oluşturulmuş uygulama modülleri, hızlı geliştirme araçları, kullanıcı arayüzü temaları ve hizmetlerinden oluşan bir settir.",
"WhatHappensWhenLicenseEnds": "Lisans sürem sona erdiğinde ne olacak?",
"WhatHappensWhenLicenseEndsExplanation1": "ABP Ticari lisansı <a href=\"{0}\" target=\"_blank\">kalıcı bir lisanstır</a>. Lisansınızın süresi dolduktan sonra projenizi geliştirmeye devam edebilirsiniz. Ve lisansınızı yenilemek zorunda değilsiniz. Lisansınız kutudan bir yıllık güncelleme ve destek planı ile birlikte gelir. Yeni özellikler, performans geliştirmeleri, hata düzeltmeleri, destek almaya devam etmek ve ABP Suite'i kullanmaya devam etmek için lisansınızı yenilemeniz gerekir. Lisansınızın süresi dolduğunda aşağıdaki avantajlardan yararlanamazsınız:",
@ -522,7 +522,7 @@
"AddBasket": "Sepete Ekle",
"SendTrainingRequest": "Eğitim Talebi Gönder",
"OnlyEnglishVersionOfThisDocumentIsTheRecentAndValid": "* Bu belgenin İngilizce versiyonu en güncel olanıdır ve herhangi bir anlaşmazlıkta İngilizce versiyonu geçerli olacaktır.",
"Pricing_Page_Title": "Planlar ve Fiyatlandırma",
"Pricing_Page_Title": "Fiyatlandırma ve Planlar",
"Pricing_Page_Description": "İşletmenizin bugün ihtiyaç duyduğu özellikleri ve işlevselliği seçin. Bir ABP Ticari lisansı satın alın ve sınırsız proje oluşturun.",
"Pricing_Page_HurryUp": "Acele edin!",
"Pricing_Page_BuyLicense": "16 Ocak'a kadar <strong>2021 fiyatlarıyla</strong> lisans satın alın!",
@ -607,7 +607,7 @@
"Purchase_PricePerDeveloper": "<span>{0} {1}</span> geliştirici başına",
"Purchase_IncludedDeveloperInfo": "{0} {1} dahil.",
"Purchase_LicenseExtraDeveloperPurchaseMessage": "<span class=\"fw-6\">{0} lisansı</span> {1} geliştirici(ler) içerir. Şimdi veya daha sonra ek geliştiriciler ekleyebilirsiniz.",
"StartupTemplates_Page_Title": "Başlangıç Şablonları",
"StartupTemplates_Page_Title": "ABP Başlangıç Şablonları",
"StartupTemplates_Page_Description": "ABP Commercial, her düzeyde karmaşıklığa sahip çözümler oluşturmanıza olanak tanır. Önceden oluşturulmuş iki ana başlangıç çözümü sunar. Gereksinimlerinize yakın olanı seçebilir ve bunun üzerine kendi özel çözümünüzü oluşturabilirsiniz.",
"MicroserviceStartupSolutionForDotnet": ".NET için Mikro Hizmet Başlatma Çözümü",
"MonolithSolutionForDotnet": ".NET için Monolith (modüler) Çözüm",
@ -632,12 +632,11 @@
"Faq_Page_Currency": "Para Birimi",
"Faq_Page_VatNumber": "Vergi Numarası",
"Faq_Page_OtherCurrenciesInfo": "Diğer para birimleri için <a href='{0}'>tüm hesaplar</a> bölümüne bakınız",
"ModuleDetail_Page_Title": "Modül Detayı - {0}",
"ProjectCreatedSuccess_Page_Title": "Projeniz oluşturuldu",
"ProjectCreatedSuccess_Page_Description": "ABP projeniz başarıyla oluşturuldu!",
"Suite_Page_Title": "ABP Suite - CRUD Sayfaları Oluşturun",
"Suite_Page_Title": "ABP Suite",
"Suite_Page_Description": "ABP Commercial, geliştirici verimliliğini artırmak için hızlı uygulama geliştirme araçları sağlar. ABP Suite, CRUD sayfalarını kolayca oluşturmanızı sağlar.",
"Themes_Page_Title": "Modern ve İşlevsel Kullanıcı Arayüzü Temaları",
"Themes_Page_Title": "ABP Temaları",
"Themes_Page_Description": "ABP Commercial birden fazla profesyonel, modern kullanıcı arayüzü teması sunar. Kullanıcı arayüzünün neye benzediğini hızlıca görmek için ücretsiz bir demo oluşturun.",
"Tools_Page_Title": "Hızlı Uygulama Geliştirme Araçları",
"Tools_Page_Description": "ABP Commercial, geliştirici verimliliğini artırmak için hızlı uygulama geliştirme araçları sağlar. ABP Suite, CRUD sayfalarını kolayca oluşturmanızı sağlar.",
@ -745,7 +744,12 @@
"ConfirmedEmailAddressRequiredToStartTrial": "Deneme lisansı başlatmak için onaylanmış bir e -posta adresiniz olmalı.",
"EmailVerificationMailNotSent": "E-posta doğrulama postası gönderilemedi.",
"GetConfirmationEmail": "Daha önce bir onay e-postası almadıysanız <a href=\"javascript:void(0);\" id=\"{0}\" class=\"text-decoration-underline\"> almak için buraya tıklayın.</a>",
"WhichLicenseTypeYouAreInterestedIn": "Hangi lisans türüyle ilgileniyorsunuz?",
"BlackFridayDiscount": "Kara Cuma İndirimi"
"WhichLicenseTypeYouAreInterestedIn": "Hangi lisans türüyle ilgileniyorsunuz?",
"BlackFridayDiscount": "Kara Cuma İndirimi",
"EulaPageTitle": "Son Kullanıcı Lisans Sözleşmesi (EULA)",
"PrivacyPolicyPageTitle": "Gizlilik Politikası - Çerez Politikası",
"TermsConditionsPageTitle": "Şartlar ve Koşullar",
"TrainingsPageTitle": "ABP Eğitim Paketleri",
"ModulesPageTitle": "ABP Önceden Oluşturulmuş Uygulama Modülleri"
}
}

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

@ -160,7 +160,7 @@
"SearchQuestionPlaceholder": "搜索常见的问题",
"WhatIsTheABPCommercial": "什么是ABP商业版?",
"WhatAreDifferencesThanAbpFramework": "ABP框架与ABP商业版有什么不同?",
"AbpCommercialMetaTitle": "ABP 商业版 - 完整的网页开发平台 : {0} | ABP 商业版 ",
"AbpCommercialMetaTitle": " {0} | ABP 商业版 ",
"AbpCommercialMetaDescription": "ABP 商业版是在开源ABP框架之上构建的一组预构建应用程序模块、快速开发工具、UI主题和服务架构",
"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>",
@ -511,7 +511,7 @@
"AddBasket": "添加到购物车",
"SendTrainingRequest": "发送培训请求",
"OnlyEnglishVersionOfThisDocumentIsTheRecentAndValid": "* 本文件的英文版本为最新版本,如有任何争议,以英文版本为准。",
"Pricing_Page_Title": "计划 & 定价",
"Pricing_Page_Title": "价格和计划",
"Pricing_Page_Description": "现在就选择您的业务及需要的特性和功能。 购买 ABP 商业许可证创建无限量项目。",
"Pricing_Page_HurryUp": "赶快行动吧!",
"Pricing_Page_BuyLicense": "在 1 月 16 日前以 <strong>2021 年价格</strong> 购买许可证!",
@ -597,7 +597,7 @@
"Purchase_PricePerDeveloper": "<span>{0} {1}</span> 每个开发者",
"Purchase_IncludedDeveloperInfo": "{0} {1} 包括在内。",
"Purchase_LicenseExtraDeveloperPurchaseMessage": "<span class=\"fw-6\">{0} 许可</span> 包含 {1} 个开发者。 您可以现在或以后添加其他开发人员。",
"StartupTemplates_Page_Title": "启动模板",
"StartupTemplates_Page_Title": "ABP启动模板",
"StartupTemplates_Page_Description": "ABP 商业版 允许您构建任何复杂程度的解决方案。 它提供了两种主要的预构建启动解决方案。 您可以选择最接近您要求的解决方案,并在此基础上构建您自己的定制解决方案。",
"MicroserviceStartupSolutionForDotnet": ".NET 微服务启动解决方案",
"MonolithSolutionForDotnet": ".NET 的单体(模块化)解决方案",
@ -622,12 +622,11 @@
"Faq_Page_Currency": "货币",
"Faq_Page_VatNumber": "增值税号",
"Faq_Page_OtherCurrenciesInfo": "对于其他货币,请参阅<a href='{0}'>所有账户</a>",
"ModuleDetail_Page_Title": "模块详细信息 - {0}",
"ProjectCreatedSuccess_Page_Title": "您的项目已创建",
"ProjectCreatedSuccess_Page_Description": "您的 ABP 项目创建成功!",
"Suite_Page_Title": "ABP 套件 - 创建 CRUD 页面",
"Suite_Page_Title": "ABP Suite",
"Suite_Page_Description": "ABP Commercial 提供快速应用程序开发工具以提高开发人员的工作效率。 ABP 套件 允许您轻松创建 CRUD 页面。",
"Themes_Page_Title": "现代和实用的 UI 主题",
"Themes_Page_Title": "ABP主题",
"Themes_Page_Description": "ABP 商业版 提供多种专业、现代的 UI 主题。 创建免费演示以快速查看 UI 的外观。",
"Tools_Page_Title": "快速应用程序开发工具",
"Tools_Page_Description": "ABP 商业版 提供快速应用程序开发工具以提高开发人员的工作效率。 ABP 套件 允许您轻松创建 CRUD 页面。",
@ -821,6 +820,11 @@
"ExpirationDate": "过期时间",
"SpringCampaignDiscount": "春季促销折扣",
"WhyUseAbpIoPlatform": "为什么我应该使用 ABP.IO 平台而不是从头开始创建新的解决方案?\n",
"WhyUseAbpIoPlatformFaqExplanation": "请参阅<a href=\"https://docs.abp.io/en/commercial/latest/why-abp-io-platform\">该文件</a>以详细解释为什么使用ABP.IO平台比自己做所有事情有显著的优势。"
"WhyUseAbpIoPlatformFaqExplanation": "请参阅<a href=\"https://docs.abp.io/en/commercial/latest/why-abp-io-platform\">该文件</a>以详细解释为什么使用ABP.IO平台比自己做所有事情有显著的优势。",
"EulaPageTitle": "最终用户许可协议(EULA)",
"PrivacyPolicyPageTitle": "隐私政策 - Cookies政策",
"TermsConditionsPageTitle": "条款和条件",
"TrainingsPageTitle": "ABP培训套餐",
"ModulesPageTitle": "ABP内置的应用模块"
}
}
}

3
abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/ar.json

@ -187,6 +187,7 @@
"Index_Page_CommunityIntroduction": "إن هذا محور لإطار عمل ABP و.NET وتطوير البرامج. يمكنك قراءة المقالات ومشاهدة مقاطع الفيديو التعليمية والحصول على معلومات حول تقدم تطوير ABP والأحداث المتعلقة بـ ABP ومساعدة المطورين الآخرين ومشاركة خبرتك مع منتدى ABP.",
"TagsInArticle": "العلامات في المقال",
"WelcomeToABP": "أهلا بكم في ABP",
"IConsentToMedium": ".https://medium.com/volosoft أوافق على نشر هذا المنشور على"
"IConsentToMedium": ".https://medium.com/volosoft أوافق على نشر هذا المنشور على",
"DiscordPageTitle": "مجتمع ABP Discord"
}
}

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

@ -186,6 +186,7 @@
"TagsInArticle": "Tags in article",
"IConsentToMedium": "I consent to the publication of this post at https://medium.com/volosoft.",
"SearchResultsFor": "Search results for <span class=\"fw-bold\">\"{0}\"</span>",
"SeeMoreVideos": "See more videos"
"SeeMoreVideos": "See more videos",
"DiscordPageTitle": "ABP Discord Community"
}
}

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

@ -2,21 +2,20 @@
"culture": "fi",
"texts": {
"Permission:CommunityPost": "Yhteisön artikkeli",
"Permission:Edit": "Muokata",
"Permission:Edit": "Muokkaus",
"Waiting": "Odottaa",
"Approved": "Hyväksytty",
"Rejected": "Hylätty",
"Wait": "Odota",
"Approve": "Hyväksyä",
"Reject": "Hylätä",
"Wait": "Odottaa",
"Approve": "Hyväksy",
"Reject": "Hylkää",
"ReadPost": "Lue artikkeli",
"Status": "Tila",
"ContentSource": "Sisältölähde",
"Details": "Yksityiskohdat",
"Url": "URL-osoite",
"Title": "Otsikko",
"CreationTime": "Luomisaika",
"Save": "Tallentaa",
"Save": "Tallenna",
"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.",
@ -29,14 +28,12 @@
"ContributionGuide": "Contribution Guide",
"BugReport": "Virhe raportti",
"SeeAllPosts": "Katso kaikki viestit",
"WelcomeToABPCommunity!": "Tervetuloa ABP Community!",
"MyProfile": "Profiilini",
"MyOrganizations": "Omat organisaatiot",
"WelcomeToABP": "Tervetuloa ABP:hen",
"EmailNotValid": "Ole hyvä ja syötä toimiva sähköpostiosoite.",
"FeatureRequest": "Ominaisuuspyyntö",
"CreatePostTitleInfo": "Viestiluettelossa näytettävän viestin nimi.",
"CreatePostSummaryInfo": "Lyhyt yhteenveto viestistä, joka näytetään postituslistalla.",
"CreatePostCoverInfo": "Lisää tehokkaan artikkelin luomiseksi kansikuva. Lataa 16:9 -kuvasuhteen kuvat parhaan näkymän saamiseksi. Tiedoston enimmäiskoko: 1MB.",
"CreatePostCoverInfo": "Lisää kansikuva, jotta voit luoda tehokkaan viestin. Lataa 16:9 -kuvasuhteen kuvat parhaan näkymän saamiseksi. Tiedoston enimmäiskoko: 1MB.",
"ThisExtensionIsNotAllowed": "Tätä laajennusta ei sallita.",
"TheFileIsTooLarge": "Tiedosto on liian suuri.",
"GoToThePost": "Siirry artikkeliin",
@ -45,7 +42,7 @@
"Done": "Tehty",
"Open": "Avata",
"Closed": "Suljettu",
"LatestQuestionOnThe": "Viimeisin kysymys",
"RecentQuestionFrom": "Viimeisin kysymys henkilöltä {0}",
"Stackoverflow": "Pinoaminen",
"Votes": "ääntä",
"Answer": "Vastaus",
@ -59,7 +56,7 @@
"QuestionItemErrorMessage": "Viimeisimmät kysymystiedot Stackoverflow'sta epäonnistui.",
"Oops": "Oho!",
"CreatePostSuccessMessage": "Artikkeli on lähetetty onnistuneesti. Se julkaistaan sivuston järjestelmänvalvojan tarkistuksen jälkeen.",
"ChooseCoverImage": "Valitse kansikuva...",
"Browse": "Selaa",
"CoverImage": "Kansikuva",
"ShareYourExperiencesWithTheABPFramework": "Jaa kokemuksesi ABP-puitteista!",
"Optional": "Valinnainen",
@ -80,7 +77,7 @@
"LatestGithubAnnouncements": "Viimeisimmät Github-ilmoitukset",
"SeeAllAnnouncements": "Katso kaikki ilmoitukset",
"LatestBlogPost": "Viimeisin blogiviesti",
"Edit": "Muokata",
"Edit": "Muokkaa",
"ProfileImageChange": "Vaihda profiilikuva",
"BlogItemErrorMessage": "Viimeisimpiä blogiviestitietoja ei saatu ABP: ltä.",
"PlannedReleaseDate": "Suunniteltu julkaisupäivä",
@ -88,6 +85,8 @@
"PostRequestFromGithubIssue": "Artikkelipyyntöjä ei ole nyt.",
"LatestPosts": "Uusimmat viestit",
"ArticleRequests": "Artikkelipyynnöt",
"ArticleRequestsDescription": "Haluatko nähdä tietyn sisällön täällä? Voit pyytää yhteisöä luomaan sen!",
"LatestContentRequests": "Uusimmat sisältöpyynnöt",
"AllPostRequests": "Katso kaikki artikkelipyynnöt",
"SubscribeToTheNewsletter": "Tilaa uutiskirje",
"NewsletterEmailDefinition": "Hanki tietoa ABP: n tapahtumista, kuten uusista julkaisuista, ilmaisista lähteistä, artikkeleista ja muusta.",
@ -102,20 +101,19 @@
"Language": "Kieli",
"CreatePostLanguageInfo": "Viestin sisällön kieli.",
"VideoPost": "Videoposti",
"Post": "Artikla",
"Read": "Lukea",
"Post": "Artikkeli",
"Read": "Lue",
"CreateGithubPostUrlInfo": "Artikkelin alkuperäinen GitHub-URL-osoite.",
"CreateVideoContentUrlInfo": "Viestin alkuperäinen Youtube-URL-osoite.",
"CreateVideoContentUrlInfo": "Artikkelin alkuperäinen Youtube-URL-osoite.",
"CreateExternalPostUrlInfo": "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ää?",
"HowToPost": "Kuinka lähettää viesti?",
"Posts": "Viestit",
"VideoUrl": "Videon URL-osoite",
"GithubPostUrl": "Github-artikkelien URL-osoite",
"ExternalPostUrl": "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: 1MB.",
"ThankYouForContribution": "Kiitos osallistumisesta ABP Community.",
"GithubPost": "Github-artikkeli",
"GithubPostSubmitStepOne": "<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/en/Community-Articles/2020-12-04-Event-Organizer/Post.md\"> esimerkki </a>",
@ -144,6 +142,50 @@
"Volo.AbpIo.Domain:060002": "Artikkelin sisältö ei ole saatavilla Githubin (\"{PostUrl}\") -resurssista.",
"Volo.AbpIo.Domain:060003": "Artikkelin sisältöä ei löytynyt!",
"SeeMore": "Katso Lisää",
"IConsentToMedium": "Hyväksyn tämän viestin julkaisemisen osoitteessa https://medium.com/volosoft."
"JoinTheABPCommunity": "Liity ABP-yhteisöön",
"ABPCommunityTalks": "ABP Community Talks",
"LiveDemo": "Live-demo",
"GetLicense": "Hanki lisenssi",
"GetStarted": "Aloita",
"SourceCode": "Lähdekoodi",
"LeaveComment": "Jätä kommentti",
"ShowMore": "Näytä lisää",
"NoPublishedPostsYet": "Ei vielä julkaistuja viestejä.",
"Name": "Nimi",
"Surname": "Sukunimi",
"WebSite": "Verkkosivusto",
"FullURL": "Koko URL-osoite",
"JobTitle": "Työnimike",
"Prev": "Ed",
"Previous": "Edellinen",
"Next": "Seuraava",
"Share": "Jaa",
"SortBy": "Järjestä",
"NoPublishedEventsYet": "Ei vielä julkaistuja tapahtumia.",
"SubscribeYoutubeChannel": "Tilaa Youtube-kanava",
"Enum:EventType:0": "Keskustelut",
"MemberNotPublishedPostYet": "Tämä jäsen ei ole vielä julkaissut yhtään viestiä.",
"TimeAgo": "{0} sitten",
"Discord_Page_JoinCommunityMessage": "Liity ABP Discord -yhteisöön",
"Discord_Page_Announce": "Meillä on ilo julkistaa ABP Community Discord Server!",
"Discord_Page_Description_1": "ABP-yhteisö on kasvanut ensimmäisestä päivästä lähtien. Halusimme viedä sen seuraavaan vaiheeseen luomalla virallisen ABP Discord -palvelimen, jotta ABP-yhteisö voi olla vuorovaikutuksessa toistensa kanssa käyttämällä pikaviestinnän ihmeitä.",
"Discord_Page_Description_2": "ABP Community Discord Server on paikka, jossa voit esitellä luomuksiasi ABP Frameworkin avulla, jakaa sinulle toimivia vinkkejä, saada viimeisimmät uutiset ja ilmoitukset ABP Frameworkista, keskustella vain yhteisön jäsenten kanssa ideoiden vaihtamiseksi ja pitää hauskaa!",
"Discord_Page_Description_3": "Tämä ABP Community Discord -palvelin on virallinen, ja ABP Core Team on läsnä palvelimella valvomassa.",
"Discord_Page_JoinToServer": "Liity ABP Discord Serveriin",
"Events_Page_MetaTitle": "ABP-yhteisötapahtumat",
"Events_Page_MetaDescription": "ABP-tiimin isännöimät live-ohjelmat ovat rentoja istuntoja, jotka ovat täynnä yhteisöllistä sisältöä, demoja, kysymyksiä ja vastauksia sekä keskusteluja siitä, mitä ABP:ssä tapahtuu.",
"Events_Page_Title": "ABP<span class=\"gradient-community\">yhteisön</span> keskustelut",
"Members_Page_WritingFromUser": "Lue kirjoittajan {0} kirjoitus ABP-yhteisössä.",
"Post_Create_Page_MetaTitle": "Uusi viesti",
"Post_Create_Page_MetaDescription": "Luo viestisi, jotta voit jakaa kokemuksiasi ABP-kehyksestä ja osallistua ABP-yhteisöön.",
"Post_Create_Page_CreateNewPost": "Luo uusi viesti",
"Post_Index_Page_MetaDescription": "ABP Communityn tarkoituksena on luoda osallistumisen mahdollistava ympäristö ABP-kehystä käyttäville kehittäjille.",
"Layout_Title": "{0} | ABP-yhteisö",
"Layout_MetaDescription": "ABP Community on ympäristö, jossa ihmiset voivat jakaa julkaisuja ABP-kehyksestä ja seurata projekteja.",
"Index_Page_CommunityIntroduction": "Tämä on ABP Frameworkin, .NET:n ja ohjelmistokehityksen keskus. Voit lukea artikkeleita, katsoa opetusvideoita, saada tietoa ABP:n kehityksen edistymisestä ja ABP:hen liittyvistä tapahtumista, auttaa muita kehittäjiä ja jakaa asiantuntemustasi ABP-yhteisön kanssa.",
"TagsInArticle": "Tagit artikkelissa",
"IConsentToMedium": "Hyväksyn tämän viestin julkaisemisen osoitteessa https://medium.com/volosoft.",
"SearchResultsFor": "Hakutulokset haulle <span class=\"fw-bold\">\"{0}\"</span>",
"SeeMoreVideos": "Katso lisää videoita"
}
}

3
abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/tr.json

@ -190,6 +190,7 @@
"Layout_Title": "{0} | ABP Topluluğu",
"Layout_MetaDescription": "ABP Topluluğu, insanların ABP çerçevesi hakkında paylaşımlarda bulunabileceği ve projeleri takip edebileceği bir ortamdır.",
"Index_Page_CommunityIntroduction": "Burası ABP Çerçevesi, .NET ve yazılım geliştirme için bir merkezdir. Makaleleri okuyabilir, eğitim videolarını izleyebilir, ABP'nin gelişim süreci ve ABP ile ilgili etkinlikler hakkında bilgi alabilir, diğer geliştiricilere yardımcı olabilir ve uzmanlığınızı ABP topluluğu ile paylaşabilirsiniz.",
"IConsentToMedium": "Bu yazının https://medium.com/volosoft adresinde yayınlanmasına izin veriyorum."
"IConsentToMedium": "Bu yazının https://medium.com/volosoft adresinde yayınlanmasına izin veriyorum.",
"DiscordPageTitle": "ABP Discord Topluluğu"
}
}

3
abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/zh-Hans.json

@ -186,6 +186,7 @@
"TagsInArticle": "文章中的标签",
"IConsentToMedium": "我同意在 https://medium.com/volosoft 上发布这篇文章。",
"SearchResultsFor": " span class=\"fw-bold\">\"{0}\"</span>的搜索结果",
"SeeMoreVideos": "查看更多视频"
"SeeMoreVideos": "查看更多视频",
"DiscordPageTitle": "ABP Discord社区"
}
}

6
abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/fi.json

@ -0,0 +1,6 @@
{
"culture": "fi",
"texts": {
"Buy": "Osta"
}
}

6
abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/fi.json

@ -0,0 +1,6 @@
{
"culture": "fi",
"texts": {
"FAQ": "FAQ"
}
}

5
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ar.json

@ -404,6 +404,9 @@
"SeeTheScreenshot": "انظر الى الصورة",
"Details": "التفاصيل",
"ApplicationModuleExplanation1": "إنشاء حل وحدة تطبيق ذات طبقات كاملة وقابلة لإعادة الاستخدام.",
"ApplicationModuleExplanation2": "يمكنك استخدام هذا الخيار لإنشاء وحدات نمطية لتطبيقك المعياري."
"ApplicationModuleExplanation2": "يمكنك استخدام هذا الخيار لإنشاء وحدات نمطية لتطبيقك المعياري.",
"CreateSolutionFolder": "إنشاء مجلد الحل",
"CreateSolutionFolderOption": "يحدد ما إذا كان المشروع سيكون في مجلد جديد في مجلد الإخراج أو مجلد الإخراج مباشرة.",
"BooksPageTitle": "كتب ABP"
}
}

5
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/cs.json

@ -274,7 +274,8 @@
"FirstEdition": "První vydání",
"ThankYou": "Děkuji!",
"CheckboxMandatory": "Chcete-li pokračovat, musíte toto zaškrtnout!",
"SelectUITheme": "Vyberte téma uživatelského rozhraní"
"SelectUITheme": "Vyberte téma uživatelského rozhraní",
"CreateSolutionFolder": "Vytvořit složku řešení",
"CreateSolutionFolderOption": "Určuje, zda bude projekt v nové složce ve výstupní složce nebo přímo výstupní složce."
}
}

5
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/de.json

@ -274,7 +274,8 @@
"FirstEdition": "Erste Ausgabe",
"ThankYou": "Dankeschön!",
"CheckboxMandatory": "Sie müssen dies überprüfen, um fortzufahren!",
"SelectUITheme": "Wählen Sie UI-Design aus"
"SelectUITheme": "Wählen Sie UI-Design aus",
"CreateSolutionFolder": "Lösungsordner erstellen",
"CreateSolutionFolderOption": "Gibt an, ob sich das Projekt in einem neuen Ordner im Ausgabeordner oder direkt im Ausgabeordner befindet."
}
}

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

@ -416,6 +416,9 @@
"CompanyInfo": "Company Info",
"Date": "Date",
"WhoWeAre_Partner": "Who We Are",
"WhoWeAre_Expert": "About Me"
"WhoWeAre_Expert": "About Me",
"CreateSolutionFolder": "Create Solution Folder",
"CreateSolutionFolderOption": "Specifies if the project will be in a new folder in the output folder or directly the output folder.",
"BooksPageTitle": "ABP Books"
}
}

5
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/es.json

@ -274,7 +274,8 @@
"FirstEdition": "Primera edición",
"ThankYou": "¡Gracias!",
"CheckboxMandatory": "¡Debes marcar esto para continuar!",
"SelectUITheme": "Seleccione el tema de la interfaz de usuario"
"SelectUITheme": "Seleccione el tema de la interfaz de usuario",
"CreateSolutionFolder": "Crear carpeta de soluciones",
"CreateSolutionFolderOption": "Especifica si el proyecto estará en una nueva carpeta en la carpeta de salida o directamente en la carpeta de salida."
}
}

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

@ -2,7 +2,7 @@
"culture": "fi",
"texts": {
"GetStarted": "Aloitus - Käynnistysmallit",
"Create": "Luoda",
"Create": "Luo",
"NewProject": "Uusi projekti",
"DirectDownload": "Suora lataus",
"ProjectName": "Projektin nimi",
@ -14,7 +14,7 @@
"CreateNow": "Luo nyt",
"TheStartupProject": "Käynnistysprojekti",
"Tutorial": "Opetusohjelma",
"UsingCLI": "CLI: n käyttö",
"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",
@ -23,9 +23,9 @@
"Architecture": "Arkkitehtuuri",
"Modular": "Modulaarinen",
"DontRepeatYourself": "Älä toista itseäsi",
"DeveloperFocused": "Kehittäjä kohdennettu",
"FullStackApplicationInfrastructure": "Täyden pinon sovellusinfrastruktuuri.",
"DomainDrivenDesign": "Toimialueohjattu suunnittelu",
"DeveloperFocused": "Kehittäjä-kohdennettu",
"FullStackApplicationInfrastructure": "Full stack sovellusinfrastruktuuri.",
"DomainDrivenDesign": "Domain Driven Design",
"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.",
@ -64,7 +64,7 @@
"TransactionManagement": "Tapahtumien hallinta",
"AuditLogging": "Tarkastusten kirjaaminen",
"Caching": "Välimuisti",
"Multitenancy": "Monivärinen",
"Multitenancy": "Monivuokraus",
"DataFiltering": "Tietojen suodatus",
"ConventionOverConfiguration": "Kokoonpanon määritys",
"ConventionOverConfigurationExplanation": "ABP toteuttaa oletusarvoisesti yleiset sovelluskäytännöt minimaalisella tai nolla-kokoonpanolla.",
@ -136,8 +136,8 @@
"ValueObject": "Arvo-objekti",
"ApplicationService": "Sovelluspalvelu",
"DataTransferObject": "Tiedonsiirtokohde",
"AggregateRootEntity": "Kokonaisjuuri, entiteetti",
"AutoRESTAPIsExplanation": "ABP voi määrittää sovelluspalvelut automaattisesti API-ohjaimiksi sopimuksen mukaan.",
"AggregateRootEntity": "Aggregate Root, entiteetti",
"AutoRESTAPIsExplanation": "ABP voi määrittää sovelluspalvelut automaattisesti API-kontrollereiksi 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.",
@ -159,9 +159,9 @@
"UiFramework": "Käyttöliittymäkehys",
"EmailAddress": "Sähköpostiosoite",
"Mobile": "Matkapuhelin",
"ReactNative": "Reagoi Native",
"ReactNative": "React Native",
"Strong": "Vahva",
"Complete": "Saattaa loppuun",
"Complete": "Valmis",
"BasedLayeringModel": "Perustuva kerrosmalli",
"Microservice": "Mikropalvelu",
"Compatible": "Yhteensopiva",
@ -172,8 +172,9 @@
"DynamicClientProxyDocument": "Katso dynaamisen asiakkaan välityspalvelimen dokumentaatiot <a href=\"{0}\"> JavaScript </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.",
"TieredOption": "Luo monikerros 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.",
"ProgressiveWebApplicationOption": "Määrittää projektin progressiiviseksi verkkosovellukseksi (PWA)",
"UseslatestPreVersion": "Käyttää uusinta julkaisua edeltävää versiota",
"ReadTheDocumentation": "<span class=\"text-primary\"> Lue </span><span class=\"text-success\"> Dokumentaatio </span>",
"Documentation": "Dokumentointi",
@ -214,7 +215,11 @@
"SeeDocs": "Katso Docs",
"None": "Ei mitään",
"Application": "Sovellus",
"ApplicationExplanation": "Luo täysin kerrostetun ratkaisun, joka perustuu Domain Driven Design -käytäntöihin. Suositellaan pitkäaikaisiin projekteihin, jotka tarvitsevat ylläpidettävän ja laajennettavan koodikannan.",
"ApplicationNoLayer": "Sovellus (yksi kerros)",
"ApplicationNoLayerExplanation": "Luo yksikerroksisen verkkosovelluksen. Suositellaan yksinkertaisemman ja helposti ymmärrettävän arkkitehtuurin sovelluksen rakentamiseen.",
"Module": "Moduuli",
"ModuleExplanation": "Luo uudelleenkäytettävän, täysin kerrostetun sovellusmoduuliratkaisun. Voit käyttää tätä vaihtoehtoa luodaksesi moduuleja modulaariselle sovelluksellesi.",
"PackageName": "Paketin nimi",
"LicenseURL": "Lisenssin URL-osoite",
"License": "Lisenssi",
@ -274,7 +279,145 @@
"FirstEdition": "Ensimmäinen painos",
"ThankYou": "Kiitos!",
"CheckboxMandatory": "Sinun on tarkistettava tämä jatkaaksesi!",
"SelectUITheme": "Valitse käyttöliittymän teema"
"CreateSolutionFolder": "Luo ratkaisukansio",
"CreateSolutionFolderOption": "Määrittää, onko projekti tuloskansion uudessa kansiossa vai suoraan tulostekansiossa.",
"UserInterface": "Käyttöliittymä",
"APIGateway": "API-yhdyskäytävä",
"Database": "Tietokanta",
"Saas": "Saas",
"OpenSourceWebApp": "Avoimen <span class=\"forever\">lähdekoodin</span> <br/> verkkosovellus",
"Framework": "Framework",
"AuditLoggingExplanation": "Seuraa automaattisesti kaikkia järjestelmäsi toimintoja ja tietojen muutoksia.",
"AbpNewCommandExplanation": "Luo uusia ratkaisuja käyttämällä ABP-käynnistysmalleja.",
"AbpAddModuleCommandExplanation": "Asenna valmiiksi rakennetut sovellusmoduulit ratkaisuusi",
"AbpUpdateCommandExplanation": "Päivittää automaattisesti kaikki ABP:hen liittyvät NuGet- ja NPM-paketit ratkaisussasi.",
"ExploreAllCLICommands": "Tutustu kaikkiin CLI-komentoihin",
"ExploreDocumentationAndGuides": "Tutustu kattavaan dokumentaatioon ja oppaisiin.",
"Documentations": "Dokumentointi",
"Views": "Näkymät",
"EnterYouEmailToGetNews": "Kirjoita sähköpostiosoitteesi saadaksesi viimeisimmät uutiset ABP Frameworkista",
"Tiered": "Monikerros",
"SeparateIdentityServer": "Erillinen identiteettipalvelin",
"ProgressiveWebApplication": "Progressiivinen verkkosovellus",
"Preview": "Esikatsele",
"CreateANewSolution": "Luo uusi ratkaisu",
"ABPFrameworkFeatures": "ABP-kehyksen <span class=\"gradient-framework\">Ominaisuudet</span>",
"Commercial": "Kaupallinen",
"ThirdPartyTools": "Kolmannen osapuolen työkalut",
"Back": "Takaisin",
"Community": "Yhteisö",
"SeeMore": "Katso lisää",
"DetailsOfTheEBook": "E-kirjan tiedot",
"JoinOurMarketingNewsletter": "Liity markkinointiuutiskirjeeseemme",
"FrameworkNewsletterConfirmationMessage": "Hyväksyn <a class=\"text-white fw-6 text-decoration-underline opacity-50\" href=\"https://commercial.abp.io/TermsConditions\">käyttöehdot</a> ja <a class=\"text-white fw-6 text-decoration-underline opacity-50\" href=\"https://commercial.abp.io/Privacy\">tietosuojakäytäntö</a>.",
"GetYourFreeEBook": "Hanki <span class=\"gradient-framework d-block\">ilmainen DDD-e-kirjasi </span>",
"EverythingYouNeedToKnow": "Kaikki mitä sinun tarvitsee tietää.",
"PreOrderNow": "Ennakkotilaa nyt",
"UITheming": "UI Theming",
"UIThemingExplanation": "Luo uudelleenkäytettäviä käyttöliittymäteemoja ja asetteluja tai käytä jotakin valmiista käyttöliittymäteemoista.",
"DataFilteringExplanation2": "Suodata automaattisesti tietokannan kyselyt toteuttaaksesi helposti malleja, kuten pehmeän poiston ja usean vuokrauksen.",
"NeedHelp": "Tarvitsetko apua?",
"GiveYourProjectAName": "Anna projektillesi nimi",
"SelectProjectType": "Valitse Projektin tyyppi",
"SelectUIFramework": "Valitse UI Framework",
"SelectDatabaseProvider": "Valitse Tietokannan tarjoaja",
"SelectDatabaseManagementSystem": "Valitse Tietokannan hallintajärjestelmä",
"InstallingTheABPCLI": "ABP CLI:n asentaminen",
"CreateYourProjectNow": "Luo projektisi nyt",
"OrderOn": "Tilaa {0}",
"DownloadFreeDDDBook": "Lataa ilmainen DDD-kirja",
"WhatIsABPFramework": "Mikä on ABP-kehys?",
"TenantDatabase": "Vuokralaisen {0} tietokanta",
"SharedDatabase": "Jaettu tietokanta",
"ConnectionResolver": "Yhteyden ratkaisija",
"TenantBasedDataFilter": "Vuokralaispohjainen tietosuodatin",
"ApplicationCode": "Sovelluskoodi",
"TenantResolution": "Vuokralaisen päättely",
"TenantUser": "Vuokralaisen {0} käyttäjä",
"CardTitle": "Kortin otsikko",
"View": "Näytä",
"Model": "Malli",
"Email": "Sähköposti",
"Password": "Salasana",
"Address": "Osoite",
"Gender": "Sukupuoli",
"Male": "Mies",
"Female": "Nainen",
"Submit": "Lähetä",
"Unspecified": "Määrittelemätön",
"StaticFileMiddleware": "Staattisen tiedoston väliohjelmisto",
"RazorViewEngine": "Razor View Engine",
"PhysicalFiles": "Fyysiset tiedostot (wwwroot)",
"EmbeddedFiles": "Upotetut tiedostot (DLL)",
"DynamicFiles": "Dynaamiset tiedostot (muisti)",
"BuildSolutionsWithAbp": "Rakenna ylläpidettäviä .NET-ratkaisuja noudattamalla ohjelmistokehityksen parhaita käytäntöjä käyttämällä ABP:tä.",
"BuyOnAmazon": "Osta Amazonista",
"BuyOnPackt": "Osta Packtista",
"Discounted": "Alennettu",
"MasteringAbpFramework_Book_KeyFeatures": "Avainominaisuudet",
"MasteringAbpFramework_Book_Key_Features_Description_1": "Luo kestäviä, ylläpidettäviä, modulaarisia ja skaalautuvia ohjelmistoratkaisuja ABP Frameworkin avulla.",
"MasteringAbpFramework_Book_Key_Features_Description_2": "Opi toteuttamaan SOLID-periaatteita ja verkkotunnuslähtöistä suunnittelua verkkosovelluksissasi.",
"MasteringAbpFramework_Book_Key_Features_Description_3": "Tutustu kuinka ABP Framework nopeuttaa kehityssykliäsi automatisoimalla toistuvia tehtäviä.",
"MasteringAbpFramework_Book_Description": "Kirjan kuvaus",
"MasteringAbpFramework_Book_Description_Details_1": "ABP Framework on täydellinen infrastruktuuri nykyaikaisten verkkosovellusten luomiseen seuraavilla ohjelmistoilla\n parhaiden käytäntöjen ja käytäntöjen kehittäminen. ABP:n korkean tason kehyksen ja ekosysteemin avulla voit\n ottaa käyttöön Älä toista itseäsi (DRY) -periaatteen ja keskittyä liiketoimintakoodiisi.",
"MasteringAbpFramework_Book_Description_Details_2": "Tämä ABP Frameworkin luojan kirjoittama kirja auttaa sinua saamaan täydellisen käsityksen\n frameworkista ja modernit verkkosovellusten kehitystekniikat. Vaiheittaisilla selityksillä olennaisista\n käsitteitä ja käytännön esimerkeistä, ymmärrät nykyaikaisen verkkoratkaisun vaatimukset ja kuinka ABP\n Framework tekee omien ratkaisujen kehittämisestä miellyttävää. Löydät yleiset vaatimukset\n yritysverkkosovellusten kehittämiseen ja ABP:n tarjoamaan infrastruktuuriin tutustumiseen. Läpi\n kirjan, opit ohjelmistokehityksen parhaita käytäntöjä ylläpidettävien ja modulaaristen verkkosovellusten rakentamiseen.",
"MasteringAbpFramework_Book_Description_Details_3": "Tämän kirjan luettuasi pystyt luomaan täydellisen verkkoratkaisun, jota on helppo kehittää,\n huoltaa ja testata.",
"MasteringAbpFramework_Book_WhatYouWillLearn": "Mitä opit",
"MasteringAbpFramework_Book_What_You_Will_Learn_1": "Määritä kehitysympäristö ja aloita ABP Frameworkin käyttö.",
"MasteringAbpFramework_Book_What_You_Will_Learn_2": "Työskentele Entity Framework Coren ja MongoDB:n kanssa kehittääksesi tiedon käyttökerroksesi.",
"MasteringAbpFramework_Book_What_You_Will_Learn_3": "Ymmärrä monialaiset huolenaiheet ja kuinka ABP automatisoi toistuvia tehtäviä.",
"MasteringAbpFramework_Book_What_You_Will_Learn_4": "Ota hallintaan toimialuelDomain Driven Design -ähtöisen suunnittelun toteuttaminen ABP Frameworkin avulla.",
"MasteringAbpFramework_Book_What_You_Will_Learn_5": "Rakenna käyttöliittymäsivuja ja komponentteja ASP.NET Core MVC:llä (Razor Pages) ja Blazorilla.",
"MasteringAbpFramework_Book_What_You_Will_Learn_6": "Työskentele monivuokrauksen kanssa modulaaristen verkkosovellusten luomiseksi.",
"MasteringAbpFramework_Book_What_You_Will_Learn_7": "Ymmärrä modulaarisuus ja luo uudelleenkäytettäviä sovellusmoduuleja.",
"MasteringAbpFramework_Book_What_You_Will_Learn_8": "Kirjoita yksikkö-, integrointi- ja käyttöliittymätestejä ABP Frameworkin avulla.",
"MasteringAbpFramework_Book_WhoIsThisBookFor": "Kenelle tämä kirja on tarkoitettu",
"MasteringAbpFramework_Book_WhoIsThisBookFor_Description": "Tämä kirja on tarkoitettu verkkokehittäjille, jotka haluavat oppia ohjelmistoarkkitehtuureja ja parhaita käytäntöjä\n ylläpidettävien web-pohjaisten ratkaisujen kehittämiseen Microsoft-tekniikoilla ja ABP Frameworkilla. C#:n\n ja ASP.NET Core: perustiedot tarvitaan tätä kirjaa luettaessa.",
"ComputersAndTechnology": "Tietokoneet ja tekniikka",
"BuildingMicroserviceSolutions": "Building Microservice Solutions",
"MicroserviceBookPracticalGuide": "Tämä kirja on opas mikropalvelupohjaisten sovellusten kehittämiseen ja hallintaan ABP-kehyksen avulla. Siinä viitataan <strong>.NET Microservice Sample Reference Application</strong>: eShopOnContainers -sovellukseen ja käsitellään ABP Frameworkia käyttäviä arkkitehtonisia suunnittelu- ja toteutusmenetelmiä. Tämän kirjan loppuun mennessä opit, kuinka ABP lähestyy yleisiä mikropalveluiden monimutkaisia ongelmia, kuten valtuutusta, hajautettuja tapahtumia, mikropalvelujen välistä viestintää, käyttöönottoa jne.",
"IntroducingTheSolution": "Esittelyssä eShopOnAbp-ratkaisu",
"RunningTheSolution": "Ratkaisun suorittaminen",
"UnderstandingTheAuthenticationSystem": "Todennusjärjestelmän ymmärtäminen",
"ExploringTheApplications": "Sovellusten tutkiminen",
"UnderstandingTheAPIGateways": "API-yhdyskäytävien ymmärtäminen",
"DevelopingTheMicroservices": "Mikropalveluiden kehittäminen",
"UnderstandingTheInfrastructure": "Infrastruktuurin ymmärtäminen",
"DiggingInTheUseCases": "Käyttötapausten kuvaaminen",
"DeployingTheSolution": "Ratkaisun käyttöönotto",
"ThisBookIsInDraftStageAndIsNotCompletedYet": "Tämä kirja on luonnosvaiheessa eikä ole vielä valmis.",
"Authors": "Tekijät",
"MicroserviceEBook": "Microservice E-Book",
"SelectUITheme": "Valitse käyttöliittymän teema",
"LeptonXLiteTheme": "LeptonX Lite -teema",
"BasicTheme": "Perusteema",
"LeptonXLiteThemeInfo": " Moderni ja tyylikäs Bootstrap-käyttöliittymäteema. Ihanteellinen, jos haluat tuotantovalmiin käyttöliittymäteeman. Tämä on uusin teema ja oletuksena.",
"BasicThemeInfo": "Minimalistinen käyttöliittymäteema tavallisilla Bootstrap-väreillä ja -tyyleillä. Ihanteellinen, jos rakennat oman käyttöliittymäteeman.",
"SeeDocumentation": "Katso <a href='{0}' target='_blank'>dokumentaatio</a>.",
"SeeFullScreen": "<a href='{0}' target='_blank'>🖼️ Katso kuvakaappaus</a>",
"BuildingMicroserviceSolutionsShortDescription": "Tämä kirja on opas mikropalvelupohjaisten sovellusten kehittämiseen ja hallintaan ABP-kehyksen avulla.",
"InstallAbpCliMessage": "Asenna ABP CLI komentoriviltä, jos et ole asentanut sitä aiemmin:",
"Terminal": "Terminaali",
"Copy": "Kopio",
"RunTheFollowingCommand": "Suorita seuraava komento komentorivillä:",
"ChangeSolutionOptionsBelow": "Voit muuttaa alla olevia ratkaisuvaihtoehtoja.",
"MultiLayerApplication": "Monikerroksinen sovellus",
"MultiLayerApplicationExplanation1": "Luo täysin kerrostetun ratkaisun, joka perustuu Domain Driven Designin käytäntöihin.",
"MultiLayerApplicationExplanation2": "Suositellaan pitkäaikaisiin projekteihin, jotka tarvitsevat ylläpidettävän ja laajennettavan koodikannan.",
"SingleLayerApplication": "Single-layer <br>sovellus",
"SingleLayerApplicationExplanation1": "Luo yksikerroksisen verkkosovelluksen.",
"SingleLayerApplicationExplanation2": "Suositellaan yksinkertaisemman ja helposti ymmärrettävän arkkitehtuurin sovelluksen rakentamiseen.",
"ApplicationModule": "Sovellus <br>moduuli",
"SeeTheScreenshot": "Katso kuvakaappaus",
"ApplicationModuleExplanation1": "Luo uudelleenkäytettävän, täysin kerrostetun sovellusmoduuliratkaisun.",
"ApplicationModuleExplanation2": "Voit käyttää tätä vaihtoehtoa luodaksesi moduuleja modulaariselle sovelluksellesi.",
"Expert_": "Asiantuntija",
"Partner_": "Kumppanuus",
"WebSite": "Verkkosivusto",
"Expert_Year": "Asiantuntijavuosi",
"CompanyInfo": "Yritystiedot",
"Date": "Päivämäärä",
"WhoWeAre_Partner": "Keitä olemme",
"WhoWeAre_Expert": "Minusta"
}
}

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

@ -274,7 +274,8 @@
"FirstEdition": "Première édition",
"ThankYou": "Merci!",
"CheckboxMandatory": "Vous devez vérifier cela pour continuer !",
"SelectUITheme": "Sélectionnez le thème de l'interface utilisateur"
"SelectUITheme": "Sélectionnez le thème de l'interface utilisateur",
"CreateSolutionFolder": "Créer un dossier de solutions",
"CreateSolutionFolderOption": "Spécifie si le projet sera dans un nouveau dossier dans le dossier de sortie ou directement dans le dossier de sortie."
}
}

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

@ -274,7 +274,8 @@
"FirstEdition": "प्रथम संस्करण",
"ThankYou": "शुक्रिया!",
"CheckboxMandatory": "आगे बढ़ने के लिए आपको इसे जांचना होगा!",
"SelectUITheme": "यूआई थीम का चयन करें"
"SelectUITheme": "यूआई थीम का चयन करें",
"CreateSolutionFolder": "समाधान फ़ोल्डर बनाएँ",
"CreateSolutionFolderOption": "निर्दिष्ट करता है कि प्रोजेक्ट आउटपुट फ़ोल्डर या सीधे आउटपुट फ़ोल्डर में एक नए फ़ोल्डर में होगा या नहीं।"
}
}

4
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hu.json

@ -392,6 +392,8 @@
"LeptonXLiteThemeInfo": "Modern és stílusos Bootstrap UI téma. Ideális, ha gyártásra kész felhasználói felület témát szeretne. Ez a legújabb téma, és az alapértelmezett.",
"BasicThemeInfo": "Minimalista felhasználói felület téma egyszerű Bootstrap színekkel és stílusokkal. Ideális, ha saját felhasználói felület témát készít.",
"SeeDocumentation": "Lásd a <a href='{0}' target='_blank'>dokumentációt</a> .",
"SeeFullScreen": "<a href='{0}' target='_blank'>🖼️ Nézze meg a képernyőképet</a>"
"SeeFullScreen": "<a href='{0}' target='_blank'>🖼️ Nézze meg a képernyőképet</a>",
"CreateSolutionFolder": "Hozzon létre megoldási mappát",
"CreateSolutionFolderOption": "Meghatározza, hogy a projekt egy új mappában legyen-e a kimeneti mappában vagy közvetlenül a kimeneti mappában."
}
}

5
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/is.json

@ -274,7 +274,8 @@
"FirstEdition": "Fyrsta útgáfa",
"ThankYou": "Þakka þér!",
"CheckboxMandatory": "Þú þarft að smella hér til að halda áfram!",
"SelectUITheme": "Veldu UI þema"
"SelectUITheme": "Veldu UI þema",
"CreateSolutionFolder": "Búðu til lausnarmöppu",
"CreateSolutionFolderOption": "Tilgreinir hvort verkefnið verður í nýrri möppu í úttaksmöppunni eða beint í framleiðslumöppunni."
}
}

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

@ -274,7 +274,8 @@
"FirstEdition": "Prima Edizione",
"ThankYou": "Grazie!",
"CheckboxMandatory": "Devi mettere la spunta su questo per procedere!",
"SelectUITheme": "Seleziona Tema dell'interfaccia utente"
"SelectUITheme": "Seleziona Tema dell'interfaccia utente",
"CreateSolutionFolder": "Crea cartella della soluzione",
"CreateSolutionFolderOption": "Specifica se il progetto si troverà in una nuova cartella nella cartella di output o direttamente nella cartella di output."
}
}

5
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/nl.json

@ -274,7 +274,8 @@
"FirstEdition": "Eerste editie",
"ThankYou": "Bedankt!",
"CheckboxMandatory": "Je moet dit aanvinken om verder te gaan!",
"SelectUITheme": "Selecteer UI-thema"
"SelectUITheme": "Selecteer UI-thema",
"CreateSolutionFolder": "Oplossingsmap maken",
"CreateSolutionFolderOption": "Geeft aan of het project zich in een nieuwe map in de uitvoermap bevindt of direct in de uitvoermap."
}
}

5
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pl-PL.json

@ -274,7 +274,8 @@
"FirstEdition": "Pierwsza edycja",
"ThankYou": "Dziękuję Ci!",
"CheckboxMandatory": "Musisz to sprawdzić, aby kontynuować!",
"SelectUITheme": "Wybierz motyw interfejsu"
"SelectUITheme": "Wybierz motyw interfejsu",
"CreateSolutionFolder": "Utwórz folder rozwiązania",
"CreateSolutionFolderOption": "Określa, czy projekt znajdzie się w nowym folderze w folderze wyjściowym, czy bezpośrednio w folderze wyjściowym."
}
}

5
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pt-BR.json

@ -274,7 +274,8 @@
"FirstEdition": "Primeira edição",
"ThankYou": "Obrigado!",
"CheckboxMandatory": "Você precisa verificar isso para continuar!",
"SelectUITheme": "Selecione o tema da interface do usuário"
"SelectUITheme": "Selecione o tema da interface do usuário",
"CreateSolutionFolder": "Criar Pasta de Solução",
"CreateSolutionFolderOption": "Especifica se o projeto estará em uma nova pasta na pasta de saída ou diretamente na pasta de saída."
}
}

4
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ro-RO.json

@ -275,7 +275,7 @@
"ThankYou": "Vă mulţumim!",
"CheckboxMandatory": "Trebuie să bifaţi asta pentru a continua!",
"SelectUITheme": "Selectați Tema UI",
"CreateSolutionFolder": "Creați folderul de soluții",
"CreateSolutionFolderOption": "Specifică dacă proiectul va fi într-un folder nou în folderul de ieșire sau direct folderul de ieșire."
}
}

4
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ru.json

@ -274,6 +274,8 @@
"FirstEdition": "Первое издание",
"ThankYou": "Спасибо!",
"CheckboxMandatory": "Вам необходимо проверить это, чтобы продолжить!",
"SelectUITheme": "Выберите тему пользовательского интерфейса"
"SelectUITheme": "Выберите тему пользовательского интерфейса",
"CreateSolutionFolder": "Создать папку решения",
"CreateSolutionFolderOption": "Указывает, будет ли проект находиться в новой папке в выходной папке или непосредственно в выходной папке."
}
}

5
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sk.json

@ -274,7 +274,8 @@
"FirstEdition": "Prvá edícia",
"ThankYou": "Ďakujem!",
"CheckboxMandatory": "Ak chcete pokračovať, musíte to skontrolovať!",
"SelectUITheme": "Vyberte tému používateľského rozhrania"
"SelectUITheme": "Vyberte tému používateľského rozhrania",
"CreateSolutionFolder": "Vytvorte priečinok riešení",
"CreateSolutionFolderOption": "Určuje, či bude projekt v novom priečinku vo výstupnom priečinku alebo priamo vo výstupnom priečinku."
}
}

5
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sl.json

@ -274,7 +274,8 @@
"FirstEdition": "Prva izdaja",
"ThankYou": "Hvala vam!",
"CheckboxMandatory": "Za nadaljevanje morate to preveriti!",
"SelectUITheme": "Izberite temo uporabniškega vmesnika"
"SelectUITheme": "Izberite temo uporabniškega vmesnika",
"CreateSolutionFolder": "Ustvarite mapo rešitev",
"CreateSolutionFolderOption": "Podaja, ali bo projekt v novi mapi v izhodni mapi ali neposredno v izhodni mapi."
}
}

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

@ -374,7 +374,10 @@
"MasteringAbpFramework_Book_WhoIsThisBookFor_Description": "Bu kitap, Microsoft teknolojilerini ve ABP Çerçevesini kullanarak sürdürülebilir web tabanlı çözümler\n oluşturmak için yazılım mimarilerini ve en iyi uygulamaları öğrenmek isteyen web geliştiricileri içindir.\n Bu kitaba başlamak için temel C# ve ASP.NET Core bilgisi gereklidir.",
"ComputersAndTechnology": "Bilgisayar ve Teknoloji",
"ThisBookIsInDraftStageAndIsNotCompletedYet": "Bu kitap taslak aşamasındadır ve henüz tamamlanmamıştır.",
"SelectUITheme": "Vyberte téma uživatelského rozhraní"
"CreateSolutionFolder": "Çözüm Klasörü Oluşturun",
"CreateSolutionFolderOption": "Projenin çıktı klasöründe yeni bir klasörde mi yoksa doğrudan çıktı klasöründe mi olacağını belirtir.",
"SelectUITheme": "UI Temasını Seçin",
"BooksPageTitle": "ABP Kitapları"
}
}

5
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/vi.json

@ -274,7 +274,8 @@
"FirstEdition": "Ấn bản đầu tiên",
"ThankYou": "Cảm ơn bạn!",
"CheckboxMandatory": "Bạn cần kiểm tra điều này để tiếp tục!",
"SelectUITheme": "Chọn chủ đề giao diện người dùng"
"SelectUITheme": "Chọn chủ đề giao diện người dùng",
"CreateSolutionFolder": "Tạo thư mục giải pháp",
"CreateSolutionFolderOption": "Chỉ định xem dự án sẽ nằm trong một thư mục mới trong thư mục đầu ra hay trực tiếp trong thư mục đầu ra."
}
}

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

@ -416,6 +416,9 @@
"CompanyInfo": "公司信息",
"Date": "日期",
"WhoWeAre_Partner": "关于我们",
"WhoWeAre_Expert": "关于我"
"WhoWeAre_Expert": "关于我",
"CreateSolutionFolder": "创建解决方案文件夹",
"CreateSolutionFolderOption": "指定项目是位于输出文件夹中的新文件夹中,还是直接位于输出文件夹中。",
"BooksPageTitle": "ABP书籍"
}
}
}

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

@ -274,7 +274,8 @@
"FirstEdition": "第一版",
"ThankYou": "謝謝!",
"CheckboxMandatory": "你需要檢查這個才能繼續!",
"SelectUITheme": "選擇 UI 主題"
"SelectUITheme": "選擇 UI 主題",
"CreateSolutionFolder": "創建解決方案文件夾",
"CreateSolutionFolderOption": "指定項目是位於輸出文件夾中的新文件夾中,還是直接位於輸出文件夾中。"
}
}

2
docs/en/Background-Jobs-Hangfire.md

@ -66,6 +66,8 @@ After you have installed these NuGet packages, you need to configure your projec
}
````
> You have to configure a storage for Hangfire.
2. If you want to use hangfire's dashboard, you can add `UseHangfireDashboard` call in the `OnApplicationInitialization` method in `Module` class
````csharp

44
docs/en/Background-Workers-Hangfire.md

@ -40,6 +40,50 @@ public class YourModule : AbpModule
> Hangfire background worker integration provides an adapter `HangfirePeriodicBackgroundWorkerAdapter` to automatically load any `PeriodicBackgroundWorkerBase` and `AsyncPeriodicBackgroundWorkerBase` derived classes as `IHangfireBackgroundWorker` instances. This allows you to still to easily switch over to use Hangfire as the background manager even you have existing background workers that are based on the [default background workers implementation](Background-Workers.md).
## Configuration
You can install any storage for Hangfire. The most common one is SQL Server (see the [Hangfire.SqlServer](https://www.nuget.org/packages/Hangfire.SqlServer) NuGet package).
After you have installed these NuGet packages, you need to configure your project to use Hangfire.
1.First, we change the `Module` class (example: `<YourProjectName>HttpApiHostModule`) to add Hangfire configuration of the storage and connection string in the `ConfigureServices` method:
````csharp
public override void ConfigureServices(ServiceConfigurationContext context)
{
var configuration = context.Services.GetConfiguration();
var hostingEnvironment = context.Services.GetHostingEnvironment();
//... other configarations.
ConfigureHangfire(context, configuration);
}
private void ConfigureHangfire(ServiceConfigurationContext context, IConfiguration configuration)
{
context.Services.AddHangfire(config =>
{
config.UseSqlServerStorage(configuration.GetConnectionString("Default"));
});
}
````
> You have to configure a storage for Hangfire.
2. If you want to use hangfire's dashboard, you can add `UseHangfireDashboard` call in the `OnApplicationInitialization` method in `Module` class
````csharp
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
var app = context.GetApplicationBuilder();
// ... others
app.UseHangfireDashboard(); //should add to the request pipeline before the app.UseConfiguredEndpoints()
app.UseConfiguredEndpoints();
}
````
## Create a Background Worker
`HangfireBackgroundWorkerBase` is an easy way to create a background worker.

114
docs/en/Blog-Posts/2023-03-24-status.abp.io/POST.md

@ -0,0 +1,114 @@
# Creating a Custom Status Page for abp.io with Upptime
## Introduction
In today's digital world, providing reliable and transparent information about your platform's availability is essential to maintaining trust among your community and customers. With the growing number of abp.io users, we needed a dedicated status page [status.abp.io](https://status.abp.io/) to keep everyone informed about our platform's health. To achieve this, we utilized the open-source project [Upptime](https://upptime.js.org/) and built a custom status page on [GitHub Pages](https://pages.github.com/). In this article, we'll guide you through the process of creating our own status page and customizing it to suit our needs.
![status-abpio](./images/status-abpio.png)
## Why we chose Upptime
[Upptime](https://github.com/upptime/upptime) is an open-source, easy-to-use, and cost-effective solution for monitoring websites and APIs. It offers essential features, such as downtime alerts, response time monitoring, and status history. We decided to use Upptime because of its compatibility with GitHub Pages, ease of customization, comprehensive [documentation ](https://upptime.js.org/docs/) and discord notifications.
![gh-status](./images/gh-status.png)
#### Advantages of Upptime
* Open-source: Allows easy customization and community support.
* GitHub Pages compatibility: Seamless integration with GitHub Pages for hosting.
* Cost-effective: Utilizes GitHub Actions, which provides free monitoring within the GitHub Actions usage limits.
* Comprehensive documentation: Easy-to-follow instructions for setting up and customizing the status page.
#### Disadvantages of Upptime
* Limited monitoring capabilities: Upptime offers basic monitoring features but lacks advanced capabilities found in dedicated monitoring tools.
* Dependence on GitHub Actions: Upptime relies on GitHub Actions, which may pose limitations for users unfamiliar with GitHub's ecosystem or those with large-scale projects.
* No built-in alerting system: Users must rely on third-party integrations or custom solutions for notifications, requiring additional configuration.
* Limited customization options: Upptime allows for some customization, but options are limited compared to comprehensive monitoring platforms.
* Self-hosted limitations: As a self-hosted solution, users are responsible for maintaining and managing their own infrastructure, which may not be ideal for those who prefer a fully managed monitoring solution.
## How to set up the status page on GitHub Pages
To get started with our custom status page, we followed the instructions in the [Upptime documentation](https://upptime.js.org/docs/). Here's a summary of the steps we took:
* Fork the Upptime [template repository](https://github.com/upptime/upptime) to our own GitHub account as [abpio-status](https://github.com/abpframework/abpio-status).
* Configure the GitHub Actions workflow. We configured the GitHub Actions workflow by adding the following lines to the [`.github/workflows/uptime.yml`](https://github.com/abpframework/abpio-status/blob/master/.github/workflows/uptime.yml)
* Add the monitored endpoints. We added the monitored endpoints (our abp.io websites) to the [.upptimerc.yml](https://github.com/abpframework/abpio-status/blob/master/.upptimerc.yml) file. This file is located in the root of the repository and contains a list of URLs that Upptime monitors.
```yaml
sites:
- name: abp.io
url: https://abp.io/health-status
- name: community.abp.io
url: https://community.abp.io/health-status
- name: commercial.abp.io
url: https://commercial.abp.io/health-status
- name: nuget.abp.io
url: https://nuget.abp.io/health-status
- name: docs.abp.io
url: https://docs.abp.io/health-status
- name: support.abp.io
url: https://support.abp.io/health-status
- name: blog.abp.io
url: https://blog.abp.io/health-status
- name: commercial-demo.abp.io
url: https://commercial-demo.abp.io/health-status
```
* Enable GitHub Pages. Finally, we enabled GitHub Pages for our forked repository by going to the repository's settings and selecting the gh-pages branch as the source. This made our status page accessible at [status.abp.io](https://status.abp.io/).
## Customizing the status page
After setting up the default Upptime status page, we focused on customizing it to align with our brand and provide a consistent experience for our community and customers. We made the following changes:
* Updating the logo and favicon. We replaced the default logo and favicon with our own abp.io branded assets. This involved adding the new image files to the repository and updating the references in the `.upptimerc.yml` file:
* Customizing the color scheme and typography. We customized the color scheme and typography to match our corporate identity by editing the `.upptimerc.yml` file:
```yaml
status-website:
theme: dark
# Add your custom domain name, or remove the `cname` line if you don't have a domain
# Uncomment the `baseUrl` line if you don't have a custom domain and add your repo name there
cname: status.abp.io
# baseUrl: /abpio-status
logoUrl: https://commercial.abp.io/assets/svg/abp-logo-light.svg
favicon: https://raw.githubusercontent.com/abpframework/abpio-status/master/assets/abp-logo-without-text.svg
faviconSvg: https://raw.githubusercontent.com/abpframework/abpio-status/master/assets/abp-logo-without-text.svg
```
## Creating GitHub Issues for Maintenance Information on status.abp.io
To provide maintenance information for your status page, you can create GitHub issues in your repository. This allows you to inform your users about planned downtime or ongoing maintenance work.
![issue](./images/issue.png)
## Discord Notifications
### Create a Discord Webhook
To set up Discord notifications for your status.abp.io status page using [Upptime documentation](https://upptime.js.org/docs/notifications#discord), follow these steps:
* In Discord, go to "Server Settings" > "Integrations" > "Create Webhook."
* Customize the Webhook name, choose a channel, and copy the Webhook URL.
### Configure GitHub Actions
* In your Upptime repository, go to the "Settings" tab.
* Click on "Secrets" and then "New repository secret."
* Add secret: Name it DISCORD_WEBHOOK_URL and paste the Webhook URL as the value.
* Add environment variables NOTIFICATION_DISCORD_WEBHOOK and NOTIFICATION_DISCORD set it to true.
Your status page will now send notifications to your Discord channel whenever there's a change in your platform's status.
![discord](./images/discord.png)
## Conclusion
If your primary goal is to create a simple, cost-effective status page with basic monitoring features, Upptime is an excellent choice. Its open-source nature, seamless integration with GitHub Pages, and comprehensive documentation make it a user-friendly option.
If you require advanced monitoring capabilities or prefer a fully managed monitoring solution, you may want to explore dedicated monitoring tools, such as Pingdom, Uptime Robot, or Datadog. These tools typically offer more robust monitoring features, built-in alerting systems, and customizable dashboards.
Creating a custom status page for abp.io using Upptime and GitHub Pages proved to be an efficient and cost-effective solution. By following the documentation and customizing the template, we were able to provide our community and customers with a reliable source of information about our platform's availability. With this new status page [status.abp.io](https://status.abp.io/), we can continue to build trust and transparency as our platform grows and evolves.

BIN
docs/en/Blog-Posts/2023-03-24-status.abp.io/images/discord.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

BIN
docs/en/Blog-Posts/2023-03-24-status.abp.io/images/gh-status.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 394 KiB

BIN
docs/en/Blog-Posts/2023-03-24-status.abp.io/images/issue.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

BIN
docs/en/Blog-Posts/2023-03-24-status.abp.io/images/status-abpio.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 KiB

1
docs/en/CLI.md

@ -164,6 +164,7 @@ For more samples, go to [ABP CLI Create Solution Samples](CLI-New-Command-Sample
* `--local-framework-ref --abp-path`: Uses local projects references to the ABP framework instead of using the NuGet packages. This can be useful if you download the ABP Framework source code and have a local reference to the framework from your application.
* `--no-random-port`: Uses template's default ports.
* `--skip-installing-libs` or `-sib`: Skip installing client side packages.
* `--with-public-website`: **Public Website** is a front-facing website for describing your project, listing your products and doing SEO for marketing purposes. Users can login and register on your website with this website.
See some [examples for the new command](CLI-New-Command-Samples.md) here.

BIN
docs/en/Community-Articles/2023-03-27-What-is-new-in-NET8/cover.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

222
docs/en/Community-Articles/2023-03-27-What-is-new-in-NET8/post.md

@ -0,0 +1,222 @@
# What’s New in .NET 8 🧐 ? Discover ALL .NET 8 Features⚡🚀
In this post, I'll briefly mention the new features of .NET 8 and the changes.
## `dotnet publish` and `dotnet pack` Release Mode 🏭
With this new version, `dotnet publish` and `dotnet pack` commands will build and pack with the `Release` mode. Before it was producing in `Debug` mode. To be able to produce in Debug mode, you need to set this parameter `-p:PublishRelease` as false.
```bash
dotnet publish -> /app/bin/Release/net8.0/app.dll
dotnet publish -p:PublishRelease=false -> /app/bin/Debug/net8.0/app.dll
```
---
## `System.Text.Json` Serialization 🧱
[System.Text.Json](https://learn.microsoft.com/en-us/dotnet/api/system.text.json) replaced Newtonsoft.Json in the recent versions. We are also using `System.Text.Json` in the [ABP Framework](https://abp.io) now. There are several enhancements to object serialization and deserialization.
The latest version of the [source generator](https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/source-generation) now offers improved performance and reliability for Native AOT apps when used with ASP.NET Core. It also allows serializing types with [`required`](https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/required-properties) and [`init`](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/init) properties already supported in reflection-based serialization. Additionally, there is now an option to customize the handling of members that are not present in the JSON payload, see https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/missing-members. Support for serializing properties from interface hierarchies. The [JsonNamingPolicy](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.jsonnamingpolicy?view=net-8.0&preserve-view=true#properties) feature has been expanded to include new naming policies for `snake_case` and `kebab-case` property name conversions. Finally, [JsonSerializerOptions.MakeReadOnly](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.jsonserializeroptions.makereadonly#system-text-json-jsonserializeroptions-makereadonly) method allows for explicit control over when a `JsonSerializerOptions` instance is frozen, and you can check its status using the [IsReadOnly](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.jsonserializeroptions.isreadonly#system-text-json-jsonserializeroptions-isreadonly) property.
---
## Randomness
### GetItems<T>() 🧮
Two new methods: [Random.GetItems](https://learn.microsoft.com/en-us/dotnet/api/system.random.getitems) and [RandomNumberGenerator.GetItems](https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography.randomnumbergenerator.getitems) have been introduced that enable developers to randomly select a set number of items from a given input set. The example below demonstrates the usage of the `System.Random.GetItems<T>()` method using an instance obtained from the `Random.Shared` property to randomly insert 31 items into an array.
```csharp
private static ReadOnlySpan<CountryPhoneCodePhoneCode> countries = new[]
{
new CountryPhoneCode("Turkey", "90"),
new CountryPhoneCode("China", "86"),
new CountryPhoneCode("Germany", "49"),
new CountryPhoneCode("Finland", "358"),
new CountryPhoneCode("Spain", "34")
};
var randomValues = Random.Shared.GetItems(countries, 2);
foreach (var x in randomValues)
{
Console.WriteLine(x.Name + " -> " + x.CountryPhoneCode);
}
/**************
- Output -
Germany -> 49
Finland -> 358
**************/
```
---
### Shuffle<T>() 🔀
If you need to randomize the order of a span in your application, you can take advantage of two new methods: [Random.Shuffle](https://learn.microsoft.com/en-us/dotnet/api/system.random.shuffle) and [RandomNumberGenerator.Shuffle](https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography.randomnumbergenerator.shuffle?view=net-8.0). These methods are particularly handy when you want to minimize the impact of training bias in machine learning by varying the order in which training and testing data are presented. Using these methods, you can ensure that the first thing in your dataset is only sometimes used for training, and the last is only sometimes reserved for testing.
```csharp
var trainingData = GetData();
Random.Shared.Shuffle(trainingData);
IDataView source = mlContext.Data.LoadFromEnumerable(trainingData);
DataOperationsCatalog.TrainTestData splittedData = mlContext.Data.TrainTestSplit(source);
model = chain.Fit(splittedData.TrainSet);
IDataView resultPredictions = model.Transform(split.TestSet);
```
---
## Performance Improvements 🚀
In .NET 8, various new types have been introduced to enhance application performance.
- The [System.Collections.Frozen](https://learn.microsoft.com/en-us/dotnet/api/system.collections.frozen) namespace in .NET 8 includes the [FrozenDictionary](https://learn.microsoft.com/en-us/dotnet/api/system.collections.frozen.frozendictionary-2) and [FrozenSet](https://learn.microsoft.com/en-us/dotnet/api/system.collections.frozen.frozenset-1) collection types. These types are designed to prevent changes to keys and values once a collection is created, resulting in faster read operations such as `TryGetValue()`. They are particularly useful for collections populated on first use and then persisted for a long-lived service.
```csharp
private static readonly FrozenDictionary<string, bool> frozenData = LoadConfigurationData().ToFrozenDictionary(optimizeForReads: true);
//////
if (frozenData.TryGetValue(key, out bool setting) && setting)
{
Process();
}
```
- [Buffers.IndexOfAnyValues](https://learn.microsoft.com/en-us/dotnet/api/system.buffers.indexofanyvalues-1) is a new type in .NET 8, designed to be passed to methods that search for the first occurrence of any value in a passed collection. The new overloads of methods like [String.IndexOfAny](https://learn.microsoft.com/en-us/dotnet/api/system.string.indexofany?view=net-8.0#system-string-indexofany(system-char())) and [MemoryExtensions.IndexOfAny](https://learn.microsoft.com/en-us/dotnet/api/system.memoryextensions.indexofany) accept an instance of the new type. When you create an instance of [Buffers.IndexOfAnyValues](https://learn.microsoft.com/en-us/dotnet/api/system.buffers.indexofanyvalues-1), all the necessary data for optimizing subsequent searches is derived at that time.
- [Text.CompositeFormat](https://learn.microsoft.com/en-us/dotnet/api/system.text.compositeformat) is a new type in .NET 8 useful for optimizing format strings that aren't known at compile time (such as format strings loaded from a resource file). While some extra time is spent upfront to perform tasks like parsing the string, it saves the work from being done each time the format string is used.
```csharp
private static readonly CompositeFormat range = CompositeFormat.Parse(Load());
//////////
static string GetMessage(int min, int max) =>
string.Format(CultureInfo.InvariantCulture, range, min, max);
```
- In .NET 8, two new types are introduced to implement the fast [XxHash3](https://learn.microsoft.com/en-us/dotnet/api/system.io.hashing.xxhash3) and [XxHash128](https://learn.microsoft.com/en-us/dotnet/api/system.io.hashing.xxhash128) hash algorithms.
---
## Improvements in `System.Numerics` and `System.Runtime.Intrinsics` 🔥
There are several enhancements made to the [System.Numerics](https://learn.microsoft.com/en-us/dotnet/api/system.numerics) and [System.Runtime.Intrinsics](https://learn.microsoft.com/en-us/dotnet/api/system.runtime.intrinsics) namespaces. These improvements include better hardware acceleration for [Vector256](https://learn.microsoft.com/en-us/dotnet/api/system.runtime.intrinsics.vector256-1), [Matrix3x2](https://learn.microsoft.com/en-us/dotnet/api/system.numerics.matrix3x2), and [Matrix4x4](https://learn.microsoft.com/en-us/dotnet/api/system.numerics.matrix4x4) in .NET 8.
[Vector256](https://learn.microsoft.com/en-us/dotnet/api/system.runtime.intrinsics.vector256-1) was redesigned to utilize `2x Vector128<T>` operations internally to achieve partial acceleration of certain functions on `Arm64` processors where `Vector128.IsHardwareAccelerated == true` but `Vector256.IsHardwareAccelerated == false`. The introduction of [Vector512](https://learn.microsoft.com/en-us/dotnet/api/system.runtime.intrinsics.vector512-1) is also included in .NET 8.
Additionally, the `ConstExpected` attribute has been added to hardware intrinsic to alert users when a non-constant value might cause unexpected performance issues.
Lastly, the [Lerp(TSelf, TSelf, TSelf)](https://learn.microsoft.com/en-us/dotnet/api/system.numerics.ifloatingpointieee754-1.lerp#system-numerics-ifloatingpointieee754-1-lerp(-0-0-0)) API has been added to [IFloatingPointIeee754](https://learn.microsoft.com/en-us/dotnet/api/system.numerics.ifloatingpointieee754-1), enabling the efficient and accurate linear interpolation of two values in `float`([Single](https://learn.microsoft.com/en-us/dotnet/api/system.single)), `double` ([Double](https://learn.microsoft.com/en-us/dotnet/api/system.double)), and [Half](https://learn.microsoft.com/en-us/dotnet/api/system.half).
---
## New Data Validation Attributes 🛡️
The [DataAnnotations](https://learn.microsoft.com/en-us/dotnet/api/system.componentmodel.dataannotations) namespace, aimed specifically for validation in cloud-native services. The existing `DataAnnotations` validators are primarily used for validating user data, like form fields. However, the new attributes are meant to validate data, not entered by users, like [configuration options](https://learn.microsoft.com/en-us/dotnet/core/extensions/options#options-validation). Apart from the new attributes, the [RangeAttribute](https://learn.microsoft.com/en-us/dotnet/api/system.componentmodel.dataannotations.rangeattribute) and [RequiredAttribute](https://learn.microsoft.com/en-us/dotnet/api/system.componentmodel.dataannotations.requiredattribute) types also received new properties.
- [RequiredAttribute.DisallowAllDefaultValues](https://learn.microsoft.com/en-us/dotnet/api/system.componentmodel.dataannotations.requiredattribute.disallowalldefaultvalues#system-componentmodel-dataannotations-requiredattribute-disallowalldefaultvalues): The attribute forces that structs for inequality with their default values.
- [RangeAttribute.MinimumIsExclusive](https://learn.microsoft.com/en-us/dotnet/api/system.componentmodel.dataannotations.rangeattribute.minimumisexclusive#system-componentmodel-dataannotations-rangeattribute-minimumisexclusive) & [RangeAttribute.MaximumIsExclusive](https://learn.microsoft.com/en-us/dotnet/api/system.componentmodel.dataannotations.rangeattribute.maximumisexclusive#system-componentmodel-dataannotations-rangeattribute-maximumisexclusive): Specifies whether the allowable range includes its boundaries or not.
- [DataAnnotations.LengthAttribute](https://learn.microsoft.com/en-us/dotnet/api/system.componentmodel.dataannotations.lengthattribute): Specifies the lower and upper limits for strings or collections using the `Length` attribute. For instance, the `[Length(5, 100)]` attribute specifies that a collection must have at least 5 elements and at most 100 elements.
- [DataAnnotations.Base64StringAttribute](https://learn.microsoft.com/en-us/dotnet/api/system.componentmodel.dataannotations.base64stringattribute): Validates a valid `Base64` format.
- [DataAnnotations.AllowedValuesAttribute](https://learn.microsoft.com/en-us/dotnet/api/system.componentmodel.dataannotations.allowedvaluesattribute) & [DataAnnotations.DeniedValuesAttribute](https://learn.microsoft.com/en-us/dotnet/api/system.componentmodel.dataannotations.deniedvaluesattribute): Specifies accepted allow lists or not allowed deny lists. For instance: `[AllowedValues("red", "green", "blue")]` or `[DeniedValues("yellow", "purple")]`.
---
## Function Pointers Introspection Support ↩️
[Function pointers](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/unsafe-code#function-pointers) were released with .NET 5. There was no support for reflection at that time. As a result, using `typeof` or reflection on a function pointer, such as `typeof(delegate*<void>())` or `FieldInfo.FieldType`, respectively, would return an [IntPtr](https://learn.microsoft.com/en-us/dotnet/api/system.intptr). However, in .NET 8, a [System.Type](https://learn.microsoft.com/en-us/dotnet/api/system.type) object is returned instead, providing access to function pointer metadata, such as calling conventions, return type, and parameters. This functionality is implemented only in the `CoreCLR` runtime and [MetadataLoadContext](https://learn.microsoft.com/en-us/dotnet/api/system.reflection.metadataloadcontext).
---
## Native AOT 🏭
The [publishing as native AOT](https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/) was initially introduced in .NET 7, the option to publish an application as native AOT enables the creation of a self-contained version of the app that does not require a separate runtime, bundling everything into a single file.
In .NET 8, the support for native AOT now encompasses the `x64` and `Arm64` architectures on macOS. Moreover, native AOT applications on Linux are now up to 50% smaller in size. Here's the table, illustrates the size of a minimal app published with native AOT, containing the entire .NET runtime:
* **Linux x64** (with `-p:StripSymbols=true`)
* .NET 7 ➡ 3.76MB
* .NET 8 ➡ 1.84 MB
* **Windows x64**
* .NET 7 ➡ 2.85 MB
* .NET 8 ➡ 1.77 MB
---
## Code Generation Improvements 📃
.NET 8 includes enhancements to code generation and just-in-time (*JIT*) compilation:
- JIT throughput improvements
- Arm64 performance improvements
- Profile-guided optimization (PGO) improvements
- Support for AVX-512 ISA extensions
- SIMD improvements
- Cloud-native improvements
- Loop and general optimizations
---
## .NET 8 Devops Improvements 📦
### NET Container Image Changes
There are some changes with .NET 8 on image containers. First, [Debian 12](https://wiki.debian.org/DebianBookworm) is the **default Linux distribution** in the container images.
Secondly, the images include a `non-root` user to make the images `non-root` capable. To run as `non-root`, add the line `USER app` at the end of your `Dockerfile`.
Besides, the **default port has also changed** from `80` to `8080` and a **new environment variable** `ASPNETCORE_HTTP_PORTS` is available to change ports easily.
Also, the format for the `ASPNETCORE_HTTP_PORTS` variable is easier compared to the format required by `ASPNETCORE_URLS`, and it accepts a list of ports. If you change the port back to `80` using one of these variables, it won’t be possible to run as `non-root`.
Finally, .NET 8 is now supported on **Chiseled Ubuntu** images, available at the [Ubuntu/DotNet-deps Docker Hub](Ubuntu/DotNet-deps Docker Hub). Chiseled images are designed to have a smaller attack surface as they are stripped down to be ultra-compact, and do not include a package manager or shell. Chiseled images are non-root, making them ideal for developers looking for the benefits of appliance-style computing. These images are regularly published to the [.NET nightly artifact registry](https://mcr.microsoft.com/product/dotnet/nightly/aspnet/tags) for easy access.
### Building Your .NET on Linux
Previously, building .NET from source in earlier versions required creating a `source tarball` from the corresponding release commit in the [dotnet/installer repository](dotnet/installer repository). However, in .NET 8, this step is no longer necessary as the [dotnet/dotnet repository](https://github.com/dotnet/dotnet) allows building .NET directly on Linux using [dotnet/source-build](https://github.com/dotnet/source-build) to create runtimes, tools, and SDKs. Red Hat and Canonical also use this build for .NET. Building in a container is the easiest approach for most people since the `dotnet-buildtools/prereqs` container images have all the necessary dependencies. [The build instructions]() provide more information.
### Minimum support baselines for Linux
The support requirements for Linux have been updated for .NET 8, with changes to the minimum support baselines:
1. All architectures will target Ubuntu 16.04 for building .NET, which is important for setting the minimum required version of `glibc` for .NET 8. Versions of Ubuntu earlier than 16.04, such as 14.04, will not even allow .NET 8 to start.
2. **Red Hat Enterprise Linux 7 is no longer supported** with .NET 8. Only supporting RHEL 8 and later.
For further details, please refer to the [support for Red Hat Enterprise Linux Family](https://github.com/dotnet/core/blob/main/linux-support.md#red-hat-enterprise-linux-family-support) page.
〰️〰️〰️
Become a pioneer and try the new features of .NET 8 now.
Adapt it to your project or start a new .NET 8 project.
[Claim your copy of .NET 8](https://dotnet.microsoft.com/next) today 🏎️ !
〰️〰️〰️
Happy Coding ⌨️

12
docs/en/UI/Blazor/Toolbars.md

@ -40,6 +40,10 @@ This sample simply shows a message. In real life, you probably want to call an H
Now, we can create a class implementing the `IToolbarContributor` interface:
````csharp
using Volo.Abp.AspNetCore.Components.Web.Theming.Toolbars;
// ...
public class MyToolbarContributor : IToolbarContributor
{
public Task ConfigureToolbarAsync(IToolbarConfigurationContext context)
@ -58,12 +62,16 @@ This class adds the `NotificationViewComponent` as the first item in the `Main`
Finally, you need to add this contributor to the `AbpToolbarOptions`, in the `ConfigureServices` of your [module](../../Module-Development-Basics.md):
````csharp
```csharp
using Volo.Abp.AspNetCore.Components.Web.Theming.Toolbars;
```
```csharp
Configure<AbpToolbarOptions>(options =>
{
options.Contributors.Add(new MyToolbarContributor());
});
````
```
That's all, you will see the notification icon on the toolbar when you run the application:

2
docs/zh-Hans/Background-Jobs-Hangfire.md

@ -66,6 +66,8 @@ public class YourModule : AbpModule
}
````
> 你必须为Hangfire配置一个存储
### 指定队列
你可以使用 [`QueueAttribute`](https://docs.hangfire.io/en/latest/background-processing/configuring-queues.html) 来指定队列.

30
docs/zh-Hans/Background-Workers-Hangfire.md

@ -41,6 +41,36 @@ public class YourModule : AbpModule
> Hangfire后台工作者集成提供了 `HangfirePeriodicBackgroundWorkerAdapter` 来适配 `PeriodicBackgroundWorkerBase``AsyncPeriodicBackgroundWorkerBase` 派生类. 所以你依然可以按照[后台工作者文档](Background-Workers.md)来定义后台作业.
## 配置
你可以安装任何Hangfire存储. 最常用的是SQL Server(参阅[Hangfire.SqlServer](https://www.nuget.org/packages/Hangfire.SqlServer)NuGet包).
当你安装NuGet包后,你需要为你的项目配置Hangfire.
1.首先, 我们需要更改 `Module` 类 (例如: `<YourProjectName>HttpApiHostModule`) 的 `ConfigureServices` 方法去配置Hangfire存储和连接字符串:
````csharp
public override void ConfigureServices(ServiceConfigurationContext context)
{
var configuration = context.Services.GetConfiguration();
var hostingEnvironment = context.Services.GetHostingEnvironment();
//... other configarations.
ConfigureHangfire(context, configuration);
}
private void ConfigureHangfire(ServiceConfigurationContext context, IConfiguration configuration)
{
context.Services.AddHangfire(config =>
{
config.UseSqlServerStorage(configuration.GetConnectionString("Default"));
});
}
````
> 你必须为Hangfire配置一个存储
## 创建后台工作者
`HangfireBackgroundWorkerBase` 是创建一个后台工作者简单的方法.

131
docs/zh-Hans/UI/Angular/Multi-Tenancy.md

@ -1 +1,130 @@
TODO...
# 在 Angular UI 中的多租户支持
ABP Angular UI 支持多租户,以下是与多租户相关的一些特性:
![Tenants Page](./images/tenants-page.png)
<p style="font-size:small;text-align:center;">租户页面</p>
在上面的页面中,您可以:
- 查看所有租户。
- 创建新的租户。
- 编辑现有租户。
- 删除租户。
![Tenant Switching Component](./images/tenant-switching-box.png)
<p style="font-size:small;text-align:center;">租户切换组件</p>
您可以在 MVC Account Public Module 的子页面(如登录页面)中使用租户切换框来在现有租户之间切换。Angular UI 从 `application-configuration` 响应中获取选定的租户,并在每个请求中将租户 ID 作为 `__tenant` header 发送到后端。
## 域名/子域名租户解析器
> **注意:** 如果要执行下面的步骤,您还应该实现后端的域名/子域名租户解析器功能。请参阅[多租户文档中的域名/子域名租户解析器](../../Multi-Tenancy#domain-subdomain-tenant-resolver)以了解后端实现。
Angular UI 可以从运行 URL 中获取租户名称。您可以通过子域名(如 mytenant1.mydomain.com)或整个域名(如 mytenant.com)来确定当前租户。要做到这一点,您需要在环境中设置 `application.baseUrl` 属性:
子域名解析器:
```js
// environment.prod.ts
export const environment = {
//...
application: {
baseUrl: "https://{0}.mydomain.com/",
},
//...
};
```
**{0}** 是用于确定当前租户唯一名称的占位符。
在上述配置完成后,如果您的应用程序运行在 `mytenant1.mydomain.com` 上,应用程序将获取租户名称为 **mytenant1**。接下来,应用程序将调用 `/api/abp/multi-tenancy/tenants/by-name/mytenant1` 端点来检查租户是否存在。如果租户(mytenant1)存在,则应用程序将保留此租户数据,并在每个请求中将其 `id` 作为 `__tenant` header 发送到后端。如果租户不存在,则应用程序不会将 `__tenant` header 发送到后端。
> **重要提示:** 如果在 `baseUrl` 中使用了占位符(**{0}**),则子页面(如登录页面)中 `AccountLayoutComponent` 中的租户切换组件将被隐藏。
域名解析器:
```js
// environment.prod.ts
export const environment = {
//...
application: {
baseUrl: "https://{0}.com/",
},
//...
};
```
配置完成后,如果您的应用程序运行在 `mytenant.com` 上,应用程序将获取租户名称为 **mytenant**
### 租户特定的入口
在环境中,可以将占位符 **{0}** 放入 API URL 中以确定租户特定的入口。
```js
// environment.prod.ts
export const environment = {
//...
application: {
baseUrl: "https://{0}.mydomain.com/",
//...
},
oAuthConfig: {
issuer: "https://{0}.ids.mydomain.com",
//...
},
apis: {
default: {
url: "https://{0}.api.mydomain.com",
},
AbpIdentity: {
url: "https://{0}.identity.mydomain.com",
},
},
};
```
> **重要提示:** `application.baseUrl`和`baseUrl`属性中的 `{0}` 占位符是必需的,以便从运行 URL 中获取租户。API URL 中的其他占位符是可选的。
在上述配置完成后,如果您的应用程序运行在 `mytenant1.mydomain.com`上,应用程序将获取租户名称为 **mytenant1** ,并在应用程序初始化时将环境对象替换为 `EnvironmentService` 中的以下内容:
```js
// environment object in EnvironmentService
{
//...
application: {
baseUrl: 'https://mytenant1.mydomain.com/',
//...
},
oAuthConfig: {
issuer: 'https://mytenant1.ids.mydomain.com',
//...
},
apis: {
default: {
url: 'https://mytenant1.api.mydomain.com',
},
AbpIdentity: {
url: 'https://mytenant1.identity.mydomain.com',
},
},
}
```
替换后,应用程序将使用以下 URL:
- `https://mytenant1.ids.mydomain.com` 作为 AuthServer URL。
- `https://mytenant1.api.mydomain.com` 作为默认 URL。
- `https://mytenant1.identity.mydomain.com` 作为 `AbpIdentity` 入点口 URL.
应用程序在每个请求中发送包含当前租户 id 的 `__tenant` header.
## 参见
- [ABP 中的多租户](../../Multi-Tenancy.md)

266
docs/zh-Hans/UI/AspNetCore/Tag-Helpers/Form-elements.md

@ -1 +1,265 @@
TODO...
# 表单元素
## 简介
Abp提供表单输入标签助手以便更轻松地构建表单。
## 演示
请查看[表单元素演示页面](https://bootstrap-taghelpers.abp.io/Components/FormElements)。
## abp-input
`abp-input`标签为给定的C#属性创建一个Bootstrap表单输入。它在后台使用了[Asp.Net Core Input Tag Helper](https://docs.microsoft.com/tr-tr/aspnet/core/mvc/views/working-with-forms?view=aspnetcore-3.1#the-input-tag-helper),所以Asp.Net Core的每个input标签助手的数据注释属性对于`abp-input`也有效。
用法:
````xml
<abp-input asp-for="@Model.MyModel.Name"/>
<abp-input asp-for="@Model.MyModel.Description"/>
<abp-input asp-for="@Model.MyModel.Password"/>
<abp-input asp-for="@Model.MyModel.IsActive"/>
````
Model:
````csharp
public class FormElementsModel : PageModel
{
public SampleModel MyModel { get; set; }
public void OnGet()
{
MyModel = new SampleModel();
}
public class SampleModel
{
[Required]
[Placeholder("Enter your name...")]
[InputInfoText("What is your name?")]
public string Name { get; set; }
[Required]
[FormControlSize(AbpFormControlSize.Large)]
public string SurName { get; set; }
[TextArea(Rows = 4)]
public string Description { get; set; }
[Required]
[DataType(DataType.Password)]
public string Password { get; set; }
public bool IsActive { get; set; }
}
}
````
### 特性(Attributes)
你可以在你的c#属性上设置一些特性,或者直接在html标签上设置。如果您要在[abp-dynamic-form](Dynamic-forms.md)中使用此属性,则只能通过属性特性设置这些属性。
#### 属性特性(Property Attributes)
- `[TextArea()]`: 将输入转换为文本区域。
* `[Placeholder()]`: 为输入设置占位符。您可以直接使用本地化键。
* `[InputInfoText()]`: 为输入设置小型信息文本。您可以直接使用本地化键。
* `[FormControlSize()]`: 设置表单控件包装器元素的大小。可用的值为
- `AbpFormControlSize.Default`
- `AbpFormControlSize.Small`
- `AbpFormControlSize.Medium`
- `AbpFormControlSize.Large`
* `[DisabledInput]` : 输入被禁用。
* `[ReadOnlyInput]`: 输入为只读。
#### 标签属性(Tag Attributes)
* `info`: 为输入设置小型信息文本。您可以直接使用本地化键。
* `auto-focus`: 如果为true,则浏览器会自动聚焦在该元素上。
* `size`: 设置表单控件包装器元素的大小。可用的值为
- `AbpFormControlSize.Default`
- `AbpFormControlSize.Small`
- `AbpFormControlSize.Medium`
- `AbpFormControlSize.Large`
* `disabled`: 输入被禁用。
* `readonly`: 输入为只读。
* `label`: 为输入设置标签。
* `display-required-symbol`: 如果输入为必填项,则向标签添加必需符号(*)。默认为`True`。
[Asp.Net Core Input Tag Helper](https://docs.microsoft.com/en-us/aspnet/core/mvc/views/working-with-forms?view=aspnetcore-3.1#the-input-tag-helper)的`asp-format`、`name`和`value`属性也对`abp-input`标签助手有效。
### 标签和本地化
您可以通过不同的方式设置输入的标签:
- 您可以使用`Label`属性直接设置标签。 但是,它不会自动本地化您的本地化键。 因此,请使用`label = "@L [“ {LocalizationKey}”] .Value"`。
- 您可以使用Asp.Net Core的`[Display(name = "{LocalizationKey}")]`属性设置标签。
- 您可以让 **abp** 查找属性的本地化键。 如果未设置`label`或`[DisplayName]`属性,则会尝试查找“DisplayName:{PropertyName}”或“{PropertyName}”本地化键。
## abp-select
`abp-select` 标签为给定的 C# 属性创建了一个 Bootstrap 表单选择器。它在后台使用 [Asp.Net Core 选择标签助手](https://docs.microsoft.com/tr-tr/aspnet/core/mvc/views/working-with-forms?view=aspnetcore-3.1#the-select-tag-helper),因此 `Asp.Net Core``select` 标签助手的每个数据注释属性也适用于 `abp-select`
`abp-select` 标签需要一个 `Microsoft.AspNetCore.Mvc.Rendering.SelectListItem` 的列表来工作。它可以通过标签上的 `asp-items` 属性或 C# 属性上的 `[SelectItems()]` 属性来提供(如果您使用的是 [abp-dynamic-form](Dynamic-forms.md),则只能使用 C# 属性的方式。)
`abp-select` 支持多重选择。
`abp-select` 自动为 **枚举(Enum)** 属性创建选择列表。不需要额外的数据。如果属性是可空的,则会在自动生成的列表顶部添加一个空键和值。
使用:
````xml
<abp-select asp-for="@Model.MyModel.City" asp-items="@Model.CityList"/>
<abp-select asp-for="@Model.MyModel.AnotherCity"/>
<abp-select asp-for="@Model.MyModel.MultipleCities" asp-items="@Model.CityList"/>
<abp-select asp-for="@Model.MyModel.MyCarType"/>
<abp-select asp-for="@Model.MyModel.MyNullableCarType"/>
````
Model:
````csharp
public class FormElementsModel : PageModel
{
public SampleModel MyModel { get; set; }
public List<SelectListItem> CityList { get; set; }
public void OnGet()
{
MyModel = new SampleModel();
CityList = new List<SelectListItem>
{
new SelectListItem { Value = "NY", Text = "New York"},
new SelectListItem { Value = "LDN", Text = "London"},
new SelectListItem { Value = "IST", Text = "Istanbul"},
new SelectListItem { Value = "MOS", Text = "Moscow"}
};
}
public class SampleModel
{
public string City { get; set; }
[SelectItems(nameof(CityList))]
public string AnotherCity { get; set; }
public List<string> MultipleCities { get; set; }
public CarType MyCarType { get; set; }
public CarType? MyNullableCarType { get; set; }
}
public enum CarType
{
Sedan,
Hatchback,
StationWagon,
Coupe
}
}
````
### 属性
您可以在 C# 属性上或直接在 HTML 标签上设置一些属性。如果您将在 [abp-dynamic-form](Dynamic-forms.md) 中使用此属性,则只能通过属性属性设置这些属性。
#### 属性特性(Property Attributes)
* `[SelectItems()]`: 设置选择数据。参数应为数据列表的名称。(见上面的示例)
- `[InputInfoText()]`:设置输入的小信息文本。您可以直接使用本地化键。
- `[FormControlSize()]`:设置表单控件包装元素的大小。可用值为
- `AbpFormControlSize.Default`
- `AbpFormControlSize.Small`
- `AbpFormControlSize.Medium`
- `AbpFormControlSize.Large`
#### 标签属性(Tag Attributes)
- `asp-items`: 设置选择数据。这应该是一个 `SelectListItem` 列表。
- `info`: 为输入设置一个小的信息文本。您可以直接使用本地化键。
- `size`: 设置表单控件包装元素的大小。可用值为
- `AbpFormControlSize.Default`
- `AbpFormControlSize.Small`
- `AbpFormControlSize.Medium`
- `AbpFormControlSize.Large`
- `label`: 为输入设置标签。
- `display-required-symbol`: 如果输入是必需的,则向标签添加必需符号 (*)。默认为 `True`
### 标签和本地化
您可以以不同的方式设置输入的标签:
- 您可以使用 `Label` 属性并直接设置标签。但是它不会自动本地化您的本地化键。因此,请将其用作 `label="@L["{LocalizationKey}"].Value"`
- 您可以使用 Asp.Net Core 的 `[Display(name="{LocalizationKey}")]` 属性进行设置。
- 您可以让 **abp** 查找属性的本地化键。它将尝试查找“DisplayName:{PropertyName}”或“{PropertyName}”本地化键。
对于**枚举**属性,`abp-select`会设置下拉框的本地化值。它会查找"{EnumTypeName}.{EnumPropertyName}"或"{EnumPropertyName}"的本地化键。例如,在上面的示例中,当它本地化下拉框的值时,它将使用"CarType.StationWagon"或"StationWagon"键。
## abp-radio
`abp-radio`标签为给定的C#属性创建一个Bootstrap表单单选框组。使用方式与`abp-select`标签非常相似。
Usage:
````xml
<abp-radio asp-for="@Model.MyModel.CityRadio" asp-items="@Model.CityList" inline="true"/>
<abp-radio asp-for="@Model.MyModel.CityRadio2"/>
````
Model:
````csharp
public class FormElementsModel : PageModel
{
public SampleModel MyModel { get; set; }
public List<SelectListItem> CityList { get; set; } = new List<SelectListItem>
{
new SelectListItem { Value = "NY", Text = "New York"},
new SelectListItem { Value = "LDN", Text = "London"},
new SelectListItem { Value = "IST", Text = "Istanbul"},
new SelectListItem { Value = "MOS", Text = "Moscow"}
};
public void OnGet()
{
MyModel = new SampleModel();
MyModel.CityRadio = "IST";
MyModel.CityRadio2 = "MOS";
}
public class SampleModel
{
public string CityRadio { get; set; }
[SelectItems(nameof(CityList))]
public string CityRadio2 { get; set; }
}
}
````
### 特性(attributes)
您可以在C#属性或直接在HTML标签上设置一些属性。如果您将在[abp-dynamic-form](Dynamic-forms.md)中使用此属性,则只能通过属性属性设置这些属性。
#### 属性特性(Property Attributes)
- `[SelectItems()]`:设置选择数据。参数应为数据列表的名称。 (见上面的示例)
#### 标签特性(Tag Attributes)
- `asp-items`: 设置选择数据。这应该是一个SelectListItem列表。
- `Inline`: 如果为true,则单选按钮将在单行中,相互紧挨着。如果为false,则它们将在彼此下面。

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

@ -37,6 +37,8 @@ public class AbpSelectTagHelper : AbpTagHelper<AbpSelectTagHelper, AbpSelectTagH
public string AutocompleteSelectedItemName { get; set; }
public string AutocompleteSelectedItemValue { get; set; }
public string AutocompleteParentSelector { get; set; }
public string AllowClear { get; set; }

1
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelperService.cs

@ -125,6 +125,7 @@ public class AbpSelectTagHelperService : AbpTagHelperService<AbpSelectTagHelper>
output.Attributes.Add("data-autocomplete-selected-item-value", TagHelper.AutocompleteSelectedItemValue);
output.Attributes.Add("data-autocomplete-allow-clear", TagHelper.AllowClear);
output.Attributes.Add("data-autocomplete-placeholder", TagHelper.Placeholder);
output.Attributes.Add("data-autocomplete-parent-selector", TagHelper.AutocompleteParentSelector);
}
}

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/fi.json

@ -4,7 +4,7 @@
"GivenTenantIsNotExist": "Annettua vuokralaista ei ole olemassa: {0}",
"GivenTenantIsNotAvailable": "Annettua vuokralaista ei ole saatavilla: {0}",
"Tenant": "Vuokralainen",
"Switch": "vaihtaa",
"Switch": "Vaihda",
"Name": "Nimi",
"SwitchTenantHint": "Jätä nimikenttä tyhjäksi, jos haluat vaihtaa isäntäpuolelle.",
"SwitchTenant": "Vaihda vuokralainen",

42
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Controllers/ErrorController.cs

@ -14,12 +14,12 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Controllers;
public class ErrorController : AbpController
{
private readonly IExceptionToErrorInfoConverter _errorInfoConverter;
private readonly IHttpExceptionStatusCodeFinder _statusCodeFinder;
private readonly IStringLocalizer<AbpUiResource> _localizer;
private readonly AbpErrorPageOptions _abpErrorPageOptions;
private readonly IExceptionNotifier _exceptionNotifier;
private readonly AbpExceptionHandlingOptions _exceptionHandlingOptions;
protected readonly IExceptionToErrorInfoConverter ErrorInfoConverter;
protected readonly IHttpExceptionStatusCodeFinder StatusCodeFinder;
protected readonly IStringLocalizer<AbpUiResource> Localizer;
protected readonly AbpErrorPageOptions AbpErrorPageOptions;
protected readonly IExceptionNotifier ExceptionNotifier;
protected readonly AbpExceptionHandlingOptions ExceptionHandlingOptions;
public ErrorController(
IExceptionToErrorInfoConverter exceptionToErrorInfoConverter,
@ -29,33 +29,33 @@ public class ErrorController : AbpController
IExceptionNotifier exceptionNotifier,
IOptions<AbpExceptionHandlingOptions> exceptionHandlingOptions)
{
_errorInfoConverter = exceptionToErrorInfoConverter;
_statusCodeFinder = httpExceptionStatusCodeFinder;
_localizer = localizer;
_exceptionNotifier = exceptionNotifier;
_exceptionHandlingOptions = exceptionHandlingOptions.Value;
_abpErrorPageOptions = abpErrorPageOptions.Value;
ErrorInfoConverter = exceptionToErrorInfoConverter;
StatusCodeFinder = httpExceptionStatusCodeFinder;
Localizer = localizer;
ExceptionNotifier = exceptionNotifier;
ExceptionHandlingOptions = exceptionHandlingOptions.Value;
AbpErrorPageOptions = abpErrorPageOptions.Value;
}
public async Task<IActionResult> Index(int httpStatusCode)
public virtual async Task<IActionResult> Index(int httpStatusCode)
{
var exHandlerFeature = HttpContext.Features.Get<IExceptionHandlerFeature>();
var exception = exHandlerFeature != null
? exHandlerFeature.Error
: new Exception(_localizer["UnhandledException"]);
: new Exception(Localizer["UnhandledException"]);
await _exceptionNotifier.NotifyAsync(new ExceptionNotificationContext(exception));
await ExceptionNotifier.NotifyAsync(new ExceptionNotificationContext(exception));
var errorInfo = _errorInfoConverter.Convert(exception, options =>
var errorInfo = ErrorInfoConverter.Convert(exception, options =>
{
options.SendExceptionsDetailsToClients = _exceptionHandlingOptions.SendExceptionsDetailsToClients;
options.SendStackTraceToClients = _exceptionHandlingOptions.SendStackTraceToClients;
options.SendExceptionsDetailsToClients = ExceptionHandlingOptions.SendExceptionsDetailsToClients;
options.SendStackTraceToClients = ExceptionHandlingOptions.SendStackTraceToClients;
});
if (httpStatusCode == 0)
{
httpStatusCode = (int)_statusCodeFinder.GetStatusCode(HttpContext, exception);
httpStatusCode = (int)StatusCodeFinder.GetStatusCode(HttpContext, exception);
}
HttpContext.Response.StatusCode = httpStatusCode;
@ -69,9 +69,9 @@ public class ErrorController : AbpController
});
}
private string GetErrorPageUrl(int statusCode)
protected virtual string GetErrorPageUrl(int statusCode)
{
var page = _abpErrorPageOptions.ErrorViewUrls.GetOrDefault(statusCode.ToString());
var page = AbpErrorPageOptions.ErrorViewUrls.GetOrDefault(statusCode.ToString());
if (string.IsNullOrWhiteSpace(page))
{

8
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApiExploring/AbpApiDefinitionController.cs

@ -8,16 +8,16 @@ namespace Volo.Abp.AspNetCore.Mvc.ApiExploring;
[Route("api/abp/api-definition")]
public class AbpApiDefinitionController : AbpController, IRemoteService
{
private readonly IApiDescriptionModelProvider _modelProvider;
protected readonly IApiDescriptionModelProvider ModelProvider;
public AbpApiDefinitionController(IApiDescriptionModelProvider modelProvider)
{
_modelProvider = modelProvider;
ModelProvider = modelProvider;
}
[HttpGet]
public ApplicationApiDescriptionModel Get(ApplicationApiDescriptionModelRequestDto model)
public virtual ApplicationApiDescriptionModel Get(ApplicationApiDescriptionModelRequestDto model)
{
return _modelProvider.CreateApiModel(model);
return ModelProvider.CreateApiModel(model);
}
}

12
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationConfigurationController.cs

@ -9,22 +9,22 @@ namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations;
[Route("api/abp/application-configuration")]
public class AbpApplicationConfigurationController : AbpControllerBase, IAbpApplicationConfigurationAppService
{
private readonly IAbpApplicationConfigurationAppService _applicationConfigurationAppService;
private readonly IAbpAntiForgeryManager _antiForgeryManager;
protected readonly IAbpApplicationConfigurationAppService ApplicationConfigurationAppService;
protected readonly IAbpAntiForgeryManager AntiForgeryManager;
public AbpApplicationConfigurationController(
IAbpApplicationConfigurationAppService applicationConfigurationAppService,
IAbpAntiForgeryManager antiForgeryManager)
{
_applicationConfigurationAppService = applicationConfigurationAppService;
_antiForgeryManager = antiForgeryManager;
ApplicationConfigurationAppService = applicationConfigurationAppService;
AntiForgeryManager = antiForgeryManager;
}
[HttpGet]
public virtual async Task<ApplicationConfigurationDto> GetAsync(
ApplicationConfigurationRequestOptions options)
{
_antiForgeryManager.SetCookie();
return await _applicationConfigurationAppService.GetAsync(options);
AntiForgeryManager.SetCookie();
return await ApplicationConfigurationAppService.GetAsync(options);
}
}

34
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationConfigurationScriptController.cs

@ -17,11 +17,11 @@ namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations;
[ApiExplorerSettings(IgnoreApi = true)]
public class AbpApplicationConfigurationScriptController : AbpController
{
private readonly AbpApplicationConfigurationAppService _configurationAppService;
private readonly IJsonSerializer _jsonSerializer;
private readonly AbpAspNetCoreMvcOptions _options;
private readonly IJavascriptMinifier _javascriptMinifier;
private readonly IAbpAntiForgeryManager _antiForgeryManager;
protected readonly AbpApplicationConfigurationAppService ConfigurationAppService;
protected readonly IJsonSerializer JsonSerializer;
protected readonly AbpAspNetCoreMvcOptions Options;
protected readonly IJavascriptMinifier JavascriptMinifier;
protected readonly IAbpAntiForgeryManager AntiForgeryManager;
public AbpApplicationConfigurationScriptController(
AbpApplicationConfigurationAppService configurationAppService,
@ -30,42 +30,42 @@ public class AbpApplicationConfigurationScriptController : AbpController
IJavascriptMinifier javascriptMinifier,
IAbpAntiForgeryManager antiForgeryManager)
{
_configurationAppService = configurationAppService;
_jsonSerializer = jsonSerializer;
_options = options.Value;
_javascriptMinifier = javascriptMinifier;
_antiForgeryManager = antiForgeryManager;
ConfigurationAppService = configurationAppService;
JsonSerializer = jsonSerializer;
Options = options.Value;
JavascriptMinifier = javascriptMinifier;
AntiForgeryManager = antiForgeryManager;
}
[HttpGet]
[Produces(MimeTypes.Application.Javascript, MimeTypes.Text.Plain)]
public async Task<ActionResult> Get()
public virtual async Task<ActionResult> Get()
{
var script = CreateAbpExtendScript(
await _configurationAppService.GetAsync(
await ConfigurationAppService.GetAsync(
new ApplicationConfigurationRequestOptions {
IncludeLocalizationResources = false
}
)
);
_antiForgeryManager.SetCookie();
AntiForgeryManager.SetCookie();
return Content(
_options.MinifyGeneratedScript == true
? _javascriptMinifier.Minify(script)
Options.MinifyGeneratedScript == true
? JavascriptMinifier.Minify(script)
: script,
MimeTypes.Application.Javascript
);
}
private string CreateAbpExtendScript(ApplicationConfigurationDto config)
protected virtual string CreateAbpExtendScript(ApplicationConfigurationDto config)
{
var script = new StringBuilder();
script.AppendLine("(function(){");
script.AppendLine();
script.AppendLine($"$.extend(true, abp, {_jsonSerializer.Serialize(config, indented: true)})");
script.AppendLine($"$.extend(true, abp, {JsonSerializer.Serialize(config, indented: true)})");
script.AppendLine();
script.AppendLine("abp.event.trigger('abp.configurationInitialized');");
script.AppendLine();

6
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Localization/AbpApplicationLocalizationScriptController.cs

@ -39,7 +39,7 @@ public class AbpApplicationLocalizationScriptController : AbpController
[HttpGet]
[Produces(MimeTypes.Application.Javascript, MimeTypes.Text.Plain)]
public async Task<ActionResult> GetAsync(ApplicationLocalizationRequestDto input)
public virtual async Task<ActionResult> GetAsync(ApplicationLocalizationRequestDto input)
{
var script = CreateScript(
await LocalizationAppService.GetAsync(input)
@ -53,7 +53,7 @@ public class AbpApplicationLocalizationScriptController : AbpController
);
}
private string CreateScript(ApplicationLocalizationDto localizationDto)
protected virtual string CreateScript(ApplicationLocalizationDto localizationDto)
{
var script = new StringBuilder();
@ -66,4 +66,4 @@ public class AbpApplicationLocalizationScriptController : AbpController
return script.ToString();
}
}
}

20
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ProxyScripting/AbpServiceProxyScriptController.cs

@ -14,30 +14,30 @@ namespace Volo.Abp.AspNetCore.Mvc.ProxyScripting;
[ApiExplorerSettings(IgnoreApi = true)]
public class AbpServiceProxyScriptController : AbpController
{
private readonly IProxyScriptManager _proxyScriptManager;
private readonly AbpAspNetCoreMvcOptions _options;
private readonly IJavascriptMinifier _javascriptMinifier;
protected readonly IProxyScriptManager ProxyScriptManager;
protected readonly AbpAspNetCoreMvcOptions Options;
protected readonly IJavascriptMinifier JavascriptMinifier;
public AbpServiceProxyScriptController(IProxyScriptManager proxyScriptManager,
IOptions<AbpAspNetCoreMvcOptions> options,
IJavascriptMinifier javascriptMinifier)
{
_proxyScriptManager = proxyScriptManager;
_options = options.Value;
_javascriptMinifier = javascriptMinifier;
ProxyScriptManager = proxyScriptManager;
Options = options.Value;
JavascriptMinifier = javascriptMinifier;
}
[HttpGet]
[Produces(MimeTypes.Application.Javascript, MimeTypes.Text.Plain)]
public ActionResult GetAll(ServiceProxyGenerationModel model)
public virtual ActionResult GetAll(ServiceProxyGenerationModel model)
{
model.Normalize();
var script = _proxyScriptManager.GetScript(model.CreateOptions());
var script = ProxyScriptManager.GetScript(model.CreateOptions());
return Content(
_options.MinifyGeneratedScript == true
? _javascriptMinifier.Minify(script)
Options.MinifyGeneratedScript == true
? JavascriptMinifier.Minify(script)
: script,
MimeTypes.Application.Javascript
);

8
framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Localization/fi.json

@ -1,10 +1,10 @@
{
"culture": "fi",
"texts": {
"Volo.Authorization:010001": "Käyttöoikeuden varmistus epäonnistui! Annettua politiikkaa ei ole myönnetty.",
"Volo.Authorization:010001": "Käyttöoikeuden varmistus epäonnistui! Annettua käytäntöä ei ole myönnetty.",
"Volo.Authorization:010002": "Käyttöoikeuden varmistus epäonnistui! Annettua käytäntöä ei ole myönnetty: {PolicyName}",
"Volo.Authorization:010003": "Käyttöoikeuden varmistus epäonnistui! Annettua käytäntöä ei ole myönnetty tietylle resurssille: {ResourceName}",
"Volo.Authorization:010004": "Käyttöoikeuden varmistus epäonnistui! Annettua vaatimusta ei ole annettu tietylle resurssille: {ResourceName}",
"Volo.Authorization:010005": "Käyttöoikeuden varmistus epäonnistui! Annettuja vaatimuksia ei ole annettu tietylle resurssille: {ResourceName}"
"Volo.Authorization:010003": "Käyttöoikeuden varmistus epäonnistui! Annettua käytäntöä ei ole myönnetty resurssille: {ResourceName}",
"Volo.Authorization:010004": "Käyttöoikeuden varmistus epäonnistui! Annettua vaatimusta ei ole annettu resurssille: {ResourceName}",
"Volo.Authorization:010005": "Käyttöoikeuden varmistus epäonnistui! Annettuja vaatimuksia ei ole annettu resurssille: {ResourceName}"
}
}

2
framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/fi.json

@ -4,7 +4,7 @@
"DisplayName:Abp.Mailing.DefaultFromAddress": "Oletus osoitteesta",
"DisplayName:Abp.Mailing.DefaultFromDisplayName": "Oletus näyttönimestä",
"DisplayName:Abp.Mailing.Smtp.Host": "Isäntä",
"DisplayName:Abp.Mailing.Smtp.Port": "Satama",
"DisplayName:Abp.Mailing.Smtp.Port": "Portti",
"DisplayName:Abp.Mailing.Smtp.UserName": "Käyttäjänimi",
"DisplayName:Abp.Mailing.Smtp.Password": "Salasana",
"DisplayName:Abp.Mailing.Smtp.Domain": "Verkkotunnus",

2
framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs

@ -610,7 +610,7 @@ public class MongoDbRepository<TMongoDbContext, TEntity>
return Task.CompletedTask;
}
private void TriggerEntityCreateEvents(TEntity entity)
protected virtual void TriggerEntityCreateEvents(TEntity entity)
{
EntityChangeEventHelper.PublishEntityCreatedEvent(entity);
}

8
framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/AbpSwashbuckleController.cs

@ -12,16 +12,16 @@ namespace Volo.Abp.Swashbuckle;
[ApiExplorerSettings(IgnoreApi = true)]
public class AbpSwashbuckleController : AbpController
{
private readonly IAbpAntiForgeryManager _antiForgeryManager;
protected readonly IAbpAntiForgeryManager AntiForgeryManager;
public AbpSwashbuckleController(IAbpAntiForgeryManager antiForgeryManager)
{
_antiForgeryManager = antiForgeryManager;
AntiForgeryManager = antiForgeryManager;
}
[HttpGet]
public void SetCsrfCookie()
public virtual void SetCsrfCookie()
{
_antiForgeryManager.SetCookie();
AntiForgeryManager.SetCookie();
}
}

2
framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Localization/fi.json

@ -2,6 +2,6 @@
"culture": "fi",
"texts": {
"DisplayName:Abp.Timing.Timezone": "Aikavyöhyke",
"Description:Abp.Timing.Timezone": "Levityksen aikavyöhyke"
"Description:Abp.Timing.Timezone": "Sovelluksen aikavyöhyke"
}
}

36
framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fi.json

@ -1,21 +1,21 @@
{
"culture": "fi",
"texts": {
"Languages": "Kieli (kielet",
"Languages": "Kielet",
"AreYouSure": "Oletko varma?",
"Cancel": "Peruuttaa",
"Clear": "Asia selvä",
"Yes": "Joo",
"Cancel": "Peruuta",
"Clear": "Tyhjennä",
"Yes": "Kyllä",
"No": "Ei",
"Ok": "Ok",
"Close": "kiinni",
"Save": "Tallentaa",
"SavingWithThreeDot": "Tallentaa...",
"Close": "Sulje",
"Save": "Tallenna",
"SavingWithThreeDot": "Tallennetaan...",
"Actions": "Toiminnot",
"Delete": "Poistaa",
"Delete": "Poista",
"SuccessfullyDeleted": "Poistettu onnistuneesti",
"Edit": "Muokata",
"Refresh": "virkistää",
"Edit": "Muokkaa",
"Refresh": "Virkistä",
"Language": "Kieli",
"LoadMore": "Lataa lisää",
"ProcessingWithThreeDot": "Käsitellään...",
@ -23,22 +23,22 @@
"Welcome": "Tervetuloa",
"Login": "Kirjaudu sisään",
"Register": "Rekisteröidy",
"Logout": "Kirjautua ulos",
"Logout": "Kirjaudu ulos",
"Submit": "Lähetä",
"Back": "Takaisin",
"PagerSearch": "Hae",
"PagerNext": "Seuraava",
"PagerPrevious": "Edellinen",
"PagerFirst": "Ensimmäinen",
"PagerLast": "Kestää",
"PagerInfo": "Näytetään _START_ - _END_/_TOTAL_ merkinnästä",
"PagerInfo{0}{1}{2}": "Näytetään {0} - {1}/{2} merkinnästä",
"PagerInfoEmpty": "Näytetään 0 - 0/0 merkinnästä",
"PagerInfoFiltered": "(suodatettu _MAX_ merkinnän kokonaismäärästä)",
"NoDataAvailableInDatatable": "Tietoja ei ole käytettävissä",
"PagerLast": "Viimeinen",
"PagerInfo": "Näytetään _START_ - _END_/_TOTAL_ tietueesta",
"PagerInfo{0}{1}{2}": "Näytetään {0} - {1}/{2} tietueesta",
"PagerInfoEmpty": "Näytetään 0 - 0/0 tietueesta",
"PagerInfoFiltered": "(suodatettu _MAX_ tietueen kokonaismäärästä)",
"NoDataAvailableInDatatable": "Tietoja ei löydy",
"Total": "kaikki yhteensä",
"Selected": "valittu",
"PagerShowMenuEntries": "Näytä _MENU_ merkinnät",
"PagerShowMenuEntries": "Näytä _MENU_ tietueet",
"DatatableActionDropdownDefaultText": "Toiminnot",
"ChangePassword": "Vaihda salasana",
"PersonalInfo": "Profiilini",

14
framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/fi.json

@ -6,15 +6,15 @@
"{0} is not valid.": "{0} ei kelpaa.",
"The {0} field is not a valid e-mail address.": "{0} -kenttä ei ole kelvollinen sähköpostiosoite.",
"The {0} field only accepts files with the following extensions: {1}": "{0} -kenttä hyväksyy vain tiedostot, joilla on seuraavat laajennukset: {1}",
"The field {0} must be a string or array type with a maximum length of '{1}'.": "Kentän {0} on oltava merkkijono- tai taulukotyyppi, jonka enimmäispituus on {1}.",
"The field {0} must be a string or array type with a minimum length of '{1}'.": "Kentän {0} on oltava merkkijono tai matriisityyppi, jonka vähimmäispituus on {1}.",
"The field {0} must be a string or array type with a maximum length of '{1}'.": "Kentän {0} on oltava merkkijono- tai taulukko, jonka enimmäispituus on {1}.",
"The field {0} must be a string or array type with a minimum length of '{1}'.": "Kentän {0} on oltava merkkijono tai taulukko, jonka vähimmäispituus on {1}.",
"The {0} field is not a valid phone number.": "{0} -kenttä ei ole kelvollinen puhelinnumero.",
"The field {0} must be between {1} and {2}.": "Kentän {0} on oltava välillä {1} - {2}.",
"The field {0} must match the regular expression '{1}'.": "Kenttä {0} ei vastaa pyydettyä muotoa.",
"The {0} field is required.": "{0} -kenttä on pakollinen.",
"The field {0} must be a string with a maximum length of {1}.": "Kentän {0} on oltava merkkijono, jonka enimmäispituus on {1}.",
"The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.": "Kentän {0} on oltava merkkijono, jonka vähimmäispituus on {2} ja enimmäispituus {1}.",
"The {0} field is not a valid fully-qualified http, https, or ftp URL.": "{0} -kenttä ei ole kelvollinen täysin hyväksytty http, https tai ftp URL.",
"The {0} field is not a valid fully-qualified http, https, or ftp URL.": "{0} -kenttä ei ole kelvollinen http, https tai ftp URL-osoite.",
"The field {0} is invalid.": "Kenttä {0} on virheellinen.",
"The value '{0}' is invalid.": "Arvo '{0}' on virheellinen.",
"The field {0} must be a number.": "Kentän {0} on oltava numero.",
@ -23,15 +23,17 @@
"ThisFieldIsNotValid.": "Tämä kenttä ei kelpaa.",
"ThisFieldIsNotAValidEmailAddress.": "Tämä kenttä ei ole kelvollinen sähköpostiosoite.",
"ThisFieldOnlyAcceptsFilesWithTheFollowingExtensions:{0}": "Tämä kenttä hyväksyy vain tiedostot, joilla on seuraavat laajennukset: {0}",
"ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthOf{0}": "Tämän kentän on oltava merkkijono- tai taulukotyyppi, jonka enimmäispituus on {0}.",
"ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "Tämän kentän on oltava merkkijono- tai taulukotyyppi, jonka vähimmäispituus on {0}.",
"ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthOf{0}": "Tämän kentän on oltava merkkijono- tai taulukko, jonka enimmäispituus on {0}.",
"ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "Tämän kentän on oltava merkkijono- tai taulukko, jonka vähimmäispituus on {0}.",
"ThisFieldIsNotAValidPhoneNumber.": "Tämä kenttä ei ole kelvollinen puhelinnumero.",
"ThisFieldMustBeBetween{0}And{1}": "Tämän kentän on oltava välillä {0} - {1}.",
"ThisFieldMustBeGreaterThanOrEqual{0}": "Tämän kentän on oltava suurempi tai yhtä suuri kuin {0}.",
"ThisFieldMustBeLessOrEqual{0}": "Tämän kentän on oltava pienempi tai yhtä suuri kuin {0}.",
"ThisFieldMustMatchTheRegularExpression{0}": "Tämän kentän on vastattava säännöllistä lauseketta {0}.",
"ThisFieldIsRequired.": "Tämä kenttä pitää täyttää.",
"ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "Tämän kentän on oltava merkkijono, jonka enimmäispituus on {0}.",
"ThisFieldMustBeAStringWithAMinimumLengthOf{1}AndAMaximumLengthOf{0}": "Tämän kentän on oltava merkkijono, jonka vähimmäispituus on {1} ja enimmäispituus {0}.",
"ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "Tämä kenttä ei ole kelvollinen täysin hyväksytty http, https tai ftp URL.",
"ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "Tämä kenttä ei ole kelvollinen http, https tai ftp URL-osoite.",
"ThisFieldIsInvalid.": "Tämä kenttä on virheellinen."
}
}

7
framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/fi.json

@ -2,6 +2,11 @@
"culture": "fi",
"texts": {
"ThisFieldIsRequired": "Tämä kenttä pitää täyttää",
"MaxLenghtErrorMessage": "Tämä kenttä voi olla enintään {0} merkkiä"
"MaxLenghtErrorMessage": "Tämä kenttä voi olla enintään {0} merkkiä",
"Enum:BookType.Undefined": "Määrittämätön ValidationResourcesta",
"Enum:BookType.0": "Määrittämätön arvo 0 ValidationResourcesta",
"BookType.Adventure": "Seikkailu ValidationResourcesta",
"BookType.1": "Seikkailu arvolla 1 ValidationResourcesta",
"Biography": "Elämäkerta ValidationResourcesta"
}
}

7
framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/fi.json

@ -6,6 +6,11 @@
"CarPlural": "Autot",
"MaxLenghtErrorMessage": "Tämän kentän pituus voi olla enintään {0} merkkiä",
"Universe": "Maailmankaikkeus",
"FortyTwo": "Neljäkymmentäkaksi"
"FortyTwo": "Neljäkymmentäkaksi",
"Enum:BookType.Undefined": "Määrittelemätön",
"Enum:BookType.0": "Määrittämätön arvolla 0",
"BookType.Adventure": "Seikkailu",
"BookType.1": "Seikkailu arvolla 1",
"Biography": "Elämäkerta"
}
}

8
modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/fi.json

@ -14,7 +14,7 @@
"SelfRegistrationDisabledMessage": "Itserekisteröinti on poistettu käytöstä tälle sovellukselle. Rekisteröi uusi käyttäjä ottamalla yhteyttä sovelluksen järjestelmänvalvojaan.",
"LocalLoginDisabledMessage": "Paikallinen sisäänkirjautuminen on poistettu käytöstä tälle sovellukselle.",
"Login": "Kirjaudu sisään",
"Cancel": "Peruuttaa",
"Cancel": "Peruuta",
"Register": "Rekisteröidy",
"AreYouANewUser": "Oletko uusi käyttäjä?",
"AlreadyRegistered": "Jo rekisteröity?",
@ -34,6 +34,8 @@
"DisplayName:PhoneNumber": "Puhelinnumero",
"PersonalSettings": "Henkilökohtaiset asetukset",
"PersonalSettingsSaved": "Henkilökohtaiset asetukset tallennettu",
"PersonalSettingsChangedConfirmationModalTitle": "Henkilötiedot muuttuneet",
"PersonalSettingsChangedConfirmationModalDescription": "Jos haluat ottaa nämä muutokset käyttöön, sinun on kirjauduttava uudelleen sisään. Haluatko kirjautua nyt ulos?",
"PasswordChanged": "Salasana vaihdettu",
"NewPasswordConfirmFailed": "Vahvista uusi salasana.",
"NewPasswordSameAsOld": "Uusi salasana ei voi olla sama kuin vanha salasana.",
@ -43,8 +45,8 @@
"Description:Abp.Account.IsSelfRegistrationEnabled": "Voiko käyttäjä rekisteröidä tilin itse.",
"DisplayName:Abp.Account.EnableLocalLogin": "Todennus paikallisella tilillä",
"Description:Abp.Account.EnableLocalLogin": "Ilmaisee, salliko palvelin käyttäjien todentamisen paikallisella tilillä.",
"LoggedOutTitle": "Kirjautui ulos",
"LoggedOutText": "Sinut on kirjautunut ulos ja sinut ohjataan pian.",
"LoggedOutTitle": "Kirjauduttu ulos",
"LoggedOutText": "Sinut on kirjattu ulos ja sinut ohjataan pian takaisin sovellukseen.",
"ReturnToText": "Napsauta tätä ja ohjaa uudelleen osoitteeseen {0}",
"OrLoginWith": "Tai kirjaudu sisään:",
"ForgotPassword": "Unohtuiko salasana?",

23
modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/fi.json

@ -6,8 +6,8 @@
"Menu:AuditLogging": "Tarkastuslokit",
"AuditLogs": "Tarkastuslokit",
"HttpStatus": "Http-tila",
"HttpMethod": "Http-menetelmä",
"HttpMethodFilter": "Http-menetelmän suodatin",
"HttpMethod": "Http-metodi",
"HttpMethodFilter": "Http-metodin suodatin",
"HttpRequest": "Http-pyyntö",
"User": "Käyttäjä",
"UserNameFilter": "Käyttäjäsuodatin",
@ -32,33 +32,34 @@
"HttpStatusCode": "Http-tilakoodi",
"HttpStatusCodeFilter": "Http-tilakoodisuodatin",
"ServiceName": "Palvelu",
"MethodName": "Menetelmä",
"MethodName": "Metodi",
"CorrelationId": "Korrelaatiotunnus",
"ApplicationName": "sovelluksen nimi",
"ApplicationName": "Sovelluksen nimi",
"ExecutionDuration": "Kesto",
"ExtraProperties": "Lisäominaisuudet",
"MaxDuration": "Maks. Kesto",
"MinDuration": "Min. Kesto",
"MinMaxDuration": "Kesto (Min. - Max.)",
"{0}Milliseconds": "{0} millisekuntia",
"ExecutionTime": "Aika",
"Parameters": "Parametrit",
"EntityTypeFullName": "Yhteisön tyyppi Koko nimi",
"EntityTypeFullName": "Entiteetin tyyppi Koko nimi",
"Entity": "Entiteetti",
"ChangeType": "Vaihda tyyppiä",
"ChangeTime": "Aika",
"NewValue": "Uusi arvo",
"OriginalValue": "Alkuperäinen arvo",
"PropertyName": "Kiinteistön nimi",
"PropertyTypeFullName": "Kiinteistötyyppi Koko nimi",
"Yes": "Joo",
"PropertyName": "Ominaisuuden nimi",
"PropertyTypeFullName": "Ominaisuustyyppi Koko nimi",
"Yes": "Kyllä",
"No": "Ei",
"Changes": "Muutokset",
"AverageExecutionDurationInLogsPerDay": "Keskimääräinen suorituksen kesto",
"AverageExecutionDurationInMilliseconds": "Keskimääräinen suorituksen kesto millisekunteina",
"ErrorRateInLogs": "Virheprosentti lokeissa",
"Success": "Menestys",
"Fault": "Vika",
"NoChanges": "Ei muutoksia)",
"Success": "Onnistui",
"Fault": "Virhe",
"NoChanges": "Ei muutoksia",
"EntityChanges": "Entiteetin muutokset",
"EntityId": "Entiteetin tunnus",
"EntityChangeStartTime": "Pienin muutospäivä",

21
modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/fi.json

@ -3,18 +3,18 @@
"texts": {
"Menu:Blogs": "Blogit",
"Menu:BlogManagement": "Bloggaaminen",
"Permission:Management": "Johto",
"Permission:Edit": "Muokata",
"Permission:Create": "Luoda",
"Permission:Delete": "Poistaa",
"Permission:Blogging": "Blogi",
"Permission:Management": "Hallinto",
"Permission:Edit": "Muokkaus",
"Permission:Create": "Luonti",
"Permission:Delete": "Poisto",
"Permission:Blogging": "Bloggaus",
"Permission:Blogs": "Blogit",
"Permission:Posts": "Viestit",
"Permission:Tags": "Tunnisteet",
"Permission:Comments": "Kommentit",
"Permission:ClearCache": "Tyhjennä välimuisti",
"Permission:ClearCache": "Välimuistin tyhjennys",
"Title": "Otsikko",
"Delete": "Poistaa",
"Delete": "Poista",
"Reply": "Vastaa",
"ReplyTo": "Vastaa osoitteeseen {0}",
"ContinueReading": "Jatka lukemista",
@ -34,7 +34,7 @@
"LeaveComment": "Jätä kommentti",
"TagsInThisArticle": "Tunnisteet tässä artikkelissa",
"Posts": "Viestit",
"Edit": "Muokata",
"Edit": "Muokkaa",
"BLOG": "BLOGI",
"CommentDeletionWarningMessage": "Kommentti poistetaan.",
"PostDeletionWarningMessage": "Viesti poistetaan.",
@ -56,6 +56,9 @@
"ShareOn": "Jaa",
"TitleLengthWarning": "Pidä otsikkokoko alle 60 merkkiä SEO-ystävällisenä!",
"ClearCache": "Tyhjennä välimuisti",
"ClearCacheConfirmationMessage": "Haluatko varmasti tyhjentää välimuistin?"
"ClearCacheConfirmationMessage": "Haluatko varmasti tyhjentää välimuistin?",
"MarkdownSupported": "Markdown on tuettu",
"FileUploadInfo": "Vedä, pudota tai liitä kopioitu kuva.",
"PostDescriptionHint": "* Näytetään artikkelin linkin esikatselussa, tukee HTML:ää"
}
}

130
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/fi.json

@ -35,17 +35,17 @@
"CoverImage": "Kansikuva",
"CreateBlogPostPage": "Uusi blogiviesti",
"CreationTime": "Luomisaika",
"Delete": "Poistaa",
"Delete": "Poista",
"Detail": "Yksityiskohta",
"Details": "Yksityiskohdat",
"DisplayName": "Näyttönimi",
"DoYouPreferAdditionalEmails": "Haluatko mieluummin lisää sähköposteja?",
"Edit": "Muokata",
"Edit": "Muokkaa",
"EndDate": "Päättymispäivä",
"EntityId": "Entiteetin tunnus",
"EntityType": "Entiteetin tyyppi",
"ExportCSV": "Vie CSV",
"Features": "ominaisuudet",
"Features": "Ominaisuudet",
"GenericDeletionConfirmationMessage": "Haluatko varmasti poistaa kohteen {0}?",
"IsActive": "Aktiivinen",
"LastModification": "Viimeisin muokkaus",
@ -77,58 +77,64 @@
"Pages": "Sivut",
"PageSlugInformation": "Etanaa käytetään URL-osoitteessa. URL-osoitteesi on '/{{slug}}'.",
"Permission:BlogManagement": "Blogin hallinta",
"Permission:BlogManagement.Create": "Luoda",
"Permission:BlogManagement.Delete": "Poistaa",
"Permission:BlogManagement.Features": "ominaisuudet",
"Permission:BlogManagement.Update": "Päivittää",
"Permission:BlogManagement.Create": "Luonti",
"Permission:BlogManagement.Delete": "Poisto",
"Permission:BlogManagement.Features": "Ominaisuudet",
"Permission:BlogManagement.Update": "Päivitys",
"Permission:BlogPostManagement": "Blogiviestien hallinta",
"Permission:BlogPostManagement.Create": "Luoda",
"Permission:BlogPostManagement.Delete": "Poistaa",
"Permission:BlogPostManagement.Update": "Päivittää",
"Permission:BlogPostManagement.Create": "Luonti",
"Permission:BlogPostManagement.Delete": "Poisto",
"Permission:BlogPostManagement.Update": "Päivitys",
"Permission:BlogPostManagement.Publish": "Julkaisu",
"Permission:CmsKit": "CmsKit",
"Permission:Comments": "Kommenttien hallinta",
"Permission:Comments.Delete": "Poistaa",
"Permission:Comments.Delete": "Poisto",
"Permission:Contents": "Sisällön hallinta",
"Permission:Contents.Create": "Luo sisältöä",
"Permission:Contents.Delete": "Poista sisältö",
"Permission:Contents.Update": "Päivitä sisältö",
"Permission:Contents.Delete": "Poista sisältöä",
"Permission:Contents.Update": "Päivitä sisältöä",
"Permission:MediaDescriptorManagement": "Median hallinta",
"Permission:MediaDescriptorManagement:Create": "Luoda",
"Permission:MediaDescriptorManagement:Delete": "Poistaa",
"Permission:MediaDescriptorManagement:Create": "Luonti",
"Permission:MediaDescriptorManagement:Delete": "Poisto",
"Permission:MenuItemManagement": "Valikkokohteiden hallinta",
"Permission:MenuItemManagement.Create": "Luoda",
"Permission:MenuItemManagement.Delete": "Poistaa",
"Permission:MenuItemManagement.Update": "Päivittää",
"Permission:MenuItemManagement.Create": "Luonti",
"Permission:MenuItemManagement.Delete": "Poisto",
"Permission:MenuItemManagement.Update": "Päivitys",
"Permission:MenuManagement": "Valikon hallinta",
"Permission:MenuManagement.Create": "Luoda",
"Permission:MenuManagement.Delete": "Poistaa",
"Permission:MenuManagement.Update": "Päivittää",
"Permission:MenuManagement.Create": "Luonti",
"Permission:MenuManagement.Delete": "Poisto",
"Permission:MenuManagement.Update": "Päivitys",
"Permission:Menus": "Valikon hallinta",
"Permission:Menus.Create": "Luoda",
"Permission:Menus.Delete": "Poistaa",
"Permission:Menus.Update": "Päivittää",
"Permission:Menus.Create": "Luonti",
"Permission:Menus.Delete": "Poisto",
"Permission:Menus.Update": "Päivitys",
"Permission:PageManagement": "Sivun hallinta",
"Permission:PageManagement:Create": "Luoda",
"Permission:PageManagement:Delete": "Poistaa",
"Permission:PageManagement:Update": "Päivittää",
"Permission:PageManagement:Create": "Luonti",
"Permission:PageManagement:Delete": "Poisto",
"Permission:PageManagement:Update": "Päivitys",
"Permission:PageManagement:SetAsHomePage": "Aseta kotisivuksi",
"Permission:TagManagement": "Tagien hallinta",
"Permission:TagManagement.Create": "Luoda",
"Permission:TagManagement.Delete": "Poistaa",
"Permission:TagManagement.Update": "Päivittää",
"Permission:TagManagement.Create": "Luonti",
"Permission:TagManagement.Delete": "Poisto",
"Permission:TagManagement.Update": "Päivitys",
"Permission:GlobalResources": "Globaalit resurssit",
"Permission:CmsKitPublic": "CmsKit Julkinen",
"Permission:Comments.DeleteAll": "Poista kaikki",
"PickYourReaction": "Valitse reaktio",
"Rating": "Luokitus",
"RatingUndoMessage": "Arviosi kumotaan.",
"Reactions": "Reaktiot",
"Read": "Lukea",
"Read": "Lue",
"RepliesToThisComment": "Vastaukset tähän kommenttiin",
"Reply": "Vastaa",
"ReplyTo": "Vastata",
"ReplyTo": "Vastaa",
"SamplePageMessage": "Esimerkkisivu Pro-moduulille",
"SaveChanges": "Tallenna muutokset",
"Script": "Skripti",
"SelectAll": "Valitse kaikki",
"Send": "Lähetä",
"Send": "Lähetä",
"SendMessage": "Lähetä viesti",
"SelectedAuthor": "Tekijä",
"ShortDescription": "Lyhyt kuvaus",
"Slug": "Etana",
"Source": "Lähde",
@ -147,17 +153,69 @@
"ThankYou": "Kiitos",
"Title": "Otsikko",
"Undo": "Kumoa",
"Update": "Päivitä",
"Update": "Päivitä",
"UpdatePreferenceSuccessMessage": "Asetuksesi on tallennettu.",
"UpdateYourEmailPreferences": "Päivitä sähköpostiasetuksesi",
"UnMakeMainMenu": "Poista päävalikko",
"UploadFailedMessage": "Lataus epäonnistui.",
"UserId": "Käyttäjätunnus",
"Username": "Käyttäjätunnus",
"Username": "Käyttäjänimi",
"YourComment": "Kommenttisi",
"YourEmailAddress": "Sähköpostiosoitteesi",
"YourFullName": "Koko nimesi",
"YourMessage": "Viestisi",
"YourReply": "Sinun vastauksesi"
"YourReply": "Sinun vastauksesi",
"MarkdownSupported": "<a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a> tuettu.",
"GlobalResources": "Globaalit resurssit",
"SavedSuccessfully": "Tallennettu onnistuneesti",
"CmsKit.BlogPost.Status.0": "Luonnos",
"CmsKit.BlogPost.Status.1": "Julkaistu",
"CmsKit.BlogPost.Status.2": "Odottaa tarkastusta",
"BlogPostPublishConfirmationMessage": "Haluatko varmasti julkaista blogitekstin \"{0}\"?",
"SuccessfullyPublished": "Onnistuneesti julkaistu!",
"Draft": "Luonnos",
"Publish": "Julkaise",
"BlogPostDraftConfirmationMessage": "Oletko varma, että asetat blogitekstin \"{0}\" luonnokseksi?",
"BlogPostSendToReviewConfirmationMessage": "Oletko varma, että lähetät blogitekstin \"{0}\" järjestelmänvalvojan tarkistettavaksi julkaistavaksi?",
"SaveAsDraft": "Tallenna luonnoksena",
"SendToReview": "Lähetä arvosteluun",
"SendToReviewToPublish": "Lähetä arvosteluun julkaistavaksi",
"BlogPostSendToReviewSuccessMessage": "Blogiviesti \"{0}\" on lähetetty järjestelmänvalvojan tarkistettavaksi julkaistavaksi.",
"HasBlogPostWaitingForReviewMessage": "Sinulla on blogikirjoitus, joka odottaa tarkistusta. Napsauta listataksesi.",
"SelectAStatus": "Valitse tila",
"Status": "Tila",
"CmsKit.BlogPost.ScrollIndex": "Pikanavigointipalkki blogikirjoituksissa",
"Add": "Lisää",
"AddWidget": "Lisää widget",
"PleaseConfigureWidgets": "Määritä widgetit",
"SelectAnAuthor": "Valitse tekijä",
"InThisDocument": "Tässä asiakirjassa",
"GoToTop": "Mene alkuun",
"SetAsHomePage": "Muuta kotisivun tilaa",
"CompletedSettingAsHomePage": "Aseta kotisivuksi",
"IsHomePage": "On Kotisivu",
"RemovedSettingAsHomePage": "Kotisivun asetus poistettu",
"Feature:CmsKitGroup": "Cms Kit",
"Feature:BlogEnable": "Blogipostaus",
"Feature:BlogEnableDescription": "CMS Kitin blogikirjoitusjärjestelmä, jonka avulla voit luoda blogeja ja viestejä dynaamisesti sovelluksessa.",
"Feature:CommentEnable": "Kommentointi",
"Feature:CommentEnableDescription": "CMS Kitin kommenttijärjestelmä mahdollistaa kokonaisuuksien, kuten BlogPost, kommentoimisen.",
"Feature:GlobalResourceEnable": "Globaali resursointi",
"Feature:GlobalResourceEnableDescription": "CMS Kitin globaali resurssiominaisuus, jonka avulla voit hallita globaaleja tyylejä ja komentosarjoja.",
"Feature:MenuEnable": "Valikko",
"Feature:MenuEnableDescription": "CMS Kitin dynaaminen valikkojärjestelmä, joka mahdollistaa sovellusvalikoiden lisäämisen/poistamisen dynaamisesti.",
"Feature:PageEnable": "Sivutus",
"Feature:PageEnableDescription": "CMS Kitin sivujärjestelmä, joka mahdollistaa staattisten sivujen luomisen tietyllä URL-osoitteella.",
"Feature:RatingEnable": "Luokitus",
"Feature:RatingEnableDescription": "CMS Kitin luokitusjärjestelmä, jonka avulla käyttäjät voivat arvioida kohteita, kuten BlogPost.",
"Feature:ReactionEnable": "Reaktio",
"Feature:ReactionEnableDescription": "CMS Kitin reaktiojärjestelmä, jonka avulla käyttäjät voivat lähettää reaktioita entiteeteille, kuten BlogPost, Comments jne.",
"Feature:TagEnable": "Merkintä",
"Feature:TagEnableDescription": "CMS Kitin tunnistejärjestelmä, joka mahdollistaa entiteettien, kuten BlogPost, merkitsemisen.",
"DeleteBlogPostMessage": "Blogi poistetaan. Oletko varma?",
"CaptchaCode": "Captcha-koodi",
"CommentTextRequired": "Kommentti vaaditaan",
"CaptchaCodeErrorMessage": "CAPTCHA:lle antamasi vastaus ei ollut oikea. Yritä uudelleen",
"CaptchaCodeMissingMessage": "Captcha-koodi puuttuu!"
}
}

23
modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/fi.json

@ -3,21 +3,21 @@
"texts": {
"Permission:DocumentManagement": "Asiakirjojen hallinta",
"Permission:Projects": "Projektit",
"Permission:Edit": "Muokata",
"Permission:Delete": "Poistaa",
"Permission:Create": "Luoda",
"Permission:Edit": "Muokkaus",
"Permission:Delete": "Poisto",
"Permission:Create": "Luonti",
"Permission:Documents": "Asiakirjat",
"Menu:Documents": "Asiakirjat",
"Menu:DocumentManagement": "Asiakirjat",
"Menu:ProjectManagement": "Projektit",
"CreateANewProject": "Luo uusi projekti",
"Edit": "Muokata",
"Create": "Luoda",
"Pull": "Vedä",
"Edit": "Muokkaa",
"Create": "Luo",
"Pull": "Vedä (Pull)",
"Projects": "Projektit",
"Name": "Nimi",
"ShortName": "Lyhyt nimi",
"DocumentStoreType": "DocumentStoreType",
"DocumentStoreType": "Asiakirjavaraston tyyppi",
"Format": "Muoto",
"ShortNameInfoText": "Käytetään yksilölliseen URL-osoitteeseen.",
"DisplayName:Name": "Nimi",
@ -33,13 +33,13 @@
"DisplayName:GitHubUserAgent": "GitHub-käyttäjäagentti",
"DisplayName:GithubVersionProviderSource": "GitHub-version tarjoajan lähde",
"DisplayName:VersionBranchPrefix": "Versiohaaran etuliite",
"DisplayName:All": "Vedä kaikki",
"DisplayName:All": "Vedä (Pull) Kaikki",
"DisplayName:LanguageCode": "Kielikoodi",
"DisplayName:Version": "Versio",
"Documents": "Asiakirjat",
"RemoveFromCache": "Poista välimuistista",
"Reindex": "Reindex",
"ReindexCompleted": "Reindex valmis",
"Reindex": "Uudelleen indeksoi",
"ReindexCompleted": "Uudelleen indeksointi valmis",
"RemovedFromCache": "Poistettu välimuistista",
"RemoveFromCacheConfirmation": "Haluatko varmasti poistaa tämän kohteen välimuistista?",
"ReIndexDocumentConfirmation": "Haluatko varmasti indeksoida tämän kohteen uudelleen?",
@ -55,6 +55,7 @@
"LanguageCode": "Kielikoodi",
"FileName": "Tiedoston nimi",
"LastCachedTime": "Välimuistin aika",
"Project": "Projekti"
"Project": "Projekti",
"AdvancedFilters": "Edistyneet suodattimet"
}
}

19
modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/fi.json

@ -6,19 +6,19 @@
"Contributors": "Avustajat",
"ShareOn": "Jaa",
"Version": "Versio",
"Edit": "Muokata",
"Edit": "Muokkaa",
"LastEditTime": "Viimeisin muokkaus",
"Delete": "Poistaa",
"Delete": "Poista",
"ClearCache": "Tyhjennä välimuisti",
"ClearCacheConfirmationMessage": "Haluatko varmasti tyhjentää kaikki välimuistit projektille \"{0}\"",
"ReIndexAllProjects": "ReIndex kaikki projektit",
"ReIndexProject": "ReIndex-projekti",
"ReIndexProjectConfirmationMessage": "Haluatko varmasti luoda uudelleenindeksin projektille \"{0}\"",
"SuccessfullyReIndexProject": "Reindex onnistuneesti projektille \"{0}\"",
"ReIndexAllProjects": "Indeksoi uudelleen kaikki projektit",
"ReIndexProject": "Indeksoi uudelleen projekti",
"ReIndexProjectConfirmationMessage": "Haluatko varmasti indeksoida uudelleen projektin \"{0}\"",
"SuccessfullyReIndexProject": "Projekti \"{0}\" uudelleen indeksoitu onnistuneesti",
"ReIndexAllProjectConfirmationMessage": "Haluatko varmasti indeksoida kaikki projektit uudelleen?",
"SuccessfullyReIndexAllProject": "Reindex onnistuneesti kaikille projekteille",
"SuccessfullyReIndexAllProject": "Kaikki projektit uudelleen indeksoitu onnistuneesti",
"InThisDocument": "Tässä asiakirjassa",
"GoToTop": "Mennä huipulle",
"GoToTop": "Siirry alkuun",
"Projects": "Projekti (t)",
"NoProjectWarning": "Ei vielä projekteja!",
"DocumentNotFound": "Hups, pyydettyä asiakirjaa ei löytynyt!",
@ -36,6 +36,7 @@
"Volo.Docs.Domain:010002": "Lyhytnimi {ShortName} on jo olemassa.",
"Preview": "esikatselu",
"Search": "Hae",
"SearchResults": "Hakutulokset"
"SearchResults": "Hakutulokset",
"SearchInTheAllDocuments": "Hae kaikista asiakirjoista"
}
}

11
modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/fi.json

@ -1,12 +1,17 @@
{
"culture": "fi",
"texts": {
"Features": "ominaisuudet",
"NoFeatureFoundMessage": "Ei ole mitään käytettävissä olevaa ominaisuutta.",
"Features": "Ominaisuudet",
"NoFeatureFoundMessage": "Käytettävissä olevia ominaisuuksia ei löydy.",
"ManageHostFeatures": "Hallinnoi isäntäominaisuuksia",
"ManageHostFeaturesText": "Voit hallita isäntäpuolen ominaisuuksia napsauttamalla seuraavaa painiketta.",
"Permission:FeatureManagement": "Ominaisuuden hallinta",
"Permission:FeatureManagement.ManageHostFeatures": "Hallinnoi isäntäominaisuuksia",
"Volo.Abp.FeatureManagement:InvalidFeatureValue": "Ominaisuuden {0} arvo ei kelpaa!",
"Menu:FeatureManagement": "Ominaisuuden hallinta"
"Menu:FeatureManagement": "Ominaisuuden hallinta",
"ResetToDefault": "Palauta oletusarvo",
"ResetedToDefault": "Palautettu oletusarvoon",
"AreYouSure": "Oletko varma?",
"AreYouSureToResetToDefault": "Oletko varma, että haluat palauttaa oletusarvon?"
}
}

6
modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/fi.json

@ -75,9 +75,9 @@
"ThisUserIsNotActiveMessage": "Tämä käyttäjä ei ole aktiivinen.",
"Permission:IdentityManagement": "Identiteetin hallinta",
"Permission:RoleManagement": "Roolien hallinta",
"Permission:Create": "Luoda",
"Permission:Edit": "Muokata",
"Permission:Delete": "Poistaa",
"Permission:Create": "Luonti",
"Permission:Edit": "Muokkaus",
"Permission:Delete": "Poisto",
"Permission:ChangePermissions": "Muuta käyttöoikeuksia",
"Permission:UserManagement": "Käyttäjien hallinta",
"Permission:UserLookup": "Käyttäjähaku",

2
modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/OrganizationUnitManager.cs

@ -122,7 +122,7 @@ public class OrganizationUnitManager : DomainService
public virtual async Task<string> GetCodeOrDefaultAsync(Guid id)
{
var ou = await OrganizationUnitRepository.GetAsync(id);
var ou = await OrganizationUnitRepository.FindAsync(id);
return ou?.Code;
}

6
modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo.Abp.OpenIddict.AspNetCore.csproj

@ -20,8 +20,8 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="OpenIddict.Server.AspNetCore" Version="4.1.0" />
<PackageReference Include="OpenIddict.Validation.AspNetCore" Version="4.1.0" />
<PackageReference Include="OpenIddict.Validation.ServerIntegration" Version="4.1.0" />
<PackageReference Include="OpenIddict.Server.AspNetCore" Version="4.2.0" />
<PackageReference Include="OpenIddict.Validation.AspNetCore" Version="4.2.0" />
<PackageReference Include="OpenIddict.Validation.ServerIntegration" Version="4.2.0" />
</ItemGroup>
</Project>

2
modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo.Abp.OpenIddict.Domain.Shared.csproj

@ -14,7 +14,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="OpenIddict.Abstractions" Version="4.1.0" />
<PackageReference Include="OpenIddict.Abstractions" Version="4.2.0" />
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="$(MicrosoftPackageVersion)" />
</ItemGroup>

15
modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/fi.json

@ -0,0 +1,15 @@
{
"culture": "fi",
"texts": {
"TheOpenIDConnectRequestCannotBeRetrieved": "OpenID Connect -pyyntöä ei voi noutaa.",
"TheUserDetailsCannotBbeRetrieved": "Käyttäjätietoja ei voi hakea.",
"TheApplicationDetailsCannotBeFound": "Sovelluksen tietoja ei löydy.",
"DetailsConcerningTheCallingClientApplicationCannotBeFound": "Kutsuvan asiakassovelluksen tietoja ei löydy.",
"TheSpecifiedGrantTypeIsNotImplemented": "Määritettyä lupatyyppiä {0} ei ole otettu käyttöön.",
"Authorization": "Valtuutus",
"DoYouWantToGrantAccessToYourData": "Haluatko myöntää käyttäjälle {0} pääsyn tietoihisi?",
"ScopesRequested": "Laajuudet pyydetty",
"Accept": "Hyväksy",
"Deny": "Kiellä"
}
}

2
modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo.Abp.OpenIddict.Domain.csproj

@ -17,7 +17,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="OpenIddict.Core" Version="4.1.0" />
<PackageReference Include="OpenIddict.Core" Version="4.2.0" />
</ItemGroup>
</Project>

3
modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fi.json

@ -5,6 +5,7 @@
"OnlyProviderPermissons": "Vain tämä palveluntarjoaja",
"All": "Kaikki",
"SelectAllInAllTabs": "Myönnä kaikki käyttöoikeudet",
"SelectAllInThisTab": "Valitse kaikki"
"SelectAllInThisTab": "Valitse kaikki",
"SaveWithoutAnyPermissionsWarningMessage": "Haluatko varmasti tallentaa ilman käyttöoikeuksia?"
}
}

20
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fi.json

@ -1,17 +1,27 @@
{
"culture": "fi",
"texts": {
"Settings": "asetukset",
"SuccessfullySaved": "Tallentaminen onnistui",
"Settings": "Asetukset",
"SuccessfullySaved": "Tallennettu onnistuneesti",
"Permission:SettingManagement": "Asetusten hallinta",
"Permission:Emailing": "Sähköpostiviestit",
"Permission:EmailingTest": "Sähköpostitesti",
"SendTestEmail": "Lähetä testisähköposti",
"SenderEmailAddress": "Lähettäjän sähköpostiosoite",
"TargetEmailAddress": "Kohdesähköpostiosoite",
"Subject": "Aihe",
"Body": "Runko",
"TestEmailSubject": "Testisähköposti {0}",
"TestEmailBody": "Testaa sähköpostiviestiä täällä",
"SuccessfullySent": "Lähetetty onnistuneesti",
"Send": "Lähetä",
"Menu:Emailing": "Sähköpostiviestit",
"SmtpHost": "Isäntä",
"SmtpPort": "Satama",
"SmtpPort": "Portti",
"SmtpUserName": "Käyttäjänimi",
"SmtpPassword": "Salasana",
"SmtpDomain": "Verkkotunnus",
"SmtpEnableSsl": "Ota käyttöön ssl",
"SmtpEnableSsl": "Ota käyttöön SSL",
"SmtpUseDefaultCredentials": "Käytä oletusarvoisia tunnistetietoja",
"DefaultFromAddress": "Oletus osoitteesta",
"DefaultFromDisplayName": "Oletus näyttönimestä",
@ -21,4 +31,4 @@
"Feature:AllowChangingEmailSettings": "Salli sähköpostiasetusten muuttaminen.",
"Feature:AllowChangingEmailSettingsDescription": "Salli sähköpostiasetusten muuttaminen."
}
}
}

12
modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/fi.json

@ -8,14 +8,14 @@
"TenantName": "Vuokralaisen nimi",
"DisplayName:TenantName": "Vuokralaisen nimi",
"TenantDeletionConfirmationMessage": "Vuokralainen {0} poistetaan. Vahvistatko sen?",
"ConnectionStrings": "Yhteysjonot",
"DisplayName:DefaultConnectionString": "Oletusyhteysmerkkijono",
"ConnectionStrings": "Tietokantayhteydet",
"DisplayName:DefaultConnectionString": "Oletus tietokantayhteys",
"DisplayName:UseSharedDatabase": "Käytä jaettua tietokantaa",
"Permission:TenantManagement": "Vuokralaisten hallinta",
"Permission:Create": "Luoda",
"Permission:Edit": "Muokata",
"Permission:Delete": "Poistaa",
"Permission:ManageConnectionStrings": "Hallitse yhteysmerkkijonoja",
"Permission:Create": "Luonti",
"Permission:Edit": "Muokkaus",
"Permission:Delete": "Poisto",
"Permission:ManageConnectionStrings": "Hallitse tietokantayhteyksiä",
"Permission:ManageFeatures": "Hallitse ominaisuuksia",
"DisplayName:AdminEmailAddress": "Järjestelmänvalvojan sähköpostiosoite",
"DisplayName:AdminPassword": "Järjestelmänvalvojan salasana"

Loading…
Cancel
Save