mirror of
https://github.com/ALLFATHER-BV/wadamesh.git
synced 2026-09-25 02:26:11 +00:00
pisti87 asked whether the obsolete entries in the language files will be removed (#262). Measuring it first was the right move, because the tool that would have driven that cleanup was wrong. source_keys() only ever matched TR("literal"). Strings reached indirectly, as in TR(kSettingsCats[c].label), were invisible to it, so every settings-category name looked unreferenced: About, Backups, Language, MQTT bridge, App permissions and the rest. Anyone pruning the .lang files on that output would have deleted live translations for some of the most visible labels in the UI. The audit now also pulls literals out of any table whose name appears inside a TR(...) subscript. Deliberately greedy: over-collecting keeps a translation alive, under-collecting deletes one. That immediately found a real gap it had been hiding. "App permissions", the settings category added with the permissions page, was missing from all 13 languages and the old audit reported everything as covered. Added, builtin regenerated, published as language v15. Also adds --obsolete, the reverse check pisti87 actually needs: rows in each .lang file that no TR() key matches. It reports and never deletes, and says plainly that these are candidates to check rather than a delete list, for the reason above. Numbers now: 950 keys reachable, hu.lang carries 1044 rows, 94 unreferenced. The earlier figure was 119, so 25 of those were the false positives just fixed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>