String Catalog logo

Xcode App Localization Guide

This guide will work for iOS, macOS, visionOS, watchOS, and tvOS.

Step 1: Setup Your String Catalog

Start by gathering all your localizable strings into one file. In Xcode, if you haven't already, go to File -> New File and add a String Catalog.

Setting up a String Catalog

Step 2: Prepare Your Strings

After setting up your string catalog, build your app to populate your strings. This may take a minute. Verify that all your strings are ready for export.

Preparing your strings

Step 3: Export String Catalog Files

  • Navigate to Product > Export Localizations in the top menu of Xcode.
  • Confirm and export your .xcloc files, which you will upload to String Catalog.

This will produce a .xcloc file for each language you set up in Xcode. If this is your first time setting up a string catalog, you only need to export your base language. We will handle the new languages for you.

Exporting .xcloc files Verify xcloc file

Step 4: Upload and Choose Languages

Select your .xcloc files and choose the languages you want to localize your app into. We currently support 40 languages. Below, we're adding Spanish to our demo app with English as the base language.

Uploading and choosing languages

Step 5: Review Translations

Once translated, review all strings to ensure accuracy. If we are unable to localize your string, it will be marked for review. You can filter by status, edit your strings, and search within your dashboard.

Reviewing translations

Step 6: Import Localized Strings

Integrate the localized strings back into your app. Begin by downloading your files from the String Catalog dashboard and unzipping the .xcloc files. Once you have your files downloaded, open Xcode and choose Import Localizations under the Product menu.

Importing localized strings

Step 7: Verify Localizations in Xcode

Your app is now localized, and you should see your new languages within Xcode. Congratulations, you're all set with your new languages! 🎉

Verifying localizations in Xcode

If you encounter any issues or have any questions, please don't hesitate to reach out to me on X . I'd love to hear from you and happy to help!