From 0a34d6a666eeddded8dd75109d9f9c6a231e3d2e Mon Sep 17 00:00:00 2001 From: Kevin Lau Date: Mon, 7 Sep 2026 01:40:38 +0800 Subject: [PATCH] fix(i18n): resolve missing translations, obsolete entries, and ambiguous context keys --- .../components/app/app-sidebar/sidebar.tsx | 11 +- .../components/app/mobile/MobileDockRow.tsx | 4 +- .../features/activity/my-activity-view.tsx | 4 +- .../component/AutomationComposer.tsx | 6 +- .../sidebar/channels-recent-widget.tsx | 4 +- apps/web/src/features/command/Launcher.tsx | 6 +- .../command/sidebar/sidebar-create-menu.tsx | 6 +- .../favorites/sidebar/favorites-section.tsx | 6 +- .../web/src/features/inbox/AddInboxDialog.tsx | 2 +- apps/web/src/features/settings/Agents.tsx | 6 +- apps/web/src/features/settings/Crm.tsx | 4 +- apps/web/src/features/settings/GitHub.tsx | 4 +- apps/web/src/features/settings/Harness.tsx | 6 +- .../settings/HarnessPairingDialog.tsx | 10 +- apps/web/src/features/settings/Settings.tsx | 4 +- apps/web/src/features/settings/Team.tsx | 20 +- packages/i18n/diff/ambiguous.json | 57 +- packages/i18n/diff/in-use.json | 8656 +++++++++++++++-- packages/i18n/diff/missing.json | 26 +- packages/i18n/diff/obsolete.json | 906 +- packages/i18n/extract.ts | 148 +- packages/i18n/locales/zh-CN.json | 652 +- 22 files changed, 8273 insertions(+), 2275 deletions(-) diff --git a/apps/web/src/components/app/app-sidebar/sidebar.tsx b/apps/web/src/components/app/app-sidebar/sidebar.tsx index 46ed8ce1629..c3cec1568ac 100644 --- a/apps/web/src/components/app/app-sidebar/sidebar.tsx +++ b/apps/web/src/components/app/app-sidebar/sidebar.tsx @@ -955,7 +955,7 @@ export const SidebarSettingsWidget = (props: SidebarSettingsWidgetProps) => { - {t('Settings')} + {t('Settings', { context: 'sidebar' })} { - + diff --git a/apps/web/src/components/app/mobile/MobileDockRow.tsx b/apps/web/src/components/app/mobile/MobileDockRow.tsx index 48c57879e1a..0925f8601de 100644 --- a/apps/web/src/components/app/mobile/MobileDockRow.tsx +++ b/apps/web/src/components/app/mobile/MobileDockRow.tsx @@ -91,7 +91,7 @@ function CreateMenu() { }} - {t('Create')} + {t('Create', { context: 'dock' })} @@ -171,7 +171,7 @@ function MoreViewsMenu(props: { animateIcon={false} onSelect={toggleSettings} > - {t('Settings')} + {t('Settings', { context: 'dock' })} {/* Rows render top → bottom ending at the thumb: reverse the shared diff --git a/apps/web/src/features/activity/my-activity-view.tsx b/apps/web/src/features/activity/my-activity-view.tsx index fbb70ce523f..4c7e00d3d7d 100644 --- a/apps/web/src/features/activity/my-activity-view.tsx +++ b/apps/web/src/features/activity/my-activity-view.tsx @@ -65,7 +65,7 @@ export function MyActivityView() { fallback={

{feed.isLoading - ? t('Loading…') + ? t('Loading…', { context: 'activity' }) : feed.isError ? t( 'Activity is unavailable right now. Try again in a moment.' @@ -82,7 +82,7 @@ export function MyActivityView() { onClick={() => void feed.fetchNextPage()} disabled={feed.isFetchingNextPage} > - {feed.isFetchingNextPage ? t('Loading…') : t('Show more')} + {feed.isFetchingNextPage ? t('Loading…', { context: 'activity' }) : t('Show more')} diff --git a/apps/web/src/features/block-automation/component/AutomationComposer.tsx b/apps/web/src/features/block-automation/component/AutomationComposer.tsx index c7d1f8fef78..b3bf582c2d8 100644 --- a/apps/web/src/features/block-automation/component/AutomationComposer.tsx +++ b/apps/web/src/features/block-automation/component/AutomationComposer.tsx @@ -160,7 +160,7 @@ export function AutomationComposer() {

setAutomationComposerOpen(false, false)} > - {t('Cancel')} + {t('Cancel', { context: 'automation' })}
diff --git a/apps/web/src/features/channel/sidebar/channels-recent-widget.tsx b/apps/web/src/features/channel/sidebar/channels-recent-widget.tsx index f3189211fed..192ba48f331 100644 --- a/apps/web/src/features/channel/sidebar/channels-recent-widget.tsx +++ b/apps/web/src/features/channel/sidebar/channels-recent-widget.tsx @@ -292,12 +292,12 @@ function ChannelRow(props: { diff --git a/apps/web/src/features/command/Launcher.tsx b/apps/web/src/features/command/Launcher.tsx index be99e331405..43022da195c 100644 --- a/apps/web/src/features/command/Launcher.tsx +++ b/apps/web/src/features/command/Launcher.tsx @@ -900,7 +900,7 @@ export const LauncherInner = (props: LauncherInnerProps) => { registerHotkey({ hotkey: 'shift+enter', scopeId: launcherScope, - description: t('Open in new split'), + description: t('Open in new split', { context: 'launcher' }), keyDownHandler: () => { return runLauncherItem(blocks()[focusedIndex()]); }, @@ -911,7 +911,7 @@ export const LauncherInner = (props: LauncherInnerProps) => { const confirmHotkey = registerHotkey({ hotkey: 'enter' as ValidHotkey, scopeId: launcherScope, - description: t('Open in current split'), + description: t('Open in current split', { context: 'launcher' }), keyDownHandler: () => { return runLauncherItem(blocks()[focusedIndex()]); }, @@ -1045,7 +1045,7 @@ export const LauncherInner = (props: LauncherInnerProps) => { } - label={t('Create')} + label={t('Create', { context: 'launcher' })} />