Browse Source

Merge branch 'rel-8.3' into auto-merge/rel-8-2/3097

pull/21118/head
Fahri Gedik 1 year ago
committed by GitHub
parent
commit
98be9a8528
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 22
      .github/workflows/auto-pr.yml
  2. 7
      Directory.Packages.props
  3. 232
      LICENSE.md
  4. 101
      README.md
  5. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/en.json
  6. 18
      abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/sv.json
  7. 640
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/sv.json
  8. 256
      abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sv.json
  9. 8
      abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/sv.json
  10. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json
  11. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json
  12. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json
  13. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json
  14. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json
  15. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json
  16. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json
  17. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json
  18. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json
  19. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json
  20. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json
  21. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json
  22. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json
  23. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json
  24. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json
  25. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json
  26. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json
  27. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json
  28. 1215
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sv.json
  29. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json
  30. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json
  31. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json
  32. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json
  33. 5
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/ar.json
  34. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/cs.json
  35. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/de.json
  36. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en-GB.json
  37. 25
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json
  38. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/es.json
  39. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/fi.json
  40. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/fr.json
  41. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/hi.json
  42. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/hr.json
  43. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/hu.json
  44. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/is.json
  45. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/it.json
  46. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/nl.json
  47. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/pl-PL.json
  48. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/pt-BR.json
  49. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/ro-RO.json
  50. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/sk.json
  51. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/sl.json
  52. 269
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/sv.json
  53. 5
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/tr.json
  54. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/vi.json
  55. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/zh-Hans.json
  56. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/zh-Hant.json
  57. 9
      abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/sv.json
  58. 6
      abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/sv.json
  59. 1828
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sv.json
  60. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json
  61. 4
      common.props
  62. 4
      docs/en/Blog-Posts/2024-05 ABP Unification/post.md
  63. 15
      docs/en/cli/index.md
  64. 8
      docs/en/docs-nav.json
  65. 2
      docs/en/framework/architecture/modularity/basics.md
  66. 96
      docs/en/framework/architecture/multi-tenancy/index.md
  67. 8
      docs/en/framework/fundamentals/dynamic-claims.md
  68. BIN
      docs/en/framework/ui/angular/images/angular-advanced-entity-filters-with-custom-content-above-filter.png
  69. BIN
      docs/en/framework/ui/angular/images/angular-advanced-entity-filters-with-form.png
  70. BIN
      docs/en/framework/ui/angular/images/angular-advanced-entity-filters-without-form.png
  71. BIN
      docs/en/framework/ui/angular/images/angular-advanced-entity-filters.png
  72. BIN
      docs/en/framework/ui/angular/images/manage-profile-page-new-tab.png
  73. BIN
      docs/en/framework/ui/angular/images/manage-profile-page.png
  74. 179
      docs/en/framework/ui/angular/localization.md
  75. 4
      docs/en/framework/ui/angular/quick-start.md
  76. 2
      docs/en/framework/ui/blazor/branding.md
  77. 2
      docs/en/framework/ui/mvc-razor-pages/branding.md
  78. BIN
      docs/en/get-started/images/abp-studio-created-new-solution.png
  79. BIN
      docs/en/get-started/images/abp-studio-new-solution-dialog-additional-options-microservice.png
  80. BIN
      docs/en/get-started/images/abp-studio-new-solution-dialog-additional-options.png
  81. BIN
      docs/en/get-started/images/abp-studio-new-solution-dialog-database-configurations-efcore.png
  82. BIN
      docs/en/get-started/images/abp-studio-new-solution-dialog-database-configurations-mongo.png
  83. BIN
      docs/en/get-started/images/abp-studio-new-solution-dialog-database-provider-efcore.png
  84. BIN
      docs/en/get-started/images/abp-studio-new-solution-dialog-database-provider-mongo.png
  85. BIN
      docs/en/get-started/images/abp-studio-new-solution-dialog-mobile-framework-microservice.png
  86. BIN
      docs/en/get-started/images/abp-studio-new-solution-dialog-mobile-framework.png
  87. BIN
      docs/en/get-started/images/abp-studio-new-solution-dialog-optional-modules.png
  88. BIN
      docs/en/get-started/images/abp-studio-new-solution-dialog-public-website.png
  89. BIN
      docs/en/get-started/images/abp-studio-new-solution-dialog-solution-properties.png
  90. BIN
      docs/en/get-started/images/abp-studio-new-solution-dialog-solution-structure.png
  91. BIN
      docs/en/get-started/images/abp-studio-new-solution-dialog-ui-framework.png
  92. BIN
      docs/en/get-started/images/abp-studio-new-solution-dialog-ui-theme.png
  93. BIN
      docs/en/get-started/images/abp-studio-quick-start-application-solution-runner.png
  94. BIN
      docs/en/get-started/images/abp-studio-quick-start-browse-command.png
  95. BIN
      docs/en/get-started/images/abp-studio-quick-start-browse.png
  96. BIN
      docs/en/get-started/images/abp-studio-quick-start-example-applications-in-solution-runner.png
  97. BIN
      docs/en/get-started/images/solution-runner-public-website.png
  98. 32
      docs/en/get-started/layered-web-application.md
  99. 4
      docs/en/get-started/microservice.md
  100. 4
      docs/en/get-started/single-layer-web-application.md

22
.github/workflows/auto-pr.yml

@ -1,13 +1,13 @@
name: Merge branch rel-8.3 with rel-8.2
name: Merge branch prerel-9.0 with rel-8.3
on:
push:
branches:
- rel-8.2
- rel-8.3
permissions:
contents: read
jobs:
merge-rel-8-3-with-rel-8-2:
merge-prerel-9-0-with-rel-8-3:
permissions:
contents: write # for peter-evans/create-pull-request to create branch
pull-requests: write # for peter-evans/create-pull-request to create a PR
@ -15,22 +15,22 @@ jobs:
steps:
- uses: actions/checkout@v2
with:
ref: rel-8.3
ref: prerel-9.0
- name: Reset promotion branch
run: |
git fetch origin rel-8.2:rel-8.2
git reset --hard rel-8.2
git fetch origin rel-8.3:rel-8.3
git reset --hard rel-8.3
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3
with:
branch: auto-merge/rel-8-2/${{github.run_number}}
title: Merge branch rel-8.3 with rel-8.2
body: This PR generated automatically to merge rel-8.3 with rel-8.2. Please review the changed files before merging to prevent any errors that may occur.
branch: auto-merge/rel-8-3/${{github.run_number}}
title: Merge branch prerel-9.0 with rel-8.3
body: This PR generated automatically to merge prerel-9.0 with rel-8.3. Please review the changed files before merging to prevent any errors that may occur.
reviewers: maliming
token: ${{ github.token }}
- name: Merge Pull Request
env:
GH_TOKEN: ${{ secrets.BOT_SECRET }}
run: |
gh pr review auto-merge/rel-8-2/${{github.run_number}} --approve
gh pr merge auto-merge/rel-8-2/${{github.run_number}} --merge --auto --delete-branch
gh pr review auto-merge/rel-8-3/${{github.run_number}} --approve
gh pr merge auto-merge/rel-8-3/${{github.run_number}} --merge --auto --delete-branch

7
Directory.Packages.props

@ -48,8 +48,8 @@
<PackageVersion Include="LdapForNet" Version="2.7.15" />
<PackageVersion Include="LibGit2Sharp" Version="0.28.0" />
<PackageVersion Include="Magick.NET-Q16-AnyCPU" Version="13.4.0" />
<PackageVersion Include="MailKit" Version="4.3.0" />
<PackageVersion Include="Markdig.Signed" Version="0.33.0" />
<PackageVersion Include="MailKit" Version="4.7.1.1" />
<PackageVersion Include="Markdig.Signed" Version="0.37.0" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.4" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="8.0.4" />
<PackageVersion Include="Microsoft.AspNetCore.Authorization" Version="8.0.4" />
@ -61,7 +61,6 @@
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly.Authentication" Version="8.0.4" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="8.0.4" />
<PackageVersion Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="8.0.4" />
<PackageVersion Include="Microsoft.AspNetCore.Hosting.Abstractions" Version="2.2.0" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.4" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="8.0.4" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="8.0.4" />
@ -164,7 +163,7 @@
<PackageVersion Include="System.Security.Principal.Windows" Version="5.0.0" />
<PackageVersion Include="System.Text.Encoding.CodePages" Version="8.0.0" />
<PackageVersion Include="System.Text.Encodings.Web" Version="8.0.0" />
<PackageVersion Include="System.Text.Json" Version="8.0.0" />
<PackageVersion Include="System.Text.Json" Version="8.0.4" />
<PackageVersion Include="System.IdentityModel.Tokens.Jwt" Version="7.5.1" />
<PackageVersion Include="TimeZoneConverter" Version="6.1.0" />
<PackageVersion Include="Unidecode.NET" Version="2.1.0" />

232
LICENSE.md

@ -1,165 +1,89 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public.
The license is supplemented by the additional permissions listed below.
This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below.
0. Additional Definitions.
As used herein, "this License" refers to version 3 of the GNU Lesser
General Public License, and the "GNU GPL" refers to version 3 of the GNU
General Public License.
**0. Additional Definitions.**
As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License.
"The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below.
An "Application" is any work that makes use of an interface provided by the Library but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library.
A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version".
The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application and not on the Linked Version.
The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work.
**1. Exception to Section 3 of the GNU GPL.**
You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL.
**2. Conveying Modified Versions.**
If you modify a copy of the Library and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version:
**a)** under this License, provided that you make a good-faith effort to ensure that, in the event an Application does not supply the
function or data, the facility still operates and performs whatever part of its purpose remains meaningful, or
**b)** under the GNU GPL, with none of the additional permissions of this License is applicable to that copy.
**3. Object Code Incorporating Material from Library Header Files.**
The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such an object code under terms of your choice, provided that if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following:
**a)** Give prominent notice with each copy of the object code that the Library is used in it, and the Library and its use are covered by this License.
**b)** Accompany the object code with a copy of the GNU GPL and this license document.
**4. Combined Works.**
You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following:
**a)** Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License.
**b)** Accompany the Combined Work with a copy of the GNU GPL and this license document.
**c)** For a Combined Work that displays copyright notices during execution, including the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document.
**d)** Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this License and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.
1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version.
**e)** Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying the Corresponding Source.)
"The Library" refers to a covered work governed by this License,
other than an Application or a Combined Work as defined below.
An "Application" is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library.
A "Combined Work" is a work produced by combining or linking an
Application with the Library. The particular version of the Library
with which the Combined Work was made is also called the "Linked
Version".
The "Minimal Corresponding Source" for a Combined Work means the
Corresponding Source for the Combined Work, excluding any source code
for portions of the Combined Work that, considered in isolation, are
based on the Application, and not on the Linked Version.
The "Corresponding Application Code" for a Combined Work means the
object code and/or source code for the Application, including any data
and utility programs needed for reproducing the Combined Work from the
Application, but excluding the System Libraries of the Combined Work.
1. Exception to Section 3 of the GNU GPL.
You may convey a covered work under sections 3 and 4 of this License
without being bound by section 3 of the GNU GPL.
2. Conveying Modified Versions.
If you modify a copy of the Library, and, in your modifications, a
facility refers to a function or data to be supplied by an Application
that uses the facility (other than as an argument passed when the
facility is invoked), then you may convey a copy of the modified
version:
a) under this License, provided that you make a good faith effort to
ensure that, in the event an Application does not supply the
function or data, the facility still operates, and performs
whatever part of its purpose remains meaningful, or
b) under the GNU GPL, with none of the additional permissions of
this License applicable to that copy.
3. Object Code Incorporating Material from Library Header Files.
The object code form of an Application may incorporate material from
a header file that is part of the Library. You may convey such object
code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following:
a) Give prominent notice with each copy of the object code that the
Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the object code with a copy of the GNU GPL and this license
document.
4. Combined Works.
You may convey a Combined Work under terms of your choice that,
taken together, effectively do not restrict modification of the
portions of the Library contained in the Combined Work and reverse
engineering for debugging such modifications, if you also do each of
the following:
a) Give prominent notice with each copy of the Combined Work that
the Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the Combined Work with a copy of the GNU GPL and this license
document.
c) For a Combined Work that displays copyright notices during
execution, include the copyright notice for the Library among
these notices, as well as a reference directing the user to the
copies of the GNU GPL and this license document.
d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this
License, and the Corresponding Application Code in a form
suitable for, and under terms that permit, the user to
recombine or relink the Application with a modified version of
the Linked Version to produce a modified Combined Work, in the
manner specified by section 6 of the GNU GPL for conveying
Corresponding Source.
1) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (a) uses at run time
a copy of the Library already present on the user's computer
system, and (b) will operate properly with a modified version
of the Library that is interface-compatible with the Linked
Version.
e) Provide Installation Information, but only if you would otherwise
be required to provide such information under section 6 of the
GNU GPL, and only to the extent that such information is
necessary to install and execute a modified version of the
Combined Work produced by recombining or relinking the
Application with a modified version of the Linked Version. (If
you use option 4d0, the Installation Information must accompany
the Minimal Corresponding Source and Corresponding Application
Code. If you use option 4d1, you must provide the Installation
Information in the manner specified by section 6 of the GNU GPL
for conveying Corresponding Source.)
5. Combined Libraries.
You may place library facilities that are a work based on the
Library side by side in a single library together with other library
facilities that are not Applications and are not covered by this
License, and convey such a combined library under terms of your
choice, if you do both of the following:
a) Accompany the combined library with a copy of the same work based
on the Library, uncombined with any other library facilities,
conveyed under the terms of this License.
b) Give prominent notice with the combined library that part of it
is a work based on the Library, and explaining where to find the
accompanying uncombined form of the same work.
6. Revised Versions of the GNU Lesser General Public License.
The Free Software Foundation may publish revised and/or new versions
of the GNU Lesser General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the
Library as you received it specifies that a certain numbered version
of the GNU Lesser General Public License "or any later version"
applies to it, you have the option of following the terms and
conditions either of that published version or of any later version
published by the Free Software Foundation. If the Library as you
received it does not specify a version number of the GNU Lesser
General Public License, you may choose any version of the GNU Lesser
General Public License ever published by the Free Software Foundation.
If the Library as you received it specifies that a proxy can decide
whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.
You may place library facilities that are work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License and convey such a combined library under the terms of your choice if you do both of the following:
**a)** Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License.
**b)** Give prominent notice with the combined library that part of it is a work based on the Library and explains where to find the accompanying uncombined form of the same work.
**6. Revised Versions of the GNU Lesser General Public License.**
The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received, it does not specify a version number of the GNU Lesser
General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library.

101
README.md

