- OIDC: authorization code flow, JWKS validation, JIT provisioning, group-to-role mapping, dual auth (local/oidc/both) - Force password change: random admin password on first install, modal blocks UI until changed - APP_SECRET required in docker-compose (fail if missing), .env.example improved - Login page: Oracle IAM button (conditional), hide form in oidc-only mode - OracleIamPage: test connection via backend, masked client_secret handling - UsersPage: OIDC badge, auth_provider in list - i18n: login.oidcButton, login.or (pt/en/es) - README v3.1: Terminal, User Management, Security, OIDC endpoints, versioning
815 lines
32 KiB
TypeScript
815 lines
32 KiB
TypeScript
const pt: Record<string, string> = {
|
|
// ── Sidebar ──
|
|
'nav.principal': 'Principal',
|
|
'nav.admin': 'Administração',
|
|
'nav.chat': 'Chat Agent',
|
|
'nav.terraform': 'Terraform',
|
|
'nav.promptGen': 'Prompt Generator',
|
|
'nav.workspaces': 'Workspaces',
|
|
'nav.explorer': 'OCI Explorer',
|
|
'nav.ociServices': 'OCI Services',
|
|
'svc.title': 'OCI Services Status',
|
|
'svc.subtitle': 'Verifique e configure o status dos servicos de seguranca OCI por tenancy',
|
|
'svc.redetect': 'Re-detect',
|
|
'svc.checking': 'Verificando servicos OCI...',
|
|
'svc.save': 'Salvar',
|
|
'nav.reports': 'Relatórios',
|
|
'nav.ociCreds': 'Credenciais OCI',
|
|
'nav.genai': 'GenAI Config',
|
|
'nav.mcp': 'MCP Servers',
|
|
'nav.adb': 'ADB Vector',
|
|
'nav.embeddings': 'Embeddings',
|
|
'nav.embConsult': 'Consultar Embeddings',
|
|
'nav.terminal': 'Terminal',
|
|
'nav.userMgmt': 'Gestão de Usuários',
|
|
'nav.users': 'Usuários',
|
|
'nav.mySettings': 'Minhas Configurações',
|
|
'nav.oracleIam': 'Oracle IAM',
|
|
'nav.audit': 'Audit Log',
|
|
'sidebar.lightMode': 'Modo claro',
|
|
'sidebar.darkMode': 'Modo escuro',
|
|
'sidebar.logout': 'Sair',
|
|
'sidebar.settings': 'Configurações',
|
|
'sidebar.backToMenu': 'Voltar ao menu',
|
|
'sidebar.roleAdmin': 'Administrador',
|
|
'sidebar.roleUser': 'Usuário',
|
|
'sidebar.subtitle': 'Infrastructure & Security',
|
|
|
|
// ── Login ──
|
|
'login.subtitle': 'Infrastructure & Security Engineer',
|
|
'login.userPlaceholder': 'Usuario',
|
|
'login.passPlaceholder': 'Senha',
|
|
'login.mfaScanQr': 'Escaneie o QR code no seu app autenticador:',
|
|
'login.totpPlaceholder': 'Codigo TOTP',
|
|
'login.loading': 'Entrando...',
|
|
'login.verify': 'Verificar',
|
|
'login.submit': 'Entrar',
|
|
'login.error': 'Erro ao fazer login',
|
|
'login.or': 'ou',
|
|
'login.oidcButton': 'Login com Oracle IAM',
|
|
|
|
// ── Chat ──
|
|
'chat.timeNow': 'agora',
|
|
'chat.today': 'Hoje',
|
|
'chat.yesterday': 'Ontem',
|
|
'chat.last7': 'Ultimos 7 dias',
|
|
'chat.last30': 'Ultimos 30 dias',
|
|
'chat.older': 'Anteriores',
|
|
'chat.other': 'Outras',
|
|
'chat.history': 'Historico',
|
|
'chat.newChat': 'Nova Conversa',
|
|
'chat.untitled': 'Sem titulo',
|
|
'chat.noConversations': 'Nenhuma conversa ainda',
|
|
'chat.selectModel': 'Selecione um modelo...',
|
|
'chat.savedConfigs': 'Configs Salvas',
|
|
'chat.searchModel': 'Buscar modelo...',
|
|
'chat.noModels': 'Nenhum modelo encontrado',
|
|
'chat.ociCred': 'Credencial OCI...',
|
|
'chat.settings': 'Configuracoes',
|
|
'chat.newChatTitle': 'Nova conversa',
|
|
'chat.emptyTitle': 'Inicie uma conversa com o agente.',
|
|
'chat.emptySubtitle': 'Selecione um modelo para comecar.',
|
|
'chat.thinking': 'Pensando...',
|
|
'chat.retry': 'Reenviar',
|
|
'chat.attachFile': 'Anexar arquivo',
|
|
'chat.placeholder': 'Digite sua mensagem... (Shift+Enter para nova linha)',
|
|
'chat.send': 'Enviar',
|
|
'chat.selectOciCred': 'Selecione uma credencial OCI para usar modelos diretos.',
|
|
'chat.sendError': 'Falha ao enviar mensagem',
|
|
'chat.requestFailed': 'A requisicao falhou.',
|
|
'chat.timeout': 'Timeout: a resposta esta demorando muito. Tente novamente.',
|
|
'chat.toolsAvailable': 'tools disponiveis',
|
|
'chat.ociCredLabel': 'Credencial OCI',
|
|
'chat.select': 'Selecionar...',
|
|
'chat.analyzeFiles': 'Analise os arquivos anexados.',
|
|
|
|
// ── Terraform ──
|
|
'tf.history': 'Historico',
|
|
'tf.newChat': 'Nova',
|
|
'tf.noConversations': 'Nenhuma conversa',
|
|
'tf.searchModel': 'Buscar modelo...',
|
|
'tf.selectModel': 'Selecione modelo...',
|
|
'tf.savedConfigs': 'Configs Salvas',
|
|
'tf.ociConfig': 'OCI Config...',
|
|
'tf.settings': 'Configuracoes',
|
|
'tf.newConversation': 'Nova conversa',
|
|
'tf.emptyTitle': 'Descreva a infraestrutura OCI',
|
|
'tf.emptySubtitle': 'O agente vai gerar codigo Terraform baseado na sua descricao.',
|
|
'tf.thinking': 'Processando...',
|
|
'tf.retry': 'Reenviar',
|
|
'tf.placeholder': 'Descreva a infraestrutura desejada... (Shift+Enter para nova linha)',
|
|
'tf.send': 'Enviar',
|
|
'tf.workspace': 'Workspace',
|
|
'tf.files': 'Arquivos',
|
|
'tf.terminal': 'Terminal',
|
|
'tf.resources': 'Recursos',
|
|
'tf.plan': 'Plan',
|
|
'tf.apply': 'Apply',
|
|
'tf.destroy': 'Destroy',
|
|
'tf.cancel': 'Cancelar',
|
|
'tf.download': 'Download ZIP',
|
|
'tf.createWs': 'Criar Workspace',
|
|
'tf.noFiles': 'Nenhum arquivo gerado',
|
|
'tf.timeout': 'Timeout: a geracao esta demorando muito.',
|
|
'tf.selectOci': 'Selecione uma credencial OCI',
|
|
'tf.compartment': 'Compartimento',
|
|
'tf.region': 'Regiao',
|
|
'tf.rollback': 'Rollback',
|
|
'tf.copy': 'Copiar',
|
|
'tf.copied': 'Copiado',
|
|
'tf.noWs': 'Nenhum workspace ativo',
|
|
'tf.deleteWs': 'Excluir',
|
|
'tf.noFilesToPlan': 'Nenhum arquivo para planejar',
|
|
'tf.selectOciConfig': 'Selecione OCI Config e Compartment',
|
|
'tf.running': 'Executando...',
|
|
'tf.terminalTitle': 'Terminal de saida do Terraform',
|
|
'tf.terminalHint': 'Execute Plan, Apply ou Destroy para ver os resultados aqui',
|
|
'tf.autoFix': 'Auto-corrigir',
|
|
'tf.editSystemPrompt': 'Editar System Prompt',
|
|
'tf.refreshReference': 'Refresh Reference',
|
|
|
|
// ── Prompt Generator ──
|
|
'pg.history': 'Historico',
|
|
'pg.new': 'Nova',
|
|
'pg.noConversations': 'Nenhuma conversa',
|
|
'pg.emptyTitle': 'Descreva a infraestrutura OCI que voce precisa',
|
|
'pg.emptySubtitle': 'O agente vai gerar um prompt estruturado e otimizado para o Terraform Agent.',
|
|
'pg.loading': 'Gerando prompt...',
|
|
'pg.placeholder': 'Descreva a infraestrutura desejada... (Shift+Enter para nova linha)',
|
|
'pg.copy': 'Copiar',
|
|
'pg.copied': 'Copiado',
|
|
'pg.retry': 'Reenviar',
|
|
'pg.timeout': 'Timeout: a geracao esta demorando muito.',
|
|
'pg.search': 'Buscar...',
|
|
'pg.selectModel': 'Selecione modelo...',
|
|
|
|
// ── Workspaces ──
|
|
'ws.title': 'Terraform Workspaces',
|
|
'ws.all': 'Todos',
|
|
'ws.active': 'Ativos',
|
|
'ws.draft': 'Draft',
|
|
'ws.failed': 'Falha',
|
|
'ws.destroyed': 'Destruídos',
|
|
'ws.loading': 'Carregando...',
|
|
'ws.refresh': 'Atualizar',
|
|
'ws.noWs': 'Nenhum workspace encontrado',
|
|
'ws.noWsHint': 'Crie workspaces pelo Terraform Agent',
|
|
'ws.loadingWs': 'Carregando workspaces...',
|
|
'ws.open': 'Abrir',
|
|
'ws.plan': 'Plan',
|
|
'ws.apply': 'Apply',
|
|
'ws.destroy': 'Destroy',
|
|
'ws.delete': 'Excluir',
|
|
'ws.cancel': 'Cancelar',
|
|
'ws.hideOutput': 'ocultar',
|
|
'ws.viewOutput': 'ver output',
|
|
'ws.confirmDestroy': 'Confirmar Destroy',
|
|
'ws.confirmDestroyMsg': 'Esta acao ira destruir todos os recursos provisionados por este workspace.',
|
|
'ws.typeDestroy': 'Digite <strong>DESTROY</strong> para confirmar:',
|
|
'ws.deleteWs': 'Excluir Workspace',
|
|
'ws.deleteWsMsg': 'Deseja excluir este workspace permanentemente? Arquivos locais serao removidos.',
|
|
'ws.noDate': 'Sem data',
|
|
|
|
// ── Explorer ──
|
|
'exp.title': 'OCI Explorer',
|
|
'exp.subtitle': 'Explore recursos da sua infraestrutura Oracle Cloud',
|
|
'exp.search': 'Buscar recurso...',
|
|
'exp.refresh': 'Atualizar',
|
|
'exp.loading': 'Carregando...',
|
|
'exp.noResources': 'Nenhum recurso encontrado',
|
|
'exp.selectResource': 'Selecione um tipo de recurso',
|
|
'exp.compartment': 'Compartimento',
|
|
'exp.region': 'Regiao',
|
|
'exp.allRegions': 'Todas as regioes',
|
|
'exp.start': 'Start',
|
|
'exp.stop': 'Stop',
|
|
'exp.details': 'Detalhes',
|
|
'exp.total': 'Total',
|
|
'exp.network': 'Rede',
|
|
'exp.observability': 'Observabilidade',
|
|
'exp.security': 'Seguranca',
|
|
'exp.selectRegions': 'Selecionar regioes',
|
|
'exp.nRegions': '{0} regioes',
|
|
'exp.all': 'Todas',
|
|
'exp.none': 'Nenhuma',
|
|
'exp.noCompartment': 'Nenhum compartment encontrado',
|
|
'exp.selectConfig': 'Selecione uma config OCI',
|
|
'exp.loadingResources': 'Carregando recursos...',
|
|
'exp.clearFilter': 'Tente limpar o filtro de busca',
|
|
'exp.resources': 'recursos',
|
|
'exp.updating': 'atualizando...',
|
|
'exp.regions': 'regiao(oes)',
|
|
'exp.filter': 'Filtrar...',
|
|
'exp.startAction': 'Iniciar',
|
|
'exp.stopAction': 'Parar',
|
|
'exp.updatingState': 'Atualizando...',
|
|
'exp.createdAt': 'Criado em',
|
|
'exp.public': 'Publico',
|
|
'exp.yesPublic': 'Sim',
|
|
'exp.noPrivate': 'Nao (privada)',
|
|
'exp.freeTier': 'Free Tier',
|
|
'exp.yes': 'Sim',
|
|
'exp.no': 'Nao',
|
|
'exp.noRestrictions': 'Sem restricoes (aberto)',
|
|
'exp.updateNetworkAccess': 'Atualizar Acesso de Rede',
|
|
'exp.accessUpdated': 'Acesso atualizado: ',
|
|
'exp.objects': 'Objetos',
|
|
'exp.size': 'Tamanho',
|
|
'exp.visibility': 'Visibilidade',
|
|
'exp.private': 'Privado',
|
|
'exp.rules': 'Regras',
|
|
'exp.routes': 'Rotas',
|
|
'exp.hideRules': 'Ocultar regras',
|
|
'exp.viewRules': 'Ver regras',
|
|
'exp.add': 'Adicionar',
|
|
'exp.direction': 'Direcao',
|
|
'exp.protocol': 'Protocolo',
|
|
'exp.originDest': 'Origem/Destino',
|
|
'exp.ports': 'Portas',
|
|
'exp.description': 'Descricao',
|
|
'exp.portMin': 'Porta Min',
|
|
'exp.portMax': 'Porta Max',
|
|
'exp.myIp': 'Meu IP',
|
|
'exp.save': 'Salvar',
|
|
'exp.cancel': 'Cancelar',
|
|
'exp.ruleAdded': 'Regra adicionada.',
|
|
'exp.enterCidr': 'Informe o CIDR.',
|
|
'exp.removeRule': 'Remover esta regra?',
|
|
'exp.removeNsgRule': 'Remover esta regra do NSG?',
|
|
'exp.ipDetected': 'IP detectado: {0} — ajuste porta e clique Salvar',
|
|
'exp.ipDetectFailed': 'Nao foi possivel detectar o IP.',
|
|
'exp.destination': 'Destino',
|
|
'exp.destType': 'Tipo Destino',
|
|
'exp.version': 'Versao',
|
|
'exp.ha': 'HA',
|
|
|
|
// ── Reports ──
|
|
'rpt.title': 'CIS Reports',
|
|
'rpt.subtitle': 'Execute scans de conformidade CIS OCI Benchmark',
|
|
'rpt.startScan': 'Iniciar Scan',
|
|
'rpt.running': 'Executando...',
|
|
'rpt.cancel': 'Cancelar',
|
|
'rpt.tenancy': 'Tenancy',
|
|
'rpt.level': 'Level',
|
|
'rpt.region': 'Regiao',
|
|
'rpt.allRegions': 'Todas as regioes',
|
|
'rpt.noReports': 'Nenhum relatorio encontrado',
|
|
'rpt.noReportsHint': 'Execute um scan para gerar relatorios de conformidade.',
|
|
'rpt.progress': 'Progresso',
|
|
'rpt.completed': 'Concluido',
|
|
'rpt.failed': 'Falhou',
|
|
'rpt.viewReport': 'Ver Relatorio',
|
|
'rpt.download': 'Download',
|
|
'rpt.delete': 'Excluir',
|
|
'rpt.summary': 'Resumo',
|
|
'rpt.passed': 'Passou',
|
|
'rpt.findings': 'Findings',
|
|
'rpt.recommendations': 'Recomendacoes',
|
|
'rpt.selectTenancy': 'Selecione uma tenancy',
|
|
'rpt.selectCredential': 'Selecione uma credencial',
|
|
'rpt.loadingReports': 'Carregando relatorios...',
|
|
'rpt.refresh': 'Atualizar',
|
|
'rpt.pageTitle': 'Relatorios CIS',
|
|
'rpt.pageSubtitle': 'CIS Benchmark 3.0 — Compliance Scan & Dashboard',
|
|
'rpt.runScanCis': 'Executar Scan CIS',
|
|
'rpt.inExecution': 'Em execucao',
|
|
'rpt.configParams': 'Configure os parametros e execute o scan de compliance CIS.',
|
|
'rpt.ociCredential': 'Credencial OCI',
|
|
'rpt.selectOciCred': 'Selecione a credencial OCI...',
|
|
'rpt.cisLevel': 'CIS Level',
|
|
'rpt.level1Desc': 'Verificacoes essenciais de seguranca',
|
|
'rpt.level2Desc': 'Verificacoes completas (inclui Level 1)',
|
|
'rpt.regions': 'Regioes',
|
|
'rpt.leaveEmpty': 'Deixe vazio para escanear todas as regioes subscritas',
|
|
'rpt.executeCompliance': 'Executar CIS Compliance',
|
|
'rpt.scanProgress': 'Progresso do Scan',
|
|
'rpt.hideLog': 'Ocultar log',
|
|
'rpt.showLog': 'Ver log completo',
|
|
'rpt.lines': 'linhas',
|
|
'rpt.cancelScan': 'Cancelar Scan',
|
|
'rpt.selectReport': 'Selecionar Relatorio',
|
|
'rpt.selectCompletedReport': 'Selecione um relatorio concluido...',
|
|
'rpt.searchTenancy': 'Buscar tenancy...',
|
|
'rpt.searchByTenancy': 'Buscar por tenancy...',
|
|
'rpt.noCredentials': 'Nenhuma credencial encontrada',
|
|
'rpt.allRegionsDefault': 'Todas as regioes (padrao)',
|
|
'rpt.searchRegion': 'Buscar regiao...',
|
|
'rpt.loadingDashboard': 'Carregando dashboard...',
|
|
'rpt.complianceScore': 'Score de Compliance',
|
|
'rpt.compliant': 'Conforme',
|
|
'rpt.nonCompliant': 'Nao Conforme',
|
|
'rpt.ofTotal': 'do total',
|
|
'rpt.compliantItems': 'itens conformes',
|
|
'rpt.totalFindings': 'achados totais',
|
|
'rpt.evaluated': 'Avaliados',
|
|
'rpt.controlsVerified': 'Controles verificados',
|
|
'rpt.regionsCount': 'regiao(oes)',
|
|
'rpt.complianceDist': 'Distribuicao de Compliance',
|
|
'rpt.findingsBySection': 'Achados por Secao',
|
|
'rpt.generatedAt': 'Gerado em',
|
|
'rpt.htmlReport': 'Relatorio HTML',
|
|
'rpt.files': 'Arquivos',
|
|
'rpt.inSections': 'secoes',
|
|
'rpt.fullEmbedding': 'Embedding Completo',
|
|
'rpt.noActiveTables': 'Sem tabelas ativas',
|
|
'rpt.executionHistory': 'Historico de Execucoes',
|
|
'rpt.reports': 'relatorio(s)',
|
|
'rpt.loading': 'Carregando...',
|
|
'rpt.firstScanHint': 'Execute o primeiro scan CIS acima.',
|
|
'rpt.selected': 'Selecionado',
|
|
'rpt.deleteConfirm': 'Excluir este relatorio?',
|
|
'rpt.deleteFailed': 'Falha ao excluir',
|
|
'rpt.selectOciCredError': 'Selecione uma credencial OCI',
|
|
'rpt.alreadyRunning': 'Ja existe um scan em execucao',
|
|
'rpt.errorLoadReports': 'Erro ao carregar relatorios',
|
|
'rpt.errorStartScan': 'Erro ao iniciar scan',
|
|
'rpt.selectAdb': 'Selecione uma conexao ADB.',
|
|
'rpt.selectTable': 'Selecione uma tabela.',
|
|
'rpt.errorEmbedding': 'Erro ao gerar embedding',
|
|
'rpt.cancelled': 'Cancelado',
|
|
'rpt.completedAt': 'Concluido:',
|
|
'rpt.complianceGenerating': 'Gerando Compliance Report...',
|
|
'rpt.complianceFetchingKB': 'Buscando remediações na Knowledge Base CIS',
|
|
'rpt.complianceNotGenerated': 'Report ainda não gerado',
|
|
'rpt.complianceGenerate': 'Gerar Compliance Report',
|
|
'rpt.complianceRegenerate': 'Regenerar',
|
|
'rpt.complianceDownloadZip': 'Download ZIP',
|
|
'rpt.complianceRemediation': '+ Remediation',
|
|
'rpt.complianceGeneratingShort': 'Gerando...',
|
|
'rpt.complianceTitle': 'LAD A-Team CIS Compliance Report',
|
|
|
|
// ── OCI Config ──
|
|
'oci.title': 'Credenciais OCI',
|
|
'oci.subtitle': 'Gerencie credenciais Oracle Cloud Infrastructure',
|
|
'oci.registered': 'Credenciais Registradas',
|
|
'oci.credential': 'credencial',
|
|
'oci.credentials': 'credenciais',
|
|
'oci.noCredentials': 'Nenhuma credencial registrada.',
|
|
'oci.edit': 'Editar',
|
|
'oci.test': 'Testar',
|
|
'oci.delete': 'Excluir',
|
|
'oci.yes': 'Sim',
|
|
'oci.no': 'Nao',
|
|
'oci.newCredential': 'Nova Credencial',
|
|
'oci.editCredential': 'Editar Credencial',
|
|
'oci.addDesc': 'Adicione as credenciais da sua conta OCI para executar reports e acessar servicos.',
|
|
'oci.editing': 'Editando:',
|
|
'oci.tenancyName': 'Tenancy Name',
|
|
'oci.ocidTenancy': 'OCID Tenancy',
|
|
'oci.region': 'Region',
|
|
'oci.selectRegion': 'Selecione a regiao...',
|
|
'oci.searchRegion': 'Buscar regiao...',
|
|
'oci.noRegion': 'Nenhuma regiao encontrada',
|
|
'oci.compartment': 'Compartment OCID',
|
|
'oci.ocidUser': 'OCID User',
|
|
'oci.fingerprint': 'Fingerprint',
|
|
'oci.sessionToken': 'Session Token',
|
|
'oci.sessionTokenHint': 'Cole o conteudo do arquivo token gerado por',
|
|
'oci.sessionKeyLabel': 'Chave de Sessao (.pem)',
|
|
'oci.privateKey': 'Private Key (.pem)',
|
|
'oci.publicKey': 'Public Key (.pem)',
|
|
'oci.keyPassphrase': 'Key Passphrase',
|
|
'oci.keyPassphraseHint': 'Apenas se a chave privada for protegida por senha',
|
|
'oci.sshPublicKey': 'SSH Public Key',
|
|
'oci.sshPublicKeyHint': 'Chave SSH para acesso a instancias compute (ex: ssh-rsa AAAA...)',
|
|
'oci.saveCredential': 'Salvar Credencial',
|
|
'oci.saveChanges': 'Salvar Alteracoes',
|
|
'oci.cancel': 'Cancelar',
|
|
'oci.saving': 'Salvando credencial...',
|
|
'oci.saved': 'Credencial salva com sucesso!',
|
|
'oci.updated': 'Credencial atualizada com sucesso!',
|
|
'oci.deleting': 'Excluindo credencial...',
|
|
'oci.deleted': 'Credencial excluida com sucesso!',
|
|
'oci.fillField': 'Preencha o',
|
|
'oci.fillOcidTenancy': 'Preencha o OCID Tenancy',
|
|
'oci.fillUserAndFP': 'Preencha OCID User e Fingerprint',
|
|
'oci.pasteToken': 'Cole o Session Token',
|
|
'oci.selectKey': 'Selecione a chave privada (.pem)',
|
|
'oci.selectSessionKey': 'Selecione a chave de sessao (.pem)',
|
|
'oci.changeHint': 'Preencha para alterar. Atual:',
|
|
'oci.keepKey': 'Deixe vazio para manter a chave atual',
|
|
'oci.typeCannotChange': '(tipo nao pode ser alterado)',
|
|
'oci.sshNotConfigured': 'nao configurada',
|
|
|
|
// ── GenAI Config ──
|
|
'genai.title': 'Modelos GenAI',
|
|
'genai.subtitle': 'Configure modelos de IA generativa para o Chat Agent',
|
|
'genai.configured': 'Modelos Configurados',
|
|
'genai.model': 'modelo',
|
|
'genai.models': 'modelos',
|
|
'genai.noModels': 'Nenhum modelo configurado.',
|
|
'genai.newModel': 'Novo Modelo GenAI',
|
|
'genai.editModel': 'Editar Modelo',
|
|
'genai.configName': 'Nome da Config',
|
|
'genai.ociCredential': 'Credencial OCI',
|
|
'genai.modelSelect': 'Modelo',
|
|
'genai.genaiRegion': 'Regiao GenAI',
|
|
'genai.compartment': 'Compartment OCID',
|
|
'genai.modelOcid': 'Model OCID',
|
|
'genai.modelOcidHint': 'Cole o OCID do modelo do portal OCI (opcional)',
|
|
'genai.customOcid': 'Personalizado (usar OCID)',
|
|
'genai.default': 'Modelo Padrao',
|
|
'genai.setDefault': 'Definir como Padrao',
|
|
'genai.saveModel': 'Salvar Modelo',
|
|
'genai.saveChanges': 'Salvar Alteracoes',
|
|
'genai.cancel': 'Cancelar',
|
|
'genai.saving': 'Salvando modelo...',
|
|
'genai.deleting': 'Excluindo modelo...',
|
|
'genai.addDesc': 'Adicione modelos personalizados ou crie presets com credenciais especificas.',
|
|
'genai.fillName': 'Preencha o nome da config',
|
|
'genai.selectOci': 'Selecione uma credencial OCI',
|
|
'genai.fillOcid': 'Informe o Model OCID para modelo personalizado',
|
|
|
|
// ── MCP Servers ──
|
|
'mcp.title': 'MCP Servers',
|
|
'mcp.subtitle': 'Servidores MCP para integracao com ferramentas e execucao de tarefas',
|
|
'mcp.registered': 'Servidores Registrados',
|
|
'mcp.noServers': 'Nenhum MCP server registrado.',
|
|
'mcp.edit': 'Editar',
|
|
'mcp.activate': 'Ativar',
|
|
'mcp.deactivate': 'Desativar',
|
|
'mcp.active': 'Ativo',
|
|
'mcp.inactive': 'Inativo',
|
|
'mcp.delete': 'Excluir',
|
|
'mcp.yes': 'Sim',
|
|
'mcp.no': 'Nao',
|
|
'mcp.command': 'Comando:',
|
|
'mcp.url': 'URL:',
|
|
'mcp.module': 'Modulo:',
|
|
'mcp.adb': 'ADB:',
|
|
'mcp.noAdb': 'Nenhum',
|
|
'mcp.tools': 'Tools',
|
|
'mcp.noTools': 'Nenhuma tool registrada',
|
|
'mcp.discoverTools': 'Descobrir Tools',
|
|
'mcp.discovering': 'Conectando ao MCP server para descobrir tools...',
|
|
'mcp.newServer': 'Registrar Novo Server',
|
|
'mcp.editServer': 'Editar Server',
|
|
'mcp.name': 'Nome',
|
|
'mcp.description': 'Descricao',
|
|
'mcp.serverType': 'Tipo de Servidor',
|
|
'mcp.commandLabel': 'Comando',
|
|
'mcp.commandHint': 'Comando para iniciar o servidor',
|
|
'mcp.argsLabel': 'Argumentos (JSON)',
|
|
'mcp.argsHint': 'Array de argumentos passados ao comando',
|
|
'mcp.urlLabel': 'URL do Servidor',
|
|
'mcp.urlHint': 'Endpoint SSE do servidor MCP',
|
|
'mcp.linkAdb': 'Vincular ADB Vector',
|
|
'mcp.linkAdbHint': 'Opcional — o MCP server podera usar este banco como ferramenta.',
|
|
'mcp.saveServer': 'Registrar Server',
|
|
'mcp.saveChanges': 'Salvar Alteracoes',
|
|
'mcp.cancel': 'Cancelar',
|
|
'mcp.saving': 'Registrando servidor...',
|
|
'mcp.updating': 'Atualizando servidor...',
|
|
'mcp.fillName': 'Preencha o nome do server',
|
|
'mcp.invalidArgs': 'Argumentos deve ser um JSON array valido',
|
|
'mcp.configDesc': 'Configure um novo servidor MCP. Os campos se ajustam ao tipo selecionado.',
|
|
|
|
// ── ADB Config ──
|
|
'adb.title': 'ADB Connections',
|
|
'adb.subtitle': 'Conexoes com Oracle Autonomous Database via Wallet (mTLS)',
|
|
'adb.registered': 'Conexoes Registradas',
|
|
'adb.connection': 'conexao',
|
|
'adb.connections': 'conexoes',
|
|
'adb.noConnections': 'Nenhuma conexao ADB registrada.',
|
|
'adb.edit': 'Editar',
|
|
'adb.test': 'Testar',
|
|
'adb.delete': 'Excluir',
|
|
'adb.yes': 'Sim',
|
|
'adb.no': 'Nao',
|
|
'adb.newConnection': 'Nova Conexao',
|
|
'adb.editConnection': 'Editar Conexao',
|
|
'adb.connName': 'Nome da Conexao',
|
|
'adb.walletZip': 'Wallet ZIP',
|
|
'adb.walletHint': 'Envie o wallet para extrair os DSNs do tnsnames.ora',
|
|
'adb.walletEditHint': 'Envie novo wallet ou deixe vazio para manter o atual',
|
|
'adb.analyze': 'Analisar',
|
|
'adb.dsn': 'DSN (TNS Name)',
|
|
'adb.dsnHint': 'Selecione ou digite o DSN. Ex: myatp_high',
|
|
'adb.username': 'Username',
|
|
'adb.password': 'Password',
|
|
'adb.walletPassword': 'Wallet Password',
|
|
'adb.genaiConfig': 'Config GenAI (Embeddings)',
|
|
'adb.genaiConfigHint': 'Credenciais OCI usadas para gerar embeddings via GenAI.',
|
|
'adb.noRag': 'Nenhum (sem RAG)',
|
|
'adb.embeddingModel': 'Modelo de Embedding',
|
|
'adb.embeddingModelHint': 'Modelo OCI GenAI para gerar vetores.',
|
|
'adb.saveConnection': 'Salvar Conexao',
|
|
'adb.saveChanges': 'Salvar Alteracoes',
|
|
'adb.cancel': 'Cancelar',
|
|
'adb.saving': 'Salvando conexao...',
|
|
'adb.deleting': 'Excluindo conexao...',
|
|
'adb.updateWallet': 'Atualizar Wallet',
|
|
'adb.adbConnection': 'Conexao ADB',
|
|
'adb.uploadWallet': 'Upload Wallet',
|
|
'adb.connDesc': 'Conexao via python-oracledb Thin mode com Wallet (mTLS) para Oracle Autonomous Database.',
|
|
'adb.selectWallet': 'Selecione um arquivo wallet ZIP.',
|
|
'adb.selectConnection': 'Selecione uma conexao ADB.',
|
|
'adb.fillName': 'Preencha o nome da conexao',
|
|
'adb.fillDsn': 'Preencha o DSN',
|
|
'adb.fillUsername': 'Preencha o username',
|
|
'adb.fillPassword': 'Preencha a senha',
|
|
|
|
// ── Embeddings ──
|
|
'emb.title': 'Embeddings',
|
|
'emb.subtitle': 'Base de conhecimento vetorial — upload, importacao e gerenciamento',
|
|
'emb.noAdb': 'Nenhuma conexao ADB configurada.',
|
|
'emb.noAdbHint': 'Configure em ADB Vector.',
|
|
'emb.noOci': 'Nenhuma credencial OCI configurada.',
|
|
'emb.noOciHint': 'Configure em Config → OCI.',
|
|
'emb.existing': 'Embeddings Existentes',
|
|
'emb.existingDesc': 'Consulte os documentos armazenados nas tabelas de embeddings do ADB.',
|
|
'emb.adbConnection': 'Conexao ADB',
|
|
'emb.table': 'Tabela',
|
|
'emb.load': 'Carregar',
|
|
'emb.noEmbeddings': 'Nenhum embedding encontrado.',
|
|
'emb.total': 'Total: {0} documentos',
|
|
'emb.cisTitle': 'CIS Recommendations',
|
|
'emb.cisDesc': 'Envie a versao mais recente do PDF para manter as recomendacoes CIS Oracle Cloud atualizadas na base vetorial.',
|
|
'emb.pdfFile': 'Arquivo PDF',
|
|
'emb.uploadCis': 'Upload CIS Recommendations',
|
|
'emb.kbTitle': 'Base de Conhecimento',
|
|
'emb.kbDesc': 'Envie documentos para alimentar a base de conhecimento da equipe. Os arquivos serao vetorizados e disponibilizados para consulta via chat.',
|
|
'emb.fileLabel': 'Arquivo (.txt, .pdf, .csv, .json, .md)',
|
|
'emb.uploadFile': 'Upload Arquivo',
|
|
'emb.urlLabel': 'URL (pagina web ou PDF)',
|
|
'emb.importUrl': 'Importar URL',
|
|
'emb.purgeTitle': 'Purge & Re-embed',
|
|
'emb.purgeDesc': 'Limpe os embeddings de uma tabela para liberar espaco ou preparar para re-ingestao. Esta acao e irreversivel.',
|
|
'emb.tenancyOptional': 'Tenancy (opcional)',
|
|
'emb.purge': 'Purge',
|
|
'emb.confirm': 'Confirmar',
|
|
'emb.selectTable': 'Selecione uma tabela.',
|
|
'emb.selectAdbAndFile': 'Selecione conexao ADB e arquivo.',
|
|
'emb.selectAdbAndUrl': 'Selecione conexao ADB e informe a URL.',
|
|
'emb.processing': 'Processando PDF e gerando embeddings...',
|
|
'emb.uploading': 'Enviando e gerando embeddings...',
|
|
'emb.fetchingUrl': 'Buscando conteudo e gerando embeddings...',
|
|
'emb.purging': 'Limpando embeddings...',
|
|
|
|
// ── EmbConsult ──
|
|
'ec.title': 'Consultar Embeddings',
|
|
'ec.subtitle': 'Pergunte sobre os dados armazenados nas bases vetoriais',
|
|
'ec.clear': 'Limpar',
|
|
'ec.tableOptional': 'Tabela (opcional)',
|
|
'ec.allTables': 'Todas as tabelas',
|
|
'ec.emptyTitle': 'Faca uma consulta para pesquisar nos embeddings.',
|
|
'ec.emptyHint': 'Ex: "findings para CIS 1.1", "recomendacoes de networking", "como corrigir MFA"',
|
|
'ec.searching': 'Consultando bases vetoriais...',
|
|
'ec.placeholder': 'Digite sua consulta...',
|
|
'ec.submit': 'Consultar',
|
|
'ec.sources': 'Fontes consultadas',
|
|
'ec.noAnswer': 'Sem resposta do modelo.',
|
|
|
|
// ── Users ──
|
|
'usr.title': 'Usuarios',
|
|
'usr.activeCount': 'ativo',
|
|
'usr.activesCount': 'ativos',
|
|
'usr.inactiveCount': 'inativo',
|
|
'usr.inactivesCount': 'inativos',
|
|
'usr.total': 'total',
|
|
'usr.newUser': 'Novo Usuario',
|
|
'usr.cancel': 'Cancelar',
|
|
'usr.createUser': 'Criar Novo Usuario',
|
|
'usr.firstName': 'Nome',
|
|
'usr.lastName': 'Sobrenome',
|
|
'usr.username': 'Usuario (login)',
|
|
'usr.email': 'Email',
|
|
'usr.password': 'Senha',
|
|
'usr.role': 'Role',
|
|
'usr.creating': 'Criando...',
|
|
'usr.create': 'Criar Usuario',
|
|
'usr.noUsers': 'Nenhum usuario cadastrado',
|
|
'usr.noUsersHint': 'Clique em "Novo Usuario" para criar o primeiro usuario.',
|
|
'usr.name': 'Nome',
|
|
'usr.mfa': 'MFA',
|
|
'usr.status': 'Status',
|
|
'usr.lastLogin': 'Ultimo Login',
|
|
'usr.actions': 'Acoes',
|
|
'usr.active': 'Ativo',
|
|
'usr.inactive': 'Inativo',
|
|
'usr.never': 'Nunca',
|
|
'usr.confirm': 'Confirmar',
|
|
'usr.deactivate': 'Desativar usuario',
|
|
'usr.created': 'Usuario criado com sucesso!',
|
|
'usr.roleUpdated': 'Role atualizada',
|
|
'usr.deactivated': 'Usuario desativado',
|
|
'usr.requiredName': 'Nome e sobrenome sao obrigatorios',
|
|
'usr.requiredUsername': 'Usuario (login) e obrigatorio',
|
|
'usr.requiredPassword': 'Senha e obrigatoria',
|
|
|
|
// ── MFA ──
|
|
'mfa.title': 'Autenticacao MFA (TOTP)',
|
|
'mfa.subtitle': 'Proteja sua conta com autenticacao em dois fatores via Google Authenticator ou Authy.',
|
|
'mfa.enabled': 'MFA esta ativado',
|
|
'mfa.disabled': 'MFA esta desativado',
|
|
'mfa.enabledDesc': 'Sua conta esta protegida com autenticacao de dois fatores.',
|
|
'mfa.disabledDesc': 'Ative o MFA para adicionar uma camada extra de seguranca.',
|
|
'mfa.disableHint': 'Para desativar o MFA, clique no botao abaixo. Isso reduzira a seguranca da sua conta.',
|
|
'mfa.disableBtn': 'Desativar MFA',
|
|
'mfa.confirmDisable': 'Deseja realmente desativar o MFA da sua conta?',
|
|
'mfa.scanQr': 'Escaneie o QR Code ou copie o secret',
|
|
'mfa.openApp': 'Abra seu app autenticador (Google Authenticator, Authy, etc.)',
|
|
'mfa.enterCode': 'Insira o codigo gerado pelo app',
|
|
'mfa.activateMfa': 'Ativar MFA',
|
|
'mfa.generateSecret': 'Gerar Secret',
|
|
'mfa.generateHint': 'Clique no botao abaixo para gerar um secret TOTP. Voce precisara de um app autenticador para escanear o QR Code.',
|
|
'mfa.activated': 'MFA ativado com sucesso!',
|
|
'mfa.deactivated': 'MFA desativado.',
|
|
'mfa.invalidCode': 'Informe um codigo de 6 digitos',
|
|
'mfa.configure': 'Configurar',
|
|
|
|
// ── Audit ──
|
|
'audit.title': 'Log de Auditoria',
|
|
'audit.subtitle': 'Monitoramento de atividades do sistema, configuracoes e sessoes de chat.',
|
|
'audit.tabAudit': 'Audit Log',
|
|
'audit.tabConfig': 'Config Logs',
|
|
'audit.tabChat': 'Chat Logs',
|
|
'audit.records': 'registros',
|
|
'audit.refresh': 'Atualizar',
|
|
'audit.all': 'Todos',
|
|
'audit.errors': 'Erros',
|
|
'audit.success': 'Sucesso',
|
|
'audit.info': 'Info',
|
|
'audit.loadingLogs': 'Carregando logs...',
|
|
'audit.noAudit': 'Nenhum registro de auditoria.',
|
|
'audit.noConfig': 'Nenhum log de configuracao registrado.',
|
|
'audit.noChat': 'Nenhum log de chat registrado.',
|
|
'audit.date': 'Data',
|
|
'audit.user': 'Usuario',
|
|
'audit.action': 'Acao',
|
|
'audit.resource': 'Recurso',
|
|
'audit.details': 'Detalhes',
|
|
'audit.ip': 'IP',
|
|
'audit.config': 'Config',
|
|
'audit.status': 'Status',
|
|
'audit.message': 'Mensagem',
|
|
'audit.session': 'Sessao',
|
|
'audit.source': 'Origem',
|
|
|
|
// ── Hardcoded fixes ──
|
|
'common.errorPrefix': 'Erro: ',
|
|
'common.errorSave': 'Erro ao salvar',
|
|
'common.errorDelete': 'Erro ao excluir',
|
|
'common.errorUnknown': 'Erro desconhecido',
|
|
'common.errorLoad': 'Erro ao carregar',
|
|
|
|
'oci.tableHeaders': 'Tenancy,Tipo,Region,Detalhes,Acoes',
|
|
'oci.thTenancy': 'Tenancy',
|
|
'oci.thType': 'Tipo',
|
|
'oci.thRegion': 'Region',
|
|
'oci.thDetails': 'Detalhes',
|
|
'oci.thActions': 'Acoes',
|
|
|
|
'genai.thConfig': 'Config',
|
|
'genai.thModel': 'Modelo',
|
|
'genai.thOciConfig': 'OCI Config',
|
|
'genai.thRegion': 'Regiao',
|
|
'genai.thActions': 'Acoes',
|
|
'genai.savedSuccess': 'Modelo salvo com sucesso!',
|
|
'genai.updatedSuccess': 'Modelo atualizado com sucesso!',
|
|
'genai.deletedSuccess': 'Modelo excluido com sucesso!',
|
|
'genai.editingLabel': 'Editando:',
|
|
'genai.regionFilled': 'Regiao e Compartment preenchidos de <strong>{0}</strong>',
|
|
|
|
'mcp.savedSuccess': 'Server registrado com sucesso!',
|
|
'mcp.updatedSuccess': 'Server atualizado com sucesso!',
|
|
'mcp.deletingServer': 'Excluindo server...',
|
|
'mcp.deletedSuccess': 'Server excluido com sucesso!',
|
|
'mcp.discoveredTools': '{0} tool(s) descoberta(s), {1} total',
|
|
'mcp.errorDiscoverTools': 'Erro ao descobrir tools',
|
|
'mcp.removeToolConfirm': 'Remover tool "{0}"?',
|
|
'mcp.editingLabel': 'Editando:',
|
|
|
|
'adb.thName': 'Nome',
|
|
'adb.thDsn': 'DSN',
|
|
'adb.thUser': 'User',
|
|
'adb.thTables': 'Tabelas',
|
|
'adb.thMtls': 'mTLS',
|
|
'adb.thWallet': 'Wallet',
|
|
'adb.thEmbed': 'Embed',
|
|
'adb.thActions': 'Acoes',
|
|
'adb.thTable': 'Tabela',
|
|
'adb.thDescription': 'Descricao',
|
|
'adb.thActive': 'Ativa',
|
|
'adb.thTableActions': 'Acoes',
|
|
'adb.walletParsed': 'Wallet analisado! {0} DSN(s): <strong>{1}</strong>. Arquivos: {2}',
|
|
'adb.savedSuccess': 'Conexao salva!',
|
|
'adb.updatedSuccess': 'Conexao atualizada!',
|
|
'adb.walletIncluded': ' Wallet incluido.',
|
|
'adb.deletedSuccess': 'Conexao excluida com sucesso!',
|
|
'adb.walletSending': 'Enviando wallet...',
|
|
'adb.walletSent': 'Wallet enviada! Arquivos: {0}',
|
|
'adb.enterTableName': 'Digite o nome da tabela.',
|
|
'adb.tableRegistered': 'Tabela {0} registrada!',
|
|
'adb.confirmRemoveTable': 'Excluir esta tabela do registro?',
|
|
'adb.tableRemoved': 'Tabela removida.',
|
|
'adb.editingLabel': 'Editando:',
|
|
|
|
'emb.errorLoadEmb': 'Erro ao carregar embeddings',
|
|
'emb.confirmDeleteEmb': 'Excluir este embedding?',
|
|
'emb.totalDocs': 'Total: {0} documentos',
|
|
|
|
'ec.errorPrefix': 'Erro: ',
|
|
'ec.errorUnknown': 'Erro desconhecido',
|
|
'ec.docs': 'documentos',
|
|
|
|
'usr.errorLoadUsers': 'Erro ao carregar usuarios',
|
|
'usr.errorCreateUser': 'Erro ao criar usuario',
|
|
'usr.errorUpdateRole': 'Erro ao atualizar role',
|
|
'usr.errorDeactivate': 'Erro ao desativar usuario',
|
|
'usr.mfaSelfOnly': 'MFA so pode ser ativado pelo proprio usuario.',
|
|
'usr.myTimezone': 'Meu Timezone',
|
|
|
|
'ws.typeDestroyLabel': 'Digite <strong>DESTROY</strong> para confirmar:',
|
|
|
|
'exp.tempAccess': 'Acesso temporario - ',
|
|
'exp.optional': 'Opcional',
|
|
'exp.ipPrompt': 'IP para liberar acesso (CIDR):',
|
|
'exp.nsgType': 'Tipo',
|
|
|
|
// ── Common ──
|
|
'common.save': 'Salvar',
|
|
'common.cancel': 'Cancelar',
|
|
'common.delete': 'Excluir',
|
|
'common.edit': 'Editar',
|
|
'common.create': 'Criar',
|
|
'common.update': 'Atualizar',
|
|
'common.close': 'Fechar',
|
|
'common.confirm': 'Confirmar',
|
|
'common.back': 'Voltar',
|
|
'common.search': 'Buscar',
|
|
'common.refresh': 'Atualizar',
|
|
'common.download': 'Download',
|
|
'common.upload': 'Upload',
|
|
'common.copy': 'Copiar',
|
|
'common.retry': 'Tentar novamente',
|
|
'common.send': 'Enviar',
|
|
'common.clear': 'Limpar',
|
|
'common.test': 'Testar',
|
|
'common.yes': 'Sim',
|
|
'common.no': 'Nao',
|
|
'common.loading': 'Carregando...',
|
|
'common.saving': 'Salvando...',
|
|
'common.select': 'Selecione...',
|
|
'common.noData': 'Nenhum dado encontrado',
|
|
'common.error': 'Erro',
|
|
'common.success': 'Sucesso',
|
|
// ── My Settings ──
|
|
'settings.title': 'Minhas Configurações',
|
|
'settings.timezone': 'Timezone',
|
|
'settings.tzDesc': 'Define o fuso horário para exibição de datas e horários.',
|
|
'settings.tzChanged': 'Timezone alterado com sucesso',
|
|
'settings.language': 'Idioma',
|
|
'settings.langDesc': 'Selecione o idioma da interface.',
|
|
'settings.changePassword': 'Alterar Senha',
|
|
'settings.currentPw': 'Senha Atual',
|
|
'settings.newPw': 'Nova Senha',
|
|
'settings.confirmPw': 'Confirmar Nova Senha',
|
|
'settings.savePw': 'Alterar Senha',
|
|
'settings.saving': 'Salvando...',
|
|
'settings.pwChanged': 'Senha alterada com sucesso',
|
|
'settings.pwRequired': 'Preencha todos os campos',
|
|
'settings.pwMismatch': 'As senhas não conferem',
|
|
'settings.pwMinLength': 'A nova senha deve ter pelo menos 8 caracteres',
|
|
'settings.federatedInfo': 'Senha e MFA são gerenciados pelo Oracle IAM Identity Domain. Configure diretamente no portal OCI.',
|
|
'settings.mfa': 'Autenticação Multi-Fator (MFA)',
|
|
// ── Terminal ──
|
|
'term.title': 'OCI CLI Terminal',
|
|
'term.subtitle': 'Execute comandos OCI CLI diretamente no navegador',
|
|
'term.config': 'Configuração',
|
|
'term.selectConfig': 'Selecione uma configuração OCI',
|
|
'term.welcome': 'Digite comandos OCI CLI. Ex: oci iam user list --compartment-id <ocid>',
|
|
'term.clearHint': 'para limpar',
|
|
'term.historyHint': 'para navegar no histórico',
|
|
'term.executing': 'Executando...',
|
|
'term.noOutput': 'Comando executado sem output',
|
|
// ── Oracle IAM ──
|
|
'iam.title': 'Oracle IAM Identity Domains',
|
|
'iam.subtitle': 'Integração OIDC para autenticação corporativa',
|
|
'iam.authMode': 'Modo de Autenticação',
|
|
'iam.authModeDesc': 'Define como os usuários se autenticam no sistema.',
|
|
'iam.modeLocal': 'Local',
|
|
'iam.modeLocalDesc': 'Usuários locais com senha',
|
|
'iam.modeOidc': 'Oracle IAM',
|
|
'iam.modeOidcDesc': 'Somente SSO corporativo',
|
|
'iam.modeBoth': 'Ambos',
|
|
'iam.modeBothDesc': 'Local + Oracle IAM',
|
|
'iam.oidcConfig': 'Configuração OIDC',
|
|
'iam.testConnection': 'Testar Conexão',
|
|
'iam.issuerUrl': 'Issuer URL (Identity Domain)',
|
|
'iam.clientId': 'Client ID',
|
|
'iam.clientSecret': 'Client Secret',
|
|
'iam.redirectUri': 'Redirect URI',
|
|
'iam.groupMapping': 'Mapeamento de Grupos',
|
|
'iam.groupMappingDesc': 'Mapeie os grupos do OCI Identity Domain para as roles do sistema.',
|
|
'iam.save': 'Salvar Configuração',
|
|
'iam.saving': 'Salvando...',
|
|
'iam.saved': 'Configuração salva com sucesso',
|
|
'iam.issuerRequired': 'Issuer URL é obrigatório',
|
|
'iam.testOk': 'Conexão OK',
|
|
'iam.testInvalid': 'Resposta inválida do discovery endpoint',
|
|
'iam.testFail': 'Falha na conexão',
|
|
};
|
|
|
|
export default pt;
|