@wong2kim/wmux 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +157 -0
- package/assets/icon.ico +0 -0
- package/assets/icon.svg +6 -0
- package/dist/cli/cli/client.js +102 -0
- package/dist/cli/cli/commands/browser.js +137 -0
- package/dist/cli/cli/commands/input.js +80 -0
- package/dist/cli/cli/commands/notify.js +28 -0
- package/dist/cli/cli/commands/pane.js +88 -0
- package/dist/cli/cli/commands/surface.js +98 -0
- package/dist/cli/cli/commands/system.js +98 -0
- package/dist/cli/cli/commands/workspace.js +117 -0
- package/dist/cli/cli/index.js +140 -0
- package/dist/cli/cli/utils.js +47 -0
- package/dist/cli/shared/constants.js +54 -0
- package/dist/cli/shared/rpc.js +33 -0
- package/dist/cli/shared/types.js +79 -0
- package/dist/mcp/mcp/index.js +60 -0
- package/dist/mcp/mcp/wmux-client.js +146 -0
- package/dist/mcp/shared/constants.js +54 -0
- package/dist/mcp/shared/rpc.js +33 -0
- package/dist/mcp/shared/types.js +79 -0
- package/forge.config.ts +61 -0
- package/index.html +12 -0
- package/package.json +84 -0
- package/postcss.config.js +6 -0
- package/src/cli/client.ts +76 -0
- package/src/cli/commands/browser.ts +128 -0
- package/src/cli/commands/input.ts +72 -0
- package/src/cli/commands/notify.ts +29 -0
- package/src/cli/commands/pane.ts +90 -0
- package/src/cli/commands/surface.ts +102 -0
- package/src/cli/commands/system.ts +95 -0
- package/src/cli/commands/workspace.ts +116 -0
- package/src/cli/index.ts +145 -0
- package/src/cli/utils.ts +44 -0
- package/src/main/index.ts +86 -0
- package/src/main/ipc/handlers/clipboard.handler.ts +20 -0
- package/src/main/ipc/handlers/metadata.handler.ts +56 -0
- package/src/main/ipc/handlers/pty.handler.ts +69 -0
- package/src/main/ipc/handlers/session.handler.ts +17 -0
- package/src/main/ipc/handlers/shell.handler.ts +11 -0
- package/src/main/ipc/registerHandlers.ts +31 -0
- package/src/main/mcp/McpRegistrar.ts +156 -0
- package/src/main/metadata/MetadataCollector.ts +58 -0
- package/src/main/notification/ToastManager.ts +32 -0
- package/src/main/pipe/PipeServer.ts +190 -0
- package/src/main/pipe/RpcRouter.ts +46 -0
- package/src/main/pipe/handlers/_bridge.ts +40 -0
- package/src/main/pipe/handlers/browser.rpc.ts +132 -0
- package/src/main/pipe/handlers/input.rpc.ts +120 -0
- package/src/main/pipe/handlers/meta.rpc.ts +59 -0
- package/src/main/pipe/handlers/notify.rpc.ts +53 -0
- package/src/main/pipe/handlers/pane.rpc.ts +39 -0
- package/src/main/pipe/handlers/surface.rpc.ts +43 -0
- package/src/main/pipe/handlers/system.rpc.ts +36 -0
- package/src/main/pipe/handlers/workspace.rpc.ts +52 -0
- package/src/main/pty/AgentDetector.ts +247 -0
- package/src/main/pty/OscParser.ts +81 -0
- package/src/main/pty/PTYBridge.ts +88 -0
- package/src/main/pty/PTYManager.ts +104 -0
- package/src/main/pty/ShellDetector.ts +63 -0
- package/src/main/session/SessionManager.ts +53 -0
- package/src/main/updater/AutoUpdater.ts +132 -0
- package/src/main/window/createWindow.ts +71 -0
- package/src/mcp/README.md +56 -0
- package/src/mcp/index.ts +153 -0
- package/src/mcp/wmux-client.ts +127 -0
- package/src/preload/index.ts +111 -0
- package/src/preload/preload.ts +108 -0
- package/src/renderer/App.tsx +5 -0
- package/src/renderer/components/Browser/BrowserPanel.tsx +219 -0
- package/src/renderer/components/Browser/BrowserToolbar.tsx +253 -0
- package/src/renderer/components/Company/ApprovalDialog.tsx +3 -0
- package/src/renderer/components/Company/CompanyView.tsx +7 -0
- package/src/renderer/components/Company/MessageFeedPanel.tsx +3 -0
- package/src/renderer/components/Layout/AppLayout.tsx +234 -0
- package/src/renderer/components/Notification/NotificationPanel.tsx +129 -0
- package/src/renderer/components/Palette/CommandPalette.tsx +409 -0
- package/src/renderer/components/Palette/PaletteItem.tsx +55 -0
- package/src/renderer/components/Pane/Pane.tsx +122 -0
- package/src/renderer/components/Pane/PaneContainer.tsx +41 -0
- package/src/renderer/components/Pane/SurfaceTabs.tsx +46 -0
- package/src/renderer/components/Settings/SettingsPanel.tsx +886 -0
- package/src/renderer/components/Sidebar/MiniSidebar.tsx +67 -0
- package/src/renderer/components/Sidebar/Sidebar.tsx +84 -0
- package/src/renderer/components/Sidebar/WorkspaceItem.tsx +241 -0
- package/src/renderer/components/StatusBar/StatusBar.tsx +93 -0
- package/src/renderer/components/Terminal/SearchBar.tsx +126 -0
- package/src/renderer/components/Terminal/Terminal.tsx +102 -0
- package/src/renderer/components/Terminal/ViCopyMode.tsx +104 -0
- package/src/renderer/hooks/useKeyboard.ts +310 -0
- package/src/renderer/hooks/useNotificationListener.ts +80 -0
- package/src/renderer/hooks/useNotificationSound.ts +75 -0
- package/src/renderer/hooks/useRpcBridge.ts +451 -0
- package/src/renderer/hooks/useT.ts +11 -0
- package/src/renderer/hooks/useTerminal.ts +349 -0
- package/src/renderer/hooks/useViCopyMode.ts +320 -0
- package/src/renderer/i18n/index.ts +69 -0
- package/src/renderer/i18n/locales/en.ts +157 -0
- package/src/renderer/i18n/locales/ja.ts +155 -0
- package/src/renderer/i18n/locales/ko.ts +155 -0
- package/src/renderer/i18n/locales/zh.ts +155 -0
- package/src/renderer/index.tsx +6 -0
- package/src/renderer/stores/index.ts +19 -0
- package/src/renderer/stores/slices/notificationSlice.ts +56 -0
- package/src/renderer/stores/slices/paneSlice.ts +141 -0
- package/src/renderer/stores/slices/surfaceSlice.ts +122 -0
- package/src/renderer/stores/slices/uiSlice.ts +247 -0
- package/src/renderer/stores/slices/workspaceSlice.ts +120 -0
- package/src/renderer/styles/globals.css +150 -0
- package/src/renderer/themes.ts +99 -0
- package/src/shared/constants.ts +53 -0
- package/src/shared/electron.d.ts +11 -0
- package/src/shared/rpc.ts +71 -0
- package/src/shared/types.ts +176 -0
- package/tailwind.config.js +11 -0
- package/tsconfig.cli.json +24 -0
- package/tsconfig.json +21 -0
- package/tsconfig.mcp.json +25 -0
- package/vite.main.config.ts +14 -0
- package/vite.preload.config.ts +9 -0
- package/vite.renderer.config.ts +6 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lightweight i18n system — no external library, no React Context.
|
|
3
|
+
* Usage:
|
|
4
|
+
* import { t, setLocale, getLocale } from '../i18n';
|
|
5
|
+
* t('sidebar.workspaces') => "Workspaces"
|
|
6
|
+
* t('terminal.exited', { code: 1 }) => "Process exited with code 1"
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { en, type TranslationKey } from './locales/en';
|
|
10
|
+
import { ko } from './locales/ko';
|
|
11
|
+
import { ja } from './locales/ja';
|
|
12
|
+
import { zh } from './locales/zh';
|
|
13
|
+
|
|
14
|
+
export type Locale = 'en' | 'ko' | 'ja' | 'zh';
|
|
15
|
+
|
|
16
|
+
// All translation maps share the same key set defined by the `en` locale.
|
|
17
|
+
// Partial<> lets other locales fall back to `en` for missing keys.
|
|
18
|
+
type TranslationMap = Record<TranslationKey, string>;
|
|
19
|
+
|
|
20
|
+
const translations: Record<Locale, Partial<TranslationMap>> = {
|
|
21
|
+
en: en as TranslationMap,
|
|
22
|
+
ko: ko as Partial<TranslationMap>,
|
|
23
|
+
ja: ja as Partial<TranslationMap>,
|
|
24
|
+
zh: zh as Partial<TranslationMap>,
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
// ─── State ────────────────────────────────────────────────────────────────────
|
|
28
|
+
|
|
29
|
+
let currentLocale: Locale = 'en';
|
|
30
|
+
|
|
31
|
+
// ─── Public API ───────────────────────────────────────────────────────────────
|
|
32
|
+
|
|
33
|
+
export function getLocale(): Locale {
|
|
34
|
+
return currentLocale;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function setLocale(locale: Locale): void {
|
|
38
|
+
if (locale === currentLocale) return;
|
|
39
|
+
currentLocale = locale;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Translate a key with optional interpolation.
|
|
44
|
+
* Variables in the template are replaced with {varName} syntax.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* t('terminal.exited', { code: 1 }) // "Process exited with code 1"
|
|
48
|
+
*/
|
|
49
|
+
export function t(key: TranslationKey | (string & {}), vars?: Record<string, string | number>): string {
|
|
50
|
+
const map = translations[currentLocale];
|
|
51
|
+
const k = key as TranslationKey;
|
|
52
|
+
let str: string = (map[k] ?? translations.en[k] ?? key) as string;
|
|
53
|
+
|
|
54
|
+
if (vars) {
|
|
55
|
+
for (const [k, v] of Object.entries(vars)) {
|
|
56
|
+
str = str.replace(new RegExp(`\\{${k}\\}`, 'g'), String(v));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return str;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/** All supported locales with display names. */
|
|
64
|
+
export const LOCALE_OPTIONS: Array<{ value: Locale; label: string }> = [
|
|
65
|
+
{ value: 'en', label: 'English' },
|
|
66
|
+
{ value: 'ko', label: '한국어' },
|
|
67
|
+
{ value: 'ja', label: '日本語' },
|
|
68
|
+
{ value: 'zh', label: '中文' },
|
|
69
|
+
];
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
export const en = {
|
|
2
|
+
// Sidebar
|
|
3
|
+
'sidebar.workspaces': 'Workspaces',
|
|
4
|
+
'sidebar.newWorkspace': 'New workspace',
|
|
5
|
+
'sidebar.newWorkspaceTooltip': 'New workspace (Ctrl+N)',
|
|
6
|
+
'sidebar.hideTooltip': 'Hide sidebar (Ctrl+B)',
|
|
7
|
+
'sidebar.expandTooltip': 'Expand sidebar (Ctrl+B)',
|
|
8
|
+
'sidebar.unreadCount': '{count} unread',
|
|
9
|
+
|
|
10
|
+
// Workspace
|
|
11
|
+
'workspace.agentRunning': 'Agent running',
|
|
12
|
+
'workspace.agentComplete': 'Agent complete',
|
|
13
|
+
'workspace.agentError': 'Agent error',
|
|
14
|
+
'workspace.agentWaiting': 'Agent waiting',
|
|
15
|
+
'workspace.agentIdle': 'Agent idle',
|
|
16
|
+
'workspace.close': 'Close workspace',
|
|
17
|
+
|
|
18
|
+
// Pane
|
|
19
|
+
'pane.empty': 'Empty pane',
|
|
20
|
+
'pane.splitRight': 'Split right',
|
|
21
|
+
'pane.splitDown': 'Split down',
|
|
22
|
+
|
|
23
|
+
// Surface
|
|
24
|
+
'surface.terminal': 'Terminal',
|
|
25
|
+
'surface.closeTab': 'Close tab',
|
|
26
|
+
|
|
27
|
+
// Search
|
|
28
|
+
'search.placeholder': 'Search...',
|
|
29
|
+
'search.prevTooltip': 'Previous result (Shift+Enter)',
|
|
30
|
+
'search.nextTooltip': 'Next result (Enter)',
|
|
31
|
+
'search.closeTooltip': 'Close (ESC)',
|
|
32
|
+
|
|
33
|
+
// Notification
|
|
34
|
+
'notification.title': 'Notifications',
|
|
35
|
+
'notification.markAllRead': 'Mark all read',
|
|
36
|
+
'notification.clear': 'Clear',
|
|
37
|
+
'notification.empty': 'No notifications',
|
|
38
|
+
'notification.toggle': 'Ctrl+I to toggle',
|
|
39
|
+
|
|
40
|
+
// Command palette
|
|
41
|
+
'palette.placeholder': 'Type a command...',
|
|
42
|
+
'palette.noResults': 'No results for',
|
|
43
|
+
'palette.navigate': 'navigate',
|
|
44
|
+
'palette.select': 'select',
|
|
45
|
+
'palette.close': 'close',
|
|
46
|
+
'palette.cmd.toggleSidebar': 'Toggle Sidebar',
|
|
47
|
+
'palette.cmd.newWorkspace': 'New Workspace',
|
|
48
|
+
'palette.cmd.newSurface': 'New Surface',
|
|
49
|
+
'palette.cmd.splitRight': 'Split Right',
|
|
50
|
+
'palette.cmd.splitDown': 'Split Down',
|
|
51
|
+
'palette.cmd.showNotifications': 'Show Notifications',
|
|
52
|
+
'palette.cmd.openSettings': 'Open Settings',
|
|
53
|
+
'palette.cmd.openBrowser': 'Open Browser',
|
|
54
|
+
'palette.catWorkspace': 'Workspace',
|
|
55
|
+
'palette.catSurface': 'Surface',
|
|
56
|
+
'palette.catCommand': 'Command',
|
|
57
|
+
|
|
58
|
+
// Terminal
|
|
59
|
+
'terminal.exited': 'Process exited with code {code}',
|
|
60
|
+
'terminal.exitedBracket': '[Process exited with code {code}]',
|
|
61
|
+
'terminal.copied': 'Copied!',
|
|
62
|
+
|
|
63
|
+
// Browser
|
|
64
|
+
'browser.urlPlaceholder': 'Enter URL...',
|
|
65
|
+
'browser.back': 'Back',
|
|
66
|
+
'browser.forward': 'Forward',
|
|
67
|
+
'browser.reload': 'Reload',
|
|
68
|
+
'browser.close': 'Close',
|
|
69
|
+
'browser.devToolsTooltip': 'Open DevTools (F12)',
|
|
70
|
+
'browser.title': 'Browser',
|
|
71
|
+
|
|
72
|
+
// VI copy mode
|
|
73
|
+
'viCopy.mode': '-- COPY MODE --',
|
|
74
|
+
'viCopy.visual': '-- VISUAL --',
|
|
75
|
+
|
|
76
|
+
// StatusBar
|
|
77
|
+
'statusBar.company': 'COMPANY',
|
|
78
|
+
'statusBar.session': 'Session: {min}m',
|
|
79
|
+
'statusBar.settingsTooltip': 'Settings (Ctrl+,)',
|
|
80
|
+
|
|
81
|
+
// Settings
|
|
82
|
+
'settings.title': 'Settings',
|
|
83
|
+
'settings.language': 'Language',
|
|
84
|
+
'settings.sound': 'Notification Sound',
|
|
85
|
+
'settings.soundOn': 'On',
|
|
86
|
+
'settings.soundOff': 'Off',
|
|
87
|
+
'settings.checkUpdate': 'Check for updates',
|
|
88
|
+
'settings.checking': 'Checking...',
|
|
89
|
+
'settings.upToDate': 'Up to date',
|
|
90
|
+
'settings.updateAvailable': 'Update available',
|
|
91
|
+
'settings.close': 'Close',
|
|
92
|
+
'settings.shortcuts': 'Keyboard Shortcuts',
|
|
93
|
+
'settings.tabGeneral': 'General',
|
|
94
|
+
'settings.tabAppearance': 'Appearance',
|
|
95
|
+
'settings.tabNotifications': 'Notifications',
|
|
96
|
+
'settings.tabShortcuts': 'Shortcuts',
|
|
97
|
+
'settings.tabAbout': 'About',
|
|
98
|
+
'settings.terminal': 'Terminal',
|
|
99
|
+
'settings.defaultShell': 'Default shell',
|
|
100
|
+
'settings.scrollbackLines': 'Scrollback lines',
|
|
101
|
+
'settings.scrollbackDesc': 'Lines retained in terminal buffer',
|
|
102
|
+
'settings.updates': 'Updates',
|
|
103
|
+
'settings.wmuxUpdates': 'wmux updates',
|
|
104
|
+
'settings.updateFailed': 'Failed to check for updates',
|
|
105
|
+
'settings.lastCheckedNever': 'Last checked: never',
|
|
106
|
+
'settings.installUpdate': 'Install update',
|
|
107
|
+
'settings.retryCheck': 'Retry check',
|
|
108
|
+
'settings.fontSize': 'Font size',
|
|
109
|
+
'settings.fontSizeRange': 'range 12~24',
|
|
110
|
+
'settings.fontFamily': 'Font family',
|
|
111
|
+
'settings.fontFamilyDesc': 'Monospace font for terminal',
|
|
112
|
+
'settings.layout': 'Layout',
|
|
113
|
+
'settings.sidebarPosition': 'Sidebar position',
|
|
114
|
+
'settings.sidebarPositionDesc': 'Left or right of the terminal area',
|
|
115
|
+
'settings.sidebarLeft': 'Left',
|
|
116
|
+
'settings.sidebarRight': 'Right',
|
|
117
|
+
'settings.updateReady': 'Update ready',
|
|
118
|
+
'settings.checkFailed': 'Check failed',
|
|
119
|
+
'settings.unknownError': 'Unknown error',
|
|
120
|
+
'settings.notificationBehavior': 'Notification behavior',
|
|
121
|
+
'settings.soundDesc': 'Web Audio API — no external file required',
|
|
122
|
+
'settings.toast': 'Toast notifications',
|
|
123
|
+
'settings.toastDesc': 'Show overlay toast when agent completes',
|
|
124
|
+
'settings.ring': 'Ring animation',
|
|
125
|
+
'settings.ringDesc': 'Pulse border on panes with unread notifications',
|
|
126
|
+
'settings.sc.toggleSidebar': 'Toggle sidebar',
|
|
127
|
+
'settings.sc.splitHorizontal': 'Split pane horizontal',
|
|
128
|
+
'settings.sc.splitVertical': 'Split pane vertical',
|
|
129
|
+
'settings.sc.newWorkspace': 'New workspace',
|
|
130
|
+
'settings.sc.closePane': 'Close pane / workspace',
|
|
131
|
+
'settings.sc.searchTerminal': 'Search in terminal',
|
|
132
|
+
'settings.sc.commandPalette': 'Command palette',
|
|
133
|
+
'settings.sc.toggleNotifications': 'Toggle notification panel',
|
|
134
|
+
'settings.sc.viCopyMode': 'Vi copy mode',
|
|
135
|
+
'settings.sc.renameWorkspace': 'Rename workspace',
|
|
136
|
+
'settings.sc.highlightPane': 'Highlight active pane',
|
|
137
|
+
'settings.shortcutsNotAvailable': 'Built-in shortcut customization is not yet available.',
|
|
138
|
+
'settings.aboutTagline': 'Windows native AI agent terminal',
|
|
139
|
+
'settings.builtWith': 'Built with',
|
|
140
|
+
'settings.links': 'Links',
|
|
141
|
+
'settings.githubRepo': 'GitHub Repository',
|
|
142
|
+
'settings.toggleHint': 'Ctrl+, to toggle',
|
|
143
|
+
|
|
144
|
+
// Custom keybindings
|
|
145
|
+
'settings.customKeybindings': 'Custom Keybindings',
|
|
146
|
+
'settings.kb.add': 'Add keybinding',
|
|
147
|
+
'settings.kb.key': 'Key',
|
|
148
|
+
'settings.kb.label': 'Label',
|
|
149
|
+
'settings.kb.command': 'Command',
|
|
150
|
+
'settings.kb.sendEnter': 'Send Enter',
|
|
151
|
+
'settings.kb.pressKey': 'Press a key...',
|
|
152
|
+
'settings.kb.conflict': 'Conflicts with built-in shortcut',
|
|
153
|
+
'settings.kb.delete': 'Delete',
|
|
154
|
+
'settings.kb.noBindings': 'No custom keybindings yet',
|
|
155
|
+
} as const;
|
|
156
|
+
|
|
157
|
+
export type TranslationKey = keyof typeof en;
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
export const ja = {
|
|
2
|
+
// Sidebar
|
|
3
|
+
'sidebar.workspaces': 'ワークスペース',
|
|
4
|
+
'sidebar.newWorkspace': '新しいワークスペース',
|
|
5
|
+
'sidebar.newWorkspaceTooltip': '新しいワークスペース (Ctrl+N)',
|
|
6
|
+
'sidebar.hideTooltip': 'サイドバーを隠す (Ctrl+B)',
|
|
7
|
+
'sidebar.expandTooltip': 'サイドバーを展開する (Ctrl+B)',
|
|
8
|
+
'sidebar.unreadCount': '未読 {count}件',
|
|
9
|
+
|
|
10
|
+
// Workspace
|
|
11
|
+
'workspace.agentRunning': 'エージェント実行中',
|
|
12
|
+
'workspace.agentComplete': 'エージェント完了',
|
|
13
|
+
'workspace.agentError': 'エージェントエラー',
|
|
14
|
+
'workspace.agentWaiting': 'エージェント待機中',
|
|
15
|
+
'workspace.agentIdle': 'エージェントアイドル',
|
|
16
|
+
'workspace.close': 'ワークスペースを閉じる',
|
|
17
|
+
|
|
18
|
+
// Pane
|
|
19
|
+
'pane.empty': '空のペイン',
|
|
20
|
+
'pane.splitRight': '右に分割',
|
|
21
|
+
'pane.splitDown': '下に分割',
|
|
22
|
+
|
|
23
|
+
// Surface
|
|
24
|
+
'surface.terminal': 'ターミナル',
|
|
25
|
+
'surface.closeTab': 'タブを閉じる',
|
|
26
|
+
|
|
27
|
+
// Search
|
|
28
|
+
'search.placeholder': '検索...',
|
|
29
|
+
'search.prevTooltip': '前の結果 (Shift+Enter)',
|
|
30
|
+
'search.nextTooltip': '次の結果 (Enter)',
|
|
31
|
+
'search.closeTooltip': '閉じる (ESC)',
|
|
32
|
+
|
|
33
|
+
// Notification
|
|
34
|
+
'notification.title': '通知',
|
|
35
|
+
'notification.markAllRead': 'すべて既読',
|
|
36
|
+
'notification.clear': 'クリア',
|
|
37
|
+
'notification.empty': '通知なし',
|
|
38
|
+
'notification.toggle': 'Ctrl+Iで切替',
|
|
39
|
+
|
|
40
|
+
// Command palette
|
|
41
|
+
'palette.placeholder': 'コマンドを入力...',
|
|
42
|
+
'palette.noResults': '結果なし:',
|
|
43
|
+
'palette.navigate': '移動',
|
|
44
|
+
'palette.select': '選択',
|
|
45
|
+
'palette.close': '閉じる',
|
|
46
|
+
'palette.cmd.toggleSidebar': 'サイドバー切替',
|
|
47
|
+
'palette.cmd.newWorkspace': '新しいワークスペース',
|
|
48
|
+
'palette.cmd.newSurface': '新しいサーフェス',
|
|
49
|
+
'palette.cmd.splitRight': '右に分割',
|
|
50
|
+
'palette.cmd.splitDown': '下に分割',
|
|
51
|
+
'palette.cmd.showNotifications': '通知を表示',
|
|
52
|
+
'palette.cmd.openSettings': '設定を開く',
|
|
53
|
+
'palette.cmd.openBrowser': 'ブラウザを開く',
|
|
54
|
+
'palette.catWorkspace': 'ワークスペース',
|
|
55
|
+
'palette.catSurface': 'サーフェス',
|
|
56
|
+
'palette.catCommand': 'コマンド',
|
|
57
|
+
|
|
58
|
+
// Terminal
|
|
59
|
+
'terminal.exited': 'プロセスがコード {code} で終了しました',
|
|
60
|
+
'terminal.exitedBracket': '[プロセスがコード {code} で終了しました]',
|
|
61
|
+
'terminal.copied': 'コピーしました!',
|
|
62
|
+
|
|
63
|
+
// Browser
|
|
64
|
+
'browser.urlPlaceholder': 'URLを入力...',
|
|
65
|
+
'browser.back': '戻る',
|
|
66
|
+
'browser.forward': '進む',
|
|
67
|
+
'browser.reload': '再読み込み',
|
|
68
|
+
'browser.close': '閉じる',
|
|
69
|
+
'browser.devToolsTooltip': 'DevToolsを開く (F12)',
|
|
70
|
+
'browser.title': 'ブラウザ',
|
|
71
|
+
|
|
72
|
+
// VI copy mode
|
|
73
|
+
'viCopy.mode': '-- コピーモード --',
|
|
74
|
+
'viCopy.visual': '-- ビジュアル --',
|
|
75
|
+
|
|
76
|
+
// StatusBar
|
|
77
|
+
'statusBar.company': '会社',
|
|
78
|
+
'statusBar.session': 'セッション: {min}分',
|
|
79
|
+
'statusBar.settingsTooltip': '設定 (Ctrl+,)',
|
|
80
|
+
|
|
81
|
+
// Settings
|
|
82
|
+
'settings.title': '設定',
|
|
83
|
+
'settings.language': '言語',
|
|
84
|
+
'settings.sound': '通知音',
|
|
85
|
+
'settings.soundOn': 'オン',
|
|
86
|
+
'settings.soundOff': 'オフ',
|
|
87
|
+
'settings.checkUpdate': 'アップデートを確認',
|
|
88
|
+
'settings.checking': '確認中...',
|
|
89
|
+
'settings.upToDate': '最新バージョン',
|
|
90
|
+
'settings.updateAvailable': 'アップデートあり',
|
|
91
|
+
'settings.close': '閉じる',
|
|
92
|
+
'settings.shortcuts': 'キーボードショートカット',
|
|
93
|
+
'settings.tabGeneral': '一般',
|
|
94
|
+
'settings.tabAppearance': '外観',
|
|
95
|
+
'settings.tabNotifications': '通知',
|
|
96
|
+
'settings.tabShortcuts': 'ショートカット',
|
|
97
|
+
'settings.tabAbout': 'バージョン情報',
|
|
98
|
+
'settings.terminal': 'ターミナル',
|
|
99
|
+
'settings.defaultShell': 'デフォルトシェル',
|
|
100
|
+
'settings.scrollbackLines': 'スクロールバック行数',
|
|
101
|
+
'settings.scrollbackDesc': 'ターミナルバッファに保持する行数',
|
|
102
|
+
'settings.updates': 'アップデート',
|
|
103
|
+
'settings.wmuxUpdates': 'wmux アップデート',
|
|
104
|
+
'settings.updateFailed': 'アップデート確認に失敗しました',
|
|
105
|
+
'settings.lastCheckedNever': '最終確認: なし',
|
|
106
|
+
'settings.installUpdate': 'アップデートをインストール',
|
|
107
|
+
'settings.retryCheck': '再確認',
|
|
108
|
+
'settings.fontSize': 'フォントサイズ',
|
|
109
|
+
'settings.fontSizeRange': '12~24の範囲',
|
|
110
|
+
'settings.fontFamily': 'フォントファミリー',
|
|
111
|
+
'settings.fontFamilyDesc': 'ターミナル用等幅フォント',
|
|
112
|
+
'settings.layout': 'レイアウト',
|
|
113
|
+
'settings.sidebarPosition': 'サイドバー位置',
|
|
114
|
+
'settings.sidebarPositionDesc': 'ターミナルエリアの左右',
|
|
115
|
+
'settings.sidebarLeft': '左',
|
|
116
|
+
'settings.sidebarRight': '右',
|
|
117
|
+
'settings.updateReady': 'アップデート準備完了',
|
|
118
|
+
'settings.checkFailed': '確認に失敗しました',
|
|
119
|
+
'settings.unknownError': '不明なエラー',
|
|
120
|
+
'settings.notificationBehavior': '通知の動作',
|
|
121
|
+
'settings.soundDesc': 'Web Audio API — 外部ファイル不要',
|
|
122
|
+
'settings.toast': 'トースト通知',
|
|
123
|
+
'settings.toastDesc': 'エージェント完了時にトーストを表示',
|
|
124
|
+
'settings.ring': 'リングアニメーション',
|
|
125
|
+
'settings.ringDesc': '未読通知のあるペインにパルスボーダー',
|
|
126
|
+
'settings.sc.toggleSidebar': 'サイドバー切替',
|
|
127
|
+
'settings.sc.splitHorizontal': '水平分割',
|
|
128
|
+
'settings.sc.splitVertical': '垂直分割',
|
|
129
|
+
'settings.sc.newWorkspace': '新ワークスペース',
|
|
130
|
+
'settings.sc.closePane': 'ペイン/ワークスペースを閉じる',
|
|
131
|
+
'settings.sc.searchTerminal': 'ターミナル内検索',
|
|
132
|
+
'settings.sc.commandPalette': 'コマンドパレット',
|
|
133
|
+
'settings.sc.toggleNotifications': '通知パネル切替',
|
|
134
|
+
'settings.sc.viCopyMode': 'Viコピーモード',
|
|
135
|
+
'settings.sc.renameWorkspace': 'ワークスペースの名前変更',
|
|
136
|
+
'settings.sc.highlightPane': 'アクティブペインをハイライト',
|
|
137
|
+
'settings.shortcutsNotAvailable': 'ショートカットのカスタマイズはまだ利用できません。',
|
|
138
|
+
'settings.aboutTagline': 'Windows ネイティブ AI エージェントターミナル',
|
|
139
|
+
'settings.builtWith': '使用技術',
|
|
140
|
+
'settings.links': 'リンク',
|
|
141
|
+
'settings.githubRepo': 'GitHubリポジトリ',
|
|
142
|
+
'settings.toggleHint': 'Ctrl+, で切替',
|
|
143
|
+
|
|
144
|
+
// Custom keybindings
|
|
145
|
+
'settings.customKeybindings': 'カスタムキーバインド',
|
|
146
|
+
'settings.kb.add': 'キーバインド追加',
|
|
147
|
+
'settings.kb.key': 'キー',
|
|
148
|
+
'settings.kb.label': '名前',
|
|
149
|
+
'settings.kb.command': 'コマンド',
|
|
150
|
+
'settings.kb.sendEnter': 'Enter送信',
|
|
151
|
+
'settings.kb.pressKey': 'キーを押してください...',
|
|
152
|
+
'settings.kb.conflict': '組み込みショートカットと競合',
|
|
153
|
+
'settings.kb.delete': '削除',
|
|
154
|
+
'settings.kb.noBindings': 'カスタムキーバインドなし',
|
|
155
|
+
} as const;
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
export const ko = {
|
|
2
|
+
// Sidebar
|
|
3
|
+
'sidebar.workspaces': '워크스페이스',
|
|
4
|
+
'sidebar.newWorkspace': '새 워크스페이스',
|
|
5
|
+
'sidebar.newWorkspaceTooltip': '새 워크스페이스 (Ctrl+N)',
|
|
6
|
+
'sidebar.hideTooltip': '사이드바 숨기기 (Ctrl+B)',
|
|
7
|
+
'sidebar.expandTooltip': '사이드바 펼치기 (Ctrl+B)',
|
|
8
|
+
'sidebar.unreadCount': '읽지 않음 {count}개',
|
|
9
|
+
|
|
10
|
+
// Workspace
|
|
11
|
+
'workspace.agentRunning': '에이전트 실행 중',
|
|
12
|
+
'workspace.agentComplete': '에이전트 완료',
|
|
13
|
+
'workspace.agentError': '에이전트 오류',
|
|
14
|
+
'workspace.agentWaiting': '에이전트 대기 중',
|
|
15
|
+
'workspace.agentIdle': '에이전트 유휴',
|
|
16
|
+
'workspace.close': '워크스페이스 닫기',
|
|
17
|
+
|
|
18
|
+
// Pane
|
|
19
|
+
'pane.empty': '빈 창',
|
|
20
|
+
'pane.splitRight': '오른쪽 분할',
|
|
21
|
+
'pane.splitDown': '아래 분할',
|
|
22
|
+
|
|
23
|
+
// Surface
|
|
24
|
+
'surface.terminal': '터미널',
|
|
25
|
+
'surface.closeTab': '탭 닫기',
|
|
26
|
+
|
|
27
|
+
// Search
|
|
28
|
+
'search.placeholder': '검색...',
|
|
29
|
+
'search.prevTooltip': '이전 결과 (Shift+Enter)',
|
|
30
|
+
'search.nextTooltip': '다음 결과 (Enter)',
|
|
31
|
+
'search.closeTooltip': '닫기 (ESC)',
|
|
32
|
+
|
|
33
|
+
// Notification
|
|
34
|
+
'notification.title': '알림',
|
|
35
|
+
'notification.markAllRead': '모두 읽음',
|
|
36
|
+
'notification.clear': '지우기',
|
|
37
|
+
'notification.empty': '알림 없음',
|
|
38
|
+
'notification.toggle': 'Ctrl+I로 토글',
|
|
39
|
+
|
|
40
|
+
// Command palette
|
|
41
|
+
'palette.placeholder': '명령어 입력...',
|
|
42
|
+
'palette.noResults': '검색 결과 없음:',
|
|
43
|
+
'palette.navigate': '이동',
|
|
44
|
+
'palette.select': '선택',
|
|
45
|
+
'palette.close': '닫기',
|
|
46
|
+
'palette.cmd.toggleSidebar': '사이드바 토글',
|
|
47
|
+
'palette.cmd.newWorkspace': '새 워크스페이스',
|
|
48
|
+
'palette.cmd.newSurface': '새 서피스',
|
|
49
|
+
'palette.cmd.splitRight': '오른쪽 분할',
|
|
50
|
+
'palette.cmd.splitDown': '아래 분할',
|
|
51
|
+
'palette.cmd.showNotifications': '알림 보기',
|
|
52
|
+
'palette.cmd.openSettings': '설정 열기',
|
|
53
|
+
'palette.cmd.openBrowser': '브라우저 열기',
|
|
54
|
+
'palette.catWorkspace': '워크스페이스',
|
|
55
|
+
'palette.catSurface': '서피스',
|
|
56
|
+
'palette.catCommand': '커맨드',
|
|
57
|
+
|
|
58
|
+
// Terminal
|
|
59
|
+
'terminal.exited': '프로세스가 코드 {code}로 종료됨',
|
|
60
|
+
'terminal.exitedBracket': '[프로세스가 코드 {code}로 종료됨]',
|
|
61
|
+
'terminal.copied': '복사됨!',
|
|
62
|
+
|
|
63
|
+
// Browser
|
|
64
|
+
'browser.urlPlaceholder': 'URL 입력...',
|
|
65
|
+
'browser.back': '뒤로',
|
|
66
|
+
'browser.forward': '앞으로',
|
|
67
|
+
'browser.reload': '새로 고침',
|
|
68
|
+
'browser.close': '닫기',
|
|
69
|
+
'browser.devToolsTooltip': '개발자 도구 열기 (F12)',
|
|
70
|
+
'browser.title': '브라우저',
|
|
71
|
+
|
|
72
|
+
// VI copy mode
|
|
73
|
+
'viCopy.mode': '-- 복사 모드 --',
|
|
74
|
+
'viCopy.visual': '-- 비주얼 --',
|
|
75
|
+
|
|
76
|
+
// StatusBar
|
|
77
|
+
'statusBar.company': '회사',
|
|
78
|
+
'statusBar.session': '세션: {min}분',
|
|
79
|
+
'statusBar.settingsTooltip': '설정 (Ctrl+,)',
|
|
80
|
+
|
|
81
|
+
// Settings
|
|
82
|
+
'settings.title': '설정',
|
|
83
|
+
'settings.language': '언어',
|
|
84
|
+
'settings.sound': '알림 소리',
|
|
85
|
+
'settings.soundOn': '켜기',
|
|
86
|
+
'settings.soundOff': '끄기',
|
|
87
|
+
'settings.checkUpdate': '업데이트 확인',
|
|
88
|
+
'settings.checking': '확인 중...',
|
|
89
|
+
'settings.upToDate': '최신 버전',
|
|
90
|
+
'settings.updateAvailable': '업데이트 있음',
|
|
91
|
+
'settings.close': '닫기',
|
|
92
|
+
'settings.shortcuts': '단축키',
|
|
93
|
+
'settings.tabGeneral': '일반',
|
|
94
|
+
'settings.tabAppearance': '외관',
|
|
95
|
+
'settings.tabNotifications': '알림',
|
|
96
|
+
'settings.tabShortcuts': '단축키',
|
|
97
|
+
'settings.tabAbout': '정보',
|
|
98
|
+
'settings.terminal': '터미널',
|
|
99
|
+
'settings.defaultShell': '기본 셸',
|
|
100
|
+
'settings.scrollbackLines': '스크롤백 줄 수',
|
|
101
|
+
'settings.scrollbackDesc': '터미널 버퍼에 보존되는 줄 수',
|
|
102
|
+
'settings.updates': '업데이트',
|
|
103
|
+
'settings.wmuxUpdates': 'wmux 업데이트',
|
|
104
|
+
'settings.updateFailed': '업데이트 확인 실패',
|
|
105
|
+
'settings.lastCheckedNever': '마지막 확인: 없음',
|
|
106
|
+
'settings.installUpdate': '업데이트 설치',
|
|
107
|
+
'settings.retryCheck': '다시 확인',
|
|
108
|
+
'settings.fontSize': '글꼴 크기',
|
|
109
|
+
'settings.fontSizeRange': '12~24 범위',
|
|
110
|
+
'settings.fontFamily': '글꼴 모음',
|
|
111
|
+
'settings.fontFamilyDesc': '터미널용 고정폭 글꼴',
|
|
112
|
+
'settings.layout': '레이아웃',
|
|
113
|
+
'settings.sidebarPosition': '사이드바 위치',
|
|
114
|
+
'settings.sidebarPositionDesc': '터미널 영역의 좌측 또는 우측',
|
|
115
|
+
'settings.sidebarLeft': '왼쪽',
|
|
116
|
+
'settings.sidebarRight': '오른쪽',
|
|
117
|
+
'settings.updateReady': '업데이트 준비 완료',
|
|
118
|
+
'settings.checkFailed': '확인 실패',
|
|
119
|
+
'settings.unknownError': '알 수 없는 오류',
|
|
120
|
+
'settings.notificationBehavior': '알림 동작',
|
|
121
|
+
'settings.soundDesc': 'Web Audio API — 외부 파일 불필요',
|
|
122
|
+
'settings.toast': '토스트 알림',
|
|
123
|
+
'settings.toastDesc': '에이전트 완료 시 오버레이 토스트 표시',
|
|
124
|
+
'settings.ring': '링 애니메이션',
|
|
125
|
+
'settings.ringDesc': '읽지 않은 알림이 있는 창에 테두리 펄스',
|
|
126
|
+
'settings.sc.toggleSidebar': '사이드바 전환',
|
|
127
|
+
'settings.sc.splitHorizontal': '가로 분할',
|
|
128
|
+
'settings.sc.splitVertical': '세로 분할',
|
|
129
|
+
'settings.sc.newWorkspace': '새 작업공간',
|
|
130
|
+
'settings.sc.closePane': '창/작업공간 닫기',
|
|
131
|
+
'settings.sc.searchTerminal': '터미널에서 검색',
|
|
132
|
+
'settings.sc.commandPalette': '명령 팔레트',
|
|
133
|
+
'settings.sc.toggleNotifications': '알림 패널 전환',
|
|
134
|
+
'settings.sc.viCopyMode': 'Vi 복사 모드',
|
|
135
|
+
'settings.sc.renameWorkspace': '작업공간 이름 변경',
|
|
136
|
+
'settings.sc.highlightPane': '활성 창 강조',
|
|
137
|
+
'settings.shortcutsNotAvailable': '내장 단축키 커스터마이즈는 아직 지원되지 않습니다.',
|
|
138
|
+
'settings.aboutTagline': 'Windows 네이티브 AI 에이전트 터미널',
|
|
139
|
+
'settings.builtWith': '사용 기술',
|
|
140
|
+
'settings.links': '링크',
|
|
141
|
+
'settings.githubRepo': 'GitHub 저장소',
|
|
142
|
+
'settings.toggleHint': 'Ctrl+, 으로 전환',
|
|
143
|
+
|
|
144
|
+
// Custom keybindings
|
|
145
|
+
'settings.customKeybindings': '커스텀 키바인딩',
|
|
146
|
+
'settings.kb.add': '키바인딩 추가',
|
|
147
|
+
'settings.kb.key': '키',
|
|
148
|
+
'settings.kb.label': '이름',
|
|
149
|
+
'settings.kb.command': '명령어',
|
|
150
|
+
'settings.kb.sendEnter': 'Enter 전송',
|
|
151
|
+
'settings.kb.pressKey': '키를 누르세요...',
|
|
152
|
+
'settings.kb.conflict': '내장 단축키와 충돌',
|
|
153
|
+
'settings.kb.delete': '삭제',
|
|
154
|
+
'settings.kb.noBindings': '커스텀 키바인딩 없음',
|
|
155
|
+
} as const;
|