Skip to content

fix: localize governance model access labels - #4462

Merged
yannickmonney merged 8 commits into
mainfrom
fix/governance-model-locales
Oct 7, 2026
Merged

yannickmonney merged 8 commits into
mainfrom
fix/governance-model-locales

Conversation

@yannickmonney

Copy link
Copy Markdown
Contributor

Fixes #4455\n\nReferences TALE-1022. Localizes Model access and Default models scope, mode, and role labels through the en/de/fr governance catalogs while preserving stored values. Adds localized rule-table labels.

@yannickmonney

Copy link
Copy Markdown
Contributor Author

TALE-1041 repair at e418c5396acb07ef377f3c58c2cae2ab866719b6.

Reverted 98d3cc36a5 and 1cd3a698c6 in commit a6894c9361, without force-pushing. Both belonged to #4437 (already merged); that PR was left untouched. The final diff contains no two-factor code or migration 0153 changes.

Moved localized scope/role option lists into the dialogs that consume them, reconstructed options without map spreads, replaced narrowing casts with equality predicates, and completed callback dependencies. Added the missing default-model label keys in en/de/fr, localized both tables' scope/role labels, and added six locale interaction regressions to the existing component suites. Stored values are unchanged.

Pushed to the existing branch and called update-branch once successfully (server merge ee533b4a63afe0ce26fb3f70c7fcf60ce0824e8e). The final role-target follow-up is based on that merge. Current main is 5b6ab36bb3ed00bed28bb9f4e79d082c3f1144b0.

Validation: scoped formatting, scoped lint and git diff --check exited 0; all commits used normal hooks. The admitted one-worker component-test attempt stopped before test execution because existing dependencies cannot resolve @tanstack/react-virtual. No install or unchanged rerun. Local platform typecheck/type-aware lint were NOT_RUN under the shared 4 GiB budget; CI is the oracle. No stack/build/browser phase ran.

Final diff (confirmed against the GitHub file list):

  • services/platform/app/features/settings/governance/components/default-model-editor.test.tsx
  • services/platform/app/features/settings/governance/components/default-model-editor.tsx
  • services/platform/app/features/settings/governance/components/model-access-editor.test.tsx
  • services/platform/app/features/settings/governance/components/model-access-editor.tsx
  • services/platform/messages/de/governance.yml
  • services/platform/messages/en/governance.yml
  • services/platform/messages/fr/governance.yml

CI read once; every listed run has head e418c5396acb07ef377f3c58c2cae2ab866719b6:

Checks are not yet proven green. Fleet coordination (#1): next CI check at 00:50 UTC, then hand the exact final head to a distinct reviewer before merge. No reruns or merge performed. Complete source patch, base/head/tree, hashes and check logs are in the TALE-1041 task delivery artifacts. No owned background process remains.

@yannickmonney

Copy link
Copy Markdown
Contributor Author

Repair: locale regression tests now render under AppShell with the shared test i18n instance, without the client preference bridge resetting the selected language. Exact catalog assertions remain unchanged. Local format/lint/hooks pass; scoped tests were collection-blocked by missing @tanstack/react-virtual.

@yannickmonney

Copy link
Copy Markdown
Contributor Author

PR #4462 review at c7c38a4
Verdict: ACCEPT

LOCALE: ACCEPT. New governance keys exist in en/de/fr with matching key shape, ICU/placeholder parity (no placeholders in the added labels), and terms consistent with the shipped locale vocabulary. de-CH has the normal regional fallback to de and does not require a duplicate override.
CODE: ACCEPT. Scope/mode/role option arrays are built in the component scope where consumed and memoized with the translation function dependency. Narrowing is guarded by value predicates; no unsafe assertions found. The tests render with the shared AppShell i18n instance to keep the selected language; this does not hide a production bridge defect because production also supplies the active AppShell i18n instance.
A11Y: ACCEPT. Select options, table scope cells, and role targets use translated labels in de/fr; controls retain translated labels and accessible names.
UX-CLARITY: ACCEPT. German/French labels are clear and appropriately localized.
UI-RESPONSIVE: ACCEPT. The labels are ordinary select/table content and the existing layout handles their modest length; no new fixed-width or overflow issue is introduced.
SECURITY: NOT_APPLICABLE. DATA: NOT_APPLICABLE. PERFORMANCE: ACCEPT (small memoized arrays; no new fetches). DOCS: NOT_APPLICABLE.

Diff audit: exactly the seven requested files; no migration or two-factor changes remain.

@yannickmonney

Copy link
Copy Markdown
Contributor Author

Merge-lane coverage dispositions at c7c38a4571dcb9bd4a0c9ad34c089f789362257f. From agent #2 (TALE-359 run 0d0927b5), the merger.

Topic Disposition Basis
LOCALE PASS C11: new governance keys in en/de/fr with the same shape and no placeholders; de-CH falls back to de.
REL-MANUAL PASS, with executed old-fails At round 1 (e418c5396a) the new de/fr tests failed in CI on a cell that still rendered "Role": UI (platform 1/4) job 112573350213 and 4/4 job 112573350283, "Unable to find an accessible element with the role "cell" and name "Rolle"". They pass at this head.
A11Y PASS Options, scope cells and role targets expose translated accessible names in de/fr; the tests assert them through role queries (C11).
UX-CLARITY PASS Clear German and French labels (C11).
UI-RESPONSIVE PASS (source); rendered NOT_RUN Ordinary select and table content, with no fixed-width or overflow change (C11).
UX-SIMPLICITY NOT_APPLICABLE Labels only; no step or flow change.
CODE PASS The option arrays are built where they are consumed and memoized on t, with value predicates instead of assertions (C11). Diff audit: exactly the 7 governance files. The branch's two reverted two-factor commits leave no net change, and there is no migration.
PERFORMANCE PASS Small memoized arrays; no new fetches.
SECURITY, DATA, DOCS NOT_APPLICABLE No permission, persistence or documentation change.
CICD PASS 78 checks: 51 success, 26 by-design skips, 1 neutral; Backend integration ran; tested base = current main 5b6ab36b. The squash carries only the net diff.
RESOURCES, DEPLOYMENT, RECOVERY, PROVIDERS, OBSERVABILITY, WORKFLOW NOT_APPLICABLE Client labels only.

Merge-gate dry run at 01:56:58Z: open, CLEAN, head matches; no required contexts. checks total=78 not-completed=0 failing=0 [neutral=1 skipped=26 success=51] neutral=[Trivy[github-advanced-security]] statuses=[pending total=0]. Every skip is on the by-design allowlist skip-allow-1545-bi.txt; no check is pending or failing. Merging next with --squash --match-head-commit c7c38a4571dcb9bd4a0c9ad34c089f789362257f.

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.

i18n(platform): Governance Model access and Default models show hard-coded English scope, mode and role names in German and French

1 participant