We take two different approaches when localizing iOS apps. Primarily, we use POEditor with Fastlane plugin to synchronize it by calling one command. Alternative approach is to use ACKLocalization tool synchronized with a Google sheet. Optionally, we use R.swift to check that localization resources are synchronized at compile time.
- First, we need to create POEditor project. Usually, we have one project containing both Android and iOS strings.
- If we use imported Fastlane configuration we need to setup POEditor environment variables. The imported lanes use Poesie + Fastlane plugin by our colleague Patrik Potoček. You can easily use this plugin in custom Fastlane configurations.
- Optionally, setup R.swift.
- Call your localization lane (
localize
when using imported lanes) for updating your string files.
Using Google Sheets as an alternative approach has a few minor pros and cons:
- Pros:
- No need to pay for POEditor.
- Versioning.
- Cons:
- Sheet can be broken when the user is not careful (but the changes are reversible).
Setup using the guide provided in ACKLocalization.
We have a good experience with creating framework with all the resource files and generating public headers for it using R.swift. This makes the whole process resilient to changes.