const pt: Record<string, string> = {
  // ── Sidebar ──
  'nav.principal': 'Principal',
  'nav.config': 'Configuração',
  'nav.admin': 'Administração',
  'nav.chat': 'Chat Agent',
  'nav.terraform': 'Terraform',
  'nav.promptGen': 'Prompt Generator',
  'nav.workspaces': 'Workspaces',
  'nav.explorer': 'OCI Explorer',
  '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.users': 'Usuários',
  'nav.mfa': 'MFA',
  'nav.audit': 'Audit Log',
  'sidebar.lightMode': 'Modo claro',
  'sidebar.darkMode': 'Modo escuro',
  'sidebar.logout': 'Sair',
  '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',

  // ── 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',

  // ── 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:',

  // ── Downloads ──
  'dl.title': 'Downloads',
  'dl.subtitle': 'Baixe relatorios CIS gerados',
  'dl.allTenancies': 'Todas as Tenancies',
  'dl.allSections': 'Todas as secoes',
  'dl.reports': 'relatorio(s)',
  'dl.refresh': 'Atualizar',
  'dl.loadError': 'Erro ao carregar relatorios',
  'dl.loading': 'Carregando relatorios...',
  'dl.noReports': 'Nenhum relatorio concluido.',
  'dl.noReportsHint': 'Execute um scan na aba Reports para gerar relatorios.',
  'dl.files': 'arquivo(s)',
  'dl.hide': 'Ocultar',
  'dl.viewFiles': 'Ver Arquivos',
  'dl.loadingFiles': 'Carregando arquivos...',
  'dl.noFiles': 'Nenhum arquivo encontrado',
  'dl.filesInSections': 'arquivo(s) em {0} secoes',

  // ── 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',

  // ── 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',

  // ── 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',
};

export default pt;
