You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.2 KiB
42 lines
1.2 KiB
using Sanhe.Abp.Localization.Dynamic; |
|
using System; |
|
using System.Linq; |
|
|
|
namespace Volo.Abp.Localization |
|
{ |
|
public static class LocalizationResourceDictionaryExtensions |
|
{ |
|
public static LocalizationResourceDictionary AddDynamic( |
|
this LocalizationResourceDictionary resources, |
|
params Type[] ignoreResourceTypes) |
|
{ |
|
foreach (var resource in resources) |
|
{ |
|
if (ShouldIgnoreType(resource.Key, ignoreResourceTypes)) |
|
{ |
|
continue; |
|
} |
|
if (ShouldIgnoreType(resource.Value)) |
|
{ |
|
continue; |
|
} |
|
resource.Value.AddDynamic(); |
|
} |
|
return resources; |
|
} |
|
|
|
private static bool ShouldIgnoreType(Type resourceType, params Type[] ignoreResourceTypes) |
|
{ |
|
if (ignoreResourceTypes == null) |
|
{ |
|
return false; |
|
} |
|
return ignoreResourceTypes.Any(x => x == resourceType); |
|
} |
|
|
|
private static bool ShouldIgnoreType(LocalizationResource resource) |
|
{ |
|
return resource.Contributors.Exists(x => x is DynamicLocalizationResourceContributor); |
|
} |
|
} |
|
}
|
|
|