mojulo 0.0.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/README.md +54 -4
  2. package/lib/audit-logger-new.js +11 -0
  3. package/lib/auth/gate.js +25 -0
  4. package/lib/auth/service.js +17 -0
  5. package/lib/auth/session.js +63 -0
  6. package/lib/builder/chat-processor.js +607 -0
  7. package/lib/builder/composer-bridge.js +82 -0
  8. package/lib/builder/evaluator.js +159 -0
  9. package/lib/builder/executor.js +252 -0
  10. package/lib/builder/index.js +48 -0
  11. package/lib/builder/session.js +248 -0
  12. package/lib/builder/system-prompt.js +422 -0
  13. package/lib/builder/tone-presets.js +75 -0
  14. package/lib/builder/tool-executors.js +1527 -0
  15. package/lib/builder/tools.js +338 -0
  16. package/lib/builder/validators.js +239 -0
  17. package/lib/composer/composer.js +225 -0
  18. package/lib/composer/index.js +40 -0
  19. package/lib/composer/protocols/00_base.txt +19 -0
  20. package/lib/composer/protocols/01_knowledge.txt +9 -0
  21. package/lib/composer/protocols/02_form-gathering.txt +32 -0
  22. package/lib/composer/protocols/03_appointments.txt +16 -0
  23. package/lib/composer/protocols/04_triage.txt +15 -0
  24. package/lib/composer/protocols/05_optical-read.txt +22 -0
  25. package/lib/composer/response-builder.js +98 -0
  26. package/lib/config-builder.js +650 -0
  27. package/lib/db/ids.js +10 -0
  28. package/lib/db/index.js +179 -0
  29. package/lib/db/repositories/apiKeys.js +72 -0
  30. package/lib/db/repositories/auditLogs.js +12 -0
  31. package/lib/db/repositories/botSpaces.js +12 -0
  32. package/lib/db/repositories/builderSessions.js +312 -0
  33. package/lib/db/repositories/deploymentEvents.js +12 -0
  34. package/lib/db/repositories/deployments.js +385 -0
  35. package/lib/db/repositories/documents.js +68 -0
  36. package/lib/db/repositories/mcpJobs.js +84 -0
  37. package/lib/deployers/bot-fleet.js +110 -0
  38. package/lib/deployers/bot-proxy.js +72 -0
  39. package/lib/deployers/build.js +89 -0
  40. package/lib/deployers/cloud-deploy.js +310 -0
  41. package/lib/deployers/docker.js +439 -0
  42. package/lib/deployers/fly.js +432 -0
  43. package/lib/deployers/index.js +38 -0
  44. package/lib/deployment-auth.js +36 -0
  45. package/lib/document-parser.js +171 -0
  46. package/lib/embedder/chunker.js +93 -0
  47. package/lib/embedder/local.js +101 -0
  48. package/lib/embedder/preview-rag.js +93 -0
  49. package/lib/envelope-schema.js +54 -0
  50. package/lib/fleet/scoped-sql.js +342 -0
  51. package/lib/form-schema-config/base.js +135 -0
  52. package/lib/form-schema-config/index.js +286 -0
  53. package/lib/form-schema-config/locales/af-ZA.js +153 -0
  54. package/lib/form-schema-config/locales/ar-AE.js +142 -0
  55. package/lib/form-schema-config/locales/ar-SA.js +164 -0
  56. package/lib/form-schema-config/locales/de-DE.js +152 -0
  57. package/lib/form-schema-config/locales/en-AU.js +161 -0
  58. package/lib/form-schema-config/locales/en-CA.js +115 -0
  59. package/lib/form-schema-config/locales/en-GB.js +132 -0
  60. package/lib/form-schema-config/locales/en-IN.js +219 -0
  61. package/lib/form-schema-config/locales/en-MY.js +171 -0
  62. package/lib/form-schema-config/locales/en-NG.js +198 -0
  63. package/lib/form-schema-config/locales/en-PH.js +186 -0
  64. package/lib/form-schema-config/locales/en-SG.js +153 -0
  65. package/lib/form-schema-config/locales/en-US.js +138 -0
  66. package/lib/form-schema-config/locales/es-ES.js +171 -0
  67. package/lib/form-schema-config/locales/es-MX.js +193 -0
  68. package/lib/form-schema-config/locales/fr-CA.js +138 -0
  69. package/lib/form-schema-config/locales/fr-FR.js +155 -0
  70. package/lib/form-schema-config/locales/hi-IN.js +219 -0
  71. package/lib/form-schema-config/locales/it-IT.js +157 -0
  72. package/lib/form-schema-config/locales/ja-JP.js +169 -0
  73. package/lib/form-schema-config/locales/ko-KR.js +140 -0
  74. package/lib/form-schema-config/locales/nl-NL.js +149 -0
  75. package/lib/form-schema-config/locales/pt-BR.js +168 -0
  76. package/lib/form-schema-config/locales/zh-CN.js +172 -0
  77. package/lib/form-schema-config/locales/zh-HK.js +142 -0
  78. package/lib/form-structure-schema.js +191 -0
  79. package/lib/llm-providers.js +828 -0
  80. package/lib/markdown.js +197 -0
  81. package/lib/mcp/catalysts/appointment-to-calendar.md +84 -0
  82. package/lib/mcp/catalysts/conversations-to-channel-digest.md +104 -0
  83. package/lib/mcp/catalysts/document-extract-to-store.md +92 -0
  84. package/lib/mcp/catalysts/knowledge-gap-miner.md +96 -0
  85. package/lib/mcp/catalysts/loader.js +144 -0
  86. package/lib/mcp/catalysts/qualify-lead-to-crm.md +83 -0
  87. package/lib/mcp/catalysts/scan-conversations-for-signal.md +92 -0
  88. package/lib/mcp/catalysts/submission-to-ticket.md +83 -0
  89. package/lib/mcp/catalysts/submissions-to-warehouse.md +103 -0
  90. package/lib/mcp/catalysts/weekly-submissions-digest.md +82 -0
  91. package/lib/mcp/jobs.js +64 -0
  92. package/lib/mcp/server.js +184 -0
  93. package/lib/mcp/session-binding.js +130 -0
  94. package/lib/mcp/tools/build.js +123 -0
  95. package/lib/mcp/tools/catalysts.js +477 -0
  96. package/lib/mcp/tools/context.js +325 -0
  97. package/lib/mcp/tools/fleet.js +391 -0
  98. package/lib/mcp/tools/jobs-tools.js +240 -0
  99. package/lib/mcp/tools/operate.js +314 -0
  100. package/lib/preview/build-preview-config.js +136 -0
  101. package/lib/rate-limiter.js +11 -0
  102. package/lib/resolve-api-key.js +142 -0
  103. package/lib/storage/index.js +40 -0
  104. package/messages/de.json +2136 -0
  105. package/messages/en.json +2136 -0
  106. package/messages/es.json +2136 -0
  107. package/messages/fr.json +2136 -0
  108. package/messages/it.json +2136 -0
  109. package/messages/ja.json +2136 -0
  110. package/messages/ko.json +2136 -0
  111. package/messages/nl.json +2136 -0
  112. package/messages/pl.json +2136 -0
  113. package/messages/pt.json +2136 -0
  114. package/messages/ru.json +2136 -0
  115. package/messages/uk.json +2136 -0
  116. package/messages/zh.json +2136 -0
  117. package/package.json +68 -5
  118. package/scripts/mcp-config.mjs +162 -0
  119. package/scripts/mcp-stdio-loader.mjs +42 -0
  120. package/scripts/mcp-stdio.mjs +108 -0
  121. package/scripts/mojulo-paths.mjs +48 -0
