Automatic iOS localization

Keep every String Catalog language in sync

Run autoglot when source strings change. It translates the new work, preserves completed localizations, validates Xcode syntax, and updates the catalog automatically.

How do you automate .xcstrings translation?

Add a GitHub Actions workflow that watches .xcstrings files and runs autoglot when they change. The workflow sends the catalog and target languages to autoglot, waits for translation, and writes the updated localization data back to the repository.

Because autoglot retains translated entries and reuses cached results, routine source-code changes do not require translating the entire catalog again.

.github/workflows/translate.yml
name: Keep localizations current

on:
  push:
    branches: [main]
    paths: ['**/*.xcstrings']

jobs:
  localize:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: autoglot/action@v2
        with:
          api-key: ${{ secrets.AUTOGLOT_API_KEY }}
          base-branch: main
          languages: 'de,fr,ja,es,zh-Hans,ko,pt-BR'

One workflow, every update

Localization becomes a repeatable part of the development pipeline instead of a separate manual task.

  1. 01

    Watch source catalogs

    GitHub Actions runs the localization job only when an .xcstrings file changes.

  2. 02

    Detect translation work

    autoglot identifies new strings and localizations whose state says they need another translation.

  3. 03

    Translate and validate

    Target languages are produced in bulk, with protected placeholders and structural validation.

  4. 04

    Keep the repository current

    The updated catalogs return to the codebase so localizations stay synchronized with source changes.

Automation without unnecessary retranslation

The workflow is designed for repeated use as an app evolves, not just for an initial translation pass.

Incremental updates

Existing translated entries remain untouched while new or changed work is processed.

Translation reuse

Cached source, language, and context matches are reused across repeated workflow runs.

Safe placeholders

Xcode format specifiers and substitutions are protected before text reaches the translator.

Project terminology

Glossaries and project style guidance keep recurring product language consistent.

Frequently asked questions

Does the workflow translate the entire catalog on every push?
No. Completed catalog translations and matching cached translations are reused. The workflow focuses on strings that still require work.
Can I limit when localization runs?
Yes. Standard GitHub Actions branches, paths, and event filters control exactly when the workflow starts.
What happens when a source string changes?
Its target localizations are treated as needing review and are translated again, while unrelated completed strings stay intact.
Can different repositories use different terminology?
Yes. Project glossaries and style guidance can supply repository-specific terminology and tone.

Automate your String Catalogs

Connect a repository and keep every target language current as the app changes.