ai-profile-switch 2.2.0 → 2.2.2
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.ko.md +54 -119
- package/README.md +50 -115
- package/package.json +6 -1
- package/src/commands/add.mjs +19 -6
- package/src/commands/init.mjs +44 -45
- package/src/commands/install-shell.mjs +4 -3
- package/src/commands/language.mjs +38 -0
- package/src/commands/list.mjs +13 -6
- package/src/commands/login.mjs +43 -0
- package/src/commands/manage.mjs +108 -51
- package/src/commands/mcp/index.mjs +7 -6
- package/src/commands/migrate.mjs +19 -18
- package/src/commands/remove.mjs +7 -6
- package/src/commands/rename.mjs +15 -10
- package/src/commands/share.mjs +16 -14
- package/src/commands/shell.mjs +78 -15
- package/src/commands/update.mjs +15 -12
- package/src/commands/use.mjs +5 -3
- package/src/index.mjs +14 -36
- package/src/lib/account.mjs +122 -0
- package/src/lib/config.mjs +8 -1
- package/src/lib/constants.mjs +4 -0
- package/src/lib/i18n.mjs +65 -0
- package/src/lib/profile.mjs +62 -19
- package/src/lib/prompt.mjs +105 -38
- package/src/lib/shared.mjs +5 -4
- package/src/lib/ui.mjs +54 -29
- package/src/locales/en.mjs +269 -0
- package/src/locales/ko.mjs +269 -0
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
// English messages. Every key here must also exist in ko.mjs.
|
|
2
|
+
export default {
|
|
3
|
+
'time.justNow': 'just now',
|
|
4
|
+
|
|
5
|
+
'prompt.keys': '{arrows} move · Enter select · Esc cancel',
|
|
6
|
+
'prompt.keysNumbered': '{arrows} move · 1-{max} pick · Enter select · Esc cancel',
|
|
7
|
+
'prompt.keysBack': '{arrows} move · Enter select · Esc back',
|
|
8
|
+
'prompt.keysNumberedBack': '{arrows} move · 1-{max} pick · Enter select · Esc back',
|
|
9
|
+
'prompt.moreAbove': '{count} more above',
|
|
10
|
+
'prompt.moreBelow': '{count} more below',
|
|
11
|
+
'prompt.cancelled': 'cancelled',
|
|
12
|
+
'prompt.yes': 'Yes',
|
|
13
|
+
'prompt.no': 'No',
|
|
14
|
+
'common.cancelled': 'Cancelled.',
|
|
15
|
+
'common.none': 'none',
|
|
16
|
+
|
|
17
|
+
'picker.question': 'Which profile do you want to use?',
|
|
18
|
+
'picker.inUse': 'in use',
|
|
19
|
+
'picker.starting': 'Starting with {profile}',
|
|
20
|
+
'picker.switched': 'Now using {profile}',
|
|
21
|
+
'launch.opening': 'Opening Claude Code…',
|
|
22
|
+
'launch.notFound': 'Claude Code was not found on this computer.',
|
|
23
|
+
'launch.install': 'Install it:',
|
|
24
|
+
'launch.startFailed': 'Could not start Claude Code: {message}',
|
|
25
|
+
'launch.sharedFailed': 'Shared settings were not linked: {message}',
|
|
26
|
+
|
|
27
|
+
'account.fiveHour': '5-hour',
|
|
28
|
+
'account.weekly': 'Weekly',
|
|
29
|
+
'account.noUsage': 'No usage saved yet',
|
|
30
|
+
'account.savedAt': 'as of {time}',
|
|
31
|
+
'account.reset': 'reset',
|
|
32
|
+
'account.notSignedIn': 'Not signed in yet',
|
|
33
|
+
|
|
34
|
+
'profile.empty': 'Profile name cannot be empty',
|
|
35
|
+
'profile.tooLong': 'Profile name must be {max} characters or fewer',
|
|
36
|
+
'profile.reserved': '"{name}" is a reserved name',
|
|
37
|
+
'profile.reservedWindows': '"{name}" is a reserved Windows device name',
|
|
38
|
+
'profile.invalidName': 'Only lowercase letters, numbers, and hyphens (-) are allowed, starting and ending with a letter or number',
|
|
39
|
+
'profile.notFound': 'No profile named "{name}"',
|
|
40
|
+
'profile.exists': 'Profile "{name}" already exists',
|
|
41
|
+
'profile.missingDir': 'Profile "{name}" directory is missing',
|
|
42
|
+
'profile.notDirectory': 'Profile "{name}" must be a directory, not a symbolic link or file',
|
|
43
|
+
'profile.copiedInstead': 'Links are not allowed here, so the shared file was copied instead ({link}).',
|
|
44
|
+
'profile.devMode': 'Turn on Windows Developer Mode to keep shared settings in sync.',
|
|
45
|
+
'profiles.none': 'No profiles yet.',
|
|
46
|
+
'hint.profiles': 'Profiles:',
|
|
47
|
+
'hint.create': 'To create it:',
|
|
48
|
+
'hint.add': 'Add one:',
|
|
49
|
+
'hint.setup': 'First setup:',
|
|
50
|
+
'hint.try': 'Try:',
|
|
51
|
+
|
|
52
|
+
'use.switched': 'Switched to profile: {profile}',
|
|
53
|
+
'use.already': '"{profile}" is already the active profile',
|
|
54
|
+
'use.note': 'New Claude launches use it. Running sessions keep their profile.',
|
|
55
|
+
|
|
56
|
+
'add.created': 'Created profile: {name}',
|
|
57
|
+
'add.next': 'Next',
|
|
58
|
+
'add.step1': 'Run {command}',
|
|
59
|
+
'add.step2': 'Pick {name} from the list',
|
|
60
|
+
'add.step3': 'Sign in with the Claude account you want to use',
|
|
61
|
+
|
|
62
|
+
'remove.activeWarn': '"{name}" is the active profile',
|
|
63
|
+
'remove.confirm': 'Delete profile "{name}"? Its sign-in and history are deleted and cannot be restored',
|
|
64
|
+
'remove.done': 'Removed profile: {name}',
|
|
65
|
+
'remove.newActive': 'Active profile is now {name}',
|
|
66
|
+
'remove.none': 'No profiles left.',
|
|
67
|
+
|
|
68
|
+
'rename.closeSessions': 'Close Claude windows using {name} first. Open windows keep using the old folder.',
|
|
69
|
+
'rename.macSignIn': 'macOS may ask you to sign in once more.',
|
|
70
|
+
'rename.done': 'Renamed profile: {old} → {new}',
|
|
71
|
+
'rename.same': '"{name}" already has that name',
|
|
72
|
+
|
|
73
|
+
'share.keptOwn': '{name}: kept its own {entry} because it differs from the shared copy. Move or delete it, then run cpf share sync.',
|
|
74
|
+
'share.missing': '{name}: shared {entry} is missing from _shared.',
|
|
75
|
+
'share.title': 'Shared by every profile:',
|
|
76
|
+
'share.canAlso': 'Can also share: {list}',
|
|
77
|
+
'share.nothingLeft': 'nothing left',
|
|
78
|
+
'share.own': 'own {entry}',
|
|
79
|
+
'share.notLinked': '{entry} not linked yet',
|
|
80
|
+
'share.missingShort': '{entry} missing',
|
|
81
|
+
'share.inSync': 'in sync',
|
|
82
|
+
'share.nothingExtra': 'Nothing extra is shared yet. Example: cpf share add CLAUDE.md',
|
|
83
|
+
'share.usage': 'Usage: cpf share [list | add <entry> | remove <entry> | sync]',
|
|
84
|
+
'share.linked': 'Linked {count} entries.',
|
|
85
|
+
'share.added': 'Sharing {entry} through ~/.claude-profiles/_shared/{entry}',
|
|
86
|
+
'share.removed': 'Stopped sharing {entry}. Each profile kept its own copy.',
|
|
87
|
+
'share.cannot': '"{entry}" cannot be shared. Choose one of: {list}',
|
|
88
|
+
'share.needsSettings': 'Sharing needs shared settings. This setup keeps each profile separate.',
|
|
89
|
+
'share.already': '"{entry}" is already shared',
|
|
90
|
+
'share.notShared': '"{entry}" is not shared',
|
|
91
|
+
|
|
92
|
+
'list.title': 'Profiles:',
|
|
93
|
+
'list.active': 'Active: {name}',
|
|
94
|
+
|
|
95
|
+
'install.done': 'Installed the claude and cpf commands.',
|
|
96
|
+
'install.shells': 'Ready in {shells}',
|
|
97
|
+
'install.next': 'Open a new terminal, then run claude to start or cpf to manage profiles.',
|
|
98
|
+
'shell.refreshed': 'Refreshed the shell commands.',
|
|
99
|
+
|
|
100
|
+
'update.claudeManaged': 'Claude Code manages its own updates. Run claude update (or your package manager).',
|
|
101
|
+
'update.seeSetup': 'See https://code.claude.com/docs/en/setup',
|
|
102
|
+
'update.notChecked': 'Claude Code update status was not checked.',
|
|
103
|
+
'update.package': 'Package',
|
|
104
|
+
'update.installed': 'Installed',
|
|
105
|
+
'update.latest': 'Latest',
|
|
106
|
+
'update.upToDate': 'ai-profile-switch is up to date.',
|
|
107
|
+
'update.runToInstall': 'Run npx ai-profile-switch@latest update to install.',
|
|
108
|
+
'update.updated': 'Updated to {version}. New launches use it; running sessions are not affected.',
|
|
109
|
+
'update.notInstalled': 'The shell commands are not installed, so no installation was run. Run: npx ai-profile-switch@latest install-shell',
|
|
110
|
+
'update.busy': 'An update is already running.',
|
|
111
|
+
'update.failed': 'Update failed; the current version is kept: {error}',
|
|
112
|
+
|
|
113
|
+
'migrate.noProfiles': 'No profiles yet. Run npx ai-profile-switch@latest init first.',
|
|
114
|
+
'migrate.target': 'Copy into which profile?',
|
|
115
|
+
'migrate.which': 'Which configuration do you want to copy?',
|
|
116
|
+
'migrate.customPath': 'Enter a custom path',
|
|
117
|
+
'migrate.enterPath': 'Enter the full path to the directory:',
|
|
118
|
+
'migrate.emptySource': 'Source path cannot be empty.',
|
|
119
|
+
'migrate.source': 'From:',
|
|
120
|
+
'migrate.profile': 'Into:',
|
|
121
|
+
'migrate.conflictNote': 'If the profile already has conflicting data, nothing is copied. The source is left as it is.',
|
|
122
|
+
'migrate.closeSessions': 'Close Claude sessions using the source or destination before continuing. Keep them closed until migration finishes.',
|
|
123
|
+
'migrate.confirm': 'Copy configuration into "{name}"?',
|
|
124
|
+
'migrate.copied': 'Copied {source} → profile: {name}',
|
|
125
|
+
'migrate.backup': 'Previous destination data backup: {path}',
|
|
126
|
+
'migrate.preserved': 'The original folder was kept. macOS Keychain sign-ins are not copied.',
|
|
127
|
+
'migrate.signIn': 'Claude will check your sign-in when you start this profile.',
|
|
128
|
+
|
|
129
|
+
'init.already': 'ai-profile-switch is already initialized.',
|
|
130
|
+
'init.profiles': 'Profiles:',
|
|
131
|
+
'init.active': 'Active:',
|
|
132
|
+
'init.addHint': 'Add a profile:',
|
|
133
|
+
'init.repairHint': 'Repair the shell commands:',
|
|
134
|
+
'init.title': 'Get started with ai-profile-switch',
|
|
135
|
+
'init.tagline': 'Keep several Claude accounts on one computer as profiles',
|
|
136
|
+
'init.closeSessions': 'Keep Claude windows closed while your current settings are copied.',
|
|
137
|
+
'init.names': 'Profile names, separated by commas',
|
|
138
|
+
'init.duplicate': '"{name}" is listed twice',
|
|
139
|
+
'init.used': '"{name}" is already used — choose a different name',
|
|
140
|
+
'init.activeQuestion': 'Which profile should be active by default?',
|
|
141
|
+
'init.shareQuestion': 'Share settings.json and commands across profiles?',
|
|
142
|
+
'init.copyQuestion': 'Copy an existing Claude configuration?',
|
|
143
|
+
'init.skip': 'Skip',
|
|
144
|
+
'init.dirExists': 'Profile directory "{name}" already exists. Choose another name.',
|
|
145
|
+
'init.ready': 'Profile ready: {name}',
|
|
146
|
+
'init.shells': 'Shell commands installed ({shells})',
|
|
147
|
+
'init.activeDone': 'Active profile: {name}',
|
|
148
|
+
'init.openTerminal': 'Open a new terminal and run {command}. Claude will ask you to sign in if needed.',
|
|
149
|
+
'init.otherProfile': 'To use another profile:',
|
|
150
|
+
|
|
151
|
+
'menu.question': 'What do you want to do?',
|
|
152
|
+
'menu.current': 'Current: {name}',
|
|
153
|
+
'menu.use': 'Switch profile',
|
|
154
|
+
'menu.add': 'Add a profile',
|
|
155
|
+
'menu.removeHint': 'asks first',
|
|
156
|
+
'menu.share': 'Shared settings',
|
|
157
|
+
'menu.language': 'Language',
|
|
158
|
+
'menu.exit': 'Exit',
|
|
159
|
+
'menu.manage': 'Manage profiles',
|
|
160
|
+
'menu.manageHint': 'rename, sign-in, delete',
|
|
161
|
+
'menu.usePick': 'Which profile do you want to switch to?',
|
|
162
|
+
'menu.managePick': 'Which profile do you want to manage?',
|
|
163
|
+
'detail.title': '{name} profile',
|
|
164
|
+
'detail.account': 'Signed in',
|
|
165
|
+
'detail.usage': 'Usage',
|
|
166
|
+
'detail.lastUsed': 'Last used',
|
|
167
|
+
'detail.folder': 'Folder',
|
|
168
|
+
'detail.never': 'not yet',
|
|
169
|
+
'detail.noUsage': 'none saved yet',
|
|
170
|
+
'detail.use': 'Use this profile',
|
|
171
|
+
'detail.rename': 'Rename',
|
|
172
|
+
'detail.login': 'Change sign-in',
|
|
173
|
+
'detail.loginHint': 'sign in with another Claude account',
|
|
174
|
+
'detail.remove': 'Delete',
|
|
175
|
+
'detail.back': 'Back',
|
|
176
|
+
'rename.newName': 'New name',
|
|
177
|
+
'rename.newNameHint': 'now: {name} · empty to cancel',
|
|
178
|
+
'rename.confirm': 'Rename {old} to {new}?',
|
|
179
|
+
'rename.kept': 'Sign-in, history, and settings are kept.',
|
|
180
|
+
'rename.next': 'Next time, pick {name} in the {command} list.',
|
|
181
|
+
'hint.otherName': 'Use another name:',
|
|
182
|
+
'login.current': 'Signed in now:',
|
|
183
|
+
'login.onlyThis': 'Only this profile changes; other profiles stay signed in.',
|
|
184
|
+
'login.browser': 'When the browser opens, sign in with the Claude account you want.',
|
|
185
|
+
'login.closeSessions': 'Close Claude windows using {name} first.',
|
|
186
|
+
'login.confirm': 'Change the sign-in for {name}?',
|
|
187
|
+
'login.opening': 'Opening Claude Code sign-in… (claude auth login)',
|
|
188
|
+
'login.done': '{name} is now signed in as {account}',
|
|
189
|
+
'login.same': '{name} is still signed in as {account}',
|
|
190
|
+
'login.notSaved': 'Could not read the new sign-in. Start {name} with claude to check.',
|
|
191
|
+
'login.failed': 'Sign-in did not finish (exit code {code}).',
|
|
192
|
+
'login.usageLater': 'Usage shows again after you use Claude with this profile.',
|
|
193
|
+
'login.usage': 'Usage: cpf login <name>',
|
|
194
|
+
'index.helpLogin': 'Runs claude auth login for that profile only. Other profiles stay signed in.',
|
|
195
|
+
'menu.addName': 'New profile name (empty to cancel):',
|
|
196
|
+
'manage.invalid': 'Invalid arguments. Run cpf --help for usage.',
|
|
197
|
+
'manage.help': `Usage:
|
|
198
|
+
cpf Open the menu
|
|
199
|
+
cpf <name> Switch to a profile
|
|
200
|
+
cpf --list List profiles and the active one
|
|
201
|
+
cpf add <name> Create a profile
|
|
202
|
+
cpf rename <old> <new> Rename a profile, keeping its data
|
|
203
|
+
cpf remove <name> Delete a profile after confirmation
|
|
204
|
+
cpf login <name> Sign a profile in to another Claude account
|
|
205
|
+
cpf share Show what every profile shares
|
|
206
|
+
cpf share add <entry> Share CLAUDE.md, skills, agents, … across profiles
|
|
207
|
+
cpf share remove <entry> Stop sharing; each profile keeps a copy
|
|
208
|
+
cpf language [auto|en|ko] Choose the screen language
|
|
209
|
+
cpf --help Show this help
|
|
210
|
+
|
|
211
|
+
Run these at the terminal prompt, not inside the Claude chat. Use /exit to leave the chat.
|
|
212
|
+
Run claude to choose a profile and start Claude Code.
|
|
213
|
+
Before renaming, close sessions using that profile; macOS may ask you to sign in again.
|
|
214
|
+
Without the shell commands, use: npx ai-profile-switch@latest manage [arguments]`,
|
|
215
|
+
|
|
216
|
+
'language.title': 'Screen language',
|
|
217
|
+
'language.auto': 'Automatic',
|
|
218
|
+
'language.autoHint': 'follows the system (now: {name})',
|
|
219
|
+
'language.saved': 'Language set to {name}.',
|
|
220
|
+
'language.savedAuto': 'Language follows the system ({name}).',
|
|
221
|
+
'language.current': 'Language: {name}',
|
|
222
|
+
'language.sourceSaved': 'chosen with cpf language',
|
|
223
|
+
'language.sourceAuto': 'automatic',
|
|
224
|
+
'language.usage': 'Usage: cpf language [auto | en | ko]',
|
|
225
|
+
|
|
226
|
+
'mcp.noWrites': 'MCP writes are no longer supported here. Use claude mcp add/remove and /mcp.',
|
|
227
|
+
'mcp.preserved': 'Old MCP data is kept. Add servers with claude mcp in the profile you use.',
|
|
228
|
+
'mcp.noServers': '(no servers)',
|
|
229
|
+
'mcp.disabled': 'Turned off before: {list}',
|
|
230
|
+
'mcp.where': 'User servers go in the profile .claude.json; project servers go in .mcp.json.',
|
|
231
|
+
'mcp.see': 'See https://code.claude.com/docs/en/mcp',
|
|
232
|
+
|
|
233
|
+
'index.unknown': 'Unknown command: {command}',
|
|
234
|
+
'index.usage': 'Usage: npx ai-profile-switch@latest {usage}',
|
|
235
|
+
'index.helpRename': 'Close running sessions for this profile first. Its history and settings are kept; macOS may ask you to sign in again.',
|
|
236
|
+
'index.helpRemove': 'Deletes a profile after confirmation. This cannot be undone.',
|
|
237
|
+
'index.helpAdd': 'Creates a profile. Run claude, choose it, and sign in to the account you want.',
|
|
238
|
+
'index.helpUse': 'Changes the active profile for future launches; running sessions keep their profile.',
|
|
239
|
+
'index.help': `
|
|
240
|
+
{title} — Use several Claude Code accounts on one computer
|
|
241
|
+
|
|
242
|
+
Everyday commands (in your terminal, after setup):
|
|
243
|
+
claude Pick a profile and start Claude Code
|
|
244
|
+
cpf Open the menu
|
|
245
|
+
cpf work Switch to an existing profile
|
|
246
|
+
cpf --help Show the short commands
|
|
247
|
+
|
|
248
|
+
Usage: npx ai-profile-switch@latest <command> [options]
|
|
249
|
+
|
|
250
|
+
Commands:
|
|
251
|
+
init First setup; shows the current setup if already done
|
|
252
|
+
add <name> Create a profile
|
|
253
|
+
remove <name> Remove a profile after confirmation
|
|
254
|
+
rename <old> <new> Rename a profile, keeping its data
|
|
255
|
+
login <name> Sign a profile in to another Claude account
|
|
256
|
+
list List profiles
|
|
257
|
+
use <name> Change the active profile
|
|
258
|
+
manage Open the same menu as cpf
|
|
259
|
+
language [auto|en|ko] Choose the screen language
|
|
260
|
+
install-shell Install or repair the claude and cpf commands
|
|
261
|
+
migrate [name] Copy existing Claude settings (--from <path>)
|
|
262
|
+
update [--check] Update this tool; --check only checks
|
|
263
|
+
share [add|remove] Share CLAUDE.md, skills, agents, … across profiles
|
|
264
|
+
mcp [list] Show where old MCP settings went
|
|
265
|
+
--version, -v Show the installed version
|
|
266
|
+
|
|
267
|
+
Run any command with --help for its usage.
|
|
268
|
+
`,
|
|
269
|
+
};
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
// 한국어 문구. en.mjs 와 키가 같아야 한다.
|
|
2
|
+
export default {
|
|
3
|
+
'time.justNow': '방금',
|
|
4
|
+
|
|
5
|
+
'prompt.keys': '{arrows} 이동 · Enter 선택 · Esc 취소',
|
|
6
|
+
'prompt.keysNumbered': '{arrows} 이동 · 1-{max} 바로 선택 · Enter 선택 · Esc 취소',
|
|
7
|
+
'prompt.keysBack': '{arrows} 이동 · Enter 선택 · Esc 뒤로',
|
|
8
|
+
'prompt.keysNumberedBack': '{arrows} 이동 · 1-{max} 바로 선택 · Enter 선택 · Esc 뒤로',
|
|
9
|
+
'prompt.moreAbove': '위에 {count}개 더',
|
|
10
|
+
'prompt.moreBelow': '아래에 {count}개 더',
|
|
11
|
+
'prompt.cancelled': '취소했어요',
|
|
12
|
+
'prompt.yes': '예',
|
|
13
|
+
'prompt.no': '아니요',
|
|
14
|
+
'common.cancelled': '취소했어요.',
|
|
15
|
+
'common.none': '없음',
|
|
16
|
+
|
|
17
|
+
'picker.question': '어떤 프로필로 시작할까요?',
|
|
18
|
+
'picker.inUse': '사용 중',
|
|
19
|
+
'picker.starting': '{profile} 프로필로 시작해요',
|
|
20
|
+
'picker.switched': '이제 {profile} 프로필을 써요',
|
|
21
|
+
'launch.opening': 'Claude Code 를 여는 중…',
|
|
22
|
+
'launch.notFound': '이 컴퓨터에서 Claude Code 를 찾지 못했어요.',
|
|
23
|
+
'launch.install': '설치 안내:',
|
|
24
|
+
'launch.startFailed': 'Claude Code 를 시작하지 못했어요: {message}',
|
|
25
|
+
'launch.sharedFailed': '같이 쓰는 설정을 연결하지 못했어요: {message}',
|
|
26
|
+
|
|
27
|
+
'account.fiveHour': '5시간',
|
|
28
|
+
'account.weekly': '주간',
|
|
29
|
+
'account.noUsage': '아직 저장된 사용량 없음',
|
|
30
|
+
'account.savedAt': '{time} 기준',
|
|
31
|
+
'account.reset': '초기화됨',
|
|
32
|
+
'account.notSignedIn': '아직 로그인하지 않았어요',
|
|
33
|
+
|
|
34
|
+
'profile.empty': '프로필 이름을 적어 주세요',
|
|
35
|
+
'profile.tooLong': '프로필 이름은 {max}자 이하로 적어 주세요',
|
|
36
|
+
'profile.reserved': '"{name}" 은(는) 쓸 수 없는 이름이에요',
|
|
37
|
+
'profile.reservedWindows': '"{name}" 은(는) Windows 에서 쓸 수 없는 이름이에요',
|
|
38
|
+
'profile.invalidName': '프로필 이름은 영어 소문자·숫자·하이픈(-)만 쓸 수 있고, 처음과 끝은 글자나 숫자여야 해요',
|
|
39
|
+
'profile.notFound': '"{name}" 프로필이 없어요',
|
|
40
|
+
'profile.exists': '"{name}" 프로필이 이미 있어요',
|
|
41
|
+
'profile.missingDir': '"{name}" 프로필 폴더가 없어요',
|
|
42
|
+
'profile.notDirectory': '"{name}" 프로필은 링크나 파일이 아니라 폴더여야 해요',
|
|
43
|
+
'profile.copiedInstead': '여기서는 링크를 만들 수 없어 같이 쓰는 파일을 복사했어요 ({link}).',
|
|
44
|
+
'profile.devMode': '같이 쓰는 설정을 계속 맞추려면 Windows 개발자 모드를 켜 주세요.',
|
|
45
|
+
'profiles.none': '아직 프로필이 없어요.',
|
|
46
|
+
'hint.profiles': '있는 프로필:',
|
|
47
|
+
'hint.create': '새로 만들려면:',
|
|
48
|
+
'hint.add': '프로필 추가:',
|
|
49
|
+
'hint.setup': '처음 설정:',
|
|
50
|
+
'hint.try': '이렇게 써 보세요:',
|
|
51
|
+
|
|
52
|
+
'use.switched': '{profile} 프로필로 바꿨어요',
|
|
53
|
+
'use.already': '이미 {profile} 프로필을 쓰고 있어요',
|
|
54
|
+
'use.note': '새로 여는 Claude 부터 적용돼요. 열려 있는 창은 원래 프로필을 그대로 써요.',
|
|
55
|
+
|
|
56
|
+
'add.created': '{name} 프로필을 만들었어요',
|
|
57
|
+
'add.next': '다음 단계',
|
|
58
|
+
'add.step1': '{command} 를 실행해요',
|
|
59
|
+
'add.step2': '목록에서 {name} 프로필을 골라요',
|
|
60
|
+
'add.step3': 'Claude 가 물으면 쓰려는 Claude 계정으로 로그인해요',
|
|
61
|
+
|
|
62
|
+
'remove.activeWarn': '{name} 프로필은 지금 쓰는 중이에요',
|
|
63
|
+
'remove.confirm': '"{name}" 프로필을 지울까요? 로그인·기록이 모두 지워지고 되돌릴 수 없어요',
|
|
64
|
+
'remove.done': '{name} 프로필을 지웠어요',
|
|
65
|
+
'remove.newActive': '이제 {name} 프로필을 써요',
|
|
66
|
+
'remove.none': '남은 프로필이 없어요.',
|
|
67
|
+
|
|
68
|
+
'rename.closeSessions': '{name} 프로필로 열려 있는 Claude 창은 먼저 닫아 주세요. 열린 창은 예전 폴더를 계속 써요.',
|
|
69
|
+
'rename.macSignIn': 'macOS 에서는 처음 한 번 다시 로그인하라고 할 수 있어요.',
|
|
70
|
+
'rename.done': '프로필 이름을 바꿨어요: {old} → {new}',
|
|
71
|
+
'rename.same': '"{name}" 은(는) 이미 그 이름이에요',
|
|
72
|
+
|
|
73
|
+
'share.keptOwn': '{name}: {entry} 가 같이 쓰는 것과 달라서 따로 두었어요. 옮기거나 지운 뒤 cpf share sync 를 실행하세요.',
|
|
74
|
+
'share.missing': '{name}: 같이 쓰는 {entry} 가 _shared 에 없어요.',
|
|
75
|
+
'share.title': '모든 프로필이 같이 쓰는 것:',
|
|
76
|
+
'share.canAlso': '더 나눌 수 있는 것: {list}',
|
|
77
|
+
'share.nothingLeft': '없음',
|
|
78
|
+
'share.own': '{entry} 따로 있음',
|
|
79
|
+
'share.notLinked': '{entry} 아직 연결 안 됨',
|
|
80
|
+
'share.missingShort': '{entry} 없음',
|
|
81
|
+
'share.inSync': '맞춰져 있어요',
|
|
82
|
+
'share.nothingExtra': '아직 더 나눈 것이 없어요. 예: cpf share add CLAUDE.md',
|
|
83
|
+
'share.usage': '사용법: cpf share [list | add <항목> | remove <항목> | sync]',
|
|
84
|
+
'share.linked': '{count}개를 연결했어요.',
|
|
85
|
+
'share.added': '이제 모든 프로필이 {entry} 를 같이 써요 (~/.claude-profiles/_shared/{entry})',
|
|
86
|
+
'share.removed': '{entry} 나누기를 그만했어요. 프로필마다 복사본이 남아 있어요.',
|
|
87
|
+
'share.cannot': '"{entry}" 은(는) 나눌 수 없어요. 나눌 수 있는 것: {list}',
|
|
88
|
+
'share.needsSettings': '이 설정은 프로필마다 따로 쓰도록 되어 있어 나눌 수 없어요.',
|
|
89
|
+
'share.already': '"{entry}" 은(는) 이미 같이 쓰고 있어요',
|
|
90
|
+
'share.notShared': '"{entry}" 은(는) 같이 쓰고 있지 않아요',
|
|
91
|
+
|
|
92
|
+
'list.title': '프로필 목록',
|
|
93
|
+
'list.active': '지금 프로필: {name}',
|
|
94
|
+
|
|
95
|
+
'install.done': 'claude·cpf 명령을 설치했어요.',
|
|
96
|
+
'install.shells': '{shells} 에서 쓸 수 있어요',
|
|
97
|
+
'install.next': '새 터미널을 열고 claude 로 시작하거나 cpf 로 프로필을 관리하세요.',
|
|
98
|
+
'shell.refreshed': '셸 명령을 새로 고쳤어요.',
|
|
99
|
+
|
|
100
|
+
'update.claudeManaged': 'Claude Code 는 스스로 업데이트해요. claude update (또는 설치한 패키지 관리자)를 쓰세요.',
|
|
101
|
+
'update.seeSetup': '안내: https://code.claude.com/docs/en/setup',
|
|
102
|
+
'update.notChecked': 'Claude Code 업데이트는 확인하지 않았어요.',
|
|
103
|
+
'update.package': '패키지',
|
|
104
|
+
'update.installed': '설치됨',
|
|
105
|
+
'update.latest': '최신',
|
|
106
|
+
'update.upToDate': '최신 버전이에요.',
|
|
107
|
+
'update.runToInstall': '설치하려면 npx ai-profile-switch@latest update 를 실행하세요.',
|
|
108
|
+
'update.updated': '{version} 으로 업데이트했어요. 새로 여는 Claude 부터 적용되고, 열린 창은 그대로예요.',
|
|
109
|
+
'update.notInstalled': '셸 명령이 설치돼 있지 않아 아무것도 설치하지 않았어요. 실행: npx ai-profile-switch@latest install-shell',
|
|
110
|
+
'update.busy': '이미 업데이트하는 중이에요.',
|
|
111
|
+
'update.failed': '업데이트에 실패해 지금 버전을 그대로 써요: {error}',
|
|
112
|
+
|
|
113
|
+
'migrate.noProfiles': '아직 프로필이 없어요. 먼저 npx ai-profile-switch@latest init 을 실행하세요.',
|
|
114
|
+
'migrate.target': '어느 프로필로 가져올까요?',
|
|
115
|
+
'migrate.which': '어느 Claude 설정을 가져올까요?',
|
|
116
|
+
'migrate.customPath': '경로 직접 적기',
|
|
117
|
+
'migrate.enterPath': '폴더 전체 경로를 적어 주세요:',
|
|
118
|
+
'migrate.emptySource': '가져올 폴더 경로를 적어 주세요.',
|
|
119
|
+
'migrate.source': '가져올 곳:',
|
|
120
|
+
'migrate.profile': '넣을 프로필:',
|
|
121
|
+
'migrate.conflictNote': '프로필에 겹치는 데이터가 있으면 아무것도 복사하지 않아요. 원래 폴더는 그대로 남아요.',
|
|
122
|
+
'migrate.closeSessions': '가져오는 동안 두 곳을 쓰는 Claude 창은 닫아 두세요.',
|
|
123
|
+
'migrate.confirm': '"{name}" 프로필로 설정을 가져올까요?',
|
|
124
|
+
'migrate.copied': '{source} 를 {name} 프로필로 가져왔어요',
|
|
125
|
+
'migrate.backup': '원래 있던 데이터 백업: {path}',
|
|
126
|
+
'migrate.preserved': '원래 폴더는 그대로예요. macOS 키체인의 로그인 정보는 복사되지 않아요.',
|
|
127
|
+
'migrate.signIn': '이 프로필로 시작하면 Claude 가 로그인을 확인해요.',
|
|
128
|
+
|
|
129
|
+
'init.already': 'ai-profile-switch 는 이미 설정돼 있어요.',
|
|
130
|
+
'init.profiles': '프로필:',
|
|
131
|
+
'init.active': '지금 프로필:',
|
|
132
|
+
'init.addHint': '프로필 추가:',
|
|
133
|
+
'init.repairHint': '셸 명령 고치기:',
|
|
134
|
+
'init.title': 'ai-profile-switch 시작하기',
|
|
135
|
+
'init.tagline': '한 컴퓨터에서 여러 Claude 계정을 프로필로 나눠 골라 쓰게 해 줘요',
|
|
136
|
+
'init.closeSessions': '지금 설정을 가져오는 동안 열린 Claude 창은 닫아 두세요.',
|
|
137
|
+
'init.names': '만들 프로필 이름을 적어 주세요 (쉼표로 구분)',
|
|
138
|
+
'init.duplicate': '같은 이름을 두 번 적었어요: {name}',
|
|
139
|
+
'init.used': '이미 있는 이름이에요: {name}',
|
|
140
|
+
'init.activeQuestion': '처음에 어느 프로필을 쓸까요?',
|
|
141
|
+
'init.shareQuestion': '모든 프로필이 settings.json 과 commands 를 같이 쓸까요?',
|
|
142
|
+
'init.copyQuestion': '지금 쓰는 Claude 설정을 가져올까요?',
|
|
143
|
+
'init.skip': '가져오지 않기',
|
|
144
|
+
'init.dirExists': '"{name}" 폴더가 이미 있어요. 다른 이름을 쓰세요.',
|
|
145
|
+
'init.ready': '{name} 프로필 준비됨',
|
|
146
|
+
'init.shells': '셸 명령 설치됨 ({shells})',
|
|
147
|
+
'init.activeDone': '지금 프로필: {name}',
|
|
148
|
+
'init.openTerminal': '새 터미널을 열고 {command} 를 실행하세요. 필요하면 Claude 가 로그인을 물어봐요.',
|
|
149
|
+
'init.otherProfile': '다른 프로필로 하려면:',
|
|
150
|
+
|
|
151
|
+
'menu.question': '무엇을 할까요?',
|
|
152
|
+
'menu.current': '지금 프로필: {name}',
|
|
153
|
+
'menu.use': '프로필 바꾸기',
|
|
154
|
+
'menu.add': '프로필 추가하기',
|
|
155
|
+
'menu.removeHint': '확인 후 지워요',
|
|
156
|
+
'menu.share': '같이 쓰는 설정 보기',
|
|
157
|
+
'menu.language': '화면 언어',
|
|
158
|
+
'menu.exit': '나가기',
|
|
159
|
+
'menu.manage': '프로필 관리하기',
|
|
160
|
+
'menu.manageHint': '이름·로그인 계정·지우기',
|
|
161
|
+
'menu.usePick': '어느 프로필로 바꿀까요?',
|
|
162
|
+
'menu.managePick': '어느 프로필을 관리할까요?',
|
|
163
|
+
'detail.title': '{name} 프로필',
|
|
164
|
+
'detail.account': '로그인 계정',
|
|
165
|
+
'detail.usage': '사용량',
|
|
166
|
+
'detail.lastUsed': '마지막 사용',
|
|
167
|
+
'detail.folder': '폴더',
|
|
168
|
+
'detail.never': '아직 안 씀',
|
|
169
|
+
'detail.noUsage': '아직 저장된 값 없음',
|
|
170
|
+
'detail.use': '이 프로필로 바꾸기',
|
|
171
|
+
'detail.rename': '이름 바꾸기',
|
|
172
|
+
'detail.login': '로그인 계정 바꾸기',
|
|
173
|
+
'detail.loginHint': '다른 Claude 계정으로 다시 로그인',
|
|
174
|
+
'detail.remove': '지우기',
|
|
175
|
+
'detail.back': '뒤로',
|
|
176
|
+
'rename.newName': '새 이름을 적어 주세요',
|
|
177
|
+
'rename.newNameHint': '지금: {name} · 비우면 취소',
|
|
178
|
+
'rename.confirm': '{old} → {new} 로 바꿀까요?',
|
|
179
|
+
'rename.kept': '로그인·기록·설정은 그대로예요.',
|
|
180
|
+
'rename.next': '다음부터 {command} 목록에서 {name} 프로필을 고르세요.',
|
|
181
|
+
'hint.otherName': '다른 이름으로:',
|
|
182
|
+
'login.current': '지금 로그인 계정:',
|
|
183
|
+
'login.onlyThis': '이 프로필만 바뀌고 다른 프로필의 로그인은 그대로예요.',
|
|
184
|
+
'login.browser': '브라우저가 열리면 쓰려는 Claude 계정으로 로그인하세요.',
|
|
185
|
+
'login.closeSessions': '{name} 프로필로 열린 Claude 창이 있으면 먼저 닫아 주세요.',
|
|
186
|
+
'login.confirm': '{name} 프로필의 로그인을 바꿀까요?',
|
|
187
|
+
'login.opening': 'Claude Code 로그인을 여는 중… (claude auth login)',
|
|
188
|
+
'login.done': '{name} 프로필이 이제 {account} 로 로그인돼 있어요',
|
|
189
|
+
'login.same': '{name} 프로필은 그대로 {account} 로 로그인돼 있어요',
|
|
190
|
+
'login.notSaved': '새 로그인 정보를 읽지 못했어요. claude 로 {name} 프로필을 열어 확인해 보세요.',
|
|
191
|
+
'login.failed': '로그인을 마치지 못했어요 (종료 코드 {code}).',
|
|
192
|
+
'login.usageLater': '사용량은 이 프로필로 Claude 를 한 번 쓰면 다시 보여요.',
|
|
193
|
+
'login.usage': '사용법: cpf login <이름>',
|
|
194
|
+
'index.helpLogin': '그 프로필만 claude auth login 으로 다시 로그인해요. 다른 프로필은 그대로예요.',
|
|
195
|
+
'menu.addName': '새 프로필 이름 (비우면 취소):',
|
|
196
|
+
'manage.invalid': '명령을 알아듣지 못했어요. cpf --help 로 사용법을 보세요.',
|
|
197
|
+
'manage.help': `사용법:
|
|
198
|
+
cpf 메뉴 열기
|
|
199
|
+
cpf <이름> 그 프로필로 바꾸기
|
|
200
|
+
cpf --list 프로필 목록과 지금 프로필
|
|
201
|
+
cpf add <이름> 프로필 만들기
|
|
202
|
+
cpf rename <예전> <새> 프로필 이름 바꾸기 (데이터는 그대로)
|
|
203
|
+
cpf remove <이름> 확인 후 프로필 지우기
|
|
204
|
+
cpf login <이름> 그 프로필의 로그인 계정 바꾸기
|
|
205
|
+
cpf share 모든 프로필이 같이 쓰는 것 보기
|
|
206
|
+
cpf share add <항목> CLAUDE.md·skills·agents 등을 같이 쓰기
|
|
207
|
+
cpf share remove <항목> 같이 쓰기 그만 (프로필마다 복사본이 남음)
|
|
208
|
+
cpf language [auto|en|ko] 화면 언어 고르기
|
|
209
|
+
cpf --help 이 도움말
|
|
210
|
+
|
|
211
|
+
Claude 채팅 안이 아니라 터미널 프롬프트에서 실행하세요. 채팅에서 나오려면 /exit 를 쓰세요.
|
|
212
|
+
claude 를 실행하면 프로필을 골라 Claude Code 를 시작해요.
|
|
213
|
+
이름을 바꾸기 전에 그 프로필을 쓰는 창을 닫으세요. macOS 에서는 다시 로그인하라고 할 수 있어요.
|
|
214
|
+
셸 명령이 없을 때는: npx ai-profile-switch@latest manage [인자]`,
|
|
215
|
+
|
|
216
|
+
'language.title': '화면 언어',
|
|
217
|
+
'language.auto': '자동',
|
|
218
|
+
'language.autoHint': '시스템 설정을 따라요 (지금: {name})',
|
|
219
|
+
'language.saved': '화면 언어를 바꿨어요: {name}',
|
|
220
|
+
'language.savedAuto': '화면 언어가 시스템 설정을 따라요 ({name})',
|
|
221
|
+
'language.current': '화면 언어: {name}',
|
|
222
|
+
'language.sourceSaved': 'cpf language 로 정함',
|
|
223
|
+
'language.sourceAuto': '자동',
|
|
224
|
+
'language.usage': '사용법: cpf language [auto | en | ko]',
|
|
225
|
+
|
|
226
|
+
'mcp.noWrites': '여기서는 MCP 를 더 이상 바꾸지 않아요. claude mcp add/remove 와 /mcp 를 쓰세요.',
|
|
227
|
+
'mcp.preserved': '예전 MCP 데이터는 그대로 있어요. 쓰는 프로필에서 claude mcp 로 서버를 추가하세요.',
|
|
228
|
+
'mcp.noServers': '(서버 없음)',
|
|
229
|
+
'mcp.disabled': '예전에 끈 서버: {list}',
|
|
230
|
+
'mcp.where': '사용자 서버는 프로필의 .claude.json, 프로젝트 서버는 .mcp.json 에 둬요.',
|
|
231
|
+
'mcp.see': '안내: https://code.claude.com/docs/en/mcp',
|
|
232
|
+
|
|
233
|
+
'index.unknown': '없는 명령이에요: {command}',
|
|
234
|
+
'index.usage': '사용법: npx ai-profile-switch@latest {usage}',
|
|
235
|
+
'index.helpRename': '그 프로필을 쓰는 창을 먼저 닫으세요. 기록과 설정은 그대로이고, macOS 에서는 다시 로그인하라고 할 수 있어요.',
|
|
236
|
+
'index.helpRemove': '확인 후 프로필을 지워요. 되돌릴 수 없어요.',
|
|
237
|
+
'index.helpAdd': '프로필을 만들어요. claude 를 실행해 골라서 쓰려는 프로필로 로그인하세요.',
|
|
238
|
+
'index.helpUse': '다음에 여는 Claude 의 프로필을 바꿔요. 열린 창은 원래 프로필을 그대로 써요.',
|
|
239
|
+
'index.help': `
|
|
240
|
+
{title} — 한 컴퓨터에서 여러 Claude Code 계정을 프로필로 나눠 쓰기
|
|
241
|
+
|
|
242
|
+
평소에 쓰는 명령 (설정 후 터미널에서):
|
|
243
|
+
claude 프로필을 골라 Claude Code 시작
|
|
244
|
+
cpf 메뉴 열기
|
|
245
|
+
cpf work 있는 프로필로 바꾸기
|
|
246
|
+
cpf --help 짧은 명령 보기
|
|
247
|
+
|
|
248
|
+
사용법: npx ai-profile-switch@latest <명령> [옵션]
|
|
249
|
+
|
|
250
|
+
명령:
|
|
251
|
+
init 처음 설정 (이미 했으면 지금 설정을 보여 줌)
|
|
252
|
+
add <이름> 프로필 만들기
|
|
253
|
+
remove <이름> 확인 후 프로필 지우기
|
|
254
|
+
rename <예전> <새> 프로필 이름 바꾸기 (데이터는 그대로)
|
|
255
|
+
login <이름> 그 프로필의 로그인 계정 바꾸기
|
|
256
|
+
list 프로필 목록
|
|
257
|
+
use <이름> 지금 프로필 바꾸기
|
|
258
|
+
manage cpf 와 같은 메뉴 열기
|
|
259
|
+
language [auto|en|ko] 화면 언어 고르기
|
|
260
|
+
install-shell claude·cpf 명령 설치·고치기
|
|
261
|
+
migrate [이름] 지금 Claude 설정 가져오기 (--from <경로>)
|
|
262
|
+
update [--check] 이 도구 업데이트 (--check 는 확인만)
|
|
263
|
+
share [add|remove] CLAUDE.md·skills·agents 등을 같이 쓰기
|
|
264
|
+
mcp [list] 예전 MCP 설정이 어디로 갔는지 보기
|
|
265
|
+
--version, -v 설치된 버전 보기
|
|
266
|
+
|
|
267
|
+
명령 뒤에 --help 를 붙이면 사용법이 나와요.
|
|
268
|
+
`,
|
|
269
|
+
};
|