---
title: "What is the difference between es and es-419 in iOS localization?"
description: "The code `es` is Spanish with no region and `es-419` is Latin American Spanish; 419 is the UN M.49 code for Latin America and the Caribbean. A user set to Spanish (Mexico) gets the `es-419` localization when the app has it and `es` otherwise, while a user set to Spanish (Spain) gets `es`."
category: ios
date: 2026-10-09
canonical: https://localizely.com/i18n-questions/ios/what-is-the-difference-between-es-and-es-419-in-ios-localization/
---

# What is the difference between es and es-419 in iOS localization?

`es` is Spanish without a region: the generic localization that any Spanish-speaking user can receive. `es-419` is Spanish for Latin America. The number is not a country code. ISO 3166 has two-letter codes for countries only, so when a region has no such code Apple's language identifiers use the numeric UN M.49 code instead, and 419 is "Latin America and the Caribbean" in that list (see [UN M49 list](/un-m49-list/)). Foundation shows it as "Spanish (Latin America)".

The two exist because vocabulary and forms of address differ between Spain and the Americas ("ordenador" versus "computadora", "vosotros" versus "ustedes"), while one translation per country would mean twenty localizations that mostly repeat each other. `es-419` is the shared variant for all of them.

iOS matches the user's language and region against the localizations in the app bundle, preferring the most specific match and falling back within the same language before trying the next language:

- A user with Spanish (Mexico), `es-MX`, gets `es-419` when the app has it, otherwise `es`. Users with `es-AR`, `es-CO` or `es-US` land on `es-419` the same way.
- A user with Spanish (Spain), `es-ES`, gets `es`. If the app ships only `es-419`, that is what they get, because another variant of the same language still beats a different language.
- A user whose device is set to plain Spanish gets `es`.

A practical setup is to ship `es` as the complete, neutral Spanish localization and add `es-419` when you want Latin American wording. You rarely need `es-MX` or `es-AR` on top of that, unless one market needs its own terminology.

The same pattern applies to other languages. For Portuguese, a `pt-BR` user gets `pt-BR` and then `pt`, and a `pt-PT` user gets `pt`. For Chinese, the script is the useful split rather than the region: a `zh-TW` or `zh-HK` user gets `zh-Hant`, and a `zh-CN` user gets `zh-Hans`. Language, script and region codes are listed at [Language and country codes](/language-country-codes/).

Source: https://localizely.com/i18n-questions/ios/what-is-the-difference-between-es-and-es-419-in-ios-localization/
