mirror of https://github.com/abpframework/abp.git
8 changed files with 86 additions and 42 deletions
@ -0,0 +1,36 @@ |
|||||
|
using System; |
||||
|
using JetBrains.Annotations; |
||||
|
using Microsoft.Extensions.Localization; |
||||
|
|
||||
|
namespace Volo.Abp.Localization |
||||
|
{ |
||||
|
public static class HasNameWithLocalizableDisplayNameExtensions |
||||
|
{ |
||||
|
[NotNull] |
||||
|
public static string GetLocalizedDisplayName( |
||||
|
[NotNull] this IHasNameWithLocalizableDisplayName source, |
||||
|
[NotNull] IStringLocalizerFactory stringLocalizerFactory, |
||||
|
[CanBeNull] string localizationNamePrefix = "DisplayName:") |
||||
|
{ |
||||
|
if (source.DisplayName != null) |
||||
|
{ |
||||
|
return source.DisplayName.Localize(stringLocalizerFactory); |
||||
|
} |
||||
|
|
||||
|
var defaultStringLocalizer = stringLocalizerFactory.CreateDefaultOrNull(); |
||||
|
if (defaultStringLocalizer == null) |
||||
|
{ |
||||
|
return source.Name; |
||||
|
} |
||||
|
|
||||
|
var localizedString = defaultStringLocalizer[$"{localizationNamePrefix}{source.Name}"]; |
||||
|
if (!localizedString.ResourceNotFound || |
||||
|
localizationNamePrefix.IsNullOrEmpty()) |
||||
|
{ |
||||
|
return localizedString; |
||||
|
} |
||||
|
|
||||
|
return defaultStringLocalizer[source.Name]; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,13 @@ |
|||||
|
using JetBrains.Annotations; |
||||
|
|
||||
|
namespace Volo.Abp.Localization |
||||
|
{ |
||||
|
public interface IHasNameWithLocalizableDisplayName |
||||
|
{ |
||||
|
[NotNull] |
||||
|
public string Name { get; } |
||||
|
|
||||
|
[CanBeNull] |
||||
|
public ILocalizableString DisplayName { get; } |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue