Skip to content

Releases: MikeChen1109/LiveLocalizationKit

0.7.0

13 Mar 06:51

Choose a tag to compare

LiveLocalizationKit 0.7.0

This release improves runtime localization throughput with request batching and async throttling controls.

Highlights

  • Added BatchLocalizationProvider for backends that can translate multiple compatible requests in one call
  • Added LocalizationExecutionPolicy to tune:
    • maxConcurrentAsyncRequests
    • batchWindow
    • maxBatchSize
  • Updated LiveLocalizer to:
    • throttle async provider work
    • collect compatible requests into short-lived batches
  • Updated AppleTranslationProvider to participate in the new batch translation flow
  • Expanded test coverage for batching and concurrency behavior

Documentation

  • Updated README with batch provider guidance and execution policy examples

Version

  • Runtime package version is now 0.7.0

0.6.0

13 Mar 03:45

Choose a tag to compare

0.6.0

This release refines the LiveLocalizationUI API around loading-state customization and wrapper callbacks.

Added

  • Added LiveLocalizationPhase as the shared UI-layer state model.
  • Added LiveLocalizationCompletion for wrapper completion callbacks.
  • Added SwiftUI LiveLocalizedText.placeholder { ... } for loading UI customization.
  • Added SwiftUI LiveLocalizedText.onProgress(...) and LiveLocalizedText.onCompletion(...).
  • Added UIKit LiveLocalizedLabel progress and completion handlers that also expose the current label instance.

Changed

  • Simplified LiveLocalizedText to use default text rendering plus event-driven customization.
  • Updated LiveLocalizedLabel to remain blank while loading instead of showing the source string first.
  • Updated the demo app to showcase multiline content, loading placeholders, and progress/completion-driven UI updates.
  • Updated the README to reflect the current UI wrapper API.

Removed

  • Removed LiveLocalizationTextAnimation and the public animation configuration API.
  • Removed LiveLocalizationTextRequestCoordinator.
  • Removed the older animation-based customization path in favor of placeholder/progress/completion APIs.

Notes

  • This is a breaking API change for LiveLocalizationUI, so the package moves from 0.5.0 to 0.6.0.

0.5.0

12 Mar 19:20

Choose a tag to compare

[0.5.0] - 2026-03-13

Added

  • Added pluggable cache store support with MemoryLocalizationCacheStore and DiskLocalizationCacheStore.
  • Added LocalizationCachePolicy for namespacing, provider-aware cache segmentation, and TTL-based expiration.
  • Added cache prewarming during shared configuration for persistent cache stores.
  • Added LocalizationEvent, LocalizationLogger, and ClosureLocalizationLogger for runtime observability.
  • Added a demo event log tab to inspect shared configuration, cache, and provider activity.
  • Added provider documentation for custom backends, cache configuration, and observability hooks.

Changed

  • Expanded LiveLocalization.configure(...) to accept cache store, cache policy, and logger injection.
  • Refined package platform support to iOS 18 and macOS 15 while keeping AppleTranslationProvider gated to iOS 26 and macOS 26.
  • Updated README and demo content to reflect runtime localization flows, configurable caching, and observability features.

0.4.0

12 Mar 17:41

Choose a tag to compare

[0.4.0] - 2026-03-13

Added

  • Added the new LiveLocalizationUI product for UI-level localization wrappers.
  • Added LiveLocalizedText for SwiftUI.
  • Added LiveLocalizedLabel for UIKit.
  • Added LiveLocalizationTextAnimation with .none and .fade styles.
  • Added UI-layer request coordination tests and demo coverage for the new wrappers.

Changed

  • Moved shared localization state to actor-based concurrency instead of relying on @unchecked Sendable.
  • Updated LiveLocalization shared configuration flow to async usage.
  • Updated the demo app to show both direct core API usage and the new UI wrapper usage in SwiftUI and UIKit.
  • Updated README examples to reflect the current package naming, install path, and UI-layer APIs.
  • Continued the package rename from the previous DebugLocalization* surface to the LiveLocalization* naming now used across the repository.

0.3.0

11 Mar 18:08

Choose a tag to compare

[0.3.0] - 2026-03-11

Added

  • Added TranslationPreparationGate as a quick in-app SwiftUI entry point for checking translation language pack availability and triggering the system preparation flow.
  • Added TranslationPreparationCoordinator.needsPreparation, refreshPreparationStatus(force:), requiresPreparation(force:), and currentPreparationRequest to support custom preparation UIs.

Changed

  • Updated the demo app to use TranslationPreparationGate at the root instead of wiring the preparation flow directly in RootDemoView.
  • Simplified the demo app startup flow to always configure AppleTranslationProvider() for the translation preparation example.
  • Updated the README to document the in-app preparation flow, coordinator-based customization, and the new demo usage.

Release 0.2.0

11 Mar 16:01

Choose a tag to compare

[0.2.0] - 2026-03-11

Added

  • Introduced LocalizationProvider as the primary public provider protocol.
  • Added DebugTranslate.configure(provider:) as the global shared configuration entry point.
  • Added String.localize(), String.localize(using:), String.localizeSync(), and String.localizeSync(using:).
  • Added SyncLocalizationProvider for providers that can localize without async work.
  • Added runtime package version access through DebugLocalizationVersion.current.

Changed

  • Simplified the default developer-facing API around shared configuration and string-based localization calls.
  • Updated the demo app to use the new shared localization flow in both SwiftUI and UIKit.
  • PseudoLocalizationProvider, PassthroughLocalizationProvider, and MockTranslationProvider now support sync localization paths.
  • DebugLocalizer now supports both async and sync localization access while keeping shared usage thread-safe.

Removed

  • Removed the older provider alias and configuration helper APIs that were superseded by the new entry points.

Release 0.1.0

11 Mar 15:10

Choose a tag to compare

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project follows Semantic Versioning.

[0.1.0] - 2026-03-11

Added

  • Initial public baseline for the DebugLocalization package.
  • DebugLocalizationCore with async localization provider abstractions and DebugLocalizer.
  • Built-in provider modes for passthrough, pseudo-localization, and mock translation flows.
  • DebugLocalizationTranslationSupport with Apple Translation integration for supported iOS configurations.
  • Translation preparation coordination for checking and downloading language resources before translation.
  • Public runtime version constant via DebugLocalizationVersion.current.