agentvibes 4.4.0 → 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 -3732
- 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 +92 -25
- package/src/services/language-service.js +47 -0
- package/src/services/provider-service.js +14 -3
- 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
package/src/i18n/ja.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: "言語が適用されました",
|
|
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: "未検出(BGMに必要)",
|
|
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] OK — 終了",
|
|
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: " 🎸 BGM ",
|
|
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
|
+
editInstallBtn: "編集",
|
|
117
|
+
musicDisabledMsg: "音楽が無効です。今すぐ有効にしますか?",
|
|
118
|
+
settingsFooter: "[↑↓] グループ [←→] 兄弟/サブタブ [Enter/Space] 実行 [Tab] タブ切替 [Q] 終了",
|
|
119
|
+
voicesFooter: "[↑↓/jk] 移動 [Space] プレビュー [Enter] 選択 [F] お気に入り [/] 検索",
|
|
120
|
+
musicFooter: "[↑↓/jk] 移動 [Space] プレビュー [Enter] 選択 [M] 切替 [*] お気に入り [F] フィルター [Q] 終了",
|
|
121
|
+
helpFooter: "[↑↓/jk] スクロール [/] 検索 [PgUp/PgDn] ページ [S/V/M/A/R] タブ [Q] 終了",
|
|
122
|
+
readmeFooter: "[↑↓/jk] スクロール [PgUp/PgDn] ページ [/] 検索 [S/V/M/A/R] タブ [Q] 終了",
|
|
123
|
+
receiverFooter: "SSHレシーバー [Q] 終了",
|
|
124
|
+
searchLabel: "検索:",
|
|
125
|
+
settingsSavedMsg: "設定を保存しました",
|
|
126
|
+
changesRevertedMsg: "変更を元に戻しました",
|
|
127
|
+
musicBuiltInHeader: "── 内蔵トラック ",
|
|
128
|
+
musicStatusHeader: "── 音楽ステータス ",
|
|
129
|
+
musicStatusLabel: "音楽:",
|
|
130
|
+
musicActiveTrack: "アクティブトラック:",
|
|
131
|
+
musicFilterLabel: "フィルター:",
|
|
132
|
+
musicFilterAll: "すべて",
|
|
133
|
+
musicFilterFavs: "お気に入り",
|
|
134
|
+
musicToggleBtn: "[音楽切り替え]",
|
|
135
|
+
musicAddCustomBtn: "[カスタムトラック追加]",
|
|
136
|
+
voicesHeader: "── 音声 ",
|
|
137
|
+
voicesColName: "名前",
|
|
138
|
+
voicesColGender: "性別",
|
|
139
|
+
voicesColProvider: "プロバイダー",
|
|
140
|
+
voicesInfoHeader: "── 音声情報 ",
|
|
141
|
+
voicesSwitchBtn: "[音声切り替え]",
|
|
142
|
+
voicesFavoriteBtn: "[★ お気に入り]",
|
|
143
|
+
voicesDownloadBtn: "[音声ダウンロード]",
|
|
144
|
+
voicesRowHintInstalled: "[Space] プレビュー [Enter] 選択 [*] お気に入り",
|
|
145
|
+
voicesRowHintUninstalled: "[Enter] ダウンロードしてインストール",
|
|
146
|
+
musicRowHint: "[Space] 再生 [Enter] 選択 [*] お気に入り",
|
|
147
|
+
musicHintText: "[Space] プレビュー [Enter] トラックを設定 [*] お気に入り",
|
|
148
|
+
genderFemale: "女性",
|
|
149
|
+
genderMale: "男性",
|
|
150
|
+
voiceInfoVoice: "音声:",
|
|
151
|
+
voiceInfoGender: "性別:",
|
|
152
|
+
voiceInfoLanguage: "言語:",
|
|
153
|
+
voiceInfoQuality: "品質:",
|
|
154
|
+
voiceInfoProvider: "プロバイダー:",
|
|
155
|
+
voiceInfoId: "ID:",
|
|
156
|
+
voiceInfoSpeaker: "スピーカー:",
|
|
157
|
+
voiceInfoModel: "モデル:",
|
|
158
|
+
voiceInfoSpeakerId: "スピーカーID:",
|
|
159
|
+
voiceInfoDownload: "⬇ [Enter]を押してダウンロードしてインストール",
|
|
160
|
+
voicePlaying: "(再生中)",
|
|
161
|
+
bmadTitle: "🧙 BMADエージェント",
|
|
162
|
+
bmadWhatIsHeader: "BMADとは?",
|
|
163
|
+
bmadDesc: "BMadメソッド(Build More Architect Dreams)は、AIを活用した開発\nフレームワークモジュールで、アイデア出しから計画、エージェント実装まで\nソフトウェア開発の全工程をサポートします。専門のAIエージェント、ガイド付き\nワークフロー、インテリジェントな計画機能を提供します。\n\nClaude、Cursor、GitHub CopilotなどのAIコーディングアシスタントに\n慣れているなら、すぐに始められます。",
|
|
164
|
+
bmadInstallHeader: "プロジェクトにBMADをインストール:",
|
|
165
|
+
bmadLearnMoreHeader: "詳細:",
|
|
166
|
+
bmadInstalledNote: "BMADがインストールされると、このタブにすべてのエージェントが表示され、\n各エージェントの音声、前文、リバーブ、個性、バックグラウンドミュージックを\n個別にカスタマイズできます。",
|
|
167
|
+
receiverWhatIsTitle: "SSHレシーバーとは?",
|
|
168
|
+
receiverDesc: "SSHレシーバーを使うと、リモートサーバーがこのマシンを通じて話せるように\nなります。リモートサーバー上のAIアシスタントがTTSオーディオを再生する\n必要がある場合、SSHでこのマシンにテキストを送信し、ローカルのスピーカーから\nオーディオを生成・再生します。\n\nリモートAI ──[SSH]──► このマシン ──[piper+sox+ffmpeg]──► スピーカー",
|
|
169
|
+
helpSectionGlobal: "グローバルショートカット",
|
|
170
|
+
helpSectionNavigation: "ナビゲーションショートカット",
|
|
171
|
+
helpSectionColors: "タブカラーガイド",
|
|
172
|
+
helpQuit: "コンソールを終了",
|
|
173
|
+
helpForceQuit: "強制終了",
|
|
174
|
+
helpSwitchSettings: "設定タブに切替",
|
|
175
|
+
helpSwitchVoices: "音声タブに切替",
|
|
176
|
+
helpSwitchMusic: "音楽タブに切替",
|
|
177
|
+
helpSwitchReadme: "Readmeタブに切替",
|
|
178
|
+
helpSwitchHelp: "ヘルプタブに切替",
|
|
179
|
+
helpSwitchInstall: "インストールタブに切替",
|
|
180
|
+
helpCloseModal: "モーダルを閉じる / 戻る",
|
|
181
|
+
helpNavigateLists: "リストを移動",
|
|
182
|
+
helpSelectActivate: "選択 / 確定",
|
|
183
|
+
helpTogglePreview: "切替 / プレビュー",
|
|
184
|
+
helpNextButton: "次のボタン",
|
|
185
|
+
helpPrevButton: "前のボタン",
|
|
186
|
+
helpOpenSearch: "検索/フィルターを開く",
|
|
187
|
+
helpToggleFavFilter: "お気に入りフィルターを切替(音声/音楽)",
|
|
188
|
+
helpToggleFav: "お気に入りを切替(音楽タブ)",
|
|
189
|
+
helpToggleMusic: "音楽をオン/オフ(音楽タブ)",
|
|
190
|
+
helpColorSettings: "設定タブフッター",
|
|
191
|
+
helpColorVoices: "音声タブフッター",
|
|
192
|
+
helpColorMusic: "音楽タブフッター",
|
|
193
|
+
helpColorReadme: "ReadmeタブFooter",
|
|
194
|
+
helpColorHelp: "ヘルプタブフッター",
|
|
195
|
+
helpColorInstall: "インストールタブフッター",
|
|
196
|
+
helpSearchLabel: "検索:",
|
|
197
|
+
readmeScrollMore: "↓ スクロールして続きを見る ↓",
|
|
198
|
+
readmeNotFound: "*(現在のディレクトリにREADME.mdが見つかりません)*",
|
|
199
|
+
bmadFooterNobmad: "[Tab] タブ切替 [Q] 終了",
|
|
200
|
+
bmadFooterBmad: "[↑↓/jk] 移動 [Space] プレビュー [Enter] 設定 [A] 自動割当 [B] 一括 [X] リセット [Q] 終了",
|
|
201
|
+
};
|
package/src/i18n/ko.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: "언어가 적용되었습니다",
|
|
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
|
+
editInstallBtn: "편집",
|
|
117
|
+
musicDisabledMsg: "음악이 비활성화되어 있습니다. 지금 활성화하겠습니까?",
|
|
118
|
+
settingsFooter: "[↑↓] 그룹 [←→] 형제/서브탭 [Enter/Space] 활성화 [Tab] 탭 전환 [Q] 나가기",
|
|
119
|
+
voicesFooter: "[↑↓/jk] 탐색 [Space] 미리보기 [Enter] 선택 [F] 즐겨찾기 [/] 검색",
|
|
120
|
+
musicFooter: "[↑↓/jk] 탐색 [Space] 미리보기 [Enter] 선택 [M] 전환 [*] 즐겨찾기 [F] 필터 [Q] 나가기",
|
|
121
|
+
helpFooter: "[↑↓/jk] 스크롤 [/] 검색 [PgUp/PgDn] 페이지 [S/V/M/A/R] 탭 [Q] 나가기",
|
|
122
|
+
readmeFooter: "[↑↓/jk] 스크롤 [PgUp/PgDn] 페이지 [/] 검색 [S/V/M/A/R] 탭 [Q] 나가기",
|
|
123
|
+
receiverFooter: "SSH 수신기 [Q] 나가기",
|
|
124
|
+
searchLabel: "검색:",
|
|
125
|
+
settingsSavedMsg: "설정이 저장되었습니다",
|
|
126
|
+
changesRevertedMsg: "변경 사항이 복원되었습니다",
|
|
127
|
+
musicBuiltInHeader: "── 기본 트랙 ",
|
|
128
|
+
musicStatusHeader: "── 음악 상태 ",
|
|
129
|
+
musicStatusLabel: "음악:",
|
|
130
|
+
musicActiveTrack: "활성 트랙:",
|
|
131
|
+
musicFilterLabel: "필터:",
|
|
132
|
+
musicFilterAll: "전체",
|
|
133
|
+
musicFilterFavs: "즐겨찾기",
|
|
134
|
+
musicToggleBtn: "[음악 전환]",
|
|
135
|
+
musicAddCustomBtn: "[커스텀 트랙 추가]",
|
|
136
|
+
voicesHeader: "── 음성 ",
|
|
137
|
+
voicesColName: "이름",
|
|
138
|
+
voicesColGender: "성별",
|
|
139
|
+
voicesColProvider: "제공자",
|
|
140
|
+
voicesInfoHeader: "── 음성 정보 ",
|
|
141
|
+
voicesSwitchBtn: "[음성 전환]",
|
|
142
|
+
voicesFavoriteBtn: "[★ 즐겨찾기]",
|
|
143
|
+
voicesDownloadBtn: "[음성 다운로드]",
|
|
144
|
+
voicesRowHintInstalled: "[Space] 미리보기 [Enter] 선택 [*] 즐겨찾기",
|
|
145
|
+
voicesRowHintUninstalled: "[Enter] 다운로드 및 설치",
|
|
146
|
+
musicRowHint: "[Space] 재생 [Enter] 선택 [*] 즐겨찾기",
|
|
147
|
+
musicHintText: "[Space] 미리보기 [Enter] 트랙 설정 [*] 즐겨찾기",
|
|
148
|
+
genderFemale: "여성",
|
|
149
|
+
genderMale: "남성",
|
|
150
|
+
voiceInfoVoice: "음성:",
|
|
151
|
+
voiceInfoGender: "성별:",
|
|
152
|
+
voiceInfoLanguage: "언어:",
|
|
153
|
+
voiceInfoQuality: "품질:",
|
|
154
|
+
voiceInfoProvider: "제공자:",
|
|
155
|
+
voiceInfoId: "ID:",
|
|
156
|
+
voiceInfoSpeaker: "화자:",
|
|
157
|
+
voiceInfoModel: "모델:",
|
|
158
|
+
voiceInfoSpeakerId: "화자 ID:",
|
|
159
|
+
voiceInfoDownload: "⬇ [Enter] 눌러 다운로드 및 설치",
|
|
160
|
+
voicePlaying: "(재생 중)",
|
|
161
|
+
bmadTitle: "🧙 BMAD 에이전트",
|
|
162
|
+
bmadWhatIsHeader: "BMAD란?",
|
|
163
|
+
bmadDesc: "BMad 방법(Build More Architect Dreams)은 AI 기반 개발 프레임워크\n모듈로, 아이디어 구상부터 에이전틱 구현까지 전체 소프트웨어 개발\n과정을 지원합니다. 전문 AI 에이전트, 안내된 워크플로우 및 지능적인\n계획을 제공합니다.\n\nClaude, Cursor 또는 GitHub Copilot과 같은 AI 코딩 어시스턴트에 익숙하다면\n시작할 준비가 된 것입니다.",
|
|
164
|
+
bmadInstallHeader: "프로젝트에 BMAD 설치:",
|
|
165
|
+
bmadLearnMoreHeader: "자세히 알아보기:",
|
|
166
|
+
bmadInstalledNote: "BMAD가 설치되면 이 탭에 모든 에이전트가 표시되고 각 에이전트의\n음성, 전문, 리버브, 개성 및 배경 음악을 독립적으로 커스터마이즈할\n수 있습니다.",
|
|
167
|
+
receiverWhatIsTitle: "SSH 수신기란?",
|
|
168
|
+
receiverDesc: "SSH 수신기를 사용하면 원격 서버가 이 기기를 통해 말할 수 있습니다.\n원격 서버의 AI 어시스턴트가 TTS 오디오를 재생해야 할 때 SSH를 통해\n이 기기에 텍스트를 전송하면, 이 기기가 오디오를 생성하여 로컬\n스피커로 재생합니다.\n\n원격 AI ──[SSH]──► 이 기기 ──[piper+sox+ffmpeg]──► 스피커",
|
|
169
|
+
helpSectionGlobal: "전역 단축키",
|
|
170
|
+
helpSectionNavigation: "탐색 단축키",
|
|
171
|
+
helpSectionColors: "탭 색상 안내",
|
|
172
|
+
helpQuit: "콘솔 종료",
|
|
173
|
+
helpForceQuit: "강제 종료",
|
|
174
|
+
helpSwitchSettings: "설정 탭으로 전환",
|
|
175
|
+
helpSwitchVoices: "음성 탭으로 전환",
|
|
176
|
+
helpSwitchMusic: "음악 탭으로 전환",
|
|
177
|
+
helpSwitchReadme: "Readme 탭으로 전환",
|
|
178
|
+
helpSwitchHelp: "도움말 탭으로 전환",
|
|
179
|
+
helpSwitchInstall: "설치 탭으로 전환",
|
|
180
|
+
helpCloseModal: "모달 닫기 / 뒤로가기",
|
|
181
|
+
helpNavigateLists: "목록 탐색",
|
|
182
|
+
helpSelectActivate: "선택 / 활성화",
|
|
183
|
+
helpTogglePreview: "토글 / 미리보기",
|
|
184
|
+
helpNextButton: "다음 버튼",
|
|
185
|
+
helpPrevButton: "이전 버튼",
|
|
186
|
+
helpOpenSearch: "검색/필터 열기",
|
|
187
|
+
helpToggleFavFilter: "즐겨찾기 필터 전환 (음성/음악)",
|
|
188
|
+
helpToggleFav: "즐겨찾기 전환 (음악 탭)",
|
|
189
|
+
helpToggleMusic: "음악 켜기/끄기 (음악 탭)",
|
|
190
|
+
helpColorSettings: "설정 탭 하단",
|
|
191
|
+
helpColorVoices: "음성 탭 하단",
|
|
192
|
+
helpColorMusic: "음악 탭 하단",
|
|
193
|
+
helpColorReadme: "Readme 탭 하단",
|
|
194
|
+
helpColorHelp: "도움말 탭 하단",
|
|
195
|
+
helpColorInstall: "설치 탭 하단",
|
|
196
|
+
helpSearchLabel: "검색:",
|
|
197
|
+
readmeScrollMore: "↓ 아래로 스크롤하여 더 보기 ↓",
|
|
198
|
+
readmeNotFound: "*(현재 디렉토리에서 README.md를 찾을 수 없습니다)*",
|
|
199
|
+
bmadFooterNobmad: "[Tab] 탭 전환 [Q] 나가기",
|
|
200
|
+
bmadFooterBmad: "[↑↓/jk] 탐색 [Space] 미리보기 [Enter] 설정 [A] 자동배정 [B] 일괄 [X] 초기화 [Q] 나가기",
|
|
201
|
+
};
|
package/src/i18n/pt.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: "Idioma aplicado",
|
|
4
|
+
welcomeTitle: "Bem-vindo ao AgentVibes!",
|
|
5
|
+
installDetails: "Detalhes da instalação",
|
|
6
|
+
installLocation: "Local de instalação",
|
|
7
|
+
packageVersion: "Versão do pacote",
|
|
8
|
+
readyToConfigure: "Pronto para configurar o AgentVibes?",
|
|
9
|
+
installationCancelled: "Instalação cancelada.",
|
|
10
|
+
startInstall: "Iniciar instalação",
|
|
11
|
+
installationCancelledMsg: "A instalação foi cancelada pelo usuário.",
|
|
12
|
+
installedSuccess: "AgentVibes instalado com sucesso!",
|
|
13
|
+
installComplete: "Instalação concluída",
|
|
14
|
+
installationFailed: "Falha na instalação",
|
|
15
|
+
installing: "Instalando AgentVibes...",
|
|
16
|
+
providerLabel: "Provedor",
|
|
17
|
+
voiceLabel: "Voz",
|
|
18
|
+
locationLabel: "Local",
|
|
19
|
+
versionLabel: "Versão",
|
|
20
|
+
configurationSetup: "Configuração",
|
|
21
|
+
configurationIntro: "Por favor, configure sua instalação do AgentVibes.",
|
|
22
|
+
navigationHint: "Use as teclas de seta para navegar entre as páginas.",
|
|
23
|
+
nonInteractiveDetected: "Modo não interativo detectado",
|
|
24
|
+
installError: "Falha na instalação",
|
|
25
|
+
continuePrompt: "Continuar",
|
|
26
|
+
cancelPrompt: "Cancelar",
|
|
27
|
+
setupWizard: "Assistente de Configuração",
|
|
28
|
+
setupWizardSubtitle: "TTS para assistentes de IA com personalidade.",
|
|
29
|
+
dependencyCheck: "Verificação de Dependências",
|
|
30
|
+
checkingDependencies: "Verificando dependências...",
|
|
31
|
+
depColumn: "Dependência",
|
|
32
|
+
statusColumn: "Status",
|
|
33
|
+
installed: "Instalado",
|
|
34
|
+
notFound: "Não encontrado",
|
|
35
|
+
ffmpegMissing: "Não encontrado (necessário para música de fundo)",
|
|
36
|
+
ttsDetected: "Provedores TTS Detectados",
|
|
37
|
+
noTtsFound: "Nenhum provedor TTS encontrado. Instale o Piper ou Soprano primeiro.",
|
|
38
|
+
providerSelection: "Seleção de Provedor",
|
|
39
|
+
availableProviders: "Provedores TTS disponíveis:",
|
|
40
|
+
providerAndVoice: "Provedor e Voz",
|
|
41
|
+
voiceChangeHint: "(após instalação, pode alterar em Configurações)",
|
|
42
|
+
introText: "Texto de Introdução",
|
|
43
|
+
introTextLabel: "Texto intro",
|
|
44
|
+
none: "nenhum",
|
|
45
|
+
example: "Exemplo",
|
|
46
|
+
screen1Hint: "Tela 1/5: Boas-vindas | [←/→] Navegar | [Enter] Começar | [Esc] Sair",
|
|
47
|
+
screen2Hint: "Tela 2/5: Dependências | [←] Voltar | [Enter] Próximo",
|
|
48
|
+
screen3Hint: "Tela 3/5: Provedor | [←] Voltar | [↑↓] Escolher | [Enter/→] Confirmar",
|
|
49
|
+
screen4Hint: "Tela 4/5: Configurar | [Esc] Voltar | [E] Editar | [↓] Aceitar e Instalar",
|
|
50
|
+
screen5HintDone: "Tela 5/5: Completo | [Enter] OK — Concluído",
|
|
51
|
+
screen5HintWait: "Tela 5/5: Instalando... | Aguarde",
|
|
52
|
+
languageSettings: "Idioma",
|
|
53
|
+
languageSettingsSubtitle: "Selecionar idioma da interface",
|
|
54
|
+
currentLanguage: "Idioma atual",
|
|
55
|
+
changeLanguage: "Alterar idioma",
|
|
56
|
+
beginBtn: "▶ Começar",
|
|
57
|
+
exitBtn: "✗ Sair",
|
|
58
|
+
footerText: "[Enter] Continuar/Concluir [Esc] Voltar/Sair [C] Console [S/V/M/A/R] Tab [Q] Sair",
|
|
59
|
+
customizationTool: "Ferramenta de Personalização",
|
|
60
|
+
quitLabel: "[Q] Sair",
|
|
61
|
+
tabInstall: "Instalar",
|
|
62
|
+
tabSettings: "Configurações",
|
|
63
|
+
tabVoices: "Vozes",
|
|
64
|
+
tabMusic: "Música",
|
|
65
|
+
tabBmad: "BMad",
|
|
66
|
+
tabReceiver: "Receptor",
|
|
67
|
+
tabReadme: "Leiame",
|
|
68
|
+
tabHelp: "Ajuda",
|
|
69
|
+
subTabVoice: " [V] Voz ",
|
|
70
|
+
subTabEffects: " [E] Efeitos ",
|
|
71
|
+
subTabPersonality: " [P] Personalidade ",
|
|
72
|
+
subTabOutput: " [O] Saída ",
|
|
73
|
+
subTabLanguage: " [L] Idioma ",
|
|
74
|
+
sectionProviderVoice: " 🎤 Provedor e Voz ",
|
|
75
|
+
sectionAudioEffects: " ⚡ Efeitos de Áudio ",
|
|
76
|
+
sectionBgMusic: " 🎸 Música de Fundo ",
|
|
77
|
+
sectionStyle: " 🎭 Estilo ",
|
|
78
|
+
sectionIntroText: " ✍️ Texto de Intro ",
|
|
79
|
+
sectionAudioDest: " 📡 Destino de Áudio ",
|
|
80
|
+
sectionConfigStorage: " 💾 Armazenamento de Config ",
|
|
81
|
+
sectionLanguage: " 🌐 Idioma ",
|
|
82
|
+
providerRowLabel: "Provedor:",
|
|
83
|
+
currentVoiceLabel: "Voz Atual:",
|
|
84
|
+
reverbLabel: "Reverb:",
|
|
85
|
+
trackLabel: "Faixa:",
|
|
86
|
+
volumeLabel: "Volume:",
|
|
87
|
+
verbosityLabel: "Verbosidade:",
|
|
88
|
+
personalityLabel: "Personalidade:",
|
|
89
|
+
introTextRowLabel: "Texto Intro:",
|
|
90
|
+
destinationLabel: "Destino:",
|
|
91
|
+
sshAliasLabel: "Alias SSH:",
|
|
92
|
+
globalLabel: "Global:",
|
|
93
|
+
localLabel: "Local:",
|
|
94
|
+
languageLabel: "Idioma:",
|
|
95
|
+
switchBtn: "Trocar",
|
|
96
|
+
changeBtn: "Alterar",
|
|
97
|
+
playBtn: "▶ Reproduzir",
|
|
98
|
+
stopBtn: "■ Parar",
|
|
99
|
+
previewBtn: "▶ Visualizar",
|
|
100
|
+
fullPreviewBtn: "▶ Visualização Completa",
|
|
101
|
+
saveGloballyBtn: "Salvar Global",
|
|
102
|
+
saveLocallyBtn: "Salvar Local",
|
|
103
|
+
cancelChangesBtn: "Cancelar Alterações",
|
|
104
|
+
editBtn: "Editar",
|
|
105
|
+
clearBtn: "Limpar",
|
|
106
|
+
applyLanguageBtn: "✓ Aplicar Idioma",
|
|
107
|
+
enabledBtn: "Ativado",
|
|
108
|
+
disabledBtn: "Desativado",
|
|
109
|
+
okSaveBtn: "OK — Salvar",
|
|
110
|
+
enableBtn: "Ativar",
|
|
111
|
+
streamingTextBtn: "Apenas Texto Streaming ✓",
|
|
112
|
+
streamingPulseBtn: "Streaming Áudio Pulse",
|
|
113
|
+
continueArrowBtn: "Continuar →",
|
|
114
|
+
acceptInstallBtn: "✓ Aceitar e Instalar",
|
|
115
|
+
okDoneBtn: "✓ OK — Concluído",
|
|
116
|
+
editInstallBtn: "Editar",
|
|
117
|
+
musicDisabledMsg: "Música desativada. Ativar agora?",
|
|
118
|
+
settingsFooter: "[↑↓] Grupo [←→] Irmão/Sub-tab [Enter/Space] Ativar [Tab] Trocar Tab [Q] Sair",
|
|
119
|
+
voicesFooter: "[↑↓/jk] Navegar [Space] Visualizar [Enter] Selecionar [F] Favorito [/] Buscar",
|
|
120
|
+
musicFooter: "[↑↓/jk] Navegar [Space] Visualizar [Enter] Selecionar [M] Alternar [*] Favorito [F] Filtrar [Q] Sair",
|
|
121
|
+
helpFooter: "[↑↓/jk] Rolar [/] Buscar [PgUp/PgDn] Página [S/V/M/A/R] Tab [Q] Sair",
|
|
122
|
+
readmeFooter: "[↑↓/jk] Rolar [PgUp/PgDn] Página [/] Buscar [S/V/M/A/R] Tab [Q] Sair",
|
|
123
|
+
receiverFooter: "Receptor SSH [Q] Sair",
|
|
124
|
+
searchLabel: "Buscar:",
|
|
125
|
+
settingsSavedMsg: "Configurações Salvas",
|
|
126
|
+
changesRevertedMsg: "Alterações revertidas",
|
|
127
|
+
musicBuiltInHeader: "── Faixas Integradas ",
|
|
128
|
+
musicStatusHeader: "── Status da Música ",
|
|
129
|
+
musicStatusLabel: "Música:",
|
|
130
|
+
musicActiveTrack: "Faixa Ativa:",
|
|
131
|
+
musicFilterLabel: "Filtro:",
|
|
132
|
+
musicFilterAll: "Todos",
|
|
133
|
+
musicFilterFavs: "Favoritos",
|
|
134
|
+
musicToggleBtn: "[Ativar/Desativar Música]",
|
|
135
|
+
musicAddCustomBtn: "[Adicionar Faixa]",
|
|
136
|
+
voicesHeader: "── Vozes ",
|
|
137
|
+
voicesColName: "Nome",
|
|
138
|
+
voicesColGender: "Gênero",
|
|
139
|
+
voicesColProvider: "Provedor",
|
|
140
|
+
voicesInfoHeader: "── Info da Voz ",
|
|
141
|
+
voicesSwitchBtn: "[Trocar Voz]",
|
|
142
|
+
voicesFavoriteBtn: "[★ Favorito]",
|
|
143
|
+
voicesDownloadBtn: "[Baixar Voz]",
|
|
144
|
+
voicesRowHintInstalled: "[Space] Visualizar [Enter] Selecionar [*] Favorito",
|
|
145
|
+
voicesRowHintUninstalled: "[Enter] Baixar e instalar",
|
|
146
|
+
musicRowHint: "[Space] Reproduzir [Enter] Selecionar [*] Favorito",
|
|
147
|
+
musicHintText: "[Space] visualizar [Enter] definir faixa [*] favorito",
|
|
148
|
+
genderFemale: "Feminino",
|
|
149
|
+
genderMale: "Masculino",
|
|
150
|
+
voiceInfoVoice: "Voz:",
|
|
151
|
+
voiceInfoGender: "Gênero:",
|
|
152
|
+
voiceInfoLanguage: "Idioma:",
|
|
153
|
+
voiceInfoQuality: "Qualidade:",
|
|
154
|
+
voiceInfoProvider: "Provedor:",
|
|
155
|
+
voiceInfoId: "ID:",
|
|
156
|
+
voiceInfoSpeaker: "Locutor:",
|
|
157
|
+
voiceInfoModel: "Modelo:",
|
|
158
|
+
voiceInfoSpeakerId: "ID do Locutor:",
|
|
159
|
+
voiceInfoDownload: "⬇ Pressionar [Enter] para baixar e instalar",
|
|
160
|
+
voicePlaying: "(reproduzindo)",
|
|
161
|
+
bmadTitle: "🧙 Agentes BMAD",
|
|
162
|
+
bmadWhatIsHeader: "O que é BMAD?",
|
|
163
|
+
bmadDesc: "O Método BMad (Build More Architect Dreams) é um módulo de framework\nde desenvolvimento orientado por IA que ajuda você a construir software\nde ponta a ponta, da ideação à implementação agêntica. Fornece agentes IA\nespecializados, fluxos de trabalho guiados e planejamento inteligente.\n\nSe você está confortável trabalhando com assistentes de codificação IA\ncomo Claude, Cursor ou GitHub Copilot, você está pronto para começar.",
|
|
164
|
+
bmadInstallHeader: "Instalar BMAD no seu projeto:",
|
|
165
|
+
bmadLearnMoreHeader: "Saiba mais:",
|
|
166
|
+
bmadInstalledNote: "Uma vez que o BMAD estiver instalado, esta aba mostrará todos os seus\nagentes e permitirá personalizar a voz, pretexto, reverb, personalidade\ne música de fundo de cada agente independentemente.",
|
|
167
|
+
receiverWhatIsTitle: "O que é o Receptor SSH?",
|
|
168
|
+
receiverDesc: "O Receptor SSH permite que seus servidores remotos falem através desta\nmáquina. Quando um assistente de IA em um servidor remoto precisa\nreproduzir áudio TTS, ele envia o texto via SSH para esta máquina, que\ngera e reproduz o áudio pelos seus alto-falantes localmente.\n\nIA Remota ──[SSH]──► Esta Máquina ──[piper+sox+ffmpeg]──► Seus Alto-falantes",
|
|
169
|
+
helpSectionGlobal: "Atalhos Globais",
|
|
170
|
+
helpSectionNavigation: "Atalhos de Navegação",
|
|
171
|
+
helpSectionColors: "Guia de Cores das Abas",
|
|
172
|
+
helpQuit: "Sair do console",
|
|
173
|
+
helpForceQuit: "Forçar saída",
|
|
174
|
+
helpSwitchSettings: "Ir para aba Configurações",
|
|
175
|
+
helpSwitchVoices: "Ir para aba Vozes",
|
|
176
|
+
helpSwitchMusic: "Ir para aba Música",
|
|
177
|
+
helpSwitchReadme: "Ir para aba Readme",
|
|
178
|
+
helpSwitchHelp: "Ir para aba Ajuda",
|
|
179
|
+
helpSwitchInstall: "Ir para aba Instalar",
|
|
180
|
+
helpCloseModal: "Fechar modal / voltar",
|
|
181
|
+
helpNavigateLists: "Navegar listas",
|
|
182
|
+
helpSelectActivate: "Selecionar / ativar",
|
|
183
|
+
helpTogglePreview: "Alternar / visualizar",
|
|
184
|
+
helpNextButton: "Próximo botão",
|
|
185
|
+
helpPrevButton: "Botão anterior",
|
|
186
|
+
helpOpenSearch: "Abrir busca/filtro",
|
|
187
|
+
helpToggleFavFilter: "Alternar filtro de favoritos (Vozes/Música)",
|
|
188
|
+
helpToggleFav: "Alternar favorito (aba Música)",
|
|
189
|
+
helpToggleMusic: "Ativar/desativar música (aba Música)",
|
|
190
|
+
helpColorSettings: "Rodapé da aba Configurações",
|
|
191
|
+
helpColorVoices: "Rodapé da aba Vozes",
|
|
192
|
+
helpColorMusic: "Rodapé da aba Música",
|
|
193
|
+
helpColorReadme: "Rodapé da aba Readme",
|
|
194
|
+
helpColorHelp: "Rodapé da aba Ajuda",
|
|
195
|
+
helpColorInstall: "Rodapé da aba Instalar",
|
|
196
|
+
helpSearchLabel: "Buscar:",
|
|
197
|
+
readmeScrollMore: "↓ Role para mais conteúdo ↓",
|
|
198
|
+
readmeNotFound: "*(Nenhum README.md encontrado no diretório atual)*",
|
|
199
|
+
bmadFooterNobmad: "[Tab] Mudar Aba [Q] Sair",
|
|
200
|
+
bmadFooterBmad: "[↑↓/jk] Navegar [Space] Visualizar [Enter] Configurar [A] Auto-atribuir [B] Lote [X] Redefinir [Q] Sair",
|
|
201
|
+
};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File: src/i18n/strings.js
|
|
3
|
+
*
|
|
4
|
+
* Internationalization strings for the AgentVibes installer TUI.
|
|
5
|
+
* Supports: en, es, fr, de, pt, ja, hi, zh-CN, ko
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* import { t, SUPPORTED_LANGUAGES, strings } from './i18n/strings.js';
|
|
9
|
+
* t('es', 'welcomeTitle') // => Spanish welcome title
|
|
10
|
+
* t('xx', 'welcomeTitle') // => falls back to English
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import en from './en.js';
|
|
14
|
+
import es from './es.js';
|
|
15
|
+
import fr from './fr.js';
|
|
16
|
+
import de from './de.js';
|
|
17
|
+
import pt from './pt.js';
|
|
18
|
+
import ja from './ja.js';
|
|
19
|
+
import hi from './hi.js';
|
|
20
|
+
import zhCN from './zh-CN.js';
|
|
21
|
+
import ko from './ko.js';
|
|
22
|
+
|
|
23
|
+
export const strings = { en, es, fr, de, pt, ja, hi, 'zh-CN': zhCN, ko };
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Translate a key for a given language, falling back to English.
|
|
27
|
+
* @param {string} lang - Language code (e.g. 'es', 'zh-CN')
|
|
28
|
+
* @param {string} key - String key to look up
|
|
29
|
+
* @returns {string} Translated string, or English fallback, or the key itself
|
|
30
|
+
*/
|
|
31
|
+
export function t(lang, key) {
|
|
32
|
+
const langStrings = strings[lang];
|
|
33
|
+
if (langStrings && langStrings[key] !== undefined) {
|
|
34
|
+
return langStrings[key];
|
|
35
|
+
}
|
|
36
|
+
// Fall back to English
|
|
37
|
+
return strings.en[key] !== undefined ? strings.en[key] : key;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Supported languages for the language chooser UI.
|
|
42
|
+
* Each entry has: value (language code), name (display label for inquirer)
|
|
43
|
+
*/
|
|
44
|
+
export const SUPPORTED_LANGUAGES = [
|
|
45
|
+
{ value: 'en', name: '🇺🇸 English' },
|
|
46
|
+
{ value: 'es', name: '🇪🇸 Español (Spanish)' },
|
|
47
|
+
{ value: 'fr', name: '🇫🇷 Français (French)' },
|
|
48
|
+
{ value: 'de', name: '🇩🇪 Deutsch (German)' },
|
|
49
|
+
{ value: 'pt', name: '🇧🇷 Português (Portuguese)' },
|
|
50
|
+
{ value: 'ja', name: '🇯🇵 日本語 (Japanese)' },
|
|
51
|
+
{ value: 'hi', name: '🇮🇳 हिन्दी (Hindi)' },
|
|
52
|
+
{ value: 'zh-CN', name: '🇨🇳 中文 (Chinese Simplified)' },
|
|
53
|
+
{ value: 'ko', name: '🇰🇷 한국어 (Korean)' },
|
|
54
|
+
];
|