Skip to content

feat(l10n): translate the versioniq admin UI into Dutch - #324

Merged
rubenvdlinde merged 1 commit into
developmentfrom
feat/versioniq-dutch-ui
Aug 31, 2026
Merged

feat(l10n): translate the versioniq admin UI into Dutch#324
rubenvdlinde merged 1 commit into
developmentfrom
feat/versioniq-dutch-ui

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

The settings panel rendered entirely in English on a Dutch account: Apps, History, Sources, Tokens, Trusted sources, Discover, Artifact cache, Automatic updates, Security advisory checks. Every one of those was absent from the catalogue, not mistranslated.

Measured with a scanner that catches this.t( and $t( as well as bare t(, since a naive pattern under-reports Options-API components:

distinct t('versioniq', …) keys in src/ 181
already in nl.json 25
missing 156

All 156 translated. en.json did not exist at all and is added as identity, so the pair matches the rest of the fleet and check:l10n-js has both halves to compare.

This is a separate gap from #296

#296 fixed a mechanical fault: l10n/nl.js was missing, so 27 existing translations never reached the browser. This PR is the other half — the remaining 156 strings were never written.

Fixing the artefact could not have revealed them, because before #296 all 181 rendered English identically. Only once the 27 started working did the other 156 stand out as the ones still in English.

Care taken

  • Placeholders preserved exactly{hours}, {minutes}, {level}, {source}, {min}, {max}, {forge}, {days}, {version}, {user}, {date}, {size}, {keep}, {pattern}, {count}. Verified programmatically: 0 mismatches.
  • No em-dashes in the Dutch, per the writing skill's voice rules, even where the English source uses them; those become a colon or a full stop.
  • Terminology kept consistent: vertrouwde bronnen, vastzetten for pin, terugrollen for roll back, artefactcache.

Verification

  • check:l10n-js exits 0en.js 156 keys, nl.js 183.
  • The file the browser actually loads was fetched from the running server: status 200, appId "versioniq", Dutch present.

One thing I could not verify: the rendered page flipping to Dutch. The local instance serves a cached nl.js under an unchanged ?v= hash and occ maintenance:repair did not rotate it, so the browser kept the old 27-key copy. That is a local caching artefact rather than evidence against the change, but it is not the end-to-end proof I would prefer.

🤖 Generated with Claude Code

The settings panel rendered entirely in English on a Dutch account: Apps,
History, Sources, Tokens, Trusted sources, Discover, Artifact cache, Automatic
updates, Security advisory checks. Every one of those was ABSENT from the
catalogue, not mistranslated.

Measured with a scanner that catches this.t( and $t( as well as bare t(, since
a naive pattern under-reports Options-API components:

  distinct t('versioniq', ...) keys in src/   181
  already in nl.json                           25
  missing                                     156

All 156 translated. en.json did not exist at all and is added as identity, so
the pair matches the rest of the fleet and check:l10n-js has both halves to
compare.

This is a SEPARATE gap from the missing-.js fault fixed in #296. That one made
27 existing translations unreachable by the browser; this one is that the other
156 strings were never written. Fixing the artefact could not have revealed
them, because before #296 all 181 rendered English identically.

Placeholders are preserved exactly ({hours}, {minutes}, {level}, {source},
{min}, {max}, {forge}, {days}, {version}, {user}, {date}, {size}, {keep},
{pattern}, {count}) -- verified programmatically, 0 mismatches.

No em-dashes in the Dutch, per the writing skill's voice rules, even where the
English source uses them; those become a colon or a full stop.

Verified: check:l10n-js exits 0 with en.js 156 keys and nl.js 183; the file the
browser loads was fetched from the running server and carries the Dutch.
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/versioniq @ 73d1e26

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
build
composer ✅ 29/29
npm ✅ 302/302
app:check-code ⏭️
info.xml
REUSE
PHPUnit
Newman ⏭️
Playwright 🚨 NO VERDICT — enabled but never ran
Hydra gates

Quality workflow — 2026-08-31 03:38 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde
rubenvdlinde merged commit 6e140c8 into development Aug 31, 2026
46 checks passed
@rubenvdlinde
rubenvdlinde deleted the feat/versioniq-dutch-ui branch August 31, 2026 04:51
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