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.

Use the API to export translations and import content from/to Localazy programmatically.

Tool for all your needs

Hand over the translation work to Localazy Continuous Localization Team to translate your project.
Read article
Localization team on autopilot Workflow Automation
Integrate with your stack 50+ integrations and growing
Empower international growth Agile localization platform
Setup & forget solution CI/CD integration + Automation options
Easy to start and use CLI on steroids & intuitive UI

What is your preferred platform?

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: 02/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: 02/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: 02/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 by Xcode String Catalogs users

07/18/2020
Simple implementation and you are done
Being a developer, I am amazed & happy to see such a simple, fast and efficient way to Localize your platform. No boilerplate codes, just a simple implementation and you are done.
06/16/2020
Perfect for Android app translations
Perfect for Android app translations. Can't wait until iOS is ready as well.
Evanova Android

Evanova Android

Trustpilot review
06/16/2020
Excellent software
Very nice user interface, very nice people providing support. This is exactly the tool every application's owner wishing translation support needs.
Small Bro Tech

Small Bro Tech

Trustpilot review
06/08/2020
Best App Localization Software
Localazy is definitely the best localization plugin I have found for Android Studio. Simple to integrate, amazing website UI/UX and useful translation services.Absolute essential for every app developer
Flubberlutsch

Flubberlutsch

Trustpilot review
06/05/2020
Very user friendly
Very user friendly, straight-forward interface and a pleasurable translation workflow.
06/04/2020
Amazing translation platform to localize my apps!
I am super impressed by the translation platform provided by Localazy – I didn’t even know that something like this would be possible when I first started looking for localization solutions for my app; but once I’d seen it, I knew that it was something that I definitely had to have. Localazy has made it easy for my apps to add translations, helping me provide a more global audience reach. And the Localazy support team is awesome!
Floating Apps

Floating Apps

Trustpilot review
06/03/2020
Translating Floating Apps with Localazy
I use Localazy to translate my mobile app Floating Apps, that has more than 7 million downloads on Google Play. It works great. I have a lot of contributors and volunteers, and Localazy helps me to keep track of changes and eliminate inaccurate and harmful translations. I no longer need to wait for contributors to translate the app as updated translations can be delivered with OTA updates. Integrating Localazy with their Gradle plugin was quick and easy.
Matteo Magnone

Matteo Magnone

Trustpilot review
05/28/2020
Simply the best translation service
I met Localazy by accident, looking for a way to translate my app in a simple and cheap way. The system is well done, simple and intuitive, plus the integration is really fast! The support service is fantastic, they even modified options to perfectly integrate the system into my app! I love them!
Raghav S

Raghav S

on G2
08/24/2020
"A great automated translation tool for even a non-developer"
I got to know about this product from a friend. They told me that it provides OTA translations, I was in total denial first. But when I first checked it out I was totally in awe. It removes the hassle of adding new languages via each app update. Their prices are also really low.
Ricardo Fiorani

Ricardo Fiorani

11/30/2020
The best tool for managing translations and crowdsourcing translations
I wanted to keep it REALLY simple when it comes to the internationalization of my application, however, handling translations on JSON files turned out to be a big pain. That's why I started searching for translation management tools. Upon analyzing many tools out there, I found Localazy the easiest, the simplest, and fastest tool. Since I want my game to be built close to what my users expect, Localazy stood out with it's "crowd-sourced" way of translation management. Today I completely recommend Localazy to all my friends and their projects.
Henrik B.

Henrik B.

12/22/2020
“Best in class”
It was extremely easy to setup and implement localazy in our development process. We use it with a vue js application and adding languages couldn't be easier.
Jose B.

Jose B.

11/19/2020
“Best of translation for apps”
Used on telegram-bot app
Teo Coding

Teo Coding

on Crozdesk
05/28/2020
"Great translations tool"
It allowed me to translate my app into many languages, by sharing the translations I saved and at the same time my audience grew a lot. Simple and quick to integrate
Martin V.

Martin V.

capterra
01/04/2021
Great for all who needs to have application in multiple languages
Very easy implementation, easy to use & great translation helpers. Very flexible development team & Fast support.
Avishay T.

Avishay T.

capterra
06/23/2021
Nice, fast, efficient
I used it for translating other app from English to Hebrew. It has Amazon built-in translation. Liked it.
Daniel M.

Daniel M.

capterra
07/06/2021
Don't waste your time, get Localazy. 😃
Pretty useful and easy to use, love the features and also the prices. When I came the first time to it, implementation was easy and took just 20 minutes for it.
David M.

David M.

capterra
06/16/2021
Saves you the time and headache of having to set up the translation files
It simplifies the handover process for the clients.
Onofre G

Onofre G

G2
04/09/2021
Everything great so far
It has been a great experience using localazy so far. super proactive support team.
Lukas T.

Lukas T.

G2
06/28/2021
It is the best solution we could ask for
Localazy helps us with translations, localization and even makes our process so much easier.
Vlatka T

Vlatka T

G2
04/01/2021
Great, pleasant and fast experience
Realy fast and easy to understand. I managed to know how to use it in just few minutes. It enabled me to create a multilingual web application with no translation overhead.
Zhicong L.

Zhicong L.

G2
08/05/2021
Best value for a localization tool for small teams!
Localazy has a user-friendly interface that they are constantly improving. Their chat support on every page is continuously monitored, and the team replies exceptionally quickly.
Sahil T.

Sahil T.

Sourceforge
03/01/2021
Automated Translation Tool For Non-Developers
The best thing about Localazy is that it provides OTA translations, it removes all the hassle of adding a new language with each update.
Jan Koštejn

Jan Koštejn

On G2
07/18/2022
Great UX for a boring translation process.
What do you like best about Localazy? I like that we can send localazy projects to non-technical people and let them translate our application without deep knowledge of the technology. The editor is very user-friendly and I have the option to approve the translations. It helps us to keep track of what's translated and what's not.
Agustin Cavilliotti, CTO, Donar Online

Agustin Cavilliotti, CTO, Donar Online

On G2.com
05/27/2022
Thanks to Localazy we're able to quickly and in an ordered way launch the platform on a new country.
The setup was very easy, and then the ability to add team members to help us out with the translations. Also, it's very intuitive and easy to see what's left to be translated and what's done.
Mladen A.

Mladen A.

Read on G2
08/18/2022
Couldn't have asked for more
The product itself is great, and the team behind it is just fantastic. Always fast to respond to any questions competently and politely. I haven't experienced such a level of support with any other tool or platform.
Heysem Katibi, PM @ SwazerLab

Heysem Katibi, PM @ SwazerLab

Read on G2
08/24/2022
Flawless product with amazing features
ShareTM is a brilliant feature. It makes translating single words so much easier, especially since Google Translate and other machine translation services struggle a lot to translate single words without context.
Alexander M.

Alexander M.

View on G2
08/24/2022
Intuitive tool for managing translations
- Integrations and Guides to a variety of frameworks and systems - Intuitive and simple UI to manage translations - Quick & personal support experience - Pricing and Pricing Model