Skip to content

Version 1.2.0

Choose a tag to compare

@SummaCristian SummaCristian released this 19 Jul 10:58
· 16 commits to main since this release

📦 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 @StateObject or @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: currentLanguage respects 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 LocalizerSettings for reactive UI binding
  • Use Localizer.currentLanguage for centralized logic
  • User Localizer.overrideSystemLanguage to toggle the language overriding mechanism