@ -1,22 +1,18 @@
# ABP Framework
![build and test](https://img.shields.io/github/actions/workflow/status/abpframework/abp/build-and-test.yml?branch=dev&style=flat-square)
[![codecov](https://codecov.io/gh/abpframework/abp/branch/dev/graph/badge.svg?token=jUKLCxa6HF)](https://codecov.io/gh/abpframework/abp)
[![NuGet](https://img.shields.io/nuget/v/Volo.Abp.Core.svg?style=flat-square)](https://www.nuget.org/packages/Volo.Abp.Core)
[![NuGet (with prereleases)](https://img.shields.io/nuget/vpre/Volo.Abp.Core.svg?style=flat-square)](https://www.nuget.org/packages/Volo.Abp.Core)
[![MyGet (nightly builds)](https://img.shields.io/myget/abp-nightly/vpre/Volo.Abp.svg?style=flat-square)](https://docs.abp.io/en/abp/latest/Nightly-Builds)
[![NuGet Download](https://img.shields.io/nuget/dt/Volo.Abp.Core.svg?style=flat-square)](https://www.nuget.org/packages/Volo.Abp.Core)
[![Code of Conduct](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg)](https://github.com/abpframework/abp/blob/dev/CODE_OF_CONDUCT.md)
[![CLA Signed](https://cla-assistant.io/readme/badge/abpframework/abp)](https://cla-assistant.io/abpframework/abp)
[![ABP Discord server](https://img.shields.io/discord/951497912645476422?label=Discord)](https://discord.gg/abp)
ABP Framework is a complete **infrastructure** based on **ASP.NET Core** to create **modern web applications** and **APIs** by following the software development **best practices** and the **latest technologies**. Check out https://abp.io
![build and test](https://img.shields.io/github/actions/workflow/status/abpframework/abp/build-and-test.yml?branch=dev&style=flat-square) 🔹 [![codecov](https://codecov.io/gh/abpframework/abp/branch/dev/graph/badge.svg?token=jUKLCxa6HF)](https://codecov.io/gh/abpframework/abp) 🔹 [![NuGet](https://img.shields.io/nuget/v/Volo.Abp.Core.svg?style=flat-square)](https://www.nuget.org/packages/Volo.Abp.Core) 🔹 [![NuGet (with prereleases)](https://img.shields.io/nuget/vpre/Volo.Abp.Core.svg?style=flat-square)](https://www.nuget.org/packages/Volo.Abp.Core) 🔹 [![MyGet (nightly builds)](https://img.shields.io/myget/abp-nightly/vpre/Volo.Abp.svg?style=flat-square)](https://docs.abp.io/en/abp/latest/Nightly-Builds) 🔹
[![NuGet Download](https://img.shields.io/nuget/dt/Volo.Abp.Core.svg?style=flat-square)](https://www.nuget.org/packages/Volo.Abp.Core) 🔹 [![Code of Conduct](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg)](https://github.com/abpframework/abp/blob/dev/CODE_OF_CONDUCT.md) 🔹 [![CLA Signed](https://cla-assistant.io/readme/badge/abpframework/abp)](https://cla-assistant.io/abpframework/abp) 🔹 [![Discord Shield](https://discord.com/api/guilds/951497912645476422/widget.png?style=shield)](https://discord.gg/abp)
ABP Framework is a complete **infrastructure** based on **ASP.NET Core** that creates **modern web applications** and **APIs** by following the software development **best practices** and the **latest technologies**.
[![ABP Platform](https://github.com/abpframework/abp/assets/9526587/47531496-4088-406d-9c69-63cb0ffec2ba)](https://abp.io)
## Getting Started
- [Quick Start](https://docs.abp.io/en/abp/latest/Tutorials/Todo/Index) is a single-part, quick-start tutorial to build a simple application with the ABP Framework. Start with this tutorial if you want to quickly understand how ABP works.
- [Getting Started guide](https://docs.abp.io/en/abp/latest/Getting-Started) can be used to create and run ABP based solutions with different options and details.
- [Web Application Development Tutorial](https://docs.abp.io/en/abp/latest/Tutorials/Part-1) is a complete tutorial to develop a full stack web application with all aspects of a real-life solution.
- [Quick Start](https://docs.abp.io/en/abp/latest/Tutorials/Todo/Index) is a single-part, quick-start tutorial to build a simple application with the ABP Framework. Start with this tutorial if you want to understand how ABP works quickly.
- [Getting Started guide](https://docs.abp.io/en/abp/latest/Getting-Started) can be used to create and run ABP-based solutions with different options and details.
- [Web Application Development Tutorial](https://docs.abp.io/en/abp/latest/Tutorials/Part-1) is a complete tutorial on developing a full-stack web application with all aspects of a real-life solution.
### Quick Start
@ -34,28 +30,26 @@ Create a new solution:
> See the [CLI documentation](https://docs.abp.io/en/abp/latest/CLI) for all available options.
### UI Framework Options
<img width="500" src="docs/en/images/ui-options.png">
### Database Provider Options
<img width="500" src="docs/en/images/db-options.png">
## The Book: Mastering ABP Framework
Written by the creator of ABP Framework, this book will help you to gain a complete understanding of the ABP Framework and modern web application development techniques.
* [Buy on Amazon](https://www.amazon.com/gp/product/B097Z2DM8Q)
* [Buy on Packt Publishing](https://www.packtpub.com/product/mastering-abp-framework/9781801079242)
* [More details about the book](https://abp.io/books/mastering-abp-framework)
![book-mastering-abp-framework](docs/en/images/book-mastering-abp-framework.png)
## What ABP Provides?
ABP provides a **full stack developer experience**.
### Architecture
<img src="docs/en/images/ddd-microservice-simple.png">
@ -64,30 +58,48 @@ ABP offers a complete, **modular** and **layered** software architecture based o
ABP Framework is suitable for **[microservice solutions](https://docs.abp.io/en/abp/latest/Microservice-Architecture)** as well as monolithic applications.
### Infrastructure
There are a lot of features provided by the ABP Framework to achieve real world scenarios easier, like [Event Bus](https://docs.abp.io/en/abp/latest/Event-Bus), [Background Job System](https://docs.abp.io/en/abp/latest/Background-Jobs), [Audit Logging](https://docs.abp.io/en/abp/latest/Audit-Logging), [BLOB Storing](https://docs.abp.io/en/abp/latest/Blob-Storing), [Data Seeding](https://docs.abp.io/en/abp/latest/Data-Seeding), [Data Filtering](https://docs.abp.io/en/abp/latest/Data-Filtering), etc.
There are a lot of features provided by the ABP Framework to achieve real-world scenarios easier, like [Event Bus](https://docs.abp.io/en/abp/latest/Event-Bus), [Background Job System](https://docs.abp.io/en/abp/latest/Background-Jobs), [Audit Logging](https://docs.abp.io/en/abp/latest/Audit-Logging), [BLOB Storing](https://docs.abp.io/en/abp/latest/Blob-Storing), [Data Seeding](https://docs.abp.io/en/abp/latest/Data-Seeding), [Data Filtering](https://docs.abp.io/en/abp/latest/Data-Filtering), etc.
### Cross-Cutting Concerns
ABP also simplifies (and even automates wherever possible) cross-cutting concerns and common non-functional requirements like [Exception Handling](https://docs.abp.io/en/abp/latest/Exception-Handling), [Validation](https://docs.abp.io/en/abp/latest/Validation), [Authorization](https://docs.abp.io/en/abp/latest/Authorization), [Localization](https://docs.abp.io/en/abp/latest/Localization), [Caching](https://docs.abp.io/en/abp/latest/Caching), [Dependency Injection](https://docs.abp.io/en/abp/latest/Dependency-Injection), [Setting Management](https://docs.abp.io/en/abp/latest/Settings), etc.
### Cross Cutting Concerns
ABP also simplifies (and even automates wherever possible) cross cutting concerns and common non-functional requirements like [Exception Handling](https://docs.abp.io/en/abp/latest/Exception-Handling), [Validation](https://docs.abp.io/en/abp/latest/Validation), [Authorization](https://docs.abp.io/en/abp/latest/Authorization), [Localization](https://docs.abp.io/en/abp/latest/Localization), [Caching](https://docs.abp.io/en/abp/latest/Caching), [Dependency Injection](https://docs.abp.io/en/abp/latest/Dependency-Injection), [Setting Management](https://docs.abp.io/en/abp/latest/Settings), etc.
### Application Modules
ABP is a modular framework and the Application Modules provide **pre-built application functionalities**;
- [**Account**](https://docs.abp.io/en/abp/latest/Modules/Account): Provides UI for the account management and allows user to login/register to the application.
- **[Identity](https://docs.abp.io/en/abp/latest/Modules/Identity)**: Manages organization units, roles, users and their permissions, based on the Microsoft Identity library.
- **[Identity](https://docs.abp.io/en/abp/latest/Modules/Identity)**: Manages organization units, roles, users and their permissions based on the Microsoft Identity library.
- [**OpenIddict**](https://docs.abp.io/en/abp/latest/Modules/OpenIddict): Integrates to OpenIddict.
- [**Tenant Management**](https://docs.abp.io/en/abp/latest/Modules/Tenant-Management): Manages tenants for a [multi-tenant](https://docs.abp.io/en/abp/latest/Multi-Tenancy) (SaaS) application.
See the [Application Modules](https://docs.abp.io/en/abp/latest/Modules/Index) document for all pre-built modules.
### Startup Templates
The [Startup templates](https://docs.abp.io/en/abp/latest/Startup-Templates/Index) are pre-built Visual Studio solution templates. You can create your own solution based on these templates to **immediately start your development**.
## ABP Community
## Mastering ABP Framework Book
This book will help you to gain a complete understanding of the ABP Framework and modern web application development techniques. It is written by the creator and team lead of the ABP Framework. You can buy from [Amazon](https://www.amazon.com/gp/product/B097Z2DM8Q) or [Packt Publishing](https://www.packtpub.com/product/mastering-abp-framework/9781801079242). Find further info about the book at [abp.io/books/mastering-abp-framework](https://abp.io/books/mastering-abp-framework).
![book-mastering-abp-framework](docs/en/images/book-mastering-abp-framework.png)
## The Community
### ABP Community Web Site
@ -103,28 +115,31 @@ See the [sample projects](https://docs.abp.io/en/abp/latest/Samples/Index) built
### Want to Contribute?
ABP is a community-driven open source project. See [the contribution guide](https://docs.abp.io/en/abp/latest/Contribution/Index) if you want to be a part of this project.
ABP is a community-driven open-source project. See [the contribution guide](https://docs.abp.io/en/abp/latest/Contribution/Index) if you want to participate in this project.
## Official Links
* <a href="https://abp.io/" target="_blank">Main Web Site</a>
* <a href="https://abp.io/get-started" target="_blank">Get Started</a>
* <a href="https://abp.io/features" target="_blank">Features</a>
* <a href="https://docs.abp.io/" target="_blank">Documentation</a>
* <a href="https://docs.abp.io/en/abp/latest/Samples/Index" target="_blank">Samples</a>
* <a href="https://blog.abp.io/" target="_blank">Blog</a>
* <a href="https://community.abp.io/" target="_blank">Community</a>
* <a href="https://stackoverflow.com/questions/tagged/abp" target="_blank">Stack overflow</a>
* <a href="https://twitter.com/abpframework" target="_blank">Twitter</a>
* [Home Website](https://abp.io)
* [Get Started](https://abp.io/get-started)
* [Features](https://abp.io/features)
* [Documents](https://docs.abp.io/)
* [Samples](https://docs.abp.io/en/abp/latest/Samples/Index)
* [Blog](https://blog.abp.io/)
* [Community](https://community.abp.io/)
* [Stackoverflow](https://stackoverflow.com/questions/tagged/abp)
* [Twitter](https://twitter.com/abpframework)
## Support ABP
## Support the ABP Framework
GitHub repository stars are an important indicator of popularity and the size of the community. If you like ABP Framework, support us by clicking the star :star: on the repository.
Love ABP Framework? **Please give a star** to this repository :star:
## Discord Channel
You can use this link to join the ABP Community Discord Server: https://discord.gg/abp
## Discord Server
## ABP Commercial
We have a Discord server where you can chat with other ABP users. Share your ideas, report technical issues, showcase your creations, share the tips that worked for you and catch up with the latest news and announcements about ABP Framework. Join 👉 https://discord.gg/abp.
See also [ABP Commercial](https://commercial.abp.io/) if you are looking for pre-built application modules, professional themes, code generation tooling and premium support for the ABP Framework.

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

@ -12,6 +12,7 @@
"CommunityWebSite": "ABP community website",
"ManageAccount": "My Account | ABP.IO",
"ManageYourProfile": "Manage your profile",
"ReturnToApplication": "Return to application"
"ReturnToApplication": "Return to application",
"IdentityUserNotAvailable:Deleted": "This email address is not available. Reason: Already deleted."
}
}

18
abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/sv.json

@ -0,0 +1,18 @@
{
"culture": "sv",
"texts": {
"Account": "ABP-konto - Logga in och registrera dig | ABP.IO",
"Welcome": "Välkommen",
"UseOneOfTheFollowingLinksToContinue": "Använd någon av följande länkar för att fortsätta",
"FrameworkHomePage": "Ramverkets startsida",
"FrameworkDocumentation": "Dokumentation av ramverk",
"OfficialBlog": "Officiell blogg",
"CommercialHomePage": "Kommersiell hemsida",
"CommercialSupportWebSite": "Webbplats för kommersiellt stöd",
"CommunityWebSite": "ABP:s gemensamma webbplats",
"ManageAccount": "Mitt konto | ABP.IO",
"ManageYourProfile": "Hantera din profil",
"ReturnToApplication": "Återgå till ansökan",
"IdentityUserNotAvailable:Deleted": "Den här e-postadressen är inte tillgänglig. Anledning till detta: Redan raderad."
}
}

640
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/sv.json

@ -0,0 +1,640 @@
{
"culture": "sv",
"texts": {
"Permission:Organizations": "Organisationer",
"Permission:Manage": "Hantera organisationer",
"Permission:DiscountRequests": "Rabattförfrågningar",
"Permission:DiscountManage": "Hantera rabattförfrågningar",
"Permission:Disable": "Avaktivera",
"Permission:Enable": "Aktivera",
"Permission:EnableSendEmail": "Aktivera skicka e-post",
"Permission:SendEmail": "Skicka e-post",
"Permission:NpmPackages": "NPM-paket",
"Permission:NugetPackages": "Nuget-paket",
"Permission:Maintenance": "Underhåll",
"Permission:Maintain": "Behålla",
"Permission:ClearCaches": "Rensa cacheminnen",
"Permission:Modules": "Moduler",
"Permission:Packages": "Paket",
"Permission:Edit": "Redigera",
"Permission:Delete": "Radera",
"Permission:Create": "Skapa",
"Permission:Accounting": "Redovisning",
"Permission:Accounting:Quotation": "Offert",
"Permission:Accounting:Invoice": "Faktura",
"Menu:Organizations": "Organisationer",
"Menu:Accounting": "Redovisning",
"Menu:Packages": "Paket",
"Menu:DiscountRequests": "Rabattförfrågningar",
"NpmPackageDeletionWarningMessage": "Detta NPM-paket kommer att raderas. Kan du bekräfta det?",
"NugetPackageDeletionWarningMessage": "Detta Nuget-paket kommer att raderas. Kan du bekräfta det?",
"ModuleDeletionWarningMessage": "Denna modul kommer att raderas. Kan du bekräfta det?",
"Name": "Namn",
"DisplayName": "Visa namn",
"ShortDescription": "Kort beskrivning",
"NameFilter": "Namn",
"CreationTime": "Skapelsetid",
"IsPro": "Är pro",
"IsFreeToActiveLicenseOwners": "Gratis för licensinnehavare",
"ShowOnModuleList": "Visa på modullistan",
"EfCoreConfigureMethodName": "Konfigurera metodnamn",
"IsProFilter": "Är pro",
"ApplicationType": "Typ av applikation",
"Target": "Mål",
"TargetFilter": "Mål",
"ModuleClass": "Modul klass",
"NugetPackageTarget.DomainShared": "Delad domän",
"NugetPackageTarget.Domain": "Domän",
"NugetPackageTarget.Application": "Tillämpning",
"NugetPackageTarget.ApplicationContracts": "Ansökan Kontrakt",
"NugetPackageTarget.HttpApi": "Http Api",
"NugetPackageTarget.HttpApiClient": "Http Api-klient",
"NugetPackageTarget.Web": "Webb",
"NugetPackageTarget.EntityFrameworkCore": "DeleteAllEntityFramework Core",
"NugetPackageTarget.MongoDB": "MongoDB",
"Edit": "Redigera",
"Delete": "Radera",
"Refresh": "Uppdatera",
"NpmPackages": "NPM-paket",
"NugetPackages": "Nuget-paket",
"NpmPackageCount": "Antal NPM-paket",
"NugetPackageCount": "Antal Nuget-paket",
"Module": "Moduler",
"ModuleInfo": "Modulinformation",
"CreateANpmPackage": "Skapa ett NPM-paket",
"CreateAModule": "Skapa en modul",
"CreateANugetPackage": "Skapa ett Nuget-paket",
"AddNew": "Lägg till ny",
"PackageAlreadyExist{0}": "\"{0}\"-paketet är redan tillagt.",
"ModuleAlreadyExist{0}": "\"{0}\"-modulen är redan tillagd.",
"ClearCache": "Rensa cache",
"SuccessfullyCleared": "Framgångsrikt rensad",
"Menu:NpmPackages": "NPM-paket",
"Menu:Modules": "Moduler",
"Menu:Maintenance": "Underhåll",
"Menu:NugetPackages": "NuGet-paket",
"CreateAnOrganization": "Skapa en organisation",
"Organizations": "Organisationer",
"LongName": "Långt namn",
"LicenseType": "Typ av licens",
"MissingLicenseTypeField": "Fältet för licenstyp är obligatoriskt!",
"LicenseStartTime": "Licensens starttid",
"LicenseEndTime": "Licensens sluttid",
"AllowedDeveloperCount": "Tillåtet antal utvecklare",
"UserNameOrEmailAddress": "Användarnamn eller e-postadress",
"AddOwner": "Lägg till ägare",
"UserName": "Användarnamn",
"Email": "E-post",
"Developers": "Utvecklare",
"AddDeveloper": "Lägg till utvecklare",
"Create": "Skapa",
"UserNotFound": "Användaren hittades inte",
"{0}WillBeRemovedFromDevelopers": "{0} Kommer att tas bort från utvecklare, bekräftar du?",
"{0}WillBeRemovedFromOwners": "{Kommer att tas bort från ägarna, bekräftar du?",
"{0}WillBeRemovedFromMembers": "{0} Kommer att tas bort från medlemmar, bekräftar du?",
"Computers": "Datorer",
"UniqueComputerId": "Unikt dator-ID",
"LastSeenDate": "Datum för senaste observation",
"{0}Computer{1}WillBeRemovedFromRecords": "Dator för {0} ({1}) kommer att tas bort från register",
"OrganizationDeletionWarningMessage": "Organisationen kommer att raderas",
"DeletingLastOwnerWarningMessage": "En organisation måste ha minst en ägare! Därför kan du inte ta bort den här ägaren",
"This{0}AlreadyExistInThisOrganization": "Denna {0} finns redan i denna organisation",
"AreYouSureYouWantToDeleteAllComputers": "Är du säker på att du vill radera alla datorer?",
"DeleteAll": "Radera alla",
"DoYouWantToCreateNewUser": "Vill du skapa en ny användare?",
"MasterModules": "Master-moduler",
"OrganizationName": "Organisationens namn",
"CreationDate": "Datum för skapande",
"LicenseStartDate": "Licensens startdatum",
"LicenseEndDate": "Licensens slutdatum",
"OrganizationNamePlaceholder": "Organisationens namn...",
"TotalQuestionCountPlaceholder": "Totalt antal frågor...",
"RemainingQuestionCountPlaceholder": "Kvarstående frågor är...",
"LicenseTypePlaceholder": "Licenstyp...",
"CreationDatePlaceholder": "Datum för skapande...",
"LicenseStartDatePlaceholder": "Licensens startdatum...",
"LicenseEndDatePlaceholder": "Licensens slutdatum...",
"UsernameOrEmail": "Användarnamn eller e-post",
"UsernameOrEmailPlaceholder": "Användarnamn eller e-post...",
"Member": "Ledamot",
"PurchaseOrderNo": "Inköpsorder nr",
"QuotationDate": "Datum för offert",
"CompanyName": "Företagets namn",
"CompanyAddress": "Företagets adress",
"Price": "Pris",
"DiscountText": "Rabatt text",
"DiscountQuantity": "Rabatt kvantitet",
"DiscountPrice": "Rabatterat pris",
"Quotation": "Offert",
"ExtraText": "Extra text",
"ExtraAmount": "Extra belopp",
"DownloadQuotation": "Ladda ner offert",
"Invoice": "Faktura",
"TaxNumber": "Skattenummer",
"InvoiceNumber": "Fakturanummer",
"InvoiceDate": "Fakturadatum",
"InvoiceNote": "Fakturanota",
"Quantity": "Kvantitet",
"AddProduct": "Lägg till produkt",
"AddProductWarning": "Du måste lägga till produkt!",
"TotalPrice": "Totalt pris",
"Generate": "Generera",
"MissingQuantityField": "Kvantitetsfältet är obligatoriskt!",
"MissingPriceField": "Prisfältet är obligatoriskt!",
"CodeUsageStatus": "Status",
"Country": "Land",
"DeveloperCount": "Antal utvecklare",
"RequestCode": "Begär kod",
"WebSite": "Webbplats",
"GithubUsername": "Användarnamn för Github",
"PhoneNumber": "Telefonnummer",
"ProjectDescription": "Projektbeskrivning",
"Referrer": "Hänvisare",
"DiscountRequests": "Begäran om rabatt",
"Copylink": "Kopiera länk",
"Disable": "Avaktivera",
"Enable": "Aktivera",
"EnableSendEmail": "Aktivera skicka e-post",
"SendEmail": "Skicka e-post",
"SuccessfullyDisabled": "Framgångsrikt avaktiverad",
"SuccessfullyEnabled": "Framgångsrikt aktiverad",
"EmailSent": "Skickad e-post",
"SuccessfullySent": "Framgångsrikt skickat",
"SuccessfullyDeleted": "Framgångsrikt raderad",
"DiscountRequestDeletionWarningMessage": "Begäran om rabatt kommer att raderas",
"BusinessType": "Typ av verksamhet",
"TotalQuestionCount": "Totalt antal frågor",
"RemainingQuestionCount": "Antal återstående frågor",
"TotalQuestionMustBeGreaterWarningMessage": "TotalQuestionCount måste vara större än RemainingQuestionCount !",
"QuestionCountsMustBeGreaterThanZero": "TotalQuestionCount och RemainingQuestionCount måste vara noll eller större än noll!",
"UnlimitedQuestionCount": "Obegränsat antal frågor",
"Notes": "Anteckningar",
"Menu:Community": "Gemenskap",
"Menu:Posts": "Inlägg",
"Wait": "Vänta",
"Approve": "Godkänna",
"Reject": "Avvisa",
"Details": "Detaljer",
"Url": "Url",
"Title": "Titel",
"ContentSource": "Källa för innehåll",
"Status": "Status",
"ReadPost": "Läs inlägget",
"PostHasBeenWaiting": "Posten har väntat",
"PostHasBeenApproved": "Inlägget har godkänts",
"PostHasBeenRejected": "Inlägget har avvisats",
"Permission:Community": "Gemenskap",
"Permission:CommunityPost": "Post",
"Link": "Link",
"Enum:ContentSource:0": "Github",
"Enum:ContentSource:1": "Extern",
"Enum:Status:0": "Väntar på",
"Enum:Status:1": "Avvisad",
"Enum:Status:2": "Godkänd",
"Summary": "Sammanfattning",
"AuthorName": "Författarens namn",
"CoverImage": "Omslagsbild",
"RemoveCacheConfirmationMessage": "Är du säker på att du tar bort cacheminnet för \"{0}\" -posten?",
"SuccessfullyRemoved": "Framgångsrikt rensad",
"RemoveCache": "Ta bort cachen",
"Language": "Språk",
"Optional": "Valfritt",
"CreatePostLanguageInfo": "Det språk som inlägget är skrivet på",
"Enum:ContentSource:2": "Videoinlägg",
"VideoPreview": "Förhandsgranskning av video",
"VideoPreviewErrorMessage": "Angiven video-URL kunde inte hämtas från Youtube. Detta kan orsakas av att videon är privat eller att den angivna webbadressen inte är tillgänglig.",
"DeleteCoverImage": "Ta bort omslagsbild",
"DeleteCoverImageConfirmationMessage": "Är du säker att du vill ta bort omslagsbilden för \"{0}\"?",
"DeleteCoverImageSuccessMessage": "Omslagsbilden har raderats framgångsrikt",
"PaymentsOf": "Betalningar av",
"ShowPaymentsOfOrganization": "Betalningar",
"Date": "Datum",
"Products": "Produkter",
"TotalAmount": "Totalt belopp",
"Currency": "Valuta",
"Gateway": "Gateway",
"State": "Stat",
"FailReason": "Orsak till misslyckande",
"ReIndexAllPosts": "Återindexera alla inlägg",
"ReIndexAllPostsConfirmationMessage": "Är du säker på att du vill indexera om alla inlägg?",
"SuccessfullyReIndexAllPosts": "Alla inlägg har framgångsrikt indexerats om.",
"Permission:FullSearch": "Fulltextsökning",
"Menu:CliAnalytics": "CLI Analys",
"Menu:Reports": "Dynamiska rapporter",
"TemplateName": "Mallens namn",
"TemplateVersion": "Mallversion",
"DatabaseProvider": "Databasleverantör",
"IsTiered": "Är Tiered",
"ProjectName": "Projektets namn",
"Username": "Användarens namn",
"Tool": "Verktyg",
"Command": "Kommando",
"UiFramework": "Ramverk för användargränssnitt",
"Options": "Alternativ",
"CliAnalytics": "Cli Analytics",
"Reports": "Dynamiska rapporter",
"Permission:CliAnalyticses": "Cli Analyticses",
"Permission:CliAnalytics": "Cli Analytics",
"Permission:Reports": "Rapporter",
"Search": "Sök",
"ClearFilter": "Rensa filter",
"LicensePrivateKey": "Licens privat nyckel",
"LicensePublicKey": "Licens offentlig nyckel",
"ApiKey": "NuGet API-nyckel",
"ShowInvoiceRequestsOfOrganization": "Fakturaförfrågningar",
"ShowQuestionsOfOrganization": "Frågor och svar",
"Question": "Fråga",
"Open": "Öppna",
"Questions": "Frågor och svar",
"InvoiceRequests": "Fakturaförfrågningar",
"Address": "Adress",
"TaxNo": "Skatt Nej",
"Permission:InvoiceRequest": "Fakturabegäran",
"Permission:Question": "Fråga",
"AddNoteSuccessMessage": "Not framgångsrikt tillagd",
"NameSurname": "Namn Efternamn",
"Note": "Notera",
"Add": "Lägg till",
"ProjectDownloads": "Projektnedladdningar",
"ShowProjectDownloadsOfOrganization": "Projektnedladdningar",
"ShowAuditLogsOfOrganization": "Granskningsloggar",
"Enum:EntityChangeType:0": "Skapad",
"Enum:EntityChangeType:1": "Uppdaterad",
"Enum:EntityChangeType:2": "Borttagen",
"TenantId": "Hyresgäst-ID",
"ChangeTime": "Ändra tid",
"EntityTypeFullName": "Fullständigt namn på entitetstyp",
"AuditLogsFor{0}Organization": "Granskningsloggar för organisationen \"{0}\"",
"Permission:EntityChange": "Förändring av enhet",
"Permission:ProjectDownload": "Projekt Ladda ner",
"Permission:PaymentRequest": "Begäran om betalning",
"CreatorEmailAddress": "E-postadress till skaparen",
"EmailSendDate": "Datum för e-postutskick",
"PaymentRequestsFor{0}Organization": "Betalningsförfrågningar för \"{0}\" organisation",
"PaymentDetails": "Betalningsinformation",
"PaymentProduct": "Betalning Produkt",
"ProductName": "Produktens namn",
"Code": "Kod",
"GenerateInvoice": "Generera faktura",
"ExportOrganizationsToExcel": "Exportera till Excel",
"ThisExtensionIsNotAllowed": "Denna förlängning är inte tillåten.",
"TheFileIsTooLarge": "Filen är för stor!",
"PostDeletionConfirmationMessage": "Är du säker på att du vill radera det här inlägget?",
"ChooseCoverImage": "Välj en omslagsbild...",
"Menu:Quotation": "Offert",
"Menu:Invoice": "Faktura",
"Menu:Quotation/Invoice": "Offert/faktura",
"Menu:PaymentRequests": "Betalningsförfrågningar",
"Permission:PaymentRequests": "Betalningsförfrågningar",
"PaymentRequests": "Betalningsförfrågningar",
"Creator": "Skapare",
"ExtraProperties": "Extra egenskaper",
"Organization": "Organisation",
"Waiting": "Väntar på",
"Completed": "Färdigställd",
"Failed": "Misslyckades",
"PaymentRequestDeletionWarningMessage": "Denna betalningsbegäran kommer att raderas. Kan du bekräfta det?",
"Payment": "Betalning",
"AddPayment": "Lägg till betalning",
"Enum:PurchaseType:1": "Ny licens",
"Enum:PurchaseType:2": "Licensförlängning",
"Enum:PurchaseType:3": "Uppgradering av licens",
"Enum:PurchaseType:4": "Ytterligare utvecklare",
"LicenceType": "Typ av licens",
"PurchaseType": "Typ av köp",
"ReceiptNo": "Kvitto nr",
"PaymentTime": "Betalningstid",
"ProductPrice": "Produktens pris",
"AdditionalDeveloper": "Ytterligare utvecklare",
"ThisPaymentHasBeenAlreadyUsed": "Denna betalning har redan använts",
"PaymentTimeCannotBeFutureTime": "Betalningstid kan inte vara en framtida tid!",
"SaveAndDownload": "Spara och ladda ner",
"BillingInfo": "Faktureringsinformation",
"DeleteInvoice": "Ta bort faktura",
"PaymentStateSetTo": "Betalningsstatus satt till {0}",
"ChangeState": "Ändra tillstånd",
"Permission:TrialLicense": "Trial-licens",
"Menu:TrialLicenses": "Preliminära licenser",
"TrialLicenses": "Preliminära licenser",
"UserNameFilter": "Användarnamn",
"TrialLicenseStatusFilter": "Status",
"TrialLicenseStartDateFilter": "Startdatum",
"TrialLicenseEndDateFilter": "Slutdatum",
"FirstName": "Förnamn",
"LastName": "Efternamn",
"StartDate": "Startdatum",
"EndDate": "Slutdatum",
"PurchasedDate": "Inköpsdatum",
"OrganizationDetail": "Organisation Detalj",
"TrialLicenseStatus": "Status för provlicens",
"TrialLicenseDetail": "Trial licens detalj",
"AcceptsMarketingCommunications": "Marknadskommunikation",
"PurposeOfUsage": "Syfte med användningen",
"CountryName": "Landets namn",
"CompanySize": "Företagets storlek",
"DetailTrialLicense": "Detaljer",
"Requested": "Begärd",
"Activated": "Aktiverad",
"PurchasedToNormalLicense": "Köpte",
"Expired": "Utgått",
"TrialLicenseDeletionWarningMessage": "Är du säker på att du vill ta bort testlicensen? Testlicens, organisation och supportkonton kommer att raderas!",
"LicenseCategoryFilter": "Licenskategori",
"Permission:SendWelcomeEmail": "Skicka välkomstmejl",
"SendWelcomeEmail": "Skicka välkomstmejl",
"SendWelcomeEmailWarningMessage": "Är du säker på att du vill skicka ett välkomstmeddelande till organisationens medlemmar?",
"SendWelcomeEmailSuccessMessage": "Välkomstmejl skickat framgångsrikt!",
"Activate": "Aktivera",
"ActivateTrialLicenseWarningMessage": " När du aktiverar en testlicens skickas ett välkomstmeddelande till användaren. Vill du aktivera det?",
"ActivateTrialLicenseSuccessMessage": "Aktiverades framgångsrikt och välkomstmeddelandet skickades till organisationsmedlemmarna.",
"PaymentRequestId": "Betalningsbegäran Id",
"AdditionalDeveloperCount": "Ytterligare antal utvecklare",
"LicensePrice": "Licenspris",
"PurchaseDate": "Köpdatum",
"IsAbpBookDownloaded": "Mastering ABP Book nedladdad?",
"IsMasteringAbpBookDownloadEnabled": "ABP Book nedladdning aktiverad",
"Permission:Accounting:CustomPaymentLinkGenerator": "Anpassad betalningslänk",
"CustomPaymentLink": "Anpassad betalningslänk",
"Menu:CustomPaymentLink": "Anpassad betalningslänk",
"Amount": "Belopp",
"GenerateCustomPaymentLink": "Generera anpassad betalningslänk",
"GeneratedPaymentLink": "Genererad betalningslänk",
"CopyText": "Kopiera text",
"Permission:CommunityEvents": "Händelser",
"Menu:Events": "Händelser",
"Events": "Händelser",
"EventType": "Typ av händelse",
"Number": "Antal",
"RegistrationURL": "URL för registrering",
"URL": "URL",
"EventDeletionConfirmationMessage": "Är du säker på att du vill ta bort den här händelsen?",
"Enum:EventType:0": "Samtal med gemenskapen",
"CreateAnEvent": "Skapa ett evenemang",
"Permission:CommunitySpeakers": "Högtalare",
"CreateASpeaker": "Skapa en högtalare",
"Speakers": "Högtalare",
"Image": "Bild",
"GithubURL": "URL till Github",
"SpeakerDeletionConfirmationMessage": "Är du säker att du vill ta bort den här högtalaren?",
"Menu:Speakers": "Högtalare",
"ChooseSpeakerImage": "Välj en högtalarbild...",
"SpeakerImage": "Bild på högtalare",
"AddSpeaker": "Lägg till högtalare",
"ShowPurchaseItemsOfOrganizations": "Köp av föremål",
"Enum:OrganizationPurchaseState:0": "Ej levererad",
"Enum:OrganizationPurchaseState:1": "Levereras",
"PurchaseItems": "Köp av föremål",
"SuccessfullyUpdated": "Framgångsrikt uppdaterad",
"SuccessfullyAdded": "Framgångsrikt tillagt",
"PurchaseState": "Status för köp",
"ShowBetweenDayCount": "Visa mellan dagarna",
"PurchaseOrder": "Inköpsorder",
"ShowCreateInvoiceOfOrganization": "Skapa faktura",
"ShowCreateQuotationOfOrganization": "Skapa offert/faktura",
"BookDiscounts": "Boka rabatter",
"Permission:BookDiscount": "Boka rabatt",
"Menu:BookDiscounts": "Boka rabatter",
"BookType": "Typ av bok",
"PurchasePlatform": "Plattform för inköp",
"StartTime": "Starttid",
"EndTime": "Sluttid",
"CreateABookDiscount": "Skapa en bokrabatt",
"BookDiscountDeletionConfirmationMessage": "Är du säker på att du vill ta bort den här bokrabatten?",
"CustomPaymentFlexSwitchDescription": "Med licens",
"AllowFeatureUpgradeOnLicenseExpire": "Tillåt uppgradering av funktioner när licensen löper ut",
"Deleted{0}": "[Raderad {0}]",
"Tags": "Etiketter",
"SetTagsInfo": "Taggar ska vara kommaseparerade. Exempel: CSharp, Entity Framework",
"RejectTrialLicenseWarningMessage": "Är du säker på att du vill avvisa denna begäran om testlicens?",
"ExportToExcel": "Exportera till Excel",
"OverallTotalPrice": "Totalt totalpris",
"OverallDiscountPrice": "Totalt Rabatt Pris",
"OverallDiscountText": "Övergripande rabatt Text",
"SelectReport": "- Välj rapport",
"NoDataAvailable": "Inga uppgifter tillgängliga",
"StatisticsOfCachedContents": "Statistik över cachelagrat NuGet-paketinnehåll för nuget.abp.io",
"Compact": "Kompakt",
"EditSettings": "Redigera inställningar",
"CurrentEstimatedSize": "Nuvarande uppskattad storlek",
"CurrentEntryCount": "Aktuellt antal poster",
"TotalHits": "Totalt antal träffar",
"TotalMisses": "Totalt antal missar",
"NoResponseFrom": "Inget svar från",
"ContentCacheSlidingExpirationByDay": "Innehållscache glidande utgång per dag",
"MaxDaysForCaching": "Max dagar för cachelagring",
"Enabled": "Aktiverad",
"Menu:NugetPackagesContentCache": "NuGet Cache",
"NugetPackagesContentCache": "NuGet Cache för innehåll",
"SlidingExpritionByDayInfo": "Hämtar eller anger hur länge en cache-post kan vara inaktiv (t.ex. inte åtkommen) innan den tas bort. Detta kommer inte att förlänga postens livstid utöver den absoluta expirationen.",
"MaxDaysForCachingInfo": "Hämtar eller anger en absolut utgångstid i förhållande till nu.",
"CurrentEstimatedSizeInfo": "Anger en uppskattad summa av alla NuGet-pakets innehållsstorlek som för närvarande finns i minnescachen",
"CurrentEntryCountInfo": "Anger antalet instanser som för närvarande finns i minnescachen.",
"TotalHitsInfo": "Anger det totala antalet cache-missar. En cacheträff inträffar när en fil begärs från en cache och cachen kan uppfylla denna begäran.",
"TotalMissesInfo": "Anger det totala antalet träffar i cachen. En cachemiss är när cacheminnet inte innehåller det begärda innehållet.",
"Permission:VersionHistory": "Versionshistorik",
"Caches": "Cacher",
"VersionHistories": "Versionshistorik",
"Version": "Version",
"PublishDate": "Publiceringsdatum",
"IsStableVersion": "Stabil version",
"IsActive": "Aktiv",
"NewVersion": "Ny version",
"VersionHistoryDeletionConfirmationMessage": "Är du säker på att du vill radera den här versionen?",
"CreateAbpConsultantLogoInfo": "Maximal filstorlek: <b>1MB</b> <br/> Filtyper som stöds: <b>jpg, jpeg, png, SVG, WebP</b>",
"UrlCode": "Url-kod",
"Clear": "Klart",
"Permission:AbpConsultant": "ABP Konsult",
"Menu:AbpConsultants": "ABP Konsulter",
"CreateAbpConsultant": "Skapa ABP-konsult",
"UrlCodeIsNotAvailable": "Url-koden används av en annan ABP-konsult.",
"AbpConsultants": "ABP Konsulter",
"AbpConsultant": "ABP Konsult",
"AbpConsultantEdit": "Edit ABP Konsult",
"AbpConsultantCreate": "Skapa ABP-konsult",
"WhoWeAreItem": "Vilka vi är Artikel",
"FieldIsRequired": "{0} krävs.",
"FieldIsNotValid": " {0} är inte giltig.",
"InterestedLicenseType": "Intresserad licenstyp",
"MoveWaitList": "Flytta till väntelista",
"CommunityLinkTitle": "Öppna på community-webbplatsen",
"CommunityLink": "Link",
"IpAddress": "Ip-adress",
"ReloadFromSource": "Ladda om från källan",
"ReloadFromSourceConfirmationMessage": "Detta inlägg kommer att uppdateras från \"{0}\". Vill du fortsätta?",
"UnitPrice": "Enhetspris",
"OverallDiscountAmount": "Totalt rabattbelopp",
"DiscountAmount": "Diskonteringsbelopp",
"FullChangeHistory": "Fullständig ändringshistorik",
"Permission:RefreshReleaseLogs": "Uppdatera release-loggar",
"ReleaseLogs": "Release Loggar",
"AuthorUserName": "Användarnamn för författare",
"Type": "Typ",
"TotalDiscount": "Total rabatt",
"SubTotal": "Subtotal",
"TotalDue": "Totalt förfallna",
"QuotationNo": "Offert nr",
"ValidTill": "Giltig till och med",
"QuotationNote": "Citatanteckning",
"QuotationTemplate.Address:": "Adress:",
"QuotationTemplate.VATNo:": "Momsregistreringsnummer",
"QuotationTemplate.Phone:": "Telefon:",
"QuotationTemplate.E-mail:": "E-post:",
"QuotationTemplate.Quotation": "Offert",
"QuotationTemplate.To": "Till",
"QuotationTemplate.Details": "Detaljer",
"QuotationTemplate.QuotationNo:": "Citat #:",
"QuotationTemplate.IssueDate:": "Utgivningsdatum:",
"QuotationTemplate.ValidTill:": "Giltig till:",
"QuotationTemplate.ValidDays": "{0} dagar",
"QuotationTemplate.Description": "Beskrivning",
"QuotationTemplate.UnitPrice": "Enhetspris",
"QuotationTemplate.Qty": "Antal",
"QuotationTemplate.Discount": "Rabatt",
"QuotationTemplate.Total": "Totalt",
"QuotationTemplate.Notes": "Anteckningar",
"QuotationTemplate.SubTotal:": "Sub Total :",
"QuotationTemplate.Tax/VAT:": "Skatt / moms (%{0}) :",
"QuotationTemplate.TotalDiscount:": "Total rabatt :",
"QuotationTemplate.TOTALDUE:": "TOTAL SKULD :",
"QuotationTemplate.BankAccount": "Information om vårt bankkonto finns på {0}.",
"Permission:Raffles": "Lottdragning",
"Permission:Draw": "Dragning",
"Menu:Raffles": "Raffles",
"RaffleIsNotDrawable": "Lottdragning är inte dragbar",
"WinnerCountMustBeGreaterThanZero": "Antalet vinnare måste vara större än noll",
"FullDescription": "Fullständig beskrivning",
"VisibilityStartDate": "Synlighet Startdatum",
"VisibilityEndDate": "Slutdatum för synlighet",
"RaffleDate": "Lottdragning Datum",
"SubscriptionCode": "Prenumerationskod",
"GroupCode": "Gruppkod",
"MaxWinnerCount": "Max antal vinnare",
"ReDraw": "Rita om",
"EditRaffle": "Redigera utlottning",
"Raffles": "Raffles",
"CreateARaffle": "Skapa en utlottning",
"Draw": "Dragning",
"Enum:RaffleStatus:0": "Aktiv",
"Enum:RaffleStatus:1": "Nästa",
"Enum:RaffleStatus:2": "Tidigare",
"DrawDone": "Ritning klar",
"HomePageShowType": "Startsida Visa typ",
"None": "Ingen",
"Card": "Kort",
"Horizontal": "Horisontell",
"Winners": "Vinnare",
"StartDateMustBeLessThanEndDate": "Startdatum måste vara mindre än slutdatum",
"VisibilityStartDateMustBeLessThanVisibilityEndDate": "Startdatum för synlighet måste vara mindre än slutdatum för synlighet",
"StartDateMustBeGreaterThanVisibilityStartDate": "Startdatum måste vara större än startdatum för synlighet",
"EndDateMustBeLessThanVisibilityEndDate": "Slutdatum måste vara mindre än visibilitetens slutdatum",
"DrawnDone": "Ritad Gjord",
"AddColor": "Lägg till färg",
"Colors": "Färger",
"RemoveColor": "Ta bort färg",
"MaxColorCountWarning": "Du kan lägga till upp till {0} färger",
"MinColorCountWarning": "Du måste lägga till minst {0} färger",
"RaffleDeletionConfirmationMessage": "Är du säker på att du vill ta bort den här utlottningen?",
"CreateRaffle": "Skapa utlottning",
"RemoveImage": "Ta bort bild",
"SavedSuccessfully": "Sparades framgångsrikt",
"Menu:CommunityTalks": "Samtal med gemenskapen",
"Menu:Conferences": "Konferenser",
"Menu:OtherLiveEvents": "Andra live-evenemang",
"Menu:SponsoredConferences": "Sponsrade konferenser",
"Logo": "Logotyp",
"Slug": "Snigel",
"CompanyUrl": "Företagets webbadress",
"TalkTitle": "Titel på samtal",
"AbstractTopic": "Sammanfattning Ämne",
"Bio": "Bio",
"LinkedIn": "LinkedIn",
"Github": "Github",
"Twitch": "Twitch",
"Youtube": "Youtube",
"Twitter": "Twitter",
"PersonalWebsite": "Personlig webbplats",
"VideoId": "Video Id",
"Order": "Beställning",
"Image1x1": "Bild 1x1",
"Image16x9": "Bild 16x9",
"Banner": "Banner",
"Speaker": "Högtalare",
"SessionDate": "Datum för session",
"AddSession": "Lägg till session",
"AddSponsor": "Lägg till sponsor",
"SponsorLogo": "Sponsorlogotyp",
"RegistrationUrl": "Url för registrering",
"AllowAbpStudioBetaAccess": "Tillåt åtkomst till ABP Studio Beta",
"TotalQuestionCanNotBeNullMessage": "Total fråga kan inte vara null",
"Permission:OrganizationAutoRenewalPayments": "Betalningar för automatisk förnyelse av organisation",
"Permission:RetryFailedPayments": "Försök på nytt med misslyckade betalningar",
"AutoRenewalIsNotEnabled": "Automatisk förnyelse är inte aktiverad!",
"LicenseIsNotExpired": "Licensen har inte gått ut!",
"PaymentNotFound": "Betalning hittades inte!",
"PaymentAlreadyTried": "Betalning redan försökt!",
"PaymentIsNotFailed": "Betalning är inte misslyckad!",
"OrganizationIdIsNull": "OrganizationId är null!",
"Menu:AutoRenewals": "Förnyelse av bilar",
"OrganizationAutoRenewalPayments": "Betalningar för automatisk förnyelse av organisation",
"PaymentDate": "Betalningsdag",
"TryCount": "Försök räkna",
"ErrorMessage": "Felmeddelande",
"ErrorCode": "Felkod",
"CreditCard": "Kreditkort",
"BuyerName": "Köparens namn",
"BuyerSurname": "Köparens efternamn",
"BuyerEmail": "Köparens e-post",
"AutoRenewalStartTime": "Starttid för automatisk förnyelse",
"AutoRenewalEndTime": "Sluttid för automatisk förnyelse",
"AutoRenewalEnabled": "Automatisk förnyelse aktiverad",
"LastAutoRenewalPaymentTime": "Sista betalningstid för automatisk förnyelse",
"OrganizationDoesNotHaveACreditCard": "Organisationen har inte ett kreditkort!",
"OrganizationDoesNotHaveACreditCardInGateway": "Organisationen har inte ett kreditkort i porten!",
"Permission:EditWinners": "Redigera vinnare",
"Permission:ChangeDrawingStatus": "Ändra ritningsstatus",
"Menu:Licenses": "Licensiering",
"OrganizationId": "Organisations-ID",
"RemoveAllWinnersConfirmationMessage": "Är du säker på att du vill ta bort alla vinnare?",
"AutoRenewals": "Förnyelse av bilar",
"OrganizationHasCreditCard": "Organisationen har kreditkort. Vänligen ta bort kreditkortet först!",
"DisplayName:DontSendEmailForLicenseExpire": "Skicka inte e-post för att licensen löper ut",
"DontSendEmailForLicenseExpire": "Skicka inte e-post för att licensen löper ut",
"SuccessfullyChanged": "Framgångsrikt ändrat",
"WinnerCountMustBeLessThanMaxWinnerCount": "Antalet vinnare måste vara mindre än det maximala antalet vinnare",
"NoChangesDetected": "Inga förändringar upptäckta",
"ProductCount": "Produkträkning",
"Actions": "Åtgärder",
"CreateInvoice": "Skapa faktura",
"IsVisible": "Synlig",
"Menu:Testimonials": "Vittnesmål",
"TestimonialDeletionConfirmationMessage": "Är du säker på att du vill ta bort detta vittnesmål?",
"FullName": "Fullständigt namn",
"TestimonialText": "Text i vittnesmål",
"ExperienceYear": "Erfarenhetsår",
"Position": "Titel",
"YearsOfExperience": "Erfarenhetsår",
"AllowedLicenses": "Tillåtna licenser",
"AllowedModules": "Tillåtna moduler",
"ModuleName": "Modulens namn",
"NonYet": "Inte ännu",
"Permission:Testimonials": "Vittnesmål",
"SelectCompanySizePlaceholder": "Företagets storlek",
"SelectExperienceYearPlaceholder": "Erfarenhetsår",
"SelectCountryPlaceholder": "Land",
"DeleteImageConfirmationMessage": "Är du säker att du vill ta bort bilden för \"{0}\"?",
"DeleteImageSuccessMessage": "Bilden har raderats framgångsrikt",
"DeleteImage": "Ta bort bild",
"NetTerms": "Villkor (dagar)",
"Menu:DynamicReports": "Dynamiska rapporter",
"Menu:Others": "Övriga",
"Menu:Packs&Modules": "Paket & moduler",
"ReleaseCaches": "Frigör cachen",
"Menu:HeroSections": "Hjälte-sektioner",
"HeroSections": "Hjälte-sektioner",
"DynamicReports": "Dynamiska rapporter",
"Menu:ReportsMenu": "Rapporter",
"Permission:HeroSections": "Hjälte-sektioner",
"RedirectLink": "Omdirigera länk",
"HeroSectionsDeletionConfirmationMessage": "Är du säker på att du vill ta bort hjälteavsnittet?",
"AbpStudioName": "Abp Studio namn"
}
}

256
abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sv.json

@ -0,0 +1,256 @@
{
"culture": "sv",
"texts": {
"Volo.AbpIo.Domain:010004": "Maximalt antal medlemmar uppnått!",
"Volo.AbpIo.Domain:010005": "Maximalt antal ägare uppnått!",
"Volo.AbpIo.Domain:010006": "Den här användaren är redan ägare i den här organisationen!",
"Volo.AbpIo.Domain:010007": "Den här användaren är redan en utvecklare i den här organisationen!",
"Volo.AbpIo.Domain:010008": "Tillåtet antal utvecklare kan inte vara mindre än nuvarande antal utvecklare!",
"Volo.AbpIo.Domain:010009": "Tillåtet antal utvecklare kan inte vara mindre än 0!",
"Volo.AbpIo.Domain:010010": "Maximalt antal mac-adresser har överskridits!",
"Volo.AbpIo.Domain:010011": "Personlig licens kan inte ha mer än 1 utvecklare!",
"Volo.AbpIo.Domain:010012": "Licensen kan inte förlängas en månad efter att licensen har löpt ut!",
"Volo.AbpIo.Domain:020001": "Det gick inte att ta bort detta NPM-paket eftersom \"{NugetPackages}\" Nuget-paket är beroende av detta paket.",
"Volo.AbpIo.Domain:020002": "Det gick inte att ta bort detta NPM-paket eftersom \"{Moduler}\" Moduler använder detta paket.",
"Volo.AbpIo.Domain:020003": "Det gick inte att ta bort detta NPM-paket eftersom \"{Modules}\" Moduler använder det här paketet och \"{NugetPackages}\" Nuget-paket är beroende av detta paket.",
"Volo.AbpIo.Domain:020004": "Det gick inte att ta bort detta Nuget-paket eftersom \"{Moduler}\" Moduler använder detta paket.",
"Volo.AbpIo.Domain:030000": "Du har redan avslutat din provperiod.",
"Volo.AbpIo.Domain:030001": "Det här organisationsnamnet finns redan.",
"Volo.AbpIo.Domain:030002": "Efter aktivering kan du inte ändra testlicensen till -requested- status!",
"Volo.AbpIo.Domain:030003": "Det finns ingen sådan status!",
"Volo.AbpIo.Domain:030004": "Status kunde inte ändras på grund av ett oväntat fel!",
"Volo.AbpIo.Domain:030005": "Start- och slutdatum kan uppdateras när testlicensen är i statusen -aktiverad!",
"Volo.AbpIo.Domain:030006": "Slutdatumet måste vara större än startdatumet!",
"Volo.AbpIo.Domain:030007": "Denna testlicens har redan aktiverats!",
"Volo.AbpIo.Domain:030008": "Köpdatumet kan endast ställas in när statusen är -köpt-!",
"Volo.AbpIo.Domain:030009": "Användaren hittades inte!",
"Volo.AbpIo.Domain:030010": "För att köpa testlicensen måste du först aktivera din testlicens!",
"Volo.AbpIo.Domain:030011": "Du kan inte ta bort en testlicens när den är köpt!",
"Volo.AbpIo.Domain:030012": "En användare har endast rätt till 1 gratis provperiod. Du har redan använt din testlicens.",
"Volo.AbpIo.Domain:030013": "En användare med en aktiv licens kan inte starta en testlicens.",
"Volo.AbpIo.Domain:040000": "Telemetri finns redan!",
"Volo.AbpIo.Domain:050000": "Organisationen har kreditkort. Du kan inte ta bort det!",
"Volo.AbpIo.Domain:070000": "Organisationsnamnet får endast innehålla latinska bokstäver, siffror, punkter och bindestreck!",
"Volo.AbpIo.Domain:070001": "Företagsnamnet får endast innehålla latinska bokstäver, siffror, punkter, mellanslag och bindestreck!",
"WantToLearn?": "Vill du lära dig mer?",
"ReadyToGetStarted?": "Är du redo att komma igång?",
"JoinOurCommunity": "Gå med i vår community",
"GetStartedUpper": "KOM IGÅNG",
"ForkMeOnGitHub": "Fork mig på GitHub",
"Features": "Funktioner",
"GetStarted": "Kom igång",
"Documents": "Dokument",
"Community": "Gemenskap",
"ContributionGuide": "Bidragsguide",
"Blog": "Blogg",
"Commercial": "Kommersiell",
"MyAccount": "Mitt konto",
"Permission:License": "Licens",
"Permission:UserInfo": "Användarinformation",
"SeeDocuments": "Se dokument",
"Samples": "Prover",
"Framework": "Ramverk",
"Support": "Stöd",
"FreeDDDBook": "Gratis e-bok om DDD",
"New": "Nya",
"Volo.AbpIo.Domain:020005": "Licensförlängningsåret får inte vara lägre än {MinExtendLicenseYear} år och inte högre än {MaxExtendLicenseYear} år",
"TrialLicensePeriodHasExpired": "Din testlicensperiod löpte ut för {0} dagar sedan.",
"TrialLicensePeriodWillExpire": "Din testlicensperiod kommer att löpa ut om {0} dagar.",
"TrialLicensePeriodExpireToday": "Din testlicensperiod kommer att löpa ut idag.",
"PurchaseNow": "Köp nu!",
"LatestReleaseLogs": "Senaste versionsloggar",
"RoadMap": "Vägkarta",
"FAQ": "VANLIGA FRÅGOR",
"SourceCode": "Källkod",
"SeeAllPosts": "Se alla inlägg",
"Contribute": "Bidra",
"LiveDemo": "Live Demo",
"GetLicense": "Skaffa licens",
"OpenSource": "Öppen källkod",
"WebApplication": "Webbapplikation",
"MeetTheABP": "Möt ABP",
"CompleteWebDevelopment": "En komplett webbutveckling",
"Platform": "Plattform",
"ABPDescription": "Ett ramverk med öppen källkod för utveckling av webbapplikationer för ASP.NET Core. Det erbjuder en komplett infrastruktur genom att följa bästa praxis för programvaruutveckling.",
"StrongInfrastructure": "Stark infrastruktur",
"CompleteArchitecture": "Komplett arkitektur",
"DeveloperFocused": "Fokus på utvecklare",
"ShareYourExperiences": "Dela dina erfarenheter av ABP-ramverket",
"LatestPosts": "Senaste inlägg",
"LatestVideos": "Senaste videor",
"Views": "Utsikt",
"LearnLatestNewsAboutABPFramework": "Få information om händelser i ABP som nya utgåvor, fria källor, inlägg och mycket mer.",
"DeveloperTools": "Verktyg för utvecklare",
"StartupTemplates": "Mallar för nystartade företag",
"ApplicationModules": "Applikationsmoduler",
"UI": "UI",
"Themes": "Teman",
"Premium": "Premium",
"PrivacyPolicy": "Integritetspolicy",
"TermsAndConditions": "Villkor och anvisningar",
"WouldLikeToReceiveMarketingMaterials": "Jag skulle vilja få marknadsföringsmaterial som produkterbjudanden och specialerbjudanden.",
"JoinOurMarketingNewsletter": "Anmäl dig till vårt marknadsföringsnyhetsbrev",
"CommunityPrivacyPolicyConfirmation": "Jag godkänner de allmänna villkoren och <a class=\"text-white fw-6 text-decoration-underline opacity-50\" href=\"/Privacy\">Privatlivspolicyn</a>.",
"WouldLikeToReceiveNotification": "Jag skulle vilja få de senaste nyheterna från abp.io webbplatser.",
"CommercialNewsletterConfirmationMessage": "Jag samtycker till <a href=\"/TermsConditions\">Terms & Conditions</a> och <a href=\"/Privacy\">Privacy Policy</a>.",
"FreeDDDEBook": "Gratis e-bok om DDD",
"AdditionalServices": "Ytterligare tjänster",
"Learn": "Lär dig",
"AccountOverview": "Översikt över konton",
"MyOrganizations": "Mina organisationer",
"MySupportQuestions": "Mina frågor om support",
"MyProfile": "Min profil",
"Logout": "Logga ut",
"Home": "Hem",
"Posts": "Inlägg",
"Videos": "Videor",
"JoinTheABPCommunity": "Gå med i ABP:s gemenskap",
"SubmitYourPost": "Skicka in ditt inlägg",
"Modules": "Moduler",
"Tools": "Verktyg",
"Pricing": "Prissättning",
"ChangeLogs": "Ändra loggar",
"SubscribeToNewsletter": "Prenumerera på nyhetsbrevet",
"SubscribeToNewsletterDescription": "Få information om händelser i ABP som nya utgåvor, fria källor, inlägg och mycket mer.",
"EmailAddress": "E-postadress",
"Subscribe": "Prenumerera",
"WelcomeToABP": "Välkommen till ABP",
"EULA": "EULA",
"ABPCommercialIntroductionMessage": "Förbyggda applikationsmoduler, avancerade startmallar, verktyg för snabb applikationsutveckling, professionella UI-teman och premiumsupport.",
"MasteringAbpFrameworkEBook": "Behärskar ABP-ramverket",
"MasteringTheABPFrameworkExplanation": "Mastering ABP Framework e-bok; skriven av skaparen av ABP Framework, hjälper dig att få en fullständig förståelse för ramverket och moderna tekniker för utveckling av webbapplikationer.",
"Speakers": "Högtalare",
"PreviousEvents": "Tidigare händelser",
"WatchTheEvent": "Titta på evenemanget",
"RegisterNow": "Registrera dig nu",
"ThereIsNoEvent": "Det finns ingen händelse.",
"Events": "Händelser",
"Volo.AbpIo.Domain:080000": "Det finns redan ett inköpsobjekt som heter \"{Namn}\"",
"MasteringAbpFrameworkBook": "Bok: Att bemästra ABP:s ramverk",
"ABPIO-CommonPreferenceDefinition": "Få de senaste nyheterna om ABP Platform som nya inlägg, evenemang och mer.",
"BuiltOn": "Inbyggd",
"AbpFramework": "ABP-ramverk",
"Volo.AbpIo.Domain:080001": "Starttiden får inte vara större än sluttiden",
"Enum:BookType:0": "Behärskar ABP-ramverket",
"Enum:PurchasePlatform:0": "Amazonas",
"Enum:PurchasePlatform:1": "Förpackningar",
"Copied": "Kopierat!",
"CouldNotCopy": "Kunde inte kopiera!",
"CopyNotSupportByYourBrowser": "Den här funktionen fungerar inte i den webbläsare du använder.",
"City": "Stad",
"ZipCode": "Postnummer",
"Address": "Adress",
"Homepage": "Hemsida",
"Year": "År",
"Year_Plural": "År",
"Copyright": "Copyright © <a href=\"{0}\" target=\"_blank\">{1}</a>",
"DomainDrivenDesign": "Domänstyrd design",
"CrossCuttingConcerns": "Tvärgående angelägenheter",
"AbpCommunity": "ABP Gemenskap",
"Footer_GithubStarCount": "{0} Stjärnor på GitHub",
"Footer_NugetDownloadCount": "{Nedladdningar på NuGet",
"AbpDescription": "ABP är ett applikationsramverk med öppen källkod som fokuserar på AspNet Core-baserad utveckling av webbapplikationer. Upprepa inte dig själv, fokusera på din egen affärskod.",
"Layout_AbpFramework_MetaTitle": "ABP Framework | Ramverk för webbapplikationer med öppen källkod för ASP.NET Core",
"CommunityTalks_CountdownDays": "Dagar",
"CommunityTalks_CountdownHours": "Timmar",
"CommunityTalks_CountdownMinutes": "Min",
"CommunityTalks_CountdownSeconds": "Sek",
"SeePreviousEvents": "Se tidigare evenemang",
"CookieConsent_Accept": "Acceptera",
"CookieConsent_Explanation_1": "Vi använder cookies för att ge dig den bästa upplevelsen på vår webbplats.",
"CookieConsent_Explanation_2": "Om du fortsätter att surfa samtycker du till vår <a href=\"/Privacy\">Privatpolicy och cookiepolicy.</a>.",
"Error_Page_400_Title": "Det uppstod ett problem med att visa den begärda sidan.",
"Error_Page_400_Description_1": "Vanligtvis betyder det att ett oväntat fel inträffade när vi behandlade din begäran.",
"Error_Page_400_Description_2": "Om problemet kvarstår, kontakta oss på <a href=\"mailto:info@abp.io\">info@abp.io</a> så hjälper vi dig att komma vidare.",
"GoToHomepage": "Gå till hemsidan",
"Error_Page_404_Title": "Sidan hittades inte!",
"Error_Page_404_Description_1": "Det här är inte den webbsida du letar efter.",
"Error_Page_500_Title": "Det ser ut som om något gick fel!",
"Error_Page_500_Description_1": "Vi spårar dessa fel automatiskt, men om problemet kvarstår är du välkommen att <br /> kontakta oss. Under tiden kan du prova att uppdatera.",
"Error_Page_500_Description_2": "Kontakta oss på <a href=\"mailto:info@abp.io\" target=\"_blank\">info@abp.io</a>.",
"Books": "Böcker",
"ABPDiscordServer": "ABP Discord Server",
"ABPCommunityTalks": "ABP:s samtal med allmänheten",
"ABPCommunityPosts": "ABP Gemenskap Inlägg",
"BuyAndGetMonths": "KÖP 12 MÅNADER, <span>FÅ 14 MÅNADER!</span>",
"GetYourDeal": "Få ditt erbjudande",
"BuyOrRenewLicense": "Köp eller förnya licensen nu och få 2 extra månader!",
"BuyOrRenewLicenseToGetExtra2Months": "Köp eller förnya licens nu och få 2 extra månader! SKYNDA DIG UPP! ⏰ Sista dag: {0}",
"HurryUp": "SKYNDA PÅ!",
"LastDay": "Sista dagen: {0}",
"BuyNewLicenseBetweenDatesToGetBenefit": "Köp en ny licens mellan {0} och {1} för att få förmånen i extra 2 månader!",
"CheckAllCommunityTalks": "Kontrollera alla inlägg i gemenskapen",
"ReadMore": "Läs mer om",
"ContinueReading": "Fortsätta läsa",
"Post": "Post",
"ExploreTheContentsCreatedByTheCoreABPTeamAndTheABPCommunity": "Utforska innehållet som skapats av ABP:s kärnteam och ABP:s community.",
"WelcomeFallCampaign": "Välkommen till höstkampanjen!",
"GiveAwayForNewPurchases": "Application Development Classroom Training kommer att ges bort för de nya inköpen!",
"BlackFriday": "<strong>BLACK</strong> <span>FRIDAY</span>",
"ValidForExistingCustomers": "Gäller även för <br> befintliga kunder!",
"CampaignBetweenDates": "Från {0} <br>Till {1}",
"SaveUpTo": "<span>Spara</span> Upp till<strong>${0}K</strong>",
"ImplementingDDD": "Implementering av domändriven design",
"ExploreTheEBook": "Utforska e-boken",
"ExploreTheBook": "Utforska boken",
"ConsultantType": "Typ av konsultverksamhet",
"Expert": "ABP Expert",
"Partner": "ABP Partner",
"Industry": "Industri",
"Location": "Plats",
"Contact": "Kontakt",
"Partner_Year": "Partnerskapsår",
"Info": "Info",
"SpokenLanguages": "Talade språk",
"SocialMedia": "Sociala medier",
"Activity": "Aktivitet",
"Type": "Typ",
"Contribution": "Bidrag",
"WhoWeAre": "Vilka vi är",
"Icons": "Ikoner",
"Url": "Url",
"Icon": "Ikon",
"RecentActivities": "Senaste aktiviteterna",
"SpringCampaign": "Välkommen <br>Vårens försäljning!",
"SpringCampaign2": "<span>Begränsat <br> tidserbjudande!</span>",
"AboutUs": "Om oss",
"HowItWorks": "Hur fungerar det?",
"ReleaseNotes": "Releaseanteckningar",
"DetailedChangeNotes": "Detaljerade ändringsanteckningar",
"SeeTrainings": "Se utbildningar",
"NoContent": "Inget innehåll",
"More": "Mer om",
"WhyABPIOPlatform": "Varför ABP.IO Platform?",
"AbpStudio": "ABP Studio",
"ExtraMonths": "{0}<span>EXTRA MÅNADER</span>",
"RSS": "RSS",
"RSSFeed": "RSS-flöde",
"Articles": "Artiklar",
"Organizations": "Organisationer",
"ManageAccount": "Hantera konto",
"CommunityProfile": "Gemenskapsprofil",
"BlogProfile": "Bloggprofil",
"Tickets": "Tickets",
"Raffles": "Raffles",
"Status": "Status",
"Resources": "Resurser",
"Video Courses": "Videokurser",
"Packages": "Paket",
"Trainings": "Utbildningar",
"MeetTheABPCommunity": "Möt ABP <span class=\"gradient-community\">Community</span>",
"DisplayName:CommunityIndexPagePoll": "Community Index Page Poll",
"ReturnOnInvestment": "Avkastning på investeringar",
"PromotionalOffers": "Kampanjerbjudanden",
"PromotionalOffersDefinition": "Rabatter, säsongskampanjer etc.",
"EventsDefinition": "Community Talks, webbseminarier, ABP .NET-konferens, etc.",
"ReleaseNotesDefinition": "ABP.IO Plattformsreleaser, nya produkter etc.",
"Newsletter": "Nyhetsbrev",
"NewsletterDefinition": "Blogginlägg, nyheter om samhället etc.",
"OrganizationOverview": "Översikt över organisationen",
"EmailPreferences": "Inställningar för e-post",
"VideoCourses": "Viktiga videor",
"DoYouAgreePrivacyPolicy": "Genom att klicka på <b>Prenumerera</b>-knappen godkänner du <a href=\"https://account.abp.io/Account/TermsConditions\">Villkor och bestämmelser</a> och <a href=\"https://account.abp.io/Account/Privacy\">Privatlivspolicy</a>.",
"AbpConferenceDescription": "ABP Conference är ett virtuellt evenemang för .NET-utvecklare där de kan lära sig mer och få kontakt med andra.",
"Mobile": "Mobil"
}
}

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

@ -0,0 +1,8 @@
{
"culture": "sv",
"texts": {
"AbpTitle": "Läs alla blogginlägg",
"AbpDescription": "ABP är ett applikationsramverk med öppen källkod som fokuserar på AspNet Core-baserad utveckling av webbapplikationer. Upprepa inte dig själv, fokusera på din egen affärskod.",
"AbpDefinition": "ABP-blogg för .NET-utveckling, plattformsoberoende, ASP.NET-applikationsmallar, ABP-relaterade nyheter och mer..."
}
}

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

@ -816,6 +816,7 @@
"ErrorExceptionMessage": "حدث خطأ أثناء معالجة طلبك",
"WatchTakeCodeGeneration": "شاهد فيديو \"استكشاف إمكانات إنشاء الأكواد البرمجية: ABP Suite\"!",
"ExtendNow": "تمديد / تجديد",
"RegisterDemo": "يسجل"
"RegisterDemo": "يسجل",
"AbpStudio_ComingSoon": "إذا كنت ترغب في اختبار ABP Studio قبل أي شخص آخر، يمكنك أن تصبح أحد مختبري النسخة التجريبية"
}
}

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

@ -431,6 +431,7 @@
"ErrorExceptionMessage": "Při zpracování vašeho požadavku nastala chyba",
"WatchTakeCodeGeneration": "Podívejte se na video „Prozkoumejte potenciál generování kódu: ABP Suite“!",
"ExtendNow": "Prodloužit / Obnovit",
"RegisterDemo": "Registrovat"
"RegisterDemo": "Registrovat",
"AbpStudio_ComingSoon": "Pokud chcete ABP Studio otestovat dříve než kdokoli jiný, staňte se BETA testerem"
}
}

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

@ -411,6 +411,7 @@
"SendUsEmail": "Senden Sie uns eine E-Mail",
"ErrorExceptionMessage": "Während Ihrer Anfrage ist ein Fehler aufgetreten",
"WatchTakeCodeGeneration": "Sehen Sie sich das Video „Entdecken Sie das Potenzial der Codegenerierung: ABP Suite“ an!",
"ExtendNow": "Verlängern / Erneuern"
"ExtendNow": "Verlängern / Erneuern",
"AbpStudio_ComingSoon": "Wenn Sie ABP Studio vor allen anderen testen möchten, werden Sie BETA-Tester"
}
}

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

@ -916,7 +916,7 @@
"AbpStudio_Description": "ABP Studio is still under development. You can fill out the form below to be one of the first users.",
"AbpStudio_Description1": "ABP Studio is a <span class=\"text-highlight-white\">cross-platform desktop application</span> for ABP developers.",
"AbpStudio_Description2": "It is <span class=\"text-highlight-white\">well integrated</span> to the ABP Framework and aims to provide a comfortable development environment for you by <span class=\"text-highlight-white\">automating things, providing insights</span> about your solution, making <span class=\"text-highlight-white\">develop, run</span> and <span class=\"text-highlight-white\">deploy</span> your solutions much easier.",
"AbpStudio_ComingSoon": "Coming Soon <span class=\"opacity-50 ms-0 ms-md-3 d-block d-md-inline-block \">Planned beta release date: Q4 of 2023.</span>",
"AbpStudio_ComingSoon": "If you want to test ABP Studio before anyone else, become a BETA tester",
"AbpStudio_PlannedPreviewDate": "Planned preview release date: Q4 of 2023.",
"BetaRequest": "Beta Request",
"CreateNewSolutions": "Create New Solutions",

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

@ -411,6 +411,7 @@
"SendUsEmail": "Envíanos un correo electrónico",
"ErrorExceptionMessage": "Se produjo un error al procesar su solicitud.",
"WatchTakeCodeGeneration": "¡Mire el vídeo \"Explore el potencial de la generación de código: ABP Suite\"!",
"ExtendNow": "Ampliar / Renovar"
"ExtendNow": "Ampliar / Renovar",
"AbpStudio_ComingSoon": "Si quieres probar ABP Studio antes que nadie, conviértete en tester BETA"
}
}

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

@ -852,6 +852,7 @@
"ErrorExceptionMessage": "Virhe pyynnön käsittelyn yhteydessä",
"WatchTakeCodeGeneration": "Katso \"Tutki koodin luomisen potentiaalia: ABP Suite\" -video!",
"ExtendNow": "Laajenna / Uusi",
"RegisterDemo": "Rekisteröidy"
"RegisterDemo": "Rekisteröidy",
"AbpStudio_ComingSoon": "Jos haluat testata ABP Studiota ennen muita, ryhdy BETA-testaajaksi"
}
}

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

@ -431,6 +431,7 @@
"ErrorExceptionMessage": "Une erreur s'est produite lors du traitement de votre demande",
"WatchTakeCodeGeneration": "Regardez la vidéo « Explorez le potentiel de la génération de code : ABP Suite » !",
"ExtendNow": "Prolonger / Renouveler",
"RegisterDemo": "Registre"
"RegisterDemo": "Registre",
"AbpStudio_ComingSoon": "Si vous souhaitez tester ABP Studio avant tout le monde, devenez BETA testeur"
}
}

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

@ -430,6 +430,7 @@
"ErrorExceptionMessage": "आपका अनुरोध संसाधित करते समय एक त्रुटि पाई गई",
"WatchTakeCodeGeneration": "\"कोड जनरेशन की क्षमता का अन्वेषण करें: एबीपी सुइट\" वीडियो देखें!",
"ExtendNow": "विस्तार/नवीनीकरण",
"RegisterDemo": "पंजीकरण करवाना"
"RegisterDemo": "पंजीकरण करवाना",
"AbpStudio_ComingSoon": "यदि आप किसी और से पहले एबीपी स्टूडियो का परीक्षण करना चाहते हैं, तो बीटा परीक्षक बनें"
}
}

4
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json

@ -915,7 +915,6 @@
"AbpStudio_Description": "ABP Studio je još uvijek u razvoju. Možete ispuniti obrazac ispod i biti jedan od prvih korisnika.",
"AbpStudio_Description1": "ABP Studio je <span class=\"text-highlight-white\">stolna aplikacija za više platformi</span> za ABP programere.",
"AbpStudio_Description2": "<span class=\"text-highlight-white\">Dobro je integriran</span> u ABP Framework i ima za cilj pružiti vam ugodno razvojno okruženje <span class=\"text-highlight-white\">automatiziranjem stvari, pružanjem uvida</span> u vaše rješenje, čineći <span class=\"text-highlight-white\">razvoj, pokretanje</span> i <span class=\"text-highlight-white\">implementaciju</span> vaših rješenja puno lakšim.",
"AbpStudio_ComingSoon": "Uskoro. <span class=\"opacity-50 ms-0 ms-md-3 d-block d-md-inline-block \">Planirani datum izdavanja beta verzije: 4. tromjesečje 2023.</span>",
"AbpStudio_PlannedPreviewDate": "Planirani datum izdavanja pregleda: 4. kvartal 2023.",
"BetaRequest": "Zahtjev za beta verziju",
"CreateNewSolutions": "Stvorite nova rješenja",
@ -1107,6 +1106,7 @@
"SendUsEmail": "Pošaljite nam e-mail",
"ErrorExceptionMessage": "Pojavila se greška prilikom obrade Vašeg zahtjeva",
"WatchTakeCodeGeneration": "Pogledajte video \"Istražite potencijal generiranja koda: ABP Suite\"!",
"ExtendNow": "Produži / obnovi"
"ExtendNow": "Produži / obnovi",
"AbpStudio_ComingSoon": "Ako želite testirati ABP Studio prije svih ostalih, postanite BETA tester"
}
}

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

@ -777,6 +777,7 @@
"SendUsEmail": "Küldjön nekünk e-mailt",
"ErrorExceptionMessage": "Hiba történt a kérése feldolgozása során",
"WatchTakeCodeGeneration": "Nézze meg a \"Fedezze fel a kódgenerálás lehetőségét: ABP Suite\" videót!",
"ExtendNow": "Bővítés / Megújítás"
"ExtendNow": "Bővítés / Megújítás",
"AbpStudio_ComingSoon": "Ha bárki más előtt szeretné tesztelni az ABP Studio-t, legyen BÉTA tesztelő"
}
}

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

@ -408,6 +408,7 @@
"SendUsEmail": "Sendu okkur tölvupóst",
"ErrorExceptionMessage": "Villa kom upp við úrvinnslu beiðni þinnar",
"WatchTakeCodeGeneration": "Horfðu á \"Kannaðu möguleika kóðaframleiðslu: ABP Suite\" myndbandið!",
"ExtendNow": "Framlengja / endurnýja"
"ExtendNow": "Framlengja / endurnýja",
"AbpStudio_ComingSoon": "Ef þú vilt prófa ABP Studio á undan öllum öðrum skaltu gerast BETA prófari"
}
}

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

@ -430,6 +430,7 @@
"ErrorExceptionMessage": "Si è verificato un errore durante l'elaborazione della richiesta",
"WatchTakeCodeGeneration": "Guarda il video \"Esplora il potenziale della generazione di codice: ABP Suite\"!",
"ExtendNow": "Estendi/Rinnova",
"RegisterDemo": "Registrati"
"RegisterDemo": "Registrati",
"AbpStudio_ComingSoon": "Se vuoi provare ABP Studio prima di chiunque altro, diventa un BETA tester"
}
}

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

@ -408,6 +408,7 @@
"SendUsEmail": "Stuur ons een e-mail",
"ErrorExceptionMessage": "Er is een fout opgetreden bij het verwerken van uw verzoek",
"WatchTakeCodeGeneration": "Bekijk de video 'Ontdek het potentieel van codegeneratie: ABP Suite'!",
"ExtendNow": "Verlengen / Verlengen"
"ExtendNow": "Verlengen / Verlengen",
"AbpStudio_ComingSoon": "Als u ABP Studio als eerste wilt testen, wordt dan BETA-tester"
}
}

3
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json

@ -409,6 +409,7 @@
"ErrorExceptionMessage": "Podczas przetwarzania żądania wystąpił błąd",
"WatchTakeCodeGeneration": "Obejrzyj film „Odkryj potencjał generowania kodu: pakiet ABP”!",
"ExtendNow": "Przedłuż/Odnów",
"RegisterDemo": "Rejestr"
"RegisterDemo": "Rejestr",
"AbpStudio_ComingSoon": "Jeśli chcesz przetestować ABP Studio zanim ktokolwiek inny, zostań testerem BETA"
}
}

3
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json

@ -431,6 +431,7 @@
"SendUsEmail": "Envie-nos um e-mail",
"ErrorExceptionMessage": "Um erro ocorreu durante o processamento do seu pedido",
"WatchTakeCodeGeneration": "Assista ao vídeo \"Explore o potencial de geração de código: ABP Suite\"!",
"ExtendNow": "Estender/Renovar"
"ExtendNow": "Estender/Renovar",
"AbpStudio_ComingSoon": "Se você quiser testar o ABP Studio antes de todo mundo, torne-se um testador BETA"
}
}

3
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json

@ -408,6 +408,7 @@
"SendUsEmail": "Trimite-ne e-mail",
"ErrorExceptionMessage": "A apărut o eroare în timpul procesării cererii dumneavoastră",
"WatchTakeCodeGeneration": "Urmărește videoclipul „Explorați potențialul generării codului: ABP Suite”!",
"ExtendNow": "Extinde/Reînnoiește"
"ExtendNow": "Extinde/Reînnoiește",
"AbpStudio_ComingSoon": "Dacă doriți să testați ABP Studio înaintea oricui, deveniți un tester BETA"
}
}

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

@ -427,6 +427,7 @@
"SendUsEmail": "Pošlite nám e-mail",
"ErrorExceptionMessage": "Nastala chyba pri spracovaní vašej žiadosti",
"WatchTakeCodeGeneration": "Pozrite si video „Preskúmajte potenciál generovania kódu: ABP Suite“!",
"ExtendNow": "Predĺžiť / obnoviť"
"ExtendNow": "Predĺžiť / obnoviť",
"AbpStudio_ComingSoon": "Ak chcete otestovať ABP Studio skôr ako ktokoľvek iný, staňte sa BETA testerom"
}
}

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

@ -409,6 +409,7 @@
"ErrorExceptionMessage": "Pri obdelavi vaše zahteve je prišlo do napake",
"WatchTakeCodeGeneration": "Oglejte si video »Raziščite potencial generiranja kode: zbirka ABP«!",
"ExtendNow": "Podaljšaj / obnovi",
"RegisterDemo": "Registrirajte se"
"RegisterDemo": "Registrirajte se",
"AbpStudio_ComingSoon": "Če želite preizkusiti ABP Studio pred vsemi drugimi, postanite BETA tester"
}
}

1215
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sv.json

File diff suppressed because it is too large

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

@ -1058,7 +1058,6 @@
"AbpStudio_Description": "ABP Studio hala geliştirme aşamasında. İlk kullanıcılardan biri olmak için aşağıdaki formu doldurabilirsiniz.",
"AbpStudio_Description1": "ABP Studio, ABP geliştiricileri için <span class=\"text-highlight-white\">çok platformlu masaüstü uygulamasıdır</span>.",
"AbpStudio_Description2": "ABP Studio, ABP Framework'e <span class=\"text-highlight-white\">iyi entegre edilmiştir</span> ve sizin için işleri <span class=\"text-highlight-white\">otomatikleştirerek, projeniz hakkında bilgi sağlayarak</span>, projelerinizi <span class=\"text-highlight-white\">geliştirmeyi, çalıştırmayı</span> ve <span class=\"text-highlight-white\">dağıtımını</span> çok daha kolay hale getirmeyi amaçlamaktadır.",
"AbpStudio_ComingSoon": "Yakında <span class=\"opacity-50 ms-0 ms-md-3 d-block d-md-inline-block \">Planlanan beta sürüm tarihi: 2023'ün 4. çeyreği.</span>",
"AbpStudio_PlannedPreviewDate": "Planlanan beta sürüm tarihi: 2023'ün 4. çeyreği.",
"BetaRequest": "Beta Talebi",
"CreateNewSolutions": "Yeni Projeler Oluştur",
@ -1140,6 +1139,7 @@
"RemoveBasket": "Sepetten kaldır",
"TrainingPack": "Eğitim paketi",
"TrainingPackDiscount": "Eğitim paketi indirimi",
"LinkExpiredMessage": "Ödeme bağlantısının süresi doldu! Bağlantıyı güncellemek için <a href='mailto:sales@volosoft.com'>sales@volosoft.com</a> adresinden bizimle iletişime geçin veya iletişim sayfasına gitmek için <a href='https://abp.io/contact'>buraya</a> tıklayın."
"LinkExpiredMessage": "Ödeme bağlantısının süresi doldu! Bağlantıyı güncellemek için <a href='mailto:sales@volosoft.com'>sales@volosoft.com</a> adresinden bizimle iletişime geçin veya iletişim sayfasına gitmek için <a href='https://commercial.abp.io/contact'>buraya</a> tıklayın.",
"AbpStudio_ComingSoon": "ABP Studio'yu herkesten önce test etmek istiyorsanız BETA test kullanıcısı olun"
}
}

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

@ -408,6 +408,7 @@
"SendUsEmail": "Gửi email cho chúng tôi",
"ErrorExceptionMessage": "Đã xảy ra lỗi trong khi xử lý yêu cầu của bạn",
"WatchTakeCodeGeneration": "Xem video \"Khám phá tiềm năng tạo mã: ABP Suite\"!",
"ExtendNow": "Gia hạn/Gia hạn"
"ExtendNow": "Gia hạn/Gia hạn",
"AbpStudio_ComingSoon": "Nếu bạn muốn thử nghiệm ABP Studio trước bất kỳ ai khác, hãy trở thành người thử nghiệm BETA"
}
}

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

@ -915,7 +915,6 @@
"AbpStudio_Description": "ABP Studio 仍在开发中。您可以填写下面的表单,成为首批用户之一。",
"AbpStudio_Description1": "ABP Studio 是专为 ABP 开发人员设计的<span class=\"text-highlight-white\">跨平台桌面应用程序</span>。",
"AbpStudio_Description2": "它<span class=\"text-highlight-white\">与 ABP 框架集成得很好</span>,旨在通过<span class=\"text-highlight-white\">自动化、提供有关解决方案的见解</span>,为您提供舒适的开发环境,使<span class=\"text-highlight-white\">开发、运行</span>和<span class=\"text-highlight-white\">部署</span>解决方案变得更加容易。",
"AbpStudio_ComingSoon": "即将发布 <span class=\"opacity-50 ms-0 ms-md-3 d-block d-md-inline-block \">计划测试版发布日期:</span>计划测试版发布日期:2023年第四季度。",
"AbpStudio_PlannedPreviewDate": "计划预览版发布日期:2023 年第四季度。",
"BetaRequest": "测试版请求",
"CreateNewSolutions": "创建新的解决方案",
@ -1110,6 +1109,7 @@
"ErrorExceptionMessage": "处理您的请求时发生错误",
"WatchTakeCodeGeneration": "观看“探索代码生成的潜力:ABP Suite”视频!",
"PreBuiltApplicationModulesTitle": "预构建应用程序 <span class=\"gradient-commercial\">模块</span>",
"RegisterDemo": "登记"
"RegisterDemo": "登记",
"AbpStudio_ComingSoon": "如果您想先于其他人测试 ABP Studio,请成为 BETA 测试员"
}
}

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

@ -897,7 +897,6 @@
"AbpStudio_Description": "ABP Studio 仍在開發中。您可以填寫下面的表单,成為第一批使用者之一。",
"AbpStudio_Description1": "ABP Studio 是一款針對 ABP 開發人員的<span class=\"text-highlight-white\">跨平台桌面應用程式</span>。",
"AbpStudio_Description2": "它與 ABP 框架<span class=\"text-highlight-white\">很好地集成</span>,旨在透過<span class=\"text-highlight-white\">自動化為您提供一個舒適的開發環境,提供有關您的解決方案的見解</span>,使<span class=\"text-highlight-white\">開發、運行</span>和<span class=\"text-highlight-white\">部署</span>您的解決方案變得更加容易。",
"AbpStudio_ComingSoon": "即將推出<span class=\"opacity-50 ms-0 ms-md-3 d-block d-md-inline-block \">計劃測試版發布日期:2023 年第四季。</span>",
"AbpStudio_PlannedPreviewDate": "計畫預覽版發布日期:2023 年第四季。",
"BetaRequest": "測試版請求",
"CreateNewSolutions": "建立新的解決方案",
@ -1100,6 +1099,7 @@
"WatchTakeCodeGeneration": "观看“探索代码生成的潜力:ABP Suite”视频!",
"ExtendNow": "延长 / 续订",
"PreBuiltApplicationModulesTitle": "预构建应用程序 <span class=\"gradient-commercial\">模块</span>",
"RegisterDemo": "登记"
"RegisterDemo": "登记",
"AbpStudio_ComingSoon": "如果您想先于其他人测试 ABP Studio,请成为 BETA 测试员"
}
}

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

@ -259,6 +259,9 @@
"MarkdownSupported": "<a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a> أيد.",
"Preview": "معاينة",
"VisitVideoCourseDescription": "إذا كنت ترغب في تعلم أساسيات إطار عمل برنامج ABP، فاطلع على دورات الفيديو الخاصة ببرنامج ABP Essentials.",
"VisitPage": "زر الصفحة"
"VisitPage": "زر الصفحة",
"ConfirmEmailForPost": "لتتمكن من النشر، تحتاج إلى تأكيد بريدك الإلكتروني. انتقل إلى account.abp.io/Account/Manage وتحقق من بريدك الإلكتروني في علامة التبويب \"المعلومات الشخصية\".",
"DailyPostCreateLimitation": "لقد وصلت إلى الحد الأقصى اليومي لإنشاء المنشورات. يمكنك إنشاء مشاركة جديدة في {0}.",
"YourAccountDisabled": "تم تعطيل حساب المستخدم الخاص بك!"
}
}

4
abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/cs.json

@ -259,6 +259,8 @@
"MarkdownSupported": "<a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a> podporováno.",
"Preview": "Náhled",
"VisitPage": "Navštivte stránku",
"VisitVideoCourseDescription": "Pokud se chcete naučit základy rámce ABP, podívejte se na videokurzy ABP Essentials."
"VisitVideoCourseDescription": "Pokud se chcete naučit základy rámce ABP, podívejte se na videokurzy ABP Essentials.",
"ConfirmEmailForPost": "Abyste mohli přidávat příspěvky, musíte potvrdit svůj e-mail. Přejděte na stránku account.abp.io/Account/Manage a ověřte svůj e-mail na kartě Osobní údaje.",
"DailyPostCreateLimitation": "Dosáhli jste denního limitu pro vytváření příspěvků. Nový příspěvek můžete vytvořit v {0}."
}
}

4
abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/de.json

@ -259,6 +259,8 @@
"MarkdownSupported": "<a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a> unterstützt.",
"Preview": "Vorschau",
"VisitPage": "Seite besuchen",
"VisitVideoCourseDescription": "Wenn Sie die Grundlagen des ABP Framework erlernen möchten, schauen Sie sich die ABP Essentials-Videokurse an."
"VisitVideoCourseDescription": "Wenn Sie die Grundlagen des ABP Framework erlernen möchten, schauen Sie sich die ABP Essentials-Videokurse an.",
"ConfirmEmailForPost": "Um Beiträge verfassen zu können, müssen Sie Ihre E-Mail-Adresse bestätigen. Gehen Sie zu account.abp.io/Account/Manage und bestätigen Sie Ihre E-Mail-Adresse auf der Registerkarte „Persönliche Daten“.",
"DailyPostCreateLimitation": "Sie haben das tägliche Limit für die Erstellung von Beiträgen erreicht. Sie können in {0} einen neuen Beitrag erstellen."
}
}

2
abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en-GB.json

@ -59,7 +59,7 @@
"MilestoneErrorMessage": "Couldn't get the current milestone details from Github.",
"QuestionItemErrorMessage": "Couldn't get the latest question details from Stackoverflow.",
"Oops": "Oops!",
"CreatePostSuccessMessage": "The Post has been successfully submitted. It will be published once it has been reviewed by the site admin.",
"CreatePostSuccessMessage": "Your post has been successfully submitted. It will be published after review by the site administrator.",
"ChooseCoverImage": "Choose a cover image...",
"CoverImage": "Cover Image",
"ShareYourExperiencesWithTheABPFramework": "Share your experiences with the ABP Framework!",

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

@ -16,7 +16,7 @@
"Title": "Title",
"CreationTime": "Creation time",
"Save": "Save",
"SameUrlAlreadyExist": "Same url already exists if you want to add this post, you should change the url!",
"SameUrlAlreadyExist": "Same URL already exists! You must change the URL!",
"UrlIsNotValid": "Url is not valid.",
"UrlNotFound": "Url not found.",
"UrlContentNotFound": "Url content not found.",
@ -33,7 +33,7 @@
"FeatureRequest": "Feature Request",
"CreatePostTitleInfo": "Title of the post to be shown on the post list.",
"CreatePostSummaryInfo": "A short summary of the post to be shown on the post list. Maximum length: <b>{0}</b>",
"CreatePostCoverInfo": "For creating an effective post, add a cover photo. Upload 16:9 aspect ratio pictures for the best view.<br/> Maximum file size: <b>1MB.</b>",
"CreatePostCoverInfo": "To create an effective post, add a cover photo. Upload <b>16:9 aspect ratio</b> pictures for the best view.<br/> Maximum file size is <b>1MB.</b>",
"ThisExtensionIsNotAllowed": "This extension is not allowed.",
"TheFileIsTooLarge": "The file is too large.",
"GoToThePost": "Go to the Post",
@ -56,7 +56,7 @@
"MilestoneErrorMessage": "Could not get the current milestone details from Github.",
"QuestionItemErrorMessage": "Could not get the latest question details from Stackoverflow.",
"Oops": "Oops!",
"CreatePostSuccessMessage": "The Post has been successfully submitted. It will be published after a review from the site admin.",
"CreatePostSuccessMessage": "Your post has been successfully submitted. It will be published after review by the site administrator.",
"Browse": "Browse",
"CoverImage": "Cover Image",
"ShareYourExperiencesWithTheABPFramework": "Share your experiences with the ABP Framework!",
@ -125,7 +125,7 @@
"YoutubeVideoSubmitStepTwo": "<span class=\"font-weight-bold\">2.</span> Submit the video URL using the form.",
"YoutubeVideoSubmitStepThree": "<span class=\"font-weight-bold\">3.</span> Visitors will be able to watch your video content directly on this website.",
"ExternalContent": "External Content",
"ExternalContentSubmitStepOne": "<span class=\"font-weight-bold\">1.</span> Create a content on any public platform (Medium, your own blog or anywhere you like).",
"ExternalContentSubmitStepOne": "<span class=\"font-weight-bold\">1.</span> Create content on any public platform (Medium, your own blog or anywhere you like).",
"ExternalContentSubmitStepTwo": "<span class=\"font-weight-bold\">2.</span> Submit your content URL using the form.",
"ExternalContentSubmitStepThree": "<span class=\"font-weight-bold\">3.</span> Visitors are redirected to the content on the original website.",
"ChooseYourContentType": "Please choose the way you want to add your content.",
@ -135,12 +135,12 @@
"GitHubUserNameValidationMessage": "Your Github username can not include whitespace, please make sure your Github username is correct.",
"PersonalSiteUrlValidationMessage": "Your personal site URL can not include whitespace, please make sure your personal site URL is correct.",
"TwitterUserNameValidationMessage": "Your Twitter username can not include whitespace, please make sure your Twitter username is correct.",
"LinkedinUrlValidationMessage": "Your Linkedin URL can not include whitespace, please make sure your Linkedin URL is correct.",
"LinkedinUrlValidationMessage": "Your LinkedIn URL can not include whitespace, please make sure your LinkedIn URL is correct.",
"NoPostsFound": "No posts found!",
"SearchInPosts": "Search in posts...",
"MinimumSearchContent": "You must enter at least 3 characters!",
"Volo.AbpIo.Domain:060001": "Source URL(\"{PostUrl}\") is not Github URL",
"Volo.AbpIo.Domain:060002": "Post Content is not available from Github(\"{PostUrl}\") resource.",
"Volo.AbpIo.Domain:060002": "Post Content is not available from GitHub(\"{PostUrl}\") resource.",
"Volo.AbpIo.Domain:060003": "No post content found!",
"SeeMore": "See More",
"JoinTheABPCommunity": "Join the ABP Community",
@ -171,14 +171,14 @@
"Discord_Page_Announce": "We are happy to announce ABP Community Discord Server!",
"Discord_Page_Description_1": "ABP Community has been growing since day one. We wanted to take it to the next step by creating an official ABP Discord server so the ABP Community can interact with each other using the wonders of instant messaging.",
"Discord_Page_Description_2": "ABP Community Discord Server is the place where you can showcase your creations using ABP Framework, share the tips that worked for you, catch up with the latest news and announcements about ABP Framework, just chat with community members to exchange ideas, and have fun!",
"Discord_Page_Description_3": "This ABP Community Discord Server is the official one with the ABP Core Team is present on the server to monitor.",
"Discord_Page_Description_3": "This ABP Community Discord Server is the official one with the ABP Core Team present on the server to monitor.",
"Discord_Page_JoinToServer": "Join ABP Discord Server",
"Events_Page_MetaTitle": "ABP Community Events",
"Events_Page_MetaDescription": "The live shows, hosted by the ABP Team, are casual sessions full of community content, demos, Q&A, and discussions around what's happening in ABP.",
"Events_Page_Title": "ABP<span class=\"gradient-community\"> Community</span> Talks",
"Members_Page_WritingFromUser": "Read writing from {0} on ABP Community.",
"Post_Create_Page_MetaTitle": "New Post",
"Post_Create_Page_MetaDescription": "Create your post for sharing your experiences about ABP framework and contributing the ABP Community.",
"Post_Create_Page_MetaDescription": "Create your post for sharing your experiences about the ABP framework and contributing to the ABP Community.",
"Post_Create_Page_CreateNewPost": "Create New Post",
"Post_Index_Page_MetaDescription": "ABP Community's purpose is to create a contribution environment for developers who use the ABP framework.",
"Layout_Title": "{0} | ABP Community",
@ -193,7 +193,7 @@
"AbpCommunityTitleContent": "ABP Community - Open Source ABP Framework",
"CommunitySlogan": "A unique community platform for <span class=\"{0}\">ABP Lovers</span>",
"RaffleIsNotActive": "Raffle is not active",
"YouAreAlreadyJoinedToThisRaffle": "You already joined to this raffle!",
"YouAreAlreadyJoinedToThisRaffle": "You already joined this raffle!",
"InvalidSubscriptionCode": "Invalid subscription code",
"Raffle:{0}": "Raffle: {0}",
"Join": "Join",
@ -261,6 +261,9 @@
"Preview": "Preview",
"VisitPage": "Visit Page",
"VisitVideoCourseDescription": "If you want to learn the basics of the ABP Framework, check out the ABP Essentials Video courses.",
"EditProfile": "Edit Profile"
"EditProfile": "Edit Profile",
"ConfirmEmailForPost": "To be able to post, you need to confirm your email. Go to account.abp.io/Account/Manage and verify your email in the Personal Info tab.",
"DailyPostCreateLimitation": "You have reached the daily post creation limit. You can create a new post in {0}.",
"YourAccountDisabled": "Your user account is disabled!"
}
}
}

4
abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/es.json

@ -259,6 +259,8 @@
"MarkdownSupported": "<a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a> soportado.",
"Preview": "Avance",
"VisitPage": "Visita la página",
"VisitVideoCourseDescription": "Si desea aprender los conceptos básicos del marco ABP, consulte los cursos en vídeo de ABP Essentials."
"VisitVideoCourseDescription": "Si desea aprender los conceptos básicos del marco ABP, consulte los cursos en vídeo de ABP Essentials.",
"ConfirmEmailForPost": "Para poder publicar, debe confirmar su correo electrónico. Vaya a account.abp.io/Account/Manage y verifique su correo electrónico en la pestaña Información personal.",
"DailyPostCreateLimitation": "Has alcanzado el límite diario de creación de publicaciones. Puedes crear una nueva publicación en {0}."
}
}

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

@ -259,6 +259,8 @@
"MarkdownSupported": "<a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a> tuettu.",
"Preview": "Esikatselu",
"VisitPage": "Vieraile sivulla",
"VisitVideoCourseDescription": "Jos haluat oppia ABP Frameworkin perusteet, katso ABP Essentials Video -kurssit."
"VisitVideoCourseDescription": "Jos haluat oppia ABP Frameworkin perusteet, katso ABP Essentials Video -kurssit.",
"ConfirmEmailForPost": "Jotta voit lähettää viestejä, sinun on vahvistettava sähköpostiosoitteesi. Siirry osoitteeseen account.abp.io/Account/Manage ja vahvista sähköpostiosoitteesi Henkilökohtaiset tiedot -välilehdessä.",
"DailyPostCreateLimitation": "Olet saavuttanut päivittäisen viestien luomisrajan. Voit luoda uuden viestin kohteessa {0}."
}
}

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

