diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ApplicationLocalizationConfigurationDto.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ApplicationLocalizationConfigurationDto.cs index 2667734537..a5e6574e93 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ApplicationLocalizationConfigurationDto.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ApplicationLocalizationConfigurationDto.cs @@ -12,6 +12,8 @@ namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations public List Languages { get; set; } + public CurrentCultureDto CurrentCulture { get; set; } + public ApplicationLocalizationConfigurationDto() { Values = new Dictionary>(); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/CurrentCultureDto.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/CurrentCultureDto.cs new file mode 100644 index 0000000000..b225fac8f0 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/CurrentCultureDto.cs @@ -0,0 +1,23 @@ +namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations +{ + public class CurrentCultureDto + { + public string DisplayName { get; set; } + + public string EnglishName { get; set; } + + public string ThreeLetterIsoLanguageName { get; set; } + + public string TwoLetterIsoLanguageName { get; set; } + + public bool IsRightToLeft { get; set; } + + public string CultureName { get; set; } + + public string Name { get; set; } + + public string NativeName { get; set; } + + public DateTimeFormatDto DateTimeFormat { get; set; } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/DateTimeFormatDto.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/DateTimeFormatDto.cs new file mode 100644 index 0000000000..259dff1da6 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/DateTimeFormatDto.cs @@ -0,0 +1,19 @@ +namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations +{ + public class DateTimeFormatDto + { + public string CalendarAlgorithmType { get; set; } + + public string DateTimeFormatLong { get; set; } + + public string ShortDatePattern { get; set; } + + public string FullDateTimePattern { get; set; } + + public string DateSeparator { get; set; } + + public string ShortTimePattern { get; set; } + + public string LongTimePattern { get; set; } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationConfigurationAppService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationConfigurationAppService.cs index e6cfafdf48..f3af9182ba 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationConfigurationAppService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationConfigurationAppService.cs @@ -4,6 +4,7 @@ using Microsoft.Extensions.Localization; using Microsoft.Extensions.Options; using System; using System.Collections.Generic; +using System.Globalization; using System.Threading.Tasks; using Volo.Abp.Application.Services; using Volo.Abp.Authorization; @@ -31,10 +32,10 @@ namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations IServiceProvider serviceProvider, IAbpAuthorizationPolicyProvider abpAuthorizationPolicyProvider, IAuthorizationService authorizationService, - ICurrentUser currentUser, - ISettingProvider settingProvider, - SettingDefinitionManager settingDefinitionManager, - IFeatureDefinitionManager featureDefinitionManager, + ICurrentUser currentUser, + ISettingProvider settingProvider, + SettingDefinitionManager settingDefinitionManager, + IFeatureDefinitionManager featureDefinitionManager, ILanguageProvider languageProvider) { _serviceProvider = serviceProvider; @@ -112,9 +113,36 @@ namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations localizationConfig.Values[resource.ResourceName] = dictionary; } + localizationConfig.CurrentCulture = GetCurrentCultureInfo(); + return localizationConfig; } + private static CurrentCultureDto GetCurrentCultureInfo() + { + return new CurrentCultureDto + { + Name = CultureInfo.CurrentUICulture.Name, + DisplayName = CultureInfo.CurrentUICulture.DisplayName, + EnglishName = CultureInfo.CurrentUICulture.EnglishName, + NativeName = CultureInfo.CurrentUICulture.NativeName, + IsRightToLeft = CultureInfo.CurrentUICulture.TextInfo.IsRightToLeft, + CultureName = CultureInfo.CurrentUICulture.TextInfo.CultureName, + TwoLetterIsoLanguageName = CultureInfo.CurrentUICulture.TwoLetterISOLanguageName, + ThreeLetterIsoLanguageName = CultureInfo.CurrentUICulture.ThreeLetterISOLanguageName, + DateTimeFormat = new DateTimeFormatDto + { + CalendarAlgorithmType = CultureInfo.CurrentUICulture.DateTimeFormat.Calendar.AlgorithmType.ToString(), + DateTimeFormatLong = CultureInfo.CurrentUICulture.DateTimeFormat.LongDatePattern, + ShortDatePattern = CultureInfo.CurrentUICulture.DateTimeFormat.ShortDatePattern, + FullDateTimePattern = CultureInfo.CurrentUICulture.DateTimeFormat.FullDateTimePattern, + DateSeparator = CultureInfo.CurrentUICulture.DateTimeFormat.DateSeparator, + ShortTimePattern = CultureInfo.CurrentUICulture.DateTimeFormat.ShortTimePattern, + LongTimePattern = CultureInfo.CurrentUICulture.DateTimeFormat.LongTimePattern, + } + }; + } + private async Task GetSettingConfigAsync() { var result = new ApplicationSettingConfigurationDto