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": "A carregar...",
4
+ "save": "Guardar",
5
+ "saving": "A guardar...",
6
+ "cancel": "Cancelar",
7
+ "delete": "Eliminar",
8
+ "edit": "Editar",
9
+ "close": "Fechar",
10
+ "search": "Pesquisar",
11
+ "back": "Voltar",
12
+ "next": "Seguinte",
13
+ "submit": "Enviar",
14
+ "create": "Criar",
15
+ "copy": "Copiar",
16
+ "copied": "Copiado!",
17
+ "view": "Ver",
18
+ "hide": "Ocultar",
19
+ "yes": "Sim",
20
+ "no": "Não",
21
+ "confirm": "Confirmar",
22
+ "done": "Concluído",
23
+ "updating": "A atualizar...",
24
+ "moveTo": "Mover para:",
25
+ "unknown": "Desconhecido",
26
+ "error": "Erro",
27
+ "remove": "Remover",
28
+ "selectAnOption": "Selecione uma opção",
29
+ "addItemLabel": "Adicionar {itemLabel}",
30
+ "itemNumber": "{itemLabel} #{number}"
31
+ },
32
+ "auth": {
33
+ "signIn": "Iniciar Sessão",
34
+ "signOut": "Terminar Sessão",
35
+ "signingIn": "A iniciar sessão...",
36
+ "email": "Email",
37
+ "password": "Palavra-passe",
38
+ "signInToContinue": "Inicie sessão para continuar",
39
+ "invalidCredentials": "Email ou palavra-passe inválidos",
40
+ "needAccess": "Precisa de acesso? Contacte o administrador da sua organização.",
41
+ "controlPanel": "Mojulo Control Panel",
42
+ "setupComplete": "Conta de administrador criada com sucesso. Inicie sessão.",
43
+ "emailPlaceholder": "voce@empresa.com",
44
+ "passwordPlaceholder": "A sua palavra-passe"
45
+ },
46
+ "dashboard": {
47
+ "title": "Painel",
48
+ "loading": "A carregar painel...",
49
+ "loadingChatbots": "A carregar chatbots...",
50
+ "loadingHistory": "A carregar histórico...",
51
+ "createNewBot": "Criar Novo Bot",
52
+ "noBots": "Ainda não existem bots",
53
+ "selectBotOrSpace": "Selecione um Bot ou Bot Space para ver detalhes",
54
+ "createBot": "Criar Bot",
55
+ "workspace": "Workspace de {name}",
56
+ "unassignedWorkspace": "Workspace Não Atribuído",
57
+ "searchChatbots": "Pesquisar chatbots",
58
+ "noChatbotsFound": "Nenhum chatbot encontrado",
59
+ "privateNotShared": "Privado (não partilhado)",
60
+ "inSpace": "em {spaceName}",
61
+ "chooseBotType": "Escolha um tipo de bot para começar:",
62
+ "addNewBot": "Adicionar novo bot",
63
+ "addNewPrivateBot": "Adicionar novo bot privado",
64
+ "expandBotSpaces": "Expandir Bot Spaces",
65
+ "allSpaces": "Todos os Spaces",
66
+ "adminSummary": {
67
+ "title": "Visão Geral",
68
+ "totalBots": "Total de Bots",
69
+ "running": "Em execução",
70
+ "stopped": "Parados",
71
+ "failed": "Falhados",
72
+ "recentDeployments": "Implementações Recentes",
73
+ "activeBots": "Bots Ativos (24h)",
74
+ "noRecentActivity": "Sem atividade recente",
75
+ "conversations": "conversas",
76
+ "totalActive": "{bots} bots com {conversations} conversas nas últimas 24 horas",
77
+ "private": "Privado",
78
+ "unknown": "Desconhecido",
79
+ "justNow": "agora mesmo",
80
+ "minutesAgo": "há {count}m",
81
+ "hoursAgo": "há {count}h",
82
+ "yesterday": "ontem",
83
+ "daysAgo": "há {count}d"
84
+ },
85
+ "private": "Privado",
86
+ "showBotList": "Mostrar lista de bots",
87
+ "deleteConfirm": "Tem a certeza de que deseja eliminar \"{name}\"? Isto destruirá a implementação e não pode ser desfeito.",
88
+ "deleteError": "Falha ao eliminar implementação: {error}",
89
+ "actionError": "Falha ao {action} implementação: {error}",
90
+ "assignError": "Falha ao atribuir bot space: {error}",
91
+ "sections": {
92
+ "control": "Controlo",
93
+ "data": "Dados",
94
+ "resources": "Recursos"
95
+ },
96
+ "launcher": {
97
+ "modularChat": {
98
+ "title": "Bot Modular (Chat)",
99
+ "badge": "Novo",
100
+ "description": "Construa com um assistente de IA"
101
+ },
102
+ "modularWizard": {
103
+ "title": "Bot Modular (Assistente)",
104
+ "description": "Configuração passo a passo"
105
+ }
106
+ },
107
+ "redeploy": {
108
+ "confirm": "Reimplementar \"{name}\" com a configuração atual? Isto irá reiniciar o bot sem quaisquer alterações.",
109
+ "initiating": "A iniciar reimplementação...",
110
+ "sending": "A enviar pedido de implementação...",
111
+ "deploying": "A implementar...",
112
+ "redeploying": "A reimplementar...",
113
+ "failed": "Reimplementação Falhada"
114
+ },
115
+ "myBots": "Os meus bots",
116
+ "subtitle": "Cada bot é uma configuração guardada. Construa-o sempre que quiser um ZIP executável.",
117
+ "noKeyBanner": {
118
+ "text": "Adicione uma chave de fornecedor LLM para desbloquear o construtor por chat e o assistente em formulário.",
119
+ "cta": "Abrir Definições →"
120
+ },
121
+ "documentLibrary": "Biblioteca de documentos →",
122
+ "newBotChat": "Novo bot (chat)",
123
+ "newBotWizard": "Novo bot (assistente)",
124
+ "loadingShort": "A carregar…",
125
+ "noBotsHint": "Ainda não existem bots. Comece um a partir do construtor por chat ou do assistente.",
126
+ "searchBots": "Pesquisar bots…",
127
+ "noBotsMatch": "Nenhum bot corresponde a \"{query}\".",
128
+ "emptyDetailHint": "Selecione um bot para ver as suas ações de ciclo de vida.",
129
+ "buildFailedAlert": "Compilação falhada: {error}",
130
+ "statuses": {
131
+ "building": "A compilar",
132
+ "buildFailed": "Compilação falhada",
133
+ "needsRebuild": "Necessita recompilação",
134
+ "running": "Em execução",
135
+ "runningStale": "Em execução · desatualizado",
136
+ "ready": "Pronto",
137
+ "draft": "Rascunho"
138
+ },
139
+ "builds": {
140
+ "building": "A compilar…",
141
+ "retry": "Repetir compilação",
142
+ "rebuild": "Recompilar",
143
+ "build": "Compilar"
144
+ },
145
+ "connect": {
146
+ "title": "Ligar a um bot em execução",
147
+ "description": "Cole o URL onde está a executar <code>{name}</code>. O control plane irá sondá-lo com a chave de API incorporada na linha.",
148
+ "botUrlLabel": "URL do Bot",
149
+ "probeFailedFallback": "Sondagem falhada ({status})",
150
+ "disconnect": "Desligar",
151
+ "testing": "A testar…",
152
+ "testAndSave": "Testar e guardar"
153
+ },
154
+ "documents": {
155
+ "title": "Biblioteca de documentos",
156
+ "breadcrumbHere": "Biblioteca de documentos",
157
+ "subtitle": "Todos os documentos que carregou e os bots que referenciam cada um. Os documentos sobrevivem aos bots — eliminar um bot não remove os seus documentos.",
158
+ "loadFailed": "Falha ao carregar biblioteca: {error}",
159
+ "loading": "A carregar…",
160
+ "searchPlaceholder": "Pesquisar por nome de ficheiro…",
161
+ "filters": {
162
+ "all": "Todos",
163
+ "unattached": "Não anexados",
164
+ "parseFailed": "Análise falhada"
165
+ },
166
+ "selectAll": "Selecionar todos",
167
+ "deselectAll": "Desmarcar todos",
168
+ "selectionStatus": "{selected} de {total} selecionados",
169
+ "deleting": "A eliminar…",
170
+ "deleteSelected": "Eliminar selecionados",
171
+ "deleteCount": "Eliminar {count}",
172
+ "deleteSingleConfirm": "Eliminar \"{name}\"? Isto remove o ficheiro do disco.",
173
+ "deleteMultiConfirm": "Eliminar {count} documentos não anexados? Isto remove-os do disco.",
174
+ "deleteFailed": "Falha ao eliminar {failed} de {total}: {details}",
175
+ "noDocs": "Ainda não existem documentos carregados. Carregue um a partir do assistente ou construtor por chat ao configurar um bot.",
176
+ "noMatch": "Nenhum documento corresponde a este filtro.",
177
+ "table": {
178
+ "document": "Documento",
179
+ "size": "Tamanho",
180
+ "uploaded": "Carregado",
181
+ "parsed": "Analisado",
182
+ "usedBy": "Utilizado por"
183
+ },
184
+ "parseFailedLabel": "falhou",
185
+ "parseFailedTooltip": "Sem texto extraído — o RAG não usará este documento",
186
+ "unattachedLabel": "Não anexado"
187
+ },
188
+ "detail": {
189
+ "backToList": "Voltar à lista",
190
+ "runningAt": "em execução em",
191
+ "staleNotice": "Configuração editada desde a última compilação — recompile para obter o ZIP mais recente.",
192
+ "wizard": "Assistente",
193
+ "chat": "Chat",
194
+ "connect": "Ligar",
195
+ "reconnect": "Reconectar",
196
+ "conversations": "Conversas",
197
+ "downloadZip": "Transferir Zip",
198
+ "downloadWithDocs": "Transferir com Documentos",
199
+ "deployToCloud": "Implementar na Cloud",
200
+ "live": "Em direto ↗",
201
+ "hideEmbed": "Ocultar Embed",
202
+ "embedScript": "Script de Embed",
203
+ "deleteBot": "Eliminar bot",
204
+ "deleteConfirm": "Eliminar este bot e o seu artefacto?"
205
+ }
206
+ },
207
+ "bots": {
208
+ "types": {
209
+ "chat": "Chat",
210
+ "knowledge": "Conhecimento",
211
+ "form": "Formulário",
212
+ "triage": "Triagem",
213
+ "appointment": "Marcação",
214
+ "bot": "Bot"
215
+ },
216
+ "descriptions": {
217
+ "chat": "Assistente de chat com IA",
218
+ "form": "Recolha estruturada de dados",
219
+ "triage": "Encaminhe utilizadores para o local certo",
220
+ "appointment": "Agende reuniões e marcações"
221
+ },
222
+ "status": {
223
+ "deployed": "implementado",
224
+ "deploying": "a implementar",
225
+ "failed": "falhado"
226
+ }
227
+ },
228
+ "actions": {
229
+ "modify": "Modificar",
230
+ "clone": "Clonar",
231
+ "reassign": "Reatribuir",
232
+ "goToLiveBot": "Ir para Bot em Direto",
233
+ "modifyTitle": "Modificar implementação - mantém o mesmo URL e nome",
234
+ "cloneTitle": "Clonar esta implementação com um novo nome",
235
+ "reassignTitle": "Reatribuir para um bot space diferente",
236
+ "deleteTitle": "Eliminar implementação",
237
+ "editInChat": "Chat",
238
+ "editInChatTitle": "Modificar usando o assistente de chat",
239
+ "pause": "Pausar",
240
+ "start": "Iniciar",
241
+ "pauseBot": "Pausar bot",
242
+ "startBot": "Iniciar bot",
243
+ "redeploy": "Reimplementar",
244
+ "redeployBot": "Reimplementar bot",
245
+ "live": "Em direto",
246
+ "embed": "Embed",
247
+ "copied": "Copiado",
248
+ "replicas": "Réplicas",
249
+ "scaleReplicas": "Escalar Réplicas",
250
+ "replicasDescription": "Ajuste o número de réplicas do bot. Mais réplicas suportam mais utilizadores simultâneos. As sessões persistentes garantem que os utilizadores se mantêm ligados à mesma réplica.",
251
+ "replicaCount": "Número de Réplicas",
252
+ "replicasRange": "Mín: 1, Máx: 10",
253
+ "currentReplicas": "Réplicas atuais (disponíveis/desejadas)",
254
+ "scale": "Escalar",
255
+ "scaling": "A escalar...",
256
+ "cancel": "Cancelar"
257
+ },
258
+ "nav": {
259
+ "dashboard": "Painel",
260
+ "analytics": "Análises",
261
+ "conversations": "Conversas",
262
+ "submissions": "Submissões",
263
+ "liveLogs": "Registos em Direto"
264
+ },
265
+ "wizard": {
266
+ "loading": "A carregar assistente...",
267
+ "loadingDeployment": "A carregar configuração de implementação...",
268
+ "previewAfterDeployment": "Pré-visualização disponível após implementação",
269
+ "clickToBegin": "Clique num botão de implementação para começar",
270
+ "clickToUpdate": "Clique num botão de implementação para atualizar",
271
+ "steps": {
272
+ "identity": "Identidade",
273
+ "knowledge": "Base de Conhecimento",
274
+ "deployment": "Implementação",
275
+ "resources": "Recursos",
276
+ "infoGathering": "Recolha de Informação",
277
+ "triage": "Triagem",
278
+ "appointments": "Marcações",
279
+ "botSetup": "Configuração do Bot",
280
+ "capabilities": "Capacidades",
281
+ "formCollection": "Recolha por Formulário",
282
+ "routing": "Encaminhamento",
283
+ "opticalRead": "Leitura Ótica",
284
+ "deploy": "Compilar"
285
+ },
286
+ "titles": {
287
+ "newBot": "Novo Bot",
288
+ "editBot": "Editar Bot",
289
+ "cloneBot": "Clonar Bot",
290
+ "newConversationalBot": "Novo Bot Conversacional",
291
+ "editConversationalBot": "Editar Bot Conversacional",
292
+ "cloneConversationalBot": "Clonar Bot Conversacional",
293
+ "newTriageBot": "Novo Bot de Triagem",
294
+ "editTriageBot": "Editar Bot de Triagem",
295
+ "cloneTriageBot": "Clonar Bot de Triagem",
296
+ "newAppointmentsBot": "Novo Bot de Marcações",
297
+ "editAppointmentsBot": "Editar Bot de Marcações",
298
+ "cloneAppointmentsBot": "Clonar Bot de Marcações",
299
+ "configureYourBot": "Configure o seu Bot",
300
+ "selectBotCapabilities": "Selecione as Capacidades do Bot",
301
+ "defineBotIdentity": "Defina a Identidade do Bot",
302
+ "uploadKnowledgeBase": "Carregar Base de Conhecimento",
303
+ "configureFormCollection": "Configurar Recolha por Formulário",
304
+ "configureAppointments": "Configurar Marcações",
305
+ "configureTriageRouting": "Configurar Encaminhamento de Triagem",
306
+ "configureOpticalRead": "Configurar Leitura Ótica",
307
+ "deployYourBot": "Compilar e Transferir"
308
+ },
309
+ "badges": {
310
+ "modifying": "A modificar",
311
+ "clone": "Clone",
312
+ "new": "Novo",
313
+ "conversational": "Conversacional",
314
+ "triage": "Triagem",
315
+ "appointments": "Marcações",
316
+ "form": "Formulário",
317
+ "modular": "Modular",
318
+ "knowledge": "Conhecimento",
319
+ "forms": "Formulários",
320
+ "routing": "Encaminhamento",
321
+ "opticalRead": "Leitura Ótica"
322
+ },
323
+ "theatre": {
324
+ "modelConfiguration": "Configuração do Modelo",
325
+ "botPreview": "Pré-visualização do Bot",
326
+ "knowledgeBase": "Base de Conhecimento",
327
+ "deployment": "Implementação",
328
+ "preview": "Pré-visualização",
329
+ "infoGathering": "Recolha de Informação",
330
+ "triageDestinations": "Destinos de Triagem",
331
+ "appointmentTypes": "Tipos de Marcação",
332
+ "calendarProviders": "Fornecedores de Calendário",
333
+ "protocolPreview": "Pré-visualização de Protocolo",
334
+ "formPreview": "Pré-visualização de Formulário",
335
+ "appointmentPreview": "Pré-visualização de Marcação",
336
+ "triagePreview": "Pré-visualização de Triagem",
337
+ "opticalReadPreview": "Pré-visualização de Leitura Ótica"
338
+ },
339
+ "protocols": {
340
+ "selectCapabilities": "Selecione as Capacidades do Bot",
341
+ "selectCapabilitiesDescription": "Ative os protocolos de que o seu bot necessita. Combine várias capacidades.",
342
+ "knowledgeBase": "Base de Conhecimento",
343
+ "knowledgeBaseDescription": "Responda a perguntas usando documentos carregados e RAG (Geração Aumentada por Recuperação)",
344
+ "formCollection": "Recolha por Formulário",
345
+ "formCollectionDescription": "Formulários conversacionais para recolher informação sem a IA ver os dados do utilizador",
346
+ "appointmentBooking": "Marcação de Compromissos",
347
+ "appointmentBookingDescription": "Encaminhe utilizadores para fornecedores de calendário como Calendly ou Google calendar",
348
+ "triageRouting": "Encaminhamento de Triagem",
349
+ "triageRoutingDescription": "Encaminhe utilizadores para bots especializados ou suporte humano com base nas suas necessidades",
350
+ "opticalRead": "Leitura Ótica",
351
+ "opticalReadDescription": "Extraia dados estruturados de uma imagem carregada usando um LLM com capacidade de visão",
352
+ "opticalReadProviderGate": "A Leitura Ótica requer um fornecedor com capacidade de visão. Anthropic e OpenAI são suportados.",
353
+ "modelGate": "Este modelo apenas suporta o protocolo de conhecimento. Mude para llama3.3 (Ollama) ou um fornecedor de cloud para ativar fluxos de múltiplos passos.",
354
+ "exampleFaq": "Chatbots de FAQ",
355
+ "exampleDocumentation": "Assistentes de documentação",
356
+ "exampleProductSupport": "Suporte de produto",
357
+ "exampleLeadCapture": "Captura de leads",
358
+ "exampleOnboarding": "Integração de utilizadores",
359
+ "exampleSurvey": "Recolha de inquéritos",
360
+ "exampleConsultation": "Marcação de consultas",
361
+ "exampleScheduling": "Agendamento de serviços",
362
+ "exampleMeeting": "Configuração de reuniões",
363
+ "exampleMultiBot": "Encaminhamento multi-bot",
364
+ "exampleDelegation": "Delegação inteligente",
365
+ "exampleCustomerRouting": "Encaminhamento de clientes",
366
+ "selectAtLeastOne": "Selecione pelo menos uma capacidade",
367
+ "capabilitiesSelected": "{count} {count, plural, one {capability} other {capabilities}} selecionada(s)",
368
+ "yourCombination": "A sua combinação:",
369
+ "combinationFullService": "Bot de serviço completo: Responda a perguntas, recolha informações de utilizador e marque compromissos.",
370
+ "combinationQaData": "Q&A + Recolha de Dados: Responda a perguntas a partir da sua base de conhecimento enquanto recolhe informação dos utilizadores.",
371
+ "combinationQaBooking": "Q&A + Marcação: Responda a perguntas e ajude utilizadores a marcar compromissos.",
372
+ "combinationIntakeBooking": "Triagem + Marcação: Recolha informações de utilizador e agende compromissos.",
373
+ "preview": {
374
+ "selectProtocolPrompt": "Selecione capacidades à esquerda para ver o que o seu bot pode fazer",
375
+ "selectedCapabilities": "Capacidades Selecionadas",
376
+ "combinedPossibilities": "Possibilidades Combinadas",
377
+ "exampleUseCases": "Exemplos de Casos de Uso",
378
+ "showExamples": "Mostrar exemplos",
379
+ "contexts": {
380
+ "contextGeneric": "Genérico",
381
+ "contextMedical": "Médico",
382
+ "contextLegal": "Jurídico",
383
+ "contextRetail": "Retalho",
384
+ "contextRealEstate": "Imobiliário",
385
+ "contextEducation": "Educação",
386
+ "contextHospitality": "Hotelaria",
387
+ "contextFinance": "Finanças",
388
+ "medical": {
389
+ "medicalKnowledge": "Base de Conhecimento Médico",
390
+ "medicalKnowledgeDesc": "Responda a perguntas de pacientes sobre sintomas, medicamentos, procedimentos e seguros",
391
+ "symptomChecker": "Verificador de Sintomas",
392
+ "drugInfo": "Informação de Medicamentos",
393
+ "treatmentFAQ": "FAQ de Tratamentos",
394
+ "insuranceCoverage": "Cobertura de Seguro",
395
+ "prepInstructions": "Preparação para Procedimento",
396
+ "medicalForms": "Triagem de Pacientes",
397
+ "medicalFormsDesc": "Recolha histórico médico, seguro e consentimento através de formulários conversacionais",
398
+ "patientIntake": "Triagem de Pacientes",
399
+ "medicalHistory": "Histórico Médico",
400
+ "consentForms": "Formulários de Consentimento",
401
+ "insuranceVerification": "Verificação de Seguro",
402
+ "symptomQuestionnaire": "Questionário de Sintomas",
403
+ "medicalAppointments": "Agendamento de Consultas",
404
+ "medicalAppointmentsDesc": "Marque consultas médicas, exames laboratoriais e seguimentos com integração de calendário",
405
+ "doctorBooking": "Marcação de Médico",
406
+ "labScheduling": "Agendamento de Análises",
407
+ "followUpReminders": "Lembretes de Seguimento",
408
+ "specialistReferral": "Encaminhamento para Especialista",
409
+ "telehealth": "Sessões de Telessaúde",
410
+ "medicalTriage": "Triagem Clínica",
411
+ "medicalTriageDesc": "Avalie a urgência e encaminhe pacientes para o nível de cuidados apropriado",
412
+ "urgencyAssessment": "Avaliação de Urgência",
413
+ "departmentRouting": "Encaminhamento por Departamento",
414
+ "nurseEscalation": "Escalonamento para Enfermeiro",
415
+ "emergencyDetection": "Deteção de Emergência",
416
+ "specialistMatch": "Correspondência de Especialista",
417
+ "medicalKnowledgeForm": "Triagem Inteligente de Pacientes",
418
+ "medicalKnowledgeFormDesc": "Eduque pacientes enquanto recolhe informação de triagem",
419
+ "smartIntake": "Triagem Inteligente",
420
+ "guidedSymptoms": "Recolha Guiada de Sintomas",
421
+ "educatedConsent": "Consentimento Informado",
422
+ "preVisitPrep": "Preparação Pré-consulta",
423
+ "medicalKnowledgeAppt": "Marcação Informada",
424
+ "medicalKnowledgeApptDesc": "Explique serviços e ajude pacientes a marcar a consulta certa",
425
+ "informedBooking": "Marcação Informada",
426
+ "prepThenSchedule": "Preparar e depois Agendar",
427
+ "serviceExplainer": "Explicador de Serviços",
428
+ "waitTimeInfo": "Informação de Tempo de Espera",
429
+ "medicalTriple": "Jornada do Paciente",
430
+ "medicalTripleDesc": "Fluxo completo de triagem: eduque, recolha informação e agende numa única conversa",
431
+ "fullPatientJourney": "Jornada Completa do Paciente",
432
+ "newPatientOnboarding": "Integração de Novos Pacientes",
433
+ "referralWorkflow": "Fluxo de Encaminhamento",
434
+ "medicalAll": "Receção Virtual",
435
+ "medicalAllDesc": "Rececionista digital completo: triagem, recolha, educação e agendamento",
436
+ "virtualFrontDesk": "Receção Virtual",
437
+ "completePatientPortal": "Assistente de Portal do Paciente",
438
+ "urgentCareBot": "Bot de Cuidados Urgentes"
439
+ },
440
+ "legal": {
441
+ "legalKnowledge": "Informação Jurídica",
442
+ "legalKnowledgeDesc": "Responda a perguntas sobre áreas de prática, processos e estruturas de honorários",
443
+ "legalFAQ": "FAQ Jurídico",
444
+ "caseTypesInfo": "Informação de Tipos de Caso",
445
+ "feeStructure": "Estrutura de Honorários",
446
+ "processExplainer": "Explicador de Processo",
447
+ "jurisdictionInfo": "Informação de Jurisdição",
448
+ "legalForms": "Triagem de Clientes",
449
+ "legalFormsDesc": "Recolha detalhes de casos, documentos e informação de verificação de conflitos",
450
+ "clientIntake": "Triagem de Clientes",
451
+ "caseDetails": "Detalhes do Caso",
452
+ "documentCollection": "Recolha de Documentos",
453
+ "conflictCheck": "Verificação de Conflitos",
454
+ "retainerInfo": "Informação de Avença",
455
+ "legalAppointments": "Marcação de Consultas",
456
+ "legalAppointmentsDesc": "Agende consultas, depoimentos e reuniões",
457
+ "consultationBooking": "Marcação de Consulta",
458
+ "depositionSchedule": "Agendamento de Depoimentos",
459
+ "courtDateReminders": "Lembretes de Datas de Tribunal",
460
+ "meetingCoordination": "Coordenação de Reuniões",
461
+ "legalTriage": "Encaminhamento de Casos",
462
+ "legalTriageDesc": "Encaminhe consultas para o advogado ou área de prática apropriada",
463
+ "caseTypeRouting": "Encaminhamento por Tipo de Caso",
464
+ "urgencyAssessment": "Avaliação de Urgência",
465
+ "attorneyMatch": "Correspondência de Advogado",
466
+ "departmentRouting": "Encaminhamento por Departamento",
467
+ "legalKnowledgeForm": "Avaliação Guiada de Caso",
468
+ "legalKnowledgeFormDesc": "Explique opções legais enquanto recolhe informação do caso",
469
+ "guidedIntake": "Triagem Guiada",
470
+ "informedConsent": "Consentimento Informado",
471
+ "caseEvaluation": "Avaliação de Caso",
472
+ "legalAll": "Paralegal Virtual",
473
+ "legalAllDesc": "Serviços completos ao cliente: triagem, avaliação de caso, encaminhamento e agendamento",
474
+ "virtualParalegal": "Paralegal Virtual",
475
+ "clientPortal": "Portal do Cliente",
476
+ "caseManagement": "Gestão de Casos"
477
+ },
478
+ "retail": {
479
+ "retailKnowledge": "Assistente de Produto",
480
+ "retailKnowledgeDesc": "Responda a perguntas sobre produtos, disponibilidade, políticas e tamanhos",
481
+ "productInfo": "Informação de Produto",
482
+ "stockAvailability": "Disponibilidade de Stock",
483
+ "returnPolicy": "Política de Devolução",
484
+ "shippingFAQ": "FAQ de Envio",
485
+ "sizeGuide": "Guia de Tamanhos",
486
+ "retailForms": "Apoio ao Cliente",
487
+ "retailFormsDesc": "Trate de consultas de encomendas, devoluções e registos de garantia",
488
+ "orderLookup": "Consulta de Encomenda",
489
+ "returnRequest": "Pedido de Devolução",
490
+ "warrantyRegistration": "Registo de Garantia",
491
+ "feedbackSurvey": "Inquérito de Feedback",
492
+ "wishlist": "Recolha de Lista de Desejos",
493
+ "retailAppointments": "Marcação de Serviços",
494
+ "retailAppointmentsDesc": "Agende compras personalizadas, levantamentos e serviços em loja",
495
+ "personalShopping": "Compras Personalizadas",
496
+ "storePickup": "Levantamento em Loja",
497
+ "serviceBooking": "Marcação de Serviços",
498
+ "consultations": "Consultas de Estilo",
499
+ "fittingRoom": "Marcação de Provador",
500
+ "retailTriage": "Encaminhamento de Clientes",
501
+ "retailTriageDesc": "Encaminhe clientes para o departamento certo ou escale problemas",
502
+ "departmentRouting": "Encaminhamento por Departamento",
503
+ "issueEscalation": "Escalonamento de Problemas",
504
+ "vipCustomers": "Clientes VIP",
505
+ "languageRouting": "Encaminhamento por Idioma",
506
+ "retailAll": "Concierge Virtual",
507
+ "retailAllDesc": "Assistente de compras completo: ajuda de produto, marcação de serviços e suporte",
508
+ "virtualConcierge": "Concierge Virtual",
509
+ "omniChannelSupport": "Suporte Omnicanal",
510
+ "personalShopperBot": "Bot de Compras Personalizadas"
511
+ },
512
+ "realestate": {
513
+ "realestateKnowledge": "Informação de Imóveis",
514
+ "realestateKnowledgeDesc": "Responda a perguntas sobre listagens, bairros e processo de compra",
515
+ "listingInfo": "Informação de Listagem",
516
+ "neighborhoodGuide": "Guia de Bairros",
517
+ "mortgageFAQ": "FAQ de Hipotecas",
518
+ "buyingProcess": "Processo de Compra",
519
+ "marketTrends": "Tendências de Mercado",
520
+ "realestateForms": "Qualificação de Leads",
521
+ "realestateFormsDesc": "Qualifique compradores/vendedores e capture preferências de imóveis",
522
+ "buyerQualification": "Qualificação de Comprador",
523
+ "sellerIntake": "Triagem de Vendedor",
524
+ "propertyPreferences": "Preferências de Imóvel",
525
+ "preApprovalInfo": "Informação de Pré-aprovação",
526
+ "contactCapture": "Captura de Contacto",
527
+ "realestateAppointments": "Agendamento de Visitas",
528
+ "realestateAppointmentsDesc": "Marque visitas a imóveis, casas abertas e reuniões com agentes",
529
+ "showingSchedule": "Agendamento de Visita",
530
+ "openHouseRSVP": "RSVP de Casa Aberta",
531
+ "agentMeeting": "Reunião com Agente",
532
+ "virtualTour": "Visita Virtual",
533
+ "inspectionBooking": "Marcação de Inspeção",
534
+ "realestateTriage": "Correspondência de Agente",
535
+ "realestateTriageDesc": "Faça corresponder leads ao agente certo com base nas necessidades e localização",
536
+ "buyerVsSeller": "Comprador vs Vendedor",
537
+ "locationRouting": "Encaminhamento por Localização",
538
+ "agentMatch": "Correspondência de Agente",
539
+ "propertyTypeSpecialist": "Especialista de Imóvel",
540
+ "realestateAll": "Agente Virtual",
541
+ "realestateAllDesc": "Assistente imobiliário completo: listagens, qualificação e agendamento",
542
+ "virtualAgent": "Agente Virtual",
543
+ "leadQualification": "Qualificação de Leads",
544
+ "propertyMatchmaker": "Casamenteiro de Imóveis"
545
+ },
546
+ "education": {
547
+ "educationKnowledge": "Informação de Cursos e Programas",
548
+ "educationKnowledgeDesc": "Responda a perguntas sobre cursos, admissões, apoio financeiro e vida no campus",
549
+ "courseCatalog": "Catálogo de Cursos",
550
+ "admissionsFAQ": "FAQ de Admissões",
551
+ "financialAid": "Informação de Apoio Financeiro",
552
+ "campusInfo": "Informação do Campus",
553
+ "programRequirements": "Requisitos do Programa",
554
+ "educationForms": "Candidaturas de Estudantes",
555
+ "educationFormsDesc": "Recolha informação de inscrição, registo e candidatura",
556
+ "applicationForm": "Formulário de Candidatura",
557
+ "enrollmentInfo": "Informação de Inscrição",
558
+ "transcriptRequest": "Pedido de Transcrição",
559
+ "financialAidApp": "Candidatura a Apoio Financeiro",
560
+ "courseRegistration": "Registo em Curso",
561
+ "educationAppointments": "Agendamento Académico",
562
+ "educationAppointmentsDesc": "Marque reuniões com conselheiros, visitas ao campus e sessões de tutoria",
563
+ "advisorMeeting": "Reunião com Conselheiro",
564
+ "campusTour": "Visita ao Campus",
565
+ "admissionsInterview": "Entrevista de Admissão",
566
+ "tutoringSessions": "Sessões de Tutoria",
567
+ "officeHours": "Horários de Atendimento",
568
+ "educationTriage": "Encaminhamento de Estudantes",
569
+ "educationTriageDesc": "Encaminhe consultas para o departamento ou equipa de apoio adequada",
570
+ "departmentRouting": "Encaminhamento por Departamento",
571
+ "studentVsProspect": "Estudante vs Candidato",
572
+ "academicVsAdmin": "Académico vs Administrativo",
573
+ "urgencyLevel": "Nível de Urgência",
574
+ "educationAll": "Conselheiro Virtual",
575
+ "educationAllDesc": "Serviços completos ao estudante: informação, candidaturas e agendamento",
576
+ "virtualAdvisor": "Conselheiro Virtual",
577
+ "admissionsBot": "Bot de Admissões",
578
+ "studentServicesHub": "Centro de Serviços ao Estudante"
579
+ },
580
+ "hospitality": {
581
+ "hospitalityKnowledge": "Informação para Hóspedes",
582
+ "hospitalityKnowledgeDesc": "Responda a perguntas sobre comodidades, restauração, atividades e atrações locais",
583
+ "amenitiesInfo": "Informação de Comodidades",
584
+ "localAttractions": "Atrações Locais",
585
+ "diningOptions": "Opções de Restauração",
586
+ "policyFAQ": "FAQ de Políticas",
587
+ "eventInfo": "Informação de Eventos",
588
+ "hospitalityForms": "Preferências de Hóspedes",
589
+ "hospitalityFormsDesc": "Capture preferências de quarto, necessidades dietéticas e detalhes de ocasiões especiais antes da chegada",
590
+ "roomPreferences": "Preferências de Quarto",
591
+ "dietaryRestrictions": "Restrições Dietéticas",
592
+ "pillowMenu": "Menu de Almofadas e Roupa de Cama",
593
+ "arrivalDetails": "Detalhes de Chegada",
594
+ "specialOccasions": "Ocasiões Especiais",
595
+ "hospitalityAppointments": "Marcação de Reservas",
596
+ "hospitalityAppointmentsDesc": "Reserve restaurante, spa, atividades e serviço de quarto",
597
+ "reservationBooking": "Marcação de Reserva",
598
+ "spaAppointment": "Marcação de Spa",
599
+ "diningReservation": "Reserva de Restaurante",
600
+ "roomService": "Serviço de Quarto",
601
+ "activityBooking": "Marcação de Atividade",
602
+ "hospitalityTriage": "Encaminhamento de Hóspedes",
603
+ "hospitalityTriageDesc": "Encaminhe pedidos para o departamento certo ou escale assuntos urgentes",
604
+ "guestVsProspect": "Hóspede vs Candidato",
605
+ "urgentRequests": "Pedidos Urgentes",
606
+ "departmentRouting": "Encaminhamento por Departamento",
607
+ "vipHandling": "Tratamento VIP",
608
+ "hospitalityAll": "Concierge Virtual",
609
+ "hospitalityAllDesc": "Serviços completos a hóspedes: informação, reservas e suporte",
610
+ "virtualConcierge": "Concierge Virtual",
611
+ "guestServicesBot": "Bot de Serviços a Hóspedes",
612
+ "preArrivalConcierge": "Concierge Pré-chegada"
613
+ },
614
+ "finance": {
615
+ "financeKnowledge": "Produtos Financeiros",
616
+ "financeKnowledgeDesc": "Responda a perguntas sobre contas, empréstimos, taxas e requisitos de KYC",
617
+ "productInfo": "Informação de Produto",
618
+ "ratesFAQ": "FAQ de Taxas e Comissões",
619
+ "eligibilityGuide": "Guia de Elegibilidade",
620
+ "kycRequirements": "Requisitos de KYC",
621
+ "complianceInfo": "Informação de Conformidade",
622
+ "financeForms": "KYC e Onboarding",
623
+ "financeFormsDesc": "Recolha documentos de identidade, verifique clientes e complete a integração regulamentar",
624
+ "kycCollection": "Recolha de KYC",
625
+ "identityVerification": "Verificação de Identidade",
626
+ "amlScreening": "Verificação AML",
627
+ "accountOpening": "Abertura de Conta",
628
+ "riskProfiling": "Perfil de Risco",
629
+ "financeAppointments": "Agendamento com Consultor",
630
+ "financeAppointmentsDesc": "Marque reuniões com consultores, gestores de empréstimos e especialistas",
631
+ "advisorMeeting": "Reunião com Consultor",
632
+ "loanConsultation": "Consulta de Empréstimo",
633
+ "accountReview": "Revisão de Conta",
634
+ "planningSession": "Sessão de Planeamento",
635
+ "branchVisit": "Visita ao Balcão",
636
+ "financeTriage": "Encaminhamento de Serviço",
637
+ "financeTriageDesc": "Encaminhe para o especialista de produto certo ou escale casos complexos",
638
+ "productRouting": "Encaminhamento por Produto",
639
+ "complianceEscalation": "Escalonamento de Conformidade",
640
+ "advisorMatch": "Correspondência de Consultor",
641
+ "fraudEscalation": "Escalonamento de Fraude",
642
+ "financeAll": "Onboarding Digital",
643
+ "financeAllDesc": "Integração digital completa: verificação KYC, correspondência de produto e agendamento com consultor",
644
+ "digitalOnboarding": "Onboarding Digital",
645
+ "kycBot": "Bot de KYC",
646
+ "wealthAdvisorAssistant": "Assistente de Gestor de Património"
647
+ }
648
+ },
649
+ "knowledge": {
650
+ "title": "Base de Conhecimento",
651
+ "description": "Responda a perguntas usando os seus documentos carregados com recuperação alimentada por RAG",
652
+ "example1": "Chatbot de FAQ de produto",
653
+ "example2": "Assistente de documentação",
654
+ "example3": "Portal de conhecimento interno"
655
+ },
656
+ "formGathering": {
657
+ "title": "Recolha por Formulário",
658
+ "description": "Recolha progressivamente informação do utilizador através de conversa natural",
659
+ "example1": "Formulários de captura de leads",
660
+ "example2": "Integração de clientes",
661
+ "example3": "Recolha de inquéritos e feedback"
662
+ },
663
+ "appointments": {
664
+ "title": "Marcação de Compromissos",
665
+ "description": "Permita que os utilizadores marquem reuniões através de integrações de calendário",
666
+ "example1": "Marcação de consulta comercial",
667
+ "example2": "Agendamento de serviço",
668
+ "example3": "Pedidos de demonstração e reuniões"
669
+ },
670
+ "triage": {
671
+ "title": "Encaminhamento de Triagem",
672
+ "description": "Encaminhe utilizadores para bots especializados ou suporte humano com base nas suas necessidades",
673
+ "example1": "Encaminhamento por departamento",
674
+ "example2": "Escalonamento para agentes humanos",
675
+ "example3": "Orquestração multi-bot"
676
+ },
677
+ "singles": {
678
+ "singleKnowledge": "Assistente de Conhecimento",
679
+ "singleKnowledgeDesc": "Responda a perguntas usando os seus documentos carregados com recuperação inteligente alimentada por RAG",
680
+ "scenarioFAQ": "Chatbot de FAQ",
681
+ "scenarioProductInfo": "Informação de Produto",
682
+ "scenarioDocumentation": "Portal de Documentação",
683
+ "scenarioInternalKB": "Base de Conhecimento Interna",
684
+ "scenarioPolicyLookup": "Consulta de Política",
685
+ "singleFormGathering": "Recolha de Dados",
686
+ "singleFormGatheringDesc": "Recolha progressivamente informação estruturada através de conversa natural",
687
+ "scenarioLeadCapture": "Captura de Leads",
688
+ "scenarioSurvey": "Recolha de Inquéritos",
689
+ "scenarioContactForm": "Formulários de Contacto",
690
+ "scenarioFeedback": "Recolha de Feedback",
691
+ "scenarioRegistration": "Registo em Eventos",
692
+ "singleAppointments": "Assistente de Marcação",
693
+ "singleAppointmentsDesc": "Ajude utilizadores a agendar reuniões através de integrações de calendário como Calendly ou Cal.com",
694
+ "scenarioBookMeeting": "Marcação de Reunião",
695
+ "scenarioScheduleDemo": "Agendamento de Demonstração",
696
+ "scenarioConsultation": "Marcação de Consulta",
697
+ "scenarioServiceAppt": "Marcações de Serviço",
698
+ "scenarioOfficeHours": "Horários de Atendimento",
699
+ "singleTriage": "Encaminhador Inteligente",
700
+ "singleTriageDesc": "Encaminhe utilizadores para o destino certo com base em intenção, urgência ou tópico",
701
+ "scenarioRouteToAgent": "Encaminhamento para Agente",
702
+ "scenarioDepartmentRouting": "Encaminhamento por Departamento",
703
+ "scenarioEscalation": "Tratamento de Escalonamento",
704
+ "scenarioLanguageRouting": "Encaminhamento Baseado em Idioma",
705
+ "scenarioVIPRouting": "Encaminhamento de Prioridade/VIP",
706
+ "singleOpticalRead": "Extrator de Visão",
707
+ "singleOpticalReadDesc": "Extraia campos estruturados de uma imagem carregada — o modelo lê, o utilizador revê e envia",
708
+ "scenarioIdScan": "Digitalização de Documento de Identificação",
709
+ "scenarioInsuranceCard": "Captura de Cartão de Seguro",
710
+ "scenarioReceiptExtract": "Extração de Recibo",
711
+ "scenarioBusinessCard": "Leitor de Cartão de Visita",
712
+ "scenarioPrescriptionLabel": "Etiqueta de Receita Médica"
713
+ },
714
+ "synergies": {
715
+ "synergyKnowledgeForm": "Captura Informada de Leads",
716
+ "synergyKnowledgeFormDesc": "Responda a perguntas de produto para construir confiança e depois capture leads interessadas com formulários contextuais",
717
+ "scenarioQualifyThenCapture": "Qualificar e depois capturar",
718
+ "scenarioAnswerThenCollect": "Responder e depois recolher",
719
+ "scenarioContextualForms": "Formulários contextuais",
720
+ "scenarioEducateThenConvert": "Educar e depois converter",
721
+ "scenarioSupportToLead": "Suporte → Lead",
722
+ "synergyKnowledgeAppointments": "Marcação Consultiva",
723
+ "synergyKnowledgeAppointmentsDesc": "Eduque utilizadores sobre serviços/produtos e depois permita que marquem quando estiverem prontos",
724
+ "scenarioInformThenBook": "Informar e depois marcar",
725
+ "scenarioSmartScheduling": "Agendamento inteligente",
726
+ "scenarioPreQualifyBooking": "Pré-qualificar marcações",
727
+ "scenarioServiceExplainer": "Explicador de Serviço → Marcar",
728
+ "scenarioPricingToDemo": "FAQ de Preços → Demonstração",
729
+ "synergyKnowledgeTriage": "Escalonamento Inteligente",
730
+ "synergyKnowledgeTriageDesc": "Respostas autónomas para perguntas comuns, transferência fluida para problemas complexos",
731
+ "scenarioAnswerOrEscalate": "Responder ou escalar",
732
+ "scenarioSmartRouting": "Encaminhamento inteligente",
733
+ "scenarioTieredSupport": "Suporte por níveis",
734
+ "scenarioDeflectOrRoute": "Desviar ou encaminhar",
735
+ "scenarioL1Automation": "Automação L1",
736
+ "synergyKnowledgeOpticalRead": "Digitalizar e Explicar",
737
+ "synergyKnowledgeOpticalReadDesc": "Extraia dados de uma imagem carregada e depois responda a perguntas de seguimento fundamentadas na sua base de conhecimento",
738
+ "scenarioScanThenAsk": "Digitalizar e depois perguntar",
739
+ "scenarioDocumentExplainer": "Explicador de documento",
740
+ "scenarioCardToPolicy": "Cartão → consulta de apólice",
741
+ "scenarioPrescriptionExplainer": "Explicador de receita médica",
742
+ "scenarioReceiptToReturns": "Recibo → FAQ de devoluções",
743
+ "synergyFormAppointments": "Triagem para Marcação",
744
+ "synergyFormAppointmentsDesc": "Recolha informação qualificadora e depois ofereça horários personalizados",
745
+ "scenarioIntakeSchedule": "Triagem e depois agendar",
746
+ "scenarioBookAndCapture": "Marcar e capturar",
747
+ "scenarioQualifyBook": "Qualificar e depois marcar",
748
+ "scenarioPreVisitForm": "Formulário pré-consulta → Marcar",
749
+ "scenarioNeedsAssessment": "Avaliação de necessidades → Agendar",
750
+ "synergyFormTriage": "Encaminhamento Inteligente de Leads",
751
+ "synergyFormTriageDesc": "Recolha detalhes do utilizador e depois encaminhe para o membro da equipa ou departamento perfeito",
752
+ "scenarioCollectThenRoute": "Recolher e depois encaminhar",
753
+ "scenarioFormBasedRouting": "Encaminhamento baseado em formulário",
754
+ "scenarioLeadDistribution": "Distribuição de leads",
755
+ "scenarioSkillBasedRouting": "Encaminhamento baseado em competências",
756
+ "scenarioTerritoryAssignment": "Atribuição de território",
757
+ "synergyAppointmentsTriage": "Marcação com Especialista",
758
+ "synergyAppointmentsTriageDesc": "Identifique o especialista certo para as necessidades do utilizador e depois marque diretamente",
759
+ "scenarioRouteToCalendar": "Encaminhar para calendário",
760
+ "scenarioSpecialistBooking": "Marcação com especialista",
761
+ "scenarioSmartDelegation": "Delegação inteligente",
762
+ "scenarioExpertMatch": "Correspondência de especialistas",
763
+ "scenarioAvailabilityRouting": "Encaminhamento por disponibilidade",
764
+ "synergyTriple1": "Funil Completo de Vendas",
765
+ "synergyTriple1Desc": "Jornada completa de vendas: eduque prospects, capture leads e marque demonstrações qualificadas",
766
+ "scenarioFullSalesFlow": "Fluxo completo de vendas",
767
+ "scenarioCompleteOnboarding": "Onboarding completo",
768
+ "scenarioNurtureToClose": "Nutrir até fechar",
769
+ "scenarioInboundSales": "Automação de vendas inbound",
770
+ "synergyTriple2": "Centro de Suporte",
771
+ "synergyTriple2Desc": "Base de conhecimento de autosserviço, criação de tickets e escalonamento inteligente para agentes",
772
+ "scenarioSupportEscalation": "Escalonamento de suporte",
773
+ "scenarioIntelligentTicketing": "Emissão inteligente de tickets",
774
+ "scenarioHelpDeskAuto": "Automação de help desk",
775
+ "scenarioIssueCapture": "Captura de problema → Encaminhar",
776
+ "synergyTriple3": "Fluxo de Consulta",
777
+ "synergyTriple3Desc": "Responda a perguntas, faça correspondência ao especialista certo e permita marcação direta em calendário",
778
+ "scenarioMultiSpecialistBooking": "Marcação com múltiplos especialistas",
779
+ "scenarioSmartConsultation": "Consulta inteligente",
780
+ "scenarioAdvisoryFlow": "Fluxo de serviço de aconselhamento",
781
+ "scenarioExpertConnect": "Ligação com especialista",
782
+ "synergyTriple4": "Triagem Completa",
783
+ "synergyTriple4Desc": "Formulários estruturados de triagem, encaminhamento inteligente para equipas e agendamento automatizado",
784
+ "scenarioIntakeRouteBook": "Triagem → Encaminhar → Marcar",
785
+ "scenarioCompleteLeadFlow": "Fluxo completo de leads",
786
+ "scenarioPatientIntake": "Fluxo de triagem de paciente",
787
+ "scenarioClientOnboarding": "Onboarding de cliente",
788
+ "synergyAll": "Assistente Empresarial",
789
+ "synergyAllDesc": "Concierge com todas as funcionalidades: responde a perguntas, recolhe dados, encaminha inteligentemente e marca compromissos",
790
+ "scenarioEnterpriseBot": "Assistente empresarial",
791
+ "scenarioFullServiceAssistant": "Bot de serviço completo",
792
+ "scenarioDigitalConcierge": "Concierge digital",
793
+ "scenarioVirtualReceptionist": "Rececionista virtual",
794
+ "scenarioUnifiedSupport": "Centro unificado de suporte"
795
+ }
796
+ }
797
+ },
798
+ "modular": {
799
+ "addCalendarProvider": "Adicionar Fornecedor de Calendário",
800
+ "addUrlDestination": "Adicionar Destino URL",
801
+ "redirectToBot": "Redirecionar para Bot",
802
+ "addRoutingDestination": "Adicionar Destino de Encaminhamento",
803
+ "selectedBot": "Bot Selecionado",
804
+ "displayName": "Nome a Apresentar",
805
+ "displayNamePlaceholder": "ex.: Suporte Comercial, Ajuda Técnica",
806
+ "description": "Descrição",
807
+ "descriptionPlaceholder": "Descreva quando os utilizadores devem ser encaminhados para aqui...",
808
+ "url": "URL",
809
+ "urlPlaceholder": "https://example.com/support",
810
+ "paradigm": "Paradigma",
811
+ "protocols": "Protocolos",
812
+ "set": "Definido",
813
+ "notGenerated": "Não gerado",
814
+ "calendars": "Calendários",
815
+ "configured": "{count} configurado(s)",
816
+ "triageRoutes": "Rotas de Triagem",
817
+ "opticalReadFields": "Campos de Leitura Ótica",
818
+ "required": "Obrigatório",
819
+ "displayNameRequired": "O nome a apresentar é obrigatório",
820
+ "descriptionRequired": "A descrição é obrigatória",
821
+ "urlRequired": "O URL é obrigatório",
822
+ "urlInvalid": "Introduza um URL válido",
823
+ "addOpticalReadField": "Adicionar Campo de Extração",
824
+ "editOpticalReadField": "Editar Campo de Extração",
825
+ "updateOpticalReadField": "Atualizar Campo de Extração"
826
+ },
827
+ "tabs": {
828
+ "desktop": "Ambiente de Trabalho",
829
+ "documents": "Documentos",
830
+ "fieldsDisplay": "Apresentação de Campos",
831
+ "flow": "Fluxo",
832
+ "jsonView": "Vista JSON",
833
+ "fields": "Campos",
834
+ "preview": "Pré-visualização"
835
+ },
836
+ "identity": {
837
+ "chatDisplayName": "Nome a Apresentar na Janela de Chat",
838
+ "chatDisplayNameHelper": "Nome mostrado no cabeçalho da interface de chat",
839
+ "personaObjective": "Persona e Objetivo",
840
+ "personaObjectivePlaceholder": "Descreva o propósito, personalidade e instruções personalizadas do seu bot",
841
+ "personaObjectiveHelper": "Defina como o seu bot se deve comportar, em que deve ajudar e quaisquer diretrizes específicas.",
842
+ "welcomeMessage": "Mensagem de Boas-vindas",
843
+ "welcomeMessagePlaceholder": "Olá! Como posso ajudar hoje?",
844
+ "welcomeMessageHelper": "A primeira mensagem que os utilizadores vêem quando iniciam uma conversa.",
845
+ "suggestedPrompts": "Prompts Sugeridos (Opcional)",
846
+ "suggestedPromptsHelper": "Forneça prompts de início rápido para ajudar os utilizadores a começar conversas",
847
+ "inputPlaceholder": "Placeholder de Entrada",
848
+ "inputPlaceholderHelper": "Texto placeholder no campo de entrada de mensagem",
849
+ "inputPlaceholderDefault": "Escreva a sua mensagem...",
850
+ "promptPlaceholder": "Em que me pode ajudar?",
851
+ "chatDisplayNamePlaceholder": "Bot",
852
+ "promptItemLabel": "Prompt"
853
+ },
854
+ "resources": {
855
+ "botName": "Definir Nome Único do Bot",
856
+ "botNameHelper": "Será usado como o seu identificador único de recurso. Máx. 50 caracteres.",
857
+ "botNamePlaceholder": "O Meu Bot Incrível",
858
+ "aboutBotNames": "Sobre Nomes de Bot",
859
+ "botNameInfo": "Os nomes de recurso são pesquisáveis no painel. Use descrições significativas ou implemente o seu próprio sistema.",
860
+ "botNameWarning": "O nome não pode ser alterado após a implementação.",
861
+ "provider": "Fornecedor",
862
+ "selectProvider": "Selecione um fornecedor",
863
+ "model": "Modelo",
864
+ "selectModel": "Selecione um modelo",
865
+ "apiKey": "Chave de API",
866
+ "apiKeyEnter": "Introduza a sua chave de API",
867
+ "apiKeySelectProviderFirst": "Selecione primeiro um fornecedor",
868
+ "apiKeySavedPlaceholder": "•••••••• (a usar chave guardada)",
869
+ "apiKeyExistingPlaceholder": "•••••••• (chave existente em ficheiro — deixe em branco para manter)",
870
+ "apiKeyUsingSaved": "A usar chave de API guardada:",
871
+ "apiKeyExistingConfigured": "Chave de API existente configurada — será reutilizada a menos que introduza uma nova",
872
+ "apiKeyIsSet": "Chave de API definida",
873
+ "apiKeyClear": "Limpar",
874
+ "apiKeyAbout": "Sobre Chaves de API",
875
+ "apiKeyTooltip": "A sua chave de API é encriptada e armazenada de forma segura. Será usada para alimentar as respostas do seu chatbot. Pode gerir as suas chaves de API guardadas nas definições.",
876
+ "apiKeyEncryptedHelper": "A sua chave de API é encriptada e armazenada de forma segura",
877
+ "apiKeyLoadingSaved": "A carregar chaves guardadas...",
878
+ "apiKeyOrUseSaved": "Ou use uma chave de API guardada:",
879
+ "ollamaNoCredsNeeded": "O Ollama é executado contra o seu próprio endpoint — não é necessária uma chave de API.",
880
+ "ollamaHost": "URL do host Ollama",
881
+ "ollamaHostHelper": "O endpoint que o seu bot vai contactar. Deixe em branco para usar o predefinido http://localhost:11434. Se o seu bot correr em Docker e o Ollama correr no host, use http://host.docker.internal:11434 (Mac/Windows) ou o IP da LAN do seu host (Linux). Implementações na cloud requerem um endpoint Ollama publicamente acessível. Requer Ollama ≥ 0.5.0 para garantias de validade do envelope — daemons mais antigos funcionam mas recorrem a análise JSON de melhor esforço.",
882
+ "ollamaHostSavedPlaceholder": "A usar host guardado — limpe para escrever um novo URL",
883
+ "ollamaHostUsingSaved": "A usar host Ollama guardado:",
884
+ "ollamaHostOrUseSaved": "Ou use um host Ollama guardado:",
885
+ "awsCredentialsUsing": "A usar credenciais AWS guardadas:",
886
+ "awsCredentialsExisting": "Credenciais AWS existentes configuradas — serão reutilizadas a menos que introduza novas abaixo",
887
+ "awsUseIamRole": "Usar IAM Role (recomendado para EKS/EC2)",
888
+ "awsUseIamRoleHelper": "Usa o IAM role da instância/pod em vez de credenciais 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ão Bedrock",
894
+ "bedrockRegionOption": "{name} ({geoPrefix} multi-região)",
895
+ "bedrockCrossRegion": "A inferência multi-região encaminha pedidos para a capacidade disponível na região {regionName}",
896
+ "regionUS": "EUA",
897
+ "regionEU": "UE",
898
+ "regionAPAC": "APAC",
899
+ "awsUsingIamRoleStatus": "A usar IAM Role",
900
+ "awsCredentialsConfigured": "Credenciais AWS configuradas",
901
+ "awsLoadingCredentials": "A carregar credenciais guardadas...",
902
+ "awsOrUseSaved": "Ou use credenciais AWS guardadas:"
903
+ },
904
+ "knowledge": {
905
+ "loadingDocuments": "A carregar documentos...",
906
+ "noDocumentsInSpace": "Ainda não existem documentos neste bot space.",
907
+ "selectFromBotSpace": "Selecionar dos Ficheiros do Bot Space",
908
+ "selected": "Selecionado",
909
+ "select": "Selecionar",
910
+ "skipRag": "Ignorar RAG",
911
+ "skipRagHelper": "O prompt de objetivo será a única fonte de conhecimento"
912
+ },
913
+ "infoGathering": {
914
+ "formRegion": "Região do Formulário",
915
+ "formRegionHelper": "Define padrões de validação, formatos de campo e etiquetas para a sua região alvo",
916
+ "describeInfo": "Descreva a informação que deseja recolher",
917
+ "describeInfoPlaceholder": "Quero recolher o nome, email e nome da empresa do utilizador...",
918
+ "describeInfoHelperEdit": "Adicione uma descrição e regenere, ou edite o JSON diretamente no separador Vista JSON",
919
+ "describeInfoHelper": "Descreva os campos do formulário em texto simples",
920
+ "aiFormGeneration": "Geração de Formulário com IA",
921
+ "regenerateDescription": "Regenerar estrutura do formulário a partir da sua nova descrição",
922
+ "generateDescription": "Gerar um formulário estruturado a partir da sua descrição",
923
+ "errorNoDescription": "Descreva a informação que deseja recolher",
924
+ "errorNoApiKey": "A chave de API está em falta. Volte ao Passo 1 e introduza a sua chave de API.",
925
+ "formSubmissionOptions": "Opções de Submissão de Formulário",
926
+ "sendToControlPlane": "Enviar para Control Plane",
927
+ "sendToControlPlaneHelper": "Armazene submissões de formulário concluídas no seu painel para visualização e exportação",
928
+ "webhookUrl": "URL de Webhook Externo (Opcional)",
929
+ "webhookUrlPlaceholder": "https://your-webhook-url.com/endpoint",
930
+ "webhookUrlHelper": "Envie também dados do formulário para um webhook externo (ex.: Zapier, Make, endpoint personalizado)",
931
+ "afterSubmitMessage": "Mensagem de Chat Pós-Submissão",
932
+ "afterSubmitPlaceholder": "Obrigado! Vamos começar...",
933
+ "afterSubmitHelper": "Mensagem mostrada aos utilizadores após submeterem o formulário",
934
+ "termsAndConditions": "Termos e Condições",
935
+ "termsPlaceholder": "Introduza o texto dos seus termos e condições aqui. Suporta formatação markdown...",
936
+ "termsHelper": "Se fornecido, uma checkbox obrigatória aparecerá como o último campo do formulário. Deixe vazio para ignorar.",
937
+ "termsInfo": "Os utilizadores podem clicar no link \"Termos e Condições\" para ver o texto completo numa janela antes de aceitar.",
938
+ "jsonViewTip": "Dica: Mude para o separador \"Vista JSON\" à direita para editar a estrutura do formulário gerada."
939
+ },
940
+ "triage": {
941
+ "addRoute": "Adicionar Rota de Chatbot",
942
+ "deleteRoute": "Eliminar Rota",
943
+ "deleteDestination": "Eliminar Destino",
944
+ "selectedBotUrl": "URL do Bot Selecionado",
945
+ "editBotDestination": "Editar Destino de Bot",
946
+ "editUrlDestination": "Editar Destino URL",
947
+ "selectBot": "Selecionar Bot",
948
+ "loadingBots": "A carregar bots...",
949
+ "noBotsAvailable": "Não há bots disponíveis. Crie primeiro um bot.",
950
+ "descriptionHelper": "Usado para correspondência RAG para determinar quando encaminhar utilizadores para aqui",
951
+ "updateDestination": "Atualizar Destino"
952
+ },
953
+ "opticalRead": {
954
+ "addField": "Adicionar Campo de Extração",
955
+ "deleteField": "Eliminar Campo",
956
+ "label": "Etiqueta",
957
+ "labelPlaceholder": "Data de Nascimento",
958
+ "labelRequired": "A etiqueta é obrigatória",
959
+ "idName": "Nome do ID",
960
+ "idNamePlaceholder": "dob",
961
+ "idNameHelper": "chave em snake_case usada em extractedFields",
962
+ "idNameRequired": "O nome do ID é obrigatório",
963
+ "idNameInvalid": "Use apenas letras minúsculas, números e underscores",
964
+ "idNameDuplicate": "O nome do ID deve ser único",
965
+ "hint": "Dica",
966
+ "hintPlaceholder": "MM/DD/AAAA, frente da carta de condução",
967
+ "hintHelper": "Opcional: prepare a localização ou o formato. A dica é a primitiva de afinação fundamental.",
968
+ "noFieldsYet": "Adicione pelo menos um campo de extração para ativar a Leitura Ótica.",
969
+ "providerNotSupported": "A Leitura Ótica requer um fornecedor com capacidade de visão. Anthropic e OpenAI são suportados.",
970
+ "intro": "Nomeie os slots que deseja extrair. O modelo resolve-os contra o seu próprio conhecimento visual prévio — a dica opcional prepara a localização ou o formato.",
971
+ "showUploadOnStart": "Mostrar botão de carregamento como prompt inicial",
972
+ "showUploadOnStartHelper": "Apresenta um cartão de carregamento junto às sugestões da primeira mensagem do bot. Salta o aquecimento conversacional — o utilizador pode carregar de imediato.",
973
+ "afterSubmitMessage": "Mensagem de Chat Pós-Submissão (Opcional)",
974
+ "afterSubmitMessagePlaceholder": "Obrigado! Recebemos os seus detalhes.",
975
+ "afterSubmitMessageHelper": "Resposta do bot apresentada no chat depois de o utilizador submeter os campos extraídos. Deixe vazio para ignorar."
976
+ },
977
+ "appointments": {
978
+ "addAppointment": "Adicionar Tipo de Marcação",
979
+ "deleteAppointment": "Eliminar Marcação",
980
+ "editCalendarProvider": "Editar Fornecedor de Calendário",
981
+ "updateCalendarProvider": "Atualizar Fornecedor de Calendário",
982
+ "calendarId": "ID do Calendário",
983
+ "calendarIdPlaceholder": "ex.: dr-smith-general",
984
+ "calendarIdHelper": "Identificador único devolvido como calendarId na resposta",
985
+ "calendarIdRequired": "O ID do calendário é obrigatório",
986
+ "calendarIdExists": "Este ID de calendário já existe",
987
+ "providerName": "Nome do Fornecedor",
988
+ "providerNameRequired": "O nome do fornecedor é obrigatório",
989
+ "providerNameHelper": "Serviço fornecedor de calendário",
990
+ "popupUrl": "URL de Popup",
991
+ "popupUrlPlaceholder": "https://calendly.com/dr-smith",
992
+ "popupUrlHelper": "URL aberto quando o utilizador clica no botão do calendário",
993
+ "popupUrlRequired": "O URL de popup é obrigatório",
994
+ "popupUrlInvalid": "Introduza um URL válido",
995
+ "descriptionPlaceholder": "Descreva quando os utilizadores devem marcar com este fornecedor de calendário...",
996
+ "descriptionRequired": "A descrição é obrigatória",
997
+ "descriptionHelper": "Usado para correspondência RAG para determinar qual calendário mostrar"
998
+ },
999
+ "deployment": {
1000
+ "inProgress": "Implementação em curso...",
1001
+ "testDeployment": "Implementação de Teste",
1002
+ "currentDeployment": "Implementação Atual",
1003
+ "testBotLive": "O seu bot de teste está em direto neste URL:",
1004
+ "botLive": "O seu bot está em direto neste URL:",
1005
+ "testSuccess": "Implementação de Teste Bem-sucedida!",
1006
+ "testSuccessMessage": "O seu bot de teste está em direto e em execução. Pode testá-lo no painel de pré-visualização à direita.",
1007
+ "productionSuccess": "Implementação de Produção Bem-sucedida!",
1008
+ "productionSuccessMessage": "O seu bot está agora em direto e pronto para uso em produção.",
1009
+ "deployToProduction": "Implementar em Produção",
1010
+ "viewDeployments": "Ver Bots",
1011
+ "previewChanges": "Pré-visualizar Alterações (Teste)",
1012
+ "deployToTest": "Implementar em Teste",
1013
+ "updateProduction": "Atualizar Bot de Produção",
1014
+ "editMode": "Modo de Edição",
1015
+ "editModeMessage": "Implementar irá atualizar o bot existente com as suas alterações. O URL do bot permanecerá igual.",
1016
+ "configSummary": "Resumo da Configuração",
1017
+ "botName": "Nome do Bot:",
1018
+ "provider": "Fornecedor:",
1019
+ "model": "Modelo:",
1020
+ "documents": "Documentos:",
1021
+ "formCollection": "Recolha por Formulário:",
1022
+ "uploaded": "carregado",
1023
+ "enabled": "Ativado",
1024
+ "embeddings": "Embeddings",
1025
+ "embeddingsChunks": "{count} chunks",
1026
+ "editConfiguration": "Editar configuração",
1027
+ "aboutDeployments": "Sobre Implementações",
1028
+ "testDeploymentInfo": "Implementação de teste: Cria um URL persistente para testes.",
1029
+ "productionDeploymentInfo": "Implementação de produção: Cria o seu bot em direto que será publicamente acessível.",
1030
+ "deploymentRegion": "Região de Implementação",
1031
+ "useOrgDefault": "Usar predefinição da organização ({region})",
1032
+ "regionHelp": "Selecione a região AWS onde o seu bot será implementado. Isto afeta a latência e a residência dos dados.",
1033
+ "none": "Nenhum",
1034
+ "saving": "A guardar…",
1035
+ "saveChanges": "Guardar Alterações",
1036
+ "saveConfiguration": "Guardar Configuração",
1037
+ "saveFailed": "Guardar falhou",
1038
+ "saveErrorFallback": "Falha ao guardar configuração",
1039
+ "buildFailed": "Compilação falhada",
1040
+ "buildErrorFallback": "Falha ao compilar artefacto",
1041
+ "building": "A compilar…",
1042
+ "buildArtifact": "Compilar Artefacto",
1043
+ "configurationSaved": "Configuração guardada",
1044
+ "configurationSavedDesc": "Guardada como <mono>{name}</mono>. Compile o ZIP executável quando estiver pronto.",
1045
+ "artifactReadyCached": "Artefacto pronto (em cache)",
1046
+ "artifactBuilt": "Artefacto compilado",
1047
+ "artifactReadyDesc": "O seu artefacto de bot <mono>{name}</mono> está pronto para transferir.",
1048
+ "downloadArtifact": "Transferir Artefacto",
1049
+ "downloadArtifactWithDocs": "Transferir com Documentos",
1050
+ "previewHelp": "Experimente o seu bot em direto no painel à direita. Quando as respostas estiverem ao seu gosto, guarde e depois transfira a configuração. Compile o artefacto executável quando estiver pronto."
1051
+ },
1052
+ "previews": {
1053
+ "identity": {
1054
+ "fallbackBotName": "Bot",
1055
+ "fallbackPlaceholder": "Escreva a sua mensagem...",
1056
+ "fallbackFirstMessage": "Olá! Como posso ajudar hoje?",
1057
+ "minimize": "Minimizar",
1058
+ "minimizeChat": "Minimizar chat",
1059
+ "botMessage": "Mensagem do bot",
1060
+ "suggestedPrompts": "Prompts sugeridos",
1061
+ "chatMessage": "Mensagem de chat",
1062
+ "typeYourMessageAria": "Escreva a sua mensagem",
1063
+ "sendMessage": "Enviar mensagem"
1064
+ },
1065
+ "appointments": {
1066
+ "fallbackBotName": "Bot de Marcações",
1067
+ "noProviders": "Ainda não há fornecedores de calendário configurados",
1068
+ "noProvidersHint": "Clique em \"Adicionar Fornecedor de Calendário\" para começar",
1069
+ "userQuery": "Consulta do Utilizador",
1070
+ "calendarIconAlt": "Ícone de Calendário"
1071
+ },
1072
+ "triage": {
1073
+ "fallbackBotName": "Bot de Triagem",
1074
+ "noRoutes": "Ainda não há destinos de encaminhamento configurados",
1075
+ "noRoutesHint": "Clique em \"Adicionar Destino de Encaminhamento\" para começar",
1076
+ "user": "Utilizador",
1077
+ "evaluatesAndRoutes": "Avalia e Encaminha"
1078
+ },
1079
+ "opticalRead": {
1080
+ "noFields": "Ainda não há campos de extração configurados",
1081
+ "noFieldsHint": "Clique em \"Adicionar Campo de Extração\" para começar",
1082
+ "clientPreviewLabel": "Como os utilizadores irão ver",
1083
+ "editButton": "Editar",
1084
+ "sendButton": "Enviar",
1085
+ "previewNote": "As entradas são apresentadas desativadas até à extração. Os utilizadores tocam em Editar para corrigir, Enviar para submeter."
1086
+ },
1087
+ "knowledge": {
1088
+ "unlinkTitle": "Desvincular deste bot (ficheiro permanece no bot space)",
1089
+ "deleteTitle": "Eliminar documento permanentemente",
1090
+ "deleteConfirm": "Tem a certeza de que deseja eliminar \"{name}\"? Isto removerá permanentemente o ficheiro e não pode ser desfeito.",
1091
+ "deleteError": "Falha ao eliminar ficheiro",
1092
+ "uploadedDocuments": "Documentos Carregados",
1093
+ "noUploadedDocs": "Sem documentos carregados",
1094
+ "uploadDocsLeft": "Carregue documentos à esquerda",
1095
+ "linkedFromBotSpace": "Vinculado do Bot Space",
1096
+ "noLinkedDocs": "Sem documentos vinculados",
1097
+ "selectSharedFilesHint": "Selecione ficheiros partilhados do bot space",
1098
+ "linkedTooltip": "Documentos carregados tornam-se parte deste botspace por predefinição",
1099
+ "linkedFooter": "Os documentos vinculados permanecem no bot space quando desvinculados deste bot.",
1100
+ "ragInfo": "Estes documentos serão processados e usados para fornecer contexto às respostas do seu bot através de RAG (Geração Aumentada por Recuperação).",
1101
+ "fileCount": "{count} {count, plural, one {file} other {files}}",
1102
+ "untitled": "Sem título",
1103
+ "unknown": "Desconhecido",
1104
+ "fileFallback": "FICHEIRO",
1105
+ "embedding": {
1106
+ "title": "Embeddings Vetoriais",
1107
+ "ready": "Pronto",
1108
+ "notGenerated": "Não gerado",
1109
+ "chunks": "Chunks",
1110
+ "model": "Modelo",
1111
+ "sourceDocuments": "Documentos de Origem",
1112
+ "generated": "Gerado",
1113
+ "embeddedFiles": "Ficheiros incorporados",
1114
+ "technicalDetails": "Detalhes técnicos",
1115
+ "noEmbeddingsYet": "Ainda sem embeddings",
1116
+ "uploadFirst": "Carregue primeiro documentos no separador Documentos.",
1117
+ "clickToGenerate": "Clique abaixo para dividir em chunks e incorporar os seus documentos localmente.",
1118
+ "generating": "A gerar…",
1119
+ "embeddingDocs": "A incorporar documentos…",
1120
+ "regenerate": "Regenerar Embeddings",
1121
+ "generate": "Gerar Embeddings Vetoriais",
1122
+ "errorNoDocuments": "Carregue primeiro pelo menos um documento",
1123
+ "errorGenerationFailed": "Falha ao gerar embeddings",
1124
+ "doneStatus": "Concluído! {count} chunks incorporados com {model}.",
1125
+ "regenWarning": "Se alterar o conjunto de documentos, regenere para manter o artefacto sincronizado.",
1126
+ "vectorModeInfo": "No modo vetorial, o bot incorpora consultas em-processo usando o modelo ONNX multilingual-e5-small integrado e executa similaridade de cosseno localmente. Sem dependência da fábrica em runtime."
1127
+ }
1128
+ },
1129
+ "form": {
1130
+ "validate": "Validar",
1131
+ "validateInput": "Validar entrada",
1132
+ "selectOption": "Selecione uma opção...",
1133
+ "noStructure": "Sem estrutura de formulário gerada",
1134
+ "noStructureHint": "Gere um formulário para ver a pré-visualização",
1135
+ "editJsonTitle": "Editar Estrutura do Formulário (JSON)",
1136
+ "openLargerView": "Abrir em vista maior",
1137
+ "expand": "Expandir",
1138
+ "generatedJsonLabel": "Estrutura de Formulário Gerada (JSON)",
1139
+ "validJson": "JSON válido",
1140
+ "invalidJson": "JSON inválido",
1141
+ "jsonParseError": "Erro de Análise JSON:",
1142
+ "editJsonHelper": "Edite este JSON para personalizar a estrutura do formulário. As alterações refletir-se-ão no separador Apresentação de Campos.",
1143
+ "branches": "Ramos",
1144
+ "requiredBadge": "Obrigatório",
1145
+ "piiBadge": "PII"
1146
+ },
1147
+ "bot": {
1148
+ "missingConfig": "Adicione um fornecedor, modelo e chave de API no passo 1 para iniciar o bot de pré-visualização.",
1149
+ "livePreview": "Pré-visualização em direto",
1150
+ "resetPreview": "Reiniciar pré-visualização",
1151
+ "iframeTitle": "Pré-visualização do bot",
1152
+ "skippedInPreview": "(ignorado na pré-visualização)",
1153
+ "webhookSideEffect": "O webhook faria POST para {url}",
1154
+ "webhookNoUrl": "(sem URL)",
1155
+ "submitFormSideEffect": "O formulário seria submetido ao control plane",
1156
+ "genericSideEffect": "Efeito secundário ignorado na pré-visualização"
1157
+ }
1158
+ },
1159
+ "botSummary": {
1160
+ "title": "Resumo do Bot",
1161
+ "whyFillThis": "Porquê preencher isto?",
1162
+ "tooltipLine1": "O resumo do bot ajuda outros bots na sua rede a compreender o que este bot faz e que conhecimento detém.",
1163
+ "tooltipLine2": "Isto permite encaminhamento mais inteligente, triagem e orquestração multi-bot.",
1164
+ "description": "Descreva o papel deste bot na sua rede.",
1165
+ "notSystemPrompt": "Não é um System Prompt",
1166
+ "placeholder": "Descreva o que este bot faz e o conhecimento que tem. Ex.: 'Trata de consultas de faturação com acesso a documentos de preços e FAQs.'",
1167
+ "characters": "caracteres",
1168
+ "optionalBadge": "Opcional - Implemente para guardar e usar este resumo na sua rede."
1169
+ }
1170
+ },
1171
+ "settings": {
1172
+ "title": "Definições",
1173
+ "subtitle": "Gerencie as definições e preferências da sua conta",
1174
+ "tabs": {
1175
+ "apiKeys": "Chaves de API",
1176
+ "account": "Conta",
1177
+ "servicePlan": "Plano de Serviço",
1178
+ "languages": "Idiomas",
1179
+ "botSpaces": "Bot Spaces",
1180
+ "builderConfig": "Configuração do Construtor",
1181
+ "region": "Região",
1182
+ "auditLogs": "Registos de Auditoria",
1183
+ "admin": "Administração"
1184
+ },
1185
+ "languages": {
1186
+ "title": "Preferências de Idioma",
1187
+ "description": "Escolha o seu idioma preferido para a interface",
1188
+ "preferredLanguage": "Idioma Preferido",
1189
+ "languageHelper": "Esta definição será aplicada em todas as suas sessões",
1190
+ "saveLanguage": "Guardar Idioma",
1191
+ "saveSuccess": "Preferência de idioma guardada com sucesso",
1192
+ "saveError": "Falha ao guardar preferência de idioma",
1193
+ "aboutTitle": "Sobre Definições de Idioma",
1194
+ "aboutItem1": "A sua preferência de idioma é armazenada na sua conta",
1195
+ "aboutItem2": "As alterações terão efeito após guardar",
1196
+ "aboutItem3": "Algum conteúdo pode ainda não estar traduzido",
1197
+ "locales": {
1198
+ "en": "English",
1199
+ "es": "Spanish (Español)",
1200
+ "fr": "French (Français)",
1201
+ "de": "German (Deutsch)",
1202
+ "pt": "Portuguese (Português)",
1203
+ "ja": "Japanese (日本語)",
1204
+ "zh": "Chinese (中文)",
1205
+ "ko": "Korean (한국어)",
1206
+ "uk": "Ukrainian (Українська)",
1207
+ "ar": "Arabic (العربية)",
1208
+ "nl": "Dutch (Nederlands)",
1209
+ "sw": "Swahili (Kiswahili)"
1210
+ }
1211
+ },
1212
+ "region": {
1213
+ "title": "Região de Implementação",
1214
+ "description": "Configure a região AWS predefinida para implementações de bots",
1215
+ "currentRegion": "Região Predefinida Atual",
1216
+ "selectRegion": "Selecionar Região Predefinida",
1217
+ "regionHelp": "Novas implementações usarão esta região por predefinição. Os utilizadores podem substituir esta definição por implementação.",
1218
+ "saveSuccess": "Região predefinida atualizada com sucesso",
1219
+ "unsavedChanges": "Tem alterações por guardar",
1220
+ "infoTitle": "Sobre Definições de Região",
1221
+ "infoDescription": "A região de implementação determina onde a infraestrutura do seu bot é executada. Escolher uma região mais próxima dos seus utilizadores pode melhorar os tempos de resposta. Implementações individuais podem substituir esta predefinição."
1222
+ },
1223
+ "account": {
1224
+ "title": "Informação da Conta",
1225
+ "emailAddress": "Endereço de Email",
1226
+ "userId": "ID do Utilizador",
1227
+ "logout": "Terminar Sessão",
1228
+ "loggingOut": "A terminar sessão...",
1229
+ "logoutConfirm": "Tem a certeza de que deseja terminar sessão?",
1230
+ "logoutNote": "A sua sessão na conta será encerrada",
1231
+ "dangerZone": "Zona de Perigo",
1232
+ "deleteAccount": "Eliminar Conta",
1233
+ "deleteAdminWarning": "Elimine permanentemente a sua conta e todos os dados associados, incluindo bots, bot spaces e contas de contribuidores afiliados apenas à sua organização. Esta ação não pode ser desfeita.",
1234
+ "deleteUserWarning": "Elimine permanentemente a sua conta e todos os seus dados pessoais, incluindo bots, documentos e chaves de API. As suas associações a bot spaces serão removidas. Esta ação não pode ser desfeita."
1235
+ },
1236
+ "servicePlan": {
1237
+ "title": "Plano de Serviço",
1238
+ "description": "Veja o seu plano atual, utilização e funcionalidades disponíveis",
1239
+ "currentPlan": "O seu plano de subscrição atual",
1240
+ "usage": "Utilização Atual",
1241
+ "deployedBots": "Bots Implementados",
1242
+ "botSpaces": "Bot Spaces",
1243
+ "users": "Utilizadores",
1244
+ "includedFeatures": "Funcionalidades Incluídas",
1245
+ "allPlans": "Planos Disponíveis",
1246
+ "current": "Atual",
1247
+ "bots": "bots",
1248
+ "spaces": "spaces",
1249
+ "usersLabel": "utilizadores",
1250
+ "organization": "Organização",
1251
+ "needMore": "Precisa de Mais?",
1252
+ "contactUs": "Contacte-nos para discutir atualizar o seu plano ou soluções empresariais personalizadas."
1253
+ },
1254
+ "apiKeys": {
1255
+ "title": "Chaves de API",
1256
+ "description": "Guarde as suas chaves de API de fornecedores LLM para fácil reutilização entre implementações",
1257
+ "addKey": "+ Adicionar Chave de API",
1258
+ "addNewKey": "Adicionar Nova Chave de API",
1259
+ "name": "Nome",
1260
+ "namePlaceholder": "ex.: A Minha Chave OpenAI",
1261
+ "provider": "Fornecedor",
1262
+ "apiKey": "Chave de API",
1263
+ "apiKeyPlaceholder": "Introduza a sua chave de API",
1264
+ "saving": "A guardar...",
1265
+ "saveKey": "Guardar Chave de API",
1266
+ "loading": "A carregar chaves de API...",
1267
+ "noKeys": "Ainda não há chaves de API guardadas",
1268
+ "noKeysHint": "Adicione a sua primeira chave de API para começar",
1269
+ "added": "Adicionada {date}",
1270
+ "deleteConfirm": "Tem a certeza de que deseja eliminar esta chave de API?",
1271
+ "saveSuccess": "Chave de API guardada com sucesso",
1272
+ "deleteSuccess": "Chave de API eliminada com sucesso",
1273
+ "loadError": "Falha ao carregar chaves de API",
1274
+ "saveError": "Falha ao guardar chave de API",
1275
+ "deleteError": "Falha ao eliminar chave de API",
1276
+ "nameAndKeyRequired": "Nome e chave de API são obrigatórios",
1277
+ "awsRegion": "Região AWS",
1278
+ "authentication": "Autenticação",
1279
+ "useIamRole": "Usar IAM Role",
1280
+ "useIamRoleHint": "Usa o IAM role anexado ao pod do Kubernetes (recomendado para produção)",
1281
+ "useExplicitCredentials": "Usar Credenciais Explícitas",
1282
+ "useExplicitCredentialsHint": "Fornecer chave de acesso e chave secreta AWS diretamente",
1283
+ "awsAccessKeyId": "AWS Access Key ID",
1284
+ "awsSecretAccessKey": "AWS Secret Access Key",
1285
+ "defaultBotConfig": {
1286
+ "title": "Configuração Predefinida de Bot",
1287
+ "description": "Selecione uma chave de API e modelo para usar como predefinição ao criar novos bots com o construtor.",
1288
+ "selectKey": "Chave de API Predefinida",
1289
+ "selectModel": "Modelo Predefinido",
1290
+ "noDefault": "Sem predefinição (usar seleção automática)",
1291
+ "selectModelPlaceholder": "Selecione um modelo",
1292
+ "selectKeyFirst": "Selecione uma chave de API para ver os modelos disponíveis",
1293
+ "currentSelection": "Predefinição atual",
1294
+ "noModel": "Nenhum modelo selecionado",
1295
+ "save": "Guardar Predefinição"
1296
+ }
1297
+ },
1298
+ "botSpaces": {
1299
+ "title": "Bot Spaces",
1300
+ "description": "Organize chatbots em spaces e controle o acesso de contribuidores",
1301
+ "createSpace": "+ Criar Bot Space",
1302
+ "createNewSpace": "Criar Novo Bot Space",
1303
+ "name": "Nome",
1304
+ "namePlaceholder": "ex.: customer-support",
1305
+ "nameHint": "Apenas letras, números, underscores e hífenes permitidos",
1306
+ "descriptionLabel": "Descrição",
1307
+ "descriptionPlaceholder": "Descrição opcional para este bot space",
1308
+ "creating": "A criar...",
1309
+ "create": "Criar Bot Space",
1310
+ "loading": "A carregar bot spaces...",
1311
+ "noSpaces": "Ainda não há bot spaces criados",
1312
+ "noSpacesHint": "Crie o seu primeiro bot space para organizar os seus chatbots",
1313
+ "botCount": "{count} bots",
1314
+ "created": "Criado {date}",
1315
+ "invite": "Convidar",
1316
+ "manage": "Gerir",
1317
+ "deleteConfirm": "Tem a certeza de que deseja eliminar este bot space? Todos os bots dentro dele serão eliminados permanentemente.",
1318
+ "createSuccess": "Bot space criado com sucesso",
1319
+ "deleteSuccess": "Bot space eliminado com sucesso",
1320
+ "loadError": "Falha ao carregar bot spaces",
1321
+ "createError": "Falha ao criar bot space",
1322
+ "deleteError": "Falha ao eliminar bot space",
1323
+ "nameRequired": "O nome é obrigatório",
1324
+ "nameInvalid": "O nome só pode conter letras, números, underscores e hífenes",
1325
+ "aboutTitle": "Sobre Bot Spaces",
1326
+ "aboutItem1": "Os bot spaces permitem agrupar chatbots relacionados",
1327
+ "aboutItem2": "Conceda a contribuidores acesso de leitura ou escrita a spaces específicos",
1328
+ "aboutItem3": "Os administradores têm acesso total a todos os bot spaces da organização",
1329
+ "invitationSent": "Convite enviado com sucesso"
1330
+ },
1331
+ "auditLogs": {
1332
+ "title": "Registos de Auditoria",
1333
+ "description": "Veja todas as ações realizadas na sua organização",
1334
+ "exportCsv": "Exportar CSV",
1335
+ "exportJson": "Exportar JSON",
1336
+ "loadError": "Falha ao carregar registos de auditoria",
1337
+ "externalIntegration": "Integração Externa",
1338
+ "webhookDescription": "Envie registos de auditoria para um SIEM ou serviço de logging externo via webhook.",
1339
+ "webhookUrl": "URL do Webhook",
1340
+ "webhookUrlPlaceholder": "https://your-siem.example.com/webhook",
1341
+ "enableWebhook": "Ativar webhook",
1342
+ "hmacEnabled": "Assinatura HMAC ativada",
1343
+ "webhookSecretWarning": "Segredo do Webhook (copie agora - não será mostrado novamente)",
1344
+ "saveSettings": "Guardar Definições",
1345
+ "testWebhook": "Testar Webhook",
1346
+ "regenerateSecret": "Regenerar Segredo",
1347
+ "regenerateConfirm": "Regenerar o segredo do webhook? Terá de atualizar o seu endpoint recetor.",
1348
+ "webhookSaved": "Definições do webhook guardadas",
1349
+ "secretRegenerated": "Novo segredo gerado",
1350
+ "testSuccess": "Webhook de teste enviado com sucesso",
1351
+ "saveError": "Falha ao guardar definições do webhook",
1352
+ "testError": "Teste de webhook falhado",
1353
+ "regenerateError": "Falha ao regenerar segredo",
1354
+ "payloadFormat": "Formato do Payload do Webhook",
1355
+ "payloadDescription": "Cada evento de auditoria é enviado como um pedido POST com cabeçalhos:",
1356
+ "headerEvent": "X-Audit-Event: event_type",
1357
+ "headerTimestamp": "X-Audit-Timestamp: ISO timestamp",
1358
+ "headerSignature": "X-Audit-Signature: sha256=hmac (se segredo configurado)"
1359
+ },
1360
+ "admin": {
1361
+ "title": "Painel de Administração",
1362
+ "description": "Gerencie utilizadores e veja informação à escala do sistema",
1363
+ "allUsers": "Todos os Utilizadores",
1364
+ "loadingUsers": "A carregar utilizadores...",
1365
+ "noUsers": "Nenhum utilizador encontrado",
1366
+ "loadError": "Falha ao carregar utilizadores",
1367
+ "tableHeaders": {
1368
+ "name": "Nome",
1369
+ "email": "Email",
1370
+ "organization": "Organização",
1371
+ "role": "Função",
1372
+ "created": "Criado"
1373
+ },
1374
+ "you": "Você",
1375
+ "stats": {
1376
+ "totalUsers": "Total de Utilizadores",
1377
+ "admins": "Administradores",
1378
+ "contributors": "Contribuidores"
1379
+ }
1380
+ },
1381
+ "builderConfig": {
1382
+ "title": "Configuração do Construtor",
1383
+ "description": "Configure que modelo de IA alimenta o construtor de bots e defina predefinições para a criação de bots",
1384
+ "builderTitle": "Driver do Modelo do Construtor",
1385
+ "builderDescription": "Selecione que modelo de IA alimenta a interface do construtor de bots. Este modelo trata de conversas e execução de ferramentas.",
1386
+ "defaultBotTitle": "Modelo Predefinido para Criação de Bot",
1387
+ "defaultBotDescription": "Pré-selecione estas definições ao criar novos bots via construtor. Os utilizadores podem substituir durante a implementação.",
1388
+ "provider": "Fornecedor",
1389
+ "apiKey": "Chave de API",
1390
+ "model": "Modelo",
1391
+ "selectProvider": "Selecionar fornecedor...",
1392
+ "selectKey": "Selecionar chave de API...",
1393
+ "selectModel": "Selecionar modelo...",
1394
+ "noKeysForProvider": "Sem chaves de API guardadas para este fornecedor. Adicione uma no separador Chaves de API.",
1395
+ "useSameAsBuilder": "Usar as mesmas definições do construtor",
1396
+ "saveConfig": "Guardar Configuração",
1397
+ "saveSuccess": "Configuração do construtor guardada com sucesso",
1398
+ "saveError": "Falha ao guardar configuração do construtor",
1399
+ "aboutTitle": "Sobre a Configuração do Construtor",
1400
+ "aboutItem1": "O modelo do construtor trata da interface conversacional de criação de bots",
1401
+ "aboutItem2": "As definições predefinidas de bot são pré-selecionadas ao implementar via construtor",
1402
+ "aboutItem3": "O uso de ferramentas é suportado por Claude, GPT, Gemini e mais",
1403
+ "displaySettings": {
1404
+ "title": "Definições de Apresentação",
1405
+ "description": "Configure como o assistente Modulo aparece na interface",
1406
+ "disableAnimation": "Desativar animação do ajudante",
1407
+ "disableAnimationHint": "Mostra o Modulo como um ícone estático em vez de um ajudante animado"
1408
+ }
1409
+ },
1410
+ "mojulo": {
1411
+ "title": "Definições",
1412
+ "subtitle": "Configure as chaves de API que alimentam os seus bots e as credenciais de cloud usadas para os implementar.",
1413
+ "noKeyGate": "Os construtores precisam de uma chave de fornecedor LLM para funcionar. Adicione uma no separador Chaves LLM e volte.",
1414
+ "tabs": {
1415
+ "llm": "Chaves LLM",
1416
+ "provider": "Chaves de Fornecedor",
1417
+ "language": "Definição de Idioma"
1418
+ },
1419
+ "form": {
1420
+ "addKey": "Adicionar uma chave",
1421
+ "name": "Nome a apresentar",
1422
+ "provider": "Fornecedor",
1423
+ "apiKey": "Chave de API",
1424
+ "ollamaHost": "URL do host",
1425
+ "makeDefault": "Tornar esta a chave predefinida",
1426
+ "ollamaNoDefault": "O Ollama não pode ser o predefinido — o construtor de chat precisa de um fornecedor de cloud.",
1427
+ "saving": "A guardar…",
1428
+ "save": "Guardar chave",
1429
+ "saveError": "Falha ao guardar"
1430
+ },
1431
+ "list": {
1432
+ "title": "Chaves guardadas",
1433
+ "loading": "A carregar…",
1434
+ "empty": "Ainda sem chaves.",
1435
+ "defaultBadge": "predefinida",
1436
+ "makeDefault": "Tornar predefinida",
1437
+ "delete": "Eliminar"
1438
+ },
1439
+ "llm": {
1440
+ "title": "Chaves LLM",
1441
+ "description": "Alimentam o construtor de bots e ficam integradas em cada bot que compila.",
1442
+ "defaultName": "Predefinida",
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 (cole credenciais JSON)",
1450
+ "ollama": "Ollama (local — cole URL do host)"
1451
+ }
1452
+ },
1453
+ "provider": {
1454
+ "title": "Chaves de Fornecedor",
1455
+ "description": "Credenciais de alojamento na cloud. Usadas quando implementa um bot num fornecedor de cloud a partir do control plane.",
1456
+ "defaultName": "Fly.io",
1457
+ "placeholder": "fo1_…",
1458
+ "providers": {
1459
+ "fly": "Fly.io"
1460
+ }
1461
+ },
1462
+ "language": {
1463
+ "title": "Definição de Idioma",
1464
+ "description": "Escolha o idioma usado na interface do control plane.",
1465
+ "label": "Idioma da interface"
1466
+ }
1467
+ }
1468
+ },
1469
+ "deployments": {
1470
+ "title": "Implementações",
1471
+ "loading": "A carregar implementações...",
1472
+ "empty": "Sem implementações neste bot space",
1473
+ "columns": {
1474
+ "botName": "Nome do Bot",
1475
+ "status": "Estado",
1476
+ "deployed": "Implementado",
1477
+ "by": "Por"
1478
+ },
1479
+ "history": {
1480
+ "title": "Histórico de Implementações",
1481
+ "noHistory": "Ainda sem histórico de implementações",
1482
+ "historyWillAppear": "O histórico aparecerá após a próxima implementação",
1483
+ "event": "Evento",
1484
+ "status": "Estado",
1485
+ "date": "Data",
1486
+ "by": "Por",
1487
+ "config": "Configuração"
1488
+ },
1489
+ "embed": {
1490
+ "title": "Script de Embed",
1491
+ "description": "Copie este script para incorporar o chatbot no seu site:"
1492
+ },
1493
+ "confirmDelete": "Tem a certeza de que deseja eliminar \"{name}\"? Isto destruirá a implementação e não pode ser desfeito."
1494
+ },
1495
+ "cloudDeploy": {
1496
+ "title": "Implementar na Cloud",
1497
+ "backToDashboard": "← Voltar ao painel",
1498
+ "loading": "A carregar…",
1499
+ "botLabel": "Bot:",
1500
+ "protocolsLabel": "protocolos: {protocols}",
1501
+ "statusPills": {
1502
+ "pending": "Pendente",
1503
+ "deploying": "A implementar",
1504
+ "running": "Em execução",
1505
+ "paused": "Pausado",
1506
+ "failed": "Falhado",
1507
+ "destroyed": "Destruído"
1508
+ },
1509
+ "artifact": {
1510
+ "title": "Artefacto mais recente",
1511
+ "status": "Estado",
1512
+ "configHash": "Hash de configuração",
1513
+ "lastBuiltHash": "Hash da última compilação",
1514
+ "artifactPath": "Caminho do artefacto",
1515
+ "notBuiltYet": "— (ainda não compilado)",
1516
+ "staleWarning": "Configuração editada desde a última compilação. A implementação na cloud irá recompilar automaticamente, ou pode recompilar agora.",
1517
+ "missingWarning": "Ainda sem artefacto. A implementação na cloud irá compilá-lo automaticamente, ou pode compilar agora para pré-visualizar.",
1518
+ "buildZip": "Compilar ZIP",
1519
+ "rebuildZip": "Recompilar ZIP",
1520
+ "downloadZip": "Transferir .zip"
1521
+ },
1522
+ "provider": {
1523
+ "title": "Fornecedor",
1524
+ "fly": {
1525
+ "name": "Fly.io",
1526
+ "description": "Máquina de região única + volume persistente"
1527
+ }
1528
+ },
1529
+ "fly": {
1530
+ "title": "Opções Fly.io",
1531
+ "region": "Região",
1532
+ "regionHint": "Código de região Fly de 3 letras (iad, sjc, lhr, nrt, etc.)",
1533
+ "volumeSize": "Tamanho do volume (GB)",
1534
+ "volumeHint": "Armazenamento persistente para SQLite (1GB é suficiente para a maioria dos bots)",
1535
+ "cpuCount": "Número de CPU",
1536
+ "cpuHint": "CPUs partilhados",
1537
+ "memory": "Memória (MB)",
1538
+ "memoryHint": "1024 MB recomendado",
1539
+ "tokenNote": "Usa o seu <mono>FLY_API_TOKEN</mono> do ambiente do control plane. A sua conta, a sua fatura.",
1540
+ "deploy": "Implementar",
1541
+ "redeploy": "Reimplementar",
1542
+ "deploying": "A implementar…"
1543
+ },
1544
+ "status": {
1545
+ "title": "Estado",
1546
+ "provider": "Fornecedor",
1547
+ "appName": "Nome da app",
1548
+ "url": "URL",
1549
+ "region": "Região",
1550
+ "lastDeployed": "Última implementação",
1551
+ "errorPrefix": "erro: {error}",
1552
+ "destroy": "Destruir"
1553
+ },
1554
+ "errors": {
1555
+ "deployFailed": "Implementação falhada ({status})",
1556
+ "destroyFailed": "Destruição falhada ({status})",
1557
+ "buildFailed": "Compilação falhada ({status})"
1558
+ },
1559
+ "confirmDestroy": "Destruir a app de cloud, máquina e volume? Os dados de conversa no volume serão eliminados permanentemente."
1560
+ },
1561
+ "analytics": {
1562
+ "title": "Análises",
1563
+ "loading": "A carregar análises...",
1564
+ "loadingConversations": "A carregar análises de conversa...",
1565
+ "analyzingQuestions": "A analisar perguntas dos utilizadores...",
1566
+ "failedToLoad": "Falha ao carregar implementação",
1567
+ "failedToLoadAnalytics": "Falha ao carregar dados de análise",
1568
+ "chatbotMetrics": "Métricas do Chatbot",
1569
+ "conversationAnalytics": "Análises de Conversa",
1570
+ "topQuestions": "Principais Perguntas e Tópicos dos Utilizadores",
1571
+ "metrics": {
1572
+ "age": "Idade",
1573
+ "uptime": "Tempo Ativo",
1574
+ "documents": "Documentos",
1575
+ "lastUpdated": "Última Atualização",
1576
+ "totalConversations": "Total de Conversas",
1577
+ "totalMessages": "Total de Mensagens",
1578
+ "formStarts": "Inícios de Formulário",
1579
+ "formCompletes": "Formulários Concluídos",
1580
+ "completionRate": "{rate}% taxa de conclusão",
1581
+ "avgMessagesPerConv": "Média de Mensagens/Conversa"
1582
+ },
1583
+ "badges": {
1584
+ "formCollection": "Recolha por Formulário",
1585
+ "live": "Em direto"
1586
+ },
1587
+ "searchTerms": {
1588
+ "longPhrases": "Frases Longas",
1589
+ "phrases": "Frases",
1590
+ "words": "Palavras",
1591
+ "analyzed": "Analisadas {count} mensagens de utilizador",
1592
+ "noData": "Ainda sem dados de conversa disponíveis",
1593
+ "noDataHint": "Os dados aparecerão aqui depois de os utilizadores interagirem com o seu chatbot"
1594
+ },
1595
+ "uptime": {
1596
+ "inProgress": "Em curso...",
1597
+ "failed": "Falhado",
1598
+ "notAvailable": "N/D"
1599
+ }
1600
+ },
1601
+ "conversations": {
1602
+ "title": "Conversas",
1603
+ "totalConversations": "{count} conversas no total",
1604
+ "total": "{count} no total",
1605
+ "dashboardLink": "← Painel",
1606
+ "backToDashboard": "← Voltar ao painel",
1607
+ "tabs": {
1608
+ "conversations": "Conversas",
1609
+ "storage": "Armazenamento"
1610
+ },
1611
+ "unreachable": {
1612
+ "title": "Bot inacessível",
1613
+ "message": "O control plane não conseguiu alcançar este bot. Pode estar parado, ou o URL ou chave de API podem ter mudado. Reconecte a partir do painel para ver conversas.",
1614
+ "reconnect": "Reconectar"
1615
+ },
1616
+ "search": {
1617
+ "dataSource": "Fonte de Dados",
1618
+ "conversationId": "ID da Conversa",
1619
+ "partialId": "ID parcial...",
1620
+ "partialIdShort": "id parcial",
1621
+ "from": "De",
1622
+ "to": "Até",
1623
+ "search": "Pesquisar",
1624
+ "searching": "A pesquisar...",
1625
+ "last24h": "Últimas 24h",
1626
+ "last7days": "Últimos 7 dias",
1627
+ "clear": "Limpar",
1628
+ "resultsFound": "{count} resultado encontrado",
1629
+ "resultsFoundPlural": "{count} resultados encontrados",
1630
+ "result": "{count} resultado",
1631
+ "results": "{count} resultados",
1632
+ "noMatch": "Nenhuma conversa corresponde à sua pesquisa",
1633
+ "noMatchShort": "Nenhuma conversa corresponde.",
1634
+ "searchToFind": "Pesquise para encontrar conversas",
1635
+ "searchByIdOrDate": "Pesquise por ID ou data para encontrar conversas.",
1636
+ "useIdOrDate": "Use ID de conversa, intervalo de datas ou ambos"
1637
+ },
1638
+ "timeAgo": {
1639
+ "days": "há {count}d",
1640
+ "hours": "há {count}h",
1641
+ "minutes": "há {count}m"
1642
+ },
1643
+ "detail": {
1644
+ "started": "Iniciada:",
1645
+ "startedAt": "Iniciada {timestamp}",
1646
+ "turns": "{count} turnos",
1647
+ "last": "Última:",
1648
+ "lastAt": "Última {timestamp}",
1649
+ "turn": "Turno {number}",
1650
+ "user": "Utilizador",
1651
+ "assistant": "Assistente",
1652
+ "ragContext": "Contexto RAG",
1653
+ "ragContextShort": "contexto RAG",
1654
+ "verifyChain": "Verificar Cadeia",
1655
+ "showMetadata": "Mostrar fontes e metadados",
1656
+ "showMetadataShort": "Mostrar metadados",
1657
+ "selectConversation": "Selecione uma conversa para ver mensagens",
1658
+ "selectConversationShort": "Selecione uma conversa para ver os seus turnos.",
1659
+ "loadingMessages": "A carregar mensagens...",
1660
+ "loading": "A carregar…"
1661
+ },
1662
+ "storage": {
1663
+ "loading": "A carregar informação de armazenamento...",
1664
+ "loadingShort": "A carregar…",
1665
+ "volumeCapacity": "Capacidade do Volume",
1666
+ "volumeCapacityShort": "Capacidade do volume",
1667
+ "used": "{used} usado de {total}",
1668
+ "usedOfTotal": "{used} de {total}",
1669
+ "available": "{amount} disponível",
1670
+ "statsConversations": "Conversas",
1671
+ "statsTurns": "Total de Turnos",
1672
+ "statsTurnsShort": "Turnos",
1673
+ "statsDbSize": "Tamanho da Base de Dados",
1674
+ "statsDbSizeShort": "Tamanho da BD",
1675
+ "autoExtendPolicy": "Política de Auto-Expansão",
1676
+ "autoExtendDescription": "O volume expande automaticamente a {threshold}% de capacidade, adicionando {increment}GB por expansão, até um máximo de {limit}GB.",
1677
+ "exportTitle": "Exportar Conversas",
1678
+ "exportTitleShort": "Exportar",
1679
+ "exportDescription": "Transfira todas as conversas como um ficheiro JSON.",
1680
+ "exportDescriptionShort": "Transfira todas as conversas deste bot como JSON.",
1681
+ "exportButton": "Exportar Todas as Conversas (JSON)",
1682
+ "exportButtonShort": "Exportar JSON",
1683
+ "exporting": "A exportar...",
1684
+ "refresh": "Atualizar informação de armazenamento",
1685
+ "retry": "Tentar novamente"
1686
+ },
1687
+ "loadMore": "Carregar mais",
1688
+ "loadingMore": "A carregar…",
1689
+ "errors": {
1690
+ "fetchConversations": "Falha ao obter conversas",
1691
+ "fetchDetails": "Falha ao obter detalhes da conversa",
1692
+ "fetchStorage": "Falha ao obter informação de armazenamento",
1693
+ "exportFailed": "Falha ao exportar conversas",
1694
+ "close": "Fechar"
1695
+ }
1696
+ },
1697
+ "submissions": {
1698
+ "title": "Submissões de Formulário",
1699
+ "description": "Veja submissões de formulário recolhidas de {botName}",
1700
+ "total": "({count} no total)",
1701
+ "dashboardLink": "← Painel",
1702
+ "backToDashboard": "← Voltar ao painel",
1703
+ "unreachable": {
1704
+ "title": "Bot inacessível",
1705
+ "message": "O control plane não conseguiu alcançar este bot. Pode estar parado, ou o URL ou chave de API podem ter mudado. Reconecte a partir do painel para ver submissões.",
1706
+ "reconnect": "Reconectar"
1707
+ },
1708
+ "search": {
1709
+ "last24h": "Últimas 24h",
1710
+ "last7days": "Últimos 7 dias",
1711
+ "last30days": "Últimos 30 dias",
1712
+ "from": "De",
1713
+ "to": "Até",
1714
+ "search": "Pesquisar",
1715
+ "searching": "A pesquisar...",
1716
+ "export": "Exportar CSV"
1717
+ },
1718
+ "list": {
1719
+ "title": "Submissões",
1720
+ "shown": "({count} mostradas)",
1721
+ "loading": "A carregar...",
1722
+ "noSubmissions": "Nenhuma submissão encontrada para este período.",
1723
+ "searchToView": "Pesquise para ver submissões.",
1724
+ "fields": "{count} campos"
1725
+ },
1726
+ "detail": {
1727
+ "title": "Detalhes da Submissão",
1728
+ "conversationId": "ID da Conversa:",
1729
+ "submitted": "Submetido:",
1730
+ "formData": "Dados do Formulário",
1731
+ "field": "Campo",
1732
+ "value": "Valor",
1733
+ "metadata": "Metadados",
1734
+ "selectSubmission": "Selecione uma submissão para ver detalhes"
1735
+ }
1736
+ },
1737
+ "logs": {
1738
+ "title": "Registos em Direto",
1739
+ "refresh": "Atualizar Registos",
1740
+ "refreshing": "A atualizar...",
1741
+ "loading": "A carregar registos...",
1742
+ "search": {
1743
+ "label": "Pesquisar Registos",
1744
+ "placeholder": "Pesquisar mensagens, níveis, instâncias..."
1745
+ },
1746
+ "lineCount": {
1747
+ "label": "Linhas a Mostrar",
1748
+ "lines": "{count} linhas"
1749
+ },
1750
+ "autoRefresh": {
1751
+ "label": "Atualização automática",
1752
+ "every10s": "Atualizar a cada 10 segundos"
1753
+ },
1754
+ "noLogs": "Sem registos disponíveis",
1755
+ "noMatch": "Nenhum registo corresponde à sua pesquisa",
1756
+ "showing": "A mostrar {filtered} de {total} entradas de registo",
1757
+ "filteredBy": "(filtrado por \"{query}\")"
1758
+ },
1759
+ "accessLevels": {
1760
+ "owner": "proprietário",
1761
+ "admin": "administrador",
1762
+ "write": "escrita",
1763
+ "read": "leitura"
1764
+ },
1765
+ "errors": {
1766
+ "generic": "Ocorreu um erro. Tente novamente.",
1767
+ "failedToFetch": "Falha ao obter dados",
1768
+ "failedToLoad": "Falha ao carregar",
1769
+ "failedToSave": "Falha ao guardar",
1770
+ "failedToDelete": "Falha ao eliminar implementação",
1771
+ "failedToAssign": "Falha ao atribuir bot space",
1772
+ "notFound": "Não encontrado",
1773
+ "error": "Erro"
1774
+ },
1775
+ "deleteAccount": {
1776
+ "title": "Eliminar Conta",
1777
+ "loadingInfo": "A carregar informação da conta...",
1778
+ "permanentWarning": "Esta ação é permanente e não pode ser desfeita.",
1779
+ "willBeDeleted": "O seguinte será eliminado permanentemente:",
1780
+ "deployments": "Implementações (Bots)",
1781
+ "documents": "Documentos",
1782
+ "apiKeys": "Chaves de API",
1783
+ "botSpaces": "Bot Spaces",
1784
+ "contributorsToDelete": "Contas de contribuidores a serem eliminadas",
1785
+ "contributorsNote": "Estes contribuidores são apenas membros dos bot spaces da sua organização.",
1786
+ "organization": "Organização",
1787
+ "adminDeleteNote": "Como administrador, eliminar a sua conta também eliminará todos os dados da organização e contas de contribuidores afiliados apenas à sua organização.",
1788
+ "userDeleteNote": "As suas associações a bot spaces serão removidas, mas os bot spaces e outros utilizadores não serão afetados.",
1789
+ "continue": "Continuar",
1790
+ "confirmPrompt": "Para confirmar a eliminação, escreva o seu endereço de email:",
1791
+ "confirmEmail": "Confirme o seu email",
1792
+ "emailPlaceholder": "Escreva o seu email para confirmar",
1793
+ "deleting": "A eliminar...",
1794
+ "deleteMyAccount": "Eliminar a Minha Conta",
1795
+ "errors": {
1796
+ "loadFailed": "Falha ao carregar informação da conta",
1797
+ "loadError": "Erro ao carregar informação da conta",
1798
+ "emailMismatch": "Escreva o seu endereço de email exatamente para confirmar",
1799
+ "deleteFailed": "Falha ao eliminar conta",
1800
+ "deleteError": "Erro ao eliminar conta"
1801
+ }
1802
+ },
1803
+ "botSpaceInvite": {
1804
+ "title": "Convidar para {spaceName}",
1805
+ "description": "Envie um convite para colaborar neste bot space. Receberão um email com uma ligação para aderir.",
1806
+ "emailLabel": "Endereço de Email",
1807
+ "emailPlaceholder": "colega@empresa.com",
1808
+ "accessLabel": "Nível de Acesso",
1809
+ "accessRead": "Leitura - Pode ver bots neste space",
1810
+ "accessWrite": "Escrita - Pode criar e editar bots",
1811
+ "accessAdmin": "Administrador - Acesso total incluindo convidar outros",
1812
+ "accessNote": "Os utilizadores convidados aderirão como contribuidores à sua organização.",
1813
+ "sending": "A enviar...",
1814
+ "sendInvitation": "Enviar Convite",
1815
+ "errors": {
1816
+ "sendFailed": "Falha ao enviar convite"
1817
+ }
1818
+ },
1819
+ "auditLogTable": {
1820
+ "loading": "A carregar registos de auditoria...",
1821
+ "noLogs": "Nenhum registo de auditoria encontrado",
1822
+ "noLogsHint": "Os registos aparecerão aqui à medida que as ações são realizadas",
1823
+ "headers": {
1824
+ "time": "Hora",
1825
+ "event": "Evento",
1826
+ "actor": "Ator",
1827
+ "resource": "Recurso",
1828
+ "outcome": "Resultado"
1829
+ },
1830
+ "events": {
1831
+ "authLoginSuccess": "Início de Sessão",
1832
+ "authLoginFailure": "Início de Sessão Falhado",
1833
+ "authLogout": "Fim de Sessão",
1834
+ "authSignup": "Registo",
1835
+ "deploymentCreate": "Implementação Criada",
1836
+ "deploymentRedeploy": "Reimplementado",
1837
+ "deploymentDelete": "Implementação Eliminada",
1838
+ "botSpaceCreate": "Space Criado",
1839
+ "botSpaceDelete": "Space Eliminado",
1840
+ "botSpaceMemberAdd": "Membro Adicionado",
1841
+ "botSpaceMemberRemove": "Membro Removido",
1842
+ "documentUpload": "Doc Carregado",
1843
+ "documentDelete": "Doc Eliminado",
1844
+ "apiKeyCreate": "Chave de API Criada",
1845
+ "apiKeyDelete": "Chave de API Eliminada",
1846
+ "userInvite": "Utilizador Convidado",
1847
+ "userInviteAccept": "Convite Aceite",
1848
+ "auditWebhookUpdate": "Webhook Atualizado",
1849
+ "auditLogsExport": "Registos Exportados"
1850
+ },
1851
+ "outcomes": {
1852
+ "success": "sucesso",
1853
+ "failure": "falha",
1854
+ "denied": "negado"
1855
+ },
1856
+ "details": {
1857
+ "timestamp": "Carimbo Temporal Completo",
1858
+ "requestId": "ID do Pedido",
1859
+ "ipAddress": "Endereço IP",
1860
+ "userAgent": "User Agent",
1861
+ "resource": "Recurso",
1862
+ "metadata": "Metadados"
1863
+ },
1864
+ "showing": "A mostrar {shown} de {total} registos",
1865
+ "loadMore": "Carregar Mais"
1866
+ },
1867
+ "auditLogFilters": {
1868
+ "eventTypes": {
1869
+ "allEvents": "Todos os Eventos",
1870
+ "authentication": "Autenticação",
1871
+ "deployments": "Implementações",
1872
+ "botSpaces": "Bot Spaces",
1873
+ "documents": "Documentos",
1874
+ "apiKeys": "Chaves de API",
1875
+ "usersInvites": "Utilizadores e Convites",
1876
+ "conversations": "Conversas",
1877
+ "settings": "Definições",
1878
+ "auditSystem": "Sistema de Auditoria"
1879
+ },
1880
+ "outcomes": {
1881
+ "all": "Todos",
1882
+ "success": "Sucesso",
1883
+ "failure": "Falha",
1884
+ "denied": "Negado"
1885
+ },
1886
+ "dateRange": "Intervalo de Datas",
1887
+ "from": "De",
1888
+ "to": "Até",
1889
+ "clear": "Limpar"
1890
+ },
1891
+ "data": {
1892
+ "navLabel": "Dados",
1893
+ "title": "Dados da Frota",
1894
+ "subtitle": "Explore e agregue a atividade de conversas em todos os bots ligados. O conteúdo das conversas permanece no bot — apenas as contagens são combinadas em processo.",
1895
+ "loading": "A carregar…",
1896
+ "tabs": {
1897
+ "explorer": "Explorador",
1898
+ "sql": "SQL",
1899
+ "analytics": "Análises"
1900
+ },
1901
+ "fleet": {
1902
+ "unreachableBanner": "{unreachable} de {total} bots inacessíveis — os resultados podem ser parciais."
1903
+ },
1904
+ "explorer": {
1905
+ "filters": {
1906
+ "conversationId": "ID da Conversa contém",
1907
+ "startDate": "Iniciada após",
1908
+ "endDate": "Iniciada antes"
1909
+ },
1910
+ "search": "Pesquisar",
1911
+ "searching": "A pesquisar…",
1912
+ "clear": "Limpar",
1913
+ "hint": "Introduza um fragmento de ID de conversa ou um intervalo de datas para distribuir uma pesquisa por todos os bots ligados.",
1914
+ "pagination": {
1915
+ "showing": "A mostrar {start} – {end} de {total}",
1916
+ "previous": "Anterior",
1917
+ "next": "Seguinte",
1918
+ "truncatedNotice": "O conjunto de resultados está limitado às primeiras 500 conversas da frota. Restrinja o intervalo de datas para resultados mais antigos."
1919
+ },
1920
+ "noConversations": "Nenhuma conversa correspondeu ao seu filtro."
1921
+ },
1922
+ "sql": {
1923
+ "placeholder": "SELECT bot_name, conversations_7d FROM bot_health ORDER BY conversations_7d DESC",
1924
+ "runQuery": "Executar consulta",
1925
+ "running": "A executar…",
1926
+ "exportCsv": "Exportar CSV",
1927
+ "exportJson": "Exportar JSON",
1928
+ "keyboardHint": "Pressione Cmd/Ctrl + Enter para executar",
1929
+ "rowCount": "{count} linhas",
1930
+ "truncated": "(truncado para 10.000)",
1931
+ "noResults": "Sem linhas",
1932
+ "help": "Consultas iniciais",
1933
+ "starterQueries": {
1934
+ "title": "Consultas iniciais",
1935
+ "hint": "Cada consulta lê das tabelas de agregação em memória, montadas a cada pedido a partir dos endpoints de análise de cada bot. Clique para carregar.",
1936
+ "dailyStats": "Estatísticas diárias de conversa em toda a frota",
1937
+ "botHealth": "Saúde dos bots (últimos 7 dias)",
1938
+ "protocolDistribution": "Distribuição de utilização de protocolos",
1939
+ "mostActiveBots": "Bots mais ativos esta semana",
1940
+ "staleBots": "Bots não vistos nas últimas 24h",
1941
+ "dailyByBot": "Atividade diária associada aos nomes dos bots"
1942
+ }
1943
+ },
1944
+ "schema": {
1945
+ "availableTables": "Referência de esquema",
1946
+ "clickToShow": "(clique para mostrar)",
1947
+ "clickToHide": "(clique para ocultar)",
1948
+ "note": "Nota:",
1949
+ "scopeNote": "Estas tabelas são construídas em memória de processo a cada consulta — uma linha por bot para as tabelas de agregação, populadas chamando os endpoints de análise de cada bot ligado. O conteúdo bruto dos turnos não é exposto; para isso, use o separador Explorador para investigar uma conversa individual."
1950
+ },
1951
+ "analytics": {
1952
+ "loading": "A carregar agregações da frota…",
1953
+ "dateRange": {
1954
+ "last7days": "Últimos 7 dias",
1955
+ "last14days": "Últimos 14 dias",
1956
+ "last30days": "Últimos 30 dias",
1957
+ "last90days": "Últimos 90 dias"
1958
+ },
1959
+ "summary": {
1960
+ "totalConversations": "Conversas",
1961
+ "totalTurns": "Turnos",
1962
+ "avgTurnsPerConversation": "Méd. turnos/conv",
1963
+ "activeBots": "Bots acessíveis"
1964
+ },
1965
+ "charts": {
1966
+ "dailyConversations": "Volume diário de turnos",
1967
+ "topBotsByActivity": "Principais bots por volume de turnos",
1968
+ "activityHeatmap": "Mapa de calor de atividade (últimos 7 dias)"
1969
+ },
1970
+ "noData": "Sem atividade neste período.",
1971
+ "noActivityData": "Sem atividade nos últimos 7 dias.",
1972
+ "convs": "convs",
1973
+ "days": {
1974
+ "sun": "Dom",
1975
+ "mon": "Seg",
1976
+ "tue": "Ter",
1977
+ "wed": "Qua",
1978
+ "thu": "Qui",
1979
+ "fri": "Sex",
1980
+ "sat": "Sáb"
1981
+ }
1982
+ },
1983
+ "table": {
1984
+ "headers": {
1985
+ "bot": "Bot",
1986
+ "started": "Iniciada",
1987
+ "duration": "Duração",
1988
+ "turns": "Turnos",
1989
+ "conversationId": "ID da Conversa"
1990
+ }
1991
+ }
1992
+ },
1993
+ "documentUploader": {
1994
+ "title": "Carregar Documentos",
1995
+ "description": "Carregue documentos que o seu chatbot usará para RAG (Geração Aumentada por Recuperação)",
1996
+ "uploading": "A carregar...",
1997
+ "chooseFiles": "Escolher Ficheiros",
1998
+ "dropFilesHere": "Largue ficheiros aqui",
1999
+ "dragAndDropHint": "ou arraste e largue ficheiros aqui",
2000
+ "fileTypes": "PDF, TXT, MD, DOC, DOCX",
2001
+ "uploadedDocuments": "Documentos Carregados ({count})",
2002
+ "noDocumentsYet": "Ainda sem documentos carregados",
2003
+ "noDocumentsHint": "Clique em \"Escolher Ficheiros\" para começar",
2004
+ "skippedFiles": "Alguns ficheiros foram ignorados. Apenas ficheiros PDF, TXT, MD, DOC, DOCX são suportados.",
2005
+ "deleteConfirm": "Tem a certeza de que deseja eliminar este ficheiro?",
2006
+ "uploadFailed": "Carregamento falhado",
2007
+ "uploadFailedFallback": "Falha ao carregar ficheiros",
2008
+ "deleteFailed": "Eliminação falhada",
2009
+ "deleteFailedFallback": "Falha ao eliminar ficheiro"
2010
+ },
2011
+ "chatBuilder": {
2012
+ "title": "Construtor de Bot com IA",
2013
+ "subtitle": "Descreva o bot que deseja construir e eu criarei-o para si",
2014
+ "loading": "A carregar Construtor com IA...",
2015
+ "newChat": "Novo Chat",
2016
+ "recentChats": "Chats Recentes",
2017
+ "noPreviousChats": "Sem chats anteriores",
2018
+ "botPreview": "Pré-visualização do Bot",
2019
+ "viewDeployedBot": "Ver bot implementado",
2020
+ "selectWorkspace": "Selecionar workspace",
2021
+ "selectWorkspacePrompt": "Selecione um workspace para começar a construir",
2022
+ "noWorkspaces": "Sem workspaces disponíveis",
2023
+ "createWorkspaceFirst": "Crie um primeiro",
2024
+ "backToDashboard": "Voltar ao Painel",
2025
+ "welcome": {
2026
+ "title": "Construa um Bot com IA",
2027
+ "description": "Descreva o bot que deseja criar, carregue documentos relevantes e eu ajudarei a configurá-lo e a implementá-lo. Sem necessidade de programação.",
2028
+ "quickPrompts": {
2029
+ "customerSupport": {
2030
+ "title": "Bot de Apoio ao Cliente",
2031
+ "description": "Responder a perguntas sobre produtos",
2032
+ "prompt": "Preciso de um bot de apoio ao cliente que possa responder a perguntas sobre o nosso produto"
2033
+ },
2034
+ "leadCapture": {
2035
+ "title": "Bot de Captura de Leads",
2036
+ "description": "Recolher informações de visitantes",
2037
+ "prompt": "Crie um bot de captura de leads que recolha nome, email e informação da empresa"
2038
+ },
2039
+ "faqAssistant": {
2040
+ "title": "Assistente de FAQ",
2041
+ "description": "Responder a perguntas comuns",
2042
+ "prompt": "Ajude-me a construir um bot de FAQ usando a nossa documentação"
2043
+ },
2044
+ "onboarding": {
2045
+ "title": "Bot de Onboarding",
2046
+ "description": "Guiar novos utilizadores",
2047
+ "prompt": "Quero criar um bot que ajude a integrar novos clientes"
2048
+ }
2049
+ }
2050
+ },
2051
+ "input": {
2052
+ "placeholder": "Descreva o bot que deseja construir...",
2053
+ "defaultPlaceholder": "Escreva uma mensagem...",
2054
+ "dropFilesHere": "Largue ficheiros aqui...",
2055
+ "dropToAttach": "Largue ficheiros para os anexar à sua mensagem",
2056
+ "hint": "Pressione Enter para enviar, Shift+Enter para nova linha. Arraste ficheiros ou clique no clipe para anexar.",
2057
+ "hintShort": "Pressione Enter para enviar, Shift+Enter para nova linha",
2058
+ "hintWithAttach": "Arraste e largue ficheiros ou clique em anexar. Pressione Enter para enviar.",
2059
+ "attachFiles": "Anexar ficheiros",
2060
+ "attachDocuments": "Anexar documentos"
2061
+ },
2062
+ "tools": {
2063
+ "toolsExecuted": "{count} ferramenta executada",
2064
+ "toolsExecutedPlural": "{count} ferramentas executadas",
2065
+ "uploadDocument": "Carregar Documento",
2066
+ "generateForm": "Gerar Formulário",
2067
+ "deployBot": "Implementar Bot",
2068
+ "listDeployments": "Listar Implementações",
2069
+ "checkDeploymentStatus": "Verificar Estado de Implementação",
2070
+ "destroyDeployment": "Destruir Implementação",
2071
+ "getAnalytics": "Obter Análises",
2072
+ "getFormSubmissions": "Obter Submissões de Formulário",
2073
+ "listWorkspaces": "Listar Workspaces",
2074
+ "listDocuments": "Listar Documentos",
2075
+ "listApiKeys": "Listar Chaves de API"
2076
+ },
2077
+ "documentPicker": {
2078
+ "title": "Selecionar Documentos",
2079
+ "noDocuments": "Sem documentos neste workspace",
2080
+ "uploadFirst": "Carregue primeiro documentos para os usar no seu bot",
2081
+ "selected": "{count} documento selecionado",
2082
+ "selectedPlural": "{count} documentos selecionados",
2083
+ "useSelected": "Usar Selecionados"
2084
+ },
2085
+ "errors": {
2086
+ "failedToSend": "Falha ao enviar mensagem",
2087
+ "failedToLoadSession": "Falha ao carregar sessão",
2088
+ "failedToLoadDocuments": "Falha ao carregar documentos"
2089
+ },
2090
+ "invertedPanel": {
2091
+ "createABot": "Criar um Bot",
2092
+ "editBot": "Editar {name}",
2093
+ "fallbackBotName": "Bot",
2094
+ "private": "Privado",
2095
+ "createTitle": "Que tipo de bot posso ajudar a construir?",
2096
+ "createDescription": "Também pode anexar documentos para lhe dar conhecimento. Carregue um ficheiro ou peça para referir docs no bot space.",
2097
+ "buildWithWizard": "Construir com Assistente (Configuração passo a passo)",
2098
+ "editTitle": "Modificar {name}",
2099
+ "editFallbackName": "o seu bot",
2100
+ "editDescription": "Diga-me o que gostaria de alterar. Carregarei a sua configuração atual e ajudarei a atualizá-la.",
2101
+ "editExamples": "Exemplos: \"Mudar a saudação\", \"Adicionar um novo campo de formulário\", \"Atualizar o nome do bot\"",
2102
+ "errorPrefix": "Erro:",
2103
+ "inputPlaceholder": "Descreva o que o seu bot deve fazer...",
2104
+ "adjustMessage": "Gostaria de ajustar a configuração"
2105
+ },
2106
+ "status": {
2107
+ "ready": "Pronto",
2108
+ "processing": "A processar",
2109
+ "awaitingConfirmation": "A aguardar confirmação",
2110
+ "deploying": "A implementar",
2111
+ "deployed": "Implementado",
2112
+ "editing": "A editar"
2113
+ },
2114
+ "success": {
2115
+ "botBuilt": "Bot construído!",
2116
+ "botSaved": "Bot guardado",
2117
+ "botBuiltMessage": "O seu bot <strong>{name}</strong> está construído e pronto para transferir.",
2118
+ "botSavedMessage": "O seu bot <strong>{name}</strong> está guardado. Compile-o a partir do seu Bot Space quando estiver pronto.",
2119
+ "liveUrl": "URL em Direto",
2120
+ "embedCode": "Código de Embed",
2121
+ "downloadArtifact": "Transferir Artefacto",
2122
+ "downloadWithDocs": "Transferir com Documentos",
2123
+ "openBot": "Abrir Bot",
2124
+ "viewInBotSpace": "Ver no Bot Space"
2125
+ }
2126
+ },
2127
+ "login": {
2128
+ "subtitle": "Inicie sessão para continuar",
2129
+ "username": "Nome de utilizador",
2130
+ "password": "Palavra-passe",
2131
+ "signIn": "Iniciar Sessão",
2132
+ "signingIn": "A iniciar sessão...",
2133
+ "signOut": "Terminar Sessão",
2134
+ "invalid": "Nome de utilizador ou palavra-passe inválidos"
2135
+ }
2136
+ }