@ -259,6 +259,8 @@
"MarkdownSupported": "<a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a> prise en charge.",
"Preview": "Aperçu",
"VisitPage": "Page de visite",
"VisitVideoCourseDescription": "Si vous souhaitez apprendre les bases du framework ABP, consultez les cours vidéo ABP Essentials."
"VisitVideoCourseDescription": "Si vous souhaitez apprendre les bases du framework ABP, consultez les cours vidéo ABP Essentials.",
"ConfirmEmailForPost": "Pour pouvoir publier, vous devez confirmer votre e-mail. Accédez à account.abp.io/Account/Manage et vérifiez votre e-mail dans l'onglet Informations personnelles.",
"DailyPostCreateLimitation": "Vous avez atteint la limite quotidienne de création de publications. Vous pouvez créer une nouvelle publication dans {0}."
}
}

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

@ -259,6 +259,8 @@
"MarkdownSupported": "<a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a> का समर्थन किया।",
"Preview": "पूर्व दर्शन",
"VisitPage": "यात्रा पेज",
"VisitVideoCourseDescription": "यदि आप एबीपी फ्रेमवर्क की मूल बातें सीखना चाहते हैं, तो एबीपी एसेंशियल वीडियो पाठ्यक्रम देखें।"
"VisitVideoCourseDescription": "यदि आप एबीपी फ्रेमवर्क की मूल बातें सीखना चाहते हैं, तो एबीपी एसेंशियल वीडियो पाठ्यक्रम देखें।",
"ConfirmEmailForPost": "पोस्ट करने में सक्षम होने के लिए, आपको अपने ईमेल की पुष्टि करनी होगी। account.abp.io/Account/Manage पर जाएं और व्यक्तिगत जानकारी टैब में अपना ईमेल सत्यापित करें।",
"DailyPostCreateLimitation": "आप दैनिक पोस्ट निर्माण सीमा तक पहुंच गए हैं। आप {0} में एक नई पोस्ट बना सकते हैं।"
}
}

