Skip to main content
Xcode String Catalogs store source strings and locale translations in .xcstrings JSON files. Hyperlocalise has a dedicated catalog parser; follow its locale and variation limits below instead of treating the catalog as generic JSON. Supported extensions: .xcstrings.

Source file

Save this example as locales/en-US/messages.xcstrings.

Configure your files

Use this i18n.yml for the example, or add its file mapping to your existing bucket. See path templates for other layouts.

Translate

Install the CLI and set OPENAI_API_KEY in your project’s .env.local or shell. You can also configure another AI provider.
The dry run previews the work. The second command writes translations to the configured target path and updates the lockfile.

Behavior and limitations

  • Reads source text from the source-language localization. Simple entries without one fall back to the catalog key.
  • Plural, device, and substitution variants use stable :: paths. Variants require a source localization.
  • Writes translations under localizations[targetLocale], preserving catalog metadata and other localizations. JSON whitespace and ordering are normalized.
  • The example writes a separate catalog per target locale. The catalog format itself can contain multiple locales.

Next steps