Skip to content

perf: cache preferred languages in L10n to avoid recomputing on every call (#16)#27

Merged
ShadyUnderLight merged 1 commit intomainfrom
fix/issue16-l10n-candidates-cache
Apr 20, 2026
Merged

perf: cache preferred languages in L10n to avoid recomputing on every call (#16)#27
ShadyUnderLight merged 1 commit intomainfrom
fix/issue16-l10n-candidates-cache

Conversation

@ShadyUnderLight
Copy link
Copy Markdown
Owner

修复内容

问题L10n.bundle 初始化时,每次遍历 Locale.preferredLanguages.map({ $0.lowercased() }) 都会重新创建一个新数组,而 Locale.preferredLanguages 在 App 生命周期内完全稳定。

修复

  • 新增 cachedPreferredLanguages: [String] static let,在 L10n enum 初始化时计算一次,后续 bundle 初始化以及 string() / format() 间接调用时直接读取缓存,不再重复调用 Locale.preferredLanguages.map(...)

与 issue #10 的关系

影响范围

  • 性能优化,不影响功能正确性
  • 行为不变,候选语言匹配逻辑完全一致

@ShadyUnderLight ShadyUnderLight merged commit 6667e33 into main Apr 20, 2026
2 checks passed
@ShadyUnderLight ShadyUnderLight deleted the fix/issue16-l10n-candidates-cache branch April 20, 2026 09:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant