From b9e531ed0c8343c66aaf9eb773929cf38e7779c5 Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 30 Dec 2022 18:51:34 +0800 Subject: [PATCH] Add `AbpEnumLocalizerExtensions`. --- .../AbpEnumLocalizerExtensions.cs | 19 ++++++++++++++++++ .../Localization/AbpEnumLocalizer_Tests.cs | 20 +++++++++---------- 2 files changed, 29 insertions(+), 10 deletions(-) create mode 100644 framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpEnumLocalizerExtensions.cs diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpEnumLocalizerExtensions.cs b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpEnumLocalizerExtensions.cs new file mode 100644 index 0000000000..796ba0da9d --- /dev/null +++ b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpEnumLocalizerExtensions.cs @@ -0,0 +1,19 @@ +using System; +using Microsoft.Extensions.Localization; + +namespace Volo.Abp.Localization; + +public static class AbpEnumLocalizerExtensions +{ + public static string GetString(this IAbpEnumLocalizer abpEnumLocalizer, object enumValue) + where TEnum : Enum + { + return abpEnumLocalizer.GetString(typeof(TEnum), enumValue); + } + + public static string GetString(this IAbpEnumLocalizer abpEnumLocalizer, object enumValue, IStringLocalizer[] specifyLocalizers) + where TEnum : Enum + { + return abpEnumLocalizer.GetString(typeof(TEnum), enumValue, specifyLocalizers); + } +} diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/AbpEnumLocalizer_Tests.cs b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/AbpEnumLocalizer_Tests.cs index 1571abff2f..c53236809f 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/AbpEnumLocalizer_Tests.cs +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/AbpEnumLocalizer_Tests.cs @@ -20,21 +20,21 @@ public class AbpEnumLocalizer_Tests : AbpIntegratedTest(BookType.Undefined).ShouldBe("Undefined"); + _enumLocalizer.GetString(BookType.Adventure).ShouldBe("Adventure"); + _enumLocalizer.GetString(0).ShouldBe("Undefined with value 0"); + _enumLocalizer.GetString(1).ShouldBe("Adventure with value 1"); + _enumLocalizer.GetString(BookType.Biography).ShouldBe("Biography"); var specifyLocalizer = new[] { GetRequiredService().Create() }; - _enumLocalizer.GetString(typeof(BookType), BookType.Undefined, specifyLocalizer).ShouldBe("Undefined from ValidationResource"); - _enumLocalizer.GetString(typeof(BookType), BookType.Adventure, specifyLocalizer).ShouldBe("Adventure from ValidationResource"); - _enumLocalizer.GetString(typeof(BookType), 0, specifyLocalizer).ShouldBe("Undefined with value 0 from ValidationResource"); - _enumLocalizer.GetString(typeof(BookType), 1, specifyLocalizer).ShouldBe("Adventure with value 1 from ValidationResource"); - _enumLocalizer.GetString(typeof(BookType), BookType.Biography, specifyLocalizer).ShouldBe("Biography from ValidationResource"); + _enumLocalizer.GetString(BookType.Undefined, specifyLocalizer).ShouldBe("Undefined from ValidationResource"); + _enumLocalizer.GetString(BookType.Adventure, specifyLocalizer).ShouldBe("Adventure from ValidationResource"); + _enumLocalizer.GetString(0, specifyLocalizer).ShouldBe("Undefined with value 0 from ValidationResource"); + _enumLocalizer.GetString(1, specifyLocalizer).ShouldBe("Adventure with value 1 from ValidationResource"); + _enumLocalizer.GetString(BookType.Biography, specifyLocalizer).ShouldBe("Biography from ValidationResource"); } } }