With the introduction of String Catalogs in Xcode 15, Apple has modernized the localization workflow, making it easier to manage translations across different languages. This guide will walk you through creating and working with your iOS localization files, specifically focusing on String Catalogs.
String Catalogs are Apple’s modern approach to managing localized strings in iOS applications. Introduced in Xcode 15, they replace the traditional .strings
files. Unlike the old system where you needed separate .strings
files for each language, string catalogs consolidate everything into one file.
String catalogs can either be created from scratch, or be converted from existing .strings
legacy files. We’ll first cover how you can create a new file from scratch if you haven’t localized your app before.
Localizable.xcstrings
)Pro Tip: While the default catalog’s name is Localizeable, you should create another file with the name InfoPlist. this file will automatically have all of your app’s metadata for you to localize.
If you have existing .strings
files, Xcode can convert them automatically.
.strings
file in Project Navigator.xcstrings
file with all your existing translationsAlthough there are many reasons why string catalog is worth switching to, i’ll note here the best reasons:
As you scale the app, you’ll be adding more and more features and supporting more and more languages. These can add up, creating enormous string catalog files. Eventually Xcode will have trouble opening the catalog, and in some cases it will crash. Following these practices will save you time in the future and make your project more organized, maintainable, and scalable.
When you localize yourself, you almost guarenteed to make mistakes that you wont pick up. Use Transolve. It saves 99% of the hustle, and wont make the mistakes you’re likely to make.