Skip to content

feat(i18n): German catalogues for framework and module screens (#492) - #570

Merged
antosubash merged 5 commits into
mainfrom
feat/i18n-de-492
Oct 21, 2026
Merged

antosubash merged 5 commits into
mainfrom
feat/i18n-de-492

Conversation

@antosubash

Copy link
Copy Markdown
Owner

Summary

Closes #492

  • Catalogues: a de.json beside every en.json, covering the framework hosting and UI catalogues, the host, and every module. The German uses the formal "Sie" register and consistent terms such as Organisation, Benutzer, Berechtigungen and Einstellungen.
  • Not on by default: add de to i18n_supported_locales (the Settings screen or SM_I18N_SUPPORTED_LOCALES) to offer German.
  • Parity check: scripts/check_locales.py (make ci-check-locales, in make lint and CI) checks keys and placeholders.
    • It enforces full parity for German; other languages, such as the incomplete Spanish, are only reported.
    • With German now on main, any new English key needs its German translation in the same PR.
  • Server-side strings that were English-only are now translatable (found in QA):
    • permission group headings, via PermissionRegistry.add_group(label_key=);
    • feature flag descriptions, via FeatureFlagDefinition.description_key.
    • Both are optional and fall back to the literal, so English and out-of-tree modules are unchanged.
  • Also fixed:
    • Singular/plural forms for the tenant seats line ("1 Platz").
    • Dates in the tenants and users pages follow the active locale, via activeLocale() in @simple-module-py/i18n.
  • Docs and changelog: docs/framework/i18n.md and the CHANGELOG are updated.

Verification

  • Local CI, after merging main:
    • make lint passes, including locale parity.
    • make test-py: 5126 passed.
    • make test-js passes.
  • /ship:
    • Review was clean after 2 passes: four wording fixes, consistent typographic quotes, and German switched back to off by default.
  • Browser QA with German enabled: 19 checks across every module's screens, in 2 iterations.
    • It found 2 bugs (the server-side group headings and flag descriptions) and 2 minor issues (seats singular, date format). All four are fixed.
    • A re-test in German and English was clean.
  • Reports:

Report links are Claude Artifacts and start private — share them from claude.ai/code/artifacts if reviewers need access.

Accepted

  • The audit-log timestamp column keeps its fixed format (format.ts).
  • The audit-log object-type filter lists model and table names.
  • Both behave the same as on main.

Test plan

  • CI is green
  • With de enabled, the admin screens read German

https://claude.ai/code/session_01M9neheZZEe3sVpDi2S3zT4

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Deploying simple-module-python with  Cloudflare Pages  Cloudflare Pages

Latest commit: 415b62b
Status: ✅  Deploy successful!
Preview URL: https://e23c6f95.simple-module-python.pages.dev
Branch Preview URL: https://feat-i18n-de-492.simple-module-python.pages.dev

View logs

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
🔒 Security Review ✅ Completed 2026-10-21T16:28:06.054899Z 415b62b PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@antosubash
antosubash merged commit ebbc6ff into main Oct 21, 2026
17 checks passed
@antosubash
antosubash deleted the feat/i18n-de-492 branch October 21, 2026 16:37
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: German catalogues for the framework modules' screens

1 participant