Browse Source

Merge branch 'dev' into EngincanV/leptonx-lite

pull/12938/head
maliming 4 years ago
parent
commit
944377b5d7
No known key found for this signature in database GPG Key ID: 96224957E51C89E
  1. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json
  2. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json
  3. 2
      docs/en/Authorization.md
  4. 1
      docs/en/Startup-Templates/Application.md
  5. 13
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/el.json
  6. 10
      framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Localization/el.json
  7. 2
      framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs
  8. 7
      framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs
  9. 9
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/LIbs/InstallLibsService.cs
  10. 134
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackagePreviewSwitcher.cs
  11. 15
      framework/src/Volo.Abp.Core/System/AbpStringExtensions.cs
  12. 1
      framework/src/Volo.Abp.Core/System/Collections/Generic/AbpCollectionExtensions.cs
  13. 6
      framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Localization/Resources/AbpDdd/el.json
  14. 25
      framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/el.json
  15. 4
      framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/AbpEventBusRebusModule.cs
  16. 26
      framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/el.json
  17. 8
      framework/src/Volo.Abp.Features/Volo/Abp/Features/Localization/el.json
  18. 6
      framework/src/Volo.Abp.GlobalFeatures/Volo/Abp/GlobalFeatures/Localization/el.json
  19. 17
      framework/src/Volo.Abp.Ldap/Volo/Abp/Ldap/Localization/el.json
  20. 7
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/el.json
  21. 7
      framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Localization/el.json
  22. 6
      framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Localization/Resource/el.json
  23. 53
      framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/el.json
  24. 4
      framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pt-BR.json
  25. 34
      framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/el.json
  26. 14
      framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/pt-BR.json
  27. 1
      framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs
  28. 10
      framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/Resource/el.json
  29. 6
      framework/test/Volo.Abp.Emailing.Tests/Volo/Abp/Emailing/Localization/el.json
  30. 6
      framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/Localization/el.json
  31. 2
      framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/Localization/pt-BR.json
  32. 7
      framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/CountryNames/el.json
  33. 7
      framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/el.json
  34. 11
      framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/el.json
  35. 6
      framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/SourceExt/el.json
  36. 7
      framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/Localization/el.json
  37. 68
      modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/el.json
  38. 2
      modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/en.json
  39. 6
      modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/pt-BR.json
  40. 6
      modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/Localization/el.json
  41. 61
      modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/el.json
  42. 2
      modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/en.json
  43. 1
      modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/CmsKitHttpApiHostModule.cs
  44. 1
      modules/cms-kit/host/Volo.CmsKit.IdentityServer/CmsKitIdentityServerModule.cs
  45. 1
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/CmsKitWebUnifiedModule.cs
  46. 186
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/el.json
  47. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json
  48. 65
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/pt-BR.json
  49. 10
      modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/el.json
  50. 1
      modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs
  51. 59
      modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/el.json
  52. 2
      modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/en.json
  53. 14
      modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/pt-BR.json
  54. 41
      modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/el.json
  55. 2
      modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en.json
  56. 12
      modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/pt-BR.json
  57. 10
      modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/el.json
  58. 2
      modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/pt-BR.json
  59. 112
      modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/el.json
  60. 2
      modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/en.json
  61. 4
      modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/pt-BR.json
  62. 7
      modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/LocalizationExtensions/el.json
  63. 15
      modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/el.json
  64. 17
      modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/el.json
  65. 17
      modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/pt-BR.json
  66. 6
      modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/AbpOpenIddictDomainModule.cs
  67. 16
      modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpApplicationDescriptor.cs
  68. 61
      modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpApplicationManager.cs
  69. 19
      modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpOpenIddictApplicationStore.cs
  70. 12
      modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/IAbpApplicationManager.cs
  71. 12
      modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/IAbpOpenIdApplicationStore.cs
  72. 10
      modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplication.cs
  73. 10
      modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplicationExtensions.cs
  74. 10
      modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplicationModel.cs
  75. 11
      modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/el.json
  76. 3
      modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/pt-BR.json
  77. 1
      modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/DemoAppModule.cs
  78. 34
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/el.json
  79. 10
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pt-BR.json
  80. 23
      modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/el.json
  81. 4
      modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/pt-BR.json
  82. 1
      modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/AbpVirtualFileExplorerDemoAppModule.cs
  83. 14
      modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Localization/Resources/el.json
  84. 18
      modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Localization/Resources/en.json
  85. 11
      npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.ts
  86. 1
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs
  87. 13
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220617083820_Initial.Designer.cs
  88. 2
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220617083820_Initial.cs
  89. 11
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/MyProjectNameDbContextModelSnapshot.cs
  90. 1
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs
  91. 1
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Data/OpenIddictDataSeedContributor.cs
  92. 1
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyProjectNameModule.cs
  93. 1
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Data/OpenIddictDataSeedContributor.cs
  94. 13
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220617083539_Initial.Designer.cs
  95. 2
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220617083539_Initial.cs
  96. 11
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/MyProjectNameDbContextModelSnapshot.cs
  97. 1
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyProjectNameModule.cs
  98. 1
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyProjectNameModule.cs
  99. 13
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220617083649_Initial.Designer.cs
  100. 2
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220617083649_Initial.cs

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

@ -396,6 +396,7 @@
"CreateABookDiscount": "Create a book discount",
"BookDiscountDeletionConfirmationMessage": "Are you sure you want to delete this book discount?",
"CustomPaymentFlexSwitchDescription": "With license",
"AllowFeatureUpgradeOnLicenseExpire": "Allow feature upgrade on license expire"
"AllowFeatureUpgradeOnLicenseExpire": "Allow feature upgrade on license expire",
"Deleted{0}": "[Deleted {0}]"
}
}

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

@ -376,7 +376,7 @@
"StartTrial": "Start My Free Trial",
"ContactUsQuestions": "Contact us if you have any questions",
"TrialActivatedWarning": "A user is entitled to have only 1 free trial period. You already used your trial period.",
"ActivationRequirement": "You are last one step away from starting a free trial.<br>After checking your information, we will activate your license. Once your license is activated, we will send an email to <b>{0}</b>. Don't worry, this process won't take long!",
"ActivationRequirement": "You are last one step away from starting your trial.<br>After checking your information, we will activate your license. Once your license is activated, we will send an email to <b>{0}</b>. Don't worry, this process won't take long!",
"SaveAndDownload": "Save And Download",
"CompanyNameValidationMessage": "Company name is too long!",
"AddressValidationMessage": "Address is too long!",
@ -603,7 +603,6 @@
"Trainings_Content": "Content of Training",
"Trial_Page_StartYourFreeTrial": "Start Your <span class=\"gradient-commercial\">Free Trial</span>",
"TrialLicenseFeatures": "You'll be able to benefit from all ABP commercial features",
"WhatHappensWhenTrialLicenseExpires": "You cannot continue to develop your project after the license expiration",
"TrialPeriodDays": "You'll have a {0} days Team License",
"TrialForumSupportIncident": "You'll have {0} forum support incidents",
"Contact_Page_Title": "Contact with ABP Development Team",

2
docs/en/Authorization.md