4
abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/hr.json

@ -259,6 +259,8 @@
"MarkdownSupported": "<a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a> podržan.",
"Preview": "Pregled",
"VisitPage": "Posjetite stranicu",
"VisitVideoCourseDescription": "Ako želite naučiti osnove ABP okvira, pogledajte video tečajeve ABP Essentials."
"VisitVideoCourseDescription": "Ako želite naučiti osnove ABP okvira, pogledajte video tečajeve ABP Essentials.",
"ConfirmEmailForPost": "Da biste mogli objavljivati, morate potvrditi svoju e-poštu. Idite na account.abp.io/Account/Manage i potvrdite svoju e-poštu na kartici Osobni podaci.",
"DailyPostCreateLimitation": "Dosegli ste dnevno ograničenje za izradu postova. Možete stvoriti novi post u {0}."
}
}

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

@ -259,6 +259,8 @@
"MarkdownSupported": "<a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a> támogatott.",
"Preview": "Előnézet",
"VisitPage": "Látogassa meg az oldalt",
"VisitVideoCourseDescription": "Ha meg szeretné tanulni az ABP Framework alapjait, nézze meg az ABP Essentials Video tanfolyamokat."
"VisitVideoCourseDescription": "Ha meg szeretné tanulni az ABP Framework alapjait, nézze meg az ABP Essentials Video tanfolyamokat.",
"ConfirmEmailForPost": "A bejegyzések közzétételéhez meg kell erősítenie e-mail-címét. Nyissa meg az account.abp.io/Account/Manage oldalt, és ellenőrizze e-mail-címét a Személyes adatok lapon.",
"DailyPostCreateLimitation": "Elérte a napi bejegyzéslétrehozási korlátot. Új bejegyzést itt hozhat létre: {0}."
}
}

