@nac3/forge-cli 1.0.55 → 1.0.57
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/dist/chat/flow_bpmn.d.ts +54 -0
- package/dist/chat/flow_bpmn.d.ts.map +1 -0
- package/dist/chat/flow_bpmn.js +112 -0
- package/dist/chat/flow_bpmn.js.map +1 -0
- package/dist/chat/panel.d.ts.map +1 -1
- package/dist/chat/panel.js +524 -383
- package/dist/chat/panel.js.map +1 -1
- package/dist/chat/server.d.ts.map +1 -1
- package/dist/chat/server.js +16 -1
- package/dist/chat/server.js.map +1 -1
- package/dist/chat/tools/pizarron.d.ts.map +1 -1
- package/dist/chat/tools/pizarron.js +13 -2
- package/dist/chat/tools/pizarron.js.map +1 -1
- package/dist/docs/doctrine/pizarron.md +12 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/docs/doctrine/pizarron.md +12 -0
- package/package.json +115 -115
- package/src/i18n/catalogs/ar.json +292 -1
- package/src/i18n/catalogs/de.json +292 -1
- package/src/i18n/catalogs/en.json +292 -1
- package/src/i18n/catalogs/es.json +292 -1
- package/src/i18n/catalogs/fr.json +292 -1
- package/src/i18n/catalogs/hi.json +292 -1
- package/src/i18n/catalogs/it.json +292 -1
- package/src/i18n/catalogs/ja.json +292 -1
- package/src/i18n/catalogs/pt.json +292 -1
- package/src/i18n/catalogs/zh.json +292 -1
|
@@ -230,5 +230,296 @@
|
|
|
230
230
|
"panel.files.empty": "(sem arquivos)",
|
|
231
231
|
"panel.files.truncated": "(lista truncada)",
|
|
232
232
|
"panel.files.opened": "Aberto",
|
|
233
|
-
"panel.files.openFailed": "Nao foi possivel abrir o arquivo."
|
|
233
|
+
"panel.files.openFailed": "Nao foi possivel abrir o arquivo.",
|
|
234
|
+
"startup.tab.tasks": "Tarefas",
|
|
235
|
+
"settings.bridge.title": "Coordenacao entre instancias",
|
|
236
|
+
"settings.bridge.accept": "Aceitar mensagens dirigidas de outras instancias (injetadas como chat)",
|
|
237
|
+
"settings.bridge.composePlaceholder": "Mensagem para as outras instancias...",
|
|
238
|
+
"settings.voice.title": "Voz",
|
|
239
|
+
"settings.voice.mode": "Modo",
|
|
240
|
+
"settings.voice.modeMic": "modo mic",
|
|
241
|
+
"settings.voice.stt": "STT",
|
|
242
|
+
"settings.voice.sttBrowser": "STT navegador",
|
|
243
|
+
"settings.voice.ttsEngine": "Motor TTS",
|
|
244
|
+
"settings.voice.ttsBrowser": "TTS navegador",
|
|
245
|
+
"settings.voice.ttsVoice": "Voz TTS (so Google)",
|
|
246
|
+
"settings.vad.title": "VAD (deteccao de silencio)",
|
|
247
|
+
"settings.vad.resetDefaults": "Restaurar padroes",
|
|
248
|
+
"settings.vad.engine": "Motor",
|
|
249
|
+
"settings.vad.engineAmplitude": "Amplitude (RMS)",
|
|
250
|
+
"settings.vad.engineBand": "Banda 80-400Hz",
|
|
251
|
+
"settings.vad.baselineWindow": "Janela de baseline",
|
|
252
|
+
"settings.vad.thresholdMult": "Mult. de limiar (baseline x N)",
|
|
253
|
+
"settings.vad.thresholdMin": "Limiar minimo",
|
|
254
|
+
"settings.vad.thresholdMax": "Limiar maximo",
|
|
255
|
+
"settings.vad.silence": "Silencio para fechar",
|
|
256
|
+
"settings.vad.minVoiced": "Voz minima (anti-blip)",
|
|
257
|
+
"settings.vad.tick": "Tick do VAD",
|
|
258
|
+
"settings.vad.bandLow": "Banda de voz: low (Hz)",
|
|
259
|
+
"settings.vad.bandHigh": "Banda de voz: high (Hz)",
|
|
260
|
+
"settings.vad.showOverlay": "Mostrar overlay ao vivo",
|
|
261
|
+
"settings.vad.logStats": "Registrar stats por sessao",
|
|
262
|
+
"settings.brain.anthropicMode": "Anthropic: modalidade",
|
|
263
|
+
"settings.brain.modePlan": "Plan (assinatura Claude)",
|
|
264
|
+
"settings.brain.modeConsole": "Console (API key)",
|
|
265
|
+
"settings.brain.modeNote": "Aplica-se ao reabrir o painel.",
|
|
266
|
+
"settings.brain.ecoEnabled": "Modo eco habilitado",
|
|
267
|
+
"settings.brain.ecoHint": "desligado = frontier sempre",
|
|
268
|
+
"settings.brain.modelEco": "Modelo eco",
|
|
269
|
+
"settings.brain.modelFrontier": "Modelo frontier",
|
|
270
|
+
"settings.brain.modelMultimodal": "Modelo multimodal",
|
|
271
|
+
"settings.brain.multimodalClearTitle": "Remover o brain multimodal dedicado (volta ao roteamento de visao automatico)",
|
|
272
|
+
"settings.brain.auto": "Auto",
|
|
273
|
+
"settings.brain.multimodalHint": "Brain dedicado para turnos com imagem. Auto = roteamento de visao automatico (o frontier se ve, ou aviso se nao).",
|
|
274
|
+
"settings.brain.geminiCache": "Cache explicito do Gemini (CachedContent)",
|
|
275
|
+
"settings.brain.geminiCacheHint": "Opt-in. Util em sessoes longas com Gemini Pro; em sessoes curtas o cache implicito gratuito do 2.5 ja basta.",
|
|
276
|
+
"settings.federation.title": "Federacao de brain",
|
|
277
|
+
"settings.federation.intro": "Use o brain de outro Forge (a key nunca sai da maquina dele) ou empreste o seu. Seu codigo roda local; so a inferencia viaja.",
|
|
278
|
+
"settings.federation.connectedTo": "Conectado a",
|
|
279
|
+
"settings.federation.disconnect": "Desconectar",
|
|
280
|
+
"settings.federation.connectMe": "Conectar-me",
|
|
281
|
+
"settings.federation.tokenPlaceholder": "Cole o codigo de federacao",
|
|
282
|
+
"settings.federation.connect": "Conectar",
|
|
283
|
+
"settings.federation.lendBrain": "Emprestar meu brain",
|
|
284
|
+
"settings.federation.generateCode": "Gerar codigo",
|
|
285
|
+
"settings.federation.host": "Hospedar (responder aos filhos)",
|
|
286
|
+
"settings.federation.fedBrain": "Brain de federacao",
|
|
287
|
+
"settings.federation.fedBrainNote": "O que responde aos filhos. API direta (DeepSeek por padrao). Claude Plan nao serve para hospedar; precisa de uma key com saldo.",
|
|
288
|
+
"settings.federation.codeOnce": "Codigo (uso unico)",
|
|
289
|
+
"settings.federation.copy": "Copiar",
|
|
290
|
+
"settings.keys.title": "API keys (BYOK)",
|
|
291
|
+
"settings.keys.configure": "Configurar",
|
|
292
|
+
"settings.keys.remove": "Remover",
|
|
293
|
+
"settings.keys.brainAnthropic": "Brain (Anthropic)",
|
|
294
|
+
"settings.keys.brainOpenai": "Brain (OpenAI)",
|
|
295
|
+
"settings.keys.brainGoogle": "Brain (Google IA)",
|
|
296
|
+
"settings.keys.brainDeepseek": "Brain (DeepSeek)",
|
|
297
|
+
"settings.keys.brainXai": "Brain (xAI / Grok)",
|
|
298
|
+
"settings.keys.brainMistral": "Brain (Mistral)",
|
|
299
|
+
"settings.keys.brainCohere": "Brain (Cohere)",
|
|
300
|
+
"settings.keys.sttGoogle": "STT Google",
|
|
301
|
+
"settings.keys.ttsGoogle": "TTS Google",
|
|
302
|
+
"settings.keys.ttsElevenlabs": "TTS ElevenLabs",
|
|
303
|
+
"settings.keys.sttWhisper": "STT Whisper",
|
|
304
|
+
"settings.lang.title": "Idioma",
|
|
305
|
+
"settings.lang.panelVoice": "Painel + voz",
|
|
306
|
+
"settings.lang.changeButton": "Mudar idioma",
|
|
307
|
+
"settings.vault.title": "Vault (encriptado)",
|
|
308
|
+
"settings.vault.slots": "Slots",
|
|
309
|
+
"settings.vault.open": "Abrir vault",
|
|
310
|
+
"settings.license.email": "Email",
|
|
311
|
+
"settings.license.validated": "Validado",
|
|
312
|
+
"settings.license.connectHint": "Conecte sua conta da Polar. Coloque o email com o qual pagou e sincronizamos seu plano automaticamente.",
|
|
313
|
+
"settings.license.emailPlaceholder": "email@exemplo.com",
|
|
314
|
+
"settings.license.connect": "Conectar",
|
|
315
|
+
"settings.license.sync": "Sincronizar com Polar",
|
|
316
|
+
"settings.license.buy": "Comprar / ativar plano",
|
|
317
|
+
"settings.budget.title": "Orcamento deste mes",
|
|
318
|
+
"settings.budget.renews": "Renova",
|
|
319
|
+
"settings.budget.tokensEco": "Tokens eco",
|
|
320
|
+
"settings.budget.tokensFrontier": "Tokens frontier",
|
|
321
|
+
"settings.budget.buyExtension": "Comprar extensao de tokens",
|
|
322
|
+
"settings.limits.title": "Limites (avancado)",
|
|
323
|
+
"settings.limits.editHint": "Edite qualquer valor + tab/blur salva.",
|
|
324
|
+
"settings.limits.reset": "Restaurar padroes",
|
|
325
|
+
"settings.bookmarks.title": "Marcadores do Reader",
|
|
326
|
+
"settings.graph.title": "Grafo de conhecimento do projeto",
|
|
327
|
+
"settings.pair.title": "Vincular telefone",
|
|
328
|
+
"settings.pair.hint": "Abra o Forge Mobile, toque em \"Vincular\" e escaneie este QR. Pronto.",
|
|
329
|
+
"settings.pair.generateQr": "Gerar QR",
|
|
330
|
+
"settings.pair.cantRead": "A camera nao le o QR? Copie este codigo e cole no Forge Mobile:",
|
|
331
|
+
"settings.audit.viewFull": "Ver completo",
|
|
332
|
+
"settings.audit.close": "Fechar",
|
|
333
|
+
"settings.audit.allKinds": "Todos os kinds",
|
|
334
|
+
"settings.audit.allModes": "Todos os modes",
|
|
335
|
+
"settings.audit.copyJson": "Copiar JSON",
|
|
336
|
+
"settings.audit.closeDetail": "Fechar detalhe",
|
|
337
|
+
"settings.about.title": "Sobre",
|
|
338
|
+
"settings.danger.title": "Zona de perigo",
|
|
339
|
+
"settings.danger.warning": "Quando ON, o Yujin executa TODA acao sem pedir confirmacao (inclui shell.exec, rm, git push --force, etc). Velocidade sobre seguranca. Tudo fica registrado no audit log.",
|
|
340
|
+
"settings.keyEditor.placeholder": "Cole aqui sua API key",
|
|
341
|
+
"settings.license.title": "Licença",
|
|
342
|
+
"settings.plan": "Plano",
|
|
343
|
+
"settings.audit.title": "Registro de auditoria",
|
|
344
|
+
"settings.legal.title": "Legal",
|
|
345
|
+
"panel.status.projectSwitchFail": "Nao foi possivel trocar de projeto.",
|
|
346
|
+
"panel.status.projectRemoveFail": "Nao foi possivel remover o projeto.",
|
|
347
|
+
"panel.status.projectAddFail": "Nao foi possivel adicionar o projeto.",
|
|
348
|
+
"panel.status.cancelFail": "Nao foi possivel cancelar: {reason}",
|
|
349
|
+
"panel.status.cancelNetError": "Erro de rede ao cancelar o shell.",
|
|
350
|
+
"panel.status.notEditable": "Este tipo de conteudo nao e editavel.",
|
|
351
|
+
"panel.status.savedAsPicker": "Salvo como: {name} (no caminho que voce escolheu na caixa de dialogo).",
|
|
352
|
+
"panel.status.saveAsFail": "Erro em Salvar como: {error} -- usando fallback.",
|
|
353
|
+
"panel.status.saveFail": "Erro ao salvar: {error}",
|
|
354
|
+
"panel.status.savedAs": "Salvo como: {path} ({bytes} bytes)",
|
|
355
|
+
"panel.status.netError": "Erro de rede: {error}",
|
|
356
|
+
"panel.status.savedTabOnly": "Alteracoes salvas na aba (nao no disco -- sem file_path).",
|
|
357
|
+
"panel.status.saved": "Salvo: {path} ({bytes} bytes)",
|
|
358
|
+
"panel.status.copied": "Copiado para a area de transferencia.",
|
|
359
|
+
"panel.status.copyFail": "Nao foi possivel copiar.",
|
|
360
|
+
"panel.status.modeAvailable": "Modos disponiveis: didactico, tecnico. Uso: /modo tecnico",
|
|
361
|
+
"panel.status.modeChangeFail": "Nao consegui mudar o modo: {error}",
|
|
362
|
+
"panel.status.modeChanged": "Modo alterado para {target}. O proximo turno ja usa este modo.",
|
|
363
|
+
"panel.status.genericError": "Erro: {error}",
|
|
364
|
+
"panel.status.brainTierAuto": "Brain tier voltou para auto (o router decide por verbo / fase).",
|
|
365
|
+
"panel.status.brainTierForced": "Brain tier forcado para \"{target}\" nesta sessao. /auto volta ao router.",
|
|
366
|
+
"panel.confirm.tabUnsaved": "A aba \"{title}\" tem alteracoes nao salvas. Fechar mesmo assim?",
|
|
367
|
+
"panel.confirm.tabsUnsaved": "Ha abas com alteracoes nao salvas. Fechar tudo mesmo assim?",
|
|
368
|
+
"panel.confirm.discardChanges": "Descartar as alteracoes nao salvas?",
|
|
369
|
+
"panel.confirm.removeSlot": "Remover o slot \"{slot}\"? Isto nao pode ser desfeito.",
|
|
370
|
+
"panel.confirm.removeKey": "Remover a key de {slot}?",
|
|
371
|
+
"panel.prompt.saveAs": "Salvar como (caminho relativo ao projeto):",
|
|
372
|
+
"panel.voice.sttFallback": "STT do navegador indisponivel; usando fallback do servidor.",
|
|
373
|
+
"panel.voice.noMicSupport": "Seu navegador nao suporta acesso ao microfone.",
|
|
374
|
+
"panel.voice.recordingCountdown": "Gravando... parada automatica em {n}s",
|
|
375
|
+
"panel.voice.autoStopped": "Gravacao parada automaticamente aos 55s (limite de 1 min do Google STT). Tente algo mais curto.",
|
|
376
|
+
"panel.voice.noAudio": "Nenhum audio capturado. Tente novamente.",
|
|
377
|
+
"panel.voice.audioTooLong": "Audio muito longo (>1 min). Limite sincrono do Google STT. Tente algo mais curto.",
|
|
378
|
+
"panel.voice.ttsUnavailable": "TTS do navegador indisponivel; volte para o Google nas configuracoes.",
|
|
379
|
+
"panel.voice.micClosedHalfDuplex": "Mic fechado enquanto Yujin fala (half-duplex).",
|
|
380
|
+
"panel.voice.micBlocked": "Microfone bloqueado. Permita o microfone para este app nas configuracoes do navegador e tente novamente.",
|
|
381
|
+
"panel.voice.noMicDevice": "Nenhum microfone detectado neste dispositivo.",
|
|
382
|
+
"panel.voice.micOpenFail": "Nao consegui abrir o microfone: {error}",
|
|
383
|
+
"panel.voice.micOpenListening": "Mic aberto, ouvindo...",
|
|
384
|
+
"panel.voice.listening": "Estou ouvindo...",
|
|
385
|
+
"panel.voice.listeningInterim": "Estou ouvindo... {text}",
|
|
386
|
+
"panel.voice.micBlockedBrowser": "Microfone bloqueado pelo navegador. Clique no icone de cadeado na barra de URL e permita o microfone, depois recarregue a pagina. Ou mude o STT para \"google\" / \"whisper\" nas configuracoes se tiver a API key.",
|
|
387
|
+
"panel.voice.noMicPhysical": "Nenhum microfone fisico detectado. Conecte um ou mude o STT para \"google\" / \"whisper\" nas configuracoes.",
|
|
388
|
+
"panel.voice.networkRequired": "Web Speech requer conexao com a internet (o Chrome usa o Google por tras). Tente sem conexao intermitente ou mude o STT para \"whisper\" se tiver a API key.",
|
|
389
|
+
"panel.voice.langNotSupported": "Seu navegador nao suporta este idioma para STT. Mude o idioma do painel para um suportado (en, es, pt) ou mude o STT para \"google\" / \"whisper\".",
|
|
390
|
+
"panel.voice.micError": "Erro de mic: {error}",
|
|
391
|
+
"panel.voice.noAudioToRecognizer": "Nenhum audio chegou ao reconhecedor: o ditado do navegador nao esta capturando neste app.",
|
|
392
|
+
"panel.voice.micOpenNoVoice": "Mic aberto mas nenhuma voz detectada. Aproxime-se do microfone e fale mais alto; se continuar, o ditado gratis nao funciona nesta PWA.",
|
|
393
|
+
"panel.voice.voiceNoText": "Voz detectada mas o navegador nao retornou texto (STT gratis indisponivel nesta PWA).",
|
|
394
|
+
"panel.voice.startingDictation": "Iniciando ditado...",
|
|
395
|
+
"panel.voice.couldNotStartMic": "Nao consegui iniciar o mic: {error}",
|
|
396
|
+
"panel.status.imageTooLarge": "Imagem muito grande (>6MB): {name}",
|
|
397
|
+
"panel.status.imageReady": "Imagem pronta para enviar: {name}",
|
|
398
|
+
"panel.status.imageReadFail": "Nao consegui ler a imagem: {error}",
|
|
399
|
+
"panel.tip.attachFile": "Anexar arquivo",
|
|
400
|
+
"panel.tip.refreshDiscovery": "Atualizar discovery",
|
|
401
|
+
"panel.tip.refreshNow": "Atualizar agora",
|
|
402
|
+
"panel.tip.filterByProject": "Filtrar por projeto",
|
|
403
|
+
"panel.tip.concurrentRuns": "Execucoes concorrentes: limites global / por projeto",
|
|
404
|
+
"panel.tip.mcpBridges": "MCP Bridges (F101)",
|
|
405
|
+
"panel.tip.activity": "Atividade de agentes + inspetor de bridge + chat por agente",
|
|
406
|
+
"panel.tip.settings": "Ajustes (modo voz, STT, TTS, chaves, idioma)",
|
|
407
|
+
"panel.tip.zoomOut": "Reduzir zoom (Ctrl -)",
|
|
408
|
+
"panel.tip.zoomReset": "Redefinir zoom (Ctrl 0)",
|
|
409
|
+
"panel.tip.zoomIn": "Aumentar zoom (Ctrl +)",
|
|
410
|
+
"panel.tip.maximize": "Maximizar / restaurar (tela cheia)",
|
|
411
|
+
"panel.tip.closeBoard": "Fechar todo o quadro",
|
|
412
|
+
"panel.tip.openInEditor": "Abrir no meu editor",
|
|
413
|
+
"panel.tip.open": "Abrir",
|
|
414
|
+
"panel.tip.saveAs": "Salvar como -- escolha um novo caminho (relativo ao projeto)",
|
|
415
|
+
"panel.tip.codeModeDetail": "Detalhado: arquivos, diffs e comandos ao vivo",
|
|
416
|
+
"panel.tip.codeModeZen": "Sumi-e: arte com texto ocasional",
|
|
417
|
+
"panel.tip.cancelShell": "Cancelar comando shell",
|
|
418
|
+
"panel.tip.closeTab": "Fechar aba",
|
|
419
|
+
"panel.tip.reopenNativeTabs": "Reabrir abas nativas fechadas",
|
|
420
|
+
"panel.tip.notTestedYet": "ainda nao testado",
|
|
421
|
+
"panel.aria.activity": "Atividade",
|
|
422
|
+
"panel.aria.settings": "Ajustes",
|
|
423
|
+
"panel.aria.zoomOut": "Reduzir zoom",
|
|
424
|
+
"panel.aria.zoomIn": "Aumentar zoom",
|
|
425
|
+
"panel.aria.maximize": "Maximizar",
|
|
426
|
+
"panel.aria.closeBoard": "fechar tudo",
|
|
427
|
+
"panel.aria.thinking": "pensando",
|
|
428
|
+
"panel.hint.boardEmpty": "O conteudo estruturado aparece aqui: codigo, tabelas, documentos. Peca ao Yujin para escrever ou editar algo.",
|
|
429
|
+
"panel.hint.planMode": "Voce esta no modo Plan (assinatura). O quadro e desenhado quando o brain roda em modo API: altere em <strong>Ajustes > Brain > Anthropic: modalidade > Console</strong> e reabra o painel.",
|
|
430
|
+
"panel.hint.bookmarksEmpty": "Sem bookmarks. Peca ao Yujin \"marque este ponto como ...\" ao ler um doc.",
|
|
431
|
+
"panel.voice.replyFailed": "Falha na resposta de voz: {err}",
|
|
432
|
+
"panel.voice.replyError": "Erro na resposta de voz: {err}",
|
|
433
|
+
"panel.status.languageSwitchFailed": "Falha ao trocar de idioma: {err}",
|
|
434
|
+
"panel.status.languageListFailed": "Nao foi possivel carregar a lista de idiomas",
|
|
435
|
+
"panel.legal.loading": "Carregando...",
|
|
436
|
+
"panel.legal.loadError": "Erro {status} ao carregar o documento.",
|
|
437
|
+
"panel.legal.networkError": "Erro de rede: {err}",
|
|
438
|
+
"panel.legal.defaultTitle": "Legal",
|
|
439
|
+
"panel.feedback.copied": "Copiado",
|
|
440
|
+
"panel.feedback.copyFailed": "Falha ao copiar",
|
|
441
|
+
"panel.feedback.clipboardUnavailable": "Area de transferencia indisponivel",
|
|
442
|
+
"panel.feedback.saving": "Salvando...",
|
|
443
|
+
"panel.feedback.saved": "Salvo.",
|
|
444
|
+
"panel.feedback.saveError": "erro ao salvar",
|
|
445
|
+
"panel.feedback.netError": "erro de rede",
|
|
446
|
+
"panel.feedback.netErrorSaving": "erro de rede ao salvar",
|
|
447
|
+
"panel.feedback.errorPrefix": "Erro: {detail}",
|
|
448
|
+
"panel.pair.generating": "Gerando...",
|
|
449
|
+
"panel.pair.generateQr": "Gerar QR",
|
|
450
|
+
"panel.pair.copy": "Copiar",
|
|
451
|
+
"panel.pair.expiry": "Expira em ~{mins} min. Gere novamente se caducar.",
|
|
452
|
+
"panel.pair.qrNetError": "Erro de rede ao gerar o QR.",
|
|
453
|
+
"panel.audit.copyJson": "Copiar JSON",
|
|
454
|
+
"panel.limits.resetApplied": "Reset para padroes aplicado",
|
|
455
|
+
"panel.nac3.effects": "Efeitos: {list}",
|
|
456
|
+
"panel.nac3.effectsUnknown": "desconhecidos",
|
|
457
|
+
"panel.nac3.cancel": "Cancelar",
|
|
458
|
+
"panel.nac3.reject": "Rejeitar",
|
|
459
|
+
"panel.nac3.approve": "Aprovar",
|
|
460
|
+
"panel.nac3.approveDestructive": "Aprovar (destrutivo)",
|
|
461
|
+
"panel.nac3.executing": "Executando...",
|
|
462
|
+
"panel.tts.providerBrowser": "TTS navegador",
|
|
463
|
+
"panel.tts.providerGoogle": "TTS Google",
|
|
464
|
+
"panel.tts.providerTitle": "Clique para alternar entre navegador (SpeechSynthesis nativo, vozes do SO) e Google Cloud TTS (server-side).",
|
|
465
|
+
"panel.stt.providerBrowser": "STT navegador",
|
|
466
|
+
"panel.stt.providerGoogle": "STT Google",
|
|
467
|
+
"panel.stt.providerWhisper": "STT Whisper",
|
|
468
|
+
"panel.stt.providerTitle": "Clique para alternar entre navegador (rapido + es-AR nativo + gratis), Google Cloud STT (server-side, BYOK) ou Whisper (server-side, BYOK).",
|
|
469
|
+
"panel.tts.voiceTitle": "Voz atual: {id} / {persona} ({gender}) -- {style}. Clique para ciclar. Studio = articula s claro; Neural2 = espanhol natural (aspira s finais).",
|
|
470
|
+
"panel.license.lendNeedsLicense": "ative sua licenca para emprestar seu brain",
|
|
471
|
+
"panel.license.emailInvalid": "Insira um email valido (com @).",
|
|
472
|
+
"panel.license.connecting": "Conectando...",
|
|
473
|
+
"panel.license.savingEmail": "Salvando email + sincronizando com Polar...",
|
|
474
|
+
"panel.license.syncFailedRetry": "Email salvo, mas o sync falhou: {err}{http}. Se voce acabou de pagar, espere 1-2 min e clique em \"Sincronizar com Polar\".",
|
|
475
|
+
"panel.license.planOk": "OK -- plano: {plan}.",
|
|
476
|
+
"panel.license.netError": "Erro de rede: {err}",
|
|
477
|
+
"panel.license.syncing": "Sincronizando...",
|
|
478
|
+
"panel.license.querying": "Consultando servidor...",
|
|
479
|
+
"panel.license.syncError": "Erro de sync: {err}{http}",
|
|
480
|
+
"panel.license.planUnchanged": "Plano sem alteracoes: {plan}",
|
|
481
|
+
"panel.license.planUpdated": "Plano atualizado: {before} -> {after}",
|
|
482
|
+
"panel.license.syncWithPolar": "Sincronizar com Polar",
|
|
483
|
+
"panel.license.errorWithCode": "erro: {code}",
|
|
484
|
+
"panel.keyEditor.keyTooShort": "Key muito curta (min 8 chars).",
|
|
485
|
+
"panel.bridge.coordUnavailable": "Coordenacao indisponivel.",
|
|
486
|
+
"panel.bridge.statusUnavailable": "indisponivel",
|
|
487
|
+
"panel.mcp.loadingBridges": "Carregando bridges...",
|
|
488
|
+
"panel.tools.loading": "Carregando tools...",
|
|
489
|
+
"panel.agentsChat.backPairs": "< Pares",
|
|
490
|
+
"panel.agentsChat.noMessages": "Sem mensagens neste par.",
|
|
491
|
+
"panel.agentsChat.noAgents": "sem agentes",
|
|
492
|
+
"panel.agentsChat.pickAgent": "Escolha um agente + digite texto antes de enviar.",
|
|
493
|
+
"panel.agentsChat.sending": "Enviando...",
|
|
494
|
+
"panel.agentsChat.errorGeneric": "Erro: {err}",
|
|
495
|
+
"panel.whatsNew.dismiss": "Fechar",
|
|
496
|
+
"panel.alert.noEditor": "Nenhum editor no PATH. Copie o caminho: {path}",
|
|
497
|
+
"panel.alert.pathRelative": "O caminho deve ser relativo ao projeto (sem \"/\" inicial nem \"..\").",
|
|
498
|
+
"panel.tip.saveTo": "Salvar em {path}",
|
|
499
|
+
"panel.tip.saveToMemory": "(memoria)",
|
|
500
|
+
"panel.button.saveAs": "Salvar como...",
|
|
501
|
+
"panel.aria.concurrentRuns": "Execucoes concorrentes",
|
|
502
|
+
"panel.activity.allProjects": "Todos os projetos",
|
|
503
|
+
"panel.activity.loadingFeed": "Carregando feed...",
|
|
504
|
+
"panel.feedback.savedShort": "salvo",
|
|
505
|
+
"panel.pair.qrFailed": "Nao foi possivel gerar o QR.",
|
|
506
|
+
"panel.brain.modePlan": "Plan (assinatura)",
|
|
507
|
+
"panel.brain.modeConsole": "Console (API key)",
|
|
508
|
+
"panel.brain.applying": "aplicando {mode}...",
|
|
509
|
+
"panel.brain.applied": "{mode} aplicado. O proximo turno ja usa este modo.",
|
|
510
|
+
"panel.brain.reopenHint": "Aplica-se ao reabrir o painel.",
|
|
511
|
+
"panel.brain.active": "{mode} ativo",
|
|
512
|
+
"panel.bridge.roleHost": "host",
|
|
513
|
+
"panel.bridge.roleClient": "cliente",
|
|
514
|
+
"panel.bridge.instanceOne": "instancia",
|
|
515
|
+
"panel.bridge.instanceMany": "instancias",
|
|
516
|
+
"panel.bridge.you": "voce",
|
|
517
|
+
"panel.tip.deleteTask": "Excluir tarefa",
|
|
518
|
+
"panel.tasks.cmdPlaceholder": "comando (ex: pnpm install)...",
|
|
519
|
+
"panel.readAloud.code": "Codigo",
|
|
520
|
+
"panel.readAloud.codeLang": "Codigo em {lang}",
|
|
521
|
+
"panel.readAloud.file": "Arquivo {file}",
|
|
522
|
+
"panel.readAloud.content": "Conteudo: {content}",
|
|
523
|
+
"panel.pizarron.tabOne": "aba",
|
|
524
|
+
"panel.pizarron.tabMany": "abas"
|
|
234
525
|
}
|
|
@@ -230,5 +230,296 @@
|
|
|
230
230
|
"panel.files.empty": "(无文件)",
|
|
231
231
|
"panel.files.truncated": "(列表已截断)",
|
|
232
232
|
"panel.files.opened": "已打开",
|
|
233
|
-
"panel.files.openFailed": "无法打开文件。"
|
|
233
|
+
"panel.files.openFailed": "无法打开文件。",
|
|
234
|
+
"startup.tab.tasks": "任务",
|
|
235
|
+
"settings.bridge.title": "实例间协调",
|
|
236
|
+
"settings.bridge.accept": "接受其他实例的定向消息(作为聊天注入)",
|
|
237
|
+
"settings.bridge.composePlaceholder": "发送给其他实例的消息...",
|
|
238
|
+
"settings.voice.title": "语音",
|
|
239
|
+
"settings.voice.mode": "模式",
|
|
240
|
+
"settings.voice.modeMic": "麦克风模式",
|
|
241
|
+
"settings.voice.stt": "STT",
|
|
242
|
+
"settings.voice.sttBrowser": "STT 浏览器",
|
|
243
|
+
"settings.voice.ttsEngine": "TTS 引擎",
|
|
244
|
+
"settings.voice.ttsBrowser": "TTS 浏览器",
|
|
245
|
+
"settings.voice.ttsVoice": "TTS 语音(仅 Google)",
|
|
246
|
+
"settings.vad.title": "VAD(静音检测)",
|
|
247
|
+
"settings.vad.resetDefaults": "恢复默认",
|
|
248
|
+
"settings.vad.engine": "引擎",
|
|
249
|
+
"settings.vad.engineAmplitude": "振幅(RMS)",
|
|
250
|
+
"settings.vad.engineBand": "频带 80-400Hz",
|
|
251
|
+
"settings.vad.baselineWindow": "基线窗口",
|
|
252
|
+
"settings.vad.thresholdMult": "阈值倍数(基线 x N)",
|
|
253
|
+
"settings.vad.thresholdMin": "最小阈值",
|
|
254
|
+
"settings.vad.thresholdMax": "最大阈值",
|
|
255
|
+
"settings.vad.silence": "关闭所需静音",
|
|
256
|
+
"settings.vad.minVoiced": "最小语音(防误触)",
|
|
257
|
+
"settings.vad.tick": "VAD 周期",
|
|
258
|
+
"settings.vad.bandLow": "语音频带:低 (Hz)",
|
|
259
|
+
"settings.vad.bandHigh": "语音频带:高 (Hz)",
|
|
260
|
+
"settings.vad.showOverlay": "显示实时叠加",
|
|
261
|
+
"settings.vad.logStats": "按会话记录统计",
|
|
262
|
+
"settings.brain.anthropicMode": "Anthropic:模式",
|
|
263
|
+
"settings.brain.modePlan": "Plan(Claude 订阅)",
|
|
264
|
+
"settings.brain.modeConsole": "Console(API key)",
|
|
265
|
+
"settings.brain.modeNote": "重新打开面板时生效。",
|
|
266
|
+
"settings.brain.ecoEnabled": "启用 eco 模式",
|
|
267
|
+
"settings.brain.ecoHint": "关闭 = 始终 frontier",
|
|
268
|
+
"settings.brain.modelEco": "eco 模型",
|
|
269
|
+
"settings.brain.modelFrontier": "frontier 模型",
|
|
270
|
+
"settings.brain.modelMultimodal": "multimodal 模型",
|
|
271
|
+
"settings.brain.multimodalClearTitle": "移除专用 multimodal brain(恢复自动视觉路由)",
|
|
272
|
+
"settings.brain.auto": "自动",
|
|
273
|
+
"settings.brain.multimodalHint": "用于带图像回合的专用 brain。自动 = 自动视觉路由(frontier 能看则用它,否则提示)。",
|
|
274
|
+
"settings.brain.geminiCache": "Gemini 显式缓存(CachedContent)",
|
|
275
|
+
"settings.brain.geminiCacheHint": "可选启用。在使用 Gemini Pro 的长会话中有用;短会话中 2.5 的免费隐式缓存已足够。",
|
|
276
|
+
"settings.federation.title": "brain 联邦",
|
|
277
|
+
"settings.federation.intro": "使用另一个 Forge 的 brain(其 key 永不离开其机器)或出借你的。你的代码在本地运行;只有推理会传输。",
|
|
278
|
+
"settings.federation.connectedTo": "已连接到",
|
|
279
|
+
"settings.federation.disconnect": "断开连接",
|
|
280
|
+
"settings.federation.connectMe": "连接我",
|
|
281
|
+
"settings.federation.tokenPlaceholder": "粘贴联邦代码",
|
|
282
|
+
"settings.federation.connect": "连接",
|
|
283
|
+
"settings.federation.lendBrain": "出借我的 brain",
|
|
284
|
+
"settings.federation.generateCode": "生成代码",
|
|
285
|
+
"settings.federation.host": "托管(响应子节点)",
|
|
286
|
+
"settings.federation.fedBrain": "联邦 brain",
|
|
287
|
+
"settings.federation.fedBrainNote": "响应子节点的那个。直接 API(默认 DeepSeek)。Claude Plan 无法托管;需要有余额的 key。",
|
|
288
|
+
"settings.federation.codeOnce": "代码(一次性)",
|
|
289
|
+
"settings.federation.copy": "复制",
|
|
290
|
+
"settings.keys.title": "API keys(BYOK)",
|
|
291
|
+
"settings.keys.configure": "配置",
|
|
292
|
+
"settings.keys.remove": "移除",
|
|
293
|
+
"settings.keys.brainAnthropic": "Brain(Anthropic)",
|
|
294
|
+
"settings.keys.brainOpenai": "Brain(OpenAI)",
|
|
295
|
+
"settings.keys.brainGoogle": "Brain(Google AI)",
|
|
296
|
+
"settings.keys.brainDeepseek": "Brain(DeepSeek)",
|
|
297
|
+
"settings.keys.brainXai": "Brain(xAI / Grok)",
|
|
298
|
+
"settings.keys.brainMistral": "Brain(Mistral)",
|
|
299
|
+
"settings.keys.brainCohere": "Brain(Cohere)",
|
|
300
|
+
"settings.keys.sttGoogle": "STT Google",
|
|
301
|
+
"settings.keys.ttsGoogle": "TTS Google",
|
|
302
|
+
"settings.keys.ttsElevenlabs": "TTS ElevenLabs",
|
|
303
|
+
"settings.keys.sttWhisper": "STT Whisper",
|
|
304
|
+
"settings.lang.title": "语言",
|
|
305
|
+
"settings.lang.panelVoice": "面板 + 语音",
|
|
306
|
+
"settings.lang.changeButton": "更改语言",
|
|
307
|
+
"settings.vault.title": "Vault(加密)",
|
|
308
|
+
"settings.vault.slots": "槽位",
|
|
309
|
+
"settings.vault.open": "打开 vault",
|
|
310
|
+
"settings.license.email": "电子邮件",
|
|
311
|
+
"settings.license.validated": "已验证",
|
|
312
|
+
"settings.license.connectHint": "连接你的 Polar 账户。输入你付款时使用的电子邮件,我们会自动同步你的 plan。",
|
|
313
|
+
"settings.license.emailPlaceholder": "email@example.com",
|
|
314
|
+
"settings.license.connect": "连接",
|
|
315
|
+
"settings.license.sync": "与 Polar 同步",
|
|
316
|
+
"settings.license.buy": "购买 / 激活 plan",
|
|
317
|
+
"settings.budget.title": "本月预算",
|
|
318
|
+
"settings.budget.renews": "续期",
|
|
319
|
+
"settings.budget.tokensEco": "eco tokens",
|
|
320
|
+
"settings.budget.tokensFrontier": "frontier tokens",
|
|
321
|
+
"settings.budget.buyExtension": "购买 token 扩展包",
|
|
322
|
+
"settings.limits.title": "限制(高级)",
|
|
323
|
+
"settings.limits.editHint": "编辑任意值 + tab/blur 即保存。",
|
|
324
|
+
"settings.limits.reset": "重置为默认",
|
|
325
|
+
"settings.bookmarks.title": "Reader 书签",
|
|
326
|
+
"settings.graph.title": "项目知识图谱",
|
|
327
|
+
"settings.pair.title": "关联手机",
|
|
328
|
+
"settings.pair.hint": "打开 Forge Mobile,点击\"关联\"并扫描此 QR。完成。",
|
|
329
|
+
"settings.pair.generateQr": "生成 QR",
|
|
330
|
+
"settings.pair.cantRead": "相机无法读取 QR?复制此代码并粘贴到 Forge Mobile:",
|
|
331
|
+
"settings.audit.viewFull": "查看完整",
|
|
332
|
+
"settings.audit.close": "关闭",
|
|
333
|
+
"settings.audit.allKinds": "所有 kind",
|
|
334
|
+
"settings.audit.allModes": "所有 mode",
|
|
335
|
+
"settings.audit.copyJson": "复制 JSON",
|
|
336
|
+
"settings.audit.closeDetail": "关闭详情",
|
|
337
|
+
"settings.about.title": "关于",
|
|
338
|
+
"settings.danger.title": "危险区域",
|
|
339
|
+
"settings.danger.warning": "开启时,Yujin 将不经确认执行每一个操作(包括 shell.exec、rm、git push --force 等)。速度优先于安全。一切都记录在 audit log 中。",
|
|
340
|
+
"settings.keyEditor.placeholder": "在此粘贴你的 API key",
|
|
341
|
+
"settings.license.title": "许可证",
|
|
342
|
+
"settings.plan": "套餐",
|
|
343
|
+
"settings.audit.title": "审计日志",
|
|
344
|
+
"settings.legal.title": "法律",
|
|
345
|
+
"panel.status.projectSwitchFail": "无法切换项目。",
|
|
346
|
+
"panel.status.projectRemoveFail": "无法移除项目。",
|
|
347
|
+
"panel.status.projectAddFail": "无法添加项目。",
|
|
348
|
+
"panel.status.cancelFail": "无法取消:{reason}",
|
|
349
|
+
"panel.status.cancelNetError": "取消 shell 时发生网络错误。",
|
|
350
|
+
"panel.status.notEditable": "此类内容不可编辑。",
|
|
351
|
+
"panel.status.savedAsPicker": "已另存为:{name}(保存到你在对话框中选择的路径)。",
|
|
352
|
+
"panel.status.saveAsFail": "另存为出错:{error} -- 使用后备方案。",
|
|
353
|
+
"panel.status.saveFail": "保存出错:{error}",
|
|
354
|
+
"panel.status.savedAs": "已另存为:{path}({bytes} 字节)",
|
|
355
|
+
"panel.status.netError": "网络错误:{error}",
|
|
356
|
+
"panel.status.savedTabOnly": "更改已保存在标签页中(未保存到磁盘 -- 无 file_path)。",
|
|
357
|
+
"panel.status.saved": "已保存:{path}({bytes} 字节)",
|
|
358
|
+
"panel.status.copied": "已复制到剪贴板。",
|
|
359
|
+
"panel.status.copyFail": "无法复制。",
|
|
360
|
+
"panel.status.modeAvailable": "可用模式:didactico, tecnico。用法:/modo tecnico",
|
|
361
|
+
"panel.status.modeChangeFail": "无法更改模式:{error}",
|
|
362
|
+
"panel.status.modeChanged": "模式已更改为 {target}。下一轮已使用此模式。",
|
|
363
|
+
"panel.status.genericError": "错误:{error}",
|
|
364
|
+
"panel.status.brainTierAuto": "Brain tier 恢复为 auto(router 根据 verb / phase 决定)。",
|
|
365
|
+
"panel.status.brainTierForced": "本会话的 Brain tier 已固定为 \"{target}\"。/auto 可返回 router。",
|
|
366
|
+
"panel.confirm.tabUnsaved": "标签页 \"{title}\" 有未保存的更改。仍要关闭吗?",
|
|
367
|
+
"panel.confirm.tabsUnsaved": "有标签页存在未保存的更改。仍要全部关闭吗?",
|
|
368
|
+
"panel.confirm.discardChanges": "放弃未保存的更改?",
|
|
369
|
+
"panel.confirm.removeSlot": "移除 slot \"{slot}\"?此操作无法撤销。",
|
|
370
|
+
"panel.confirm.removeKey": "移除 {slot} 的 key?",
|
|
371
|
+
"panel.prompt.saveAs": "另存为(相对于项目的路径):",
|
|
372
|
+
"panel.voice.sttFallback": "浏览器 STT 不可用;使用服务器端后备方案。",
|
|
373
|
+
"panel.voice.noMicSupport": "你的浏览器不支持麦克风访问。",
|
|
374
|
+
"panel.voice.recordingCountdown": "录音中... {n}秒后自动停止",
|
|
375
|
+
"panel.voice.autoStopped": "录音在 55 秒时自动停止(Google STT 1 分钟限制)。请尝试更短的内容。",
|
|
376
|
+
"panel.voice.noAudio": "未捕获到音频。请重试。",
|
|
377
|
+
"panel.voice.audioTooLong": "音频过长(>1 分钟)。Google STT 同步限制。请尝试更短的内容。",
|
|
378
|
+
"panel.voice.ttsUnavailable": "浏览器 TTS 不可用;请在设置中切换回 Google。",
|
|
379
|
+
"panel.voice.micClosedHalfDuplex": "Yujin 说话时麦克风已关闭(半双工)。",
|
|
380
|
+
"panel.voice.micBlocked": "麦克风被阻止。请在浏览器设置中允许此应用使用麦克风,然后重试。",
|
|
381
|
+
"panel.voice.noMicDevice": "此设备未检测到麦克风。",
|
|
382
|
+
"panel.voice.micOpenFail": "无法打开麦克风:{error}",
|
|
383
|
+
"panel.voice.micOpenListening": "麦克风已开启,正在聆听...",
|
|
384
|
+
"panel.voice.listening": "我在听...",
|
|
385
|
+
"panel.voice.listeningInterim": "我在听... {text}",
|
|
386
|
+
"panel.voice.micBlockedBrowser": "麦克风被浏览器阻止。点击地址栏中的锁形图标并允许麦克风,然后重新加载页面。或者如果你有 API key,在设置中将 STT 切换为 \"google\" / \"whisper\"。",
|
|
387
|
+
"panel.voice.noMicPhysical": "未检测到物理麦克风。请连接一个,或在设置中将 STT 切换为 \"google\" / \"whisper\"。",
|
|
388
|
+
"panel.voice.networkRequired": "Web Speech 需要互联网连接(Chrome 在后台使用 Google)。请在连接稳定时尝试,或者如果你有 API key,将 STT 切换为 \"whisper\"。",
|
|
389
|
+
"panel.voice.langNotSupported": "你的浏览器不支持此语言的 STT。请将面板语言更改为受支持的语言(en、es、pt),或将 STT 切换为 \"google\" / \"whisper\"。",
|
|
390
|
+
"panel.voice.micError": "麦克风错误:{error}",
|
|
391
|
+
"panel.voice.noAudioToRecognizer": "没有音频到达识别器:浏览器的听写在此应用中未捕获。",
|
|
392
|
+
"panel.voice.micOpenNoVoice": "麦克风已开启但未检测到语音。请靠近麦克风并说大声些;若仍如此,免费听写在此 PWA 中无法工作。",
|
|
393
|
+
"panel.voice.voiceNoText": "检测到语音但浏览器未返回文本(此 PWA 中无免费 STT)。",
|
|
394
|
+
"panel.voice.startingDictation": "正在开始听写...",
|
|
395
|
+
"panel.voice.couldNotStartMic": "无法启动麦克风:{error}",
|
|
396
|
+
"panel.status.imageTooLarge": "图片过大(>6MB):{name}",
|
|
397
|
+
"panel.status.imageReady": "图片已准备好发送:{name}",
|
|
398
|
+
"panel.status.imageReadFail": "无法读取图片:{error}",
|
|
399
|
+
"panel.tip.attachFile": "附加文件",
|
|
400
|
+
"panel.tip.refreshDiscovery": "刷新发现",
|
|
401
|
+
"panel.tip.refreshNow": "立即刷新",
|
|
402
|
+
"panel.tip.filterByProject": "按项目筛选",
|
|
403
|
+
"panel.tip.concurrentRuns": "并发运行:全局 / 每项目上限",
|
|
404
|
+
"panel.tip.mcpBridges": "MCP 桥接 (F101)",
|
|
405
|
+
"panel.tip.activity": "智能体活动 + 桥接检查器 + 每个智能体的聊天",
|
|
406
|
+
"panel.tip.settings": "设置(语音模式、STT、TTS、密钥、语言)",
|
|
407
|
+
"panel.tip.zoomOut": "缩小 (Ctrl -)",
|
|
408
|
+
"panel.tip.zoomReset": "重置缩放 (Ctrl 0)",
|
|
409
|
+
"panel.tip.zoomIn": "放大 (Ctrl +)",
|
|
410
|
+
"panel.tip.maximize": "最大化 / 还原(全屏)",
|
|
411
|
+
"panel.tip.closeBoard": "关闭整个白板",
|
|
412
|
+
"panel.tip.openInEditor": "在我的编辑器中打开",
|
|
413
|
+
"panel.tip.open": "打开",
|
|
414
|
+
"panel.tip.saveAs": "另存为 -- 选择新路径(相对于项目)",
|
|
415
|
+
"panel.tip.codeModeDetail": "详细:实时显示文件、差异和命令",
|
|
416
|
+
"panel.tip.codeModeZen": "Sumi-e:偶尔配文字的艺术",
|
|
417
|
+
"panel.tip.cancelShell": "取消 shell 命令",
|
|
418
|
+
"panel.tip.closeTab": "关闭标签页",
|
|
419
|
+
"panel.tip.reopenNativeTabs": "重新打开已关闭的原生标签页",
|
|
420
|
+
"panel.tip.notTestedYet": "尚未测试",
|
|
421
|
+
"panel.aria.activity": "活动",
|
|
422
|
+
"panel.aria.settings": "设置",
|
|
423
|
+
"panel.aria.zoomOut": "缩小",
|
|
424
|
+
"panel.aria.zoomIn": "放大",
|
|
425
|
+
"panel.aria.maximize": "最大化",
|
|
426
|
+
"panel.aria.closeBoard": "全部关闭",
|
|
427
|
+
"panel.aria.thinking": "思考中",
|
|
428
|
+
"panel.hint.boardEmpty": "结构化内容显示在这里:代码、表格、文档。让 Yujin 写或编辑一些内容。",
|
|
429
|
+
"panel.hint.planMode": "您处于 Plan 模式(订阅)。当 brain 以 API 模式运行时才会绘制白板:在 <strong>设置 > Brain > Anthropic:模式 > Console</strong> 中更改并重新打开面板。",
|
|
430
|
+
"panel.hint.bookmarksEmpty": "没有书签。阅读文档时让 Yujin \"把这一点标记为 ...\"。",
|
|
431
|
+
"panel.voice.replyFailed": "语音回复失败:{err}",
|
|
432
|
+
"panel.voice.replyError": "语音回复错误:{err}",
|
|
433
|
+
"panel.status.languageSwitchFailed": "语言切换失败:{err}",
|
|
434
|
+
"panel.status.languageListFailed": "无法加载语言列表",
|
|
435
|
+
"panel.legal.loading": "加载中...",
|
|
436
|
+
"panel.legal.loadError": "加载文档时出错 {status}。",
|
|
437
|
+
"panel.legal.networkError": "网络错误:{err}",
|
|
438
|
+
"panel.legal.defaultTitle": "法律信息",
|
|
439
|
+
"panel.feedback.copied": "已复制",
|
|
440
|
+
"panel.feedback.copyFailed": "复制失败",
|
|
441
|
+
"panel.feedback.clipboardUnavailable": "剪贴板不可用",
|
|
442
|
+
"panel.feedback.saving": "保存中...",
|
|
443
|
+
"panel.feedback.saved": "已保存。",
|
|
444
|
+
"panel.feedback.saveError": "保存出错",
|
|
445
|
+
"panel.feedback.netError": "网络错误",
|
|
446
|
+
"panel.feedback.netErrorSaving": "保存时网络错误",
|
|
447
|
+
"panel.feedback.errorPrefix": "错误:{detail}",
|
|
448
|
+
"panel.pair.generating": "生成中...",
|
|
449
|
+
"panel.pair.generateQr": "生成二维码",
|
|
450
|
+
"panel.pair.copy": "复制",
|
|
451
|
+
"panel.pair.expiry": "约 {mins} 分钟后过期。如果过期请重新生成。",
|
|
452
|
+
"panel.pair.qrNetError": "生成二维码时网络错误。",
|
|
453
|
+
"panel.audit.copyJson": "复制 JSON",
|
|
454
|
+
"panel.limits.resetApplied": "已重置为默认值",
|
|
455
|
+
"panel.nac3.effects": "影响:{list}",
|
|
456
|
+
"panel.nac3.effectsUnknown": "未知",
|
|
457
|
+
"panel.nac3.cancel": "取消",
|
|
458
|
+
"panel.nac3.reject": "拒绝",
|
|
459
|
+
"panel.nac3.approve": "批准",
|
|
460
|
+
"panel.nac3.approveDestructive": "批准(破坏性)",
|
|
461
|
+
"panel.nac3.executing": "执行中...",
|
|
462
|
+
"panel.tts.providerBrowser": "TTS 浏览器",
|
|
463
|
+
"panel.tts.providerGoogle": "TTS Google",
|
|
464
|
+
"panel.tts.providerTitle": "点击以在浏览器(原生 SpeechSynthesis,操作系统语音)和 Google Cloud TTS(服务器端)之间切换。",
|
|
465
|
+
"panel.stt.providerBrowser": "STT 浏览器",
|
|
466
|
+
"panel.stt.providerGoogle": "STT Google",
|
|
467
|
+
"panel.stt.providerWhisper": "STT Whisper",
|
|
468
|
+
"panel.stt.providerTitle": "点击以在浏览器(快速 + 原生 es-AR + 免费)、Google Cloud STT(服务器端,BYOK)或 Whisper(服务器端,BYOK)之间切换。",
|
|
469
|
+
"panel.tts.voiceTitle": "当前语音:{id} / {persona} ({gender}) -- {style}。点击循环切换。Studio = 清晰发出 s;Neural2 = 自然西班牙语(弱化词尾 s)。",
|
|
470
|
+
"panel.license.lendNeedsLicense": "激活许可证以借出您的 brain",
|
|
471
|
+
"panel.license.emailInvalid": "请输入有效的电子邮件(含 @)。",
|
|
472
|
+
"panel.license.connecting": "连接中...",
|
|
473
|
+
"panel.license.savingEmail": "保存电子邮件 + 与 Polar 同步中...",
|
|
474
|
+
"panel.license.syncFailedRetry": "电子邮件已保存,但同步失败:{err}{http}。如果您刚付款,请等待 1-2 分钟,然后点击\"与 Polar 同步\"。",
|
|
475
|
+
"panel.license.planOk": "OK -- 套餐:{plan}。",
|
|
476
|
+
"panel.license.netError": "网络错误:{err}",
|
|
477
|
+
"panel.license.syncing": "同步中...",
|
|
478
|
+
"panel.license.querying": "正在查询服务器...",
|
|
479
|
+
"panel.license.syncError": "同步错误:{err}{http}",
|
|
480
|
+
"panel.license.planUnchanged": "套餐未更改:{plan}",
|
|
481
|
+
"panel.license.planUpdated": "套餐已更新:{before} -> {after}",
|
|
482
|
+
"panel.license.syncWithPolar": "与 Polar 同步",
|
|
483
|
+
"panel.license.errorWithCode": "错误:{code}",
|
|
484
|
+
"panel.keyEditor.keyTooShort": "密钥太短(至少 8 个字符)。",
|
|
485
|
+
"panel.bridge.coordUnavailable": "协调不可用。",
|
|
486
|
+
"panel.bridge.statusUnavailable": "不可用",
|
|
487
|
+
"panel.mcp.loadingBridges": "加载桥接中...",
|
|
488
|
+
"panel.tools.loading": "加载工具中...",
|
|
489
|
+
"panel.agentsChat.backPairs": "< 配对",
|
|
490
|
+
"panel.agentsChat.noMessages": "此配对中没有消息。",
|
|
491
|
+
"panel.agentsChat.noAgents": "无智能体",
|
|
492
|
+
"panel.agentsChat.pickAgent": "发送前请选择一个智能体并输入文本。",
|
|
493
|
+
"panel.agentsChat.sending": "发送中...",
|
|
494
|
+
"panel.agentsChat.errorGeneric": "错误:{err}",
|
|
495
|
+
"panel.whatsNew.dismiss": "关闭",
|
|
496
|
+
"panel.alert.noEditor": "PATH 中没有编辑器。复制路径:{path}",
|
|
497
|
+
"panel.alert.pathRelative": "路径必须相对于项目(不能以 \"/\" 开头或包含 \"..\")。",
|
|
498
|
+
"panel.tip.saveTo": "保存到 {path}",
|
|
499
|
+
"panel.tip.saveToMemory": "(内存)",
|
|
500
|
+
"panel.button.saveAs": "另存为...",
|
|
501
|
+
"panel.aria.concurrentRuns": "并发运行",
|
|
502
|
+
"panel.activity.allProjects": "所有项目",
|
|
503
|
+
"panel.activity.loadingFeed": "加载动态中...",
|
|
504
|
+
"panel.feedback.savedShort": "已保存",
|
|
505
|
+
"panel.pair.qrFailed": "无法生成二维码。",
|
|
506
|
+
"panel.brain.modePlan": "Plan(订阅)",
|
|
507
|
+
"panel.brain.modeConsole": "Console(API 密钥)",
|
|
508
|
+
"panel.brain.applying": "正在应用 {mode}...",
|
|
509
|
+
"panel.brain.applied": "已应用 {mode}。下一轮已使用此模式。",
|
|
510
|
+
"panel.brain.reopenHint": "重新打开面板时生效。",
|
|
511
|
+
"panel.brain.active": "{mode} 已激活",
|
|
512
|
+
"panel.bridge.roleHost": "主机",
|
|
513
|
+
"panel.bridge.roleClient": "客户端",
|
|
514
|
+
"panel.bridge.instanceOne": "实例",
|
|
515
|
+
"panel.bridge.instanceMany": "实例",
|
|
516
|
+
"panel.bridge.you": "你",
|
|
517
|
+
"panel.tip.deleteTask": "删除任务",
|
|
518
|
+
"panel.tasks.cmdPlaceholder": "命令(例如:pnpm install)...",
|
|
519
|
+
"panel.readAloud.code": "代码",
|
|
520
|
+
"panel.readAloud.codeLang": "{lang} 代码",
|
|
521
|
+
"panel.readAloud.file": "文件 {file}",
|
|
522
|
+
"panel.readAloud.content": "内容:{content}",
|
|
523
|
+
"panel.pizarron.tabOne": "标签页",
|
|
524
|
+
"panel.pizarron.tabMany": "标签页"
|
|
234
525
|
}
|