@ -4,7 +4,7 @@ Authorization is used to check if a user is allowed to perform some specific ope
ABP extends [ASP.NET Core Authorization](https://docs.microsoft.com/en-us/aspnet/core/security/authorization/introduction) by adding **permissions** as auto [policies](https://docs.microsoft.com/en-us/aspnet/core/security/authorization/policies) and allowing authorization system to be usable in the **[application services](Application-Services.md)** too.
So, all the ASP.NET Core authorization features and the documentation are valid in an ABP based application. This document focuses on the features that added on top of ASP.NET Core authorization features.
So, all the ASP.NET Core authorization features and the documentation are valid in an ABP based application. This document focuses on the features that are added on top of ASP.NET Core authorization features.
## Authorize Attribute

1
docs/en/Startup-Templates/Application.md

@ -34,6 +34,7 @@ This template provides multiple UI frameworks:
* `mvc`: ASP.NET Core MVC UI with Razor Pages (default)
* `blazor`: Blazor UI
* `blazor-server`: Blazor Server UI
* `angular`: Angular UI
Use the `-u` or `--ui` option to specify the UI framework:

13
framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/el.json

@ -0,0 +1,13 @@
{
"culture": "el",
"texts": {
"GivenTenantIsNotExist": "O συγκεκριμένος μισθωτής δεν υπάρχει: {0}",
"GivenTenantIsNotAvailable": "Ο συγκεκριμένος μισθωτής δεν είναι διαθέσιμος: {0}",
"Tenant": "Μισθωτής",
"Switch": "Αλλαγή",
"Name": "Όνομα",
"SwitchTenantHint": "Αφήστε το πεδίο ονόματος κενό για μετάβαση στην πλευρά του κεντρικού διακομιστή.",
"SwitchTenant": "Αλλαγή μισθωτή",
"NotSelected": "Μη επιλεγμένο"
}
}

10
framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Localization/el.json

@ -0,0 +1,10 @@
{
"culture": "el",
"texts": {
"Volo.Authorization:010001": "Η εξουσιοδότηση απέτυχε! Δεν έχει χορηγηθεί η δεδομένη πολιτική.",
"Volo.Authorization:010002": "Η εξουσιοδότηση απέτυχε! Δεν έχει χορηγηθεί η δεδομένη πολιτική: {PolicyName}",
"Volo.Authorization:010003": "Η εξουσιοδότηση απέτυχε! Δεν έχει χορηγηθεί η δεδομένη πολιτική για το συγκεκριμένο πόρο: {ResourceName}",
"Volo.Authorization:010004": "Η εξουσιοδότηση απέτυχε! Δεν έχει χορηγηθεί η δεδομένη πολιτική για το συγκεκριμένο πόρο: {ResourceName}",
"Volo.Authorization:010005": "Η εξουσιοδότηση απέτυχε! Δεν έχει χορηγηθεί η δεδομένη πολιτική για το συγκεκριμένο πόρο: {ResourceName}"
}
}

2
framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs

@ -224,10 +224,10 @@ public abstract class AbpCrudPageBase<
{
if (firstRender)
{
await base.OnAfterRenderAsync(firstRender);
await SetToolbarItemsAsync();
await SetBreadcrumbItemsAsync();
}
await base.OnAfterRenderAsync(firstRender);
}

7
framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs

@ -95,14 +95,17 @@ public class MinioBlobProvider : BlobProviderBase, ITransientDependency
protected virtual MinioClient GetMinioClient(BlobProviderArgs args)
{
var configuration = args.Configuration.GetMinioConfiguration();
var client = new MinioClient(configuration.EndPoint, configuration.AccessKey, configuration.SecretKey);
var client = new MinioClient()
.WithEndpoint(configuration.EndPoint)
.WithCredentials(configuration.AccessKey, configuration.SecretKey);
if (configuration.WithSSL)
{
client.WithSSL();
}
return client;
return client.Build();
}
protected virtual async Task CreateBucketIfNotExists(MinioClient client, string containerName)

9
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/LIbs/InstallLibsService.cs

@ -83,8 +83,15 @@ public class InstallLibsService : IInstallLibsService, ITransientDependency
}
// MVC or BLAZOR SERVER
if (projectPath.EndsWith("csproj"))
if (projectPath.EndsWith(".csproj"))
{
var packageJsonFilePath = Path.Combine(Path.GetDirectoryName(projectPath), "package.json");
if (!File.Exists(packageJsonFilePath))
{
continue;
}
if (IsYarnAvailable())
{
RunYarn(projectDirectory);

134
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackagePreviewSwitcher.cs

@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
@ -29,114 +30,113 @@ public class PackagePreviewSwitcher : ITransientDependency
public async Task SwitchToPreview(CommandLineArgs commandLineArgs)
{
var solutionPath = GetSolutionPath(commandLineArgs);
var solutionFolder = GetSolutionFolder(commandLineArgs);
var solutionAngularFolder = GetSolutionAngularFolder(solutionFolder);
var solutionPaths = GetSolutionPaths(commandLineArgs);
await _nugetPackagesVersionUpdater.UpdateSolutionAsync(
solutionPath,
includeReleaseCandidates: true);
foreach (var solutionPath in solutionPaths)
{
var solutionFolder = Path.GetDirectoryName(solutionPath);
var solutionAngularFolder = GetSolutionAngularFolder(solutionFolder);
await _npmPackagesUpdater.Update(
solutionFolder,
false,
true);
await _nugetPackagesVersionUpdater.UpdateSolutionAsync(
solutionPath,
includeReleaseCandidates: true);
if (solutionAngularFolder != null)
{
await _npmPackagesUpdater.Update(
solutionAngularFolder,
solutionFolder,
false,
true);
if (solutionAngularFolder != null)
{
await _npmPackagesUpdater.Update(
solutionAngularFolder,
false,
true);
}
}
}
public async Task SwitchToNightlyPreview(CommandLineArgs commandLineArgs)
{
var solutionPath = GetSolutionPath(commandLineArgs);
var solutionFolder = GetSolutionFolder(commandLineArgs);
var solutionAngularFolder = GetSolutionAngularFolder(solutionFolder);
_packageSourceManager.Add(solutionFolder, "ABP Nightly", "https://www.myget.org/F/abp-nightly/api/v3/index.json");
var solutionPaths = GetSolutionPaths(commandLineArgs);
if (solutionPath != null)
foreach (var solutionPath in solutionPaths)
{
await _nugetPackagesVersionUpdater.UpdateSolutionAsync(
solutionPath,
true);
}
var solutionFolder = Path.GetDirectoryName(solutionPath);
var solutionAngularFolder = GetSolutionAngularFolder(solutionFolder);
await _npmPackagesUpdater.Update(
solutionFolder,
true);
_packageSourceManager.Add(solutionFolder, "ABP Nightly", "https://www.myget.org/F/abp-nightly/api/v3/index.json");
if (solutionPath != null)
{
await _nugetPackagesVersionUpdater.UpdateSolutionAsync(
solutionPath,
true);
}
if (solutionAngularFolder != null)
{
await _npmPackagesUpdater.Update(
solutionAngularFolder,
solutionFolder,
true);
if (solutionAngularFolder != null)
{
await _npmPackagesUpdater.Update(
solutionAngularFolder,
true);
}
}
}
public async Task SwitchToStable(CommandLineArgs commandLineArgs)
{
var solutionPath = GetSolutionPath(commandLineArgs);
var solutionFolder = GetSolutionFolder(commandLineArgs);
var solutionAngularFolder = GetSolutionAngularFolder(solutionFolder);
var solutionPaths = GetSolutionPaths(commandLineArgs);
_packageSourceManager.Remove(solutionFolder, "ABP Nightly");
if (solutionPath != null)
foreach (var solutionPath in solutionPaths)
{
await _nugetPackagesVersionUpdater.UpdateSolutionAsync(
solutionPath,
false,
false,
true);
}
var solutionFolder = Path.GetDirectoryName(solutionPath);
var solutionAngularFolder = GetSolutionAngularFolder(solutionFolder);
await _npmPackagesUpdater.Update(
solutionFolder,
false,
false,
true);
_packageSourceManager.Remove(solutionFolder, "ABP Nightly");
if (solutionPath != null)
{
await _nugetPackagesVersionUpdater.UpdateSolutionAsync(
solutionPath,
false,
false,
true);
}
if (solutionAngularFolder != null)
{
await _npmPackagesUpdater.Update(
solutionAngularFolder,
solutionFolder,
false,
false,
true);
if (solutionAngularFolder != null)
{
await _npmPackagesUpdater.Update(
solutionAngularFolder,
false,
false,
true);
}
}
}
private string GetSolutionPath(CommandLineArgs commandLineArgs)
private List<string> GetSolutionPaths(CommandLineArgs commandLineArgs)
{
var directory = commandLineArgs.Options.GetOrNull(Options.SolutionDirectory.Short, Options.SolutionDirectory.Long)
?? Directory.GetCurrentDirectory();
var solutionPath = Directory.GetFiles(directory, "*.sln").FirstOrDefault();
var solutionPaths = Directory.GetFiles(directory, "*.sln", SearchOption.AllDirectories);
if (solutionPath == null)
if (!solutionPaths.Any())
{
var subDirectories = Directory.GetDirectories(directory);
foreach (var subDirectory in subDirectories)
{
var slnInSubDirectory = Directory.GetFiles(subDirectory, "*.sln").FirstOrDefault();
if (slnInSubDirectory != null)
{
return Path.Combine(subDirectory, slnInSubDirectory);
}
}
Logger.LogWarning("There is no solution or more that one solution in current directory.");
return null;
Logger.LogWarning("No solution (.sln) found to change version.");
}
return solutionPath;
return solutionPaths.ToList();
}
private string GetSolutionFolder(CommandLineArgs commandLineArgs)

15
framework/src/Volo.Abp.Core/System/AbpStringExtensions.cs

@ -46,6 +46,7 @@ public static class AbpStringExtensions
/// <summary>
/// Indicates whether this string is null or an System.String.Empty string.
/// </summary>
[ContractAnnotation("str:null => true")]
public static bool IsNullOrEmpty(this string str)
{
return string.IsNullOrEmpty(str);
@ -54,6 +55,7 @@ public static class AbpStringExtensions
/// <summary>
/// indicates whether this string is null, empty, or consists only of white-space characters.
/// </summary>
[ContractAnnotation("str:null => true")]
public static bool IsNullOrWhiteSpace(this string str)
{
return string.IsNullOrWhiteSpace(str);
@ -117,6 +119,7 @@ public static class AbpStringExtensions
/// <param name="str">The string.</param>
/// <param name="postFixes">one or more postfix.</param>
/// <returns>Modified string or the same string if it has not any of given postfixes</returns>
[ContractAnnotation("null <= str:null")]
public static string RemovePostFix(this string str, params string[] postFixes)
{
return str.RemovePostFix(StringComparison.Ordinal, postFixes);
@ -129,6 +132,7 @@ public static class AbpStringExtensions
/// <param name="comparisonType">String comparison type</param>
/// <param name="postFixes">one or more postfix.</param>
/// <returns>Modified string or the same string if it has not any of given postfixes</returns>
[ContractAnnotation("null <= str:null")]
public static string RemovePostFix(this string str, StringComparison comparisonType, params string[] postFixes)
{
if (str.IsNullOrEmpty())
@ -158,6 +162,7 @@ public static class AbpStringExtensions
/// <param name="str">The string.</param>
/// <param name="preFixes">one or more prefix.</param>
/// <returns>Modified string or the same string if it has not any of given prefixes</returns>
[ContractAnnotation("null <= str:null")]
public static string RemovePreFix(this string str, params string[] preFixes)
{
return str.RemovePreFix(StringComparison.Ordinal, preFixes);
@ -170,6 +175,7 @@ public static class AbpStringExtensions
/// <param name="comparisonType">String comparison type</param>
/// <param name="preFixes">one or more prefix.</param>
/// <returns>Modified string or the same string if it has not any of given prefixes</returns>
[ContractAnnotation("null <= str:null")]
public static string RemovePreFix(this string str, StringComparison comparisonType, params string[] preFixes)
{
if (str.IsNullOrEmpty())
@ -262,6 +268,7 @@ public static class AbpStringExtensions
/// <param name="useCurrentCulture">set true to use current culture. Otherwise, invariant culture will be used.</param>
/// <param name="handleAbbreviations">set true to if you want to convert 'XYZ' to 'xyz'.</param>
/// <returns>camelCase of the string</returns>
[ContractAnnotation("null <= str:null")]
public static string ToCamelCase(this string str, bool useCurrentCulture = false, bool handleAbbreviations = false)
{
if (string.IsNullOrWhiteSpace(str))
@ -288,6 +295,7 @@ public static class AbpStringExtensions
/// </summary>
/// <param name="str">String to convert.</param>
/// <param name="useCurrentCulture">set true to use current culture. Otherwise, invariant culture will be used.</param>
[ContractAnnotation("null <= str:null")]
public static string ToSentenceCase(this string str, bool useCurrentCulture = false)
{
if (string.IsNullOrWhiteSpace(str))
@ -305,6 +313,7 @@ public static class AbpStringExtensions
/// </summary>
/// <param name="str">String to convert.</param>
/// <param name="useCurrentCulture">set true to use current culture. Otherwise, invariant culture will be used.</param>
[ContractAnnotation("null <= str:null")]
public static string ToKebabCase(this string str, bool useCurrentCulture = false)
{
if (string.IsNullOrWhiteSpace(str))
@ -438,6 +447,7 @@ public static class AbpStringExtensions
/// <param name="str">String to convert</param>
/// <param name="useCurrentCulture">set true to use current culture. Otherwise, invariant culture will be used.</param>
/// <returns>PascalCase of the string</returns>
[ContractAnnotation("null <= str:null")]
public static string ToPascalCase(this string str, bool useCurrentCulture = false)
{
if (string.IsNullOrWhiteSpace(str))
@ -456,7 +466,7 @@ public static class AbpStringExtensions
/// <summary>
/// Gets a substring of a string from beginning of the string if it exceeds maximum length.
/// </summary>
/// <exception cref="ArgumentNullException">Thrown if <paramref name="str"/> is null</exception>
[ContractAnnotation("null <= str:null")]
public static string Truncate(this string str, int maxLength)
{
if (str == null)
@ -475,7 +485,7 @@ public static class AbpStringExtensions
/// <summary>
/// Gets a substring of a string from Ending of the string if it exceeds maximum length.
/// </summary>
/// <exception cref="ArgumentNullException">Thrown if <paramref name="str"/> is null</exception>
[ContractAnnotation("null <= str:null")]
public static string TruncateFromBeginning(this string str, int maxLength)
{
if (str == null)
@ -508,6 +518,7 @@ public static class AbpStringExtensions
/// Returning string can not be longer than maxLength.
/// </summary>
/// <exception cref="ArgumentNullException">Thrown if <paramref name="str"/> is null</exception>
[ContractAnnotation("null <= str:null")]
public static string TruncateWithPostfix(this string str, int maxLength, string postfix)
{
if (str == null)

1
framework/src/Volo.Abp.Core/System/Collections/Generic/AbpCollectionExtensions.cs

@ -12,6 +12,7 @@ public static class AbpCollectionExtensions
/// <summary>
/// Checks whatever given collection object is null or has no item.
/// </summary>
[ContractAnnotation("source:null => true")]
public static bool IsNullOrEmpty<T>([CanBeNull] this ICollection<T> source)
{
return source == null || source.Count <= 0;

6
framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Localization/Resources/AbpDdd/el.json

@ -0,0 +1,6 @@
{
"culture": "el",
"texts": {
"MaxResultCountExceededExceptionMessage": "{0} δεν μπορεί να είναι περισσότερο από {1}! Αυξήστε το {2}.{3} στην πλευρά του διακομιστή για να επιτρέψετε περισσότερα αποτελέσματα."
}
}

25
framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/el.json

@ -0,0 +1,25 @@
{
"culture": "el",
"texts": {
"DisplayName:Abp.Mailing.DefaultFromAddress": "Προεπιλογή από τη διεύθυνση",
"DisplayName:Abp.Mailing.DefaultFromDisplayName": "Προεπιλογή από το εμφανιζόμενο όνομα",
"DisplayName:Abp.Mailing.Smtp.Host": "Διακομιστής",
"DisplayName:Abp.Mailing.Smtp.Port": "Θύρα",
"DisplayName:Abp.Mailing.Smtp.UserName": "Όνομα χρήστη",
"DisplayName:Abp.Mailing.Smtp.Password": "Κωδικός πρόσβασης",
"DisplayName:Abp.Mailing.Smtp.Domain": "Τομέας",
"DisplayName:Abp.Mailing.Smtp.EnableSsl": "Ενεργοποίηση SSL",
"DisplayName:Abp.Mailing.Smtp.UseDefaultCredentials": "Χρήση προεπιλεγμένων διαπιστευτηρίων",
"Description:Abp.Mailing.DefaultFromAddress": "Προεπιλογή από τη διεύθυνση",
"Description:Abp.Mailing.DefaultFromDisplayName": "Προεπιλογή από το εμφανιζόμενο όνομα",
"Description:Abp.Mailing.Smtp.Host": "Το όνομα ή διεύθυνση IP του διακομιστή που χρησιμοποιείται για συναλλαγές SMTP.",
"Description:Abp.Mailing.Smtp.Port": "Θύρα που χρησιμοποιείται για συναλλαγές SMTP.",
"Description:Abp.Mailing.Smtp.UserName": "Όνομα χρήστη που συνδέεται με τα διαπιστευτήρια.",
"Description:Abp.Mailing.Smtp.Password": "Κωδικός πρόσβασης για το όνομα χρήστη που συνδέεται με τα διαπιστευτήρια .",
"Description:Abp.Mailing.Smtp.Domain": "Ο τομέας ή το όνομα του διακομιστή που επαληθεύει τα διαπιστευτήρια.",
"Description:Abp.Mailing.Smtp.EnableSsl": "Εάν o SmtpClient χρησιμοποιεί Secure Sockets Layer (SSL) για την κρυπτογράφηση της σύνδεσης.",
"Description:Abp.Mailing.Smtp.UseDefaultCredentials": "Εάν τα προεπιλεγμένα διαπιστευτήρια αποστέλλονται με αιτήματα.",
"TextTemplate:StandardEmailTemplates.Layout": "Προεπιλεγμένο πρότυπο διάταξης email",
"TextTemplate:StandardEmailTemplates.Message": "Απλό πρότυπο μηνυμάτων για email"
}
}

4
framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/AbpEventBusRebusModule.cs

@ -41,11 +41,11 @@ public class AbpEventBusRebusModule : AbpModule
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
context.ServiceProvider.UseRebus();
context
.ServiceProvider
.GetRequiredService<RebusDistributedEventBus>()
.Initialize();
context.ServiceProvider.UseRebus();
}
}

26
framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/el.json

@ -0,0 +1,26 @@
{
"culture": "el",
"texts": {
"InternalServerErrorMessage": "Παρουσιάστηκε εσωτερικό σφάλμα κατά το αίτημά σας!",
"ValidationErrorMessage": "Το αίτημά σας δεν είναι έγκυρο!",
"ValidationNarrativeErrorMessageTitle": "Τα ακόλουθα σφάλματα εντοπίστηκαν κατά την επικύρωση.",
"DefaultErrorMessage": "Παρουσιάστηκε σφάλμα!",
"DefaultErrorMessageDetail": "Λεπτομέρειες σφάλματος δεν αποστάλθηκαν από τον διακομιστή.",
"DefaultErrorMessage401": "Δεν έχετε ταυτοποιηθεί!",
"DefaultErrorMessage401Detail": "Θα πρέπει να συνδεθείτε για να εκτελέσετε αυτήν τη λειτουργία.",
"DefaultErrorMessage403": "Δεν έχετε εξουσιοδότηση!",
"DefaultErrorMessage403Detail": "Η εκτέλεση αυτής της ενέργειας δεν επιτρέπεται!",
"DefaultErrorMessage404": "Ο πόρος δεν βρέθηκε!",
"DefaultErrorMessage404Detail": "Ο πόρος που ζητήθηκε δεν βρέθηκε στον διακομιστή!",
"EntityNotFoundErrorMessage": "Δεν υπάρχει οντότητα {0} με id = {1}!",
"AbpDbConcurrencyErrorMessage": "Τα δεδομένα που έχετε υποβάλλει έχουν ήδη τροποποιηθεί από άλλον χρήστη/πελάτη. Απορρίψτε τις αλλαγές που κάνατε και δοκιμάστε από την αρχή.",
"Error": "Σφάλμα",
"UnhandledException": "Απρόσμενη Εξαίρεση!",
"401Message": "Μη εξουσιοδοτημένο",
"403Message": "Απαγορευμένο",
"404Message": "Η σελίδα δεν βρέθηκε",
"500Message": "Εσωτερικό Σφάλμα Διακομιστή",
"403MessageDetail": "Δεν είστε εξουσιοδοτημένοι να εκτελέσετε αυτήν τη λειτουργία!",
"404MessageDetail": "Λυπούμαστε, δεν υπάρχει τίποτα σε αυτή τη διεύθυνση."
}
}

8
framework/src/Volo.Abp.Features/Volo/Abp/Features/Localization/el.json

@ -0,0 +1,8 @@
{
"culture": "el",
"texts": {
"Volo.Feature:010001": "Η λειτουργία δεν είναι ενεργοποιημένη: {FeatureName}",
"Volo.Feature:010002": "Οι απαιτούμενες λειτουργίες δεν είναι ενεργοποιημένες. Όλες αυτές οι λειτουργίες πρέπει να είναι ενεργοποιημένες: {FeatureNames}",
"Volo.Feature:010003": "Οι απαιτούμενες λειτουργίες δεν είναι ενεργοποιημένες. Τουλάχιστον μία από αυτές τις λειτουργίες πρέπει να είναι ενεργοποιημένη: {FeatureNames}"
}
}

6
framework/src/Volo.Abp.GlobalFeatures/Volo/Abp/GlobalFeatures/Localization/el.json

@ -0,0 +1,6 @@
{
"culture": "el",
"texts": {
"Volo.GlobalFeature:010001": "Η υπηρεσία '{ServiceName}' απαιτεί την ενεργοποίηση της λειτουργίας '{GlobalFeatureName}'"
}
}

17
framework/src/Volo.Abp.Ldap/Volo/Abp/Ldap/Localization/el.json

@ -0,0 +1,17 @@
{
"culture": "el",
"texts": {
"DisplayName:Abp.Ldap.ServerHost": "Κεντρικός διακομιστής",
"Description:Abp.Ldap.ServerHost": "Κεντρικός διακομιστής",
"DisplayName:Abp.Ldap.ServerPort": "Θύρα",
"Description:Abp.Ldap.ServerPort": "Θύρα",
"DisplayName:Abp.Ldap.BaseDc": "Στοιχείο Βασικού τομέα",
"Description:Abp.Ldap.BaseDc": "Στοιχείο Βασικού τομέα",
"DisplayName:Abp.Ldap.Domain": "Τομέας",
"Description:Abp.Ldap.Domain": "Τομέας",
"DisplayName:Abp.Ldap.UserName": "Όνομα χρήστη",
"Description:Abp.Ldap.UserName": "Όνομα χρήστη",
"DisplayName:Abp.Ldap.Password": "Κωδικός Πρόσβασης",
"Description:Abp.Ldap.Password": "Κωδικός Πρόσβασης"
}
}

7
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/el.json

@ -0,0 +1,7 @@
{
"culture": "el",
"texts": {
"DisplayName:Abp.Localization.DefaultLanguage": "Προεπιλεγμένη γλώσσα",
"Description:Abp.Localization.DefaultLanguage": "Η προεπιλεγμένη γλώσσα της εφαρμογής."
}
}

7
framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Localization/el.json

@ -0,0 +1,7 @@
{
"culture": "el",
"texts": {
"DisplayName:Abp.Timing.Timezone": "Ζώνη Ώρας",
"Description:Abp.Timing.Timezone": "Ζώνη Ώρας εφαρμογής"
}
}

6
framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Localization/Resource/el.json

@ -0,0 +1,6 @@
{
"culture": "el",
"texts": {
"Menu:Administration": "Διαχείριση"
}
}

53
framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/el.json

@ -0,0 +1,53 @@
{
"culture": "el",
"texts": {
"Languages": "Γλώσσες",
"AreYouSure": "Είσαι σίγουρος;",
"Cancel": "Ακύρωση",
"Clear": "Εκκαθάριση",
"Yes": "Ναι",
"No": "όχι",
"Ok": "Οκ",
"Close": "Κλείσιμο",
"Save": "Αποθήκευση",
"SavingWithThreeDot": "Αποθηκεύεται...",
"Actions": "Ενέργειες",
"Delete": "Διαγραφή",
"SuccessfullyDeleted": "Διαγράφηκε με επιτυχία",
"Edit": "Επεξεργασία",
"Refresh": "Ανανέωση",
"Language": "Γλώσσα",
"LoadMore": "Φόρτωση περισσοτέρων",
"ProcessingWithThreeDot": "Επεξεργασία...",
"LoadingWithThreeDot": "Φόρτωση...",
"Welcome": "Καλώς ήρθατε",
"Login": "Σύνδεση",
"Register": "Εγγραφή",
"Logout": "Αποσύνδεση",
"Submit": "Υποβολή",
"Back": "Πίσω",
"PagerSearch": "Αναζήτηση",
"PagerNext": "Επόμενο",
"PagerPrevious": "Προηγούμενο",
"PagerFirst": "Πρώτο",
"PagerLast": "Τελευταίο",
"PagerInfo": "Εμφάνιση _START_ έως _END_ από _TOTAL_ εγγραφές",
"PagerInfo{0}{1}{2}": "Εμφάνιση {0} έως {1} από {2} εγγραφές",
"PagerInfoEmpty": "Εμφάνιση 0 έως 0 από 0 εγγραφές",
"PagerInfoFiltered": "(φιλτραρισμένο από _MAX_ συνολικές εγγραφές)",
"NoDataAvailableInDatatable": "Δεν υπάρχουν διαθέσιμα δεδομένα",
"Total": "Σύνολο",
"Selected": "Έχει γίνει επιλογή",
"PagerShowMenuEntries": "Εμφάνιση στοιχείων _MENU_",
"DatatableActionDropdownDefaultText": "Ενέργειες",
"ChangePassword": "Αλλαγή Κωδικού",
"PersonalInfo": "Το προφίλ μου",
"AreYouSureYouWantToCancelEditingWarningMessage": "Έχετε μη αποθηκευμένες αλλαγές.",
"GoHomePage": "Μετάβαση στην αρχική σελίδα",
"GoBack": "Πίσω",
"Search": "Αναζήτηση",
"ItemWillBeDeletedMessageWithFormat": "Το {0} θα διαγραφεί",
"ItemWillBeDeletedMessage": "Αυτό το στοιχείο θα διαγραφεί!",
"ManageYourAccount": "Διαχείριση Λογαριασμού"
}
}

4
framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pt-BR.json

@ -15,9 +15,9 @@
"Delete": "Excluir",
"SuccessfullyDeleted": "Excluído com sucesso",
"Edit": "Editar",
"Refresh": "Refrescar",
"Refresh": "Atualizar",
"Language": "Língua",
"LoadMore": "Carregue mais",
"LoadMore": "Carregar mais",
"ProcessingWithThreeDot": "Processando...",
"LoadingWithThreeDot": "Carregando...",
"Welcome": "Bem Vindo",

34
framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/el.json

@ -0,0 +1,34 @@
{
"culture": "el",
"texts": {
"'{0}' and '{1}' do not match.": "Το '{0}' και το '{1}' δεν ταιριάζουν.",
"The {0} field is not a valid credit card number.": "Το πεδίο {0} δεν είναι έγκυρος αριθμός πιστωτικής κάρτας.",
"{0} is not valid.": "Το {0} δεν είναι έγκυρο.",
"The {0} field is not a valid e-mail address.": "Το πεδίο {0} δεν είναι έγκυρη διεύθυνση ηλεκτρονικού ταχυδρομείου.",
"The {0} field only accepts files with the following extensions: {1}": "Το πεδίο {0} δέχεται μόνο αρχεία με τις ακόλουθες επεκτάσεις:{1}",
"The field {0} must be a string or array type with a maximum length of '{1}'.": "Το πεδίο {0} πρέπει να είναι τύπος συμβολοσειράς ή πίνακας με μέγιστο μήκος'{1}'.",
"The field {0} must be a string or array type with a minimum length of '{1}'.": "Το πεδίο {0} πρέπει να είναι τύπος συμβολοσειράς ή πίνακας με ελάχιστο μήκος'{1}'.",
"The {0} field is not a valid phone number.": "Το πεδίο {0} δεν είναι έγκυρος αριθμός τηλεφώνου.",
"The field {0} must be between {1} and {2}.": "Το πεδίο {0} πρέπει να βρίσκεται μεταξύ {1} και {2}.",
"The field {0} must match the regular expression '{1}'.": "Το πεδίο {0} δεν ταιριάζει με τη μορφή που ζητήθηκε.",
"The {0} field is required.": "Το πεδίο {0} είναι υποχρεωτικό.",
"The field {0} must be a string with a maximum length of {1}.": "Το πεδίο {0} πρέπει να είναι μια συμβολοσειρά με μέγιστο μήκος {1}.",
"The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.": "Το πεδίο {0} πρέπει να είναι μια συμβολοσειρά με ελάχιστο μήκος {2} και μέγιστο μήκος {1}.",
"The {0} field is not a valid fully-qualified http, https, or ftp URL.": "Το πεδίο {0} δεν είναι έγκυρη πλήρως πιστοποιημένη διεύθυνση URL http, https ή ftp.",
"The field {0} is invalid.": "Το πεδίο {0} δεν είναι έγκυρο.",
"ThisFieldIsNotAValidCreditCardNumber.": "Αυτό το πεδίο δεν περιέχει έγκυρο αριθμό πιστωτικής κάρτας.",
"ThisFieldIsNotValid.": "Αυτό το πεδίο δεν είναι έγκυρο.",
"ThisFieldIsNotAValidEmailAddress.": "Αυτό το πεδίο δεν περιέχει έγκυρη διεύθυνση ηλεκτρονικού ταχυδρομείου.",
"ThisFieldOnlyAcceptsFilesWithTheFollowingExtensions:{0}": "Αυτό το πεδίο δέχεται μόνο αρχεία με τις ακόλουθες επεκτάσεις: {0}",
"ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthOf{0}": "Αυτό το πεδίο πρέπει να είναι τύπος συμβολοσειράς ή πίνακας με μέγιστο μήκος'{0}'.",
"ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "Αυτό το πεδίο πρέπει να είναι τύπος συμβολοσειράς ή πίνακας με ελάχιστο μήκος'{0}'.",
"ThisFieldIsNotAValidPhoneNumber.": "Αυτό το πεδίο δεν είναι έγκυρος αριθμός τηλεφώνου.",
"ThisFieldMustBeBetween{0}And{1}": "Αυτό το πεδίο πρέπει να είναι μεταξύ {0} και {1}.",
"ThisFieldMustMatchTheRegularExpression{0}": "Αυτό το πεδίο πρέπει να ταιριάζει με την κανονική έκφραση'{0}'.",
"ThisFieldIsRequired.": "Αυτό το πεδίο είναι υποχρεωτικό.",
"ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "Αυτό το πεδίο πρέπει να είναι μια συμβολοσειρά με μέγιστο μήκος{0}.",
"ThisFieldMustBeAStringWithAMinimumLengthOf{1}AndAMaximumLengthOf{0}": "Αυτό το πεδίο πρέπει να είναι μια συμβολοσειρά με ελάχιστο μήκος {1} και μέγιστο μήκος{0}.",
"ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "Αυτό το πεδίο δεν είναι έγκυρη πλήρως πιστοποιημένη διεύθυνση URL http, https ή ftp.",
"ThisFieldIsInvalid.": "Αυτό το πεδίο δεν είναι έγκυρο."
}
}

14
framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/pt-BR.json

@ -1,11 +1,11 @@
{
"culture": "pt-BR",
"texts": {
"'{0}' and '{1}' do not match.": "'{0}' e '{1}' não encontrado.",
"'{0}' and '{1}' do not match.": "'{0}' e '{1}' não coincidem.",
"The {0} field is not a valid credit card number.": "O campo {0} não é um número de cartão de crédito válido.",
"{0} is not valid.": "{0} é inválido.",
"The {0} field is not a valid e-mail address.": "O campo {0} não é um e-mail válido.",
"The {0} field only accepts files with the following extensions: {1}": "O campo {0} aceita somente arquivos com estensões: {1}",
"The {0} field only accepts files with the following extensions: {1}": "O campo {0} aceita somente arquivos com extensões: {1}",
"The field {0} must be a string or array type with a maximum length of '{1}'.": "O campo {0} deve ser uma palavra ou matriz com o tamanho máximo de '{1}'.",
"The field {0} must be a string or array type with a minimum length of '{1}'.": "O campo {0} deve ser uma palavra ou matriz com o tamanho mínimo de '{1}'.",
"The {0} field is not a valid phone number.": "O campo {0} não é um telefone válido.",
@ -19,16 +19,16 @@
"ThisFieldIsNotAValidCreditCardNumber.": "Não é um cartão de crédito válido.",
"ThisFieldIsNotValid.": "Campo inválido.",
"ThisFieldIsNotAValidEmailAddress.": "E-mail inválido.",
"ThisFieldOnlyAcceptsFilesWithTheFollowingExtensions:{0}": "Este campo só aceita arquivos com asseguintes extensões: {0}",
"ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthOf{0}": "This field must be a string or array type with a maximum length of '{0}'.",
"ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "This field must be a string or array type with a minimum length of '{0}'.",
"ThisFieldOnlyAcceptsFilesWithTheFollowingExtensions:{0}": "Este campo só aceita arquivos com as seguintes extensões: {0}",
"ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthOf{0}": "Este campo deve ser do tipo palavra ou matriz com comprimento máximo de '{0}'.",
"ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "Este campo deve ser do tipo palavra ou matriz com comprimento mínimo de '{0}'.",
"ThisFieldIsNotAValidPhoneNumber.": "Número de telefone inválido.",
"ThisFieldMustBeBetween{0}And{1}": "Este campo deve estar entre {0} e {1}.",
"ThisFieldMustMatchTheRegularExpression{0}": "Este campo deve ser compatível com a expressao regular: '{0}'.",
"ThisFieldMustMatchTheRegularExpression{0}": "Este campo deve ser compatível com a expressão regular: '{0}'.",
"ThisFieldIsRequired.": "Campo Obrigatório.",
"ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "Campo com no máximo {0} caracteres.",
"ThisFieldMustBeAStringWithAMinimumLengthOf{1}AndAMaximumLengthOf{0}": "Este campo deve possuir entre {1} e {0} caracteres.",
"ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "Este campo não é um http, https, ou ftp complatamente qualificado.",
"ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "Este campo não é um http, https, ou ftp completamente qualificado.",
"ThisFieldIsInvalid.": "Campo inválido."
}
}

1
framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs

@ -109,6 +109,7 @@ public class AbpAspNetCoreMvcTestModule : AbpModule
options.Languages.Add(new LanguageInfo("ro-RO", "ro-RO", "Română"));
options.Languages.Add(new LanguageInfo("sk", "sk", "Slovak"));
options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe"));
options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά"));
});
Configure<RazorPagesOptions>(options =>

10
framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/Resource/el.json

@ -0,0 +1,10 @@
{
"culture": "el",
"texts": {
"DisplayName:PersonModel:BirthDate1": "Ημερομηνία γέννησης1",
"DisplayName:BirthDate2": "Ημερομηνία γέννησης2",
"PersonModel:BirthDate3": "Ημερομηνία γέννησης3",
"BirthDate": "Ημερομηνία γέννησης",
"Value1": "Αξία Ένα"
}
}

6
framework/test/Volo.Abp.Emailing.Tests/Volo/Abp/Emailing/Localization/el.json

@ -0,0 +1,6 @@
{
"culture": "el",
"texts": {
"hello": "Γειά"
}
}

6
framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/Localization/el.json

@ -0,0 +1,6 @@
{
"culture": "el",
"texts": {
"Volo.Abp.Http.DynamicProxying:10001": "Επιχείρησιακό σφάλμα με δεδομένα: {0}"
}
}

2
framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/Localization/pt-BR.json

@ -1,6 +1,6 @@
{
"culture": "pt-BR",
"texts": {
"Volo.Abp.Http.DynamicProxying:10001": "Exceção comercial com dados: {0}"
"Volo.Abp.Http.DynamicProxying:10001": "Exceção de negócio com dados: {0}"
}
}

7
framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/CountryNames/el.json

@ -0,0 +1,7 @@
{
"culture": "el",
"texts": {
"USA": "Ηνωμένες πολιτείες Αμερικής",
"Brazil": "Βραζιλία"
}
}

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

@ -0,0 +1,7 @@
{
"culture": "el",
"texts": {
"ThisFieldIsRequired": "Αυτό το πεδίο είναι υποχρεωτικό",
"MaxLenghtErrorMessage": "Αυτό το πεδίο μπορεί να έχει το μέγιστο '{0}' χαρακτήρες"
}
}

11
framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/el.json

@ -0,0 +1,11 @@
{
"culture": "el",
"texts": {
"Hello <b>{0}</b>.": "Γειά σου <b>{0}</b>.",
"Car": "Αυτοκίνητο",
"CarPlural": "Αυτοκίνητα",
"MaxLenghtErrorMessage": "Αυτό το πεδίο μπορεί να έχει το μέγιστο '{0}' χαρακτήρες",
"Universe": "Σύμπαν",
"FortyTwo": "Σαράντα δύο"
}
}

6
framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/SourceExt/el.json

@ -0,0 +1,6 @@
{
"culture": "el",
"texts": {
"SeeYou": "Τα λέμε"
}
}

7
framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/Localization/el.json

@ -0,0 +1,7 @@
{
"culture": "el",
"texts": {
"HelloText": "Καλησπέρα {0}",
"HowAreYou": "Πώς είσαι;"
}
}

68
modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/el.json

@ -0,0 +1,68 @@
{
"culture": "el",
"texts": {
"Menu:Account": "Λογαριασμός",
"UserName": "Όνομα χρήστη",
"EmailAddress": "Διεύθυνση ηλεκτρονικού ταχυδρομείου",
"UserNameOrEmailAddress": "Όνομα χρήστη ή διεύθυνση ηλεκτρονικού ταχυδρομείου",
"Password": "Κωδικός πρόσβασης",
"RememberMe": "Να με θυμάσαι",
"UseAnotherServiceToLogin": "Χρησιμοποιήστε άλλη υπηρεσία για να συνδεθείτε",
"UserLockedOutMessage": "Ο λογαριασμός χρήστη έχει κλειδωθεί λόγω μη έγκυρων προσπαθειών σύνδεσης. Περιμένετε λίγο και προσπαθήστε ξανά.",
"InvalidUserNameOrPassword": "Μη έγκυρο όνομα χρήστη ή κωδικός!",
"LoginIsNotAllowed": "Δεν επιτρέπεται να συνδεθείτε! Ο λογαριασμός σας είναι ανενεργός ή χρειάζεται να επιβεβαιώσετε το ηλεκτρονικού ταχυδρομείου/τον αριθμό τηλεφώνου σας.",
"SelfRegistrationDisabledMessage": "Η αυτοεγγραφή είναι απενεργοποιημένη για αυτήν την εφαρμογή. Επικοινωνήστε με τον διαχειριστή της εφαρμογής για να εγγραφείτε ως νέος χρήστης.",
"LocalLoginDisabledMessage": "Η τοπική σύνδεση είναι απενεργοποιημένη για αυτήν την εφαρμογή.",
"Login": "Σύνδεση",
"Cancel": "Ακύρωση",
"Register": "Εγγραφή",
"AreYouANewUser": "Είστε νέος χρήστης;",
"AlreadyRegistered": "Ήδη εγγεγραμμένος;",
"InvalidLoginRequest": "Το αίτημα σύνδεσης δεν ήταν έγκυρο",
"ThereAreNoLoginSchemesConfiguredForThisClient": "Δεν υπάρχουν διαμορφωμένα σχήματα σύνδεσης για αυτόν τον πελάτη.",
"LogInUsingYourProviderAccount": "Συνδεθείτε χρησιμοποιώντας τον λογαριασμό σας {0}",
"DisplayName:CurrentPassword": "Τρέχων κωδικός πρόσβασης",
"DisplayName:NewPassword": "Νέος κωδικός πρόσβασης",
"DisplayName:NewPasswordConfirm": "Επιβεβαιώστε τον νέο σας κωδικό",
"PasswordChangedMessage": "Ο κωδικός πρόσβασής σας άλλαξε με επιτυχία.",
"DisplayName:UserName": "Όνομα χρήστη",
"DisplayName:Email": "Ηλεκτρονικό ταχυδρομείο",
"DisplayName:Name": "Όνομα",
"DisplayName:Surname": "Επώνυμο",
"DisplayName:Password": "Κωδικός πρόσβασης",
"DisplayName:EmailAddress": "Διεύθυνση ηλεκτρονικού ταχυδρομείου",
"DisplayName:PhoneNumber": "Τηλέφωνο",
"PersonalSettings": "Προσωπικές ρυθμίσεις",
"PersonalSettingsSaved": "Οι προσωπικές ρυθμίσεις αποθηκεύτηκαν",
"PasswordChanged": "Ο κωδικός πρόσβασης άλλαξε",
"NewPasswordConfirmFailed": "Παρακαλώ επιβεβαιώστε τον νέο κωδικό πρόσβασης.",
"Manage": "Διαχείρηση",
"MyAccount": "Ο λογαριασμός μου",
"DisplayName:Abp.Account.IsSelfRegistrationEnabled": "Είναι ενεργοποιημένη η αυτοεγγραφή",
"Description:Abp.Account.IsSelfRegistrationEnabled": "Εάν ένας χρήστης μπορεί να εγγράψει τον λογαριασμό μόνος του.",
"DisplayName:Abp.Account.EnableLocalLogin": "Έλεγχος ταυτότητας με τοπικό λογαριασμό",
"Description:Abp.Account.EnableLocalLogin": "Υποδεικνύει εάν ο διακομιστής θα επιτρέψει στους χρήστες τον έλεγχο ταυτότητας με έναν τοπικό λογαριασμό.",
"LoggedOutTitle": "Αποσυνδέθηκατε",
"LoggedOutText": "Έχετε αποσυνδεθεί και θα ανακατευθυνθείτε σύντομα.",
"ReturnToText": "Κάντε κλικ εδώ για να επιστρέψετε στην εφαρμογή",
"OrLoginWith": "Ή συνδεθείτε με:",
"ForgotPassword": "Ξεχάσατε τον κωδικό πρόσβασης σας;",
"SendPasswordResetLink_Information": "Θα αποσταλεί στο email σας ένας σύνδεσμος επαναφοράς κωδικού πρόσβασης μεσα απο τον οποιο θα μπορείτε να επαναφέρετε τον κωδικό πρόσβασής σας. Εάν δεν λάβετε ένα email μέσα σε λίγα λεπτά, δοκιμάστε ξανά.",
"PasswordResetMailSentMessage": "Το email ανάκτησης λογαριασμού στάλθηκε στη διεύθυνση ηλεκτρονικού ταχυδρομείου σας. Εάν δεν δείτε αυτό το μήνυμα ηλεκτρονικού ταχυδρομείου στα εισερχόμενά σας εντός 15 λεπτών, αναζητήστε το στον φάκελο ανεπιθύμητης αλληλογραφίας σας. Εάν το βρείτε εκεί, σημειώστε το ως -Not Junk-.",
"ResetPassword": "Επαναφορά Κωδικού Πρόσβασης",
"ConfirmPassword": "Επιβεβαιώστε (επαναλάβετε) τον κωδικό πρόσβασης",
"ResetPassword_Information": "Εισαγάγετε τον νέο σας κωδικό πρόσβασης.",
"YourPasswordIsSuccessfullyReset": "Ο κωδικός πρόσβασής σας επαναφέρθηκε με επιτυχία",
"GoToTheApplication": "Μεταβείτε στην εφαρμογή",
"BackToLogin": "Επιστροφή στην σελίδα εισόδου",
"ProfileTab:Password": "Αλλάξτε κωδικό",
"ProfileTab:PersonalInfo": "Προσωπικές πληροφορίες",
"ReturnToApplication": "Επιστροφή στην εφαρμογή",
"Volo.Account:InvalidEmailAddress": "Δεν είναι δυνατή η εύρεση της δεδομένης διεύθυνσης ηλεκτρονικού ταχυδρομείου: {0}",
"PasswordReset": "Επαναφορά κωδικού πρόσβασης",
"PasswordResetInfoInEmail": "Λάβαμε ένα αίτημα ανάκτησης λογαριασμού! Εάν υποβάλατε αυτό το αίτημα, κάντε κλικ στον παρακάτω σύνδεσμο για να επαναφέρετε τον κωδικό πρόσβασής σας.",
"ResetMyPassword": "Επαναφορά του κωδικού πρόσβασής μου",
"AccessDenied": "Δεν επιτρέπεται η πρόσβαση!",
"AccessDeniedMessage": "Δεν έχετε πρόσβαση σε αυτόν τον πόρο."
}
}

2
modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/en.json

@ -65,4 +65,4 @@
"AccessDenied": "Access denied!",
"AccessDeniedMessage": "You do not have access to this resource."
}
}
}

6
modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/pt-BR.json

@ -8,7 +8,7 @@
"Password": "Senha",
"RememberMe": "Lembrar",
"UseAnotherServiceToLogin": "Usar outro serviço para entrar",
"UserLockedOutMessage": "Esta conta de usuário está bloqueada devido a muitas tentativas de acesso. Por favor, espero alguns instantes e tente novamente.",
"UserLockedOutMessage": "Esta conta de usuário está bloqueada devido a muitas tentativas de acesso. Por favor, espere alguns instantes e tente novamente.",
"InvalidUserNameOrPassword": "Usuário ou senha estão incorretos!",
"LoginIsNotAllowed": "Você não tem permissão para fazer o login! Sua conta está inativa ou precisa confirmar seu e-mail/número de telefone.",
"SelfRegistrationDisabledMessage": "Não é permitido que você crie uma nova conta neste site. Contate um administrador para que ele crie uma conta para você.",
@ -42,13 +42,13 @@
"Description:Abp.Account.IsSelfRegistrationEnabled": "Se um usuário pode registrar a conta por si mesmo.",
"DisplayName:Abp.Account.EnableLocalLogin": "Autenticar com uma conta local",
"Description:Abp.Account.EnableLocalLogin": "Indica se o servidor permitirá que os usuários se autentiquem com uma conta local.",
"LoggedOutTitle": "Assinado",
"LoggedOutTitle": "Desconectado",
"LoggedOutText": "Você foi desconectado e será redirecionado em breve.",
"ReturnToText": "Clique aqui para retornar ao aplicativo",
"OrLoginWith": "Ou faça login com:",
"ForgotPassword": "Esqueceu sua senha?",
"SendPasswordResetLink_Information": "Um link de redefinição de senha será enviado ao seu e-mail para redefinir sua senha. Se você não receber um e-mail em alguns minutos, tente novamente.",
"PasswordResetMailSentMessage": "Email de recuperação de conta enviado para o seu endereço de e-mail. Se você não vir este e-mail em sua caixa de entrada em 15 minutos, procure-o na pasta de lixo eletrônico. Se você encontrá-lo lá, marque-o como -Não Lixo-.",
"PasswordResetMailSentMessage": "E-mail de recuperação de conta enviado para o seu endereço de e-mail. Se você não vir este e-mail em sua caixa de entrada em 15 minutos, procure-o na pasta de lixo eletrônico. Se você encontrá-lo lá, marque-o como -Não é Lixo Eletrônico-.",
"ResetPassword": "Redefinir senha",
"ConfirmPassword": "Confirme (repita) a senha",
"ResetPassword_Information": "Por favor insira sua nova senha.",

6
modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/Localization/el.json

@ -0,0 +1,6 @@
{
"culture": "el",
"texts": {
"MyAccount": "Ο λογαριασμός μου"
}
}

61
modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/el.json

@ -0,0 +1,61 @@
{
"culture": "el",
"texts": {
"Menu:Blogs": "Ιστολόγια",
"Menu:BlogManagement": "Blogging",
"Permission:Management": "Διαχείριση",
"Permission:Edit": "Επεξεργασία",
"Permission:Create": "Δημιουργία",
"Permission:Delete": "Διαγραφή",
"Permission:Blogging": "Ιστολόγιο",
"Permission:Blogs": "Ιστολόγια",
"Permission:Posts": "Αναρτήσεις",
"Permission:Tags": "Ετικέτα",
"Permission:Comments": "Σχόλια",
"Permission:ClearCache": "Εκκαθάριση προσωρινής μνήμης",
"Title": "Τίτλος",
"Delete": "Διαγραφή",
"Reply": "Απάντηση",
"ReplyTo": "Απάντηση σε",
"ContinueReading": "Συνέχισε να διαβάζεις",
"DaysAgo": "{0} μέρες πριν",
"YearsAgo": "{0} χρόνια πριν",
"MonthsAgo": "{0} μήνες πριν",
"WeeksAgo": "{0} εβδομάδες πριν",
"MinutesAgo": "{0} λεπτά πριν",
"SecondsAgo": "{0} δευτερόλεπτα πριν",
"HoursAgo": "{0} ώρες πριν",
"Now": "τώρα",
"Content": "Περιεχόμενο",
"SeeAll": "Προβολή όλων",
"PopularTags": "Δημοφιλείς",
"WiewsWithCount": "{0} προβολές",
"LastPosts": "Τελευταίες δημοσιεύσεις",
"LeaveComment": "Αφήστε σχόλιο",
"TagsInThisArticle": "Ετικέτες σε αυτό το άρθρο",
"Posts": "Αναρτήσεις",
"Edit": "Επεξεργασία",
"BLOG": "Ισοτλόγιο",
"CommentDeletionWarningMessage": "Το σχόλιο θα διαγραφεί.",
"PostDeletionWarningMessage": "Η ανάρτηση θα διαγραφεί.",
"BlogDeletionWarningMessage": "Το ιστολόγιο θα διαγραφεί.",
"AreYouSure": "Είσαι σίγουρος;",
"CommentWithCount": "{0} σχόλια",
"Comment": "Σχόλιο",
"ShareOnTwitter": "Κοινή χρήση στο Twitter",
"CoverImage": "Εικόνα εξωφύλλου",
"CreateANewPost": "Δημιουργία νέας ανάρτησης",
"CreateANewBlog": "Δημιουργήστε ένα νέο ιστολόγιο",
"WhatIsNew": "Τι είναι νέο;",
"Name": "Όνομα",
"ShortName": "Μικρό όνομα",
"CreationTime": "Χρόνος Δημιουργίας",
"Description": "Περιγραφή",
"Blogs": "ιστολόγια",
"Tags": "ετικέτες",
"ShareOn": "Κοινοποίηση στο",
"TitleLengthWarning": "Διατηρήστε το μέγεθος του τίτλου σας κάτω από 60 χαρακτήρες",
"ClearCache": "Εκκαθάριση προσωρινής μνήμης",
"ClearCacheConfirmationMessage": "Είστε βέβαιοι ότι θέλετε να διαγράψετε την προσωρινή μνήμη;"
}
}

2
modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/en.json

@ -58,4 +58,4 @@
"ClearCache": "Clear cache",
"ClearCacheConfirmationMessage": "Are you sure you want to clear the cache?"
}
}
}

1
modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/CmsKitHttpApiHostModule.cs

@ -111,6 +111,7 @@ public class CmsKitHttpApiHostModule : AbpModule
options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe"));
options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文"));
options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文"));
options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά"));
});
context.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)

1
modules/cms-kit/host/Volo.CmsKit.IdentityServer/CmsKitIdentityServerModule.cs

@ -118,6 +118,7 @@ public class CmsKitIdentityServerModule : AbpModule
options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe"));
options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文"));
options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文"));
options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά"));
});
Configure<AbpAuditingOptions>(options =>

1
modules/cms-kit/host/Volo.CmsKit.Web.Unified/CmsKitWebUnifiedModule.cs

@ -145,6 +145,7 @@ public class CmsKitWebUnifiedModule : AbpModule
options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe"));
options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文"));
options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文"));
options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά"));
});
Configure<AbpMultiTenancyOptions>(options =>

186
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/el.json

@ -0,0 +1,186 @@
{
"culture": "el",
"texts": {
"AddSubMenuItem": "Προσθήκη στοιχείου στο υπομενού",
"AreYouSure": "Είσαι σίγουρος;",
"BlogDeletionConfirmationMessage": "Το ιστολόγιο '{0}' θα διαγραφεί. Είσαι σίγουρος;",
"BlogFeatureNotAvailable": "Αυτή η δυνατότητα δεν είναι διαθέσιμη τώρα. Ενεργοποιήστε το 'GlobalFeatureManager' για να το χρησιμοποιήσετε.",
"BlogId": "Ιστολόγιο",
"BlogPostDeletionConfirmationMessage": "Η ανάρτηση ιστολογίου '{0}' θα διαγραφεί. Είσαι σίγουρος;",
"BlogPosts": "Αναρτήσεις ιστολογίου",
"Blogs": "Ιστολόγια",
"ChoosePreference": "Επιλέξτε Προτίμηση...",
"Cms": "CMS",
"CmsKit.Comments": "Σχόλια",
"CmsKit.Ratings": "Βαθμολογία",
"CmsKit.Reactions": "Αντιδράσεις",
"CmsKit.Tags": "Ετικέτες",
"CmsKit:0002": "Το περιεχόμενο υπάρχει ήδη!",
"CmsKit:0003": "Η οντότητα {0} δεν μπορεί να επισημανθεί.",
"CmsKit:Blog:0001": "Το δεδομένο slug ({Slug}) υπάρχει ήδη!",
"CmsKit:BlogPost:0001": "Το δεδομένο slug υπάρχει ήδη!",
"CmsKit:Comments:0001": "Η οντότητα {EntityType} δεν μπορεί να σχολιαστεί.",
"CmsKit:Media:0001": "'Το {Name}' δεν είναι έγκυρο όνομα πολυμέσων.",
"CmsKit:Media:0002": "Η οντότητα δεν μπορεί να έχει μέσα.",
"CmsKit:Page:0001": "Η δεδομένη διεύθυνση url ({Slug}) υπάρχει ήδη. Δοκιμάστε με διαφορετική διεύθυνση url.",
"CmsKit:Rating:0001": "Η οντότητα {EntityType} δεν μπορεί να βαθμολογηθεί.",
"CmsKit:Reaction:0001": "Η οντότητα {EntityType} δεν μπορεί να έχει αντιδράσεις.",
"CmsKit:Tag:0002": "Η οντότητα δεν είναι επισημασμένη!",
"CommentAuthorizationExceptionMessage": "Αυτά τα σχόλια δεν επιτρέπονται για δημόσια προβολή.",
"CommentDeletionConfirmationMessage": "Αυτό το σχόλιο και όλες οι απαντήσεις θα διαγραφούν!",
"Comments": "Σχόλια",
"Content": "Περιεχόμενο",
"ContentDeletionConfirmationMessage": "Είστε βέβαιοι ότι θα διαγράψετε αυτό το περιεχόμενο;",
"Contents": "Περιεχόμενα",
"CoverImage": "Εικόνα εξωφύλλου",
"CreateBlogPostPage": "Νέα ανάρτηση ιστολογίου",
"CreationTime": "Χρόνος Δημιουργίας",
"Delete": "Διαγραφή",
"Detail": "Λεπτομέρεια",
"Details": "Λεπτομέριες",
"DisplayName": "Εμφανιζόμενο όνομα",
"DoYouPreferAdditionalEmails": "Προτιμάτε επιπλέον email;",
"Edit": "Επεξεργασία",
"EndDate": "Ημερομηνία λήξης",
"EntityId": "Αναγνωριστικό οντότητας",
"EntityType": "Τύπος οντότητας",
"ExportCSV": "Εξαγωγή CSV",
"Features": "Χαρακτηριστικά",
"GenericDeletionConfirmationMessage": "Είστε βέβαιοι ότι θα διαγράψετε το '{0}';",
"IsActive": "Ενεργός",
"LastModification": "Τελευταία Τροποποίηση",
"LastModificationTime": " Ώρα τελευταίας τροποποίησης",
"LoginToAddComment": "Συνδεθείτε για να προσθέσετε σχόλιο",
"LoginToRate": "Συνδεθείτε για να βαθμολογήσετε",
"LoginToReact": "Συνδεθείτε για να αντιδράσετε",
"LoginToReply": "Συνδεθείτε για να απαντήσετε",
"MainMenu": "Κυρίως μενού",
"MakeMainMenu": "Δημιουργία Κύριου Μενού",
"Menu:CMS": "CMS",
"Menus": "Μενού",
"MenuDeletionConfirmationMessage": "Το μενού '{0}' θα διαγραφεί. Είσαι σίγουρος;",
"MenuItemDeletionConfirmationMessage": "Σίγουρα θα διαγράψετε αυτό το στοιχείο του μενού;",
"MenuItemMoveConfirmMessage": "Είστε βέβαιοι ότι θέλετε να μετακινήσετε το '{0}' κάτω από το '{1}';",
"MenuItems": "Στοιχεία μενού",
"Message": "Μήνυμα",
"MessageDeletionConfirmationMessage": "Αυτό το σχόλιο θα διαγραφεί εντελώς.",
"NewBlog": "Νέο Ιστολόγιο",
"NewBlogPost": "Νέα ανάρτηση ιστολογίου",
"NewMenu": "Νέο Μενού",
"NewMenuItem": "Νέο στοιχείο μενού",
"NewPage": "Νέα Σελίδα",
"NewTag": "Νέα Ετικέτα",
"NoMenuItems": "Δεν υπάρχει ακόμα στοιχείο μενού!",
"OK": "OK",
"PageDeletionConfirmationMessage": "Είστε βέβαιοι ότι θα διαγράψετε αυτήν τη σελίδα;",
"PageId": "Σελίδα",
"Pages": "Σελίδες",
"PageSlugInformation": "Το Slug χρησιμοποιείται στο url. Το url σας θα είναι '/pages/{{slug}}'.",
"Permission:BlogManagement": "Διαχείριση ιστολογίου",
"Permission:BlogManagement.Create": "Δημιουργώ",
"Permission:BlogManagement.Delete": "Διαγράφω",
"Permission:BlogManagement.Features": "Χαρακτηριστικά",
"Permission:BlogManagement.Update": "Εκσυγχρονίζω",
"Permission:BlogPostManagement": "Διαχείριση αναρτήσεων ιστολογίου",
"Permission:BlogPostManagement.Create": "Δημιουργώ",
"Permission:BlogPostManagement.Delete": "Διαγράφω",
"Permission:BlogPostManagement.Update": "Εκσυγχρονίζω",
"Permission:BlogPostManagement.Publish": "Δημοσιεύω",
"Permission:CmsKit": "CmsKit",
"Permission:Comments": "Διαχείριση σχολίων",
"Permission:Comments.Delete": "Διαγράφω",
"Permission:Contents": "Διαχείριση περιεχομένου",
"Permission:Contents.Create": "Δημιουργία Περιεχομένου",
"Permission:Contents.Delete": "Διαγραφή Περιεχομένου",
"Permission:Contents.Update": "Ενημέρωση Περιεχομένου",
"Permission:MediaDescriptorManagement": "Διαχείριση Μέσων",
"Permission:MediaDescriptorManagement:Create": "Δημιουργώ",
"Permission:MediaDescriptorManagement:Delete": "Διαγράφω",
"Permission:MenuItemManagement": "Διαχείριση στοιχείων μενού",
"Permission:MenuItemManagement.Create": "Δημιουργώ",
"Permission:MenuItemManagement.Delete": "Διαγράφω",
"Permission:MenuItemManagement.Update": "Εκσυγχρονίζω",
"Permission:MenuManagement": "Διαχείριση μενού",
"Permission:MenuManagement.Create": "Δημιουργώ",
"Permission:MenuManagement.Delete": "Διαγράφω",
"Permission:MenuManagement.Update": "Εκσυγχρονίζω",
"Permission:Menus": "Διαχείριση μενού",
"Permission:Menus.Create": "Δημιουργώ",
"Permission:Menus.Delete": "Διαγράφω",
"Permission:Menus.Update": "Εκσυγχρονίζω",
"Permission:PageManagement": "Διαχείριση μενού",
"Permission:PageManagement:Create": "Δημιουργώ",
"Permission:PageManagement:Delete": "Διαγράφω",
"Permission:PageManagement:Update": "Εκσυγχρονίζω",
"Permission:TagManagement": "Διαχείριση ετικετών",
"Permission:TagManagement.Create": "Δημιουργώ",
"Permission:TagManagement.Delete": "Διαγράφω",
"Permission:TagManagement.Update": "Εκσυγχρονίζω",
"Permission:GlobalResources": "Παγκόσμιοι Πόροι",
"PickYourReaction": "Διάλεξε την αντίδρασή σου",
"Rating": "Βαθμολογία",
"RatingUndoMessage": "Η αξιολόγησή σας θα αναιρεθεί.",
"Reactions": "Αντιδράσεις",
"Read": "Ανάγνωση",
"RepliesToThisComment": "Απαντήσεις σε αυτό το σχόλιο",
"Reply": "Απάντηση",
"ReplyTo": "Απάντηση σε",
"SamplePageMessage": "Ένα δείγμα σελίδας για την ενότητα Pro",
"SaveChanges": "Αποθήκευσε τις αλλαγές",
"Script": "Γραφή",
"SelectAll": "Επιλογή όλων",
"Send": "Αποστολή",
"SendMessage": "Αποστολή Μηνύματος",
"SelectedAuthor": "Συγγραφέας",
"ShortDescription": "Σύντομη περιγραφή",
"Slug": "Slug",
"Source": "Πηγή",
"SourceUrl": "Πηγή Url",
"Star": "Αστέρι",
"StartDate": "Ημερομηνία έναρξης",
"Style": "Στυλ",
"Subject": "Θέμα",
"SubjectPlaceholder": "Πληκτρολογήστε ένα θέμα",
"Submit": "Υποβολή",
"Subscribe": "Εγγραφή",
"SuccessfullySaved": "Αποθηκεύτηκε με επιτυχία!",
"TagDeletionConfirmationMessage": "Είστε βέβαιοι ότι θα διαγράψετε την ετικέτα '{0}'.;",
"Tags": "Ετικέτες",
"Text": "Κείμενο",
"ThankYou": "Σε ευχαριστώ",
"Title": "Τίτλος",
"Undo": "Αναίρεση",
"Update": "Εκσυγχρονίσμός",
"UpdatePreferenceSuccessMessage": "Οι προτιμήσεις σας έχουν αποθηκευτεί.",
"UpdateYourEmailPreferences": "Ενημερώστε τις προτιμήσεις email σας",
"UnMakeMainMenu": "Αλλαγή Κύριου Μενού",
"UploadFailedMessage": "Η μεταφόρτωση απέτυχε.",
"UserId": "Ταυτότητα χρήστη",
"Username": "Όνομα χρήστη",
"YourComment": "Το σχόλιό σου",
"YourEmailAddress": "Η ηλεκτρονική σου διεύθυνση",
"YourFullName": "Το ονοματεπώνυμο σου",
"YourMessage": "Το μήνυμά σου",
"YourReply": "Η απάντηση σου",
"MarkdownSupported": "<a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a> supported.",
"GlobalResources": "Παγκόσμιοι Πόροι",
"SavedSuccessfully": "Αποθηκεύτηκε επιτυχώς",
"CmsKit.BlogPost.Status.0": "Προσχέδιο",
"CmsKit.BlogPost.Status.1": "Δημοσιευμένο",
"CmsKit.BlogPost.Status.2": "Αναμονή για αναθεώρηση",
"BlogPostPublishConfirmationMessage": "Είστε βέβαιοι ότι θα δημοσιεύσετε την ανάρτηση του ιστολογίου\"{0}\";",
"SuccessfullyPublished": "Δημοσιεύτηκε με επιτυχία!",
"Draft": "Προσχέδιο",
"Publish": "Δημοσιευμένο",
"BlogPostDraftConfirmationMessage": "Είστε βέβαιοι ότι έχετε ορίσει την ανάρτηση ιστολογίου \"{0}\" ως πρόχειρο;",
"BlogPostSendToReviewConfirmationMessage": "Είστε βέβαιοι ότι θα στείλετε την ανάρτηση ιστολογίου \"{0}\" σε έλεγχο διαχειριστή για δημοσίευση;",
"SaveAsDraft": "Αποθηκεύσετε ως πρόχειρο",
"SendToReview": "Αποστολή για αξιολόγηση",
"SendToReviewToPublish": "Αποστολή για αξιολόγηση για δημοσίευση",
"BlogPostSendToReviewSuccessMessage": "Η ανάρτηση ιστολογίου \"{0}\" έχει σταλεί σε έλεγχο διαχειριστή για δημοσίευση.",
"HasBlogPostWaitingForReviewMessage": "Έχετε μια ανάρτηση ιστολογίου σε αναμονή για έλεγχο. Κάντε κλικ για λίστα.",
"SelectAStatus": "Επιλέξτε μια κατάσταση",
"Status": "Κατάσταση",
"CmsKit.BlogPost.ScrollIndex": "Γραμμή γρήγορης πλοήγησης σε αναρτήσεις ιστολογίου"
}
}

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json

@ -183,4 +183,4 @@
"Status": "Status",
"CmsKit.BlogPost.ScrollIndex": "Quick navigation bar in blog posts"
}
}
}

