Skip to content

Merge language and scale into one Interface settings section - #24222

Merged
FelixMalfait merged 1 commit into
mainfrom
claude/settings-interface-section
Aug 15, 2026
Merged

Merge language and scale into one Interface settings section#24222
FelixMalfait merged 1 commit into
mainfrom
claude/settings-interface-section

Conversation

@FelixMalfait

@FelixMalfait FelixMalfait commented Aug 14, 2026

Copy link
Copy Markdown
Member

Designer feedback: the Language and Interface scale settings belong in a single section called Interface.

Changes

  • Settings > Experience now has one Interface section containing the language picker and the scale picker, replacing the two separate sections.
  • Each select gets its own label (Language, Scale), following the pattern already used by the Formats section with its labeled Time zone select.
  • Section order is now Appearance, Interface, Navigation, Formats.

Generated by Claude Code

Review in cubic

Thomas asked for a single Interface section in Settings > Experience
holding both preferences. Each select now carries its own label, the way
the multi-control Formats section already labels its fields.
@twenty-ci-bot-public

Copy link
Copy Markdown

🚀 Preview Environment Ready!

Your preview environment is available at: https://keen-females-dvd-usually.trycloudflare.com

This environment will automatically shut down after 5 hours.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 3 files

You’re at about 95% of the monthly reviewed-line limit. You may want to disable incremental reviews to conserve quota. Reviews will continue until that limit is exceeded. If you need help avoiding interruptions, please contact contact@cubic.dev.

Re-trigger cubic

@greptile-apps

greptile-apps Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR consolidates language and interface-scale controls into one labeled Interface section and reorders the Experience settings sections.

  • Adds Language and Scale labels to their respective selects.
  • Moves LocalePicker alongside UiScalePicker in a vertically spaced container.
  • Renames the Interface scale section and removes the standalone Language section.

Confidence Score: 4/5

The localization catalog omission should be fixed before merging so the newly introduced Interface copy participates in supported locale builds.

The merged layout and select labeling are structurally sound, but three new Lingui message IDs are absent from the source catalog, leaving the new copy outside the localization pipeline.

Files Needing Attention: packages/twenty-front/src/pages/settings/profile/appearance/components/SettingsExperience.tsx, packages/twenty-front/src/modules/settings/experience/components/UiScalePicker.tsx

Important Files Changed

Filename Overview
packages/twenty-front/src/pages/settings/profile/appearance/components/SettingsExperience.tsx Merges language and scale controls into one section, but introduces untranslated messages absent from the source catalog.
packages/twenty-front/src/modules/settings/experience/components/UiScalePicker.tsx Adds a Scale label whose new Lingui message has not been extracted.
packages/twenty-front/src/pages/settings/profile/appearance/components/LocalePicker.tsx Adds a Language label using an existing catalog message and otherwise preserves picker behavior.

Reviews (1): Last reviewed commit: "Merge language and scale into one Interf..." | Re-trigger Greptile

Comment on lines +53 to +54
title={t`Interface`}
description={t`Select your language and adjust the size of the interface`}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 New messages bypass locale catalogs

When Experience settings render, the new Interface heading, description, and Scale label are absent from the source locale catalog, causing Lingui to display raw English and preventing these messages from entering the normal translation workflow.

Knowledge Base Used: Frontend Localization

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Intentional: locale catalogs are never committed manually in this repo (maintainer guidance on #24209). The i18n pipeline runs lingui extract/compile and picks new messages up from source, ci-front runs extract/compile without a diff check, and new strings fall back to their English source until translated.


Generated by Claude Code

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got it, thanks for the context. The automatic extract/compile pipeline handles new messages without manual catalog commits — makes sense. I'll stop flagging missing catalog entries as issues in this repo.

Shall I remember this as a rule: "Do not flag new i18n strings as missing from locale catalogs — in this repo, lingui extract/compile runs automatically in CI and picks up new messages without manual catalog commits"?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, please remember that rule.


Generated by Claude Code

@twenty-ci-bot-public

Copy link
Copy Markdown

✅ Standard review · no findings

Safe to merge — no findings

High-level — Small UI-only reorganization of Settings→Experience (adds Select labels, merges Language into the Interface section); no migration, flag, or public-surface changes and low deploy risk
Low-level — All strings go through t(), the design-system Select is reused, spacing uses a theme token, and no casts/let/manual-nullish/added-comments appear — no rule violations


Reviewed against the pr-review standard — high-level then low-level. Advisory; human review still required. Run details.

@twenty-ci-bot-public

Copy link
Copy Markdown

🔍 Visual Regression Review — twenty-front

⚠️ 1 likely regression(s) detected (advisory — not blocking). Enable enforcement to block merges on these.

Changed: 4 · Added: 0 · Removed: 0 · Unchanged: 749

Flagged regressions
Story Verdict Confidence Explained by
🔴 modules-commandmenu-commandmenu--limited-permissions regression 95% Nothing in the PR diff touches the CommandMenu component or its dependencies.
2 item(s) to double-check (uncertain / low confidence)
Story Verdict Confidence Explained by
🟡 pages-settings-domains-settingssubdomain--valid-subdomain uncertain 65% N/A — PR does not touch the subdomain page or settings navigation layout.
🟡 modules-settings-playground-graphqlplayground--default uncertain 60% N/A — PR does not touch the GraphQL Playground component.
Changed stories
Story Diff %
modules-commandmenu-commandmenu--limited-permissions 16%
pages-settings-domains-settingssubdomain--valid-subdomain 7%
modules-settings-playground-graphqlplayground--default 3%
pages-settings-settingsexperience--default 0%

View run details · advisory mode

@FelixMalfait
FelixMalfait merged commit 8676b34 into main Aug 15, 2026
142 of 144 checks passed
@FelixMalfait
FelixMalfait deleted the claude/settings-interface-section branch August 15, 2026 10:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant