agentvibes 5.9.0 โ†’ 5.11.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.
Files changed (70) hide show
  1. package/.agentvibes/config.json +17 -12
  2. package/.agentvibes/install-manifest.json +98 -86
  3. package/.claude/audio/ui/CREDITS.txt +16 -0
  4. package/.claude/audio/ui/bling-success.wav +0 -0
  5. package/.claude/commands/agent-vibes/receiver.md +64 -0
  6. package/.claude/config/audio-effects.cfg +3 -3
  7. package/.claude/config/personality.txt +1 -0
  8. package/.claude/config/reverb-level.txt +1 -1
  9. package/.claude/github-star-reminder.txt +1 -1
  10. package/.claude/hooks/audio-processor.sh +57 -18
  11. package/.claude/hooks/kokoro-installer.sh +117 -0
  12. package/.claude/hooks/kokoro-server.py +219 -0
  13. package/.claude/hooks/kokoro-tts.py +141 -0
  14. package/.claude/hooks/piper-download-voices.sh +39 -16
  15. package/.claude/hooks/piper-installer.sh +11 -6
  16. package/.claude/hooks/piper-voice-manager.sh +6 -6
  17. package/.claude/hooks/play-tts-agentvibes-receiver-for-voiceless-connections.sh +3 -1
  18. package/.claude/hooks/play-tts-elevenlabs.sh +360 -0
  19. package/.claude/hooks/play-tts-kokoro.sh +127 -0
  20. package/.claude/hooks/play-tts-piper.sh +20 -13
  21. package/.claude/hooks/play-tts-ssh-remote.sh +9 -2
  22. package/.claude/hooks/play-tts-termux-ssh.sh +3 -1
  23. package/.claude/hooks/play-tts.sh +78 -2
  24. package/.claude/hooks/provider-commands.sh +71 -22
  25. package/.claude/hooks/provider-manager.sh +15 -7
  26. package/.claude/hooks/voice-manager.sh +6 -0
  27. package/.claude/hooks-windows/kokoro-server.py +219 -0
  28. package/.claude/hooks-windows/kokoro-tts.py +107 -0
  29. package/.claude/hooks-windows/play-tts-kokoro.ps1 +191 -0
  30. package/.claude/hooks-windows/play-tts-windows-piper.ps1 +22 -16
  31. package/.claude/hooks-windows/play-tts.ps1 +29 -1
  32. package/README.md +12 -86
  33. package/RELEASE_NOTES.md +60 -0
  34. package/mcp-server/server.py +17 -7
  35. package/package.json +4 -3
  36. package/src/commands/install-mcp.js +730 -476
  37. package/src/console/app.js +28 -12
  38. package/src/console/audio-env.js +85 -1
  39. package/src/console/navigation.js +4 -0
  40. package/src/console/tabs/agents-tab.js +18 -12
  41. package/src/console/tabs/music-tab.js +7 -25
  42. package/src/console/tabs/receiver-tab.js +13 -13
  43. package/src/console/tabs/settings-tab.js +2 -2
  44. package/src/console/tabs/setup-tab.js +1708 -124
  45. package/src/console/tabs/voices-tab.js +76 -92
  46. package/src/console/widgets/format-utils.js +14 -2
  47. package/src/console/widgets/help-bar.js +55 -0
  48. package/src/console/widgets/personality-picker.js +2 -2
  49. package/src/console/widgets/reverb-picker.js +429 -41
  50. package/src/console/widgets/track-picker.js +60 -51
  51. package/src/i18n/de.js +204 -203
  52. package/src/i18n/en.js +1 -0
  53. package/src/i18n/es.js +204 -203
  54. package/src/i18n/fr.js +204 -203
  55. package/src/i18n/hi.js +204 -203
  56. package/src/i18n/ja.js +204 -203
  57. package/src/i18n/ko.js +204 -203
  58. package/src/i18n/pt.js +204 -203
  59. package/src/i18n/strings.js +54 -54
  60. package/src/i18n/zh-CN.js +204 -203
  61. package/src/installer.js +127 -34
  62. package/src/services/provider-service.js +178 -143
  63. package/src/services/provider-voice-catalog.js +126 -0
  64. package/src/services/tts-engine-service.js +53 -4
  65. package/src/utils/audio-duration-validator.js +341 -298
  66. package/src/utils/list-formatter.js +200 -194
  67. package/src/utils/platform-resolver.js +369 -0
  68. package/src/utils/preview-list-prompt.js +8 -0
  69. package/src/utils/provider-validator.js +79 -9
  70. package/templates/agentvibes-receiver.sh +6 -2
