امنیت، هویت، استقرار و تابآوری · فصل ۸ — Security، Tenant، Rights و Hallucination · 123
Weak Localization
Diagnose weak localization as an evidence problem across locale selection/fallback, language and direction metadata, message/plural behavior, and locale-sensitive formatting; contain unsafe fallback without hiding the defect; then prove recovery with a locale matrix and changed-context rerun rather than treating translated strings or one passing locale as closure. میتواند failure family «Weak Localization» را بازتولید/تشخیص دهد و detection، containment و recovery مناسب را تعیین کند.
Lesson summary
Diagnose weak localization as an evidence problem across locale selection/fallback, language and direction metadata, message/plural behavior, and locale-sensitive formatting; contain unsafe fallback without hiding the defect; then prove recovery with a locale matrix and changed-context rerun rather than treating translated strings or one passing locale as closure.
میتواند failure family «Weak Localization» را بازتولید/تشخیص دهد و detection، containment و recovery مناسب را تعیین کند.
This lesson produces
میتواند failure family «Weak Localization» را بازتولید/تشخیص دهد و detection، containment و recovery مناسب را تعیین کند.
Who it is for
Foundation
Use a guided locale matrix, one worked fallback trace and explicit language/direction labels.
Repair
Re-run only the failed localization dimension with a smaller deterministic message/locale case.
Experienced
Start from mixed locale evidence; require competing explanations, negative evidence and changed-locale transfer.
Prerequisites
1. A translated-looking page can still be weakly localized
A dashboard may show mostly correct Persian text while one missing key silently falls back to English, labels that English string as fa/RTL, selects plurals with English logic, and formats a date or number with en-US. “Translated text exists” is not the same as “locale behavior is correct.” This lesson therefore decomposes localization into independent, observable dimensions.
2. Capture the evidence boundary before editing copy
For each run, record requested locale, supported locales, selected locale, fallback path, message key, translation presence, the rendered string's language and direction, plural category, formatter locale, and number/date output. Label decisive statements as observation, authority, inference, or OPEN. Do not infer a runtime fallback policy from visual appearance.
3. Locale selection and fallback are a separate failure dimension
A request for fa-IR does not require a byte-for-byte matching resource tag if the application's policy legitimately matches it to supported fa. CLDR language-matching data is designed to match desired locales against supported locales, but each application's concrete selection and fallback policy still has to come from its configuration or trace. [UNICODE-CLDR-MATCH]
4. Language and direction must be determinable for the rendered string
W3C guidance says language declaration values use BCP 47, and that natural-language string fields must allow the language and string direction of the specific string to be determined. A resource-wide default or heuristic is not sufficient by itself. An English fallback inside a Persian context therefore needs evidence about the fallback string itself, not just the page default. [W3C-I18N-SPEC-2026]
5. A missing translation is not the same as unsafe mixed-language fallback
A missing key may intentionally fall back to English under a bounded policy. That can be temporary containment if the fallback is explicit, traceable, and correctly labeled for language and direction. If English text is emitted as fa/RTL, metadata is wrong; if the fallback is hidden and counted as successful Persian coverage, the evidence boundary is wrong as well. Full recovery normally closes the target key or approved policy and reruns the locale matrix.
6. English one/other logic is not universal
CLDR plural categories differ across languages. In current CLDR 49 data, Persian cardinal one includes 0 and 1, while Arabic has zero, one, two, few, many, and other. A hard-coded English selector can therefore fail for Persian count 0 or Arabic count 2 even when the words themselves are translated. [UNICODE-CLDR-PLURAL] [UNICODE-CLDR-LANGUAGE-PLURALS]
7. Number/date formatting is independent of message translation
Every message key can exist while a formatter remains hard-coded to en-US. Numbers, dates, currencies, and time conventions are locale-sensitive, so the matrix records formatter locale and rendered output independently. Exact format expectations remain runtime/fixture specific; this lesson does not claim one universal string representation for every implementation.
8. Localization Failure Diagnosis & Recovery Record v1
The owned artifact records requested/supported/selected locale, fallback path, message key, translation presence, rendered language/direction, plural category, number/date formatter, expected output, evidence label, containment, closure probe, and residual risk. Its purpose is to keep “proven” separate from “looks right.”
9. Build at least two competing explanations
If English appears on a Persian page, the selected locale may be wrong or only that message key may be missing. If a count phrase is wrong, the translation may be poor or the plural selector may be wrong. Strong diagnosis states competing explanations before changing code or copy, then rejects at least one with a single-dimension mutation.
10. A negative control should change one dimension at a time
To test selection, vary requested/supported locale only. To test metadata, keep the rendered text and inspect language/direction. To test plural behavior, change the count so the target category changes. To test formatting, keep the message stable and vary formatter locale. Multi-variable changes make causal interpretation ambiguous.
11. Containment must not hide the defect
Containment can temporarily block one locale or message, use explicit correctly-labeled fallback, or keep the affected route behind a warning. It must not “fix” the incident by labeling English as Persian, forcing RTL on every string, or deleting the failing test. The affected scope and release trigger must remain explicit.
12. Closure requires a locale-matrix rerun
After repair, rerun selection/fallback, per-string metadata, plural/message behavior, and formatter output independently. A page that merely looks better is not closure. If a decisive dimension lacks evidence, keep it OPEN. A passing fa-IR run also does not authorize a claim about ar-EG or all locales.
13. Lab classifications
The lab uses LOCALIZATION_HEALTHY, LOCALE_SELECTION_FAILURE, STRING_METADATA_FAILURE, PLURAL_MESSAGE_FAILURE, LOCALE_FORMATTING_FAILURE, MULTI_DIMENSION_LOCALIZATION_FAILURE, and WEAK_LOCALIZATION_UNRESOLVED. It also uses MISSING_TRANSLATION_CONTAINED for a safe but still incomplete fallback state. Classification is built from independent dimension evidence.
14. Lab: eight fixtures and 64 assertions
The eight fixtures cover a healthy fa-IR→fa baseline, wrong locale selection, mixed-language metadata failure, Persian count=0 with English-style plural logic, a hard-coded formatter, a fully translated-looking page with two hidden defects, an intentionally OPEN case, and an ar-EG transfer. The evaluator returns eight fields per case and the admin test checks exactly 64 assertions. Everything is synthetic and offline.
15. Exit checklist and transfer
Before exit, you should be able to state the requested locale, selected locale, exact fallback point, which string metadata failed, how plural and formatting behavior were tested independently, which alternative was rejected, the containment scope, and the rerun that proved closure. In transfer, the request becomes ar-EG, the missing key changes, and new count/number/date expectations appear. Rebuild the diagnosis from new evidence rather than copying fa-IR labels.
Assessment
There is no answer key in this lesson pack; answer it yourself and mark honestly. "Needs review" sends the lesson to your review queue.
FLR-013-AS1 diagnosis
Build Localization Failure Diagnosis & Recovery Record v1 for the baseline failure. Trace requested→selected locale, fallback path, per-string metadata, plural behavior, formatter evidence, one competing explanation, and explicit OPEN cells.
FLR-013-AS2 decision
Choose a bounded containment/release action. Name the affected locale/message scope, what fallback is safe, what must be blocked or flagged, and the evidence required for release.
FLR-013-AS3 transfer
Rebuild the record for the ar-EG transfer fixture. Do not copy the fa-IR classification; use the new match, fallback, plural, and formatter evidence.
FLR-013-AS4 reflection
State the strongest localization claim supported, the strongest claim not supported, one residual risk, and the trigger for future re-review.
Assessment rubric
| Dimension | Critical | Sufficient evidence |
|---|---|---|
| Locale boundary and evidence | Yes | Requested, supported, selected, and fallback locale states are explicit; decisive claims trace to fixture or authority evidence. |
| Metadata / grammar / formatting discrimination | Yes | Language/direction, plural/message behavior, and locale-sensitive formatting are tested as separate dimensions; at least one tempting alternative is rejected. |
| Containment and closure | Yes | Fallback/release containment is bounded; recovery uses an independent locale-matrix rerun and preserves OPEN where evidence is missing. |
| Transfer | Yes | ar-EG is diagnosed from changed evidence rather than copied fa-IR labels. |
Blocking failures: no requested→selected trace; translated text treated as full proof; mixed-language direction mismatch silently closed; plural/formatter behavior untested; or no changed-locale evidence.
References & freshness
Case studies
Lesson visuals
Lab files
Implement an evidence-bounded evaluate(case) function over the eight synthetic locale cases. Diagnose locale selection, per-string language/direction metadata, plural/message behavior, and locale-sensitive formatting separately.
Do not treat translated text as proof of localization correctness. Preserve OPEN when authoritative metadata is unavailable. A strong solution recognizes the safe fa-IR→fa match, distinguishes wrong selection from a single missing key, catches the Persian count=0 plural defect, and rebuilds the diagnosis for the ar-EG transfer. No network or production data is required.
Lesson media & slides
Teaching files (download)