4
abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/is.json

@ -259,6 +259,8 @@
"MarkdownSupported": "<a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a> stutt.",
"Preview": "Forskoðun",
"VisitPage": "Heimsæktu síðu",
"VisitVideoCourseDescription": "Ef þú vilt læra grunnatriði ABP Framework skaltu skoða ABP Essentials Video námskeiðin."
"VisitVideoCourseDescription": "Ef þú vilt læra grunnatriði ABP Framework skaltu skoða ABP Essentials Video námskeiðin.",
"ConfirmEmailForPost": "Til að geta sent færslur þarftu að staðfesta netfangið þitt. Farðu á account.abp.io/Account/Manage og staðfestu tölvupóstinn þinn á Persónulegum upplýsingum flipanum.",
"DailyPostCreateLimitation": "Þú hefur náð daglegu takmörkunum fyrir færslu færslu. Þú getur búið til nýja færslu í {0}."
}
}

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

@ -259,6 +259,8 @@
"MarkdownSupported": "<a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a> supportato.",
"Preview": "Anteprima",
"VisitPage": "Visita la pagina",
"VisitVideoCourseDescription": "Se vuoi apprendere le nozioni di base del Framework ABP, dai un'occhiata ai corsi video ABP Essentials."
"VisitVideoCourseDescription": "Se vuoi apprendere le nozioni di base del Framework ABP, dai un'occhiata ai corsi video ABP Essentials.",
"ConfirmEmailForPost": "Per poter pubblicare, devi confermare la tua email. Vai su account.abp.io/Account/Manage e verifica la tua email nella scheda Informazioni personali.",
"DailyPostCreateLimitation": "Hai raggiunto il limite giornaliero di creazione di post. Puoi creare un nuovo post in {0}."
}
}

4
abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/nl.json

@ -259,6 +259,8 @@
"MarkdownSupported": "<a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a> ondersteund.",
"Preview": "Voorbeeld",
"VisitPage": "Bezoek pagina",
"VisitVideoCourseDescription": "Als je de basis van het ABP Framework wilt leren, bekijk dan de ABP Essentials Videocursussen."
"VisitVideoCourseDescription": "Als je de basis van het ABP Framework wilt leren, bekijk dan de ABP Essentials Videocursussen.",
"ConfirmEmailForPost": "Om te kunnen posten, moet u uw e-mailadres bevestigen. Ga naar account.abp.io/Account/Manage en verifieer uw e-mailadres op het tabblad Persoonlijke informatie.",
"DailyPostCreateLimitation": "Je hebt de dagelijkse limiet voor het maken van berichten bereikt. Je kunt een nieuw bericht maken in {0}."
}
}

4
abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/pl-PL.json

@ -259,6 +259,8 @@
"MarkdownSupported": "<a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a> utrzymany.",
"Preview": "Zapowiedź",
"VisitPage": "Odwiedź stronę",
"VisitVideoCourseDescription": "Jeśli chcesz poznać podstawy ABP Framework, sprawdź kursy wideo ABP Essentials."
"VisitVideoCourseDescription": "Jeśli chcesz poznać podstawy ABP Framework, sprawdź kursy wideo ABP Essentials.",
"ConfirmEmailForPost": "Aby móc publikować, musisz potwierdzić swój adres e-mail. Przejdź do account.abp.io/Account/Manage i zweryfikuj swój adres e-mail w zakładce Dane osobowe.",
"DailyPostCreateLimitation": "Osiągnąłeś dzienny limit tworzenia postów. Możesz utworzyć nowy post w {0}."
}
}

4
abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/pt-BR.json

