From 7663403e884a2bd594047914003c3829e5e6a17a Mon Sep 17 00:00:00 2001 From: Argo-Tianyi Date: Sat, 14 Aug 2021 00:53:36 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20wsl=20=E7=8E=AF?= =?UTF-8?q?=E5=A2=83=E7=BC=BA=E5=A4=B1=E6=96=87=E5=8C=96=E6=97=B6=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E6=98=BE=E7=A4=BA=E4=B8=8D=E6=AD=A3=E7=A1=AE=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Localization/Json/JsonStringLocalizer.cs | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/src/BootstrapBlazor/Localization/Json/JsonStringLocalizer.cs b/src/BootstrapBlazor/Localization/Json/JsonStringLocalizer.cs index 6adec1c16..19bea5414 100644 --- a/src/BootstrapBlazor/Localization/Json/JsonStringLocalizer.cs +++ b/src/BootstrapBlazor/Localization/Json/JsonStringLocalizer.cs @@ -28,7 +28,7 @@ namespace BootstrapBlazor.Localization.Json private readonly string _typeName; private readonly ILogger _logger; private readonly JsonLocalizationOptions _options; - private IServiceProvider _provider; + private readonly IServiceProvider _provider; private string _searchedLocation = ""; @@ -132,9 +132,10 @@ namespace BootstrapBlazor.Localization.Json /// protected virtual IEnumerable GetAllJsonStrings(bool includeParentCultures, CultureInfo culture) { + var cultureInfoName = GetCultureInfoName(culture); var resourceNames = includeParentCultures ? GetAllStringsFromCultureHierarchy(culture) - : GetAllResourceStrings(culture); + : GetAllResourceStrings(cultureInfoName); foreach (var name in resourceNames) { @@ -143,6 +144,16 @@ namespace BootstrapBlazor.Localization.Json } } + private string GetCultureInfoName(CultureInfo culture) + { + var cultureInfoName = culture.Name; + if (string.IsNullOrEmpty(cultureInfoName) && _options.FallBackToParentUICultures) + { + cultureInfoName = _options.FallbackCulture; + } + return cultureInfoName; + } + /// /// /// @@ -153,9 +164,10 @@ namespace BootstrapBlazor.Localization.Json private string? GetStringByCulture(CultureInfo culture, string name) { string? value = null; - BuildResourcesCache(culture); + var cultureName = GetCultureInfoName(culture); + BuildResourcesCache(cultureName); - if (_resourcesCache.TryGetValue(culture.Name, out var resources)) + if (_resourcesCache.TryGetValue(cultureName, out var resources)) { var resource = resources?.FirstOrDefault(s => s.Key == name); value = resource?.Value ?? null; @@ -171,7 +183,7 @@ namespace BootstrapBlazor.Localization.Json while (currentCulture != currentCulture.Parent) { - var cultureResourceNames = GetAllResourceStrings(currentCulture); + var cultureResourceNames = GetAllResourceStrings(GetCultureInfoName(currentCulture)); foreach (var resourceName in cultureResourceNames) { @@ -184,12 +196,12 @@ namespace BootstrapBlazor.Localization.Json return resourceNames; } - private IEnumerable GetAllResourceStrings(CultureInfo culture) + private IEnumerable GetAllResourceStrings(string cultureInfoName) { - BuildResourcesCache(culture); + BuildResourcesCache(cultureInfoName); var ret = Enumerable.Empty(); - if (_resourcesCache.TryGetValue(culture.Name, out var resources)) + if (_resourcesCache.TryGetValue(cultureInfoName, out var resources)) { ret = resources.Select(r => r.Key); } @@ -251,9 +263,9 @@ namespace BootstrapBlazor.Localization.Json return ret; } - private void BuildResourcesCache(CultureInfo culture) + private void BuildResourcesCache(string cultureInfoName) { - _resourcesCache.GetOrAdd(culture.Name, key => + _resourcesCache.GetOrAdd(cultureInfoName, key => { // 获得程序集中的资源文件 stream var langHandler = GetLangHandlers(key); -- Gitee From de2c3528bd55bb1feb92565806f3cd9dfed9e04e Mon Sep 17 00:00:00 2001 From: Argo-Tianyi Date: Sat, 14 Aug 2021 00:54:06 +0800 Subject: [PATCH 2/2] chore: bump version to 5.6.4 --- 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 3612fbb96..6db1c3d67 100644 --- a/src/BootstrapBlazor/BootstrapBlazor.csproj +++ b/src/BootstrapBlazor/BootstrapBlazor.csproj @@ -1,7 +1,7 @@ - 5.6.3 + 5.6.4 -- Gitee