Fallback behavior for untranslated content must be explicit
Aliases: missing translation fallback · locale fallback · parent locale fallback · untranslated content policy
What it is
An explicit untranslated-message fallback policy determines which complete message, resource bundle, or experience may appear when the requested locale lacks a usable translation, and when release or action must stop instead. It gives every supported locale a finite, reviewed fallback chain and chooses fallback, degradation, or blocking according to content risk. It is not a runtime license to select an arbitrary “nearby” language for each fragment. Nor does it collapse a stale translation into a missing one; their semantic risk and permitted handling can differ.
Why it happens
Locale resolution often moves from a specific language–script–region tag to a product-approved parent or default, but tag hierarchy alone does not prove mutual intelligibility, especially across scripts. Messages also contain plural selection, placeholders, word order, and actionable labels. Falling back half a sentence, one button, or the text around a variable can break grammar and intent. The smallest resolvable unit should therefore be a complete message with all branches; a tightly coupled message set or critical journey should resolve from one compatible bundle snapshot. The resolver must distinguish an absent key, work not yet translated, a target behind its source revision, an incompatible placeholder contract, and a bundle load failure because each has different recovery and release implications.
Studying it
Build a failure-injection matrix across requested locale, resource state, risk tier, and delivery channel. Remove messages, mark targets stale, break placeholder signatures, and time out bundle loading; observe resolved language, explanation, task completion, harmful errors, and help seeking. Comprehension testing must include people with different proficiency in the proposed fallback language rather than assuming everyone reads the product default. Logs can measure fallback rate, raw-key leakage, blocked critical journeys, language switching, and exits, but reasons must be separated: a high rate may reflect build defects, stale caches, or locale-routing errors. For legal and safety messages, correct understanding and a safe stop matter more than maximizing completion.
Where it stops holding
Brand names, proper nouns, user-generated content, and intentionally bilingual material are not missing translations. UI-message fallback also differs from content translation: preserving and labeling an article in its original language may be acceptable, while a payment confirmation rendered only in an unfamiliar language can undermine meaningful authorization. Low-risk help text may use a validated parent locale or coherent default-language experience. Legal, safety, health, identity, payment, and irreversible actions must not silently use unreviewed machine translation. When no approved, comprehensible complete message exists, the safe outcome may be to pause the action and offer another language, human support, or retry rather than render a partial interface.
Applying it
- Configure an explicit fallback chain, channel scope, and approver for every supported locale. Match language, script, and region deliberately; do not infer language from location or treat a shared tag prefix as proof of intelligibility.
- Store complete ICU messages or equivalent units with every plural or select branch and a placeholder signature. Bind tightly coupled flows such as checkout, authorization, and recovery to one validated bundle snapshot; prohibit arbitrary per-string assembly across languages.
- Assign message risk and state handling. Define separately whether
missing,stale, structurally incompatible, and load-failed resources may use an older target, approved parent locale, coherent default experience, or must block. Time-limit every temporary fallback. - Enumerate fallback paths at build time. At runtime, log requested locale, resolved locale, resource version, state, and reason code without message-carried personal data. Drill missing resources and cache mismatch to ensure no raw keys, blank actions, or incomprehensible critical steps escape.
Related
- Same group: S4.04.1 Copy changes must trigger the translation workflow · S4.04.3 Translation lag produces mixed-language interfaces
- Adjacent: S4.01.1 Automatic language detection must be overrideable · S4.02.3 Interface language and content language can differ
- Search terms:
locale fallback chain·untranslated message policy·ICU message fallback