mirror of https://github.com/abpframework/abp.git
committed by
GitHub
10 changed files with 172 additions and 50 deletions
@ -0,0 +1,58 @@ |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
|
|||
namespace Volo.Abp.Localization |
|||
{ |
|||
public static class AbpLocalizationOptionsExtensions |
|||
{ |
|||
public static AbpLocalizationOptions AddLanguagesMapOrUpdate(this AbpLocalizationOptions localizationOptions, |
|||
string packageName, params NameValue[] maps) |
|||
{ |
|||
foreach (var map in maps) |
|||
{ |
|||
AddOrUpdate(localizationOptions.LanguagesMap, packageName, map); |
|||
} |
|||
|
|||
return localizationOptions; |
|||
} |
|||
|
|||
public static string GetLanguagesMap(this AbpLocalizationOptions localizationOptions, string packageName, |
|||
string language) |
|||
{ |
|||
return localizationOptions.LanguagesMap.TryGetValue(packageName, out var maps) |
|||
? maps.FirstOrDefault(x => x.Name == language)?.Value ?? language |
|||
: language; |
|||
} |
|||
|
|||
public static AbpLocalizationOptions AddLanguageFilesMapOrUpdate(this AbpLocalizationOptions localizationOptions, |
|||
string packageName, params NameValue[] maps) |
|||
{ |
|||
foreach (var map in maps) |
|||
{ |
|||
AddOrUpdate(localizationOptions.LanguageFilesMap, packageName, map); |
|||
} |
|||
|
|||
return localizationOptions; |
|||
} |
|||
|
|||
public static string GetLanguageFilesMap(this AbpLocalizationOptions localizationOptions, string packageName, |
|||
string language) |
|||
{ |
|||
return localizationOptions.LanguageFilesMap.TryGetValue(packageName, out var maps) |
|||
? 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…
Reference in new issue