Swiftpack.co - Mobelux/Lingo as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by Mobelux.
Mobelux/Lingo 1.1.3
Swift code generation for Localizable.strings files
⭐️ 5
🕓 31 weeks ago
macOS
.package(url: "https://github.com/Mobelux/Lingo.git", from: "1.1.3")

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.

Plugin Support

Lingo can be used as a build tool plugin for Xcode projects or Swift packages. It does not require any configuration when used as a plugin.

Xcode

Add Lingo as a package dependency to your project without linking any of the products.

Open the Build Phases inspector for the desired target, expand the Run Build Tool Plug-ins section, and select the + button. Select LingoPlugin from the list and add it to the project.

Swift Package

After adding Lingo as a package dependency in Package.swift, add LingoPlugin to a target using the plugins parameter:

targets: [
    .target(
        ...
        plugins: [
            .plugin(name: "LingoPlugin", package: "Lingo")
        ]
    )
]

GitHub

link
Stars: 5
Last commit: 3 days ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Release Notes

1.1.3
31 weeks ago

What's Changed

Full Changelog: https://github.com/Mobelux/Lingo/compare/1.1.2...1.1.3

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics