From 2e1db27fcb1ec6fb2d8f73c1d4243673aa1c1c7d Mon Sep 17 00:00:00 2001 From: Argo-Tianyi Date: Sun, 15 Aug 2021 22:27:10 +0800 Subject: [PATCH 1/5] =?UTF-8?q?refactor:=20=E8=B0=83=E6=95=B4=E8=B5=84?= =?UTF-8?q?=E6=BA=90=E6=96=87=E4=BB=B6=E8=AF=BB=E5=8F=96=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Localization/Json/JsonStringLocalizer.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/BootstrapBlazor/Localization/Json/JsonStringLocalizer.cs b/src/BootstrapBlazor/Localization/Json/JsonStringLocalizer.cs index 19bea5414..7800e308d 100644 --- a/src/BootstrapBlazor/Localization/Json/JsonStringLocalizer.cs +++ b/src/BootstrapBlazor/Localization/Json/JsonStringLocalizer.cs @@ -60,8 +60,8 @@ namespace BootstrapBlazor.Localization.Json { get { - var value = base.GetStringSafely(name, CultureInfo.CurrentUICulture) - ?? GetStringFromInject(name) + var value = GetStringFromInject(name) + ?? GetStringSafely(name, CultureInfo.CurrentUICulture) ?? GetJsonStringSafely(name); return new LocalizedString(name, value ?? name, resourceNotFound: value == null, searchedLocation: _searchedLocation); @@ -99,8 +99,8 @@ namespace BootstrapBlazor.Localization.Json { get { - var format = base.GetStringSafely(name, CultureInfo.CurrentUICulture) - ?? GetStringFromInject(name) + var format = GetStringFromInject(name) + ?? GetStringSafely(name, CultureInfo.CurrentUICulture) ?? GetJsonStringSafely(name); var value = !string.IsNullOrEmpty(format) ? string.Format(format, arguments) : name; return new LocalizedString(name, value, resourceNotFound: format == null, searchedLocation: _searchedLocation); -- Gitee From 72d392513f8e5182d4e7f0da7ed1317b72f517b4 Mon Sep 17 00:00:00 2001 From: Argo-Tianyi Date: Sun, 15 Aug 2021 22:29:04 +0800 Subject: [PATCH 2/5] =?UTF-8?q?refactor:=20=E6=A0=BC=E5=BC=8F=E5=8C=96?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Localization/Json/JsonStringLocalizer.cs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/BootstrapBlazor/Localization/Json/JsonStringLocalizer.cs b/src/BootstrapBlazor/Localization/Json/JsonStringLocalizer.cs index 7800e308d..70ce0ad86 100644 --- a/src/BootstrapBlazor/Localization/Json/JsonStringLocalizer.cs +++ b/src/BootstrapBlazor/Localization/Json/JsonStringLocalizer.cs @@ -176,23 +176,19 @@ namespace BootstrapBlazor.Localization.Json return value; } - private IEnumerable GetAllStringsFromCultureHierarchy(CultureInfo startingCulture) + private IEnumerable GetAllStringsFromCultureHierarchy(CultureInfo culture) { - var currentCulture = startingCulture; + var currentCulture = culture; var resourceNames = new HashSet(); - while (currentCulture != currentCulture.Parent) { var cultureResourceNames = GetAllResourceStrings(GetCultureInfoName(currentCulture)); - foreach (var resourceName in cultureResourceNames) { resourceNames.Add(resourceName); } - currentCulture = currentCulture.Parent; } - return resourceNames; } -- Gitee From 121f87f35ec7c5abc209e270766aafebb6a7286c Mon Sep 17 00:00:00 2001 From: Argo-Tianyi Date: Sun, 15 Aug 2021 22:29:56 +0800 Subject: [PATCH 3/5] =?UTF-8?q?refactor:=20=E5=A2=9E=E5=8A=A0=20GetAllStri?= =?UTF-8?q?ngs=20=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Localization/Json/JsonStringLocalizer.cs | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/src/BootstrapBlazor/Localization/Json/JsonStringLocalizer.cs b/src/BootstrapBlazor/Localization/Json/JsonStringLocalizer.cs index 70ce0ad86..497afa7ac 100644 --- a/src/BootstrapBlazor/Localization/Json/JsonStringLocalizer.cs +++ b/src/BootstrapBlazor/Localization/Json/JsonStringLocalizer.cs @@ -112,14 +112,24 @@ namespace BootstrapBlazor.Localization.Json /// /// /// - public override IEnumerable GetAllStrings(bool includeParentCultures) + public override IEnumerable GetAllStrings(bool includeParentCultures) => GetAllStringFromInject(includeParentCultures) ?? GetAllJsonStrings(includeParentCultures); + + private IEnumerable? GetAllStringFromInject(bool includeParentCultures) { - // 获得 resx 资源文件中的信息 - var ret = GetAllStrings(includeParentCultures, CultureInfo.CurrentUICulture); - if (!ret.Any()) + IEnumerable? ret = null; + var factorys = _provider.GetService>(); + if (factorys != null) { - // 获取 json 资源文件中的信息 - ret = GetAllJsonStrings(includeParentCultures, CultureInfo.CurrentUICulture); + var factory = factorys.LastOrDefault(a => a is not JsonStringLocalizerFactory); + if (factory != null) + { + var type = _assembly.GetType(_typeName); + if (type != null) + { + var localizer = factory.Create(type); + ret = localizer.GetAllStrings(includeParentCultures); + } + } } return ret; } @@ -128,13 +138,12 @@ namespace BootstrapBlazor.Localization.Json /// /// /// - /// /// - protected virtual IEnumerable GetAllJsonStrings(bool includeParentCultures, CultureInfo culture) + protected virtual IEnumerable GetAllJsonStrings(bool includeParentCultures) { - var cultureInfoName = GetCultureInfoName(culture); + var cultureInfoName = GetCultureInfoName(CultureInfo.CurrentUICulture); var resourceNames = includeParentCultures - ? GetAllStringsFromCultureHierarchy(culture) + ? GetAllStringsFromCultureHierarchy(CultureInfo.CurrentUICulture) : GetAllResourceStrings(cultureInfoName); foreach (var name in resourceNames) -- Gitee From 8915b6446ad4fd9b5bffb5192a226dafd99f7833 Mon Sep 17 00:00:00 2001 From: Argo-Tianyi Date: Sun, 15 Aug 2021 23:28:41 +0800 Subject: [PATCH 4/5] =?UTF-8?q?feat:=20GetAllStrings=20=E5=85=BC=E5=AE=B9?= =?UTF-8?q?=E7=AC=AC=E4=B8=89=E6=96=B9=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Localization/Json/JsonStringLocalizer.cs | 30 ++++++++++++++----- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/src/BootstrapBlazor/Localization/Json/JsonStringLocalizer.cs b/src/BootstrapBlazor/Localization/Json/JsonStringLocalizer.cs index 497afa7ac..b4a30c6a4 100644 --- a/src/BootstrapBlazor/Localization/Json/JsonStringLocalizer.cs +++ b/src/BootstrapBlazor/Localization/Json/JsonStringLocalizer.cs @@ -112,7 +112,26 @@ namespace BootstrapBlazor.Localization.Json /// /// /// - public override IEnumerable GetAllStrings(bool includeParentCultures) => GetAllStringFromInject(includeParentCultures) ?? GetAllJsonStrings(includeParentCultures); + public override IEnumerable GetAllStrings(bool includeParentCultures) + { + var ret = GetAllStringFromInject(includeParentCultures); + if (ret == null) + { + try + { + ret = base.GetAllStrings(includeParentCultures).ToList(); + } + catch (MissingManifestResourceException) + { + ret = Enumerable.Empty(); + } + } + if (!ret.Any()) + { + ret = GetAllJsonStrings(includeParentCultures); + } + return ret; + } private IEnumerable? GetAllStringFromInject(bool includeParentCultures) { @@ -204,13 +223,8 @@ namespace BootstrapBlazor.Localization.Json private IEnumerable GetAllResourceStrings(string cultureInfoName) { BuildResourcesCache(cultureInfoName); - - var ret = Enumerable.Empty(); - if (_resourcesCache.TryGetValue(cultureInfoName, out var resources)) - { - ret = resources.Select(r => r.Key); - } - return ret; + _resourcesCache.TryGetValue(cultureInfoName, out var resources); + return resources?.Select(r => r.Key) ?? Enumerable.Empty(); } private static StringSegment GetParentCultureName(StringSegment cultureInfoName) -- Gitee From 01a3205bfdfd2076d563d7db8473f0916e5cd45a Mon Sep 17 00:00:00 2001 From: Argo-Tianyi Date: Sun, 15 Aug 2021 23:29:39 +0800 Subject: [PATCH 5/5] chore: bump version to 5.6.6 --- src/BootstrapBlazor/BootstrapBlazor.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/BootstrapBlazor.csproj b/src/BootstrapBlazor/BootstrapBlazor.csproj index 7a21f3448..7ca5b5faa 100644 --- a/src/BootstrapBlazor/BootstrapBlazor.csproj +++ b/src/BootstrapBlazor/BootstrapBlazor.csproj @@ -1,7 +1,7 @@ - 5.6.5 + 5.6.6 -- Gitee