fix(l10n): repair corrupted duration abbreviations in ar/bn/hi/ja/ru/zh ARB files
Build & Deploy PluriWave / Análisis de código (push) Successful in 25s
Build & Deploy PluriWave / Build APK + AAB release (push) Successful in 2m24s

Sleep-timer duration strings (durationHoursMinutesSeconds, durationMinutesSeconds,
durationMinutesOnly, durationSecondsOnly) contained literal "?" characters instead
of the native hour/minute/second abbreviation in 6 locales. Replaced with correct
native short-form units per locale, verified byte-exact against a pinned spec table
and against the already-correct neighboring hoursLabel/minutesLabel/secondsLabel
values in each file.
This commit is contained in:
Javier Bautista Fernández
2026-07-21 09:56:18 +02:00
parent 12967e9894
commit fb7fe8774b
15 changed files with 517 additions and 24 deletions
@@ -0,0 +1,75 @@
# Archive Report: i18n-locale-audit
**Change**: i18n-locale-audit
**Status**: Archived
**Archive Location**: `openspec/changes/archive/2026-07-21-i18n-locale-audit/`
**Date Archived**: 2026-07-21
## Summary
The i18n-locale-audit change has been completed, verified (PASS verdict with zero CRITICAL/WARNING/SUGGESTION findings), and archived. This change repaired 24 corrupted sleep-timer duration strings across 6 non-Latin-script locales (ar, bn, hi, ja, ru, zh) by replacing literal ASCII `?` characters with their correct native abbreviations, while preserving all ICU placeholders and file integrity.
## Artifact Traceability
All artifacts originate from the SDD pipeline and have been traced to their Engram observations:
| Artifact | Engram Observation ID | Type | Status |
|----------|----------------------|------|--------|
| Proposal | 1303 | proposal | Complete |
| Exploration | N/A | explore | Complete (file-only) |
| Specification | 1304 | spec | Complete |
| Design | 1305 | design | Complete |
| Tasks | 1306 | tasks | Complete (all 13 tasks checked) |
| Apply Progress | N/A | apply-progress | Complete (file-only) |
| Verify Report | 1308 | verify-report | Complete — PASS verdict |
All observation IDs recorded for audit trail and traceability.
## Specs Synced
| Domain | Action | Details |
|--------|--------|---------|
| sleep-timer-duration-i18n | Created | New spec domain, 4 requirements covering native abbreviations across 6 locales (ja, zh, ru, ar, hi, bn). Added to `openspec/specs/sleep-timer-duration-i18n/spec.md`. |
## Archive Contents
- proposal.md ✅ — Proposal: Repair corrupted sleep-timer duration abbreviations in 6 ARB locales
- explore.md ✅ — Exploration: i18n locale audit (13 ARB locales)
- design.md ✅ — Design: Repair corrupted sleep-timer duration abbreviations in 6 ARB locales
- tasks.md ✅ — Tasks: all 13 tasks complete (7 Phase 1 content repairs + 7 Phase 2 static validation checks)
- apply-progress.md ✅ — Apply Progress: complete (all 24 exact-string line replacements applied)
- verify-report.md ✅ — Verify Report: PASS (all requirements met, all 24 values byte-identical to spec)
- specs/sleep-timer-duration-i18n/spec.md ✅ — Sleep Timer Duration I18n Specification
## Source of Truth Updated
The following specs now reflect the new behavior and are locked into the main specifications tree:
- `openspec/specs/sleep-timer-duration-i18n/spec.md` — NEW domain, defining correct native abbreviations for 4 ICU-templated duration strings across 6 locales with comprehensive scenarios and requirements.
## Implementation Summary
**Changed lines**: 24 insertions + 24 deletions (exact-string line replacement, no JSON re-serialization)
**Files modified**: lib/l10n/app_ar.arb, app_bn.arb, app_hi.arb, app_ja.arb, app_ru.arb, app_zh.arb (4 keys per file, lines 19/27/34/40)
**Quality gate**: Verify-report PASS with zero critical/warning/suggestion findings
All 24 corrupted duration string values have been replaced with their correct byte-exact pinned strings:
- ja: compact no-space notation (時間/分/秒)
- zh: compact no-space notation (小时/分钟/秒)
- ru: short abbreviation with leading space (ч/мин/сек)
- ar: short abbreviation with leading space (س/د/ث)
- hi: full label words, space-separated (घंटे/मिनट/सेकंड)
- bn: full label words, space-separated (ঘণ্টা/মিনिট/সেকেন्ড)
ICU placeholders `{hours}`, `{minutes}`, `{seconds}` remain unchanged and correctly named. All other keys (386 per file) and metadata blocks remain byte-unchanged.
## SDD Cycle Complete
The change has been fully planned (proposal + explore), specified (spec), designed (design), implemented (apply), verified (verify-report PASS), and archived. Ready for the next change.
## Additional Notes
- Task completion gate: PASS — all 13 tasks marked as complete in tasks.md with supporting evidence in apply-progress.md and verify-report.md.
- Verify gate: PASS — zero CRITICAL/WARNING/SUGGESTION findings. Spec requirements fully met.
- No stale checkboxes found; archive-time reconciliation not required.
- Spec merge: delta spec copied directly to new main domain (no merge with existing spec required, as this is a new domain).