Skip to content

i18n(l10n): complete en/nl runtime translation coverage - #48

Merged
rubenvdlinde merged 1 commit into
developmentfrom
wip/l10n-coverage
Jul 26, 2026
Merged

i18n(l10n): complete en/nl runtime translation coverage#48
rubenvdlinde merged 1 commit into
developmentfrom
wip/l10n-coverage

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Summary

  • Adds every runtime-used l10n/en.json key that was missing (255 via the initial t('hermiq', …) scan, plus 102 more found by extending the scanner to also catch this.t('hermiq', …) calls in <script> blocks — the original regex only matched bare t( and silently missed all Options-API script calls).
  • Adds Dutch translations to l10n/nl.json for all newly-discovered keys: 84 from the shared fleet glossary, 351 hand-authored for Hermiq's AI-agent/agent-graph/skills/EU AI Act domain.
  • Fixes 18 pre-existing broken/untranslated nl.json values found during the audit (not previously flagged because their English key already existed): 4 conversation actions that were only half-translated (e.g. "Archive gesprek""Gesprek archiveren"), and 14 EU AI Act / Algoritmeregister governance strings that were stored as English-identity or garbled text (e.g. "Not published""Not published", now "Niet gepubliceerd"; "Withdraw this AI feature from the Algoritmeregister" was untranslated verbatim).
  • Bumps appinfo/info.xml patch version (0.1.94 → 0.1.95). No register/schema change.

Uncertain terms (flagging for review)

  • "Grants""Rechten" — generalised from the app's existing "tool grants""toolrechten" pattern; alternative would be "Toekenningen".
  • "Condition""Conditie" (glossary-covered, pre-existing fleet term) — a graph router condition might read more naturally as "Voorwaarde" in this specific node-palette context; left as glossary value for cross-app consistency.
  • "Object write" (graph node type) → "Object schrijven" — no established precedent in this app for this exact node-type label.
  • "{count} result(s)""{count} resulta(a)t(en)" — mirrors the source string's own crude non-ICU-plural (s) hack; not a proper Dutch plural form but matches the English original's approach 1:1.
  • "risk category must be high" / "feature must be enabled" — lowercase condition fragments that get comma-joined into "Cannot publish yet — missing: {conditions}"; translated as "risicocategorie moet hoog zijn" / "functie moet ingeschakeld zijn" to read naturally in that joined context.
  • EU AI Act risk tiers (High/Limited/Minimal/Unacceptable) translated as Hoog/Beperkt/Minimaal/Onaanvaardbaar per the AI Act's four-tier Dutch terminology.

Test plan

  • python3 l10n_gap.py . hermiq (brief's helper) → missing_en=0 missing_nl=0
  • Extended scanner (also matches this.t(...)) → missing_en=0 missing_nl=0
  • python3 -c "import json; json.load(open('l10n/en.json')); json.load(open('l10n/nl.json'))" → valid
  • Diff is additive only for keys (0 keys removed from either file); only the 18 listed pre-existing nl.json values were changed, all previously broken/untranslated
  • No test:l10n npm script exists in this app (checked package.json)

@rubenvdlinde
rubenvdlinde requested a review from Rem-Dam as a code owner July 26, 2026 21:34
@rubenvdlinde
rubenvdlinde merged commit bab260b into development Jul 26, 2026
8 of 18 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/hermiq @ 30e77af

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
composer ❌ 1/117 denied
npm ❌ 1/659 denied
PHPUnit ⏭️
Newman ⏭️
Playwright ⏭️

❌ Denied composer licenses

Package Version License
smalot/pdfparser v2.12.5 LGPL-3.0

❌ Denied npm licenses

Package Version License
vue3-apexcharts 1.11.1 Custom: https://apexcharts.com/media/vue-apexcharts.png

Quality workflow — 2026-07-26 21:36 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde
rubenvdlinde deleted the wip/l10n-coverage branch August 14, 2026 09:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant