Browse Source

Merge branch 'rel-9.3' into bugfix/bump-dependencies

pull/23595/head
Ma Liming 7 months ago
committed by GitHub
parent
commit
aece25d7af
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 94
      .github/ISSUE_TEMPLATE/03_studio.yml
  2. 0
      .github/ISSUE_TEMPLATE/04_article_request.yml
  3. 0
      .github/ISSUE_TEMPLATE/05_performance_issue.md
  4. 0
      .github/ISSUE_TEMPLATE/06_blank_issue.md
  5. 2
      .github/ISSUE_TEMPLATE/config.yml
  6. 101
      .github/scripts/update_versions.py
  7. 4
      .github/workflows/angular.yml
  8. 22
      .github/workflows/auto-pr.yml
  9. 11
      .github/workflows/build-and-test.yml
  10. 2
      CONTRIBUTING.md
  11. 296
      Directory.Packages.props
  12. 126
      README.md
  13. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalization.csproj
  14. 14
      abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalizationModule.cs
  15. 6
      abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/en.json
  16. 11
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json
  17. 119
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json
  18. 18
      abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json
  19. 5
      abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/en.json
  20. 10
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/AbpIoCommercialResource.cs
  21. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json
  22. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json
  23. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json
  24. 5
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json
  25. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json
  26. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json
  27. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json
  28. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json
  29. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json
  30. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json
  31. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json
  32. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json
  33. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json
  34. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json
  35. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json
  36. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json
  37. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json
  38. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json
  39. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json
  40. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json
  41. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json
  42. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json
  43. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json
  44. 10
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/AbpIoCommunityResource.cs
  45. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json
  46. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/en.json
  47. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ar.json
  48. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/cs.json
  49. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/de.json
  50. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en-GB.json
  51. 1487
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json
  52. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/es.json
  53. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fi.json
  54. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fr.json
  55. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hi.json
  56. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hr.json
  57. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hu.json
  58. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/is.json
  59. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/it.json
  60. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/nl.json
  61. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pl-PL.json
  62. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pt-BR.json
  63. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ro-RO.json
  64. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ru.json
  65. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sk.json
  66. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sl.json
  67. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/tr.json
  68. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/vi.json
  69. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json
  70. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hant.json
  71. 6
      build/common.ps1
  72. 4
      common.props
  73. 2
      docs/en/Blog-Posts/2022-03-08 v5_2_Preview/POST.md
  74. 2
      docs/en/Blog-Posts/2022-05-09 v5_3_Preview/POST.md
  75. 1
      docs/en/Blog-Posts/2022-07-26 v6_0_Preview/POST.md
  76. 7
      docs/en/Blog-Posts/2023-04-03-What-is-ABP-Framework/post.md
  77. 2
      docs/en/Blog-Posts/2024-02-16 v8_1_Preview/POST.md
  78. 2
      docs/en/Blog-Posts/2024-05-21 v8_2_Release/POST.md
  79. BIN
      docs/en/Blog-Posts/2024-07-23-AbpIo-United-Is-Live/cover.png
  80. 62
      docs/en/Blog-Posts/2024-07-23-AbpIo-United-Is-Live/post.md
  81. BIN
      docs/en/Blog-Posts/2024-07-25-Introducing-The-New-ABP-CLI/cover-image.png
  82. 81
      docs/en/Blog-Posts/2024-07-25-Introducing-The-New-ABP-CLI/post.md
  83. BIN
      docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-helm-charts.png
  84. BIN
      docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-license-comparison-table.png
  85. BIN
      docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-new-layered-solution-template-wizard-options.png
  86. BIN
      docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-new-layered-solution-template-wizard.png
  87. BIN
      docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-solution-runner-overall.png
  88. BIN
      docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-solution-runner-start-apps.png
  89. BIN
      docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-suite-in-abp-studio.png
  90. BIN
      docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-suite-open-in-abp-studio.png
  91. 111
      docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/post.md
  92. BIN
      docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/solution-explorer.png
  93. BIN
      docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/suite-generated-entity.png
  94. BIN
      docs/en/Blog-Posts/2024-07-31 v8_3_Preview/cms-kit-faq.png
  95. BIN
      docs/en/Blog-Posts/2024-07-31 v8_3_Preview/cmskit-module-comments-settings.png
  96. BIN
      docs/en/Blog-Posts/2024-07-31 v8_3_Preview/cmskit-module-markedItems.png
  97. BIN
      docs/en/Blog-Posts/2024-07-31 v8_3_Preview/cover-image.png
  98. BIN
      docs/en/Blog-Posts/2024-07-31 v8_3_Preview/docs-google-search.png
  99. BIN
      docs/en/Blog-Posts/2024-07-31 v8_3_Preview/faq-section-public-web.png
  100. BIN
      docs/en/Blog-Posts/2024-07-31 v8_3_Preview/google-search-results.png

94
.github/ISSUE_TEMPLATE/03_studio.yml