65
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/pt-BR.json

@ -22,23 +22,23 @@
"CmsKit:Comments:0001": "A entidade {EntityType} não pode ser comentada.",
"CmsKit:Media:0001": "'{Name}' não é um nome de mídia válido.",
"CmsKit:Media:0002": "A entidade não pode ter mídia.",
"CmsKit:Page:0001": "O url fornecido ({Slug}) já existe. Por favor, tente com url diferente.",
"CmsKit:Page:0001": "A url fornecida ({Slug}) já existe. Por favor, tente com uma url diferente.",
"CmsKit:Rating:0001": "A entidade {EntityType} não pode ser avaliada.",
"CmsKit:Reaction:0001": "A entidade {EntityType} não pode ter reações.",
"CmsKit:Tag:0002": "A entidade não pode ser etiquetada!",
"CommentAuthorizationExceptionMessage": "Esses comentários não são permitidos para exibição pública.",
"CommentDeletionConfirmationMessage": "Este comentário e todas as respostas serão excluídos!",
"Comments": "Comentários",
"Content": "Contente",
"Content": "Conteúdo",
"ContentDeletionConfirmationMessage": "Tem certeza de que deseja excluir este conteúdo?",
"Contents": "Conteúdo",
"Contents": "Conteúdos",
"CoverImage": "Imagem de capa",
"CreateBlogPostPage": "Nova postagem no blog",
"CreationTime": "Tempo de Criação",
"Delete": "Excluir",
"Detail": "Detalhe",
"Details": "Detalhes",
"DisplayName": "Nome em Exibição",
"DisplayName": "Nome para Exibição",
"DoYouPreferAdditionalEmails": "Você prefere e-mails adicionais?",
"Edit": "Editar",
"EndDate": "Data final",
@ -51,8 +51,8 @@
"LastModification": "Última modificação",
"LastModificationTime": "Hora da Última Modificação",
"LoginToAddComment": "Faça login para adicionar comentário",
"LoginToRate": "Faça login para avaliar",
"LoginToReact": "Faça login para reagir",
"LoginToRate": "Entre para avaliar",
"LoginToReact": "Entre para reagir",
"LoginToReply": "Entre para responder",
"MainMenu": "Menu principal",
"MakeMainMenu": "Faça o Menu Principal",
@ -75,46 +75,48 @@
"PageDeletionConfirmationMessage": "Tem certeza que deseja deletar esta página?",
"PageId": "Página",
"Pages": "Páginas",
"PageSlugInformation": "Slug é usado no url. Seu url será '/pages/{{slug}}'.",
"PageSlugInformation": "Slug é usado na url. Sua url será '/pages/{{slug}}'.",
"Permission:BlogManagement": "Gerenciamento de blogs",
"Permission:BlogManagement.Create": "Crio",
"Permission:BlogManagement.Create": "Criar",
"Permission:BlogManagement.Delete": "Excluir",
"Permission:BlogManagement.Features": "Recursos",
"Permission:BlogManagement.Update": "Atualizar",
"Permission:BlogPostManagement": "Gerenciamento de postagem no blog",
"Permission:BlogPostManagement.Create": "Crio",
"Permission:BlogPostManagement.Create": "Criar",
"Permission:BlogPostManagement.Delete": "Excluir",
"Permission:BlogPostManagement.Update": "Atualizar",
"Permission:BlogPostManagement.Publish": "Publicar",
"Permission:CmsKit": "CmsKit",
"Permission:Comments": "Gerenciamento de comentários",
"Permission:Comments.Delete": "Excluir",
"Permission:Contents": "Gerenciamento de conteúdo",
"Permission:Contents.Create": "Criar conteúdo",
"Permission:Contents.Delete": "Excluir conteúdo",
"Permission:Contents.Update": "Conteúdo de atualização",
"Permission:Contents.Update": "Editar conteúdo",
"Permission:MediaDescriptorManagement": "Gestão de mídia",
"Permission:MediaDescriptorManagement:Create": "Crio",
"Permission:MediaDescriptorManagement:Create": "Criar",
"Permission:MediaDescriptorManagement:Delete": "Excluir",
"Permission:MenuItemManagement": "Gerenciamento de item de menu",
"Permission:MenuItemManagement.Create": "Crio",
"Permission:MenuItemManagement.Create": "Criar",
"Permission:MenuItemManagement.Delete": "Excluir",
"Permission:MenuItemManagement.Update": "Atualizar",
"Permission:MenuManagement": "Gestão do Menu",
"Permission:MenuManagement.Create": "Crio",
"Permission:MenuManagement.Create": "Criar",
"Permission:MenuManagement.Delete": "Excluir",
"Permission:MenuManagement.Update": "Atualizar",
"Permission:Menus": "Gestão do Menu",
"Permission:Menus.Create": "Crio",
"Permission:Menus.Create": "Criar",
"Permission:Menus.Delete": "Excluir",
"Permission:Menus.Update": "Atualizar",
"Permission:PageManagement": "Gerenciamento de página",
"Permission:PageManagement:Create": "Crio",
"Permission:PageManagement:Create": "Criar",
"Permission:PageManagement:Delete": "Excluir",
"Permission:PageManagement:Update": "Atualizar",
"Permission:TagManagement": "Gestão de Tag",
"Permission:TagManagement.Create": "Crio",
"Permission:TagManagement.Create": "Criar",
"Permission:TagManagement.Delete": "Excluir",
"Permission:TagManagement.Update": "Atualizar",
"Permission:GlobalResources": "Recursos globais",
"PickYourReaction": "Escolha sua reação",
"Rating": "Avaliação",
"RatingUndoMessage": "Sua classificação será desfeita.",
@ -127,10 +129,11 @@
"SaveChanges": "Salvar alterações",
"Script": "Roteiro",
"SelectAll": "Selecionar tudo",
"Send": "Mandar",
"Send": "Enviar",
"SendMessage": "Enviar mensagem",
"SelectedAuthor": "Autor",
"ShortDescription": "Pequena descrição",
"Slug": "Lesma",
"Slug": "Slug",
"Source": "Fonte",
"SourceUrl": "URL da fonte",
"Star": "Estrela",
@ -139,7 +142,7 @@
"Subject": "Sujeito",
"SubjectPlaceholder": "Por favor digite um assunto",
"Submit": "Enviar",
"Subscribe": "Se inscrever",
"Subscribe": "Inscrever-se",
"SuccessfullySaved": "Salvo com sucesso!",
"TagDeletionConfirmationMessage": "Tem certeza que deseja excluir a tag '{0}'?",
"Tags": "Tag",
@ -155,9 +158,29 @@
"UserId": "ID do usuário",
"Username": "Nome do usuário",
"YourComment": "Seu comentário",
"YourEmailAddress": "Seu endereço de email",
"YourEmailAddress": "Seu endereço de e-mail",
"YourFullName": "Seu nome completo",
"YourMessage": "Sua mensagem",
"YourReply": "Sua resposta"
"YourReply": "Sua resposta",
"MarkdownSupported": "<a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a> supported.",
"GlobalResources": "Recursos globais",
"SavedSuccessfully": "Salvo com sucesso",
"CmsKit.BlogPost.Status.0": "Rascunho",
"CmsKit.BlogPost.Status.1": "Publicado",
"CmsKit.BlogPost.Status.2": "Aguardando revisão",
"BlogPostPublishConfirmationMessage": "Tem certeza que deseja publicar a postagem \"{0}\"?",
"SuccessfullyPublished": "Publicado com sucesso!",
"Draft": "Rascunho",
"Publish": "Publicado",
"BlogPostDraftConfirmationMessage": "Tem certeza que deseja marcar a postagem \"{0}\" como rascunho?",
"BlogPostSendToReviewConfirmationMessage": "Tem certeza que deseja enviar a postagem \"{0}\" para o admin revisor para publicação?",
"SaveAsDraft": "Salvar como rascunho",
"SendToReview": "Enviar para revisão",
"SendToReviewToPublish": "Enviar para revisão para publicar",
"BlogPostSendToReviewSuccessMessage": "A postagem \"{0}\" foi enviada para o admin revisor para publicação.",
"HasBlogPostWaitingForReviewMessage": "Você tem uma postagem para revisão. Clique para listar.",
"SelectAStatus": "Selecione um status",
"Status": "Status",
"CmsKit.BlogPost.ScrollIndex": "Barra de navegação rápida em postagens"
}
}

