Xcode String Catalogs

Integrate Xcode String Catalogs
with Localazy within minutes.

Upload your Xcode String Catalogs files to Localazy and achieve proper continuous translation of your iOS and macOS apps. Use the CLI or API to fully automate the process and enjoy a hassle-free .xcstrings localization.
Start now
Improved plural support
Do not worry about setting plurals correctly. Localazy supports all plural types from the latest version of the CLDR definition file.
Placeholder detection
Translators will not break your project. Localazy prevents errors by highlighting common and custom placeholder formats.
Advanced dev tools
Utilize the powerful CLI tool, variety of CI/CD options, SDKs, libraries, and more for a great developer experience!
Advanced file conversion options
Make localizable file format conversions a part of your automated workflows with Localazy. Convert your files into 25+ other formats.
Platform-agnostic solution
Localazy respects your codebase structure. No changes to your code are needed to utilize Localazy to its full potential.

Integrate
the way you like it

Use Localazy, a software localization suite & translation management system, to take care of your Xcode String Catalogs localization.

Choose from multiple developer-friendly options to start with Localazy. Integrate your Xcode String Catalogs project the way that suits your workflow.

start integrating

The best option for developers that want to make localization an automated part of their workflow.

Upload your texts and existing translations in any format directly to start quickly.

Add source keys via the web interface online and sync them into your project later.

Translate strings directly or upload them into your Localazy project.

Localization tools for all your needs

Get your project translated or reviewed by professional native speakers directly inside the platform.
Read article
Localization team on autopilotNo need to manage an entire localization team
Integrate with your stack50+ integrations and growing
Faster international growthAgile localization platform that puts you in control
Setup & forget solutionEasy CI/CD integration + translation delivery options
Easy to start and usePowerful CLI for devs & intuitive UI for the rest

Localazy integrates with your stack

iOSReactVue.jsAngularJavaScriptJSONFlutterIONICCordovaUnity

Xcode String Catalogs localization

A String Catalog in Xcode is a centralized file for managing localized strings in your iOS or macOS app. Instead of juggling multiple .strings files, a String Catalog stores all translations in one place, making it easier to add languages, keep translations consistent, and update your app’s user interface text.

How to create a String Catalog in Xcode:

  1. Open your project in Xcode.
  2. In the Project Navigator, right-click on your project folder (or the group where you want to keep the catalog).
  3. Choose New File… and then under Resource, select String Catalog.
  4. Name your file (e.g., Localizable.xcstrings) and click Create.

How to configure a String Catalog:

  1. Select the new .xcstrings file in the Project Navigator.
  2. In the editor, you’ll see a table-like view where you can add keys (string identifiers) and provide translations for each supported language.
  3. To add more languages, go to your project settings, select the Info tab, click Localizations, and enable the languages you want. The new languages will appear in the catalog automatically.
  4. Use the Value column for your source language, and fill in the translations for other languages in their respective columns.

When you run the app, Xcode automatically picks the correct string based on the user’s device language settings.

Using Localazy with String Catalogs: Instead of managing translations manually inside Xcode, you can connect your .xcstrings file to Localazy.

  • Upload your source language to Localazy. You can do this manually in the app interface or — to speed up your workflow — use the Localazy CLI to upload files with a single command, enabling automated integration with your build or deployment process. For example:
localazy upload

This command uploads your latest .xcstrings file to Localazy automatically, so you don’t need to manually handle files every time.

Once your source is in Localazy, you can choose how to translate your project:

  • Translate on your own or invite contributors and use our built-in suggestion system.
  • Translate quickly in bulk, using machine translation or Localazy AI with context-aware results. This is ideal for first iterations or localization testing.
  • Automate human translations with Continuous Localization. After your Localazy integration is set up, you can request translations from our professional linguists and have your projects translated automatically. The service works proactively, so you can check in only occasionally to monitor progress.

When all translations are complete, download ready-to-use .xcstrings files for all supported languages.

localazy download

This way, Localazy keeps your String Catalog in sync across all languages, reduces manual editing, and ensures faster, consistent localization.

Last updated: 16/10/2025

The key benefits include:

  • A centralized view of all translations.
  • Easier tracking of missing or outdated strings.
  • Built-in support for pluralization and variants.
  • Reduced errors compared to manually editing multiple .strings files.

Xcode’s String Catalog is a replacement for traditional .strings files, designed to make localization more organized and efficient by consolidating all translations into a single, user-friendly interface.

For example, rather than maintaining separate files for source and target languages, a String Catalog groups them together. You can instantly see all language variants of a string side by side, making it faster to spot gaps or errors. This also helps developers and translators easily manage keys, track missing translations, and avoid inconsistencies.

