Skip to content

Commit ac988f7

Browse files
committed
refactor: 重构 GetAllStrings 逻辑
1 parent d51181c commit ac988f7

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

src/BootstrapBlazor/Localization/Json/JsonStringLocalizer.cs

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -159,22 +159,29 @@ private void HandleMissingResourceItem(string name)
159159
}
160160
}
161161

162+
private List<LocalizedString>? _allLocalizerdStrings;
163+
162164
/// <summary>
163165
/// 获取当前语言的所有资源信息
164166
/// </summary>
165167
/// <param name="includeParentCultures"></param>
166168
/// <returns></returns>
167169
public override IEnumerable<LocalizedString> GetAllStrings(bool includeParentCultures)
168170
{
169-
var ret = GetAllStringsFromService(includeParentCultures)
170-
?? GetAllStringsFromBase(includeParentCultures)
171-
?? GetAllStringsFromJson(includeParentCultures);
171+
if (_allLocalizerdStrings == null)
172+
{
173+
var items = GetAllStringsFromService()
174+
?? GetAllStringsFromBase()
175+
?? GetAllStringsFromJson()
176+
?? [];
172177

173-
return ret;
178+
_allLocalizerdStrings = MegerResolveLocalizers(items);
179+
}
180+
return _allLocalizerdStrings;
174181

175182
// 1. 从注入服务中获取所有资源信息
176183
// get all strings from the other inject service
177-
IEnumerable<LocalizedString>? GetAllStringsFromService(bool includeParentCultures)
184+
IEnumerable<LocalizedString>? GetAllStringsFromService()
178185
{
179186
IEnumerable<LocalizedString>? ret = null;
180187
var localizer = Utility.GetStringLocalizerFromService(Assembly, typeName);
@@ -187,7 +194,7 @@ public override IEnumerable<LocalizedString> GetAllStrings(bool includeParentCul
187194

188195
// 2. 从父类 ResourceManagerStringLocalizer 中获取微软格式资源信息
189196
// get all strings from base json localization factory
190-
IEnumerable<LocalizedString>? GetAllStringsFromBase(bool includeParentCultures)
197+
IEnumerable<LocalizedString>? GetAllStringsFromBase()
191198
{
192199
IEnumerable<LocalizedString>? ret = base.GetAllStrings(includeParentCultures);
193200
try
@@ -206,7 +213,6 @@ public override IEnumerable<LocalizedString> GetAllStrings(bool includeParentCul
206213

207214
// 3. 从 Json 文件中获取资源信息
208215
// get all strings from json localization file
209-
IEnumerable<LocalizedString> GetAllStringsFromJson(bool includeParentCultures) => CacheManager.GetAllStringsByTypeName(Assembly, typeName)
210-
?? CacheManager.GetAllStringsFromResolve(includeParentCultures);
216+
IEnumerable<LocalizedString>? GetAllStringsFromJson() => CacheManager.GetAllStringsByTypeName(Assembly, typeName);
211217
}
212218
}

0 commit comments

Comments
 (0)