10
modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/el.json

@ -0,0 +1,10 @@
{
"culture": "el",
"texts": {
"DocsTitle": "VoloDocs",
"WelcomeVoloDocs": "Καλωσήρθατε στο VoloDocs!",
"NoProjectWarning": "Δεν υπάρχει ακόμη καθορισμένο έργο!",
"CreateYourFirstProject": "Κάντε κλικ εδώ για να ξεκινήσετε το πρώτο σας έργο",
"NoProject": "Κανένα έργο!"
}
}

1
modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs

@ -140,6 +140,7 @@ namespace VoloDocs.Web
options.Languages.Add(new LanguageInfo("sk", "sk", "Slovak"));
options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe"));
options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文"));
options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά"));
options.Resources
.Get<DocsResource>()

59
modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/el.json

@ -0,0 +1,59 @@
{
"culture": "el",
"texts": {
"Permission:DocumentManagement": "Διαχείρηση αρχείων",
"Permission:Projects": "Εργα",
"Permission:Edit": "Επεξεργασία",
"Permission:Delete": "Διαγραφή",
"Permission:Create": "Δημιουργία",
"Permission:Documents": "Αρχεία",
"Menu:Documents": "Αρχεία",
"Menu:DocumentManagement": "Αρχεία",
"Menu:ProjectManagement": "Εργα",
"CreateANewProject": "Δημιουργία νέου έργου",
"Edit": "Επεξεργασία",
"Create": "Δημιουργία",
"Pull": "Τραβήξτε",
"Projects": "Εργα",
"Name": "Όνομα",
"ShortName": "Μικρό όνομα",
"DocumentStoreType": "Τύπος αποθήκευσης εγγράφων",
"Format": "Μορφή",
"ShortNameInfoText": "Θα χρησιμοποιηθεί για μοναδική διεύθυνση URL.",
"DisplayName:Name": "Όνομα",
"DisplayName:ShortName": "Μικρό όνομα",
"DisplayName:Format": "Μορφή",
"DisplayName:DefaultDocumentName": "Προεπιλεγμένο όνομα εγγράφου",
"DisplayName:NavigationDocumentName": "Όνομα εγγράφου πλοήγησης",
"DisplayName:MinimumVersion": "Ελάχιστη έκδοση",
"DisplayName:MainWebsiteUrl": "URL του κύριου ιστότοπου",
"DisplayName:LatestVersionBranchName": "Όνομα υποκαταστήματος τελευταίας έκδοσης",
"DisplayName:GitHubRootUrl": "GitHub root URL",
"DisplayName:GitHubAccessToken": "GitHub Διακριτικό πρόσβασης",
"DisplayName:GitHubUserAgent": "GitHub user agent",
"DisplayName:GithubVersionProviderSource": "GitHub πηγή παρόχου έκδοσης",
"DisplayName:VersionBranchPrefix": "Πρόθεμα κλάδου έκδοσης",
"DisplayName:All": "Τραβήξτε όλα",
"DisplayName:LanguageCode": "Κωδικός γλώσσας",
"DisplayName:Version": "Εκδοχή",
"Documents": "Εγγραφα",
"RemoveFromCache": "Αφαίρεση από την προσωρινή μνήμη",
"Reindex": "Επανακαταγραφή",
"ReindexCompleted": "Ολοκληρώθηκε η επανακαταγραφή",
"RemovedFromCache": "Καταργήθηκε από την προσωρινή μνήμη",
"RemoveFromCacheConfirmation": "Είστε βέβαιοι ότι θέλετε να αφαιρέσετε αυτό το στοιχείο από την προσωρινή μνήμη;",
"ReIndexDocumentConfirmation": "Είστε βέβαιοι ότι θέλετε να αναπροσαρμόσετε αυτό το στοιχείο;",
"DeleteFromDatabase": "Διαγραφή από τη βάση δεδομένων",
"Deleted": "Διαγραφή",
"Search": "Αναζήτηση",
"StartDate": "Ημερομηνία έναρξης",
"EndDate": "Ημερομηνία λήξης",
"CreationTime": "Χρόνος δημιουργίας",
"LastUpdateTime": "Τελευταία ενημέρωση",
"LastSignificantUpdateTime": "Τελευταία σημαντική ενημέρωση",
"Version": "Εκδοχή",
"LanguageCode": "Κωδικός γλώσσας",
"FileName": "Όνομα αρχείου",
"LastCachedTime": "Χρόνος προσωρινής αποθήκευσης"
}
}

