Browse Source

Added GetSupportedCultures to IAbpStringLocalizer

pull/13845/head
Halil İbrahim Kalkan 4 years ago
parent
commit
1d33a61250
  1. 10
      framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo/Abp/AspNetCore/Mvc/Client/RemoteLocalizationContributor.cs
  2. 10
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpDictionaryBasedStringLocalizer.cs
  3. 20
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpStringLocalizerExtensions.cs
  4. 4
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/IAbpStringLocalizer.cs
  5. 2
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/ILocalizationResourceContributor.cs
  6. 5
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/LocalizationResourceBase.cs
  7. 5
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/LocalizationResourceContributorList.cs
  8. 5
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/VirtualFiles/VirtualFileLocalizationResourceContributorBase.cs

10
framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo/Abp/AspNetCore/Mvc/Client/RemoteLocalizationContributor.cs

@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Logging;
@ -52,6 +53,13 @@ public class RemoteLocalizationContributor : ILocalizationResourceContributor
}
}
public IEnumerable<string> GetSupportedCultures()
{
/* This contributor does not know all the supported cultures by the
remote localization resource, and it is not needed on the client side */
return Array.Empty<string>();
}
private Dictionary<string, string> GetResourceOrNull()
{
var applicationConfigurationDto = _applicationConfigurationClient.Get();

10
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpDictionaryBasedStringLocalizer.cs

@ -47,6 +47,11 @@ public class AbpDictionaryBasedStringLocalizer : IAbpStringLocalizer
);
}
public IEnumerable<string> GetSupportedCultures()
{
return Resource.Contributors.GetSupportedCultures();
}
protected virtual LocalizedString GetLocalizedStringFormatted(string name, params object[] arguments)
{
return GetLocalizedStringFormatted(name, CultureInfo.CurrentUICulture.Name, arguments);
@ -208,5 +213,10 @@ public class AbpDictionaryBasedStringLocalizer : IAbpStringLocalizer
{
return _innerLocalizer.GetAllStrings(_cultureName, includeParentCultures, includeBaseLocalizers);
}
public IEnumerable<string> GetSupportedCultures()
{
return _innerLocalizer.GetSupportedCultures();
}
}
}

20
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpStringLocalizerExtensions.cs

@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.Reflection;
using JetBrains.Annotations;
using Microsoft.Extensions.Localization;
@ -41,10 +42,10 @@ public static class AbpStringLocalizerExtensions
bool includeParentCultures,
bool includeBaseLocalizers)
{
var internalLocalizer = (ProxyHelper.UnProxy(stringLocalizer) as IStringLocalizer).GetInternalLocalizer();
if (internalLocalizer is IAbpStringLocalizer stringLocalizerSupportsInheritance)
var internalLocalizer = ((IStringLocalizer)ProxyHelper.UnProxy(stringLocalizer)).GetInternalLocalizer();
if (internalLocalizer is IAbpStringLocalizer abpStringLocalizer)
{
return stringLocalizerSupportsInheritance.GetAllStrings(
return abpStringLocalizer.GetAllStrings(
includeParentCultures,
includeBaseLocalizers
);
@ -54,4 +55,15 @@ public static class AbpStringLocalizerExtensions
includeParentCultures
);
}
public static IEnumerable<string> GetSupportedCultures(this IStringLocalizer localizer)
{
var internalLocalizer = ((IStringLocalizer)ProxyHelper.UnProxy(localizer)).GetInternalLocalizer();
if (internalLocalizer is IAbpStringLocalizer abpStringLocalizer)
{
return abpStringLocalizer.GetSupportedCultures();
}
return Array.Empty<string>();
}
}

4
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/IAbpStringLocalizer.cs

@ -9,4 +9,6 @@ public interface IAbpStringLocalizer : IStringLocalizer
bool includeParentCultures,
bool includeBaseLocalizers
);
}
IEnumerable<string> GetSupportedCultures();
}

2
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/ILocalizationResourceContributor.cs

@ -10,4 +10,6 @@ public interface ILocalizationResourceContributor
LocalizedString GetOrNull(string cultureName, string name);
void Fill(string cultureName, Dictionary<string, LocalizedString> dictionary);
IEnumerable<string> GetSupportedCultures();
}

5
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/LocalizationResourceBase.cs

@ -32,4 +32,9 @@ public abstract class LocalizationResourceBase
Contributors.Add(initialContributor);
}
}
internal IEnumerable<string> GetSupportedCultures()
{
return Contributors.GetSupportedCultures();
}
}

5
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/LocalizationResourceContributorList.cs

@ -27,4 +27,9 @@ public class LocalizationResourceContributorList : List<ILocalizationResourceCon
contributor.Fill(cultureName, dictionary);
}
}
internal IEnumerable<string> GetSupportedCultures()
{
return this.SelectMany(c => c.GetSupportedCultures()).Distinct();
}
}

5
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/VirtualFiles/VirtualFileLocalizationResourceContributorBase.cs

@ -37,6 +37,11 @@ public abstract class VirtualFileLocalizationResourceContributorBase : ILocaliza
GetDictionaries().GetOrDefault(cultureName)?.Fill(dictionary);
}
public IEnumerable<string> GetSupportedCultures()
{
return GetDictionaries().Keys;
}
private Dictionary<string, ILocalizationDictionary> GetDictionaries()
{
var dictionaries = _dictionaries;

Loading…
Cancel
Save