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