Skip to content

How to deal with SwiftUI previews inside SPM packages and localization.

Notifications You must be signed in to change notification settings

rcaos/SwiftUI-Localization-Demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SwiftUI Preview Localization in Swift Package Manager

SwiftUI Preview Localization Demo

Problem

When building modular iOS apps with Swift Package Manager (SPM), SwiftUI previews fail to display localized strings from String Catalogs (.xcstrings files). The Xcode preview locale setting and .environment(\.locale) modifier don't resolve internationalization (i18n) resources—previews show string keys instead of translated text.

Common issues:

  • Bundle.module not accessible in preview context
  • Xcode preview localization not working in SPM packages
  • String Catalog strings missing in SwiftUI previews
  • Multi-language preview testing broken in modular architecture

Solution

A lightweight type-safe localization system for iOS internationalization that fixes SwiftUI preview i18n in Swift Package Manager modules—no SwiftGen, R.swift, or code generation required.

Key Features:

  • ✅ SwiftUI preview localization in SPM modules
  • ✅ Type-safe string references (compile-time safety)
  • ✅ Native String Catalog (.xcstrings) support
  • ✅ Multi-language Xcode preview testing
  • ✅ No external dependencies or build scripts
  • ✅ Pure Swift implementation

Technical Approach

Custom LocalizableString wrapper with preview language override system that correctly resolves Bundle.module resources during Xcode preview runtime. Works directly with compiled .lproj bundles from String Catalogs.

Full Documentation

Complete implementation guide and technical details →

Use Cases

  • Modular iOS apps using Swift Package Manager
  • Multi-language applications with internationalization (i18n/l10n)
  • Teams wanting type-safe localization without code generation tools
  • Projects requiring Xcode preview localization in SPM packages
  • SwiftUI internationalization in feature-module architecture

About

How to deal with SwiftUI previews inside SPM packages and localization.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages