Popularity
2.5
Growing
Activity
5.3
Growing
122
3
11

Monthly Downloads: 0
Programming language: Swift
License: MIT License
Tags: Localization    
Latest version: v5.5.2

L10n-swift alternatives and similar libraries

Based on the "Localization" category

Do you think we are missing an alternative of L10n-swift or a related project?

Add another 'Localization' Library

README

Build Status CocoaPods Version Language Swift3 CocoaPods Platform CocoaPods License [Pod method Compatible](#-installation) Mentioned in Awesome-swift

<!--Docs percent--> <!--codecov--> <!--Codacy Badge--> <!--codebeat badge-->

L10n-swift is a simple framework that improves localization in swift app, providing cleaner syntax and in-app language switching.

Overview

🌟 Features

  • [x] Change the language of your apps "on the fly".
  • [x] IBInspectable for Xcode Interface Builder (Cocoa - coming soon).
  • [x] Support for user-defined Localizable file names.
  • [x] Support for formats: *.plist, *.json, *.stringsdict, *.strings.
  • [x] Support for grouping localization keys.
  • [x] Support for plural forms in any language with multiple arguments.
  • [x] Use .l10n() to localized any string, date and numbers
  • [x] Use more than one languages at the same time.
  • [x] About 25 times faster than a native solution.

💻 Demo

pod try L10n-swift

⚠️ Requirements

  • iOS 9.0+ | macOS 10.10+ | tvOS 9.0+ | watchOS 2.0+
  • Swift 3.0+

👥 Communication

  • If you found a bug, open an issue.
  • If you have a feature request, open an issue.
  • If you want to contribute, submit a pull request.

📗 Installation

Core Extension IBInspectable
L10n-swift ✔️ ✔️ ✔️
L10n-swift/Core ✔️
L10n-swift/Extension ✔️ ✔️
L10n-swift/IBInspectable ✔️ ✔️

CocoaPods

 pod 'L10n-swift', '~> 5.5'

Carthage

github "Decybel07/L10n-swift", ~> 5.5

Swift Package Manager

.Package(url: "https://github.com/Decybel07/L10n-swift.git", majorVersion: 5)

📘 Usage

Import L10n_swift at the top of each Swift file that will use framework.

 import L10n_swift

Get localized text

Add .l10() following any String object you want localized:

 "HelloWorld".l10n()

Get localized number

Add .l10() following number you want localized. Using the number format for the current language:

 12.l10n()
 24.l10n(minIntegerDigits: 4)
 1.61803.l10n()
 2.71828.l10n(fractionDigits: 2)

 3.14.l10n { formatter in
     formatter.numberStyle = .currency
 }

### Get localized date

Add .l10() following any Date object you want localized using the date format for the current language:

 Date().l10n()

 Date().l10n { formatter in
     formatter.dateStyle = .medium
 }

Get plural

Add .l10nPlural(CVarArg...) following any String object you want translated with plurals:

 "numberOfApples".l10nPlural(2)

More about plurals, you can read on wiki

Observe language changed

Add observer for notification L10nLanguageChanged This notification is called when language has been changed

 NotificationCenter.default.addObserver(
     self, selector: #selector(self.yourFunction), name: .L10nLanguageChanged, object: nil
 )

Set language

 L10n.shared.language = "en"
 L10n.shared.language = "en-GB"

At runtime, you can switch the language at any time by setting the language property

Get current language

 L10n.shared.language

Get locale for current language

 L10n.shared.locale

Get list of supported languages

 L10n.supportedLanguages

A list of all the languages contained in the main bundle.

Get preferred language

 L10n.preferredLanguage

A preferred language contained in the main bundle

Supported formats

.plist, .stringsdict

More about .plist format you can read on wiki

More about .stringsdict format you can read on wiki

#### .json

More about .json format you can read on wiki

#### .strings

More about .strings format you can read on wiki.

📙 FAQ

🤓 Author

Adrian Bobrowski (Decybel07), adrian071993@gmail.com

🔑 License

L10n-swift is available under the MIT license. See the LICENSE file for more info.


*Note that all licence references and agreements mentioned in the L10n-swift README section above are relevant to that project's source code only.