Bugfix Issue 557 Missing exechist i18n Keys - sebiboga/testlink-upgraded GitHub Wiki
Bugfix โ Issue #557: Missing i18n Keys exechist.colBuild / exechist.colStatus / exechist.footer
Date: 2026-08-26 ยท Branch: fix/issue-557 ยท Commit: 2ceca4c79
Summary
Three i18n keys referenced by gui/templates/execute/execHistory.html were missing from all 10 locale bundles, causing the raw key names to render as visible text in the Execution History screen.
Symptom
- Footer at
execHistory.html:137rendered literal stringexechist.footerinstead of a translated tagline - Table headers at lines 123 and 126 (
colBuild/colStatus) would render raw key names when a test case with execution data is loaded
Root Cause
The Execution History modernization (#542) added data-i18n attributes referencing these 3 keys but never added the corresponding entries to any locale bundle. tools/lint_i18n.py only checks parity vs en.json, so keys absent from en.json itself went undetected.
Fix
Added exechist.colBuild, exechist.colStatus, and exechist.footer to all 10 locale JSON files (en/ro/de/es/fr/it/pt/ru/ja/zh.json) with proper translations derived from existing exe.footer (same footer pattern) and exechist.status/exechist.build (same column semantics).
Files Changed
gui/templates/i18n/en.jsonโ 3 keys addedgui/templates/i18n/ro.jsonโ 3 keys addedgui/templates/i18n/de.jsonโ 3 keys addedgui/templates/i18n/es.jsonโ 3 keys addedgui/templates/i18n/fr.jsonโ 3 keys addedgui/templates/i18n/it.jsonโ 3 keys addedgui/templates/i18n/pt.jsonโ 3 keys addedgui/templates/i18n/ru.jsonโ 3 keys addedgui/templates/i18n/ja.jsonโ 3 keys addedgui/templates/i18n/zh.jsonโ 3 keys added
Verification
- All 10 JSON files pass
python3 -m json.toolvalidation - Footer renders correctly in English, Romanian, and Japanese (verified in headless Chrome)
- Language switching works correctly for all 3 new keys
- Event Viewer shows no new Error/Warning entries after the fix
Follow-up
Consider extending tools/lint_i18n.py to cross-check keys referenced by data-i18n / TLi18n.t() in gui/templates/**/*.html to catch missing keys that are absent from en.json itself.