|
|
|
@ -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}); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|