2
modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/en.json

@ -56,4 +56,4 @@
"FileName": "File name",
"LastCachedTime": "Cache time"
}
}
}

14
modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/pt-BR.json

@ -19,18 +19,18 @@
"ShortName": "Nome Curto",
"DocumentStoreType": "DocumentStoreType",
"Format": "Formato",
"ShortNameInfoText": "Ser� utilizado para URL �nica.",
"ShortNameInfoText": "Será utilizado para URL única.",
"DisplayName:Name": "Nome",
"DisplayName:ShortName": "Nome Curto",
"DisplayName:Format": "Formatar",
"DisplayName:DefaultDocumentName": "Nome padr�o do documento",
"DisplayName:NavigationDocumentName": "Nome de navega��o do documento",
"DisplayName:MinimumVersion": "Vers�o m�nima",
"DisplayName:DefaultDocumentName": "Nome padrão do documento",
"DisplayName:NavigationDocumentName": "Nome de navegação do documento",
"DisplayName:MinimumVersion": "Versão mínima",
"DisplayName:MainWebsiteUrl": "URL do site principal",
"DisplayName:LatestVersionBranchName": "Nome do branch da �ltima vers�o",
"DisplayName:GitHubRootUrl": "URL ra�z do GitHub",
"DisplayName:LatestVersionBranchName": "Nome do branch da última versão",
"DisplayName:GitHubRootUrl": "URL raíz do GitHub",
"DisplayName:GitHubAccessToken": "Token de acesso do GitHub",
"DisplayName:GitHubUserAgent": "Usu�rio agente do GitHub",
"DisplayName:GitHubUserAgent": "Usuário agente do GitHub",
"DisplayName:GithubVersionProviderSource": "Fonte do provedor de versão do GitHub",
"DisplayName:VersionBranchPrefix": "Prefixo da ramificação da versão",
"DisplayName:All": "Puxe tudo",

41
modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/el.json