@ -259,6 +259,8 @@
"MarkdownSupported": "<a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a> suportado.",
"Preview": "Visualização",
"VisitPage": "Visite a página",
"VisitVideoCourseDescription": "Se você quiser aprender o básico do ABP Framework, confira os cursos em vídeo ABP Essentials."
"VisitVideoCourseDescription": "Se você quiser aprender o básico do ABP Framework, confira os cursos em vídeo ABP Essentials.",
"ConfirmEmailForPost": "Para poder postar, você precisa confirmar seu e-mail. Acesse account.abp.io/Account/Manage e verifique seu e-mail na guia Informações pessoais.",
"DailyPostCreateLimitation": "Você atingiu o limite diário de criação de postagens. Você pode criar uma nova postagem em {0}."
}
}

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

@ -259,6 +259,8 @@
"MarkdownSupported": "<a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a> sprijinit.",
"Preview": "previzualizare",
"VisitPage": "Vizitați pagina",
"VisitVideoCourseDescription": "Dacă doriți să aflați elementele de bază ale cadrului ABP, consultați cursurile video ABP Essentials."
"VisitVideoCourseDescription": "Dacă doriți să aflați elementele de bază ale cadrului ABP, consultați cursurile video ABP Essentials.",
"ConfirmEmailForPost": "Pentru a putea posta, trebuie să vă confirmați adresa de e-mail. Accesați account.abp.io/Account/Manage și verificați e-mailul în fila Informații personale.",
"DailyPostCreateLimitation": "Ați atins limita zilnică de creare a postărilor. Puteți crea o postare nouă în {0}."
}
}

4
abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/sk.json

@ -259,6 +259,8 @@
"MarkdownSupported": "<a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a> podporované.",
"Preview": "Náhľad",
"VisitPage": "Navštívte stránku",
"VisitVideoCourseDescription": "Ak sa chcete naučiť základy rámca ABP, pozrite si video kurzy ABP Essentials."
"VisitVideoCourseDescription": "Ak sa chcete naučiť základy rámca ABP, pozrite si video kurzy ABP Essentials.",
"ConfirmEmailForPost": "Aby ste mohli uverejňovať príspevky, musíte potvrdiť svoj e-mail. Prejdite na stránku account.abp.io/Account/Manage a overte svoj e-mail na karte Osobné informácie.",
"DailyPostCreateLimitation": "Dosiahli ste denný limit na vytváranie príspevkov. Nový príspevok môžete vytvoriť v {0}."
}
}

4
abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/sl.json

@ -259,6 +259,8 @@
"MarkdownSupported": "<a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a> podprt.",
"Preview": "Predogled",
"VisitPage": "Obiščite stran",
"VisitVideoCourseDescription": "Če se želite naučiti osnov ogrodja ABP, si oglejte video tečaje ABP Essentials."
"VisitVideoCourseDescription": "Če se želite naučiti osnov ogrodja ABP, si oglejte video tečaje ABP Essentials.",
"ConfirmEmailForPost": "Če želite objavljati, morate potrditi svoj e-poštni naslov. Pojdite na account.abp.io/Account/Manage in potrdite svoj e-poštni naslov na zavihku Osebni podatki.",
"DailyPostCreateLimitation": "Dosegli ste dnevno omejitev za ustvarjanje objav. Novo objavo lahko ustvarite v {0}."
}
}

269
abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/sv.json

@ -0,0 +1,269 @@
{
"culture": "sv",
"texts": {
"Permission:CommunityPost": "Gemenskapens inlägg",
"Permission:Edit": "Redigera",
"Waiting": "Väntar på",
"Approved": "Godkänd",
"Rejected": "Avvisad",
"Wait": "Vänta",
"Approve": "Godkänna",
"Reject": "Avvisa",
"ReadPost": "Läs inlägget",
"Status": "Status",
"ContentSource": "Källa för innehåll",
"Details": "Detaljer",
"Title": "Titel",
"CreationTime": "Skapelsetid",
"Save": "Spara",
"SameUrlAlreadyExist": "Samma URL finns redan! Du måste ändra webbadressen!",
"UrlIsNotValid": "Url är inte giltig.",
"UrlNotFound": "Url hittades inte.",
"UrlContentNotFound": "Url-innehållet hittades inte.",
"Summary": "Sammanfattning",
"MostRead": "Mest läst",
"Latest": "Senaste",
"ContributeAbpCommunity": "Bidra till ABP:s gemenskap",
"SubmitYourPost": "Skicka in ditt inlägg",
"ContributionGuide": "Bidragsguide",
"BugReport": "Bugg-rapport",
"SeeAllPosts": "Se alla inlägg",
"WelcomeToABP": "Välkommen till ABP",
"EmailNotValid": "Vänligen ange en giltig e-postadress.",
"FeatureRequest": "Begäran om funktion",
"CreatePostTitleInfo": "Titel på det inlägg som ska visas i inläggslistan.",
"CreatePostSummaryInfo": "En kort sammanfattning av inlägget som ska visas i inläggslistan. Maximal längd: <b>{0}</b>",
"CreatePostCoverInfo": "För att skapa ett effektivt inlägg, lägg till ett omslagsfoto. Ladda upp bilder i bildförhållandet <b>16:9</b> för bästa visning.<br/> Maximal filstorlek är <b>1MB.</b>",
"ThisExtensionIsNotAllowed": "Denna förlängning är inte tillåten.",
"TheFileIsTooLarge": "Filen är för stor.",
"GoToThePost": "Gå till inlägget",
"GoToTheVideo": "Gå till videon",
"Contribute": "Bidra",
"OverallProgress": "Övergripande framsteg",
"Done": "Klar",
"Open": "Öppna",
"Closed": "Stängt",
"RecentQuestionFrom": "Senaste frågan från {0}",
"Stackoverflow": "Stackoverflow",
"Votes": "röster",
"Answer": "Svar",
"Views": "utsikt",
"Answered": "Besvarad",
"WaitingForYourAnswer": "Väntar på ditt svar",
"Asked": "aska",
"AllQuestions": "Alla frågor",
"NextVersion": "Nästa version",
"MilestoneErrorMessage": "Det gick inte att få aktuell milstolpsinformation från Github.",
"QuestionItemErrorMessage": "Kunde inte få de senaste frågeuppgifterna från Stackoverflow.",
"Oops": "Oops!",
"CreatePostSuccessMessage": "Ditt inlägg har skickats in med framgång. Det kommer att publiceras efter granskning av webbplatsadministratören.",
"Browse": "Bläddra",
"CoverImage": "Omslagsbild",
"ShareYourExperiencesWithTheABPFramework": "Dela dina erfarenheter av ABP-ramverket!",
"Optional": "Valfritt",
"UpdateUserWebSiteInfo": "Exempel: https://johndoe.com",
"UpdateUserTwitterInfo": "Exempel: johndoe",
"UpdateUserGithubInfo": "Exempel: johndoe",
"UpdateUserLinkedinInfo": "Exempel: https://www.linkedin.com/...",
"UpdateUserCompanyInfo": "Exempel: Volosoft",
"UpdateUserJobTitleInfo": "Exempel: Programvaruutvecklare",
"UserName": "Användarnamn",
"Company": "Företag",
"PersonalWebsite": "Personlig webbplats",
"RegistrationDate": "Registreringsdatum",
"Social": "Sociala",
"Biography": "Biografi",
"HasNoPublishedPostsYet": "har inga publicerade inlägg ännu",
"Author": "Författaren",
"LatestGithubAnnouncements": "Senaste Github-tillkännagivanden",
"SeeAllAnnouncements": "Se alla tillkännagivanden",
"LatestBlogPost": "Senaste blogginlägget",
"Edit": "Redigera",
"ProfileImageChange": "Ändra profilbilden",
"BlogItemErrorMessage": "Kunde inte få den senaste informationen om blogginlägg från ABP.",
"PlannedReleaseDate": "Planerat utgivningsdatum",
"CommunityPostRequestErrorMessage": "Det gick inte att få den senaste postförfrågan från Github.",
"PostRequestFromGithubIssue": "Det finns inga postförfrågningar nu.",
"LatestPosts": "Senaste inlägg",
"ArticleRequests": "Begär ett innehåll",
"ArticleRequestsDescription": "Vill du se ett specifikt innehåll här? Du kan be communityn att skapa det!",
"LatestContentRequests": "Senaste förfrågningar om innehåll",
"AllPostRequests": "Se alla postförfrågningar",
"SubscribeToTheNewsletter": "Prenumerera på nyhetsbrevet",
"NewsletterEmailDefinition": "Få information om vad som händer i ABP, t.ex. nya utgåvor, fria källor, inlägg och mycket mer.",
"NoThanks": "Nej, tack.",
"MaybeLater": "Kanske senare",
"JoinOurPostNewsletter": "Anmäl dig till vårt nyhetsbrev",
"Community": "Gemenskap",
"Marketing": "Marknadsföring",
"CommunityPrivacyPolicyConfirmation": "Jag godkänner de allmänna villkoren och <a class=\"text-white fw-6 text-decoration-underline opacity-50\" href=\"https://commercial.abp.io/Privacy\">Integritetspolicy</a>.",
"PostRequestMessageTitle": "<a href=\"https://github.com/abpframework/abp/issues/new\">Öppna en fråga</a> på GitHub för att begära ett inlägg / en handledning som du vill se på den här webbplatsen.",
"PostRequestMessageBody": "Här är en lista över de inlägg som efterfrågats av communityn. Vill du skriva ett efterfrågat inlägg? Klicka på önskemålet och delta i diskussionen.",
"Language": "Språk",
"CreatePostLanguageInfo": "Språket för inläggets innehåll.",
"VideoPost": "Videoinlägg",
"Post": "Post",
"Read": "Läs",
"CreateGithubPostUrlInfo": "Fullständig URL till Markdown-filen på GitHub (<a href=\"https://github.com/abpframework/abp/blob/dev/docs/en/Community-Articles/2020-12-04-Event-Organizer/Post.md\" target=\"blank\">exempel</a>).",
"CreateVideoContentUrlInfo": "Inläggets ursprungliga URL på Youtube.",
"CreateExternalPostUrlInfo": "Inläggets ursprungliga externa webbadress.",
"VideoContentForm": "Skicka in video på YouTube",
"GithubPostForm": "Skicka inlägg på GitHub",
"ExternalPostForm": "Skicka in ett externt innehåll",
"HowToPost": "Hur postar jag?",
"Posts": "Inlägg",
"VideoUrl": "Video webbadress",
"GithubPostUrl": "Url för GitHub-post",
"ExternalPostUrl": "Url för externt inlägg",
"ThankYouForContribution": "Tack för att du bidrar till ABP Community. Vi tar gärna emot artiklar och videohandledning om ABP Framework, .NET, ASP.NET Core och allmänna ämnen inom programvaruutveckling.",
"GithubPost": "GitHub-inlägg",
"GithubPostSubmitStepOne": "<span class=\"font-weight-bold\">1.</span> Skriv ett inlägg på ett offentligt GitHub-arkiv med Markdown-formatet. <a target=\"_blank\" class=\"fw-6 text-white text-decoration-underline\" href=\"https://github.com/abpframework/abp/blob/dev/docs/en/Community-Articles/2020-12-04-Event-Organizer/Post.md\">exempel</a>",
"GithubPostSubmitStepTwo": "<span class=\"font-weight-bold\">2.</span> Skicka in din URL till inlägget med hjälp av formuläret.",
"GithubPostSubmitStepThree": "<span class=\"font-weight-bold\">3.</span> Ditt inlägg kommer att återges på denna webbplats.",
"YoutubeVideo": "Youtube-video",
"YoutubeVideoSubmitStepOne": "<span class=\"font-weight-bold\">1.</span> Publicera din video på YouTube.",
"YoutubeVideoSubmitStepTwo": "<span class=\"font-weight-bold\">2.</span> Skicka in video-URL:en med hjälp av formuläret.",
"YoutubeVideoSubmitStepThree": "<span class=\"font-weight-bold\">3.</span> Besökare kommer att kunna titta på ditt videoinnehåll direkt på denna webbplats.",
"ExternalContent": "Externt innehåll",
"ExternalContentSubmitStepOne": "<span class=\"font-weight-bold\">1.</span> Skapa innehåll på en publik plattform (Medium, din egen blogg eller var du vill).",
"ExternalContentSubmitStepTwo": "<span class=\"font-weight-bold\">2.</span> Skicka in URL:en för ditt innehåll med hjälp av formuläret.",
"ExternalContentSubmitStepThree": "<span class=\"font-weight-bold\">3.</span> Besökare omdirigeras till innehållet på den ursprungliga webbplatsen.",
"ChooseYourContentType": "Välj det sätt som du vill lägga till ditt innehåll på.",
"PostContentViaGithub": "Jag vill lägga till mitt inlägg med <span class=\"icon-with-text-github\"> GitHub</span> i enlighet med markdown-reglerna.",
"PostContentViaYoutube": "Jag vill dela mina videor som finns på <span class=\"icon-with-text-youtube\"> Youtube</span> här.",
"PostContentViaExternalSource": "Jag vill lägga till det innehåll jag publicerade på <b>en annan plattform</b> här.",
"GitHubUserNameValidationMessage": "Ditt Github-användarnamn kan inte innehålla blanksteg, kontrollera att ditt Github-användarnamn är korrekt.",
"PersonalSiteUrlValidationMessage": "URL:en till din personliga webbplats får inte innehålla blanksteg, kontrollera att URL:en till din personliga webbplats är korrekt.",
"TwitterUserNameValidationMessage": "Ditt Twitter-användarnamn får inte innehålla blanksteg, kontrollera att ditt Twitter-användarnamn är korrekt.",
"LinkedinUrlValidationMessage": "Din LinkedIn-URL får inte innehålla blanksteg, kontrollera att din LinkedIn-URL är korrekt.",
"NoPostsFound": "Inga inlägg hittades!",
"SearchInPosts": "Sök i inlägg...",
"MinimumSearchContent": "Du måste ange minst 3 tecken!",
"Volo.AbpIo.Domain:060001": "Källans URL(\"{PostUrl}\") är inte Github URL",
"Volo.AbpIo.Domain:060002": "Inläggets innehåll är inte tillgängligt från GitHub(\"{PostUrl}\")-resursen.",
"Volo.AbpIo.Domain:060003": "Inget innehåll i inlägget hittades!",
"SeeMore": "Se mer",
"JoinTheABPCommunity": "Gå med i ABP:s gemenskap",
"ABPCommunityTalks": "ABP:s samtal med allmänheten",
"LiveDemo": "Live Demo",
"GetLicense": "Skaffa licens",
"GetStarted": "Kom igång",
"SourceCode": "Källkod",
"LeaveComment": "Lämna kommentar",
"ShowMore": "Visa mer",
"NoPublishedPostsYet": "Inga publicerade inlägg ännu.",
"Name": "Namn",
"Surname": "Efternamn",
"WebSite": "Webbplats",
"FullURL": "Full URL",
"JobTitle": "Befattning",
"Prev": "Före",
"Previous": "Föregående",
"Next": "Nästa",
"Share": "Aktie",
"SortBy": "Sortera efter",
"NoPublishedEventsYet": "Inga publicerade händelser ännu.",
"SubscribeYoutubeChannel": "Prenumerera på Youtube-kanalen",
"Enum:EventType:0": "Samtal",
"MemberNotPublishedPostYet": "Denna medlem har inte publicerat några inlägg ännu.",
"TimeAgo": "för {0} sedan",
"Discord_Page_JoinCommunityMessage": "Gå med i ABP Discord Community",
"Discord_Page_Announce": "Vi är glada att kunna presentera ABP Community Discord Server!",
"Discord_Page_Description_1": "ABP Community har vuxit sedan dag ett. Vi ville ta det till nästa steg genom att skapa en officiell ABP Discord-server så att ABP-communityn kan interagera med varandra med hjälp av underverk som snabbmeddelanden.",
"Discord_Page_Description_2": "ABP Community Discord Server är platsen där du kan visa upp dina skapelser med ABP Framework, dela de tips som fungerade för dig, få de senaste nyheterna och tillkännagivandena om ABP Framework, bara chatta med medlemmar i samhället för att utbyta idéer och ha kul!",
"Discord_Page_Description_3": "Denna ABP Community Discord Server är den officiella med ABP Core Team närvarande på servern för att övervaka.",
"Discord_Page_JoinToServer": "Gå med i ABP Discord Server",
"Events_Page_MetaTitle": "ABP:s evenemang för allmänheten",
"Events_Page_MetaDescription": "Live-showerna, som leds av ABP-teamet, är avslappnade sessioner fulla av community-innehåll, demonstrationer, frågor och svar och diskussioner om vad som händer i ABP.",
"Events_Page_Title": "ABP<span class=\"gradient-community\"> Community</span> Samtal",
"Members_Page_WritingFromUser": "Läs skrivning från {0} på ABP Community.",
"Post_Create_Page_MetaTitle": "Ny post",
"Post_Create_Page_MetaDescription": "Skapa ditt inlägg för att dela med dig av dina erfarenheter om ABP-ramverket och bidra till ABP-communityn.",
"Post_Create_Page_CreateNewPost": "Skapa nytt inlägg",
"Post_Index_Page_MetaDescription": "ABP Communitys syfte är att skapa en bidragsmiljö för utvecklare som använder ABP-ramverket.",
"Layout_Title": "{0} | ABP Gemenskap",
"Layout_MetaDescription": "Ett nav för ABP Framework, .NET och programvaruutveckling. Få tillgång till artiklar, handledning, nyheter och bidra till ABP-communityn.",
"Index_Page_CommunityIntroduction": "Detta är ett nav för ABP Framework, .NET och programvaruutveckling. Du kan läsa artiklarna, titta på videohandledningarna, få information om ABP:s utvecklingsframsteg och ABP-relaterade evenemang, hjälpa andra utvecklare och dela med dig av din expertis till ABP-communityn.",
"TagsInArticle": "Taggar i artikel",
"IConsentToMedium": "Jag samtycker till publicering av detta inlägg på https://medium.com/volosoft.",
"SearchResultsFor": "Sökresultat för <span class=\"fw-bold\">\"{0}\"</span>",
"SeeMoreVideos": "Se fler videor",
"DiscordPageTitle": "ABP Discord Gemenskap",
"ViewVideo": "Visa video",
"AbpCommunityTitleContent": "ABP Community - ABP-ramverk med öppen källkod",
"CommunitySlogan": "En unik community-plattform för <span class=\"{0}\">ABP-älskare</span>.",
"RaffleIsNotActive": "Lottdragningen är inte aktiv",
"YouAreAlreadyJoinedToThisRaffle": "Du är redan med i utlottningen!",
"InvalidSubscriptionCode": "Ogiltig prenumerationskod",
"Raffle:{0}": "Lottdragning: {0}",
"Join": "Gå med",
"Leave": "Lämna",
"LoginToJoin": "Logga in för att gå med",
"ToEnd:": "För att avsluta:",
"ToStart:": "Det är en början:",
"days": "dagar",
"hrs": "timmar",
"min": "min",
"sec": "sek",
"Winners": "Vinnare",
"To{0}LuckyWinners": "till {0} lyckliga vinnare",
"ActiveRaffles": "Aktiva <span class=\"gradient-community\">Rafflar</span>.",
"UpcomingRaffles": "Kommande <span class=\"gradient-community\">Rafflar</span>",
"CompletedRaffles": "Färdigställda <span class=\"gradient-community\">Rafflar</span>",
"NoActiveRaffleTitle": "Ingen aktiv utlottning är tillgänglig för tillfället.",
"NoActiveRaffleDescription": "Ingen aktiv utlottning är tillgänglig för tillfället.",
"RaffleSubscriptionCodeInputMessage": "Denna utlottning kräver en registreringskod. Vänligen ange registreringskoden nedan:",
"RaffleSubscriptionCodeInputErrorMessage": "Registreringskoden är felaktig. Vänligen försök igen.",
"GoodJob!": "Bra jobbat!",
"RaffleJoinSuccessMessage": "Du är nu registrerad för utlottningen. Du kommer att informeras via e-post om du vinner priset!",
"RaffleLoginAndRegisterMessage": "Du måste logga in för att delta i utlottningen! Om du inte har registrerat dig ännu kan du skapa ett konto gratis nu.",
"Ok": "Ok",
"SeeDetails": "Se detaljer",
"WaitingForTheDraw": "Vänta på dragningen!",
"AllAttendees": "Alla deltagare",
"SeeRaffleDetail": "Se Raffle detalj",
"SeeRaffle": "Se Raffle",
"ParticipationIsComplete": "Deltagandet är fullständigt.",
"ABPCoreDevelopmentTeam": "ABP Core utvecklingsteam",
"RegisterTheEvent": "Registrera evenemanget",
"GoToConferencePage": "Gå till konferenssidan",
"BuyTicket": "Buy Ticket",
"SeeEvent": "Se evenemang",
"PreviousEvents": "<span class=\"text-sekundär\">Tidigare</span> evenemang",
"OtherLiveEvents": "Andra live-evenemang",
"SponsoredConferences": "Sponsrade konferenser",
"SponsoredConferencesDescription": "Vi är stolta över att stödja .NET-communities och evenemang för programvaruutvecklare.",
"UpcomingEvents": "<span class=\"text-info\">Kommande</span> evenemang",
"UpcomingCommunityTalkEventDescription": "Live-showerna, som leds av ABP-teamet, är avslappnade sessioner fulla av community-innehåll, demonstrationer, frågor och svar och diskussioner om vad som händer i ABP.",
"UpcomingConferenceEventDescription": "ABP .NET Conference är ett virtuellt evenemang för .NET-utvecklare där de kan träffas och lyssna på föredrag om .NET-världen, vanliga metoder för programvaruutveckling och ABP Framework med öppen källkod.",
"LastOneYear": "Senaste 1 året",
"AllTimes": "Alla tider",
"TopContributors": "De största bidragsgivarna",
"{0}Posts": "{0} Inlägg",
"LATESTPOSTS": "SENASTE INLÄGGNINGAR",
"NoContributorsFound": "Inga bidragsgivare hittades!",
"LatestPost": "Senaste inlägget",
"MEMBERSINCE{0}": "MEDLEM EFTERSOM {0}",
"CopyLink": "Kopiera länk",
"ShareOnTwitter": "Dela på Twitter",
"ShareOnLinkedIn": "Dela på LinkedIn",
"MoreFrom{0}": "Mer från {0}",
"SeeAllFrom{0}": "Se alla från {0}",
"MostWatched": "Mest bevakade",
"Articles({0})": "Artiklar ({0})",
"Videos({0})": "Videor ({0})",
"LatestArticles": "Senaste artiklar",
"RaffleHeader": "Hej ABP Community Member!",
"RafflesInfo": "<br>Det här är utlottningssidan som är avsedd att visa vår uppskattning för att du är en aktiv gemenskapsmedlem. Vi gör <a class=\"fw-6 \" href=\"https://community.abp.io/events\">ABP Community Talks</a> <a target=\"_blank\" class=\"fw-6\" href=\"https://abp.io/conference/2023\">,ABP .NET Conference</a>, deltar eller sponsrar .NET-relaterade evenemang där vi ger bort några gåvor. <br><br>Du kan följa den här sidan för att se kommande lotterier, delta i dem eller se tidigare lotterier som vi dragit inklusive vinnarna. <br><br>Tack för att du är en aktiv medlem! Vi ses i de kommande lotterierna.",
"RafflesInfoTitle": "ABP Community <span class=\"gradient-community\">Rafflar</span>.",
"ToLuckyWinner": "till 1 lycklig vinnare",
"MarkdownSupported": "Stöd för <a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a>.",
"Preview": "Förhandsgranskning",
"VisitPage": "Besök sidan",
"VisitVideoCourseDescription": "Om du vill lära dig grunderna i ABP-ramverket kan du kolla in videokurserna ABP Essentials.",
"EditProfile": "Redigera profil",
"ConfirmEmailForPost": "För att kunna göra inlägg måste du bekräfta din e-post. Gå till account.abp.io/Account/Manage och verifiera din e-postadress under fliken Personal Info.",
"DailyPostCreateLimitation": "Du har nått den dagliga gränsen för skapande av inlägg. Du kan skapa ett nytt inlägg i {0}.",
"YourAccountDisabled": "Ditt användarkonto är inaktiverat!"
}
}

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

