translation.json
1 { 2 "common": { 3 "save": "Guardar", 4 "cancel": "Cancelar", 5 "close": "Fechar", 6 "delete": "Eliminar", 7 "edit": "Editar", 8 "add": "Adicionar", 9 "create": "Criar", 10 "remove": "Remover", 11 "confirm": "Confirmar", 12 "back": "Voltar", 13 "next": "Seguinte", 14 "previous": "Anterior", 15 "search": "Pesquisar", 16 "searchPlaceholder": "Pesquisar...", 17 "filter": "Filtrar", 18 "all": "Todos", 19 "yes": "Sim", 20 "no": "Não", 21 "none": "Nenhum", 22 "loading": "A carregar...", 23 "saving": "A guardar...", 24 "submitting": "A submeter...", 25 "refresh": "Atualizar", 26 "retry": "Tentar novamente", 27 "copy": "Copiar", 28 "copied": "Copiado para a área de transferência", 29 "export": "Exportar", 30 "exportCsv": "Exportar CSV", 31 "clear": "Limpar", 32 "clearSearch": "Limpar pesquisa", 33 "done": "Concluído", 34 "apply": "Aplicar", 35 "disable": "Desativar", 36 "enable": "Ativar", 37 "enabled": "Ativado", 38 "disabled": "Desativado", 39 "name": "Nome", 40 "description": "Descrição", 41 "actions": "Ações", 42 "status": "Estado", 43 "date": "Data", 44 "user": "Utilizador", 45 "username": "Utilizador", 46 "password": "Palavra-passe", 47 "role": "Função", 48 "admin": "Administrador", 49 "private": "Privado", 50 "public": "Público", 51 "team": "Equipa", 52 "project": "Projeto", 53 "type": "Tipo", 54 "pageSize": "Linhas por página", 55 "noResults": "Nenhum item encontrado", 56 "noMatches": "Sem resultados para \"{{query}}\"", 57 "resultCount_one": "{{count}} resultado", 58 "resultCount_other": "{{count}} resultados", 59 "errorGeneric": "Algo correu mal. Tente novamente.", 60 "selectedCount": "{{count}} selecionados", 61 "keepEditing": "Continuar a editar", 62 "discard": "Descartar" 63 }, 64 "nav": { 65 "home": "Início", 66 "projects": "Projetos", 67 "library": "Biblioteca", 68 "users": "Utilizadores", 69 "teams": "Equipas", 70 "llms": "LLMs", 71 "embeddings": "Embeddings", 72 "imageGenerators": "Geradores de Imagem", 73 "speechToText": "Voz para Texto", 74 "generators": "Geradores", 75 "admin": "Administração", 76 "cronLogs": "Registos de Cron", 77 "auditLog": "Registo de Auditoria", 78 "permissionMatrix": "Matriz de Permissões", 79 "settings": "Definições", 80 "invitations": "Convites", 81 "tools": "Ferramentas", 82 "logout": "Terminar sessão", 83 "profile": "Perfil", 84 "account": "Conta", 85 "language": "Idioma", 86 "switchLanguage": "Mudar idioma", 87 "showMore": "Ver mais", 88 "collapse": "Recolher", 89 "expand": "Expandir", 90 "openMenu": "Abrir menu", 91 "classifiers": "Classificadores", 92 "directAccess": "Acesso direto", 93 "gpu": "GPU", 94 "aiProxy": "Proxy de IA", 95 "swagger": "Swagger", 96 "adminLabel": "Administração", 97 "docsLabel": "Documentação" 98 }, 99 "topbar": { 100 "exitImpersonation": "Sair da personificação", 101 "impersonating": "A personificar {{username}}", 102 "invitationsPending": "{{count}} convites pendentes", 103 "notifications": "Notificações" 104 }, 105 "breadcrumb": { 106 "home": "Início" 107 }, 108 "sessions": { 109 "signIn": "Iniciar sessão", 110 "signInAction": "Entrar", 111 "signingIn": "A iniciar sessão...", 112 "welcome": "Bem-vindo de volta", 113 "subtitle": "Inicie sessão na sua conta RESTai", 114 "username": "Utilizador", 115 "password": "Palavra-passe", 116 "forgotPassword": "Esqueceu-se da palavra-passe?", 117 "rememberMe": "Lembrar-me", 118 "loginFailed": "Falha ao iniciar sessão. Verifique as suas credenciais.", 119 "sessionExpired": "A sua sessão expirou. Inicie sessão novamente.", 120 "signInWith": "Entrar com {{provider}}", 121 "or": "ou", 122 "totpTitle": "Autenticação em dois passos", 123 "totpSubtitle": "Introduza o código de 6 dígitos da sua aplicação autenticadora.", 124 "totpCodeLabel": "Código do autenticador", 125 "totpRecoveryToggle": "Usar um código de recuperação", 126 "totpRecoveryLabel": "Código de recuperação", 127 "totpVerify": "Verificar", 128 "totpVerifying": "A verificar...", 129 "totpInvalid": "Código inválido.", 130 "passwordWarningTitle": "Aviso de validade da palavra-passe", 131 "passwordAgeMessage": "A sua palavra-passe tem {{days}} dias. Considere alterá-la em breve." 132 }, 133 "dashboard": { 134 "title": "Início", 135 "greeting": "Painel", 136 "subtitle": "Visão geral da sua plataforma RESTai", 137 "hero": { 138 "tagline": "RESTai · Plataforma AIaaS", 139 "subtitle": "Os seus modelos, os seus dados, as suas regras. Visão em tempo real do que se passa na plataforma.", 140 "operational": "Tudo operacional", 141 "modelsOnline_one": "{{count}} modelo online", 142 "modelsOnline_other": "{{count}} modelos online", 143 "tokensToday": "{{value}} tokens hoje", 144 "sinceOpen": "+{{value}} desde abertura", 145 "latency": "{{value}} latência p50", 146 "totalTokens": "{{value}} no total", 147 "vsYesterday": "{{pct}}% vs ontem", 148 "greetMorning": "Bom dia", 149 "greetAfternoon": "Boa tarde", 150 "greetEvening": "Boa noite", 151 "greetLate": "A queimar as pestanas" 152 }, 153 "fleet": { 154 "title": "FROTA DE MODELOS", 155 "subtitle_one": "{{count}} modelo ativo nas suas equipas", 156 "subtitle_other": "{{count}} modelos ativos nas suas equipas", 157 "tokens": "Tokens", 158 "requests": "Pedidos" 159 }, 160 "stats": { 161 "projects": "Projetos", 162 "users": "Utilizadores", 163 "teams": "Equipas", 164 "tokens": "Tokens", 165 "cost": "Custo", 166 "avgLatency": "Latência média" 167 }, 168 "activity": "Atividade", 169 "distribution": "Distribuição", 170 "projects": "Projetos", 171 "projectTypes": "Tipos de Projeto", 172 "llmUsage": "Utilização de LLM", 173 "topLlms": "LLMs mais usados", 174 "topProjects": "Projetos mais usados", 175 "latestProjects": "Projetos recentes", 176 "noProjectsYet": "Ainda não há projetos", 177 "noProjectsDesc": "Os projetos são onde vivem os fluxos RAG, de agentes e de blocos. Crie um para começar a acompanhar conversas, custos e qualidade neste painel.", 178 "createFirstProject": "Crie o seu primeiro projeto", 179 "authSecretWeak": "Aviso de segurança: a variável de ambiente RESTAI_AUTH_SECRET é fraca ou corresponde a um valor predefinido conhecido. Altere-a para um valor longo e aleatório e reinicie o servidor. As sessões existentes terão de iniciar sessão novamente." 180 }, 181 "projects": { 182 "title": "Projetos", 183 "subtitle": "Os seus projetos RAG, de agente e de bloco", 184 "new": "Novo Projeto", 185 "newProject": "Novo Projeto", 186 "search": "Pesquisar projetos...", 187 "noProjects": "Ainda não há projetos.", 188 "emptyTitle": "Ainda não há projetos", 189 "emptyMessage": "Crie o seu primeiro projeto para começar.", 190 "type": { 191 "rag": "RAG", 192 "agent": "Agente", 193 "block": "Bloco" 194 }, 195 "fields": { 196 "name": "Nome", 197 "humanName": "Nome apresentado", 198 "description": "Descrição", 199 "llm": "LLM", 200 "embeddings": "Embeddings", 201 "team": "Equipa", 202 "vectorstore": "Vectorstore", 203 "system": "Prompt de sistema" 204 }, 205 "actions": { 206 "open": "Abrir", 207 "edit": "Editar", 208 "clone": "Clonar", 209 "delete": "Eliminar", 210 "playground": "Playground", 211 "saveAsTemplate": "Guardar como modelo", 212 "useTemplate": "Usar modelo" 213 }, 214 "clone": { 215 "title": "Clonar projeto", 216 "newName": "Nome do novo projeto", 217 "helper": "As definições, conjuntos de avaliação e versões de prompt serão clonados." 218 }, 219 "template": { 220 "saveTitle": "Guardar como modelo", 221 "saveIntro": "Capture o prompt de sistema e as opções deste projeto como um modelo reutilizável. O projeto atual não é afetado.", 222 "name": "Nome do modelo", 223 "description": "Descrição", 224 "descHelper": "Apresentado na lista da biblioteca — explique para que serve este modelo.", 225 "visibility": "Visibilidade", 226 "private": "Privado — só o próprio pode ver e usar", 227 "team": "Equipa — membros da equipa deste projeto", 228 "public": "Público — qualquer utilizador desta instância RESTai", 229 "publish": "Publicar", 230 "publishing": "A publicar...", 231 "published": "Modelo \"{{name}}\" publicado.", 232 "instantiateTitle": "Usar modelo: {{name}}", 233 "instantiateNewName": "Nome do novo projeto", 234 "instantiateNameHelp": "Identificador seguro para URL (letras, números, . _ : -)", 235 "instantiateTeam": "Equipa alvo", 236 "instantiateLlm": "LLM", 237 "instantiateSuggested": "(sugerido: {{name}})", 238 "instantiateUseSuggested": "(usar sugerido)", 239 "create": "Criar projeto", 240 "creating": "A criar..." 241 }, 242 "library": { 243 "title": "Biblioteca de projetos", 244 "subtitle": "Explore projetos partilhados. Clone qualquer projeto para o personalizar.", 245 "communityTemplates": "Modelos da comunidade", 246 "communityTemplatesDesc": "Pacotes iniciais reutilizáveis de projetos — instancie um para criar um novo projeto em qualquer uma das suas equipas. Guarde os seus a partir do botão \"Guardar como modelo\" de qualquer projeto.", 247 "noTemplates": "Ainda não há modelos disponíveis.", 248 "noSharedProjects": "Nenhum projeto partilhado encontrado.", 249 "markPublicHint": "Marque um projeto como \"Partilhado\" nas definições para aparecer aqui.", 250 "by": "por {{author}}", 251 "uses_one": "{{count}} uso", 252 "uses_other": "{{count}} usos" 253 }, 254 "gallery": { 255 "chooseTemplate": "Escolha um modelo", 256 "chooseSubtitle": "Comece com um projeto pré-configurado ou crie do zero", 257 "startFromScratch": "Começar do zero", 258 "scratchDesc": "Crie um projeto em branco e configure tudo manualmente", 259 "publishedTitle": "Os seus modelos publicados", 260 "publishedDesc": "Guardados a partir de projetos existentes. Clicar num cria um novo projeto baseado na captura." 261 }, 262 "unsavedChanges": { 263 "title": "Descartar alterações não guardadas?", 264 "message": "Tem edições por guardar neste projeto. Se sair agora, serão descartadas." 265 }, 266 "edit": { 267 "title": "Editar projeto - {{name}}", 268 "tabs": { 269 "general": "Geral", 270 "knowledge": "Conhecimento", 271 "tools": "Ferramentas", 272 "secrets": "Segredos", 273 "security": "Segurança", 274 "integrations": "Integrações", 275 "routines": "Rotinas", 276 "mobile": "Móvel", 277 "analytics": "Análises", 278 "comments": "Comentários", 279 "evals": "Avaliações", 280 "guards": "Guardas" 281 }, 282 "general": { 283 "basicInfo": "Informação básica", 284 "advanced": "Avançado", 285 "projectName": "Nome do projeto", 286 "displayName": "Nome apresentado", 287 "description": "Descrição", 288 "team": "Equipa", 289 "llm": "LLM", 290 "embeddings": "Embeddings", 291 "systemPrompt": "Prompt de sistema", 292 "systemPromptHint": "Instruções que moldam o comportamento do agente", 293 "generatePrompt": "Gerar com IA", 294 "promptVersions": "Histórico de versões", 295 "censorship": "Resposta de reserva", 296 "censorshipHint": "Devolvida quando o agente não encontra uma boa resposta", 297 "logging": "Registar inferências", 298 "redactLogs": "Ocultar PII nos registos", 299 "cache": "Cache semântica de respostas", 300 "cacheThreshold": "Limiar da cache", 301 "memoryBankEnabled": "Banco de memória (contexto do projeto)", 302 "memoryBankMaxTokens": "Orçamento de tokens do banco de memória", 303 "memoryBankWarning": "O banco de memória partilha um resumo de todas as conversas deste projeto com todas as outras conversas. Qualquer utilizador com acesso a este projeto verá o agente referir contexto resumido de conversas de outros utilizadores. Não ative esta opção para projetos com dados confidenciais por utilizador.", 304 "browserSection": "Navegador de agente", 305 "browserAllowedDomains": "Domínios permitidos", 306 "browserAllowedHint": "Lista de hosts separados por vírgulas que o navegador pode visitar. Vazio = sem restrição.", 307 "browserAllowEval": "Permitir browser_eval (perigoso)" 308 }, 309 "knowledge": { 310 "retrieval": "Recuperação", 311 "kHint": "Número de chunks obtidos por consulta", 312 "scoreHint": "Pontuação mínima de similaridade (0-1). Maior = mais estrito.", 313 "rerank": "Reordenação", 314 "llmRerank": "Reordenação por LLM", 315 "colbertRerank": "Reordenação ColBERT", 316 "sqlSection": "SQL em linguagem natural", 317 "connection": "String de ligação à base de dados", 318 "connectionHint": "URI SQLAlchemy — p. ex. postgresql://user:pwd@host/db", 319 "tables": "Tabelas permitidas", 320 "knowledgeGraph": "Grafo de conhecimento", 321 "evals": { 322 "datasets": "Conjuntos de dados", 323 "newDataset": "Novo conjunto", 324 "clickHint": "Clique num conjunto para gerir os seus casos de teste.", 325 "noDatasets": "Ainda sem conjuntos. Crie um para começar a avaliar.", 326 "name": "Nome", 327 "cases": "Casos", 328 "actions": "Ações", 329 "testCases": "{{name}} — Casos de teste", 330 "addCase": "Adicionar caso", 331 "noCases": "Ainda sem casos de teste. Adicione perguntas para avaliar o seu projeto.", 332 "addFirstCase": "Adicionar primeiro caso", 333 "question": "Pergunta", 334 "expectedAnswer": "Resposta esperada", 335 "runs": "Execuções de avaliação", 336 "noRuns": "Ainda sem execuções. Selecione um conjunto e clique no botão de reprodução para começar.", 337 "run": "Execução", 338 "status": "Estado", 339 "scores": "Pontuações", 340 "scoreTrend": "Tendência de pontuação", 341 "runResults": "Resultados da execução #{{id}}", 342 "answer": "Resposta", 343 "metric": "Métrica", 344 "score": "Pontuação", 345 "reason": "Motivo", 346 "newDatasetTitle": "Novo conjunto de avaliação", 347 "description": "Descrição", 348 "addTestCase": "Adicionar caso de teste", 349 "expectedOptional": "Resposta esperada (opcional)", 350 "expectedHelp": "Forneça uma resposta de verdade para ativar a métrica 'correção'", 351 "runEval": "Executar avaliação", 352 "selectMetrics": "Selecione as métricas a avaliar. Cada caso de teste terá uma pontuação por métrica.", 353 "answerRelevancy": "Relevância da resposta — A resposta é relevante para a pergunta?", 354 "faithfulness": "Fidelidade — A resposta está fundamentada no contexto recuperado? (apenas RAG)", 355 "correctness": "Correção — A resposta corresponde à resposta esperada?", 356 "starting": "A iniciar…", 357 "start": "Iniciar", 358 "confirmDeleteDataset": "Eliminar este conjunto e todos os casos de teste?", 359 "confirmDeleteRun": "Eliminar esta execução de avaliação?" 360 }, 361 "guardAnalytics": { 362 "title": "Analítica de guards", 363 "noData": "Sem dados de guards. Configure guards de entrada ou saída neste projeto para começar a acompanhar.", 364 "totalChecks": "Total de verificações", 365 "blocked": "Bloqueados", 366 "blockRate": "Taxa de bloqueio", 367 "warnings": "Avisos", 368 "events": "Eventos de guard", 369 "recentBlocked": "Pedidos bloqueados recentes ({{count}})", 370 "noBlocked": "Ainda sem pedidos bloqueados.", 371 "date": "Data", 372 "phase": "Fase", 373 "guard": "Guard", 374 "text": "Texto", 375 "guardResponse": "Resposta do guard", 376 "loggingDisabled": "(registo desativado)", 377 "phaseInput": "entrada", 378 "phaseOutput": "saída" 379 }, 380 "infoKnowledge": { 381 "title": "Definições RAG", 382 "documents": "Documentos", 383 "embeddings": "Embeddings", 384 "vectorStore": "Vector store", 385 "topK": "Top-K documentos", 386 "scoreCutoff": "Corte de score", 387 "colbertRerank": "Rerank ColBERT", 388 "llmRerank": "Rerank LLM", 389 "cache": "Cache", 390 "cacheThreshold": "Limiar de cache", 391 "sqlConnection": "Ligação SQL", 392 "sqlTables": "Tabelas SQL", 393 "knowledgeGraph": "Grafo de conhecimento", 394 "logging": "Registo", 395 "rateLimit": "Limite de taxa", 396 "rateLimitValue": "{{value}} pedidos/min", 397 "inputGuard": "Guard de entrada", 398 "outputGuard": "Guard de saída", 399 "guardMode": "Modo de guard", 400 "guardWarn": "Avisar", 401 "guardBlock": "Bloquear", 402 "censorshipMessage": "Mensagem de censura", 403 "autoSync": "Sincronização automática", 404 "autoSyncActive_one": "Ativa ({{count}} fonte)", 405 "autoSyncActive_other": "Ativa ({{count}} fontes)", 406 "configured": "Configurado" 407 }, 408 "kgTabs": { 409 "entities": "Entidades", 410 "graph": "Grafo", 411 "query": "Consulta" 412 }, 413 "block": { 414 "config": "Configuração de blocos", 415 "status": "Estado", 416 "configured": "Configurado", 417 "notConfigured": "Não configurado", 418 "topBlocks": "Blocos de topo", 419 "variables": "Variáveis" 420 }, 421 "ide": { 422 "title": "IDE de blocos", 423 "subtitleWithAi": "Componha visualmente o seu projeto de blocos. Use \"Gerar com IA\" para obter um espaço de trabalho inicial.", 424 "subtitle": "Componha visualmente o seu projeto de blocos.", 425 "generateAi": "Gerar com IA", 426 "dialogTitle": "Gerar espaço de trabalho com IA", 427 "dialogHelp": "Descreva em linguagem simples o que este projeto de blocos deve fazer. O LLM do sistema irá gerar um espaço de trabalho inicial que pode editar.", 428 "placeholder": "ex: \"Classifica mensagens de utilizadores como faturação, técnico, ou vendas e reencaminha cada uma para o sub-projeto certo\"", 429 "warning": "Isto substitui o espaço de trabalho atual. Guarde os blocos existentes primeiro se precisar deles.", 430 "generating": "A gerar…", 431 "generate": "Gerar", 432 "workspaceSaved": "Espaço de trabalho guardado", 433 "workspaceGenerated": "Espaço de trabalho gerado — reveja e guarde quando estiver pronto" 434 }, 435 "sync": "Sincronização externa", 436 "syncEnabled": "Ativar sincronização agendada", 437 "syncSources": "Fontes de sincronização", 438 "addSource": "Adicionar fonte", 439 "syncNow": "Sincronizar agora", 440 "bulkIngest": "Ingestão em massa de ficheiros", 441 "uploadFiles": "Carregar ficheiros", 442 "uploading": "A carregar...", 443 "queuedFiles": "{{count}} ficheiro(s) em fila para ingestão.", 444 "ingestHelp": "PDF / DOCX / CSV / XLSX / TXT. Processado de forma assíncrona pelo cron bulk_ingest." 445 }, 446 "security": { 447 "guards": "Guardas de prompt", 448 "inputGuard": "Guarda de entrada", 449 "inputGuardHint": "Projeto de guarda que valida perguntas de utilizador antes do projeto principal executar", 450 "outputGuard": "Guarda de saída", 451 "guardMode": "Modo da guarda", 452 "guardModeBlock": "Bloquear", 453 "guardModeWarn": "Apenas avisar", 454 "rateLimit": "Limite de taxa (pedidos/min)", 455 "rateLimitHint": "Máximo de pedidos por minuto. Deixar vazio para ilimitado.", 456 "redactInferenceLogs": "Ocultar dados sensíveis nos registos de inferência", 457 "inviteUser": "Convidar utilizador", 458 "privacy": "Privacidade e acesso" 459 }, 460 "integrations": { 461 "telegram": "Telegram", 462 "slack": "Slack", 463 "whatsapp": "WhatsApp Business Cloud API", 464 "email": "Email (SMTP) — usado pela ferramenta send_email", 465 "sms": "SMS (Twilio) — usado pela ferramenta send_sms", 466 "webhooks": "Webhooks de eventos de saída", 467 "telegramToken": "Token do bot Telegram", 468 "telegramTokenHint": "Cole o token de @BotFather para ligar este projeto ao Telegram", 469 "telegramDefaultChatId": "ID do chat Telegram predefinido", 470 "telegramAllowedChatIds": "IDs de chat Telegram permitidos (entrada)", 471 "slackBotToken": "Token de bot Slack", 472 "slackAppToken": "Token de aplicação Slack", 473 "webhookUrl": "URL de webhook", 474 "webhookUrlHelp": "Configure este URL no Meta Business Suite → WhatsApp → Configuração → Webhooks.", 475 "phoneNumberId": "ID do número de telefone", 476 "accessToken": "Token de acesso", 477 "appSecret": "Segredo da aplicação", 478 "verifyToken": "Token de verificação", 479 "defaultRecipient": "Destinatário predefinido", 480 "allowedPhoneNumbers": "Números de telefone permitidos", 481 "testConnection": "Testar ligação", 482 "testing": "A testar…", 483 "smtpHost": "Servidor SMTP", 484 "smtpPort": "Porta SMTP", 485 "smtpUsername": "Utilizador SMTP", 486 "smtpPassword": "Palavra-passe SMTP", 487 "fromAddress": "Endereço de remetente", 488 "twilioSid": "Twilio Account SID", 489 "twilioToken": "Twilio Auth Token", 490 "twilioFrom": "Número remetente (E.164)", 491 "genericWebhookUrl": "URL de webhook", 492 "signingSecret": "Segredo de assinatura", 493 "subscribedEvents": "Eventos subscritos (CSV)", 494 "sendTest": "Enviar evento de teste" 495 }, 496 "tools": { 497 "builtinTools": "Ferramentas incorporadas", 498 "mcpServers": "Servidores MCP", 499 "addMcp": "Adicionar servidor MCP", 500 "mcpHost": "URL ou comando", 501 "mcpArguments": "Argumentos", 502 "mcpEnvVars": "Variáveis de ambiente", 503 "mcpHeaders": "Cabeçalhos", 504 "mcpCheck": "Verificar", 505 "mcpProbing": "A sondar...", 506 "customTools": "Ferramentas criadas pelo agente", 507 "toolEnabled": "Ativada", 508 "toolDeleteConfirm": "Eliminar esta ferramenta?", 509 "selectTools": "Selecionar ferramentas" 510 }, 511 "secrets": { 512 "title": "Segredos do projeto", 513 "subtitle": "Credenciais encriptadas que o Navegador de Agente pode usar sem as expor ao LLM", 514 "add": "Adicionar segredo", 515 "name": "Nome", 516 "value": "Valor", 517 "description": "Descrição", 518 "created": "Criado" 519 }, 520 "mobile": { 521 "title": "Integração móvel", 522 "subtitle": "Emparelhe clientes Android/iOS com este projeto através de código QR", 523 "intro": "Leia o código QR com a aplicação móvel RESTai (Android hoje, mais plataformas em breve) para ter uma conversa só de leitura com este projeto. A aplicação usa apenas o modo conversa (streaming). Desative ou regenere para revogar todos os telemóveis emparelhados de uma vez.", 524 "enable": "Ativar integração móvel", 525 "disable": "Desativar", 526 "regenerate": "Regenerar chave", 527 "regenerating": "A regenerar…", 528 "copyPayload": "Copiar payload bruto (JSON)", 529 "keyChip": "chave {{prefix}}…", 530 "hint": "Mostre este QR aos telemóveis que quiser — todos partilham a mesma chave de leitura. Clique em <1>Regenerar chave</1> para invalidar todos os telemóveis emparelhados de uma só vez.", 531 "offMessage": "A integração móvel está desligada. Não existe chave de API para aplicações móveis neste projeto.", 532 "qrHint": "Leia este código QR com a aplicação móvel RESTai." 533 }, 534 "routines": { 535 "title": "Rotinas", 536 "subtitle": "Mensagens agendadas que disparam automaticamente neste projeto", 537 "new": "Nova rotina", 538 "name": "Nome", 539 "message": "Mensagem", 540 "schedule": "Agendamento", 541 "fireNow": "Disparar agora", 542 "history": "Histórico" 543 }, 544 "analytics": { 545 "title": "Análise de conversas", 546 "conversations": "Conversas", 547 "messages": "Mensagens", 548 "avgMsgsPerConv": "Msgs/conv. médias", 549 "avgLatency": "Latência média", 550 "dailyActivity": "Atividade diária", 551 "peakHours": "Horas de pico", 552 "topUsers": "Utilizadores principais", 553 "outcomeBreakdown": "Resultados", 554 "latencyDistribution": "Distribuição de latência", 555 "llmUsage": "Utilização de LLM", 556 "messagesLabel": "Mensagens", 557 "conversationsLabel": "Conversas", 558 "requests": "Pedidos", 559 "msgs": "Msgs", 560 "tokens": "Tokens" 561 } 562 } 563 }, 564 "chat": { 565 "placeholder": "Escreva uma mensagem... (Shift+Enter para nova linha)", 566 "send": "Enviar", 567 "stop": "Parar geração", 568 "clear": "Limpar conversa", 569 "attachImage": "Anexar imagem", 570 "attachFiles": "Anexar ficheiros — as imagens vão para o modelo visual, o resto é colocado em /home/user/uploads/ para a ferramenta de terminal", 571 "thinking": "A pensar...", 572 "stoppedSuffix": "(parado)", 573 "getStarted": "Envie uma mensagem para começar.", 574 "guardHit": "Esta pergunta acionou a guarda de prompt.", 575 "ragNoSources": "Nenhuma fonte encontrada. Tente diminuir o limiar de pontuação.", 576 "error": { 577 "sessionExpired": "A sua sessão expirou. Inicie sessão novamente.", 578 "budgetExhausted": "Orçamento do projeto esgotado. Contacte um administrador para recarregar.", 579 "forbidden": "Não tem permissão para usar este projeto.", 580 "notFound": "Projeto não encontrado ou eliminado.", 581 "tooLarge": "A sua mensagem ou anexo é demasiado grande.", 582 "invalid": "O pedido não corresponde ao formato esperado pelo projeto.", 583 "invalidDetail": "Pedido inválido: {{detail}}", 584 "rateLimit": "Limite de pedidos excedido — aguarde um momento e tente novamente.", 585 "quotaReached": "Quota da chave de API atingida. {{detail}}", 586 "internal": "O projeto encontrou um erro. Consulte os registos do servidor ou tente novamente.", 587 "overloaded": "O serviço está temporariamente sobrecarregado. Tente novamente num momento.", 588 "timeout": "O pedido expirou. O LLM demorou demasiado a responder.", 589 "default": "Erro: {{detail}}", 590 "generic": "Erro: o pedido falhou. Verifique a ligação e tente novamente." 591 } 592 }, 593 "users": { 594 "title": "Utilizadores", 595 "subtitle": "Utilizadores da plataforma, funções e acesso a projetos", 596 "new": "Novo utilizador", 597 "emptyTitle": "Ainda não há utilizadores", 598 "emptyMessage": "Os utilizadores da plataforma aparecem aqui. Adicione um primeiro administrador ou membro para começar.", 599 "roleFilter": "Função", 600 "accessFilter": "Acesso", 601 "roleAdmin": "Administrador", 602 "roleUser": "Utilizador", 603 "accessReadOnly": "Só leitura", 604 "accessReadWrite": "Leitura/Escrita", 605 "bulkDelete": "Eliminar", 606 "bulkDeleteConfirm": "Eliminar {{count}} utilizador(es)?\n\n{{names}}", 607 "bulkDeleted": "{{count}} utilizador(es) eliminado(s)", 608 "bulkFailed": "Falha ao eliminar {{count}} utilizador(es)", 609 "noUsers": "Ainda não há utilizadores.", 610 "fields": { 611 "username": "Utilizador", 612 "password": "Palavra-passe", 613 "confirmPassword": "Confirmar palavra-passe", 614 "isAdmin": "Administrador", 615 "isRestricted": "Acesso só de leitura", 616 "isPrivate": "Apenas IA local" 617 }, 618 "tabs": { 619 "basic": "Informação básica", 620 "password": "Palavra-passe", 621 "twoFactor": "Autenticação em dois passos", 622 "projects": "Projetos", 623 "teams": "Equipas", 624 "apiKeys": "Chaves de API", 625 "activity": "Atividade", 626 "delete": "Eliminar conta" 627 }, 628 "showMore": "Mostrar mais", 629 "basic": { 630 "title": "Informação básica", 631 "projects": "Projetos", 632 "roleAdmin": "Admin", 633 "roleRegular": "Regular", 634 "authSso": "SSO", 635 "authLocal": "Local", 636 "impersonate": "Personificar", 637 "restricted": "Restrito", 638 "restrictedHelp": "Os utilizadores restritos só podem conversar com projetos existentes. Não podem criar, editar ou eliminar projetos, importar dados ou utilizar endpoints de acesso direto.", 639 "language": "Idioma", 640 "languageHelp": "Idioma da interface. Aplicado depois de guardar alterações.", 641 "saveChanges": "Guardar alterações" 642 }, 643 "password": { 644 "title": "Palavra-passe", 645 "newPassword": "Nova palavra-passe", 646 "confirmPassword": "Confirmar palavra-passe", 647 "twoFactorCode": "Código 2FA", 648 "twoFactorAlert": "A autenticação 2FA está ativa. Introduza um código da sua aplicação autenticadora para confirmar a alteração de palavra-passe.", 649 "recommendations": "Recomendações para a palavra-passe:", 650 "recMin": "8 caracteres - quantos mais, melhor", 651 "recLower": "Pelo menos uma letra minúscula", 652 "recUpper": "Pelo menos uma letra maiúscula", 653 "recSymbol": "Pelo menos um número, símbolo ou espaço em branco", 654 "saveChanges": "Guardar alterações", 655 "mismatch": "As palavras-passe não coincidem", 656 "twoFactorRequired": "O código 2FA é obrigatório para alterar a palavra-passe" 657 }, 658 "twoFactor": { 659 "title": "Autenticação em dois passos", 660 "description": "Adicione uma camada adicional de segurança utilizando uma aplicação TOTP (Google Authenticator, Authy, etc.).", 661 "enforced": "A 2FA é obrigatória pelo administrador para todos os utilizadores locais.", 662 "enabledChip": "2FA ativa", 663 "disabledChip": "2FA desativada", 664 "setup": "Configurar 2FA", 665 "step1": "1. Leia este código QR com a sua aplicação autenticadora", 666 "manualKey": "Ou introduza esta chave manualmente:", 667 "step2": "2. Guarde os seus códigos de recuperação", 668 "recoveryAlert": "Guarde estes códigos de forma segura. Cada código só pode ser usado uma vez para iniciar sessão caso perca o autenticador.", 669 "step3": "3. Confirme com um código e a sua palavra-passe", 670 "code": "Código de 6 dígitos", 671 "password": "Palavra-passe", 672 "enable": "Ativar 2FA", 673 "cannotDisable": "Não é possível desativar (obrigatório)", 674 "disable": "Desativar 2FA", 675 "confirmPassword": "Confirmar palavra-passe", 676 "confirmDisable": "Confirmar desativação", 677 "setupFailed": "Falha ao configurar 2FA", 678 "enabledSuccess": "2FA ativada com sucesso", 679 "disabledSuccess": "2FA desativada" 680 }, 681 "deleteAccount": { 682 "title": "Eliminar a sua conta", 683 "description": "Quando elimina a conta, perde o acesso a tudo,", 684 "confirm": "Confirmo que quero eliminar a minha conta.", 685 "delete": "Eliminar" 686 }, 687 "userActivity": { 688 "title": "Atividade (últimos 30 dias)", 689 "requests": "Pedidos", 690 "tokens": "Tokens", 691 "cost": "Custo", 692 "avgLatency": "Latência média", 693 "conversations": "Conversas", 694 "dailyActivity": "Atividade diária", 695 "peakHours": "Horas de pico", 696 "topProjects": "Principais projetos", 697 "project": "Projeto" 698 }, 699 "userProjects": { 700 "title": "Preferências gerais", 701 "project": "Projeto", 702 "associate": "Associar", 703 "dissociate": "Desassociar" 704 }, 705 "userTeams": { 706 "title": "Equipas", 707 "noTeams": "Este utilizador não é membro de nenhuma equipa.", 708 "adminOf": "Administrador de", 709 "noAdmin": "Não é administrador de nenhuma equipa.", 710 "memberOf": "Membro de", 711 "noMember": "Sem participações adicionais em equipas.", 712 "admin": "Admin", 713 "member": "Membro" 714 }, 715 "newPage": { 716 "title": "Criar um novo utilizador", 717 "subtitle": "Adicione um utilizador à plataforma. Defina as credenciais e o nível de permissão.", 718 "account": "Conta", 719 "permissions": "Permissões", 720 "usernamePlaceholder": "ex. alice", 721 "adminHelp": "Acesso total a todos os projetos, utilizadores, equipas e definições da plataforma.", 722 "restrictedHelp": "O utilizador só pode conversar com projetos existentes. Sem criação, edição, ingestão ou acesso direto.", 723 "privateHelp": "Restringir este utilizador a LLMs e embeddings no local — sem chamadas a fornecedores externos.", 724 "create": "Criar utilizador", 725 "creating": "A criar…", 726 "passwordsMismatch": "As palavras-passe não coincidem", 727 "passwordMin": "A palavra-passe deve ter pelo menos 8 caracteres", 728 "usernameRequired": "O utilizador é obrigatório", 729 "passwordRequired": "A palavra-passe é obrigatória", 730 "browserTitle": "Novo utilizador" 731 }, 732 "pwReq": { 733 "chars": "Pelo menos 8 caracteres", 734 "lower": "Uma letra minúscula", 735 "upper": "Uma letra maiúscula", 736 "digit": "Um número ou símbolo", 737 "tooWeak": "Muito fraca", 738 "weak": "Fraca", 739 "fair": "Razoável", 740 "good": "Boa", 741 "strong": "Forte" 742 }, 743 "apiKeys": { 744 "title": "Chaves de API", 745 "new": "Nova chave", 746 "createNew": "Criar nova chave", 747 "description": "Descrição", 748 "descriptionOptional": "Descrição (opcional)", 749 "keyPrefix": "Prefixo da chave", 750 "scope": "Âmbito", 751 "monthlyQuota": "Quota mensal", 752 "created": "Criada", 753 "readOnly": "Só leitura", 754 "allowedProjects": "{{count}} projeto(s)", 755 "allProjects": "Todos os projetos", 756 "unlimited": "Ilimitado", 757 "quotaTokens": "{{used}} / {{cap}} tokens", 758 "quotaResets": "reinicia {{date}}", 759 "editQuota": "Editar quota", 760 "quotaDialogTitle": "Quota mensal de tokens", 761 "quotaUsedThis": "Chave {{prefix}}... — usou {{used}} tokens neste período.", 762 "quotaInput": "Quota de tokens (mensal)", 763 "quotaInputHelper": "Deixe em branco ou coloque 0 para ilimitado. O contador reinicia no dia 1 do próximo mês.", 764 "resetUsage": "Reiniciar utilização", 765 "noKeys": "Ainda não tem chaves de API", 766 "quotaSaved": "Quota atualizada.", 767 "usageReset": "Utilização reiniciada.", 768 "actions": "Ações", 769 "deleteConfirm": "Tem a certeza de que deseja eliminar esta chave de API?", 770 "createDialog": "Criar chave de API", 771 "restrictProjects": "Restringir a projetos (opcional)", 772 "restrictHelp": "Deixe em branco para acesso a todos os seus projetos", 773 "readOnlyCheckbox": "Só leitura (pode consultar mas não modificar projetos)", 774 "saveKeyTitle": "Guardar a sua chave de API", 775 "saveKeyWarn": "Esta é a única vez que a chave completa será mostrada. Copie-a agora.", 776 "projectLabel": "Projeto {{id}}", 777 "tokens": "tokens" 778 } 779 }, 780 "teams": { 781 "columns": { 782 "name": "Nome", 783 "description": "Descrição", 784 "users": "Utilizadores", 785 "projects": "Projetos" 786 }, 787 "actions": { 788 "view": "Ver", 789 "edit": "Editar", 790 "delete": "Eliminar" 791 }, 792 "deleteConfirm": "Eliminar a equipa \"{{name}}\"?", 793 "deleted": "Equipa eliminada", 794 "edit": { 795 "newTitle": "Nova equipa", 796 "editTitle": "Editar equipa", 797 "name": "Nome da equipa", 798 "description": "Descrição", 799 "budget": "Orçamento (-1 = ilimitado)", 800 "budgetHelp": "Defina para -1 para orçamento ilimitado", 801 "tabs": { 802 "users": "Utilizadores", 803 "projects": "Projetos", 804 "models": "Modelos", 805 "branding": "Marca" 806 }, 807 "members": "Membros da equipa", 808 "selectUsers": "Selecionar utilizadores", 809 "admins": "Administradores da equipa", 810 "selectAdmins": "Selecionar administradores", 811 "adminsHelp": "Os administradores da equipa podem gerir as definições e os membros", 812 "invite": "Convidar utilizador", 813 "inviteHelp": "Envie um convite a um utilizador pelo nome. Poderá aceitar ou recusar.", 814 "username": "Utilizador", 815 "sendInvite": "Enviar convite", 816 "projectsHeading": "Projetos da equipa", 817 "selectProjects": "Selecionar projetos", 818 "projectsHelp": "Os projetos atribuídos a esta equipa estarão acessíveis a todos os membros", 819 "llms": "LLMs da equipa", 820 "selectLlms": "Selecionar LLMs", 821 "embeddings": "Modelos de embedding da equipa", 822 "selectEmbeddings": "Selecionar embeddings", 823 "imageGen": "Geradores de imagem", 824 "selectImageGen": "Selecionar geradores de imagem", 825 "noImageGen": "Não há geradores de imagem disponíveis. O GPU pode não estar ativado nesta instância.", 826 "audioGen": "Geradores de áudio", 827 "selectAudioGen": "Selecionar geradores de áudio", 828 "noAudioGen": "Não há geradores de áudio disponíveis. O GPU pode não estar ativado nesta instância.", 829 "branding": "Marca personalizada", 830 "brandingHelp": "Personalize o aspeto da plataforma para os membros da equipa. Deixe os campos vazios para usar os valores por omissão.", 831 "appName": "Nome da aplicação", 832 "appNameHelp": "Substitui o nome da plataforma na barra lateral", 833 "logoUrl": "URL do logótipo", 834 "logoUrlHelp": "URL ou data:image/... para o logótipo da barra lateral", 835 "primaryColor": "Cor primária", 836 "primaryColorHelp": "Cor hexadecimal para o cabeçalho e elementos principais", 837 "secondaryColor": "Cor secundária", 838 "secondaryColorHelp": "Cor hexadecimal para acentos e elementos secundários", 839 "welcomeMessage": "Mensagem de boas-vindas", 840 "welcomeHelp": "Apresentada na página inicial para os membros da equipa", 841 "preview": "Pré-visualização", 842 "createTeam": "Criar equipa", 843 "saveChanges": "Guardar alterações", 844 "created": "Equipa criada com sucesso", 845 "updated": "Equipa atualizada com sucesso" 846 }, 847 "view": { 848 "loading": "A carregar detalhes da equipa…", 849 "notFoundTitle": "Não encontrado", 850 "notFound": "Equipa não encontrada ou sem permissão para ver.", 851 "noDescription": "Sem descrição", 852 "spent": "Gasto (este mês):", 853 "left": "restante", 854 "unlimited": "Orçamento ilimitado", 855 "edit": "Editar equipa", 856 "tabs": { 857 "transactions": "Transações" 858 }, 859 "noMembers": "Sem membros", 860 "noAdmins": "Sem administradores", 861 "noProjects": "Sem projetos atribuídos a esta equipa", 862 "noLlms": "Sem LLMs atribuídos a esta equipa", 863 "noEmbeddings": "Sem modelos de embedding atribuídos a esta equipa", 864 "noImageGen": "Sem geradores de imagem atribuídos a esta equipa", 865 "noAudioGen": "Sem geradores de áudio atribuídos a esta equipa", 866 "removeUser": "Remover utilizador", 867 "removeAdmin": "Remover privilégios de administrador", 868 "removeProject": "Remover projeto", 869 "removeLlm": "Remover LLM", 870 "removeEmbedding": "Remover embedding", 871 "removeImageGen": "Remover gerador de imagem", 872 "removeAudioGen": "Remover gerador de áudio", 873 "you": "(Você)", 874 "transactions": "Transações", 875 "tx": { 876 "date": "Data", 877 "project": "Projeto", 878 "user": "Utilizador", 879 "llm": "LLM", 880 "inTokens": "Tokens entrada", 881 "outTokens": "Tokens saída", 882 "cost": "Custo", 883 "noTransactions": "Sem transações" 884 }, 885 "confirmRemove": "Tem a certeza de que quer remover {{name}} desta equipa?", 886 "confirmRemoveAdmin": "Tem a certeza de que quer remover privilégios de administrador de {{name}}?", 887 "confirmRemoveProject": "Tem a certeza de que quer remover este projeto da equipa?", 888 "removed": "{{name}} removido da equipa", 889 "adminRemoved": "Privilégios de administrador removidos de {{name}}", 890 "projectRemoved": "Projeto removido da equipa" 891 }, 892 "title": "Equipas", 893 "subtitle": "Grupos de utilizadores com acesso partilhado a LLMs, embeddings e projetos", 894 "new": "Nova equipa", 895 "emptyTitle": "Ainda não há equipas", 896 "emptyMessage": "As equipas delimitam o acesso a LLMs, orçamentos e membros de projetos. Crie uma para começar a organizar utilizadores.", 897 "role": { 898 "label": "A sua função", 899 "platformAdmin": "Administrador da plataforma", 900 "teamAdmin": "Administrador da equipa", 901 "member": "Membro" 902 }, 903 "noTeams": "Ainda não há equipas." 904 }, 905 "llms": { 906 "title": "LLMs", 907 "subtitle": "Fornecedores de modelos de linguagem disponíveis para as suas equipas", 908 "new": "Adicionar LLM", 909 "emptyTitle": "Nenhum LLM configurado", 910 "emptyMessage": "Registe pelo menos um LLM (OpenAI, Anthropic, Ollama, etc.) antes que as suas equipas possam criar projetos de chat ou RAG.", 911 "columns": { 912 "name": "Nome", 913 "class": "Classe", 914 "context": "Contexto", 915 "privacy": "Privacidade" 916 }, 917 "tooltip": { 918 "class": "Classe", 919 "privacy": "Privacidade", 920 "context": "Contexto", 921 "cost": "Custo", 922 "costIn": "entrada", 923 "costOut": "saída", 924 "tokens": "tokens" 925 }, 926 "noLlms": "Nenhum LLM configurado.", 927 "actions": { 928 "view": "Ver", 929 "edit": "Editar", 930 "delete": "Eliminar" 931 }, 932 "edit": { 933 "title": "Editar LLM - {{name}}", 934 "name": "Nome", 935 "className": "Nome da classe", 936 "options": "Opções", 937 "listModels": "Listar modelos", 938 "loading": "A carregar…", 939 "modelsAvailable_one": "{{count}} modelo disponível — clique para selecionar", 940 "modelsAvailable_other": "{{count}} modelos disponíveis — clique para selecionar", 941 "modelsNone": "Sem modelos. Verifique o URL base da API e a chave nas opções abaixo.", 942 "privacy": "Privacidade", 943 "description": "Descrição", 944 "inputCost": "Custo de entrada", 945 "outputCost": "Custo de saída", 946 "contextWindow": "Janela de contexto", 947 "contextHelp": "Número máximo de tokens que o LLM consegue processar", 948 "saveChanges": "Guardar alterações" 949 }, 950 "info": { 951 "class": "Classe", 952 "privacy": "Privacidade", 953 "options": "Opções", 954 "description": "Descrição", 955 "inputCost": "Custo de entrada (por milhão de tokens)", 956 "outputCost": "Custo de saída (por milhão de tokens)", 957 "contextWindow": "Janela de contexto", 958 "tokens": "tokens", 959 "confirmDelete": "Tem a certeza de que quer eliminar o LLM {{name}}?", 960 "deleteConfirm": "Eliminar LLM \"{{name}}\"?", 961 "deleted": "{{name}} eliminado" 962 }, 963 "chooser": { 964 "title": "Adicionar um novo LLM", 965 "subtitle": "Ligue um modelo de linguagem à plataforma. Escolha o caminho mais rápido consoante o alojamento.", 966 "fastest": "Mais rápido", 967 "ollama": "Importar do Ollama", 968 "ollamaDesc": "Ligue-se a uma instância local ou remota do Ollama e importe os modelos instalados num clique.", 969 "manual": "Adicionar manualmente", 970 "manualDesc": "Configure qualquer fornecedor suportado — OpenAI, Anthropic, Azure, Bedrock, Gemini, etc.", 971 "featAutoCtx": "Deteta automaticamente a janela de contexto", 972 "featVision": "Deteta capacidade de visão", 973 "featZeroConfig": "Zero configuração manual", 974 "featBulk": "Importação em massa suportada", 975 "feat13": "Mais de 13 integrações de fornecedores", 976 "featCompat": "Endpoints compatíveis com OpenAI", 977 "featFineGrain": "Opções detalhadas por modelo", 978 "featCredentials": "Controlo total sobre credenciais" 979 }, 980 "interactive": { 981 "title": "Escolha um fornecedor", 982 "subtitle": "Escolha o fornecedor que aloja o seu modelo. Configuramos automaticamente os campos certos.", 983 "searchPlaceholder": "Procurar fornecedores…", 984 "noProviders": "Nenhum fornecedor corresponde à pesquisa.", 985 "back": "Voltar aos fornecedores", 986 "newX": "Novo LLM {{provider}}", 987 "general": "Geral", 988 "name": "Nome", 989 "namePlaceholder": "Nome único para este LLM", 990 "description": "Descrição", 991 "descPlaceholder": "Descrição curta opcional", 992 "contextWindow": "Janela de contexto", 993 "maxTokens": "Tokens máximos", 994 "providerOptions": "Opções de {{provider}}", 995 "rawOptions": "Opções em bruto (JSON)", 996 "rawHelp": "Atualizadas automaticamente a partir dos campos acima. Clique nos valores para editar, ou use +/- para adicionar/remover opções personalizadas.", 997 "createLlm": "Criar LLM", 998 "nameRequired": "O nome é obrigatório" 999 }, 1000 "newBreadcrumb": "Novo LLM", 1001 "manualCrumb": "Manual" 1002 }, 1003 "embeddings": { 1004 "title": "Embeddings", 1005 "subtitle": "Modelos de embedding usados por projetos RAG", 1006 "new": "Adicionar Embedding", 1007 "emptyTitle": "Nenhum embedding configurado", 1008 "emptyMessage": "Registe um modelo de embedding para ativar projetos RAG. Variantes OpenAI, HuggingFace e Ollama funcionam.", 1009 "columns": { 1010 "name": "Nome", 1011 "class": "Classe", 1012 "privacy": "Privacidade", 1013 "dimensions": "Dimensões" 1014 }, 1015 "tooltip": { 1016 "class": "Classe", 1017 "privacy": "Privacidade", 1018 "dimensions": "Dimensões" 1019 }, 1020 "noEmbeddings": "Nenhum embedding configurado.", 1021 "actions": { 1022 "view": "Ver", 1023 "edit": "Editar", 1024 "delete": "Eliminar" 1025 }, 1026 "edit": { 1027 "title": "Editar embedding - {{name}}", 1028 "name": "Nome", 1029 "className": "Nome da classe", 1030 "options": "Opções", 1031 "privacy": "Privacidade", 1032 "description": "Descrição", 1033 "dimension": "Dimensão", 1034 "saveChanges": "Guardar alterações" 1035 }, 1036 "info": { 1037 "class": "Classe", 1038 "privacy": "Privacidade", 1039 "options": "Opções", 1040 "description": "Descrição", 1041 "dimension": "Dimensão", 1042 "confirmDelete": "Tem a certeza de que quer eliminar o embedding {{name}}?", 1043 "deleteConfirm": "Eliminar embedding \"{{name}}\"?", 1044 "deleted": "{{name}} eliminado" 1045 }, 1046 "chooser": { 1047 "title": "Adicionar um novo embedding", 1048 "subtitle": "Ligue um modelo de embedding para alimentar a recuperação de conhecimento RAG. Escolha o caminho mais rápido consoante o alojamento.", 1049 "fastest": "Mais rápido", 1050 "ollama": "Importar do Ollama", 1051 "ollamaDesc": "Ligue-se a uma instância local ou remota do Ollama e importe os modelos de embedding instalados num clique.", 1052 "manual": "Adicionar manualmente", 1053 "manualDesc": "Configure qualquer fornecedor de embedding suportado (HuggingFace, OpenAI, LangChain, Ollama, etc.).", 1054 "featAutoDim": "Deteta automaticamente a dimensão do embedding", 1055 "featCapability": "Deteta a capacidade do modelo", 1056 "featZeroConfig": "Zero configuração manual", 1057 "featBulk": "Importação em massa suportada", 1058 "featMulti": "Várias integrações de fornecedores", 1059 "featHf": "HuggingFace, OpenAI, LangChain", 1060 "featFineGrain": "Opções detalhadas por modelo", 1061 "featCredentials": "Controlo total sobre credenciais" 1062 }, 1063 "interactive": { 1064 "title": "Escolha um fornecedor", 1065 "subtitle": "Escolha o fornecedor que aloja o seu modelo de embedding. Configuramos automaticamente os campos certos.", 1066 "searchPlaceholder": "Procurar fornecedores…", 1067 "noProviders": "Nenhum fornecedor corresponde à pesquisa.", 1068 "back": "Voltar aos fornecedores", 1069 "newX": "Novo {{provider}}", 1070 "general": "Geral", 1071 "name": "Nome", 1072 "namePlaceholder": "Nome único para este embedding", 1073 "description": "Descrição", 1074 "descPlaceholder": "Descrição curta opcional", 1075 "dimension": "Dimensão", 1076 "vectorSize": "Tamanho do vetor", 1077 "providerOptions": "Opções de {{provider}}", 1078 "rawOptions": "Opções em bruto (JSON)", 1079 "rawHelp": "Atualizadas automaticamente a partir dos campos acima. Clique nos valores para editar, ou use +/- para adicionar/remover opções personalizadas.", 1080 "createEmbedding": "Criar embedding", 1081 "nameRequired": "O nome é obrigatório" 1082 }, 1083 "newBreadcrumb": "Novo embedding", 1084 "manualCrumb": "Manual", 1085 "newCardTitle": "Adicionar um novo embedding", 1086 "submit": "Submeter" 1087 }, 1088 "audit": { 1089 "title": "Registo de auditoria", 1090 "entries_one": "{{count}} entrada", 1091 "entries_other": "{{count}} entradas", 1092 "filterUser": "Utilizador", 1093 "filterAction": "Ação", 1094 "filterAll": "Todos", 1095 "exportCsv": "Exportar CSV", 1096 "noEntries": "Nenhuma entrada de auditoria encontrada", 1097 "page": "Página {{page}} de {{total}}", 1098 "columns": { 1099 "date": "Data", 1100 "user": "Utilizador", 1101 "action": "Ação", 1102 "resource": "Recurso", 1103 "status": "Estado" 1104 } 1105 }, 1106 "proxy": { 1107 "title": "Proxy IA", 1108 "breadcrumb": "Proxy IA", 1109 "info": "Informação do proxy", 1110 "host": "Host do proxy", 1111 "availableModels": "Modelos disponíveis ({{count}})", 1112 "noModels": "Sem modelos disponíveis", 1113 "apiKeys": "Chaves de API", 1114 "keys_one": "{{count}} chave", 1115 "keys_other": "{{count}} chaves", 1116 "newKey": "Nova chave", 1117 "noKeys": "Ainda sem chaves — clique em \"Nova chave\" para criar uma", 1118 "columns": { 1119 "name": "Nome", 1120 "key": "Chave", 1121 "models": "Modelos", 1122 "spend": "Gasto", 1123 "budget": "Orçamento", 1124 "duration": "Duração", 1125 "rpm": "RPM", 1126 "tpm": "TPM", 1127 "actions": "Ações" 1128 }, 1129 "deleteTip": "Eliminar", 1130 "cannotDeleteDefault": "Não é possível eliminar a chave por omissão", 1131 "deleteConfirm": "Eliminar a chave \"{{name}}\"?", 1132 "keyDeleted": "Chave eliminada", 1133 "usageExample": "Exemplo de utilização", 1134 "createTitle": "Criar nova chave de API", 1135 "copyReveal": "A sua nova chave foi criada. Copie-a agora — não será mostrada novamente.", 1136 "copyTip": "Copiar", 1137 "fieldName": "Nome", 1138 "fieldNameHelp": "Nome amigável para esta chave (ex. 'produção', 'equipa-dev')", 1139 "fieldModels": "Modelos", 1140 "fieldModelsHelp": "Modelos que esta chave pode invocar", 1141 "fieldMaxBudget": "Orçamento máximo (€)", 1142 "fieldMaxBudgetHelp": "Limite total de gasto", 1143 "fieldBudgetReset": "Reposição de orçamento", 1144 "fieldBudgetResetHelp": "Quando o orçamento é reposto", 1145 "fieldRpm": "Limite RPM", 1146 "fieldRpmHelp": "Pedidos por minuto", 1147 "fieldTpm": "Limite TPM", 1148 "fieldTpmHelp": "Tokens por minuto", 1149 "durations": { 1150 "none": "—", 1151 "hourly": "Horário", 1152 "daily": "Diário", 1153 "weekly": "Semanal", 1154 "monthly": "Mensal" 1155 }, 1156 "nameRequired": "O nome é obrigatório", 1157 "modelRequired": "Selecione pelo menos um modelo", 1158 "created": "Chave criada com sucesso", 1159 "creating": "A criar…", 1160 "createKey": "Criar chave", 1161 "done": "Concluído" 1162 }, 1163 "direct": { 1164 "title": "Acesso direto", 1165 "breadcrumb": "Acesso direto", 1166 "subtitle": "Aceda a LLMs, embeddings, geradores de imagem e transcrição de áudio diretamente via endpoints de API compatíveis com OpenAI. Use a sua chave de API para autenticação (Bearer token ou Basic auth).", 1167 "baseUrlLine": "URL base: <strong>{{url}}</strong> — faça a gestão das suas chaves API no perfil de utilizador.", 1168 "chat": "Chat Completions", 1169 "chatDesc": "Endpoint de chat completions compatível com OpenAI. Suporta respostas em streaming (stream: true) e não-streaming. Funciona com qualquer LLM ao qual a sua equipa tenha acesso.", 1170 "embeddings": "Embeddings", 1171 "embeddingsDesc": "Endpoint de embeddings compatível com OpenAI. Gera embeddings vetoriais para entradas de texto. Suporta entrada única ou em lote. Funciona com qualquer modelo de embedding ao qual a sua equipa tenha acesso.", 1172 "images": "Geração de imagem", 1173 "imagesDesc": "Endpoint de geração de imagem compatível com OpenAI. Suporta geradores locais baseados em GPU (ex. Stable Diffusion, Flux) e fornecedores externos (DALL-E, Imagen). Devolve imagens em base64 ou data URLs.", 1174 "audio": "Transcrição de áudio", 1175 "audioDesc": "Endpoint de transcrição de áudio compatível com OpenAI. Carregue um ficheiro de áudio (mp3, wav, etc.) e receba o texto transcrito. Ficheiros não-mp3 são convertidos automaticamente com ffmpeg. Suporta especificação de idioma para melhor precisão.", 1176 "availableModels": "Modelos disponíveis:", 1177 "availableGenerators": "Geradores disponíveis:", 1178 "noLlms": "Sem LLMs disponíveis. Peça ao administrador da equipa para conceder acesso a LLMs.", 1179 "noEmbeddings": "Sem modelos de embedding disponíveis. Peça ao administrador da equipa para conceder acesso a modelos de embedding.", 1180 "noImage": "Sem geradores de imagem disponíveis. Peça ao administrador da equipa para conceder acesso, ou o GPU pode não estar ativado nesta instância.", 1181 "noAudio": "Sem geradores de áudio disponíveis. Peça ao administrador da equipa para conceder acesso, ou o GPU pode não estar ativado nesta instância.", 1182 "pythonSdk": "Python (SDK openai):", 1183 "streamingExample": "Exemplo com streaming:", 1184 "batchExample": "Exemplo em lote:", 1185 "curl": "curl:", 1186 "embeddingChip": "{{name}} (dim: {{dim}})" 1187 }, 1188 "classifier": { 1189 "title": "Classificador", 1190 "breadcrumb": "Classificador", 1191 "playgroundTitle": "Playground do classificador", 1192 "model": "Modelo", 1193 "modelHelp": "Modelo de classificação zero-shot", 1194 "textLabel": "Texto a classificar", 1195 "textPlaceholder": "Introduza o texto que pretende classificar…", 1196 "labels": "Rótulos", 1197 "labelsPlaceholder": "faturação, técnico, vendas, geral", 1198 "labelsHelp": "Lista de rótulos candidatos separados por vírgulas", 1199 "classify": "Classificar", 1200 "classifying": "A classificar…", 1201 "enterBoth": "Introduza texto e pelo menos um rótulo", 1202 "results": "Resultados", 1203 "input": "Entrada", 1204 "inputHint": "Introduza texto e rótulos, depois clique em Classificar", 1205 "modelLabel": "Modelo: {{model}}", 1206 "bestMatch": "Melhor correspondência: <strong>{{label}}</strong> ({{pct}}%)" 1207 }, 1208 "permissions": { 1209 "title": "Permissões", 1210 "failed": "Falha ao carregar a matriz de permissões", 1211 "stats": { 1212 "users": "Utilizadores", 1213 "projects": "Projetos", 1214 "assignments": "Atribuições diretas", 1215 "admins": "Administradores" 1216 }, 1217 "team": "Equipa", 1218 "allTeams": "Todas as equipas", 1219 "noTeam": "(Sem equipa)", 1220 "teamFallback": "Equipa #{{id}}", 1221 "searchPlaceholder": "Procurar utilizadores ou projetos…", 1222 "noMatches": "Sem correspondências", 1223 "header": "UTILIZADOR \\ PROJETO", 1224 "platformAdminTip": "Administrador da plataforma (acesso universal)", 1225 "restrictedTip": "Restrito (só leitura)", 1226 "legendDirect": "Acesso direto", 1227 "legendAdmin": "Admin (acesso universal)", 1228 "legendRestricted": "Utilizador restrito", 1229 "adminAccess": "{{user}} → {{project}} (admin)", 1230 "directAccess": "{{user}} → {{project}}" 1231 }, 1232 "cron": { 1233 "title": "Registos de Cron", 1234 "runNow": "Executar agora", 1235 "running": "A executar…", 1236 "purge": "Limpar", 1237 "purgeConfirm": "Eliminar todas as entradas de registos de cron?", 1238 "filterJob": "Tarefa", 1239 "filterStatus": "Estado", 1240 "noEntries": "Nenhuma entrada de cron encontrada", 1241 "entries_one": "{{count}} entrada", 1242 "entries_other": "{{count}} entradas", 1243 "exportCsv": "Exportar CSV", 1244 "filterAll": "Todos", 1245 "filterSuccess": "Sucesso", 1246 "filterError": "Erro", 1247 "filterWarning": "Aviso", 1248 "details": "Detalhes", 1249 "noOutput": "Sem saída", 1250 "page": "Página {{page}} de {{total}}", 1251 "columns": { 1252 "date": "Data", 1253 "job": "Tarefa", 1254 "status": "Estado", 1255 "items": "Itens", 1256 "itemsLong": "Itens", 1257 "duration": "Duração", 1258 "durationMs": "Duração (ms)", 1259 "message": "Mensagem" 1260 } 1261 }, 1262 "speechGen": { 1263 "title": "Speech-to-Text", 1264 "subtitle": "Workers locais Whisper / WhisperX + fornecedores externos de transcrição (OpenAI, Google, Deepgram, AssemblyAI)", 1265 "breadcrumb": "Speech-to-Text", 1266 "playground": "Playground", 1267 "new": "Novo modelo", 1268 "empty": "Nenhum modelo de speech-to-text configurado.", 1269 "columns": { 1270 "name": "Nome", 1271 "provider": "Fornecedor", 1272 "model": "Modelo", 1273 "privacy": "Privacidade", 1274 "enabled": "Ativado" 1275 }, 1276 "actions": { 1277 "edit": "Editar", 1278 "delete": "Eliminar", 1279 "deleteLocal": "Modelos locais não podem ser eliminados" 1280 }, 1281 "dialog": { 1282 "newTitle": "Novo modelo Speech-to-Text", 1283 "editTitle": "Editar {{name}}", 1284 "localInfo": "Modelo local de restai/audio/workers/{{name}}.py. Pode ativar/desativar, definir privacidade + descrição, e atribuir a equipas. Fornecedor + opções vêm do módulo do worker.", 1285 "name": "Nome", 1286 "nameHelp": "Identificador URL-safe — letras, números, pontos, hífenes, sublinhados", 1287 "provider": "Fornecedor", 1288 "privacy": "Privacidade", 1289 "privacyPublic": "Público (na nuvem)", 1290 "privacyPrivate": "Privado (auto-alojado / local)", 1291 "description": "Descrição", 1292 "enabled": "Ativado", 1293 "providerOptions": "Opções do fornecedor", 1294 "model": "Modelo", 1295 "modelOptional": "Modelo (opcional)", 1296 "apiKey": "Chave API", 1297 "apiKeyHelp": "Deixe ******** para manter a chave existente", 1298 "baseUrl": "URL base (opcional, para fornecedores compatíveis com OpenAI)", 1299 "baseUrlHelp": "Deixe vazio para OpenAI. Defina para Groq / Together / vLLM / auto-alojado.", 1300 "languageCode": "Código de idioma (padrão)", 1301 "defaultLanguage": "Idioma padrão", 1302 "speechModel": "Modelo de fala", 1303 "speechBest": "best (maior precisão)", 1304 "speechNano": "nano (mais rápido)", 1305 "saving": "A guardar…", 1306 "save": "Guardar", 1307 "create": "Criar", 1308 "saved": "{{name}} guardado", 1309 "created": "{{name}} criado", 1310 "deleteConfirm": "Eliminar modelo speech-to-text \"{{name}}\"?", 1311 "deleted": "{{name}} eliminado", 1312 "localCannotDelete": "Modelos locais não podem ser eliminados. Desative em vez disso.", 1313 "enabledToast": "{{name}} ativado", 1314 "disabledToast": "{{name}} desativado" 1315 } 1316 }, 1317 "tools": { 1318 "title": "Ferramentas do agente", 1319 "subtitle": "Ferramentas integradas disponíveis para os projetos de agente usarem durante conversas.", 1320 "breadcrumb": "Ferramentas", 1321 "toolCount": "{{count}} ferramentas", 1322 "info": "Este é o catálogo global de ferramentas integradas incluídas no RESTai. Cada projeto de agente pode estender esta lista com as suas próprias ferramentas — seja ligando-se a servidores MCP (configurados na página de edição do projeto) ou definindo ferramentas criadas por agentes em tempo real através do builtin create_tool. Ferramentas específicas do projeto aparecem apenas no chat desse projeto, não aqui.", 1323 "searchPlaceholder": "Procurar ferramentas…", 1324 "noMatch": "Nenhuma ferramenta corresponde à pesquisa.", 1325 "noTools": "Sem ferramentas disponíveis.", 1326 "requiresDocker": "Requer Docker", 1327 "categories": { 1328 "browser": { 1329 "title": "AUTOMAÇÃO DE NAVEGADOR", 1330 "subtitle": "Controla um contentor Chromium + Playwright por chat. O administrador tem de ativar o Navegador Agente nas Definições." 1331 }, 1332 "routines": { 1333 "title": "ROTINAS AGENDADAS", 1334 "subtitle": "Permite ao agente criar, listar e remover mensagens agendadas no próprio projeto." 1335 }, 1336 "agentControl": { 1337 "title": "CONTROLO DO AGENTE", 1338 "subtitle": "Terminal isolado e criação de ferramentas em runtime. Ambos requerem Docker." 1339 }, 1340 "communication": { 1341 "title": "COMUNICAÇÃO", 1342 "subtitle": "Envio de mensagens: email (SMTP), SMS (Twilio), Telegram, WhatsApp Cloud API." 1343 }, 1344 "web": { 1345 "title": "WEB E PESQUISA", 1346 "subtitle": "Obter URLs, pesquisar na web e consultar informação de domínios ou tópicos." 1347 }, 1348 "data": { 1349 "title": "DADOS E FICHEIROS", 1350 "subtitle": "Processar documentos carregados e gerar imagens a partir de prompts." 1351 }, 1352 "utility": { 1353 "title": "UTILITÁRIOS", 1354 "subtitle": "Auxiliares genéricos: matemática, hora, moderação, aleatoriedade, geolocalização." 1355 } 1356 }, 1357 "reqs": { 1358 "requiresDocker": "Requer Docker", 1359 "usesDocker": "Usa Docker", 1360 "usesBrowser": "Requer contentor de navegador", 1361 "adminOptIn": "Opt-in de admin", 1362 "needsSmtp": "Config. SMTP", 1363 "needsTwilio": "Config. Twilio", 1364 "needsTelegram": "Bot Telegram", 1365 "needsWhatsApp": "Config. WhatsApp", 1366 "perProject": "Por projeto" 1367 } 1368 }, 1369 "imageGen": { 1370 "title": "Geradores de imagem", 1371 "subtitle": "Workers locais + fornecedores externos (OpenAI, Google) — os administradores gerem credenciais por linha", 1372 "breadcrumb": "Geradores de imagem", 1373 "playground": "Playground", 1374 "new": "Novo gerador", 1375 "empty": "Nenhum gerador de imagem configurado.", 1376 "columns": { 1377 "name": "Nome", 1378 "provider": "Fornecedor", 1379 "model": "Modelo", 1380 "privacy": "Privacidade", 1381 "enabled": "Ativado" 1382 }, 1383 "actions": { 1384 "edit": "Editar", 1385 "delete": "Eliminar", 1386 "deleteLocal": "Geradores locais não podem ser eliminados" 1387 }, 1388 "dialog": { 1389 "newTitle": "Novo gerador de imagem", 1390 "editTitle": "Editar {{name}}", 1391 "localInfo": "Gerador local de restai/image/workers/{{name}}.py. Pode ativar/desativar, definir privacidade + descrição, e atribuir a equipas. Fornecedor + opções vêm do módulo do worker.", 1392 "name": "Nome", 1393 "nameHelp": "Identificador URL-safe — letras, números, pontos, hífenes, sublinhados", 1394 "provider": "Fornecedor", 1395 "privacy": "Privacidade", 1396 "privacyPublic": "Público (na nuvem)", 1397 "privacyPrivate": "Privado (auto-alojado / local)", 1398 "description": "Descrição", 1399 "enabled": "Ativado", 1400 "providerOptions": "Opções do fornecedor", 1401 "model": "Modelo", 1402 "apiKey": "Chave API", 1403 "apiKeyHelp": "Deixe ******** para manter a chave existente", 1404 "baseUrl": "URL base (opcional, para fornecedores compatíveis com OpenAI)", 1405 "baseUrlHelp": "Deixe vazio para OpenAI. Defina para Together / Groq / vLLM / auto-alojado.", 1406 "saving": "A guardar…", 1407 "save": "Guardar", 1408 "create": "Criar", 1409 "saved": "{{name}} guardado", 1410 "created": "{{name}} criado", 1411 "deleteConfirm": "Eliminar gerador de imagem \"{{name}}\"?", 1412 "deleted": "{{name}} eliminado", 1413 "localCannotDelete": "Geradores locais não podem ser eliminados. Desative em vez disso.", 1414 "enabledToast": "{{name}} ativado", 1415 "disabledToast": "{{name}} desativado" 1416 } 1417 }, 1418 "invitations": { 1419 "sent": "Convite enviado", 1420 "title": "Convites", 1421 "subtitle": "Convites pendentes para equipas e projetos", 1422 "noInvitations": "Sem convites pendentes", 1423 "teamSection": "Convites para equipas", 1424 "projectSection": "Convites para projetos", 1425 "invitedBy": "Convidado por {{username}}", 1426 "accept": "Aceitar", 1427 "decline": "Recusar", 1428 "accepted": "Entrou em {{name}}", 1429 "declined": "Recusado {{name}}", 1430 "failed": "Não foi possível {{action}} o convite para {{name}}" 1431 }, 1432 "settings": { 1433 "title": "Definições", 1434 "subtitle": "Configuração da plataforma", 1435 "tabs": { 1436 "general": "Geral", 1437 "authentication": "Autenticação" 1438 }, 1439 "save": "Guardar", 1440 "saved": "Definições guardadas", 1441 "fields": { 1442 "appName": "Nome da aplicação", 1443 "hideBranding": "Ocultar marca", 1444 "currency": "Moeda", 1445 "systemLlm": "LLM de sistema", 1446 "systemLlmHelp": "Modelo base para os assistentes de IA da plataforma (Pesquisa Inteligente, Gerador de Prompt, Gerador Blockly). Deixar vazio para desativar estas funcionalidades.", 1447 "enableProxy": "Ativar proxy", 1448 "proxyUrl": "URL do proxy", 1449 "proxyKey": "Chave do proxy", 1450 "proxyTeamId": "ID de equipa do proxy", 1451 "maxAudioUploadSize": "Tamanho máximo de áudio (MB)", 1452 "dataRetentionDays": "Retenção de dados (dias)", 1453 "redisHost": "Servidor Redis", 1454 "redisHostPlaceholder": "Deixar vazio para memória interna", 1455 "redisPort": "Porta", 1456 "redisPassword": "Palavra-passe", 1457 "redisDatabase": "Base de dados", 1458 "enableMcp": "Ativar servidor MCP", 1459 "enableDocker": "Ativar terminal Docker", 1460 "dockerUrl": "URL do Docker", 1461 "dockerUrlPlaceholder": "unix:///var/run/docker.sock ou tcp://host:2375", 1462 "containerImage": "Imagem do contentor", 1463 "idleTimeout": "Tempo limite de inatividade (segundos)", 1464 "networkMode": "Modo de rede", 1465 "readOnlyRootfs": "Sistema de ficheiros só de leitura", 1466 "testDocker": "Testar ligação", 1467 "enableBrowser": "Ativar navegador de agente por conversa", 1468 "browserImage": "Imagem do contentor", 1469 "browserNetwork": "Modo de rede", 1470 "browserTimeout": "Tempo limite de inatividade (segundos)", 1471 "disableLocalAuth": "Desativar autenticação local", 1472 "enforce2fa": "Impor 2FA", 1473 "autoCreateUsers": "Criar utilizadores automaticamente", 1474 "allowedDomains": "Domínios permitidos", 1475 "restrictNewUsers": "Restringir novos utilizadores", 1476 "defaultTeam": "Equipa predefinida", 1477 "passwordMaxAgeDays": "Validade máxima da palavra-passe (dias)", 1478 "clientId": "ID de cliente", 1479 "clientSecret": "Segredo do cliente", 1480 "redirectUri": "URI de redirecionamento", 1481 "scope": "Âmbito", 1482 "scopes": "Âmbitos", 1483 "tenantId": "ID do tenant", 1484 "providerUrl": "URL do fornecedor", 1485 "providerName": "Nome do fornecedor", 1486 "emailClaim": "Claim de email" 1487 }, 1488 "helpers": { 1489 "systemLlm": "LLM utilizado pela plataforma para tarefas internas (ajudas de prompt, resumos, etc.). Deixe vazio para desativar.", 1490 "retention": "Elimina logs mais antigos que este valor. 0 = manter para sempre.", 1491 "containerImage": "Imagem base para contentores sandbox", 1492 "dockerTimeout": "Remover contentores após este número de segundos de inatividade", 1493 "browserImage": "Imagem Playwright. Precisa de Chromium + playwright.sync_api pré-instalados.", 1494 "browserTimeout": "Contentores sem utilização são removidos após este tempo.", 1495 "allowedDomains": "Domínios de email separados por vírgula, ou * para todos", 1496 "oidcProviderUrl": "URL de descoberta OpenID Connect", 1497 "oidcProviderName": "Nome a mostrar no botão de início de sessão", 1498 "autoTeam": "Os utilizadores SSO criados automaticamente serão adicionados a esta equipa", 1499 "telemetryStatus": "Estado: {{status}}", 1500 "saveSettings": "Guardar definições", 1501 "saving": "A guardar…" 1502 }, 1503 "status": { 1504 "enabled": "Ativado", 1505 "disabled": "Desativado" 1506 }, 1507 "telemetry": { 1508 "description": "O RESTai envia estatísticas de utilização agregadas e anónimas para ajudar o projeto open-source a compreender a adoção e priorizar o desenvolvimento. Nenhum dado pessoal, prompts, respostas ou chaves de API é enviado — apenas contagens (projetos, utilizadores, LLMs) e sinalizadores de funcionalidades.", 1509 "optOut": "Para optar por não participar, defina a variável de ambiente ANONYMIZED_TELEMETRY=false e reinicie o servidor." 1510 }, 1511 "sections": { 1512 "general": "Geral", 1513 "platform": "Plataforma", 1514 "branding": "Marca", 1515 "proxy": "Proxy LLM", 1516 "limits": "Limites", 1517 "redis": "Redis", 1518 "docker": "Sandbox Docker", 1519 "browser": "Navegador de agente", 1520 "mcp": "Servidor MCP", 1521 "systemLlm": "LLM de sistema", 1522 "authentication": "Autenticação", 1523 "localAuth": "Autenticação local", 1524 "sso": "Início de sessão único", 1525 "google": "Google", 1526 "microsoft": "Microsoft", 1527 "github": "GitHub", 1528 "oidc": "OIDC genérico", 1529 "retention": "Retenção de dados", 1530 "twoFactor": "Autenticação em dois passos", 1531 "passwordPolicy": "Política de palavras-passe", 1532 "telemetry": "Telemetria" 1533 } 1534 }, 1535 "widgets": { 1536 "notifications": "Notificações" 1537 }, 1538 "tabnav": { 1539 "menu": "Menu" 1540 }, 1541 "dataList": { 1542 "search": "Pesquisar...", 1543 "noResults": "Nenhum item encontrado", 1544 "noMatches": "Sem resultados para \"{{query}}\"", 1545 "clearSearch": "Limpar pesquisa", 1546 "selected": "{{count}} selecionados", 1547 "clear": "Limpar" 1548 } 1549 }