Driving all three from one setting causes mismatches
Aliases: single-locale mismatch · regional-settings migration · coupled locale · preference migration
What it is
A coupled locale preference mismatch occurs when one country selection, language tag, or “regional setting” controls interface language, formatting region, and time zone together. Changing one dimension unexpectedly changes the others: a language switch can reorder dates and numbers, travel-based time-zone detection can replace interface language, and a familiar formatting choice can alter content supply. Repair requires more than adding three fields. Legacy accounts, caches, tokens, server defaults, and offline clients must be migrated, with confirmation where historical intent cannot be recovered rather than invented as a precise preference.
Why it happens
Legacy models commonly pass one locale string to message catalogs, formatters, content queries, and time conversion until each consumer assigns it a different meaning. After database fields split, mismatches persist if APIs expose the legacy field, caches omit a new dimension, or clients infer missing values from country again. Migration is lossy: en-US supports a hypothesis about English and US formatting but cannot identify the user's time zone or prove either value was explicit. A reliable migration retains the old value and provenance, fills each field as explicit, inferred, or unset according to evidence, and moves consumers through versioned resolution, compatible reads, and controlled backfill.
Studying it
Trace every read and write of the old locale and label whether the consumer needs language, format region, time zone, content language, or service market. Build migration fixtures with and without script and region subtags, missing values, custom zones, travel, shared devices, stale clients, and concurrent edits. Compare visible behavior before migration, expected behavior under the new model, and user-confirmed choices. During rollout, shadow-compute old and new resolution and monitor date/number changes, mistimed notifications, language fallback, content-supply differences, and preference thrashing without promoting an inference to an explicit choice. Recovery tests verify that rollback retains independently changed preferences.
Where it stops holding
Not every format change is a mismatch. Dates, numbers, and collation should change after an explicit formatting-locale selection; travel updates are expected when someone explicitly follows the device time zone. The failure is one signal taking control of an unrelated field. A region subtag in a legacy locale is not current location, IANA time zone, nationality, or legal market, and migration must not populate authoritative attributes from it. Concurrent synchronization cannot use last-write-wins on the whole preference object, or a language change on one device overwrites a zone selected elsewhere. Merge conflicts by field and provenance.
Applying it
- Inventory legacy-field consumers and migrate by required semantics: catalogs read language, formatters read formatting locale, time display reads an IANA zone, content systems read content-language preferences, and compliance policy reads separate authoritative attributes.
- Retain original locale, provenance, and timestamp in migration records. Mark only components proven to come from explicit choice as explicit; mark the rest inferred or unset. Preserve safe existing behavior and request confirmation when region or zone cannot be derived, never persisting an IP- or language-based guess.
- Support old and new clients through a schema or version gate. Return independent fields plus a compatibility view with a defined deprecation window, include actual dependency dimensions in cache keys, and merge synchronization per field. Shadow-compute first, shift reads gradually, then stop legacy writes.
- Validate interface language, formats, time, content, and notifications independently with before/after snapshots and real tasks. Provide reversible data migration and a preference-repair path, monitoring unexpected flips, mistimed notifications, and fallback spikes.
Related
- Same group: S4.02.1 Language, region, and time zone are independent settings · S4.02.3 Interface language and content language can differ
- Adjacent: S2.01.2 All-numeric dates are ambiguous · S3.03.4 Daylight-saving observance and transition dates are not uniform
- Search terms:
coupled locale·locale migration·preference mismatch