Edit and translate your Xcode String Catalogs (.xcstrings)

LocalePilot opens the Localizable.xcstrings files of your iOS and macOS apps, shows what is missing in each language, checks format specifiers, and writes the catalog back in Xcode's style, touching only what you changed.

What LocalePilot reads and writes

  • Missing translation: no localization, new state or empty. LocalePilot never writes an empty value: clearing a translation removes the localization, like Xcode does.
  • Plurals and device variations are editable, shown as key › plural › one.
  • Source language: a key without a localization means the key itself (Xcode convention) and is not rewritten until you edit it.
  • States: an unchanged value keeps its state (needs_review…); an edited value becomes translated.

A minimal diff, in Xcode's style

Writing back an unchanged catalog produces a byte-identical file; an edit only changes its own lines. Your code review stays readable, and the export goes through the same review, disk merge and backup as every other format.

Format specifiers checked

QA recognizes %@, %1$@, %d, %ld, %lld, %.2f, %u, %i and %s; %% is treated as text. A missing or extra specifier in a translation is flagged before export.

Known limits

  • Keys marked shouldTranslate: false and keys using substitutions (%#@count@) are preserved untouched but not shown: they stay managed in Xcode.
  • String Catalog target categories follow each language’s CLDR rules, including categories absent from the source. A missing source category uses its other form; categories unused by the target language are not exported.
  • Legacy .strings files are supported too, in UTF-8. A new language in .strings files creates a <locale>.lproj folder that you must add to the Xcode project. LocalePilot warns you in the export summary and never edits the .pbxproj; projects that use Xcode 16 synchronized folders need nothing.

Frequently asked questions

Does LocalePilot replace Xcode for String Catalogs?

No, it complements it: Xcode extracts strings from your code, LocalePilot is where you check, translate and review them. Both read and write the same .xcstrings file.

Will my file be reformatted?

No. A catalog written back without changes is byte-identical; an edit only changes its own lines, in Xcode's style.

Are plurals supported?

Yes, plurals and device variations are editable. Substitutions (%#@count@) are preserved but still edited in Xcode.

Get notified at launch

LocalePilot is being finalized. Leave your email to hear when it launches.

  • macOS 12 or later · Ollama or LM Studio optional
  • App interface in English, French, Spanish, Italian and Portuguese.