What is an xcstrings file in Xcode? (Strings Catalog)

Reading time: 2 min

Updated: September 28, 2025

Navigation

Quick Summary

  • Modern format: .xcstrings files are Xcode’s new String Catalog format introduced in Xcode 15
  • JSON-based: Internally structured as JSON for better tooling and version control
  • Single file solution: Replaces multiple .strings and .stringsdict files with one unified file
  • Automatic management: Xcode automatically populates and maintains the file contents
  • Advanced features: Built-in support for pluralization, device variations, and translation states

 

What is an xcstrings File?

An .xcstrings file is Xcode’s modern String Catalog format that revolutionizes how iOS developers manage app localization. Think of it as a centralized database for all your app’s translatable text.

Unlike traditional .strings files that required separate files for each language, a single .xcstrings file contains all translations for every supported language in your app.

 

Key Features

Unified Management

String Catalogs eliminate the need to juggle multiple localization files. Everything lives in one place, making it easier to track translation progress and maintain consistency across languages.

Automatic String Detection

When you build your project, Xcode automatically scans your code for localizable strings and adds them to the .xcstrings file. No more manually copying strings or forgetting to localize new text.

Built-in Pluralization

Handle singular, plural, and zero cases directly within the String Catalog without needing separate .stringsdict files.

Device Variations

Display different text based on the device type – say “Click” on Mac and “Tap” on iPhone, all managed within the same file.

Translation State Tracking

Visual indicators show which strings are translated, need review, or are stale, making it easy to track localization progress.

 

File Structure

Internally, .xcstrings files use a JSON structure that includes:

  • Source language: Your development language (usually English)
  • Translations: All target language translations
  • Metadata: Comments, extraction state, and variation rules
  • Version info: File format version for compatibility

This JSON-based format makes .xcstrings files more version control-friendly and enables better tooling support compared to the old binary .strings format.

 

Advantages Over Legacy Files

Legacy (.strings/.stringsdict) String Catalogs (.xcstrings)
Multiple files per language Single file for all languages
Manual string management Automatic string detection
Separate files for plurals Built-in pluralization support
No translation state tracking Visual progress indicators
Binary format JSON-based, version control friendly

 

How to Create an xcstrings File

Creating a String Catalog is very simple and takes just a few steps. See How to Create a Localization File in Xcode.

 

Use Transolve to translate your app
in a snap of a finger

Cookie settings
We value your privacy
We use cookies to enhance your browsing experience, serve personalised ads or content, and analyse our traffic. By clicking "Accept All", you consent to our use of cookies. Cookie Policy