@ -0,0 +1,41 @@
{
"culture": "el",
"texts": {
"Documents": "Έγγραφα",
"BackToWebsite": "Επιστροφή στον ιστότοπο",
"Contributors": "Συνεισφέροντες",
"ShareOn": "Κοινοποίηση στο",
"Version": "Εκδοχή",
"Edit": "Επεξεργασία",
"LastEditTime": "Τελευταία επεξεργασία",
"Delete": "Διαγραφή",
"ClearCache": "Εκκαθάριση προσωρινής μνήμης",
"ClearCacheConfirmationMessage": "Είστε βέβαιοι ότι θα διαγράψετε όλες τις προσωρινές μνήμες για το έργο\"{0}\"",
"ReIndexAllProjects": "Αναπροσαρμογή όλων των έργων",
"ReIndexProject": "Αναπροσαρμογή έργου",
"ReIndexProjectConfirmationMessage": "Είστε βέβαιοι ότι θέλετε αναπροσαρμογή για το έργο\"{0}\"",
"SuccessfullyReIndexProject": "Επιτυχής αναπροσαρμογή: \"{0}\"",
"ReIndexAllProjectConfirmationMessage": "Είστε βέβαιοι ότι θέλετε αναπροσαρμογή όλων των έργων;",
"SuccessfullyReIndexAllProject": "Επιτυχής αναπροσαρμογή όλων των έργων",
"InThisDocument": "Σε αυτό το έργο",
"GoToTop": "Πήγαινε στην κορυφή",
"Projects": "Έργο/α",
"NoProjectWarning": "Δεν υπάρχουν ακόμη έργα!",
"DocumentNotFound": "Ωχ, το έγγραφο που ζητήθηκε δεν βρέθηκε!",
"ProjectNotFound": "Ωχ, το έργο που ζητήθηκε δεν βρέθηκε!",
"NavigationDocumentNotFound": "Αυτή η έκδοση δεν έχει έγγραφο πλοήγησης!",
"DocumentNotFoundInSelectedLanguage": "Το έγγραφο στη γλώσσα που θέλατε δεν βρέθηκε. Εμφανίζεται το έγγραφο στην προεπιλεγμένη γλώσσα.",
"FilterTopics": "Φιλτράρισμα θεμάτων",
"FullSearch": "Αναζήτηση σε έγγραφα",
"Volo.Docs.Domain:010001": "Η ελαστική αναζήτηση δεν είναι ενεργοποιημένη.",
"MultipleVersionDocumentInfo": "Αυτό το έγγραφο έχει πολλές εκδόσεις. Επιλέξτε τις επιλογές που σας ταιριάζουν καλύτερα.",
"New": "Νέο",
"Upd": "Επικαιροποιημένο",
"NewExplanation": "Δημιουργήθηκε τις τελευταίες δύο εβδομάδες",
"UpdatedExplanation": "Ενημερώθηκε τις τελευταίες δύο εβδομάδες.",
"Volo.Docs.Domain:010002": "Το Μικρό όνομα {ShortName} υπάρχει ήδη.",
"Preview": "προεπισκόπηση",
"Search": "Αναζήτηση",
"SearchResults": "Αποτελέσματα αναζήτησης"
}
}

2
modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en.json

@ -38,4 +38,4 @@
"Search": "Search",
"SearchResults": "Search Results"
}
}
}

12
modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/pt-BR.json

@ -11,9 +11,9 @@
"Delete": "Excluir",
"ClearCache": "Limpar cache",
"ClearCacheConfirmationMessage": "Tem certeza que deseja limpar todos os caches do projeto \"{0}\"",
"ReIndexAllProjects": "ReIndexar todos os projetos",
"ReIndexProject": "Projeto ReIndex",
"ReIndexProjectConfirmationMessage": "Tem certeza que deseja reindexar para o projeto \"{0}\"",
"ReIndexAllProjects": "Reindexar todos os projetos",
"ReIndexProject": "Reindexar Projeto",
"ReIndexProjectConfirmationMessage": "Tem certeza que deseja reindexar o projeto \"{0}\"",
"SuccessfullyReIndexProject": "Reindexado com sucesso: \"{0}\"",
"ReIndexAllProjectConfirmationMessage": "Tem certeza de que deseja reindexar todos os projetos?",
"SuccessfullyReIndexAllProject": "Todos os projetos foram reindexados com sucesso",
@ -30,11 +30,11 @@
"Volo.Docs.Domain:010001": "A pesquisa elástica não está ativada.",
"MultipleVersionDocumentInfo": "Este documento possui várias versões. Selecione as opções mais adequadas para você.",
"New": "Novo",
"Upd": "Upd",
"Upd": "Atualizar",
"NewExplanation": "Criado nas últimas duas semanas.",
"UpdatedExplanation": "Atualizado nas últimas duas semanas.",
"Volo.Docs.Domain:010002": "ShortName {ShortName} já existe.",
"Preview": "antevisão",
"Volo.Docs.Domain:010002": "Nome curto {ShortName} já existe.",
"Preview": "Previsualizar",
"Search": "Procurar",
"SearchResults": "Procurar Resultados"
}

10
modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/el.json

@ -0,0 +1,10 @@
{
"culture": "el",
"texts": {
"Features": "Χαρακτηριστικά",
"NoFeatureFoundMessage": "Δεν διατίθεται καποιο χαρακτηριστικο.",
"Permission:FeatureManagement": "Διαχείριση χαρακτηριστικών",
"Permission:FeatureManagement.ManageHostFeatures": "Διαχείριση Χαρακτηριστικών Εξυπηρετήτη",
"Volo.Abp.FeatureManagement:InvalidFeatureValue" : "Η τιμή χαρακτηριστικού {0} δεν ειναι έγκυρη!"
}
}

2
modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/pt-BR.json

@ -2,7 +2,7 @@
"culture": "pt-BR",
"texts": {
"Features": "Funcionalidades",
"NoFeatureFoundMessage": "N�o h� nenhuma funcionalidade dispon�vel.",
"NoFeatureFoundMessage": "Não há nenhuma funcionalidade disponivel.",
"Permission:FeatureManagement": "Gerenciamento de recursos",
"Permission:FeatureManagement.ManageHostFeatures": "Gerenciar recursos do Host",
"Volo.Abp.FeatureManagement:InvalidFeatureValue": "O valor do recurso {0} não é válido!"

112
modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/el.json

@ -0,0 +1,112 @@
{
"culture": "el",
"texts": {
"Menu:IdentityManagement": "Διαχείριση ταυτότητας",
"Users": "Χρήστες",
"NewUser": "Νέος χρήστης",
"UserName": "Όνομα χρήστη",
"EmailAddress": "Διεύθυνση ηλεκτρονικού ταχυδρομείου",
"PhoneNumber": "Τηλεφωνικό νούμερο",
"UserInformations": "Πληροφορίες χρήστη",
"DisplayName:IsDefault": "Προκαθορισμένο",
"DisplayName:IsStatic": "Στατικός",
"DisplayName:IsPublic": "Δημόσιο",
"Roles": "Ρόλοι",
"Password": "Κωδικός πρόσβασης",
"PersonalInfo": "Το προφίλ μου",
"PersonalSettings": "Προσωπικές ρυθμίσεις",
"UserDeletionConfirmationMessage": "Ο χρήστης '{0}' θα διαγραφεί. Το επιβεβαιώνεις;",
"RoleDeletionConfirmationMessage": "Ο ρόλος '{0}' θα διαγραφεί. Το επιβεβαιώνεις;",
"DisplayName:RoleName": "Όνομα ρόλου",
"DisplayName:UserName": "Όνομα χρήστη",
"DisplayName:Name": "Όνομα",
"DisplayName:Surname": "Επώνυμο",
"DisplayName:Password": "Κωδικός πρόσβασης",
"DisplayName:Email": "Διεύθυνση ηλεκτρονικού ταχυδρομείου",
"DisplayName:PhoneNumber": "Τηλεφωνικό νούμερο",
"DisplayName:TwoFactorEnabled": "Επαλήθευση δύο παραγόντων",
"DisplayName:IsActive": "Ενεργός",
"DisplayName:LockoutEnabled": "Κλείδωμα λογαριασμού μετά από αποτυχημένες προσπάθειες σύνδεσης",
"NewRole": "Νέος ρόλος",
"RoleName": "Όνομα ρόλου",
"CreationTime": "Χρόνος δημιουργίας",
"Permissions": "Δικαιώματα",
"DisplayName:CurrentPassword": "Τρέχων κωδικός πρόσβασης",
"DisplayName:NewPassword": "Νέος κωδικός πρόσβασης",
"DisplayName:NewPasswordConfirm": "Επιβεβαιώστε τον καινούριο σας κωδικό",
"PasswordChangedMessage": "Ο κωδικός πρόσβασης σας άλλαξε με επιτυχία.",
"PersonalSettingsSavedMessage": "Οι προσωπικές σας ρυθμίσεις αποθηκεύτηκαν με επιτυχία.",
"Volo.Abp.Identity:DefaultError": "Παρουσιάστηκε μια άγνωστη αποτυχία.",
"Volo.Abp.Identity:ConcurrencyFailure": "Ο έλεγχος συγχρονισμού απέτυχε. Η οντότητα στην οποία εργάζεστε έχει τροποποιηθεί από άλλο χρήστη. Απορρίψτε τις αλλαγές σας και δοκιμάστε ξανά.",
"Volo.Abp.Identity:DuplicateEmail": "Το email '{0}' υπάρχει ήδη.",
"Volo.Abp.Identity:DuplicateRoleName": "Το όνομα ρόλου '{0}' υπάρχει ήδη.",
"Volo.Abp.Identity:DuplicateUserName":"Το Όνομα χρήστη'{0}'υπάρχει ήδη.",
"Volo.Abp.Identity:InvalidEmail": "Το email '{0}' δεν είναι έγκυρο.",
"Volo.Abp.Identity:InvalidPasswordHasherCompatibilityMode": "Η παρεχόμενη λειτουργία PasswordHasherCompatibilityMode δεν είναι έγκυρη.",
"Volo.Abp.Identity:InvalidPasswordHasherIterationCount": "Το πλήθος των επαναλήψεων πρέπει να είναι θετικός ακέραιος.",
"Volo.Abp.Identity:InvalidRoleName": "Το όνομα ρόλου '{0}' δεν είναι έγκυρο.",
"Volo.Abp.Identity:InvalidToken": "Μη έγκυρο διακριτικό.",
"Volo.Abp.Identity:InvalidUserName": "Το όνομα χρήστη '{0}' δεν είναι έγκυρο, μπορεί να περιέχει μόνο γράμματα ή ψηφία.",
"Volo.Abp.Identity:LoginAlreadyAssociated": "Ένας χρήστης με αυτήν τη σύνδεση υπάρχει ήδη.",
"Volo.Abp.Identity:PasswordMismatch": "Λάθος κωδικός.",
"Volo.Abp.Identity:PasswordRequiresDigit": "Οι κωδικοί πρόσβασης πρέπει να έχουν τουλάχιστον ένα ψηφίο ('0'-'9').",
"Volo.Abp.Identity:PasswordRequiresLower": "Οι κωδικοί πρόσβασης πρέπει να έχουν τουλάχιστον ένα πεζό ('a'-'z').",
"Volo.Abp.Identity:PasswordRequiresNonAlphanumeric": "Οι κωδικοί πρόσβασης πρέπει να έχουν τουλάχιστον έναν μη αλφαριθμητικό χαρακτήρα.",
"Volo.Abp.Identity:PasswordRequiresUpper": "Οι κωδικοί πρόσβασης πρέπει να έχουν τουλάχιστον ένα κεφαλαίο ('A'-'Z').",
"Volo.Abp.Identity:PasswordTooShort": "Οι κωδικοί πρόσβασης πρέπει να είναι τουλάχιστον {0} χαρακτήρες.",
"Volo.Abp.Identity:RoleNotFound": "Ο ρόλος {0} δεν υπάρχει",
"Volo.Abp.Identity:UserAlreadyHasPassword": "Ο χρήστης έχει ήδη ορίσει κωδικό πρόσβασης.",
"Volo.Abp.Identity:UserAlreadyInRole": "Χρήστης ήδη στο ρόλο '{0}'.",
"Volo.Abp.Identity:UserLockedOut": "Ο χρήστης είναι κλειδωμένος έξω.",
"Volo.Abp.Identity:UserLockoutNotEnabled": "Το κλείδωμα δεν είναι ενεργοποιημένο για αυτόν τον χρήστη.",
"Volo.Abp.Identity:UserNameNotFound": "Ο χρήστης {0} δεν υπάρχει.",
"Volo.Abp.Identity:UserNotInRole": "Ο χρήστης δεν βρίσκεται στο ρόλο '{0}'.",
"Volo.Abp.Identity:PasswordConfirmationFailed": "Ο κωδικός πρόσβασης δεν ταιριάζει με τον κωδικό επιβεβαίωσης.",
"Volo.Abp.Identity:010001": "Δεν μπορείτε να διαγράψετε τον δικό σας λογαριασμό!",
"Volo.Abp.Identity:010002": "Δεν μπορείτε να ορίσετε περισσότερες από {MaxUserMembershipCount} μονάδα οργάνωσης για έναν χρήστη!",
"Volo.Abp.Identity:010003": "Δεν είναι δυνατή η αλλαγή του κωδικού πρόσβασης ενός εξωτερικά συνδεδεμένου χρήστη!",
"Volo.Abp.Identity:010004": "Υπάρχει ήδη μια οργανωτική μονάδα με όνομα {0}. Δεν μπορούν να δημιουργηθούν δύο μονάδες με το ίδιο όνομα στο ίδιο επίπεδο.",
"Volo.Abp.Identity:010005": "Οι στατικοί ρόλοι δεν μπορούν να μετονομαστούν.",
"Volo.Abp.Identity:010006": "Οι στατικοί ρόλοι δεν μπορούν να διαγραφούν.",
"Volo.Abp.Identity:010007": "Δεν μπορείτε να αλλάξετε τη ρύθμιση δύο παραγόντων.",
"Volo.Abp.Identity:010008": "Δεν επιτρέπεται η αλλαγή της ρύθμισης δύο παραγόντων.",
"Identity.OrganizationUnit.MaxUserMembershipCount": "Μέγιστος επιτρεπόμενος αριθμός μελών μονάδας οργανισμού για έναν χρήστη",
"ThisUserIsNotActiveMessage": "Αυτός ο χρήστης δεν είναι ενεργός.",
"Permission:IdentityManagement": "Διαχείριση ταυτότητας",
"Permission:RoleManagement": "Διαχείριση ρόλων",
"Permission:Create": "Δημιουργία",
"Permission:Edit": "Επεξεργασία",
"Permission:Delete": "Διαγραφή",
"Permission:ChangePermissions": "Αλλαγές στα δικαιώματα",
"Permission:UserManagement": "Διαχείριση χρηστών",
"Permission:UserLookup": "Αναζήτηση χρήστη",
"DisplayName:Abp.Identity.Password.RequiredLength": "Απαιτούμενο μήκος",
"DisplayName:Abp.Identity.Password.RequiredUniqueChars": "Απαιτούμενος μοναδικός αριθμός χαρακτήρων",
"DisplayName:Abp.Identity.Password.RequireNonAlphanumeric": "Απαιτούμενος μη αλφαριθμητικός χαρακτήρας",
"DisplayName:Abp.Identity.Password.RequireLowercase": "Απαιτούμενος πεζός χαρακτήρας",
"DisplayName:Abp.Identity.Password.RequireUppercase": "Απαιτούμενος κεφαλαίος χαρακτήρας",
"DisplayName:Abp.Identity.Password.RequireDigit": "Απαιτούμενο ψηφίο",
"DisplayName:Abp.Identity.Lockout.AllowedForNewUsers": "Ενεργοποιήθηκε για νέους χρήστες",
"DisplayName:Abp.Identity.Lockout.LockoutDuration": "Διάρκεια κλειδώματος (δευτερόλεπτα)",
"DisplayName:Abp.Identity.Lockout.MaxFailedAccessAttempts": "Μέγιστες αποτυχημένες προσπάθειες πρόσβασης",
"DisplayName:Abp.Identity.SignIn.RequireConfirmedEmail": "Απαιτείται επιβεβαιωμένο email",
"DisplayName:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Επιτρέψτε στους χρήστες να επιβεβαιώσουν τον αριθμό τηλεφώνου τους",
"DisplayName:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Απαιτείται επιβεβαιωμένος αριθμός τηλεφώνου",
"DisplayName:Abp.Identity.User.IsUserNameUpdateEnabled": "Επιτρέψτε στους χρήστες να αλλάξουν τα ονόματα χρήστη τους",
"DisplayName:Abp.Identity.User.IsEmailUpdateEnabled": "Επιτρέψτε στους χρήστες να αλλάξουν τις διευθύνσεις email τους",
"Description:Abp.Identity.Password.RequiredLength": "Το ελάχιστο μήκος ενός κωδικού πρόσβασης πρέπει να είναι.",
"Description:Abp.Identity.Password.RequiredUniqueChars": "Ο ελάχιστος αριθμός μοναδικών χαρακτήρων που πρέπει να περιέχει ένας κωδικός πρόσβασης.",
"Description:Abp.Identity.Password.RequireNonAlphanumeric": "Εάν οι κωδικοί πρόσβασης πρέπει να περιέχουν έναν μη αλφαριθμητικό χαρακτήρα.",
"Description:Abp.Identity.Password.RequireLowercase": "Εάν οι κωδικοί πρόσβασης πρέπει να περιέχουν πεζό χαρακτήρα ASCII.",
"Description:Abp.Identity.Password.RequireUppercase": "Εάν οι κωδικοί πρόσβασης πρέπει να περιέχουν κεφαλαίο χαρακτήρα ASCII.",
"Description:Abp.Identity.Password.RequireDigit": "Εάν οι κωδικοί πρόσβασης πρέπει να περιέχουν ένα ψηφίο.",
"Description:Abp.Identity.Lockout.AllowedForNewUsers": "Εάν ένας νέος χρήστης μπορεί να κλειδωθεί.",
"Description:Abp.Identity.Lockout.LockoutDuration": "Η διάρκεια για την οποία ένας χρήστης είναι κλειδωμένος όταν εμφανίζεται ένα κλείδωμα.",
"Description:Abp.Identity.Lockout.MaxFailedAccessAttempts": "Ο αριθμός των αποτυχημένων προσπαθειών πρόσβασης που επιτρέπονται πριν από το κλείδωμα ενός χρήστη, με την προϋπόθεση ότι το κλείδωμα είναι ενεργοποιημένο.",
"Description:Abp.Identity.SignIn.RequireConfirmedEmail": "Εάν απαιτείται επιβεβαιωμένη διεύθυνση ηλεκτρονικού ταχυδρομείου για τη σύνδεση.",
"Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Εάν ο αριθμός τηλεφώνου μπορεί να επιβεβαιωθεί από τον χρήστη.",
"Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Εάν απαιτείται επιβεβαιωμένος αριθμός τηλεφώνου για τη σύνδεση.",
"Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Εάν το όνομα χρήστη μπορεί να ενημερωθεί από τον χρήστη.",
"Description:Abp.Identity.User.IsEmailUpdateEnabled": "Εάν το email μπορεί να ενημερωθεί από τον χρήστη."
}
}

2
modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/en.json

@ -109,4 +109,4 @@
"Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Whether the username can be updated by the user.",
"Description:Abp.Identity.User.IsEmailUpdateEnabled": "Whether the email can be updated by the user."
}
}
}

