feat: add Portuguese (PT-BR) translation (#132)
- Add pt.js translation file with complete PT-BR translations - Add Portuguese option to language selector in settings - Load pt.js translation file in index.html Based on PR #108 Co-authored-by: Pedro Farias <feliperodriguesf62@gmail.com> Co-authored-by: Wha1eChai <whaleora@gmail.com>
This commit is contained in:
261
public/js/translations/pt.js
Normal file
261
public/js/translations/pt.js
Normal file
@@ -0,0 +1,261 @@
|
||||
/**
|
||||
* Portuguese (PT-BR) Translations
|
||||
* Based on contribution by Pedro Farias in PR #108
|
||||
*/
|
||||
window.translations = window.translations || {};
|
||||
window.translations.pt = {
|
||||
dashboard: "Painel",
|
||||
models: "Modelos",
|
||||
accounts: "Contas",
|
||||
logs: "Logs",
|
||||
settings: "Configurações",
|
||||
online: "ONLINE",
|
||||
offline: "OFFLINE",
|
||||
totalAccounts: "TOTAL DE CONTAS",
|
||||
active: "ATIVO",
|
||||
operational: "Operacional",
|
||||
rateLimited: "TAXA LIMITADA",
|
||||
quotasDepleted: "{count}/{total} Cotas Esgotadas",
|
||||
quotasDepletedTitle: "COTAS ESGOTADAS",
|
||||
outOfTracked: "De {total} Rastreados",
|
||||
cooldown: "Resfriamento",
|
||||
searchPlaceholder: "Buscar modelos...",
|
||||
allAccounts: "Todas as Contas",
|
||||
stat: "ESTATÍSTICA",
|
||||
modelIdentity: "IDENTIDADE DO MODELO",
|
||||
globalQuota: "COTA GLOBAL",
|
||||
nextReset: "PRÓXIMO RESET",
|
||||
distribution: "DISTRIBUIÇÃO DE CONTAS",
|
||||
systemConfig: "Configuração do Sistema",
|
||||
language: "Idioma",
|
||||
pollingInterval: "Intervalo de Atualização",
|
||||
maxDisplayLogs: "Máximo de Logs Exibidos",
|
||||
showExhausted: "Mostrar Modelos Esgotados",
|
||||
showExhaustedDesc: "Exibir modelos mesmo se tiverem 0% de cota restante.",
|
||||
compactMode: "Modo Compacto",
|
||||
compactModeDesc: "Reduzir espaçamento nas tabelas para maior densidade de informação.",
|
||||
saveChanges: "Salvar Alterações",
|
||||
autoScroll: "Rolagem Automática",
|
||||
clearLogs: "Limpar Logs",
|
||||
accountManagement: "Gerenciamento de Contas",
|
||||
manageTokens: "Gerenciar tokens e estados de autorização de Contas Google",
|
||||
addAccount: "Adicionar Conta",
|
||||
status: "STATUS",
|
||||
enabled: "HABILITADO",
|
||||
health: "SAÚDE",
|
||||
accountEmail: "CONTA (EMAIL)",
|
||||
source: "FONTE",
|
||||
projectId: "ID DO PROJETO",
|
||||
sessionState: "ESTADO DA SESSÃO",
|
||||
operations: "OPERAÇÕES",
|
||||
delete: "Excluir",
|
||||
confirmDelete: "Tem certeza de que deseja remover esta conta?",
|
||||
cannotDeleteDatabase: "Não é possível excluir: Esta conta é do banco de dados Antigravity (somente leitura)",
|
||||
connectGoogle: "Conectar Conta Google",
|
||||
reauthenticated: "reautenticado",
|
||||
added: "adicionado",
|
||||
successfully: "com sucesso",
|
||||
accountAddedSuccess: "Conta adicionada com sucesso",
|
||||
accountReauthSuccess: "Conta reautenticada com sucesso",
|
||||
failedToGetAuthUrl: "Falha ao obter URL de autenticação",
|
||||
failedToStartOAuth: "Falha ao iniciar fluxo OAuth",
|
||||
oauthInProgress: "OAuth em andamento. Por favor, conclua a autenticação na janela popup...",
|
||||
family: "Família",
|
||||
model: "Modelo",
|
||||
activeSuffix: "Ativo",
|
||||
// Tabs
|
||||
tabInterface: "Interface",
|
||||
tabClaude: "Claude CLI",
|
||||
tabModels: "Modelos",
|
||||
tabServer: "Configurações do Servidor",
|
||||
// Dashboard
|
||||
linkedAccounts: "Contas Vinculadas",
|
||||
noSignal: "SEM SINAL DETECTADO",
|
||||
establishingUplink: "ESTABELECENDO LINK...",
|
||||
goToAccounts: "Ir para Contas",
|
||||
// Settings - Models
|
||||
modelsDesc: "Configurar visibilidade, fixação e roteamento de requisições de modelos.",
|
||||
modelsPageDesc: "Cota e status em tempo real para todos os modelos disponíveis.",
|
||||
showHidden: "Mostrar Modelos Ocultos",
|
||||
modelId: "ID do Modelo",
|
||||
actions: "Ações",
|
||||
pinToTop: "Fixar no topo",
|
||||
toggleVisibility: "Alternar Visibilidade",
|
||||
noModels: "NENHUM MODELO DETECTADO",
|
||||
modelMappingHint: "Roteamento de modelo no servidor. Usuários do Claude Code: veja a aba 'Claude CLI' para configuração no cliente.",
|
||||
modelMapping: "Mapeamento (ID do Modelo Alvo)",
|
||||
// Settings - Claude
|
||||
proxyConnection: "Conexão Proxy",
|
||||
modelSelection: "Seleção de Modelo",
|
||||
defaultModelAliases: "ALIASES DE MODELO PADRÃO",
|
||||
opusAlias: "Alias Opus",
|
||||
sonnetAlias: "Alias Sonnet",
|
||||
haikuAlias: "Alias Haiku",
|
||||
claudeSettingsAlertPrefix: "As configurações abaixo modificam diretamente",
|
||||
claudeSettingsAlertSuffix: "Reinicie o Claude CLI para aplicar.",
|
||||
applyToClaude: "Aplicar ao Claude CLI",
|
||||
// Settings - Server
|
||||
port: "Porta",
|
||||
uiVersion: "Versão da UI",
|
||||
debugMode: "Modo de Depuração",
|
||||
environment: "Ambiente",
|
||||
serverReadOnly: "Configurações gerenciadas via config.json. Reinicie o servidor para aplicar alterações.",
|
||||
advancedSettings: "Configurações Avançadas",
|
||||
reloadConfigTitle: "Recarregar Config de Contas",
|
||||
reloadConfigDesc: "Forçar recarregamento de accounts.json do disco",
|
||||
reload: "Recarregar",
|
||||
// Config Specific
|
||||
primaryModel: "Modelo Primário",
|
||||
subAgentModel: "Modelo Sub-agente",
|
||||
advancedOverrides: "Substituições de Modelo Padrão",
|
||||
opusModel: "Modelo Opus",
|
||||
sonnetModel: "Modelo Sonnet",
|
||||
haikuModel: "Modelo Haiku",
|
||||
authToken: "Token de Autenticação",
|
||||
saveConfig: "Salvar nas configurações do Claude CLI",
|
||||
envVar: "Env",
|
||||
// New Keys
|
||||
systemName: "ANTIGRAVITY",
|
||||
systemDesc: "SISTEMA DE PROXY CLAUDE",
|
||||
connectGoogleDesc: "Conecte uma conta Google Workspace para aumentar seu limite de cota da API. A conta será usada para fazer proxy das requisições Claude via Antigravity.",
|
||||
useCliCommand: "Usar Comando CLI",
|
||||
close: "Fechar",
|
||||
requestVolume: "Volume de Requisições",
|
||||
filter: "Filtrar",
|
||||
all: "Todos",
|
||||
none: "Nenhum",
|
||||
noDataTracked: "Nenhum dado rastreado ainda",
|
||||
selectFamilies: "Selecione famílias para exibir",
|
||||
selectModels: "Selecione modelos para exibir",
|
||||
noLogsMatch: "Nenhum log corresponde ao filtro",
|
||||
connecting: "CONECTANDO",
|
||||
main: "Principal",
|
||||
system: "Sistema",
|
||||
refreshData: "Atualizar Dados",
|
||||
connectionLost: "Conexão Perdida",
|
||||
lastUpdated: "Última Atualização",
|
||||
grepLogs: "grep logs...",
|
||||
noMatchingModels: "Nenhum modelo correspondente",
|
||||
typeToSearch: "Digite para buscar ou selecione...",
|
||||
or: "OU",
|
||||
refreshingAccount: "Atualizando {email}...",
|
||||
refreshedAccount: "Atualizado {email}",
|
||||
refreshFailed: "Falha na atualização",
|
||||
accountToggled: "Conta {email} {status}",
|
||||
toggleFailed: "Falha ao alternar",
|
||||
reauthenticating: "Reautenticando {email}...",
|
||||
authUrlFailed: "Falha ao obter URL de autenticação",
|
||||
deletedAccount: "Excluído {email}",
|
||||
deleteFailed: "Falha ao excluir",
|
||||
accountsReloaded: "Contas recarregadas",
|
||||
reloadFailed: "Falha ao recarregar",
|
||||
claudeConfigSaved: "Configuração do Claude salva",
|
||||
claudeConfigRestored: "Claude CLI restaurado para o padrão",
|
||||
saveConfigFailed: "Falha ao salvar configuração",
|
||||
restoreConfigFailed: "Falha ao restaurar configuração",
|
||||
restoreDefault: "Restaurar Padrão",
|
||||
confirmRestoreTitle: "Confirmar Restauração",
|
||||
confirmRestoreMessage: "Tem certeza de que deseja restaurar o Claude CLI para as configurações padrão? Isso removerá a configuração de proxy.",
|
||||
confirmRestore: "Confirmar Restauração",
|
||||
claudeActive: "Claude Ativo",
|
||||
claudeEmpty: "Claude Vazio",
|
||||
geminiActive: "Gemini Ativo",
|
||||
geminiEmpty: "Gemini Vazio",
|
||||
synced: "SINCRONIZADO",
|
||||
syncing: "SINCRONIZANDO...",
|
||||
// Time range labels
|
||||
last1Hour: "Última 1H",
|
||||
last6Hours: "Últimas 6H",
|
||||
last24Hours: "Últimas 24H",
|
||||
last7Days: "Últimos 7D",
|
||||
allTime: "Todo o Período",
|
||||
groupBy: "Agrupar Por",
|
||||
// Additional
|
||||
reloading: "Recarregando...",
|
||||
reloaded: "Recarregado",
|
||||
lines: "linhas",
|
||||
enabledSeeLogs: "Habilitado (Ver Logs)",
|
||||
production: "Produção",
|
||||
configSaved: "Configuração Salva",
|
||||
enterPassword: "Digite a Senha da Web UI:",
|
||||
ready: "PRONTO",
|
||||
depleted: "Esgotado",
|
||||
timeH: "H",
|
||||
timeM: "M",
|
||||
familyClaude: "Claude",
|
||||
familyGemini: "Gemini",
|
||||
familyOther: "Outro",
|
||||
enabledStatus: "habilitado",
|
||||
disabledStatus: "desabilitado",
|
||||
logLevelInfo: "INFO",
|
||||
logLevelSuccess: "SUCESSO",
|
||||
logLevelWarn: "AVISO",
|
||||
logLevelError: "ERRO",
|
||||
totalColon: "Total:",
|
||||
todayColon: "Hoje:",
|
||||
hour1Colon: "1H:",
|
||||
frequentModels: "Frequentes",
|
||||
smartTitle: "Auto-selecionar os 5 modelos mais usados (24h)",
|
||||
activeCount: "{count} Ativos",
|
||||
allCaps: "TODOS",
|
||||
claudeCaps: "CLAUDE",
|
||||
geminiCaps: "GEMINI",
|
||||
systemInfo: "Informações do Sistema",
|
||||
refresh: "Atualizar",
|
||||
runtimeConfig: "Configuração em Tempo de Execução",
|
||||
debugDesc: "Habilitar log detalhado (Ver aba Logs)",
|
||||
networkRetry: "Configurações de Retentativa de Rede",
|
||||
maxRetries: "Máximo de Retentativas",
|
||||
retryBaseDelay: "Atraso Base de Retentativa (ms)",
|
||||
retryMaxDelay: "Atraso Máximo de Retentativa (ms)",
|
||||
persistentSessions: "Sessões Persistentes",
|
||||
persistTokenDesc: "Salvar sessões OAuth no disco para reinicializações mais rápidas",
|
||||
rateLimiting: "Limitação de Taxa de Conta & Timeouts",
|
||||
defaultCooldown: "Tempo de Resfriamento Padrão",
|
||||
maxWaitThreshold: "Limiar Máximo de Espera (Sticky)",
|
||||
maxWaitDesc: "Tempo máximo para aguardar uma conta sticky resetar antes de trocar.",
|
||||
saveConfigServer: "Salvar Configuração",
|
||||
serverRestartAlert: "Alterações salvas em {path}. Reinicie o servidor para aplicar algumas configurações.",
|
||||
changePassword: "Alterar Senha da WebUI",
|
||||
changePasswordDesc: "Atualizar a senha para acessar este painel",
|
||||
currentPassword: "Senha Atual",
|
||||
newPassword: "Nova Senha",
|
||||
confirmNewPassword: "Confirmar Nova Senha",
|
||||
passwordEmptyDesc: "Deixe em branco se nenhuma senha estiver definida",
|
||||
passwordLengthDesc: "Pelo menos 6 caracteres",
|
||||
passwordConfirmDesc: "Redigite a nova senha",
|
||||
cancel: "Cancelar",
|
||||
passwordsNotMatch: "Senhas não coincidem",
|
||||
passwordTooShort: "A senha deve ter pelo menos 6 caracteres",
|
||||
// Dashboard drill-down
|
||||
clickToViewAllAccounts: "Clique para ver todas as contas",
|
||||
clickToViewModels: "Clique para ver a página de Modelos",
|
||||
clickToViewLimitedAccounts: "Clique para ver contas limitadas",
|
||||
clickToFilterClaude: "Clique para filtrar modelos Claude",
|
||||
clickToFilterGemini: "Clique para filtrar modelos Gemini",
|
||||
// Accounts page
|
||||
searchAccounts: "Buscar contas...",
|
||||
noAccountsYet: "Nenhuma Conta Ainda",
|
||||
noAccountsDesc: "Comece adicionando uma conta Google via OAuth, ou use o comando CLI para importar credenciais.",
|
||||
addFirstAccount: "Adicione Sua Primeira Conta",
|
||||
noSearchResults: "Nenhuma conta corresponde à sua busca",
|
||||
clearSearch: "Limpar Busca",
|
||||
disabledAccountsNote: "<strong>Contas desabilitadas</strong> não serão usadas para roteamento de requisições, mas permanecem na configuração. As estatísticas do painel incluem apenas contas habilitadas.",
|
||||
dangerousOperation: "⚠️ Operação Perigosa",
|
||||
confirmDeletePrompt: "Tem certeza de que deseja excluir a conta",
|
||||
deleteWarning: "⚠️ Esta ação não pode ser desfeita. Todas as configurações e registros históricos serão excluídos permanentemente.",
|
||||
// OAuth progress
|
||||
oauthWaiting: "Aguardando autorização OAuth...",
|
||||
oauthWaitingDesc: "Por favor, complete a autenticação na janela popup. Isso pode levar até 2 minutos.",
|
||||
oauthCancelled: "Autorização OAuth cancelada",
|
||||
oauthTimeout: "⏱️ Autorização OAuth expirou. Por favor, tente novamente.",
|
||||
oauthWindowClosed: "A janela OAuth foi fechada. A autorização pode estar incompleta.",
|
||||
cancelOAuth: "Cancelar",
|
||||
// MCP CLI & Gemini 1M
|
||||
mcpCliExperimental: "CLI MCP Experimental",
|
||||
mcpCliDesc: "Habilita integração MCP experimental para uso confiável de ferramentas com consumo reduzido de contexto.",
|
||||
gemini1mMode: "Modo de Contexto Gemini 1M",
|
||||
gemini1mDesc: "Adiciona sufixo [1m] aos modelos Gemini para suporte a janela de contexto de 1M.",
|
||||
gemini1mWarning: "⚠ Contexto grande pode reduzir o desempenho do Gemini-3-Pro.",
|
||||
clickToSet: "Clique para configurar...",
|
||||
};
|
||||
Reference in New Issue
Block a user