Browse Source

Introduce ApplicationLocalizationRequestDto.OnlyDynamics

pull/13845/head
Halil İbrahim Kalkan 4 years ago
parent
commit
702589380b
  1. 3
      framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyCachedApplicationConfigurationClient.cs
  2. 3
      framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/MvcCachedApplicationConfigurationClient.cs
  3. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ApplicationLocalizationRequestDto.cs
  4. 26
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationLocalizationAppService.cs
  5. 3
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/DynamicLocalizationPreference.cs

3
framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyCachedApplicationConfigurationClient.cs

@ -39,7 +39,8 @@ public class WebAssemblyCachedApplicationConfigurationClient : ICachedApplicatio
var localizationDto = await ApplicationLocalizationClientProxy.GetAsync(
new ApplicationLocalizationRequestDto {
Culture = configurationDto.Localization.CurrentCulture.Name
Culture = configurationDto.Localization.CurrentCulture.Name,
OnlyDynamics = true
}
);

3
framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/MvcCachedApplicationConfigurationClient.cs

@ -71,7 +71,8 @@ public class MvcCachedApplicationConfigurationClient : ICachedApplicationConfigu
var localizationDto = await ApplicationLocalizationClientProxy.GetAsync(
new ApplicationLocalizationRequestDto {
Culture = config.Localization.CurrentCulture.Name
Culture = config.Localization.CurrentCulture.Name,
OnlyDynamics = true
}
);

2
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ApplicationLocalizationRequestDto.cs

@ -6,4 +6,6 @@ public class ApplicationLocalizationRequestDto
{
[Required]
public string Culture { get; set; }
public bool OnlyDynamics { get; set; }
}

26
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationLocalizationAppService.cs

@ -42,18 +42,38 @@ public class AbpApplicationLocalizationAppService :
foreach (var resource in resources)
{
var dictionary = new Dictionary<string, string>();
var localizer = await StringLocalizerFactory.CreateByResourceNameOrNullAsync(resource.ResourceName);
if (localizer != null)
{
var localizedStrings = await localizer.GetAllStringsAsync(
Dictionary<string, LocalizedString> staticLocalizedStrings = null;
if (input.OnlyDynamics)
{
staticLocalizedStrings = (await localizer.GetAllStringsAsync(
includeParentCultures: true,
includeBaseLocalizers: false,
dynamicLocalizationPreference: DynamicLocalizationPreference.Exclude
)).ToDictionary(x => x.Name);
}
var localizedStringsWithDynamics = await localizer.GetAllStringsAsync(
includeParentCultures: true,
includeBaseLocalizers: false,
dynamicLocalizationPreference: DynamicLocalizationPreference.Include
);
foreach (var localizedString in localizedStrings)
foreach (var localizedString in localizedStringsWithDynamics)
{
if (input.OnlyDynamics)
{
var staticLocalizedString = staticLocalizedStrings.GetOrDefault(localizedString.Name);
if (staticLocalizedString != null &&
localizedString.Value == staticLocalizedString.Value)
{
continue;
}
}
dictionary[localizedString.Name] = localizedString.Value;
}
}

3
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/DynamicLocalizationPreference.cs

@ -3,6 +3,5 @@ namespace Volo.Abp.Localization;
public enum DynamicLocalizationPreference : byte
{
Include = 0,
Exclude = 1,
Only = 2
Exclude = 1
}
Loading…
Cancel
Save