← Glossary

Locale

A locale is a combination of language and region that defines not just which words to use, but how to format numbers, dates, currencies, and addresses, and the cultural conventions that surround them.

The honest version

A locale is not a language. This distinction breaks production systems with regularity.

A locale code like es-ES (Spanish, Spain) and es-MX (Spanish, Mexico) is the same language. It is not the same locale. The differences include: number formatting (1.234,56 vs 1,234.56), date format (25/04/2026 vs 04/25/2026), currency symbol and position, address structure, and dozens of vocabulary and register decisions that vary by region. Treating them as interchangeable produces output that is linguistically correct and culturally wrong.

The international standard for locale codes is BCP 47, which structures them as language code + region code + optional script and variant subtags. The Unicode Common Locale Data Repository (CLDR) provides the actual data (number formats, date formats, plural rules, collation order) for thousands of locales. Most localization tools and frameworks depend on CLDR for this data, often without exposing that dependency to the people using the tool.

Why it matters for translation

Every step in a localization pipeline that handles user-facing content must be locale-aware, not just language-aware.

String files should be organized by locale, not language. A TM that stores translations keyed by language and then uses them for all regional variants of that language will produce inconsistencies between, say, fr-FR and fr-CA. A content management system that has a single “French” locale field when it should have separate fields for French-France and French-Canada will require a rework that costs more than building it correctly would have.

Date and number formatting errors are common and visible. A date displayed as 05/04/2026 means May 4 in the US and April 5 in most of Europe. A number displayed as 1,234 means one thousand two hundred thirty-four in the US and one point two three four (approximately) in Germany. These are not translation errors; they are locale implementation errors. The fix is in the rendering layer, not in the translated strings.

Plural rules are locale-specific and frequently wrong. English has two plural forms (one, other). Arabic has six. Polish and Russian have complex plural systems where the correct form depends on the exact number. Frameworks that handle this correctly use CLDR plural rules. Those that hard-code “one/other” fail silently for every language that does not follow English grammar.

Where it fails

The failure mode is almost always the same: someone assumed that language and locale are the same thing, or that the locale standard covers all cultural requirements.

The CLDR standard covers formatting conventions well. It does not cover cultural conventions: color associations, imagery sensitivities, naming conventions, or the difference in formality register expected in a business context in Japan versus Germany versus Brazil. These require human cultural expertise that no standard encodes.

Right-to-left scripts (Arabic, Hebrew, Persian, Urdu) require UI layout changes that go beyond text direction. Parentheses, brackets, and UI elements mirror. Number sequences do not. Mixed RTL/LTR content (a product name in English inside an Arabic sentence) creates bidirectional text handling requirements that break a significant proportion of templating systems that were built without RTL in mind.

Languages with multiple scripts add another layer. Serbian can be written in Latin or Cyrillic; both are correct in different contexts. Uzbek has officially shifted from Cyrillic to Latin. A locale implementation that does not account for script selection is an incomplete implementation.

The most common production failure: treating en-US as the universal English fallback for all English speakers everywhere, including en-GB, en-AU, en-CA, and en-IN users who encounter American date formats, American spelling conventions, and American idioms in software they are using in their own country.