Swift Package Index

Lingo

https://github.com/mobelux/lingo.git

Swift code generation for Localizable.strings files


Compatibility

  • 1.1.0 and master
    5.3
    5.2
    5.1
    5.0
    4.2
  • 1.1.0 and master
    iOS
    macOS(Intel)
    macOS(ARM)
    Linux
    tvOS
    watchOS

Lingo

Lingo adds statically typed localized strings, which enables fast and less error prone user visible string entry.

Installation

📦 Swift Package Manager (recommended)

Use SPM for best overall result for both local development and CI environments.

Add Lingo to your Packages.swift file:

.package(url: "https://github.com/Mobelux/Lingo", from: "1.0.0"),

Add a Run Script build phase to your Xcode project and include the following script:

INPUT="./<app-name>/Resources/Localizable.strings"
OUTPUT="./<app-name>/Utils/Lingo.swift"

if which .build/release/lingo >/dev/null; then
.build/release/lingo --input $INPUT --output $OUTPUT
else
swift run -c release lingo --input $INPUT --output $OUTPUT
fi

🌱 Mint

mint install Mobelux/Lingo

Add a Run Script build phase to your Xcode project and include the following script:

INPUT="./<app-name>/Resources/Localizable.strings"
OUTPUT="./<app-name>/Utils/Lingo.swift"

lingo --input $INPUT --output $OUTPUT

⚙️ Manual

Clone this repo and build the executable:

swift build -c release lingo

Copy the resulting binary to a location where it can be executed. It is recommeded to add it to the project directory and include in SCM for best result on CI.

Add a Run Script build phase to your Xcode project and include the following script:

INPUT="./<app-name>/Resources/Localizable.strings"
OUTPUT="./<app-name>/Utils/Lingo.swift"

<path-to-lingo>/lingo --input $INPUT --output $OUTPUT

Usage

Add a Localizable.strings file to your project, for most configurations this is your --input file. The first time Lingo is executed it will create a Swift source file at the location specified in --output. Add this file to your Xcode project. Subsequent executions will update this file, adding new localized strings.