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.
4.2 KiB
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).