@ -244,6 +244,9 @@
"BuyTicket": "Bilet al",
"SeeEvent": "Etkinliği Gör",
"Cancel": "Vazgeç",
"Continue": "Devam"
"Continue": "Devam",
"ConfirmEmailForPost": "Gönderi paylaşabilmek için e-posta adresinizi onaylamanız gerekir. account.abp.io/Account/Manage adresine gidin ve Kişisel Bilgiler sekmesinden e-posta adresinizi doğrulayın.",
"DailyPostCreateLimitation": "Günlük gönderi paylaşma sınırına ulaştınız. {0}'da yeni bir gönderi paylaşabilirsiniz.",
"YourAccountDisabled": "Kullanıcı hesabınız devre dışı bırakıldı!"
}
}

4
abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/vi.json

@ -259,6 +259,8 @@
"MarkdownSupported": "<a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a> được hỗ trợ.",
"Preview": "Xem trước",
"VisitPage": "Ghé thăm trang",
"VisitVideoCourseDescription": "Nếu bạn muốn tìm hiểu những kiến ​​thức cơ bản về Khung ABP, hãy xem các khóa học Video Cơ bản về ABP."
"VisitVideoCourseDescription": "Nếu bạn muốn tìm hiểu những kiến ​​thức cơ bản về Khung ABP, hãy xem các khóa học Video Cơ bản về ABP.",
"ConfirmEmailForPost": "Để có thể đăng bài, bạn cần xác nhận email của mình. Hãy truy cập account.abp.io/Account/Quản lý và xác minh email của bạn trong tab Thông tin cá nhân.",
"DailyPostCreateLimitation": "Bạn đã đạt đến giới hạn tạo bài đăng hàng ngày. Bạn có thể tạo bài đăng mới trong {0}."
}
}

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

@ -259,6 +259,8 @@
"MarkdownSupported": "<a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a> 支持的。",
"Preview": "预览",
"VisitPage": "访问页面",
"VisitVideoCourseDescription": "如果您想学习 ABP 框架的基础知识,请查看 ABP Essentials 视频课程。"
"VisitVideoCourseDescription": "如果您想学习 ABP 框架的基础知识,请查看 ABP Essentials 视频课程。",
"ConfirmEmailForPost": "为了能够发帖,您需要确认您的电子邮件。转到 account.abp.io/Account/Manage 并在“个人信息”选项卡中验证您的电子邮件。",
"DailyPostCreateLimitation": "您已达到每日帖子创建限制。您可以在 {0} 中创建新帖子。"
}
}

4
abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/zh-Hant.json

@ -259,6 +259,8 @@
"MarkdownSupported": "<a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a> 支持的。",
"Preview": "预览",
"VisitPage": "访问页面",
"VisitVideoCourseDescription": "如果您想学习 ABP 框架的基础知识,请查看 ABP Essentials 视频课程。"
"VisitVideoCourseDescription": "如果您想学习 ABP 框架的基础知识,请查看 ABP Essentials 视频课程。",
"ConfirmEmailForPost": "为了能够发帖,您需要确认您的电子邮件。转到 account.abp.io/Account/Manage 并在“个人信息”选项卡中验证您的电子邮件。",
"DailyPostCreateLimitation": "您已达到每日帖子创建限制。您可以在 {0} 中创建新帖子。"
}
}

9
abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/sv.json

@ -0,0 +1,9 @@
{
"culture": "sv",
"texts": {
"Buy": "Köp",
"SeeBookDetails": "Se bokdetaljer",
"MasteringAbpFrameworkEBookDescription": "Den här boken hjälper dig att få en fullständig förståelse för ramverket och moderna tekniker för utveckling av webbapplikationer.",
"Feedback": "Återkoppling"
}
}

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

@ -0,0 +1,6 @@
{
"culture": "sv",
"texts": {
"FAQ": "VANLIGA FRÅGOR"
}
}

1828
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sv.json

File diff suppressed because it is too large

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

@ -158,7 +158,7 @@
"IndexPageHeroSection": "<span class=\"first-line shine\"><strong>open source</strong></span><span class=\"second-line text-uppercase\">Web Application<br />Framework</span><span class=\"third-line shine2\"><strong>for asp.net core</strong></span>",
"UiFramework": "UI框架",
"EmailAddress": "电子邮件地址",
"Mobile": "移动电话",
"Mobile": "选择移动应用程序框架",
"ReactNative": "React Native",
"Strong": "强大",
"Complete": "完整",
@ -476,4 +476,4 @@
"ABPVideoCoursesPageDescription": "通过ABP团队创建的视频课程学习ABP框架的基础知识。在本视频系列中,您将学习ABP框架的基本主题。每个视频上的数字都是根据学习流程编写的。",
"ABPVideoCoursesTitle": "ABP 基本视频"
}
}
}

4
common.props

@ -1,8 +1,8 @@
<Project>
<PropertyGroup>
<LangVersion>latest</LangVersion>
<Version>8.2.3</Version>
<LeptonXVersion>3.2.3</LeptonXVersion>
<Version>8.3.2</Version>
<LeptonXVersion>3.3.2</LeptonXVersion>
<NoWarn>$(NoWarn);CS1591;CS0436</NoWarn>
<PackageIconUrl>https://abp.io/assets/abp_nupkg.png</PackageIconUrl>
<PackageProjectUrl>https://abp.io/</PackageProjectUrl>

4
docs/en/Blog-Posts/2024-05 ABP Unification/post.md

