* feat(model-select-modal): highlight added models and support bulk selection - Add addedModelValues prop to highlight already-added models with primary color - Sort models alphabetically per provider, with added models floated to top - Replace green highlight with primary brand color (orange #E56A4A) - Use check icon (10px) inline with model name instead of check_circle - Replace Done button with info bar explaining click-to-toggle behavior - Add ProviderIcon to provider group headers replacing colored dot - Import ProviderIcon, remove unused Button import * feat(cli-tools): wire addedModelValues, onDeselect, and auto-save to model select modals - Pass selectedModels as addedModelValues to ModelSelectModal in OpenCode and Copilot cards - Add onDeselect handler to remove model from list on second click - Set closeOnSelect=false to allow bulk model selection - Remove manual setModalOpen(false) from onSelect callbacks - Add saveModels() silent auto-save triggered on modal close (OpenCodeToolCard) - Use useRef to track latest selectedModels in closure-safe way * feat(modal): functional traffic light close button with hover icon and tooltip - Make red dot a clickable button that closes the modal - Show ✕ icon inside red dot on hover via group-hover opacity transition - Gray out yellow and green dots (cursor-not-allowed, no tooltip) - Increase dot size from w-3 h-3 to w-4 h-4 - Add Tooltip with brand-matched color #FF5F56 on red dot - Remove X close button from modal header * feat(tooltip): add color prop for themed tooltip backgrounds * feat(i18n): add translations for model select info bar and close tooltip - Add 'Click to add, click again to remove. Changes are saved automatically.' to all 32 locales - Add 'Close' translation to all 32 locales * fix(ui): address code review feedback on modal UX and auto-save - Modal: remove showCloseButton prop, use showTrafficLights for header condition, hide traffic lights on mobile (hidden md:flex), add mobile X button (md:hidden) with aria-label, add aria-label and title on traffic light close button - OpenCodeToolCard: validate activeModel membership before saving — fallback to models[0] or empty string; clear/reassign activeModel on deselect when removed model was the active one - CopilotToolCard: add useRef + selectedModelsRef, add saveModels() using /api/cli-tools/copilot-settings, wire auto-save on modal close - ModelSelectModal: fix JSX formatting — separate info bar closing div from Search comment onto its own line
192 lines
8.9 KiB
JSON
192 lines
8.9 KiB
JSON
{
|
|
"Cancel": "Cancelar",
|
|
"Delete": "Eliminar",
|
|
"Edit": "Editar",
|
|
"Save": "Guardar",
|
|
"Close": "Fechar",
|
|
"Add": "Adicionar",
|
|
"Remove": "Remover",
|
|
"Settings": "Definições",
|
|
"Profile": "Perfil",
|
|
"Dashboard": "Painel de controlo",
|
|
"Logout": "Terminar sessão",
|
|
"Login": "Iniciar sessão",
|
|
"Providers": "Fornecedores",
|
|
"Usage": "Estatísticas",
|
|
"API Key": "Chave API",
|
|
"Connected": "Ligado",
|
|
"Disconnected": "Desligado",
|
|
"Active": "Ativo",
|
|
"Inactive": "Inativo",
|
|
"Success": "Sucesso",
|
|
"Failed": "Falha",
|
|
"Error": "Erro",
|
|
"Warning": "Aviso",
|
|
"Info": "Informações",
|
|
"Loading": "A carregar",
|
|
"Search": "Pesquisar",
|
|
"Filter": "Filtrar",
|
|
"Sort": "Ordenar",
|
|
"Export": "Exportar",
|
|
"Import": "Importar",
|
|
"Refresh": "Atualizar",
|
|
"Back": "Voltar",
|
|
"Next": "Seguinte",
|
|
"Previous": "Anterior",
|
|
"Submit": "Enviar",
|
|
"Confirm": "Confirmar",
|
|
"Yes": "Sim",
|
|
"No": "Não",
|
|
"OK": "OK",
|
|
"Apply": "Aplicar",
|
|
"Reset": "Repor",
|
|
"Clear": "Limpar",
|
|
"Select": "Selecionar",
|
|
"Upload": "Carregar",
|
|
"Download": "Descarregar",
|
|
"Copy": "Copiar",
|
|
"Paste": "Colar",
|
|
"Cut": "Cortar",
|
|
"Undo": "Desfazer",
|
|
"Redo": "Refazer",
|
|
"Name": "Nome",
|
|
"Description": "Descrição",
|
|
"Status": "Estado",
|
|
"Type": "Tipo",
|
|
"Date": "Data",
|
|
"Time": "Hora",
|
|
"Created": "Criado",
|
|
"Updated": "Atualizado",
|
|
"Actions": "Ações",
|
|
"Details": "Detalhes",
|
|
"View": "Ver",
|
|
"New": "Novo",
|
|
"Total": "Total",
|
|
"Count": "Contagem",
|
|
"Price": "Preço",
|
|
"Cost": "Custo",
|
|
"Free": "Gratuito",
|
|
"Paid": "Pago",
|
|
"Enable": "Ativar",
|
|
"Disable": "Desativar",
|
|
"Enabled": "Ativado",
|
|
"Disabled": "Desativado",
|
|
"Online": "Online",
|
|
"Offline": "Offline",
|
|
"Available": "Disponível",
|
|
"Unavailable": "Indisponível",
|
|
"Required": "Obrigatório",
|
|
"Optional": "Opcional",
|
|
"Default": "Predefinição",
|
|
"Custom": "Personalizado",
|
|
"Advanced": "Avançado",
|
|
"Basic": "Básico",
|
|
"Help": "Ajuda",
|
|
"Support": "Suporte",
|
|
"Documentation": "Documentação",
|
|
"Version": "Versão",
|
|
"Language": "Idioma",
|
|
"Theme": "Tema",
|
|
"Light": "Claro",
|
|
"Dark": "Escuro",
|
|
"Auto": "Automático",
|
|
"Endpoint": "Ponto final",
|
|
"Combos": "Combinações",
|
|
"Quota Tracker": "Rastreador de quota",
|
|
"MITM": "MITM",
|
|
"CLI Tools": "Ferramentas CLI",
|
|
"Console Log": "Registo da consola",
|
|
"System": "Sistema",
|
|
"Debug": "Depuração",
|
|
"Shutdown": "Encerramento",
|
|
"Close Proxy": "Fechar proxy",
|
|
"Are you sure you want to close the proxy server?": "Tem a certeza de que deseja fechar o servidor proxy?",
|
|
"Server Disconnected": "Servidor desligado",
|
|
"The proxy server has been stopped.": "O servidor proxy foi parado.",
|
|
"Reload Page": "Recarregar página",
|
|
"Service is running in terminal. You can close this web page. Shutdown will stop the service.": "O serviço está em execução no terminal. Pode fechar esta página da web. O encerramento irá parar o serviço.",
|
|
"Manage your AI provider connections": "Gerir as suas ligações de fornecedor de IA",
|
|
"Model combos with fallback": "Combinações de modelos com contingência",
|
|
"Monitor your API usage, token consumption, and request logs": "Monitorize a sua utilização de API, consumo de fichas e registos de pedidos",
|
|
"Intercept CLI tool traffic and route through 9Router": "Intercete o tráfego da ferramenta CLI e encaminhe através do 9Router",
|
|
"Configure CLI tools": "Configurar ferramentas CLI",
|
|
"API endpoint configuration": "Configuração do ponto final da API",
|
|
"Manage your preferences": "Gerir as suas preferências",
|
|
"Debug translation flow between formats": "Depurar fluxo de tradução entre formatos",
|
|
"Live server console output": "Saída da consola do servidor em direto",
|
|
"Create model combos with fallback support": "Criar combinações de modelos com suporte a contingência",
|
|
"Local Mode": "Modo local",
|
|
"Running on your machine": "Em execução na sua máquina",
|
|
"Database Location": "Localização da base de dados",
|
|
"Download Backup": "Descarregar cópia de segurança",
|
|
"Import Backup": "Importar cópia de segurança",
|
|
"Database backup downloaded": "Cópia de segurança da base de dados descarregada",
|
|
"Database imported successfully": "Base de dados importada com sucesso",
|
|
"Security": "Segurança",
|
|
"Require login": "Requer início de sessão",
|
|
"When ON, dashboard requires password. When OFF, access without login.": "Quando ATIVO, o painel requer palavra-passe. Quando DESATIVO, acesso sem iniciar sessão.",
|
|
"Current Password": "Palavra-passe atual",
|
|
"Enter current password": "Introduza a palavra-passe atual",
|
|
"New Password": "Nova palavra-passe",
|
|
"Enter new password": "Introduza a nova palavra-passe",
|
|
"Confirm New Password": "Confirmar nova palavra-passe",
|
|
"Confirm new password": "Confirme a nova palavra-passe",
|
|
"Update Password": "Atualizar palavra-passe",
|
|
"Set Password": "Definir palavra-passe",
|
|
"Password updated successfully": "Palavra-passe atualizada com sucesso",
|
|
"Passwords do not match": "As palavras-passe não coincidem",
|
|
"Routing Strategy": "Estratégia de encaminhamento",
|
|
"Round Robin": "Round Robin",
|
|
"Cycle through accounts to distribute load": "Passar por contas para distribuir carga",
|
|
"Sticky Limit": "Limite aderente",
|
|
"Calls per account before switching": "Chamadas por conta antes de mudar",
|
|
"Network": "Rede",
|
|
"Outbound Proxy": "Proxy de saída",
|
|
"Enable proxy for OAuth + provider outbound requests.": "Ativar proxy para OAuth + pedidos de saída do fornecedor.",
|
|
"Proxy URL": "URL do proxy",
|
|
"Leave empty to inherit existing env proxy (if any).": "Deixe em branco para herdar o proxy env existente (se houver).",
|
|
"No Proxy": "Sem proxy",
|
|
"Comma-separated hostnames/domains to bypass the proxy.": "Nomes de host/domínios separados por vírgulas para contornar o proxy.",
|
|
"Test proxy URL": "Testar URL do proxy",
|
|
"Proxy settings applied": "Definições de proxy aplicadas",
|
|
"Proxy enabled": "Proxy ativado",
|
|
"Proxy disabled": "Proxy desativado",
|
|
"Proxy test OK": "Teste de proxy OK",
|
|
"Proxy test failed": "Falha no teste de proxy",
|
|
"Please enter a Proxy URL to test": "Introduza um URL de proxy para testar",
|
|
"Observability": "Observabilidade",
|
|
"Enable Observability": "Ativar observabilidade",
|
|
"Turn request detail recording on/off globally": "Ativar/desativar globalmente o registo de detalhes de pedidos",
|
|
"Max Records": "Número máximo de registos",
|
|
"Maximum request detail records to keep (older records are auto-deleted)": "Número máximo de registos de detalhes de pedidos a manter (registos mais antigos são eliminados automaticamente)",
|
|
"Batch Size": "Tamanho do lote",
|
|
"Number of items to accumulate before writing to database (higher = better performance)": "Número de itens a acumular antes de gravar na base de dados (mais alto = melhor desempenho)",
|
|
"Flush Interval (ms)": "Intervalo de limpeza (ms)",
|
|
"Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "Tempo máximo de espera antes de limpar o buffer (evita perda de dados durante tráfego baixo)",
|
|
"Max JSON Size (KB)": "Tamanho máximo de JSON (KB)",
|
|
"Maximum size for each JSON field (request/response) before truncation": "Tamanho máximo para cada campo JSON (pedido/resposta) antes do truncamento",
|
|
"All data stored on your machine": "Todos os dados armazenados na sua máquina",
|
|
"MITM Server": "Servidor MITM",
|
|
"Running": "Em execução",
|
|
"Stopped": "Parado",
|
|
"Cert": "Certificado",
|
|
"Server": "Servidor",
|
|
"Purpose:": "Finalidade:",
|
|
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Utilize o Antigravity IDE e GitHub Copilot → com QUALQUER fornecedor/modelo do 9Router",
|
|
"How it works:": "Como funciona:",
|
|
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Pedido do Antigravity/Copilot IDE → Redirecionamento DNS para localhost:443 → Proxy MITM interceta → 9Router → resposta para Antigravity/Copilot",
|
|
"No API keys — create one in Keys page": "Sem chaves de API — crie uma na página Chaves",
|
|
"sk_9router (default)": "sk_9router (predefinição)",
|
|
"Server started": "Servidor iniciado",
|
|
"Failed to start server": "Falha ao iniciar o servidor",
|
|
"Server stopped — all DNS cleared": "Servidor parado — todo DNS foi limpo",
|
|
"Failed to stop server": "Falha ao parar o servidor",
|
|
"Sudo password is required": "Palavra-passe sudo é necessária",
|
|
"Stop Server": "Parar servidor",
|
|
"Start Server": "Iniciar servidor",
|
|
"Enable DNS per tool below to activate interception": "Ativar DNS para cada ferramenta abaixo para ativar a interceção",
|
|
"Sudo Password Required": "Palavra-passe Sudo necessária",
|
|
"Enter your sudo password to start/stop MITM server": "Introduza a sua palavra-passe sudo para iniciar/parar o servidor MITM",
|
|
"Sudo Password": "Palavra-passe sudo",
|
|
"Click to add, click again to remove. Changes are saved automatically.": "Clique para adicionar, clique novamente para remover. As alterações são guardadas automaticamente."
|
|
}
|