package/src/i18n/ko.js CHANGED
@@ -1,203 +1,204 @@
1
- export default {
2
- languageSelectTitle: "๐ŸŒ Select Language / Seleccionar Idioma / Choisir la langue / Sprache wรคhlen / Selecionar Idioma / ่จ€่ชžใ‚’้ธๆŠž / เคญเคพเคทเคพ เคšเฅเคจเฅ‡เค‚ / ้€‰ๆ‹ฉ่ฏญ่จ€ / ์–ธ์–ด ์„ ํƒ",
3
- languageApplied: "์–ธ์–ด๊ฐ€ ์ ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค",
4
- welcomeTitle: "AgentVibes์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!",
5
- installDetails: "์„ค์น˜ ์„ธ๋ถ€ ์ •๋ณด",
6
- installLocation: "์„ค์น˜ ์œ„์น˜",
7
- packageVersion: "ํŒจํ‚ค์ง€ ๋ฒ„์ „",
8
- readyToConfigure: "AgentVibes๋ฅผ ๊ตฌ์„ฑํ•  ์ค€๋น„๊ฐ€ ๋˜์…จ๋‚˜์š”?",
9
- installationCancelled: "์„ค์น˜๊ฐ€ ์ทจ์†Œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.",
10
- startInstall: "์„ค์น˜ ์‹œ์ž‘",
11
- installationCancelledMsg: "์„ค์น˜๊ฐ€ ์‚ฌ์šฉ์ž์— ์˜ํ•ด ์ทจ์†Œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.",
12
- installedSuccess: "AgentVibes๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์„ค์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค!",
13
- installComplete: "์„ค์น˜ ์™„๋ฃŒ",
14
- installationFailed: "์„ค์น˜ ์‹คํŒจ",
15
- installing: "AgentVibes ์„ค์น˜ ์ค‘...",
16
- providerLabel: "์ œ๊ณต์ž",
17
- voiceLabel: "์Œ์„ฑ",
18
- locationLabel: "์œ„์น˜",
19
- versionLabel: "๋ฒ„์ „",
20
- configurationSetup: "๊ตฌ์„ฑ",
21
- configurationIntro: "AgentVibes ์„ค์น˜๋ฅผ ๊ตฌ์„ฑํ•ด ์ฃผ์„ธ์š”.",
22
- navigationHint: "ํ™”์‚ดํ‘œ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŽ˜์ด์ง€ ๊ฐ„์— ํƒ์ƒ‰ํ•˜์„ธ์š”.",
23
- nonInteractiveDetected: "๋น„๋Œ€ํ™”ํ˜• ๋ชจ๋“œ ๊ฐ์ง€๋จ",
24
- installError: "์„ค์น˜ ์‹คํŒจ",
25
- continuePrompt: "๊ณ„์†",
26
- cancelPrompt: "์ทจ์†Œ",
27
- setupWizard: "์„ค์น˜ ๋งˆ๋ฒ•์‚ฌ",
28
- setupWizardSubtitle: "๊ฐœ์„ฑ ์žˆ๋Š” AI ์–ด์‹œ์Šคํ„ดํŠธ๋ฅผ ์œ„ํ•œ TTS.",
29
- dependencyCheck: "์˜์กด์„ฑ ํ™•์ธ",
30
- checkingDependencies: "์˜์กด์„ฑ ํ™•์ธ ์ค‘...",
31
- depColumn: "์˜์กด์„ฑ",
32
- statusColumn: "์ƒํƒœ",
33
- installed: "์„ค์น˜๋จ",
34
- notFound: "์ฐพ์„ ์ˆ˜ ์—†์Œ",
35
- ffmpegMissing: "์ฐพ์„ ์ˆ˜ ์—†์Œ (๋ฐฐ๊ฒฝ ์Œ์•…์— ํ•„์š”)",
36
- ttsDetected: "TTS ์ œ๊ณต์ž ๊ฐ์ง€๋จ",
37
- noTtsFound: "TTS ์ œ๊ณต์ž๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋จผ์ € Piper ๋˜๋Š” Soprano๋ฅผ ์„ค์น˜ํ•˜์„ธ์š”.",
38
- providerSelection: "์ œ๊ณต์ž ์„ ํƒ",
39
- availableProviders: "์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ TTS ์ œ๊ณต์ž:",
40
- providerAndVoice: "์ œ๊ณต์ž ๋ฐ ์Œ์„ฑ",
41
- voiceChangeHint: "(์„ค์น˜ ํ›„ ์„ค์ •์—์„œ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ)",
42
- introText: "์†Œ๊ฐœ ํ…์ŠคํŠธ",
43
- introTextLabel: "์†Œ๊ฐœ ํ…์ŠคํŠธ",
44
- none: "์—†์Œ",
45
- example: "์˜ˆ์‹œ",
46
- screen1Hint: "ํ™”๋ฉด 1/5: ํ™˜์˜ | [โ†/โ†’] ํƒ์ƒ‰ | [Enter] ์‹œ์ž‘ | [Esc] ์ข…๋ฃŒ",
47
- screen2Hint: "ํ™”๋ฉด 2/5: ์˜์กด์„ฑ | [โ†] ๋’ค๋กœ | [Enter] ๋‹ค์Œ",
48
- screen3Hint: "ํ™”๋ฉด 3/5: ์ œ๊ณต์ž | [โ†] ๋’ค๋กœ | [โ†‘โ†“] ์„ ํƒ | [Enter/โ†’] ํ™•์ธ",
49
- screen4Hint: "ํ™”๋ฉด 4/5: ๊ตฌ์„ฑ | [Esc] ๋’ค๋กœ | [E] ํŽธ์ง‘ | [โ†“] ์ˆ˜๋ฝ ๋ฐ ์„ค์น˜",
50
- screen5HintDone: "ํ™”๋ฉด 5/5: ์™„๋ฃŒ | [Enter] ํ™•์ธ โ€” ์™„๋ฃŒ",
51
- screen5HintWait: "ํ™”๋ฉด 5/5: ์„ค์น˜ ์ค‘... | ์ž ์‹œ ๊ธฐ๋‹ค๋ ค ์ฃผ์„ธ์š”",
52
- languageSettings: "์–ธ์–ด",
53
- languageSettingsSubtitle: "์ธํ„ฐํŽ˜์ด์Šค ์–ธ์–ด ์„ ํƒ",
54
- currentLanguage: "ํ˜„์žฌ ์–ธ์–ด",
55
- changeLanguage: "์–ธ์–ด ๋ณ€๊ฒฝ",
56
- beginBtn: "โ–ถ ์‹œ์ž‘",
57
- exitBtn: "โœ— ๋‚˜๊ฐ€๊ธฐ",
58
- footerText: "[Enter] ๊ณ„์†/์™„๋ฃŒ [Esc] ๋’ค๋กœ/๋‚˜๊ฐ€๊ธฐ [C] ์ฝ˜์†” [S/V/M/A/R] ํƒญ [Q] ๋‚˜๊ฐ€๊ธฐ",
59
- customizationTool: "๋งž์ถค ์„ค์ • ๋„๊ตฌ",
60
- quitLabel: "[Q] ๋‚˜๊ฐ€๊ธฐ",
61
- tabInstall: "์„ค์น˜",
62
- tabSettings: "์„ค์ •",
63
- tabVoices: "์Œ์„ฑ",
64
- tabMusic: "์Œ์•…",
65
- tabBmad: "BMad",
66
- tabReceiver: "์ˆ˜์‹ ๊ธฐ",
67
- tabReadme: "์ฝ์–ด๋ณด๊ธฐ",
68
- tabHelp: "๋„์›€๋ง",
69
- subTabVoice: " [V] ์Œ์„ฑ ",
70
- subTabEffects: " [E] ํšจ๊ณผ ",
71
- subTabPersonality: " [P] ๊ฐœ์„ฑ ",
72
- subTabOutput: " [O] ์ถœ๋ ฅ ",
73
- subTabLanguage: " [L] ์–ธ์–ด ",
74
- sectionProviderVoice: " ๐ŸŽค ์ œ๊ณต์ž ๋ฐ ์Œ์„ฑ ",
75
- sectionAudioEffects: " โšก ์˜ค๋””์˜ค ํšจ๊ณผ ",
76
- sectionBgMusic: " ๐ŸŽธ ๋ฐฐ๊ฒฝ ์Œ์•… ",
77
- sectionStyle: " ๐ŸŽญ ์Šคํƒ€์ผ ",
78
- sectionIntroText: " โœ๏ธ ์ธํŠธ๋กœ ํ…์ŠคํŠธ ",
79
- sectionAudioDest: " ๐Ÿ“ก ์˜ค๋””์˜ค ๋Œ€์ƒ ",
80
- sectionConfigStorage: " ๐Ÿ’พ ์„ค์ • ์ €์žฅ์†Œ ",
81
- sectionLanguage: " ๐ŸŒ ์–ธ์–ด ",
82
- providerRowLabel: "์ œ๊ณต์ž:",
83
- currentVoiceLabel: "ํ˜„์žฌ ์Œ์„ฑ:",
84
- reverbLabel: "๋ฆฌ๋ฒ„๋ธŒ:",
85
- trackLabel: "ํŠธ๋ž™:",
86
- volumeLabel: "๋ณผ๋ฅจ:",
87
- verbosityLabel: "์ƒ์„ธ๋„:",
88
- personalityLabel: "๊ฐœ์„ฑ:",
89
- introTextRowLabel: "์ธํŠธ๋กœ ํ…์ŠคํŠธ:",
90
- destinationLabel: "๋Œ€์ƒ:",
91
- sshAliasLabel: "SSH ๋ณ„์นญ:",
92
- globalLabel: "์ „์—ญ:",
93
- localLabel: "๋กœ์ปฌ:",
94
- languageLabel: "์–ธ์–ด:",
95
- switchBtn: "์ „ํ™˜",
96
- changeBtn: "๋ณ€๊ฒฝ",
97
- playBtn: "โ–ถ ์žฌ์ƒ",
98
- stopBtn: "โ–  ์ •์ง€",
99
- previewBtn: "โ–ถ ๋ฏธ๋ฆฌ๋ณด๊ธฐ",
100
- fullPreviewBtn: "โ–ถ ์ „์ฒด ๋ฏธ๋ฆฌ๋ณด๊ธฐ",
101
- saveGloballyBtn: "์ „์—ญ ์ €์žฅ",
102
- saveLocallyBtn: "๋กœ์ปฌ ์ €์žฅ",
103
- cancelChangesBtn: "๋ณ€๊ฒฝ ์ทจ์†Œ",
104
- editBtn: "ํŽธ์ง‘",
105
- clearBtn: "์ง€์šฐ๊ธฐ",
106
- applyLanguageBtn: "โœ“ ์–ธ์–ด ์ ์šฉ",
107
- enabledBtn: "ํ™œ์„ฑํ™”๋จ",
108
- disabledBtn: "๋น„ํ™œ์„ฑํ™”๋จ",
109
- okSaveBtn: "OK โ€” ์ €์žฅ",
110
- enableBtn: "ํ™œ์„ฑํ™”",
111
- streamingTextBtn: "ํ…์ŠคํŠธ๋งŒ โœ“",
112
- streamingPulseBtn: "Pulse ์˜ค๋””์˜ค",
113
- continueArrowBtn: "๊ณ„์† โ†’",
114
- acceptInstallBtn: "โœ“ ์ˆ˜๋ฝ ๋ฐ ์„ค์น˜",
115
- okDoneBtn: "โœ“ OK โ€” ์™„๋ฃŒ",
116
- doneCustomizeBtn: "โœ“ ์™„๋ฃŒ - ๋” ๋งž์ถค ์„ค์ •",
117
- doneQuitBtn: "โœ• ์™„๋ฃŒ - ์ข…๋ฃŒ",
118
- editInstallBtn: "ํŽธ์ง‘",
119
- musicDisabledMsg: "์Œ์•…์ด ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ ํ™œ์„ฑํ™”ํ•˜๊ฒ ์Šต๋‹ˆ๊นŒ?",
120
- settingsFooter: "[โ†‘โ†“] ๊ทธ๋ฃน [โ†โ†’] ํ˜•์ œ/์„œ๋ธŒํƒญ [Enter/Space] ํ™œ์„ฑํ™” [Tab] ํƒญ ์ „ํ™˜ [Q] ๋‚˜๊ฐ€๊ธฐ",
121
- voicesFooter: "[โ†‘โ†“/jk] ํƒ์ƒ‰ [Space] ๋ฏธ๋ฆฌ๋ณด๊ธฐ [Enter] ์„ ํƒ [F] ์ฆ๊ฒจ์ฐพ๊ธฐ [/] ๊ฒ€์ƒ‰",
122
- musicFooter: "[โ†‘โ†“/jk] ํƒ์ƒ‰ [Space] ๋ฏธ๋ฆฌ๋ณด๊ธฐ [Enter] ์„ ํƒ [M] ์ „ํ™˜ [*] ์ฆ๊ฒจ์ฐพ๊ธฐ [F] ํ•„ํ„ฐ [Q] ๋‚˜๊ฐ€๊ธฐ",
123
- helpFooter: "[โ†‘โ†“/jk] ์Šคํฌ๋กค [/] ๊ฒ€์ƒ‰ [PgUp/PgDn] ํŽ˜์ด์ง€ [S/V/M/A/R] ํƒญ [Q] ๋‚˜๊ฐ€๊ธฐ",
124
- readmeFooter: "[โ†‘โ†“/jk] ์Šคํฌ๋กค [PgUp/PgDn] ํŽ˜์ด์ง€ [/] ๊ฒ€์ƒ‰ [S/V/M/A/R] ํƒญ [Q] ๋‚˜๊ฐ€๊ธฐ",
125
- receiverFooter: "SSH ์ˆ˜์‹ ๊ธฐ [Q] ๋‚˜๊ฐ€๊ธฐ",
126
- searchLabel: "๊ฒ€์ƒ‰:",
127
- settingsSavedMsg: "์„ค์ •์ด ์ €์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค",
128
- changesRevertedMsg: "๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ณต์›๋˜์—ˆ์Šต๋‹ˆ๋‹ค",
129
- musicBuiltInHeader: "โ”€โ”€ ๊ธฐ๋ณธ ํŠธ๋ž™ ",
130
- musicStatusHeader: "โ”€โ”€ ์Œ์•… ์ƒํƒœ ",
131
- musicStatusLabel: "์Œ์•…:",
132
- musicActiveTrack: "ํ™œ์„ฑ ํŠธ๋ž™:",
133
- musicFilterLabel: "ํ•„ํ„ฐ:",
134
- musicFilterAll: "์ „์ฒด",
135
- musicFilterFavs: "์ฆ๊ฒจ์ฐพ๊ธฐ",
136
- musicToggleBtn: "[์Œ์•… ์ „ํ™˜]",
137
- musicAddCustomBtn: "[์ปค์Šคํ…€ ํŠธ๋ž™ ์ถ”๊ฐ€]",
138
- voicesHeader: "โ”€โ”€ ์Œ์„ฑ ",
139
- voicesColName: "์ด๋ฆ„",
140
- voicesColGender: "์„ฑ๋ณ„",
141
- voicesColProvider: "์ œ๊ณต์ž",
142
- voicesInfoHeader: "โ”€โ”€ ์Œ์„ฑ ์ •๋ณด ",
143
- voicesSwitchBtn: "[์Œ์„ฑ ์ „ํ™˜]",
144
- voicesFavoriteBtn: "[โ˜… ์ฆ๊ฒจ์ฐพ๊ธฐ]",
145
- voicesDownloadBtn: "[์Œ์„ฑ ๋‹ค์šด๋กœ๋“œ]",
146
- voicesRowHintInstalled: "[Space] ๋ฏธ๋ฆฌ๋ณด๊ธฐ [Enter] ์„ ํƒ [*] ์ฆ๊ฒจ์ฐพ๊ธฐ",
147
- voicesRowHintUninstalled: "[Enter] ๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์น˜",
148
- musicRowHint: "[Space] ์žฌ์ƒ [Enter] ์„ ํƒ [*] ์ฆ๊ฒจ์ฐพ๊ธฐ",
149
- musicHintText: "[Space] ๋ฏธ๋ฆฌ๋ณด๊ธฐ [Enter] ํŠธ๋ž™ ์„ค์ • [*] ์ฆ๊ฒจ์ฐพ๊ธฐ",
150
- genderFemale: "์—ฌ์„ฑ",
151
- genderMale: "๋‚จ์„ฑ",
152
- voiceInfoVoice: "์Œ์„ฑ:",
153
- voiceInfoGender: "์„ฑ๋ณ„:",
154
- voiceInfoLanguage: "์–ธ์–ด:",
155
- voiceInfoQuality: "ํ’ˆ์งˆ:",
156
- voiceInfoProvider: "์ œ๊ณต์ž:",
157
- voiceInfoId: "ID:",
158
- voiceInfoSpeaker: "ํ™”์ž:",
159
- voiceInfoModel: "๋ชจ๋ธ:",
160
- voiceInfoSpeakerId: "ํ™”์ž ID:",
161
- voiceInfoDownload: "โฌ‡ [Enter] ๋ˆŒ๋Ÿฌ ๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์น˜",
162
- voicePlaying: "(์žฌ์ƒ ์ค‘)",
163
- bmadTitle: "๐Ÿง™ BMAD ์—์ด์ „ํŠธ",
164
- bmadWhatIsHeader: "BMAD๋ž€?",
165
- bmadDesc: "BMad ๋ฐฉ๋ฒ•(Build More Architect Dreams)์€ AI ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ\n๋ชจ๋“ˆ๋กœ, ์•„์ด๋””์–ด ๊ตฌ์ƒ๋ถ€ํ„ฐ ์—์ด์ „ํ‹ฑ ๊ตฌํ˜„๊นŒ์ง€ ์ „์ฒด ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ\n๊ณผ์ •์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ „๋ฌธ AI ์—์ด์ „ํŠธ, ์•ˆ๋‚ด๋œ ์›Œํฌํ”Œ๋กœ์šฐ ๋ฐ ์ง€๋Šฅ์ ์ธ\n๊ณ„ํš์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.\n\nClaude, Cursor ๋˜๋Š” GitHub Copilot๊ณผ ๊ฐ™์€ AI ์ฝ”๋”ฉ ์–ด์‹œ์Šคํ„ดํŠธ์— ์ต์ˆ™ํ•˜๋‹ค๋ฉด\n์‹œ์ž‘ํ•  ์ค€๋น„๊ฐ€ ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.",
166
- bmadInstallHeader: "ํ”„๋กœ์ ํŠธ์— BMAD ์„ค์น˜:",
167
- bmadLearnMoreHeader: "์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ:",
168
- bmadInstalledNote: "BMAD๊ฐ€ ์„ค์น˜๋˜๋ฉด ์ด ํƒญ์— ๋ชจ๋“  ์—์ด์ „ํŠธ๊ฐ€ ํ‘œ์‹œ๋˜๊ณ  ๊ฐ ์—์ด์ „ํŠธ์˜\n์Œ์„ฑ, ์ „๋ฌธ, ๋ฆฌ๋ฒ„๋ธŒ, ๊ฐœ์„ฑ ๋ฐ ๋ฐฐ๊ฒฝ ์Œ์•…์„ ๋…๋ฆฝ์ ์œผ๋กœ ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆํ• \n์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.",
169
- receiverWhatIsTitle: "SSH ์ˆ˜์‹ ๊ธฐ๋ž€?",
170
- receiverDesc: "SSH ์ˆ˜์‹ ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์›๊ฒฉ ์„œ๋ฒ„๊ฐ€ ์ด ๊ธฐ๊ธฐ๋ฅผ ํ†ตํ•ด ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n์›๊ฒฉ ์„œ๋ฒ„์˜ AI ์–ด์‹œ์Šคํ„ดํŠธ๊ฐ€ TTS ์˜ค๋””์˜ค๋ฅผ ์žฌ์ƒํ•ด์•ผ ํ•  ๋•Œ SSH๋ฅผ ํ†ตํ•ด\n์ด ๊ธฐ๊ธฐ์— ํ…์ŠคํŠธ๋ฅผ ์ „์†กํ•˜๋ฉด, ์ด ๊ธฐ๊ธฐ๊ฐ€ ์˜ค๋””์˜ค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋กœ์ปฌ\n์Šคํ”ผ์ปค๋กœ ์žฌ์ƒํ•ฉ๋‹ˆ๋‹ค.\n\n์›๊ฒฉ AI โ”€โ”€[SSH]โ”€โ”€โ–บ ์ด ๊ธฐ๊ธฐ โ”€โ”€[piper+sox+ffmpeg]โ”€โ”€โ–บ ์Šคํ”ผ์ปค",
171
- helpSectionGlobal: "์ „์—ญ ๋‹จ์ถ•ํ‚ค",
172
- helpSectionNavigation: "ํƒ์ƒ‰ ๋‹จ์ถ•ํ‚ค",
173
- helpSectionColors: "ํƒญ ์ƒ‰์ƒ ์•ˆ๋‚ด",
174
- helpQuit: "์ฝ˜์†” ์ข…๋ฃŒ",
175
- helpForceQuit: "๊ฐ•์ œ ์ข…๋ฃŒ",
176
- helpSwitchSettings: "์„ค์ • ํƒญ์œผ๋กœ ์ „ํ™˜",
177
- helpSwitchVoices: "์Œ์„ฑ ํƒญ์œผ๋กœ ์ „ํ™˜",
178
- helpSwitchMusic: "์Œ์•… ํƒญ์œผ๋กœ ์ „ํ™˜",
179
- helpSwitchReadme: "Readme ํƒญ์œผ๋กœ ์ „ํ™˜",
180
- helpSwitchHelp: "๋„์›€๋ง ํƒญ์œผ๋กœ ์ „ํ™˜",
181
- helpSwitchInstall: "์„ค์น˜ ํƒญ์œผ๋กœ ์ „ํ™˜",
182
- helpCloseModal: "๋ชจ๋‹ฌ ๋‹ซ๊ธฐ / ๋’ค๋กœ๊ฐ€๊ธฐ",
183
- helpNavigateLists: "๋ชฉ๋ก ํƒ์ƒ‰",
184
- helpSelectActivate: "์„ ํƒ / ํ™œ์„ฑํ™”",
185
- helpTogglePreview: "ํ† ๊ธ€ / ๋ฏธ๋ฆฌ๋ณด๊ธฐ",
186
- helpNextButton: "๋‹ค์Œ ๋ฒ„ํŠผ",
187
- helpPrevButton: "์ด์ „ ๋ฒ„ํŠผ",
188
- helpOpenSearch: "๊ฒ€์ƒ‰/ํ•„ํ„ฐ ์—ด๊ธฐ",
189
- helpToggleFavFilter: "์ฆ๊ฒจ์ฐพ๊ธฐ ํ•„ํ„ฐ ์ „ํ™˜ (์Œ์„ฑ/์Œ์•…)",
190
- helpToggleFav: "์ฆ๊ฒจ์ฐพ๊ธฐ ์ „ํ™˜ (์Œ์•… ํƒญ)",
191
- helpToggleMusic: "์Œ์•… ์ผœ๊ธฐ/๋„๊ธฐ (์Œ์•… ํƒญ)",
192
- helpColorSettings: "์„ค์ • ํƒญ ํ•˜๋‹จ",
193
- helpColorVoices: "์Œ์„ฑ ํƒญ ํ•˜๋‹จ",
194
- helpColorMusic: "์Œ์•… ํƒญ ํ•˜๋‹จ",
195
- helpColorReadme: "Readme ํƒญ ํ•˜๋‹จ",
196
- helpColorHelp: "๋„์›€๋ง ํƒญ ํ•˜๋‹จ",
197
- helpColorInstall: "์„ค์น˜ ํƒญ ํ•˜๋‹จ",
198
- helpSearchLabel: "๊ฒ€์ƒ‰:",
199
- readmeScrollMore: "โ†“ ์•„๋ž˜๋กœ ์Šคํฌ๋กคํ•˜์—ฌ ๋” ๋ณด๊ธฐ โ†“",
200
- readmeNotFound: "*(ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ README.md๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค)*",
201
- bmadFooterNobmad: "[Tab] ํƒญ ์ „ํ™˜ [Q] ๋‚˜๊ฐ€๊ธฐ",
202
- bmadFooterBmad: "[โ†‘โ†“/jk] ํƒ์ƒ‰ [Space] ๋ฏธ๋ฆฌ๋ณด๊ธฐ [Enter] ์„ค์ • [A] ์ž๋™๋ฐฐ์ • [B] ์ผ๊ด„ [X] ์ดˆ๊ธฐํ™” [Q] ๋‚˜๊ฐ€๊ธฐ",
203
- };
1
+ export default {
2
+ languageSelectTitle: "๐ŸŒ Select Language / Seleccionar Idioma / Choisir la langue / Sprache wรคhlen / Selecionar Idioma / ่จ€่ชžใ‚’้ธๆŠž / เคญเคพเคทเคพ เคšเฅเคจเฅ‡เค‚ / ้€‰ๆ‹ฉ่ฏญ่จ€ / ์–ธ์–ด ์„ ํƒ",
3
+ languageApplied: "์–ธ์–ด๊ฐ€ ์ ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค",
4
+ welcomeTitle: "AgentVibes์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!",
5
+ installDetails: "์„ค์น˜ ์„ธ๋ถ€ ์ •๋ณด",
6
+ installLocation: "์„ค์น˜ ์œ„์น˜",
7
+ packageVersion: "ํŒจํ‚ค์ง€ ๋ฒ„์ „",
8
+ readyToConfigure: "AgentVibes๋ฅผ ๊ตฌ์„ฑํ•  ์ค€๋น„๊ฐ€ ๋˜์…จ๋‚˜์š”?",
9
+ installationCancelled: "์„ค์น˜๊ฐ€ ์ทจ์†Œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.",
10
+ startInstall: "์„ค์น˜ ์‹œ์ž‘",
11
+ installationCancelledMsg: "์„ค์น˜๊ฐ€ ์‚ฌ์šฉ์ž์— ์˜ํ•ด ์ทจ์†Œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.",
12
+ installedSuccess: "AgentVibes๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์„ค์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค!",
13
+ installComplete: "์„ค์น˜ ์™„๋ฃŒ",
14
+ installationFailed: "์„ค์น˜ ์‹คํŒจ",
15
+ installing: "AgentVibes ์„ค์น˜ ์ค‘...",
16
+ providerLabel: "์ œ๊ณต์ž",
17
+ voiceLabel: "์Œ์„ฑ",
18
+ locationLabel: "์œ„์น˜",
19
+ versionLabel: "๋ฒ„์ „",
20
+ configurationSetup: "๊ตฌ์„ฑ",
21
+ configurationIntro: "AgentVibes ์„ค์น˜๋ฅผ ๊ตฌ์„ฑํ•ด ์ฃผ์„ธ์š”.",
22
+ navigationHint: "ํ™”์‚ดํ‘œ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŽ˜์ด์ง€ ๊ฐ„์— ํƒ์ƒ‰ํ•˜์„ธ์š”.",
23
+ nonInteractiveDetected: "๋น„๋Œ€ํ™”ํ˜• ๋ชจ๋“œ ๊ฐ์ง€๋จ",
24
+ installError: "์„ค์น˜ ์‹คํŒจ",
25
+ continuePrompt: "๊ณ„์†",
26
+ cancelPrompt: "์ทจ์†Œ",
27
+ setupWizard: "์„ค์น˜ ๋งˆ๋ฒ•์‚ฌ",
28
+ setupWizardSubtitle: "๊ฐœ์„ฑ ์žˆ๋Š” AI ์–ด์‹œ์Šคํ„ดํŠธ๋ฅผ ์œ„ํ•œ TTS.",
29
+ dependencyCheck: "์˜์กด์„ฑ ํ™•์ธ",
30
+ checkingDependencies: "์˜์กด์„ฑ ํ™•์ธ ์ค‘...",
31
+ depColumn: "์˜์กด์„ฑ",
32
+ statusColumn: "์ƒํƒœ",
33
+ installed: "์„ค์น˜๋จ",
34
+ notFound: "์ฐพ์„ ์ˆ˜ ์—†์Œ",
35
+ ffmpegMissing: "์ฐพ์„ ์ˆ˜ ์—†์Œ (๋ฐฐ๊ฒฝ ์Œ์•…์— ํ•„์š”)",
36
+ ttsDetected: "TTS ์ œ๊ณต์ž ๊ฐ์ง€๋จ",
37
+ noTtsFound: "TTS ์ œ๊ณต์ž๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋จผ์ € Piper ๋˜๋Š” Soprano๋ฅผ ์„ค์น˜ํ•˜์„ธ์š”.",
38
+ providerSelection: "์ œ๊ณต์ž ์„ ํƒ",
39
+ availableProviders: "์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ TTS ์ œ๊ณต์ž:",
40
+ providerAndVoice: "์ œ๊ณต์ž ๋ฐ ์Œ์„ฑ",
41
+ voiceChangeHint: "(์„ค์น˜ ํ›„ ์„ค์ •์—์„œ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ)",
42
+ introText: "์†Œ๊ฐœ ํ…์ŠคํŠธ",
43
+ introTextLabel: "์†Œ๊ฐœ ํ…์ŠคํŠธ",
44
+ none: "์—†์Œ",
45
+ example: "์˜ˆ์‹œ",
46
+ screen1Hint: "ํ™”๋ฉด 1/5: ํ™˜์˜ | [โ†/โ†’] ํƒ์ƒ‰ | [Enter] ์‹œ์ž‘ | [Esc] ์ข…๋ฃŒ",
47
+ screen2Hint: "ํ™”๋ฉด 2/5: ์˜์กด์„ฑ | [โ†] ๋’ค๋กœ | [Enter] ๋‹ค์Œ",
48
+ screen3Hint: "ํ™”๋ฉด 3/5: ์ œ๊ณต์ž | [โ†] ๋’ค๋กœ | [โ†‘โ†“] ์„ ํƒ | [Enter/โ†’] ํ™•์ธ",
49
+ screen4Hint: "ํ™”๋ฉด 4/5: ๊ตฌ์„ฑ | [Esc] ๋’ค๋กœ | [E] ํŽธ์ง‘ | [โ†“] ์ˆ˜๋ฝ ๋ฐ ์„ค์น˜",
50
+ screen5HintDone: "ํ™”๋ฉด 5/5: ์™„๋ฃŒ | [Enter] ํ™•์ธ โ€” ์™„๋ฃŒ",
51
+ screen5HintWait: "ํ™”๋ฉด 5/5: ์„ค์น˜ ์ค‘... | ์ž ์‹œ ๊ธฐ๋‹ค๋ ค ์ฃผ์„ธ์š”",
52
+ languageSettings: "์–ธ์–ด",
53
+ languageSettingsSubtitle: "์ธํ„ฐํŽ˜์ด์Šค ์–ธ์–ด ์„ ํƒ",
54
+ currentLanguage: "ํ˜„์žฌ ์–ธ์–ด",
55
+ changeLanguage: "์–ธ์–ด ๋ณ€๊ฒฝ",
56
+ beginBtn: "โ–ถ ์‹œ์ž‘",
57
+ exitBtn: "โœ— ๋‚˜๊ฐ€๊ธฐ",
58
+ footerText: "[Enter] ๊ณ„์†/์™„๋ฃŒ [Esc] ๋’ค๋กœ/๋‚˜๊ฐ€๊ธฐ [C] ์ฝ˜์†” [S/V/M/A/R] ํƒญ [Q] ๋‚˜๊ฐ€๊ธฐ",
59
+ customizationTool: "๋งž์ถค ์„ค์ • ๋„๊ตฌ",
60
+ quitLabel: "[Q] ๋‚˜๊ฐ€๊ธฐ",
61
+ tabInstall: "์„ค์น˜",
62
+ tabSettings: "์„ค์ •",
63
+ tabVoices: "์Œ์„ฑ",
64
+ tabMusic: "์Œ์•…",
65
+ tabBmad: "BMad",
66
+ tabReceiver: "์ˆ˜์‹ ๊ธฐ",
67
+ tabReadme: "์ฝ์–ด๋ณด๊ธฐ",
68
+ tabHelp: "๋„์›€๋ง",
69
+ subTabVoice: " [V] ์Œ์„ฑ ",
70
+ subTabEffects: " [E] ํšจ๊ณผ ",
71
+ subTabPersonality: " [P] ๊ฐœ์„ฑ ",
72
+ subTabOutput: " [O] ์ถœ๋ ฅ ",
73
+ subTabLanguage: " [L] ์–ธ์–ด ",
74
+ sectionProviderVoice: " ๐ŸŽค ์ œ๊ณต์ž ๋ฐ ์Œ์„ฑ ",
75
+ sectionAudioEffects: " โšก ์˜ค๋””์˜ค ํšจ๊ณผ ",
76
+ sectionBgMusic: " ๐ŸŽธ ๋ฐฐ๊ฒฝ ์Œ์•… ",
77
+ sectionStyle: " ๐ŸŽญ ์Šคํƒ€์ผ ",
78
+ sectionIntroText: " โœ๏ธ ์ธํŠธ๋กœ ํ…์ŠคํŠธ ",
79
+ sectionAudioDest: " ๐Ÿ“ก ์˜ค๋””์˜ค ๋Œ€์ƒ ",
80
+ sectionConfigStorage: " ๐Ÿ’พ ์„ค์ • ์ €์žฅ์†Œ ",
81
+ sectionLanguage: " ๐ŸŒ ์–ธ์–ด ",
82
+ providerRowLabel: "์ œ๊ณต์ž:",
83
+ currentVoiceLabel: "ํ˜„์žฌ ์Œ์„ฑ:",
84
+ reverbLabel: "๋ฆฌ๋ฒ„๋ธŒ:",
85
+ trackLabel: "ํŠธ๋ž™:",
86
+ volumeLabel: "๋ณผ๋ฅจ:",
87
+ verbosityLabel: "์ƒ์„ธ๋„:",
88
+ personalityLabel: "๊ฐœ์„ฑ:",
89
+ introTextRowLabel: "์ธํŠธ๋กœ ํ…์ŠคํŠธ:",
90
+ destinationLabel: "๋Œ€์ƒ:",
91
+ sshAliasLabel: "SSH ๋ณ„์นญ:",
92
+ globalLabel: "์ „์—ญ:",
93
+ localLabel: "๋กœ์ปฌ:",
94
+ languageLabel: "์–ธ์–ด:",
95
+ switchBtn: "์ „ํ™˜",
96
+ changeBtn: "๋ณ€๊ฒฝ",
97
+ playBtn: "โ–ถ ์žฌ์ƒ",
98
+ stopBtn: "โ–  ์ •์ง€",
99
+ previewBtn: "โ–ถ ๋ฏธ๋ฆฌ๋ณด๊ธฐ",
100
+ fullPreviewBtn: "โ–ถ ์ „์ฒด ๋ฏธ๋ฆฌ๋ณด๊ธฐ",
101
+ saveGloballyBtn: "์ „์—ญ ์ €์žฅ",
102
+ saveLocallyBtn: "๋กœ์ปฌ ์ €์žฅ",
103
+ cancelChangesBtn: "๋ณ€๊ฒฝ ์ทจ์†Œ",
104
+ editBtn: "ํŽธ์ง‘",
105
+ clearBtn: "์ง€์šฐ๊ธฐ",
106
+ applyLanguageBtn: "โœ“ ์–ธ์–ด ์ ์šฉ",
107
+ enabledBtn: "ํ™œ์„ฑํ™”๋จ",
108
+ disabledBtn: "๋น„ํ™œ์„ฑํ™”๋จ",
109
+ okSaveBtn: "OK โ€” ์ €์žฅ",
110
+ enableBtn: "ํ™œ์„ฑํ™”",
111
+ streamingTextBtn: "ํ…์ŠคํŠธ๋งŒ โœ“",
112
+ streamingPulseBtn: "Pulse ์˜ค๋””์˜ค",
113
+ continueArrowBtn: "๊ณ„์† โ†’",
114
+ acceptInstallBtn: "โœ“ ์ˆ˜๋ฝ ๋ฐ ์„ค์น˜",
115
+ okDoneBtn: "โœ“ OK โ€” ์™„๋ฃŒ",
116
+ doneCustomizeBtn: "โœ“ ์™„๋ฃŒ - ๋” ๋งž์ถค ์„ค์ •",
117
+ doneQuitBtn: "โœ• ์™„๋ฃŒ - ์ข…๋ฃŒ",
118
+ editInstallBtn: "ํŽธ์ง‘",
119
+ musicDisabledMsg: "์Œ์•…์ด ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ ํ™œ์„ฑํ™”ํ•˜๊ฒ ์Šต๋‹ˆ๊นŒ?",
120
+ settingsFooter: "[โ†‘โ†“] ๊ทธ๋ฃน [โ†โ†’] ํ˜•์ œ/์„œ๋ธŒํƒญ [Enter/Space] ํ™œ์„ฑํ™” [Tab] ํƒญ ์ „ํ™˜ [Q] ๋‚˜๊ฐ€๊ธฐ",
121
+ voicesFooter: "[โ†‘โ†“/jk] ํƒ์ƒ‰ [Space] ๋ฏธ๋ฆฌ๋ณด๊ธฐ [Enter] ์„ ํƒ [F] ์ฆ๊ฒจ์ฐพ๊ธฐ [/] ๊ฒ€์ƒ‰",
122
+ musicFooter: "[โ†‘โ†“/jk] ํƒ์ƒ‰ [Space] ๋ฏธ๋ฆฌ๋ณด๊ธฐ [Enter] ์„ ํƒ [M] ์ „ํ™˜ [*] ์ฆ๊ฒจ์ฐพ๊ธฐ [F] ํ•„ํ„ฐ [Q] ๋‚˜๊ฐ€๊ธฐ",
123
+ helpFooter: "[โ†‘โ†“/jk] ์Šคํฌ๋กค [/] ๊ฒ€์ƒ‰ [PgUp/PgDn] ํŽ˜์ด์ง€ [S/V/M/A/R] ํƒญ [Q] ๋‚˜๊ฐ€๊ธฐ",
124
+ readmeFooter: "[โ†‘โ†“/jk] ์Šคํฌ๋กค [PgUp/PgDn] ํŽ˜์ด์ง€ [/] ๊ฒ€์ƒ‰ [S/V/M/A/R] ํƒญ [Q] ๋‚˜๊ฐ€๊ธฐ",
125
+ receiverFooter: "SSH ์ˆ˜์‹ ๊ธฐ [Q] ๋‚˜๊ฐ€๊ธฐ",
126
+ searchLabel: "๊ฒ€์ƒ‰:",
127
+ settingsSavedMsg: "์„ค์ •์ด ์ €์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค",
128
+ changesRevertedMsg: "๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ณต์›๋˜์—ˆ์Šต๋‹ˆ๋‹ค",
129
+ musicBuiltInHeader: "โ”€โ”€ ๊ธฐ๋ณธ ํŠธ๋ž™ ",
130
+ musicStatusHeader: "โ”€โ”€ ์Œ์•… ์ƒํƒœ ",
131
+ musicStatusLabel: "์Œ์•…:",
132
+ musicActiveTrack: "ํ™œ์„ฑ ํŠธ๋ž™:",
133
+ musicFilterLabel: "ํ•„ํ„ฐ:",
134
+ musicFilterAll: "์ „์ฒด",
135
+ musicFilterFavs: "์ฆ๊ฒจ์ฐพ๊ธฐ",
136
+ musicToggleBtn: "[์Œ์•… ์ „ํ™˜]",
137
+ musicAddCustomBtn: "[์ปค์Šคํ…€ ํŠธ๋ž™ ์ถ”๊ฐ€]",
138
+ voicesHeader: "โ”€โ”€ ์Œ์„ฑ ",
139
+ voicesColName: "์ด๋ฆ„",
140
+ voicesColGender: "์„ฑ๋ณ„",
141
+ voicesColProvider: "์ œ๊ณต์ž",
142
+ voicesInfoHeader: "โ”€โ”€ ์Œ์„ฑ ์ •๋ณด ",
143
+ voicesSwitchBtn: "[์Œ์„ฑ ์ „ํ™˜]",
144
+ voicesFavoriteBtn: "[โ˜… ์ฆ๊ฒจ์ฐพ๊ธฐ]",
145
+ voicesDownloadBtn: "[์Œ์„ฑ ๋‹ค์šด๋กœ๋“œ]",
146
+ voicesInstallAllBtn: "[BMAD ์Œ์„ฑ ์„ค์น˜]",
147
+ voicesRowHintInstalled: "[Space] ๋ฏธ๋ฆฌ๋ณด๊ธฐ [Enter] ์„ ํƒ [*] ์ฆ๊ฒจ์ฐพ๊ธฐ",
148
+ voicesRowHintUninstalled: "[Enter] ๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์น˜",
149
+ musicRowHint: "[Space] ์žฌ์ƒ [Enter] ์„ ํƒ [*] ์ฆ๊ฒจ์ฐพ๊ธฐ",
150
+ musicHintText: "[Space] ๋ฏธ๋ฆฌ๋ณด๊ธฐ [Enter] ํŠธ๋ž™ ์„ค์ • [*] ์ฆ๊ฒจ์ฐพ๊ธฐ",
151
+ genderFemale: "์—ฌ์„ฑ",
152
+ genderMale: "๋‚จ์„ฑ",
153
+ voiceInfoVoice: "์Œ์„ฑ:",
154
+ voiceInfoGender: "์„ฑ๋ณ„:",
155
+ voiceInfoLanguage: "์–ธ์–ด:",
156
+ voiceInfoQuality: "ํ’ˆ์งˆ:",
157
+ voiceInfoProvider: "์ œ๊ณต์ž:",
158
+ voiceInfoId: "ID:",
159
+ voiceInfoSpeaker: "ํ™”์ž:",
160
+ voiceInfoModel: "๋ชจ๋ธ:",
161
+ voiceInfoSpeakerId: "ํ™”์ž ID:",
162
+ voiceInfoDownload: "โฌ‡ [Enter] ๋ˆŒ๋Ÿฌ ๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์น˜",
163
+ voicePlaying: "(์žฌ์ƒ ์ค‘)",
164
+ bmadTitle: "๐Ÿง™ BMAD ์—์ด์ „ํŠธ",
165
+ bmadWhatIsHeader: "BMAD๋ž€?",
166
+ bmadDesc: "BMad ๋ฐฉ๋ฒ•(Build More Architect Dreams)์€ AI ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ\n๋ชจ๋“ˆ๋กœ, ์•„์ด๋””์–ด ๊ตฌ์ƒ๋ถ€ํ„ฐ ์—์ด์ „ํ‹ฑ ๊ตฌํ˜„๊นŒ์ง€ ์ „์ฒด ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ\n๊ณผ์ •์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ „๋ฌธ AI ์—์ด์ „ํŠธ, ์•ˆ๋‚ด๋œ ์›Œํฌํ”Œ๋กœ์šฐ ๋ฐ ์ง€๋Šฅ์ ์ธ\n๊ณ„ํš์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.\n\nClaude, Cursor ๋˜๋Š” GitHub Copilot๊ณผ ๊ฐ™์€ AI ์ฝ”๋”ฉ ์–ด์‹œ์Šคํ„ดํŠธ์— ์ต์ˆ™ํ•˜๋‹ค๋ฉด\n์‹œ์ž‘ํ•  ์ค€๋น„๊ฐ€ ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.",
167
+ bmadInstallHeader: "ํ”„๋กœ์ ํŠธ์— BMAD ์„ค์น˜:",
168
+ bmadLearnMoreHeader: "์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ:",
169
+ bmadInstalledNote: "BMAD๊ฐ€ ์„ค์น˜๋˜๋ฉด ์ด ํƒญ์— ๋ชจ๋“  ์—์ด์ „ํŠธ๊ฐ€ ํ‘œ์‹œ๋˜๊ณ  ๊ฐ ์—์ด์ „ํŠธ์˜\n์Œ์„ฑ, ์ „๋ฌธ, ๋ฆฌ๋ฒ„๋ธŒ, ๊ฐœ์„ฑ ๋ฐ ๋ฐฐ๊ฒฝ ์Œ์•…์„ ๋…๋ฆฝ์ ์œผ๋กœ ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆํ• \n์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.",
170
+ receiverWhatIsTitle: "SSH ์ˆ˜์‹ ๊ธฐ๋ž€?",
171
+ receiverDesc: "SSH ์ˆ˜์‹ ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์›๊ฒฉ ์„œ๋ฒ„๊ฐ€ ์ด ๊ธฐ๊ธฐ๋ฅผ ํ†ตํ•ด ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n์›๊ฒฉ ์„œ๋ฒ„์˜ AI ์–ด์‹œ์Šคํ„ดํŠธ๊ฐ€ TTS ์˜ค๋””์˜ค๋ฅผ ์žฌ์ƒํ•ด์•ผ ํ•  ๋•Œ SSH๋ฅผ ํ†ตํ•ด\n์ด ๊ธฐ๊ธฐ์— ํ…์ŠคํŠธ๋ฅผ ์ „์†กํ•˜๋ฉด, ์ด ๊ธฐ๊ธฐ๊ฐ€ ์˜ค๋””์˜ค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋กœ์ปฌ\n์Šคํ”ผ์ปค๋กœ ์žฌ์ƒํ•ฉ๋‹ˆ๋‹ค.\n\n์›๊ฒฉ AI โ”€โ”€[SSH]โ”€โ”€โ–บ ์ด ๊ธฐ๊ธฐ โ”€โ”€[piper+sox+ffmpeg]โ”€โ”€โ–บ ์Šคํ”ผ์ปค",
172
+ helpSectionGlobal: "์ „์—ญ ๋‹จ์ถ•ํ‚ค",
173
+ helpSectionNavigation: "ํƒ์ƒ‰ ๋‹จ์ถ•ํ‚ค",
174
+ helpSectionColors: "ํƒญ ์ƒ‰์ƒ ์•ˆ๋‚ด",
175
+ helpQuit: "์ฝ˜์†” ์ข…๋ฃŒ",
176
+ helpForceQuit: "๊ฐ•์ œ ์ข…๋ฃŒ",
177
+ helpSwitchSettings: "์„ค์ • ํƒญ์œผ๋กœ ์ „ํ™˜",
178
+ helpSwitchVoices: "์Œ์„ฑ ํƒญ์œผ๋กœ ์ „ํ™˜",
179
+ helpSwitchMusic: "์Œ์•… ํƒญ์œผ๋กœ ์ „ํ™˜",
180
+ helpSwitchReadme: "Readme ํƒญ์œผ๋กœ ์ „ํ™˜",
181
+ helpSwitchHelp: "๋„์›€๋ง ํƒญ์œผ๋กœ ์ „ํ™˜",
182
+ helpSwitchInstall: "์„ค์น˜ ํƒญ์œผ๋กœ ์ „ํ™˜",
183
+ helpCloseModal: "๋ชจ๋‹ฌ ๋‹ซ๊ธฐ / ๋’ค๋กœ๊ฐ€๊ธฐ",
184
+ helpNavigateLists: "๋ชฉ๋ก ํƒ์ƒ‰",
185
+ helpSelectActivate: "์„ ํƒ / ํ™œ์„ฑํ™”",
186
+ helpTogglePreview: "ํ† ๊ธ€ / ๋ฏธ๋ฆฌ๋ณด๊ธฐ",
187
+ helpNextButton: "๋‹ค์Œ ๋ฒ„ํŠผ",
188
+ helpPrevButton: "์ด์ „ ๋ฒ„ํŠผ",
189
+ helpOpenSearch: "๊ฒ€์ƒ‰/ํ•„ํ„ฐ ์—ด๊ธฐ",
190
+ helpToggleFavFilter: "์ฆ๊ฒจ์ฐพ๊ธฐ ํ•„ํ„ฐ ์ „ํ™˜ (์Œ์„ฑ/์Œ์•…)",
191
+ helpToggleFav: "์ฆ๊ฒจ์ฐพ๊ธฐ ์ „ํ™˜ (์Œ์•… ํƒญ)",
192
+ helpToggleMusic: "์Œ์•… ์ผœ๊ธฐ/๋„๊ธฐ (์Œ์•… ํƒญ)",
193
+ helpColorSettings: "์„ค์ • ํƒญ ํ•˜๋‹จ",
194
+ helpColorVoices: "์Œ์„ฑ ํƒญ ํ•˜๋‹จ",
195
+ helpColorMusic: "์Œ์•… ํƒญ ํ•˜๋‹จ",
196
+ helpColorReadme: "Readme ํƒญ ํ•˜๋‹จ",
197
+ helpColorHelp: "๋„์›€๋ง ํƒญ ํ•˜๋‹จ",
198
+ helpColorInstall: "์„ค์น˜ ํƒญ ํ•˜๋‹จ",
199
+ helpSearchLabel: "๊ฒ€์ƒ‰:",
200
+ readmeScrollMore: "โ†“ ์•„๋ž˜๋กœ ์Šคํฌ๋กคํ•˜์—ฌ ๋” ๋ณด๊ธฐ โ†“",
201
+ readmeNotFound: "*(ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ README.md๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค)*",
202
+ bmadFooterNobmad: "[Tab] ํƒญ ์ „ํ™˜ [Q] ๋‚˜๊ฐ€๊ธฐ",
203
+ bmadFooterBmad: "[โ†‘โ†“/jk] ํƒ์ƒ‰ [Space] ๋ฏธ๋ฆฌ๋ณด๊ธฐ [Enter] ์„ค์ • [A] ์ž๋™๋ฐฐ์ • [B] ์ผ๊ด„ [X] ์ดˆ๊ธฐํ™” [Q] ๋‚˜๊ฐ€๊ธฐ",
204
+ };