Lingo adds statically typed localized strings, which enables fast and less error prone user visible string entry.
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 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
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
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.
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.
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.
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")
]
)
]