Bugfix Issue 1459 SeverityConfig ASIDE Key Only in en_GB - sebiboga/testlink-upgraded GitHub Wiki
Bugfix — Issue #1459: ASIDE "Severity Configuration" label stays English in all non-en_GB locales
Problem
The ASIDE sub-menu item for Severity Configuration (Test Strategy
section, 4th-from-last sub-item) uses the legacy Smarty key
href_severity_config via gui/templates/dashio/aside.tpl:161. The key was
defined only in locale/en_GB/strings.txt:2329 — the other 18 locale
strings.txt files lacked it, so lang_get() fell back to en_GB and the
label rendered in English inside the translated shell for every
non-en_GB locale.
Reproduced with the Romanian locale (the reporter's locale): set the admin
user's profile locale to ro_RO, re-login, expand ASIDE "Strategia de
Testare" → the 4th-from-last sub-item read Severity Configuration while
every neighbour was Romanian (grep -rl href_severity_config locale/*/strings.txt → 1 file).
Root Cause
The Test-Strategy chapter-map / severity-config ASIDE link work (commit
f934433d7, Refs #1426/#1431) added the new key only to the development
bundle en_GB/strings.txt. lang_get() (lib/functions/lang_api.php:51-54, 195) silently falls back to en_GB for missing keys and only records a
level-32 L18N audit row (never ERROR/WARNING), so the gap shipped unnoticed.
Blast radius: one ASIDE sub-item label; cosmetic, no functional impact.
The modern target screen severityConfig.html uses the client-side TLi18n
JSON bundles and is NOT affected (ro.json already ships
proj.severityConfig = "Configurare severitate").
Fix
Added $TLS_href_severity_config = "<native translation>"; to all 18 missing
locale files, inserted after the $TLS_href_plan_define_priority line
(relative placement mirrors en_GB). cs_CZ string stored in the file's real
byte encoding (Windows-1250 — the file declares UTF-8 but is physically
cp1250; a UTF-8 write would have produced mojibake).
| Locale | Value |
|---|---|
| cs_CZ | Konfigurace závažnosti |
| de_DE | Schweregrad-Konfiguration |
| en_US | Severity Configuration |
| es_AR / es_ES | Configuración de Severidad |
| fi_FI | Vakavuusasetukset |
| fr_FR | Configuration de la sévérité |
| id_ID | Konfigurasi Tingkat Keparahan |
| it_IT | Configurazione della gravità |
| ja_JP | 重大度設定 |
| ko_KR | 심각도 설정 |
| nl_NL | Configuratie van de ernst |
| pl_PL | Konfiguracja ważności |
| pt_BR / pt_PT | Configuração de Severidade |
| ro_RO | Configurare severitate |
| ru_RU | Настройка серьёзности |
| zh_CN | 严重性配置 |

Verification
- ro_RO session: sub-item now "Configurare severitate" (was English);
grep -rl href_severity_config locale/*/strings.txt→ 19 files. - de_DE session: "Schweregrad-Konfiguration".
- en_GB session: still "Severity Configuration" (regression-safe).
php -lon all 18 touched files: "No syntax errors".- cs_CZ bytes re-decoded as cp1250 →
Konfigurace závažnosti(ž=0x9E, á=0xE1); full-file cp1250 decode OK. - ASIDE link target
severityConfig.htmlloads fine. eventstable: onlyhref_severity_configL18N fallback row is the pre-fix repro (id 47); zero new rows post-fix; zero ERROR/WARNING rows.
Regression suite: tmp/TLU_Test_Cases.md — "Regression — Issue #1459", 8/8 PASS.
Address: Fixes #1459.