---
title: Supporting multiple languages in your app
framework: xcode
role: article
role_heading: Article
path: xcode/supporting-multiple-languages-in-your-app
---

# Supporting multiple languages in your app

Internationalize your app’s strings, images, and other resource types to prepare for localization.

## Overview

Overview Multilingual apps are apps that can run in more than one language and region. Making your app multilingual widens your audience and gives your customers a better overall experience. People are more comfortable using apps when the text and assets adapt to the language and region settings on their device.

To make your app multilingual, you first internationalize it by preparing your code and assets for translation into different languages and regions. For example, dates in some regions appear in a day-month-year format, while in others, dates appear in month-day-year format. After you internationalize your app, you localize it by translating your strings and varying your assets for multiple languages and regions. For more information, see Localizing and varying text with a string catalog. Internationalize your code Write your code so your app automatically adapts to the language and region settings of the device. Use specific localizable APIs and these Xcode tools that support internationalization: User-facing text. Use localized versions of the string formatters to prepare your app’s text for localization. For more information about user-facing text, see Preparing your app’s text for translation. Dates, currencies, and numbers. Different regions have different formats for dates, currencies, and numbers. For more information, see Preparing dates, currencies, and numbers for translation. Grammatical agreement. Use the automatic grammar agreement APIs in Foundation, such as TermOfAddress, to represent grammatical gender correctly in localized text. For more information about grammatical agreement, see Unlock the power of grammatical agreement. Text direction. Use the layout tools in SwiftUI and Xcode to control text and UI element orientation, and to flip image direction when necessary for right-to-left languages. For more information about text direction, see Get it right (to left). Tall languages. Use Dynamic Type to prevent clipping of words and letters, and to ensure proper spacing of text for some languages that require significantly more vertical space and other that have specific conventions for wrapping and hyphenation. For more information about Dynamic Type, see Scaling fonts automatically and What’s new with text and text interactions. Sounds, images, and assets. Use an asset catalog to localize colors, images, and sounds in your app. For more information about adding resources to asset catalogs, see Adding resources to localizations and Localizing assets in a catalog.

## See Also

### Essentials

- [Localizing your app using agents](xcode/localizing-your-app-using-agents.md)
- [Localizing and varying text with a string catalog](xcode/localizing-and-varying-text-with-a-string-catalog.md)
- [Using generated localizable symbols in your code](xcode/using-generated-localizable-symbols-in-your-code.md)
- [Localizing Landmarks](xcode/localizing-landmarks.md)
