Repository navigation
Version 1.2.0
📦 LocalizerKit 1.2.0
This release introduces full support for user-defined language overrides, a reactive settings model for SwiftUI, and improved internal architecture, while remaining lightweight and easy to adopt.
✨ New Features
✅ LocalizerSettings (SwiftUI Integration)
A new @MainActor ObservableObject for use in views, providing:
@AppStorage-backed binding to selectedLanguage- Support for overriding system languages via a toggle (
.overrideSystemLanguages) - Reactive updates across views using
@StateObjector@ObservedObject
@StateObject` private var settings = LocalizerSettings()
Toggle("Override system language", isOn: $settings.overrideSystemLanguages)
Picker("Language", selection: $settings.selectedLanguage) {
ForEach(Localizer.availableLanguages, id: \.self) {
Text("\($0.flag) \($0.displayName)").tag($0)
}
}✅ Updated Localizer
- New logic:
currentLanguagerespects user override if enabled - Cleaner API:
Localizer.get(_:in:)accepts a language override.
You can now ask for the localization in a different language, for example:
Text(Localizer.get(LocalizedKey.welcome, in: .fr))- Provides
availableLanguages: only the registered, usable localizations
🛠 Improvements
- Improved documentation across all public APIs
🔄 Migration Notes
If you’re updating from 1.1.0:
- Use
LocalizerSettingsfor reactive UI binding - Use
Localizer.currentLanguagefor centralized logic - User
Localizer.overrideSystemLanguageto toggle the language overriding mechanism