@@ -0,0 +1,2136 @@
1
+ {
2
+ "common": {
3
+ "loading": "Cargando...",
4
+ "save": "Guardar",
5
+ "saving": "Guardando...",
6
+ "cancel": "Cancelar",
7
+ "delete": "Eliminar",
8
+ "edit": "Editar",
9
+ "close": "Cerrar",
10
+ "search": "Buscar",
11
+ "back": "Atrás",
12
+ "next": "Siguiente",
13
+ "submit": "Enviar",
14
+ "create": "Crear",
15
+ "copy": "Copiar",
16
+ "copied": "¡Copiado!",
17
+ "view": "Ver",
18
+ "hide": "Ocultar",
19
+ "yes": "Sí",
20
+ "no": "No",
21
+ "confirm": "Confirmar",
22
+ "done": "Listo",
23
+ "updating": "Actualizando...",
24
+ "moveTo": "Mover a:",
25
+ "unknown": "Desconocido",
26
+ "error": "Error",
27
+ "remove": "Quitar",
28
+ "selectAnOption": "Selecciona una opción",
29
+ "addItemLabel": "Añadir {itemLabel}",
30
+ "itemNumber": "{itemLabel} n.º{number}"
31
+ },
32
+ "auth": {
33
+ "signIn": "Iniciar sesión",
34
+ "signOut": "Cerrar sesión",
35
+ "signingIn": "Iniciando sesión...",
36
+ "email": "Correo electrónico",
37
+ "password": "Contraseña",
38
+ "signInToContinue": "Inicia sesión para continuar",
39
+ "invalidCredentials": "Correo o contraseña inválidos",
40
+ "needAccess": "¿Necesitas acceso? Contacta al administrador de tu organización.",
41
+ "controlPanel": "Mojulo Control Panel",
42
+ "setupComplete": "Cuenta de administrador creada correctamente. Inicia sesión.",
43
+ "emailPlaceholder": "tu@empresa.com",
44
+ "passwordPlaceholder": "Tu contraseña"
45
+ },
46
+ "dashboard": {
47
+ "title": "Panel",
48
+ "loading": "Cargando panel...",
49
+ "loadingChatbots": "Cargando chatbots...",
50
+ "loadingHistory": "Cargando historial...",
51
+ "createNewBot": "Crear nuevo bot",
52
+ "noBots": "Aún no hay bots",
53
+ "selectBotOrSpace": "Selecciona un bot o un Bot Space para ver detalles",
54
+ "createBot": "Crear bot",
55
+ "workspace": "Espacio de trabajo de {name}",
56
+ "unassignedWorkspace": "Espacio de trabajo sin asignar",
57
+ "searchChatbots": "Buscar chatbots",
58
+ "noChatbotsFound": "No se encontraron chatbots",
59
+ "privateNotShared": "Privado (no compartido)",
60
+ "inSpace": "en {spaceName}",
61
+ "chooseBotType": "Elige un tipo de bot para empezar:",
62
+ "addNewBot": "Añadir nuevo bot",
63
+ "addNewPrivateBot": "Añadir nuevo bot privado",
64
+ "expandBotSpaces": "Expandir Bot Spaces",
65
+ "allSpaces": "Todos los espacios",
66
+ "adminSummary": {
67
+ "title": "Resumen",
68
+ "totalBots": "Bots totales",
69
+ "running": "En ejecución",
70
+ "stopped": "Detenidos",
71
+ "failed": "Con errores",
72
+ "recentDeployments": "Despliegues recientes",
73
+ "activeBots": "Bots activos (24 h)",
74
+ "noRecentActivity": "Sin actividad reciente",
75
+ "conversations": "conversaciones",
76
+ "totalActive": "{bots} bots con {conversations} conversaciones en las últimas 24 horas",
77
+ "private": "Privado",
78
+ "unknown": "Desconocido",
79
+ "justNow": "ahora mismo",
80
+ "minutesAgo": "hace {count} min",
81
+ "hoursAgo": "hace {count} h",
82
+ "yesterday": "ayer",
83
+ "daysAgo": "hace {count} d"
84
+ },
85
+ "private": "Privado",
86
+ "showBotList": "Mostrar lista de bots",
87
+ "deleteConfirm": "¿Seguro que quieres eliminar «{name}»? Esto destruirá el despliegue y no se puede deshacer.",
88
+ "deleteError": "No se pudo eliminar el despliegue: {error}",
89
+ "actionError": "No se pudo {action} el despliegue: {error}",
90
+ "assignError": "No se pudo asignar el bot space: {error}",
91
+ "sections": {
92
+ "control": "Control",
93
+ "data": "Datos",
94
+ "resources": "Recursos"
95
+ },
96
+ "launcher": {
97
+ "modularChat": {
98
+ "title": "Bot modular (chat)",
99
+ "badge": "Nuevo",
100
+ "description": "Construye con un asistente de IA"
101
+ },
102
+ "modularWizard": {
103
+ "title": "Bot modular (asistente)",
104
+ "description": "Configuración paso a paso"
105
+ }
106
+ },
107
+ "redeploy": {
108
+ "confirm": "¿Volver a desplegar «{name}» con la configuración actual? Esto reiniciará el bot sin cambios.",
109
+ "initiating": "Iniciando redespliegue...",
110
+ "sending": "Enviando solicitud de despliegue...",
111
+ "deploying": "Desplegando...",
112
+ "redeploying": "Redesplegando...",
113
+ "failed": "Redespliegue fallido"
114
+ },
115
+ "myBots": "Mis bots",
116
+ "subtitle": "Cada bot es una configuración guardada. Constrúyelo cuando quieras un ZIP ejecutable.",
117
+ "noKeyBanner": {
118
+ "text": "Añade una clave de proveedor de LLM para desbloquear el constructor en chat y el asistente por formulario.",
119
+ "cta": "Abrir ajustes →"
120
+ },
121
+ "documentLibrary": "Biblioteca de documentos →",
122
+ "newBotChat": "Nuevo bot (chat)",
123
+ "newBotWizard": "Nuevo bot (asistente)",
124
+ "loadingShort": "Cargando…",
125
+ "noBotsHint": "Aún no hay bots. Crea uno desde el constructor en chat o el asistente.",
126
+ "searchBots": "Buscar bots…",
127
+ "noBotsMatch": "Ningún bot coincide con «{query}».",
128
+ "emptyDetailHint": "Selecciona un bot para ver sus acciones de ciclo de vida.",
129
+ "buildFailedAlert": "Compilación fallida: {error}",
130
+ "statuses": {
131
+ "building": "Compilando",
132
+ "buildFailed": "Compilación fallida",
133
+ "needsRebuild": "Requiere recompilación",
134
+ "running": "En ejecución",
135
+ "runningStale": "En ejecución · obsoleto",
136
+ "ready": "Listo",
137
+ "draft": "Borrador"
138
+ },
139
+ "builds": {
140
+ "building": "Compilando…",
141
+ "retry": "Reintentar compilación",
142
+ "rebuild": "Recompilar",
143
+ "build": "Compilar"
144
+ },
145
+ "connect": {
146
+ "title": "Conectar un bot en ejecución",
147
+ "description": "Pega la URL donde está corriendo <code>{name}</code>. El plano de control lo sondeará con la clave API incorporada de la fila.",
148
+ "botUrlLabel": "URL del bot",
149
+ "probeFailedFallback": "Sondeo fallido ({status})",
150
+ "disconnect": "Desconectar",
151
+ "testing": "Probando…",
152
+ "testAndSave": "Probar y guardar"
153
+ },
154
+ "documents": {
155
+ "title": "Biblioteca de documentos",
156
+ "breadcrumbHere": "Biblioteca de documentos",
157
+ "subtitle": "Cada documento que has subido y los bots que lo referencian. Los documentos sobreviven a los bots: eliminar un bot no borra sus documentos.",
158
+ "loadFailed": "No se pudo cargar la biblioteca: {error}",
159
+ "loading": "Cargando…",
160
+ "searchPlaceholder": "Buscar por nombre de archivo…",
161
+ "filters": {
162
+ "all": "Todos",
163
+ "unattached": "Sin adjuntar",
164
+ "parseFailed": "Análisis fallido"
165
+ },
166
+ "selectAll": "Seleccionar todo",
167
+ "deselectAll": "Deseleccionar todo",
168
+ "selectionStatus": "{selected} de {total} seleccionados",
169
+ "deleting": "Eliminando…",
170
+ "deleteSelected": "Eliminar seleccionados",
171
+ "deleteCount": "Eliminar {count}",
172
+ "deleteSingleConfirm": "¿Eliminar «{name}»? Esto borra el archivo del disco.",
173
+ "deleteMultiConfirm": "¿Eliminar {count} documentos sin adjuntar? Esto los borra del disco.",
174
+ "deleteFailed": "No se pudieron eliminar {failed} de {total}: {details}",
175
+ "noDocs": "Aún no hay documentos subidos. Sube uno desde el asistente o el constructor en chat al configurar un bot.",
176
+ "noMatch": "Ningún documento coincide con este filtro.",
177
+ "table": {
178
+ "document": "Documento",
179
+ "size": "Tamaño",
180
+ "uploaded": "Subido",
181
+ "parsed": "Analizado",
182
+ "usedBy": "Usado por"
183
+ },
184
+ "parseFailedLabel": "fallido",
185
+ "parseFailedTooltip": "Sin texto extraído: RAG no usará este documento",
186
+ "unattachedLabel": "Sin adjuntar"
187
+ },
188
+ "detail": {
189
+ "backToList": "Volver a la lista",
190
+ "runningAt": "ejecutándose en",
191
+ "staleNotice": "Configuración editada desde la última compilación: recompila para obtener el último ZIP.",
192
+ "wizard": "Asistente",
193
+ "chat": "Chat",
194
+ "connect": "Conectar",
195
+ "reconnect": "Reconectar",
196
+ "conversations": "Conversaciones",
197
+ "downloadZip": "Descargar ZIP",
198
+ "downloadWithDocs": "Descargar con documentos",
199
+ "deployToCloud": "Desplegar en la nube",
200
+ "live": "En vivo ↗",
201
+ "hideEmbed": "Ocultar Embed",
202
+ "embedScript": "Script de Embed",
203
+ "deleteBot": "Eliminar bot",
204
+ "deleteConfirm": "¿Eliminar este bot y su artefacto?"
205
+ }
206
+ },
207
+ "bots": {
208
+ "types": {
209
+ "chat": "Chat",
210
+ "knowledge": "Conocimiento",
211
+ "form": "Formulario",
212
+ "triage": "Triaje",
213
+ "appointment": "Cita",
214
+ "bot": "Bot"
215
+ },
216
+ "descriptions": {
217
+ "chat": "Asistente de chat con IA",
218
+ "form": "Recolección de datos estructurados",
219
+ "triage": "Dirige a los usuarios al lugar correcto",
220
+ "appointment": "Agenda reuniones y reservas"
221
+ },
222
+ "status": {
223
+ "deployed": "desplegado",
224
+ "deploying": "desplegando",
225
+ "failed": "fallido"
226
+ }
227
+ },
228
+ "actions": {
229
+ "modify": "Modificar",
230
+ "clone": "Clonar",
231
+ "reassign": "Reasignar",
232
+ "goToLiveBot": "Ir al bot en vivo",
233
+ "modifyTitle": "Modificar despliegue: conserva la misma URL y nombre",
234
+ "cloneTitle": "Clonar este despliegue con un nuevo nombre",
235
+ "reassignTitle": "Reasignar a otro bot space",
236
+ "deleteTitle": "Eliminar despliegue",
237
+ "editInChat": "Chat",
238
+ "editInChatTitle": "Modificar con el asistente de chat",
239
+ "pause": "Pausar",
240
+ "start": "Iniciar",
241
+ "pauseBot": "Pausar bot",
242
+ "startBot": "Iniciar bot",
243
+ "redeploy": "Redesplegar",
244
+ "redeployBot": "Redesplegar bot",
245
+ "live": "En vivo",
246
+ "embed": "Embed",
247
+ "copied": "Copiado",
248
+ "replicas": "Réplicas",
249
+ "scaleReplicas": "Escalar réplicas",
250
+ "replicasDescription": "Ajusta el número de réplicas del bot. Más réplicas manejan más usuarios concurrentes. Las sesiones persistentes garantizan que los usuarios permanezcan conectados a la misma réplica.",
251
+ "replicaCount": "Número de réplicas",
252
+ "replicasRange": "Mín.: 1, Máx.: 10",
253
+ "currentReplicas": "Réplicas actuales (disponibles/deseadas)",
254
+ "scale": "Escalar",
255
+ "scaling": "Escalando...",
256
+ "cancel": "Cancelar"
257
+ },
258
+ "nav": {
259
+ "dashboard": "Panel",
260
+ "analytics": "Analíticas",
261
+ "conversations": "Conversaciones",
262
+ "submissions": "Envíos",
263
+ "liveLogs": "Logs en vivo"
264
+ },
265
+ "wizard": {
266
+ "loading": "Cargando asistente...",
267
+ "loadingDeployment": "Cargando configuración del despliegue...",
268
+ "previewAfterDeployment": "Vista previa disponible tras el despliegue",
269
+ "clickToBegin": "Haz clic en un botón de despliegue para empezar",
270
+ "clickToUpdate": "Haz clic en un botón de despliegue para actualizar",
271
+ "steps": {
272
+ "identity": "Identidad",
273
+ "knowledge": "Base de conocimiento",
274
+ "deployment": "Despliegue",
275
+ "resources": "Recursos",
276
+ "infoGathering": "Recolección de información",
277
+ "triage": "Triaje",
278
+ "appointments": "Citas",
279
+ "botSetup": "Configuración del bot",
280
+ "capabilities": "Capacidades",
281
+ "formCollection": "Recolección por formulario",
282
+ "routing": "Enrutamiento",
283
+ "opticalRead": "Lectura óptica",
284
+ "deploy": "Compilar"
285
+ },
286
+ "titles": {
287
+ "newBot": "Nuevo bot",
288
+ "editBot": "Editar bot",
289
+ "cloneBot": "Clonar bot",
290
+ "newConversationalBot": "Nuevo bot conversacional",
291
+ "editConversationalBot": "Editar bot conversacional",
292
+ "cloneConversationalBot": "Clonar bot conversacional",
293
+ "newTriageBot": "Nuevo bot de triaje",
294
+ "editTriageBot": "Editar bot de triaje",
295
+ "cloneTriageBot": "Clonar bot de triaje",
296
+ "newAppointmentsBot": "Nuevo bot de citas",
297
+ "editAppointmentsBot": "Editar bot de citas",
298
+ "cloneAppointmentsBot": "Clonar bot de citas",
299
+ "configureYourBot": "Configura tu bot",
300
+ "selectBotCapabilities": "Selecciona capacidades del bot",
301
+ "defineBotIdentity": "Define la identidad del bot",
302
+ "uploadKnowledgeBase": "Sube la base de conocimiento",
303
+ "configureFormCollection": "Configura la recolección por formulario",
304
+ "configureAppointments": "Configura las citas",
305
+ "configureTriageRouting": "Configura el enrutamiento de triaje",
306
+ "configureOpticalRead": "Configura la lectura óptica",
307
+ "deployYourBot": "Compilar y descargar"
308
+ },
309
+ "badges": {
310
+ "modifying": "Modificando",
311
+ "clone": "Clonar",
312
+ "new": "Nuevo",
313
+ "conversational": "Conversacional",
314
+ "triage": "Triaje",
315
+ "appointments": "Citas",
316
+ "form": "Formulario",
317
+ "modular": "Modular",
318
+ "knowledge": "Conocimiento",
319
+ "forms": "Formularios",
320
+ "routing": "Enrutamiento",
321
+ "opticalRead": "Lectura óptica"
322
+ },
323
+ "theatre": {
324
+ "modelConfiguration": "Configuración del modelo",
325
+ "botPreview": "Vista previa del bot",
326
+ "knowledgeBase": "Base de conocimiento",
327
+ "deployment": "Despliegue",
328
+ "preview": "Vista previa",
329
+ "infoGathering": "Recolección de información",
330
+ "triageDestinations": "Destinos de triaje",
331
+ "appointmentTypes": "Tipos de cita",
332
+ "calendarProviders": "Proveedores de calendario",
333
+ "protocolPreview": "Vista previa del protocolo",
334
+ "formPreview": "Vista previa del formulario",
335
+ "appointmentPreview": "Vista previa de citas",
336
+ "triagePreview": "Vista previa del triaje",
337
+ "opticalReadPreview": "Vista previa de lectura óptica"
338
+ },
339
+ "protocols": {
340
+ "selectCapabilities": "Selecciona capacidades del bot",
341
+ "selectCapabilitiesDescription": "Habilita los protocolos que necesita tu bot. Combina varias capacidades.",
342
+ "knowledgeBase": "Base de conocimiento",
343
+ "knowledgeBaseDescription": "Responde preguntas usando documentos subidos y RAG (Generación Aumentada por Recuperación)",
344
+ "formCollection": "Recolección por formulario",
345
+ "formCollectionDescription": "Formularios conversacionales para recolectar información sin que la IA vea los datos del usuario",
346
+ "appointmentBooking": "Reserva de citas",
347
+ "appointmentBookingDescription": "Dirige a los usuarios a proveedores de calendario como Calendly o Google Calendar",
348
+ "triageRouting": "Enrutamiento por triaje",
349
+ "triageRoutingDescription": "Dirige a los usuarios a bots especializados o soporte humano según sus necesidades",
350
+ "opticalRead": "Lectura óptica",
351
+ "opticalReadDescription": "Extrae datos estructurados de una imagen subida usando un LLM con capacidad visual",
352
+ "opticalReadProviderGate": "La lectura óptica requiere un proveedor con capacidad visual. Anthropic y OpenAI son compatibles.",
353
+ "modelGate": "Este modelo solo admite el protocolo de conocimiento. Cambia a llama3.3 (Ollama) o a un proveedor en la nube para habilitar flujos multi-paso.",
354
+ "exampleFaq": "Chatbots de preguntas frecuentes",
355
+ "exampleDocumentation": "Asistentes de documentación",
356
+ "exampleProductSupport": "Soporte de producto",
357
+ "exampleLeadCapture": "Captura de prospectos",
358
+ "exampleOnboarding": "Incorporación de usuarios",
359
+ "exampleSurvey": "Recolección de encuestas",
360
+ "exampleConsultation": "Reserva de consultas",
361
+ "exampleScheduling": "Programación de servicios",
362
+ "exampleMeeting": "Organización de reuniones",
363
+ "exampleMultiBot": "Enrutamiento entre varios bots",
364
+ "exampleDelegation": "Delegación inteligente",
365
+ "exampleCustomerRouting": "Enrutamiento de clientes",
366
+ "selectAtLeastOne": "Selecciona al menos una capacidad",
367
+ "capabilitiesSelected": "{count} {count, plural, one {capability} other {capabilities}} seleccionadas",
368
+ "yourCombination": "Tu combinación:",
369
+ "combinationFullService": "Bot de servicio completo: responde preguntas, recolecta información del usuario y reserva citas.",
370
+ "combinationQaData": "Preguntas y respuestas + recolección de datos: responde preguntas desde tu base de conocimiento mientras recolectas información del usuario.",
371
+ "combinationQaBooking": "Preguntas y respuestas + reservas: responde preguntas y ayuda a los usuarios a reservar citas.",
372
+ "combinationIntakeBooking": "Admisión + reservas: recolecta información del usuario y programa citas.",
373
+ "preview": {
374
+ "selectProtocolPrompt": "Selecciona capacidades a la izquierda para ver qué puede hacer tu bot",
375
+ "selectedCapabilities": "Capacidades seleccionadas",
376
+ "combinedPossibilities": "Posibilidades combinadas",
377
+ "exampleUseCases": "Casos de uso de ejemplo",
378
+ "showExamples": "Mostrar ejemplos",
379
+ "contexts": {
380
+ "contextGeneric": "Genérico",
381
+ "contextMedical": "Médico",
382
+ "contextLegal": "Legal",
383
+ "contextRetail": "Minorista",
384
+ "contextRealEstate": "Inmobiliaria",
385
+ "contextEducation": "Educación",
386
+ "contextHospitality": "Hostelería",
387
+ "contextFinance": "Finanzas",
388
+ "medical": {
389
+ "medicalKnowledge": "Base de conocimiento médico",
390
+ "medicalKnowledgeDesc": "Responde preguntas de pacientes sobre síntomas, medicamentos, procedimientos y seguros",
391
+ "symptomChecker": "Verificador de síntomas",
392
+ "drugInfo": "Información de medicamentos",
393
+ "treatmentFAQ": "FAQ de tratamientos",
394
+ "insuranceCoverage": "Cobertura del seguro",
395
+ "prepInstructions": "Preparación de procedimientos",
396
+ "medicalForms": "Admisión de pacientes",
397
+ "medicalFormsDesc": "Recolecta historia clínica, seguros y consentimiento mediante formularios conversacionales",
398
+ "patientIntake": "Admisión de pacientes",
399
+ "medicalHistory": "Historia clínica",
400
+ "consentForms": "Formularios de consentimiento",
401
+ "insuranceVerification": "Verificación de seguro",
402
+ "symptomQuestionnaire": "Cuestionario de síntomas",
403
+ "medicalAppointments": "Programación de citas",
404
+ "medicalAppointmentsDesc": "Reserva consultas médicas, análisis y seguimientos con integración de calendario",
405
+ "doctorBooking": "Reserva con doctor",
406
+ "labScheduling": "Programación de laboratorio",
407
+ "followUpReminders": "Recordatorios de seguimiento",
408
+ "specialistReferral": "Derivación a especialista",
409
+ "telehealth": "Sesiones de telesalud",
410
+ "medicalTriage": "Triaje clínico",
411
+ "medicalTriageDesc": "Evalúa la urgencia y dirige a los pacientes al nivel de atención adecuado",
412
+ "urgencyAssessment": "Evaluación de urgencia",
413
+ "departmentRouting": "Enrutamiento por departamento",
414
+ "nurseEscalation": "Escalada a enfermería",
415
+ "emergencyDetection": "Detección de emergencias",
416
+ "specialistMatch": "Emparejamiento con especialista",
417
+ "medicalKnowledgeForm": "Admisión inteligente de pacientes",
418
+ "medicalKnowledgeFormDesc": "Educa a los pacientes mientras recolectas información de admisión",
419
+ "smartIntake": "Admisión inteligente",
420
+ "guidedSymptoms": "Recolección guiada de síntomas",
421
+ "educatedConsent": "Consentimiento informado",
422
+ "preVisitPrep": "Preparación previa a la visita",
423
+ "medicalKnowledgeAppt": "Reserva informada",
424
+ "medicalKnowledgeApptDesc": "Explica los servicios y ayuda a los pacientes a reservar la cita adecuada",
425
+ "informedBooking": "Reserva informada",
426
+ "prepThenSchedule": "Preparar y luego programar",
427
+ "serviceExplainer": "Explicador de servicios",
428
+ "waitTimeInfo": "Información de tiempo de espera",
429
+ "medicalTriple": "Recorrido del paciente",
430
+ "medicalTripleDesc": "Flujo completo de admisión: educa, recolecta información y programa en una sola conversación",
431
+ "fullPatientJourney": "Recorrido completo del paciente",
432
+ "newPatientOnboarding": "Incorporación de nuevos pacientes",
433
+ "referralWorkflow": "Flujo de derivación",
434
+ "medicalAll": "Recepción virtual",
435
+ "medicalAllDesc": "Recepcionista digital completa: triaje, admisión, educación y programación",
436
+ "virtualFrontDesk": "Recepción virtual",
437
+ "completePatientPortal": "Asistente de portal de pacientes",
438
+ "urgentCareBot": "Bot de atención urgente"
439
+ },
440
+ "legal": {
441
+ "legalKnowledge": "Información legal",
442
+ "legalKnowledgeDesc": "Responde preguntas sobre áreas de práctica, procesos y estructuras de honorarios",
443
+ "legalFAQ": "FAQ legal",
444
+ "caseTypesInfo": "Información sobre tipos de caso",
445
+ "feeStructure": "Estructura de honorarios",
446
+ "processExplainer": "Explicador de procesos",
447
+ "jurisdictionInfo": "Información de jurisdicción",
448
+ "legalForms": "Admisión de clientes",
449
+ "legalFormsDesc": "Recolecta detalles del caso, documentos e información de verificación de conflictos",
450
+ "clientIntake": "Admisión de clientes",
451
+ "caseDetails": "Detalles del caso",
452
+ "documentCollection": "Recolección de documentos",
453
+ "conflictCheck": "Verificación de conflictos",
454
+ "retainerInfo": "Información del anticipo",
455
+ "legalAppointments": "Reserva de consultas",
456
+ "legalAppointmentsDesc": "Programa consultas, declaraciones y reuniones",
457
+ "consultationBooking": "Reserva de consultas",
458
+ "depositionSchedule": "Programación de declaraciones",
459
+ "courtDateReminders": "Recordatorios de fechas judiciales",
460
+ "meetingCoordination": "Coordinación de reuniones",
461
+ "legalTriage": "Enrutamiento de casos",
462
+ "legalTriageDesc": "Dirige las consultas al abogado o área de práctica adecuada",
463
+ "caseTypeRouting": "Enrutamiento por tipo de caso",
464
+ "urgencyAssessment": "Evaluación de urgencia",
465
+ "attorneyMatch": "Emparejamiento de abogado",
466
+ "departmentRouting": "Enrutamiento por departamento",
467
+ "legalKnowledgeForm": "Evaluación de caso guiada",
468
+ "legalKnowledgeFormDesc": "Explica opciones legales mientras recolectas información del caso",
469
+ "guidedIntake": "Admisión guiada",
470
+ "informedConsent": "Consentimiento informado",
471
+ "caseEvaluation": "Evaluación de caso",
472
+ "legalAll": "Paralegal virtual",
473
+ "legalAllDesc": "Servicios completos al cliente: admisión, evaluación de caso, enrutamiento y programación",
474
+ "virtualParalegal": "Paralegal virtual",
475
+ "clientPortal": "Portal de cliente",
476
+ "caseManagement": "Gestión de casos"
477
+ },
478
+ "retail": {
479
+ "retailKnowledge": "Asistente de productos",
480
+ "retailKnowledgeDesc": "Responde preguntas sobre productos, disponibilidad, políticas y tallas",
481
+ "productInfo": "Información de productos",
482
+ "stockAvailability": "Disponibilidad de stock",
483
+ "returnPolicy": "Política de devoluciones",
484
+ "shippingFAQ": "FAQ de envíos",
485
+ "sizeGuide": "Guía de tallas",
486
+ "retailForms": "Atención al cliente",
487
+ "retailFormsDesc": "Gestiona consultas de pedidos, devoluciones y registros de garantía",
488
+ "orderLookup": "Consulta de pedido",
489
+ "returnRequest": "Solicitud de devolución",
490
+ "warrantyRegistration": "Registro de garantía",
491
+ "feedbackSurvey": "Encuesta de opinión",
492
+ "wishlist": "Recolección de lista de deseos",
493
+ "retailAppointments": "Reserva de servicio",
494
+ "retailAppointmentsDesc": "Programa compras personales, recogidas y servicios en tienda",
495
+ "personalShopping": "Compra personal",
496
+ "storePickup": "Recogida en tienda",
497
+ "serviceBooking": "Reserva de servicio",
498
+ "consultations": "Asesorías de estilo",
499
+ "fittingRoom": "Reserva de probador",
500
+ "retailTriage": "Enrutamiento de clientes",
501
+ "retailTriageDesc": "Dirige a los clientes al departamento correcto o escala incidencias",
502
+ "departmentRouting": "Enrutamiento por departamento",
503
+ "issueEscalation": "Escalada de incidencias",
504
+ "vipCustomers": "Clientes VIP",
505
+ "languageRouting": "Enrutamiento por idioma",
506
+ "retailAll": "Conserje virtual",
507
+ "retailAllDesc": "Asistente de compras completo: ayuda con productos, reserva de servicios y soporte",
508
+ "virtualConcierge": "Conserje virtual",
509
+ "omniChannelSupport": "Soporte omnicanal",
510
+ "personalShopperBot": "Bot de comprador personal"
511
+ },
512
+ "realestate": {
513
+ "realestateKnowledge": "Información de propiedades",
514
+ "realestateKnowledgeDesc": "Responde preguntas sobre anuncios, vecindarios y proceso de compra",
515
+ "listingInfo": "Información de anuncios",
516
+ "neighborhoodGuide": "Guía de vecindarios",
517
+ "mortgageFAQ": "FAQ de hipotecas",
518
+ "buyingProcess": "Proceso de compra",
519
+ "marketTrends": "Tendencias del mercado",
520
+ "realestateForms": "Calificación de prospectos",
521
+ "realestateFormsDesc": "Califica compradores y vendedores, y captura preferencias de propiedad",
522
+ "buyerQualification": "Calificación de comprador",
523
+ "sellerIntake": "Admisión de vendedor",
524
+ "propertyPreferences": "Preferencias de propiedad",
525
+ "preApprovalInfo": "Información de pre-aprobación",
526
+ "contactCapture": "Captura de contacto",
527
+ "realestateAppointments": "Programación de visitas",
528
+ "realestateAppointmentsDesc": "Reserva visitas a propiedades, jornadas de puertas abiertas y reuniones con agentes",
529
+ "showingSchedule": "Programación de visitas",
530
+ "openHouseRSVP": "Confirmación de jornada de puertas abiertas",
531
+ "agentMeeting": "Reunión con agente",
532
+ "virtualTour": "Tour virtual",
533
+ "inspectionBooking": "Reserva de inspección",
534
+ "realestateTriage": "Emparejamiento de agente",
535
+ "realestateTriageDesc": "Empareja prospectos con el agente correcto según necesidades y ubicación",
536
+ "buyerVsSeller": "Comprador vs vendedor",
537
+ "locationRouting": "Enrutamiento por ubicación",
538
+ "agentMatch": "Emparejamiento de agente",
539
+ "propertyTypeSpecialist": "Especialista en propiedad",
540
+ "realestateAll": "Agente virtual",
541
+ "realestateAllDesc": "Asistente inmobiliario completo: anuncios, calificación y programación",
542
+ "virtualAgent": "Agente virtual",
543
+ "leadQualification": "Calificación de prospectos",
544
+ "propertyMatchmaker": "Emparejador de propiedades"
545
+ },
546
+ "education": {
547
+ "educationKnowledge": "Información de cursos y programas",
548
+ "educationKnowledgeDesc": "Responde preguntas sobre cursos, admisiones, ayuda financiera y vida en el campus",
549
+ "courseCatalog": "Catálogo de cursos",
550
+ "admissionsFAQ": "FAQ de admisiones",
551
+ "financialAid": "Información de ayuda financiera",
552
+ "campusInfo": "Información del campus",
553
+ "programRequirements": "Requisitos del programa",
554
+ "educationForms": "Solicitudes estudiantiles",
555
+ "educationFormsDesc": "Recolecta información de inscripción, registro y solicitud",
556
+ "applicationForm": "Formulario de solicitud",
557
+ "enrollmentInfo": "Información de inscripción",
558
+ "transcriptRequest": "Solicitud de expediente",
559
+ "financialAidApp": "Solicitud de ayuda financiera",
560
+ "courseRegistration": "Registro de cursos",
561
+ "educationAppointments": "Programación académica",
562
+ "educationAppointmentsDesc": "Reserva reuniones con asesores, recorridos por el campus y sesiones de tutoría",
563
+ "advisorMeeting": "Reunión con asesor",
564
+ "campusTour": "Recorrido por el campus",
565
+ "admissionsInterview": "Entrevista de admisión",
566
+ "tutoringSessions": "Sesiones de tutoría",
567
+ "officeHours": "Horario de atención",
568
+ "educationTriage": "Enrutamiento estudiantil",
569
+ "educationTriageDesc": "Dirige las consultas al departamento o equipo de soporte adecuado",
570
+ "departmentRouting": "Enrutamiento por departamento",
571
+ "studentVsProspect": "Estudiante vs prospecto",
572
+ "academicVsAdmin": "Académico vs administrativo",
573
+ "urgencyLevel": "Nivel de urgencia",
574
+ "educationAll": "Asesor virtual",
575
+ "educationAllDesc": "Servicios estudiantiles completos: información, solicitudes y programación",
576
+ "virtualAdvisor": "Asesor virtual",
577
+ "admissionsBot": "Bot de admisiones",
578
+ "studentServicesHub": "Centro de servicios estudiantiles"
579
+ },
580
+ "hospitality": {
581
+ "hospitalityKnowledge": "Información para huéspedes",
582
+ "hospitalityKnowledgeDesc": "Responde preguntas sobre comodidades, restauración, actividades y atracciones locales",
583
+ "amenitiesInfo": "Información de comodidades",
584
+ "localAttractions": "Atracciones locales",
585
+ "diningOptions": "Opciones de restauración",
586
+ "policyFAQ": "FAQ de políticas",
587
+ "eventInfo": "Información de eventos",
588
+ "hospitalityForms": "Preferencias de huéspedes",
589
+ "hospitalityFormsDesc": "Captura preferencias de habitación, necesidades dietéticas y detalles de ocasiones especiales antes de la llegada",
590
+ "roomPreferences": "Preferencias de habitación",
591
+ "dietaryRestrictions": "Restricciones dietéticas",
592
+ "pillowMenu": "Menú de almohadas y ropa de cama",
593
+ "arrivalDetails": "Detalles de llegada",
594
+ "specialOccasions": "Ocasiones especiales",
595
+ "hospitalityAppointments": "Reserva de servicios",
596
+ "hospitalityAppointmentsDesc": "Reserva restauración, spa, actividades y servicio a la habitación",
597
+ "reservationBooking": "Reserva",
598
+ "spaAppointment": "Cita de spa",
599
+ "diningReservation": "Reserva de restauración",
600
+ "roomService": "Servicio a la habitación",
601
+ "activityBooking": "Reserva de actividades",
602
+ "hospitalityTriage": "Enrutamiento de huéspedes",
603
+ "hospitalityTriageDesc": "Dirige las solicitudes al departamento correcto o escala incidencias urgentes",
604
+ "guestVsProspect": "Huésped vs prospecto",
605
+ "urgentRequests": "Solicitudes urgentes",
606
+ "departmentRouting": "Enrutamiento por departamento",
607
+ "vipHandling": "Atención VIP",
608
+ "hospitalityAll": "Conserje virtual",
609
+ "hospitalityAllDesc": "Servicios completos para huéspedes: información, reservas y soporte",
610
+ "virtualConcierge": "Conserje virtual",
611
+ "guestServicesBot": "Bot de servicios para huéspedes",
612
+ "preArrivalConcierge": "Conserje pre-llegada"
613
+ },
614
+ "finance": {
615
+ "financeKnowledge": "Productos financieros",
616
+ "financeKnowledgeDesc": "Responde preguntas sobre cuentas, préstamos, tasas y requisitos KYC",
617
+ "productInfo": "Información de productos",
618
+ "ratesFAQ": "FAQ de tasas y tarifas",
619
+ "eligibilityGuide": "Guía de elegibilidad",
620
+ "kycRequirements": "Requisitos KYC",
621
+ "complianceInfo": "Información de cumplimiento",
622
+ "financeForms": "KYC e incorporación",
623
+ "financeFormsDesc": "Recolecta documentos de identidad, verifica clientes y completa la incorporación regulatoria",
624
+ "kycCollection": "Recolección KYC",
625
+ "identityVerification": "Verificación de identidad",
626
+ "amlScreening": "Cribado AML",
627
+ "accountOpening": "Apertura de cuenta",
628
+ "riskProfiling": "Perfilado de riesgo",
629
+ "financeAppointments": "Programación con asesor",
630
+ "financeAppointmentsDesc": "Reserva reuniones con asesores, oficiales de préstamos y especialistas",
631
+ "advisorMeeting": "Reunión con asesor",
632
+ "loanConsultation": "Consulta de préstamo",
633
+ "accountReview": "Revisión de cuenta",
634
+ "planningSession": "Sesión de planificación",
635
+ "branchVisit": "Visita a sucursal",
636
+ "financeTriage": "Enrutamiento de servicios",
637
+ "financeTriageDesc": "Dirige al especialista de producto correcto o escala casos complejos",
638
+ "productRouting": "Enrutamiento por producto",
639
+ "complianceEscalation": "Escalada de cumplimiento",
640
+ "advisorMatch": "Emparejamiento de asesor",
641
+ "fraudEscalation": "Escalada de fraude",
642
+ "financeAll": "Incorporación digital",
643
+ "financeAllDesc": "Incorporación digital completa: verificación KYC, emparejamiento de productos y programación con asesores",
644
+ "digitalOnboarding": "Incorporación digital",
645
+ "kycBot": "Bot KYC",
646
+ "wealthAdvisorAssistant": "Asistente de asesor patrimonial"
647
+ }
648
+ },
649
+ "knowledge": {
650
+ "title": "Base de conocimiento",
651
+ "description": "Responde preguntas usando tus documentos subidos con recuperación impulsada por RAG",
652
+ "example1": "Chatbot de FAQ de productos",
653
+ "example2": "Asistente de documentación",
654
+ "example3": "Portal de conocimiento interno"
655
+ },
656
+ "formGathering": {
657
+ "title": "Recolección por formulario",
658
+ "description": "Recolecta información del usuario progresivamente a través de una conversación natural",
659
+ "example1": "Formularios de captura de prospectos",
660
+ "example2": "Incorporación de clientes",
661
+ "example3": "Recolección de encuestas y opiniones"
662
+ },
663
+ "appointments": {
664
+ "title": "Reserva de citas",
665
+ "description": "Permite a los usuarios reservar reuniones mediante integraciones de calendario",
666
+ "example1": "Reserva de consultas de ventas",
667
+ "example2": "Programación de citas de servicio",
668
+ "example3": "Solicitudes de demos y reuniones"
669
+ },
670
+ "triage": {
671
+ "title": "Enrutamiento por triaje",
672
+ "description": "Dirige a los usuarios a bots especializados o soporte humano según sus necesidades",
673
+ "example1": "Enrutamiento por departamento",
674
+ "example2": "Escalada a agentes humanos",
675
+ "example3": "Orquestación entre varios bots"
676
+ },
677
+ "singles": {
678
+ "singleKnowledge": "Asistente de conocimiento",
679
+ "singleKnowledgeDesc": "Responde preguntas usando tus documentos subidos con recuperación inteligente impulsada por RAG",
680
+ "scenarioFAQ": "Chatbot de FAQ",
681
+ "scenarioProductInfo": "Información de productos",
682
+ "scenarioDocumentation": "Portal de documentación",
683
+ "scenarioInternalKB": "Base de conocimiento interna",
684
+ "scenarioPolicyLookup": "Consulta de políticas",
685
+ "singleFormGathering": "Recolector de datos",
686
+ "singleFormGatheringDesc": "Recolecta información estructurada progresivamente a través de una conversación natural",
687
+ "scenarioLeadCapture": "Captura de prospectos",
688
+ "scenarioSurvey": "Recolección de encuestas",
689
+ "scenarioContactForm": "Formularios de contacto",
690
+ "scenarioFeedback": "Recolección de opiniones",
691
+ "scenarioRegistration": "Registro a eventos",
692
+ "singleAppointments": "Asistente de reservas",
693
+ "singleAppointmentsDesc": "Ayuda a los usuarios a programar reuniones mediante integraciones de calendario como Calendly o Cal.com",
694
+ "scenarioBookMeeting": "Reserva de reuniones",
695
+ "scenarioScheduleDemo": "Programación de demos",
696
+ "scenarioConsultation": "Reserva de consultas",
697
+ "scenarioServiceAppt": "Citas de servicio",
698
+ "scenarioOfficeHours": "Horario de atención",
699
+ "singleTriage": "Enrutador inteligente",
700
+ "singleTriageDesc": "Dirige a los usuarios al destino correcto según intención, urgencia o tema",
701
+ "scenarioRouteToAgent": "Enrutamiento a agente",
702
+ "scenarioDepartmentRouting": "Enrutamiento por departamento",
703
+ "scenarioEscalation": "Manejo de escaladas",
704
+ "scenarioLanguageRouting": "Enrutamiento por idioma",
705
+ "scenarioVIPRouting": "Enrutamiento prioritario/VIP",
706
+ "singleOpticalRead": "Extractor visual",
707
+ "singleOpticalReadDesc": "Extrae campos estructurados de una imagen subida: el modelo lee, el usuario revisa y envía",
708
+ "scenarioIdScan": "Escaneo de documento de identidad",
709
+ "scenarioInsuranceCard": "Captura de tarjeta de seguro",
710
+ "scenarioReceiptExtract": "Extracción de recibo",
711
+ "scenarioBusinessCard": "Lector de tarjeta de visita",
712
+ "scenarioPrescriptionLabel": "Etiqueta de receta"
713
+ },
714
+ "synergies": {
715
+ "synergyKnowledgeForm": "Captura informada de prospectos",
716
+ "synergyKnowledgeFormDesc": "Responde preguntas sobre productos para generar confianza, y luego captura prospectos interesados con formularios contextuales",
717
+ "scenarioQualifyThenCapture": "Calificar y luego capturar",
718
+ "scenarioAnswerThenCollect": "Responder y luego recolectar",
719
+ "scenarioContextualForms": "Formularios contextuales",
720
+ "scenarioEducateThenConvert": "Educar y luego convertir",
721
+ "scenarioSupportToLead": "Soporte → Prospecto",
722
+ "synergyKnowledgeAppointments": "Reserva consultiva",
723
+ "synergyKnowledgeAppointmentsDesc": "Educa a los usuarios sobre servicios/productos y déjales reservar cuando estén listos",
724
+ "scenarioInformThenBook": "Informar y luego reservar",
725
+ "scenarioSmartScheduling": "Programación inteligente",
726
+ "scenarioPreQualifyBooking": "Pre-calificar reservas",
727
+ "scenarioServiceExplainer": "Explicador de servicios → Reservar",
728
+ "scenarioPricingToDemo": "FAQ de precios → Demo",
729
+ "synergyKnowledgeTriage": "Escalada inteligente",
730
+ "synergyKnowledgeTriageDesc": "Respuestas autoservicio para preguntas comunes, transferencia fluida para incidencias complejas",
731
+ "scenarioAnswerOrEscalate": "Responder o escalar",
732
+ "scenarioSmartRouting": "Enrutamiento inteligente",
733
+ "scenarioTieredSupport": "Soporte por niveles",
734
+ "scenarioDeflectOrRoute": "Desviar o enrutar",
735
+ "scenarioL1Automation": "Automatización L1",
736
+ "synergyKnowledgeOpticalRead": "Escanear y explicar",
737
+ "synergyKnowledgeOpticalReadDesc": "Extrae datos de una imagen subida y luego responde preguntas de seguimiento basadas en tu base de conocimiento",
738
+ "scenarioScanThenAsk": "Escanear y luego preguntar",
739
+ "scenarioDocumentExplainer": "Explicador de documento",
740
+ "scenarioCardToPolicy": "Tarjeta → consulta de póliza",
741
+ "scenarioPrescriptionExplainer": "Explicador de receta",
742
+ "scenarioReceiptToReturns": "Recibo → FAQ de devoluciones",
743
+ "synergyFormAppointments": "De admisión a reserva",
744
+ "synergyFormAppointmentsDesc": "Recolecta información de calificación y luego ofrece horarios personalizados",
745
+ "scenarioIntakeSchedule": "Admisión y luego programar",
746
+ "scenarioBookAndCapture": "Reservar y capturar",
747
+ "scenarioQualifyBook": "Calificar y luego reservar",
748
+ "scenarioPreVisitForm": "Formulario previo a la visita → Reservar",
749
+ "scenarioNeedsAssessment": "Evaluación de necesidades → Programar",
750
+ "synergyFormTriage": "Enrutamiento inteligente de prospectos",
751
+ "synergyFormTriageDesc": "Reúne datos del usuario y luego enruta al miembro del equipo o departamento perfecto",
752
+ "scenarioCollectThenRoute": "Recolectar y luego enrutar",
753
+ "scenarioFormBasedRouting": "Enrutamiento basado en formulario",
754
+ "scenarioLeadDistribution": "Distribución de prospectos",
755
+ "scenarioSkillBasedRouting": "Enrutamiento por habilidades",
756
+ "scenarioTerritoryAssignment": "Asignación por territorio",
757
+ "synergyAppointmentsTriage": "Reserva con especialistas",
758
+ "synergyAppointmentsTriageDesc": "Identifica al especialista adecuado para las necesidades del usuario y reserva directamente",
759
+ "scenarioRouteToCalendar": "Enrutar al calendario",
760
+ "scenarioSpecialistBooking": "Reserva con especialista",
761
+ "scenarioSmartDelegation": "Delegación inteligente",
762
+ "scenarioExpertMatch": "Emparejamiento de expertos",
763
+ "scenarioAvailabilityRouting": "Enrutamiento por disponibilidad",
764
+ "synergyTriple1": "Embudo de ventas completo",
765
+ "synergyTriple1Desc": "Recorrido de ventas completo: educa prospectos, captura clientes potenciales y reserva demos calificadas",
766
+ "scenarioFullSalesFlow": "Flujo de ventas completo",
767
+ "scenarioCompleteOnboarding": "Incorporación completa",
768
+ "scenarioNurtureToClose": "Nutrir hasta el cierre",
769
+ "scenarioInboundSales": "Automatización de ventas entrantes",
770
+ "synergyTriple2": "Centro de soporte",
771
+ "synergyTriple2Desc": "Base de conocimiento de autoservicio, creación de tickets y escalada inteligente a agentes",
772
+ "scenarioSupportEscalation": "Escalada de soporte",
773
+ "scenarioIntelligentTicketing": "Ticketing inteligente",
774
+ "scenarioHelpDeskAuto": "Automatización del help desk",
775
+ "scenarioIssueCapture": "Captura de incidencias → Enrutar",
776
+ "synergyTriple3": "Flujo de consulta",
777
+ "synergyTriple3Desc": "Responde preguntas, empareja con el experto adecuado y habilita la reserva directa en el calendario",
778
+ "scenarioMultiSpecialistBooking": "Reserva con varios especialistas",
779
+ "scenarioSmartConsultation": "Consulta inteligente",
780
+ "scenarioAdvisoryFlow": "Flujo de servicios consultivos",
781
+ "scenarioExpertConnect": "Conexión con expertos",
782
+ "synergyTriple4": "Admisión completa",
783
+ "synergyTriple4Desc": "Formularios de admisión estructurados, enrutamiento inteligente a equipos y programación automatizada",
784
+ "scenarioIntakeRouteBook": "Admisión → Enrutar → Reservar",
785
+ "scenarioCompleteLeadFlow": "Flujo de prospectos completo",
786
+ "scenarioPatientIntake": "Flujo de admisión de pacientes",
787
+ "scenarioClientOnboarding": "Incorporación de clientes",
788
+ "synergyAll": "Asistente empresarial",
789
+ "synergyAllDesc": "Conserje con todas las funciones: responde preguntas, recolecta datos, enruta inteligentemente y reserva citas",
790
+ "scenarioEnterpriseBot": "Asistente empresarial",
791
+ "scenarioFullServiceAssistant": "Bot de servicio completo",
792
+ "scenarioDigitalConcierge": "Conserje digital",
793
+ "scenarioVirtualReceptionist": "Recepcionista virtual",
794
+ "scenarioUnifiedSupport": "Centro de soporte unificado"
795
+ }
796
+ }
797
+ },
798
+ "modular": {
799
+ "addCalendarProvider": "Añadir proveedor de calendario",
800
+ "addUrlDestination": "Añadir destino URL",
801
+ "redirectToBot": "Redirigir al bot",
802
+ "addRoutingDestination": "Añadir destino de enrutamiento",
803
+ "selectedBot": "Bot seleccionado",
804
+ "displayName": "Nombre para mostrar",
805
+ "displayNamePlaceholder": "p. ej., Soporte de ventas, Ayuda técnica",
806
+ "description": "Descripción",
807
+ "descriptionPlaceholder": "Describe cuándo se debe enrutar a los usuarios aquí...",
808
+ "url": "URL",
809
+ "urlPlaceholder": "https://example.com/support",
810
+ "paradigm": "Paradigma",
811
+ "protocols": "Protocolos",
812
+ "set": "Establecido",
813
+ "notGenerated": "No generado",
814
+ "calendars": "Calendarios",
815
+ "configured": "{count} configurados",
816
+ "triageRoutes": "Rutas de triaje",
817
+ "opticalReadFields": "Campos de lectura óptica",
818
+ "required": "Obligatorio",
819
+ "displayNameRequired": "El nombre para mostrar es obligatorio",
820
+ "descriptionRequired": "La descripción es obligatoria",
821
+ "urlRequired": "La URL es obligatoria",
822
+ "urlInvalid": "Introduce una URL válida",
823
+ "addOpticalReadField": "Añadir campo de extracción",
824
+ "editOpticalReadField": "Editar campo de extracción",
825
+ "updateOpticalReadField": "Actualizar campo de extracción"
826
+ },
827
+ "tabs": {
828
+ "desktop": "Escritorio",
829
+ "documents": "Documentos",
830
+ "fieldsDisplay": "Visualización de campos",
831
+ "flow": "Flujo",
832
+ "jsonView": "Vista JSON",
833
+ "fields": "Campos",
834
+ "preview": "Vista previa"
835
+ },
836
+ "identity": {
837
+ "chatDisplayName": "Nombre mostrado en la ventana de chat",
838
+ "chatDisplayNameHelper": "Nombre que aparece en la cabecera de la interfaz de chat",
839
+ "personaObjective": "Persona y objetivo",
840
+ "personaObjectivePlaceholder": "Describe el propósito, la personalidad y las instrucciones personalizadas de tu bot",
841
+ "personaObjectiveHelper": "Define cómo debe comportarse tu bot, en qué debe ayudar y las pautas específicas.",
842
+ "welcomeMessage": "Mensaje de bienvenida",
843
+ "welcomeMessagePlaceholder": "¡Hola! ¿En qué puedo ayudarte hoy?",
844
+ "welcomeMessageHelper": "El primer mensaje que ven los usuarios al iniciar una conversación.",
845
+ "suggestedPrompts": "Sugerencias (opcional)",
846
+ "suggestedPromptsHelper": "Proporciona sugerencias de inicio rápido para ayudar a los usuarios a comenzar conversaciones",
847
+ "inputPlaceholder": "Texto de marcador del campo",
848
+ "inputPlaceholderHelper": "Texto de marcador en el campo de entrada de mensajes",
849
+ "inputPlaceholderDefault": "Escribe tu mensaje...",
850
+ "promptPlaceholder": "¿En qué puedes ayudarme?",
851
+ "chatDisplayNamePlaceholder": "Bot",
852
+ "promptItemLabel": "Sugerencia"
853
+ },
854
+ "resources": {
855
+ "botName": "Establece un nombre único para el bot",
856
+ "botNameHelper": "Esto se usará como identificador único de recurso. Máximo 50 caracteres.",
857
+ "botNamePlaceholder": "Mi bot increíble",
858
+ "aboutBotNames": "Sobre los nombres de bot",
859
+ "botNameInfo": "Los nombres de recurso se pueden buscar en el panel. Usa descripciones significativas o implementa tu propio sistema.",
860
+ "botNameWarning": "El nombre no se puede cambiar después del despliegue.",
861
+ "provider": "Proveedor",
862
+ "selectProvider": "Selecciona un proveedor",
863
+ "model": "Modelo",
864
+ "selectModel": "Selecciona un modelo",
865
+ "apiKey": "Clave API",
866
+ "apiKeyEnter": "Introduce tu clave API",
867
+ "apiKeySelectProviderFirst": "Selecciona primero un proveedor",
868
+ "apiKeySavedPlaceholder": "•••••••• (usando la clave guardada)",
869
+ "apiKeyExistingPlaceholder": "•••••••• (clave existente registrada — déjalo en blanco para mantenerla)",
870
+ "apiKeyUsingSaved": "Usando la clave API guardada:",
871
+ "apiKeyExistingConfigured": "Clave API existente configurada — se reutilizará a menos que introduzcas una nueva",
872
+ "apiKeyIsSet": "La clave API está establecida",
873
+ "apiKeyClear": "Borrar",
874
+ "apiKeyAbout": "Sobre las claves API",
875
+ "apiKeyTooltip": "Tu clave API se cifra y almacena de forma segura. Se usará para impulsar las respuestas de tu chatbot. Puedes gestionar tus claves API guardadas en los ajustes.",
876
+ "apiKeyEncryptedHelper": "Tu clave API se cifra y almacena de forma segura",
877
+ "apiKeyLoadingSaved": "Cargando claves guardadas...",
878
+ "apiKeyOrUseSaved": "O usa una clave API guardada:",
879
+ "ollamaNoCredsNeeded": "Ollama se ejecuta contra tu propio endpoint — no se necesita clave API.",
880
+ "ollamaHost": "URL del host de Ollama",
881
+ "ollamaHostHelper": "El endpoint al que se conectará tu bot. Déjalo en blanco para usar http://localhost:11434 por defecto. Si tu bot se ejecuta en Docker y Ollama corre en el host, usa http://host.docker.internal:11434 (Mac/Windows) o la IP LAN de tu host (Linux). Los despliegues en la nube necesitan un endpoint de Ollama accesible públicamente. Requiere Ollama ≥ 0.5.0 para garantías de validez de envelope — los daemons más antiguos funcionan pero recurren a un parseo de JSON de mejor esfuerzo.",
882
+ "ollamaHostSavedPlaceholder": "Usando el host guardado — bórralo para escribir una URL nueva",
883
+ "ollamaHostUsingSaved": "Usando el host de Ollama guardado:",
884
+ "ollamaHostOrUseSaved": "O usa un host de Ollama guardado:",
885
+ "awsCredentialsUsing": "Usando las credenciales AWS guardadas:",
886
+ "awsCredentialsExisting": "Credenciales AWS existentes configuradas — se reutilizarán a menos que introduzcas nuevas a continuación",
887
+ "awsUseIamRole": "Usar rol IAM (recomendado para EKS/EC2)",
888
+ "awsUseIamRoleHelper": "Usa el rol IAM de la instancia/pod en lugar de credenciales explícitas",
889
+ "awsAccessKeyId": "AWS Access Key ID",
890
+ "awsAccessKeyIdPlaceholder": "AKIAIOSFODNN7EXAMPLE",
891
+ "awsSecretAccessKey": "AWS Secret Access Key",
892
+ "awsSecretAccessKeyPlaceholder": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
893
+ "bedrockRegion": "Región de Bedrock",
894
+ "bedrockRegionOption": "{name} ({geoPrefix} multirregión)",
895
+ "bedrockCrossRegion": "La inferencia multirregión enruta las solicitudes a la capacidad disponible en la región {regionName}",
896
+ "regionUS": "EE. UU.",
897
+ "regionEU": "UE",
898
+ "regionAPAC": "APAC",
899
+ "awsUsingIamRoleStatus": "Usando rol IAM",
900
+ "awsCredentialsConfigured": "Credenciales AWS configuradas",
901
+ "awsLoadingCredentials": "Cargando credenciales guardadas...",
902
+ "awsOrUseSaved": "O usa credenciales AWS guardadas:"
903
+ },
904
+ "knowledge": {
905
+ "loadingDocuments": "Cargando documentos...",
906
+ "noDocumentsInSpace": "Aún no hay documentos en este bot space.",
907
+ "selectFromBotSpace": "Seleccionar desde archivos del Bot Space",
908
+ "selected": "Seleccionado",
909
+ "select": "Seleccionar",
910
+ "skipRag": "Omitir RAG",
911
+ "skipRagHelper": "El prompt de objetivo será la única fuente de conocimiento"
912
+ },
913
+ "infoGathering": {
914
+ "formRegion": "Región del formulario",
915
+ "formRegionHelper": "Establece patrones de validación, formatos de campo y etiquetas para tu región objetivo",
916
+ "describeInfo": "Describe la información que quieres recolectar",
917
+ "describeInfoPlaceholder": "Quiero recolectar el nombre, correo y empresa del usuario...",
918
+ "describeInfoHelperEdit": "Añade una descripción y regenera, o edita el JSON directamente en la pestaña Vista JSON",
919
+ "describeInfoHelper": "Describe los campos del formulario en texto plano",
920
+ "aiFormGeneration": "Generación de formularios con IA",
921
+ "regenerateDescription": "Regenera la estructura del formulario a partir de tu nueva descripción",
922
+ "generateDescription": "Genera un formulario estructurado a partir de tu descripción",
923
+ "errorNoDescription": "Describe la información que quieres recolectar",
924
+ "errorNoApiKey": "Falta la clave API. Vuelve al paso 1 e introduce tu clave API.",
925
+ "formSubmissionOptions": "Opciones de envío del formulario",
926
+ "sendToControlPlane": "Enviar al plano de control",
927
+ "sendToControlPlaneHelper": "Almacena los envíos completados en tu panel para visualizarlos y exportarlos",
928
+ "webhookUrl": "URL de webhook externo (opcional)",
929
+ "webhookUrlPlaceholder": "https://tu-url-de-webhook.com/endpoint",
930
+ "webhookUrlHelper": "También envía los datos del formulario a un webhook externo (p. ej., Zapier, Make, endpoint personalizado)",
931
+ "afterSubmitMessage": "Mensaje de chat tras el envío",
932
+ "afterSubmitPlaceholder": "¡Gracias! Vamos a empezar...",
933
+ "afterSubmitHelper": "Mensaje mostrado a los usuarios después de enviar el formulario",
934
+ "termsAndConditions": "Términos y condiciones",
935
+ "termsPlaceholder": "Introduce aquí el texto de tus términos y condiciones. Admite formato markdown...",
936
+ "termsHelper": "Si se proporciona, aparecerá una casilla obligatoria como último campo del formulario. Déjalo vacío para omitirlo.",
937
+ "termsInfo": "Los usuarios pueden hacer clic en el enlace «Términos y condiciones» para ver el texto completo en una ventana emergente antes de aceptar.",
938
+ "jsonViewTip": "Consejo: cambia a la pestaña «Vista JSON» a la derecha para editar la estructura del formulario generado."
939
+ },
940
+ "triage": {
941
+ "addRoute": "Añadir ruta de chatbot",
942
+ "deleteRoute": "Eliminar ruta",
943
+ "deleteDestination": "Eliminar destino",
944
+ "selectedBotUrl": "URL del bot seleccionado",
945
+ "editBotDestination": "Editar destino de bot",
946
+ "editUrlDestination": "Editar destino URL",
947
+ "selectBot": "Seleccionar bot",
948
+ "loadingBots": "Cargando bots...",
949
+ "noBotsAvailable": "No hay bots disponibles. Crea primero un bot.",
950
+ "descriptionHelper": "Usado para el emparejamiento RAG y determinar cuándo enrutar a los usuarios aquí",
951
+ "updateDestination": "Actualizar destino"
952
+ },
953
+ "opticalRead": {
954
+ "addField": "Añadir campo de extracción",
955
+ "deleteField": "Eliminar campo",
956
+ "label": "Etiqueta",
957
+ "labelPlaceholder": "Fecha de nacimiento",
958
+ "labelRequired": "La etiqueta es obligatoria",
959
+ "idName": "Nombre de ID",
960
+ "idNamePlaceholder": "dob",
961
+ "idNameHelper": "Clave en snake_case usada en extractedFields",
962
+ "idNameRequired": "El nombre de ID es obligatorio",
963
+ "idNameInvalid": "Usa solo letras minúsculas, números y guiones bajos",
964
+ "idNameDuplicate": "El nombre de ID debe ser único",
965
+ "hint": "Pista",
966
+ "hintPlaceholder": "MM/DD/AAAA, frente de la licencia",
967
+ "hintHelper": "Opcional: indica la ubicación o el formato. La pista es la primitiva de ajuste clave.",
968
+ "noFieldsYet": "Añade al menos un campo de extracción para habilitar la lectura óptica.",
969
+ "providerNotSupported": "La lectura óptica requiere un proveedor con capacidad visual. Anthropic y OpenAI son compatibles.",
970
+ "intro": "Nombra los espacios que quieres extraer. El modelo los resuelve contra su propio conocimiento visual; la pista opcional indica ubicación o formato.",
971
+ "showUploadOnStart": "Mostrar el botón de subida como sugerencia inicial",
972
+ "showUploadOnStartHelper": "Muestra una tarjeta de subida junto a las sugerencias del primer mensaje del bot. Omite la introducción conversacional: el usuario puede subir de inmediato.",
973
+ "afterSubmitMessage": "Mensaje de chat tras el envío (opcional)",
974
+ "afterSubmitMessagePlaceholder": "¡Gracias! Hemos recibido tus datos.",
975
+ "afterSubmitMessageHelper": "Respuesta del bot mostrada en el chat después de que el usuario envía los campos extraídos. Déjalo vacío para omitirlo."
976
+ },
977
+ "appointments": {
978
+ "addAppointment": "Añadir tipo de cita",
979
+ "deleteAppointment": "Eliminar cita",
980
+ "editCalendarProvider": "Editar proveedor de calendario",
981
+ "updateCalendarProvider": "Actualizar proveedor de calendario",
982
+ "calendarId": "ID del calendario",
983
+ "calendarIdPlaceholder": "p. ej., dr-smith-general",
984
+ "calendarIdHelper": "Identificador único devuelto como calendarId en la respuesta",
985
+ "calendarIdRequired": "El ID del calendario es obligatorio",
986
+ "calendarIdExists": "Este ID de calendario ya existe",
987
+ "providerName": "Nombre del proveedor",
988
+ "providerNameRequired": "El nombre del proveedor es obligatorio",
989
+ "providerNameHelper": "Servicio del proveedor de calendario",
990
+ "popupUrl": "URL emergente",
991
+ "popupUrlPlaceholder": "https://calendly.com/dr-smith",
992
+ "popupUrlHelper": "URL que se abre cuando el usuario hace clic en el botón de calendario",
993
+ "popupUrlRequired": "La URL emergente es obligatoria",
994
+ "popupUrlInvalid": "Introduce una URL válida",
995
+ "descriptionPlaceholder": "Describe cuándo deben reservar los usuarios con este proveedor de calendario...",
996
+ "descriptionRequired": "La descripción es obligatoria",
997
+ "descriptionHelper": "Usado para el emparejamiento RAG y determinar qué calendario mostrar"
998
+ },
999
+ "deployment": {
1000
+ "inProgress": "Despliegue en curso...",
1001
+ "testDeployment": "Despliegue de prueba",
1002
+ "currentDeployment": "Despliegue actual",
1003
+ "testBotLive": "Tu bot de prueba está activo en esta URL:",
1004
+ "botLive": "Tu bot está activo en esta URL:",
1005
+ "testSuccess": "¡Despliegue de prueba exitoso!",
1006
+ "testSuccessMessage": "Tu bot de prueba está activo y funcionando. Puedes probarlo en el panel de vista previa a la derecha.",
1007
+ "productionSuccess": "¡Despliegue de producción exitoso!",
1008
+ "productionSuccessMessage": "Tu bot está ahora activo y listo para uso en producción.",
1009
+ "deployToProduction": "Desplegar a producción",
1010
+ "viewDeployments": "Ver bots",
1011
+ "previewChanges": "Vista previa de cambios (prueba)",
1012
+ "deployToTest": "Desplegar a prueba",
1013
+ "updateProduction": "Actualizar bot de producción",
1014
+ "editMode": "Modo edición",
1015
+ "editModeMessage": "Al desplegar se actualizará el bot existente con tus cambios. La URL del bot seguirá siendo la misma.",
1016
+ "configSummary": "Resumen de configuración",
1017
+ "botName": "Nombre del bot:",
1018
+ "provider": "Proveedor:",
1019
+ "model": "Modelo:",
1020
+ "documents": "Documentos:",
1021
+ "formCollection": "Recolección por formulario:",
1022
+ "uploaded": "subidos",
1023
+ "enabled": "Habilitado",
1024
+ "embeddings": "Embeddings",
1025
+ "embeddingsChunks": "{count} fragmentos",
1026
+ "editConfiguration": "Editar configuración",
1027
+ "aboutDeployments": "Sobre los despliegues",
1028
+ "testDeploymentInfo": "Despliegue de prueba: crea una URL persistente para pruebas.",
1029
+ "productionDeploymentInfo": "Despliegue de producción: crea tu bot en vivo accesible públicamente.",
1030
+ "deploymentRegion": "Región de despliegue",
1031
+ "useOrgDefault": "Usar predeterminada de la organización ({region})",
1032
+ "regionHelp": "Selecciona la región de AWS donde se desplegará tu bot. Esto afecta a la latencia y a la residencia de datos.",
1033
+ "none": "Ninguna",
1034
+ "saving": "Guardando…",
1035
+ "saveChanges": "Guardar cambios",
1036
+ "saveConfiguration": "Guardar configuración",
1037
+ "saveFailed": "Guardado fallido",
1038
+ "saveErrorFallback": "No se pudo guardar la configuración",
1039
+ "buildFailed": "Compilación fallida",
1040
+ "buildErrorFallback": "No se pudo compilar el artefacto",
1041
+ "building": "Compilando…",
1042
+ "buildArtifact": "Compilar artefacto",
1043
+ "configurationSaved": "Configuración guardada",
1044
+ "configurationSavedDesc": "Guardado como <mono>{name}</mono>. Compila el ZIP ejecutable cuando estés listo.",
1045
+ "artifactReadyCached": "Artefacto listo (en caché)",
1046
+ "artifactBuilt": "Artefacto compilado",
1047
+ "artifactReadyDesc": "Tu artefacto de bot <mono>{name}</mono> está listo para descargar.",
1048
+ "downloadArtifact": "Descargar artefacto",
1049
+ "downloadArtifactWithDocs": "Descargar con documentos",
1050
+ "previewHelp": "Prueba tu bot en vivo en el panel de la derecha. Cuando las respuestas te parezcan correctas, guarda y luego descarga la configuración. Compila el artefacto ejecutable cuando estés listo."
1051
+ },
1052
+ "previews": {
1053
+ "identity": {
1054
+ "fallbackBotName": "Bot",
1055
+ "fallbackPlaceholder": "Escribe tu mensaje...",
1056
+ "fallbackFirstMessage": "¡Hola! ¿En qué puedo ayudarte hoy?",
1057
+ "minimize": "Minimizar",
1058
+ "minimizeChat": "Minimizar chat",
1059
+ "botMessage": "Mensaje del bot",
1060
+ "suggestedPrompts": "Sugerencias",
1061
+ "chatMessage": "Mensaje de chat",
1062
+ "typeYourMessageAria": "Escribe tu mensaje",
1063
+ "sendMessage": "Enviar mensaje"
1064
+ },
1065
+ "appointments": {
1066
+ "fallbackBotName": "Bot de citas",
1067
+ "noProviders": "Aún no hay proveedores de calendario configurados",
1068
+ "noProvidersHint": "Haz clic en «Añadir proveedor de calendario» para empezar",
1069
+ "userQuery": "Consulta del usuario",
1070
+ "calendarIconAlt": "Icono de calendario"
1071
+ },
1072
+ "triage": {
1073
+ "fallbackBotName": "Bot de triaje",
1074
+ "noRoutes": "Aún no hay destinos de enrutamiento configurados",
1075
+ "noRoutesHint": "Haz clic en «Añadir destino de enrutamiento» para empezar",
1076
+ "user": "Usuario",
1077
+ "evaluatesAndRoutes": "Evalúa y enruta"
1078
+ },
1079
+ "opticalRead": {
1080
+ "noFields": "Aún no hay campos de extracción configurados",
1081
+ "noFieldsHint": "Haz clic en «Añadir campo de extracción» para empezar",
1082
+ "clientPreviewLabel": "Cómo lo verán los usuarios",
1083
+ "editButton": "Editar",
1084
+ "sendButton": "Enviar",
1085
+ "previewNote": "Los inputs se muestran deshabilitados hasta la extracción. Los usuarios tocan Editar para corregir y Enviar para enviar."
1086
+ },
1087
+ "knowledge": {
1088
+ "unlinkTitle": "Desvincular de este bot (el archivo permanece en el bot space)",
1089
+ "deleteTitle": "Eliminar el documento permanentemente",
1090
+ "deleteConfirm": "¿Seguro que quieres eliminar «{name}»? Esto eliminará el archivo permanentemente y no se puede deshacer.",
1091
+ "deleteError": "No se pudo eliminar el archivo",
1092
+ "uploadedDocuments": "Documentos subidos",
1093
+ "noUploadedDocs": "No hay documentos subidos",
1094
+ "uploadDocsLeft": "Sube documentos a la izquierda",
1095
+ "linkedFromBotSpace": "Vinculado desde el Bot Space",
1096
+ "noLinkedDocs": "No hay documentos vinculados",
1097
+ "selectSharedFilesHint": "Selecciona archivos compartidos desde el bot space",
1098
+ "linkedTooltip": "Los documentos subidos pasan a formar parte de este bot space por defecto",
1099
+ "linkedFooter": "Los documentos vinculados permanecen en el bot space al desvincularse de este bot.",
1100
+ "ragInfo": "Estos documentos se procesarán y se usarán para proporcionar contexto a las respuestas de tu bot mediante RAG (Generación Aumentada por Recuperación).",
1101
+ "fileCount": "{count} {count, plural, one {file} other {files}}",
1102
+ "untitled": "Sin título",
1103
+ "unknown": "Desconocido",
1104
+ "fileFallback": "ARCHIVO",
1105
+ "embedding": {
1106
+ "title": "Embeddings vectoriales",
1107
+ "ready": "Listo",
1108
+ "notGenerated": "No generado",
1109
+ "chunks": "Fragmentos",
1110
+ "model": "Modelo",
1111
+ "sourceDocuments": "Documentos fuente",
1112
+ "generated": "Generado",
1113
+ "embeddedFiles": "Archivos integrados",
1114
+ "technicalDetails": "Detalles técnicos",
1115
+ "noEmbeddingsYet": "Aún no hay embeddings",
1116
+ "uploadFirst": "Sube primero documentos en la pestaña Documentos.",
1117
+ "clickToGenerate": "Haz clic abajo para fragmentar e integrar tus documentos localmente.",
1118
+ "generating": "Generando…",
1119
+ "embeddingDocs": "Integrando documentos…",
1120
+ "regenerate": "Regenerar embeddings",
1121
+ "generate": "Generar embeddings vectoriales",
1122
+ "errorNoDocuments": "Sube primero al menos un documento",
1123
+ "errorGenerationFailed": "No se pudieron generar los embeddings",
1124
+ "doneStatus": "¡Listo! {count} fragmentos integrados con {model}.",
1125
+ "regenWarning": "Si cambias el conjunto de documentos, regenera para mantener el artefacto sincronizado.",
1126
+ "vectorModeInfo": "En modo vectorial, el bot integra consultas en proceso usando el modelo ONNX multilingual-e5-small empaquetado y ejecuta similitud coseno localmente. Sin dependencia de la fábrica en tiempo de ejecución."
1127
+ }
1128
+ },
1129
+ "form": {
1130
+ "validate": "Validar",
1131
+ "validateInput": "Validar entrada",
1132
+ "selectOption": "Selecciona una opción...",
1133
+ "noStructure": "No se ha generado ninguna estructura de formulario",
1134
+ "noStructureHint": "Genera un formulario para ver la vista previa",
1135
+ "editJsonTitle": "Editar estructura del formulario (JSON)",
1136
+ "openLargerView": "Abrir en vista ampliada",
1137
+ "expand": "Expandir",
1138
+ "generatedJsonLabel": "Estructura del formulario generada (JSON)",
1139
+ "validJson": "JSON válido",
1140
+ "invalidJson": "JSON inválido",
1141
+ "jsonParseError": "Error de análisis JSON:",
1142
+ "editJsonHelper": "Edita este JSON para personalizar la estructura del formulario. Los cambios se reflejarán en la pestaña Visualización de campos.",
1143
+ "branches": "Ramas",
1144
+ "requiredBadge": "Obligatorio",
1145
+ "piiBadge": "PII"
1146
+ },
1147
+ "bot": {
1148
+ "missingConfig": "Añade un proveedor, modelo y clave API en el paso 1 para iniciar el bot de vista previa.",
1149
+ "livePreview": "Vista previa en vivo",
1150
+ "resetPreview": "Restablecer vista previa",
1151
+ "iframeTitle": "Vista previa del bot",
1152
+ "skippedInPreview": "(omitido en la vista previa)",
1153
+ "webhookSideEffect": "El webhook haría POST a {url}",
1154
+ "webhookNoUrl": "(sin URL)",
1155
+ "submitFormSideEffect": "El formulario se enviaría al plano de control",
1156
+ "genericSideEffect": "Efecto secundario omitido en la vista previa"
1157
+ }
1158
+ },
1159
+ "botSummary": {
1160
+ "title": "Resumen del bot",
1161
+ "whyFillThis": "¿Por qué rellenar esto?",
1162
+ "tooltipLine1": "El resumen del bot ayuda a otros bots de tu red a entender qué hace este bot y qué conocimiento tiene.",
1163
+ "tooltipLine2": "Esto permite un enrutamiento, triaje y orquestación entre múltiples bots más inteligente.",
1164
+ "description": "Describe el rol de este bot en tu red.",
1165
+ "notSystemPrompt": "No es un system prompt",
1166
+ "placeholder": "Describe qué hace este bot y qué conocimiento tiene. P. ej., «Gestiona consultas de facturación con acceso a documentos de precios y FAQs».",
1167
+ "characters": "caracteres",
1168
+ "optionalBadge": "Opcional: despliega para guardar y usar este resumen en tu red."
1169
+ }
1170
+ },
1171
+ "settings": {
1172
+ "title": "Ajustes",
1173
+ "subtitle": "Gestiona los ajustes de tu cuenta y preferencias",
1174
+ "tabs": {
1175
+ "apiKeys": "Claves API",
1176
+ "account": "Cuenta",
1177
+ "servicePlan": "Plan de servicio",
1178
+ "languages": "Idiomas",
1179
+ "botSpaces": "Bot Spaces",
1180
+ "builderConfig": "Configuración del constructor",
1181
+ "region": "Región",
1182
+ "auditLogs": "Logs de auditoría",
1183
+ "admin": "Admin"
1184
+ },
1185
+ "languages": {
1186
+ "title": "Preferencias de idioma",
1187
+ "description": "Elige tu idioma preferido para la interfaz",
1188
+ "preferredLanguage": "Idioma preferido",
1189
+ "languageHelper": "Esta configuración se aplicará en todas tus sesiones",
1190
+ "saveLanguage": "Guardar idioma",
1191
+ "saveSuccess": "Preferencia de idioma guardada correctamente",
1192
+ "saveError": "No se pudo guardar la preferencia de idioma",
1193
+ "aboutTitle": "Sobre la configuración de idioma",
1194
+ "aboutItem1": "Tu preferencia de idioma se almacena en tu cuenta",
1195
+ "aboutItem2": "Los cambios surtirán efecto después de guardar",
1196
+ "aboutItem3": "Es posible que parte del contenido aún no esté traducido",
1197
+ "locales": {
1198
+ "en": "Inglés (English)",
1199
+ "es": "Español",
1200
+ "fr": "Francés (Français)",
1201
+ "de": "Alemán (Deutsch)",
1202
+ "pt": "Portugués (Português)",
1203
+ "ja": "Japonés (日本語)",
1204
+ "zh": "Chino (中文)",
1205
+ "ko": "Coreano (한국어)",
1206
+ "uk": "Ucraniano (Українська)",
1207
+ "ar": "Árabe (العربية)",
1208
+ "nl": "Neerlandés (Nederlands)",
1209
+ "sw": "Suajili (Kiswahili)"
1210
+ }
1211
+ },
1212
+ "region": {
1213
+ "title": "Región de despliegue",
1214
+ "description": "Configura la región AWS predeterminada para los despliegues de bots",
1215
+ "currentRegion": "Región predeterminada actual",
1216
+ "selectRegion": "Selecciona la región predeterminada",
1217
+ "regionHelp": "Los nuevos despliegues usarán esta región por defecto. Los usuarios pueden anular este ajuste por despliegue.",
1218
+ "saveSuccess": "Región predeterminada actualizada correctamente",
1219
+ "unsavedChanges": "Tienes cambios sin guardar",
1220
+ "infoTitle": "Sobre los ajustes de región",
1221
+ "infoDescription": "La región de despliegue determina dónde se ejecuta la infraestructura de tu bot. Elegir una región más cercana a tus usuarios puede mejorar los tiempos de respuesta. Los despliegues individuales pueden anular este ajuste predeterminado."
1222
+ },
1223
+ "account": {
1224
+ "title": "Información de la cuenta",
1225
+ "emailAddress": "Correo electrónico",
1226
+ "userId": "ID de usuario",
1227
+ "logout": "Cerrar sesión",
1228
+ "loggingOut": "Cerrando sesión...",
1229
+ "logoutConfirm": "¿Seguro que quieres cerrar sesión?",
1230
+ "logoutNote": "Cerrarás sesión en tu cuenta",
1231
+ "dangerZone": "Zona de peligro",
1232
+ "deleteAccount": "Eliminar cuenta",
1233
+ "deleteAdminWarning": "Elimina permanentemente tu cuenta y todos los datos asociados, incluidos bots, bot spaces y cuentas de colaboradores afiliadas únicamente a tu organización. Esta acción no se puede deshacer.",
1234
+ "deleteUserWarning": "Elimina permanentemente tu cuenta y todos tus datos personales, incluidos bots, documentos y claves API. Se eliminarán tus membresías en bot spaces. Esta acción no se puede deshacer."
1235
+ },
1236
+ "servicePlan": {
1237
+ "title": "Plan de servicio",
1238
+ "description": "Consulta tu plan actual, uso y funciones disponibles",
1239
+ "currentPlan": "Tu plan de suscripción actual",
1240
+ "usage": "Uso actual",
1241
+ "deployedBots": "Bots desplegados",
1242
+ "botSpaces": "Bot Spaces",
1243
+ "users": "Usuarios",
1244
+ "includedFeatures": "Funciones incluidas",
1245
+ "allPlans": "Planes disponibles",
1246
+ "current": "Actual",
1247
+ "bots": "bots",
1248
+ "spaces": "espacios",
1249
+ "usersLabel": "usuarios",
1250
+ "organization": "Organización",
1251
+ "needMore": "¿Necesitas más?",
1252
+ "contactUs": "Contáctanos para hablar sobre la mejora de tu plan o soluciones empresariales personalizadas."
1253
+ },
1254
+ "apiKeys": {
1255
+ "title": "Claves API",
1256
+ "description": "Guarda tus claves API de proveedores de LLM para reutilizarlas fácilmente entre despliegues",
1257
+ "addKey": "+ Añadir clave API",
1258
+ "addNewKey": "Añadir nueva clave API",
1259
+ "name": "Nombre",
1260
+ "namePlaceholder": "p. ej., Mi clave de OpenAI",
1261
+ "provider": "Proveedor",
1262
+ "apiKey": "Clave API",
1263
+ "apiKeyPlaceholder": "Introduce tu clave API",
1264
+ "saving": "Guardando...",
1265
+ "saveKey": "Guardar clave API",
1266
+ "loading": "Cargando claves API...",
1267
+ "noKeys": "Aún no hay claves API guardadas",
1268
+ "noKeysHint": "Añade tu primera clave API para empezar",
1269
+ "added": "Añadida {date}",
1270
+ "deleteConfirm": "¿Seguro que quieres eliminar esta clave API?",
1271
+ "saveSuccess": "Clave API guardada correctamente",
1272
+ "deleteSuccess": "Clave API eliminada correctamente",
1273
+ "loadError": "No se pudieron cargar las claves API",
1274
+ "saveError": "No se pudo guardar la clave API",
1275
+ "deleteError": "No se pudo eliminar la clave API",
1276
+ "nameAndKeyRequired": "El nombre y la clave API son obligatorios",
1277
+ "awsRegion": "Región de AWS",
1278
+ "authentication": "Autenticación",
1279
+ "useIamRole": "Usar rol IAM",
1280
+ "useIamRoleHint": "Usa el rol IAM asociado al pod de Kubernetes (recomendado para producción)",
1281
+ "useExplicitCredentials": "Usar credenciales explícitas",
1282
+ "useExplicitCredentialsHint": "Proporciona la clave de acceso y la clave secreta de AWS directamente",
1283
+ "awsAccessKeyId": "AWS Access Key ID",
1284
+ "awsSecretAccessKey": "AWS Secret Access Key",
1285
+ "defaultBotConfig": {
1286
+ "title": "Configuración predeterminada del bot",
1287
+ "description": "Selecciona una clave API y un modelo para usar como predeterminados al crear nuevos bots con el constructor.",
1288
+ "selectKey": "Clave API predeterminada",
1289
+ "selectModel": "Modelo predeterminado",
1290
+ "noDefault": "Sin predeterminado (usar selección automática)",
1291
+ "selectModelPlaceholder": "Selecciona un modelo",
1292
+ "selectKeyFirst": "Selecciona una clave API para ver los modelos disponibles",
1293
+ "currentSelection": "Predeterminado actual",
1294
+ "noModel": "Sin modelo seleccionado",
1295
+ "save": "Guardar predeterminado"
1296
+ }
1297
+ },
1298
+ "botSpaces": {
1299
+ "title": "Bot Spaces",
1300
+ "description": "Organiza chatbots en espacios y controla el acceso de colaboradores",
1301
+ "createSpace": "+ Crear Bot Space",
1302
+ "createNewSpace": "Crear nuevo Bot Space",
1303
+ "name": "Nombre",
1304
+ "namePlaceholder": "p. ej., customer-support",
1305
+ "nameHint": "Solo se permiten letras, números, guiones bajos y guiones",
1306
+ "descriptionLabel": "Descripción",
1307
+ "descriptionPlaceholder": "Descripción opcional para este bot space",
1308
+ "creating": "Creando...",
1309
+ "create": "Crear Bot Space",
1310
+ "loading": "Cargando bot spaces...",
1311
+ "noSpaces": "Aún no se han creado bot spaces",
1312
+ "noSpacesHint": "Crea tu primer bot space para organizar tus chatbots",
1313
+ "botCount": "{count} bots",
1314
+ "created": "Creado {date}",
1315
+ "invite": "Invitar",
1316
+ "manage": "Gestionar",
1317
+ "deleteConfirm": "¿Seguro que quieres eliminar este bot space? Todos los bots dentro de él se eliminarán permanentemente.",
1318
+ "createSuccess": "Bot space creado correctamente",
1319
+ "deleteSuccess": "Bot space eliminado correctamente",
1320
+ "loadError": "No se pudieron cargar los bot spaces",
1321
+ "createError": "No se pudo crear el bot space",
1322
+ "deleteError": "No se pudo eliminar el bot space",
1323
+ "nameRequired": "El nombre es obligatorio",
1324
+ "nameInvalid": "El nombre solo puede contener letras, números, guiones bajos y guiones",
1325
+ "aboutTitle": "Sobre los Bot Spaces",
1326
+ "aboutItem1": "Los bot spaces te permiten agrupar chatbots relacionados",
1327
+ "aboutItem2": "Concede a colaboradores acceso de lectura o escritura a espacios específicos",
1328
+ "aboutItem3": "Los administradores tienen acceso completo a todos los bot spaces de la organización",
1329
+ "invitationSent": "Invitación enviada correctamente"
1330
+ },
1331
+ "auditLogs": {
1332
+ "title": "Logs de auditoría",
1333
+ "description": "Consulta todas las acciones realizadas en tu organización",
1334
+ "exportCsv": "Exportar CSV",
1335
+ "exportJson": "Exportar JSON",
1336
+ "loadError": "No se pudieron cargar los logs de auditoría",
1337
+ "externalIntegration": "Integración externa",
1338
+ "webhookDescription": "Envía logs de auditoría a un SIEM externo o servicio de logging mediante webhook.",
1339
+ "webhookUrl": "URL del webhook",
1340
+ "webhookUrlPlaceholder": "https://tu-siem.ejemplo.com/webhook",
1341
+ "enableWebhook": "Habilitar webhook",
1342
+ "hmacEnabled": "Firma HMAC habilitada",
1343
+ "webhookSecretWarning": "Secreto del webhook (cópialo ahora; no se mostrará de nuevo)",
1344
+ "saveSettings": "Guardar ajustes",
1345
+ "testWebhook": "Probar webhook",
1346
+ "regenerateSecret": "Regenerar secreto",
1347
+ "regenerateConfirm": "¿Regenerar el secreto del webhook? Tendrás que actualizar tu endpoint receptor.",
1348
+ "webhookSaved": "Ajustes del webhook guardados",
1349
+ "secretRegenerated": "Nuevo secreto generado",
1350
+ "testSuccess": "Webhook de prueba enviado correctamente",
1351
+ "saveError": "No se pudieron guardar los ajustes del webhook",
1352
+ "testError": "La prueba del webhook falló",
1353
+ "regenerateError": "No se pudo regenerar el secreto",
1354
+ "payloadFormat": "Formato del payload del webhook",
1355
+ "payloadDescription": "Cada evento de auditoría se envía como una solicitud POST con cabeceras:",
1356
+ "headerEvent": "X-Audit-Event: event_type",
1357
+ "headerTimestamp": "X-Audit-Timestamp: ISO timestamp",
1358
+ "headerSignature": "X-Audit-Signature: sha256=hmac (si hay secreto configurado)"
1359
+ },
1360
+ "admin": {
1361
+ "title": "Panel de administración",
1362
+ "description": "Gestiona usuarios y consulta información del sistema",
1363
+ "allUsers": "Todos los usuarios",
1364
+ "loadingUsers": "Cargando usuarios...",
1365
+ "noUsers": "No se encontraron usuarios",
1366
+ "loadError": "No se pudieron cargar los usuarios",
1367
+ "tableHeaders": {
1368
+ "name": "Nombre",
1369
+ "email": "Correo",
1370
+ "organization": "Organización",
1371
+ "role": "Rol",
1372
+ "created": "Creado"
1373
+ },
1374
+ "you": "Tú",
1375
+ "stats": {
1376
+ "totalUsers": "Usuarios totales",
1377
+ "admins": "Administradores",
1378
+ "contributors": "Colaboradores"
1379
+ }
1380
+ },
1381
+ "builderConfig": {
1382
+ "title": "Configuración del constructor",
1383
+ "description": "Configura qué modelo de IA impulsa el constructor de bots y establece los valores predeterminados para la creación de bots",
1384
+ "builderTitle": "Modelo del constructor",
1385
+ "builderDescription": "Selecciona qué modelo de IA impulsa la interfaz del constructor de bots. Este modelo gestiona las conversaciones y la ejecución de herramientas.",
1386
+ "defaultBotTitle": "Modelo predeterminado para creación de bots",
1387
+ "defaultBotDescription": "Preselecciona estos ajustes al crear nuevos bots con el constructor. Los usuarios pueden anularlos durante el despliegue.",
1388
+ "provider": "Proveedor",
1389
+ "apiKey": "Clave API",
1390
+ "model": "Modelo",
1391
+ "selectProvider": "Seleccionar proveedor...",
1392
+ "selectKey": "Seleccionar clave API...",
1393
+ "selectModel": "Seleccionar modelo...",
1394
+ "noKeysForProvider": "No hay claves API guardadas para este proveedor. Añade una en la pestaña Claves API.",
1395
+ "useSameAsBuilder": "Usar los mismos ajustes que el constructor",
1396
+ "saveConfig": "Guardar configuración",
1397
+ "saveSuccess": "Configuración del constructor guardada correctamente",
1398
+ "saveError": "No se pudo guardar la configuración del constructor",
1399
+ "aboutTitle": "Sobre la configuración del constructor",
1400
+ "aboutItem1": "El modelo del constructor gestiona la interfaz conversacional de creación de bots",
1401
+ "aboutItem2": "Los ajustes predeterminados del bot se preseleccionan al desplegar con el constructor",
1402
+ "aboutItem3": "El uso de herramientas es compatible con Claude, GPT, Gemini y más",
1403
+ "displaySettings": {
1404
+ "title": "Ajustes de visualización",
1405
+ "description": "Configura cómo aparece el asistente Modulo en la interfaz",
1406
+ "disableAnimation": "Desactivar la animación del asistente",
1407
+ "disableAnimationHint": "Muestra Modulo como un icono estático en lugar de un asistente animado"
1408
+ }
1409
+ },
1410
+ "mojulo": {
1411
+ "title": "Ajustes",
1412
+ "subtitle": "Configura las claves API que impulsan tus bots y las credenciales de nube que se usan para desplegarlos.",
1413
+ "noKeyGate": "Los constructores necesitan una clave de proveedor de LLM para funcionar. Añade una en la pestaña Claves LLM y vuelve aquí.",
1414
+ "tabs": {
1415
+ "llm": "Claves LLM",
1416
+ "provider": "Claves de proveedor",
1417
+ "language": "Configuración de idioma"
1418
+ },
1419
+ "form": {
1420
+ "addKey": "Añadir una clave",
1421
+ "name": "Nombre para mostrar",
1422
+ "provider": "Proveedor",
1423
+ "apiKey": "Clave API",
1424
+ "ollamaHost": "URL del host",
1425
+ "makeDefault": "Establecer como clave predeterminada",
1426
+ "ollamaNoDefault": "Ollama no puede ser la predeterminada — el constructor de chat necesita un proveedor en la nube.",
1427
+ "saving": "Guardando…",
1428
+ "save": "Guardar clave",
1429
+ "saveError": "Guardado fallido"
1430
+ },
1431
+ "list": {
1432
+ "title": "Claves almacenadas",
1433
+ "loading": "Cargando…",
1434
+ "empty": "Aún no hay claves.",
1435
+ "defaultBadge": "predeterminada",
1436
+ "makeDefault": "Establecer predeterminada",
1437
+ "delete": "Eliminar"
1438
+ },
1439
+ "llm": {
1440
+ "title": "Claves LLM",
1441
+ "description": "Impulsa el constructor de bots y se incorpora a cada bot que compiles.",
1442
+ "defaultName": "Predeterminada",
1443
+ "placeholder": "sk-…",
1444
+ "bedrockPlaceholder": "{\"region\":\"us-east-1\",\"accessKeyId\":\"…\",\"secretAccessKey\":\"…\"}",
1445
+ "ollamaPlaceholder": "http://localhost:11434",
1446
+ "providers": {
1447
+ "anthropic": "Anthropic",
1448
+ "openai": "OpenAI",
1449
+ "bedrock": "AWS Bedrock (pega credenciales JSON)",
1450
+ "ollama": "Ollama (local — pega la URL del host)"
1451
+ }
1452
+ },
1453
+ "provider": {
1454
+ "title": "Claves de proveedor",
1455
+ "description": "Credenciales de hosting en la nube. Se usan cuando despliegas un bot a un proveedor de nube desde el plano de control.",
1456
+ "defaultName": "Fly.io",
1457
+ "placeholder": "fo1_…",
1458
+ "providers": {
1459
+ "fly": "Fly.io"
1460
+ }
1461
+ },
1462
+ "language": {
1463
+ "title": "Configuración de idioma",
1464
+ "description": "Elige el idioma usado en la interfaz del plano de control.",
1465
+ "label": "Idioma de la interfaz"
1466
+ }
1467
+ }
1468
+ },
1469
+ "deployments": {
1470
+ "title": "Despliegues",
1471
+ "loading": "Cargando despliegues...",
1472
+ "empty": "No hay despliegues en este bot space",
1473
+ "columns": {
1474
+ "botName": "Nombre del bot",
1475
+ "status": "Estado",
1476
+ "deployed": "Desplegado",
1477
+ "by": "Por"
1478
+ },
1479
+ "history": {
1480
+ "title": "Historial de despliegues",
1481
+ "noHistory": "Aún no hay historial de despliegues",
1482
+ "historyWillAppear": "El historial aparecerá tras el próximo despliegue",
1483
+ "event": "Evento",
1484
+ "status": "Estado",
1485
+ "date": "Fecha",
1486
+ "by": "Por",
1487
+ "config": "Configuración"
1488
+ },
1489
+ "embed": {
1490
+ "title": "Script de Embed",
1491
+ "description": "Copia este script para integrar el chatbot en tu sitio web:"
1492
+ },
1493
+ "confirmDelete": "¿Seguro que quieres eliminar «{name}»? Esto destruirá el despliegue y no se puede deshacer."
1494
+ },
1495
+ "cloudDeploy": {
1496
+ "title": "Desplegar en la nube",
1497
+ "backToDashboard": "← Volver al panel",
1498
+ "loading": "Cargando…",
1499
+ "botLabel": "Bot:",
1500
+ "protocolsLabel": "protocolos: {protocols}",
1501
+ "statusPills": {
1502
+ "pending": "Pendiente",
1503
+ "deploying": "Desplegando",
1504
+ "running": "En ejecución",
1505
+ "paused": "Pausado",
1506
+ "failed": "Fallido",
1507
+ "destroyed": "Destruido"
1508
+ },
1509
+ "artifact": {
1510
+ "title": "Último artefacto",
1511
+ "status": "Estado",
1512
+ "configHash": "Hash de configuración",
1513
+ "lastBuiltHash": "Hash de la última compilación",
1514
+ "artifactPath": "Ruta del artefacto",
1515
+ "notBuiltYet": "— (aún no compilado)",
1516
+ "staleWarning": "Configuración editada desde la última compilación. El despliegue en la nube recompilará automáticamente, o puedes recompilar ahora.",
1517
+ "missingWarning": "Aún no hay artefacto. El despliegue en la nube lo compilará automáticamente, o puedes compilarlo ahora para previsualizar.",
1518
+ "buildZip": "Compilar ZIP",
1519
+ "rebuildZip": "Recompilar ZIP",
1520
+ "downloadZip": "Descargar .zip"
1521
+ },
1522
+ "provider": {
1523
+ "title": "Proveedor",
1524
+ "fly": {
1525
+ "name": "Fly.io",
1526
+ "description": "Máquina de una región + volumen persistente"
1527
+ }
1528
+ },
1529
+ "fly": {
1530
+ "title": "Opciones de Fly.io",
1531
+ "region": "Región",
1532
+ "regionHint": "Código de región de Fly de 3 letras (iad, sjc, lhr, nrt, etc.)",
1533
+ "volumeSize": "Tamaño del volumen (GB)",
1534
+ "volumeHint": "Almacenamiento persistente para SQLite (1 GB es suficiente para la mayoría de bots)",
1535
+ "cpuCount": "Número de CPU",
1536
+ "cpuHint": "CPU compartidas",
1537
+ "memory": "Memoria (MB)",
1538
+ "memoryHint": "Se recomiendan 1024 MB",
1539
+ "tokenNote": "Usa tu <mono>FLY_API_TOKEN</mono> del entorno del plano de control. Tu cuenta, tu factura.",
1540
+ "deploy": "Desplegar",
1541
+ "redeploy": "Redesplegar",
1542
+ "deploying": "Desplegando…"
1543
+ },
1544
+ "status": {
1545
+ "title": "Estado",
1546
+ "provider": "Proveedor",
1547
+ "appName": "Nombre de la app",
1548
+ "url": "URL",
1549
+ "region": "Región",
1550
+ "lastDeployed": "Último despliegue",
1551
+ "errorPrefix": "error: {error}",
1552
+ "destroy": "Destruir"
1553
+ },
1554
+ "errors": {
1555
+ "deployFailed": "Despliegue fallido ({status})",
1556
+ "destroyFailed": "Destrucción fallida ({status})",
1557
+ "buildFailed": "Compilación fallida ({status})"
1558
+ },
1559
+ "confirmDestroy": "¿Destruir la app, máquina y volumen en la nube? Los datos de conversación del volumen se eliminarán permanentemente."
1560
+ },
1561
+ "analytics": {
1562
+ "title": "Analíticas",
1563
+ "loading": "Cargando analíticas...",
1564
+ "loadingConversations": "Cargando analíticas de conversaciones...",
1565
+ "analyzingQuestions": "Analizando preguntas de usuarios...",
1566
+ "failedToLoad": "No se pudo cargar el despliegue",
1567
+ "failedToLoadAnalytics": "No se pudieron cargar los datos de analíticas",
1568
+ "chatbotMetrics": "Métricas del chatbot",
1569
+ "conversationAnalytics": "Analíticas de conversaciones",
1570
+ "topQuestions": "Principales preguntas y temas de usuarios",
1571
+ "metrics": {
1572
+ "age": "Edad",
1573
+ "uptime": "Tiempo activo",
1574
+ "documents": "Documentos",
1575
+ "lastUpdated": "Última actualización",
1576
+ "totalConversations": "Conversaciones totales",
1577
+ "totalMessages": "Mensajes totales",
1578
+ "formStarts": "Formularios iniciados",
1579
+ "formCompletes": "Formularios completados",
1580
+ "completionRate": "{rate}% de tasa de finalización",
1581
+ "avgMessagesPerConv": "Mensajes/conv. promedio"
1582
+ },
1583
+ "badges": {
1584
+ "formCollection": "Recolección por formulario",
1585
+ "live": "En vivo"
1586
+ },
1587
+ "searchTerms": {
1588
+ "longPhrases": "Frases largas",
1589
+ "phrases": "Frases",
1590
+ "words": "Palabras",
1591
+ "analyzed": "Analizados {count} mensajes de usuarios",
1592
+ "noData": "Aún no hay datos de conversación disponibles",
1593
+ "noDataHint": "Los datos aparecerán aquí después de que los usuarios interactúen con tu chatbot"
1594
+ },
1595
+ "uptime": {
1596
+ "inProgress": "En curso...",
1597
+ "failed": "Fallido",
1598
+ "notAvailable": "N/D"
1599
+ }
1600
+ },
1601
+ "conversations": {
1602
+ "title": "Conversaciones",
1603
+ "totalConversations": "{count} conversaciones totales",
1604
+ "total": "{count} totales",
1605
+ "dashboardLink": "← Panel",
1606
+ "backToDashboard": "← Volver al panel",
1607
+ "tabs": {
1608
+ "conversations": "Conversaciones",
1609
+ "storage": "Almacenamiento"
1610
+ },
1611
+ "unreachable": {
1612
+ "title": "Bot inaccesible",
1613
+ "message": "El plano de control no pudo contactar con este bot. Puede estar detenido, o la URL o clave API pueden haber cambiado. Reconéctalo desde el panel para ver conversaciones.",
1614
+ "reconnect": "Reconectar"
1615
+ },
1616
+ "search": {
1617
+ "dataSource": "Fuente de datos",
1618
+ "conversationId": "ID de conversación",
1619
+ "partialId": "ID parcial...",
1620
+ "partialIdShort": "ID parcial",
1621
+ "from": "Desde",
1622
+ "to": "Hasta",
1623
+ "search": "Buscar",
1624
+ "searching": "Buscando...",
1625
+ "last24h": "Últimas 24 h",
1626
+ "last7days": "Últimos 7 días",
1627
+ "clear": "Limpiar",
1628
+ "resultsFound": "{count} resultado encontrado",
1629
+ "resultsFoundPlural": "{count} resultados encontrados",
1630
+ "result": "{count} resultado",
1631
+ "results": "{count} resultados",
1632
+ "noMatch": "Ninguna conversación coincide con tu búsqueda",
1633
+ "noMatchShort": "Ninguna conversación coincide.",
1634
+ "searchToFind": "Busca para encontrar conversaciones",
1635
+ "searchByIdOrDate": "Busca por ID o fecha para encontrar conversaciones.",
1636
+ "useIdOrDate": "Usa ID de conversación, rango de fechas o ambos"
1637
+ },
1638
+ "timeAgo": {
1639
+ "days": "hace {count} d",
1640
+ "hours": "hace {count} h",
1641
+ "minutes": "hace {count} min"
1642
+ },
1643
+ "detail": {
1644
+ "started": "Iniciada:",
1645
+ "startedAt": "Iniciada {timestamp}",
1646
+ "turns": "{count} turnos",
1647
+ "last": "Último:",
1648
+ "lastAt": "Último {timestamp}",
1649
+ "turn": "Turno {number}",
1650
+ "user": "Usuario",
1651
+ "assistant": "Asistente",
1652
+ "ragContext": "Contexto RAG",
1653
+ "ragContextShort": "Contexto RAG",
1654
+ "verifyChain": "Verificar cadena",
1655
+ "showMetadata": "Mostrar fuentes y metadatos",
1656
+ "showMetadataShort": "Mostrar metadatos",
1657
+ "selectConversation": "Selecciona una conversación para ver los mensajes",
1658
+ "selectConversationShort": "Selecciona una conversación para ver sus turnos.",
1659
+ "loadingMessages": "Cargando mensajes...",
1660
+ "loading": "Cargando…"
1661
+ },
1662
+ "storage": {
1663
+ "loading": "Cargando información de almacenamiento...",
1664
+ "loadingShort": "Cargando…",
1665
+ "volumeCapacity": "Capacidad del volumen",
1666
+ "volumeCapacityShort": "Capacidad del volumen",
1667
+ "used": "{used} usados de {total}",
1668
+ "usedOfTotal": "{used} de {total}",
1669
+ "available": "{amount} disponibles",
1670
+ "statsConversations": "Conversaciones",
1671
+ "statsTurns": "Turnos totales",
1672
+ "statsTurnsShort": "Turnos",
1673
+ "statsDbSize": "Tamaño de la base de datos",
1674
+ "statsDbSizeShort": "Tamaño BD",
1675
+ "autoExtendPolicy": "Política de auto-extensión",
1676
+ "autoExtendDescription": "El volumen se auto-extiende al {threshold}% de capacidad, añadiendo {increment} GB por expansión, hasta un máximo de {limit} GB.",
1677
+ "exportTitle": "Exportar conversaciones",
1678
+ "exportTitleShort": "Exportar",
1679
+ "exportDescription": "Descarga todas las conversaciones como archivo JSON.",
1680
+ "exportDescriptionShort": "Descarga todas las conversaciones de este bot como JSON.",
1681
+ "exportButton": "Exportar todas las conversaciones (JSON)",
1682
+ "exportButtonShort": "Exportar JSON",
1683
+ "exporting": "Exportando...",
1684
+ "refresh": "Actualizar información de almacenamiento",
1685
+ "retry": "Reintentar"
1686
+ },
1687
+ "loadMore": "Cargar más",
1688
+ "loadingMore": "Cargando…",
1689
+ "errors": {
1690
+ "fetchConversations": "No se pudieron obtener las conversaciones",
1691
+ "fetchDetails": "No se pudieron obtener los detalles de la conversación",
1692
+ "fetchStorage": "No se pudo obtener la información de almacenamiento",
1693
+ "exportFailed": "No se pudieron exportar las conversaciones",
1694
+ "close": "Cerrar"
1695
+ }
1696
+ },
1697
+ "submissions": {
1698
+ "title": "Envíos de formularios",
1699
+ "description": "Consulta los envíos de formularios recolectados de {botName}",
1700
+ "total": "({count} totales)",
1701
+ "dashboardLink": "← Panel",
1702
+ "backToDashboard": "← Volver al panel",
1703
+ "unreachable": {
1704
+ "title": "Bot inaccesible",
1705
+ "message": "El plano de control no pudo contactar con este bot. Puede estar detenido, o la URL o clave API pueden haber cambiado. Reconéctalo desde el panel para ver los envíos.",
1706
+ "reconnect": "Reconectar"
1707
+ },
1708
+ "search": {
1709
+ "last24h": "Últimas 24 h",
1710
+ "last7days": "Últimos 7 días",
1711
+ "last30days": "Últimos 30 días",
1712
+ "from": "Desde",
1713
+ "to": "Hasta",
1714
+ "search": "Buscar",
1715
+ "searching": "Buscando...",
1716
+ "export": "Exportar CSV"
1717
+ },
1718
+ "list": {
1719
+ "title": "Envíos",
1720
+ "shown": "({count} mostrados)",
1721
+ "loading": "Cargando...",
1722
+ "noSubmissions": "No se encontraron envíos para este periodo.",
1723
+ "searchToView": "Busca para ver envíos.",
1724
+ "fields": "{count} campos"
1725
+ },
1726
+ "detail": {
1727
+ "title": "Detalles del envío",
1728
+ "conversationId": "ID de conversación:",
1729
+ "submitted": "Enviado:",
1730
+ "formData": "Datos del formulario",
1731
+ "field": "Campo",
1732
+ "value": "Valor",
1733
+ "metadata": "Metadatos",
1734
+ "selectSubmission": "Selecciona un envío para ver los detalles"
1735
+ }
1736
+ },
1737
+ "logs": {
1738
+ "title": "Logs en vivo",
1739
+ "refresh": "Actualizar logs",
1740
+ "refreshing": "Actualizando...",
1741
+ "loading": "Cargando logs...",
1742
+ "search": {
1743
+ "label": "Buscar logs",
1744
+ "placeholder": "Buscar mensajes, niveles, instancias..."
1745
+ },
1746
+ "lineCount": {
1747
+ "label": "Líneas a mostrar",
1748
+ "lines": "{count} líneas"
1749
+ },
1750
+ "autoRefresh": {
1751
+ "label": "Auto-refresco",
1752
+ "every10s": "Actualizar cada 10 segundos"
1753
+ },
1754
+ "noLogs": "No hay logs disponibles",
1755
+ "noMatch": "Ningún log coincide con tu búsqueda",
1756
+ "showing": "Mostrando {filtered} de {total} entradas de log",
1757
+ "filteredBy": "(filtrado por «{query}»)"
1758
+ },
1759
+ "accessLevels": {
1760
+ "owner": "propietario",
1761
+ "admin": "administrador",
1762
+ "write": "escritura",
1763
+ "read": "lectura"
1764
+ },
1765
+ "errors": {
1766
+ "generic": "Se produjo un error. Inténtalo de nuevo.",
1767
+ "failedToFetch": "No se pudieron obtener los datos",
1768
+ "failedToLoad": "No se pudo cargar",
1769
+ "failedToSave": "No se pudo guardar",
1770
+ "failedToDelete": "No se pudo eliminar el despliegue",
1771
+ "failedToAssign": "No se pudo asignar el bot space",
1772
+ "notFound": "No encontrado",
1773
+ "error": "Error"
1774
+ },
1775
+ "deleteAccount": {
1776
+ "title": "Eliminar cuenta",
1777
+ "loadingInfo": "Cargando información de la cuenta...",
1778
+ "permanentWarning": "Esta acción es permanente y no se puede deshacer.",
1779
+ "willBeDeleted": "Se eliminará permanentemente lo siguiente:",
1780
+ "deployments": "Despliegues (bots)",
1781
+ "documents": "Documentos",
1782
+ "apiKeys": "Claves API",
1783
+ "botSpaces": "Bot Spaces",
1784
+ "contributorsToDelete": "Cuentas de colaboradores a eliminar",
1785
+ "contributorsNote": "Estos colaboradores son miembros únicamente de los bot spaces de tu organización.",
1786
+ "organization": "Organización",
1787
+ "adminDeleteNote": "Como administrador, eliminar tu cuenta también eliminará todos los datos de la organización y las cuentas de colaboradores afiliadas únicamente a tu organización.",
1788
+ "userDeleteNote": "Se eliminarán tus membresías en bot spaces, pero los bot spaces y otros usuarios no se verán afectados.",
1789
+ "continue": "Continuar",
1790
+ "confirmPrompt": "Para confirmar la eliminación, escribe tu correo electrónico:",
1791
+ "confirmEmail": "Confirma tu correo",
1792
+ "emailPlaceholder": "Escribe tu correo para confirmar",
1793
+ "deleting": "Eliminando...",
1794
+ "deleteMyAccount": "Eliminar mi cuenta",
1795
+ "errors": {
1796
+ "loadFailed": "No se pudo cargar la información de la cuenta",
1797
+ "loadError": "Error al cargar la información de la cuenta",
1798
+ "emailMismatch": "Escribe tu correo exactamente para confirmar",
1799
+ "deleteFailed": "No se pudo eliminar la cuenta",
1800
+ "deleteError": "Error al eliminar la cuenta"
1801
+ }
1802
+ },
1803
+ "botSpaceInvite": {
1804
+ "title": "Invitar a {spaceName}",
1805
+ "description": "Envía una invitación para colaborar en este bot space. Recibirán un correo con un enlace para unirse.",
1806
+ "emailLabel": "Correo electrónico",
1807
+ "emailPlaceholder": "colega@empresa.com",
1808
+ "accessLabel": "Nivel de acceso",
1809
+ "accessRead": "Lectura — puede ver bots en este espacio",
1810
+ "accessWrite": "Escritura — puede crear y editar bots",
1811
+ "accessAdmin": "Admin — acceso completo, incluida la invitación de otros",
1812
+ "accessNote": "Los usuarios invitados se unirán como colaboradores de tu organización.",
1813
+ "sending": "Enviando...",
1814
+ "sendInvitation": "Enviar invitación",
1815
+ "errors": {
1816
+ "sendFailed": "No se pudo enviar la invitación"
1817
+ }
1818
+ },
1819
+ "auditLogTable": {
1820
+ "loading": "Cargando logs de auditoría...",
1821
+ "noLogs": "No se encontraron logs de auditoría",
1822
+ "noLogsHint": "Los logs aparecerán aquí a medida que se realicen acciones",
1823
+ "headers": {
1824
+ "time": "Hora",
1825
+ "event": "Evento",
1826
+ "actor": "Actor",
1827
+ "resource": "Recurso",
1828
+ "outcome": "Resultado"
1829
+ },
1830
+ "events": {
1831
+ "authLoginSuccess": "Inicio de sesión",
1832
+ "authLoginFailure": "Inicio de sesión fallido",
1833
+ "authLogout": "Cierre de sesión",
1834
+ "authSignup": "Registro",
1835
+ "deploymentCreate": "Despliegue creado",
1836
+ "deploymentRedeploy": "Redesplegado",
1837
+ "deploymentDelete": "Despliegue eliminado",
1838
+ "botSpaceCreate": "Espacio creado",
1839
+ "botSpaceDelete": "Espacio eliminado",
1840
+ "botSpaceMemberAdd": "Miembro añadido",
1841
+ "botSpaceMemberRemove": "Miembro eliminado",
1842
+ "documentUpload": "Documento subido",
1843
+ "documentDelete": "Documento eliminado",
1844
+ "apiKeyCreate": "Clave API creada",
1845
+ "apiKeyDelete": "Clave API eliminada",
1846
+ "userInvite": "Usuario invitado",
1847
+ "userInviteAccept": "Invitación aceptada",
1848
+ "auditWebhookUpdate": "Webhook actualizado",
1849
+ "auditLogsExport": "Logs exportados"
1850
+ },
1851
+ "outcomes": {
1852
+ "success": "éxito",
1853
+ "failure": "fallo",
1854
+ "denied": "denegado"
1855
+ },
1856
+ "details": {
1857
+ "timestamp": "Marca de tiempo completa",
1858
+ "requestId": "ID de solicitud",
1859
+ "ipAddress": "Dirección IP",
1860
+ "userAgent": "User Agent",
1861
+ "resource": "Recurso",
1862
+ "metadata": "Metadatos"
1863
+ },
1864
+ "showing": "Mostrando {shown} de {total} logs",
1865
+ "loadMore": "Cargar más"
1866
+ },
1867
+ "auditLogFilters": {
1868
+ "eventTypes": {
1869
+ "allEvents": "Todos los eventos",
1870
+ "authentication": "Autenticación",
1871
+ "deployments": "Despliegues",
1872
+ "botSpaces": "Bot Spaces",
1873
+ "documents": "Documentos",
1874
+ "apiKeys": "Claves API",
1875
+ "usersInvites": "Usuarios e invitaciones",
1876
+ "conversations": "Conversaciones",
1877
+ "settings": "Ajustes",
1878
+ "auditSystem": "Sistema de auditoría"
1879
+ },
1880
+ "outcomes": {
1881
+ "all": "Todos",
1882
+ "success": "Éxito",
1883
+ "failure": "Fallo",
1884
+ "denied": "Denegado"
1885
+ },
1886
+ "dateRange": "Rango de fechas",
1887
+ "from": "Desde",
1888
+ "to": "Hasta",
1889
+ "clear": "Limpiar"
1890
+ },
1891
+ "data": {
1892
+ "navLabel": "Datos",
1893
+ "title": "Datos de la flota",
1894
+ "subtitle": "Explora y agrega la actividad de conversaciones de cada bot conectado. El contenido de las conversaciones permanece en el bot — solo se combinan los recuentos en proceso.",
1895
+ "loading": "Cargando…",
1896
+ "tabs": {
1897
+ "explorer": "Explorador",
1898
+ "sql": "SQL",
1899
+ "analytics": "Analíticas"
1900
+ },
1901
+ "fleet": {
1902
+ "unreachableBanner": "{unreachable} de {total} bots inalcanzables — los resultados pueden estar incompletos."
1903
+ },
1904
+ "explorer": {
1905
+ "filters": {
1906
+ "conversationId": "El ID de conversación contiene",
1907
+ "startDate": "Iniciada después de",
1908
+ "endDate": "Iniciada antes de"
1909
+ },
1910
+ "search": "Buscar",
1911
+ "searching": "Buscando…",
1912
+ "clear": "Limpiar",
1913
+ "hint": "Introduce un fragmento del ID de conversación o un rango de fechas para extender la búsqueda a todos los bots conectados.",
1914
+ "pagination": {
1915
+ "showing": "Mostrando {start} – {end} de {total}",
1916
+ "previous": "Anterior",
1917
+ "next": "Siguiente",
1918
+ "truncatedNotice": "El conjunto de resultados está limitado a las primeras 500 conversaciones de la flota. Acota tu rango de fechas para ver resultados más antiguos."
1919
+ },
1920
+ "noConversations": "Ninguna conversación coincide con tu filtro."
1921
+ },
1922
+ "sql": {
1923
+ "placeholder": "SELECT bot_name, conversations_7d FROM bot_health ORDER BY conversations_7d DESC",
1924
+ "runQuery": "Ejecutar consulta",
1925
+ "running": "Ejecutando…",
1926
+ "exportCsv": "Exportar CSV",
1927
+ "exportJson": "Exportar JSON",
1928
+ "keyboardHint": "Pulsa Cmd/Ctrl + Enter para ejecutar",
1929
+ "rowCount": "{count} filas",
1930
+ "truncated": "(truncado a 10.000)",
1931
+ "noResults": "Sin filas",
1932
+ "help": "Consultas de inicio",
1933
+ "starterQueries": {
1934
+ "title": "Consultas de inicio",
1935
+ "hint": "Cada consulta lee de las tablas de agregación en memoria, ensambladas por solicitud desde los endpoints de analíticas de cada bot. Haz clic para cargar.",
1936
+ "dailyStats": "Estadísticas diarias de conversaciones de la flota",
1937
+ "botHealth": "Salud del bot (últimos 7 días)",
1938
+ "protocolDistribution": "Distribución del uso de protocolos",
1939
+ "mostActiveBots": "Bots más activos esta semana",
1940
+ "staleBots": "Bots no vistos en las últimas 24 h",
1941
+ "dailyByBot": "Actividad diaria unida a los nombres de los bots"
1942
+ }
1943
+ },
1944
+ "schema": {
1945
+ "availableTables": "Referencia del esquema",
1946
+ "clickToShow": "(haz clic para mostrar)",
1947
+ "clickToHide": "(haz clic para ocultar)",
1948
+ "note": "Nota:",
1949
+ "scopeNote": "Estas tablas se construyen en la memoria del proceso en cada consulta — una fila por bot en las tablas de agregación, pobladas llamando a los endpoints de analíticas de cada bot conectado. El contenido bruto de los turnos no se expone; para eso, usa la pestaña Explorador para profundizar en una conversación concreta."
1950
+ },
1951
+ "analytics": {
1952
+ "loading": "Cargando agregaciones de la flota…",
1953
+ "dateRange": {
1954
+ "last7days": "Últimos 7 días",
1955
+ "last14days": "Últimos 14 días",
1956
+ "last30days": "Últimos 30 días",
1957
+ "last90days": "Últimos 90 días"
1958
+ },
1959
+ "summary": {
1960
+ "totalConversations": "Conversaciones",
1961
+ "totalTurns": "Turnos",
1962
+ "avgTurnsPerConversation": "Turnos/conv promedio",
1963
+ "activeBots": "Bots alcanzables"
1964
+ },
1965
+ "charts": {
1966
+ "dailyConversations": "Volumen diario de turnos",
1967
+ "topBotsByActivity": "Principales bots por volumen de turnos",
1968
+ "activityHeatmap": "Mapa de calor de actividad (últimos 7 días)"
1969
+ },
1970
+ "noData": "No hay actividad en este periodo.",
1971
+ "noActivityData": "No hay actividad en los últimos 7 días.",
1972
+ "convs": "convs",
1973
+ "days": {
1974
+ "sun": "Dom",
1975
+ "mon": "Lun",
1976
+ "tue": "Mar",
1977
+ "wed": "Mié",
1978
+ "thu": "Jue",
1979
+ "fri": "Vie",
1980
+ "sat": "Sáb"
1981
+ }
1982
+ },
1983
+ "table": {
1984
+ "headers": {
1985
+ "bot": "Bot",
1986
+ "started": "Iniciada",
1987
+ "duration": "Duración",
1988
+ "turns": "Turnos",
1989
+ "conversationId": "ID de conversación"
1990
+ }
1991
+ }
1992
+ },
1993
+ "documentUploader": {
1994
+ "title": "Subir documentos",
1995
+ "description": "Sube documentos que tu chatbot usará para RAG (Generación Aumentada por Recuperación)",
1996
+ "uploading": "Subiendo...",
1997
+ "chooseFiles": "Elegir archivos",
1998
+ "dropFilesHere": "Suelta los archivos aquí",
1999
+ "dragAndDropHint": "o arrastra y suelta archivos aquí",
2000
+ "fileTypes": "PDF, TXT, MD, DOC, DOCX",
2001
+ "uploadedDocuments": "Documentos subidos ({count})",
2002
+ "noDocumentsYet": "Aún no hay documentos subidos",
2003
+ "noDocumentsHint": "Haz clic en «Elegir archivos» para empezar",
2004
+ "skippedFiles": "Se omitieron algunos archivos. Solo se admiten archivos PDF, TXT, MD, DOC, DOCX.",
2005
+ "deleteConfirm": "¿Seguro que quieres eliminar este archivo?",
2006
+ "uploadFailed": "Subida fallida",
2007
+ "uploadFailedFallback": "No se pudieron subir los archivos",
2008
+ "deleteFailed": "Eliminación fallida",
2009
+ "deleteFailedFallback": "No se pudo eliminar el archivo"
2010
+ },
2011
+ "chatBuilder": {
2012
+ "title": "Constructor de bots con IA",
2013
+ "subtitle": "Describe el bot que quieres construir y lo crearé por ti",
2014
+ "loading": "Cargando constructor con IA...",
2015
+ "newChat": "Nuevo chat",
2016
+ "recentChats": "Chats recientes",
2017
+ "noPreviousChats": "No hay chats anteriores",
2018
+ "botPreview": "Vista previa del bot",
2019
+ "viewDeployedBot": "Ver bot desplegado",
2020
+ "selectWorkspace": "Seleccionar espacio de trabajo",
2021
+ "selectWorkspacePrompt": "Selecciona un espacio de trabajo para empezar a construir",
2022
+ "noWorkspaces": "No hay espacios de trabajo disponibles",
2023
+ "createWorkspaceFirst": "Crea uno primero",
2024
+ "backToDashboard": "Volver al panel",
2025
+ "welcome": {
2026
+ "title": "Construye un bot con IA",
2027
+ "description": "Describe el bot que quieres crear, sube documentos relevantes y te ayudaré a configurarlo y desplegarlo. No se requiere programación.",
2028
+ "quickPrompts": {
2029
+ "customerSupport": {
2030
+ "title": "Bot de atención al cliente",
2031
+ "description": "Responde preguntas sobre productos",
2032
+ "prompt": "Necesito un bot de atención al cliente que pueda responder preguntas sobre nuestro producto"
2033
+ },
2034
+ "leadCapture": {
2035
+ "title": "Bot de captura de prospectos",
2036
+ "description": "Recolecta información de visitantes",
2037
+ "prompt": "Crea un bot de captura de prospectos que recolecte nombre, correo y datos de la empresa"
2038
+ },
2039
+ "faqAssistant": {
2040
+ "title": "Asistente de FAQ",
2041
+ "description": "Responde preguntas comunes",
2042
+ "prompt": "Ayúdame a construir un bot de FAQ usando nuestra documentación"
2043
+ },
2044
+ "onboarding": {
2045
+ "title": "Bot de incorporación",
2046
+ "description": "Guía a nuevos usuarios",
2047
+ "prompt": "Quiero crear un bot que ayude a incorporar nuevos clientes"
2048
+ }
2049
+ }
2050
+ },
2051
+ "input": {
2052
+ "placeholder": "Describe el bot que quieres construir...",
2053
+ "defaultPlaceholder": "Escribe un mensaje...",
2054
+ "dropFilesHere": "Suelta los archivos aquí...",
2055
+ "dropToAttach": "Suelta archivos para adjuntarlos a tu mensaje",
2056
+ "hint": "Pulsa Enter para enviar, Shift+Enter para nueva línea. Arrastra archivos o haz clic en el clip para adjuntar.",
2057
+ "hintShort": "Pulsa Enter para enviar, Shift+Enter para nueva línea",
2058
+ "hintWithAttach": "Arrastra y suelta archivos o haz clic en adjuntar. Pulsa Enter para enviar.",
2059
+ "attachFiles": "Adjuntar archivos",
2060
+ "attachDocuments": "Adjuntar documentos"
2061
+ },
2062
+ "tools": {
2063
+ "toolsExecuted": "{count} herramienta ejecutada",
2064
+ "toolsExecutedPlural": "{count} herramientas ejecutadas",
2065
+ "uploadDocument": "Subir documento",
2066
+ "generateForm": "Generar formulario",
2067
+ "deployBot": "Desplegar bot",
2068
+ "listDeployments": "Listar despliegues",
2069
+ "checkDeploymentStatus": "Verificar estado del despliegue",
2070
+ "destroyDeployment": "Destruir despliegue",
2071
+ "getAnalytics": "Obtener analíticas",
2072
+ "getFormSubmissions": "Obtener envíos de formulario",
2073
+ "listWorkspaces": "Listar espacios de trabajo",
2074
+ "listDocuments": "Listar documentos",
2075
+ "listApiKeys": "Listar claves API"
2076
+ },
2077
+ "documentPicker": {
2078
+ "title": "Seleccionar documentos",
2079
+ "noDocuments": "No hay documentos en este espacio de trabajo",
2080
+ "uploadFirst": "Sube primero documentos para usarlos en tu bot",
2081
+ "selected": "{count} documento seleccionado",
2082
+ "selectedPlural": "{count} documentos seleccionados",
2083
+ "useSelected": "Usar seleccionados"
2084
+ },
2085
+ "errors": {
2086
+ "failedToSend": "No se pudo enviar el mensaje",
2087
+ "failedToLoadSession": "No se pudo cargar la sesión",
2088
+ "failedToLoadDocuments": "No se pudieron cargar los documentos"
2089
+ },
2090
+ "invertedPanel": {
2091
+ "createABot": "Crear un bot",
2092
+ "editBot": "Editar {name}",
2093
+ "fallbackBotName": "Bot",
2094
+ "private": "Privado",
2095
+ "createTitle": "¿Qué tipo de bot puedo ayudarte a construir?",
2096
+ "createDescription": "También puedes adjuntar documentos para darle conocimiento. Sube un archivo o pide referirse a documentos del bot space.",
2097
+ "buildWithWizard": "Construir con el asistente (configuración paso a paso)",
2098
+ "editTitle": "Modificar {name}",
2099
+ "editFallbackName": "tu bot",
2100
+ "editDescription": "Dime qué te gustaría cambiar. Cargaré tu configuración actual y te ayudaré a actualizarla.",
2101
+ "editExamples": "Ejemplos: «Cambiar el saludo», «Añadir un nuevo campo de formulario», «Actualizar el nombre del bot»",
2102
+ "errorPrefix": "Error:",
2103
+ "inputPlaceholder": "Describe lo que debería hacer tu bot...",
2104
+ "adjustMessage": "Me gustaría ajustar la configuración"
2105
+ },
2106
+ "status": {
2107
+ "ready": "Listo",
2108
+ "processing": "Procesando",
2109
+ "awaitingConfirmation": "Esperando confirmación",
2110
+ "deploying": "Desplegando",
2111
+ "deployed": "Desplegado",
2112
+ "editing": "Editando"
2113
+ },
2114
+ "success": {
2115
+ "botBuilt": "¡Bot construido!",
2116
+ "botSaved": "Bot guardado",
2117
+ "botBuiltMessage": "Tu bot <strong>{name}</strong> está construido y listo para descargar.",
2118
+ "botSavedMessage": "Tu bot <strong>{name}</strong> está guardado. Constrúyelo desde tu Bot Space cuando estés listo.",
2119
+ "liveUrl": "URL en vivo",
2120
+ "embedCode": "Código de Embed",
2121
+ "downloadArtifact": "Descargar artefacto",
2122
+ "downloadWithDocs": "Descargar con documentos",
2123
+ "openBot": "Abrir bot",
2124
+ "viewInBotSpace": "Ver en Bot Space"
2125
+ }
2126
+ },
2127
+ "login": {
2128
+ "subtitle": "Inicia sesión para continuar",
2129
+ "username": "Nombre de usuario",
2130
+ "password": "Contraseña",
2131
+ "signIn": "Iniciar sesión",
2132
+ "signingIn": "Iniciando sesión…",
2133
+ "signOut": "Cerrar sesión",
2134
+ "invalid": "Nombre de usuario o contraseña inválidos"
2135
+ }
2136
+ }