@ -51,7 +51,7 @@ You can easily download and install ABP Studio, login with your abp.io account a
### The New Pricing Page
Since the [ABP Commercial website](https://commercial.abp.io/) has merged with the main website, you will see the *Pricing* page located on the main menu of the abp.io website. We have completely revised the design and content of this page to better reflect which features are open source and free, and what is included in the commercial licenses.
Since the [ABP Commercial website](https://commercial.abp.io/) has merged with the main website, you will see the *Pricing* page located on the main menu of the abp.io website. We have completely revised the design and content of this page to better reflect which features are open source and free, and what is included in the paid licenses.
![new-pricing](new-pricing.png)
@ -68,7 +68,7 @@ Based on our and customers' experiences, there are some problems with that appro
* Getting started, development tutorials, release notes, road map and some other documents are duplicated (or very similar) among ABP Framework and ABP Commercial documents.
* For ABP Commercial users, it is not clear if they also need to read the ABP Framework (open source) documentation or not. Also, when they read the framework document, some parts are different for ABP Commercial users, and it is also not clear in some cases.
We are currently working to completely merge the ABP Framework (open source) and ABP Commercial documentation, remove duplications and revisit the contents. We will clearly indicate if a part of a document requires a commercial license.
We are currently working to completely merge the ABP Framework (open source) and ABP Commercial documentation, remove duplications and revisit the contents. We will clearly indicate if a part of a document requires a paid license.
The left navigation panel tree is also completely revisited and simplified:

15
docs/en/cli/index.md

@ -105,6 +105,8 @@ abp cli update
abp cli update --preview
abp cli update --version 1.0.0
abp cli remove
abp cli check-version
abp cli clear-cache
````
### new
@ -138,12 +140,13 @@ For more samples, go to [ABP CLI Create Solution Samples](new-command-samples.md
* `--tiered`: Creates a tiered solution where Web and Http API layers are physically separated. If not specified, it creates a layered solution which is less complex and suitable for most scenarios. (*Available for* ***Team*** *or higher licenses*)
* `angular`: Angular UI. There are some additional options for this template:
* `--tiered`: The Auth Server project comes as a separate project and runs at a different endpoint. It separates the Auth Server from the API Host application. If not specified, you will have a single endpoint in the server side. (*Available for* ***Team*** *or higher licenses*)
* `--pwa`: Specifies the project as Progressive Web Application.
* `--progressive-web-app` or `-pwa`: Specifies the project as Progressive Web Application.
* `blazor-webapp`: Blazor Web App UI. There are some additional options for this template:
* `--tiered`: The Auth Server and the API Host project comes as separate projects and run at different endpoints. It has 3 startup projects: *HttpApi.Host*, *AuthServer* and *Blazor* and and each runs on different endpoints. If not specified, you will have a single endpoint for your web project.
* `--progressive-web-app` or `-pwa`: Specifies the project as Progressive Web Application.
* `blazor`: Blazor UI. There are some additional options for this template:
* `--tiered`The Auth Server project comes as a separate project and runs at a different endpoint. It separates the Auth Server from the API Host application. If not specified, you will have a single endpoint in the server side. (*Available for* ***Team*** *or higher licenses*)
* `--pwa`: Specifies the project as Progressive Web Application.
* `--progressive-web-app` or `-pwa`: Specifies the project as Progressive Web Application.
* `blazor-server`: Blazor Server UI. There are some additional options for this template:
* `--tiered`: The Auth Server and the API Host project comes as separate projects and run at different endpoints. It has 3 startup projects: *HttpApi.Host*, *AuthServer* and *Blazor* and and each runs on different endpoints. If not specified, you will have a single endpoint for your web project. (*Available for* ***Team*** *or higher licenses*)
* `maui-blazor`: Blazor Maui UI (*Available for* ***Team*** *or higher licenses*). There are some additional options for this template:
@ -158,8 +161,12 @@ For more samples, go to [ABP CLI Create Solution Samples](new-command-samples.md
* `ef`: Entity Framework Core.
* `mongodb`: MongoDB.
* `--connection-string` or `-cs`: Overwrites the default connection strings in all `appsettings.json` files. The default connection string is `Server=localhost;Database=MyProjectName;Trusted_Connection=True` for EF Core and it is configured to use the SQL Server. If you want to use the EF Core, but need to change the DBMS, you can change it as [described here](../framework/data/entity-framework-core/other-dbms.md) (after creating the solution).
* `--skip-migrations` or `-sm`: Skips the creating initial database migration step.
* `--skip-migrator` or `-smr`: Skips the run database migrator step.
* `--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. This option is only included in PRO templates.
* `--without-cms-kit`: When you add a public website to your solution, it automatically includes the [CmsKit](./../modules/cms-kit-pro/index.md) module. If you don't want to include *CmsKit*, you can use this parameter.
* `--separate-tenant-schema`: Creates a different DbContext for tenant schema. If not specified, the tenant schema is shared with the host schema. This option is only included in PRO templates.
* `--sample-crud-page` or `-scp`: It adds the [BookStore](./../tutorials/book-store/index.md) sample to your solution.
* `--theme` or `-th`: Specifes the theme. Default theme is `leptonx`. Available themes:
* `leptonx`: LeptonX Theme. (*Available for* ***Team*** *or higher licenses*)
* `leptonx-lite`: LeptonX-Lite Theme.
@ -176,6 +183,9 @@ For more samples, go to [ABP CLI Create Solution Samples](new-command-samples.md
* `ef`: Entity Framework Core.
* `mongodb`: MongoDB.
* `--connection-string` or `-cs`: Overwrites the default connection strings in all `appsettings.json` files. The default connection string is `Server=localhost;Database=MyProjectName;Trusted_Connection=True` for EF Core and it is configured to use the SQL Server. If you want to use the EF Core, but need to change the DBMS, you can change it as [described here](../framework/data/entity-framework-core/other-dbms.md) (after creating the solution).
* `--skip-migrations` or `-sm`: Skips the creating initial database migration step.
* `--skip-migrator` or `-smr`: Skips the run database migrator step.
* `--sample-crud-page` or `-scp`: It adds the [BookStore](./../tutorials/book-store/index.md) sample to your solution.
* `--theme`: Specifes the theme. Default theme is `leptonx`. Available themes:
* `leptonx`: LeptonX Theme. (*Available for* ***Team*** *or higher licenses*)
* `leptonx-lite`: LeptonX-Lite Theme.
@ -213,6 +223,7 @@ For more samples, go to [ABP CLI Create Solution Samples](new-command-samples.md
* `--dont-run-install-libs`: Skip installing client side packages.
* `--dont-run-bundling`: Skip bundling for Blazor packages.
* `--no-kubernetes-configuration` or `-nkc`: Skips the Kubernetes configuration files.
* `--no-social-logins` or `-nsl`: Skipts the social login configuration.
* *Module Options*: You can skip some modules if you don't want to add them to your solution (*Available for* ***Team*** *or higher licenses*). Available commands:
* `-no-saas`: Skips the Saas module.
* `-no-gdpr`: Skips the GDPR module.

8
docs/en/docs-nav.json

@ -1882,13 +1882,17 @@
"text": "Overview",
"path": "samples"
},
{
"text": "EventHub",
"path": "https://github.com/abpframework/eventhub"
},
{
"text": "eShopOnAbp",
"path": "https://github.com/abpframework/eShopOnAbp"
},
{
"text": "EventHub",
"path": "https://github.com/abpframework/eventhub"
"text": "CMS Kit Demo",
"path": "https://github.com/abpframework/cms-kit-demo"
},
{
"text": "Easy CRM",

2
docs/en/framework/architecture/modularity/basics.md

@ -7,7 +7,7 @@ ABP was designed to support to build fully modular applications and systems wher
* This document introduces the basics of the module system.
* [Module development best practice guide](../best-practices) explains some **best practices** to develop **re-usable application modules** based on **DDD** principles and layers. A module designed based on this guide will be **database independent** and can be deployed as a **microservice** if needed.
* [Pre-built application modules](../../../modules) are **ready to use** in any kind of application.
* [Module startup template](../../../solution-templates/layered-web-application) is a jump start way to **create a new module**.
* [Module startup template](../../../solution-templates/application-module) is a jump start way to **create a new module**.
* [ABP CLI](../../../cli/index.md) has commands to support modular development.
* All other framework features are compatible to the modularity system.

96
docs/en/framework/architecture/multi-tenancy/index.md

@ -10,8 +10,8 @@ Wikipedia [defines](https://en.wikipedia.org/wiki/Multitenancy) the multi-tenanc
There are two main side of a typical SaaS / Multi-tenant application:
* A **Tenant** is a customer of the SaaS application that pays money to use the service.
* **Host** is the company that owns the SaaS application and manages the system.
- A **Tenant** is a customer of the SaaS application that pays money to use the service.
- **Host** is the company that owns the SaaS application and manages the system.
The Host and the Tenant terms will be used for that purpose in the rest of the document.
@ -36,9 +36,9 @@ Configure<AbpMultiTenancyOptions>(options =>
ABP supports all the following approaches to store the tenant data in the database;
* **Single Database**: All tenants are stored in a single database.
* **Database per Tenant**: Every tenant has a separate, dedicated database to store the data related to that tenant.
* **Hybrid**: Some tenants share a single databases while some tenants may have their own databases.
- **Single Database**: All tenants are stored in a single database.
- **Database per Tenant**: Every tenant has a separate, dedicated database to store the data related to that tenant.
- **Hybrid**: Some tenants share a single database while some tenants may have their own databases.
[Tenant management module](../../../modules/tenant-management.md) (which comes pre-installed with the startup projects) allows you to set a connection string for any tenant (as optional), so you can achieve any of the approaches.
@ -50,9 +50,9 @@ Multi-tenancy system is designed to **work seamlessly** and make your applicatio
You should implement the `IMultiTenant` interface for your [entities](../domain-driven-design/entities.md) to make them **multi-tenancy ready**.
**Example: A multi-tenant *Product* entity**
**Example: A multi-tenant _Product_ entity**
````csharp
```csharp
using System;
using Volo.Abp.Domain.Entities;
using Volo.Abp.MultiTenancy;
@ -68,7 +68,7 @@ namespace MultiTenancyDemo.Products
public float Price { get; set; }
}
}
````
```
`IMultiTenant` interface just defines a `TenantId` property. When you implement this interface, ABP **automatically** [filters](../../infrastructure/data-filtering.md) entities for the current tenant when you query from database. So, you don't need to manually add `TenantId` condition while performing queries. A tenant can not access to data of another tenant by default.
@ -96,9 +96,9 @@ If you set the `TenantId` value for a specific entity object, it will override t
`ICurrentTenant` defines the following properties;
* `Id` (`Guid`): Id of the current tenant. Can be `null` if the current user is a host user or the tenant could not be determined from the request.
* `Name` (`string`): Name of the current tenant. Can be `null` if the current user is a host user or the tenant could not be determined from the request.
* `IsAvailable` (`bool`): Returns `true` if the `Id` is not `null`.
- `Id` (`Guid`): Id of the current tenant. Can be `null` if the current user is a host user or the tenant could not be determined from the request.
- `Name` (`string`): Name of the current tenant. Can be `null` if the current user is a host user or the tenant could not be determined from the request.
- `IsAvailable` (`bool`): Returns `true` if the `Id` is not `null`.
#### Change the Current Tenant
@ -108,7 +108,7 @@ ABP automatically filters the resources (database, cache...) based on the `ICurr
**Example: Get product count of a specific tenant**
````csharp
```csharp
using System;
using System.Threading.Tasks;
using Volo.Abp.Domain.Repositories;
@ -134,11 +134,11 @@ namespace MultiTenancyDemo.Products
}
}
}
````
```
* `Change` method can be used in a **nested way**. It restores the `CurrentTenant.Id` to the previous value after the `using` statement.
* When you use `CurrentTenant.Id` inside the `Change` scope, you get the `tenantId` provided to the `Change` method. So, the repository also get this `tenantId` and can filter the database query accordingly.
* Use `CurrentTenant.Change(null)` to change scope to the host context.
- `Change` method can be used in a **nested way**. It restores the `CurrentTenant.Id` to the previous value after the `using` statement.
- When you use `CurrentTenant.Id` inside the `Change` scope, you get the `tenantId` provided to the `Change` method. So, the repository also get this `tenantId` and can filter the database query accordingly.
- Use `CurrentTenant.Change(null)` to change scope to the host context.
> Always use the `Change` method with a `using` statement like done in this example.
@ -148,7 +148,7 @@ As mentioned before, ABP handles data isolation between tenants using the [Data
**Example: Get count of products in the database, including all the products of all the tenants.**
````csharp
```csharp
using System;
using System.Threading.Tasks;
using Volo.Abp.Data;
@ -181,7 +181,7 @@ namespace MultiTenancyDemo.Products
}
}
````
```
See the [Data Filtering document](../../infrastructure/data-filtering.md) for more.
@ -201,15 +201,15 @@ ABP provides an extensible **Tenant Resolving** system for that purpose. Tenant
The following resolvers are provided and configured by default;
* `CurrentUserTenantResolveContributor`: Gets the tenant id from claims of the current user, if the current user has logged in. **This should always be the first contributor for the security**.
* `QueryStringTenantResolveContributor`: Tries to find current tenant id from query string parameters. The parameter name is `__tenant` by default.
* `RouteTenantResolveContributor`: Tries to find current tenant id from route (URL path). The variable name is `__tenant` by default. If you defined a route with this variable, then it can determine the current tenant from the route.
* `HeaderTenantResolveContributor`: Tries to find current tenant id from HTTP headers. The header name is `__tenant` by default.
* `CookieTenantResolveContributor`: Tries to find current tenant id from cookie values. The cookie name is `__tenant` by default.
- `CurrentUserTenantResolveContributor`: Gets the tenant id from claims of the current user, if the current user has logged in. **This should always be the first contributor for the security**.
- `QueryStringTenantResolveContributor`: Tries to find current tenant id from query string parameters. The parameter name is `__tenant` by default.
- `RouteTenantResolveContributor`: Tries to find current tenant id from route (URL path). The variable name is `__tenant` by default. If you defined a route with this variable, then it can determine the current tenant from the route.
- `HeaderTenantResolveContributor`: Tries to find current tenant id from HTTP headers. The header name is `__tenant` by default.
- `CookieTenantResolveContributor`: Tries to find current tenant id from cookie values. The cookie name is `__tenant` by default.
###### Problems with the NGINX
You may have problems with the `__tenant` in the HTTP Headers if you're using the [nginx](https://www.nginx.com/) as the reverse proxy server. Because it doesn't allow to use underscore and some other special characters in the HTTP headers and you may need to manually configure it. See the following documents please:
You may have problems with the `__tenant` in the HTTP Headers if you're using the [nginx](https://www.nginx.com/) as the reverse proxy server. Because it doesn't allow to use underscore and some other special characters in the HTTP headers and you may need to manually configure it. See the following documents please:
http://nginx.org/en/docs/http/ngx_http_core_module.html#ignore_invalid_headers
http://nginx.org/en/docs/http/ngx_http_core_module.html#underscores_in_headers
@ -219,22 +219,24 @@ http://nginx.org/en/docs/http/ngx_http_core_module.html#underscores_in_headers
**Example:**
````csharp
```csharp
services.Configure<AbpAspNetCoreMultiTenancyOptions>(options =>
{
options.TenantKey = "MyTenantKey";
});
````
```
If you change the `TenantKey`, make sure to pass it to `CoreModule` in the Angular client as follows:
If you change the `TenantKey`, make sure to pass it to `provideAbpCore` via `withOptions` method in the Angular client as follows:
```js
@NgModule({
imports: [
CoreModule.forRoot({
// ...
tenantKey: 'MyTenantKey'
}),
providers: [
provideAbpCore(
withOptions({
// ...
tenantKey: "MyTenantKey",
})
),
],
// ...
})
@ -249,7 +251,7 @@ import { TENANT_KEY } from '@abp/ng.core';
class SomeComponent {
constructor(@Inject(TENANT_KEY) private tenantKey: string) {}
}
}
```
> However, we don't suggest to change this value since some clients may assume the the `__tenant` as the parameter name and they might need to manually configure then.
@ -277,12 +279,12 @@ In a real application, most of times you will want to determine the current tena
**Example: Add a subdomain resolver**
````csharp
```csharp
Configure<AbpTenantResolveOptions>(options =>
{
options.AddDomainTenantResolver("{0}.mydomain.com");
});
````
```
* `{0}` is the placeholder to determine the current tenant's unique name.
* Add this code to the `ConfigureServices` method of your [module](../modularity/basics.md).
@ -293,14 +295,14 @@ Openiddict is the default Auth Server in ABP (since v6.0). When you use OpenIddi
```csharp
// using Volo.Abp.OpenIddict.WildcardDomains
PreConfigure<AbpOpenIddictWildcardDomainOptions>(options =>
PreConfigure<AbpOpenIddictWildcardDomainOptions>(options =>
{
options.EnableWildcardDomainSupport = true;
options.WildcardDomainsFormat.Add("https://{0}.mydomain.com");
});
```
You must add this code to the `Configure` method as well.
You must add this code to the `Configure` method as well.
```csharp
// using Volo.Abp.MultiTenancy;
@ -312,7 +314,7 @@ Configure<AbpTenantResolveOptions>(options =>
```
> There is an [example](https://github.com/abpframework/abp-samples/tree/master/DomainTenantResolver) that uses the subdomain to determine the current tenant.
> There is an [example](https://github.com/abpframework/abp-samples/tree/master/DomainTenantResolver) that uses the subdomain to determine the current tenant.
If you use a sepereted Auth server, you must install `[Owl.TokenWildcardIssuerValidator](https://www.nuget.org/packages/Owl.TokenWildcardIssuerValidator)` on the `HTTPApi.Host` project
@ -332,7 +334,7 @@ context.Services
options.Authority = configuration["AuthServer:Authority"];
options.RequireHttpsMetadata = Convert.ToBoolean(configuration["AuthServer:RequireHttpsMetadata"]);
options.Audience = "ExampleProjectName";
// start of added block
options.TokenValidationParameters.IssuerValidator = TokenWildcardIssuerValidator.IssuerValidator;
options.TokenValidationParameters.ValidIssuers = new[]
@ -348,16 +350,16 @@ context.Services
You can add implement your custom tenant resolver and configure the `AbpTenantResolveOptions` in your module's `ConfigureServices` method as like below:
````csharp
```csharp
Configure<AbpTenantResolveOptions>(options =>
{
options.TenantResolvers.Add(new MyCustomTenantResolveContributor());
});
````
```
`MyCustomTenantResolveContributor` must inherit from the `TenantResolveContributorBase` (or implement the `ITenantResolveContributor`) as shown below:
````csharp
```csharp
using System.Threading.Tasks;
using Volo.Abp.MultiTenancy;
@ -373,7 +375,7 @@ namespace MultiTenancyDemo.Web
}
}
}
````
```
* A tenant resolver should set `context.TenantIdOrName` if it can determine it. If not, just leave it as is to allow the next resolver to determine it.
* `context.ServiceProvider` can be used if you need to additional services to resolve from the [dependency injection](../../fundamentals/dependency-injection.md) system.
@ -384,9 +386,9 @@ Multi-Tenancy middleware is an ASP.NET Core request pipeline [middleware](https:
Multi-Tenancy middleware is typically placed just under the [authentication](https://docs.microsoft.com/en-us/aspnet/core/security/authentication) middleware (`app.UseAuthentication()`):
````csharp
```csharp
app.UseMultiTenancy();
````
```
> This middleware is already configured in the startup templates, so you normally don't need to manually add it.
@ -406,7 +408,7 @@ The [tenant management module](../../../modules/tenant-management.md) is **inclu
**Example: Define tenants in appsettings.json**
````json
```json
"Tenants": [
{
"Id": "446a5211-3d72-4339-9adc-845151f8ada0",
@ -422,7 +424,7 @@ The [tenant management module](../../../modules/tenant-management.md) is **inclu
}
}
]
````
```
> It is recommended to **use the Tenant Management module**, which is already pre-configured when you create a new application with the ABP startup templates.

8
docs/en/framework/fundamentals/dynamic-claims.md

@ -1,8 +1,8 @@
# Dynamic Claims
When a client authenticates and obtains an access token or an authentication cookie, the claims in that token or cookie are not changed unless it re-authenticates. For most of the claims, that may not be a problem since claims are not frequently changing values. However, some claims may be changed and these changes should be reflected to the current session immediately. For example, we can revoke a role from a user and that should be immediately effective, otherwise user will continue to use that role's permissions until re-login to the application.
When a client authenticates and obtains an access token or an authentication cookie, the claims in that token or cookie are not changed unless it re-authenticates. That is not a problem for most claims since the claim values do not frequently change. However, for some claims, it may be required to immediately see the impact after the claim values change in the current session. For example, if a role is revoked from a user, you want to see its effect in the next request. Otherwise, the user will continue to use that role's permissions until re-login to the application.
ABP's dynamic claims feature is used to automatically and dynamically override the configured claim values in the client's authentication token/cookie by the latest values of these claims.
ABP's dynamic claims feature dynamically overrides the configured claim values in the client's authentication token/cookie with the latest values of these claims.
## How to Use
@ -10,7 +10,7 @@ This feature is disabled by default. You should enable it for your application a
> **Beginning from the v8.0, all the [startup templates](../../solution-templates) are pre-configured and the dynamic claims feature is enabled by default. So, if you have created a solution with v8.0 and above, you don't need to make any configuration. Follow the instructions only if you've upgraded from a version lower than 8.0.**
### Enabling the Dynamic Claims
### Enabling / Disabling the Dynamic Claims
You can enable it by the following code:
@ -19,7 +19,7 @@ public override void ConfigureServices(ServiceConfigurationContext context)
{
context.Services.Configure<AbpClaimsPrincipalFactoryOptions>(options =>
{
options.IsDynamicClaimsEnabled = true;
options.IsDynamicClaimsEnabled = true; //set it "true" to enable "Dynamic Claims" or "false" to disable it.
});
}
````

BIN
docs/en/framework/ui/angular/images/angular-advanced-entity-filters-with-custom-content-above-filter.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 35 KiB

BIN
docs/en/framework/ui/angular/images/angular-advanced-entity-filters-with-form.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 31 KiB

BIN
docs/en/framework/ui/angular/images/angular-advanced-entity-filters-without-form.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

BIN
docs/en/framework/ui/angular/images/angular-advanced-entity-filters.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 36 KiB

BIN
docs/en/framework/ui/angular/images/manage-profile-page-new-tab.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 21 KiB

BIN
docs/en/framework/ui/angular/images/manage-profile-page.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 31 KiB

179
docs/en/framework/ui/angular/localization.md

@ -11,7 +11,7 @@ The Localization key format consists of 2 sections which are **Resource Name** a
const environment = {
//...
localization: {
defaultResourceName: 'MyProjectName',
defaultResourceName: "MyProjectName",
},
};
```
@ -38,7 +38,8 @@ You can also specify a default value as shown below:
```html
<h1>
{%{{{ { key: 'Resource::Key', defaultValue: 'Default Value' } | abpLocalization }}}%}
{%{{{ { key: 'Resource::Key', defaultValue: 'Default Value' } |
abpLocalization }}}%}
</h1>
```
@ -82,17 +83,17 @@ After that, you are able to use localization service.
```js
this.localizationService.instant(
'AbpIdentity::UserDeletionConfirmation',
'John'
"AbpIdentity::UserDeletionConfirmation",
"John"
);
// with fallback value
this.localizationService.instant(
{
key: 'AbpIdentity::UserDeletionConfirmation',
defaultValue: 'Default Value',
key: "AbpIdentity::UserDeletionConfirmation",
defaultValue: "Default Value",
},
'John'
"John"
);
// Output
@ -102,12 +103,12 @@ this.localizationService.instant(
To get a localized text as [_Observable_](https://rxjs.dev/guide/observable) use `get` method instead of `instant`:
```js
this.localizationService.get('Resource::Key');
this.localizationService.get("Resource::Key");
// with fallback value
this.localizationService.get({
key: 'Resource::Key',
defaultValue: 'Default Value',
key: "Resource::Key",
defaultValue: "Default Value",
});
```
@ -118,41 +119,46 @@ Localizations can be determined on backend side. Angular UI gets the localizatio
See an example:
```ts
// app.module.ts
import { provideAbpCore, withOptions } from '@abp/ng.core';
@NgModule({
imports: [
//...other imports
CoreModule.forRoot({
localizations: [
{
culture: 'en',
resources: [
{
resourceName: 'MyProjectName',
texts: {
Administration: 'Administration',
HomePage: 'Home',
providers: [
// ...
provideAbpCore(
withOptions({
...,
localizations: [
{
culture: 'en',
resources: [
{
resourceName: 'MyProjectName',
texts: {
Administration: 'Administration',
HomePage: 'Home',
},
},
},
],
},
{
culture: 'de',
resources: [
{
resourceName: 'MyProjectName',
texts: {
Administration: 'Verwaltung',
HomePage: 'Startseite',
],
},
{
culture: 'de',
resources: [
{
resourceName: 'MyProjectName',
texts: {
Administration: 'Verwaltung',
HomePage: 'Startseite',
},
},
},
],
},
],
}),
]
],
},
],
}),
),
...
],
})
export class AppModule {}
```
...or, you can determine the localizations in a feature module:
@ -256,10 +262,10 @@ Find [styles configuration in angular.json](https://angular.io/guide/workspace-c
If you have created and injected chunks for Fontawesome as seen above, you no longer need the lazy loading in the `AppComponent` which was implemented before v2.9. Simply remove them. The `AppComponent` in the template of the new version looks like this:
```js
import { Component } from '@angular/core';
import { Component } from "@angular/core";
@Component({
selector: 'app-root',
selector: "app-root",
template: `
<abp-loader-bar></abp-loader-bar>
<router-outlet></router-outlet>
@ -274,33 +280,32 @@ Since ABP has more than one language, Angular locale files loads lazily using [W
### registerLocaleFn
`registerLocale` function that exported from `@abp/ng.core/locale` package is a higher order function that accepts `cultureNameLocaleFileMap` object and `errorHandlerFn` function as params and returns Webpack `import` function. A `registerLocale` function must be passed to the `forRoot` of the `CoreModule` as shown below:
```js
// app.module.ts
`registerLocale` function that exported from `@abp/ng.core/locale` package is a higher order function that accepts `cultureNameLocaleFileMap` object and `errorHandlerFn` function as params and returns Webpack `import` function. A `registerLocale` function must be passed to the `withOptions` of the `provideAbpCore` as shown below:
```ts
import { provideAbpCore, withOptions } from '@abp/ng.core';
import { registerLocale } from '@abp/ng.core/locale';
// if you have commercial license and the language management module, add the below import
// import { registerLocale } from '@volo/abp.ng.language-management/locale';
@NgModule({
imports: [
// ...
CoreModule.forRoot({
// ...other options,
registerLocaleFn: registerLocale(
// you can pass the cultureNameLocaleFileMap and errorHandlerFn as optionally
{
cultureNameLocaleFileMap: { 'pt-BR': 'pt' },
errorHandlerFn: ({ resolve, reject, locale, error }) => {
// the error can be handled here
providers: [
provideAbpCore(
withOptions({
...,
registerLocaleFn: registerLocale(
// you can pass the cultureNameLocaleFileMap and errorHandlerFn as optionally
{
cultureNameLocaleFileMap: { 'pt-BR': 'pt' },
errorHandlerFn: ({ resolve, reject, locale, error }) => {
// the error can be handled here
},
},
},
)
}),
//...
]
),
}),
),
...
],
})
export class AppModule {}
```
### Mapping of Culture Name to Angular Locale File Name
@ -320,20 +325,23 @@ import { registerLocale } from '@abp/ng.core/locale';
@NgModule({
imports: [
providers: [
// ...
CoreModule.forRoot({
// ...other options,
registerLocaleFn: registerLocale(
{
cultureNameLocaleFileMap: {
"DotnetCultureName": "AngularLocaleFileName",
"pt-BR": "pt" // example
provideAbpCore(
withOptions({
...,
registerLocaleFn: registerLocale(
{
cultureNameLocaleFileMap: {
"DotnetCultureName": "AngularLocaleFileName",
"pt-BR": "pt" // example
},
},
},
)
}),
//...
)
}),
),
]
})
```
See [all locale files in Angular](https://github.com/angular/angular/tree/master/packages/common/locales).
@ -345,12 +353,12 @@ Add the below code to the `app.module.ts` by replacing `your-locale` placeholder
```js
//app.module.ts
import { storeLocaleData } from '@abp/ng.core/locale';
import { storeLocaleData } from "@abp/ng.core/locale";
import(
/* webpackChunkName: "_locale-your-locale-js"*/
/* webpackMode: "eager" */
'@angular/common/locales/your-locale.js'
).then((m) => storeLocaleData(m.default, 'your-locale'));
"@angular/common/locales/your-locale.js"
).then((m) => storeLocaleData(m.default, "your-locale"));
```
...or a custom `registerLocale` function can be passed to the `CoreModule`:
@ -373,14 +381,17 @@ export function registerLocale(locale: string) {
import { registerLocale } from './register-locale';
@NgModule({
imports: [
providers: [
// ...
CoreModule.forRoot({
// ...other options,
registerLocaleFn: registerLocale
}),
provideAbpCore(
withOptions({
...,
registerLocaleFn: registerLocale,
}),
),
//...
]
})
```
After this custom `registerLocale` function, since the en and fr added to the `webpackInclude`, only en and fr locale files will be created as chunks:

4
docs/en/framework/ui/angular/quick-start.md

@ -6,8 +6,8 @@
Please follow the steps below to prepare your development environment for Angular.
1. **Install Node.js:** Please visit [Node.js downloads page](https://nodejs.org/en/download/) and download proper Node.js v16 or v18 installer for your OS. An alternative is to install [NVM](https://github.com/nvm-sh/nvm) and use it to have multiple versions of Node.js in your operating system.
2. **[Optional] Install Yarn:** You may install Yarn v1 (not v2) following the instructions on [the installation page](https://classic.yarnpkg.com/en/docs/install). Yarn v1 delivers an arguably better developer experience compared to npm v6 and below. You may skip this step and work with npm, which is built-in in Node.js, instead.
1. **Install Node.js:** Please visit [Node.js downloads page](https://nodejs.org/en/download/) and download proper Node.js `v18.19+` installer for your OS. An alternative is to install [NVM](https://github.com/nvm-sh/nvm) and use it to have multiple versions of Node.js in your operating system.
2. **[Optional] Install Yarn:** You may install Yarn v1.22+ (not v2) following the instructions on [the installation page](https://classic.yarnpkg.com/en/docs/install). Yarn v1 delivers an arguably better developer experience compared to npm v10 and below. You may skip this step and work with npm, which is built-in in Node.js, instead.
3. **[Optional] Install VS Code:** [VS Code](https://code.visualstudio.com/) is a free, open-source IDE which works seamlessly with TypeScript. Although you can use any IDE including Visual Studio or Rider, VS Code will most likely deliver the best developer experience when it comes to Angular projects. ABP project templates even contain plugin recommendations for VS Code users, which VS Code will ask you to install when you open the Angular project folder. Here is a list of recommended extensions:
- [Angular Language Service](https://marketplace.visualstudio.com/items?itemName=angular.ng-template)
- [Prettier - Code formatter](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)

2
docs/en/framework/ui/blazor/branding.md

@ -24,8 +24,6 @@ namespace MyCompanyName.MyProjectName.Blazor
}
````
> Currently, setting the `AppName` is only applicable to the [Basic Theme](./basic-theme.md), it does not have any effect on the other [official themes](../../../ui-themes).
The result will be like shown below:
![branding-appname](../../../images/branding-appname.png)

2
docs/en/framework/ui/mvc-razor-pages/branding.md

@ -26,8 +26,6 @@ namespace MyProject.Web
}
````
> Currently, setting the `AppName` is only applicable to the [Basic Theme](./basic-theme.md), it does not have any effect on the other [official themes](../../../ui-themes).
The result will be like shown below:
![bookstore-added-logo](../../../images/bookstore-added-logo.png)

BIN
docs/en/get-started/images/abp-studio-created-new-solution.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 297 KiB

BIN
docs/en/get-started/images/abp-studio-new-solution-dialog-additional-options-microservice.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 75 KiB

BIN
docs/en/get-started/images/abp-studio-new-solution-dialog-additional-options.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

BIN
docs/en/get-started/images/abp-studio-new-solution-dialog-database-configurations-efcore.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 80 KiB

BIN
docs/en/get-started/images/abp-studio-new-solution-dialog-database-configurations-mongo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 65 KiB

BIN
docs/en/get-started/images/abp-studio-new-solution-dialog-database-provider-efcore.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 124 KiB

BIN
docs/en/get-started/images/abp-studio-new-solution-dialog-database-provider-mongo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 94 KiB

BIN
docs/en/get-started/images/abp-studio-new-solution-dialog-mobile-framework-microservice.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 100 KiB

BIN
docs/en/get-started/images/abp-studio-new-solution-dialog-mobile-framework.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 104 KiB

BIN
docs/en/get-started/images/abp-studio-new-solution-dialog-optional-modules.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

BIN
docs/en/get-started/images/abp-studio-new-solution-dialog-public-website.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

BIN
docs/en/get-started/images/abp-studio-new-solution-dialog-solution-properties.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 95 KiB

BIN
docs/en/get-started/images/abp-studio-new-solution-dialog-solution-structure.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 80 KiB

BIN
docs/en/get-started/images/abp-studio-new-solution-dialog-ui-framework.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 147 KiB

BIN
docs/en/get-started/images/abp-studio-new-solution-dialog-ui-theme.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 70 KiB

BIN
docs/en/get-started/images/abp-studio-quick-start-application-solution-runner.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 131 KiB

BIN
docs/en/get-started/images/abp-studio-quick-start-browse-command.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 25 KiB

BIN
docs/en/get-started/images/abp-studio-quick-start-browse.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 246 KiB

BIN
docs/en/get-started/images/abp-studio-quick-start-example-applications-in-solution-runner.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 37 KiB

BIN
docs/en/get-started/images/solution-runner-public-website.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 1.0 MiB

32
docs/en/get-started/layered-web-application.md

@ -22,8 +22,8 @@ The following tools should be installed on your development machine:
* [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) (v17.3+) for Windows / [Visual Studio for Mac](https://visualstudio.microsoft.com/vs/mac/). <sup id="a-editor">[1](#f-editor)</sup>
* [.NET 8.0+](https://dotnet.microsoft.com/en-us/download/dotnet)
{{ if UI != "Blazor" }}
* [Node v16 or v18](https://nodejs.org/)
* [Yarn v1.20+ (not v2)](https://classic.yarnpkg.com/en/docs/install) <sup id="a-yarn">[2](#f-yarn)</sup> or npm v6+ (already installed with Node)
* [Node v18.19+](https://nodejs.org/)
* [Yarn v1.22+ (not v2)](https://classic.yarnpkg.com/en/docs/install) <sup id="a-yarn">[2](#f-yarn)</sup> or npm v10+ (already installed with Node)
{{ end }}
{{ if Tiered == "Yes" }}
* [Redis](https://redis.io/) (as the [distributed cache](../framework/fundamentals/caching.md)).
@ -77,17 +77,25 @@ LeptonX is the suggested UI theme that is proper for production usage. Select on
Here, you see all the mobile applications available in that startup solution template. These mobile applications are well-integrated into your solution and can use the same backend with your web application. They are simple (do not have pre-built features as much as the web application) but a very good starting point to build your mobile application.
Pick the one best for you, or select the *None* if you don't want a mobile application in your solution, then click Next to navigate to the *Additional UI options* screen:
Pick the one best for you, or select the *None* if you don't want a mobile application in your solution, then click Next to navigate to the *Public website* screen:
![abp-studio-new-solution-dialog-additional-ui-options](images/abp-studio-new-solution-dialog-additional-ui-options.png)
![abp-studio-new-solution-dialog-public-website](images/abp-studio-new-solution-dialog-public-website.png)
That startup solution template also provides an option to create a second web application inside the solution. The second application is called the Public website, an ASP.NET Core MVC / Razor Page application. It can be used to create a public landing/promotion for your product. It is well integrated into the solution (can share the same services, entities, database, and the same authentication logic, for example). If you want, you can also include the [CMS Kit module](../modules/cms-kit) to your solution to add dynamic content features to your web application.
So, either select the *Public website* or skip it and click the Next button for the *Solution Structure* selection:
So, either select the *Public website* or skip it and click the Next button for the *Optional Modules* selection:
![abp-studio-new-solution-dialog-optional-modules.png](images/abp-studio-new-solution-dialog-optional-modules.png)
Each item in that list is a pre-built application module. You can click the blue icon near to the module name to get more information about the module. You can leave the list as is (so, it installs the most common and used modules for you) or customize based on your preference.
Installing a module after creating the solution may require manual steps. So, it is better to decide the modules in the beginning. You can create an example solutions before your real solution to explore the solution and modules.
Once you select the desired modules, click the *Next* button for the *Solution Structure* screen:
![abp-studio-new-solution-dialog-solution-structure](images/abp-studio-new-solution-dialog-solution-structure.png)
The *Tiered* option is used to physically separate the web application (the UI part) from the backend HTTP APIs. It creates a separate host application that only serves the HTTP (REST) APIs. The web application then performs remote HTTP calls to that application for every operation. If the *Tiered* option is not selected, then the web and HTTP APIs are hosted in a single application, and the calls from the UI layer to the API layer are performed in-process.
It creates a separate host application that only serves the HTTP (REST) APIs. The web application then performs remote HTTP calls to that application for every operation. If the *Tiered* option is not selected, then the web and HTTP APIs are hosted in a single application, and the calls from the UI layer to the API layer are performed in-process.
The tiered architecture allows you to host the web (UI) application in a server that can not access to your database server. However, it brings a slight loss of performance (because of the HTTP calls between UI and HTTP API applications) and makes your architecture, development, and deployment more complex. If you don't understand the tiered structure, just skip it.
@ -107,9 +115,13 @@ On that screen, you can decide on your database provider by selecting one of the
![abp-studio-new-solution-dialog-database-configurations](images/abp-studio-new-solution-dialog-database-configurations-mongo.png)
{{ end }}
Here, you can select the database management systems (DBMS){{ if DB == "EF" }} and the connection string{{ end }}. Now, we are ready to allow ABP Studio to create our solution. Just click the *Create* button and let the ABP Studio do the rest for you.
Here, you can select the database management systems (DBMS){{ if DB == "EF" }} and the connection string{{ end }}. Click *Next* button to see the *Additional Options*.
![abp-studio-new-solution-dialog-additional-options](images/abp-studio-new-solution-dialog-additional-options.png)
If you uncheck the *Kubernetes Configuration* option, the solution will not include the Kubernetes configuration files, such as Helm charts and other Kubernetes-related files. You can also specify *Social Logins*; if you uncheck this option, the solution will not be configured for social login.
After clicking the Create button, the dialog is closed and your solution is loaded into ABP Studio:
Now, we are ready to allow ABP Studio to create our solution. Just click the *Create* button and let the ABP Studio do the rest for you. After clicking the Create button, the dialog is closed and your solution is loaded into ABP Studio:
![abp-studio-created-new-solution](images/abp-studio-created-new-solution.png)
@ -129,7 +141,7 @@ Open the [Solution Runner](../studio/running-applications.md) section on the lef
Once you click the *Play* icon on the left side, the section is open in the same place as the Solution Explorer section. ABP Studio also opens the *Application Monitor* view on the main content area. *Application Monitor* shows useful insights for your applications (e.g. *HTTP Request*, *Events* and *Exceptions*) in real-time. You can use it to see the happenings in your applications, so you can easily track errors and many helpful details.
In the Solution Runner section (on the left side) you can see all the runnable applications in the current solution. For the MVC with public website example, we have three applications:
In the Solution Runner section (on the left side) you can see all the runnable applications in the current solution. For the MVC with public website and MAUI mobile example, we have four applications:
![abp-studio-quick-start-example-applications-in-solution-runner](images/abp-studio-quick-start-example-applications-in-solution-runner.png)
@ -230,4 +242,4 @@ Before starting the mobile application, ensure that you configure it for [react-
> For example in non-tiered MVC with public website application:
![solution-runner-public-website](images/solution-runner-public-website.png)
![solution-runner-public-website](images/solution-runner-public-website.png)

4
docs/en/get-started/microservice.md

@ -71,7 +71,7 @@ Click the Next button to see *Additional Options* selection:
![abp-studio-new-solution-dialog-additional-options](images/abp-studio-new-solution-dialog-additional-options-microservice.png)
If you unchecked the *Kubernetes Configuration* option, the solution will not include the Kubernetes configuration files which include the Helm charts and other Kubernetes related files.
If you unchecked the *Kubernetes Configuration* option, the solution will not include the Kubernetes configuration files which include the Helm charts and other Kubernetes related files. You can also specify *Social Logins*; if you uncheck this option, the solution will not be configured for social login.
Now, we are ready to allow ABP Studio to create our solution. Just click the *Create* button and let the ABP Studio do the rest for you. After clicking the Create button, the dialog is closed and your solution is loaded into ABP Studio:
@ -125,6 +125,8 @@ In the *Solution Runner* section (on the left side) you can see all the runnable
> All the leaf items in the *Solution Runner* is called as an *Application* as they are executable applications.
> For a faster start process, first start the *Docker-Dependencies*, then you can start all applications.
As shown in the figure above, the executable applications are grouped into folders like `apps`, `gateways`, `infrastructure`, and `services`. You can start/stop them all, a group (folder) of them, or one by one.
Before running the applications, it is good to be sure that all applications are built. To do that, right-click the root item in the *Solution Runner* and select *Build* -> *Build All* action.

4
docs/en/get-started/single-layer-web-application.md

@ -21,8 +21,8 @@ The following tools should be installed on your development machine:
* [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) (v17.3+) for Windows / [Visual Studio for Mac](https://visualstudio.microsoft.com/vs/mac/). <sup id="a-editor">[1](#f-editor)</sup>
* [.NET 8.0+](https://dotnet.microsoft.com/en-us/download/dotnet)
{{ if UI != "Blazor" }}
* [Node v16 or v18](https://nodejs.org/)
* [Yarn v1.20+ (not v2)](https://classic.yarnpkg.com/en/docs/install) <sup id="a-yarn">[2](#f-yarn)</sup> or npm v6+ (already installed with Node)
* [Node v18.19+](https://nodejs.org/)
* [Yarn v1.22+ (not v2)](https://classic.yarnpkg.com/en/docs/install) <sup id="a-yarn">[2](#f-yarn)</sup> or npm v10+ (already installed with Node)
{{ end }}
{{ if Tiered == "Yes" }}
* [Redis](https://redis.io/) (as the [distributed cache](../framework/fundamentals/caching.md)).

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

Loading…
Cancel
Save