4
modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/pt-BR.json

@ -65,7 +65,7 @@
"Volo.Abp.Identity:010001": "Você não pode deletar sua própria conta!",
"Volo.Abp.Identity:010002": "Não é possível definir mais de {MaxUserMembershipCount} unidade de organização para um usuário!",
"Volo.Abp.Identity:010003": "Não é possível alterar a senha de um usuário conectado externamente!",
"Volo.Abp.Identity:010004": "Já existe uma unidade organizacional com o nome {0}. Duas unidades com o mesmo nome não pode ser criada no mesmo nível.",
"Volo.Abp.Identity:010004": "Já existe uma unidade organizacional com o nome {0}. Duas unidades com o mesmo nome não podem ser criadas no mesmo nível.",
"Volo.Abp.Identity:010005": "Perfis estáticos não podem ser renomeados.",
"Volo.Abp.Identity:010006": "Perfis estáticos não podem ser excluídos.",
"Volo.Abp.Identity:010007": "Você não pode alterar sua configuração de dois fatores.",
@ -104,7 +104,7 @@
"Description:Abp.Identity.Lockout.LockoutDuration": "A duração que um usuário fica bloqueado quando ocorre um bloqueio.",
"Description:Abp.Identity.Lockout.MaxFailedAccessAttempts": "O número de tentativas de acesso malsucedidas permitidas antes que um usuário seja bloqueado, assumindo que o bloqueio esteja habilitado.",
"Description:Abp.Identity.SignIn.RequireConfirmedEmail": "Se um endereço de e-mail confirmado é necessário para fazer login.",
"Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Se o phoneNumber pode ser confirmado pelo usuário.",
"Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Se o número de telefone pode ser confirmado pelo usuário.",
"Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Se um número de telefone confirmado é necessário para fazer login.",
"Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Se o nome de usuário pode ser atualizado pelo usuário.",
"Description:Abp.Identity.User.IsEmailUpdateEnabled": "Se o e-mail pode ser atualizado pelo usuário."

7
modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/LocalizationExtensions/el.json

@ -0,0 +1,7 @@
{
"culture": "el",
"texts": {
"Volo.Abp.Identity:PasswordTooShort": "Το μήκος του κωδικού πρόσβασης πρέπει να είναι μεγαλύτερο από {0} χαρακτήρες.",
"Volo.Abp.Identity:PasswordRequiresNonAlphanumeric": "Ο κωδικός πρόσβασης πρέπει να περιέχει τουλάχιστον έναν μη αλφαριθμητικό χαρακτήρα."
}
}

15
modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/el.json

@ -0,0 +1,15 @@
{
"culture": "el",
"texts": {
"Volo.IdentityServer:DuplicateIdentityResourceName": "Το όνομα του πόρου ταυτότητας υπάρχει ήδη:{Name}",
"Volo.IdentityServer:DuplicateApiResourceName": "Το όνομα πόρου Api υπάρχει ήδη: {Name}",
"Volo.IdentityServer:DuplicateApiScopeName": "Το όνομα πεδίου Api υπάρχει ήδη:{Name}",
"Volo.IdentityServer:DuplicateClientId": "Η ταυτότητα του χρήστη υπάρχει ήδη: {ClientId}",
"UserLockedOut": "Ο λογαριασμός χρήστη έχει κλειδωθεί λόγω μη έγκυρων προσπαθειών σύνδεσης. Περιμένετε λίγο και προσπαθήστε ξανά.",
"InvalidUserNameOrPassword": "Μη έγκυρο όνομα ή κωδικός!",
"LoginIsNotAllowed": "Δεν επιτρέπεται να συνδεθείτε! Ο λογαριασμός σας είναι ανενεργός ή χρειάζεται να επιβεβαιώσετε το email/τον αριθμό τηλεφώνου σας.",
"InvalidUsername": "Μη έγκυρο όνομα ή κωδικός!",
"InvalidAuthenticatorCode": "Μη έγκυρος κωδικός ελέγχου ταυτότητας!",
"TheTargetUserIsNotLinkedToYou": "Ο χρήστης-στόχος δεν είναι συνδεδεμένος με εσάς!"
}
}

17
modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/el.json

@ -0,0 +1,17 @@
{
"culture": "el",
"texts": {
"TheOpenIDConnectRequestCannotBeRetrieved": "Δεν είναι δυνατή η ανάκτηση του αιτήματος OpenID Connect.",
"TheUserDetailsCannotBbeRetrieved" : "Δεν είναι δυνατή η ανάκτηση των στοιχείων του χρήστη.",
"TheApplicationDetailsCannotBeFound": "Δεν είναι δυνατή η εύρεση των στοιχείων της αίτησης.",
"DetailsConcerningTheCallingClientApplicationCannotBeFound": "Δεν μπορούν να βρεθούν οι λεπτομέρειες σχετικά με την εφαρμογή του πελάτη που καλεί.",
"TheSpecifiedGrantTypeIsNotImplemented.": "Ο καθορισμένος τύπος επιχορήγησης {0} δεν εφαρμόζεται.",
"Authorization": "Εξουσιοδότηση",
"DoYouWantToGrantAccessToYourData": "Θέλετε να παραχωρήσετε στον χρήστη {0} πρόσβαση στα δεδομένα σας;",
"ScopesRequested": "Ζητούνται πεδία εφαρμογής",
"Accept": "Αποδοχή",
"Deny": "Άρνηση",
"LogOut": "Αποσύνδεση",
"AreYouSureYouWantToSignOut": "Είστε βέβαιοι ότι θέλετε να αποσυνδεθείτε;"
}
}

17
modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/pt-BR.json

@ -0,0 +1,17 @@
{
"culture": "pt-BR",
"texts": {
"TheOpenIDConnectRequestCannotBeRetrieved": "Não foi possivel recuperar a requisição do OpenID Connect.",
"TheUserDetailsCannotBbeRetrieved": "Não foi possivel recuperar os detalhes do usuário.",
"TheApplicationDetailsCannotBeFound": "Os detalhes da aplicação não foram encontrados.",
"DetailsConcerningTheCallingClientApplicationCannotBeFound": "Os detalhes relativos ao aplicativo cliente requisitante não firam encontrados.",
"TheSpecifiedGrantTypeIsNotImplemented.": "O tipo de permissão {0} não está implementando.",
"Authorization": "Autorização",
"DoYouWantToGrantAccessToYourData": "Deseja permitir {0} acesse seus dados?",
"ScopesRequested": "Escopo solicitado",
"Accept": "Aceitar",
"Deny": "Negar",
"LogOut": "Sair",
"AreYouSureYouWantToSignOut": "Tem certeza que deseja sair?"
}
}

6
modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/AbpOpenIddictDomainModule.cs

@ -1,6 +1,8 @@
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Options;
using OpenIddict.Abstractions;
using Volo.Abp.BackgroundWorkers;
using Volo.Abp.Caching;
using Volo.Abp.DistributedLocking;
@ -68,6 +70,10 @@ public class AbpOpenIddictDomainModule : AbpModule
.AddScopeStore<AbpOpenIddictScopeStore>()
.AddTokenStore<AbpOpenIddictTokenStore>();
builder.ReplaceApplicationManager(typeof(AbpApplicationManager));
builder.Services.TryAddScoped(provider => (IAbpApplicationManager)provider.GetRequiredService<IOpenIddictApplicationManager>());
services.ExecutePreConfiguredActions(builder);
});

16
modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpApplicationDescriptor.cs

@ -0,0 +1,16 @@
using OpenIddict.Abstractions;
namespace Volo.Abp.OpenIddict.Applications;
public class AbpApplicationDescriptor : OpenIddictApplicationDescriptor
{
/// <summary>
/// URI to further information about client.
/// </summary>
public string ClientUri { get; set; }
/// <summary>
/// URI to client logo.
/// </summary>
public string LogoUri { get; set; }
}

61
modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpApplicationManager.cs

@ -0,0 +1,61 @@
using System;
using System.Threading;
using System.Threading.Tasks;
using JetBrains.Annotations;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using OpenIddict.Abstractions;
using OpenIddict.Core;
namespace Volo.Abp.OpenIddict.Applications;
public class AbpApplicationManager : OpenIddictApplicationManager<OpenIddictApplicationModel>, IAbpApplicationManager
{
public AbpApplicationManager(
[NotNull] IOpenIddictApplicationCache<OpenIddictApplicationModel> cache,
[NotNull] ILogger<AbpApplicationManager> logger,
[NotNull] IOptionsMonitor<OpenIddictCoreOptions> options,
[NotNull] IOpenIddictApplicationStoreResolver resolver)
: base(cache, logger, options, resolver)
{
}
public async override ValueTask PopulateAsync(OpenIddictApplicationDescriptor descriptor, OpenIddictApplicationModel application, CancellationToken cancellationToken = default)
{
await base.PopulateAsync(descriptor, application, cancellationToken);
if (descriptor is AbpApplicationDescriptor model)
{
application.ClientUri = model.ClientUri;
application.LogoUri = model.LogoUri;
}
}
public async override ValueTask PopulateAsync(OpenIddictApplicationModel application, OpenIddictApplicationDescriptor descriptor, CancellationToken cancellationToken = default)
{
await base.PopulateAsync(application, descriptor, cancellationToken);
if (descriptor is AbpApplicationDescriptor model)
{
application.ClientUri = model.ClientUri;
application.LogoUri = model.LogoUri;
}
}
public virtual async ValueTask<string> GetClientUriAsync(object application, CancellationToken cancellationToken = default)
{
Check.NotNull(application, nameof(application));
Check.AssignableTo<IAbpOpenIdApplicationStore>(application.GetType(), nameof(application));
return await Store.As<IAbpOpenIdApplicationStore>().GetClientUriAsync(application.As<OpenIddictApplicationModel>(), cancellationToken);
}
public virtual async ValueTask<string> GetLogoUriAsync(object application, CancellationToken cancellationToken = default)
{
Check.NotNull(application, nameof(application));
Check.AssignableTo<IAbpOpenIdApplicationStore>(application.GetType(), nameof(application));
return await Store.As<IAbpOpenIdApplicationStore>().GetLogoUriAsync(application.As<OpenIddictApplicationModel>(), cancellationToken);
}
}

19
modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpOpenIddictApplicationStore.cs

@ -8,14 +8,13 @@ using System.Runtime.CompilerServices;
using System.Text.Json;
using System.Threading;
using System.Threading.Tasks;
using OpenIddict.Abstractions;
using Volo.Abp.Guids;
using Volo.Abp.OpenIddict.Tokens;
using Volo.Abp.Uow;
namespace Volo.Abp.OpenIddict.Applications;
public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase<IOpenIddictApplicationRepository>, IOpenIddictApplicationStore<OpenIddictApplicationModel>
public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase<IOpenIddictApplicationRepository>, IAbpOpenIdApplicationStore
{
protected IOpenIddictTokenRepository TokenRepository { get; }
@ -44,7 +43,7 @@ public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase<IOpenIddictA
Check.NotNull(application, nameof(application));
await Repository.InsertAsync(application.ToEntity(), autoSave: true, cancellationToken: cancellationToken);
application = (await Repository.FindAsync(application.Id, cancellationToken: cancellationToken)).ToModel();
}
@ -531,4 +530,18 @@ public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase<IOpenIddictA
application = (await Repository.FindAsync(entity.Id, cancellationToken: cancellationToken)).ToModel();
}
public virtual ValueTask<string> GetClientUriAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken = default)
{
Check.NotNull(application, nameof(application));
return new ValueTask<string>(application.ClientUri);
}
public virtual ValueTask<string> GetLogoUriAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken = default)
{
Check.NotNull(application, nameof(application));
return new ValueTask<string>(application.LogoUri);
}
}

12
modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/IAbpApplicationManager.cs

@ -0,0 +1,12 @@
using System.Threading;
using System.Threading.Tasks;
using OpenIddict.Abstractions;
namespace Volo.Abp.OpenIddict.Applications;
public interface IAbpApplicationManager : IOpenIddictApplicationManager
{
ValueTask<string> GetClientUriAsync(object application, CancellationToken cancellationToken = default);
ValueTask<string> GetLogoUriAsync(object application, CancellationToken cancellationToken = default);
}

12
modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/IAbpOpenIdApplicationStore.cs

@ -0,0 +1,12 @@
using System.Threading;
using System.Threading.Tasks;
using OpenIddict.Abstractions;
namespace Volo.Abp.OpenIddict.Applications;
public interface IAbpOpenIdApplicationStore : IOpenIddictApplicationStore<OpenIddictApplicationModel>
{
ValueTask<string> GetClientUriAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken = default);
ValueTask<string> GetLogoUriAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken = default);
}

10
modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplication.cs

@ -77,4 +77,14 @@ public class OpenIddictApplication : FullAuditedAggregateRoot<Guid>
/// Gets or sets the application type associated with the current application.
/// </summary>
public virtual string Type { get; set; }
/// <summary>
/// URI to further information about client.
/// </summary>
public string ClientUri { get; set; }
/// <summary>
/// URI to client logo.
/// </summary>
public string LogoUri { get; set; }
}

10
modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplicationExtensions.cs

@ -18,7 +18,9 @@ public static class OpenIddictApplicationExtensions
Properties = model.Properties,
RedirectUris = model.RedirectUris,
Requirements = model.Requirements,
Type = model.Type
Type = model.Type,
ClientUri = model.ClientUri,
LogoUri = model.LogoUri
};
foreach (var extraProperty in model.ExtraProperties)
@ -45,6 +47,8 @@ public static class OpenIddictApplicationExtensions
entity.RedirectUris = model.RedirectUris;
entity.Requirements = model.Requirements;
entity.Type = model.Type;
entity.ClientUri = model.ClientUri;
entity.LogoUri = model.LogoUri;
foreach (var extraProperty in model.ExtraProperties)
{
@ -75,7 +79,9 @@ public static class OpenIddictApplicationExtensions
Properties = entity.Properties,
RedirectUris = entity.RedirectUris,
Requirements = entity.Requirements,
Type = entity.Type
Type = entity.Type,
ClientUri = entity.ClientUri,
LogoUri = entity.LogoUri
};
foreach (var extraProperty in entity.ExtraProperties)

10
modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplicationModel.cs

@ -72,4 +72,14 @@ public class OpenIddictApplicationModel : ExtensibleObject
/// Gets or sets the application type associated with the current application.
/// </summary>
public virtual string Type { get; set; }
/// <summary>
/// URI to further information about client.
/// </summary>
public string ClientUri { get; set; }
/// <summary>
/// URI to client logo.
/// </summary>
public string LogoUri { get; set; }
}

11
modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/el.json

@ -0,0 +1,11 @@
{
"culture": "el",
"texts": {
"Permissions": "Δικαιώματα",
"OnlyProviderPermissons": "Μόνο δικαιώματα παρόχου",
"All": "Όλα",
"SelectAllInAllTabs": "Χορήγηση όλων των δικαιώματων",
"SelectAllInThisTab": "Επιλογή όλων",
"SaveWithoutAnyPermissionsWarningMessage": "Είστε βέβαιοι ότι θέλετε να αποθηκεύσετε χωρίς δικαιώματα;"
}
}

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

@ -5,6 +5,7 @@
"OnlyProviderPermissons": "Apenas este provedor",
"All": "Todos",
"SelectAllInAllTabs": "Conceder todas as permissões",
"SelectAllInThisTab": "Selecionar todos"
"SelectAllInThisTab": "Selecionar todos",
"SaveWithoutAnyPermissionsWarningMessage": "Tem certeza que deseja salvar sem nenhuma permissão?"
}
}

1
modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/DemoAppModule.cs

