RSS Git Download  Clone
Raw Blame History 35kB 860 lines
const strings = {
  error: {
    server_error: "Erro no servidor, tente novamente",
    aiPromptTooLong: "O prompt de AI é longo demais (máximo de 4096 caracteres)",
  },
  title: {
    donate: "Doe",
    donateTitle: "Apoie o P3X Redis UI",
    donateDescription: "O P3X Redis UI é um projeto gratuito e de código aberto. Os custos de manutenção do aplicativo, recursos de IA, imagens Docker, servidores e infraestrutura saem do bolso do desenvolvedor. Se você acha esta ferramenta útil, considere apoiar seu desenvolvimento contínuo com uma doação. Cada contribuição ajuda a manter o projeto vivo e crescendo. Obrigado!",
    jsonRecursive: "Expandindo todas as folhas",
    name: "P3X Redis UI",
    nameDonated: "P3X Redis UI+",
    main: "Você pode escolher uma conexão Redis para conectar no menu inferior esquerdo.",
    statistics: "Estatísticas",
    error: "Erro",
    connectingRedis: "Conectando a Redis ...",
    socketioConnectError: "Erro Socket.IO",
    db: "DB",
    server: "Servidor",
    clients: "Clientes",
    memory: "Memória",
    persistence: "Persistência",
    stats: "Estatísticas",
    replication: "Replicação",
    cpu: "CPU",
    cluster: "Cluster",
    modules: "Módulos",
    errorstats: "Estatísticas de erros",
    commandstats: "Estatísticas de comandos",
    latencystats: "Estatísticas de latência",
    keysizes: "Tamanhos de chaves",
    threads: "Threads"
  },
  confirm: {
    dropIndex: "Tem certeza de que deseja excluir este índice?",
    uploadBuffer: "Tem certeza de que deseja fazer upload desses dados binários?",
    uploadBufferDone: "Os dados binários são carregados",
    uploadBufferDoneAndSave: "Os dados binários são carregados e salvos no servidor",
    title: "Confirmar",
    alert: "Alerta",
    info: "Informações",
    deleteListItem: "Tem certeza de que deseja excluir este item da lista?",
    deleteHashKey: "Tem certeza de que deseja excluir este item de chave hash?",
    deleteStreamTimestamp: "Tem certeza de que deseja excluir o carimbo de data/hora deste stream?",
    deleteSetMember: "Tem certeza de que deseja excluir este membro do conjunto?",
    deleteZSetMember: "Tem certeza de que deseja excluir este membro do conjunto classificado?",
    deleteConnection: "Confirmar",
    deleteConnectionText: "Tem certeza de que deseja excluir esta conexão Redis?",
    deleteNode: "Tem certeza de que deseja excluir este nó Redis?",
    delete: "Excluir?",
    deleteAllKeys: opts => {
      return `Exclua esta árvore e todas as suas chaves (${opts.key})?`;
    },
    deleteSearchKeys: opts => {
      return `Tem certeza de que deseja excluir todas as chaves correspondentes a "${opts.pattern}"? ${opts.count} chaves encontradas.`;
    },
    socketioConnectError: "Socket.IO não consegue se conectar ao servidor, você pode recarregar e tentar resolver o erro de conexão sozinho, o cliente não sabe como resolvê-lo sozinho.",
    socketioAuthRequired: "É necessária autorização Socket.IO. Autentique com HTTP Basic Auth (nome de usuário/senha) e recarregue.",
    invalidCredentials: "Nome de usuário ou senha inválidos.",
    deleteKey: "Tem certeza de que deseja excluir esta chave?",
    rename: {
      title: "Tem certeza de que deseja renomear esta chave?",
      textContent: "Esta ação renomeia a chave permanentemente.",
      placeholder: "A chave Redis (obrigatória)"
    },
    ttl: {
      title: "Tem certeza de que deseja alterar o TTL desta chave?",
      textContent: "Alterar TTL atualiza o tempo de vida desta chave. Deixe em branco para manter esta chave para sempre.",
      placeholder: "O TTL da chave Redis (inteiro ou vazio)",
      placeholderPlaceholder: "Vazio significa que persiste para sempre; caso contrário, insira um número inteiro.",
      convertTextToTime: "Converter texto em hora",
      convertTextToTimePlaceholder: "Por exemplo. 1d será 86400"
    }
  },
  language: {
    ar: "العربية / Arabic",
    az: "Azərbaycanca / Azerbaijani",
    be: "Беларуская / Belarusian",
    bg: "Български / Bulgarian",
    bn: "বাংলা / Bengali",
    cs: "Čeština / Czech",
    da: "Dansk / Danish",
    de: "Deutsch / German",
    el: "Ελληνικά / Greek",
    en: "English",
    es: "Español / Spanish",
    et: "Eesti / Estonian",
    fi: "Suomi / Finnish",
    fil: "Filipino / Filipino",
    fr: "Français / French",
    he: "עברית / Hebrew",
    hr: "Hrvatski / Croatian",
    hu: "Magyar / Hungarian",
    hy: "Հայերեն / Armenian",
    id: "Bahasa Indonesia / Indonesian",
    it: "Italiano / Italian",
    ja: "日本語 / Japanese",
    ka: "ქართული / Georgian",
    kk: "Қазақша / Kazakh",
    km: "ខ្មែរ / Khmer",
    ko: "한국어 / Korean",
    ky: "Кыргызча / Kyrgyz",
    lt: "Lietuvių / Lithuanian",
    mk: "Македонски / Macedonian",
    ms: "Bahasa Melayu / Malay",
    ne: "नेपाली / Nepali",
    nl: "Nederlands / Dutch",
    no: "Norsk / Norwegian",
    pl: "Polski / Polish",
    "pt-BR": "Português (Brasil) / Portuguese (Brazil)",
    "pt-PT": "Português / Portuguese",
    ro: "Română / Romanian",
    ru: "Русский / Russian",
    sk: "Slovenčina / Slovak",
    sl: "Slovenščina / Slovenian",
    sr: "Српски / Serbian",
    sv: "Svenska / Swedish",
    tg: "Тоҷикӣ / Tajik",
    th: "ไทย / Thai",
    tr: "Türkçe / Turkish",
    uk: "Українська / Ukrainian",
    vi: "Tiếng Việt / Vietnamese",
    "zh-HK": "中文(香港) / Chinese (Hong Kong)",
    "zh-TW": "中文(台灣) / Chinese (Taiwan)",
    zn: "中文 / Chinese",
    bs: 'Bosanski / Bosnian',
    si: 'සිංහල / Sinhala',
    sw: 'Kiswahili / Swahili',
    ta: 'தமிழ் / Tamil'
  },
  intention: {
    copy: "Copiar",
    downloadBuffer: "Baixar binário",
    setBuffer: "Carregar binário",
    exportKeys: "Exportar chaves",
    exportAllKeys: (opts) => `Exportar todas as ${opts.count} chaves`,
    exportSearchResults: (opts) => `Exportar ${opts.count} resultados`,
    deleteAllKeysMenu: (opts) => `Excluir tudo ${opts.count}`,
    importKeys: "Importar chaves",
    deleteSearchKeys: (opts) => `Excluir ${opts.count} chaves correspondentes`,
    saveWithFormatJson: "Salvar com formato",
    formatJson: "Formatar JSON",
    wrap: "Embrulhar",
    unwrap: "Desembrulhar",
    downloadJson: "Baixar JSON",
    pubsubMonitor: "PubSub",
    pulse: "Pulse",
    profiler: "Profiler",
    memoryAnalysis: "Analysis",
    // When you translate the language, keep the Language in English
    // eg. Idioma / Language
    language: "Idioma",
    ok: "OK",
    addKey: "Adicionar a esta chave",
    addKeyRoot: "Adicione uma chave raiz",
    reloadKey: "Chave de recarga",
    reload: "Recarregar",
    close: "Fechar",
    commands: "Comandos",
    view: "Ver",
    statistics: "Estatísticas",
    refresh: "Atualizar",
    pause: "Pausar",
    resume: "Retomar",
    clear: "Limpar",
    rename: "Renomear",
    main: "Banco de dados",
    cancel: "Cancelar",
    theme: "Tema",
    github: "GitHub",
    githubRepo: "Repositório",
    githubRelease: "Lançamentos",
    githubChangelog: "Registro de alterações",
    info: "Info",
    settings: "Configurações",
    connect: "Conectar",
    disconnect: "Desconectar",
    logout: "Sair",
    overview: "Visão geral",
    console: "Consola",
    noConnections: "Sem conexões, adicione uma conexão no menu de configurações.",
    noConnectionsInSettings: "Sem conexões, você pode adicionar uma NOVA CONEXÃO acima.",
    connectionAdd: "Nova conexão",
    addGroup: "Adicionar grupo",
    extend: "Estender",
    collapse: "Recolher",
    add: "Adicionar",
    edit: "Editar",
    save: "Salvar",
    ttl: "Definir TTL",
    fieldTtl: "TTL do campo",
    digest: "Resumo",
    delete: "Excluir",
    remove: "Remover",
    areYouSure: "Tem certeza?",
    sure: "Claro",
    testConnection: "Conexão de teste",
    getKey: "Carregando chave Redis e dados associados...",
    jsonViewShow: "Exibir JSON",
    jsonViewEditor: "Editar JSON",
    quickConsole: "Consola rápida",
    moveUp: "Mover para cima",
    moveDown: "Mover para baixo",
  },
  diff: {
    reviewChanges: "Revisar altera\u00e7\u00f5es",
    inline: "Em linha",
    sideBySide: "Lado a lado",
    additions: "adi\u00e7\u00f5es",
    deletions: "remo\u00e7\u00f5es",
    unchangedLines: "linhas inalteradas",
    noChanges: "Nenhuma altera\u00e7\u00e3o detectada",
    before: "Antes",
    after: "Depois",
  },
  label: {
    id: {
      nodeId: "ID do nó",
      id: "ID de conexão",
      info: "Se você não deseja alterar as propriedades de: sshPassword, sshPrivateKey, password, tlsCrt, tlsKey, tlsCa, insira o ID da conexão nessas propriedades para manter os valores das propriedades intactos. Se desejar a mesma lógica na senha do nó, insira o ID do nó na senha do nó."
    },
    secureFeature: "Se você vir um valor que começa com P3X e tem a mesma aparência, é um recurso seguro. Para alterar as configurações, basta substituir essas configurações por vazias ou qualquer outra coisa e elas serão salvas. Se você não alterar as configurações, elas serão mantidas como estão no servidor.",
    aiTranslating: "Traduzindo...",
    aiSettings: "Configurações de IA",
    aiGroqApiKey: "Chave API Groq",
    aiGroqApiKeyInfo: "Opcional. Sua própria chave API Groq para melhor desempenho. Obtenha uma chave gratuita em",
    aiGroqApiKeyPlaceholder: "gsk_...",
    aiGroqApiKeySaved: "Chave API IA salva",
    aiGroqApiKeyInvalid: "Chave API Groq inválida",
    aiGroqApiKeyNotSet: "Não definido (padrão do servidor)",
    aiEnabled: "IA ativada",
    aiEnabledYes: "Sim",
    aiEnabledNo: "Não",
    aiRouteViaNetwork: "Rota via network.corifeus.com",
    aiRoutingDirect: "As consultas vão diretamente para o Groq usando sua própria chave de API, sem passar pelo network.corifeus.com.",
    aiRoutingNetwork: "As consultas de IA são roteadas via network.corifeus.com. Se você tiver sua própria chave de API Groq gratuita, pode desativar esta opção para ir direto ao Groq sem network.corifeus.com.",
    aiMaxTokens: "Máximo de tokens de IA",
    aiMaxTokensInfo: "Número máximo de tokens para respostas de IA. Valores maiores permitem respostas mais longas, mas podem usar mais créditos de API.",
    ssh: {
      on: "SSH ativado",
      off: "SSH desativado",
      sshHost: "Anfitrião SSH",
      sshPort: "Porta SSH",
      sshUsername: "Nome de usuário SSH",
      sshPassword: "Senha SSH",
      sshPrivateKey: "Chave privada SSH"
    },
    isBuffer: opts => `[objeto ArrayBuffer] significa que o valor são dados binários ou o valor é maior que ${opts.maxValueAsBuffer}`,
    streamValue: `O campo e o valor do fluxo são oneliner. Ex.: campo1 valor1 "campo 2" "valor 2"`,
    streamTimestampId: `'*' significa gerado automaticamente ou a especificação como <millisecondsTime>-<sequenceNumber>`,
    unableToLoadKey: ({
      key
    }) => {
      return `Não foi possível carregar esta chave: ${key}. Possível, a chave foi excluída. O erro exato está no console.`;
    },
    bigJson: "Este objeto JSON tem mais de 10 kb, portanto, saiba o que está fazendo, pois algumas funções podem ter renderização lenta.",
    addNode: "Adicionar nó",
    validateJson: "Validar JSON",
    reducedFunction: `Funcionalidade reduzida`,
    tooManyKeys: opts => {
      return `Para o máximo de funções permitidas, o total de teclas é ${opts.maxLightKeysCount} contar. Este banco de dados tem mais do que as chaves permitidas no total ${opts.count}. A classificação de chaves e as informações adicionais da árvore sofisticada estão desativadas. A pesquisa está acontecendo apenas no servidor, e não na pesquisa do cliente.`;
    },
    redisCommandNotFound: "Nenhuma correspondência de comando Redis encontrada...",
    treeKeyStore: `A classificação (comparação natural) é executada no cliente, também conhecido como navegador, o que significa que há uma penalidade para conjuntos grandes, como mais de 10 mil chaves, podendo adicionar um pouco de tempo à renderização da página. Não há classificação de chave em Redis, apenas assim.`,
    socketIoTimeout: options => {
      return `O Socket.IO expirou para esta solicitação (máx. ${options.timeout / 1000} segundos) ...`;
    },
    resizerInfo: options => {
      return `A largura mínima do painel esquerdo ou direito é ${options.width}pixels`;
    },
    jsonViewNotParsable: "Este valor não é analisável JSON  ",
    ttlTitle: "Defina TTL em segundos",
    passwordSecure: "A senha pode estar vazia, mas ainda assim mostrará caracteres, este é um recurso de segurança.",
    aclAuthHint: "Use o nome de usuário e a senha do Redis ACL para autenticar. Deixe em branco para o usuário padrão sem senha.",
    tlsWithoutCert: "Habilite TLS sem certificado adicional",
    tlsRejectUnauthorized: "Rejeitar certificado não autorizado",
    tlsSecure: "Se você vir uma configuração TLS que começa com P3X ou todas as configurações TLS parecem iguais, é um recurso seguro. Para alterar as configurações, basta substituir essas configurações por vazias ou qualquer outra coisa e elas serão salvas. Se você não alterar as configurações de TLS, as configurações serão mantidas como estão no servidor.",
    treeSeparatorEmpty: "Se o separador da árvore estiver vazio, a árvore não terá nós aninhados, apenas uma lista pura",
    treeSeparatorEmptyNote: "Sem nós aninhados, apenas uma lista pura",
    welcomeConsole: "Bem-vindo ao console Redis",
    welcomeConsoleInfo: "O histórico do cursor PARA CIMA ou PARA BAIXO está ativado",
    redisListIndexInfo: "Vazio para anexar, -1 para preceder ou salvar na posição mostrada.",
    console: "Consola",
    connectiondAdd: "Adicionar conexão",
    connectiondEdit: "Editar conexão",
    connectiondView: "Ver conexão",
    connections: "Conexões",
    keysSort: {
      on: "Classificação de chaves ativada",
      off: "Classificação de chaves desativada"
    },
    cluster: {
      on: "Cluster ativado",
      off: "Cluster desativado"
    },
    sentinel: {
      on: "Sentinel ativado",
      off: "Sentinel desativado",
      name: "Nome Sentinel"
    },
    readonly: {
      on: "Somente leitura ativado",
      off: "Somente leitura desativado"
    },
    theme: {
      light: "Luz",
      dark: "Empresa obscura",
      darkNeu: "Escuro",
      darkoBluo: "Azul escuro",
      enterprise: "Empresa",
      redis: "Redis",
      matrix: "Matriz"
    },
    connected: opts => {
      return `Conectado: ${opts.name}`;
    },
    tree: "Árvore",
    askAuth: "Peça autorização",
    keyboardShortcuts: "Keyboard Shortcuts",
    about: "About",
    supportedLanguages: "Supported Languages",
    version: "Version",
    redisVersion: "Redis Version",
    modules: "Módulos",
    shortcutRefresh: "Refresh",
    shortcutSearch: "Focus Search",
    shortcutNewKey: "New Key",
    shortcutDisconnect: "Desconectar",
    themeAuto: "Auto (system)",
    languageAuto: "Auto (system)",
    shortcutCommandPalette: "Command Palette",
    commandPalette: "Command Palette",
    noResults: "No results",
    redisCommandsReference: "Comandos Redis",
    ungrouped: "Sem grupo",
    grouped: "Grouped",
    connectFirst: "Conecte-se primeiro a um servidor Redis",
    searchLanguage: "Pesquisar idioma...",
    exportProgress: "Exportando chaves...",
    importProgress: "Importando chaves...",
    importPreview: "Visualização",
    importOverwrite: "Sobrescrever",
    importSkip: "Pular",
    importConflict: "Se a chave já existir:",
    noKeysToExport: "Nenhuma chave para exportar",
    type: "Tipo",
    time: "Tempo",
    format: "Formato",
    loading: "Carregando...",
    autoRefresh: "Auto",
    exportSearchHint: "Exportando apenas chaves que correspondem à pesquisa atual",
    importSearchHint: "A importação se aplica a todo o banco de dados, não apenas aos resultados da pesquisa",
    deleteSearchHint: "Excluir todas as chaves correspondentes à pesquisa atual",
    deletingSearchKeys: "Excluindo chaves correspondentes...",
    importNoKeys: "Nenhuma chave encontrada no arquivo",
    desktopNotifications: "Notificações do desktop",
    desktopNotificationsEnabled: "Ativar notificações do desktop",
    desktopNotificationsInfo: "Receba notificações do SO para desconexões e reconexões do Redis quando o aplicativo não estiver em foco."
  },
  status: {
    dataCopied: "Os dados estão na área de transferência",
    exportDone: "Exportação concluída",
    deletedSearchKeys: (opts) => `${opts.count} chaves excluídas`,
    indexCreated: "Índice criado",
    indexDropped: "Índice excluído",
    importDone: (opts) => `Importação concluída: ${opts.created} criados, ${opts.skipped} pulados, ${opts.errors} erros`,
    nodeRemoved: "Nó removido",
    keyIsNotExisting: "Esta chave pode ter sido excluída ou expirada.",
    keyCount: opts => {
      if (opts.keyCount === 0) {
        return "Sem chave";
      } else if (opts.keyCount === 1) {
        return "1 chave";
      } else {
        return `${opts.keyCount} chaves`;
      }
    },
    treeExpandAll: "Expanda todas as folhas das árvores. Esta operação pode ser cara e levar tempo ...",
    noRedisKeys: "Não há chaves neste banco de dados.",
    redisConnected: "Redis conectado com sucesso",
    reverted: "Revertido",
    reloadingDataInfo: "Recarregando informações de dados Redis",
    added: "Adicionado",
    saved: "Atualizado",
    cancelled: "Cancelado",
    deleted: "Excluído",
    savedRedis: "Os dados Redis são salvos",
    redisDisconnected: opts => {
      return `A conexão atual apresentou um erro: ${opts.error.message}`;
    },
    dbChanged: opts => {
      return `O índice db definido como ${opts.db}. `;
    },
    treeDeleted: opts => {
      return `A chave da árvore foi excluída (${opts.key}).`;
    },
    deletedKey: opts => {
      return `A chave foi excluída (${opts.key}).`;
    },
    renamedKey: "Esta chave foi renomeada",
    ttlChanged: "O TTL desta chave foi alterado",
    notInteger: "Esta entrada não é um número inteiro",
    persisted: "Esta chave persiste para sempre",
    set: "A chave está definida/adicionada",
    connectionRestored: "Conexão restaurada",
    socketDisconnected: "Desconectado",
    socketError: "Erro de conexão",
    deletedHashKey: "Chave hash excluída",
    deletedSetMember: "Membro do conjunto excluído",
    deletedListElement: "Elemento da lista excluído",
    deletedZSetMember: "Membro do conjunto ordenado excluído",
    deletedStreamTimestamp: "Entrada do stream excluída",
  },
  code: {
    "delete-connection": "Esta conexão foi excluída, portanto você está desconectado desta instância Redis.",
    "save-connection": "Esta conexão foi alterada, portanto você está desconectado desta instância Redis. Você pode se reconectar.",
    "readonly-connections": "As conexões adicionar/salvar/excluir são somente leitura!",
    "readonly-connection-mode": "Esta conexão está no modo somente leitura!",
    "list-out-of-bounds": "Este índice de lista está fora dos limites",
    "invalid-json-value": "O valor não é válido JSON.",
    "http_auth_required": "Autorização necessária: autentique com HTTP Basic Auth e recarregue.",
    "auto-connection-failed": "Possível, a conexão foi removida e a conexão automática falhou por causa disso.",
    invalid_console_command: "Este comando não está funcionando por meio de GUI.",
    "AI_DISABLED": "IA está desativada. Ative nas configurações de IA.",
    "AI_PROMPT_REQUIRED": "Consulta de IA é obrigatória.",
    "GROQ_API_KEY_READONLY": "A chave Groq API é somente leitura e não pode ser modificada.",
    "blocked_api_access": "Seu plano Groq API não permite acesso a este modelo. Atualize seu plano Groq ou use o proxy network.corifeus.com.",
    "rate_limit": "Limite de taxa de IA atingido. Tente novamente mais tarde ou use sua própria chave Groq API nas configurações."
  },
  form: {
    error: {
      required: "Obrigatório",
      port: "A porta está entre 1-65535",
      invalid: "O formulário é inválido"
    },
    connection: {
      label: {
        name: "Nome",
        group: "Group",
        host: "Nome do host",
        port: "Porto",
        password: "Senha",
        username: "Nome de usuário"
      }
    },
    treeSettings: {
      maxValueDisplay: "Comprimento máximo da string de exibição do valor",
      maxValueDisplayInfo: "Se definido como 0, mostra valores completos. Se for maior que 0, trunque para esse comprimento. Se -1: para strings, oculta o valor até editar; para outros tipos, mostre o conteúdo completo.",
      maxKeys: "A contagem máxima de chaves",
      maxKeysInfo: "Para que GUI não trave, limitamos a contagem máxima de chaves.",
      keyCount: (opts) => {
        return `Número de chaves: ${opts?.keyCount ?? 0}`;
      },
      label: {
        animation: "Usar animação",
        noAnimation: "Sem animação",
        undoEnabled: "Desfazer ativado",
        undoDisabled: "Desfazer desativado",
        diffEnabled: "Mostrar diff antes de salvar",
        diffDisabled: "Diff antes de salvar desativado",
        jsonFormatTwoSpace: "Formate JSON com 2 espaços",
        jsonFormatFourSpace: "Formate JSON com 4 espaços",
        formName: "Configurações Redis",
        searchModeClient: "Modo de pesquisa de cliente",
        searchModeServer: "Modo de pesquisa de servidor",
        searchModeStartsWith: "Pesquisa com começa com modo",
        searchModeIncludes: "Pesquisa inclui modo"
      },
      undoHint: "Desfazer est\u00e1 dispon\u00edvel apenas para tipos de chave string e JSON",
      field: {
        treeSeparator: "Separador de árvores",
        treeSeparatorSelector: "Seletor de separador de árvore",
        page: "Contagem de paginação em árvore",
        keyPageCount: "Contagem de paginação principal",
        keysSort: "Classifique as chaves",
        searchMode: "Modo de pesquisa",
        searchModeStartsWith: "A pesquisa começa com/inclui"
      },
      error: {
        keyPageCount: "A contagem de páginas chave deve ser um número inteiro entre 5 e 100",
        page: "A contagem de páginas deve ser um número inteiro entre 10 e 5.000",
        maxValueDisplay: "O valor máximo de exibição deve ser um número inteiro entre -1 e 32768",
        maxKeys: "O valor máximo de contagem de chaves deve ser um número inteiro entre 100 e 100.000"
      }
    },
    key: {
      label: {
        formName: {
          add: "Adicionar nova chave Redis",
          edit: "Editar chave Redis",
          append: "Adicionar à chave Redis existente"
        }
      },
      field: {
        streamTimestamp: "Carimbo de data e hora",
        key: "Chave",
        type: "Tipo",
        index: "Índice",
        hashKey: "Chave hash",
        score: "Pontuação",
        value: "Valor",
        errorRate: "Taxa de erro",
        capacity: "Capacidade",
        topk: "Top K",
        width: "Largura",
        depth: "Profundidade",
        decay: "Decaimento",
        compression: "Compressão",
        increment: "Incremento",
        item: "Item",
        vectorValues: "Valores do vetor (separados por vírgula)",
        element: "Nome do elemento",
      },
      error: {
        streamTimestamp: "O carimbo de data/hora é obrigatório, no formato Redis ou como *",
        key: "A chave é, pelo menos, um caractere",
        hashKey: "A chave da tabela hash tem pelo menos um caractere",
        score: "A pontuação do conjunto classificado é obrigatória",
        value: "O valor é obrigatório",
        errorRate: "A taxa de erro deve estar entre 0 e 1 (ex. 0.01)",
        capacity: "A capacidade deve ser um inteiro positivo",
        topk: "Top K deve ser um inteiro positivo",
        width: "A largura deve ser um inteiro positivo",
        depth: "A profundidade deve ser um inteiro positivo",
        item: "O item é obrigatório"
      }
    },
    main: {
      label: {
        database: "DB"
      }
    }
  },
  page: {
    search: {
      title: "Pesquisar",
      index: "Índice",
      query: "Consulta",
      results: "Resultados",
      noIndex: "Nenhum índice encontrado",
      createIndex: "Criar índice",
      dropIndex: "Excluir índice",
      indexInfo: "Info do índice",
      indexName: "Nome do índice",
      prefix: "Prefixo de chave (opcional)",
      fieldName: "Nome do campo",
      hybridMode: "Busca híbrida (FT.HYBRID)",
      vectorField: "Campo vetorial",
      vectorValues: "Valores vetoriais",
    },
    monitor: {
      title: "Monitoramento",
      memory: "Memória",
      opsPerSec: "Ops/seg",
      clients: "Clientes",
      blocked: "Bloqueados",
      hitsMisses: "Taxa de acerto",
      networkIo: "Rede I/O",
      slowLog: "Log lento",
      noSlowQueries: "Nenhuma consulta lenta registrada.",
      confirmSlowLogReset: "Tem certeza de que deseja redefinir o log lento?",
      slowLogResetDone: "O log lento foi redefinido.",
      totalCommands: "Total",
      expired: "Expirados",
      evicted: "Despejados",
      clientList: "Lista de clientes",
      topKeys: "Maiores chaves por memória",
      killClient: "Encerrar cliente",
      clientKilled: "Cliente encerrado",
      confirmKillClient: "Tem certeza de que deseja encerrar este cliente?",
      noKeys: "Sem chaves",
      rss: "RSS",
      peak: "Pico",
      fragmentation: "Fragmentação",
      hitsAndMisses: "Acertos / Erros",
      noClients: "Sem clientes",
      slotStats: "Estatísticas de slots do cluster",
      serverInfo: "Informações do servidor",
      os: "Sistema operacional",
      port: "Porta de rede",
      pid: "ID do processo",
      configFile: "Arquivo de configuração",
      uptime: "Tempo de atividade",
      keyspace: "Espaço de chave Redis",
      keys: "Chaves Redis",
      expires: "Expira",
      noKeyspace: "Sem chaves",
      persistence: "Persistência de dados",
      rdbLastSave: "Último salvamento do RDB",
      rdbStatus: "Status do RDB",
      rdbChanges: "Alterações desde o último salvamento",
      aofEnabled: "AOF ativado",
      aofSize: "Tamanho AOF",
      replication: "Replicação Redis",
      role: "Função de replicação",
      replicas: "Réplicas conectadas",
      masterHost: "Anfitrião Primário",
      linkStatus: "Status do link de replicação",
      cpu: "Uso da CPU",
      cpuSys: "Sistema",
      cpuUser: "Usuário",
      modules: "Módulos Redis carregados",
      noModules: "Nenhum módulo Redis carregado",
      clusterSlotMap: "Mapa de slots do cluster Redis",
      slotRange: "Intervalo de slots de cluster",
      totalSlots: "Total de slots de cluster",
      noClusterData: "Nenhum dado de cluster Redis disponível.",
    },
    analysis: {
      title: "Análise de Memória",
      runAnalysis: "Executar Análise",
      running: "Analisando...",
      typeDistribution: "Distribuição de Tipos",
      prefixMemory: "Memória por Prefixo",
      topKeysByMemory: "Maiores Chaves por Memória",
      expirationOverview: "Expiração de Chaves",
      memoryBreakdown: "Detalhamento de Memória",
      keysScanned: "Chaves Analisadas",
      totalMemory: "Memória Total",
      rssMemory: "Memória RSS",
      peakMemory: "Memória de Pico",
      luaMemory: "Memória Lua",
      overheadMemory: "Sobrecarga",
      datasetMemory: "Conjunto de Dados",
      fragmentation: "Fragmentação",
      allocator: "Alocador",
      withTTL: "Com TTL",
      persistent: "Persistentes",
      avgTTL: "TTL Médio",
      prefix: "Prefixo",
      keyCount: "Quantidade de Chaves",
      memoryUsage: "Uso de Memória",
      noPrefix: "(sem prefixo)",
      topN: "Top N",
      maxScanKeys: "Máx. Chaves Analisadas",
      type: "Tipo",
      noData: "Sem dados. Clique em Executar Análise para começar.",
      exportAll: "Exportar Tudo",
      memoryDoctor: "Memory Doctor",
      doctorNoData: "Clique em Atualizar para executar o diagnóstico Memory Doctor.",
    },
    acl: {
      title: "Usuários ACL",
      loadUsers: "Carregar usuários",
      loading: "Carregando...",
      username: "Nome de usuário",
      status: "Estado",
      enabled: "Habilitado",
      disabled: "Desativado",
      commands: "Comandos",
      commandsHint: "por exemplo, +@all or +@read -@dangerous",
      keys: "Padrões de chaves Redis",
      keysHint: "por exemplo, ~* or ~user:*",
      channels: "Canais Pub/Sub",
      channelsHint: "por exemplo, &* or &notifications:*",
      password: "Senha",
      noPassword: "Sem senha (nopass)",
      passwordHint: "Deixe em branco para manter a senha atual",
      currentUser: "Atual",
      createUser: "Criar usuário",
      editUser: "Editar usuário",
      deleteUser: "Excluir",
      confirmDelete: "Tem certeza de que deseja excluir o usuário ACL?",
      userDeleted: "O usuário ACL foi excluído.",
      userSaved: "O usuário ACL foi salvo.",
      cannotDeleteDefault: "Não é possível excluir o usuário padrão.",
      cannotDeleteSelf: "Não é possível excluir o usuário atualmente conectado.",
      noUsers: "ACL requer Redis 6.0+.",
      groupCommon: "Geral",
      groupDataTypes: "Tipos de dados",
      groupOperations: "Operações",
      rules: "Regras",
      rulesHint: "Tokens separados por espaço (por exemplo on >password +@all ~* &*)",
      defaultUserWarning: "Cuidado: Modificar o usuário padrão pode bloquear todas as conexões. Se isso acontecer, você precisará reiniciar o Redis ou usar o redis-cli para restaurar o acesso.",
    },
    overview: {
      noConnected: "Não há conexão com Redis.",
      overviewClients: "Liste os conectados pela contagem de clientes",
      connectedCount: opt => {
        if (opt.length === 1) {
          return "1 cliente";
        }
        return `${opt.length} clientes`;
      }
    },
    key: {
      label: {
        key: "Chave",
        encoding: "Codificação",
        compression: "Compressão",
        aiRateLimited: "Limite de solicitações de IA atingido. Tente novamente mais tarde ou use sua própria chave de API do Groq nas Configurações.",
        aiError: "A consulta de IA falhou",
        length: "Tamanho",
        ttl: "TTL",
        ttlTitle: "Hora de viver",
        type: "Tipo",
        ttlNotExpire: "não expira",
        lengthString: "bytes",
        lengthItem: "itens",
        actions: "Ações"
      },
      list: {
        table: {
          index: "Índice",
          value: "Valor"
        }
      },
      hash: {
        table: {
          hashkey: "Chave de hash",
          value: "Valor"
        }
      },
      set: {
        table: {
          value: "Membro"
        }
      },
      zset: {
        table: {
          value: "Membro",
          score: "Pontuação"
        }
      },
      stream: {
        table: {
          timestamp: "ID do carimbo de data/hora",
          field: "Campo",
          value: "Valor"
        }
      },
      timeseries: {
        chart: "Gráfico",
        info: "Informação",
        addPoint: "Adicionar ponto",
        from: "De (ms ou -)",
        to: "Até (ms ou +)",
        aggregation: "Agregação",
        timeBucket: "Bucket (ms)",
        none: "Nenhum",
        dataPoints: "pontos de dados",
        labels: "Rótulos",
        rules: "Regras",
        retention: "Retenção",
        timestamp: "Carimbo de data/hora",
        value: "Valor",
        retentionHint: "0 = sem expiração, ou milissegundos",
        duplicatePolicy: "Política de duplicados",
        labelsHint: "chave1 valor1 chave2 valor2",
        timestampHint: "'*' significa gerado automaticamente, ou carimbo de data/hora em milissegundos",
        editAllHint: "Um ponto de dados por linha: carimbo_de_data/hora valor (o carimbo pode ser * para automático)",
        autoSpread: "Intervalo de dispersão automático *",
        formula: "Fórmula",
        formulaLinear: "Linear",
        formulaRandom: "Aleatório",
        formulaSawtooth: "Dente de serra",
        formulaPoints: "Pontos",
        formulaAmplitude: "Amplitude",
        formulaOffset: "Deslocamento",
        generate: "Gerar",
        exportChart: "Exportar PNG",
        overlay: "Sobrepor chaves",
        overlayHint: "Chaves separadas por vírgulas",
        mrangeFilter: "Filtro de rótulos",
        bulkMode: "Geração em massa",
        mrangeHint: "ex. sensor=temp"
      },
      probabilistic: {
        info: "Informação",
        addItem: "Adicionar Item",
        checkItem: "Verificar Item",
        item: "Item",
        exists: "Existe",
        doesNotExist: "Não existe",
        topkList: "Itens Principais",
        topkCount: "Contagem",
        queryCount: "Contagem de Consultas",
        queryResult: "Resultado da Consulta",
        addedSuccessfully: "Item adicionado com sucesso",
        deletedSuccessfully: "Item excluído com sucesso",
        quantile: "Quantil",
        quantileResult: "Resultado",
        noItems: "Nenhum item para exibir",
        resetConfirm: "Redefinir todos os dados neste T-Digest?"
      },
      vectorset: {
        info: "Informações",
        elements: "Elementos",
        similarity: "Busca por Similaridade",
        searchByElement: "Buscar por elemento",
        searchByVector: "Buscar por vetor",
        vectorValues: "Valores do vetor",
        element: "Elemento",
        score: "Pontuação",
        count: "Contagem",
        addElement: "Adicionar Elemento",
        attributes: "Atributos",
        noAttributes: "Sem atributos",
        dimensions: "Dimensões",
        removeConfirm: "Remover este elemento do VectorSet?",
        noElements: "Sem elementos",
        filter: "Filtro",
        searchComplete: "Busca concluída",
      }
    },
    treeControls: {
      settings: "Configurações de árvore",
      expandAll: "Expandir tudo",
      collapseAll: "Recolher tudo",
      level: "Nível",
      search: {
        search: "Pesquise nas chaves",
        clear: "Limpe a pesquisa atual para definir como vazia",
        placeholderClient: "Pesquisar no lado do cliente",
        placeholderServer: "Lado do servidor de pesquisa",
        info: (opts) => "A pesquisa do lado do cliente significa que ela corresponde ao texto na entrada de pesquisa. A pesquisa no lado do servidor significa que é como pesquisar nos padrões de chaves como *{search-text}*. Para conjuntos de pesquisa grandes, é melhor usar a pesquisa no lado do servidor. Para conjuntos de pesquisa menores, é melhor usar o modo de pesquisa do lado do cliente." + ` Se a contagem de chaves acabar ${opts?.maxLightKeysCount ?? 110000}, você só poderá pesquisar no lado do servidor.`,
        largeSetInfo: "Em um conjunto grande, a pesquisa do lado do cliente está desativada. então, no momento, apenas a pesquisa no lado do servidor é possível.",
        infoDetails: "Para saber como funciona a pesquisa, verifique as configurações"
      },
      pager: {
        next: "Próximo",
        prev: "Anterior",
        first: "Primeiro",
        last: "Último"
      }
    }
  },
  time: {
    years: "anos",
    months: "meses",
    days: "dias",
    year: "ano",
    month: "mês",
    day: "dia",
    second: "segundo",
    seconds: "segundos",
    minute: "minuto",
    minutes: "minutos",
    hour: "hora",
    hours: "horas"
  },
  redisTypes: {
    string: "String",
    list: "List",
    hash: "Hash table",
    set: "Set",
    zset: "Sorted set - zset",
    stream: "Stream",
    json: "JSON",
    timeseries: "Time Series",
    bloom: "Bloom filtro",
    cuckoo: "Cuckoo filtro",
    topk: "Top-K",
    cms: "Count-Min Sketch",
    tdigest: "T-Digest",
    vectorset: "VectorSet",
  }
};
module.exports = strings;