@ -0,0 +1,94 @@
name: 🤠 ABP Studio
description: Create a report to help us improve the ABP Studio
labels: [studio]
body:
- type: markdown
attributes:
value: |
We welcome bug reports! This template will help us gather the information we need to start the triage process.
Please keep in mind that the GitHub issue tracker is not intended as a general support forum, but for reporting **non-security** bugs and feature requests.
If you believe you have an issue that affects the SECURITY of the platform, please do NOT create an issue and instead email your issue details to info@abp.io.
For other types of questions, consider using [StackOverflow](https://stackoverflow.com/questions/tagged/abp).
- type: checkboxes
id: searched
attributes:
label: Is there an existing issue for this?
description: Please search to see if an issue already exists for the bug you encountered or feature request ([abp/issues](https://github.com/abpframework/abp/issues?q=is%3Aopen+is%3Aissue+label%3Astudio)).
options:
- label: I have searched the existing issues
required: true
- type: textarea
id: background
attributes:
label: Description
description: Please share a clear and concise description of the problem.
placeholder: Description
validations:
required: true
- type: markdown
attributes:
value: |
## Setup
Please provide more information on your ABP Studio setup.
- type: input
id: version
attributes:
label: Version
description: Which version of ABP Studio are you using?
placeholder: Version
validations:
required: true
- type: dropdown
id: Operation-System
attributes:
label: Operation System
description: What is the operation system of the computer?
options:
- Windows (Default)
- Linux
- macOS
- Others
validations:
required: true
- type: textarea
id: solution-config
attributes:
label: Solution Configuration
description: |
If there is an open solution, what are the configurations of the solution?
🧐 Hint: You can see all the information about your solution from the configuration window, which opens when you right-click on the [solution](https://abp.io/docs/latest/studio/solution-explorer#solution) and click on the `Solution Configuration` button.
placeholder: |
- **Template**: app
- **Created ABP Studio Version**: 0.7.9
- **Tiered**: No
- **UI Framework**: mvc
- **Theme**: leptonx
- **Theme Style**: system
- **Database Provider**: ef
- **Database Management System**: sqlserver
- **Separate Tenant Schema**: No
- **Mobile Framework**: none
- **Public Website**: No
- **Optional Modules**:
* GDPR
* TextTemplateManagement
* LanguageManagement
* AuditLogging
* SaaS
* OpenIddictAdmin
validations:
required: false
- type: markdown
attributes:
value: |
---
- type: textarea
id: other-info
attributes:
label: Other information
description: |
If you have an idea where the problem might lie, let us know that here. Please include any pointers to code, relevant changes, or related issues you know of.
placeholder: Other information
validations:
required: false

0
.github/ISSUE_TEMPLATE/03_article_request.yml → .github/ISSUE_TEMPLATE/04_article_request.yml

0
.github/ISSUE_TEMPLATE/04_performance_issue.md → .github/ISSUE_TEMPLATE/05_performance_issue.md

0
.github/ISSUE_TEMPLATE/05_blank_issue.md → .github/ISSUE_TEMPLATE/06_blank_issue.md

2
.github/ISSUE_TEMPLATE/config.yml

@ -1,4 +1,4 @@
blank_issues_enabled: true
blank_issues_enabled: false
contact_links:
- name: Issue with ABP Commercial
url: https://abp.io/support/questions

101
.github/scripts/update_versions.py

@ -1,54 +1,79 @@
import os
import json
import re
import xml.etree.ElementTree as ET
from github import Github
def update_latest_versions():
version = os.environ["GITHUB_REF"].split("/")[-1]
def get_target_release_branch(version):
"""
Extracts the first two numbers from the release version (`9.0.5` `rel-9.0`)
to determine the corresponding `rel-x.x` branch.
"""
match = re.match(r"(\d+)\.(\d+)\.\d+", version)
if not match:
raise ValueError(f"Invalid version format: {version}")
if "rc" in version:
return False
major, minor = match.groups()
target_branch = f"rel-{major}.{minor}"
return target_branch
with open("latest-versions.json", "r") as f:
latest_versions = json.load(f)
def get_version_from_common_props(branch):
"""
Retrieves `Version` and `LeptonXVersion` from the `common.props` file in the specified branch.
"""
g = Github(os.environ["GITHUB_TOKEN"])
repo = g.get_repo("abpframework/abp")
latest_versions[0]["version"] = version
try:
file_content = repo.get_contents("common.props", ref=branch)
common_props_content = file_content.decoded_content.decode("utf-8")
with open("latest-versions.json", "w") as f:
json.dump(latest_versions, f, indent=2)
root = ET.fromstring(common_props_content)
version = root.find(".//Version").text
leptonx_version = root.find(".//LeptonXVersion").text
return True
return version, leptonx_version
except Exception as e:
raise FileNotFoundError(f"common.props not found in branch {branch}: {e}")
def create_pr():
g = Github(os.environ["GITHUB_TOKEN"])
repo = g.get_repo("abpframework/abp")
def update_latest_versions():
"""
Updates `latest-versions.json` based on the most relevant release branch.
"""
# Get the release version from GitHub reference
release_version = os.environ["GITHUB_REF"].split("/")[-1] # Example: "refs/tags/v9.0.5" → "v9.0.5"
if release_version.startswith("v"):
release_version = release_version[1:] # Convert to "9.0.5" format
branch_name = f"update-latest-versions-{os.environ['GITHUB_REF'].split('/')[-1]}"
base = repo.get_branch("dev")
repo.create_git_ref(ref=f"refs/heads/{branch_name}", sha=base.commit.sha)
# Determine the correct `rel-x.x` branch
target_branch = get_target_release_branch(release_version)
# Retrieve `common.props` data from the target branch
version, leptonx_version = get_version_from_common_props(target_branch)
# Get the current latest-versions.json file and its sha
contents = repo.get_contents("latest-versions.json", ref="dev")
file_sha = contents.sha
# Skip if the version is a preview or release candidate
if "preview" in version or "rc" in version:
return False
# Update the file in the repo
repo.update_file(
path="latest-versions.json",
message=f"Update latest-versions.json to version {os.environ['GITHUB_REF'].split('/')[-1]}",
content=open("latest-versions.json", "r").read().encode("utf-8"),
sha=file_sha,
branch=branch_name,
)
# Read the `latest-versions.json` file
with open("latest-versions.json", "r") as f:
latest_versions = json.load(f)
try:
pr = repo.create_pull(title="Update latest-versions.json",
body="Automated PR to update the latest-versions.json file.",
head=branch_name, base="dev")
except Exception as e:
print(f"Error while creating PR: {e}")
# Add the new version entry
new_version_entry = {
"version": version,
"releaseDate": "",
"type": "stable",
"message": "",
"leptonx": {
"version": leptonx_version
}
}
latest_versions.insert(0, new_version_entry) # Insert the new version at the top
pr.create_review_request(reviewers=["ebicoglu", "gizemmutukurt", "skoc10"])
# Update the file
with open("latest-versions.json", "w") as f:
json.dump(latest_versions, f, indent=2)
if __name__ == "__main__":
should_create_pr = update_latest_versions()
if should_create_pr:
create_pr()
return True

4
.github/workflows/angular.yml

@ -27,12 +27,12 @@ jobs:
with:
fetch-depth: 0
- uses: actions/cache@v2
- uses: actions/cache@v4
with:
path: 'npm/ng-packs/node_modules'
key: ${{ runner.os }}-${{ hashFiles('npm/ng-packs/yarn.lock') }}
- uses: actions/cache@v2
- uses: actions/cache@v4
with:
path: 'templates/app/angular/node_modules'
key: ${{ runner.os }}-${{ hashFiles('templates/app/angular/yarn.lock') }}

22
.github/workflows/auto-pr.yml

@ -1,13 +1,13 @@
name: Merge branch rel-9.0 with rel-8.3
name: Merge branch dev with rel-9.3
on:
push:
branches:
- rel-8.3
- rel-9.3
permissions:
contents: read
jobs:
merge-rel-9-0-with-rel-8-3:
merge-dev-with-rel-9-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,17 +15,17 @@ jobs:
steps:
- uses: actions/checkout@v2
with:
ref: rel-9.0
ref: dev
- name: Reset promotion branch
run: |
git fetch origin rel-8.3:rel-8.3
git reset --hard rel-8.3
git fetch origin rel-9.3:rel-9.3
git reset --hard rel-9.3
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3
with:
branch: auto-merge/rel-8-3/${{github.run_number}}
title: Merge branch rel-9.0 with rel-8.3
body: This PR generated automatically to merge rel-9.0 with rel-8.3. Please review the changed files before merging to prevent any errors that may occur.
branch: auto-merge/rel-9-3/${{github.run_number}}
title: Merge branch dev with rel-9.3
body: This PR generated automatically to merge dev with rel-9.3. Please review the changed files before merging to prevent any errors that may occur.
reviewers: maliming
draft: true
token: ${{ github.token }}
@ -34,5 +34,5 @@ jobs:
GH_TOKEN: ${{ secrets.BOT_SECRET }}
run: |
gh pr ready
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
gh pr review auto-merge/rel-9-3/${{github.run_number}} --approve
gh pr merge auto-merge/rel-9-3/${{github.run_number}} --merge --auto --delete-branch

11
.github/workflows/build-and-test.yml

@ -18,6 +18,7 @@ on:
- 'templates/**/*.razor'
- 'Directory.Build.props'
- 'Directory.Packages.props'
- '.github/workflows/build-and-test.yml'
pull_request:
paths:
@ -35,6 +36,7 @@ on:
- 'templates/**/*.razor'
- 'Directory.Build.props'
- 'Directory.Packages.props'
- '.github/workflows/build-and-test.yml'
types:
- opened
- synchronize
@ -45,17 +47,14 @@ permissions:
jobs:
build-test:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
timeout-minutes: 50
if: ${{ !github.event.pull_request.draft }}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-dotnet@master
with:
dotnet-version: 8.0.100
- name: chown
run: |
sudo chown -R $USER:$USER /home/runneradmin
dotnet-version: 9.0.100
- name: Build All
run: ./build-all.ps1

2
CONTRIBUTING.md

@ -1,3 +1,3 @@
## Contribution
See the [contribution guide](docs/en/Contribution/Index.md).
The contribution guide is available at [contribution guide](docs/en/contribution/index.md).

296
Directory.Packages.props

@ -3,175 +3,187 @@
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="AlibabaCloud.SDK.Dysmsapi20170525" Version="2.0.24" />
<PackageVersion Include="AlibabaCloud.SDK.Dysmsapi20170525" Version="4.0.0" />
<PackageVersion Include="aliyun-net-sdk-sts" Version="3.1.2" />
<PackageVersion Include="Aliyun.OSS.SDK.NetCore" Version="2.13.0" />
<PackageVersion Include="AsyncKeyedLock" Version="6.3.4" />
<PackageVersion Include="Autofac" Version="8.0.0" />
<PackageVersion Include="Autofac.Extensions.DependencyInjection" Version="9.0.0" />
<PackageVersion Include="Aliyun.OSS.SDK.NetCore" Version="2.14.1" />
<PackageVersion Include="AsyncKeyedLock" Version="7.1.6" />
<PackageVersion Include="Autofac" Version="8.2.1" />
<PackageVersion Include="Autofac.Extensions.DependencyInjection" Version="10.0.0" />
<PackageVersion Include="Autofac.Extras.DynamicProxy" Version="7.1.0" />
<PackageVersion Include="AutoMapper" Version="13.0.1" />
<PackageVersion Include="AutoMapper" Version="14.0.0" />
<PackageVersion Include="Asp.Versioning.Mvc" Version="8.1.0" />
<PackageVersion Include="Asp.Versioning.Mvc.ApiExplorer" Version="8.1.0" />
<PackageVersion Include="AWSSDK.S3" Version="3.7.300.2" />
<PackageVersion Include="AWSSDK.SecurityToken" Version="3.7.300.2" />
<PackageVersion Include="Azure.Messaging.ServiceBus" Version="7.17.0" />
<PackageVersion Include="Azure.Storage.Blobs" Version="12.19.1" />
<PackageVersion Include="Blazorise" Version="1.5.2" />
<PackageVersion Include="Blazorise.Components" Version="1.5.2" />
<PackageVersion Include="Blazorise.DataGrid" Version="1.5.2" />
<PackageVersion Include="Blazorise.Snackbar" Version="1.5.2" />
<PackageVersion Include="AWSSDK.S3" Version="4.0.0" />
<PackageVersion Include="AWSSDK.SecurityToken" Version="4.0.0" />
<PackageVersion Include="BunnyCDN.Net.Storage" Version="1.0.4" />
<PackageVersion Include="Azure.Messaging.ServiceBus" Version="7.19.0" />
<PackageVersion Include="Azure.Storage.Blobs" Version="12.24.0" />
<PackageVersion Include="Blazorise" Version="1.8.1" />
<PackageVersion Include="Blazorise.Components" Version="1.8.1" />
<PackageVersion Include="Blazorise.DataGrid" Version="1.8.1" />
<PackageVersion Include="Blazorise.Snackbar" Version="1.8.1" />
<PackageVersion Include="Castle.Core" Version="5.1.1" />
<PackageVersion Include="Castle.Core.AsyncInterceptor" Version="2.1.0" />
<PackageVersion Include="CommonMark.NET" Version="0.15.1" />
<PackageVersion Include="Confluent.Kafka" Version="2.3.0" />
<PackageVersion Include="Dapper" Version="2.1.21" />
<PackageVersion Include="Dapr.AspNetCore" Version="1.12.0" />
<PackageVersion Include="Dapr.Client" Version="1.12.0" />
<PackageVersion Include="DeviceDetector.NET" Version="6.1.4" />
<PackageVersion Include="Devart.Data.Oracle.EFCore" Version="10.3.10.8" />
<PackageVersion Include="DistributedLock.Core" Version="1.0.5" />
<PackageVersion Include="DistributedLock.Redis" Version="1.0.2" />
<PackageVersion Include="DeepL.net" Version="1.8.0" />
<PackageVersion Include="EphemeralMongo.Core" Version="1.1.3" />
<PackageVersion Include="EphemeralMongo6.runtime.linux-x64" Version="1.1.3" />
<PackageVersion Include="EphemeralMongo6.runtime.osx-x64" Version="1.1.3" />
<PackageVersion Include="EphemeralMongo6.runtime.win-x64" Version="1.1.3" />
<PackageVersion Include="FluentValidation" Version="11.8.0" />
<PackageVersion Include="Hangfire.AspNetCore" Version="1.8.14" />
<PackageVersion Include="Hangfire.SqlServer" Version="1.8.14" />
<PackageVersion Include="HtmlSanitizer" Version="8.0.746" />
<PackageVersion Include="IdentityModel" Version="6.2.0" />
<PackageVersion Include="Confluent.Kafka" Version="2.10.0" />
<PackageVersion Include="Dapper" Version="2.1.66" />
<PackageVersion Include="Dapr.AspNetCore" Version="1.15.4" />
<PackageVersion Include="Dapr.Client" Version="1.15.4" />
<PackageVersion Include="MyCSharp.HttpUserAgentParser" Version="3.0.25" />
<PackageVersion Include="Devart.Data.Oracle.EFCore" Version="10.4.235.9" />
<PackageVersion Include="DistributedLock.Core" Version="1.0.8" />
<PackageVersion Include="DistributedLock.Redis" Version="1.0.3" />
<PackageVersion Include="DeepL.net" Version="1.15.0" />
<PackageVersion Include="itext.bouncy-castle-adapter" Version="9.2.0" />
<PackageVersion Include="itext7" Version="9.2.0" />
<PackageVersion Include="itext7.pdfhtml" Version="6.2.0" />
<PackageVersion Include="MongoSandbox.Core" Version="2.0.0" />
<PackageVersion Include="MongoSandbox8.runtime.linux-x64" Version="2.0.0" />
<PackageVersion Include="MongoSandbox8.runtime.osx-arm64" Version="2.0.0" />
<PackageVersion Include="MongoSandbox8.runtime.win-x64" Version="2.0.0" />
<PackageVersion Include="FluentValidation" Version="11.11.0" />
<PackageVersion Include="Google.Cloud.Storage.V1" Version="4.13.0" />
<PackageVersion Include="Hangfire.AspNetCore" Version="1.8.18" />
<PackageVersion Include="Hangfire.SqlServer" Version="1.8.18" />
<PackageVersion Include="HtmlSanitizer" Version="9.0.884" />
<PackageVersion Include="IdentityModel" Version="7.0.0" />
<PackageVersion Include="IdentityServer4" Version="4.1.2" />
<PackageVersion Include="IdentityServer4.AspNetIdentity" Version="4.1.2" />
<PackageVersion Include="JetBrains.Annotations" Version="2023.3.0" />
<PackageVersion Include="JetBrains.Annotations" Version="2024.3.0" />
<PackageVersion Include="LdapForNet" Version="2.7.15" />
<PackageVersion Include="LibGit2Sharp" Version="0.28.0" />
<PackageVersion Include="LibGit2Sharp" Version="0.31.0" />
<PackageVersion Include="Magick.NET-Q16-AnyCPU" Version="13.4.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" />
<PackageVersion Include="Microsoft.AspNetCore.Components" Version="8.0.4" />
<PackageVersion Include="Microsoft.AspNetCore.Components.Authorization" Version="8.0.4" />
<PackageVersion Include="Microsoft.AspNetCore.Components.Web" Version="8.0.4" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly" Version="8.0.4" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="8.0.4" />
<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.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" />
<PackageVersion Include="Microsoft.AspNetCore.Razor.Language" Version="6.0.25" />
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="8.0.4" />
<PackageVersion Include="Microsoft.AspNetCore.WebUtilities" Version="8.0.4" />
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="8.0.0" />
<PackageVersion Include="MailKit" Version="4.12.0" />
<PackageVersion Include="Markdig.Signed" Version="0.41.1" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="9.0.5" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="9.0.5" />
<PackageVersion Include="Microsoft.AspNetCore.Authorization" Version="9.0.5" />
<PackageVersion Include="Microsoft.AspNetCore.Components" Version="9.0.5" />
<PackageVersion Include="Microsoft.AspNetCore.Components.Authorization" Version="9.0.5" />
<PackageVersion Include="Microsoft.AspNetCore.Components.Web" Version="9.0.5" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly" Version="9.0.5" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="9.0.5" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly.Authentication" Version="9.0.5" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="9.0.5" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebView.Maui" Version="9.0.60" />
<PackageVersion Include="Microsoft.Maui.Controls" Version="9.0.60" />
<PackageVersion Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="9.0.5" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="9.0.5" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="9.0.5" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="9.0.5" />
<PackageVersion Include="Microsoft.AspNetCore.Razor.Language" Version="6.0.36" />
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="9.0.5" />
<PackageVersion Include="Microsoft.AspNetCore.WebUtilities" Version="9.0.5" />
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="9.0.5" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.5.0" />
<PackageVersion Include="Microsoft.CSharp" Version="4.7.0" />
<PackageVersion Include="Microsoft.Data.Sqlite" Version="8.0.4" />
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="8.0.4" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.4" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.InMemory" Version="8.0.4" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Proxies" Version="8.0.4" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="8.0.4" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.4" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.4" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.4" />
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Binder" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.CommandLine" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.UserSecrets" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.1" />
<PackageVersion Include="Microsoft.Extensions.FileProviders.Composite" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.4" />
<PackageVersion Include="Microsoft.Extensions.FileProviders.Physical" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.FileSystemGlobbing" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Identity.Core" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Localization" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.1" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="8.0.2" />
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="8.0.0" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageVersion Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="8.0.0" />
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="1.1.1" />
<PackageVersion Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="7.5.1" />
<PackageVersion Include="Microsoft.IdentityModel.Tokens" Version="7.5.1" />
<PackageVersion Include="Microsoft.IdentityModel.JsonWebTokens" Version="7.5.1" />
<PackageVersion Include="Minio" Version="6.0.2" />
<PackageVersion Include="MongoDB.Driver" Version="2.22.0" />
<PackageVersion Include="Microsoft.Data.Sqlite" Version="9.0.5" />
<PackageVersion Include="Microsoft.Data.SqlClient" Version="6.0.2" />
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="9.0.5" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.5" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.InMemory" Version="9.0.5" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Proxies" Version="9.0.5" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="9.0.5" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="9.0.5" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.5" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.5" />
<PackageVersion Include="Microsoft.Extensions.Caching.Hybrid" Version="9.4.0" />
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="9.0.5" />
<PackageVersion Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="9.0.5" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Binder" Version="9.0.5" />
<PackageVersion Include="Microsoft.Extensions.Configuration.CommandLine" Version="9.0.5" />
<PackageVersion Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="9.0.5" />
<PackageVersion Include="Microsoft.Extensions.Configuration.UserSecrets" Version="9.0.5" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.5" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="9.0.5" />
<PackageVersion Include="Microsoft.Extensions.FileProviders.Composite" Version="9.0.5" />
<PackageVersion Include="Microsoft.Extensions.FileProviders.Embedded" Version="9.0.5" />
<PackageVersion Include="Microsoft.Extensions.FileProviders.Physical" Version="9.0.5" />
<PackageVersion Include="Microsoft.Extensions.FileSystemGlobbing" Version="9.0.5" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="9.0.5" />
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="9.0.5" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="9.0.5" />
<PackageVersion Include="Microsoft.Extensions.Identity.Core" Version="9.0.5" />
<PackageVersion Include="Microsoft.Extensions.Localization" Version="9.0.5" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.5" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="9.0.5" />
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="9.0.5" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="9.0.5" />
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="9.0.5" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.13.0" />
<PackageVersion Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="9.0.0" />
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0" />
<PackageVersion Include="System.IdentityModel.Tokens.Jwt" Version="8.12.0" />
<PackageVersion Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="8.12.0" />
<PackageVersion Include="Microsoft.IdentityModel.Tokens" Version="8.12.0" />
<PackageVersion Include="Microsoft.IdentityModel.JsonWebTokens" Version="8.12.0" />
<PackageVersion Include="Minio" Version="6.0.4" />
<PackageVersion Include="MongoDB.Driver" Version="3.3.0" />
<PackageVersion Include="NEST" Version="7.17.5" />
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
<PackageVersion Include="Nito.AsyncEx.Context" Version="5.1.2" />
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.2" />
<PackageVersion Include="NSubstitute" Version="5.1.0" />
<PackageVersion Include="NuGet.Versioning" Version="6.7.0" />
<PackageVersion Include="NUglify" Version="1.21.0" />
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="9.0.4" />
<PackageVersion Include="NSubstitute" Version="5.3.0" />
<PackageVersion Include="NuGet.Versioning" Version="6.13.2" />
<PackageVersion Include="NUglify" Version="1.21.15" />
<PackageVersion Include="Nullable" Version="1.3.1" />
<PackageVersion Include="Octokit" Version="9.0.0" />
<PackageVersion Include="OpenIddict.Abstractions" Version="5.5.0" />
<PackageVersion Include="OpenIddict.Core" Version="5.5.0" />
<PackageVersion Include="OpenIddict.Server.AspNetCore" Version="5.5.0" />
<PackageVersion Include="OpenIddict.Validation.AspNetCore" Version="5.5.0" />
<PackageVersion Include="OpenIddict.Validation.ServerIntegration" Version="5.5.0" />
<PackageVersion Include="Oracle.EntityFrameworkCore" Version="8.23.40" />
<PackageVersion Include="Polly" Version="8.2.0" />
<PackageVersion Include="Octokit" Version="14.0.0" />
<PackageVersion Include="OpenIddict.Abstractions" Version="6.4.0" />
<PackageVersion Include="OpenIddict.Core" Version="6.4.0" />
<PackageVersion Include="OpenIddict.Server.AspNetCore" Version="6.4.0" />
<PackageVersion Include="OpenIddict.Validation.AspNetCore" Version="6.4.0" />
<PackageVersion Include="OpenIddict.Validation.ServerIntegration" Version="6.4.0" />
<PackageVersion Include="Oracle.EntityFrameworkCore" Version="9.23.80" />
<PackageVersion Include="Polly" Version="8.5.2" />
<PackageVersion Include="Polly.Extensions.Http" Version="3.0.0" />
<PackageVersion Include="Pomelo.EntityFrameworkCore.MySql" Version="8.0.2" />
<PackageVersion Include="Quartz" Version="3.7.0" />
<PackageVersion Include="Quartz.Extensions.DependencyInjection" Version="3.7.0" />
<PackageVersion Include="Quartz.Plugins.TimeZoneConverter" Version="3.7.0" />
<PackageVersion Include="Quartz.Serialization.Json" Version="3.7.0" />
<PackageVersion Include="RabbitMQ.Client" Version="6.6.0" />
<PackageVersion Include="Rebus" Version="8.4.2" />
<PackageVersion Include="Rebus.ServiceProvider" Version="10.1.2" />
<PackageVersion Include="Scriban" Version="5.9.0" />
<PackageVersion Include="Serilog" Version="3.1.1" />
<PackageVersion Include="Serilog.AspNetCore" Version="8.0.0" />
<PackageVersion Include="Serilog.Extensions.Hosting" Version="8.0.0" />
<PackageVersion Include="Serilog.Extensions.Logging" Version="8.0.0" />
<PackageVersion Include="Serilog.Sinks.Async" Version="1.5.0" />
<PackageVersion Include="Serilog.Sinks.Console" Version="5.0.0" />
<PackageVersion Include="Serilog.Sinks.File" Version="5.0.0" />
<PackageVersion Include="Pomelo.EntityFrameworkCore.MySql" Version="9.0.0" />
<PackageVersion Include="MySql.EntityFrameworkCore" Version="9.0.6" />
<PackageVersion Include="Quartz" Version="3.14.0" />
<PackageVersion Include="Quartz.Extensions.DependencyInjection" Version="3.14.0" />
<PackageVersion Include="Quartz.Plugins.TimeZoneConverter" Version="3.14.0" />
<PackageVersion Include="Quartz.Serialization.Json" Version="3.14.0" />
<PackageVersion Include="RabbitMQ.Client" Version="7.1.2" />
<PackageVersion Include="Rebus" Version="8.8.0" />
<PackageVersion Include="Rebus.ServiceProvider" Version="10.3.0" />
<PackageVersion Include="Scriban" Version="6.2.1" />
<PackageVersion Include="Serilog" Version="4.2.0" />
<PackageVersion Include="Serilog.AspNetCore" Version="9.0.0" />
<PackageVersion Include="Serilog.Extensions.Hosting" Version="9.0.0" />
<PackageVersion Include="Serilog.Extensions.Logging" Version="9.0.1" />
<PackageVersion Include="Serilog.Sinks.Async" Version="2.1.0" />
<PackageVersion Include="Serilog.Sinks.Console" Version="6.0.0" />
<PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" />
<PackageVersion Include="SharpZipLib" Version="1.4.2" />
<PackageVersion Include="Shouldly" Version="4.2.1" />
<PackageVersion Include="SixLabors.ImageSharp" Version="3.1.4" />
<PackageVersion Include="SixLabors.ImageSharp.Drawing" Version="2.0.1" />
<PackageVersion Include="SkiaSharp" Version="2.88.6" />
<PackageVersion Include="SkiaSharp.NativeAssets.Linux" Version="2.88.6" />
<PackageVersion Include="SkiaSharp.NativeAssets.macOS" Version="2.88.6" />
<PackageVersion Include="Shouldly" Version="4.3.0" />
<PackageVersion Include="SixLabors.ImageSharp" Version="3.1.8" />
<PackageVersion Include="SixLabors.ImageSharp.Drawing" Version="2.1.6" />
<PackageVersion Include="SkiaSharp" Version="2.88.8" />
<PackageVersion Include="SkiaSharp.NativeAssets.Linux" Version="2.88.8" />
<PackageVersion Include="SkiaSharp.NativeAssets.macOS" Version="2.88.8" />
<PackageVersion Include="Slugify.Core" Version="4.0.1" />
<PackageVersion Include="Spectre.Console" Version="0.47.0" />
<PackageVersion Include="StackExchange.Redis" Version="2.7.4" />
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.5.0" />
<PackageVersion Include="System.Collections.Immutable" Version="8.0.0" />
<PackageVersion Include="Spectre.Console" Version="0.50.0" />
<PackageVersion Include="StackExchange.Redis" Version="2.8.31" />
<PackageVersion Include="Swashbuckle.AspNetCore" Version="8.1.1" />
<PackageVersion Include="System.Collections.Immutable" Version="9.0.5" />
<PackageVersion Include="System.ComponentModel.Annotations" Version="5.0.0" />
<PackageVersion Include="System.Linq.Async" Version="6.0.1" />
<PackageVersion Include="System.Linq.Dynamic.Core" Version="1.6.7" />
<PackageVersion Include="System.Linq.Queryable" Version="4.3.0" />
<PackageVersion Include="System.Runtime.Loader" Version="4.3.0" />
<PackageVersion Include="System.Security.Permissions" Version="8.0.0" />
<PackageVersion Include="System.Security.Permissions" Version="9.0.5" />
<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.4" />
<PackageVersion Include="System.IdentityModel.Tokens.Jwt" Version="7.5.1" />
<PackageVersion Include="TimeZoneConverter" Version="6.1.0" />
<PackageVersion Include="System.Text.Encoding.CodePages" Version="9.0.5" />
<PackageVersion Include="System.Text.Encodings.Web" Version="9.0.5" />
<PackageVersion Include="System.Text.Json" Version="9.0.5" />
<PackageVersion Include="System.Threading.Tasks.Extensions" Version="4.6.3" />
<PackageVersion Include="TencentCloudSDK.Sms" Version="3.0.1231" />
<PackageVersion Include="TimeZoneConverter" Version="7.0.0" />
<PackageVersion Include="Unidecode.NET" Version="2.1.0" />
<PackageVersion Include="xunit" Version="2.6.1" />
<PackageVersion Include="xunit.extensibility.execution" Version="2.6.1" />
<PackageVersion Include="xunit.runner.visualstudio" Version="2.5.3" />
<PackageVersion Include="coverlet.collector" Version="6.0.0" />
<PackageVersion Include="xunit" Version="2.9.3" />
<PackageVersion Include="xunit.extensibility.execution" Version="2.9.3" />
<PackageVersion Include="xunit.runner.visualstudio" Version="3.0.2" />
<PackageVersion Include="coverlet.collector" Version="6.0.4" />
<PackageVersion Include="ConfigureAwait.Fody" Version="3.3.2" />
<PackageVersion Include="Fody" Version="6.8.0" />
<PackageVersion Include="Fody" Version="6.9.2" />
</ItemGroup>
</Project>

126
README.md

@ -1,95 +1,82 @@
# 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://abp.io/docs/latest/release-info/nightly-builds) 🔹
[![NuGet Download](https://img.shields.io/nuget/dt/Volo.Abp.Core.svg?style=flat-square)](https://www.nuget.org/packages/Volo.Abp.Core) 🔹 [![Code of Conduct](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg)](https://github.com/abpframework/abp/blob/dev/CODE_OF_CONDUCT.md) 🔹 [![CLA Signed](https://cla-assistant.io/readme/badge/abpframework/abp)](https://cla-assistant.io/abpframework/abp) 🔹 [![Discord Shield](https://discord.com/api/guilds/951497912645476422/widget.png?style=shield)](https://abp.io/join-discord)
![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](https://abp.io/) offers an **opinionated architecture** to build enterprise software solutions with **best practices** on top of the **.NET** and the **ASP.NET Core** platforms. It provides the fundamental infrastructure, production-ready startup templates, pre-built application modules, UI themes, tooling, guides and documentation to implement that architecture properly and **automate the details** and repetitive works as much as possible.
ABP Framework is a complete **infrastructure** based on **ASP.NET Core** that creates **modern web applications** and **APIs** by following the software development **best practices** and the **latest technologies**.
[![ABP Platform](https://github.com/abpframework/abp/assets/9526587/47531496-4088-406d-9c69-63cb0ffec2ba)](https://abp.io)
[![ABP Platform](https://github.com/user-attachments/assets/c4356ec7-4d0f-4e00-a1d2-fc74ad985fb8)](https://abp.io)
## Getting Started
- [Quick Start](https://docs.abp.io/en/abp/latest/Tutorials/Todo/Index) is a single-part, quick-start tutorial to build a simple application with the ABP Framework. Start with this tutorial if you want to understand how ABP works quickly.
- [Getting Started guide](https://docs.abp.io/en/abp/latest/Getting-Started) can be used to create and run ABP-based solutions with different options and details.
- [Web Application Development Tutorial](https://docs.abp.io/en/abp/latest/Tutorials/Part-1) is a complete tutorial on developing a full-stack web application with all aspects of a real-life solution.
### Quick Start
Install the ABP CLI:
````bash
> dotnet tool install -g Volo.Abp.Cli
````
Create a new solution:
````bash
> abp new BookStore -u mvc -d ef
````
> 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 Getting Started guide](https://abp.io/docs/latest/get-started) can be used to create and run ABP-based solutions with different options and details.
- [Quick Start](https://abp.io/docs/latest/tutorials/todo) is a single-part, quick-start tutorial to build a simple application with the ABP Framework. Start with this tutorial if you want to understand how ABP works quickly.
- [Web Application Development Tutorial](https://abp.io/docs/latest/tutorials/book-store) is a complete tutorial on developing a full-stack web application with all aspects of a real-life solution.
- [Modular Monolith Application](https://abp.io/docs/latest/tutorials/modular-crm/index): A multi-part tutorial that demonstrates how to create application modules, compose and communicate them to build a monolith modular web application.
## What ABP Provides?
ABP provides a **full stack developer experience**.
ABP bridges the gap between ASP.NET Core and real-world business application requirements, and makes you focus on your own business code.
The following diagram contains the core components of the **ABP Platform** and shows how ABP sits between **ASP.NET Core** and **Your Application**:
![abp-overall-diagram](docs/en/images/abp-overall-diagram.png)
### Architecture
<img src="docs/en/images/ddd-microservice-simple.png">
ABP offers a complete architectural model to build modern enterprise software solutions. Here, the fundamental architectural structures offered and first-class supported by ABP:
ABP offers a complete, **modular** and **layered** software architecture based on **[Domain Driven Design](https://docs.abp.io/en/abp/latest/Domain-Driven-Design)** principles and patterns. It also provides the necessary infrastructure and guidance to [implement this architecture](https://docs.abp.io/en/abp/latest/Domain-Driven-Design-Implementation-Guide).
* [Domain Driven Design (DDD)](https://abp.io/docs/latest/framework/architecture/domain-driven-design)
* [Microservices](https://abp.io/docs/latest/framework/architecture/microservices)
* [Modularity](https://abp.io/docs/latest/framework/architecture/modularity/basics)
* [Multi-Tenancy](https://abp.io/docs/latest/framework/architecture/multi-tenancy)
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 infrastructure features provided by the ABP Framework to achieve real-world scenarios easier, like [Event Bus](https://abp.io/docs/latest/framework/infrastructure/event-bus), [Background Job System](https://abp.io/docs/latest/framework/infrastructure/background-jobs), [Audit Logging](https://abp.io/docs/latest/framework/infrastructure/audit-logging), [BLOB Storing](https://abp.io/docs/latest/framework/infrastructure/blob-storing), [Data Seeding](https://abp.io/docs/latest/framework/infrastructure/data-seeding), [Data Filtering](https://abp.io/docs/latest/framework/infrastructure/data-filtering), and much more.
[See ABP Framework features](https://abp.io/framework)
### Infrastructure
#### Cross-Cutting Concerns
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.
ABP also simplifies (and even automates wherever possible) cross-cutting concerns and common non-functional requirements like [Exception Handling](https://abp.io/docs/latest/framework/fundamentals/exception-handling), [Validation](https://abp.io/docs/latest/framework/fundamentals/validation), [Authorization](https://abp.io/docs/latest/framework/fundamentals/authorizationn), [Localization](https://abp.io/docs/latest/framework/fundamentals/localization), [Caching](https://abp.io/docs/latest/framework/fundamentals/caching), [Dependency Injection](https://abp.io/docs/latest/framework/fundamentals/dependency-injection), [Setting Management](https://abp.io/docs/latest/framework/infrastructure/settings), etc.
### Application Modules
ABP is a modular framework and the [application modules](https://abp.io/modules) provide **pre-built application functionalities**.
### Cross-Cutting Concerns
Some examples:
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.
- [**Account**](https://abp.io/modules/Volo.Account.Pro): Provides UI for the account management and allows user to login/register to the application.
- [CMS Kit](https://abp.io/modules/Volo.CmsKit): Brings CMS (Content Management System) capabilities to your application.
- **[Identity](https://abp.io/modules/Volo.Identity.Pro)**: Manages organization units, roles, users and their permissions based on the Microsoft Identity library.
- [**OpenIddict**](https://abp.io/modules/Volo.OpenIddict.Pro): Integrates to OpenIddict library and provides a management UI.
- [**SaaS**](https://abp.io/modules/Volo.Saas): Manages tenants and editions for a [multi-tenant](https://abp.io/docs/latest/framework/architecture/multi-tenancy) (SaaS) application.
See [all official modules](https://abp.io/modules).
### Startup Templates
### Application Modules
The [Startup templates](https://abp.io/docs/latest/solution-templates) are pre-built Visual Studio solution templates. You can create your own solution based on these templates to **immediately start your development**.
ABP is a modular framework and the Application Modules provide **pre-built application functionalities**;
### Tooling
- [**Account**](https://docs.abp.io/en/abp/latest/Modules/Account): Provides UI for the account management and allows user to login/register to the application.
- **[Identity](https://docs.abp.io/en/abp/latest/Modules/Identity)**: Manages organization units, roles, users and their permissions based on the Microsoft Identity library.
- [**OpenIddict**](https://docs.abp.io/en/abp/latest/Modules/OpenIddict): Integrates to OpenIddict.
- [**Tenant Management**](https://docs.abp.io/en/abp/latest/Modules/Tenant-Management): Manages tenants for a [multi-tenant](https://docs.abp.io/en/abp/latest/Multi-Tenancy) (SaaS) application.
ABP provides CLI and UI tools to simplify your daily development work flows.
See the [Application Modules](https://docs.abp.io/en/abp/latest/Modules/Index) document for all pre-built modules.
#### ABP Studio
[ABP Studio](https://abp.io/studio) is a cross-platform desktop application for ABP developers.
It is well integrated to the ABP Framework and aims to provide a comfortable development environment for you by automating things, providing insights about your solution, making develop, run and deploy your solutions much easier.
### Startup Templates
#### ABP Suite
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 Suite](https://abp.io/suite) allows you to automatically generate web pages in a matter of minutes.
#### ABP CLI
[ABP CLI](https://abp.io/cli) is a command line tool to perform common operations for ABP based solutions.
## Mastering ABP Framework Book
@ -103,43 +90,36 @@ This book will help you to gain a complete understanding of the ABP Framework an
### ABP Community Web Site
The [ABP Community](https://community.abp.io/) is a website to publish **articles** and share **knowledge** about the ABP Framework. You can also create content for the community!
The [ABP Community](https://abp.io/community) is a central hub to publish **articles** and share **knowledge** about the ABP Framework.
### Blog
Follow the [ABP Blog](https://blog.abp.io/) to learn the latest happenings in the ABP Framework.
Follow the [ABP Blog](https://abp.io/blog) to learn the latest happenings in the ABP Framework.
### Samples
See the [sample projects](https://docs.abp.io/en/abp/latest/Samples/Index) built with the ABP Framework.
See the [sample projects](https://abp.io/docs/latest/samples) built with the ABP Framework.
### Want to Contribute?
ABP is a community-driven open-source project. See [the contribution guide](https://docs.abp.io/en/abp/latest/Contribution/Index) if you want to participate in this project.
ABP is a community-driven open-source project. See [the contribution guide](https://abp.io/docs/latest/contribution) if you want to participate in this project.
## Official Links
* [Home Website](https://abp.io)
* [Get Started](https://abp.io/get-started)
* [Features](https://abp.io/features)
* [Documents](https://docs.abp.io/)
* [Samples](https://docs.abp.io/en/abp/latest/Samples/Index)
* [Blog](https://blog.abp.io/)
* [Community](https://community.abp.io/)
* [Features](https://abp.io/framework)
* [Documents](https://abp.io/docs/latest)
* [Samples](https://abp.io/docs/latest/samples)
* [Blog](https://abp.io/blog)
* [Community](https://abp.io/community)
* [Stackoverflow](https://stackoverflow.com/questions/tagged/abp)
* [Twitter](https://twitter.com/abpframework)
## Support ABP
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.
## Discord Server
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.
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://abp.io/join-discord.

2
abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalization.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net8.0</TargetFrameworks>
<TargetFrameworks>netstandard2.0;netstandard2.1;net8.0;net9.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup>

14
abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalizationModule.cs

@ -2,8 +2,6 @@
using AbpIoLocalization.Admin.Localization;
using AbpIoLocalization.Base.Localization;
using AbpIoLocalization.Blog.Localization;
using AbpIoLocalization.Commercial.Localization;
using AbpIoLocalization.Community.Localization;
using AbpIoLocalization.Docs.Localization;
using AbpIoLocalization.Support.Localization;
using AbpIoLocalization.Www;
@ -28,9 +26,7 @@ namespace AbpIoLocalization
Configure<AbpExceptionLocalizationOptions>(options =>
{
options.MapCodeNamespace("Volo.AbpIo.Commercial", typeof(AbpIoCommercialResource));
options.MapCodeNamespace("Volo.AbpIo.Domain", typeof(AbpIoBaseResource));
options.MapCodeNamespace("Volo.AbpIo.Community", typeof(AbpIoCommunityResource));
});
Configure<AbpLocalizationOptions>(options =>
@ -57,11 +53,6 @@ namespace AbpIoLocalization
.AddVirtualJson("/Blog/Localization/Resources")
.AddBaseTypes(typeof(AbpIoBaseResource));
options.Resources
.Add<AbpIoCommercialResource>("en")
.AddVirtualJson("/Commercial/Localization/Resources")
.AddBaseTypes(typeof(AbpIoBaseResource));
options.Resources
.Add<AbpIoDocsResource>("en")
.AddVirtualJson("/Docs/Localization/Resources")
@ -76,11 +67,6 @@ namespace AbpIoLocalization
.Add<AbpIoWwwResource>("en")
.AddVirtualJson("/Www/Localization/Resources")
.AddBaseTypes(typeof(AbpIoBaseResource));
options.Resources
.Add<AbpIoCommunityResource>("en")
.AddVirtualJson("/Community/Localization/Resources")
.AddBaseTypes(typeof(AbpIoBaseResource));
});
}
}

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

@ -13,6 +13,10 @@
"ManageAccount": "My Account | ABP.IO",
"ManageYourProfile": "Manage your profile",
"ReturnToApplication": "Return to application",
"IdentityUserNotAvailable:Deleted": "This email address is not available. Reason: Already deleted."
"IdentityUserNotAvailable:Deleted": "This email address is not available. Reason: Already deleted.",
"SelectYourOrganization": "Select your organization",
"PleaseSelectOrganization": "Please select an organization to continue",
"Continue": "Continue",
"CaptchaExplanation": "Calculate the below mathematical expression and enter the answer."
}
}

11
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json

@ -15,6 +15,7 @@
"Permission:Maintain": "Maintain",
"Permission:ClearCaches": "Clear caches",
"Permission:Modules": "Modules",
"Permission:UserDownloads": "User Downloads",
"Permission:Packages": "Packages",
"Permission:Edit": "Edit",
"Permission:Delete": "Delete",
@ -32,12 +33,15 @@
"Name": "Name",
"DisplayName": "Display name",
"ShortDescription": "Short description",
"LongDescription": "Long description",
"NameFilter": "Name",
"CreationTime": "Creation time",
"IsPro": "Is pro",
"IsPro": "Pro package",
"ShowOnModuleList": "Show in module list",
"EfCoreConfigureMethodName": "Configure method name",
"IsProFilter": "Is pro",
"ShowOnModuleFilter": "Show on module list",
"ShowOnModuleListFilter": "Show on module list",
"ApplicationType": "Application type",
"Target": "Target",
"TargetFilter": "Target",
@ -56,8 +60,10 @@
"Refresh": "Refresh",
"NpmPackages": "NPM Packages",
"NugetPackages": "Nuget Packages",
"NuGetPackages": "NuGet Packages",
"NpmPackageCount": "NPM Package Count",
"NugetPackageCount": "Nuget Package Count",
"NuGetPackageCount": "NuGet Package Count",
"Module": "Modules",
"ModuleInfo": "Module info",
"CreateANpmPackage": "Create a NPM package",
@ -102,6 +108,9 @@
"DoYouWantToCreateNewUser": "Do you want to create new user?",
"MasterModules": "Master Modules",
"OrganizationName": "Organisation name",
"DownloadType": "Download type",
"UserDownloads": "User Downloads",
"AcceptNewsletter": "Accept newsletter",
"CreationDate": "Creation date",
"LicenseStartDate": "License start date",
"LicenseEndDate": "License end date",

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

@ -22,23 +22,28 @@
"Permission:Accounting": "Accounting",
"Permission:Accounting:Quotation": "Quotation",
"Permission:Accounting:Invoice": "Invoice",
"Permission:Export" : "Export",
"Menu:Organizations": "Organizations",
"Menu:Accounting": "Accounting",
"Menu:Packages": "Packages",
"Menu:DiscountRequests": "Discount Requests",
"NpmPackageDeletionWarningMessage": "This NPM Package will be deleted. Do you confirm that?",
"NugetPackageDeletionWarningMessage": "This Nuget Package will be deleted. Do you confirm that?",
"NuGetPackages": "NuGet Packages",
"ModuleDeletionWarningMessage": "This Module will be deleted. Do you confirm that?",
"Name": "Name",
"DisplayName": "Display name",
"ShortDescription": "Short description",
"LongDescription": "Long description",
"NameFilter": "Name",
"CreationTime": "Creation time",
"IsPro": "Is pro",
"IsPro": "Pro package",
"IsFreeToActiveLicenseOwners": "Free to license owners",
"ShowOnModuleList": "Show on module list",
"EfCoreConfigureMethodName": "Configure method name",
"IsProFilter": "Is pro",
"IsProFilter": "Pro package",
"ShowOnModuleFilter": "Show on module list",
"ShowOnModuleListFilter": "Show on module list",
"ApplicationType": "Application type",
"Target": "Target",
"TargetFilter": "Target",
@ -59,6 +64,7 @@
"NugetPackages": "Nuget Packages",
"NpmPackageCount": "NPM Package Count",
"NugetPackageCount": "Nuget Package Count",
"NuGetPackageCount": "NuGet Package Count",
"Module": "Modules",
"ModuleInfo": "Module info",
"CreateANpmPackage": "Create a NPM package",
@ -72,7 +78,7 @@
"Menu:NpmPackages": "NPM Packages",
"Menu:Modules": "Modules",
"Menu:Maintenance": "Maintenance",
"Menu:NugetPackages": "Nuget Packages",
"Menu:NugetPackages": "NuGet Packages",
"CreateAnOrganization": "Create an organization",
"Organizations": "Organizations",
"LongName": "Long name",
@ -120,8 +126,15 @@
"PurchaseOrderNo": "Purchase order no",
"QuotationDate": "Quotation date",
"CompanyName": "Company name",
"DownloadType": "Download type",
"UserDownloads": "User Downloads",
"AcceptNewsletter": "Accept newsletter",
"CompanyAddress": "Company address",
"Price": "Price",
"Unknown": "Unknown",
"DddEBook": "Ddd EBook",
"MasteringAbpFrameworkEBook": "Mastering AbpFramework EBook",
"MicroserviceEBook": "Microservice EBook",
"DiscountText": "Discount text",
"DiscountQuantity": "Discount quantity",
"DiscountPrice": "Discount price",
@ -219,8 +232,8 @@
"ReIndexAllPostsConfirmationMessage": "Are you sure you want to reindex all posts?",
"SuccessfullyReIndexAllPosts": "All posts have been successfully reindexed.",
"Permission:FullSearch": "Full text search",
"Menu:CliAnalytics": "Cli Analytics",
"Menu:Reports": "Reports",
"Menu:CliAnalytics": "CLI Analytics",
"Menu:Reports": "Dynamic Reports",
"TemplateName": "Template name",
"TemplateVersion": "Template version",
"DatabaseProvider": "Database provider",
@ -232,7 +245,7 @@
"UiFramework": "Ui framework",
"Options": "Options",
"CliAnalytics": "Cli Analytics",
"Reports": "Reports",
"Reports": "Dynamic Reports",
"Permission:CliAnalyticses": "Cli Analyticses",
"Permission:CliAnalytics": "Cli Analytics",
"Permission:Reports": "Reports",
@ -284,6 +297,7 @@
"Menu:Quotation": "Quotation",
"Menu:Invoice": "Invoice",
"Menu:Quotation/Invoice": "Quotation/Invoice",
"Menu:UserDownloads": "User Downloads",
"Menu:PaymentRequests": "Payment Requests",
"Permission:PaymentRequests": "Payment Requests",
"PaymentRequests": "Payment Requests",
@ -456,7 +470,8 @@
"InterestedLicenseType": "Interested License Type",
"MoveWaitList": "Move to wait list",
"CommunityLinkTitle": "Open on the community website",
"CommunityLink": "Community link",
"CommunityLink": "Link",
"IpAddress": "IP Address",
"ReloadFromSource": "Reload From the Source",
"ReloadFromSourceConfirmationMessage": "This post will be refreshed from \"{0}\". Do you want to continue?",
"UnitPrice": "Unit Price",
@ -497,6 +512,7 @@
"QuotationTemplate.BankAccount": "Our bank account information can be found at {0}",
"Permission:Raffles": "Raffle",
"Permission:Draw": "Draw",
"Permission:ExportAttendeesAsExcel": "Export at attendees as Excel",
"Menu:Raffles": "Raffles",
"RaffleIsNotDrawable": "Raffle is not drawable",
"WinnerCountMustBeGreaterThanZero": "Winner count must be greater than zero",
@ -565,6 +581,7 @@
"AllowAbpStudioBetaAccess": "Allow ABP Studio Beta Access",
"TotalQuestionCanNotBeNullMessage": "Total Question can not be null",
"Permission:OrganizationAutoRenewalPayments": "Organization Auto Renewal Payments",
"Permission:UserDownloads": "User Downloads",
"Permission:RetryFailedPayments": "Retry Failed Payments",
"AutoRenewalIsNotEnabled": "Auto Renewal is not enabled!",
"LicenseIsNotExpired": "License is not expired!",
@ -587,9 +604,12 @@
"AutoRenewalEnabled": "Auto Renewal Enabled",
"LastAutoRenewalPaymentTime": "Last Auto Renewal Payment Time",
"OrganizationDoesNotHaveACreditCard": "Organization does not have a credit card!",
"OrganizationDoesNotHaveACreditCardInGateway": "Organization does not have a credit card in the gateway!",
"Permission:EditWinners": "Edit Winners",
"Permission:ChangeDrawingStatus": "Change Drawing Status",
"Menu:Licenses": "Licenses",
"Menu:LicenseSettings": "License Settings",
"Menu:Licensing": "Licensing",
"Menu:Campaigns": "Campaigns",
"OrganizationId": "Organization Id",
"RemoveAllWinnersConfirmationMessage": "Are you sure you want to remove all winners?",
"AutoRenewals": "Auto Renewals",
@ -622,6 +642,85 @@
"DeleteImageSuccessMessage": "Image successfully deleted",
"DeleteImage": "Delete Image",
"NetTerms": "Terms (Days)",
"AbpStudioName": "Abp Studio name"
"Menu:DynamicReports": "Dynamic Reports",
"Menu:Others": "Others",
"Menu:Packs&Modules": "Packs & Modules",
"ReleaseCaches": "Release Cache",
"Menu:HeroSections": "Hero Sections",
"HeroSections": "Hero Sections",
"DynamicReports": "Dynamic Reports",
"Menu:ReportsMenu": "Reports",
"Permission:HeroSections": "Hero Sections",
"RedirectLink": "Redirect link",
"HeroSectionsDeletionConfirmationMessage": "Are you sure you want to delete the hero section?",
"AbpStudioName": "ABP Studio name",
"Permission:EditAttendees": "Edit Attendees",
"AttendeesCount": "Attendees Count",
"CreateQRCode": "Create QR Code",
"DrawTV": "Public draw on the TV",
"DrawModal": "Private draw on the modal",
"SetAsDrawable": "Set as drawable",
"SetAsNoDrawable": "Set as non-drawable",
"SetAsCompleted": "Set as completed",
"RemoveAllWinners": "Remove all winners",
"EditWinners": "Edit winners",
"EditAttendees": "Edit attendees",
"ExportAttendeesAsExcel": "Export attendees as Excel",
"DuplicateRaffle": "Duplicate raffle",
"LicenseMonthsOnNewPurchase": "License Months for New License",
"LicenseMonthsOnRenewPurchase": "License Months for License Renewal",
"SupportQuestionCountPerDeveloperOnRenewLicense": "Support Question Count Per Developer for License Renewal",
"SupportQuestionCountPerDeveloperOnNewLicense": "Support Question Count Per Developer for New License",
"IncludedDeveloperCount": "Included Developer Count",
"CanBuyAdditionalDevelopers": "Can Buy Additional Developers",
"HasEmailSupport": "Has Email Support",
"IsSupportPrivateQuestion": "Can Open Private Support Question",
"AdditionalDeveloperPrice": "Additional Developer Price",
"LicenseUpgradePrice": "License Upgrade Price",
"AdditionalDeveloperUpgradePrice": "Additional Developer Upgrade Price",
"EditLicense{0}": "Edit {0} License",
"CampaignNameAlreadyExists": "Campaign name already exists",
"DiscountRate": "Discount Rate",
"Menu:RedisManagement": "Redis Management",
"RedisManagement": "Redis Management",
"Permission:RedisManagement": "Redis Management",
"UserCleanUp": "User Clean Up",
"Permission:UserCleanUp": "User Clean Up",
"AllowPrivateQuestion": "Allow Private Question",
"Permission:Campaigns": "Campaigns",
"Permission:Licenses": "License Settings",
"BlockUserPolicy": "User Block Policies",
"Permission:BlockUserPolicy": "User Block Policy",
"ManageImages" : "Manage Image",
"ModuleMainImage": "Module Main Image",
"ModuleImageInfo1": "Accepted file types : <strong> JPEG, JPG, PNG, SVG </strong>",
"ModuleImageInfo2": "Max file size : <strong> 1 MB </strong>",
"ModuleImageInfo3": "Image Proportion : <strong> 1:1 </strong>",
"ModuleImageInfo4": "<a href='/images/example-module-img.png' download> Download a sample cover image </a>",
"AreYouSureToDeleteImage": "Are you sure you want to delete this image?",
"CompactPercentage": "Compact Percentage",
"CompactPercentageDescription": "Percentage of cache entries to remove during compaction (1-100)",
"Settings": "Settings",
"MaxSizeOfInMemoryCache": "Max Size Of In Memory Cache",
"MaxSizeOfInMemoryCacheInfo": "Gets or sets the maximum size of the memory cache.",
"SizeOfTriggerAutoCompact": "Size Of Trigger Auto Compact",
"SizeOfTriggerAutoCompactInfo": "Gets or sets the size threshold that triggers auto-compaction. When the cache size exceeds this value, auto-compaction will be performed",
"AutoCompactPercentage": "Auto Compact Percentage",
"AutoCompactPercentageInfo": "Gets or sets the percentage of items to remove when auto-compaction is triggered (1-100)",
"ClearCaches": "This clears all NuGet content cache",
"CacheLatestVersions": "Cache Latest Versions",
"VersionCount": "Version Count",
"VersionCountInfo": "Gets or sets the number of versions to cache",
"IncludeLeptonX": "Include LeptonX",
"IncludeLeptonXInfo": "Gets or sets whether to include LeptonX in the cache",
"IncludePrerelease": "Include Prerelease",
"IncludePrereleaseInfo": "Gets or sets whether to include prerelease versions in the cache",
"CacheVersionCount": "Cache Version Count",
"CacheVersionCountInfo": "Gets or sets the number of versions to cache",
"CacheLatestVersionsInfo": "This caches the latest versions of the NuGet packages",
"NuGetApiKey": "NuGet API key",
"QuestionCount": "Question Count",
"MakeAnnouncement": "Make Announcement",
"MakeAnnouncementInfo": "Check it if you want to make an announcement for this post"
}
}
}

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

@ -90,9 +90,9 @@
"TermsAndConditions": "Terms & Conditions",
"WouldLikeToReceiveMarketingMaterials": "I would like to receive marketing materials like product deals & special offers.",
"JoinOurMarketingNewsletter": "Join our marketing newsletter",
"CommunityPrivacyPolicyConfirmation": "I agree to the Terms & Conditions and <a class=\"text-white fw-6 text-decoration-underline opacity-50\" href=\"https://commercial.abp.io/Privacy\">Privacy Policy</a>.",
"CommunityPrivacyPolicyConfirmation": "I agree to the Terms & Conditions and <a class=\"text-white fw-6 text-decoration-underline opacity-50\" href=\"/Privacy\">Privacy Policy</a>.",
"WouldLikeToReceiveNotification": "I would like to receive the latest news from abp.io websites.",
"CommercialNewsletterConfirmationMessage": "I agree to the <a class=\"text-white fw-bolder text-decoration-underline\" href=\"https://commercial.abp.io/TermsConditions\">Terms & Conditions</a> and <a class=\"text-white fw-bolder text-decoration-underline\" href=\"https://commercial.abp.io/Privacy\">Privacy Policy</a>.",
"CommercialNewsletterConfirmationMessage": "I agree to the <a href=\"/TermsConditions\">Terms & Conditions</a> and <a href=\"/Privacy\">Privacy Policy</a>.",
"FreeDDDEBook": "Free DDD E-Book",
"AdditionalServices": "Additional Services",
"Learn": "Learn",
@ -118,7 +118,7 @@
"EULA": "EULA",
"ABPCommercialIntroductionMessage": "Pre-built application modules, advanced startup templates, rapid application development tooling, professional UI themes and premium support.",
"MasteringAbpFrameworkEBook": "Mastering ABP Framework",
"MasteringTheABPFrameworkExplanation": "Written by the creator of the ABP Framework, this book will help you gain a complete understanding of the framework and modern web application development techniques.",
"MasteringTheABPFrameworkExplanation": "Mastering ABP Framework e-book; written by the creator of the ABP Framework, will help you gain a complete understanding of the framework and modern web application development techniques.",
"Speakers": "Speakers",
"PreviousEvents": "Previous Events",
"WatchTheEvent": "Watch the Event",
@ -158,7 +158,7 @@
"SeePreviousEvents": "See Previous Events",
"CookieConsent_Accept": "Accept",
"CookieConsent_Explanation_1": "We use cookies to give you the best experience on our website.",
"CookieConsent_Explanation_2": "If you continue to browse, then you agree to our <a href=\"@Url.Page(\"/Privacy\")\">Privacy policy and cookie policy.</a>.",
"CookieConsent_Explanation_2": "If you continue to browse, then you agree to our <a href=\"/Privacy\">Privacy policy and cookie policy.</a>.",
"Error_Page_400_Title": "There was a problem serving the requested page.",
"Error_Page_400_Description_1": "Usually this means that an unexpected error happened while processing your request.",
"Error_Page_400_Description_2": "If the problem persists, contact us at <a href=\"mailto:info@abp.io\">info@abp.io</a> and we'll help get you on your way.",
@ -239,18 +239,20 @@
"Trainings": "Trainings",
"MeetTheABPCommunity": "Meet the ABP <span class=\"gradient-community\">Community</span>",
"DisplayName:CommunityIndexPagePoll": "Community Index Page Poll",
"ReturnOfInvestment": "Return Of Investment",
"ReturnOnInvestment": "Return on Investment",
"PromotionalOffers": "Promotional Offers",
"PromotionalOffersDefinition": "Discounts, seasonal campaigns, etc.",
"EventsDefinition": "Community Talks, Webinars, ABP .NET Conference, etc.",
"EventsDefinition": "Community Talks, Webinars, ABP DOTNET Conference, etc.",
"ReleaseNotesDefinition": "ABP.IO Platform releases, new products, etc.",
"Newsletter": "Newsletter",
"NewsletterDefinition": "Blog posts, community news, etc.",
"OrganizationOverview": "Organization Overview",
"EmailPreferences": "Email Preferences",
"VideoCourses": "Essential Videos",
"DoYouAgreePrivacyPolicy": "By clicking <b>Subscribe</b> button you agree to the <a href=\"https://account.abp.io/Account/TermsConditions\">Terms & Conditions</a> and <a href=\"https://account.abp.io/Account/Privacy\">Privacy Policy</a>.",
"DoYouAgreePrivacyPolicy": "By clicking <b>Subscribe</b> button you agree to the <a href=\"/terms-conditions\">Terms & Conditions</a> and <a href=\"/privacy\">Privacy Policy</a>.",
"AbpConferenceDescription": "ABP Conference is a virtual event for .NET developers to learn and connect with the community.",
"Mobile": "Mobile"
"Mobile": "Mobile",
"MetaTwitterCard": "summary_large_image",
"IPAddress": "IP Address"
}
}

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

@ -1,8 +1,9 @@
{
"culture": "en",
"texts": {
"AbpTitle": "Read All Blog Posts",
"AbpTitle": "New Blog Post | ABP.IO",
"AbpDescription": "ABP is an open source application framework focused on AspNet Core based web application development. Don't repeat yourself, focus on your own business code.",
"AbpDefinition": "ABP blog for .NET development, cross-platform, ASP.NET application templates, ABP-related news and more..."
"AbpDefinition": "Create a new blog post and share your knowledge and experience with ABP.",
"Blogs": "Blog Posts"
}
}

10
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/AbpIoCommercialResource.cs

@ -1,10 +0,0 @@
using Volo.Abp.Localization;
namespace AbpIoLocalization.Commercial.Localization
{
[LocalizationResourceName("AbpIoCommercial")]
public class AbpIoCommercialResource
{
}
}

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

@ -157,7 +157,7 @@
"ABPCLIExplanation": "ABP CLI (واجهة سطر الأوامر) هي أداة سطر أوامر لتنفيذ بعض العمليات الشائعة للحلول المستندة إلى ABP.",
"ABPSuiteEasilyCURD": "ABP Suite هي أداة تسمح لك بإنشاء صفحات CRUD بسهولة",
"WeAreHereToHelp": "نحن هنا من أجل <span class=\"zero-text\"> المساعدة </ span>",
"BrowseOrAskQuestion": "يمكنك تصفح مواضيع المساعدة الخاصة بنا أو البحث في الأسئلة الشائعة ، أو يمكنك طرح سؤال علينا باستخدام <a href=\"{0}\" class=\"text-success\"> نموذج الاتصال </a>.",
"BrowseOrAskQuestion": "يمكنك تصفح مواضيع المساعدة الخاصة بنا أو البحث في الأسئلة الشائعة ، أو يمكنك طرح سؤال علينا باستخدام <a href=\"{0}\"> نموذج الاتصال </a>.",
"SearchQuestionPlaceholder": "البحث في الأسئلة المتداولة",
"WhatIsTheABPCommercial": "ما هو برنامج ABP التجاري؟",
"WhatAreDifferencesThanAbpFramework": "ما هي الاختلافات بين إطار عمل ABP مفتوح المصدر وإطار عمل ABP التجاري؟",

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

@ -157,7 +157,7 @@
"ABPCLIExplanation": "ABP CLI (Command Line Interface) je nástroj příkazového řádku pro provádění některých běžných operací pro řešení založená na ABP.",
"ABPSuiteEasilyCURD": "ABP Suite je nástroj, který vám umožní snadno vytvářet stránky CRUD",
"WeAreHereToHelp": "Jsme tu, abychom vám <span class=\"zero-text\">Pomohli</span>",
"BrowseOrAskQuestion": "Můžete procházet naše témata nápovědy nebo vyhledávat v často kladených dotazech, případně nám můžete položit otázku pomocí <a href=\"{0}\" class=\"text-success\">kontaktního formuláře</a>.",
"BrowseOrAskQuestion": "Můžete procházet naše témata nápovědy nebo vyhledávat v často kladených dotazech, případně nám můžete položit otázku pomocí <a href=\"{0}\">kontaktního formuláře</a>.",
"SearchQuestionPlaceholder": "Hledejte v často kladených otázkách",
"WhatIsTheABPCommercial": "Co je ABP Commercial?",
"WhatAreDifferencesThanAbpFramework": "Jaké jsou rozdíly mezi open source ABP Framework a ABP Commercial?",

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

@ -157,7 +157,7 @@
"ABPCLIExplanation": "ABP CLI (Command Line Interface) ist ein Befehlszeilentool zum Ausführen einiger allgemeiner Operationen für ABP-basierte Lösungen.",
"ABPSuiteEasilyCURD": "ABP Suite ist ein Tool, mit dem Sie einfach CRUD-Seiten erstellen können",
"WeAreHereToHelp": "Wir sind hier, um <span class=\"zero-text\">Hilfe</span>",
"BrowseOrAskQuestion": "Sie können unsere Hilfethemen durchsuchen oder in häufig gestellten Fragen suchen oder uns über das <a href=\"{0}\" class=\"text-success\">Kontaktformular</a> eine Frage stellen.",
"BrowseOrAskQuestion": "Sie können unsere Hilfethemen durchsuchen oder in häufig gestellten Fragen suchen oder uns über das <a href=\"{0}\" >Kontaktformular</a> eine Frage stellen.",
"SearchQuestionPlaceholder": "Suche in häufig gestellten Fragen",
"WhatIsTheABPCommercial": "Was ist der ABP-Werbespot?",
"WhatAreDifferencesThanAbpFramework": "Was sind die Unterschiede zwischen dem Open Source ABP Framework und dem ABP Commercial?",

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

@ -645,7 +645,7 @@
"ExtendPaymentInfoSection_Description": "By extending/renewing your license, you will continue to get <a href=\"{0}\" target=\"_blank\">premium support</a>. You will also be able to get major or minor updates for modules and themes. You will be able to continue creating new projects. And you will still be able to use <a href=\"{1}\" target=\"_blank\">ABP Suite</a> which speeds up your development.",
"LicenseRenewalPrice": "License renewal price",
"LicensePrice": "License Price",
"TrialLicensePaymentInfoSection_Description": "<strong>Purchase license:</strong> By purchasing a license, you will continue to get <a href=\"{0}\" target=\"_blank\" rel=\"noopener\">premium support</a>. You will also be able to get major or minor updates for modules and themes. You will be able to continue creating new projects. And you will still be able to use <a href=\"{1}\" target=\"_blank\" rel=\"noopener\">ABP Suite</a> which speeds up your development.<br>See the <a href=\"{2}\" target=\"_blank\" rel=\"noopener\">license comparison table</a> to check the differences between the license types.",
"TrialLicensePaymentInfoSection_Description": "<strong>Purchase license:</strong> By purchasing a license, you will continue to get <a href=\"https://abp.io/support/questions\" target=\"_blank\" rel=\"noopener\">premium support</a>. You will also be able to get major or minor updates for modules and themes. You will be able to continue creating new projects. And you will still be able to use <a href=\"{1}\" target=\"_blank\" rel=\"noopener\">ABP Suite</a> which speeds up your development.<br>See the <a href=\"{2}\" target=\"_blank\" rel=\"noopener\">license comparison table</a> to check the differences between the license types.",
"SelectTargetLicense": "Select Target License",
"UpgradePaymentInfoSection_ExtendMyLicenseForOneYear": "Yes, extend my license expiration date for 1 year.",
"UpgradePaymentInfoSection_WantToExtendLicense": "Do you want to extend your license for 1 more year?",
@ -987,7 +987,7 @@
"Summary": "Summary",
"TrainingPack": "Training pack",
"TrainingPackDiscount": "Training pack discount",
"Purchase_OnboardingTraining_Description": "This live training is valid for a class of 8 students and this discount is only valid when purchased with the new license. <a href=\"{0}\" class=\"text-white\">Learn more <i class=\"fa fa-external-link ms-1\"></i></a>",
"Purchase_OnboardingTraining_Description": "This live training is valid for a class of 8 students and this discount is only valid when purchased with the new license. <a href=\"{0}\">Learn more <i class=\"fa fa-external-link ms-1\"></i></a>",
"Purchase_Save": "{0}% <span class=\"save ms-1\">Save {1}</span>",
"RemoveBasket": "Remove from basket",
"WhyABPIOPlatform?": "Why <span class=\"gradient-commercial\">ABP.IO Platform</span>?",
@ -1211,6 +1211,5 @@
"TrainingDescription": "We are offering the following training packages for who want to get expertise on the ABP Framework and the ABP.",
"PurchaseDevelopers": "developers",
"LinkExpiredMessage": "The payment link has expired! Contact us at <a href='mailto:sales@volosoft.com'>sales@volosoft.com</a> to update the link or <a href='https://abp.io/contact'>click here</a> to navigate to the contact page."
}
}

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

@ -157,7 +157,7 @@
"ABPCLIExplanation": "ABP CLI (Command Line Interface) es una herramienta de línea de comandos para realizar algunas operaciones comunes para soluciones basadas en ABP.",
"ABPSuiteEasilyCURD": "ABP Suite es una herramienta que le permite crear fácilmente páginas CRUD",
"WeAreHereToHelp": "Estamos aquí para <span class=\"zero-text\"> Ayuda </span>",
"BrowseOrAskQuestion": "Puede explorar nuestros temas de ayuda o buscar preguntas frecuentes, o puede hacernos una pregunta mediante el <a href=\"{0}\" class=\"text-success\"> formulario de contacto </a>.",
"BrowseOrAskQuestion": "Puede explorar nuestros temas de ayuda o buscar preguntas frecuentes, o puede hacernos una pregunta mediante el <a href=\"{0}\" > formulario de contacto </a>.",
"SearchQuestionPlaceholder": "Buscar en preguntas frecuentes",
"WhatIsTheABPCommercial": "¿Qué es ABP Commercial?",
"WhatAreDifferencesThanAbpFramework": "¿Cuáles son las diferencias entre ABP Framework de código abierto y ABP Commercial?",

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

@ -160,7 +160,7 @@
"ABPCLIExplanation": "ABP CLI (Command Line Interface) on komentorivityökalu joidenkin yleisten toimintojen suorittamiseen ABP-pohjaisiin ratkaisuihin.",
"ABPSuiteEasilyCURD": "ABP Suite on työkalu, jonka avulla voit helposti luoda CRUD-sivuja",
"WeAreHereToHelp": "<span class=\"zero-text\">Apua</span> olemme täällä",
"BrowseOrAskQuestion": "Voit selata ohjeaiheitamme tai etsiä usein kysyttyjä kysymyksiä tai voit esittää meille kysymyksiä <a href=\"{0}\" class=\"text-success\"> yhteydenottolomakkeella </a>.",
"BrowseOrAskQuestion": "Voit selata ohjeaiheitamme tai etsiä usein kysyttyjä kysymyksiä tai voit esittää meille kysymyksiä <a href=\"{0}\"> yhteydenottolomakkeella </a>.",
"SearchQuestionPlaceholder": "Hae usein kysyttyjä kysymyksiä",
"WhatIsTheABPCommercial": "Mikä on ABP-kauppa?",
"WhatAreDifferencesThanAbpFramework": "Mitä eroja on avoimen lähdekoodin ABP Frameworkilla ja ABP Commercialilla?",

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

@ -157,7 +157,7 @@
"ABPCLIExplanation": "ABP CLI (Command Line Interface) est un outil de ligne de commande pour effectuer certaines opérations courantes pour les solutions basées sur ABP.",
"ABPSuiteEasilyCURD": "ABP Suite est un outil qui vous permet de créer facilement des pages CRUD",
"WeAreHereToHelp": "Nous sommes ici pour <span class=\"zero-text\"> Aide </span>",
"BrowseOrAskQuestion": "Vous pouvez parcourir nos rubriques d'aide ou rechercher dans les questions fréquemment posées, ou vous pouvez nous poser une question en utilisant le <a href=\"{0}\" class=\"text-success\"> formulaire de contact </a>.",
"BrowseOrAskQuestion": "Vous pouvez parcourir nos rubriques d'aide ou rechercher dans les questions fréquemment posées, ou vous pouvez nous poser une question en utilisant le <a href=\"{0}\"> formulaire de contact </a>.",
"SearchQuestionPlaceholder": "Rechercher dans les questions fréquemment posées",
"WhatIsTheABPCommercial": "Qu'est-ce que la publicité ABP?",
"WhatAreDifferencesThanAbpFramework": "Quelles sont les différences entre le Framework ABP open source et le ABP Commercial?",

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

@ -157,7 +157,7 @@
"ABPCLIExplanation": "ABP CLI (कमांड लाइन इंटरफेस) ABP आधारित समाधानों के लिए कुछ सामान्य ऑपरेशन करने के लिए एक कमांड लाइन टूल है।",
"ABPSuiteEasilyCURD": "एबीपी सूट एक उपकरण है जो आपको आसानी से CRUD पेज बनाने की अनुमति देता है",
"WeAreHereToHelp": "हम यहाँ हैं <span class=\"zero-text\"> मदद </span>",
"BrowseOrAskQuestion": "आप हमारे सहायता विषयों को ब्राउज़ कर सकते हैं या अक्सर पूछे जाने वाले प्रश्नों में खोज कर सकते हैं, या आप <a href=\"{0}\" class=\"text-success\">संपर्क फ़ॉर्म</a> का उपयोग करके हमसे एक प्रश्न पूछ सकते हैं।",
"BrowseOrAskQuestion": "आप हमारे सहायता विषयों को ब्राउज़ कर सकते हैं या अक्सर पूछे जाने वाले प्रश्नों में खोज कर सकते हैं, या आप <a href=\"{0}\">संपर्क फ़ॉर्म</a> का उपयोग करके हमसे एक प्रश्न पूछ सकते हैं।",
"SearchQuestionPlaceholder": "अक्सर पूछे जाने वाले प्रश्नों में खोजें",
"WhatIsTheABPCommercial": "ABP कमर्शियल क्या है?",
"WhatAreDifferencesThanAbpFramework": "ओपन सोर्स ABP फ्रेमवर्क और ABP कमर्शियल के बीच क्या अंतर हैं?",

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

@ -160,7 +160,7 @@
"ABPCLIExplanation": "ABP CLI (sučelje naredbenog retka) alat je naredbenog retka za izvođenje nekih uobičajenih operacija za rješenja temeljena na ABP-u.",
"ABPSuiteEasilyCURD": "ABP Suite je alat koji vam omogućuje jednostavno stvaranje CRUD stranica",
"WeAreHereToHelp": "Ovdje smo da <span class=\"zero-text\">pomognemo</span>",
"BrowseOrAskQuestion": "Možete pregledavati naše teme pomoći ili pretraživati u često postavljanim pitanjima ili nam možete postaviti pitanje koristeći <a href=\"{0}\" class=\"text-success\">obrazac za kontakt</a> .",
"BrowseOrAskQuestion": "Možete pregledavati naše teme pomoći ili pretraživati u često postavljanim pitanjima ili nam možete postaviti pitanje koristeći <a href=\"{0}\">obrazac za kontakt</a> .",
"SearchQuestionPlaceholder": "Pretražite u često postavljanim pitanjima",
"WhatIsTheABPCommercial": "Što je ABP Commercial?",
"WhatAreDifferencesThanAbpFramework": "Koje su razlike između open source ABP Framework i ABP Commercial?",

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

@ -160,7 +160,7 @@
"ABPCLIExplanation": "Az ABP CLI (Command Line Interface) egy parancssori eszköz az ABP alapú megoldások általános műveleteinek végrehajtására.",
"ABPSuiteEasilyCURD": "Az ABP Suite egy olyan eszköz, amellyel könnyedén hozhat létre CRUD oldalakat",
"WeAreHereToHelp": "Azért vagyunk itt, hogy <span class=\"zero-text\">segítsünk</span>",
"BrowseOrAskQuestion": "Böngésszen a súgótémáink között, kereshet a gyakran ismételt kérdések között, vagy feltehet nekünk kérdést a <a href=\"{0}\" class=\"text-success\">kapcsolatfelvételi űrlap</a> használatával.",
"BrowseOrAskQuestion": "Böngésszen a súgótémáink között, kereshet a gyakran ismételt kérdések között, vagy feltehet nekünk kérdést a <a href=\"{0}\">kapcsolatfelvételi űrlap</a> használatával.",
"SearchQuestionPlaceholder": "Keressen a gyakran ismételt kérdések között",
"WhatIsTheABPCommercial": "Mi az az ABP Commercial?",
"WhatAreDifferencesThanAbpFramework": "Mi a különbség a nyílt forráskódú ABP Framework és az ABP Commercial között?",

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

@ -157,7 +157,7 @@
"ABPCLIExplanation": "ABP CLI (Command Line Interface) er skipanalínutæki til að framkvæma nokkrar algengar aðgerðir fyrir ABP byggðar lausnir.",
"ABPSuiteEasilyCURD": "ABP Suite er tæki sem gerir þér kleift að búa til CRUD síður auðveldlega",
"WeAreHereToHelp": "Við erum hérna til að <span class=\"zero-text\">Hjálpa</span>",
"BrowseOrAskQuestion": "Þú getur skoðað hjálparefni okkar eða leitað í algengum spurningum, eða þú getur spurt okkur spurningar með því að nota <a href=\"{0}\" class=\"text-success\"> samskiptaform </a> .",
"BrowseOrAskQuestion": "Þú getur skoðað hjálparefni okkar eða leitað í algengum spurningum, eða þú getur spurt okkur spurningar með því að nota <a href=\"{0}\"> samskiptaform </a> .",
"SearchQuestionPlaceholder": "Leitaðu í algengum spurningum",
"WhatIsTheABPCommercial": "Hvað er ABP Commercial?",
"WhatAreDifferencesThanAbpFramework": "Hver er munurinn á milli open source ABP Framework og ABP Commercial?",

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

@ -157,7 +157,7 @@
"ABPCLIExplanation": "ABP CLI (Command Line Interface) è uno strumento a riga di comando per eseguire alcune operazioni comuni per soluzioni basate su ABP.",
"ABPSuiteEasilyCURD": "ABP Suite è uno strumento che ti permette di creare facilmente pagine CRUD",
"WeAreHereToHelp": "Siamo qui per <span class=\"zero-text\">Aiutarti</span>",
"BrowseOrAskQuestion": "Puoi sfogliare i nostri argomenti della guida o cercare nelle domande frequenti oppure puoi farci una domanda utilizzando il <a href=\"{0}\" class=\"text-success\"> modulo di contatto </a>.",
"BrowseOrAskQuestion": "Puoi sfogliare i nostri argomenti della guida o cercare nelle domande frequenti oppure puoi farci una domanda utilizzando il <a href=\"{0}\"> modulo di contatto </a>.",
"SearchQuestionPlaceholder": "Cerca nelle domande frequenti",
"WhatIsTheABPCommercial": "Cos'è ABP Commercial?",
"WhatAreDifferencesThanAbpFramework": "Quali sono le differenze tra ABP Framework open source e ABP Commercial?",

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

@ -157,7 +157,7 @@
"ABPCLIExplanation": "ABP CLI (Command Line Interface) is een opdrachtregelprogramma om een aantal veelvoorkomende bewerkingen uit te voeren voor op ABP gebaseerde oplossingen.",
"ABPSuiteEasilyCURD": "ABP Suite is een tool waarmee u eenvoudig CRUD-pagina's kunt maken",
"WeAreHereToHelp": "We zijn hier om <span class=\"zero-text\">Help</span>",
"BrowseOrAskQuestion": "U kunt door onze Help-onderwerpen bladeren of zoeken in veelgestelde vragen, of u kunt ons een vraag stellen via het <a href=\"{0}\" class=\"text-success\">contactformulier</a>.",
"BrowseOrAskQuestion": "U kunt door onze Help-onderwerpen bladeren of zoeken in veelgestelde vragen, of u kunt ons een vraag stellen via het <a href=\"{0}\">contactformulier</a>.",
"SearchQuestionPlaceholder": "Zoeken in veelgestelde vragen",
"WhatIsTheABPCommercial": "Wat is de ABP Commercial?",
"WhatAreDifferencesThanAbpFramework": "Wat zijn de verschillen tussen het open source ABP Framework en de ABP Commercial?",

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

@ -157,7 +157,7 @@
"ABPCLIExplanation": "ABP CLI (Interfejs wiersza poleceń) to narzędzie wiersza poleceń do wykonywania niektórych typowych operacji dla rozwiązań opartych na ABP.",
"ABPSuiteEasilyCURD": "ABP Suite to narzędzie, które pozwala łatwo tworzyć strony CRUD",
"WeAreHereToHelp": "Jesteśmy tutaj, aby <span class=\"zero-text\">pomoc</span>",
"BrowseOrAskQuestion": "Możesz przeglądać nasze tematy pomocy lub przeszukiwać często zadawane pytania albo możesz zadać nam pytanie, korzystając z <a href=\"{0}\" class=\"text-success\">formularza kontaktowego</a>.",
"BrowseOrAskQuestion": "Możesz przeglądać nasze tematy pomocy lub przeszukiwać często zadawane pytania albo możesz zadać nam pytanie, korzystając z <a href=\"{0}\">formularza kontaktowego</a>.",
"SearchQuestionPlaceholder": "Szukaj w często zadawanych pytaniach",
"WhatIsTheABPCommercial": "Co to jest reklama ABP?",
"WhatAreDifferencesThanAbpFramework": "Jakie są różnice między Open Source ABP Framework a ABP Commercial?",

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

@ -157,7 +157,7 @@
"ABPCLIExplanation": "ABP CLI (Command Line Interface) é uma ferramenta de linha de comando para realizar algumas operações comuns para soluções baseadas em ABP.",
"ABPSuiteEasilyCURD": "ABP Suite é uma ferramenta que permite criar facilmente páginas CRUD",
"WeAreHereToHelp": "Estamos aqui para <span class=\"zero-text\"> ajudar </span>",
"BrowseOrAskQuestion": "Você pode navegar em nossos tópicos de ajuda ou pesquisar as perguntas mais frequentes, ou pode nos fazer uma pergunta usando o <a href=\"{0}\" class=\"text-success\"> formulário de contato </a>.",
"BrowseOrAskQuestion": "Você pode navegar em nossos tópicos de ajuda ou pesquisar as perguntas mais frequentes, ou pode nos fazer uma pergunta usando o <a href=\"{0}\"> formulário de contato </a>.",
"SearchQuestionPlaceholder": "Pesquise nas perguntas mais frequentes",
"WhatIsTheABPCommercial": "O que é o comercial ABP?",
"WhatAreDifferencesThanAbpFramework": "Quais são as diferenças entre o ABP Framework de código aberto e o ABP Commercial?",

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

@ -157,7 +157,7 @@
"ABPCLIExplanation": "ABP CLI (Command Line Interface) este un instrument de linii de comandă pentru executarea unor operaţii comune pentru soluţiile ABP.",
"ABPSuiteEasilyCURD": "Suita ABP este un instrument care vă permite crearea cu uşurinţă a paginilor CRUD",
"WeAreHereToHelp": "Suntem aici să <span class=\"zero-text\">Ajutăm</span>",
"BrowseOrAskQuestion": "Puteţi răsfoi subiectele noastre de ajutor sau puteţi căuta în cadrul secţiunii întrebărilor frecvent adresate, sau ne puteţi adresa o întrebare folosind <a href=\"{0}\" class=\"text-success\">formularul de contact</a>.",
"BrowseOrAskQuestion": "Puteţi răsfoi subiectele noastre de ajutor sau puteţi căuta în cadrul secţiunii întrebărilor frecvent adresate, sau ne puteţi adresa o întrebare folosind <a href=\"{0}\">formularul de contact</a>.",
"SearchQuestionPlaceholder": "Caută în întrebările frecvent adresate",
"WhatIsTheABPCommercial": "Ce este ABP Commercial?",
"WhatAreDifferencesThanAbpFramework": "Care sunt diferenţele dintre ABP Framework şi ABP Comercial?",

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

@ -160,7 +160,7 @@
"ABPCLIExplanation": "ABP CLI (интерфейс командной строки) — это инструмент командной строки для выполнения некоторых распространенных операций для решений на основе ABP.",
"ABPSuiteEasilyCURD": "ABP Suite — это инструмент, который позволяет легко создавать страницы CRUD.",
"WeAreHereToHelp": "Мы здесь, чтобы <span class=\"zero-text\">Помощь</span>",
"BrowseOrAskQuestion": "Вы можете просмотреть разделы справки или выполнить поиск по часто задаваемым вопросам, либо задать нам вопрос, используя <a href=\"{0}\" class=\"text-success\">Форма обратной связи</a>.",
"BrowseOrAskQuestion": "Вы можете просмотреть разделы справки или выполнить поиск по часто задаваемым вопросам, либо задать нам вопрос, используя <a href=\"{0}\">Форма обратной связи</a>.",
"SearchQuestionPlaceholder": "Поиск в часто задаваемых вопросах",
"WhatIsTheABPCommercial": "Что такое ABP Commercial?",
"WhatAreDifferencesThanAbpFramework": "Каковы различия между ABP Framework с открытым исходным кодом и ABP Commercial?",

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

@ -157,7 +157,7 @@
"ABPCLIExplanation": "ABP CLI (Command Line Interface) je nástroj v príkazovom riadku na vykonávanie niektorých bežných operácií v riešeniach založených na ABP.",
"ABPSuiteEasilyCURD": "ABP Suite je nástroj, ktorý vám umožňuje jednoducho vytvárať CRUD stránky.",
"WeAreHereToHelp": "Sme tu, aby sme <span class=\"zero-text\">pomohli</span>",
"BrowseOrAskQuestion": "Môžete si prezerať témy našej nápovedy alebo vyhľadávať v často kladených otázkach, prípadne nám môžete položiť otázku pomocou <a href=\"{0}\" class=\"text-success\">kontaktného formulára</a>.",
"BrowseOrAskQuestion": "Môžete si prezerať témy našej nápovedy alebo vyhľadávať v často kladených otázkach, prípadne nám môžete položiť otázku pomocou <a href=\"{0}\">kontaktného formulára</a>.",
"SearchQuestionPlaceholder": "Vyhľadávanie v často kladených otázkach",
"WhatIsTheABPCommercial": "Čo je to ABP Commercial?",
"WhatAreDifferencesThanAbpFramework": "Aké sú rozdiely medzi open source ABP Framework a ABP Commercial?",

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

@ -157,7 +157,7 @@
"ABPCLIExplanation": "ABP CLI (vmesnik ukazne vrstice) je orodje ukazne vrstice za izvajanje nekaterih običajnih operacij za rešitve, ki temeljijo na ABP.",
"ABPSuiteEasilyCURD": "ABP Suite je orodje, ki vam omogoča preprosto ustvarjanje strani CRUD",
"WeAreHereToHelp": "Tukaj smo za <span class=\"zero-text\">pomoč</span>",
"BrowseOrAskQuestion": "Brskate lahko po naših temah pomoči ali iščete po pogostih vprašanjih ali pa nam postavite vprašanje z uporabo <a href=\"{0}\" class=\"text-success\">kontaktnega obrazca</a>.",
"BrowseOrAskQuestion": "Brskate lahko po naših temah pomoči ali iščete po pogostih vprašanjih ali pa nam postavite vprašanje z uporabo <a href=\"{0}\">kontaktnega obrazca</a>.",
"SearchQuestionPlaceholder": "Iščite v pogosto zastavljenih vprašanjih",
"WhatIsTheABPCommercial": "Kaj je reklama ABP?",
"WhatAreDifferencesThanAbpFramework": "Kakšne so razlike med odprtokodnim okvirom ABP in ABP Commercial?",

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

@ -153,7 +153,7 @@
"ABPCLIExplanation": "ABP CLI (Komut Satırı Arayüzü), ABP tabanlı projeler için bazı ortak işlemleri gerçekleştirmek için bir komut satırı aracıdır.",
"ABPSuiteEasilyCURD": "ABP Suite, kolayca CRUD sayfaları oluşturmanıza olanak sağlayan bir araçtır",
"WeAreHereToHelp": "<span class=\"zero-text\">Yardım</span> için buradayız",
"BrowseOrAskQuestion": "Yardım konularımıza göz atabilir veya sık sorulan sorularda arama yapabilir ya da <a href=\"{0}\" class=\"text-success\">iletişim formunu</a> kullanarak bize soru sorabilirsiniz.",
"BrowseOrAskQuestion": "Yardım konularımıza göz atabilir veya sık sorulan sorularda arama yapabilir ya da <a href=\"{0}\">iletişim formunu</a> kullanarak bize soru sorabilirsiniz.",
"SearchQuestionPlaceholder": "Sık sorulan sorularda ara",
"WhatIsTheABPCommercial": "ABP Commercial nedir?",
"WhatAreDifferencesThanAbpFramework": "Açık kaynaklı ABP Frameworkü ile ABP Commercial arasındaki farklar nelerdir?",

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

@ -157,7 +157,7 @@
"ABPCLIExplanation": "ABP CLI (Giao diện dòng lệnh) là một công cụ dòng lệnh để thực hiện một số hoạt động phổ biến cho các giải pháp dựa trên ABP.",
"ABPSuiteEasilyCURD": "ABP Suite là một công cụ cho phép bạn dễ dàng tạo các trang CRUD",
"WeAreHereToHelp": "Chúng tôi ở đây để <span class=\"zero-text\"> Trợ giúp </span>",
"BrowseOrAskQuestion": "Bạn có thể duyệt qua các chủ đề trợ giúp của chúng tôi hoặc tìm kiếm trong các câu hỏi thường gặp hoặc bạn có thể đặt câu hỏi cho chúng tôi bằng cách sử dụng <a href=\"{0}\" class=\"text-success\"> biểu mẫu liên hệ </a>.",
"BrowseOrAskQuestion": "Bạn có thể duyệt qua các chủ đề trợ giúp của chúng tôi hoặc tìm kiếm trong các câu hỏi thường gặp hoặc bạn có thể đặt câu hỏi cho chúng tôi bằng cách sử dụng <a href=\"{0}\"> biểu mẫu liên hệ </a>.",
"SearchQuestionPlaceholder": "Tìm kiếm trong các câu hỏi thường gặp",
"WhatIsTheABPCommercial": "ABP thương mại là gì?",
"WhatAreDifferencesThanAbpFramework": "Sự khác biệt giữa Khung ABP nguồn mở và ABP Thương mại là gì?",

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

@ -160,7 +160,7 @@
"ABPCLIExplanation": "ABP CLI(命令行界面)是一种命令行工具,用于执行基于 ABP 的解决方案的一些常用操作。",
"ABPSuiteEasilyCURD": "ABP Suite 是一款可让您轻松创建 CRUD 页面的工具",
"WeAreHereToHelp": "我们在这里<span class=\"zero-text\">帮助</span>",
"BrowseOrAskQuestion": "您可以浏览我们的帮助主题或搜索常见问题,也可以使用 <a href=\"{0}\" class=\"text-success\">联系表单</a>向我们提问。",
"BrowseOrAskQuestion": "您可以浏览我们的帮助主题或搜索常见问题,也可以使用 <a href=\"{0}\">联系表单</a>向我们提问。",
"SearchQuestionPlaceholder": "在常见问题中搜索",
"WhatIsTheABPCommercial": "ABP Commercial 是什么?",
"WhatAreDifferencesThanAbpFramework": "开源 ABP 框架与 ABP 商业版之间有哪些区别?",

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

@ -159,7 +159,7 @@
"ABPCLIExplanation": "ABP CLI(命令行頁面)是一個執行基於ABP解決方案的一些常見操作的命令行工具.",
"ABPSuiteEasilyCURD": "ABP Suite是一個使你輕松創建CURD頁面的工具",
"WeAreHereToHelp": "我們在這裏為你提供<span class=\"zero-text\">幫助</span>",
"BrowseOrAskQuestion": "你可以瀏覽我們的幫助主題或搜索常見的問題, 或者你可以使用<a href=\"{0}\" class=\"text-success\">聯系表單</a>向我們提問.",
"BrowseOrAskQuestion": "你可以瀏覽我們的幫助主題或搜索常見的問題, 或者你可以使用<a href=\"{0}\">聯系表單</a>向我們提問.",
"SearchQuestionPlaceholder": "搜索常見的問題",
"WhatIsTheABPCommercial": "什麽是ABP商業版?",
"WhatAreDifferencesThanAbpFramework": "ABP框架與ABP商業版有什麽不同?",

10
abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/AbpIoCommunityResource.cs

@ -1,10 +0,0 @@
using Volo.Abp.Localization;
namespace AbpIoLocalization.Community.Localization
{
[LocalizationResourceName("AbpIoCommunity")]
public class AbpIoCommunityResource
{
}
}

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

@ -264,6 +264,7 @@
"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!"
"YourAccountDisabled": "Your user account is disabled!",
"PostCreationFailed": "An error occurred while creating the post. Please try again later."
}
}

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

@ -4,6 +4,7 @@
"Buy": "Buy",
"SeeBookDetails": "See Book Details",
"MasteringAbpFrameworkEBookDescription": "This book will help you gain a complete understanding of the framework and modern web application development techniques.",
"Feedback": "Feedback"
"Feedback": "Feedback",
"DocumentationDescription": "Dive into ABP's latest documentation. Find guides, API references, and best practices to help you effectively build and manage modern web apps with ABP"
}
}

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

@ -301,7 +301,7 @@
"ProgressiveWebApplication": "تطبيق ويب تقدمي",
"Preview": "معاينة",
"CreateANewSolution": "قم بإنشاء حل جديد",
"ABPFrameworkFeatures": "إطار عمل ABP <span class=\"gradient-framework\">ميزات</span>",
"FrameworkFeatures": "إطار عمل ABP <span class=\"gradient-framework\">ميزات</span>",
"Commercial": "تجاري",
"ThirdPartyTools": "أدوات الطرف الثالث",
"Back": "عودة",

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

@ -301,7 +301,7 @@
"ProgressiveWebApplication": "Progresivní webová aplikace",
"Preview": "Náhled",
"CreateANewSolution": "Vytvořte nové řešení",
"ABPFrameworkFeatures": "<span class=\"gradient-framework\">Funkce</span> rámce ABP",
"FrameworkFeatures": "<span class=\"gradient-framework\">Funkce</span> rámce ABP",
"Commercial": "Komerční",
"ThirdPartyTools": "Nástroje třetích stran",
"Back": "Zadní",

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

@ -301,7 +301,7 @@
"ProgressiveWebApplication": "Progressive Webanwendung",
"Preview": "Vorschau",
"CreateANewSolution": "Erstellen Sie eine neue Lösung",
"ABPFrameworkFeatures": "ABP-Framework- <span class=\"gradient-framework\">Funktionen</span>",
"FrameworkFeatures": "ABP-Framework- <span class=\"gradient-framework\">Funktionen</span>",
"Commercial": "Kommerziell",
"ThirdPartyTools": "Tools von Drittanbietern",
"Back": "Zurück",

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

@ -153,6 +153,9 @@
"AndMore": "and more...",
"Code": "Code",
"Result": "Result",
"CommercialSupport": "Commercial Suport",
"GithubIssues": "GitHub Issues",
"TechnicalSupport": "Technical Support",
"SeeTheDocumentForMoreInformation": "See the <a href=\"{1}\">{0} document</a> for more information",
"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 Framework",

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

File diff suppressed because it is too large

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

@ -301,7 +301,7 @@
"ProgressiveWebApplication": "Aplicación web progresiva",
"Preview": "Avance",
"CreateANewSolution": "Crear una nueva solución",
"ABPFrameworkFeatures": "<span class=\"gradient-framework\">Características</span> del marco ABP",
"FrameworkFeatures": "<span class=\"gradient-framework\">Características</span> del marco ABP",
"Commercial": "Comercial",
"ThirdPartyTools": "Herramientas de terceros",
"Back": "Atrás",

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

@ -301,7 +301,7 @@
"ProgressiveWebApplication": "Progressiivinen verkkosovellus",
"Preview": "Esikatsele",
"CreateANewSolution": "Luo uusi ratkaisu",
"ABPFrameworkFeatures": "ABP-kehyksen <span class=\"gradient-framework\">Ominaisuudet</span>",
"FrameworkFeatures": "ABP-kehyksen <span class=\"gradient-framework\">Ominaisuudet</span>",
"Commercial": "Kaupallinen",
"ThirdPartyTools": "Kolmannen osapuolen työkalut",
"Back": "Takaisin",

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

@ -301,7 +301,7 @@
"ProgressiveWebApplication": "Application Web progressive",
"Preview": "Aperçu",
"CreateANewSolution": "Créer une nouvelle solution",
"ABPFrameworkFeatures": "<span class=\"gradient-framework\">Fonctionnalités</span> du cadre ABP",
"FrameworkFeatures": "<span class=\"gradient-framework\">Fonctionnalités</span> du cadre ABP",
"Commercial": "Commercial",
"ThirdPartyTools": "Outils tiers",
"Back": "Dos",

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

@ -301,7 +301,7 @@
"ProgressiveWebApplication": "प्रगतिशील वेब अनुप्रयोग",
"Preview": "पूर्व दर्शन",
"CreateANewSolution": "एक नया समाधान बनाएं",
"ABPFrameworkFeatures": "एबीपी फ्रेमवर्क <span class=\"gradient-framework\">विशेषताएं</span>",
"FrameworkFeatures": "एबीपी फ्रेमवर्क <span class=\"gradient-framework\">विशेषताएं</span>",
"Commercial": "व्यावसायिक",
"ThirdPartyTools": "तृतीय पक्ष उपकरण",
"Back": "पीछे",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hr.json

@ -301,7 +301,7 @@
"ProgressiveWebApplication": "Progresivna web aplikacija",
"Preview": "Pregled",
"CreateANewSolution": "Napravite novo rješenje",
"ABPFrameworkFeatures": "<span class=\"gradient-framework\">Značajke</span> ABP okvira",
"FrameworkFeatures": "<span class=\"gradient-framework\">Značajke</span> ABP okvira",
"Commercial": "Komercijalni",
"ThirdPartyTools": "Alati trećih strana",
"Back": "leđa",

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

@ -301,7 +301,7 @@
"ProgressiveWebApplication": "Progresszív webes alkalmazás",
"Preview": "Előnézet",
"CreateANewSolution": "Hozzon létre egy új megoldást",
"ABPFrameworkFeatures": "Az ABP keretrendszer <span class=\"gradient-framework\">jellemzői</span>",
"FrameworkFeatures": "Az ABP keretrendszer <span class=\"gradient-framework\">jellemzői</span>",
"Commercial": "Kereskedelmi",
"ThirdPartyTools": "Harmadik féltől származó eszközök",
"Back": "Vissza",

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

@ -301,7 +301,7 @@
"ProgressiveWebApplication": "Framsækið vefforrit",
"Preview": "Forskoðun",
"CreateANewSolution": "Búðu til nýja lausn",
"ABPFrameworkFeatures": "ABP Framework <span class=\"gradient-framework\">Eiginleikar</span>",
"FrameworkFeatures": "ABP Framework <span class=\"gradient-framework\">Eiginleikar</span>",
"Commercial": "Auglýsing",
"ThirdPartyTools": "Verkfæri þriðja aðila",
"Back": "Til baka",

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

@ -301,7 +301,7 @@
"ProgressiveWebApplication": "Applicazione Web progressiva",
"Preview": "Anteprima",
"CreateANewSolution": "Creare una nuova soluzione",
"ABPFrameworkFeatures": "<span class=\"gradient-framework\">Caratteristiche</span> della struttura ABP",
"FrameworkFeatures": "<span class=\"gradient-framework\">Caratteristiche</span> della struttura ABP",
"Commercial": "Commerciale",
"ThirdPartyTools": "Strumenti di terze parti",
"Back": "Indietro",

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

@ -301,7 +301,7 @@
"ProgressiveWebApplication": "Progressieve webapplicatie",
"Preview": "Voorbeeld",
"CreateANewSolution": "Creëer een nieuwe oplossing",
"ABPFrameworkFeatures": "ABP Framework <span class=\"gradient-framework\">-functies</span>",
"FrameworkFeatures": "ABP Framework <span class=\"gradient-framework\">-functies</span>",
"Commercial": "Reclame",
"ThirdPartyTools": "Hulpmiddelen van derden",
"Back": "Rug",

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

@ -301,7 +301,7 @@
"ProgressiveWebApplication": "Progresywna aplikacja internetowa",
"Preview": "Zapowiedź",
"CreateANewSolution": "Utwórz nowe rozwiązanie",
"ABPFrameworkFeatures": "<span class=\"gradient-framework\">Funkcje</span> struktury ABP",
"FrameworkFeatures": "<span class=\"gradient-framework\">Funkcje</span> struktury ABP",
"Commercial": "Handlowy",
"ThirdPartyTools": "Narzędzia stron trzecich",
"Back": "Z powrotem",

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

@ -301,7 +301,7 @@
"ProgressiveWebApplication": "Aplicativo Web Progressivo",
"Preview": "Visualização",
"CreateANewSolution": "Crie uma nova solução",
"ABPFrameworkFeatures": "<span class=\"gradient-framework\">Recursos</span> da estrutura ABP",
"FrameworkFeatures": "<span class=\"gradient-framework\">Recursos</span> da estrutura ABP",
"Commercial": "Comercial",
"ThirdPartyTools": "Ferramentas de terceiros",
"Back": "Voltar",

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

@ -301,7 +301,7 @@
"ProgressiveWebApplication": "Aplicație web progresivă",
"Preview": "previzualizare",
"CreateANewSolution": "Creați o nouă soluție",
"ABPFrameworkFeatures": "<span class=\"gradient-framework\">Caracteristicile</span> cadrului ABP",
"FrameworkFeatures": "<span class=\"gradient-framework\">Caracteristicile</span> cadrului ABP",
"Commercial": "Comercial",
"ThirdPartyTools": "Instrumente de la terți",
"Back": "Înapoi",

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

@ -299,7 +299,7 @@
"ProgressiveWebApplication": "Прогрессивное веб-приложение",
"Preview": "Предварительный просмотр",
"CreateANewSolution": "Создать новое решение",
"ABPFrameworkFeatures": "Структура ABP <span class=\"gradient-framework\">Функции</span>",
"FrameworkFeatures": "Структура ABP <span class=\"gradient-framework\">Функции</span>",
"Commercial": "Коммерческий",
"ThirdPartyTools": "Сторонние инструменты",
"Back": "Назад",

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

@ -301,7 +301,7 @@
"ProgressiveWebApplication": "Progresívna webová aplikácia",
"Preview": "Náhľad",
"CreateANewSolution": "Vytvorte nové riešenie",
"ABPFrameworkFeatures": "<span class=\"gradient-framework\">Funkcie</span> rámca ABP",
"FrameworkFeatures": "<span class=\"gradient-framework\">Funkcie</span> rámca ABP",
"Commercial": "Komerčný",
"ThirdPartyTools": "Nástroje tretích strán",
"Back": "späť",

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

@ -301,7 +301,7 @@
"ProgressiveWebApplication": "Progresivna spletna aplikacija",
"Preview": "Predogled",
"CreateANewSolution": "Ustvarite novo rešitev",
"ABPFrameworkFeatures": "<span class=\"gradient-framework\">Funkcije</span> ogrodja ABP",
"FrameworkFeatures": "<span class=\"gradient-framework\">Funkcije</span> ogrodja ABP",
"Commercial": "Komercialno",
"ThirdPartyTools": "Orodja tretjih oseb",
"Back": "Nazaj",

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

@ -298,7 +298,7 @@
"SeparateIdentityServer": "Ayrı Kimlik Sunucusu",
"Preview": "Önizleme",
"CreateANewSolution": "Yeni bir çözüm oluşturun",
"ABPFrameworkFeatures": "ABP Framework <span class=\"gradient-framework\">Özellikleri</span>",
"FrameworkFeatures": "ABP Framework <span class=\"gradient-framework\">Özellikleri</span>",
"ThirdPartyTools": "Üçüncü taraf araçlar",
"Back": "Geri",
"SeeMore": "Daha fazla göster",

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

@ -301,7 +301,7 @@
"ProgressiveWebApplication": "Ứng dụng web tiến bộ",
"Preview": "Xem trước",
"CreateANewSolution": "Tạo một giải pháp mới",
"ABPFrameworkFeatures": "<span class=\"gradient-framework\">Tính năng</span> của khung ABP",
"FrameworkFeatures": "<span class=\"gradient-framework\">Tính năng</span> của khung ABP",
"Commercial": "Thuộc về thương mại",
"ThirdPartyTools": "Công cụ của bên thứ ba",
"Back": "Mặt sau",

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

@ -301,7 +301,7 @@
"ProgressiveWebApplication": "渐进式Web应用程序",
"Preview": "预览",
"CreateANewSolution": "创建新解决方案",
"ABPFrameworkFeatures": "ABP 框架 <span class=\"gradient-framework\">特点</span",
"FrameworkFeatures": "ABP 框架 <span class=\"gradient-framework\">特点</span",
"Commercial": "商业版",
"ThirdPartyTools": "第三方工具",
"Back": "返回",

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

@ -301,7 +301,7 @@
"ProgressiveWebApplication": "漸進式網頁應用程式",
"Preview": "預覽",
"CreateANewSolution": "建立新的解決方案",
"ABPFrameworkFeatures": "ABP框架<span class=\"gradient-framework\">特點</span>",
"FrameworkFeatures": "ABP框架<span class=\"gradient-framework\">特點</span>",
"Commercial": "商業的",
"ThirdPartyTools": "第三方工具",
"Back": "後退",

6
build/common.ps1

@ -34,11 +34,13 @@ if ($full -eq "-f")
"../templates/module/aspnet-core",
"../templates/app/aspnet-core",
"../templates/console",
"../templates/wpf",
"../templates/app-nolayers/aspnet-core",
"../abp_io/AbpIoLocalization",
"../source-code"
)
)
if ($env:OS -eq "Windows_NT") {
$solutionPaths += "../templates/wpf"
}
}else{
Write-host ""
Write-host ":::::::::::::: !!! You are in development mode !!! ::::::::::::::" -ForegroundColor red -BackgroundColor yellow

4
common.props

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

2
docs/en/Blog-Posts/2022-03-08 v5_2_Preview/POST.md

@ -187,7 +187,7 @@ We organized the 3rd live [ABP Community Talks](https://community.abp.io/events)
* [Enis Necipoğlu](https://twitter.com/EnisNecipoglu) has also created [an article](https://community.abp.io/posts/using-autofilterer-with-abp-framework-uuqv81jm) to demonstrate how to use his own open source [AutoFilterer](https://github.com/enisn/AutoFilterer) library with the ABP Framework.
* [Jonathan Potts](https://github.com/jonathanpotts) has created his first ABP Community article that shows how to use Bootswatch themes with the ABP Framework. [See it here](https://community.abp.io/posts/customizing-the-abp-basic-theme-with-bootswatch-4luoqzr0).
Thanks to all the contributors. It is appreciated if you want to submit your post and share your knowledge with the ABP community: https://community.abp.io/posts/submit
Thanks to all the contributors. It is appreciated if you want to submit your post and share your knowledge with the ABP community: https://community.abp.io/posts/create
## Conclusion

2
docs/en/Blog-Posts/2022-05-09 v5_3_Preview/POST.md

@ -255,4 +255,4 @@ We've created an official ABP Discord server so the ABP Community can interact w
Thanks to the ABP Community, **700+** people joined our Discord Server so far and it grows every day.
You can join our Discord Server from [here](https://discord.gg/abp), if you haven't yet.
You can join our Discord Server from [here](https://abp.io/join-discord), if you haven't yet.

1
docs/en/Blog-Posts/2022-07-26 v6_0_Preview/POST.md

@ -187,7 +187,6 @@ The following improvements have been made on [eShopOnAbp project](https://github
* Some improvements have been made on the Admin Application for Order Management for Angular UI. See [#110](https://github.com/abpframework/eShopOnAbp/pull/110).
* `SignalR` error on Kubernetes & Docker Compose has been fixed. See [#113](https://github.com/abpframework/eShopOnAbp/pull/113).
* eShopOnAbp project has been deployed to Azure Kubernetes Service. See [#114](https://github.com/abpframework/eShopOnAbp/pull/114). The live demo can be seen from [eshoponabp.com](https://eshoponabp.com/).
* Configurations have been made for some services on the `docker-compose.yml` file. See [#112](https://github.com/abpframework/eShopOnAbp/pull/112).
* Gateway Redirect Loop problem on Kubernetes has been fixed. See [the commit](https://github.com/abpframework/eShopOnAbp/commit/6413ef15c91cd8a5309050b63bb4dbca23587607).

7
docs/en/Blog-Posts/2023-04-03-What-is-ABP-Framework/post.md

@ -105,9 +105,12 @@ ASP.NET modularity, ASP.NET modular development, ASP.NET localization, ASP.NET m
## Microservice Example: eShopOnAbp
[eShopOnAbp](https://www.eshoponabp.com/) is a microservice example built on top ABP. It is a sample net application, similar to the Microsoft's [eShopOnContainer](https://github.com/dotnet-architecture/eShopOnContainers) project. It is a reference microservice solution built with the ABP Framework and .NET, runs on Kubernetes with Helm configuration, includes API Gateways, Angular and ASP.NET Core MVC applications with PostgreSQL and MongoDB databases. For more information, check out https://github.com/abpframework/eShopOnAbp.
[eShopOnAbp](https://github.com/abpframework/eShopOnAbp) is a microservice example built on top ABP. It is a sample net application, similar to the Microsoft's [eShopOnContainer](https://github.com/dotnet-architecture/eShopOnContainers) project. It is a reference microservice solution built with the ABP Framework and .NET, runs on Kubernetes with Helm configuration, includes API Gateways, Angular and ASP.NET Core MVC applications with PostgreSQL and MongoDB databases. For more information, check out https://github.com/abpframework/eShopOnAbp.
> ⚠️ **Important Notice**
> This project, "eshoponabp," is outdated. It served as a reference project for microservice architecture using the ABP Framework, but we now recommend using the [ABP Microservice Solution Template](https://abp.io/docs/latest/solution-templates/microservice) for new projects.
>
> The new template offers a modernized and officially supported starting point for building microservices with ABP. Please consider transitioning to the new template for the latest features and improvements.
## Conclusion

2
docs/en/Blog-Posts/2024-02-16 v8_1_Preview/POST.md

@ -230,7 +230,7 @@ There are exciting articles contributed by the ABP community as always. I will h
* [A Best Practice for Designing Interfaces in .NET C#](https://community.abp.io/posts/a-best-practice-for-designing-interfaces-in-.net-c-9xqc4h8d)
* [Invariance, Covariance, and Contravariance in .NET C#](https://community.abp.io/posts/invariance-covariance-and-contravariance-in-.net-c-9blmuhme)
Thanks to the ABP Community for all the content they have published. You can also [post your ABP-related (text or video) content](https://community.abp.io/posts/submit) to the ABP Community.
Thanks to the ABP Community for all the content they have published. You can also [post your ABP-related (text or video) content](https://community.abp.io/posts/create) to the ABP Community.
## Conclusion

2
docs/en/Blog-Posts/2024-05-21 v8_2_Release/POST.md

@ -260,7 +260,7 @@ There are exciting articles contributed by the ABP community as always. I will h
* [Using FluentValidation with ABP Framework](https://community.abp.io/posts/using-fluentvalidation-with-abp-framework-2cxuwl70) by [Enes Döner](https://community.abp.io/members/Enes)
* [Using Blob Storage with ABP](https://community.abp.io/posts/using-blob-storage-with-abp-framework-jygtmhn4) by [Emre Kendirli](https://community.abp.io/members/emrekenderli)
Thanks to the ABP Community for all the content they have published. You can also [post your ABP-related (text or video) content](https://community.abp.io/posts/submit) to the ABP Community.
Thanks to the ABP Community for all the content they have published. You can also [post your ABP-related (text or video) content](https://community.abp.io/posts/create) to the ABP Community.
## Conclusion

BIN
docs/en/Blog-Posts/2024-07-23-AbpIo-United-Is-Live/cover.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 KiB

62
docs/en/Blog-Posts/2024-07-23-AbpIo-United-Is-Live/post.md

@ -0,0 +1,62 @@
# The new ABP Platform is live!
We're thrilled to announce that the **new ABP.IO Platform is now live!** Our team has been hard at unifying and enhancing the entire platform to deliver a seamless, user-friendly experience. Here's what's new:
### Unified domain and enhanced navigation 🌍
All our services are now consolidated under a single domain; [abp.io](https://abp.io). This means you no longer need to navigate through multiple subdomains. The new mega menu makes finding what you need easier and faster.
### Modern design and improved UX 🎨
The platform boasts a fresh, modern design aimed at improving both aesthetics and functionality. This redesign enhances usability, making your interaction with ABP.IO more intuitive.
### Documentation in one place 📃
We’ve combined the ABP (open-source) and ABP Commercial (paid) documents into a single, comprehensive resource. This unified documentation will help you find what you're looking for more efficiently. The new documentation address is [abp.io/docs](https://abp.io/docs). When you switch to old ABP versions before v8.3, you will see the old documents are still available.
### Introducing "ABP Studio Community Edition" 🪄
We're excited to introduce the **ABP Studio Community Edition**, which is now **available for free**. This edition provides powerful tools to streamline your development process. You can easily create a new project with a configuration wizard in ABP Studio. It also provides module management, which means you can add/remove an ABP Module easily. You can also debug your microservice project and track the HTTP requests easily. Connecting your local development environment to a local or remote Kubernetes cluster is another cool feature of ABP Studio. We aim for ABP Studio to be the primary tool for ABP developers to manage their projects.
> Download ABP Studio 👉 [abp.io/studio](https://abp.io/studio).
### Enhanced "ABP CLI" 🚀
ABP CLI is also renewed. The new CLI is compatible with ABP Studio. It adds new commands. The new CLI is now available on NuGet at [nuget.org/packages/Volo.Abp.Studio.Cli](https://www.nuget.org/packages/Volo.Abp.Studio.Cli). It's a dotnet global tool. When you install ABP Studio, the new ABP CLI is automatically installed. You can still use the old ABP CLI commands. To use the legacy ABP CLI commands just add `--old` parameter to your commands.
> The docs of the new ABP CLI 👉 [abp.io/docs/latest/cli](https://abp.io/docs/latest/cli).
### 20% Celebration discount 💰
To celebrate the launch of the new platform, we're offering a **20% discount** for a limited time. This discount is valid for all new purchases, renewing existing licenses and buying additional developer seats.
> Discounted prices 👉 [abp.io/pricing](https://abp.io/pricing).
### Existing customers 🛂
In terms of licensing rules, existing customers will not be affected by this change. You can manage your license just like before at [abp.io/my-organizations](https://abp.io/my-organizations).
> The new support website address 👉 [abp.io/support](https://abp.io/support).
---
### Why choose the ABP Platform? 🙄
ABP Platform simplifies modern software development with well-architected startup templates, modular design infrastructure, multi-tenancy support, comprehensive security features, and a vibrant community. If you are starting a new web project or transforming your legacy application, ABP is the perfect solution! If you still wonder why you need such a solution, see [abp.io/why-choose-abp](https://abp.io/why-choose-abp).
There are several startup ASP.NET Core templates for your requirements. Read [abp.io/how-it-works](https://abp.io/how-it-works) page to understand ABP's approach. We have a FAQ page where you can find answers to many of your questions [abp.io/faq](https://abp.io/faq).
> Start your new ABP project -for free- 👉[abp.io/get-started](https://abp.io/get-started)!
### Join our community 👨‍👨‍👦
We invite developers, IT professionals, and businesses to join the ABP Community. Our community website is now [abp.io/community](https://abp.io/community). On this website, you can read ABP-related posts, watch live community shows and core team's fundamental video courses...
------
For more information, visit our newly unified platform at [abp.io](https://abp.io). We look forward to your feedback and continued support as we grow together!
> Found a bug in the new platform? Or if you have an idea, write to us 👉 [abp.io/contact](https://abp.io/contact).

BIN
docs/en/Blog-Posts/2024-07-25-Introducing-The-New-ABP-CLI/cover-image.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

81
docs/en/Blog-Posts/2024-07-25-Introducing-The-New-ABP-CLI/post.md

@ -0,0 +1,81 @@
# Introducing the New ABP CLI
![](cover-image.png)
📢 We're excited to introduce the [new ABP CLI](https://abp.io/docs/latest/cli/index) after the announcement of [the new unified ABP Platform](https://abp.io/blog/new-abp-platform-is-live).
As you know, we recently unified the ABP platform in a single domain ([abp.io](https://abp.io/)) and made some changes in our templating system to simplify your development. Also, we released more stable ABP Studio versions, which can dramatically improve and speed up your development time. Besides all of these changes, we have also introduced a new ABP CLI to bring you a more streamlined and efficient experience, which also extends the current commands.
Here is a brief overview of what's new, what's changed, and why this change is happening...
## The New ABP CLI
ABP CLI is a command line tool to perform some common operations for ABP based solutions or [ABP Studio](https://abp.io/docs/latest/studio) features. With v8.2+, the old/legacy ABP CLI has been replaced with a new CLI system to align with the new templating system and ABP Studio.
The new ABP CLI extends the old ABP CLI, adds more features that are used by ABP Studio behind the scenes, and is also fully compatible with the new templating system. Also, it allows you to use the old ABP CLI if you need, it by passing a single parameter.
To be able to use the new ABP CLI, you should first delete the existing/old CLI with the following command if you installed it before:
```bash
dotnet tool uninstall -g Volo.Abp.Cli
```
Then, to install the new ABP CLI, you can just simply execute the following command in your terminal:
```bash
dotnet tool install -g Volo.Abp.Studio.Cli
```
> Both old and new ABP CLI binary names use the same `abp` command as the executing command. Therefore, you should uninstall the old CLI first, if you installed it before.
> **Note**: Since the new ABP CLI uses the same `abp` command, you can use the same commands as you did before.
## Reason for the Change
ABP introduces a new templating system, which is fully compatible with the ABP Studio from v8.2+. Since, ABP Studio offers more and better features (such as tracking, monitoring, and deploying your applications from a single point), and the new templating system has a different versioning structure, we wanted to introduce a new ABP CLI by extending the current features and adding even more features that are compatible with the new templating system and ABP Studio.
This change allows you to create your application with the new templating system either by running the cross-platform ABP Studio application or ABP CLI and allows you to create automated pipelines with the power of the new ABP CLI.
## Using the Old ABP CLI
If you have an older version of ABP solutions and need to use the old ABP CLI for any reason, you can do it easily with the new ABP CLI.
You just need to put the `--old` command at the end of your command and execute the related CLI command as you would before. This allows you to use the old CLI commands with the new CLI without the need to uninstall the new CLI.
For example, if you want to create a new ABP v8.2.0 solution, you can execute the following command:
```bash
abp new Acme.BookStore --version 8.2.0 --old
```
When you run this command, the new ABP CLI installs the old CLI with `abp-old` name as the executing command within the latest version of ABP under the **%UserProfile%\\.abp\studio\cli\old** directory and allows you to use the old commands.
If you want to use a specific version of the old ABP CLI, it's also possible with the new ABP CLI. You can use the `install-old-cli` command of the new CLI to either install or update an old CLI, then you can directly execute any old ABP CLI command by simply passing the `--old` parameter to the end of your command:
```bash
# installing the old ABP CLI with v8.0
abp install-old-cli --version 8.0.0
abp new Acme.BookStore --version 8.0 --old # alternatively, you can use the `abp-old` command without need to pass the "--old" parameter
```
## New Commands
New ABP CLI extends the existing features of old ABP CLI and introduces new commands. Here are some of the new commands:
* `kube-connect`: Connects to Kubernetes environment. (Available for **Business or higher licenses**)
* `kube-intercept`: Intercepts a service running in Kubernetes environment. (Available for **Business or higher licenses**)
* `list-module-sources`: Lists the remote module sources.
* and more...
You can check the CLI documentation for all available commands and their usage.
## Conclusion
In this blog post, we briefly explained the new ABP CLI, what's the reason for this change, and how to use the old ABP CLI with the new ABP CLI.
If you have any further questions related to the new ABP CLI, you can always refer to the [CLI](https://abp.io/docs/latest/cli/index) and [Old ABP CLI vs New ABP CLI](https://abp.io/docs/latest/cli/differences-between-old-and-new-cli) documentation. Also, we listed some of the questions that you may have, which you can [check from here](https://abp.io/docs/latest/cli/differences-between-old-and-new-cli#common-questions).
Please try out the new ABP CLI, and provide feedback to help us release more stable versions, with additional features.
Thanks for being a part of the ABP Community!

BIN
docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-helm-charts.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-license-comparison-table.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-new-layered-solution-template-wizard-options.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-new-layered-solution-template-wizard.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-solution-runner-overall.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

BIN
docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-studio-solution-runner-start-apps.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-suite-in-abp-studio.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

BIN
docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/abp-suite-open-in-abp-studio.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

111
docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/post.md

@ -0,0 +1,111 @@
# Announcing ABP Studio (beta) General Availability
ABP Framework makes your daily coding activities much easier, more convenient, and even more enjoyable. However, building a software product is not just about coding. We know that you need to build, run, test, debug and deploy your software, and trace errors on a failure. You also should to design architecture of your overall solution and perform many common operations on your solutions in addition to the coding activity.
We'd already provided tools like [ABP CLI](https://abp.io/cli) and [ABP Suite](https://abp.io/suite) for these kind of purposes before. [ABP Studio](https://abp.io/studio) takes this one long step further and offers a tool that you can use continuously throughout your coding activities, help you for non-coding activities to make you focus on your software development.
I am very excited to announce that the ABP Studio (beta) is generally available to everyone. It is now downloadable on the [get started page](https://abp.io/get-started) of the [new ABP Platform website](https://abp.io/blog/new-abp-platform-is-live).
## What is ABP Studio?
[ABP Studio](https://abp.io/docs/latest/studio) is a cross-platform desktop application for ABP and .NET developers. It aims to provide a comfortable development environment for you by automating things, providing insights about your solution, making develop, run, browse, monitor, trace and deploy your solutions much easier.
**From now on, ABP Studio is the default way to start with the ABP Platform**;
* The [get started page](https://abp.io/get-started) has updated so it offers to download ABP Studio to create a new ABP based solution.
* The ABP CLI ([Volo.Abp.Cli](https://nuget.org/packages/Volo.Abp.Cli)) is replaced by the ABP Studio CLI ([Volo.Abp.Studio.Cli](https://www.nuget.org/packages/Volo.Abp.Studio.Cli)). [The new ABP Studio CLI](https://abp.io/docs/latest/cli) is compatible with the old one, and extends it by introducing new commands.
* [Startup solution templates](https://abp.io/docs/latest/solution-templates) are completely renewed. The solution structures are similar to the old ones, but they are totally new templates built with the new templating engine.
* All the documentation and tutorials now uses ABP Studio and ABP Studio CLI.
> **ABP Studio is in beta stage now.** It is also in rapid development and release cycle. We frequently release new feature and patch versions. Please [file an issue](https://github.com/abpframework/abp/issues/new/choose) if you have any problem.
>
> If you want to continue to use the old CLI and old startup templates, please [refer that document](https://abp.io/docs/latest/cli/differences-between-old-and-new-cli).
## The Easiest Way to Start with the ABP Framework
As mentioned before, the [startup solution templates](https://abp.io/docs/latest/solution-templates) are completely renewed with ABP Studio. They provide much more options compared to the old startup templates. The following screenshot is taken from the New Solution wizard of ABP Studio, which provides an comfortable and easy way to create new solutions:
![abp-studio-new-layered-solution-template-wizard](abp-studio-new-layered-solution-template-wizard.png)
For example, you can now select most of the non-fundamental modules as optional while creating a new solution:
![abp-studio-new-layered-solution-template-wizard-options](abp-studio-new-layered-solution-template-wizard-options.png)
### Developing Microservices Solutions is Now Much Easier
The most important change is made on the [microservice startup template](https://abp.io/docs/latest/solution-templates/microservice) (which is available only for Business or higher license holders). We've designed the solution structure, integrations, Kubernetes/Helm configuration, database migrations and all others from scratch and well documented all the decisions we've applied. Developing microservice solutions with ABP Framework is now easier and more understandable than ever.
## Architecting Your Complex Solutions
One of the main purposes to build ABP Studio was to simplify to create multi-modular and distributed systems. Either you create a modular monolith application or a microservice solution, [ABP Studio's solution explorer](https://abp.io/docs/latest/studio/solution-explorer) provides a convenient way to design your high-level solution structure.
You see a microservice solution in the following screenshot:
![solution-explorer](solution-explorer.png)
That ABP Studio solution contains multiple separate .NET solutions (`.sln`) each has multiple .NET projects (`.csproj`). ABP Studio allows you to easily manage such a multi-solution system on a single view. You can create new packages and modules, import existing packages and modules, manage their dependencies and so on.
## Run and Test Your Multi-Application Solutions with a Single Click
One of the biggest shortcomings we face when developing distributed or complex solutions is being able to easily run all components of the solutions so that we can test and debug a single service or application without caring about all the runtime dependencies.
Here a screenshot from the ABP Studio's [Solution Runner](https://abp.io/docs/latest/studio/running-applications) view:
![abp-studio-solution-runner-overall](abp-studio-solution-runner-overall.png)
When you use ABP Studio, it is dramatically easier to run, monitor, test, debug and develop your applications and services. You can browse your web UI applications, monitor all the HTTP requests, distributed events, exceptions and logs in real time on a single screen. In this way, you can easily run all the systems and trace the problems when you have.
All you need to click the *Play* button or right-click and select the *Run* -> *Start All* command:
![abp-studio-solution-runner-start-apps](abp-studio-solution-runner-start-apps.png)
The nice thing is that you can create multiple profiles for each of your teams so that they can run only the applications they need to develop the application they are working on.
## Seamlessly Develop Your Service as Integrated to Kubernetes
Kubernetes is the de-facto tool to deploy, run and scale complex systems. However, it can also be a great tool to develop such solutions in a local environment.
With ABP Studio's [Kubernetes Integration](https://abp.io/docs/latest/studio/kubernetes) system, it is now possible to deploy and run a complex system in a Kubernetes cluster. Then you can establish a bridge between your local development environment and the Kubernetes cluster. In this way, you can develop, run, test and debug an application or service in your local development environment as it is running in the Kubernetes cluster. All incoming and outgoing traffic is properly routed and managed by ABP Studio. You just focus on the service you are responsible to develop and let the Kubernetes run rest of the system for you.
You can see all the Helm charts in a solution in the Kubernetes panel of ABP Studio:
![abp-studio-helm-charts](abp-studio-helm-charts.png)
Here, you can easily build, install and uninstall the Helm charts to your Kubernetes cluster. In the Kubernetes tab, you can connect to the Kubernetes cluster and intercept a service to develop it locally. See [the documentation](https://abp.io/docs/latest/studio/kubernetes) for more information.
The good news is that all the monitoring data (HTTP Requests, Events, Exceptions, Logs,...) is still visible in real time with the Kubernetes integration too.
## Use the ABP Suite as Integrated to ABP Studio
[ABP Suite](https://abp.io/suite) is a tool that is basically used to generate code for ABP Solutions. It has started by creating simple CRUD pages, and now it does much more. It can establish relations with existing entities, create complex user interfaces like parent/child tables and so on...
ABP Suite can be used directly inside ABP Studio by clicking the *ABP Suite* -> *Open* command:
![abp-suite-open-in-abp-studio](abp-suite-open-in-abp-studio.png)
This will open ABP Suite in a new tab for the current solution and focus on the CRUD page generation:
![abp-suite-in-abp-studio](abp-suite-in-abp-studio.png)
The new ABP Studio solution templates and ABP Suite code generation are compatible with each other. Here a screenshot from the generated CRUD UI for a very simple Book entity:
![suite-generated-entity](suite-generated-entity.png)
## The Community Edition vs Commercial Licenses
ABP Studio has a Community Edition which is completely free and available to everyone. As you can guess, there are come differences between the community edition and commercial editions. ABP Platform has 4 fundamental license types;
* Open source (free)
* Team
* Business
* Enterprise
Here, the comparison table for ABP Studio features for these license types:
![abp-studio-license-comparison-table](abp-studio-license-comparison-table.png)
Microservice startup template and Kubernetes integration features are available only for commercial licenses since these are considered more enterprise requirements. Also, the solution size is limited with the ABP Community edition. If you are building a large or distributed solution, consider to [purchase a commercial license](https://abp.io/pricing).
## Conclusion
I've introduced the ABP Studio General Availability with this post. It is still in the beta stage. You can expect frequent releases during the beta phase. We will add new features and fix issues quickly. Please [download](https://abp.io/studio) and use it now. If you find any problem, do not hesitate to open an [issue on GitHub](https://github.com/abpframework/abp/issues/new/choose).

BIN
docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/solution-explorer.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

BIN
docs/en/Blog-Posts/2024-07-30-Announcing-ABP-Studio/suite-generated-entity.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
docs/en/Blog-Posts/2024-07-31 v8_3_Preview/cms-kit-faq.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
docs/en/Blog-Posts/2024-07-31 v8_3_Preview/cmskit-module-comments-settings.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
docs/en/Blog-Posts/2024-07-31 v8_3_Preview/cmskit-module-markedItems.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

BIN
docs/en/Blog-Posts/2024-07-31 v8_3_Preview/cover-image.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 MiB

BIN
docs/en/Blog-Posts/2024-07-31 v8_3_Preview/docs-google-search.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 KiB

BIN
docs/en/Blog-Posts/2024-07-31 v8_3_Preview/faq-section-public-web.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

BIN
docs/en/Blog-Posts/2024-07-31 v8_3_Preview/google-search-results.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

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

Loading…
Cancel
Save