The technical configuration for a locale, date formats, number formats, currency, text direction, and font requirements.
A locale config is the per-locale settings bundle a product applies when it renders for a given market: date and number formats, currency display, the first day of the week, the right-to-left flag, and the fallback chain that decides which locale answers when a string is missing. It is the operational counterpart to a locale. The locale names the market; the config says how the product should behave inside it.
Locale configuration is a software convention rather than a named theory, but it has a clear lineage. The Unicode Common Locale Data Repository (CLDR) is the de facto source of this data: it ships the formatting rules, calendar conventions, and pluralisation tables that platforms read at runtime. Browser and runtime APIs such as Intl lean directly on CLDR, which is why a date renders one way for en-GB and another for en-US without any application code changing.
The thinking matured as teams learned that a locale tag alone underspecifies behaviour. en-GB tells you the language and region; it does not tell you whether prices show in pounds, whether the week starts on Monday, or which locale to fall back to when a key is untranslated. Modern internationalisation practice separates these concerns: the locale is an identifier, and the config is the resolved bundle of settings keyed to it. The fallback chain is the part teams most often get wrong, because a naive default to English erases a careful regional setup the moment one string is missing.
A SaaS product launches in Quebec. It already supports fr-FR, so the team assumes fr-CA is cheap. The locale config says otherwise. Quebec uses the same French language but a different currency (CAD, not EUR), a different date order in some contexts, and a fallback chain that must read fr-FR before en so that an untranslated string lands in French before it lands in English. The team encodes one locale config: currency CAD, decimal comma, week starting Sunday, RTL off, fallback fr-CA → fr-FR → en. When a new featureFeatureProduct SpecificationA product capability or featureView reference → ships three untranslated strings, users see French placeholder copy, not English, because the chain caught them. The locale itself never changed; the config did the work.
fr-CA, ar-EG); the locale config is the resolved settings that identifier maps to. One is the key, the other is the value.In the Unified Product Graph, a locale config sits in the localisation region as the settings layer beneath a LocaleLocalisationA supported locale (language + region)View reference →. A localeProductStrategyThe product being created, the root of the graphView reference → connects to its configs through productProductconfigured viaLocale Confighierarchy, and each product_configured_via_locale_configLocaleLocalisationA supported locale (language + region)View reference → ties to its bundle through localeLocaleconfigured viaLocale Confighierarchy. Modelling the config as its own node keeps the locale identifier clean and makes the settings queryable: a team can ask which locales lack a fallback chain, or which still default to English, without parsing the formatting rules out of the locale itself. Neighbours such as locale_configured_via_locale_configTranslation BundleLocalisationA bundle of translation keysView reference → and translation_bundleRegional PricingLocalisationLocation-based pricingView reference → then attach where they belong, so display, content, and commercial concerns stay distinct.regional_pricing
Type-specific fields on BaseNode
date_formatstringDate formatting pattern (e.g. "MM/DD/YYYY", "DD.MM.YYYY")
number_formatstringNumber formatting convention (e.g. "1,000.00", "1.000,00")
currencystringDefault currency code for this locale
text_directionstringText direction for the locale's script
timezonestringDefault timezone (e.g. "Europe/Berlin", "America/New_York")
idstringrequiredUnique identifier (UUID)
typeNodeTyperequiredDiscriminator for the entity type
titlestringrequiredDisplay name
descriptionstringOptional detailed description
statusstringLifecycle status
tagsstring[]Freeform tags for filtering
2 edge types connected to this entity.