Popularity
4.4
Growing
Activity
0.0
Declining
311
4
32

Description

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

Programming language: Swift
License: MIT License
Latest version: v5.10.1

L10n-swift alternatives and similar libraries

Based on the "Localization" category.
Alternatively, view L10n-swift alternatives based on common mentions on social networks and blogs.

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 Swift4 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] Support for pseudo-languages: NonLocalized, DoubleLength, Accented, Bounded, ForcedRightToLeft.
  • [x] Use .l10n() to localize any string, date and numbers.
  • [x] Use more than one language 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.10'

Carthage

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

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:

 "hello.world".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), [email protected]

๐Ÿ”‘ 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.