agentvibes 4.4.1 → 4.5.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/.agentvibes/config.json +4 -4
- package/.claude/config/reverb-level.txt +1 -1
- package/.claude/github-star-reminder.txt +1 -1
- package/.claude/hooks-windows/bmad-speak.ps1 +112 -0
- package/.claude/hooks-windows/play-tts-piper.ps1 +3 -4
- package/.claude/hooks-windows/play-tts-sapi.ps1 +3 -4
- package/.claude/hooks-windows/play-tts-soprano.ps1 +2 -3
- package/.claude/hooks-windows/play-tts-termux-ssh.ps1 +138 -0
- package/.claude/hooks-windows/play-tts.ps1 +14 -6
- package/.claude/hooks-windows/provider-manager.ps1 +16 -1
- package/CLAUDE.md +4 -0
- package/README.md +39 -9
- package/RELEASE_NOTES.md +39 -0
- package/bin/agent-vibes +1 -1
- package/bin/agentvibes-voice-browser.js +1 -1
- package/bin/bmad-speak.js +52 -0
- package/bin/mcp-server.js +1 -1
- package/bin/test-bmad-pr +1 -1
- package/package.json +1 -1
- package/setup-windows.ps1 +4 -4
- package/src/console/app.js +58 -11
- package/src/console/tabs/agents-tab.js +61 -65
- package/src/console/tabs/help-tab.js +107 -54
- package/src/console/tabs/install-tab.js +107 -47
- package/src/console/tabs/music-tab.js +1030 -1011
- package/src/console/tabs/placeholder-tab.js +27 -0
- package/src/console/tabs/readme-tab.js +9 -7
- package/src/console/tabs/receiver-tab.js +23 -12
- package/src/console/tabs/settings-tab.js +4001 -3783
- package/src/console/tabs/voices-tab.js +1680 -1653
- package/src/console/widgets/personality-picker.js +35 -7
- package/src/console/widgets/reverb-picker.js +9 -6
- package/src/console/widgets/track-picker.js +6 -1
- package/src/i18n/de.js +201 -0
- package/src/i18n/en.js +201 -0
- package/src/i18n/es.js +201 -0
- package/src/i18n/fr.js +201 -0
- package/src/i18n/hi.js +201 -0
- package/src/i18n/ja.js +201 -0
- package/src/i18n/ko.js +201 -0
- package/src/i18n/pt.js +201 -0
- package/src/i18n/strings.js +54 -0
- package/src/i18n/zh-CN.js +201 -0
- package/src/installer/language-screen.js +31 -0
- package/src/installer.js +79 -25
- package/src/services/language-service.js +47 -0
- package/src/utils/file-ownership-verifier.js +2 -2
- package/src/utils/provider-validator.js +9 -13
- package/.claude/hooks-windows/play-tts-windows-piper.ps1 +0 -209
- package/.claude/hooks-windows/play-tts-windows-sapi.ps1 +0 -108
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import path from 'node:path';
|
|
9
|
+
import fs from 'node:fs';
|
|
10
|
+
import os from 'node:os';
|
|
9
11
|
import { spawn } from 'node:child_process';
|
|
10
12
|
import { destroyList } from './destroy-list.js';
|
|
11
13
|
import { buildAudioEnv } from '../audio-env.js';
|
|
@@ -105,7 +107,12 @@ export function openPersonalityPicker(screen, currentPersonality, onSelect, onCl
|
|
|
105
107
|
|
|
106
108
|
function _killPickerTts() {
|
|
107
109
|
if (_pickerTtsProc) {
|
|
108
|
-
|
|
110
|
+
const _isWin = process.platform === 'win32' && !process.env.WSL_DISTRO_NAME;
|
|
111
|
+
if (_isWin) {
|
|
112
|
+
try { _pickerTtsProc.kill(); } catch {}
|
|
113
|
+
} else {
|
|
114
|
+
try { process.kill(-_pickerTtsProc.pid, 'SIGTERM'); } catch {}
|
|
115
|
+
}
|
|
109
116
|
_pickerTtsProc = null;
|
|
110
117
|
}
|
|
111
118
|
if (_playingItemIdx >= 0) {
|
|
@@ -118,12 +125,25 @@ export function openPersonalityPicker(screen, currentPersonality, onSelect, onCl
|
|
|
118
125
|
_killPickerTts();
|
|
119
126
|
const phrase = PERSONALITY_PREVIEW_PHRASES[personality];
|
|
120
127
|
if (!phrase) return;
|
|
121
|
-
const
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
128
|
+
const _isWin = process.platform === 'win32' && !process.env.WSL_DISTRO_NAME;
|
|
129
|
+
const _env = buildAudioEnv();
|
|
130
|
+
if (_isWin) {
|
|
131
|
+
// Prefer project-local install, fall back to global ~/.claude install
|
|
132
|
+
const _cwdScript = path.join(process.cwd(), '.claude', 'hooks-windows', 'play-tts.ps1');
|
|
133
|
+
const _homeScript = path.join(os.homedir(), '.claude', 'hooks-windows', 'play-tts.ps1');
|
|
134
|
+
const ttsScript = fs.existsSync(_cwdScript) ? _cwdScript : _homeScript;
|
|
135
|
+
_pickerTtsProc = spawn('powershell', ['-NoProfile', '-ExecutionPolicy', 'Bypass', '-File', ttsScript, phrase], {
|
|
136
|
+
stdio: 'ignore',
|
|
137
|
+
env: _env,
|
|
138
|
+
});
|
|
139
|
+
} else {
|
|
140
|
+
const ttsScript = path.join(process.cwd(), '.claude', 'hooks', 'play-tts.sh');
|
|
141
|
+
_pickerTtsProc = spawn('bash', [ttsScript, phrase], {
|
|
142
|
+
stdio: 'ignore',
|
|
143
|
+
detached: true,
|
|
144
|
+
env: _env,
|
|
145
|
+
});
|
|
146
|
+
}
|
|
127
147
|
_playingItemIdx = list.selected;
|
|
128
148
|
_setItemPlaying(_playingItemIdx, true);
|
|
129
149
|
screen.render();
|
|
@@ -135,6 +155,14 @@ export function openPersonalityPicker(screen, currentPersonality, onSelect, onCl
|
|
|
135
155
|
}
|
|
136
156
|
_pickerTtsProc = null;
|
|
137
157
|
});
|
|
158
|
+
_pickerTtsProc.on('error', () => {
|
|
159
|
+
_pickerTtsProc = null;
|
|
160
|
+
if (_playingItemIdx >= 0) {
|
|
161
|
+
_setItemPlaying(_playingItemIdx, false);
|
|
162
|
+
_playingItemIdx = -1;
|
|
163
|
+
screen.render();
|
|
164
|
+
}
|
|
165
|
+
});
|
|
138
166
|
_pickerTtsProc.unref();
|
|
139
167
|
}
|
|
140
168
|
|
|
@@ -75,12 +75,15 @@ export function openReverbPicker(screen, currentPreset, onSelect, onClose, opts
|
|
|
75
75
|
if (!selected) return;
|
|
76
76
|
|
|
77
77
|
if (applyToEffectsManager) {
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
78
|
+
const _isWin = process.platform === 'win32' && !process.env.WSL_DISTRO_NAME;
|
|
79
|
+
if (!_isWin) {
|
|
80
|
+
const effectsScript = path.join(process.cwd(), '.claude', 'hooks', 'effects-manager.sh');
|
|
81
|
+
spawnSync('bash', [effectsScript, 'set-reverb', selected.value, 'default'], {
|
|
82
|
+
stdio: 'ignore',
|
|
83
|
+
timeout: 5000,
|
|
84
|
+
env: { ...process.env },
|
|
85
|
+
});
|
|
86
|
+
}
|
|
84
87
|
}
|
|
85
88
|
|
|
86
89
|
// Call onSelect before destroying to avoid stale-state re-renders
|
|
@@ -199,7 +199,12 @@ export function openTrackPicker(screen, currentTrack, currentVolume, onSelect, o
|
|
|
199
199
|
|
|
200
200
|
function _killPreview() {
|
|
201
201
|
if (_previewProc) {
|
|
202
|
-
|
|
202
|
+
const _isWin = process.platform === 'win32' && !process.env.WSL_DISTRO_NAME;
|
|
203
|
+
if (_isWin) {
|
|
204
|
+
try { _previewProc.kill(); } catch {}
|
|
205
|
+
} else {
|
|
206
|
+
try { process.kill(-_previewProc.pid, 'SIGTERM'); } catch {}
|
|
207
|
+
}
|
|
203
208
|
_previewProc = null;
|
|
204
209
|
}
|
|
205
210
|
_previewTrackId = null;
|
package/src/i18n/de.js
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
languageSelectTitle: "🌐 Select Language / Seleccionar Idioma / Choisir la langue / Sprache wählen / Selecionar Idioma / 言語を選択 / भाषा चुनें / 选择语言 / 언어 선택",
|
|
3
|
+
languageApplied: "Sprache angewendet",
|
|
4
|
+
welcomeTitle: "Willkommen bei AgentVibes!",
|
|
5
|
+
installDetails: "Installationsdetails",
|
|
6
|
+
installLocation: "Installationsort",
|
|
7
|
+
packageVersion: "Paketversion",
|
|
8
|
+
readyToConfigure: "Bereit zum Konfigurieren von AgentVibes?",
|
|
9
|
+
installationCancelled: "Installation abgebrochen.",
|
|
10
|
+
startInstall: "Installation starten",
|
|
11
|
+
installationCancelledMsg: "Die Installation wurde vom Benutzer abgebrochen.",
|
|
12
|
+
installedSuccess: "AgentVibes erfolgreich installiert!",
|
|
13
|
+
installComplete: "Installation abgeschlossen",
|
|
14
|
+
installationFailed: "Installation fehlgeschlagen",
|
|
15
|
+
installing: "AgentVibes wird installiert...",
|
|
16
|
+
providerLabel: "Anbieter",
|
|
17
|
+
voiceLabel: "Stimme",
|
|
18
|
+
locationLabel: "Ort",
|
|
19
|
+
versionLabel: "Version",
|
|
20
|
+
configurationSetup: "Konfiguration",
|
|
21
|
+
configurationIntro: "Bitte konfigurieren Sie Ihre AgentVibes-Installation.",
|
|
22
|
+
navigationHint: "Verwenden Sie die Pfeiltasten, um zwischen Seiten zu navigieren.",
|
|
23
|
+
nonInteractiveDetected: "Nicht-interaktiver Modus erkannt",
|
|
24
|
+
installError: "Installation fehlgeschlagen",
|
|
25
|
+
continuePrompt: "Weiter",
|
|
26
|
+
cancelPrompt: "Abbrechen",
|
|
27
|
+
setupWizard: "Einrichtungsassistent",
|
|
28
|
+
setupWizardSubtitle: "TTS für KI-Assistenten mit Persönlichkeit.",
|
|
29
|
+
dependencyCheck: "Abhängigkeitsprüfung",
|
|
30
|
+
checkingDependencies: "Abhängigkeiten werden überprüft...",
|
|
31
|
+
depColumn: "Abhängigkeit",
|
|
32
|
+
statusColumn: "Status",
|
|
33
|
+
installed: "Installiert",
|
|
34
|
+
notFound: "Nicht gefunden",
|
|
35
|
+
ffmpegMissing: "Nicht gefunden (für Hintergrundmusik benötigt)",
|
|
36
|
+
ttsDetected: "TTS-Anbieter erkannt",
|
|
37
|
+
noTtsFound: "Kein TTS-Anbieter gefunden. Installieren Sie zuerst Piper oder Soprano.",
|
|
38
|
+
providerSelection: "Anbieterauswahl",
|
|
39
|
+
availableProviders: "Verfügbare TTS-Anbieter:",
|
|
40
|
+
providerAndVoice: "Anbieter & Stimme",
|
|
41
|
+
voiceChangeHint: "(nach der Installation in Einstellungen änderbar)",
|
|
42
|
+
introText: "Einleitungstext",
|
|
43
|
+
introTextLabel: "Einleitungstext",
|
|
44
|
+
none: "keiner",
|
|
45
|
+
example: "Beispiel",
|
|
46
|
+
screen1Hint: "Bildschirm 1/5: Willkommen | [←/→] Navigieren | [Enter] Beginnen | [Esc] Beenden",
|
|
47
|
+
screen2Hint: "Bildschirm 2/5: Abhängigkeiten | [←] Zurück | [Enter] Weiter",
|
|
48
|
+
screen3Hint: "Bildschirm 3/5: Anbieter | [←] Zurück | [↑↓] Wählen | [Enter/→] Bestätigen",
|
|
49
|
+
screen4Hint: "Bildschirm 4/5: Konfiguration | [Esc] Zurück | [E] Bearbeiten | [↓] Akzeptieren & Installieren",
|
|
50
|
+
screen5HintDone: "Bildschirm 5/5: Abgeschlossen | [Enter] OK — Fertig",
|
|
51
|
+
screen5HintWait: "Bildschirm 5/5: Installieren... | Bitte warten",
|
|
52
|
+
languageSettings: "Sprache",
|
|
53
|
+
languageSettingsSubtitle: "Oberflächensprache auswählen",
|
|
54
|
+
currentLanguage: "Aktuelle Sprache",
|
|
55
|
+
changeLanguage: "Sprache ändern",
|
|
56
|
+
beginBtn: "▶ Beginnen",
|
|
57
|
+
exitBtn: "✗ Beenden",
|
|
58
|
+
footerText: "[Enter] Weiter/Fertig [Esc] Zurück/Beenden [C] Konsole [S/V/M/A/R] Tab [Q] Beenden",
|
|
59
|
+
customizationTool: "Anpassungswerkzeug",
|
|
60
|
+
quitLabel: "[Q] Beenden",
|
|
61
|
+
tabInstall: "Installieren",
|
|
62
|
+
tabSettings: "Einstellungen",
|
|
63
|
+
tabVoices: "Stimmen",
|
|
64
|
+
tabMusic: "Musik",
|
|
65
|
+
tabBmad: "BMad",
|
|
66
|
+
tabReceiver: "Empfänger",
|
|
67
|
+
tabReadme: "Liesmich",
|
|
68
|
+
tabHelp: "Hilfe",
|
|
69
|
+
subTabVoice: " [V] Stimme ",
|
|
70
|
+
subTabEffects: " [E] Effekte ",
|
|
71
|
+
subTabPersonality: " [P] Persönlichkeit ",
|
|
72
|
+
subTabOutput: " [O] Ausgabe ",
|
|
73
|
+
subTabLanguage: " [L] Sprache ",
|
|
74
|
+
sectionProviderVoice: " 🎤 Anbieter & Stimme ",
|
|
75
|
+
sectionAudioEffects: " ⚡ Audioeffekte ",
|
|
76
|
+
sectionBgMusic: " 🎸 Hintergrundmusik ",
|
|
77
|
+
sectionStyle: " 🎭 Stil ",
|
|
78
|
+
sectionIntroText: " ✍️ Einleitungstext ",
|
|
79
|
+
sectionAudioDest: " 📡 Audioziel ",
|
|
80
|
+
sectionConfigStorage: " 💾 Konfigurationsspeicher ",
|
|
81
|
+
sectionLanguage: " 🌐 Sprache ",
|
|
82
|
+
providerRowLabel: "Anbieter:",
|
|
83
|
+
currentVoiceLabel: "Aktuelle Stimme:",
|
|
84
|
+
reverbLabel: "Hall:",
|
|
85
|
+
trackLabel: "Titel:",
|
|
86
|
+
volumeLabel: "Lautstärke:",
|
|
87
|
+
verbosityLabel: "Ausführlichkeit:",
|
|
88
|
+
personalityLabel: "Persönlichkeit:",
|
|
89
|
+
introTextRowLabel: "Einleitungstext:",
|
|
90
|
+
destinationLabel: "Ziel:",
|
|
91
|
+
sshAliasLabel: "SSH-Alias:",
|
|
92
|
+
globalLabel: "Global:",
|
|
93
|
+
localLabel: "Lokal:",
|
|
94
|
+
languageLabel: "Sprache:",
|
|
95
|
+
switchBtn: "Wechseln",
|
|
96
|
+
changeBtn: "Ändern",
|
|
97
|
+
playBtn: "▶ Abspielen",
|
|
98
|
+
stopBtn: "■ Stop",
|
|
99
|
+
previewBtn: "▶ Vorschau",
|
|
100
|
+
fullPreviewBtn: "▶ Vollvorschau",
|
|
101
|
+
saveGloballyBtn: "Global Speichern",
|
|
102
|
+
saveLocallyBtn: "Lokal Speichern",
|
|
103
|
+
cancelChangesBtn: "Änderungen Verwerfen",
|
|
104
|
+
editBtn: "Bearbeiten",
|
|
105
|
+
clearBtn: "Löschen",
|
|
106
|
+
applyLanguageBtn: "✓ Sprache Anwenden",
|
|
107
|
+
enabledBtn: "Aktiviert",
|
|
108
|
+
disabledBtn: "Deaktiviert",
|
|
109
|
+
okSaveBtn: "OK — Speichern",
|
|
110
|
+
enableBtn: "Aktivieren",
|
|
111
|
+
streamingTextBtn: "Nur Text Streaming ✓",
|
|
112
|
+
streamingPulseBtn: "Pulse-Audio Streaming",
|
|
113
|
+
continueArrowBtn: "Weiter →",
|
|
114
|
+
acceptInstallBtn: "✓ Akzeptieren & Installieren",
|
|
115
|
+
okDoneBtn: "✓ OK — Fertig",
|
|
116
|
+
editInstallBtn: "Bearbeiten",
|
|
117
|
+
musicDisabledMsg: "Musik deaktiviert. Jetzt aktivieren?",
|
|
118
|
+
settingsFooter: "[↑↓] Gruppe [←→] Geschwister/Sub-Tab [Enter/Space] Aktivieren [Tab] Tab Wechseln [Q] Beenden",
|
|
119
|
+
voicesFooter: "[↑↓/jk] Navigieren [Space] Vorschau [Enter] Auswählen [F] Favorit [/] Suchen",
|
|
120
|
+
musicFooter: "[↑↓/jk] Navigieren [Space] Vorschau [Enter] Auswählen [M] Umschalten [*] Favorit [F] Filtern [Q] Beenden",
|
|
121
|
+
helpFooter: "[↑↓/jk] Scrollen [/] Suchen [PgUp/PgDn] Seite [S/V/M/A/R] Tab [Q] Beenden",
|
|
122
|
+
readmeFooter: "[↑↓/jk] Scrollen [PgUp/PgDn] Seite [/] Suchen [S/V/M/A/R] Tab [Q] Beenden",
|
|
123
|
+
receiverFooter: "SSH-Empfänger [Q] Beenden",
|
|
124
|
+
searchLabel: "Suchen:",
|
|
125
|
+
settingsSavedMsg: "Einstellungen Gespeichert",
|
|
126
|
+
changesRevertedMsg: "Änderungen zurückgesetzt",
|
|
127
|
+
musicBuiltInHeader: "── Eingebaute Tracks ",
|
|
128
|
+
musicStatusHeader: "── Musikstatus ",
|
|
129
|
+
musicStatusLabel: "Musik:",
|
|
130
|
+
musicActiveTrack: "Aktiver Track:",
|
|
131
|
+
musicFilterLabel: "Filter:",
|
|
132
|
+
musicFilterAll: "Alle",
|
|
133
|
+
musicFilterFavs: "Favoriten",
|
|
134
|
+
musicToggleBtn: "[Musik umschalten]",
|
|
135
|
+
musicAddCustomBtn: "[Eigenen Track hinzufügen]",
|
|
136
|
+
voicesHeader: "── Stimmen ",
|
|
137
|
+
voicesColName: "Name",
|
|
138
|
+
voicesColGender: "Geschlecht",
|
|
139
|
+
voicesColProvider: "Anbieter",
|
|
140
|
+
voicesInfoHeader: "── Stimmeninfo ",
|
|
141
|
+
voicesSwitchBtn: "[Stimme wechseln]",
|
|
142
|
+
voicesFavoriteBtn: "[★ Favorit]",
|
|
143
|
+
voicesDownloadBtn: "[Stimme herunterladen]",
|
|
144
|
+
voicesRowHintInstalled: "[Space] Vorschau [Enter] Auswählen [*] Favorit",
|
|
145
|
+
voicesRowHintUninstalled: "[Enter] Herunterladen und installieren",
|
|
146
|
+
musicRowHint: "[Space] Abspielen [Enter] Auswählen [*] Favorit",
|
|
147
|
+
musicHintText: "[Space] Vorschau [Enter] Track festlegen [*] Favorit",
|
|
148
|
+
genderFemale: "Weiblich",
|
|
149
|
+
genderMale: "Männlich",
|
|
150
|
+
voiceInfoVoice: "Stimme:",
|
|
151
|
+
voiceInfoGender: "Geschlecht:",
|
|
152
|
+
voiceInfoLanguage: "Sprache:",
|
|
153
|
+
voiceInfoQuality: "Qualität:",
|
|
154
|
+
voiceInfoProvider: "Anbieter:",
|
|
155
|
+
voiceInfoId: "ID:",
|
|
156
|
+
voiceInfoSpeaker: "Sprecher:",
|
|
157
|
+
voiceInfoModel: "Modell:",
|
|
158
|
+
voiceInfoSpeakerId: "Sprecher-ID:",
|
|
159
|
+
voiceInfoDownload: "⬇ [Enter] drücken zum Herunterladen und Installieren",
|
|
160
|
+
voicePlaying: "(wird abgespielt)",
|
|
161
|
+
bmadTitle: "🧙 BMAD-Agenten",
|
|
162
|
+
bmadWhatIsHeader: "Was ist BMAD?",
|
|
163
|
+
bmadDesc: "Die BMad-Methode (Build More Architect Dreams) ist ein KI-gesteuertes\nEntwicklungs-Framework-Modul, das Ihnen hilft, Software von der Ideenfindung\nbis zur agentischen Implementierung zu entwickeln. Es bietet spezialisierte\nKI-Agenten, geführte Workflows und intelligente Planung.\n\nWenn Sie mit KI-Codierassistenten wie Claude, Cursor oder GitHub Copilot\nvertraut sind, können Sie sofort loslegen.",
|
|
164
|
+
bmadInstallHeader: "BMAD in Ihrem Projekt installieren:",
|
|
165
|
+
bmadLearnMoreHeader: "Mehr erfahren:",
|
|
166
|
+
bmadInstalledNote: "Sobald BMAD installiert ist, zeigt dieser Tab alle Ihre Agenten an und\nermöglicht es Ihnen, Stimme, Prätext, Nachhall, Persönlichkeit und\nHintergrundmusik jedes Agenten unabhängig anzupassen.",
|
|
167
|
+
receiverWhatIsTitle: "Was ist SSH-Empfänger?",
|
|
168
|
+
receiverDesc: "Der SSH-Empfänger ermöglicht es Ihren Remote-Servern, über diese Maschine\nzu sprechen. Wenn ein KI-Assistent auf einem Remote-Server TTS-Audio\nabspielen muss, sendet er den Text per SSH an diese Maschine, die das\nAudio generiert und über Ihre Lautsprecher abspielt.\n\nEntfernter KI ──[SSH]──► Diese Maschine ──[piper+sox+ffmpeg]──► Ihre Lautsprecher",
|
|
169
|
+
helpSectionGlobal: "Globale Tastenkürzel",
|
|
170
|
+
helpSectionNavigation: "Navigationstastenkürzel",
|
|
171
|
+
helpSectionColors: "Tab-Farbführer",
|
|
172
|
+
helpQuit: "Konsole beenden",
|
|
173
|
+
helpForceQuit: "Erzwungenes Beenden",
|
|
174
|
+
helpSwitchSettings: "Zum Tab Einstellungen wechseln",
|
|
175
|
+
helpSwitchVoices: "Zum Tab Stimmen wechseln",
|
|
176
|
+
helpSwitchMusic: "Zum Tab Musik wechseln",
|
|
177
|
+
helpSwitchReadme: "Zum Tab Readme wechseln",
|
|
178
|
+
helpSwitchHelp: "Zum Tab Hilfe wechseln",
|
|
179
|
+
helpSwitchInstall: "Zum Tab Installieren wechseln",
|
|
180
|
+
helpCloseModal: "Modal schließen / zurück",
|
|
181
|
+
helpNavigateLists: "Listen navigieren",
|
|
182
|
+
helpSelectActivate: "Auswählen / aktivieren",
|
|
183
|
+
helpTogglePreview: "Umschalten / Vorschau",
|
|
184
|
+
helpNextButton: "Nächste Schaltfläche",
|
|
185
|
+
helpPrevButton: "Vorherige Schaltfläche",
|
|
186
|
+
helpOpenSearch: "Suche/Filter öffnen",
|
|
187
|
+
helpToggleFavFilter: "Favoritenfilter umschalten (Stimmen/Musik)",
|
|
188
|
+
helpToggleFav: "Favorit umschalten (Musik-Tab)",
|
|
189
|
+
helpToggleMusic: "Musik ein-/ausschalten (Musik-Tab)",
|
|
190
|
+
helpColorSettings: "Einstellungen-Tab-Fußzeile",
|
|
191
|
+
helpColorVoices: "Stimmen-Tab-Fußzeile",
|
|
192
|
+
helpColorMusic: "Musik-Tab-Fußzeile",
|
|
193
|
+
helpColorReadme: "Readme-Tab-Fußzeile",
|
|
194
|
+
helpColorHelp: "Hilfe-Tab-Fußzeile",
|
|
195
|
+
helpColorInstall: "Installieren-Tab-Fußzeile",
|
|
196
|
+
helpSearchLabel: "Suche:",
|
|
197
|
+
readmeScrollMore: "↓ Scrollen für mehr Inhalt ↓",
|
|
198
|
+
readmeNotFound: "*(Keine README.md im aktuellen Verzeichnis gefunden)*",
|
|
199
|
+
bmadFooterNobmad: "[Tab] Tab wechseln [Q] Beenden",
|
|
200
|
+
bmadFooterBmad: "[↑↓/jk] Navigieren [Space] Vorschau [Enter] Konfigurieren [A] Auto-zuweisen [B] Stapel [X] Zurücksetzen [Q] Beenden",
|
|
201
|
+
};
|
package/src/i18n/en.js
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
languageSelectTitle: "🌐 Select Language / Seleccionar Idioma / Choisir la langue / Sprache wählen / Selecionar Idioma / 言語を選択 / भाषा चुनें / 选择语言 / 언어 선택",
|
|
3
|
+
languageApplied: "Language applied",
|
|
4
|
+
welcomeTitle: "Welcome to AgentVibes!",
|
|
5
|
+
installDetails: "Installation Details",
|
|
6
|
+
installLocation: "Install location",
|
|
7
|
+
packageVersion: "Package version",
|
|
8
|
+
readyToConfigure: "Ready to configure AgentVibes?",
|
|
9
|
+
installationCancelled: "Installation cancelled.",
|
|
10
|
+
startInstall: "Start Install",
|
|
11
|
+
installationCancelledMsg: "Installation was cancelled by the user.",
|
|
12
|
+
installedSuccess: "AgentVibes installed successfully!",
|
|
13
|
+
installComplete: "Installation Complete",
|
|
14
|
+
installationFailed: "Installation Failed",
|
|
15
|
+
installing: "Installing AgentVibes...",
|
|
16
|
+
providerLabel: "Provider",
|
|
17
|
+
voiceLabel: "Voice",
|
|
18
|
+
locationLabel: "Location",
|
|
19
|
+
versionLabel: "Version",
|
|
20
|
+
configurationSetup: "Configuration Setup",
|
|
21
|
+
configurationIntro: "Please configure your AgentVibes installation.",
|
|
22
|
+
navigationHint: "Use arrow keys to navigate between pages.",
|
|
23
|
+
nonInteractiveDetected: "Non-interactive mode detected",
|
|
24
|
+
installError: "Installation failed",
|
|
25
|
+
continuePrompt: "Continue",
|
|
26
|
+
cancelPrompt: "Cancel",
|
|
27
|
+
setupWizard: "Setup Wizard",
|
|
28
|
+
setupWizardSubtitle: "TTS for AI assistants with personality.",
|
|
29
|
+
dependencyCheck: "Dependency Check",
|
|
30
|
+
checkingDependencies: "Checking dependencies...",
|
|
31
|
+
depColumn: "Dependency",
|
|
32
|
+
statusColumn: "Status",
|
|
33
|
+
installed: "Installed",
|
|
34
|
+
notFound: "Not found",
|
|
35
|
+
ffmpegMissing: "Not found (needed for background music)",
|
|
36
|
+
ttsDetected: "TTS Providers Detected",
|
|
37
|
+
noTtsFound: "No TTS provider found. Install Piper or Soprano first.",
|
|
38
|
+
providerSelection: "Provider Selection",
|
|
39
|
+
availableProviders: "Available TTS providers:",
|
|
40
|
+
providerAndVoice: "Provider & Voice",
|
|
41
|
+
voiceChangeHint: "(after installation, you can change in Settings)",
|
|
42
|
+
introText: "Intro Text",
|
|
43
|
+
introTextLabel: "Intro text",
|
|
44
|
+
none: "none",
|
|
45
|
+
example: "Example",
|
|
46
|
+
screen1Hint: "Screen 1/5: Welcome | [←/→] Navigate | [Enter] Begin | [Esc] Exit",
|
|
47
|
+
screen2Hint: "Screen 2/5: Dependencies | [←] Back | [Enter] Next",
|
|
48
|
+
screen3Hint: "Screen 3/5: Provider | [←] Back | [↑↓] Choose | [Enter/→] Confirm & Continue",
|
|
49
|
+
screen4Hint: "Screen 4/5: Config | [Esc] Back | [E] Edit | [↓] Accept & Install",
|
|
50
|
+
screen5HintDone: "Screen 5/5: Complete | [Enter] OK — Done",
|
|
51
|
+
screen5HintWait: "Screen 5/5: Installing... | Please wait",
|
|
52
|
+
languageSettings: "Language",
|
|
53
|
+
languageSettingsSubtitle: "Select interface language",
|
|
54
|
+
currentLanguage: "Current language",
|
|
55
|
+
changeLanguage: "Change language",
|
|
56
|
+
beginBtn: "▶ Begin",
|
|
57
|
+
exitBtn: "✗ Exit",
|
|
58
|
+
footerText: "[Enter] Continue/Finish [Esc] Back/Exit [C] Open Console [S/V/M/A/R] Tab [Q] Quit",
|
|
59
|
+
customizationTool: "Customization Tool",
|
|
60
|
+
quitLabel: "[Q] Quit",
|
|
61
|
+
tabInstall: "Install",
|
|
62
|
+
tabSettings: "Settings",
|
|
63
|
+
tabVoices: "Voices",
|
|
64
|
+
tabMusic: "Music",
|
|
65
|
+
tabBmad: "BMad",
|
|
66
|
+
tabReceiver: "Receiver",
|
|
67
|
+
tabReadme: "Readme",
|
|
68
|
+
tabHelp: "Help",
|
|
69
|
+
subTabVoice: " [V] Voice ",
|
|
70
|
+
subTabEffects: " [E] Effects ",
|
|
71
|
+
subTabPersonality: " [P] Personality ",
|
|
72
|
+
subTabOutput: " [O] Output ",
|
|
73
|
+
subTabLanguage: " [L] Language ",
|
|
74
|
+
sectionProviderVoice: " 🎤 Provider & Voice ",
|
|
75
|
+
sectionAudioEffects: " ⚡ Audio Effects ",
|
|
76
|
+
sectionBgMusic: " 🎸 Background Music ",
|
|
77
|
+
sectionStyle: " 🎭 Style ",
|
|
78
|
+
sectionIntroText: " ✍️ Intro Text ",
|
|
79
|
+
sectionAudioDest: " 📡 Audio Destination ",
|
|
80
|
+
sectionConfigStorage: " 💾 Config Storage ",
|
|
81
|
+
sectionLanguage: " 🌐 Language ",
|
|
82
|
+
providerRowLabel: "Provider:",
|
|
83
|
+
currentVoiceLabel: "Current Voice:",
|
|
84
|
+
reverbLabel: "Reverb:",
|
|
85
|
+
trackLabel: "Track:",
|
|
86
|
+
volumeLabel: "Volume:",
|
|
87
|
+
verbosityLabel: "Verbosity:",
|
|
88
|
+
personalityLabel: "Personality:",
|
|
89
|
+
introTextRowLabel: "Intro Text:",
|
|
90
|
+
destinationLabel: "Destination:",
|
|
91
|
+
sshAliasLabel: "SSH Alias:",
|
|
92
|
+
globalLabel: "Global:",
|
|
93
|
+
localLabel: "Local:",
|
|
94
|
+
languageLabel: "Language:",
|
|
95
|
+
switchBtn: "Switch",
|
|
96
|
+
changeBtn: "Change",
|
|
97
|
+
playBtn: "▶ Play",
|
|
98
|
+
stopBtn: "■ Stop",
|
|
99
|
+
previewBtn: "▶ Preview",
|
|
100
|
+
fullPreviewBtn: "▶ Full Preview",
|
|
101
|
+
saveGloballyBtn: "Save Globally",
|
|
102
|
+
saveLocallyBtn: "Save Locally",
|
|
103
|
+
cancelChangesBtn: "Cancel Changes",
|
|
104
|
+
editBtn: "Edit",
|
|
105
|
+
clearBtn: "Clear",
|
|
106
|
+
applyLanguageBtn: "✓ Apply Language",
|
|
107
|
+
enabledBtn: "Enabled",
|
|
108
|
+
disabledBtn: "Disabled",
|
|
109
|
+
okSaveBtn: "OK — Save",
|
|
110
|
+
enableBtn: "Enable",
|
|
111
|
+
streamingTextBtn: "Streaming Text Only ✓",
|
|
112
|
+
streamingPulseBtn: "Streaming Pulse Audio",
|
|
113
|
+
continueArrowBtn: "Continue →",
|
|
114
|
+
acceptInstallBtn: "✓ Accept & Install",
|
|
115
|
+
okDoneBtn: "✓ OK — Done",
|
|
116
|
+
editInstallBtn: "Edit",
|
|
117
|
+
musicDisabledMsg: "Music is disabled. Enable it now?",
|
|
118
|
+
settingsFooter: "[↑↓] Group [←→] Sibling/Sub-tab [Enter/Space] Activate [Tab] Switch Tab [Q] Quit",
|
|
119
|
+
voicesFooter: "[↑↓/jk] Navigate [Space] Preview [Enter] Select/Install [F] Favorite [/] Search",
|
|
120
|
+
musicFooter: "[↑↓/jk] Navigate [Space] Preview [Enter] Select [M] Toggle [*] Favorite [F] Filter [Q] Quit",
|
|
121
|
+
helpFooter: "[↑↓/jk] Scroll [/] Search [PgUp/PgDn] Page [S/V/M/A/R] Tab [Q] Quit",
|
|
122
|
+
readmeFooter: "[↑↓/jk] Scroll [PgUp/PgDn] Page [/] Search [S/V/M/A/R] Tab [Q] Quit",
|
|
123
|
+
receiverFooter: "SSH Receiver [Q] Quit",
|
|
124
|
+
searchLabel: "Search:",
|
|
125
|
+
settingsSavedMsg: "Settings Saved",
|
|
126
|
+
changesRevertedMsg: "Changes reverted",
|
|
127
|
+
musicBuiltInHeader: "── Built-in Tracks ",
|
|
128
|
+
musicStatusHeader: "── Music Status ",
|
|
129
|
+
musicStatusLabel: "Music:",
|
|
130
|
+
musicActiveTrack: "Active Track:",
|
|
131
|
+
musicFilterLabel: "Filter:",
|
|
132
|
+
musicFilterAll: "All",
|
|
133
|
+
musicFilterFavs: "Favorites",
|
|
134
|
+
musicToggleBtn: "[Toggle Music]",
|
|
135
|
+
musicAddCustomBtn: "[Add Custom Track]",
|
|
136
|
+
voicesHeader: "── Voices ",
|
|
137
|
+
voicesColName: "Name",
|
|
138
|
+
voicesColGender: "Gender",
|
|
139
|
+
voicesColProvider: "Provider",
|
|
140
|
+
voicesInfoHeader: "── Voice Info ",
|
|
141
|
+
voicesSwitchBtn: "[Switch Voice]",
|
|
142
|
+
voicesFavoriteBtn: "[★ Favorite]",
|
|
143
|
+
voicesDownloadBtn: "[Download Voice]",
|
|
144
|
+
voicesRowHintInstalled: "[Space] Preview [Enter] Select [*] Favorite",
|
|
145
|
+
voicesRowHintUninstalled: "[Enter] Download & Install",
|
|
146
|
+
musicRowHint: "[Space] Play [Enter] Select [*] Favorite",
|
|
147
|
+
musicHintText: "[Space] preview [Enter] set as background track [*] favorite",
|
|
148
|
+
genderFemale: "Female",
|
|
149
|
+
genderMale: "Male",
|
|
150
|
+
voiceInfoVoice: "Voice:",
|
|
151
|
+
voiceInfoGender: "Gender:",
|
|
152
|
+
voiceInfoLanguage: "Language:",
|
|
153
|
+
voiceInfoQuality: "Quality:",
|
|
154
|
+
voiceInfoProvider: "Provider:",
|
|
155
|
+
voiceInfoId: "ID:",
|
|
156
|
+
voiceInfoSpeaker: "Speaker:",
|
|
157
|
+
voiceInfoModel: "Model:",
|
|
158
|
+
voiceInfoSpeakerId: "Speaker ID:",
|
|
159
|
+
voiceInfoDownload: "⬇ Press [Enter] to download and install",
|
|
160
|
+
voicePlaying: "(playing)",
|
|
161
|
+
bmadTitle: "🧙 BMAD Agents",
|
|
162
|
+
bmadWhatIsHeader: "What is BMAD?",
|
|
163
|
+
bmadDesc: "The BMad Method (Build More Architect Dreams) is an AI-driven development\nframework module within the BMad Method Ecosystem that helps you build\nsoftware through the whole process from ideation and planning all the way\nthrough agentic implementation. It provides specialized AI agents, guided\nworkflows, and intelligent planning that adapts to your project's\ncomplexity, whether you're fixing a bug or building an enterprise platform.\n\nIf you're comfortable working with AI coding assistants like Claude,\nCursor, or GitHub Copilot, you're ready to get started.",
|
|
164
|
+
bmadInstallHeader: "Install BMAD in your project:",
|
|
165
|
+
bmadLearnMoreHeader: "Learn more:",
|
|
166
|
+
bmadInstalledNote: "Once BMAD is installed, this tab will show all your agents and let you\ncustomize each agent's voice, pretext, reverb, personality, and background\nmusic independently.",
|
|
167
|
+
receiverWhatIsTitle: "What is SSH Receiver?",
|
|
168
|
+
receiverDesc: "SSH Receiver lets your remote servers speak through this machine.\nWhen an AI assistant on a remote server (VPS, cloud, dev box) needs\nto play TTS audio, it sends the text over SSH to this machine, which\ngenerates and plays the audio through your speakers locally.\n\nRemote AI ──[SSH]──► This Machine ──[piper+sox+ffmpeg]──► Your Speakers",
|
|
169
|
+
helpSectionGlobal: "Global Shortcuts",
|
|
170
|
+
helpSectionNavigation: "Navigation Shortcuts",
|
|
171
|
+
helpSectionColors: "Tab Color Guide",
|
|
172
|
+
helpQuit: "Quit the console",
|
|
173
|
+
helpForceQuit: "Force quit",
|
|
174
|
+
helpSwitchSettings: "Switch to Settings tab",
|
|
175
|
+
helpSwitchVoices: "Switch to Voices tab",
|
|
176
|
+
helpSwitchMusic: "Switch to Music tab",
|
|
177
|
+
helpSwitchReadme: "Switch to Readme tab",
|
|
178
|
+
helpSwitchHelp: "Switch to Help tab",
|
|
179
|
+
helpSwitchInstall: "Switch to Install tab",
|
|
180
|
+
helpCloseModal: "Close modal / go back",
|
|
181
|
+
helpNavigateLists: "Navigate lists",
|
|
182
|
+
helpSelectActivate: "Select / activate",
|
|
183
|
+
helpTogglePreview: "Toggle / preview",
|
|
184
|
+
helpNextButton: "Next button",
|
|
185
|
+
helpPrevButton: "Previous button",
|
|
186
|
+
helpOpenSearch: "Open search/filter",
|
|
187
|
+
helpToggleFavFilter: "Toggle favorites filter (Voices/Music)",
|
|
188
|
+
helpToggleFav: "Toggle favorite (Music tab)",
|
|
189
|
+
helpToggleMusic: "Toggle music on/off (Music tab)",
|
|
190
|
+
helpColorSettings: "Settings tab footer",
|
|
191
|
+
helpColorVoices: "Voices tab footer",
|
|
192
|
+
helpColorMusic: "Music tab footer",
|
|
193
|
+
helpColorReadme: "Readme tab footer",
|
|
194
|
+
helpColorHelp: "Help tab footer",
|
|
195
|
+
helpColorInstall: "Install tab footer",
|
|
196
|
+
helpSearchLabel: "Search:",
|
|
197
|
+
readmeScrollMore: "↓ Scroll for more content ↓",
|
|
198
|
+
readmeNotFound: "*(No README.md found in current directory)*",
|
|
199
|
+
bmadFooterNobmad: "[Tab] Switch Tab [Q] Quit",
|
|
200
|
+
bmadFooterBmad: "[↑↓/jk] Navigate [Space] Preview [Enter] Configure [A] Auto-assign [B] Bulk [X] Reset [Q] Quit",
|
|
201
|
+
};
|