diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json
index 6fb597d335..22ef0df894 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json
+++ b/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}]"
}
}
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json
index f2c0f45a95..0fdcd10747 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json
+++ b/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.
After checking your information, we will activate your license. Once your license is activated, we will send an email to {0}. Don't worry, this process won't take long!",
+ "ActivationRequirement": "You are last one step away from starting your trial.
After checking your information, we will activate your license. Once your license is activated, we will send an email to {0}. 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 Free Trial",
"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",
diff --git a/docs/en/Authorization.md b/docs/en/Authorization.md
index 199b73d1c8..869c49a52a 100644
--- a/docs/en/Authorization.md
+++ b/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
diff --git a/docs/en/Startup-Templates/Application.md b/docs/en/Startup-Templates/Application.md
index 028801c634..ec89f479ab 100644
--- a/docs/en/Startup-Templates/Application.md
+++ b/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:
diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/el.json b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/el.json
new file mode 100644
index 0000000000..31e85eadb7
--- /dev/null
+++ b/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": "Μη επιλεγμένο"
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Localization/el.json b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Localization/el.json
new file mode 100644
index 0000000000..d95477f72d
--- /dev/null
+++ b/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}"
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs b/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs
index f777eb2cdc..500a3dfd86 100644
--- a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs
+++ b/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);
}
diff --git a/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs b/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs
index d488da98a9..8c72e7f023 100644
--- a/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs
+++ b/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)
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/LIbs/InstallLibsService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/LIbs/InstallLibsService.cs
index 94bd0383f6..68817cef07 100644
--- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/LIbs/InstallLibsService.cs
+++ b/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);
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackagePreviewSwitcher.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackagePreviewSwitcher.cs
index 0673606572..03fcf65036 100644
--- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackagePreviewSwitcher.cs
+++ b/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 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)
diff --git a/framework/src/Volo.Abp.Core/System/AbpStringExtensions.cs b/framework/src/Volo.Abp.Core/System/AbpStringExtensions.cs
index 0e71df6b59..c7e1bef3b2 100644
--- a/framework/src/Volo.Abp.Core/System/AbpStringExtensions.cs
+++ b/framework/src/Volo.Abp.Core/System/AbpStringExtensions.cs
@@ -46,6 +46,7 @@ public static class AbpStringExtensions
///
/// Indicates whether this string is null or an System.String.Empty string.
///
+ [ContractAnnotation("str:null => true")]
public static bool IsNullOrEmpty(this string str)
{
return string.IsNullOrEmpty(str);
@@ -54,6 +55,7 @@ public static class AbpStringExtensions
///
/// indicates whether this string is null, empty, or consists only of white-space characters.
///
+ [ContractAnnotation("str:null => true")]
public static bool IsNullOrWhiteSpace(this string str)
{
return string.IsNullOrWhiteSpace(str);
@@ -117,6 +119,7 @@ public static class AbpStringExtensions
/// The string.
/// one or more postfix.
/// Modified string or the same string if it has not any of given postfixes
+ [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
/// String comparison type
/// one or more postfix.
/// Modified string or the same string if it has not any of given postfixes
+ [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
/// The string.
/// one or more prefix.
/// Modified string or the same string if it has not any of given prefixes
+ [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
/// String comparison type
/// one or more prefix.
/// Modified string or the same string if it has not any of given prefixes
+ [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
/// set true to use current culture. Otherwise, invariant culture will be used.
/// set true to if you want to convert 'XYZ' to 'xyz'.
/// camelCase of the string
+ [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
///
/// String to convert.
/// set true to use current culture. Otherwise, invariant culture will be used.
+ [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
///
/// String to convert.
/// set true to use current culture. Otherwise, invariant culture will be used.
+ [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
/// String to convert
/// set true to use current culture. Otherwise, invariant culture will be used.
/// PascalCase of the string
+ [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
///
/// Gets a substring of a string from beginning of the string if it exceeds maximum length.
///
- /// Thrown if is null
+ [ContractAnnotation("null <= str:null")]
public static string Truncate(this string str, int maxLength)
{
if (str == null)
@@ -475,7 +485,7 @@ public static class AbpStringExtensions
///
/// Gets a substring of a string from Ending of the string if it exceeds maximum length.
///
- /// Thrown if is null
+ [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.
///
/// Thrown if is null
+ [ContractAnnotation("null <= str:null")]
public static string TruncateWithPostfix(this string str, int maxLength, string postfix)
{
if (str == null)
diff --git a/framework/src/Volo.Abp.Core/System/Collections/Generic/AbpCollectionExtensions.cs b/framework/src/Volo.Abp.Core/System/Collections/Generic/AbpCollectionExtensions.cs
index 4df3010aba..83fbf59629 100644
--- a/framework/src/Volo.Abp.Core/System/Collections/Generic/AbpCollectionExtensions.cs
+++ b/framework/src/Volo.Abp.Core/System/Collections/Generic/AbpCollectionExtensions.cs
@@ -12,6 +12,7 @@ public static class AbpCollectionExtensions
///
/// Checks whatever given collection object is null or has no item.
///
+ [ContractAnnotation("source:null => true")]
public static bool IsNullOrEmpty([CanBeNull] this ICollection source)
{
return source == null || source.Count <= 0;
diff --git a/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Localization/Resources/AbpDdd/el.json b/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Localization/Resources/AbpDdd/el.json
new file mode 100644
index 0000000000..cc55dfff0f
--- /dev/null
+++ b/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} στην πλευρά του διακομιστή για να επιτρέψετε περισσότερα αποτελέσματα."
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/el.json b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/el.json
new file mode 100644
index 0000000000..42208aae0c
--- /dev/null
+++ b/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"
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/AbpEventBusRebusModule.cs b/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/AbpEventBusRebusModule.cs
index e5c045f316..351f575f46 100644
--- a/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/AbpEventBusRebusModule.cs
+++ b/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()
.Initialize();
+
+ context.ServiceProvider.UseRebus();
}
}
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/el.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/el.json
new file mode 100644
index 0000000000..3b51a842ed
--- /dev/null
+++ b/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": "Λυπούμαστε, δεν υπάρχει τίποτα σε αυτή τη διεύθυνση."
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Features/Volo/Abp/Features/Localization/el.json b/framework/src/Volo.Abp.Features/Volo/Abp/Features/Localization/el.json
new file mode 100644
index 0000000000..9fd8002de4
--- /dev/null
+++ b/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}"
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.GlobalFeatures/Volo/Abp/GlobalFeatures/Localization/el.json b/framework/src/Volo.Abp.GlobalFeatures/Volo/Abp/GlobalFeatures/Localization/el.json
new file mode 100644
index 0000000000..0dd828cae6
--- /dev/null
+++ b/framework/src/Volo.Abp.GlobalFeatures/Volo/Abp/GlobalFeatures/Localization/el.json
@@ -0,0 +1,6 @@
+{
+ "culture": "el",
+ "texts": {
+ "Volo.GlobalFeature:010001": "Η υπηρεσία '{ServiceName}' απαιτεί την ενεργοποίηση της λειτουργίας '{GlobalFeatureName}'"
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Ldap/Volo/Abp/Ldap/Localization/el.json b/framework/src/Volo.Abp.Ldap/Volo/Abp/Ldap/Localization/el.json
new file mode 100644
index 0000000000..d0389c90f0
--- /dev/null
+++ b/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": "Κωδικός Πρόσβασης"
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/el.json b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/el.json
new file mode 100644
index 0000000000..55b5badc0b
--- /dev/null
+++ b/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": "Η προεπιλεγμένη γλώσσα της εφαρμογής."
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Localization/el.json b/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Localization/el.json
new file mode 100644
index 0000000000..510a32415b
--- /dev/null
+++ b/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": "Ζώνη Ώρας εφαρμογής"
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Localization/Resource/el.json b/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Localization/Resource/el.json
new file mode 100644
index 0000000000..4730b94b3a
--- /dev/null
+++ b/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Localization/Resource/el.json
@@ -0,0 +1,6 @@
+{
+ "culture": "el",
+ "texts": {
+ "Menu:Administration": "Διαχείριση"
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/el.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/el.json
new file mode 100644
index 0000000000..6bba8ee140
--- /dev/null
+++ b/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": "Διαχείριση Λογαριασμού"
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pt-BR.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pt-BR.json
index e03a77f7fa..aa915a704f 100644
--- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pt-BR.json
+++ b/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",
diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/el.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/el.json
new file mode 100644
index 0000000000..e2df0315f3
--- /dev/null
+++ b/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.": "Αυτό το πεδίο δεν είναι έγκυρο."
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/pt-BR.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/pt-BR.json
index 2af525b373..4adbd81e80 100644
--- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/pt-BR.json
+++ b/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."
}
}
\ No newline at end of file
diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs
index 2a48bbc8e7..2e8d8c4689 100644
--- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs
+++ b/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(options =>
diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/Resource/el.json b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/Resource/el.json
new file mode 100644
index 0000000000..677383e272
--- /dev/null
+++ b/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": "Αξία Ένα"
+ }
+}
\ No newline at end of file
diff --git a/framework/test/Volo.Abp.Emailing.Tests/Volo/Abp/Emailing/Localization/el.json b/framework/test/Volo.Abp.Emailing.Tests/Volo/Abp/Emailing/Localization/el.json
new file mode 100644
index 0000000000..13960bad4a
--- /dev/null
+++ b/framework/test/Volo.Abp.Emailing.Tests/Volo/Abp/Emailing/Localization/el.json
@@ -0,0 +1,6 @@
+{
+ "culture": "el",
+ "texts": {
+ "hello": "Γειά"
+ }
+}
\ No newline at end of file
diff --git a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/Localization/el.json b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/Localization/el.json
new file mode 100644
index 0000000000..3b4e64fce2
--- /dev/null
+++ b/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}"
+ }
+}
\ No newline at end of file
diff --git a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/Localization/pt-BR.json b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/Localization/pt-BR.json
index a28533e079..1de3028774 100644
--- a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/Localization/pt-BR.json
+++ b/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}"
}
}
\ No newline at end of file
diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/CountryNames/el.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/CountryNames/el.json
new file mode 100644
index 0000000000..9dcb6bf43c
--- /dev/null
+++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/CountryNames/el.json
@@ -0,0 +1,7 @@
+{
+ "culture": "el",
+ "texts": {
+ "USA": "Ηνωμένες πολιτείες Αμερικής",
+ "Brazil": "Βραζιλία"
+ }
+}
\ No newline at end of file
diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/el.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/el.json
new file mode 100644
index 0000000000..a011419c87
--- /dev/null
+++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/el.json
@@ -0,0 +1,7 @@
+{
+ "culture": "el",
+ "texts": {
+ "ThisFieldIsRequired": "Αυτό το πεδίο είναι υποχρεωτικό",
+ "MaxLenghtErrorMessage": "Αυτό το πεδίο μπορεί να έχει το μέγιστο '{0}' χαρακτήρες"
+ }
+}
\ No newline at end of file
diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/el.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/el.json
new file mode 100644
index 0000000000..b4753cd95a
--- /dev/null
+++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/el.json
@@ -0,0 +1,11 @@
+{
+ "culture": "el",
+ "texts": {
+ "Hello {0}.": "Γειά σου {0}.",
+ "Car": "Αυτοκίνητο",
+ "CarPlural": "Αυτοκίνητα",
+ "MaxLenghtErrorMessage": "Αυτό το πεδίο μπορεί να έχει το μέγιστο '{0}' χαρακτήρες",
+ "Universe": "Σύμπαν",
+ "FortyTwo": "Σαράντα δύο"
+ }
+}
\ No newline at end of file
diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/SourceExt/el.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/SourceExt/el.json
new file mode 100644
index 0000000000..d4ce10d116
--- /dev/null
+++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/SourceExt/el.json
@@ -0,0 +1,6 @@
+{
+ "culture": "el",
+ "texts": {
+ "SeeYou": "Τα λέμε"
+ }
+}
\ No newline at end of file
diff --git a/framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/Localization/el.json b/framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/Localization/el.json
new file mode 100644
index 0000000000..bf80489ba9
--- /dev/null
+++ b/framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/Localization/el.json
@@ -0,0 +1,7 @@
+{
+ "culture": "el",
+ "texts": {
+ "HelloText": "Καλησπέρα {0}",
+ "HowAreYou": "Πώς είσαι;"
+ }
+}
\ No newline at end of file
diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/el.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/el.json
new file mode 100644
index 0000000000..e5af66d6fe
--- /dev/null
+++ b/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": "Δεν έχετε πρόσβαση σε αυτόν τον πόρο."
+ }
+}
\ No newline at end of file
diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/en.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/en.json
index 17f05fe29b..d5f881e365 100644
--- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/en.json
+++ b/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."
}
-}
+}
\ No newline at end of file
diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/pt-BR.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/pt-BR.json
index b590b50d8a..71adf7be31 100644
--- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/pt-BR.json
+++ b/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.",
diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/Localization/el.json b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/Localization/el.json
new file mode 100644
index 0000000000..2511d4c76d
--- /dev/null
+++ b/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": "Ο λογαριασμός μου"
+ }
+}
\ No newline at end of file
diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/el.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/el.json
new file mode 100644
index 0000000000..762a50eba3
--- /dev/null
+++ b/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": "Είστε βέβαιοι ότι θέλετε να διαγράψετε την προσωρινή μνήμη;"
+ }
+}
\ No newline at end of file
diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/en.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/en.json
index 2219aa9fcd..9823d30f73 100644
--- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/en.json
+++ b/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?"
}
-}
+}
\ No newline at end of file
diff --git a/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/CmsKitHttpApiHostModule.cs b/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/CmsKitHttpApiHostModule.cs
index d3ea4874a7..01c8464477 100644
--- a/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/CmsKitHttpApiHostModule.cs
+++ b/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)
diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/CmsKitIdentityServerModule.cs b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/CmsKitIdentityServerModule.cs
index 62637998be..326e4673b4 100644
--- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/CmsKitIdentityServerModule.cs
+++ b/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(options =>
diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/CmsKitWebUnifiedModule.cs b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/CmsKitWebUnifiedModule.cs
index 3a14141c01..9a6be48e5f 100644
--- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/CmsKitWebUnifiedModule.cs
+++ b/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(options =>
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/el.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/el.json
new file mode 100644
index 0000000000..222cbe0fbd
--- /dev/null
+++ b/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": "Markdown 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": "Γραμμή γρήγορης πλοήγησης σε αναρτήσεις ιστολογίου"
+ }
+}
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json
index 7b63218493..6926fdb771 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json
+++ b/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"
}
-}
+}
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/pt-BR.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/pt-BR.json
index 2aa9c1b768..5ec2a64799 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/pt-BR.json
+++ b/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": "Markdown 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"
}
}
\ No newline at end of file
diff --git a/modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/el.json b/modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/el.json
new file mode 100644
index 0000000000..40f12323dd
--- /dev/null
+++ b/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": "Κανένα έργο!"
+ }
+}
\ No newline at end of file
diff --git a/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs b/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs
index 7928c9dace..0d4ba3b365 100644
--- a/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs
+++ b/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()
diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/el.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/el.json
new file mode 100644
index 0000000000..d44ba001db
--- /dev/null
+++ b/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": "Χρόνος προσωρινής αποθήκευσης"
+ }
+}
\ No newline at end of file
diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/en.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/en.json
index fa6a130c94..d19bef7adf 100644
--- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/en.json
+++ b/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"
}
-}
+}
\ No newline at end of file
diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/pt-BR.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/pt-BR.json
index 98447e6427..7daa4964b3 100644
--- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/pt-BR.json
+++ b/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",
diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/el.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/el.json
new file mode 100644
index 0000000000..40ac3b32ca
--- /dev/null
+++ b/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": "Αποτελέσματα αναζήτησης"
+ }
+}
\ No newline at end of file
diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en.json
index 62913fa806..bc5c7cf826 100644
--- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en.json
+++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en.json
@@ -38,4 +38,4 @@
"Search": "Search",
"SearchResults": "Search Results"
}
-}
+}
\ No newline at end of file
diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/pt-BR.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/pt-BR.json
index 1009a2a90e..ec0e91eb56 100644
--- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/pt-BR.json
+++ b/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"
}
diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/el.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/el.json
new file mode 100644
index 0000000000..6e5529f2cd
--- /dev/null
+++ b/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} δεν ειναι έγκυρη!"
+ }
+}
\ No newline at end of file
diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/pt-BR.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/pt-BR.json
index f87f7ae811..a50ec6d471 100644
--- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/pt-BR.json
+++ b/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!"
diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/el.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/el.json
new file mode 100644
index 0000000000..f00493c329
--- /dev/null
+++ b/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 μπορεί να ενημερωθεί από τον χρήστη."
+ }
+}
\ No newline at end of file
diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/en.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/en.json
index d0485b1e93..97d5bbcd75 100644
--- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/en.json
+++ b/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."
}
-}
+}
\ No newline at end of file
diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/pt-BR.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/pt-BR.json
index 1701a17613..23befda585 100644
--- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/pt-BR.json
+++ b/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."
diff --git a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/LocalizationExtensions/el.json b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/LocalizationExtensions/el.json
new file mode 100644
index 0000000000..70ef08889e
--- /dev/null
+++ b/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": "Ο κωδικός πρόσβασης πρέπει να περιέχει τουλάχιστον έναν μη αλφαριθμητικό χαρακτήρα."
+ }
+}
\ No newline at end of file
diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/el.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/el.json
new file mode 100644
index 0000000000..246db314c7
--- /dev/null
+++ b/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": "Ο χρήστης-στόχος δεν είναι συνδεδεμένος με εσάς!"
+ }
+}
\ No newline at end of file
diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/el.json b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/el.json
new file mode 100644
index 0000000000..de0b8ec150
--- /dev/null
+++ b/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": "Είστε βέβαιοι ότι θέλετε να αποσυνδεθείτε;"
+ }
+}
\ No newline at end of file
diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/pt-BR.json b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/pt-BR.json
new file mode 100644
index 0000000000..ebcf57b00e
--- /dev/null
+++ b/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?"
+ }
+}
\ No newline at end of file
diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/AbpOpenIddictDomainModule.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/AbpOpenIddictDomainModule.cs
index 16c3ab49c5..428f5a7062 100644
--- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/AbpOpenIddictDomainModule.cs
+++ b/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()
.AddTokenStore();
+ builder.ReplaceApplicationManager(typeof(AbpApplicationManager));
+
+ builder.Services.TryAddScoped(provider => (IAbpApplicationManager)provider.GetRequiredService());
+
services.ExecutePreConfiguredActions(builder);
});
diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpApplicationDescriptor.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpApplicationDescriptor.cs
new file mode 100644
index 0000000000..3b5a4fc247
--- /dev/null
+++ b/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
+{
+ ///
+ /// URI to further information about client.
+ ///
+ public string ClientUri { get; set; }
+
+ ///
+ /// URI to client logo.
+ ///
+ public string LogoUri { get; set; }
+}
diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpApplicationManager.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpApplicationManager.cs
new file mode 100644
index 0000000000..b205f60be2
--- /dev/null
+++ b/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, IAbpApplicationManager
+{
+ public AbpApplicationManager(
+ [NotNull] IOpenIddictApplicationCache cache,
+ [NotNull] ILogger logger,
+ [NotNull] IOptionsMonitor 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 GetClientUriAsync(object application, CancellationToken cancellationToken = default)
+ {
+ Check.NotNull(application, nameof(application));
+ Check.AssignableTo(application.GetType(), nameof(application));
+
+ return await Store.As().GetClientUriAsync(application.As(), cancellationToken);
+ }
+
+ public virtual async ValueTask GetLogoUriAsync(object application, CancellationToken cancellationToken = default)
+ {
+ Check.NotNull(application, nameof(application));
+ Check.AssignableTo(application.GetType(), nameof(application));
+
+ return await Store.As().GetLogoUriAsync(application.As(), cancellationToken);
+ }
+}
diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpOpenIddictApplicationStore.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpOpenIddictApplicationStore.cs
index 35c37bb657..1f740ecfcd 100644
--- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpOpenIddictApplicationStore.cs
+++ b/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, IOpenIddictApplicationStore
+public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase, IAbpOpenIdApplicationStore
{
protected IOpenIddictTokenRepository TokenRepository { get; }
@@ -44,7 +43,7 @@ public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase GetClientUriAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken = default)
+ {
+ Check.NotNull(application, nameof(application));
+
+ return new ValueTask(application.ClientUri);
+ }
+
+ public virtual ValueTask GetLogoUriAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken = default)
+ {
+ Check.NotNull(application, nameof(application));
+
+ return new ValueTask(application.LogoUri);
+ }
}
diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/IAbpApplicationManager.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/IAbpApplicationManager.cs
new file mode 100644
index 0000000000..1f12a9d088
--- /dev/null
+++ b/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 GetClientUriAsync(object application, CancellationToken cancellationToken = default);
+
+ ValueTask GetLogoUriAsync(object application, CancellationToken cancellationToken = default);
+}
diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/IAbpOpenIdApplicationStore.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/IAbpOpenIdApplicationStore.cs
new file mode 100644
index 0000000000..ca2cd50102
--- /dev/null
+++ b/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
+{
+ ValueTask GetClientUriAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken = default);
+
+ ValueTask GetLogoUriAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken = default);
+}
diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplication.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplication.cs
index 6ef1fea798..6098f67392 100644
--- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplication.cs
+++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplication.cs
@@ -77,4 +77,14 @@ public class OpenIddictApplication : FullAuditedAggregateRoot
/// Gets or sets the application type associated with the current application.
///
public virtual string Type { get; set; }
+
+ ///
+ /// URI to further information about client.
+ ///
+ public string ClientUri { get; set; }
+
+ ///
+ /// URI to client logo.
+ ///
+ public string LogoUri { get; set; }
}
diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplicationExtensions.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplicationExtensions.cs
index 8f492efe06..87ef747f7b 100644
--- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplicationExtensions.cs
+++ b/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)
diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplicationModel.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplicationModel.cs
index 762099cc89..ff13ef2355 100644
--- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplicationModel.cs
+++ b/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.
///
public virtual string Type { get; set; }
+
+ ///
+ /// URI to further information about client.
+ ///
+ public string ClientUri { get; set; }
+
+ ///
+ /// URI to client logo.
+ ///
+ public string LogoUri { get; set; }
}
diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/el.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/el.json
new file mode 100644
index 0000000000..2982e74a7e
--- /dev/null
+++ b/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": "Είστε βέβαιοι ότι θέλετε να αποθηκεύσετε χωρίς δικαιώματα;"
+ }
+}
\ No newline at end of file
diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/pt-BR.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/pt-BR.json
index ac1a771466..c70a1b190b 100644
--- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/pt-BR.json
+++ b/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?"
}
}
\ No newline at end of file
diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/DemoAppModule.cs b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/DemoAppModule.cs
index d6eab1f069..cb867a540e 100644
--- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/DemoAppModule.cs
+++ b/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(options =>
diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/el.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/el.json
new file mode 100644
index 0000000000..a8f44b4bbb
--- /dev/null
+++ b/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."
+ }
+}
\ No newline at end of file
diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pt-BR.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pt-BR.json
index 27e0cf58d7..4237afe6ea 100644
--- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pt-BR.json
+++ b/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",
diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/el.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/el.json
new file mode 100644
index 0000000000..026bcb0b76
--- /dev/null
+++ b/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": "Κωδικός διαχειριστή"
+ }
+}
\ No newline at end of file
diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/pt-BR.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/pt-BR.json
index 672d2c49ad..6f43740161 100644
--- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/pt-BR.json
+++ b/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",
diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/AbpVirtualFileExplorerDemoAppModule.cs b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/AbpVirtualFileExplorerDemoAppModule.cs
index b55d7fd425..5c7cbdff35 100644
--- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/AbpVirtualFileExplorerDemoAppModule.cs
+++ b/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", "Ελληνικά"));
});
}
diff --git a/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Localization/Resources/el.json b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Localization/Resources/el.json
new file mode 100644
index 0000000000..cdfd2bb331
--- /dev/null
+++ b/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": "Δεν υπάρχουν εικονικά αρχεία"
+ }
+}
\ No newline at end of file
diff --git a/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Localization/Resources/en.json b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Localization/Resources/en.json
index dceede4439..6b794bf791 100644
--- a/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Localization/Resources/en.json
+++ b/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"
}
}
diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.ts b/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.ts
index b022f7e35f..fa679d3dbd 100644
--- a/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.ts
+++ b/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();
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs
index 5c7a409754..8edcb2b6c6 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs
+++ b/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(options =>
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220519051356_Initial.Designer.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220617083820_Initial.Designer.cs
similarity index 99%
rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220519051356_Initial.Designer.cs
rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220617083820_Initial.Designer.cs
index 423841ae21..9e1a8f9cd8 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220519051356_Initial.Designer.cs
+++ b/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("IsActive")
- .HasColumnType("bit");
+ .HasColumnType("bit")
+ .HasColumnName("IsActive");
b.Property("IsDeleted")
.ValueGeneratedOnAdd()
@@ -944,6 +945,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
b.Property("ClientSecret")
.HasColumnType("nvarchar(max)");
+ b.Property("ClientUri")
+ .HasColumnType("nvarchar(max)");
+
b.Property("ConcurrencyStamp")
.IsConcurrencyToken()
.HasMaxLength(40)
@@ -994,6 +998,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
+ b.Property("LogoUri")
+ .HasColumnType("nvarchar(max)");
+
b.Property("Permissions")
.HasColumnType("nvarchar(max)");
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220519051356_Initial.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220617083820_Initial.cs
similarity index 99%
rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220519051356_Initial.cs
rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220617083820_Initial.cs
index 906d908cb4..85d36d8b57 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220519051356_Initial.cs
+++ b/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(type: "nvarchar(max)", nullable: true),
Requirements = table.Column(type: "nvarchar(max)", nullable: true),
Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true),
+ ClientUri = table.Column(type: "nvarchar(max)", nullable: true),
+ LogoUri = table.Column(type: "nvarchar(max)", nullable: true),
ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true),
ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true),
CreationTime = table.Column(type: "datetime2", nullable: false),
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/MyProjectNameDbContextModelSnapshot.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/MyProjectNameDbContextModelSnapshot.cs
index cbb2af9f96..0a32c8664e 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/MyProjectNameDbContextModelSnapshot.cs
+++ b/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("IsActive")
- .HasColumnType("bit");
+ .HasColumnType("bit")
+ .HasColumnName("IsActive");
b.Property("IsDeleted")
.ValueGeneratedOnAdd()
@@ -942,6 +943,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
b.Property("ClientSecret")
.HasColumnType("nvarchar(max)");
+ b.Property("ClientUri")
+ .HasColumnType("nvarchar(max)");
+
b.Property("ConcurrencyStamp")
.IsConcurrencyToken()
.HasMaxLength(40)
@@ -992,6 +996,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
+ b.Property("LogoUri")
+ .HasColumnType("nvarchar(max)");
+
b.Property("Permissions")
.HasColumnType("nvarchar(max)");
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs
index f43087b6f6..72203cef02 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs
+++ b/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(options =>
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Data/OpenIddictDataSeedContributor.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Data/OpenIddictDataSeedContributor.cs
index c7e2925aa5..23317f8aaf 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Data/OpenIddictDataSeedContributor.cs
+++ b/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)
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyProjectNameModule.cs
index f961dd9172..62c14d681a 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyProjectNameModule.cs
+++ b/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(options =>
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Data/OpenIddictDataSeedContributor.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Data/OpenIddictDataSeedContributor.cs
index c7e2925aa5..23317f8aaf 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Data/OpenIddictDataSeedContributor.cs
+++ b/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)
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220519051355_Initial.Designer.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220617083539_Initial.Designer.cs
similarity index 99%
rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220519051355_Initial.Designer.cs
rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220617083539_Initial.Designer.cs
index 17e18cfdaf..5b55ca75a9 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220519051355_Initial.Designer.cs
+++ b/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("IsActive")
- .HasColumnType("bit");
+ .HasColumnType("bit")
+ .HasColumnName("IsActive");
b.Property("IsDeleted")
.ValueGeneratedOnAdd()
@@ -944,6 +945,9 @@ namespace MyCompanyName.MyProjectName.Host.Migrations
b.Property("ClientSecret")
.HasColumnType("nvarchar(max)");
+ b.Property("ClientUri")
+ .HasColumnType("nvarchar(max)");
+
b.Property("ConcurrencyStamp")
.IsConcurrencyToken()
.HasMaxLength(40)
@@ -994,6 +998,9 @@ namespace MyCompanyName.MyProjectName.Host.Migrations
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
+ b.Property("LogoUri")
+ .HasColumnType("nvarchar(max)");
+
b.Property("Permissions")
.HasColumnType("nvarchar(max)");
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220519051355_Initial.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220617083539_Initial.cs
similarity index 99%
rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220519051355_Initial.cs
rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220617083539_Initial.cs
index bddc83db55..29cc53b046 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220519051355_Initial.cs
+++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220617083539_Initial.cs
@@ -271,6 +271,8 @@ namespace MyCompanyName.MyProjectName.Host.Migrations
RedirectUris = table.Column(type: "nvarchar(max)", nullable: true),
Requirements = table.Column(type: "nvarchar(max)", nullable: true),
Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true),
+ ClientUri = table.Column(type: "nvarchar(max)", nullable: true),
+ LogoUri = table.Column(type: "nvarchar(max)", nullable: true),
ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true),
ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true),
CreationTime = table.Column(type: "datetime2", nullable: false),
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/MyProjectNameDbContextModelSnapshot.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/MyProjectNameDbContextModelSnapshot.cs
index de96183c79..2597920679 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/MyProjectNameDbContextModelSnapshot.cs
+++ b/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("IsActive")
- .HasColumnType("bit");
+ .HasColumnType("bit")
+ .HasColumnName("IsActive");
b.Property("IsDeleted")
.ValueGeneratedOnAdd()
@@ -942,6 +943,9 @@ namespace MyCompanyName.MyProjectName.Host.Migrations
b.Property("ClientSecret")
.HasColumnType("nvarchar(max)");
+ b.Property("ClientUri")
+ .HasColumnType("nvarchar(max)");
+
b.Property("ConcurrencyStamp")
.IsConcurrencyToken()
.HasMaxLength(40)
@@ -992,6 +996,9 @@ namespace MyCompanyName.MyProjectName.Host.Migrations
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
+ b.Property("LogoUri")
+ .HasColumnType("nvarchar(max)");
+
b.Property("Permissions")
.HasColumnType("nvarchar(max)");
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyProjectNameModule.cs
index 4b5d0f97b6..4db85902c2 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyProjectNameModule.cs
+++ b/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(options =>
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyProjectNameModule.cs
index 34d53c5814..389597c523 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyProjectNameModule.cs
+++ b/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(options =>
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220519051401_Initial.Designer.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220617083649_Initial.Designer.cs
similarity index 99%
rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220519051401_Initial.Designer.cs
rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220617083649_Initial.Designer.cs
index c0a1035988..213ce02572 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220519051401_Initial.Designer.cs
+++ b/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("IsActive")
- .HasColumnType("bit");
+ .HasColumnType("bit")
+ .HasColumnName("IsActive");
b.Property("IsDeleted")
.ValueGeneratedOnAdd()
@@ -944,6 +945,9 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations
b.Property("ClientSecret")
.HasColumnType("nvarchar(max)");
+ b.Property("ClientUri")
+ .HasColumnType("nvarchar(max)");
+
b.Property("ConcurrencyStamp")
.IsConcurrencyToken()
.HasMaxLength(40)
@@ -994,6 +998,9 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
+ b.Property("LogoUri")
+ .HasColumnType("nvarchar(max)");
+
b.Property("Permissions")
.HasColumnType("nvarchar(max)");
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220519051401_Initial.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220617083649_Initial.cs
similarity index 99%
rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220519051401_Initial.cs
rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220617083649_Initial.cs
index 012a5de1ad..2a30fba759 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220519051401_Initial.cs
+++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220617083649_Initial.cs
@@ -271,6 +271,8 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations
RedirectUris = table.Column(type: "nvarchar(max)", nullable: true),
Requirements = table.Column(type: "nvarchar(max)", nullable: true),
Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true),
+ ClientUri = table.Column(type: "nvarchar(max)", nullable: true),
+ LogoUri = table.Column(type: "nvarchar(max)", nullable: true),
ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true),
ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true),
CreationTime = table.Column(type: "datetime2", nullable: false),
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/MyProjectNameDbContextModelSnapshot.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/MyProjectNameDbContextModelSnapshot.cs
index 6366763ca2..350f086968 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/MyProjectNameDbContextModelSnapshot.cs
+++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/MyProjectNameDbContextModelSnapshot.cs
@@ -19,7 +19,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);
@@ -596,7 +596,8 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations
.HasColumnName("ExtraProperties");
b.Property("IsActive")
- .HasColumnType("bit");
+ .HasColumnType("bit")
+ .HasColumnName("IsActive");
b.Property("IsDeleted")
.ValueGeneratedOnAdd()
@@ -942,6 +943,9 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations
b.Property("ClientSecret")
.HasColumnType("nvarchar(max)");
+ b.Property("ClientUri")
+ .HasColumnType("nvarchar(max)");
+
b.Property("ConcurrencyStamp")
.IsConcurrencyToken()
.HasMaxLength(40)
@@ -992,6 +996,9 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
+ b.Property("LogoUri")
+ .HasColumnType("nvarchar(max)");
+
b.Property("Permissions")
.HasColumnType("nvarchar(max)");
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyProjectNameModule.cs
index e78a1b0f08..976f91bf46 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyProjectNameModule.cs
+++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyProjectNameModule.cs
@@ -206,6 +206,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(options =>
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs
index af4aeb7f57..9a6e49e32a 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs
@@ -91,6 +91,7 @@ public class MyProjectNameAuthServerModule : 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", "es"));
+ options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά"));
});
Configure(options =>
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs
index 1287dc2d11..f3a2e1da9f 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs
@@ -227,6 +227,7 @@ public class MyProjectNameBlazorModule : 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", "Ελληνικά"));
});
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs
index 9f2084edb8..a3d2cf8057 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs
@@ -184,6 +184,7 @@ public class MyProjectNameBlazorModule : 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", "Ελληνικά"));
});
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/OpenIddict/OpenIddictDataSeedContributor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/OpenIddict/OpenIddictDataSeedContributor.cs
index 125a029e1c..add52f7437 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/OpenIddict/OpenIddictDataSeedContributor.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/OpenIddict/OpenIddictDataSeedContributor.cs
@@ -90,7 +90,7 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
type: OpenIddictConstants.ClientTypes.Confidential,
consentType: OpenIddictConstants.ConsentTypes.Implicit,
displayName: "Web Application",
- secret: configurationSection["MyProjectName_App:ClientSecret"] ?? "1q2w3e*",
+ secret: configurationSection["MyProjectName_Web:ClientSecret"] ?? "1q2w3e*",
grantTypes: new List //Hybrid flow
{
OpenIddictConstants.GrantTypes.AuthorizationCode,
@@ -106,7 +106,7 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
var consoleAndAngularClientId = configurationSection["MyProjectName_App:ClientId"];
if (!consoleAndAngularClientId.IsNullOrWhiteSpace())
{
- var webClientRootUrl = configurationSection["MyProjectName_App:RootUrl"]?.TrimEnd('/');
+ var consoleAndAngularClientRootUrl = configurationSection["MyProjectName_App:RootUrl"]?.TrimEnd('/');
await CreateApplicationAsync(
name: consoleAndAngularClientId,
type: OpenIddictConstants.ClientTypes.Public,
@@ -121,8 +121,8 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
OpenIddictConstants.GrantTypes.RefreshToken
},
scopes: commonScopes,
- redirectUri: webClientRootUrl,
- postLogoutRedirectUri: webClientRootUrl
+ redirectUri: consoleAndAngularClientRootUrl,
+ postLogoutRedirectUri: consoleAndAngularClientRootUrl
);
}
@@ -272,6 +272,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)
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20220606082402_Initial.Designer.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20220617083228_Initial.Designer.cs
similarity index 99%
rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20220606082402_Initial.Designer.cs
rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20220617083228_Initial.Designer.cs
index 3def67345f..1ea724aa5b 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20220606082402_Initial.Designer.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20220617083228_Initial.Designer.cs
@@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore;
namespace MyCompanyName.MyProjectName.Migrations
{
[DbContext(typeof(MyProjectNameDbContext))]
- [Migration("20220606082402_Initial")]
+ [Migration("20220617083228_Initial")]
partial class Initial
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@@ -997,6 +997,9 @@ namespace MyCompanyName.MyProjectName.Migrations
b.Property("ClientSecret")
.HasColumnType("nvarchar(max)");
+ b.Property("ClientUri")
+ .HasColumnType("nvarchar(max)");
+
b.Property("ConcurrencyStamp")
.IsConcurrencyToken()
.HasMaxLength(40)
@@ -1047,6 +1050,9 @@ namespace MyCompanyName.MyProjectName.Migrations
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
+ b.Property("LogoUri")
+ .HasColumnType("nvarchar(max)");
+
b.Property("Permissions")
.HasColumnType("nvarchar(max)");
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20220606082402_Initial.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20220617083228_Initial.cs
similarity index 99%
rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20220606082402_Initial.cs
rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20220617083228_Initial.cs
index 6025706c2a..55ae609199 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20220606082402_Initial.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20220617083228_Initial.cs
@@ -292,6 +292,8 @@ namespace MyCompanyName.MyProjectName.Migrations
RedirectUris = table.Column(type: "nvarchar(max)", nullable: true),
Requirements = table.Column(type: "nvarchar(max)", nullable: true),
Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true),
+ ClientUri = table.Column(type: "nvarchar(max)", nullable: true),
+ LogoUri = table.Column(type: "nvarchar(max)", nullable: true),
ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true),
ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true),
CreationTime = table.Column(type: "datetime2", nullable: false),
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/MyProjectNameDbContextModelSnapshot.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/MyProjectNameDbContextModelSnapshot.cs
index 8526ba02de..781691a3d2 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/MyProjectNameDbContextModelSnapshot.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/MyProjectNameDbContextModelSnapshot.cs
@@ -995,6 +995,9 @@ namespace MyCompanyName.MyProjectName.Migrations
b.Property("ClientSecret")
.HasColumnType("nvarchar(max)");
+ b.Property("ClientUri")
+ .HasColumnType("nvarchar(max)");
+
b.Property("ConcurrencyStamp")
.IsConcurrencyToken()
.HasMaxLength(40)
@@ -1045,6 +1048,9 @@ namespace MyCompanyName.MyProjectName.Migrations
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
+ b.Property("LogoUri")
+ .HasColumnType("nvarchar(max)");
+
b.Property("Permissions")
.HasColumnType("nvarchar(max)");
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs
index c649e666be..4edcc7a73f 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs
@@ -145,6 +145,7 @@ public class MyProjectNameHttpApiHostModule : 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", "es"));
+ options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά"));
});
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs
index 6067d4a70a..b2e4aab2da 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs
@@ -166,6 +166,7 @@ public class MyProjectNameHttpApiHostModule : 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", "es"));
+ options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά"));
});
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs
index 627754e5e1..397f0a5db6 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs
@@ -164,6 +164,7 @@ public class MyProjectNameWebModule : 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", "Ελληνικά"));
});
}
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20220520080813_Initial.Designer.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20220617083652_Initial.Designer.cs
similarity index 99%
rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20220520080813_Initial.Designer.cs
rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20220617083652_Initial.Designer.cs
index 77eab9db55..ae32d5daa9 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20220520080813_Initial.Designer.cs
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20220617083652_Initial.Designer.cs
@@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore;
namespace MyCompanyName.MyProjectName.Migrations
{
[DbContext(typeof(AuthServerDbContext))]
- [Migration("20220520080813_Initial")]
+ [Migration("20220617083652_Initial")]
partial class Initial
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@@ -21,7 +21,7 @@ namespace MyCompanyName.MyProjectName.Migrations
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
- .HasAnnotation("ProductVersion", "6.0.0")
+ .HasAnnotation("ProductVersion", "6.0.5")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
@@ -598,7 +598,8 @@ namespace MyCompanyName.MyProjectName.Migrations
.HasColumnName("ExtraProperties");
b.Property("IsActive")
- .HasColumnType("bit");
+ .HasColumnType("bit")
+ .HasColumnName("IsActive");
b.Property("IsDeleted")
.ValueGeneratedOnAdd()
@@ -944,6 +945,9 @@ namespace MyCompanyName.MyProjectName.Migrations
b.Property("ClientSecret")
.HasColumnType("nvarchar(max)");
+ b.Property("ClientUri")
+ .HasColumnType("nvarchar(max)");
+
b.Property("ConcurrencyStamp")
.IsConcurrencyToken()
.HasMaxLength(40)
@@ -994,6 +998,9 @@ namespace MyCompanyName.MyProjectName.Migrations
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
+ b.Property("LogoUri")
+ .HasColumnType("nvarchar(max)");
+
b.Property("Permissions")
.HasColumnType("nvarchar(max)");
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20220520080813_Initial.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20220617083652_Initial.cs
similarity index 99%
rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20220520080813_Initial.cs
rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20220617083652_Initial.cs
index 4a83874cba..cbc01e3dfe 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20220520080813_Initial.cs
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20220617083652_Initial.cs
@@ -271,6 +271,8 @@ namespace MyCompanyName.MyProjectName.Migrations
RedirectUris = table.Column(type: "nvarchar(max)", nullable: true),
Requirements = table.Column(type: "nvarchar(max)", nullable: true),
Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true),
+ ClientUri = table.Column(type: "nvarchar(max)", nullable: true),
+ LogoUri = table.Column(type: "nvarchar(max)", nullable: true),
ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true),
ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true),
CreationTime = table.Column(type: "datetime2", nullable: false),
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/AuthServerDbContextModelSnapshot.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/AuthServerDbContextModelSnapshot.cs
index 3181405337..e483e20a49 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/AuthServerDbContextModelSnapshot.cs
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/AuthServerDbContextModelSnapshot.cs
@@ -19,7 +19,7 @@ namespace MyCompanyName.MyProjectName.Migrations
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
- .HasAnnotation("ProductVersion", "6.0.0")
+ .HasAnnotation("ProductVersion", "6.0.5")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
@@ -943,6 +943,9 @@ namespace MyCompanyName.MyProjectName.Migrations
b.Property("ClientSecret")
.HasColumnType("nvarchar(max)");
+ b.Property("ClientUri")
+ .HasColumnType("nvarchar(max)");
+
b.Property("ConcurrencyStamp")
.IsConcurrencyToken()
.HasMaxLength(40)
@@ -993,6 +996,9 @@ namespace MyCompanyName.MyProjectName.Migrations
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
+ b.Property("LogoUri")
+ .HasColumnType("nvarchar(max)");
+
b.Property("Permissions")
.HasColumnType("nvarchar(max)");
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs
index 520b4b98de..9fca370381 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs
@@ -134,6 +134,7 @@ public class MyProjectNameAuthServerModule : AbpModule
options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文"));
options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch"));
options.Languages.Add(new LanguageInfo("es", "es", "Español"));
+ options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά"));
});
Configure(options =>
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/OpenIddict/OpenIddictDataSeedContributor.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/OpenIddict/OpenIddictDataSeedContributor.cs
index 057cc82167..872920cb82 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/OpenIddict/OpenIddictDataSeedContributor.cs
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/OpenIddict/OpenIddictDataSeedContributor.cs
@@ -90,7 +90,7 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
type: OpenIddictConstants.ClientTypes.Confidential,
consentType: OpenIddictConstants.ConsentTypes.Implicit,
displayName: "Web Application",
- secret: configurationSection["MyProjectName_App:ClientSecret"] ?? "1q2w3e*",
+ secret: configurationSection["MyProjectName_Web:ClientSecret"] ?? "1q2w3e*",
grantTypes: new List //Hybrid flow
{
OpenIddictConstants.GrantTypes.AuthorizationCode,
@@ -106,7 +106,7 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
var consoleAndAngularClientId = configurationSection["MyProjectName_App:ClientId"];
if (!consoleAndAngularClientId.IsNullOrWhiteSpace())
{
- var webClientRootUrl = configurationSection["MyProjectName_App:RootUrl"]?.TrimEnd('/');
+ var consoleAndAngularClientRootUrl = configurationSection["MyProjectName_App:RootUrl"]?.TrimEnd('/');
await CreateApplicationAsync(
name: consoleAndAngularClientId,
type: OpenIddictConstants.ClientTypes.Public,
@@ -121,8 +121,8 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
OpenIddictConstants.GrantTypes.RefreshToken
},
scopes: commonScopes,
- redirectUri: webClientRootUrl,
- postLogoutRedirectUri: webClientRootUrl
+ redirectUri: consoleAndAngularClientRootUrl,
+ postLogoutRedirectUri: consoleAndAngularClientRootUrl
);
}
@@ -249,6 +249,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)
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20211124020351_Initial.Designer.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20220617083658_Initial.Designer.cs
similarity index 99%
rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20211124020351_Initial.Designer.cs
rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20220617083658_Initial.Designer.cs
index 11fbd05d18..da5ce77b3f 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20211124020351_Initial.Designer.cs
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20220617083658_Initial.Designer.cs
@@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore;
namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations
{
[DbContext(typeof(UnifiedDbContext))]
- [Migration("20211124020351_Initial")]
+ [Migration("20220617083658_Initial")]
partial class Initial
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@@ -21,7 +21,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
- .HasAnnotation("ProductVersion", "6.0.0")
+ .HasAnnotation("ProductVersion", "6.0.5")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
@@ -598,7 +598,8 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations
.HasColumnName("ExtraProperties");
b.Property("IsActive")
- .HasColumnType("bit");
+ .HasColumnType("bit")
+ .HasColumnName("IsActive");
b.Property("IsDeleted")
.ValueGeneratedOnAdd()
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20211124020351_Initial.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20220617083658_Initial.cs
similarity index 100%
rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20211124020351_Initial.cs
rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20220617083658_Initial.cs
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/UnifiedDbContextModelSnapshot.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/UnifiedDbContextModelSnapshot.cs
index 3b693ab607..7ef4a80da0 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/UnifiedDbContextModelSnapshot.cs
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/UnifiedDbContextModelSnapshot.cs
@@ -19,7 +19,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
- .HasAnnotation("ProductVersion", "6.0.0")
+ .HasAnnotation("ProductVersion", "6.0.5")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
@@ -596,7 +596,8 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations
.HasColumnName("ExtraProperties");
b.Property("IsActive")
- .HasColumnType("bit");
+ .HasColumnType("bit")
+ .HasColumnName("IsActive");
b.Property("IsDeleted")
.ValueGeneratedOnAdd()
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyProjectNameBlazorHostModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyProjectNameBlazorHostModule.cs
index 97e9dfcae0..16d3ec947f 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyProjectNameBlazorHostModule.cs
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyProjectNameBlazorHostModule.cs
@@ -180,6 +180,7 @@ public class MyProjectNameBlazorHostModule : AbpModule
options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文"));
options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch"));
options.Languages.Add(new LanguageInfo("es", "es", "Español"));
+ options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά"));
});
Configure(options =>
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs
index 17b0cc8a88..a736a9ca0f 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs
@@ -114,6 +114,7 @@ public class MyProjectNameHttpApiHostModule : AbpModule
options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文"));
options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch"));
options.Languages.Add(new LanguageInfo("es", "es", "Español"));
+ options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά"));
});
context.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20211124020406_Initial.Designer.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20220617083659_Initial.Designer.cs
similarity index 99%
rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20211124020406_Initial.Designer.cs
rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20220617083659_Initial.Designer.cs
index c29ed70204..e9f1df7c94 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20211124020406_Initial.Designer.cs
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20220617083659_Initial.Designer.cs
@@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore;
namespace MyCompanyName.MyProjectName.Migrations
{
[DbContext(typeof(UnifiedDbContext))]
- [Migration("20211124020406_Initial")]
+ [Migration("20220617083659_Initial")]
partial class Initial
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@@ -21,7 +21,7 @@ namespace MyCompanyName.MyProjectName.Migrations
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
- .HasAnnotation("ProductVersion", "6.0.0")
+ .HasAnnotation("ProductVersion", "6.0.5")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
@@ -598,7 +598,8 @@ namespace MyCompanyName.MyProjectName.Migrations
.HasColumnName("ExtraProperties");
b.Property("IsActive")
- .HasColumnType("bit");
+ .HasColumnType("bit")
+ .HasColumnName("IsActive");
b.Property("IsDeleted")
.ValueGeneratedOnAdd()
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20211124020406_Initial.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20220617083659_Initial.cs
similarity index 100%
rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20211124020406_Initial.cs
rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20220617083659_Initial.cs
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/UnifiedDbContextModelSnapshot.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/UnifiedDbContextModelSnapshot.cs
index 55e6741d12..39b8871ef6 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/UnifiedDbContextModelSnapshot.cs
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/UnifiedDbContextModelSnapshot.cs
@@ -19,7 +19,7 @@ namespace MyCompanyName.MyProjectName.Migrations
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
- .HasAnnotation("ProductVersion", "6.0.0")
+ .HasAnnotation("ProductVersion", "6.0.5")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
@@ -596,7 +596,8 @@ namespace MyCompanyName.MyProjectName.Migrations
.HasColumnName("ExtraProperties");
b.Property("IsActive")
- .HasColumnType("bit");
+ .HasColumnType("bit")
+ .HasColumnName("IsActive");
b.Property("IsDeleted")
.ValueGeneratedOnAdd()
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs
index 49b63a407d..80408ae4e9 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs
@@ -129,6 +129,7 @@ public class MyProjectNameWebUnifiedModule : AbpModule
options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文"));
options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch"));
options.Languages.Add(new LanguageInfo("es", "es", "Español"));
+ options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά"));
});
Configure(options =>