Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. iOS
  3. L10n-swift

L10n-swift

MITSwift5.10.3

A Swift framework for in-app language switching and advanced localization with plural support.

GitHubGitHub
325 stars31 forks0 contributors

What is L10n-swift?

L10n-swift is a Swift framework that enhances app localization by enabling dynamic language changes and supporting complex plural forms. It provides a cleaner API than native solutions and works with multiple file formats for managing translations. The framework solves the problem of rigid, restart-required language switching in iOS and macOS apps.

Target Audience

Swift developers building iOS, macOS, tvOS, or watchOS apps that require internationalization and in-app language switching. It's particularly useful for apps targeting multiple regions with diverse pluralization rules.

Value Proposition

Developers choose L10n-swift for its significant performance boost (up to 25x faster), seamless runtime language switching, and comprehensive plural support that native Swift localization lacks. Its extensible format support and Interface Builder integration streamline the localization workflow.

Overview

Localization of the application with ability to change language "on the fly" and support for plural form in any language.

Use Cases

Best For

  • Adding in-app language switching without requiring an app restart
  • Handling complex pluralization rules in multilingual apps
  • Localizing Swift apps with JSON or PLIST translation files
  • Improving localization performance over Apple's native solution
  • Testing UI layouts with pseudo-languages like right-to-left or accented text
  • Simplifying localization syntax with dot notation and extensions

Not Ideal For

  • Projects using SwiftUI that prefer native localization with @EnvironmentObject or similar patterns
  • Apps with static, pre-defined locales that never change after installation, making runtime switching unnecessary
  • Teams deeply invested in Apple's .strings-only workflow who don't need additional format support
  • Small projects with minimal localization where third-party dependency overhead isn't justified

Pros & Cons

Pros

Dynamic Language Switching

Enables changing app language at runtime without restart via a simple property set like L10n.shared.language = 'en', demonstrated in the GIF demo and notification system.

Robust Plural Support

Handles plural forms for any language with multiple arguments using .l10nPlural(), supporting complex rules through .stringsdict or similar files as per the wiki.

High Performance

Claims to be approximately 25 times faster than native Swift localization solutions, improving app responsiveness with optimized caching.

Flexible File Formats

Supports .plist, .json, .stringsdict, and .strings files, allowing teams to choose based on existing workflows, with examples in the README.

Testing Tools

Includes pseudo-languages like DoubleLength and ForcedRightToLeft for UI testing, aiding in layout validation without manual translation.

Cons

Incomplete Cocoa Support

IBInspectable for Cocoa is listed as 'coming soon,' indicating delayed features for macOS development and potential integration gaps.

Documentation Fragmentation

Key usage details are split between the README and a separate wiki, complicating the learning process and requiring extra navigation.

Swift Version Lock-in

Requires Swift 4.0+, which might force updates or be incompatible with older projects, adding migration overhead.

Dependency Overhead

Adds a third-party framework to the project, introducing maintenance and compatibility risks compared to Apple's built-in system.

Frequently Asked Questions

Quick Stats

Stars325
Forks31
Contributors0
Open Issues1
Last commit2 years ago
CreatedSince 2017

Tags

#ios#l10n#swift-package-manager#internationalization#language#pluralization#localized#localization#mobile-development#language-detection#cocoapods#swift#carthage

Built With

S
Swift

Included in

iOS51.7kSwift26.0k
Auto-fetched 14 hours ago

Related Projects

Localize-SwiftLocalize-Swift

Swift friendly localization and i18n with in-app language switching

Stars3,126
Forks328
Last commit2 years ago
BartyCrouchBartyCrouch

Localization/I18n: Incrementally update/translate your Strings files from .swift, .h, .m(m), .storyboard or .xib files.

Stars1,407
Forks116
Last commit2 years ago
BartyCrouchBartyCrouch

Localization/I18n: Incrementally update/translate your Strings files from .swift, .h, .m(m), .storyboard or .xib files.

Stars1,407
Forks116
Last commit2 years ago
LocalizationKitLocalizationKit

Realtime Dynamic localization translation delivery system for iOS and Mac OSX in Swift. Create and update texts from localization.com without needing to recompile or redeploy. Cocapod for iOS devices (iPad, iPhone, iPod Touch and Mac)

Stars1,211
Forks78
Last commit6 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub