$ cd /articles

// session: /articles/ios-localization-file-formats-explained-xcstrings-vs-strings-vs-xcloc.md

// March 08, 2026

iOS Localization File Formats Explained: .xcstrings vs .strings vs .xcloc

# Understand the modern iOS localization workflow. Learn when to use .xcstrings, .strings, .xcloc, and how they fit into scalable translation pipelines.

// render_markdown(content)

iOS Localization File Formats Explained: .xcstrings vs .strings vs .xcloc

If you start localizing an iOS app today, you’ll quickly encounter multiple file formats:

  • .strings
  • .stringsdict
  • .xcstrings
  • .xcloc
  • .xliff

Many developers struggle to understand which format is the source of truth and which ones are simply exchange formats.

This guide explains how modern iOS localization workflows use these formats together and how to structure a workflow that scales as your app grows.


The Modern iOS Localization Stack

Apple has gradually shifted localization workflows toward String Catalogs (.xcstrings).

Today the stack typically looks like this:

Purpose Format
Source localization file .xcstrings
Legacy storage .strings
Translation export bundle .xcloc
Translation interchange .xliff

The key concept:

.xcstrings is where your translations live.
.xcloc and .xliff are how translations move between tools.


.xcstrings: The Modern Source of Truth

Apple introduced String Catalogs to replace multiple legacy localization files.

A single .xcstrings file can now contain:

  • all translations
  • pluralization rules
  • device variants
  • metadata
  • translator comments

This replaces the older combination of .strings and .stringsdict.

If you're setting up localization today, start with a string catalog as described in the
Xcode localization guide.

Benefits of .xcstrings:

  • structured JSON format
  • better merge behavior in Git
  • built‑in context comments
  • easier automation pipelines

.strings: The Legacy Format

Before Xcode 15, localization used Localizable.strings.

Example:

“login_button” = “Log In”;

Pluralization required a separate .stringsdict file.

While still supported, .strings lacks metadata and workflow features.

For most modern projects, migrating is recommended.
See the migration guide here:


.xcloc: Translation Exchange Bundles

.xcloc files are not primary localization files.

Instead they are packages used when exporting translations from Xcode.

Typical workflow:

  1. Export localization from Xcode
  2. Send .xcloc bundle to translators
  3. Import updated .xcloc files
  4. Xcode updates your .xcstrings

This keeps the repository clean while enabling collaboration with translators or localization tools.


.xliff: External Translation Format

.xliff is a standardized translation format used by many localization platforms.

You’ll see .xliff when:

  • working with translation agencies
  • using localization SaaS platforms
  • integrating with enterprise translation pipelines

However, .xliff usually does not live in your repository long‑term.

It acts as a transport format between tools.


iOS vs Android Localization Formats

Many teams ship both iOS and Android apps.

The typical mapping looks like this:

iOS Android
.xcstrings strings.xml
.xcloc translation platform export
.xliff .xliff

Android uses XML resource files that support plurals and placeholders.

String Catalog’s localization pipeline supports both formats simultaneously so translations stay synchronized across platforms. String Catalog Docs


Recommended Localization Workflow

A practical workflow for modern mobile teams looks like this:

  1. Store translations in .xcstrings
  2. Commit them to Git
  3. Export .xcloc for translators
  4. Import updates back into the catalog
  5. automate translation updates through CI or localization tooling

This ensures:

  • translations remain version controlled
  • changes are visible in pull requests
  • translators can work outside the codebase safely

Improving Translation Accuracy

File format alone does not guarantee quality.

The biggest improvement usually comes from better context comments.

Recent versions of Xcode even support generating comments automatically to help translators understand each string’s purpose.

Learn more here:


Key Takeaways

  • .xcstrings is the modern localization source file
  • .strings is legacy and being phased out
  • .xcloc bundles are used for translation exchange
  • .xliff connects localization tools and translation services
  • strong workflows combine catalogs, version control, and automation

Understanding these formats makes it much easier to build a localization workflow that scales with your app and your team.


Related Articles

next_steps.sh
/* EXECUTE */

> Ready to Localize Your App?

// Connect your GitHub repository and start reaching users worldwide

# 1 free language | no credit card required