@ -96,6 +96,7 @@ public class DemoAppModule : AbpModule
options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi", "in"));
options.Languages.Add(new LanguageInfo("is", "is", "Icelandic", "is"));
options.Languages.Add(new LanguageInfo("it", "it", "Italiano", "it"));
options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά"));
});
Configure<AbpMultiTenancyOptions>(options =>

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

@ -0,0 +1,34 @@
{
"culture": "el",
"texts": {
"Settings": "Ρυθμίσεις",
"SuccessfullySaved": "Αποθηκεύτηκε με επιτυχία",
"Permission:SettingManagement": "Διαχείριση ρυθμίσεων",
"Permission:Emailing": "Αποστολή email",
"Permission:EmailingTest": "Αποστολή δοκιμαστικού email",
"SendTestEmail": "Αποστολή δοκιμαστικού email",
"SenderEmailAddress": "Διεύθυνση email αποστολέα",
"TargetEmailAddress": "Διεύθυνση email παραλήπτη",
"Subject": "Θέμα",
"Body": "Κείμενο",
"TestEmailSubject": "Δοκιμαστικό email {0}",
"TestEmailBody": "Δοκιμαστικό κείμενο email εδώ",
"SuccessfullySent": "Στάλθηκε με επιτυχία",
"Send": "Αποστολή",
"Menu:Emailing": "Αποστολή email",
"SmtpHost": "Διακομιστής",
"SmtpPort": "Πόρτα",
"SmtpUserName": "Όνομα χρήστη",
"SmtpPassword": "Κωδικός πρόσβασης",
"SmtpDomain": "Τομέας",
"SmtpEnableSsl": "Ενεργοποίηση ssl",
"SmtpUseDefaultCredentials": "Χρησιμοποιήστε προεπιλεγμένα διαπιστευτήρια",
"DefaultFromAddress": "Προεπιλεγμένη διεύθυνση αποστολέα",
"DefaultFromDisplayName": "Προεπιλεγμένο όνομα αποστολέα",
"Feature:SettingManagementGroup": "Διαχείριση ρυθμίσεων",
"Feature:SettingManagementEnable": "Ενεργοποίηση διαχείρισης ρυθμίσεων",
"Feature:SettingManagementEnableDescription": "Ενεργοποίηση συστήματος διαχείρισης ρυθμίσεων στην εφαρμογή.",
"Feature:AllowTenantsToChangeEmailSettings": "Επιτρέψτε στους μισθωτές να αλλάξουν τις ρυθμίσεις email.",
"Feature:AllowTenantsToChangeEmailSettingsDescription": "Επιτρέψτε στους μισθωτές να αλλάξουν τις ρυθμίσεις email."
}
}

10
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pt-BR.json

@ -5,6 +5,16 @@
"SuccessfullySaved": "Salvo com sucesso!",
"Permission:SettingManagement": "Gestão de Cenários",
"Permission:Emailing": "Enviando por e-mail",
"Permission:EmailingTest": "Teste de e-mail",
"SendTestEmail": "Enviar e-mail de teste",
"SenderEmailAddress": "E-mail remetente",
"TargetEmailAddress": "E-mail destinatário",
"Subject": "Título",
"Body": "Corpo",
"TestEmailSubject": "E-mail teste {0}",
"TestEmailBody": "Corpo de e-mail de teste aqui",
"SuccessfullySent": "Enviado com sucesso",
"Send": "Enviar",
"Menu:Emailing": "Enviando por e-mail",
"SmtpHost": "Hospedeiro",
"SmtpPort": "Porta",

23
modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/el.json

@ -0,0 +1,23 @@
{
"culture": "el",
"texts": {
"Menu:TenantManagement": "Διαχείριση ενοικιαστών",
"Tenants": "Ενοικιαστές",
"NewTenant": "Νέος Ενοικιαστής",
"TenantName": "Όνομα ενοικιαστή",
"DisplayName:TenantName": "Όνομα ενοικιαστή",
"TenantDeletionConfirmationMessage": "Ο μισθωτής '{0}' θα διαγραφεί. Το επιβεβαιώνεις;",
"ConnectionStrings": "Συμβολοσειρές σύνδεσης",
"DisplayName:DefaultConnectionString": "Προεπιλεγμένη συμβολοσειρά σύνδεσης",
"DisplayName:UseSharedDatabase": "Χρησιμοποιήστε την Κοινόχρηστη βάση δεδομένων",
"ManageHostFeatures": "Διαχείριση δυνατοτήτων του Οικοδεσπότη",
"Permission:TenantManagement": "Διαχείριση ενοικιαστών",
"Permission:Create": "Δημιουργία",
"Permission:Edit": "Επεξεργασία",
"Permission:Delete": "Διαγραφή",
"Permission:ManageConnectionStrings": "Διαχείριση συμβολοσειρών σύνδεσης",
"Permission:ManageFeatures": "Διαχείριση λειτουργιών",
"DisplayName:AdminEmailAddress": "Διεύθυνση email διαχειριστή",
"DisplayName:AdminPassword": "Κωδικός διαχειριστή"
}
}

4
modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/pt-BR.json

@ -7,8 +7,8 @@
"TenantName": "Inquilino",
"DisplayName:TenantName": "Inquilino",
"TenantDeletionConfirmationMessage": "Inquilino '{0}' será excluído. Tem certeza?",
"ConnectionStrings": "String de Conexão",
"DisplayName:DefaultConnectionString": "String de Conexão Padrão",
"ConnectionStrings": "Cadeia de Conexão",
"DisplayName:DefaultConnectionString": "Cadeia de Conexão Padrão",
"DisplayName:UseSharedDatabase": "Use o banco de dados compartilhado",
"ManageHostFeatures": "Gerenciar recursos do Host",
"Permission:TenantManagement": "Inquilinos",

1
modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/AbpVirtualFileExplorerDemoAppModule.cs

@ -30,6 +30,7 @@ public class AbpVirtualFileExplorerDemoAppModule : AbpModule
options.Languages.Add(new LanguageInfo("sk", "sk", "Slovak"));
options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe"));
options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文"));
options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά"));
});
}

14
modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Localization/Resources/el.json

@ -0,0 +1,14 @@
{
"culture": "el",
"texts": {
"VirtualFileExplorer": "Εικονικός Εξερευνητής Αρχείων",
"VirtualFileType": "Εικονικός τύπος αρχείου",
"Menu:VirtualFileExplorer": "Εικονικός εξερευνητής αρχείων",
"LastUpdateTime": "Ώρα τελευταίας ενημέρωσης",
"VirtualFileName": "Όνομα εικονικού αρχείου",
"FileContent": "Περιεχόμενο αρχείου",
"Size": "Μέγεθος",
"BackToRoot": "Επιστροφή στη ρίζα",
"EmptyFileInfoList": "Δεν υπάρχουν εικονικά αρχεία"
}
}

18
modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Localization/Resources/en.json

@ -1,14 +1,14 @@
{
"culture": "en",
"texts": {
"VirtualFileExplorer" : "Virtual file explorer",
"VirtualFileType" : "Virtual file type",
"Menu:VirtualFileExplorer" : "Virtual file explorer",
"LastUpdateTime" : "Last update time",
"VirtualFileName" : "Virtual file name",
"FileContent" : "File content",
"Size" : "Size",
"BackToRoot" : "Back to root",
"EmptyFileInfoList" : "There are no virtual files"
"VirtualFileExplorer": "Virtual file explorer",
"VirtualFileType": "Virtual file type",
"Menu:VirtualFileExplorer": "Virtual file explorer",
"LastUpdateTime": "Last update time",
"VirtualFileName": "Virtual file name",
"FileContent": "File content",
"Size": "Size",
"BackToRoot": "Back to root",
"EmptyFileInfoList": "There are no virtual files"
}
}

11
npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.ts

@ -62,7 +62,11 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit {
readonly!: boolean;
disabled!: boolean;
disabledFn = (data:PropData) => false;
get disabled() {
return this.disabledFn(this.data)
}
private readonly form: FormGroup;
@ -175,7 +179,10 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit {
if (options) this.options$ = options(this.data);
if (readonly) this.readonly = readonly(this.data);
if (disabled) this.disabled = disabled(this.data);
if (disabled) {
this.disabledFn = disabled;
}
if (validators) {
this.validators = validators(this.data);
this.setAsterisk();

1
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs

@ -216,6 +216,7 @@ public class MyProjectNameModule : AbpModule
options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文"));
options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch", "de"));
options.Languages.Add(new LanguageInfo("es", "es", "Español"));
options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά"));
});
Configure<AbpExceptionLocalizationOptions>(options =>

13
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220519051356_Initial.Designer.cs → templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220617083820_Initial.Designer.cs

@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore;
namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
{
[DbContext(typeof(MyProjectNameDbContext))]
[Migration("20220519051356_Initial")]
[Migration("20220617083820_Initial")]
partial class Initial
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@ -21,7 +21,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
.HasAnnotation("ProductVersion", "6.0.1")
.HasAnnotation("ProductVersion", "6.0.5")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
@ -598,7 +598,8 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
.HasColumnName("ExtraProperties");
b.Property<bool>("IsActive")
.HasColumnType("bit");
.HasColumnType("bit")
.HasColumnName("IsActive");
b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd()
@ -944,6 +945,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
b.Property<string>("ClientSecret")
.HasColumnType("nvarchar(max)");
b.Property<string>("ClientUri")
.HasColumnType("nvarchar(max)");
b.Property<string>("ConcurrencyStamp")
.IsConcurrencyToken()
.HasMaxLength(40)
@ -994,6 +998,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
b.Property<string>("LogoUri")
.HasColumnType("nvarchar(max)");
b.Property<string>("Permissions")
.HasColumnType("nvarchar(max)");

2
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220519051356_Initial.cs → templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220617083820_Initial.cs

@ -271,6 +271,8 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
RedirectUris = table.Column<string>(type: "nvarchar(max)", nullable: true),
Requirements = table.Column<string>(type: "nvarchar(max)", nullable: true),
Type = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
ClientUri = table.Column<string>(type: "nvarchar(max)", nullable: true),
LogoUri = table.Column<string>(type: "nvarchar(max)", nullable: true),
ExtraProperties = table.Column<string>(type: "nvarchar(max)", nullable: true),
ConcurrencyStamp = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),

11
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/MyProjectNameDbContextModelSnapshot.cs

@ -19,7 +19,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
.HasAnnotation("ProductVersion", "6.0.1")
.HasAnnotation("ProductVersion", "6.0.5")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
@ -596,7 +596,8 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
.HasColumnName("ExtraProperties");
b.Property<bool>("IsActive")
.HasColumnType("bit");
.HasColumnType("bit")
.HasColumnName("IsActive");
b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd()
@ -942,6 +943,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
b.Property<string>("ClientSecret")
.HasColumnType("nvarchar(max)");
b.Property<string>("ClientUri")
.HasColumnType("nvarchar(max)");
b.Property<string>("ConcurrencyStamp")
.IsConcurrencyToken()
.HasMaxLength(40)
@ -992,6 +996,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
b.Property<string>("LogoUri")
.HasColumnType("nvarchar(max)");
b.Property<string>("Permissions")
.HasColumnType("nvarchar(max)");

1
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs

@ -217,6 +217,7 @@ public class MyProjectNameModule : AbpModule
options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文"));
options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch", "de"));
options.Languages.Add(new LanguageInfo("es", "es", "Español"));
options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά"));
});
Configure<AbpExceptionLocalizationOptions>(options =>

1
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Data/OpenIddictDataSeedContributor.cs

@ -197,6 +197,7 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
grantType == OpenIddictConstants.GrantTypes.DeviceCode)
{
application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Token);
application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Revocation);
}
if (grantType == OpenIddictConstants.GrantTypes.ClientCredentials)

1
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyProjectNameModule.cs

@ -200,6 +200,7 @@ public class MyProjectNameModule : AbpModule
options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文"));
options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch", "de"));
options.Languages.Add(new LanguageInfo("es", "es", "Español"));
options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά"));
});
Configure<AbpExceptionLocalizationOptions>(options =>

1
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Data/OpenIddictDataSeedContributor.cs

@ -197,6 +197,7 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
grantType == OpenIddictConstants.GrantTypes.DeviceCode)
{
application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Token);
application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Revocation);
}
if (grantType == OpenIddictConstants.GrantTypes.ClientCredentials)

13
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220519051355_Initial.Designer.cs → templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220617083539_Initial.Designer.cs

@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore;
namespace MyCompanyName.MyProjectName.Host.Migrations
{
[DbContext(typeof(MyProjectNameDbContext))]
[Migration("20220519051355_Initial")]
[Migration("20220617083539_Initial")]
partial class Initial
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@ -21,7 +21,7 @@ namespace MyCompanyName.MyProjectName.Host.Migrations
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
.HasAnnotation("ProductVersion", "6.0.1")
.HasAnnotation("ProductVersion", "6.0.5")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
@ -598,7 +598,8 @@ namespace MyCompanyName.MyProjectName.Host.Migrations
.HasColumnName("ExtraProperties");
b.Property<bool>("IsActive")
.HasColumnType("bit");
.HasColumnType("bit")
.HasColumnName("IsActive");
b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd()
@ -944,6 +945,9 @@ namespace MyCompanyName.MyProjectName.Host.Migrations
b.Property<string>("ClientSecret")
.HasColumnType("nvarchar(max)");
b.Property<string>("ClientUri")
.HasColumnType("nvarchar(max)");
b.Property<string>("ConcurrencyStamp")
.IsConcurrencyToken()
.HasMaxLength(40)
@ -994,6 +998,9 @@ namespace MyCompanyName.MyProjectName.Host.Migrations
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
b.Property<string>("LogoUri")
.HasColumnType("nvarchar(max)");
b.Property<string>("Permissions")
.HasColumnType("nvarchar(max)");

2
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220519051355_Initial.cs → templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220617083539_Initial.cs

@ -271,6 +271,8 @@ namespace MyCompanyName.MyProjectName.Host.Migrations
RedirectUris = table.Column<string>(type: "nvarchar(max)", nullable: true),
Requirements = table.Column<string>(type: "nvarchar(max)", nullable: true),
Type = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
ClientUri = table.Column<string>(type: "nvarchar(max)", nullable: true),
LogoUri = table.Column<string>(type: "nvarchar(max)", nullable: true),
ExtraProperties = table.Column<string>(type: "nvarchar(max)", nullable: true),
ConcurrencyStamp = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),

11
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/MyProjectNameDbContextModelSnapshot.cs

@ -19,7 +19,7 @@ namespace MyCompanyName.MyProjectName.Host.Migrations
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
.HasAnnotation("ProductVersion", "6.0.1")
.HasAnnotation("ProductVersion", "6.0.5")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
@ -596,7 +596,8 @@ namespace MyCompanyName.MyProjectName.Host.Migrations
.HasColumnName("ExtraProperties");
b.Property<bool>("IsActive")
.HasColumnType("bit");
.HasColumnType("bit")
.HasColumnName("IsActive");
b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd()
@ -942,6 +943,9 @@ namespace MyCompanyName.MyProjectName.Host.Migrations
b.Property<string>("ClientSecret")
.HasColumnType("nvarchar(max)");
b.Property<string>("ClientUri")
.HasColumnType("nvarchar(max)");
b.Property<string>("ConcurrencyStamp")
.IsConcurrencyToken()
.HasMaxLength(40)
@ -992,6 +996,9 @@ namespace MyCompanyName.MyProjectName.Host.Migrations
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
b.Property<string>("LogoUri")
.HasColumnType("nvarchar(max)");
b.Property<string>("Permissions")
.HasColumnType("nvarchar(max)");

1
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyProjectNameModule.cs

@ -202,6 +202,7 @@ public class MyProjectNameModule : AbpModule
options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文"));
options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch", "de"));
options.Languages.Add(new LanguageInfo("es", "es", "Español"));
options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά"));
});
Configure<AbpExceptionLocalizationOptions>(options =>

1
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyProjectNameModule.cs

@ -204,6 +204,7 @@ public class MyProjectNameModule : AbpModule
options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文"));
options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch", "de"));
options.Languages.Add(new LanguageInfo("es", "es", "Español"));
options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά"));
});
Configure<AbpExceptionLocalizationOptions>(options =>

13
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220519051401_Initial.Designer.cs → templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220617083649_Initial.Designer.cs

@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore;
namespace MyCompanyName.MyProjectName.Mvc.Migrations
{
[DbContext(typeof(MyProjectNameDbContext))]
[Migration("20220519051401_Initial")]
[Migration("20220617083649_Initial")]
partial class Initial
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@ -21,7 +21,7 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
.HasAnnotation("ProductVersion", "6.0.1")
.HasAnnotation("ProductVersion", "6.0.5")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
@ -598,7 +598,8 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations
.HasColumnName("ExtraProperties");
b.Property<bool>("IsActive")
.HasColumnType("bit");
.HasColumnType("bit")
.HasColumnName("IsActive");
b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd()
@ -944,6 +945,9 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations
b.Property<string>("ClientSecret")
.HasColumnType("nvarchar(max)");
b.Property<string>("ClientUri")
.HasColumnType("nvarchar(max)");
b.Property<string>("ConcurrencyStamp")
.IsConcurrencyToken()
.HasMaxLength(40)
@ -994,6 +998,9 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
b.Property<string>("LogoUri")
.HasColumnType("nvarchar(max)");
b.Property<string>("Permissions")
.HasColumnType("nvarchar(max)");

2
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220519051401_Initial.cs → templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220617083649_Initial.cs

@ -271,6 +271,8 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations
RedirectUris = table.Column<string>(type: "nvarchar(max)", nullable: true),
Requirements = table.Column<string>(type: "nvarchar(max)", nullable: true),
Type = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
ClientUri = table.Column<string>(type: "nvarchar(max)", nullable: true),
LogoUri = table.Column<string>(type: "nvarchar(max)", nullable: true),
ExtraProperties = table.Column<string>(type: "nvarchar(max)", nullable: true),
ConcurrencyStamp = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),

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

Loading…
Cancel
Save