With the Xcode String Catalog integration into Localazy, the process becomes even smoother:

  • Developers push source strings to Localazy directly from the catalog.
  • Professional translators, machine translation, AI, or your translator community can handle the localization.
  • Completed translations sync back into the catalog automatically, keeping everything organized and up to date without extra manual steps.

This integration eliminates tedious file handling and makes scaling to multiple languages faster, more reliable, and less error-prone.

Last updated: 16/10/2025

Pluralization and text variations are essential for natural-sounding translations. Different languages use different rules — for example, English typically distinguishes between singular and plural (“1 file” vs. “2 files”), while other languages, like Polish or Arabic, have three or more plural forms.

With Xcode’s String Catalog, you can define plural and variant strings directly within the catalog instead of creating multiple separate keys. For example, you might create a single entry for FileCount that includes:

  • English: one = "%d file", other = "%d files"
  • Polish: one = "%d plik", few = "%d pliki", many = "%d plików", other = "%d pliku"

The catalog ensures these rules are applied consistently across all supported languages.

Variations can also be defined for context, such as different messages depending on gender or device type. This keeps everything structured in one place and avoids the confusion of multiple scattered .strings entries.

With Localazy’s integration, pluralization and variations become even easier to manage:

  • Localazy automatically understands the plural forms required by each language.
  • Translators see the proper plural categories (e.g., “one,” “few,” “many”) with clear context, reducing mistakes.
  • Localazy extracts context from XML comments and catalog metadata to give translators more guidance.
  • Translations sync seamlessly back into the String Catalog, ensuring all plural forms and variations are correctly preserved.

This combination makes plural handling smooth, efficient, and reliable — especially when scaling your app to multiple languages.

Last updated: 02/10/2025

When working with multiple languages in Xcode’s String Catalog, good organization and consistency are key. Here are some best practices to follow:

  1. Keep a clear source language

Always start with a complete and well-structured source language. This makes it easier to track missing translations and maintain consistency.

  1. Use descriptive keys

Instead of generic names like label1, use meaningful keys such as LoginButtonTitle. This helps translators and developers understand the context.

  1. Take advantage of pluralization and variations

Define plural forms and variations (e.g., gender, device type) directly in the catalog to avoid hardcoding conditions in your app logic. For example:

  • English: one = "%d comment", other = "%d comments"
  • Czech: one = "%d komentář", few = "%d komentáře", other = "%d komentářů"
  1. Add comments and context

Use the catalog’s description fields or developer comments to provide translators with context. This reduces ambiguity and improves translation quality.

  1. Regularly sync and validate

Keep all language versions up to date and validate them during development. Missing or outdated translations can break the user experience.

Managing multiple languages with Localazy #️⃣

Localazy makes handling multiple languages smoother and error-free:

  • Automatically extracts comments and context from String Catalogs, giving translators clear guidance.
  • Provides built-in plural rules for each language, so translators know exactly what forms are required.
  • Syncs translations seamlessly between Xcode and Localazy with the Localazy CLI, keeping all languages aligned.
  • Supports pre-translation via machine translation, Localazy AI that understands context, and professional translators to minimize manual work.
  • Tracks progress across all languages, so you instantly see which ones are complete or missing.

With these practices and Localazy’s automation, your String Catalogs stay consistent, well-structured, and ready for global audiences.

Last updated: 16/10/2025

Over time, your project’s .xcstrings files may accumulate unused or outdated keys that can clutter the localization process and confuse translators. Cleaning them up keeps your String Catalog organized and efficient.

Best practices for removing unused strings:

  1. Check references in your code Before deleting any string, verify that it’s no longer used in your source code. Xcode’s “Find in Project” is a quick way to search for references.

  2. Use Xcode’s String Catalog editor

  • Open your .xcstrings file in Xcode.
  • Look for strings marked as unused (Xcode often flags these).
  • Remove them directly in the catalog to keep all language variants consistent.
  1. Delete carefully across all languages When you remove a key from the source language, make sure to also remove it from all other language entries in the catalog to avoid mismatches.

  2. Keep version control in mind Always commit your .xcstrings changes in Git (or another Version Control System - VCS) so you can easily revert if something breaks after cleanup.

With the xcstring integration in Localazy:

  • Keys deleted from your source file are detected automatically during upload.
  • Removing a string in your source .xcstrings ensures it’s also cleaned up across all target languages in Localazy. If the removed string — referred to as a deprecated key in Localazy terminology — later reappears in your source file during an upload, it is restored to the active state with all associated data (context, translations, contributors, etc.).
  • Translators see only the active, relevant strings, avoiding wasted effort on outdated content.

This way, your localization workflow stays clean, consistent, and free from unnecessary clutter.

Last updated: 02/10/2025
Integrate Localazy with Xcode String Catalogs.

💨 Make localization a breeze in minutes. ⏰

integrate now

Read more about Xcode String Catalogs

Trusted byXcode String Catalogs users