Xcode String Catalog translation

Translate .xcstrings files automatically

autoglot translates Xcode String Catalogs into 30+ languages while preserving the structures that Xcode expects. New and changed strings stay localized without editing catalog JSON by hand.

What is an .xcstrings translator?

An .xcstrings translator reads an Xcode String Catalog, translates its source string units, and writes each result back into the catalog's localization structure. A reliable translator must preserve more than text: it must keep format specifiers, plural categories, substitutions, device variations, comments, and translation states valid.

autoglot is built around that catalog structure. It translates the string units that need work, retains completed translations, and validates protected syntax before accepting a result.

.github/workflows/translate.yml
name: Translate String Catalogs

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

jobs:
  translate:
    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'

How String Catalog translation works

The catalog remains the source of truth. autoglot updates its localizations without introducing a proprietary file format.

  1. 01

    Read the catalog

    autoglot identifies source strings, localizations, variations, comments, and translation states directly from the .xcstrings file.

  2. 02

    Translate what needs work

    Completed translations remain intact. New strings and entries marked for review are translated into the requested languages.

  3. 03

    Protect Xcode syntax

    Format specifiers, substitutions, plural structures, and other non-translatable tokens are protected and validated.

  4. 04

    Update every language

    The translated localizations are written back into the String Catalog so the project stays ready to build in Xcode.

Built for real Xcode catalogs

String Catalogs contain structured variations and runtime placeholders that ordinary text translators can corrupt.

Format specifiers

%@, %d, %lld, positional specifiers, and string interpolation remain unchanged.

Plural variations

Plural branches stay structurally valid while the words inside each branch are translated.

Context comments

Developer comments travel with the source text so ambiguous interface labels retain their context.

Existing translations

Translated entries are preserved instead of being regenerated whenever the workflow runs.

Frequently asked questions

Does autoglot work with SwiftUI and UIKit?
Yes. Both frameworks use Xcode localization resources, and autoglot works directly with the .xcstrings catalog rather than depending on a specific UI framework.
Does it replace translated strings every time?
No. Existing completed translations stay in place. New strings and entries whose state requires another translation are the ones processed.
Can it translate plurals and variables?
Yes. autoglot preserves catalog variations and protects format specifiers and substitutions while translating their surrounding text.
Does it convert the catalog to another format?
No. The input and output remain Xcode String Catalog files, so there is no proprietary localization format to synchronize.

Translate your first String Catalog

Use one free translation to try autoglot with a real .xcstrings file.