Browse Source

AddLanguagesMapOrUpdate & AddLanguageFilesMapOrUpdate.

pull/4360/head
maliming 6 years ago
parent
commit
948ccc429e
  1. 4
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/AbpAspNetCoreMvcUiPackagesModule.cs
  2. 34
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpLocalizationOptionsExtensions.cs

4
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/AbpAspNetCoreMvcUiPackagesModule.cs

@ -12,11 +12,11 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Packages
{
Configure<AbpLocalizationOptions>(options =>
{
options.AddLanguagesMap(BootstrapDatepickerScriptContributor.PackageName,
options.AddLanguagesMapOrUpdate(BootstrapDatepickerScriptContributor.PackageName,
new NameValue("zh-Hans", "zh-CN"),
new NameValue("zh-Hant", "zh-TW"));
options.AddLanguageFilesMap(BootstrapDatepickerScriptContributor.PackageName,
options.AddLanguageFilesMapOrUpdate(BootstrapDatepickerScriptContributor.PackageName,
new NameValue("zh-Hans", "zh-CN"),
new NameValue("zh-Hant", "zh-TW"));
});

34
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpLocalizationOptionsExtensions.cs

@ -5,15 +5,12 @@ namespace Volo.Abp.Localization
{
public static class AbpLocalizationOptionsExtensions
{
public static AbpLocalizationOptions AddLanguagesMap(this AbpLocalizationOptions localizationOptions, string packageName, params NameValue[] maps)
public static AbpLocalizationOptions AddLanguagesMapOrUpdate(this AbpLocalizationOptions localizationOptions,
string packageName, params NameValue[] maps)
{
if (localizationOptions.LanguagesMap.TryGetValue(packageName, out var existMaps))
foreach (var map in maps)
{
existMaps.AddRange(maps);
}
else
{
localizationOptions.LanguagesMap.Add(packageName, maps.ToList());
AddOrUpdate(localizationOptions.LanguagesMap, packageName, map);
}
return localizationOptions;
@ -27,15 +24,12 @@ namespace Volo.Abp.Localization
: language;
}
public static AbpLocalizationOptions AddLanguageFilesMap(this AbpLocalizationOptions localizationOptions, string packageName, params NameValue[] maps)
public static AbpLocalizationOptions AddLanguageFilesMapOrUpdate(this AbpLocalizationOptions localizationOptions,
string packageName, params NameValue[] maps)
{
if (localizationOptions.LanguageFilesMap.TryGetValue(packageName, out var existMaps))
foreach (var map in maps)
{
existMaps.AddRange(maps);
}
else
{
localizationOptions.LanguageFilesMap.Add(packageName, maps.ToList());
AddOrUpdate(localizationOptions.LanguageFilesMap, packageName, map);
}
return localizationOptions;
@ -48,5 +42,17 @@ namespace Volo.Abp.Localization
? maps.FirstOrDefault(x => x.Name == language)?.Value ?? language
: language;
}
private static void AddOrUpdate(IDictionary<string, List<NameValue>> maps, string packageName, NameValue value)
{
if (maps.TryGetValue(packageName, out var existMaps))
{
existMaps.GetOrAdd(x => x.Name == value.Name, () => value).Value = value.Value;
}
else
{
maps.Add(packageName, new List<NameValue> {value});
}
}
}
}

Loading…
Cancel
Save