|
@@ -265,7 +265,7 @@ export function Config({
|
|
|
// Global settings
|
|
// Global settings
|
|
|
{
|
|
{
|
|
|
id: 'autoCompactEnabled',
|
|
id: 'autoCompactEnabled',
|
|
|
- label: 'Auto-compact',
|
|
|
|
|
|
|
+ label: '自动压缩',
|
|
|
value: globalConfig.autoCompactEnabled,
|
|
value: globalConfig.autoCompactEnabled,
|
|
|
type: 'boolean' as const,
|
|
type: 'boolean' as const,
|
|
|
onChange(autoCompactEnabled: boolean) {
|
|
onChange(autoCompactEnabled: boolean) {
|
|
@@ -283,7 +283,7 @@ export function Config({
|
|
|
}
|
|
}
|
|
|
}, {
|
|
}, {
|
|
|
id: 'spinnerTipsEnabled',
|
|
id: 'spinnerTipsEnabled',
|
|
|
- label: 'Show tips',
|
|
|
|
|
|
|
+ label: '显示提示技巧',
|
|
|
value: settingsData?.spinnerTipsEnabled ?? true,
|
|
value: settingsData?.spinnerTipsEnabled ?? true,
|
|
|
type: 'boolean' as const,
|
|
type: 'boolean' as const,
|
|
|
onChange(spinnerTipsEnabled: boolean) {
|
|
onChange(spinnerTipsEnabled: boolean) {
|
|
@@ -301,7 +301,7 @@ export function Config({
|
|
|
}
|
|
}
|
|
|
}, {
|
|
}, {
|
|
|
id: 'prefersReducedMotion',
|
|
id: 'prefersReducedMotion',
|
|
|
- label: 'Reduce motion',
|
|
|
|
|
|
|
+ label: '减弱动态效果',
|
|
|
value: settingsData?.prefersReducedMotion ?? false,
|
|
value: settingsData?.prefersReducedMotion ?? false,
|
|
|
type: 'boolean' as const,
|
|
type: 'boolean' as const,
|
|
|
onChange(prefersReducedMotion: boolean) {
|
|
onChange(prefersReducedMotion: boolean) {
|
|
@@ -326,7 +326,7 @@ export function Config({
|
|
|
}
|
|
}
|
|
|
}, {
|
|
}, {
|
|
|
id: 'thinkingEnabled',
|
|
id: 'thinkingEnabled',
|
|
|
- label: 'Thinking mode',
|
|
|
|
|
|
|
+ label: '思考模式',
|
|
|
value: thinkingEnabled ?? true,
|
|
value: thinkingEnabled ?? true,
|
|
|
type: 'boolean' as const,
|
|
type: 'boolean' as const,
|
|
|
onChange(enabled: boolean) {
|
|
onChange(enabled: boolean) {
|
|
@@ -345,7 +345,7 @@ export function Config({
|
|
|
// Fast mode toggle (ant-only, eliminated from external builds)
|
|
// Fast mode toggle (ant-only, eliminated from external builds)
|
|
|
...(isFastModeEnabled() && isFastModeAvailable() ? [{
|
|
...(isFastModeEnabled() && isFastModeAvailable() ? [{
|
|
|
id: 'fastMode',
|
|
id: 'fastMode',
|
|
|
- label: `Fast mode (${FAST_MODE_MODEL_DISPLAY} only)`,
|
|
|
|
|
|
|
+ label: `快速模式(仅 ${FAST_MODE_MODEL_DISPLAY})`,
|
|
|
value: !!isFastMode,
|
|
value: !!isFastMode,
|
|
|
type: 'boolean' as const,
|
|
type: 'boolean' as const,
|
|
|
onChange(enabled_0: boolean) {
|
|
onChange(enabled_0: boolean) {
|
|
@@ -378,7 +378,7 @@ export function Config({
|
|
|
}
|
|
}
|
|
|
}] : []), ...(getFeatureValue_CACHED_MAY_BE_STALE('tengu_chomp_inflection', false) ? [{
|
|
}] : []), ...(getFeatureValue_CACHED_MAY_BE_STALE('tengu_chomp_inflection', false) ? [{
|
|
|
id: 'promptSuggestionEnabled',
|
|
id: 'promptSuggestionEnabled',
|
|
|
- label: 'Prompt suggestions',
|
|
|
|
|
|
|
+ label: '提示词建议',
|
|
|
value: promptSuggestionEnabled,
|
|
value: promptSuggestionEnabled,
|
|
|
type: 'boolean' as const,
|
|
type: 'boolean' as const,
|
|
|
onChange(enabled_1: boolean) {
|
|
onChange(enabled_1: boolean) {
|
|
@@ -394,7 +394,7 @@ export function Config({
|
|
|
// Speculation toggle (ant-only)
|
|
// Speculation toggle (ant-only)
|
|
|
...("external" === 'ant' ? [{
|
|
...("external" === 'ant' ? [{
|
|
|
id: 'speculationEnabled',
|
|
id: 'speculationEnabled',
|
|
|
- label: 'Speculative execution',
|
|
|
|
|
|
|
+ label: '推测执行',
|
|
|
value: globalConfig.speculationEnabled ?? true,
|
|
value: globalConfig.speculationEnabled ?? true,
|
|
|
type: 'boolean' as const,
|
|
type: 'boolean' as const,
|
|
|
onChange(enabled_2: boolean) {
|
|
onChange(enabled_2: boolean) {
|
|
@@ -415,7 +415,7 @@ export function Config({
|
|
|
}
|
|
}
|
|
|
}] : []), ...(isFileCheckpointingAvailable ? [{
|
|
}] : []), ...(isFileCheckpointingAvailable ? [{
|
|
|
id: 'fileCheckpointingEnabled',
|
|
id: 'fileCheckpointingEnabled',
|
|
|
- label: 'Rewind code (checkpoints)',
|
|
|
|
|
|
|
+ label: '代码回退(检查点)',
|
|
|
value: globalConfig.fileCheckpointingEnabled,
|
|
value: globalConfig.fileCheckpointingEnabled,
|
|
|
type: 'boolean' as const,
|
|
type: 'boolean' as const,
|
|
|
onChange(enabled_3: boolean) {
|
|
onChange(enabled_3: boolean) {
|
|
@@ -433,13 +433,13 @@ export function Config({
|
|
|
}
|
|
}
|
|
|
}] : []), {
|
|
}] : []), {
|
|
|
id: 'verbose',
|
|
id: 'verbose',
|
|
|
- label: 'Verbose output',
|
|
|
|
|
|
|
+ label: '详细输出',
|
|
|
value: verbose,
|
|
value: verbose,
|
|
|
type: 'boolean',
|
|
type: 'boolean',
|
|
|
onChange: onChangeVerbose
|
|
onChange: onChangeVerbose
|
|
|
}, {
|
|
}, {
|
|
|
id: 'terminalProgressBarEnabled',
|
|
id: 'terminalProgressBarEnabled',
|
|
|
- label: 'Terminal progress bar',
|
|
|
|
|
|
|
+ label: '终端进度条',
|
|
|
value: globalConfig.terminalProgressBarEnabled,
|
|
value: globalConfig.terminalProgressBarEnabled,
|
|
|
type: 'boolean' as const,
|
|
type: 'boolean' as const,
|
|
|
onChange(terminalProgressBarEnabled: boolean) {
|
|
onChange(terminalProgressBarEnabled: boolean) {
|
|
@@ -457,7 +457,7 @@ export function Config({
|
|
|
}
|
|
}
|
|
|
}, ...(getFeatureValue_CACHED_MAY_BE_STALE('tengu_terminal_sidebar', false) ? [{
|
|
}, ...(getFeatureValue_CACHED_MAY_BE_STALE('tengu_terminal_sidebar', false) ? [{
|
|
|
id: 'showStatusInTerminalTab',
|
|
id: 'showStatusInTerminalTab',
|
|
|
- label: 'Show status in terminal tab',
|
|
|
|
|
|
|
+ label: '终端标签显示状态',
|
|
|
value: globalConfig.showStatusInTerminalTab ?? false,
|
|
value: globalConfig.showStatusInTerminalTab ?? false,
|
|
|
type: 'boolean' as const,
|
|
type: 'boolean' as const,
|
|
|
onChange(showStatusInTerminalTab: boolean) {
|
|
onChange(showStatusInTerminalTab: boolean) {
|
|
@@ -475,7 +475,7 @@ export function Config({
|
|
|
}
|
|
}
|
|
|
}] : []), {
|
|
}] : []), {
|
|
|
id: 'showTurnDuration',
|
|
id: 'showTurnDuration',
|
|
|
- label: 'Show turn duration',
|
|
|
|
|
|
|
+ label: '显示轮次耗时',
|
|
|
value: globalConfig.showTurnDuration,
|
|
value: globalConfig.showTurnDuration,
|
|
|
type: 'boolean' as const,
|
|
type: 'boolean' as const,
|
|
|
onChange(showTurnDuration: boolean) {
|
|
onChange(showTurnDuration: boolean) {
|
|
@@ -493,7 +493,7 @@ export function Config({
|
|
|
}
|
|
}
|
|
|
}, {
|
|
}, {
|
|
|
id: 'defaultPermissionMode',
|
|
id: 'defaultPermissionMode',
|
|
|
- label: 'Default permission mode',
|
|
|
|
|
|
|
+ label: '默认权限模式',
|
|
|
value: settingsData?.permissions?.defaultMode || 'default',
|
|
value: settingsData?.permissions?.defaultMode || 'default',
|
|
|
options: (() => {
|
|
options: (() => {
|
|
|
const priorityOrder: PermissionMode[] = ['default', 'plan'];
|
|
const priorityOrder: PermissionMode[] = ['default', 'plan'];
|
|
@@ -543,7 +543,7 @@ export function Config({
|
|
|
}
|
|
}
|
|
|
}, ...(feature('TRANSCRIPT_CLASSIFIER') && showAutoInDefaultModePicker ? [{
|
|
}, ...(feature('TRANSCRIPT_CLASSIFIER') && showAutoInDefaultModePicker ? [{
|
|
|
id: 'useAutoModeDuringPlan',
|
|
id: 'useAutoModeDuringPlan',
|
|
|
- label: 'Use auto mode during plan',
|
|
|
|
|
|
|
+ label: '规划时使用自动模式',
|
|
|
value: (settingsData as {
|
|
value: (settingsData as {
|
|
|
useAutoModeDuringPlan?: boolean;
|
|
useAutoModeDuringPlan?: boolean;
|
|
|
} | undefined)?.useAutoModeDuringPlan ?? true,
|
|
} | undefined)?.useAutoModeDuringPlan ?? true,
|
|
@@ -574,7 +574,7 @@ export function Config({
|
|
|
}
|
|
}
|
|
|
}] : []), {
|
|
}] : []), {
|
|
|
id: 'respectGitignore',
|
|
id: 'respectGitignore',
|
|
|
- label: 'Respect .gitignore in file picker',
|
|
|
|
|
|
|
+ label: '文件选择器中遵守 .gitignore',
|
|
|
value: globalConfig.respectGitignore,
|
|
value: globalConfig.respectGitignore,
|
|
|
type: 'boolean' as const,
|
|
type: 'boolean' as const,
|
|
|
onChange(respectGitignore: boolean) {
|
|
onChange(respectGitignore: boolean) {
|
|
@@ -592,7 +592,7 @@ export function Config({
|
|
|
}
|
|
}
|
|
|
}, {
|
|
}, {
|
|
|
id: 'copyFullResponse',
|
|
id: 'copyFullResponse',
|
|
|
- label: 'Always copy full response (skip /copy picker)',
|
|
|
|
|
|
|
+ label: '始终复制完整响应(跳过 /copy 选择器)',
|
|
|
value: globalConfig.copyFullResponse,
|
|
value: globalConfig.copyFullResponse,
|
|
|
type: 'boolean' as const,
|
|
type: 'boolean' as const,
|
|
|
onChange(copyFullResponse: boolean) {
|
|
onChange(copyFullResponse: boolean) {
|
|
@@ -614,7 +614,7 @@ export function Config({
|
|
|
// alt-screen mode). In inline mode the terminal emulator owns selection.
|
|
// alt-screen mode). In inline mode the terminal emulator owns selection.
|
|
|
...(isFullscreenEnvEnabled() ? [{
|
|
...(isFullscreenEnvEnabled() ? [{
|
|
|
id: 'copyOnSelect',
|
|
id: 'copyOnSelect',
|
|
|
- label: 'Copy on select',
|
|
|
|
|
|
|
+ label: '选中即复制',
|
|
|
value: globalConfig.copyOnSelect ?? true,
|
|
value: globalConfig.copyOnSelect ?? true,
|
|
|
type: 'boolean' as const,
|
|
type: 'boolean' as const,
|
|
|
onChange(copyOnSelect: boolean) {
|
|
onChange(copyOnSelect: boolean) {
|
|
@@ -635,13 +635,13 @@ export function Config({
|
|
|
// autoUpdates setting is hidden - use DISABLE_AUTOUPDATER env var to control
|
|
// autoUpdates setting is hidden - use DISABLE_AUTOUPDATER env var to control
|
|
|
autoUpdaterDisabledReason ? {
|
|
autoUpdaterDisabledReason ? {
|
|
|
id: 'autoUpdatesChannel',
|
|
id: 'autoUpdatesChannel',
|
|
|
- label: 'Auto-update channel',
|
|
|
|
|
|
|
+ label: '自动更新通道',
|
|
|
value: 'disabled',
|
|
value: 'disabled',
|
|
|
type: 'managedEnum' as const,
|
|
type: 'managedEnum' as const,
|
|
|
onChange() {}
|
|
onChange() {}
|
|
|
} : {
|
|
} : {
|
|
|
id: 'autoUpdatesChannel',
|
|
id: 'autoUpdatesChannel',
|
|
|
- label: 'Auto-update channel',
|
|
|
|
|
|
|
+ label: '自动更新通道',
|
|
|
value: settingsData?.autoUpdatesChannel ?? 'latest',
|
|
value: settingsData?.autoUpdatesChannel ?? 'latest',
|
|
|
type: 'managedEnum' as const,
|
|
type: 'managedEnum' as const,
|
|
|
onChange() {
|
|
onChange() {
|
|
@@ -649,7 +649,7 @@ export function Config({
|
|
|
}
|
|
}
|
|
|
}, {
|
|
}, {
|
|
|
id: 'theme',
|
|
id: 'theme',
|
|
|
- label: 'Theme',
|
|
|
|
|
|
|
+ label: '主题',
|
|
|
value: themeSetting,
|
|
value: themeSetting,
|
|
|
type: 'managedEnum',
|
|
type: 'managedEnum',
|
|
|
onChange: setTheme
|
|
onChange: setTheme
|
|
@@ -671,7 +671,7 @@ export function Config({
|
|
|
}
|
|
}
|
|
|
}, ...(feature('KAIROS') || feature('KAIROS_PUSH_NOTIFICATION') ? [{
|
|
}, ...(feature('KAIROS') || feature('KAIROS_PUSH_NOTIFICATION') ? [{
|
|
|
id: 'taskCompleteNotifEnabled',
|
|
id: 'taskCompleteNotifEnabled',
|
|
|
- label: 'Push when idle',
|
|
|
|
|
|
|
+ label: '空闲时推送',
|
|
|
value: globalConfig.taskCompleteNotifEnabled ?? false,
|
|
value: globalConfig.taskCompleteNotifEnabled ?? false,
|
|
|
type: 'boolean' as const,
|
|
type: 'boolean' as const,
|
|
|
onChange(taskCompleteNotifEnabled: boolean) {
|
|
onChange(taskCompleteNotifEnabled: boolean) {
|
|
@@ -686,7 +686,7 @@ export function Config({
|
|
|
}
|
|
}
|
|
|
}, {
|
|
}, {
|
|
|
id: 'inputNeededNotifEnabled',
|
|
id: 'inputNeededNotifEnabled',
|
|
|
- label: 'Push when input needed',
|
|
|
|
|
|
|
+ label: '需要输入时推送',
|
|
|
value: globalConfig.inputNeededNotifEnabled ?? false,
|
|
value: globalConfig.inputNeededNotifEnabled ?? false,
|
|
|
type: 'boolean' as const,
|
|
type: 'boolean' as const,
|
|
|
onChange(inputNeededNotifEnabled: boolean) {
|
|
onChange(inputNeededNotifEnabled: boolean) {
|
|
@@ -701,7 +701,7 @@ export function Config({
|
|
|
}
|
|
}
|
|
|
}, {
|
|
}, {
|
|
|
id: 'agentPushNotifEnabled',
|
|
id: 'agentPushNotifEnabled',
|
|
|
- label: 'Push when Claude decides',
|
|
|
|
|
|
|
+ label: 'Claude 决定时推送',
|
|
|
value: globalConfig.agentPushNotifEnabled ?? false,
|
|
value: globalConfig.agentPushNotifEnabled ?? false,
|
|
|
type: 'boolean' as const,
|
|
type: 'boolean' as const,
|
|
|
onChange(agentPushNotifEnabled: boolean) {
|
|
onChange(agentPushNotifEnabled: boolean) {
|
|
@@ -716,13 +716,13 @@ export function Config({
|
|
|
}
|
|
}
|
|
|
}] : []), {
|
|
}] : []), {
|
|
|
id: 'outputStyle',
|
|
id: 'outputStyle',
|
|
|
- label: 'Output style',
|
|
|
|
|
|
|
+ label: '输出样式',
|
|
|
value: currentOutputStyle,
|
|
value: currentOutputStyle,
|
|
|
type: 'managedEnum' as const,
|
|
type: 'managedEnum' as const,
|
|
|
onChange: () => {} // handled by OutputStylePicker submenu
|
|
onChange: () => {} // handled by OutputStylePicker submenu
|
|
|
}, ...(showDefaultViewPicker ? [{
|
|
}, ...(showDefaultViewPicker ? [{
|
|
|
id: 'defaultView',
|
|
id: 'defaultView',
|
|
|
- label: 'What you see by default',
|
|
|
|
|
|
|
+ label: '默认视图',
|
|
|
// 'default' means the setting is unset — currently resolves to
|
|
// 'default' means the setting is unset — currently resolves to
|
|
|
// transcript (main.tsx falls through when defaultView !== 'chat').
|
|
// transcript (main.tsx falls through when defaultView !== 'chat').
|
|
|
// String() narrows the conditional-schema-spread union to string.
|
|
// String() narrows the conditional-schema-spread union to string.
|
|
@@ -761,13 +761,13 @@ export function Config({
|
|
|
}
|
|
}
|
|
|
}] : []), {
|
|
}] : []), {
|
|
|
id: 'language',
|
|
id: 'language',
|
|
|
- label: 'Language',
|
|
|
|
|
- value: currentLanguage ?? 'Default (English)',
|
|
|
|
|
|
|
+ label: '语言',
|
|
|
|
|
+ value: currentLanguage ?? '默认(英文)',
|
|
|
type: 'managedEnum' as const,
|
|
type: 'managedEnum' as const,
|
|
|
onChange: () => {} // handled by LanguagePicker submenu
|
|
onChange: () => {} // handled by LanguagePicker submenu
|
|
|
}, {
|
|
}, {
|
|
|
id: 'editorMode',
|
|
id: 'editorMode',
|
|
|
- label: 'Editor mode',
|
|
|
|
|
|
|
+ label: '编辑模式',
|
|
|
// Convert 'emacs' to 'normal' for backward compatibility
|
|
// Convert 'emacs' to 'normal' for backward compatibility
|
|
|
value: globalConfig.editorMode === 'emacs' ? 'normal' : globalConfig.editorMode || 'normal',
|
|
value: globalConfig.editorMode === 'emacs' ? 'normal' : globalConfig.editorMode || 'normal',
|
|
|
options: ['normal', 'vim'],
|
|
options: ['normal', 'vim'],
|
|
@@ -788,7 +788,7 @@ export function Config({
|
|
|
}
|
|
}
|
|
|
}, {
|
|
}, {
|
|
|
id: 'prStatusFooterEnabled',
|
|
id: 'prStatusFooterEnabled',
|
|
|
- label: 'Show PR status footer',
|
|
|
|
|
|
|
+ label: '显示 PR 状态页脚',
|
|
|
value: globalConfig.prStatusFooterEnabled ?? true,
|
|
value: globalConfig.prStatusFooterEnabled ?? true,
|
|
|
type: 'boolean' as const,
|
|
type: 'boolean' as const,
|
|
|
onChange(enabled_4: boolean) {
|
|
onChange(enabled_4: boolean) {
|
|
@@ -809,13 +809,13 @@ export function Config({
|
|
|
}
|
|
}
|
|
|
}, {
|
|
}, {
|
|
|
id: 'model',
|
|
id: 'model',
|
|
|
- label: 'Model',
|
|
|
|
|
- value: mainLoopModel === null ? 'Default (recommended)' : mainLoopModel,
|
|
|
|
|
|
|
+ label: '模型',
|
|
|
|
|
+ value: mainLoopModel === null ? '默认(推荐)' : mainLoopModel,
|
|
|
type: 'managedEnum' as const,
|
|
type: 'managedEnum' as const,
|
|
|
onChange: onChangeMainModelConfig
|
|
onChange: onChangeMainModelConfig
|
|
|
}, ...(isConnectedToIde ? [{
|
|
}, ...(isConnectedToIde ? [{
|
|
|
id: 'diffTool',
|
|
id: 'diffTool',
|
|
|
- label: 'Diff tool',
|
|
|
|
|
|
|
+ label: '差异工具',
|
|
|
value: globalConfig.diffTool ?? 'auto',
|
|
value: globalConfig.diffTool ?? 'auto',
|
|
|
options: ['terminal', 'auto'],
|
|
options: ['terminal', 'auto'],
|
|
|
type: 'enum' as const,
|
|
type: 'enum' as const,
|
|
@@ -835,7 +835,7 @@ export function Config({
|
|
|
}
|
|
}
|
|
|
}] : []), ...(!isSupportedTerminal() ? [{
|
|
}] : []), ...(!isSupportedTerminal() ? [{
|
|
|
id: 'autoConnectIde',
|
|
id: 'autoConnectIde',
|
|
|
- label: 'Auto-connect to IDE (external terminal)',
|
|
|
|
|
|
|
+ label: '自动连接 IDE(外部终端)',
|
|
|
value: globalConfig.autoConnectIde ?? false,
|
|
value: globalConfig.autoConnectIde ?? false,
|
|
|
type: 'boolean' as const,
|
|
type: 'boolean' as const,
|
|
|
onChange(autoConnectIde: boolean) {
|
|
onChange(autoConnectIde: boolean) {
|
|
@@ -854,7 +854,7 @@ export function Config({
|
|
|
}
|
|
}
|
|
|
}] : []), ...(isSupportedTerminal() ? [{
|
|
}] : []), ...(isSupportedTerminal() ? [{
|
|
|
id: 'autoInstallIdeExtension',
|
|
id: 'autoInstallIdeExtension',
|
|
|
- label: 'Auto-install IDE extension',
|
|
|
|
|
|
|
+ label: '自动安装 IDE 扩展',
|
|
|
value: globalConfig.autoInstallIdeExtension ?? true,
|
|
value: globalConfig.autoInstallIdeExtension ?? true,
|
|
|
type: 'boolean' as const,
|
|
type: 'boolean' as const,
|
|
|
onChange(autoInstallIdeExtension: boolean) {
|
|
onChange(autoInstallIdeExtension: boolean) {
|
|
@@ -873,7 +873,7 @@ export function Config({
|
|
|
}
|
|
}
|
|
|
}] : []), {
|
|
}] : []), {
|
|
|
id: 'claudeInChromeDefaultEnabled',
|
|
id: 'claudeInChromeDefaultEnabled',
|
|
|
- label: 'Claude in Chrome enabled by default',
|
|
|
|
|
|
|
+ label: '默认启用 Chrome 中的 Claude',
|
|
|
value: globalConfig.claudeInChromeDefaultEnabled ?? true,
|
|
value: globalConfig.claudeInChromeDefaultEnabled ?? true,
|
|
|
type: 'boolean' as const,
|
|
type: 'boolean' as const,
|
|
|
onChange(enabled_5: boolean) {
|
|
onChange(enabled_5: boolean) {
|
|
@@ -893,7 +893,7 @@ export function Config({
|
|
|
// Teammate mode (only shown when agent swarms are enabled)
|
|
// Teammate mode (only shown when agent swarms are enabled)
|
|
|
...(isAgentSwarmsEnabled() ? (() => {
|
|
...(isAgentSwarmsEnabled() ? (() => {
|
|
|
const cliOverride = getCliTeammateModeOverride();
|
|
const cliOverride = getCliTeammateModeOverride();
|
|
|
- const label = cliOverride ? `Teammate mode [overridden: ${cliOverride}]` : 'Teammate mode';
|
|
|
|
|
|
|
+ const label = cliOverride ? `协作者模式 [被覆盖: ${cliOverride}]` : '协作者模式';
|
|
|
return [{
|
|
return [{
|
|
|
id: 'teammateMode',
|
|
id: 'teammateMode',
|
|
|
label,
|
|
label,
|
|
@@ -920,7 +920,7 @@ export function Config({
|
|
|
}
|
|
}
|
|
|
}, {
|
|
}, {
|
|
|
id: 'teammateDefaultModel',
|
|
id: 'teammateDefaultModel',
|
|
|
- label: 'Default teammate model',
|
|
|
|
|
|
|
+ label: '默认协作者模型',
|
|
|
value: teammateModelDisplayString(globalConfig.teammateDefaultModel),
|
|
value: teammateModelDisplayString(globalConfig.teammateDefaultModel),
|
|
|
type: 'managedEnum' as const,
|
|
type: 'managedEnum' as const,
|
|
|
onChange() {}
|
|
onChange() {}
|
|
@@ -929,7 +929,7 @@ export function Config({
|
|
|
// Remote at startup toggle — gated on build flag + GrowthBook + policy
|
|
// Remote at startup toggle — gated on build flag + GrowthBook + policy
|
|
|
...(feature('BRIDGE_MODE') && isBridgeEnabled() ? [{
|
|
...(feature('BRIDGE_MODE') && isBridgeEnabled() ? [{
|
|
|
id: 'remoteControlAtStartup',
|
|
id: 'remoteControlAtStartup',
|
|
|
- label: 'Enable Remote Control for all sessions',
|
|
|
|
|
|
|
+ label: '为所有会话启用远程控制',
|
|
|
value: globalConfig.remoteControlAtStartup === undefined ? 'default' : String(globalConfig.remoteControlAtStartup),
|
|
value: globalConfig.remoteControlAtStartup === undefined ? 'default' : String(globalConfig.remoteControlAtStartup),
|
|
|
options: ['true', 'false', 'default'],
|
|
options: ['true', 'false', 'default'],
|
|
|
type: 'enum' as const,
|
|
type: 'enum' as const,
|
|
@@ -975,7 +975,7 @@ export function Config({
|
|
|
}
|
|
}
|
|
|
}] : []), ...(shouldShowExternalIncludesToggle ? [{
|
|
}] : []), ...(shouldShowExternalIncludesToggle ? [{
|
|
|
id: 'showExternalIncludesDialog',
|
|
id: 'showExternalIncludesDialog',
|
|
|
- label: 'External CLAUDE.md includes',
|
|
|
|
|
|
|
+ label: '外部 CLAUDE.md 引用',
|
|
|
value: (() => {
|
|
value: (() => {
|
|
|
const projectConfig = getCurrentProjectConfig();
|
|
const projectConfig = getCurrentProjectConfig();
|
|
|
if (projectConfig.hasClaudeMdExternalIncludesApproved) {
|
|
if (projectConfig.hasClaudeMdExternalIncludesApproved) {
|
|
@@ -1137,7 +1137,7 @@ export function Config({
|
|
|
formattedChanges.push(`${globalConfig.autoInstallIdeExtension ? 'Enabled' : 'Disabled'} auto-install IDE extension`);
|
|
formattedChanges.push(`${globalConfig.autoInstallIdeExtension ? 'Enabled' : 'Disabled'} auto-install IDE extension`);
|
|
|
}
|
|
}
|
|
|
if (globalConfig.autoCompactEnabled !== initialConfig.current.autoCompactEnabled) {
|
|
if (globalConfig.autoCompactEnabled !== initialConfig.current.autoCompactEnabled) {
|
|
|
- formattedChanges.push(`${globalConfig.autoCompactEnabled ? 'Enabled' : 'Disabled'} auto-compact`);
|
|
|
|
|
|
|
+ formattedChanges.push(`${globalConfig.autoCompactEnabled ? '已启用' : '已禁用'}自动压缩`);
|
|
|
}
|
|
}
|
|
|
if (globalConfig.respectGitignore !== initialConfig.current.respectGitignore) {
|
|
if (globalConfig.respectGitignore !== initialConfig.current.respectGitignore) {
|
|
|
formattedChanges.push(`${globalConfig.respectGitignore ? 'Enabled' : 'Disabled'} respect .gitignore in file picker`);
|
|
formattedChanges.push(`${globalConfig.respectGitignore ? 'Enabled' : 'Disabled'} respect .gitignore in file picker`);
|
|
@@ -1158,7 +1158,7 @@ export function Config({
|
|
|
formattedChanges.push(`${globalConfig.showTurnDuration ? 'Enabled' : 'Disabled'} turn duration`);
|
|
formattedChanges.push(`${globalConfig.showTurnDuration ? 'Enabled' : 'Disabled'} turn duration`);
|
|
|
}
|
|
}
|
|
|
if (globalConfig.remoteControlAtStartup !== initialConfig.current.remoteControlAtStartup) {
|
|
if (globalConfig.remoteControlAtStartup !== initialConfig.current.remoteControlAtStartup) {
|
|
|
- const remoteLabel = globalConfig.remoteControlAtStartup === undefined ? 'Reset Remote Control to default' : `${globalConfig.remoteControlAtStartup ? 'Enabled' : 'Disabled'} Remote Control for all sessions`;
|
|
|
|
|
|
|
+ const remoteLabel = globalConfig.remoteControlAtStartup === undefined ? '远程控制重置为默认' : `${globalConfig.remoteControlAtStartup ? '已启用' : '已禁用'}所有会话的远程控制`;
|
|
|
formattedChanges.push(remoteLabel);
|
|
formattedChanges.push(remoteLabel);
|
|
|
}
|
|
}
|
|
|
if (settingsData?.autoUpdatesChannel !== initialSettingsData.current?.autoUpdatesChannel) {
|
|
if (settingsData?.autoUpdatesChannel !== initialSettingsData.current?.autoUpdatesChannel) {
|
|
@@ -1593,10 +1593,10 @@ export function Config({
|
|
|
auto-updates.
|
|
auto-updates.
|
|
|
</Text>}
|
|
</Text>}
|
|
|
</> : <Select options={[{
|
|
</> : <Select options={[{
|
|
|
- label: 'Enable with latest channel',
|
|
|
|
|
|
|
+ label: '使用最新通道启用',
|
|
|
value: 'latest'
|
|
value: 'latest'
|
|
|
}, {
|
|
}, {
|
|
|
- label: 'Enable with stable channel',
|
|
|
|
|
|
|
+ label: '使用稳定通道启用',
|
|
|
value: 'stable'
|
|
value: 'stable'
|
|
|
}]} onChange={(channel: string) => {
|
|
}]} onChange={(channel: string) => {
|
|
|
isDirty.current = true;
|
|
isDirty.current = true;
|