Skip to content

fix(desktop): add display language setting#5369

Closed
ComputelessComputer wants to merge 7 commits into
fix/main-area-top-cornersfrom
fix/display-language-i18n
Closed

fix(desktop): add display language setting#5369
ComputelessComputer wants to merge 7 commits into
fix/main-area-top-cornersfrom
fix/display-language-i18n

Conversation

@ComputelessComputer
Copy link
Copy Markdown
Collaborator

@ComputelessComputer ComputelessComputer commented May 29, 2026

Separate app UI locale from the AI main language and add checks that prevent empty translated settings messages.


Note

Medium Risk
Very large locale rollout means most new languages still show English UI strings; tests only enforce full PO coverage for ko/ja, so incorrect or missing translations elsewhere are possible.

Overview
Expands desktop UI (display) localization from a handful of locales to a large shared SUPPORTED_DISPLAY_LOCALES list aligned with spoken-language options, and wires Lingui and runtime loading to that single source of truth.

i18n plumbing now discovers catalogs via import.meta.glob instead of hand-maintained imports, and resolveDisplayLocale resolves base language codes (plus a jwjv alias) before Intl fallback. New .po / compiled messages.ts files are added for each locale; most ship with empty msgstr and English strings in the compiled catalogs until translated.

Tests assert every supported locale loads, ko/ja PO files have no empty translations, and chat tests use the FloatingOpen shell mode. A small Japanese copy tweak is included for one settings string.

Note: PR description references separating display language from AI main language; that behavior may live in other stack commits not shown in this diff.

Reviewed by Cursor Bugbot for commit e302089. Bugbot is set up for automated code reviews on this repo. Configure here.


This is part 3 of 3 in a stack made with GitButler:

@netlify
Copy link
Copy Markdown

netlify Bot commented May 29, 2026

Deploy Preview for old-char canceled.

Name Link
🔨 Latest commit ba6b287
🔍 Latest deploy log https://app.netlify.com/projects/old-char/deploys/6a196f4553641f0008df79b2

Comment thread apps/desktop/src/store/tinybase/persister/settings/persister.ts Outdated
@ComputelessComputer ComputelessComputer changed the base branch from main to fix/sidebar-timeline-setting May 29, 2026 10:59
@ComputelessComputer ComputelessComputer force-pushed the fix/sidebar-timeline-setting branch from 0bb8067 to e88dbfc Compare May 29, 2026 13:30
@ComputelessComputer ComputelessComputer force-pushed the fix/display-language-i18n branch from ba6b287 to 3df0bb3 Compare May 29, 2026 13:30
@ComputelessComputer ComputelessComputer force-pushed the fix/sidebar-timeline-setting branch from e88dbfc to 243f5cb Compare May 29, 2026 13:32
@ComputelessComputer ComputelessComputer changed the base branch from fix/sidebar-timeline-setting to fix/main-area-top-corners May 29, 2026 13:32
@ComputelessComputer ComputelessComputer force-pushed the fix/display-language-i18n branch from 3df0bb3 to 8a01b3c Compare May 29, 2026 13:32
Comment thread apps/desktop/src/i18n/locales/ja/messages.po Outdated
@ComputelessComputer ComputelessComputer force-pushed the fix/main-area-top-corners branch from eea9c5a to b312eeb Compare May 29, 2026 15:34
@ComputelessComputer ComputelessComputer force-pushed the fix/display-language-i18n branch from 8a01b3c to 003f66e Compare May 29, 2026 15:34
@ComputelessComputer ComputelessComputer force-pushed the fix/main-area-top-corners branch from b312eeb to 373168f Compare May 29, 2026 17:07
@ComputelessComputer ComputelessComputer force-pushed the fix/display-language-i18n branch from 003f66e to 8e1aa19 Compare May 29, 2026 17:07
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 8e1aa19. Configure here.

return acc;
},
{} as Record<DisplayLocale, Messages>,
);
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Eagerly loading ~100 identical catalogs bloats bundle

Medium Severity

import.meta.glob with { eager: true } bundles and parses all ~100 locale catalog modules at startup, even though only one locale is active at a time. Previously only 3 catalogs were loaded. The new locales all contain identical English source strings (no actual translations), so the bundle now includes ~100 near-duplicate JSON blobs. Combined with i18n.load(catalogs) passing every catalog to the runtime, this significantly increases both bundle size and initialization cost for no user-visible benefit.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 8e1aa19. Configure here.

@ComputelessComputer ComputelessComputer force-pushed the fix/main-area-top-corners branch from 373168f to 8e3df00 Compare May 29, 2026 17:11
@ComputelessComputer ComputelessComputer force-pushed the fix/display-language-i18n branch from 8e1aa19 to 529990a Compare May 29, 2026 17:11
@ComputelessComputer ComputelessComputer force-pushed the fix/main-area-top-corners branch from 8e3df00 to 50c38a3 Compare May 29, 2026 17:19
@ComputelessComputer ComputelessComputer force-pushed the fix/display-language-i18n branch from 529990a to 21c104a Compare May 29, 2026 17:19
@ComputelessComputer ComputelessComputer force-pushed the fix/main-area-top-corners branch from 50c38a3 to c0f4d32 Compare May 29, 2026 17:22
@ComputelessComputer ComputelessComputer force-pushed the fix/display-language-i18n branch from 21c104a to a1b58b4 Compare May 29, 2026 17:22
Treat bare editor Escape as a main-shell home shortcut while preserving Escape handling for visible editor popovers.
Run the main Escape shortcut from the focused title input and cover it with a regression test.
Read the latest tab store state when running the main Escape shortcut so focused title fields open home reliably.
Keep top corners on the edge-to-edge main surface and cover the scaffold class override.
Use the main AI language for app display locale and add Lingui catalogs for every supported main language.
Add missing Japanese and Korean translations for the "Meetings" and "Show timeline in sidebar" strings that were previously left untranslated in both locale files.
@ComputelessComputer ComputelessComputer force-pushed the fix/main-area-top-corners branch from c0f4d32 to 7392f23 Compare May 29, 2026 17:28
@ComputelessComputer ComputelessComputer force-pushed the fix/display-language-i18n branch from a1b58b4 to e302089 Compare May 29, 2026 17:28
@ComputelessComputer ComputelessComputer force-pushed the fix/main-area-top-corners branch from 7392f23 to 2ebbc51 Compare May 30, 2026 08:44
@ComputelessComputer
Copy link
Copy Markdown
Collaborator Author

Closing this i18n branch for now. We'll redo the display-language/i18n work after the lower stack has merged.

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