i18n: full European language coverage (36 locales) + parity gate - #99
Merged
Conversation
… — ADR-049 chain link 4' (#12) from feat/zero-custom-widgets into main
# Conflicts: # package-lock.json # package.json
…eferences to launchpad' (#10) from chore/rename-mydash-to-launchpad into main
Reapplied onto current main (the original work was stranded on a local branch ~20 commits behind). Adds 36 European-language locale files plus Russian/Turkish and a .forgejo l10n-parity CI gate (tests/l10n/check-l10n-parity.js) asserting every required locale is 100% complete against l10n/en.json. Forward-ported to the current source string set: the three app-availability.* keys added to main since the work was authored are translated in nl (primary locale) and carried as English-fallback values elsewhere — which the parity gate explicitly permits (values identical to English are allowed for cognates/proper nouns/pending translation). Native review can refine those three strings per language later. Gate verified locally: 36 required locales, full parity, no missing keys or empty values.
The parity workflow originally pinned codeberg-small + code.forgejo.org/oci/ ci-node:22, which returns manifest-unknown on Conduction's Codeberg and fails the job before the check runs. Switch to the proven-working runner/image pair from the central Conduction/.github .forgejo workflows. Content unchanged; the parity check passes (verified in a clean node:24-bookworm container).
MWest2020
requested review from
Rem-Dam,
SudoThijn,
WilcoLouwerse,
bbrands02,
remko48,
rjzondervan and
rubenvdlinde
as code owners
July 17, 2026 08:11
rubenvdlinde
added a commit
that referenced
this pull request
Jul 31, 2026
`npm run lint` only ran `eslint src`, so nothing under tests/ was ever checked. The eslint config's node-CLI override was also an explicit FILE LIST, so tests/l10n/check-l10n-parity.js (added by #99) fell outside it and would have failed the moment anyone widened the glob. - lint script -> `eslint src tests --max-warnings 0` - node-CLI override: explicit file list -> `tests/**/*.js` glob - `n/no-unpublished-import` off for tests/ (devDependencies by definition) - filled in the JSDoc the autofix stubbed out rather than leaving bare `@param name` lines Two real findings, not style: - tests/validate-json-strict.js declared `reviverPathStack` for a reviver-based approach that was never built. Dead binding, removed. - tests/validate-register.js kept `lifecycleStates()` alive with a `void lifecycleStates` suppression and never called it. The inline check it was meant to replace only inspected `t.to`, and only when `states{}` was present — an undeclared `from` state, or an array `from`, was silently unreported. Now wired up properly: pass it just the transitions block so it yields the REFERENCED states (passing the whole lifecycle would fold the declared states in and make the comparison vacuous). validate-register still reports 0 warnings on the template's own register. Result: 0 errors and 0 warnings across src/ and tests/.
This was referenced Jul 31, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Heropend na de migratie van Codeberg naar GitHub (2026-07-14).
Origineel, met review-historie: https://codeberg.org/Conduction/nextcloud-app-template/pulls/18