import { getFuLocaleMessage } from '@/lang/fu';

const message = {
    commons: {
        true: 'Verdadeiro',
        false: 'falso',
        colon: ': ',
        example: 'ex.: ',
        fit2cloud: 'FIT2CLOUD',
        lingxia: 'LXware',
        button: {
            run: 'Executar',
            add: 'Adicionar',
            select: 'Selecionar',
            save: 'Salvar',
            set: 'Configurações',
            sync: 'Sincronizar',
            delete: 'Excluir',
            edit: 'Editar',
            enable: 'Ativar',
            disable: 'Desativar',
            confirm: 'Confirmar',
            cancel: 'Cancelar',
            reset: 'Redefinir',
            restart: 'Reiniciar',
            conn: 'Conectar',
            disConn: 'Desconectar',
            clean: 'Limpar',
            cleanAll: 'Limpar tudo',
            selectAll: 'Selecionar tudo',
            login: 'Entrar',
            close: 'Fechar',
            stop: 'Parar',
            start: 'Iniciar',
            view: 'Visualizar',
            watch: 'Acompanhar',
            handle: 'Executar',
            clone: 'Clonar',
            expand: 'Expandir',
            collapse: 'Recolher',
            log: 'Logs',
            back: 'Voltar',
            backup: 'Fazer backup',
            recover: 'Restaurar',
            retry: 'Tentar novamente',
            upload: 'Fazer upload',
            download: 'Fazer download',
            init: 'Inicializar',
            verify: 'Verificar',
            saveAndEnable: 'Salvar e ativar',
            import: 'Importar',
            importAll: 'Importar tudo',
            export: 'Exportar',
            power: 'Enviar',
            search: 'Pesquisar',
            refresh: 'Atualizar',
            reconnect: 'Reconectar',
            get: 'Obter',
            upgrade: 'Fazer upgrade',
            update: 'Atualizar',
            ignore: 'Ignorar atualização',
            install: 'Instalar',
            copy: 'Copiar',
            random: 'Gerar',
            uninstall: 'Desinstalar',
            fullscreen: 'Entrar em tela cheia',
            quitFullscreen: 'Sair da tela cheia',
            showAll: 'Exibir tudo',
            hideSome: 'Ocultar alguns',
            agree: 'Concordo',
            notAgree: 'Não concordo',
            preview: 'Pré-visualizar',
            open: 'Abrir',
            notSave: 'Não salvar',
            createNewFolder: 'Criar nova pasta',
            createNewFile: 'Criar novo arquivo',
            helpDoc: 'Documentação',
            unbind: 'Desvincular',
            cover: 'Substituir',
            skip: 'Pular',
            fix: 'Corrigir',
            down: 'Parar',
            up: 'Iniciar',
            sure: 'Confirmar',
            show: 'Exibir',
            hide: 'Ocultar',
            visit: 'Abrir',
            migrate: 'Migrar',
            prev: 'Anterior',
            next: 'Próximo',
            create: 'Criar',
            setDefault: 'Restaurar padrões',
            bind: 'Vincular',
            tip: 'Dica',
        },
        operate: {
            start: 'Iniciar',
            stop: 'Parar',
            restart: 'Reiniciar',
            reload: 'Recarregar',
            rebuild: 'Reconstruir',
            sync: 'Sincronizar',
            up: 'Iniciar',
            down: 'Parar',
            delete: 'Excluir',
        },
        search: {
            timeStart: 'Hora inicial',
            timeEnd: 'Hora final',
            timeRange: 'Até',
            dateStart: 'Data inicial',
            dateEnd: 'Data final',
            date: 'Data',
        },
        table: {
            all: 'Todos',
            total: 'Total de {0}',
            name: 'Nome',
            type: 'Tipo',
            card: 'Cartao',
            table: 'Tabela',
            status: 'Status',
            statusSuccess: 'Sucesso',
            statusFailed: 'Falha',
            statusWaiting: 'Aguardando...',
            records: 'Registros',
            group: 'Grupo',
            createdAt: 'Data de criação',
            publishedAt: 'Data de publicação',
            date: 'Data',
            updatedAt: 'Data de atualização',
            operate: 'Operações',
            message: 'Mensagem',
            description: 'Descrição',
            interval: 'Intervalo',
            user: 'Responsável',
            title: 'Título',
            port: 'Porta',
            forward: 'Encaminhar',
            protocol: 'Protocolo',
            tableSetting: 'Configuração da tabela',
            refreshRate: 'Taxa de atualização',
            selectColumn: 'Selecionar coluna',
            local: 'Local',
            serialNumber: 'Número de série',
            manageGroup: 'Gerenciar Grupos',
            backToList: 'Voltar à Lista',
            keepEdit: 'Continuar Editando',
            pin: 'Fixar no topo',
            unpin: 'Desafixar',
            default: 'Padrão',
            noRefresh: 'Sem atualização',
            creator: 'Criador',
            updater: 'Atualizador',
        },
        loadingText: {
            Upgrading: 'Atualizando o sistema, por favor, aguarde...',
            Restarting: 'Reiniciando o sistema, por favor, aguarde...',
            Recovering: 'Restaurando a partir de um snapshot, por favor, aguarde...',
            Rollbacking: 'Revertendo para um snapshot, por favor, aguarde...',
        },
        msg: {
            noneData: 'Nenhum dado disponível',
            delete: 'Esta operação de exclusão não pode ser desfeita. Deseja continuar?',
            clean: 'Esta operação de limpeza não pode ser desfeita. Deseja continuar?',
            closeDrawerHelper: 'O sistema pode não salvar as alterações que você fez. Deseja continuar?',
            deleteSuccess: 'Excluído com sucesso',
            loginSuccess: 'Login realizado com sucesso',
            operationSuccess: 'Operação concluída com sucesso',
            operationFailed: 'Falha na operação',
            copySuccess: 'Copiado com sucesso',
            notSupportOperation: 'Esta operação não é suportada',
            requestTimeout: 'A solicitação expirou, tente novamente mais tarde',
            infoTitle: 'Aviso',
            notRecords: 'Nenhum registro de execução foi gerado para a tarefa atual',
            sureLogOut: 'Tem certeza de que deseja sair?',
            createSuccess: 'Criado com sucesso',
            updateSuccess: 'Atualizado com sucesso',
            uploadSuccess: 'Enviado com sucesso',
            operateConfirm: 'Se você tem certeza da operação, insira-a manualmente: ',
            inputOrSelect: 'Por favor, selecione ou insira',
            selectOne: 'Selecione um(a) {0}',
            copyFailed: 'Falha ao copiar',
            operatorHelper: 'A operação "{1}" será realizada em "{0}" e não poderá ser desfeita. Deseja continuar?',
            notFound: 'Desculpe, a página solicitada não existe.',
            unSupportType: 'O tipo de arquivo atual não é suportado.',
            unSupportSize: 'O arquivo enviado excede {0}M, por favor confirme!',
            fileExist: 'O arquivo já existe na pasta atual. Não é possível enviar novamente.',
            fileNameErr:
                'Você pode enviar apenas arquivos cujo nome contenha de 1 a 256 caracteres, incluindo letras, números ou os caracteres (. - _)',
            confirmNoNull: 'Certifique-se de que o valor {0} não está vazio.',
            errPort: 'Informação de porta incorreta, por favor confirme!',
            remove: 'Remover',
            backupHelper: 'A operação atual fará o backup de {0}. Deseja continuar?',
            recoverHelper: 'Restaurando a partir do arquivo {0}. Esta operação é irreversível. Deseja continuar?',
            refreshSuccess: 'Atualizado com sucesso',
            rootInfoErr: 'Já está no diretório raiz',
            resetSuccess: 'Redefinido com sucesso',
            creatingInfo: 'Criando, não é necessário realizar esta operação',
            offlineTips: 'A versão offline não suporta esta operação',
            errImportFormat: 'Dados de importação ou formato estão anormais, verifique e tente novamente!',
            importHelper:
                'Ao importar dados conflitantes ou duplicados, o conteúdo importado será usado como padrão para atualizar os dados originais do banco de dados.',
            errImport: 'O conteúdo do arquivo está anormal:',
            backupSuccess: 'Backup concluído',
            restoreSuccess: 'Restauração concluída',
            installSuccess: 'Instalado com sucesso',
            uninstallSuccess: 'Desinstalado com sucesso',
        },
        login: {
            username: 'Usuário',
            password: 'Senha',
            passkey: 'Login com Passkey',
            otherLoginMethods: 'Outras formas de login',
            welcome: 'Bem-vindo de volta, insira seu usuário e senha para acessar!',
            errorAuthInfo: 'O nome de usuário ou senha que você inseriu está incorreto, tente novamente!',
            errorMfaInfo: 'Informações de autenticação incorretas, tente novamente!',
            captchaHelper: 'Captcha',
            errorCaptcha: 'Erro no código Captcha!',
            codeInput: 'Por favor, insira o código de verificação de 6 dígitos do validador MFA',
            mfaTitle: 'Autenticação MFA',
            mfaCode: 'Código de verificação MFA',
            title: 'Painel de Gerenciamento de Servidores Linux',
            licenseHelper: '<Acordo de Licença Comunitária>',
            errorAgree: 'Clique para concordar com o Acordo de Licença de Software Comunitário',
            logout: 'Sair',
            agreeTitle: 'Termo de Aceite',
            agreeContent:
                'Para proteger melhor seus direitos e interesses legítimos, leia e concorde com o seguinte termo &laquo; <a href="https://www.fit2cloud.com/legal/licenses.html" target="_blank">Acordo de Licença Comunitária</a> &raquo;',
            passkeyFailed: 'Falha no login com Passkey, tente novamente',
            passkeyNotSupported: 'O navegador ou ambiente atual não suporta passkeys',
            passkeyToPassword: 'Está com problemas para usar uma passkey? Use a senha',
        },
        rule: {
            username: 'Insira um nome de usuário',
            password: 'Insira uma senha',
            rePassword: 'A confirmação da senha não corresponde à senha.',
            requiredInput: 'Este campo é obrigatório.',
            requiredSelect: 'Selecione um item na lista',
            illegalChar: 'Atualmente não há suporte para injeção dos caracteres & ; $ \' ` ( ) " > < ｜',
            illegalInput: 'Este campo não deve conter caracteres ilegais.',
            duplicate: 'Este valor deve ser único.',
            commonName:
                'Este campo deve começar com caracteres não especiais e consistir em letras, números, ".", "-", e "_" com comprimento de 1-128.',
            userName: 'Suporta não começar com caracteres especiais, inglês, chinês, números e _, comprimento 3-30',
            simpleName:
                'Este campo não deve começar com "_" e deve conter letras, números e "_" com comprimento de 3-30.',
            simplePassword:
                'Este campo não deve começar com "_" e deve conter letras, números e "_" com comprimento de 1-30.',
            dbName: 'Este campo não deve começar com "_" e deve conter letras, números e "_" com comprimento de 1-64.',
            imageName: 'Suporta não começar com caracteres especiais, inglês, números, :@/.-_, comprimento 1-256',
            composeName:
                'Deve começar com caracteres não especiais, conter letras minúsculas, números, "-" e "_" com comprimento de 1-256.',
            volumeName: 'Este campo deve conter letras, números, ".", "-", e "_" com comprimento de 2-30.',
            supervisorName:
                'Este campo deve começar com caracteres não especiais e conter letras, números, "-" e "_" com comprimento de 1-128.',
            complexityPassword:
                'Suporta combinações de senha com comprimento de 8 a 30 que contenham pelo menos dois destes tipos: letras, números e caracteres especiais.',
            commonPassword: 'O comprimento deste campo deve ser maior que 6.',
            linuxName:
                'O comprimento deste campo deve estar entre 1 e 128. Não pode conter os seguintes caracteres especiais: "{0}".',
            email: 'Este campo deve ser um endereço de email válido.',
            number: 'Este campo deve ser um número.',
            integer: 'Este campo deve ser um número inteiro positivo.',
            ip: 'Este campo deve ser um endereço IP válido.',
            host: 'Este campo deve ser um endereço IP ou nome de domínio válido.',
            hostHelper: 'Suporta a entrada de endereço IP ou nome de domínio',
            port: 'Este campo deve ser um número de porta válido.',
            selectHelper: 'Selecione o arquivo {0} correto',
            domain: 'Este campo deve estar no formato: exemplo.com ou exemplo.com:8080.',
            databaseName: 'Este campo deve conter letras, números e "_" com comprimento de 1-30.',
            ipErr: 'Este campo deve ser um endereço IP válido.',
            numberRange: 'Este campo deve ser um número entre {0} e {1}.',
            paramName: 'Este campo deve conter letras, números, ".", "-", e "_" com comprimento de 2-30.',
            paramComplexity:
                'Este campo não deve começar ou terminar com caracteres especiais e deve conter letras, números e "{0}" com comprimento de 6-128.',
            paramUrlAndPort: 'Este campo deve estar no formato "http(s)://(nome do domínio/IP):(porta)".',
            nginxDoc: 'Este campo deve conter letras, números e ".".',
            appName:
                'Este campo não deve começar ou terminar com "-" ou "_" e deve conter letras, números, "-", e "_" com comprimento de 2-30.',
            containerName:
                'Suporta letras, números, "-", "_" e "."; não pode começar com "-", "_" ou "."; comprimento: 2-128.',
            mirror: 'O endereço de aceleração do mirror deve começar com http(s)://, suportar letras (maiúsculas e minúsculas), números, ".", "/" e "-", e não deve conter linhas em branco.',
            disableFunction: 'Suporta apenas letras, underscores e,',
            leechExts: 'Suporta apenas letras, números e,',
            paramSimple: 'Suporta letras minúsculas e números, comprimento 1-128',
            filePermission: 'Erro de permissão de arquivo',
            formatErr: 'Erro de formato, verifique e tente novamente',
            phpExtension: 'Suporta apenas _, letras minúsculas e números',
            paramHttp: 'Deve começar com http:// ou https://',
            phone: 'O formato do número de telefone está incorreto',
            authBasicPassword: 'Suporta letras, números e caracteres especiais comuns, comprimento 1-72',
            length128Err: 'O comprimento não pode exceder 128 caracteres',
            maxLength: 'O comprimento não pode exceder {0} caracteres',
            alias: 'Suporta letras, números, - e _, comprimento de 1 a 128, e não pode começar ou terminar com -_.',
            vmName: 'Aceita letras, números, ".", "-" e "_"; comprimento: 1-64; deve começar com uma letra ou um número.',
            vmNetwork:
                'Aceita letras, números, ".", ":", "-" e "_"; comprimento: 1-64; deve começar com uma letra ou um número.',
        },
        res: {
            paramError: 'A solicitação falhou, por favor, tente novamente mais tarde!',
            forbidden: 'O usuário atual não tem permissão',
            serverError: 'Exceção no serviço',
            notFound: 'O recurso não existe',
            commonError: 'A solicitação falhou',
        },
        service: {
            serviceNotStarted: 'O serviço {0} não está iniciado.',
        },
        status: {
            running: 'Em execução',
            done: 'Concluído',
            scanFailed: 'Incompleto',
            success: 'Sucesso',
            waiting: 'Aguardando',
            waitForUpgrade: 'Aguardar Atualização',
            failed: 'Falhou',
            stopped: 'Parado',
            error: 'Erro',
            created: 'Criado',
            restarting: 'Reiniciando',
            uploading: 'Enviando',
            unhealthy: 'Indisponível',
            removing: 'Removendo',
            paused: 'Pausado',
            exited: 'Finalizado',
            partial: 'Parcial',
            dead: 'Morto',
            installing: 'Instalando',
            enabled: 'Habilitado',
            disabled: 'Desabilitado',
            normal: 'Normal',
            building: 'Construindo',
            upgrading: 'Atualizando',
            pending: 'Aguardando Edição',
            rebuilding: 'Reconstruindo',
            deny: 'Negado',
            accept: 'Aceito',
            used: 'Usado',
            starting: 'Iniciando',
            recreating: 'Reconstruindo',
            creating: 'Criando',
            init: 'Aguardando aplicação',
            ready: 'Normal',
            applying: 'Aplicando',
            uninstalling: 'Desinstalando',
            lost: 'Perdido',
            bound: 'Vinculado',
            unbind: 'Desvinculado',
            exceptional: 'Excepcional',
            free: 'Livre',
            enable: 'Habilitado',
            disable: 'Desabilitado',
            deleted: 'Excluído',
            notfound: 'Não encontrado',
            inactive: 'Inativo',
            degraded: 'Degradado',
            inaccessible: 'Inacessível',
            unknown: 'Desconhecido',
            downloading: 'Baixando',
            packing: 'Empacotando',
            sending: 'Enviando',
            healthy: 'Saudável',
            executing: 'Executando',
            installerr: 'Falha na instalação',
            applyerror: 'Falha na aplicação',
            systemrestart: 'Interrompido',
            starterr: 'Falha na inicialização',
            uperr: 'Falha na inicialização',
            new: 'Novo',
            conflict: 'Conflito',
            duplicate: 'Duplicado',
            unexecuted: 'Não Executado',
            canceled: 'Cancelado',
            unused: 'Não usado',
        },
        units: {
            second: 'segundo | segundos | segundos',
            minute: 'minuto | minutos | minutos',
            hour: 'hora | horas | horas',
            day: 'dia | dias | dias',
            week: 'semana | semanas | semanas',
            month: 'mês | meses | meses',
            year: 'ano | anos | anos',
            time: 'rqm',
            core: 'núcleo | núcleos | núcleos',
            secondUnit: 's',
            minuteUnit: 'min',
            hourUnit: 'h',
            dayUnit: 'd',
            millisecond: 'Milissegundo',
            semicolon: ';',
        },
        log: {
            noLog: 'Nenhum log disponível',
        },
    },
    menu: {
        home: 'Painel',
        apps: 'Loja de Aplicativos',
        website: 'Site | Sites',
        project: 'Projeto | Projetos',
        config: 'Configuração | Configurações',
        ssh: 'Configurações SSH',
        firewall: 'Firewall',
        ssl: 'Certificado | Certificados',
        database: 'Banco de Dados | Bancos de Dados',
        aiTools: 'AI',
        mcp: 'MCP',
        container: 'Contêineres',
        cronjob: 'Tarefa Cron | Tarefas Cron',
        system: 'Sistema',
        security: 'Segurança',
        files: 'Arquivos',
        monitor: 'Monitoramento',
        terminal: 'Terminal',
        settings: 'Configurações',
        toolbox: 'Caixa de Ferramentas',
        logs: 'Log | Logs',
        runtime: 'Tempo de Execução | Tempos de Execução',
        processManage: 'Processo | Processos',
        process: 'Processo | Processos',
        network: 'Rede | Redes',
        supervisor: 'Supervisor',
        tamper: 'À prova de violação',
        app: 'Aplicativo',
        msgCenter: 'Tarefas',
        disk: 'Disco',
        template: 'Modelo',
        filter: 'Filtro',
    },
    home: {
        recommend: 'Recomendado',
        dir: 'Diretório',
        alias: 'Apelido',
        quickDir: 'Acesso rápido',
        minQuickJump: 'Adicione pelo menos uma entrada de acesso rápido',
        maxQuickJump: 'Você pode adicionar até quatro entradas de acesso rápido',
        database: 'Banco de Dados - Todos',
        restart_1panel: 'Reiniciar painel',
        restart_system: 'Reiniciar servidor',
        operationSuccess: 'Concluído com sucesso. Reiniciando agora, atualize o navegador depois.',
        entranceHelper:
            'A entrada segura não está ativada. Ative em "Configurações -> Segurança" para reforçar a proteção.',
        appInstalled: 'Aplicações',
        systemInfo: 'Informações do sistema',
        hostname: 'Nome do host',
        platformVersion: 'Sistema operacional',
        kernelVersion: 'Versão do Kernel',
        kernelArch: 'Arquitetura',
        network: 'Rede',
        io: 'Leitura/Gravação de Disco',
        ip: 'IP local',
        proxy: 'Proxy do sistema',
        baseInfo: 'Informações básicas',
        totalSend: 'Total enviado',
        totalRecv: 'Total recebido',
        rwPerSecond: 'Operações de I/O',
        ioDelay: 'Latência de I/O',
        uptime: 'Tempo de atividade',
        runningTime: 'Tempo de execução',
        mem: 'Memória do Sistema',
        swapMem: 'Partição Swap',
        runSmoothly: 'Baixo carregamento',
        runNormal: 'Carregamento moderado',
        runSlowly: 'Carregamento alto',
        runJam: 'Carregamento pesado',
        core: 'Núcleo físico',
        logicCore: 'Núcleo lógico',
        corePercent: 'Uso do Núcleo',
        cpuFrequency: 'Frequência CPU',
        cpuDetailedPercent: 'Distribuição do Tempo de CPU',
        cpuUser: 'Usuário',
        cpuSystem: 'Sistema',
        cpuIdle: 'Ocioso',
        cpuIrq: 'IRQ',
        cpuSoftirq: 'Soft IRQ',
        cpuSteal: 'Roubado',
        cpuTop: 'Top 5 Processos por Uso de CPU',
        memTop: 'Top 5 Processos por Uso de Memória',
        loadAverage: 'Média de carga nos últimos {0} minutos',
        load: 'Carga',
        mount: 'Ponto de montagem',
        fileSystem: 'Sistema de arquivos',
        total: 'Total',
        used: 'Usado',
        cache: 'Cache',
        free: 'Livre',
        shard: 'Fragmentado',
        available: 'Disponível',
        percent: 'Utilização',
        goInstall: 'Ir para instalação',
        networkCard: 'Placa de rede',
        disk: 'Disco',
        memo: 'Memo',
        memoPlaceholder: 'Clique no botão de editar para habilitar a edição.',
        carouselSetting: 'Configuração do carrossel',
        tooltipSensitiveInfo: 'Mostrar/Ocultar informações sensíveis',
    },
    tabs: {
        more: 'Mais',
        hide: 'Esconder',
        closeLeft: 'Fechar à esquerda',
        closeRight: 'Fechar à direita',
        closeCurrent: 'Fechar atual',
        closeOther: 'Fechar outros',
        closeAll: 'Fechar todos',
    },
    header: {
        logout: 'Logout',
    },
    database: {
        manage: 'Gerenciamento',
        deleteBackupHelper: 'Excluir backups do banco de dados simultaneamente',
        delete: 'A operação de exclusão não pode ser desfeita, insira "',
        deleteHelper: '" para excluir este banco de dados',
        deleteUserHelper: '" para excluir este usuário',
        userBoundDatabases: 'tem acesso aos seguintes bancos de dados:',
        noMysql: 'Serviço de banco de dados (MySQL ou MariaDB)',
        noPostgresql: 'Serviço de banco de dados PostgreSQL',
        goUpgrade: 'Ir para atualização',
        goInstall: 'Ir para instalação',
        isDelete: 'Excluído',
        permission: 'Permissões',
        format: 'Conjunto de Caracteres',
        collation: 'Collation',
        collationHelper: 'Se vazio, use a collation padrão do conjunto de caracteres {0}',
        permissionForIP: 'IP',
        permissionAll: 'Todos (% de)',
        localhostHelper:
            'Configurar permissões de banco de dados como "localhost" para implantação em contêiner impedirá o acesso externo ao contêiner. Por favor, escolha com cuidado!',
        databaseConnInfo: 'Conexão',
        rootPassword: 'Senha root',
        serviceName: 'Nome do serviço',
        serviceNameHelper: 'Acesso entre containers na mesma rede.',
        backupList: 'Backup',
        loadBackup: 'Importar',
        localUpload: 'Upload Local',
        hostSelect: 'Seleção de Servidor',
        selectHelper: 'Tem certeza de que deseja importar o arquivo de backup {0}?',
        remoteAccess: 'Acesso remoto',
        remoteHelper: 'Vários IPs separados por vírgula, exemplo: 172.16.10.111,172.16.10.112',
        remoteConnHelper:
            'Conectar-se ao MySQL como usuário root pode representar riscos de segurança. Realize esta operação com cautela.',
        changePassword: 'Senha',
        changeConnHelper: 'Esta operação modificará o banco de dados atual {0}. Deseja continuar?',
        changePasswordHelper:
            'O banco de dados está associado a um aplicativo. Alterar a senha alterará a senha do banco de dados do aplicativo ao mesmo tempo. A mudança surtirá efeito após a reinicialização do aplicativo.',
        recoverTimeoutHelper: '-1 significa sem limite de tempo limite',
        confChange: 'Configuração',
        confNotFound:
            'Não foi possível encontrar o arquivo de configuração. Atualize o aplicativo para a versão mais recente na loja de aplicativos e tente novamente!',
        portHelper:
            'Esta porta é a porta exposta do container. Você precisa salvar a modificação separadamente e reiniciar o container!',
        loadFromRemote: 'Sincronizar',
        userBind: 'Vincular usuário',
        userAuthorization: 'Autorização de usuário',
        noUserAuthorization: 'Não autorizar',
        authorizedDatabaseCount: '{0} banco(s) de dados autorizado(s)',
        authorizationManagement: 'Gerenciamento de autorizações',
        authorizedUsers: 'Usuários autorizados',
        authorizedUserCount: '{0} usuário(s)',
        addUserAuthorization: 'Adicionar autorização de usuário',
        revokeAuthorization: 'Revogar autorização',
        revokeAuthorizationHelper: 'Revogar o acesso do usuário {0} ao banco de dados {1}?',
        supplementPassword: 'Adicionar senha',
        supplementPasswordHelper: 'Apenas salva a senha existente no 1Panel; não altera a senha no MySQL.',
        noUserBind: 'Sem vínculo',
        pgBindHelper:
            'Esta operação cria um novo usuário e o vincula ao banco de dados alvo. A seleção de usuários já existentes no banco de dados não é suportada.',
        pgSuperUser: 'Superusuário',
        loadFromRemoteHelper:
            'Isso sincronizará bancos de dados, usuários e autorizações do servidor com o 1Panel. Deseja continuar?',
        passwordHelper: 'Não é possível obter, clique para modificar',
        remote: 'Remoto',
        remoteDB: 'Servidor remoto | Servidores remotos',
        createRemoteDB: 'Vincular @.lower:database.remoteDB',
        unBindRemoteDB: 'Desvincular @.lower:database.remoteDB',
        unBindForce: 'Forçar desvinculação',
        unBindForceHelper:
            'Ignorar todos os erros durante o processo de desvinculação para garantir que a operação final seja bem-sucedida',
        unBindRemoteHelper:
            'Desvincular o banco de dados remoto removerá apenas a relação de vinculação e não excluirá diretamente o banco de dados remoto',
        editRemoteDB: 'Editar servidor remoto',
        localDB: 'Banco de dados local',
        address: 'Endereço do banco de dados',
        version: 'Versão do banco de dados',
        userHelper:
            'O usuário root ou um usuário do banco de dados com privilégios de root pode acessar o banco de dados remoto.',
        mongodbPermissionDbOwner: 'Proprietário do banco de dados',
        mongodbPermissionRead: 'Ler dados',
        mongodbPermissionReadWrite: 'Ler e gravar dados',
        mongodbPermissionUserAdmin: 'Administrador de usuários',
        pgUserHelper: 'Usuário do banco de dados com privilégios de superusuário.',
        ssl: 'Usar SSL',
        clientKey: 'Chave privada do cliente',
        clientCert: 'Certificado do cliente',
        caCert: 'Certificado CA',
        hasCA: 'Possui certificado CA',
        skipVerify: 'Ignorar verificação de validade do certificado',
        initialDB: 'Banco de Dados Inicial',
        formatHelper:
            'O conjunto de caracteres atual do banco de dados é {0}, a inconsistência no conjunto de caracteres pode causar falha na recuperação',
        dropHelper: 'Você pode arrastar e soltar o arquivo carregado aqui ou',
        clickHelper: 'clicar para fazer upload',
        supportUpType:
            'Suporta apenas os formatos de arquivo sql, sql.gz, tar.gz, .zip. O arquivo compactado importado deve conter apenas um arquivo .sql ou incluir test.sql',
        currentStatus: 'Estado atual',
        baseParam: 'Parâmetro básico',
        performanceParam: 'Parâmetro de desempenho',
        runTime: 'Tempo de inicialização',
        connections: 'Conexões totais',
        bytesSent: 'Bytes enviados',
        bytesReceived: 'Bytes recebidos',
        queryPerSecond: 'Consultas por segundo',
        txPerSecond: 'Tx por segundo',
        connInfo: 'conexões ativas/pico',
        connInfoHelper: 'Se o valor for muito grande, aumente "max_connections".',
        threadCacheHit: 'Acuracidade do cache de threads',
        threadCacheHitHelper: 'Se for muito baixo, aumente "thread_cache_size".',
        indexHit: 'Acuracidade de índice',
        indexHitHelper: 'Se for muito baixo, aumente "key_buffer_size".',
        innodbIndexHit: 'Taxa de acerto de índice InnoDB',
        innodbIndexHitHelper: 'Se for muito baixo, aumente "innodb_buffer_pool_size".',
        cacheHit: 'Acuracidade da consulta em cache',
        cacheHitHelper: 'Se for muito baixo, aumente "query_cache_size".',
        tmpTableToDB: 'Tabela temporária para disco',
        tmpTableToDBHelper: 'Se for muito grande, tente aumentar "tmp_table_size".',
        openTables: 'Tabelas abertas',
        openTablesHelper: 'O valor da configuração de "table_open_cache" deve ser maior ou igual a este valor.',
        selectFullJoin: 'Join completo de seleção',
        selectFullJoinHelper: 'Se o valor não for 0, verifique se o índice da tabela de dados está correto.',
        selectRangeCheck: 'Número de joins sem índice',
        selectRangeCheckHelper: 'Se o valor não for 0, verifique se o índice da tabela de dados está correto.',
        sortMergePasses: 'Número de mesclagens ordenadas',
        sortMergePassesHelper: 'Se o valor for muito grande, aumente "sort_buffer_size".',
        tableLocksWaited: 'Número de bloqueios de tabela',
        tableLocksWaitedHelper: 'Se o valor for muito grande, considere aumentar o desempenho do banco de dados.',
        performanceTuning: 'Ajuste de desempenho',
        optimizationScheme: 'Plano de otimização',
        keyBufferSizeHelper: 'Tamanho do buffer para índice',
        queryCacheSizeHelper: 'Cache de consulta. Se essa função estiver desativada, defina este parâmetro como 0.',
        tmpTableSizeHelper: 'Tamanho do cache de tabela temporária',
        innodbBufferPoolSizeHelper: 'Tamanho do buffer InnoDB',
        innodbLogBufferSizeHelper: 'Tamanho do buffer de log InnoDB',
        sortBufferSizeHelper: '* conexões, buffer de cada thread de ordenação',
        readBufferSizeHelper: '* conexões, tamanho do buffer de leitura',
        readRndBufferSizeHelper: '* conexões, tamanho do buffer de leitura aleatória',
        joinBufferSizeHelper: '* conexões, tamanho do cache da tabela de associação',
        threadStackelper: '* conexões, tamanho do stack por thread',
        binlogCacheSizeHelper: '* conexões, tamanho do cache de log binário (múltiplos de 4096)',
        threadCacheSizeHelper: 'Tamanho do pool de threads',
        tableOpenCacheHelper: 'Cache de tabelas',
        maxConnectionsHelper: 'Conexões máximas',
        restart: 'Reiniciar',
        slowLog: 'Logs lentos',
        noData: 'Ainda não há logs lentos.',
        isOn: 'Ligado',
        longQueryTime: 'limite (segundos)',
        thresholdRangeHelper: 'Por favor, insira o limite correto (1 - 600).',
        timeout: 'Tempo limite(segundos)',
        timeoutHelper: 'Período de timeout de conexão ociosa. 0 indica que a conexão permanece ativa continuamente.',
        maxclients: 'Máximo de clientes',
        requirepassHelper:
            'Deixe este campo em branco para indicar que nenhuma senha foi definida. Mudanças precisam ser salvas separadamente e o container reiniciado!',
        databases: 'Número de bancos de dados',
        maxmemory: 'Uso máximo de memória',
        maxmemoryHelper: '0 indica sem restrição.',
        tcpPort: 'Porta de escuta atual.',
        uptimeInDays: 'Dias de operação.',
        connectedClients: 'Número de clientes conectados.',
        usedMemory: 'Uso atual de memória do Redis.',
        usedMemoryRss: 'Tamanho da memória solicitado ao sistema operacional.',
        usedMemoryPeak: 'Pico de consumo de memória do Redis.',
        memFragmentationRatio: 'Taxa de fragmentação de memória.',
        totalConnectionsReceived: 'Total de clientes conectados desde a execução.',
        totalCommandsProcessed: 'Número total de comandos executados desde a execução.',
        instantaneousOpsPerSec: 'Número de comandos executados pelo servidor por segundo.',
        keyspaceHits: 'Número de vezes que uma chave de banco de dados foi encontrada.',
        keyspaceMisses: 'Número de tentativas falhas de encontrar a chave do banco de dados.',
        hit: 'Taxa de acerto de chave de banco de dados.',
        latestForkUsec: 'Número de microssegundos gastos na última operação fork()',
        redisCliHelper: '"redis-cli" não foi detectado. Habilite o serviço primeiro.',
        redisQuickCmd: 'Comandos rápidos Redis',
        recoverHelper: 'Isso sobrescreverá os dados com [{0}]. Deseja continuar?',
        mongodbRecoverDropAllCollections: 'Limpar o banco de dados atual antes da restauração',
        mongodbRecoverDropAllCollectionsHelper:
            'Por padrão, apenas as coleções existentes são sobrescritas e as coleções novas são mantidas. Quando ativado, o banco de dados atual é limpo e depois restaurado a partir do backup.',
        submitIt: 'Sobrescrever os dados',
        baseConf: 'Básico',
        allConf: 'Todos',
        restartNow: 'Reiniciar agora',
        restartNowHelper1:
            'Você precisa reiniciar o sistema após as mudanças na configuração entrarem em vigor. Se seus dados precisarem ser persistidos, execute primeiro a operação de salvar.',
        restartNowHelper: 'Isso só terá efeito após o sistema reiniciar.',
        persistence: 'Persistência',
        rdbHelper1: 'segundo(s), inserir',
        rdbHelper2: 'registros de dados',
        rdbHelper3: 'Atender a qualquer uma das condições acionará a persistência RDB.',
        rdbInfo: 'Certifique-se de que o valor na lista de regras esteja entre 1 e 100000',
        containerConn: 'Conexão do contêiner',
        copyConnURL: 'Copiar URL de conexão',
        connAddress: 'Endereço',
        containerConnHelper:
            'Este endereço de conexão pode ser utilizado por aplicações que estão em execução nos ambientes do site (PHP, etc.) ou no contêiner.',
        remoteConn: 'Conexão externa',
        remoteConnHelper2: 'Use este endereço para ambientes não-container ou conexões externas.',
        remoteConnHelper3:
            'O endereço de acesso padrão é o IP do host. Para modificá-lo, acesse o item de configuração "Endereço de Acesso Padrão" na página de configurações do painel.',
        localIP: 'IP local',
    },
    aiTools: {
        agents: {
            agent: 'Agente',
            account: 'Conta de modelo',
            batchOperation: 'Operação em lote',
            operationType: 'Tipo de operação',
            batchAction: '{0} em lote',
            installSkillAction: 'Distribuir Skill',
            batchAgentTask: '{0} agentes em lote',
            dispatchAgentTask: 'Distribuir tarefas para {0} agentes',
            dispatchTask: 'Distribuir tarefas de {0}',
            taskSubmitted: 'Tarefa de {0} enviada',
            allNodes: 'Todos os nós',
            targetVersion: 'Versão de destino',
            skillSource: 'Origem da Skill',
            skillKeyword: 'Palavra-chave da Skill',
            clawHubSkillPlaceholder: 'Pesquise e selecione uma Skill primeiro',
            noAccountHint: 'Selecione uma conta de modelo existente ou adicione uma nova.',
            accountCount: '{0} contas de modelo',
            syncAgents: 'Sincronizar agentes vinculados',
            syncAgentsHelper: 'Atualize o openclaw.json para agentes que usam esta conta de modelo',
            appVersion: 'Versão do app',
            webuiPort: 'Porta WebUI',
            tokenOrAuth: 'Token/Autenticação',
            allowedOrigins: 'Endereços de acesso',
            allowedOriginsRequired: 'Informe pelo menos um endereço de acesso',
            allowedOriginsInvalid: 'Use o formato http(s)://host-ou-ip[:porta]',
            provider: 'Provedor de modelos',
            accountModelsHelper:
                'Configure os modelos que esta conta disponibiliza ao OpenClaw para seleção e configuração',
            accountModelsRequired: 'Selecione pelo menos um modelo',
            verifyModel: 'Modelo de verificação',
            verifyModelHelper:
                'Selecione um modelo acessível por esta conta. Uma solicitação mínima será enviada ao salvar para verificar a conexão.',
            verifyModelRequired: 'Selecione um modelo de verificação',
            discoverModels: 'Obter modelos',
            automaticModelDiscovery: 'Obter automaticamente',
            manualModelConfiguration: 'Configuração manual',
            discoverModelsHelper:
                'Obtenha os modelos pela API /v1/models do provedor e adicione todos ao catálogo de modelos',
            discoverModelsFailedFallback: 'Não foi possível obter os modelos. Configure um modelo manualmente.',
            discoverModelsFailedUseDefaults: 'Não foi possível obter os modelos. Os modelos padrão estão em uso.',
            accountModelsDuplicate: 'Há modelos duplicados no catálogo',
            modelPool: 'Catálogo de modelos',
            fallbackModels: 'Modelos de fallback',
            addFallbackModel: 'Adicionar modelo de fallback',
            fallbackModelsEmpty: 'Nenhum modelo de fallback configurado',
            modelInputTypes: 'Tipos de entrada',
            reasoning: 'Modelo de raciocínio',
            verified: 'Verificado',
            verifySkipped: 'Sem verificação',
            skillsTab: 'Habilidades',
            pluginsTab: 'Plugins',
            pluginsInstalled: 'Instalados',
            pluginsMarket: 'Mercado de plugins',
            pluginsMarketHint: 'Digite uma palavra-chave para pesquisar plugins',
            pluginSearchPlaceholder: 'Pesquisar plugins...',
            pluginOrigin: 'Origem',
            pluginOriginAll: 'Todas as origens',
            pluginOriginBundled: 'Integrado',
            pluginOriginExternal: 'Externo',
            pluginStatusAll: 'Todos os estados',
            pluginEnabled: 'Ativado',
            pluginDisabled: 'Desativado',
            pluginCategory: 'Categoria',
            pluginVerification: 'Verificação',
            pluginOfficial: 'Oficial',
            pluginCommunity: 'Comunidade',
            pluginDownloads: 'Downloads',
            pluginEnable: 'Ativar',
            pluginDisable: 'Desativar',
            pluginListEmpty: 'Nenhum plugin',
            pluginSearchEmpty: 'Nenhum plugin correspondente encontrado',
            pluginInstallConfirm: 'Instalar o plugin {0}?',
            pluginDisableConfirm: 'Desativar o plugin {0}?',
            pluginUninstallConfirm: 'Desinstalar o plugin {0}?',
            securityTab: 'Segurança',
            otherTab: 'Outros',
            timeZone: 'Fuso horário',
            browserEnabled: 'Navegador habilitado',
            npmRegistry: 'Registro NPM',
            npmRegistryHelper:
                'Usado para a instalação de plugins do OpenClaw. Você pode escolher um registro predefinido ou informar um personalizado.',
            npmRegistryInvalid: 'Digite uma URL válida de registro NPM começando com http:// ou https://',
            pluginInstallNPMRegistryHelper:
                'Vá em Configurações -> Outros para configurar o registro NPM e acelerar a instalação do plugin',
            skillsSearchPlaceholder: 'Pesquisar habilidades...',
            skillsEmpty: 'Sem habilidades',
            skillsMarket: 'Mercado de habilidades',
            skillsMarketHint: 'Selecione uma fonte e pesquise habilidades',
            skillsMarketEmpty: 'Nenhuma habilidade correspondente encontrada',
            skillsMarketSourceClawhubGlobal: 'ClawHub (Global)',
            skillsMarketSourceClawhubChina: 'ClawHub (China)',
            skillsMarketSourceSkillhub: 'SkillHub (Tencent)',
            skillsMarketSourceLocalHub: 'Loja local de Skills',
            skillsScore: 'Pontuação',
            skillsMarketSourceOfficial: 'Oficial',
            versionUnsupportedTitle: 'Este recurso não é compatível com a versão atual',
            versionUnsupportedHelper: 'Atualize o OpenClaw para a versão {0} ou superior.',
            skillsGroupBuiltIn: 'Integradas',
            skillsGroupExternal: 'Externas',
            skillsGroupWorkspace: 'Espaço de trabalho',
            switchModelSuccess: 'Modelo alterado com sucesso',
            channelsTab: 'Canais',
            agentRoleTab: 'Agentes',
            agentRoleUnsupported: 'O gerenciamento de funções atualmente é compatível apenas com o OpenClaw.',
            workspace: 'Diretório do espaço de trabalho',
            agentDir: 'Diretório do agente',
            roleMarkdownDescriptions: {
                'AGENTS.md': [
                    'Instruções operacionais para o agente e como ele deve usar a memória.',
                    'Carregado no início de cada sessão.',
                    'Bom lugar para regras, prioridades e detalhes de comportamento.',
                ],
                'SOUL.md': ['Persona, tom e limites.', 'Carregado em toda sessão.'],
                'USER.md': ['Quem é o usuário e como se dirigir a ele.', 'Carregado em toda sessão.'],
                'IDENTITY.md': [
                    'Nome, estilo e emoji do agente.',
                    'Criado ou atualizado durante o ritual de bootstrap.',
                ],
                'TOOLS.md': [
                    'Notas sobre ferramentas locais e convenções.',
                    'Não controla a disponibilidade das ferramentas; serve apenas como orientação.',
                ],
                'HEARTBEAT.md': [
                    'Pequena lista opcional para execuções de heartbeat.',
                    'Mantenha curta para evitar gasto de tokens.',
                ],
                'BOOT.md': [
                    'Lista opcional de inicialização executada no reinício do gateway quando os hooks internos estão habilitados.',
                    'Mantenha curta; use a ferramenta de mensagem para envios externos.',
                ],
                'BOOTSTRAP.md': [
                    'Ritual único da primeira execução.',
                    'Só é criado para um workspace totalmente novo.',
                    'Exclua após o ritual ser concluído.',
                ],
            },
            duplicateBinding: 'A combinacao de canal e ID da conta deve ser unica',
            accountIdOptional: 'ID da conta (opcional)',
            saveAllMd: 'Salvar tudo',
            roleMarkdownRestartHelper:
                'Salvar todos os arquivos markdown atuais exige reiniciar o contêiner para entrar em vigor. Escolha se deseja reiniciar agora ou depois.',
            configFileRestartHelper:
                'Salvar o arquivo de configuração exige reiniciar imediatamente o contêiner para entrar em vigor.',
            overviewSnapshot: 'Visão geral',
            primaryModel: 'Modelo principal',
            defaultModel: 'Modelo padrão',
            channelCount: 'Canais configurados',
            skillCount: 'Habilidades',
            jobCount: 'Tarefas agendadas',
            sessionCount: 'Sessões',
            hermesChatAction: 'Conversa',
            hermesChatTitle: 'Conversa do Hermes',
            hermesChatDialogTitle: 'Conversa do Hermes - {0}',
            hermesChatNewChat: 'Nova conversa',
            hermesChatNoSessions: 'Nenhuma sessão',
            hermesChatMessageCount: '{0} mensagens',
            hermesChatEmptyHint: 'Selecione uma sessão à esquerda ou clique em Nova conversa',
            hermesChatTitlePlaceholder: 'Digite o título da sessão',
            hermesChatRenameSuccess: 'O título da sessão foi atualizado',
            hermesChatDeleteConfirm: 'Excluir a sessão {0}?',
            hermesChatDeleteSuccess: 'Sessão excluída',
            weixin: 'Weixin',
            wecom: 'WeCom',
            dingtalk: 'DingTalk',
            feishu: 'Feishu',
            pluginNotInstalled: 'O plugin não está instalado. Instale-o primeiro.',
            dmPolicy: 'Política de DM',
            threadSession: 'Sessão por thread',
            replyMode: 'Modo de resposta',
            requireMention: 'Exigir menção',
            requireMentionTrue: "Exige {'@'}",
            requireMentionFalse: "Não exige {'@'}",
            requireMentionOpen: 'Seguir configuração do grupo',
            groupPolicy: 'Política de grupo',
            policyAllowlist: 'Lista de permissões',
            policyOpen: 'Aberto',
            policyDisabled: 'Desativado',
            bots: 'Bots',
            addBot: 'Adicionar bot',
            accountId: 'ID da conta',
            accountIdPlaceholder: 'Um ID único para diferenciar bots e usá-los depois na configuração e no roteamento.',
            setDefaultBot: 'Definir como padrão',
            botDuplicateField: '{field} já existe',
            botRequired: 'Adicione pelo menos um bot',
            botId: 'ID do bot',
            allowFrom: 'Lista de permissões de DM',
            allowFromPlaceholder: 'Um ID de remetente por linha',
            allowlistPolicyHelper: '{0}. Usado apenas quando {1} é Lista de permissões.',
            systemPrompt: 'Prompt do sistema',
            groupAllowFrom: 'Lista de permissões de grupo',
            groupAllowFromPlaceholder: 'Um ID de grupo por linha',
            separateSessionByConversation: 'Separar sessão por conversa',
            groupSessionScope: 'Escopo da sessão em grupo',
            groupSessionScopeGroup: 'Compartilhado pelo grupo',
            groupSessionScopeGroupSender: 'Por remetente',
            sharedMemoryAcrossConversations: 'Compartilhar memória entre conversas',
            asyncMode: 'Modo assíncrono',
            ackText: 'Texto de confirmação',
            ackTextDefault: 'Tarefa recebida, processando...',
            streaming: 'Streaming',
            streamingOff: 'Desativado',
            streamingPartial: 'Parcial',
            streamingBlock: 'Bloqueante',
            streamingProgress: 'Progresso',
            allowFromRequired: 'Digite pelo menos uma entrada na lista de permissões',
            pairingCode: 'Código de pareamento',
            pairingCodePlaceholder: 'Digite o código de pareamento',
            approvePairing: 'Aprovar pareamento',
            saveSuccess: 'Salvo com sucesso',
            successAndRestart: '{0}. O contêiner está sendo reiniciado automaticamente.',
            pairingApproveSuccess: 'Pareamento aprovado com sucesso',
            scanConnect: 'Escanear para conectar',
            scanConnectHelper:
                'Clique para iniciar a tarefa de login por QR. O código QR aparecerá no log da tarefa e o contêiner será reiniciado automaticamente após a leitura ser concluída.',
            channelAutoRestartHelper:
                'Ao salvar, o contêiner será reiniciado automaticamente para que a configuração entre em vigor.',
            dashboardAuthAutoRebuildHelper:
                'Ao salvar o usuário ou a senha, o contêiner será reconstruído automaticamente para que as alterações entrem em vigor.',
            dashboardAuthImmediateHelper:
                'Ao salvar, as credenciais do QwenPaw são atualizadas imediatamente, sem reiniciar o contêiner.',
            channelDeleteConfirm: 'Excluir a configuração do canal {0}?',
            apiTypeBaseURLHelper: 'Este tipo envia requisições para {0}. Base URL recomendada: {1}',
            customImageURLHelper:
                'Informe a URL completa do endpoint de geração de imagens para contas Custom. O caminho não é adicionado automaticamente. Exemplo: {0}',
            apiTypeBaseURLMismatch:
                'A Base URL atual parece um caminho {0}, mas {1} está selecionado. URL recomendada: {2}',
            validateAvailability: 'Validar disponibilidade da conta',
            validateAvailabilityHelper: 'Envia uma mensagem mínima antes de salvar para validar a API',
            validateImageAvailabilityHelper: 'Gera uma imagem mínima antes de salvar e pode gerar custos',
        },
        model: {
            model: 'Modelo',
            localModel: 'Modelos locais',
            create_helper: 'Puxar "{0}"',
            ollama_doc: 'Você pode visitar o site oficial da Ollama para pesquisar e encontrar mais modelos.',
            container_conn_helper: 'Use este endereço para acesso ou conexão entre contêineres',
            ollama_sync:
                'Ao sincronizar os modelos Ollama, os modelos a seguir não foram encontrados. Deseja excluí-los?',
            from_remote: 'Este modelo não foi baixado pelo 1Panel; não há logs de download relacionados.',
            no_logs: 'Os logs de download deste modelo foram excluídos e não podem ser visualizados.',
            vllmVersionHelper: 'Para servidores FusionXpark GB 10, selecione a versão -cu130.',
            vllmCommandPortHelper:
                'O comando de inicialização deve usar a porta {0}; caso contrário, o serviço ficará inacessível.',
            syncModelAccount: 'Sincronizar com conta de modelo',
            modelAccountAddressHelper:
                'Use o endereço do contêiner para agentes; 127.0.0.1, IP do sistema ou endereço personalizado para AI Gateway ou serviços externos.',
            containerAddress: 'Endereço do contêiner',
            customAddress: 'Endereço personalizado',
            downloader: 'Baixador',
            modelDir: 'Diretório do modelo',
            manualDownload: 'Download manual',
            modelSource: 'Fonte do modelo',
            repoID: 'ID do repositório',
            endpointLabel: 'Endpoint do {0}',
            acceleratedEndpointLabel: 'Endpoint de aceleração do {0}',
            tokenOptionalLabel: 'Token do {0} (opcional)',
            searchSource: 'Pesquisar no {0}',
            hfEndpointHelper:
                'Configure um endpoint de aceleração quando o acesso ao HuggingFace estiver instável. A pesquisa, os detalhes e os downloads usarão esse endereço.',
            sortTrending: 'Tendências',
            sortLikes: 'Mais curtidos',
            sortDownloads: 'Mais baixados',
            sortUpdated: 'Atualizados recentemente',
            sortCreated: 'Criados recentemente',
            downloadsCount: 'Downloads',
            likes: 'Curtidas',
            taskQueue: 'Fila de downloads',
            progress: 'Progresso',
            localDownloaded: 'Baixados',
            modelInfo: 'Detalhes do modelo',
            downloading: 'Baixando',
            canceled: 'Cancelado',
            downloadQueued: 'Adicionado à fila de downloads',
            cancelTaskConfirm: 'Cancelar esta tarefa de download?',
            deleteLocalModelConfirm: 'Excluir o modelo local {0}?',
        },
        proxy: {
            proxy: 'Melhoria de Gateway de IA',
            proxyHelper1: 'Vincule o domínio e habilite o HTTPS para aumentar a segurança na transmissão',
            proxyHelper2: 'Limite o acesso por IP para evitar exposição na internet pública',
            proxyHelper3: 'Habilite a transmissão em fluxo',
            proxyHelper4: 'Após a criação, você pode visualizar e gerenciar no lista de sites',
            proxyHelper6: 'Para desativar a configuração de proxy, você pode excluí-la da lista de sites.',
            whiteListHelper: 'Restringir o acesso apenas aos IPs na lista branca',
            proxyHelper5:
                'Após ativar, você pode desativar o acesso externo à porta em Loja de Apps - Instalado - Ollama - Parâmetros para melhorar a segurança.',
        },
        aiProxy: {
            title: 'Gateway de IA',
            apiReference: 'Referência da API',
            notInstalled: 'Não instalado',
            usage: 'Uso',
            accountPool: 'Pool de contas',
            importModelAccount: 'Importar conta de modelo',
            editModelAccount: 'Editar conta de modelo',
            selectModelAccount: 'Selecionar uma conta de modelo existente',
            upstreamApiAddress: 'Endereço da API upstream',
            priority: 'Prioridade',
            healthStatus: 'Saúde',
            failureCount: 'Falhas',
            lastError: 'Último erro',
            modelMap: 'Mapeamento de modelos',
            qpsLimit: 'Limite de QPS',
            tokenLimit: 'Limite de tokens',
            tokenUsed: 'Tokens usados',
            tokenRemaining: 'Tokens restantes',
            resetToken: 'Redefinir tokens',
            resetTokenConfirm: 'Redefinir o uso de tokens de {0}?',
            unlimited: 'Ilimitado',
            unlimitedWithAuto: 'Ilimitado, inclui auto',
            lastUsedAt: 'Último uso',
            validityPeriod: 'Período de validade',
            keepCurrentValidity: 'Manter validade atual',
            neverExpires: 'Nunca expira',
            validForDays: 'Válido por {0} dias',
            customDays: 'Dias personalizados',
            enterValidityDays: 'Informe o período de validade em dias',
            currentExpiresAt: 'Expiração atual: {0}',
            currentNeverExpires: 'Atualmente não expira',
            expiresAt: 'Data de expiração',
            expired: 'Expirado',
            reactivate: 'Reativar',
            settingTitle: 'Configurações do gateway de IA',
            basicSetting: 'Configurações básicas',
            performanceSetting: 'Configurações de desempenho',
            logSetting: 'Configurações de log',
            lbPolicy: 'Política de balanceamento',
            protocolConversion: 'Conversão de protocolo',
            protocolConversionDesc:
                'Permite conversão direta compatível entre Chat Completions, Responses e Anthropic Messages. Protocolos nativos sempre têm prioridade.',
            protocolConversionRisk:
                'A conversão de protocolo não é sem perdas. Campos específicos, chamadas de ferramentas, raciocínio ou conteúdo multimodal podem ser degradados ou perdidos. Use após avaliar os riscos.',
            visionEnhancement: 'Aprimoramento visual',
            visionEnhancementRisk:
                'O aprimoramento visual pode enviar imagens a um provedor de modelo visual separado.',
            visionModelGroup: 'Grupo de modelos visuais',
            visionModelGroupDesc:
                'Selecione neste grupo de geração de texto um modelo que compreenda imagens. Todas as imagens da solicitação usam o mesmo modelo.',
            visionTargetModelGroup: 'Grupo de modelos de destino',
            visionTargetModelGroupDesc:
                'Ativa o aprimoramento apenas para modelos deste grupo, sem alterar o modelo final da solicitação.',
            visionEnhancementDesc:
                'As imagens são convertidas em evidências de texto e podem perder detalhes, aumentando latência e custo. O gateway não detecta suporte visual nativo. Salvar reinicia o gateway; use após avaliar os riscos.',
            visionPreprocess: 'Pré-processamento visual',
            cacheHit: 'Cache encontrado',
            apiType: 'Tipo de API',
            lbPolicyRoundRobin: 'Round Robin',
            lbPolicyRoundRobinDesc:
                'Seleciona contas de modelo disponíveis em ordem. Use quando os backends tiverem capacidade semelhante.',
            lbPolicyWeightedRoundRobin: 'Round Robin ponderado',
            lbPolicyWeightedRoundRobinDesc:
                'Distribui solicitações pelo peso da conta de modelo. Peso maior recebe mais tráfego.',
            lbPolicyFailover: 'Failover',
            lbPolicyFailoverDesc:
                'Usa primeiro a conta de modelo de maior prioridade e muda para a próxima disponível após falha ou cooldown.',
            maxConcurrency: 'Concorrência máxima',
            queueSize: 'Tamanho da fila',
            queueTimeoutSeconds: 'Timeout de espera na fila (s)',
            requestTimeoutSeconds: 'Timeout de requisição sem streaming (s)',
            streamIdleTimeoutSeconds: 'Timeout de inatividade do streaming (s)',
            maxBodyMb: 'Tamanho máximo do corpo (MB)',
            runtimeRefreshSeconds: 'Intervalo de atualização do runtime (s)',
            logRetentionDays: 'Retenção de logs do gateway de IA (dias)',
            clearLogs: 'Limpar logs',
            clearLogsConfirm:
                'Isso limpará estatísticas de uso, auditorias de conformidade de conteúdo, decisões de roteamento inteligente, logs do corpo da requisição e logs de serviço do gateway de IA. Continuar?',
            usageRetentionDays: 'Retenção de estatísticas de uso (dias)',
            contentAuditRetentionDays: 'Retenção de auditoria de conformidade de conteúdo (dias)',
            logCleanupIntervalHours: 'Intervalo de limpeza de logs (horas)',
            requestBodyLog: 'Log do corpo da requisição',
            requestBodyLogDesc:
                'Grava corpos de requisição e resposta do AI Gateway no Elasticsearch para pesquisa, auditoria e diagnóstico.',
            requestBodyLogIndexPrefix: 'Prefixo do índice',
            requestBodyLogRetentionDays: 'Retenção do log do corpo da requisição (dias)',
            requestBodyLogMaxBodyKb: 'Tamanho máximo do corpo da requisição (KB)',
            requestBody: 'Corpo da requisição',
            requestBodySize: 'Tamanho do corpo da requisição',
            requestBodyTruncated: 'Truncado',
            responseBody: 'Corpo da resposta',
            responseBodySize: 'Tamanho do corpo da resposta',
            responseBodyTruncated: 'Corpo da resposta truncado',
            readableContent: 'Conteúdo legível',
            rawResponse: 'Resposta bruta',
            replyContent: 'Conteúdo da resposta',
            reasoningContent: 'Conteúdo de raciocínio',
            statusTitle: 'Status do gateway de IA',
            serviceEnabled: 'Inicialização automática do serviço',
            proxyEnabled: 'Gateway habilitado',
            statusMessage: 'Mensagem de status',
            esLogDropped: 'Logs ES descartados',
            esLogLastSuccessAt: 'Última gravação ES',
            esLogCircuitOpen: 'Circuito aberto',
            esLogCircuitUntil: 'Circuito ES até',
            serviceOperateConfirm: 'Confirmar {0} o serviço de gateway de IA?',
            deleteTargetConfirm: 'Excluir {0} {1}?',
            deleteBackendTitle: 'Excluir conta de modelo',
            userFallback: 'Usuário excluído (ID: {0})',
            requestModel: 'Modelo solicitado',
            upstreamModel: 'Modelo upstream',
            upstreamDuration: 'Tempo do upstream',
            requestModelPlaceholder: 'ex.: qwen2.5-coder',
            upstreamModelPlaceholder: 'ex.: Qwen/Qwen2.5-Coder-32B-Instruct',
            addMapping: 'Adicionar mapeamento',
            overview: 'Visão geral',
            distribution: 'Distribuição',
            usageTrend: 'Tendência de uso',
            distributionBy: 'Distribuição por {0}',
            unmatched: 'Sem correspondência',
            modelAccount: 'Conta de modelo',
            serviceProvider: 'Provedor',
            tokenUsage: 'Uso de Token',
            percent: 'Percentual',
            ranking: 'Ranking',
            rank: 'Posição',
            promptToken: 'Token de entrada',
            completionToken: 'Token de saída',
            totalToken: 'Total de Token',
            cachedToken: 'Tokens em cache',
            cacheHitRate: 'Taxa de acerto do cache',
            activeUsers: 'Usuários ativos',
            activeModels: 'Modelos ativos',
            failedRequests: 'Requisições com falha',
            averageTokenPerRequest: 'Média de Token/requisição',
            callLogs: 'Logs de chamadas',
            usageKeywordPlaceholder: 'Pesquisar Request ID / modelo / modelo upstream / mensagem de erro',
            attemptChain: 'Cadeia de tentativas',
            attemptIndex: 'Ordem de chamada',
            clientProtocol: 'API do cliente',
            upstreamProtocol: 'API upstream',
            conversionPath: 'Caminho de conversão',
            noAttemptDetails: 'Nenhum registro da cadeia de tentativas',
            input: 'Entrada',
            output: 'Saída',
            total: 'Total',
            healthHealthy: 'Saudável',
            healthCooldown: 'Cooldown',
            healthUnhealthy: 'Anormal',
            healthDeleted: 'Excluído',
            healthUnknown: 'Desconhecido',
            validationModelMapEmpty: 'Os nomes no mapeamento de modelos não podem ficar vazios',
            validationModelMapDuplicate: 'O modelo solicitado {0} está duplicado',
            modelGroup: 'Grupo de modelos',
            modelCapability: 'Capacidade do modelo',
            textGeneration: 'Geração de texto',
            imageGeneration: 'Geração de imagens',
            textModels: 'Modelos de texto',
            textToImageModels: 'Modelos de texto para imagem',
            unauthorized: 'Não autorizado',
            imageCount: 'Quantidade de imagens',
            availableModels: 'Modelos disponíveis',
            modelGroupModels: 'Modelos solicitados',
            modelGroupModelsPlaceholder: 'Selecione ou informe nomes de modelos solicitados',
            modelGroupModelsHelper:
                'Informe os nomes de modelo usados pelos clientes ao chamar o gateway de IA; o roteamento inteligente tenta os modelos em ordem e não faz balanceamento entre modelos.',
            modelGroupGuide:
                'Grupos de modelos contêm os nomes de modelo expostos pelo gateway de IA. Configure os modelos upstream no mapeamento de modelos do pool de contas. auto é um nome de modelo virtual e não deve ser adicionado ao grupo.',
            modelGroupModelCount: '{0} modelos',
            contentCompliance: 'Conformidade de Conteúdo',
            contentAction: 'Ação',
            actionBlock: 'Bloquear',
            actionAuditOnly: 'Somente auditar',
            actionDropHistory: 'Remover histórico',
            severity: 'Severidade',
            severityHigh: 'Alta',
            severityMedium: 'Média',
            severityLow: 'Baixa',
            sensitiveWord: 'Palavra sensível',
            sensitiveGroup: 'Grupo de palavras sensíveis',
            sensitiveWordCount: 'Palavras',
            normalizedWord: 'Palavra normalizada',
            matchedWords: 'Palavras correspondentes',
            matchedGroups: 'Grupos correspondentes',
            importResult: 'Importados {0}, duplicados {1}, inválidos {2}',
            auditLogs: 'Logs de Auditoria',
            smartRoute: 'Roteamento inteligente',
            smartRouteGuideTitle: 'Use model=auto no cliente para entrar no roteamento inteligente',
            smartRouteGuideReady:
                'model=auto escolhe o grupo de modelos simples ou complexos conforme a complexidade da solicitação. Outros modelos são encaminhados normalmente.',
            smartRouteGuideNotReady:
                'Ative o roteamento inteligente e configure os grupos simples/complexos primeiro. Depois use model=auto no cliente.',
            copyAutoModel: 'Copiar auto',
            goSmartRouteSetting: 'Ir para configurações',
            smartRoutePolicy: 'Política de roteamento',
            routeConfig: 'Configuração de roteamento',
            embeddingConfig: 'Configurações de embedding',
            embeddingConfigDesc:
                'Usado para roteamento inteligente e correspondência semântica de amostras de conformidade de conteúdo. Recomendado: llama.cpp + Qwen3-Embedding-0.6B. Configure antes de reconstruir vetores.',
            decisionConfig: 'Parâmetros de decisão',
            simpleModelGroup: 'Grupo de modelos simples',
            complexModelGroup: 'Grupo de modelos complexos',
            embeddingEndpoint: 'Endpoint',
            embeddingModel: 'Modelo',
            embeddingApiKey: 'API Key',
            routeThreshold: 'Limite de roteamento',
            routeThresholdHelper:
                'Para Roteamento Inteligente: use amostras apenas quando a similaridade atingir este valor.',
            auditThreshold: 'Limite de auditoria',
            auditThresholdHelper:
                'Para Conformidade de Conteúdo: considere amostras de auditoria apenas ao atingir este valor.',
            topK: 'TopK',
            topKHelper: 'Número de amostras mais semelhantes comparadas a cada vez.',
            members: 'Membros',
            samples: 'Amostras',
            routeSamplesGuide:
                'Amostras são exemplos de solicitações simples/complexas para correspondência por similaridade Embedding. Use solicitações reais e depois crie ou reconstrua vetores.',
            rebuildVectors: 'Reconstruir vetores',
            rebuildVectorsConfirm:
                'Reconstruir vetores solicitará novamente ao serviço Embedding que processe as amostras de roteamento inteligente e conformidade de conteúdo. Continuar?',
            createVectorOnImport: 'Criar vetores após importar',
            createVectorOnImportHelper:
                'Ativado por padrão. Se o Embedding estiver configurado, uma tarefa em segundo plano cria vetores; caso contrário, apenas cria amostras.',
            route: 'Rota',
            audit: 'Auditoria',
            auditSamples: 'Amostras de auditoria',
            sampleText: 'Texto',
            sampleLabel: 'Rótulo',
            vectorModel: 'Modelo vetorial',
            vectorDim: 'Dimensão',
            threshold: 'Limite',
            preview: 'Pré-visualização',
            previewGuide:
                'A pré-visualização testa se uma solicitação é simples ou complexa sem chamar o modelo upstream. A fonte é correspondência de amostras ou regras.',
            previewPlaceholder: 'Insira o texto da solicitação',
            confidence: 'Confiança',
            bestSampleSimilarity: 'Maior similaridade da amostra',
            source: 'Fonte',
            sourceHeuristic: 'Regras',
            sourceEmbedding: 'Correspondência de amostras',
            sourceContext: 'Herança de contexto',
            latency: 'Latência',
            decisionLogs: 'Logs de decisão',
            requestID: 'ID da solicitação',
            simple: 'Simples',
            complex: 'Complexo',
            sampleLabelSafe: 'Seguro',
            sampleLabelReview: 'Revisar',
            sampleLabelBlock: 'Bloquear',
            latencyMs: 'Latência(ms)',
            smartRouteSettingGuide:
                'Depois de ativado, apenas solicitações com model=auto usam o roteamento inteligente. O grupo simples é para tarefas de baixo custo; o complexo para análise de código, arquitetura e diagnóstico.',
            sampleLabelPlaceholder: 'simple / complex / high',
            sampleImportPlaceholder: 'Uma amostra por linha',
            apiKeyCount: 'Quantidade',
        },
        skillsHub: {
            title: 'Skills Hub',
            upload: 'Enviar Skill',
            importSkill: 'Importar Skill',
            repositoryAddress: 'Endereço do repositório',
            repositoryGithubOnly: 'Somente endereços de repositórios do GitHub são suportados',
            repositoryRef: 'Branch ou Tag',
            repositoryRefPlaceholder: 'Padrão main; se falhar, tentará master',
            repositoryDownloadPreview: 'URL de download de destino:',
            packageURL: 'URL do pacote',
            packageURLPlaceholder: 'Informe o endereço do pacote .zip',
            importSuccess: 'Skill importada com sucesso e agora está pendente de revisão.',
            source: 'Fonte',
            applicableAgent: 'Agente aplicável',
            overview: 'Visão geral',
            versionHistory: 'Histórico de versões',
            publishedAt: 'Publicado em',
            versionMarker: 'Marcador',
            currentVersion: 'Atual',
            latestVersion: 'Versão mais recente',
            latestPublished: 'Mais recente publicada',
            riskLevel: 'Nível de risco',
            riskReferenceHint:
                'O nível de risco é gerado automaticamente a partir do conteúdo do pacote Skill e serve apenas como referência.\nBaixo: nenhum risco evidente\nMédio: scripts, dependências, URLs externas ou variáveis de ambiente\nAlto: execução remota, informações sensíveis ou comandos perigosos',
            riskCheckResult: 'Resultado da verificação de segurança',
            noRiskFound: 'Nenhum risco evidente encontrado.',
            riskFilePath: 'Caminho do arquivo',
            riskKeyword: 'Palavra-chave ou regra correspondente',
            riskDescription: 'Descrição do risco',
            publishHighRiskConfirm:
                'Esta Skill possui itens de alto risco e pode conter execução de scripts, downloads externos ou acesso a informações sensíveis. Publicar mesmo assim?',
            approve: 'Aprovar',
            reject: 'Rejeitar',
            publish: 'Publicar',
            disable: 'Despublicar',
            customTarget: 'Agente personalizado',
            addCustomTarget: 'Adicionar agente',
            installToTarget: 'Instalar no agente personalizado',
            hostSkillDir: 'Diretório de Skills',
            hostSkillDirHelper: 'Informe o caminho do diretório de Skills no nó.',
            installMethod: 'Método de instalação',
            copy: 'Copiar',
            extract: 'Extrair',
            postInstallCommand: 'Comando pós-instalação',
            localSource: 'Upload local',
            uploadDragTitle: 'Arraste o pacote Skill aqui ou clique para enviar',
            uploadFormatLabel: 'Formatos:',
            uploadFormatValue: '.zip, .7z, .tar, .tar.gz',
            uploadSizeLabel: 'Tamanho:',
            uploadSizeValue: 'Até 5 MB por arquivo',
            uploadRequirementLabel: 'Requisito:',
            uploadRequirementPrefix: 'O pacote Skill deve conter',
            onlySupportedArchive: 'Só é possível enviar pacotes Skill .zip, .7z, .tar e .tar.gz',
            uploadSizeExceeded: 'Um pacote Skill não pode exceder 5 MB',
            uploadSuccess: 'Skill enviada com sucesso e agora está pendente de revisão.',
            versionAutoFillPlaceholder:
                'Detectado automaticamente pelo nome do arquivo quando possível. Confirme ou preencha manualmente',
            metadataOverwriteConfirm: 'A versão no pacote Skill difere do valor atual. Usar o valor atual?',
            metadataOverwriteConfirmWithVersions:
                'A versão no pacote Skill difere do valor atual. Versão do pacote: {packageVersion}; versão informada: {inputVersion}. Usar o valor atual?',
            offlineNotice: 'O ambiente atual está offline. Apenas Skills da loja local podem ser instaladas.',
            publishConfirm: 'Publicar esta Skill? Depois disso, ela poderá ser instalada pela loja local de Skills.',
            disableConfirm: 'Despublicar esta Skill? Skills já instaladas em agentes não serão afetadas.',
            deleteConfirm:
                'Excluir esta Skill? Esta ação não pode ser desfeita. Skills já instaladas em agentes não serão afetadas.',
            rejectConfirm: 'Rejeitar a revisão desta Skill? Ela passará para o status rejeitado.',
            downloadPublishedOnly: 'Somente pacotes Skill publicados podem ser baixados.',
            deleteTargetConfirm:
                'Excluir este agente personalizado? Os usuários não poderão mais selecionar este destino de instalação.',
            noInstallTarget: 'Nenhum agente personalizado disponível. Configure primeiro um destino de instalação.',
            postInstallConfirm:
                'Este destino tem um comando pós-instalação. Confirme que o comando é confiável antes de executá-lo.',
            status: {
                pending: 'Pendente',
                approved: 'Aprovado',
                published: 'Publicado',
                disabled: 'Despublicado',
                rejected: 'Rejeitado',
                deleted: 'Excluído',
            },
            agent: {
                common: 'Comum',
            },
            risk: {
                low: 'Baixo',
                medium: 'Médio',
                high: 'Alto',
            },
            riskType: {
                script_file: 'Arquivo de script',
                dependency_manifest: 'Manifesto de dependências',
                external_url: 'URL externa',
                environment_variable: 'Variável de ambiente',
                dockerfile: 'Dockerfile',
                command_execution: 'Execução de comando',
                remote_script_execution: 'Execução de script remoto',
                eval_execution: 'Execução dinâmica',
                base64_execution: 'Execução após decodificação Base64',
                privileged_command: 'Comando privilegiado',
                dangerous_delete: 'Exclusão perigosa',
                world_writable_permission: 'Permissão de alto risco',
                credential: 'Credencial suspeita',
                sensitive_path: 'Caminho sensível',
                suspicious_download_execute: 'Download e execução suspeitos',
                binary_content: 'Conteúdo binário',
                scan_truncated: 'Verificação truncada',
            },
            riskDescriptionText: {
                script_file: 'Contém arquivos de script que podem executar comandos locais.',
                dependency_manifest:
                    'Contém manifestos de dependências que podem baixar dependências externas durante a instalação.',
                external_url: 'Contém URLs externas. Verifique se os endereços de saída são confiáveis.',
                environment_variable: 'Declara variáveis de ambiente. Verifique sua finalidade e valores padrão.',
                dockerfile: 'Contém um Dockerfile que pode definir build de imagem ou lógica de execução.',
                command_execution:
                    'Contém chamadas relacionadas à execução de comandos. Verifique se a lógica é confiável.',
                remote_script_execution: 'Contém lógica que baixa e executa diretamente um script remoto.',
                eval_execution: 'Contém execução dinâmica por eval.',
                base64_execution: 'Contém lógica que executa conteúdo após decodificação Base64.',
                privileged_command: 'Contém comandos sudo de elevação de privilégio.',
                dangerous_delete: 'Contém comandos de exclusão perigosos.',
                world_writable_permission: 'Contém alterações de permissão chmod 777.',
                credential: 'Contém possível API Key, Token, Secret ou Password.',
                sensitive_path: 'Contém acesso a diretórios ou arquivos sensíveis.',
                suspicious_download_execute: 'Contém lógica suspeita de download externo ou download e execução.',
                binary_content: 'O arquivo contém bytes NUL e pode ocultar conteúdo executável ou binário.',
                scan_truncated:
                    'O arquivo excede o limite de verificação. O conteúdo não verificado ainda requer revisão manual.',
            },
        },
        benchmark: {
            title: 'Benchmark',
            launchCommand: 'Comando de inicialização',
            retest: 'Testar novamente',
            statusRunning: 'Executando',
            statusWaiting: 'Aguardando',
            base: 'Informações básicas',
            backend: 'Backend',
            baseUrl: 'URL base',
            endpoint: 'Endpoint',
            tokenizer: 'Tokenizer',
            tokenizerPlaceholder:
                'Selecione ou informe um diretório local de tokenizer, ex.: /opt/1panel/tokenizers/DeepSeek-V3',
            runConfig: 'Configuração de execução',
            rawResult: 'Resultado bruto',
            resultMetrics: 'Métricas de resultado',
            contextTokens: 'Comprimento de contexto',
            contextTokensHelper: 'Limite de tokens de entrada mais limite de tokens de saída para este benchmark.',
            outputThroughput: 'Throughput de saída',
            outputThroughputHelper: 'Tokens de saída gerados por segundo. Quanto maior, mais rápida a geração.',
            totalThroughput: 'Throughput total',
            totalThroughputHelper:
                'Tokens de entrada e saída processados por segundo. Usado para medir a capacidade geral.',
            firstTokenLatency: 'Latência do primeiro token',
            firstTokenLatencyHelper:
                'Tempo entre enviar a requisição e receber o primeiro token. Quanto menor, mais rápida a resposta.',
            tokenValueHelper: 'Informe um inteiro positivo ou valor com k, ex.: 512, 1k, 32k',
            numPrompts: 'Prompts',
            concurrency: 'Concorrência',
            mean: 'Média',
            median: 'Mediana',
            requestRate: 'Taxa de requisições',
            requestRateUnlimited: 'Ilimitado (throughput máximo)',
            requestRateCustom: 'QPS personalizado',
            requestRateCustomPlaceholder: 'Requisições por segundo, ex.: 2.5',
            successfulRequests: 'Requisições bem-sucedidas',
            requestThroughput: 'Throughput de requisições',
            timeout: 'Timeout (segundos)',
            image: 'Imagem vLLM',
            ignoreEos: 'Ignorar EOS',
            extraHeaders: 'Cabeçalhos extras',
        },
        gpu: {
            gpu: 'Monitoramento de GPU',
            gpuHelper: 'O sistema não detectou comandos NVIDIA-SMI ou XPU-SMI. Verifique e tente novamente!',
            process: 'Informações do Processo',
            type: 'Tipo',
            typeG: 'Gráficos',
            typeC: 'Computação',
            typeCG: 'Computação+Gráficos',
            processName: 'Nome do Processo',
            shr: 'Memória Compartilhada',
            temperatureHelper: 'Alta temperatura da GPU pode causar redução na frequência da GPU',
            gpuUtil: 'Utilização da GPU',
            temperature: 'Temperatura',
            performanceState: 'Estado de Desempenho',
            powerUsage: 'Consumo de Energia',
            memoryUsage: 'Utilização de Memória',
            fanSpeed: 'Velocidade do Ventilador',
            power: 'Energia',
            powerCurrent: 'Energia Atual',
            powerLimit: 'Limite de Energia',
            memory: 'Memória',
            memoryUsed: 'Memória Usada',
            memoryTotal: 'Memória Total',
            percent: 'Utilização',
            base: 'Informações Básicas',
            driverVersion: 'Versão do Driver',
            cudaVersion: 'Versão do CUDA',
            processMemoryUsage: 'Uso de Memória',
            performanceStateHelper: 'De P0 (desempenho máximo) a P12 (desempenho mínimo)',
            busID: 'Endereço do Barramento',
            persistenceMode: 'Modo de Persistência',
            enabled: 'Habilitado',
            disabled: 'Desabilitado',
            persistenceModeHelper:
                'O modo de persistência responde às tarefas mais rapidamente, mas o consumo de energia em espera aumentará correspondentemente',
            displayActive: 'Inicialização da GPU',
            displayActiveT: 'Sim',
            displayActiveF: 'Não',
            ecc: 'Tecnologia de Verificação e Correção de Erros',
            computeMode: 'Modo de Computação',
            default: 'Padrão',
            exclusiveProcess: 'Processo Exclusivo',
            exclusiveThread: 'Thread Exclusiva',
            prohibited: 'Proibido',
            defaultHelper: 'Padrão: Os processos podem executar simultaneamente',
            exclusiveProcessHelper:
                'Processo Exclusivo: Apenas um contexto CUDA pode usar a GPU, mas pode ser compartilhado por múltiplas threads',
            exclusiveThreadHelper: 'Thread Exclusiva: Apenas uma thread em um contexto CUDA pode usar a GPU',
            prohibitedHelper: 'Proibido: A execução simultânea de processos não é permitida',
            migModeHelper:
                'Usado para criar instâncias MIG, implementando isolamento físico da GPU na camada do usuário.',
            migModeNA: 'Não Suportado',
            current: 'Monitoramento em Tempo Real',
            history: 'Registros Históricos',
            notSupport: 'A versão atual ou o driver não suportam exibir este parâmetro.',
            processCount: 'Qtd. de processos',
        },
        mcp: {
            server: 'Servidor MCP',
            baseUrl: 'Caminho de Acesso Externo',
            baseUrlHelper: 'Por exemplo: http://192.168.1.2:8000',
            ssePath: 'Caminho SSE',
            ssePathHelper: 'Por exemplo: /sse, tome cuidado para não duplicar com outros servidores',
            environment: 'Variáveis de Ambiente',
            envKey: 'Nome da Variável',
            envValue: 'Valor da Variável',
            externalUrl: 'Endereço de Conexão Externo',
            operatorHelper: 'Será realizada a operação {1} no {0}, continuar?',
            domain: 'Endereço de Acesso Padrão',
            domainHelper: 'Por exemplo: 192.168.1.1 ou example.com',
            bindDomain: 'Vincular Site',
            commandPlaceHolder: 'Atualmente, apenas comandos de inicialização npx e binários são suportados',
            importMcpJson: 'Importar Configuração do Servidor MCP',
            importMcpJsonError: 'A estrutura mcpServers está incorreta',
            bindDomainHelper:
                'Após vincular o site, ele modificará o endereço de acesso de todos os servidores MCP instalados e fechará o acesso externo às portas',
            outputTransport: 'Tipo de Saída',
            streamableHttpPath: 'Caminho de Streaming',
            streamableHttpPathHelper: 'Por exemplo: /mcp, certifique-se de que não se sobreponha a outros Servidores',
            npxHelper: 'Adequado para mcp iniciado com npx ou binário',
            uvxHelper: 'Adequado para mcp iniciado com uvx',
            protocolVersion: 'Versão do Protocolo',
            protocolVersionHelper:
                'Usado apenas pelo Streamable HTTP sem estado para inicializar automaticamente o MCP Server stdio a jusante',
            gatewayArgsHelper:
                'Os argumentos são adicionados ao comando supergateway. Os parâmetros de transporte, porta, caminho e protocolo gerenciados pelo 1Panel não podem ser alterados',
            testConnection: 'Testar Conexão',
            connectionSuccess: 'Conexão bem-sucedida',
            connectionFailed: 'Falha na conexão',
        },
        tensorRT: {
            llm: 'TensorRT LLM',
            modelDir: 'Diretório do Modelo',
            commandHelper:
                'Se for necessário acesso externo, defina a porta no comando para ser a mesma que a porta do aplicativo',
            imageAlert:
                'Devido ao grande tamanho da imagem, recomenda-se baixar manualmente a imagem para o servidor antes da instalação',
            modelSpeedup: 'Ativar aceleração de modelo',
            modelType: 'Tipo de modelo',
        },
    },
    container: {
        createByCommand: 'Criar por comando',
        importContainerBackupTip: 'Importar arquivo de backup de contêiner, apenas .tar.gz é suportado',
        importComposeBackupTip: 'Importar arquivo de backup de compose, apenas .tar.gz é suportado',
        stopContainerBeforeBackup: 'Parar contêiner antes do backup',
        stopComposeBeforeBackup: 'Parar compose antes do backup',
        stopBeforeBackupHelper:
            'Quando habilitado, o contêiner ou serviço compose será interrompido antes do backup e restaurado automaticamente após a conclusão para garantir consistência dos dados.',
        commandInput: 'Entrada de comando',
        commandRule: 'Insira um comando docker run válido para criar o contêiner.',
        commandHelper: 'Este comando será executado no servidor para criar o contêiner. Continuar?',
        updateHelper1: 'Detectamos que este contêiner vem da loja de aplicativos. Observe os seguintes dois pontos:',
        updateHelper2:
            '1. As modificações atuais não serão sincronizadas com os aplicativos instalados na loja de aplicativos.',
        updateHelper3:
            '2. Se você modificar o aplicativo na página de instalados, o conteúdo atualmente editado se tornará inválido.',
        updateHelper4:
            'Editar o contêiner requer reconstrução, e qualquer dado não persistente será perdido. Deseja continuar?',
        containerList: 'Lista de contêineres',
        operatorHelper: '{0} será realizado no seguinte contêiner. Deseja continuar?',
        operatorAppHelper:
            'A operação "{0}" será realizada no(s) seguinte(s) contêiner(es) e pode afetar os serviços em execução. Deseja continuar?',
        containerDeleteHelper:
            "Detectado que o contêiner é da App Store. Excluir o contêiner não o removerá completamente do 1Panel. Para excluí-lo completamente, vá para a App Store -> menus 'Instalado' ou 'Ambiente de Execução'. Continuar?",
        start: 'Iniciar',
        stop: 'Parar',
        restart: 'Reiniciar',
        kill: 'Finalizar',
        pause: 'Pausar',
        unpause: 'Retomar',
        rename: 'Renomear',
        remove: 'Remover',
        removeAll: 'Remover todos',
        containerPrune: 'Limpar',
        containerPruneHelper1: 'Isso excluirá todos os contêineres que estão no estado parado.',
        containerPruneHelper2:
            'Se os contêineres forem da loja de aplicativos, você precisará ir para "Loja de Aplicativos -> Instalados" e clicar no botão "Reconstruir" para reinstalá-los após a limpeza.',
        containerPruneHelper3: 'Esta operação não pode ser desfeita. Deseja continuar?',
        imagePrune: 'Limpar',
        imagePruneSome: 'Limpar sem rótulo',
        imagePruneSomeEmpty: 'Não há imagens com a tag "none" para limpar.',
        imagePruneSomeHelper: 'Limpar as imagens com a tag "none" que não são usadas por nenhum contêiner.',
        imagePruneAll: 'Limpar não utilizadas',
        imagePruneAllEmpty: 'Não há imagens não utilizadas para limpar.',
        imagePruneAllHelper: 'Limpar as imagens que não são usadas por nenhum contêiner.',
        networkPrune: 'Limpar',
        networkPruneHelper: 'Isso removerá todas as redes não utilizadas. Deseja continuar?',
        volumePrune: 'Limpar',
        volumePruneHelper: 'Isso removerá todos os volumes locais não utilizados. Deseja continuar?',
        cleanSuccess: 'A operação foi bem-sucedida, o número desta limpeza: {0}!',
        cleanSuccessWithSpace:
            'A operação foi bem-sucedida. O número de discos limpos desta vez é {0}. O espaço em disco liberado foi {1}!',
        unExposedPort: 'O endereço atual de mapeamento de porta é 127.0.0.1, o que não permite o acesso externo.',
        upTime: 'Tempo de atividade',
        fetch: 'Buscar',
        lines: 'Linhas',
        linesHelper: 'Por favor, insira o número correto de logs a serem recuperados!',
        downloadLinesHelper: 'Selecione ou insira o número de linhas de log para download.',
        lastDay: 'Último dia',
        last4Hour: 'Últimas 4 horas',
        lastHour: 'Última hora',
        last10Min: 'Últimos 10 minutos',
        cleanLog: 'Limpar log',
        cleanLogscope: 'Tipo de limpeza',
        downLogHelper1: 'Isso fará o download de todos os logs do contêiner {0}. Deseja continuar?',
        downLogHelper2: 'Isso baixará os {1} logs mais recentes do contêiner {0}. Deseja continuar?',
        cleanLogHelper: 'Isso exigirá a reinicialização do contêiner e não poderá ser desfeito. Deseja continuar?',
        newName: 'Novo nome',
        source: 'Uso de recursos',
        cpuUsage: 'Uso de CPU',
        cpuTotal: 'CPU total',
        core: 'Núcleo',
        memUsage: 'Uso de memória',
        memTotal: 'Limite de memória',
        memCache: 'Cache de memória',
        loadSize: 'Obter Tamanho do Contêiner',
        ip: 'Endereço IP',
        cpuShare: 'Atribuição de CPU',
        cpuShareHelper:
            'O mecanismo de contêiner usa um valor base de 1024 para a atribuição de CPU. Você pode aumentá-lo para dar mais tempo de CPU ao contêiner.',
        inputIpv4: 'Exemplo: 192.168.1.1',
        inputIpv6: 'Exemplo: 2001:0db8:85a3:0000:0000:8a2e:0370:7334',
        diskUsage: 'Uso do Disco',
        localVolume: 'Volume de Armazenamento Local',
        buildCache: 'Cache de Build',
        usage: 'Usado: {0}, Liberável: {1}',
        clean: 'Liberar',
        imageClean:
            'Limpar imagens excluirá todas as imagens não utilizadas. Esta operação não pode ser desfeita. Continuar?',
        containerClean:
            'Limpar contêineres excluirá todos os contêineres parados (incluindo aplicativos parados da Loja de Aplicativos). Esta operação não pode ser desfeita. Continuar?',
        sizeRw: 'Tamanho da Camada do Contêiner',
        sizeRwHelper: 'Tamanho da camada gravável exclusiva do contêiner',
        sizeRootFs: 'Tamanho Virtual',
        sizeRootFsHelper:
            'Tamanho total de todas as camadas de imagem das quais o contêiner depende + camada do contêiner',
        containerFromAppHelper:
            'Detectamos que este contêiner vem da loja de aplicativos. As operações no aplicativo podem fazer com que as edições atuais sejam invalidadas.',
        containerFromAppHelper1:
            'Clique no botão [Param] na lista de aplicativos instalados para acessar a página de edição e modificar o nome do contêiner.',
        command: 'Comando',
        console: 'Interação com o contêiner',
        tty: 'Atribuir pseudo-TTY (-t)',
        openStdin: 'Manter STDIN aberto mesmo que não esteja anexado (-i)',
        custom: 'Personalizado',
        emptyUser: 'Se estiver vazio, você fará login com o padrão',
        privileged: 'Privilegiado',
        privilegedHelper:
            'Permite que o contêiner execute determinadas operações privilegiadas no host, o que pode aumentar os riscos do contêiner. Use com cautela!',
        upgradeHelper: 'Nome do Repositório/Nome da Imagem: Versão da Imagem',
        upgradeWarning2:
            'A operação de upgrade requer a reconstrução do contêiner, e qualquer dado não persistente será perdido. Deseja continuar?',
        oldImage: 'Imagem atual',
        sameImageContainer: 'Contêineres com mesma imagem',
        sameImageHelper: 'Contêineres usando a mesma imagem podem ser atualizados em lote após seleção',
        targetImage: 'Imagem alvo',
        imageLoadErr: 'Nenhum nome de imagem detectado para o contêiner',
        imageUpdateTagEmpty: 'Nenhuma tag de imagem atualizável foi detectada',
        appHelper: 'O contêiner vem da loja de aplicativos, e o upgrade pode tornar o serviço indisponível.',
        input: 'Entrada manual',
        forcePull: 'Sempre puxar imagem',
        forcePullHelper:
            'Isso ignorará as imagens existentes no servidor e puxará a imagem mais recente do repositório.',
        imageUpdateHelper:
            'Verificar a mesma tag no registry e, se houver atualização, fazer pull e atualizar a imagem local.',
        server: 'Host',
        serverExample: '80, 80-88, ip:80 ou ip:80-88',
        containerExample: '80 ou 80-88',
        exposePort: 'Expor porta',
        exposeAll: 'Expor todas',
        cmdHelper: 'Exemplo: nginx -g "daemon off;"',
        entrypointHelper: 'Exemplo: docker-entrypoint.sh',
        autoRemove: 'Remover automaticamente',
        cpuQuota: 'Número de núcleos de CPU',
        memoryLimit: 'Memória',
        limitHelper: 'Se definido como 0, significa que não há limitação. O valor máximo é {0}',
        mount: 'Montagem',
        volumeOption: 'Volume',
        hostOption: 'Host',
        serverPath: 'Caminho do servidor',
        containerDir: 'Caminho do contêiner',
        networkEmptyHelper: 'Por favor confirme que a seleção de rede do contêiner está correta',
        modeRW: 'RW',
        modeR: 'R',
        sharedLabel: 'Modo de Propagação',
        private: 'Privado',
        privateHelper: 'As alterações de montagem no container e no host não se afetam mutuamente',
        rprivate: 'Privado Recursivo',
        rprivateHelper: 'Todas as montagens no container estão completamente isoladas do host',
        shared: 'Compartilhado',
        sharedHelper: 'As alterações de montagem no host e no container são visíveis entre si',
        rshared: 'Compartilhado Recursivo',
        rsharedHelper: 'Todas as alterações de montagem no host e no container são visíveis entre sí',
        slave: 'Escravo',
        slaveHelper:
            'O container pode ver as alterações de montagem do host, mas suas próprias alterações não afetam o host',
        rslave: 'Escravo Recursivo',
        rslaveHelper: 'Todas as montagens no container podem ver as alterações do host, mas não afetam o host',
        mode: 'Modo',
        env: 'Ambientes',
        restartPolicy: 'Política de reinício',
        always: 'sempre',
        unlessStopped: 'a menos que parado',
        onFailure: 'em falha (cinco vezes por padrão)',
        no: 'nunca',
        refreshTime: 'Intervalo de atualização',
        cache: 'Cache',
        image: 'Imagem | Imagens',
        imagePull: 'Puxar',
        imagePullHelper:
            'Suporta selecionar múltiplas imagens para puxar, pressione Enter após inserir cada imagem para continuar',
        imagePush: 'Enviar',
        imagePushHelper:
            'Detectado que esta imagem possui múltiplas tags. Por favor, confirme que o nome da imagem usada para push é: {0}',
        imageDelete: 'Excluir imagem',
        repoName: 'Registro de contêiner',
        imageName: 'Nome da imagem',
        pull: 'Puxar',
        path: 'Caminho',
        importImage: 'Importar',
        buildArgs: 'Argumentos de Build',
        imageBuild: 'Construção de imagem',
        pathSelect: 'Caminho',
        label: 'Etiqueta',
        imageTag: 'Tag de imagem',
        imageTagHelper:
            'Suporta definir múltiplas tags de imagem, pressione Enter após inserir cada tag para continuar',
        push: 'Enviar',
        fileName: 'Nome do arquivo',
        export: 'Exportar',
        exportImage: 'Exportar imagem',
        size: 'Tamanho',
        tag: 'Tags',
        tagHelper: 'Uma por linha. Por exemplo,\nchave1=valor1\nchave2=valor2',
        imageNameHelper: 'Nome da imagem e tag, por exemplo: nginx:latest',
        cleanBuildCache: 'Limpar cache de construção',
        delBuildCacheHelper:
            'Isso excluirá todos os artefatos em cache gerados durante as construções e não poderá ser desfeito. Deseja continuar?',
        urlWarning: 'O prefixo da URL não precisa incluir http:// ou https://. Por favor, modifique.',
        network: 'Rede | Redes',
        networkHelper:
            'Isso pode fazer com que alguns aplicativos e ambientes de execução não funcionem corretamente. Deseja continuar?',
        networkName: 'Nome',
        driver: 'Driver',
        option: 'Opção',
        attachable: 'Anexável',
        parentNetworkCard: 'Placa de Rede Principal',
        subnet: 'Sub-rede',
        scope: 'Escopo IP',
        gateway: 'Gateway',
        auxAddress: 'Excluir IP',
        volume: 'Volumes',
        volumeDir: 'Diretório do volume',
        nfsEnable: 'Habilitar armazenamento NFS',
        nfsAddress: 'Endereço',
        mountpoint: 'Ponto de montagem',
        mountpointNFSHelper: 'Exemplo: /nfs, /nfs-share',
        options: 'Opções',
        repo: 'Registries',
        httpRepoHelper: 'Operar um repositório do tipo HTTP requer reinicialização do serviço Docker.',
        httpRepo:
            'Escolher o protocolo HTTP requer reiniciar o serviço Docker para adicioná-lo a registries inseguros.',
        delInsecure: 'Remover da lista de segurança',
        delInsecureHelper:
            'Isso reiniciará o serviço Docker para removê-lo dos registries inseguros. Deseja continuar?',
        downloadUrl: 'Servidor',
        imageRepo: 'Repositório de imagens',
        repoHelper: 'Inclui repositório espelho/organização/projeto?',
        auth: 'Exigir autenticação',
        mirrorHelper:
            'Se houver múltiplos espelhos, devem ser exibidos em novas linhas, por exemplo:\nhttp://xxxxxx.m.daocloud.io \nhttps://xxxxxx.mirror.aliyuncs.com',
        registrieHelper:
            'Se houver múltiplos repositórios privados, eles devem ser exibidos em novas linhas, por exemplo:\n172.16.10.111:8081 \n172.16.10.112:8081',
        compose: 'Compose | Composições',
        composeFile: 'Arquivo de Orquestração',
        fromChangeHelper: 'Trocar a origem limpará o conteúdo editado atual. Deseja continuar?',
        composePathHelper:
            'Caminho de salvamento do arquivo Compose: {0}; se um nome de projeto for definido no Docker Compose, ele terá prioridade; caso contrário, será usado {1}.',
        composeNamePriorityHelper:
            'Prioridade do nome do projeto: nome definido na configuração do Docker Compose > diretório pai do arquivo > nome informado aqui.',
        composeHelper:
            'A composição criada através do editor ou template do 1Panel será salva no diretório {0}/docker/compose.',
        deleteFile: 'Excluir arquivo',
        deleteComposeHelper:
            'Excluir todos os arquivos relacionados à composição do container, incluindo arquivos de configuração e arquivos persistentes. Prossiga com cautela!',
        deleteCompose: 'Excluir esta composição.',
        composeDirectory: 'Diretório',
        template: 'Template',
        composeTemplate: 'Template de composição | Templates de composição',
        content: 'Conteúdo',
        contentEmpty: 'O conteúdo da composição não pode estar vazio, por favor, insira algo e tente novamente!',
        containerNumber: 'Número de containers',
        containerStatus: 'Status do container',
        exited: 'Finalizado',
        running: 'Em execução ( {0} / {1} )',
        composeDetailHelper:
            'A composição foi criada externamente ao 1Panel. As operações de iniciar e parar não são suportadas.',
        composeOperatorHelper: 'A operação {1} será realizada no {0}. Deseja continuar?',
        composeDownHelper:
            'Isso irá parar e remover todos os containers e redes sob a composição {0}. Deseja continuar?',
        composeEnvHelper2:
            'Esta orquestração foi criada pela Loja de Aplicativos 1Panel. Modifique as variáveis de ambiente nos aplicativos instalados.',
        composeContentPlaceholder: 'Escreva ou cole aqui o conteúdo do seu arquivo docker-compose',
        setting: 'Configuração | Configurações',
        restartHelper: 'As alterações de configuração exigem reiniciar o serviço Docker para entrarem em vigor',
        operatorStatusHelper: 'Isso irá "{0}" o serviço Docker. Deseja continuar?',
        dockerStatus: 'Serviço Docker',
        daemonJsonPathHelper:
            'Certifique-se de que o caminho de configuração seja o mesmo especificado no docker.service.',
        mirrors: 'Espelhos de registro',
        mirrorsHelper:
            'Use primeiro as URLs de espelho do registro nas operações de imagem. Deixe vazio para desativar os espelhos do registro.',
        mirrorsHelper2: 'Para mais detalhes, consulte a documentação oficial.',
        registries: 'Registries inseguros',
        ipv6Helper:
            'Ao habilitar o IPv6, é necessário adicionar uma rede de containers IPv6. Consulte a documentação oficial para etapas específicas de configuração.',
        ipv6CidrHelper: 'Faixa de endereços IPv6 para containers',
        ipv6TablesHelper: 'Configuração automática do Docker IPv6 para regras do iptables.',
        experimentalHelper:
            'Habilitar ip6tables requer que esta configuração esteja ativada; caso contrário, ip6tables será ignorado',
        cutLog: 'Opção de log',
        cutLogHelper1: 'A configuração atual afetará apenas containers recém-criados.',
        cutLogHelper2: 'Containers existentes precisam ser recriados para que a configuração tenha efeito.',
        cutLogHelper3:
            'Observe que recriar containers pode resultar em perda de dados. Se seus containers contiverem dados importantes, faça backup antes de realizar a operação de reconstrução.',
        maxSize: 'Tamanho máximo',
        maxFile: 'Arquivo máximo',
        liveHelper:
            'Por padrão, quando o daemon Docker termina, ele desliga os containers em execução. Você pode configurar o daemon para que os containers permaneçam em execução se o daemon ficar indisponível. Essa funcionalidade é chamada de "restauração ao vivo". A opção de restauração ao vivo ajuda a reduzir o tempo de inatividade dos containers devido a falhas do daemon, interrupções planejadas ou atualizações.',
        liveWithSwarmHelper: 'A configuração de restauração ao vivo é incompatível com o modo swarm.',
        iptablesDisable: 'Desabilitar iptables',
        iptablesHelper1: 'Configuração automática das regras do iptables para Docker.',
        iptablesHelper2:
            'Desabilitar iptables fará com que os containers não consigam se comunicar com redes externas.',
        daemonJsonPath: 'Caminho de configuração',
        serviceUnavailable: 'O serviço Docker não foi iniciado no momento.',
        startIn: 'para iniciar',
        sockPath: 'Caminho do socket Unix',
        sockPathHelper: 'Canal de comunicação entre o daemon Docker e o cliente.',
        sockPathHelper1: 'Caminho padrão: /var/run/docker-x.sock',
        sockPathMsg:
            'Salvar a configuração do Caminho do Socket pode tornar o serviço Docker indisponível. Deseja continuar?',
        sockPathErr: 'Por favor, selecione ou insira o caminho correto do arquivo do Docker sock',
        related: 'Relacionado',
        includeAppstore: 'Exibir containers da loja de aplicativos',
        excludeAppstore: 'Ocultar Contêiner da Loja de Aplicativos',
        cleanDockerDiskZone: 'Limpar o espaço em disco usado pelo Docker',
        cleanImagesHelper: '(Limpar todas as imagens que não são usadas por nenhum container)',
        cleanContainersHelper: '(Limpar todos os containers parados)',
        cleanVolumesHelper: '(Limpar todos os volumes locais não usados)',
        makeImage: 'Criar imagem',
        newImageName: 'Novo nome da imagem',
        commitMessage: 'Mensagem de commit',
        author: 'Autor',
        ifPause: 'Pausar container durante a criação',
        ifMakeImageWithContainer: 'Criar nova imagem a partir deste container?',
        finishTime: 'Horário da última parada',
        workingDir: 'Diretório de trabalho',
        composeFileMissing: 'Arquivo Compose nao detectado',
        resource: 'Recurso',
        macAddr: 'Endereço MAC',
        volumeHelper: 'Garanta que o conteúdo do volume esteja correto',
        exportHelper: 'Exporte as imagens selecionadas em um único arquivo tar.',
        goSetting: 'Ir para configurações',
    },
    cronjob: {
        importHelper:
            'Tarefas agendadas duplicadas serão automaticamente ignoradas durante a importação. As tarefas serão definidas como status 【Desativado】 por padrão, e como status 【Aguardando Edição】 quando a associação de dados for anormal.',
        changeStatus: 'Alterar status',
        disableMsg: 'Isso irá parar a execução automática da tarefa agendada. Você deseja continuar?',
        enableMsg: 'Isso permitirá que a tarefa agendada seja executada automaticamente. Você deseja continuar?',
        taskType: 'Tipo',
        record: 'Registros',
        viewRecords: 'Visualizar registros',
        shell: 'Shell',
        stop: 'Parada Manual',
        stopHelper: 'Esta operação forçará a parada da execução da tarefa atual. Continuar?',
        log: 'Logs de backup',
        logHelper: 'Backup do log do sistema',
        logHelper2: '2. Log de login SSH do servidor',
        logHelper3: '3. Todos os logs do site',
        containerCheckBox: 'No container (não é necessário inserir o comando do container)',
        containerName: 'Nome do container',
        ntp: 'Sincronização de tempo',
        ntp_helper: 'Você pode configurar o servidor NTP na página de Configuração Rápida da Caixa de Ferramentas.',
        app: 'Backup de app',
        website: 'Backup de site',
        rulesHelper: 'Suporta múltiplas regras de exclusão, separadas por vírgulas inglesas , ex.: *.log,*.sql',
        lastRecordTime: 'Última execução',
        all: 'Todos',
        failedRecord: 'Registros de falha',
        successRecord: 'Registros de sucesso',
        database: 'Backup de banco de dados',
        backupArgs: 'Argumentos de Backup',
        backupArgsHelper:
            'Argumentos de backup não listados podem ser inseridos e selecionados manualmente. Por exemplo: Digite --no-data e selecione a primeira opção da lista suspensa.',
        singleTransaction:
            'Faz backup de tabelas InnoDB usando uma única transação, adequado para backups de dados de grande volume',
        quick: 'Lê dados linha por linha em vez de carregar toda a tabela na memória, adequado para backups de dados de grande volume e máquinas com pouca memória',
        skipLockTables: 'Backup sem bloquear todas as tabelas, adequado para bancos de dados altamente concorrentes',
        setGtidPurgedOff:
            'Não exportar informações de GTID, adequado para restaurar bancos de dados em ambientes de Group Replication',
        missBackupAccount: 'A conta de backup não foi encontrada',
        syncDate: 'Data de sincronização',
        clean: 'Limpeza de cache',
        curl: 'URL de acesso',
        taskName: 'Nome',
        cronSpec: 'Ciclo de execução',
        cronSpecHelper: 'Digite o período correto de execução',
        cleanHelper:
            'Esta operação registra todos os registros de execução de tarefas, arquivos de backup e logs. Você deseja continuar?',
        directory: 'Diretório de backup',
        sourceDir: 'Diretório de backup',
        snapshot: 'Snapshot do sistema',
        allOptionHelper:
            'O plano de tarefa atual é fazer backup de todos os [{0}]. O download direto não é suportado no momento. Você pode verificar a lista de backups no menu [{0}].',
        exclusionRules: 'Regras de exclusão',
        exclusionRulesHelper:
            'Selecione ou insira regras de exclusão, pressione Enter após cada conjunto para continuar. As regras de exclusão se aplicarão a todas as operações de compactação neste backup',
        default_download_path: 'Link de download padrão',
        saveLocal: 'Manter backups locais (o mesmo número de cópias na nuvem)',
        url: 'Endereço URL',
        urlHelper: 'Por favor insira um endereço URL válido',
        targetHelper: 'As contas de backup são mantidas nas configurações do painel.',
        withImageHelper:
            'Fazer backup das imagens da loja de aplicativos, mas isso aumentará o tamanho do arquivo de snapshot.',
        ignoreApp: 'Excluir aplicativos',
        withImage: 'Backup da Imagem do Aplicativo',
        retainCopies: 'Manter cópias',
        retryTimes: 'Tentativas de Repetição',
        timeout: 'Tempo Limite',
        ignoreErr: 'Ignorar erros',
        ignoreErrHelper: 'Ignorar erros durante o backup para garantir a execução de todas as tarefas de backup',
        retryTimesHelper: '0 significa não repetir após falha',
        retainCopiesHelper: 'Número de cópias a serem mantidas para registros de execução e logs',
        retainCopiesHelper1: 'Número de cópias a serem mantidas para arquivos de backup',
        retainCopiesUnit: ' cópias (Visualizar)',
        cronSpecRule: 'O formato do período de execução na linha {0} está incorreto. Verifique e tente novamente!',
        perMonth: 'Todo mês',
        perWeek: 'Toda semana',
        perHour: 'Toda hora',
        perNDay: 'A cada N dia(s)',
        perDay: 'Todo dia',
        perNHour: 'A cada N hora(s)',
        perNMinute: 'A cada N minuto(s)',
        perNSecond: 'A cada N segundo(s)',
        day: 'dia(s)',
        monday: 'Segunda-feira',
        tuesday: 'Terça-feira',
        wednesday: 'Quarta-feira',
        thursday: 'Quinta-feira',
        friday: 'Sexta-feira',
        saturday: 'Sábado',
        sunday: 'Domingo',
        shellContent: 'Script',
        errRecord: 'Registro incorreto',
        errHandle: 'Falha na execução do Cronjob',
        noRecord: 'Acione a tarefa Cron e você verá os registros aqui.',
        cleanData: 'Limpar dados',
        cleanRemoteData: 'Excluir dados remotos',
        cleanDataHelper: 'Excluir o arquivo de backup gerado durante esta tarefa.',
        noLogs: 'Ainda não há saída de tarefa...',
        errPath: 'Caminho de backup [{0}] com erro, não é possível fazer o download!',
        cutWebsiteLog: 'Rotação de log do site',
        cutWebsiteLogHelper: 'Os arquivos de log rotacionados serão salvos no diretório de backup do 1Panel.',
        syncIpGroup: 'Sincronizar grupos de IP do WAF',
        syncIpGroupHelper: 'Sincroniza grupos de IP remotos usados nas listas negra/branca do WAF',
        requestExpirationTime: 'Tempo de expiração da solicitação de upload (Horas)',
        unitHours: 'Unidade: Horas',
        alertTitle: 'Tarefa Planejada - {0} 「{1}」 Alerta de Falha na Tarefa',
        library: {
            script: 'Script',
            syncNow: 'Sincronizar Agora',
            turnOnSync: 'Ativar Sincronização Automática',
            turnOnSyncHelper:
                'Ativar a sincronização automática realizará sincronizações automáticas durante as primeiras horas da manhã diariamente',
            turnOffSync: 'Desativar Sincronização Automática',
            turnOffSyncHelper:
                'Desativar a sincronização automática pode causar atrasos na sincronização de scripts, confirmar?',
            isInteractive: 'Interativo',
            interactive: 'Script interativo',
            interactiveHelper:
                'Requer entrada do usuário durante a execução e não pode ser usado em tarefas agendadas.',
            library: 'Biblioteca de Scripts',
            remoteLibrary: 'Biblioteca de Scripts Remota',
            create: 'Adicionar Script',
            edit: 'Editar Script',
            groupHelper:
                'Defina grupos diferentes com base nas características do script, o que permite operações de filtragem de scripts mais rápidas.',
            handleHelper: 'Executar o script {1} em {0}, continuar?',
            noSuchApp:
                'O serviço {0} não foi detectado. Por favor, instale-o rapidamente usando a biblioteca de scripts primeiro!',
            syncHelper:
                'Preparando para sincronizar a biblioteca de scripts do sistema. Esta operação afeta apenas scripts do sistema. Continuar?',
        },
        nextTime: 'Próximas 5 execuções',
        logHelper1: '1. Log do sistema 1Panel',
        cronSpecDoc:
            'Ciclos personalizados suportam apenas o formato [minuto hora dia mês semana], ex.: 0 0 * * *. Veja a documentação oficial.',
        backupContent: 'Conteúdo do backup',
        cronSpecRule2: 'Formato do período de execução inválido, verifique e tente novamente!',
        perMonthHelper: 'Executar no dia {0} de cada mês às {1}:{2}',
        perWeekHelper: 'Executar toda semana em {0} às {1}:{2}',
        perDayHelper: 'Executar todos os dias às {0}:{1}',
        perHourHelper: 'Executar a cada hora no minuto {0}',
        perNDayHelper: 'Executar a cada {0} dias às {1}:{2}',
        perNHourHelper: 'Executar a cada {0} horas em {1}',
        perNMinuteHelper: 'Executar a cada {0} minutos',
        perNSecondHelper: 'Executar a cada {0} segundos',
        executor: 'Executor',
        cleanLog: 'Limpeza automática de logs',
        cleanLogscope: 'Retenção de logs',
    },
    monitor: {
        globalFilter: 'Filtro Global',
        enableMonitor: 'Status de Monitoramento',
        storeDays: 'Dias de Retenção',
        defaultNetwork: 'Placa de Rede Padrão',
        defaultNetworkHelper: 'Opção de placa de rede padrão exibida nas interfaces de monitoramento e visão geral',
        defaultIO: 'Disco Padrão',
        defaultIOHelper: 'Opção de disco padrão exibida nas interfaces de monitoramento e visão geral',
        cleanMonitor: 'Limpar Registros de Monitoramento',
        cleanHelper: 'Esta operação limpará todos os registros de monitoramento, incluindo GPU. Continuar?',
        avgLoad: 'Média de carga',
        loadDetail: 'Detalhes da carga',
        resourceUsage: 'Utilização',
        networkCard: 'Interface de rede',
        read: 'Leitura',
        write: 'Gravação',
        readWriteCount: 'Operações de I/O',
        readWriteTime: 'Latência de I/O',
        today: 'Hoje',
        yesterday: 'Ontem',
        lastNDay: 'Últimos {0} dias',
        lastNMonth: 'Últimos {0} meses',
        lastHalfYear: 'Último semestre',
        memory: 'Memória',
        percent: 'Percentual',
        cache: 'Cache',
        disk: 'Disco',
        network: 'Rede',
        up: 'Para cima',
        down: 'Para baixo',
        interval: 'Intervalo de Coleta',
        intervalHelper: 'Insira um intervalo de coleta de monitoramento apropriado (10 segundos - 12 horas)',
        runtimeDiagnostics: 'Diagnóstico de execução',
        runtimeRSS: 'Memória do processo (RSS)',
        runtimeHeapAlloc: 'Memória do heap',
        runtimeHeapObjects: 'Objetos do heap',
        runtimeGoroutines: 'Goroutines',
        goroutineSnapshot: 'Instantâneo de Goroutines',
        goroutineSummary: '{0} goroutines agrupadas em {1} pilhas de chamadas',
        goroutineTruncated: 'O instantâneo é muito grande. Apenas parte das pilhas de chamadas é exibida.',
        captureSnapshot: 'Atualizar instantâneo',
        count: 'Quantidade',
        topFunction: 'Função principal',
        manualCapture: 'Captura manual',
        startCapture: 'Iniciar captura',
        capturing: 'Capturando',
        captureSuccess: 'Arquivo de diagnóstico gerado; download iniciado',
        profileCPU: 'CPU',
        profileHeap: 'Heap',
        profileGoroutine: 'Goroutine',
        profileMutex: 'Mutex',
        profileBlock: 'Bloqueio',
        runtimeRSSDesc:
            'Memória física ocupada pelo processo, incluindo heap do Go, pilhas de threads e memória nativa.',
        runtimeHeapAllocDesc:
            'Memória alocada no heap do Go que ainda não foi liberada. Crescimento contínuo pode indicar objetos retidos.',
        runtimeHeapObjectsDesc:
            'Número de objetos vivos no heap do Go. Crescimento contínuo pode indicar objetos retidos.',
        runtimeGoroutineDesc:
            'Tarefas concorrentes leves atuais. Crescimento contínuo geralmente indica possível vazamento de goroutines.',
        profileCPUDesc:
            'Amostra pilhas de CPU pelo período selecionado para localizar funções que realmente consomem CPU.',
        profileHeapDesc:
            'Registra objetos do heap ainda em uso e suas pilhas de alocação para investigar crescimento de memória.',
        profileGoroutineDesc: 'Salva o estado e a pilha de cada goroutine e agrupa caminhos de chamada idênticos.',
        profileMutexDesc: 'Mede o tempo de espera causado por contenção de mutex para localizar pontos de disputa.',
        profileBlockDesc: 'Mede bloqueios em canais, select e primitivas de sincronização.',
    },
    terminal: {
        local: 'Local',
        defaultConn: 'Conexão Padrão',
        defaultConnHelper:
            'Esta operação conectará automaticamente ao terminal do nó após abrir o terminal para 【{0}】. Continuar?',
        withReset: 'Redefinir Informações de Conexão',
        localConnJump:
            'As informações de conexão padrão são mantidas em [Terminal - Configurações]. Se a conexão falhar, edite lá!',
        nodeAdminLocalOnly: 'Administradores de nó só podem usar o terminal local.',
        localHelper: 'O nome local é usado apenas para identificação local do sistema.',
        connLocalErr:
            'Não foi possível autenticar automaticamente. Preencha as informações de login do servidor local.',
        testConn: 'Testar conexão',
        saveAndConn: 'Salvar e conectar',
        connTestOk: 'Informações de conexão disponíveis',
        connTestFailed: 'Conexão indisponível, por favor, verifique as informações de conexão.',
        host: 'Hosts',
        createConn: 'Nova conexão',
        noHost: 'Nenhum host',
        groupChange: 'Alterar grupo',
        expand: 'Expandir todos',
        fold: 'Contrair tudo',
        batchInput: 'Processamento em lote',
        quickCommand: 'Comando rápido | Comandos rápidos',
        noSuchCommand:
            'Nenhum dado de comando rápido encontrado no arquivo CSV importado, verifique e tente novamente!',
        quickCommandHelper: 'Você pode usar os comandos rápidos na parte inferior de "Terminais -> Terminais".',
        groupDeleteHelper:
            'Após o grupo ser removido, todas as conexões no grupo serão migradas para o grupo padrão. Você deseja continuar?',
        quickCommandBatchHelper:
            'Um comando rápido por linha, usando o formato Nome---Comando, por exemplo: Ver disco---df -h',
        command: 'Comando',
        quickCmd: 'Comando rápido',
        addHost: 'Adicionar',
        localhost: 'Localhost',
        ip: 'Endereço',
        authMode: 'Autenticação',
        passwordMode: 'Senha',
        rememberPassword: 'Lembrar informações de autenticação',
        keyMode: 'Chave privada',
        key: 'Chave privada',
        keyPassword: 'Senha da chave privada',
        emptyTerminal: 'Nenhum terminal está conectado no momento.',
        lineHeight: 'Altura da linha',
        letterSpacing: 'Espaçamento entre letras',
        fontSize: 'Tamanho da fonte',
        fontFamily: 'Conjunto de fontes',
        fontFamilySupportHelper:
            'Selecione ou digite fontes. O efeito depende de a fonte estar instalada no sistema do navegador; se não estiver, haverá fallback automático. Se estiver vazio, a fonte padrão será usada.',
        backgroundColor: 'Cor de fundo',
        foregroundColor: 'Cor do texto',
        cursorBlink: 'Piscar do cursor',
        cursorStyle: 'Estilo do cursor',
        cursorUnderline: 'Sublinhado',
        cursorBlock: 'Bloco',
        cursorBar: 'Barra',
        scrollback: 'Scrollback',
        scrollSensitivity: 'Sensibilidade de rolagem',
        aiAssistant: 'Assistente de IA',
        aiAccountHelper:
            'Use a conta de modelo selecionada para gerar e preencher comandos. Para modelos locais como Ollama e vLLM, use uma conta de modelo personalizada.',
        aiPrefix: 'Prefixo de disparo',
        aiPrefixHelper:
            'Digite "prefixo + espaço" e pressione Enter para acionar a geração de comandos por IA, por exemplo: {0} me ajude a consultar as informações do disco.',
        aiRiskCommands: 'Intercepção de comandos de risco',
        aiRiskCommandsHelper:
            'Configure os comandos de risco que devem ser interceptados, um por linha. Quando houver correspondência, a geração será bloqueada e preenchida de volta como comentário.',
        aiSummary:
            'Quando uma linha começa com o prefixo {0} e você pressiona Enter, a geração de comandos por IA é acionada.',
        aiPrefixAsciiVisible:
            'Apenas caracteres ASCII visíveis são suportados. Espaços, caracteres CJK e símbolos de largura total não são permitidos.',
        saveHelper: 'Tem certeza de que deseja salvar a configuração atual do terminal?',
    },
    toolbox: {
        common: {
            toolboxHelper: 'Para alguns problemas de instalação e uso, consulte',
        },
        swap: {
            swap: 'Partição Swap',
            swapHelper1:
                'O tamanho do swap deve ser de 1 a 2 vezes a memória física, ajustável conforme os requisitos específicos;',
            swapHelper2:
                'Antes de criar um arquivo swap, verifique se o disco do sistema tem espaço disponível suficiente, pois o tamanho do arquivo swap ocupará o espaço correspondente no disco;',
            swapHelper3:
                'Swap pode ajudar a aliviar a pressão de memória, mas é apenas uma alternativa. A dependência excessiva de swap pode levar a uma diminuição no desempenho do sistema. É recomendável priorizar o aumento de memória ou otimizar o uso de memória do aplicativo;',
            swapHelper4:
                'É aconselhável monitorar regularmente o uso de swap para garantir o funcionamento normal do sistema.',
            swapDeleteHelper:
                'Esta operação removerá a partição Swap {0}. Por motivos de segurança do sistema, o arquivo correspondente não será excluído automaticamente. Se a exclusão for necessária, por favor, faça manualmente!',
            saveHelper: 'Por favor, salve as configurações atuais primeiro!',
            saveSwap:
                'Salvar a configuração atual ajustará o tamanho da partição Swap {0} para {1}. Você deseja continuar?',
            swapMin: 'O tamanho mínimo da partição é 40 KB. Por favor, modifique e tente novamente!',
            swapMax: 'O valor máximo para o tamanho da partição é {0}. Por favor, modifique e tente novamente!',
            swapOff: 'O tamanho mínimo da partição é 40 KB. Definir como 0 desabilitará a partição Swap.',
        },
        device: {
            dnsHelper: 'Servidor DNS',
            dnsAlert: 'Atenção! Alterar /etc/resolv.conf fará o arquivo voltar ao padrão após reiniciar o sistema.',
            dnsHelper1:
                'Quando houver múltiplos DNS, coloque cada um em uma nova linha. Ex.:\n114.114.114.114\n8.8.8.8',
            hostsHelper: 'Resolução de hostname',
            hosts: 'Domínio',
            hostAlert:
                'Os registros comentados estão ocultos. Clique em "Todas as configurações" para visualizá-los ou configurá-los.',
            toolbox: 'Configurações rápidas',
            hostname: 'Hostname',
            passwd: 'Senha do sistema',
            passwdHelper: 'Os caracteres de entrada não podem incluir $ e &',
            timeZone: 'Fuso horário do sistema',
            localTime: 'Hora do servidor',
            timeZoneChangeHelper: 'Alterar o fuso horário do sistema exige reiniciar o serviço. Continuar?',
            timeZoneHelper:
                'Se o comando "timedatectl" não estiver instalado, talvez não seja possível alterar o fuso horário.',
            timeZoneCN: 'Pequim',
            timeZoneAM: 'Los Angeles',
            timeZoneNY: 'Nova York',
            ntpALi: 'Alibaba',
            ntpGoogle: 'Google',
            syncSite: 'Servidor NTP',
            syncSiteHelper: 'Sincronizar hora do sistema com {0}?',
            hostnameHelper:
                'A alteração do hostname depende do comando "hostnamectl". Se não estiver instalado, a alteração pode falhar.',
            userHelper:
                'O nome de usuário depende do comando "whoami". Se não estiver instalado, a leitura pode falhar.',
            passwordHelper:
                'A alteração de senha depende do comando "chpasswd". Se não estiver instalado, a alteração pode falhar.',
            hostHelper: 'Há valor vazio no conteúdo fornecido. Verifique e tente novamente após ajustar!',
            dnsCheck: 'Testar disponibilidade',
            dnsOK: 'Configuração DNS disponível!',
            dnsTestFailed: 'Configuração DNS indisponível.',
        },
        fail2ban: {
            sshPort: 'Monitorar porta SSH',
            sshPortHelper: 'O Fail2ban atual monitora a porta SSH de conexão do host',
            unActive: 'O serviço Fail2ban não está habilitado no momento.',
            operation: 'Você executará a operação "{0}" no serviço Fail2ban. Continuar?',
            fail2banChange: 'Modificar configuração do Fail2ban',
            ignoreHelper: 'Os IPs da lista de permissão serão ignorados no bloqueio. Continuar?',
            bannedHelper: 'Os IPs da lista de bloqueio serão bloqueados pelo servidor. Continuar?',
            maxRetry: 'Máximo de tentativas',
            banTime: 'Tempo de bloqueio',
            banTimeHelper: 'Tempo padrão de bloqueio é 10 minutos; -1 indica bloqueio permanente',
            banTimeRule: 'Digite um tempo de bloqueio válido ou -1',
            banAllTime: 'Bloqueio permanente',
            findTime: 'Período de detecção',
            banAction: 'Ação de bloqueio',
            banActionOption: 'Bloquear IPs especificados usando {0}',
            allPorts: ' (Todas as portas)',
            ignoreIP: 'Lista de permissão de IP',
            bannedIP: 'Lista de bloqueio de IP',
            logPath: 'Caminho do log',
            logPathHelper: 'Padrão: /var/log/secure ou /var/log/auth.log',
        },
        ftp: {
            ftp: 'Conta FTP | Contas FTP',
            notStart: 'O serviço FTP não está em execução. Inicie-o primeiro!',
            initHelper:
                'A identidade do usuário FTP não foi inicializada. Clique em Inicializar na barra de status superior.',
            operation: 'Isto executará a operação "{0}" no serviço FTP. Continuar?',
            noPasswdMsg: 'Não foi possível obter a senha atual da conta FTP. Defina a senha e tente novamente.',
            enableHelper: 'Ativar a conta FTP selecionada restaurará suas permissões de acesso. Continuar?',
            disableHelper: 'Desativar a conta FTP selecionada revogará suas permissões de acesso. Continuar?',
            syncHelper: 'Sincronizar dados de conta FTP entre servidor e banco de dados. Continuar?',
            dirSystem:
                'Este diretório é reservado pelo sistema. Alterar pode causar falha do sistema; ajuste e tente novamente!',
            dirHelper: 'Ativar FTP exige alteração de permissões de diretório; escolha com cuidado',
            dirMsg: 'Ativar FTP modificará permissões de todo o diretório {0}. Continuar?',
        },
        clam: {
            clam: 'Varredura de vírus',
            cron: 'Varredura agendada',
            cronHelper: 'A edição comercial oferece suporte a varreduras agendadas',
            specErr: 'Formato do agendamento inválido, verifique e tente novamente!',
            disableMsg: 'Parar a execução agendada impedirá a execução automática desta tarefa. Continuar?',
            enableMsg:
                'Ativar a execução agendada fará esta tarefa executar automaticamente em intervalos regulares. Continuar?',
            showFresh: 'Mostrar serviço de atualização de assinaturas',
            hideFresh: 'Ocultar serviço de atualização de assinaturas',
            clamHelper:
                'Configuração mínima recomendada para ClamAV: 3 GiB de RAM ou mais, CPU de 1 núcleo com 2.0 GHz+ e ao menos 5 GiB de disco livre.',
            notStart: 'O serviço ClamAV não está em execução. Inicie-o primeiro!',
            removeRecord: 'Excluir arquivos de relatório',
            noRecords: 'Clique no botão "Executar" para iniciar a varredura e ver os registros aqui.',
            removeInfected: 'Excluir arquivos de vírus',
            removeInfectedHelper:
                'Excluir arquivos infectados detectados na tarefa para garantir segurança e operação normal do servidor.',
            clamCreate: 'Criar regra de varredura',
            infectedStrategy: 'Estratégia para infectados',
            removeHelper: 'Excluir arquivos de vírus, escolha com cuidado!',
            move: 'Mover',
            moveHelper: 'Mover arquivos de vírus para o diretório especificado',
            copyHelper: 'Copiar arquivos de vírus para o diretório especificado',
            none: 'Não fazer nada',
            noneHelper: 'Não executar ação em arquivos de vírus',
            scanDir: 'Diretório da varredura',
            infectedDir: 'Diretório infectado',
            scanDate: 'Data da varredura',
            scanResult: 'Final do log de varredura',
            tail: 'Linhas',
            infectedFiles: 'Arquivos infectados',
            log: 'Detalhes',
            clamConf: 'Daemon Clam AV',
            clamLog: 'Logs de @:toolbox.clam.clamConf',
            freshClam: 'FreshClam',
            freshClamLog: 'Logs de @:toolbox.clam.freshClam',
            alertHelper: 'A edição comercial oferece suporte a varreduras agendadas e alertas por SMS',
            alertTitle: 'Tarefa de varredura de vírus "{0}" detectou arquivo infectado',
        },
    },
    logs: {
        core: 'Serviço de Painel',
        agent: 'Monitoramento de Nós',
        panelLog: 'Logs do painel',
        operation: 'Logs de operação',
        login: 'Logs de login',
        loginIP: 'IP de login',
        loginAddress: 'Endereço de login',
        loginAgent: 'Agente de login',
        loginStatus: 'Status',
        system: 'Logs do sistema',
        hostSystem: 'Logs do host',
        previousPage: 'Página anterior',
        nextPage: 'Próxima página',
        filter: 'Filtrar mensagens',
        service: 'Serviço',
        priority: 'Prioridade',
        priorityEmergency: 'Emergência',
        priorityAlert: 'Alerta',
        priorityCritical: 'Crítico',
        priorityError: 'Erro',
        priorityWarning: 'Aviso',
        priorityNotice: 'Notificação',
        priorityInfo: 'Informação',
        priorityDebug: 'Depuração',
        message: 'Mensagem',
        deleteLogs: 'Limpar logs',
        resource: 'Recurso',
        detail: {
            dashboard: 'Visão Geral',
            ai: 'AI',
            skills_hub: 'Skills Hub',
            ai_proxy: 'Proxy de IA',
            ai_benchmark: 'Benchmark',
            groups: 'Grupos',
            hosts: 'Hosts',
            apps: 'Aplicativos',
            openresty: 'OpenResty',
            websites: 'Sites',
            monitor: 'Monitoramento de Sites',
            containers: 'Contêineres',
            files: 'Gerenciamento de Arquivos',
            runtimes: 'Ambientes de Execução',
            process: 'Gerenciamento de Processos',
            toolbox: 'Caixa de Ferramentas',
            backups: 'Backup / Restauração',
            tampers: 'Proteção contra Alterações',
            xsetting: 'Configurações da Interface',
            logs: 'Auditoria de Logs',
            settings: 'Configurações do Painel',
            cronjobs: 'Tarefas Agendadas',
            waf: 'WAF',
            databases: 'Bancos de Dados',
            licenses: 'licenças',
            nodes: 'nós',
            commands: 'Comandos Rápidos',
            opsReport: 'Relatório de Operações',
            ops_report: 'Relatório de Operações',
            users: 'Gerenciamento de usuários',
            roles: 'Função',
            auth: 'Autenticação de login',
            auth_sources: 'Configurações de autenticação',
            alert: 'Notificações de alerta',
            sync: 'Sincronização de Recursos',
            exchange: 'Sincronização de Recursos',
            xapp: 'App',
            vms: 'Gerenciamento de Máquinas Virtuais',
        },
        websiteLog: 'Logs do website',
        runLog: 'Logs de execução',
        errLog: 'Logs de erro',
        task: 'Log de tarefas',
        taskName: 'Nome da tarefa',
        taskRunning: 'Em execução',
    },
    file: {
        fileDirNum: '{0} diretórios, {1} arquivos,',
        currentDir: 'Diretório atual',
        dir: 'Pasta',
        fileName: 'Nome do arquivo',
        search: 'Pesquisar',
        mode: 'Permissões',
        editPermissions: 'Editar permissões',
        owner: 'Proprietário',
        file: 'Arquivo',
        remoteFile: 'Baixar de remoto',
        share: 'Compartilhar',
        sync: 'Sincronização de dados',
        size: 'Tamanho',
        updateTime: 'Modificado',
        rename: 'Renomear',
        role: 'Permissões',
        info: 'Atributos',
        linkFile: 'Link simbólico',
        shareList: 'Lista de compartilhamento',
        fileTools: 'Ferramentas de arquivo',
        aiSearchHitLines: 'Linhas correspondentes',
        aiSearch: 'Pesquisa de IA',
        aiSearchTitle: 'Pesquisa de IA',
        aiSearchHint:
            'Pesquise o conteúdo do arquivo linha por linha. Use os botões à direita da barra de busca e as "Condições avançadas" abaixo. Quando a conta de IA estiver ativada e salva, também será possível gerar um resumo em Markdown.',
        aiSearchAccountTitle: 'Conta de IA',
        aiSearchAccountIntro: 'Escolha uma conta de modelo para gerar resumos e clique em salvar após as alterações.',
        aiSearchAccountEnable: 'Ativar pesquisa de IA em arquivos',
        aiSearchSaveAccount: 'Salvar configuração da conta',
        aiSearchSectionQuery: 'Pesquisa',
        aiSearchSectionConditions: 'Condições de busca',
        aiSearchResultsSection: 'Resultados da análise',
        aiSearchContentLabel: 'Conteúdo da busca',
        aiSearchDirLabel: 'Diretório',
        aiSearchExtLabel: 'Extensão do arquivo',
        aiSearchModifiedPreset: 'Data de modificação',
        aiSearchSizePresetLabel: 'Tamanho do arquivo',
        aiSearchTimeAny: 'Qualquer período',
        aiSearchTime3h: 'Últimas 3 horas',
        aiSearchTime1d: 'Último 1 dia',
        aiSearchTime7d: 'Últimos 7 dias',
        aiSearchTime30d: 'Últimos 30 dias',
        aiSearchTimeCustom: 'Personalizado',
        aiSearchSizeAny: 'Qualquer tamanho',
        aiSearchSize0_10mb: '0 ~ 10 MB',
        aiSearchSize10_100mb: '10 MB ~ 100 MB',
        aiSearchSize100_1gb: '100 MB ~ 1 GB',
        aiSearchSizeGte1gb: '≥ 1 GB',
        aiSearchSizeCustom: 'Personalizado (bytes)',
        aiSearchPlaceholder: 'Digite o conteúdo da busca',
        aiSearchContainSub: 'Subpastas',
        aiSearchMaxItems: 'Limite de caminhos/arquivos incluídos na busca (enumeração de diretório, 1–2000)',
        aiSearchRun: 'Iniciar análise',
        aiSearchTruncated: 'Há muitos itens no diretório; apenas parte da lista foi incluída.',
        aiSearchPreFiltered: 'Os caminhos relativos foram pré-filtrados por palavra-chave.',
        aiSearchMeta: 'Itens para análise: {0} | Duração {1} | Tokens {2}',
        aiSearchQueryRequired: 'Digite uma descrição da busca ou palavras-chave',
        aiSearchContentHits: 'Correspondências no conteúdo',
        aiSearchContentScanMeta: 'Varredura de conteúdo: {0} arquivos de texto lidos.',
        aiSearchNoLineHits: 'Nenhuma linha correspondeu nos arquivos de texto analisados.',
        aiSearchHitsTruncated: 'Alguns arquivos não foram analisados ou a lista foi truncada pelos limites.',
        aiSearchHitFiles: 'Arquivos com correspondências',
        aiSearchOpenFile: 'Abrir no editor',
        aiSearchOpenAtLine: 'Abrir e ir para esta linha',
        aiSearchGrepOnlyHint:
            'A IA de arquivos está desativada: apenas a busca determinística de conteúdo é executada, sem chamar o modelo. Ative e salve a conta de IA acima para obter resumos. A linha de busca e as opções abaixo continuam válidas.',
        aiSearchMatchCase: 'Diferenciar maiúsculas e minúsculas',
        aiSearchWholeWord: 'Palavra inteira (limites de palavra em inglês \\b)',
        aiSearchUseRegex: 'Expressão regular (sintaxe Go RE2)',
        aiSearchExtensions: 'Extensões de arquivo (separadas por vírgula, ex.: go,ts,md)',
        aiSearchMinSize: 'Tamanho mínimo do arquivo (bytes, 0 = sem limite)',
        aiSearchMaxSize: 'Tamanho máximo do arquivo (bytes, 0 = sem limite)',
        aiSearchSectionAdvanced: 'Condições avançadas',
        aiSearchLimitMaxItems: 'Total de arquivos na busca',
        aiSearchLimitMaxScan: 'Arquivos para varredura de conteúdo',
        aiSearchLimitMaxBytes: 'Limite de leitura por arquivo',
        aiSearchLimitHitsPerFile: 'Linhas correspondentes por arquivo',
        aiSearchLimitTotalHits: 'Total de linhas correspondentes',
        aiSearchLimitUnitEntries: 'itens',
        aiSearchLimitUnitFiles: 'arquivos',
        aiSearchLimitUnitBytes: 'B',
        aiSearchLimitUnitLines: 'linhas',
        aiSearchMaxScanFiles: 'Máximo de arquivos para varredura de conteúdo',
        aiSearchMaxFileBytes:
            'Máximo de bytes lidos de cada arquivo durante a varredura de conteúdo. Diferente do filtro de tamanho acima (o tamanho em disco define se entra na lista), este limite controla quanto é lido para a correspondência.',
        aiSearchMaxHitsPerFile: 'Máximo de linhas correspondentes por arquivo',
        aiSearchMaxTotalHits: 'Limite total de linhas correspondentes',
        aiSearchGrepMetaContent:
            'Varredura de conteúdo: {0} itens totais, {1} arquivos de texto lidos (pelas condições atuais; limites de tamanho/quantidade se aplicam). Duração {2}',
        aiSearchAdvancedResetDefaults: 'Restaurar limites padrão',
        zip: 'Compactado',
        group: 'Grupo',
        path: 'Caminho',
        public: 'Outros',
        setRole: 'Configurar permissões',
        link: 'Link do arquivo',
        rRole: 'Leitura',
        wRole: 'Escrita',
        xRole: 'Executável',
        name: 'Nome',
        compress: 'Compactar',
        deCompress: 'Descompactar',
        compressType: 'Formato de compactação',
        compressDst: 'Caminho de compactação',
        replace: 'Substituir arquivos existentes',
        compressSuccess: 'Compactado com sucesso',
        deCompressSuccess: 'Descompactado com sucesso',
        deCompressDst: 'Caminho de descompactação',
        linkType: 'Tipo de link',
        softLink: 'Link simbólico',
        hardLink: 'Link físico',
        linkPath: 'Caminho do link',
        selectFile: 'Selecionar arquivo',
        downloadUrl: 'URL remota',
        downloadStart: 'Download iniciado',
        wgetUrlInvalid: 'Informe um URL de download http(s) válido',
        moveSuccess: 'Movido com sucesso',
        copySuccess: 'Copiado com sucesso',
        pasteMsg: 'Clique no botão "Colar" no canto superior direito do diretório de destino',
        move: 'Mover',
        calculate: 'Calcular',
        remark: 'Observação',
        setRemark: 'Definir observação',
        remarkPrompt: 'Digite uma observação',
        remarkPlaceholder: 'Observação',
        remarkToggle: 'Observações',
        remarkToggleTip: 'Carregar observações do arquivo',
        canNotDeCompress: 'Não é possível descompactar este arquivo',
        uploadSuccess: 'Upload bem-sucedido',
        downloadProcess: 'Progresso do download',
        downloading: 'Baixando...',
        infoDetail: 'Propriedades do arquivo',
        root: 'Diretório raiz',
        list: 'Lista de arquivos',
        sub: 'Subpastas',
        downloadSuccess: 'Baixado com sucesso',
        theme: 'Tema',
        language: 'Idioma',
        eol: 'Fim de linha',
        history: 'Histórico de versões',
        historyTitle: 'Histórico de versões',
        historyHint:
            'Registra a versão anterior a cada alteração do arquivo, permitindo revisar o histórico de mudanças do ' +
            'conteúdo e reverter versões.',
        historySettingTitle: 'Política de versões',
        historyEnable: 'Ativar histórico de versões',
        historyMaxPerPath: 'Manter por arquivo',
        historyDiskQuota: 'Cota total de disco (MB)',
        historyCurrentScope: 'Arquivo atual',
        historyAllScope: 'Todos os arquivos',
        historyDeleteConfirm: 'Tem certeza de que deseja excluir os registros selecionados?',
        historyNeedFile: 'Abra um arquivo primeiro',
        historyRestore: 'Restaurar esta versão',
        historyOperationOnlyHint: 'O item selecionado é uma operação de arquivo e não suporta restauração de versão.',
        historyCurrentFile: 'Arquivo atual',
        historyLatestVersion:
            'O lado esquerdo mostra o conteúdo da versão do histórico e o lado direito mostra a versão mais recente do arquivo selecionado',
        historyCompareTarget: 'Destino da comparação',
        historyCompareTargetPath: 'Caminho da comparação',
        historyRestoreConfirm: 'Restaurar esta versão para o arquivo atual?',
        historyRestoreDirtyConfirm:
            'O arquivo atual possui alterações não salvas. Restaurar irá sobrescrever essas alterações. Continuar?',
        historyRestoreSuccess: 'Versão restaurada com sucesso',
        historyDirtyHint:
            'O editor atual possui alterações não salvas. Restaurar uma versão irá sobrescrever essas alterações.',
        historyDiffHintCurrent:
            'O lado esquerdo mostra a versão do histórico e o lado direito mostra o conteúdo do arquivo atual',
        historyDiffHintAll:
            'O lado esquerdo mostra a versão do histórico e o lado direito mostra a versão mais recente do arquivo selecionado',
        copyDir: 'Copiar',
        shareFile: 'Compartilhar arquivo',
        shareExpire: 'Expira em',
        shareExpire1h: '1 hora',
        shareExpire6h: '6 horas',
        shareExpire24h: '24 horas',
        shareExpire3d: '3 dias',
        shareExpire7d: '7 dias',
        sharePassword: 'Senha',
        sharePasswordPlaceholder: 'Deixe vazio para não usar senha',
        shareMaxDownloads: 'Máximo de downloads',
        shareMaxDownloadsHint: '0 significa ilimitado',
        shareGenerate: 'Criar link',
        shareRegenerate: 'Compartilhar novamente',
        shareClose: 'Fechar',
        shareCancel: 'Cancelar compartilhamento',
        shareCancelConfirm: 'Tem certeza de que deseja cancelar este compartilhamento de arquivo?',
        shareDetail: 'Detalhes',
        shareCopyLink: 'Copiar link',
        shareLinkLabel: 'Link de compartilhamento',
        shareQrCode: 'Código QR',
        shareQrDialogTitle: 'Código QR do link de compartilhamento',
        shareQrDialogHelper: 'Leia este código QR com seu dispositivo móvel',
        shareSaveImage: 'Salvar imagem',
        shareOpenImage: 'Abrir imagem',
        shareExtractFile: 'Obter arquivo',
        shareDownloadingHint: 'Preparando o arquivo. O download começará em breve.',
        shareInvalid: 'Link de compartilhamento inválido ou expirado',
        shareDownloadFailed: 'Falha no download. Tente novamente mais tarde',
        sharePasswordRequired: 'Senha de acesso',
        sharePasswordRequiredInput: 'Digite a senha de compartilhamento',
        sharePasswordLengthHint: 'A senha de compartilhamento deve ter de 4 a 256 caracteres',
        shareDownloadPasswordTip: 'Este link é protegido por senha. Digite a senha antes de fazer o download.',
        shareRiskAlert:
            'Links compartilhados podem apresentar riscos de segurança. Compartilhe apenas com pessoas confiáveis e evite expor informações confidenciais.',
        sharePasswordSeparate:
            'Uma senha foi definida. Compartilhe-a com segurança. Os destinatários devem adicionar &password=... à URL ou usar um cliente que envie o parâmetro de consulta da senha.',
        shareExpiresAt: 'Expira em',
        paste: 'Colar',
        changeOwner: 'Modificar usuário e grupo de usuários',
        containSub: 'Aplicar mudança de permissões recursivamente',
        ownerHelper:
            'O usuário padrão do ambiente PHP: o grupo de usuários é 1000:1000, é normal que os usuários dentro e fora do container mostrem inconsistências',
        searchHelper: 'Suporte a curingas como *',
        uploadFailed: '[{0}] Falha no upload do arquivo',
        fileUploadStart: 'Carregando [{0}]...',
        uploadOverallProgress: 'Progresso geral',
        uploadCurrentFileProgress: 'Arquivo atual',
        currentSelect: 'Seleção atual: ',
        unsupportedType: 'Tipo de arquivo não suportado',
        deleteHelper:
            'Tem certeza de que deseja excluir os seguintes arquivos? Por padrão, eles irão para a lixeira após a exclusão',
        fileHelper:
            'Nota:\n1. Os resultados da pesquisa não podem ser ordenados.\n2. Pastas não podem ser ordenadas por tamanho.',
        forceDeleteHelper: 'Excluir permanentemente o arquivo (sem entrar na lixeira, excluí-lo diretamente)',
        recycleBin: 'Lixeira',
        sourcePath: 'Caminho original',
        deleteTime: 'Hora da exclusão',
        confirmReduce: 'Tem certeza de que deseja restaurar os seguintes arquivos?',
        reduceSuccess: 'Restaurado com sucesso',
        reduce: 'Restaurar',
        reduceHelper:
            'Se um arquivo ou diretório com o mesmo nome existir no caminho original, ele será substituído. Deseja continuar?',
        clearRecycleBin: 'Limpar',
        clearRecycleBinHelper: 'Você deseja limpar a lixeira?',
        favorite: 'Favoritos',
        removeFavorite: 'Remover dos favoritos?',
        addFavorite: 'Adicionar/Remover aos favoritos',
        addFavoriteAction: 'Adicionar aos favoritos',
        removeFavoriteAction: 'Remover dos favoritos',
        clearList: 'Limpar lista',
        deleteRecycleHelper: 'Tem certeza de que deseja excluir permanentemente os seguintes arquivos?',
        typeErrOrEmpty: '[{0}] tipo de arquivo errado ou pasta vazia',
        dropHelper: 'Arraste os arquivos que deseja carregar aqui',
        fileRecycleBin: 'Habilitar lixeira',
        fileRecycleBinMsg: '{0} lixeira',
        wordWrap: 'Quebra automática de linha',
        deleteHelper2:
            'Tem certeza de que deseja excluir o arquivo selecionado? A operação de exclusão não pode ser desfeita',
        ignoreCertificate: 'Permitir conexões inseguras com o servidor',
        ignoreCertificateHelper:
            'Permitir conexões inseguras com o servidor pode levar a vazamento ou adulteração de dados. Use esta opção apenas quando confiar na fonte de download.',
        useProxy: 'Baixar via proxy',
        useProxyHelper: 'Usar o servidor proxy configurado no painel para acessar a URL remota',
        uploadOverLimit: 'O número de arquivos excede 1000! Por favor, compacte e envie novamente',
        clashDidNotSupport: 'Os nomes de arquivos são proibidos de conter .1panel_clash',
        clashDeleteAlert: 'A pasta "Lixeira" não pode ser excluída',
        clashOpenAlert: 'Clique no botão "Lixeira" para abrir o diretório da lixeira',
        right: 'Avançar',
        back: 'Voltar',
        top: 'Voltar ao topo',
        up: 'Voltar',
        openWithVscode: 'Abrir com VS Code',
        vscodeHelper:
            'Confirme o modo de autenticação, host, porta e usuário. A autenticação por chave exige configurar o SSH no computador que executa o VS Code antes do uso.',
        vscodeCopyConfig: 'Copiar script de configuração',
        vscodeKeyHelper:
            'O nome do download da chave privada é derivado do caminho configurado. Salve o arquivo nesse caminho; o script de configuração verificará o arquivo e aplicará permissões.',
        vscodeKeyPath: 'Caminho da chave privada SSH',
        vscodeKeyPathPlaceholder: 'Por exemplo: ~/.ssh/id_ed25519',
        vscodeSelectKey: 'Chave privada SSH',
        vscodeScriptPreview: 'Script de configuração SSH',
        vscodePasswordHelper:
            'A autenticação por senha não grava na configuração SSH local. Informe a senha no VS Code ao conectar ao host remoto.',
        vscodePasswordHint:
            'A autenticação por senha conecta usando host, porta e usuário configurados. Não exige script de configuração nem arquivo de chave privada.',
        vscodeScriptPreviewHint:
            'Execute o script de configuração no computador que executa o VS Code para registrar o alias SSH de conexão remota. Execute-o novamente se alterar host, porta, usuário, chave privada ou caminho da chave.',
        vscodePasswordModeTitle: 'Autenticação por senha',
        vscodePasswordModeHint:
            'A autenticação por senha conecta usando host, porta e usuário configurados. Não exige script de configuração nem arquivo de chave privada.',
        vscodePasswordStep1: 'Confirme host, porta e usuário.',
        vscodePasswordStep2: 'Abra o VS Code e informe a senha quando solicitado.',
        vscodePasswordStep3: 'Não é necessário baixar a chave privada.',
        saveContentAndClose: 'O arquivo foi modificado, deseja salvar e fechar?',
        saveAndOpenNewFile: 'O arquivo foi modificado, deseja salvar e abrir o novo arquivo?',
        noEdit: 'O arquivo não foi modificado, não é necessário fazer isso!',
        noNameFolder: 'Pasta sem nome',
        noNameFile: 'Arquivo sem nome',
        minimap: 'Mini mapa de código',
        fileCanNotRead: 'O arquivo não pode ser lido',
        previewTruncated: 'O arquivo é muito grande, mostrando apenas a última parte',
        previewEmpty: 'O arquivo está vazio ou não é um arquivo de texto',
        previewLargeFile: 'Visualizar',
        panelInstallDir: 'O diretório de instalação do 1Panel não pode ser excluído',
        wgetTask: 'Tarefa de Download',
        stopWgetConfirm: 'Tem certeza de que deseja parar esta tarefa de download?',
        existFileTitle: 'Aviso de arquivo com o mesmo nome',
        existFileHelper: 'O arquivo enviado contém um arquivo com o mesmo nome. Deseja substituí-lo?',
        existFileSize: 'Tamanho do arquivo (novo -> antigo)',
        existFileDirHelper: 'O arquivo/pasta selecionado tem um nome duplicado. Por favor, prossiga com cautela!\n',
        coverDirHelper: 'As pastas selecionadas para substituição serão copiadas para o caminho de destino!',
        noSuchFile: 'O arquivo ou diretório não foi encontrado. Por favor, verifique e tente novamente.',
        setting: 'configuração',
        showHide: 'Mostrar arquivos ocultos',
        noShowHide: 'Não mostrar arquivos ocultos',
        cancelUpload: 'Cancelar Upload',
        cancelUploadHelper: 'Deseja cancelar o upload, após o cancelamento, a lista de upload será limpa.',
        keepOneTab: 'Mantenha pelo menos uma aba',
        notCanTab: 'Não é possível adicionar mais abas',
        convert: 'Converter Formato',
        converting: 'Convertendo Para',
        fileCanNotConvert: 'Este arquivo não suporta conversão de formato',
        formatType: 'Tipo de Formato',
        sourceFormat: 'Formato de Origem',
        sourceFile: 'Arquivo de Origem',
        saveDir: 'Diretório de Salvamento',
        deleteSourceFile: 'Excluir Arquivo de Origem',
        convertHelper: 'Converter os arquivos selecionados para outro formato',
        convertHelper1: 'Por favor, selecione os arquivos a serem convertidos',
        execConvert: 'Iniciar conversão. Você pode visualizar os logs de conversão no Centro de Tarefas',
        convertLogs: 'Logs de Conversão',
        formatConvert: 'Conversão de Formato',
    },
    ssh: {
        autoStart: 'Início automático',
        enable: 'Habilitar início automático',
        disable: 'Desabilitar início automático',
        sshAlert:
            'Os dados da lista são classificados com base na data de login. Alterar o fuso horário ou realizar outras operações pode causar desvios na data dos logs de login.',
        sshAlert2:
            'Você pode usar o "Fail2ban" na "Caixa de ferramentas" para bloquear endereços IP que tentam ataques de força bruta, o que aumentará a segurança do host.',
        sshOperate: 'A operação "{0}" no serviço SSH será realizada. Você deseja continuar?',
        sshChange: 'Configuração SSH',
        sshChangeHelper: 'Esta ação alterou "{0}" para "{1}". Você deseja continuar?',
        sshFileChangeHelper:
            'Modificar o arquivo de configuração pode afetar a disponibilidade do serviço. Tenha cautela ao realizar esta operação. Você deseja continuar?',
        port: 'Porta',
        portHelper: 'Especifique a porta na qual o serviço SSH escutará.',
        listenAddress: 'Endereço de escuta',
        allV4V6: '0.0.0.0:{0}(IPv4) e :::{0}(IPv6)',
        listenHelper:
            'Deixar os campos de IPv4 e IPv6 em branco fará com que o serviço escute em "0.0.0.0:{0}(IPv4)" e ":::{0}(IPv6)"',
        addressHelper: 'Especifique o endereço em que o serviço SSH irá escutar.',
        permitRootLogin: 'Permitir login de usuário root',
        rootSettingHelper: 'O método de login padrão para o usuário root é "Permitir login SSH".',
        rootHelper1: 'Permitir login SSH',
        rootHelper2: 'Desabilitar login SSH',
        rootHelper3: 'Somente login com chave é permitido',
        rootHelper4: 'Somente comandos pré-definidos podem ser executados. Nenhuma outra operação pode ser realizada.',
        passwordAuthentication: 'Autenticação por senha',
        pwdAuthHelper: 'Se deve ou não habilitar a autenticação por senha. Esse parâmetro está habilitado por padrão.',
        pubkeyAuthentication: 'Autenticação por chave',
        privateKey: 'Chave Privada',
        publicKey: 'Chave Pública',
        password: 'Senha',
        createMode: 'Método de Criação',
        generate: 'Gerar Automaticamente',
        unSyncPass: 'Senha da chave não pode ser sincronizada',
        syncHelper:
            'A operação de sincronização limpará chaves inválidas e sincronizará novos pares de chaves completos. Continuar?',
        input: 'Entrada Manual',
        import: 'Upload de Arquivo',
        authKeys: 'Chaves de Autorização',
        authKeysHelper: 'Salvar informações atuais da chave pública?',
        pubkey: 'Informações da chave',
        pubKeyHelper: 'A informação da chave atual só tem efeito para o usuário {0}',
        encryptionMode: 'Modo de criptografia',
        passwordHelper: 'Pode conter de 6 a 10 dígitos e letras maiúsculas e minúsculas',
        reGenerate: 'Regenerar chave',
        keyAuthHelper: 'Se deve ou não habilitar a autenticação por chave.',
        useDNS: 'Usar DNS',
        dnsHelper:
            'Controla se a função de resolução DNS está habilitada no servidor SSH para verificar a identidade da conexão.',
        confFileOrderHelper:
            'Use o menu para alternar o arquivo de configuração e editar/salvar diretamente; aplica por ordem de carregamento, e o valor carregado primeiro prevalece.',
        confFileOrderLabel: '{0} (Ordem de carregamento #{1})',
        analysis: 'Informações estatísticas',
        denyHelper:
            "Realizando uma operação de 'negar' nos seguintes endereços. Após a configuração, o IP será proibido de acessar o servidor. Você deseja continuar?",
        acceptHelper:
            "Realizando uma operação de 'aceitar' nos seguintes endereços. Após a configuração, o IP recuperará o acesso normal. Você deseja continuar?",
        noAddrWarning: 'Nenhum endereço [{0}] foi selecionado atualmente. Por favor, verifique e tente novamente!',
        loginLogs: 'Logs de SSH',
        loginMode: 'Modo',
        authenticating: 'Chave',
        publickey: 'Chave',
        belong: 'Pertence',
        local: 'Local',
        session: 'Sessão | Sessões',
        loginTime: 'Hora do login',
        loginIP: 'IP de login',
        stopSSHWarn: 'Deseja desconectar esta conexão SSH?',
        remote: 'SSH remoto',
    },
    setting: {
        panel: 'Painel',
        user: 'Usuário do painel',
        userChange: 'Alterar usuário do painel',
        userChangeHelper: 'Alterar o usuário do painel irá desconectá-lo. Continuar?',
        passwd: 'Senha do painel',
        emailHelper: 'Para recuperação de senha',
        watermark: 'Configurações de Marca d Água',
        watermarkContent: 'Conteúdo da Marca d Água',
        contentHelper:
            '{0} representa o nome do nó, {1} representa o endereço do nó. Você pode usar variáveis ou preencher nomes personalizados.',
        watermarkColor: 'Cor da Marca d Água',
        watermarkFont: 'Tamanho da Fonte da Marca d Água',
        watermarkHeight: 'Altura da Marca d Água',
        watermarkWidth: 'Largura da Marca d Água',
        watermarkRotate: 'Ângulo de Rotação',
        watermarkGap: 'Espaçamento',
        watermarkCloseHelper: 'Tem certeza de que deseja desativar as configurações de marca d água do sistema?',
        watermarkOpenHelper: 'Tem certeza de que deseja salvar as configurações atuais de marca d água do sistema?',
        title: 'Alias do painel',
        panelPort: 'Porta do painel',
        titleHelper:
            'Suporta nomes com comprimento de 3 a 30 caracteres, incluindo letras, caracteres chineses, números, espaços e caracteres especiais comuns',
        portHelper:
            'O intervalo recomendado de portas é de 8888 a 65535. Nota: Se o servidor tiver um grupo de segurança, permita a nova porta do grupo de segurança antecipadamente',
        portChange: 'Alteração de porta',
        portChangeHelper: 'Modificar a porta do serviço e reiniciar o serviço. Deseja continuar?',
        theme: 'Tema',
        menuTabs: 'Guias do menu',
        menuAccordion: 'Expansão múltipla de menus',
        menuAccordionHelper:
            'Após ativar, vários grupos de menus da barra lateral podem permanecer expandidos ao mesmo tempo.',
        dark: 'Escuro',
        darkGold: 'Ouro escuro',
        light: 'Claro',
        auto: 'Seguir o sistema',
        language: 'Idioma',
        runtimeEnv: 'Ambiente de execução',
        docSource: 'Fonte da documentação',
        withByRegion: 'Seguir região de operação (Padrão)',
        withByLang: 'Seguir idioma do sistema',
        region: 'Região de operação',
        cn: 'China continental',
        intl: 'Global',
        regionHelper: 'Ao alterar a região, as seguintes fontes de recursos serão ajustadas:',
        regionHelper1: 'Pacotes de instalação do sistema',
        regionHelper2: 'Loja de aplicativos e biblioteca de scripts',
        regionHelper3: 'Manual do usuário e documentação relacionada',
        regionHelper4: 'Isso pode afetar downloads e acessos futuros. Prossiga com cautela.',
        regionTip:
            'A região de operação afeta a fonte de atualização do sistema e o endereço de download dos pacotes de instalação.',
        docSourceTip:
            'A fonte da documentação determina o idioma de redirecionamento da documentação e do registro de atualizações.',
        languageHelper: 'Por padrão, segue o idioma do navegador. Este parâmetro tem efeito apenas no navegador atual',
        sessionTimeout: 'Tempo limite de sessão',
        sessionTimeoutError: 'O tempo mínimo de sessão é de 300 segundos',
        sessionTimeoutHelper: 'O painel será desconectado automaticamente após {0} segundo(s) de inatividade.',
        systemIP: 'Endereço de acesso padrão',
        systemIPHelper:
            'Redirecionamentos de aplicativos, acesso a containers e outras funcionalidades usarão este endereço para roteamento. Cada nó pode ser configurado com um endereço diferente.',
        proxy: 'Proxy do servidor',
        proxyHelper: 'Será eficaz nos seguintes cenários após configurar o servidor proxy:',
        proxyHelper1:
            'Download de pacotes de instalação e sincronização da loja de aplicativos (somente edição comercial)',
        proxyHelper2: 'Atualizações do sistema e verificação de atualizações (somente edição comercial)',
        proxyHelper4:
            'Solicitações de rede, como pull de imagens Docker, serão feitas pelo servidor proxy (somente edição comercial)',
        proxyHelper3: 'Verificação e sincronização da licença do sistema',
        proxyHelper5:
            'Download e sincronização unificados para bibliotecas de scripts do sistema (recurso da edição comercial)',
        proxyHelper6: 'Solicitar certificado (funcionalidade da versão comercial)',
        proxyType: 'Tipo de proxy',
        proxyUrl: 'Endereço do proxy',
        proxyPort: 'Porta do proxy',
        proxyPasswdKeep: 'Lembrar senha',
        proxyDocker: 'Proxy Docker',
        proxyDockerHelper:
            'Sincronize a configuração do servidor proxy com o Docker, suportando operações de puxar imagens de servidor offline e outras',
        syncToNode: 'Sincronizar para o nó filho',
        syncToNodeHelper: 'Sincronizar de alerta para outros nós',
        nodes: 'Nós',
        selectNode: 'Selecionar nó',
        selectNodeError: 'Por favor, selecione um nó',
        apiInterface: 'Habilitar API',
        apiInterfaceClose: 'Uma vez fechado, as interfaces da API não poderão ser acessadas. Deseja continuar?',
        apiInterfaceHelper: 'Permitir que aplicativos de terceiros acessem a API.',
        apiInterfaceAlert1:
            'Não habilite em ambientes de produção, pois pode aumentar os riscos de segurança do servidor.',
        apiInterfaceAlert2:
            'Não use aplicativos de terceiros para chamar a API, para evitar potenciais ameaças à segurança.',
        apiInterfaceAlert3: 'Documentação da API',
        apiInterfaceAlert4: 'Guia de uso',
        apiKey: 'Chave API',
        apiKeyHelper: 'A chave da API é usada para aplicativos de terceiros acessarem a API.',
        ipWhiteList: 'Lista de IPs permitidos',
        ipWhiteListEgs: 'Um por linha. Exemplo: \n172.161.10.111\n172.161.10.0/24',
        ipWhiteListHelper:
            'IPs na lista de permitidos podem acessar a API, 0.0.0.0/0 (todos os IPv4), ::/0 (todos os IPv6)',
        apiTrustedProxies: 'Proxies confiáveis da API',
        apiTrustedProxiesEgs: 'Um IP ou CIDR do servidor proxy por linha. Exemplo:\n172.16.10.111\n172.16.10.0/24',
        apiTrustedProxiesHelper:
            'Ao usar um proxy reverso, insira o IP ou a rede do servidor proxy para obter corretamente o IP do cliente. Caso contrário, deixe este campo em branco. 0.0.0.0/0 e ::/0 não são suportados.',
        apiKeyReset: 'Redefinir chave da interface',
        apiKeyResetHelper:
            'O serviço associado à chave se tornará inválido. Por favor, adicione uma nova chave ao serviço',
        confDockerProxy: 'Configurar proxy do Docker',
        restartNowHelper: 'Configurar o proxy do Docker exige reiniciar o serviço Docker.',
        restartNow: 'Reiniciar imediatamente',
        restartLater: 'Reiniciar manualmente mais tarde',
        systemIPWarning:
            'O nó atual não tem um endereço de acesso padrão configurado. Por favor, vá para as configurações do painel para configurá-lo!',
        systemIPWarning1:
            'O endereço atual do servidor está configurado como {0}, e o redirecionamento rápido não é possível!',
        syncTime: 'Hora do servidor',
        timeZone: 'Fuso horário',
        timeZoneChangeHelper: 'Alterar o fuso horário exige reiniciar o serviço. Deseja continuar?',
        timeZoneHelper:
            'A modificação de fuso horário depende do serviço timedatectl do sistema. Entrará em vigor após reiniciar o serviço 1Panel.',
        timeZoneCN: 'Pequim',
        timeZoneAM: 'Los Angeles',
        timeZoneNY: 'Nova York',
        ntpALi: 'Alibaba',
        ntpGoogle: 'Google',
        syncSite: 'Servidor NTP',
        syncSiteHelper:
            'Esta operação usará {0} como fonte para a sincronização do horário do sistema. Deseja continuar?',
        changePassword: 'Alterar senha',
        oldPassword: 'Senha original',
        newPassword: 'Nova senha',
        retryPassword: 'Confirmar senha',
        passwordEmptyTip: 'Deixe em branco para não alterar a senha atual',
        noSpace: 'As informações inseridas não podem conter caracteres de espaço',
        duplicatePassword: 'A nova senha não pode ser igual à senha original, por favor, insira novamente!',
        diskClean: 'Limpeza de cache',
        developerMode: 'Modo de desenvolvimento',
        developerModeHelper:
            'Você terá a oportunidade de testar novos recursos e correções antes de serem amplamente lançados e fornecer feedback precoce.',
        thirdParty: 'Contas de terceiros',
        noTypeForCreate: 'Nenhum tipo de backup foi criado até o momento',
        LOCAL: 'Disco do servidor',
        OSS: 'Ali OSS',
        S3: 'Amazon S3',
        mode: 'Modo',
        MINIO: 'MinIO',
        SFTP: 'SFTP',
        WebDAV: 'WebDAV',
        WebDAVAlist: 'Conectar WebDAV Alist pode referir-se à documentação oficial',
        OneDrive: 'Microsoft OneDrive',
        isCN: 'Internet da China',
        isNotCN: 'Versão internacional',
        client_id: 'ID do cliente',
        client_secret: 'Segredo do cliente',
        redirect_uri: 'URL de redirecionamento',
        onedrive_helper: 'A configuração personalizada pode ser referida na documentação oficial',
        refreshTime: 'Tempo de atualização do token',
        refreshStatus: 'Status da atualização do token',
        backupDir: 'Diretório de backup',
        codeWarning: 'O formato atual do código de autorização está incorreto, por favor, verifique novamente!',
        code: 'Código de autorização',
        codeHelper:
            'Clique no botão "Adquirir", faça login em {0} e copie o conteúdo após "code" no link redirecionado. Cole-o neste campo. Para instruções específicas, consulte a documentação oficial.',
        googleHelper:
            'Por favor, primeiro crie um aplicativo Google e obtenha as informações do cliente, preencha o formulário e clique no botão obter. Para operações específicas, consulte a documentação oficial.',
        loadCode: 'Obter',
        COS: 'Tencent COS',
        ap_beijing_1: 'Beijing Zona 1',
        ap_beijing: 'Pequim',
        ap_nanjing: 'Nanjing',
        ap_shanghai: 'Xangai',
        ap_guangzhou: 'Cantão',
        ap_chengdu: 'Chengdu',
        ap_chongqing: 'Chongqing',
        ap_shenzhen_fsi: 'Shenzhen Financeiro',
        ap_shanghai_fsi: 'Xangai Financeiro',
        ap_beijing_fsi: 'Pequim Financeiro',
        ap_hongkong: 'Hong Kong, China',
        ap_singapore: 'Cingapura',
        ap_mumbai: 'Bombaim',
        ap_jakarta: 'Jacarta',
        ap_seoul: 'Seul',
        ap_bangkok: 'Bangkok',
        ap_tokyo: 'Tóquio',
        na_siliconvalley: 'Silicon Valley (EUA Oeste)',
        na_ashburn: 'Ashburn (EUA Leste)',
        na_toronto: 'Toronto',
        sa_saopaulo: 'São Paulo',
        eu_frankfurt: 'Frankfurt',
        KODO: 'Qiniu Kodo',
        scType: 'Tipo de armazenamento',
        typeStandard: 'Padrão',
        typeStandard_IA: 'Padrão_IA',
        typeArchive: 'Arquivo',
        typeDeep_Archive: 'Arquivo Profundo',
        scLighthouse: 'Padrão, O armazenamento de objetos leve só suporta este tipo de armazenamento',
        scStandard:
            'O armazenamento padrão é adequado para cenários de negócios com grande volume de arquivos quentes que exigem acesso em tempo real, interação frequente de dados, etc.',
        scStandard_IA:
            'O armazenamento de baixa frequência é adequado para cenários de negócios com frequência de acesso relativamente baixa, e armazena dados por pelo menos 30 dias.',
        scArchive:
            'Armazenamento para arquivos é adequado para cenários de negócios com frequência de acesso extremamente baixa.',
        scDeep_Archive:
            'Armazenamento frio durável é adequado para cenários de negócios com frequência de acesso extremamente baixa.',
        archiveHelper:
            'Arquivos de armazenamento arquivado não podem ser baixados diretamente e devem ser restaurados primeiro através do site do provedor de serviços de nuvem correspondente. Use com cautela!',
        backupAlert:
            'Se um provedor de nuvem for compatível com o protocolo S3, você pode usar diretamente o Amazon S3 para backup.',
        domain: 'Domínio de aceleração',
        backupAccount: 'Conta de backup | Contas de backup',
        loadBucket: 'Obter bucket',
        accountName: 'Nome da conta',
        accountKey: 'Chave da conta',
        address: 'Endereço',
        path: 'Caminho',
        safe: 'Segurança',
        passkey: 'Passkey',
        passkeyManage: 'Gerenciar',
        passkeyKeyManagement: 'Gerenciamento de chaves',
        passkeyHelper: 'Para login rápido, é possível vincular até 5 passkeys',
        passkeyRequireSSL: 'Passkeys exigem domínio vinculado e acesso via HTTPS',
        passkeyTrustedProxies: 'Proxies confiáveis',
        passkeyTrustedProxiesHelper:
            'Somente requisições originadas nesses IP/CIDR confiarão em Forwarded e X-Forwarded-Proto para detectar HTTPS',
        passkeyNotSupported: 'O navegador ou ambiente atual não suporta passkeys',
        passkeyPrereqTitle: 'Os seguintes pré-requisitos são necessários para Passkey',
        passkeyPrereqBindDomain: 'Vinculação de domínio do 1Panel configurada',
        passkeyPrereqHttps: 'Acesso seguro via HTTPS',
        passkeyPrereqBrowser: 'O ambiente suporta Passkey (WebAuthn + autenticador de plataforma)',
        passkeyPrereqBrowserDetailWebAuthnUnavailable:
            'Use um navegador do sistema e confirme que o painel está aberto em HTTPS com domínio vinculado.',
        passkeyPrereqBrowserDetailPlatformCapabilityUnavailable:
            'Este ambiente não pode usar autenticação do dispositivo. Tente um navegador do sistema em uma versão mais nova do SO.',
        passkeyPrereqBrowserDetailNoPlatformAuthenticator:
            'Ative bloqueio de tela / impressão digital / reconhecimento facial / Windows Hello e tente novamente.',
        passkeyPrereqBrowserDetailDetectFailed:
            'Falha na detecção. Atualize a página e tente novamente, ou troque para um navegador do sistema.',
        passkeyPrereqGoSetup: 'Configurar',
        passkeyCount: 'Vinculadas {0}/{1}',
        passkeyName: 'Nome',
        passkeyNameHelper: 'Digite um nome para distinguir dispositivos',
        passkeyAdd: 'Adicionar Passkey',
        passkeyCreatedAt: 'Criado em',
        passkeyLastUsedAt: 'Último uso',
        passkeyDeleteConfirm: 'Após excluir, esta passkey não poderá ser usada para login. Continuar?',
        passkeyLimit: 'É possível vincular até 5 passkeys',
        passkeyFailed:
            'Falha no cadastro da passkey, por favor, certifique-se de que o certificado SSL do painel é confiável',
        bindInfo: 'Informações de Vinculação',
        bindAll: 'Ouvir Todos',
        bindInfoHelper:
            'Alterar o endereço de escuta ou protocolo do serviço pode resultar em indisponibilidade do serviço. Você deseja continuar?',
        ipv6: 'Ouvir IPv6',
        bindAddress: 'Endereço de escuta',
        entrance: 'Entrada',
        showEntrance: 'Mostrar alerta desativado na página "Visão Geral"',
        entranceHelper:
            'Habilitar a entrada de segurança permitirá o login no painel apenas através do ponto de entrada de segurança especificado.',
        entranceError:
            'Por favor, insira um ponto de entrada seguro de 5-116 caracteres, somente números ou letras são suportados.',
        entranceInputHelper: 'Deixe em branco para desativar a entrada de segurança.',
        randomGenerate: 'Aleatório',
        expirationTime: 'Data de Expiração',
        unSetting: 'Não definido',
        noneSetting:
            'Defina o tempo de expiração da senha do painel. Após a expiração, será necessário redefinir a senha.',
        expirationHelper:
            'Se o tempo de expiração da senha for 0 dias, a função de expiração da senha estará desativada.',
        days: 'Dias de expiração da senha',
        expiredHelper: 'A senha atual expirou. Por favor, altere a senha novamente.',
        timeoutHelper: 'A senha do painel expirará em {0} dias. Após a expiração, será necessário redefinir a senha.',
        complexity: 'Validação de Complexidade',
        complexityHelper:
            'Após ativar, a senha deve ter de 8 a 30 caracteres e conter pelo menos dois destes tipos: letras, números e caracteres especiais.',
        bindDomain: 'Vincular domínio',
        unBindDomain: 'Desvincular domínio',
        panelSSL: 'SSL do Painel',
        unBindDomainHelper:
            'A ação de desvincular um domínio pode causar insegurança no sistema. Você deseja continuar?',
        bindDomainHelper: 'Após vincular o domínio, somente esse domínio poderá acessar o serviço 1Panel.',
        bindDomainHelper1: 'Deixe em branco para desabilitar o vínculo de domínio.',
        bindDomainWarning:
            'Após vincular o domínio, você será desconectado e poderá acessar o serviço 1Panel apenas através do domínio especificado nas configurações. Você deseja continuar?',
        allowIPs: 'IP Autorizado',
        unAllowIPs: 'IP Não Autorizado',
        unAllowIPsWarning:
            'Autorizar um IP vazio permitirá que todos os IPs acessem o sistema, o que pode causar insegurança. Você deseja continuar?',
        allowIPsHelper:
            'Após definir a lista de IPs autorizados, apenas os IPs da lista poderão acessar o serviço do painel.',
        allowIPsWarning:
            'Após definir a lista de IPs autorizados, somente os IPs da lista poderão acessar o serviço do painel. Você deseja continuar?',
        allowIPsHelper1: 'Deixe em branco para desabilitar a restrição de IP.',
        allowIPEgs: 'Um por linha. Por exemplo,\n172.16.10.111\n172.16.10.0/24',
        mfa: 'Autenticação em Dois Fatores',
        mfaClose: 'Desabilitar MFA reduzirá a segurança do serviço. Você deseja continuar?',
        secret: 'Segredo',
        mfaInterval: 'Intervalo de atualização (s)',
        mfaTitleHelper:
            'O título é usado para distinguir diferentes hosts do 1Panel. Escaneie novamente ou adicione manualmente a chave secreta após modificar o título.',
        mfaIntervalHelper:
            'Após alterar o intervalo de atualização, escaneie novamente ou adicione a chave secreta manualmente.\nAlguns aplicativos autenticadores suportam apenas intervalo de 30 segundos (por exemplo, Google/Microsoft Authenticator).',
        mfaAlert:
            'O token de uso único é um número dinâmico de 6 dígitos e baseado no tempo atual. Certifique-se de que o horário do servidor esteja sincronizado.',
        mfaHelper: 'Após ativá-lo, o token de uso único precisará ser verificado.',
        mfaHelper1: 'Baixe um aplicativo autenticador, por exemplo,',
        mfaHelper2:
            'Para obter o token de uso único, escaneie o código QR abaixo usando seu aplicativo autenticador ou copie a chave secreta para o aplicativo de autenticação.',
        mfaHelper3: 'Digite os seis dígitos do aplicativo',
        mfaCode: 'Token de uso único',
        sslChangeHelper: 'Modificar a configuração de https e reiniciar o serviço. Você deseja continuar?',
        sslDisable: 'Desabilitar',
        sslDisableHelper:
            'Se o serviço https for desabilitado, será necessário reiniciar o painel para que a alteração tenha efeito. Você deseja continuar?',
        noAuthSetting: 'Configuração não autorizada',
        noAuthSettingHelper:
            'Quando os usuários não fizerem login com a entrada de segurança especificada, ou não acessarem o painel a partir de IP ou domínio especificado, essa resposta pode ocultar características do painel.',
        responseSetting: 'Configuração de resposta',
        help200: 'Página de ajuda',
        error400: 'Requisição inválida',
        error401: 'Não autorizado',
        error403: 'Proibido',
        error404: 'Não encontrado',
        error408: 'Tempo de solicitação expirado',
        error416: 'Faixa não satisfatória',
        error444: 'Conexão fechada',
        error500: 'Erro no servidor',
        https: 'Configurar HTTPS para o painel melhora a segurança de acesso',
        strictHelper: 'Tráfego não HTTPS não pode se conectar ao painel',
        muxHelper:
            'O painel ouvirá nas protocolos HTTP e HTTPS e redirecionará HTTP para HTTPS, mas isso pode reduzir a segurança do painel',
        certType: 'Tipo de certificado',
        selfSigned: 'Autoassinado',
        selfSignedHelper:
            'Os navegadores podem não confiar em certificados autoassinados e podem exibir avisos de segurança.',
        select: 'Selecionar',
        domainOrIP: 'Domínio ou IP:',
        timeOut: 'Tempo limite',
        rootCrtDownload: 'Download do certificado raiz',
        primaryKey: 'Chave primária',
        certificate: 'Certificado',
        backupJump:
            'Arquivos de backup não estão na lista de backup atual, tente fazer o download do diretório de arquivos e importar para o backup.',
        snapshot: 'Snapshot | Snapshots',
        noAppData: 'Nenhum aplicativo do sistema disponível para seleção',
        noBackupData: 'Nenhum dado de backup disponível para seleção',
        stepBaseData: 'Dados Básicos',
        stepAppData: 'Aplicativos do Sistema',
        stepPanelData: 'Dados do Sistema',
        stepBackupData: 'Dados de Backup',
        stepOtherData: 'Outros Dados',
        operationLog: 'Manter logs de operações',
        loginLog: 'Manter logs de acesso',
        systemLog: 'Manter logs do sistema',
        taskLog: 'Manter logs de tarefas',
        monitorData: 'Manter dados de monitoramento',
        dockerConf: 'Manter Configuração do Docker',
        selectAllImage: 'Fazer backup de todas as imagens de aplicativos',
        logLabel: 'Log',
        agentLabel: 'Configuração do Nó',
        appDataLabel: 'Dados de Aplicativos',
        appImage: 'Imagem do Aplicativo',
        appBackup: 'Backup de Aplicativo',
        backupLabel: 'Diretório de Backup',
        confLabel: 'Arquivos de Configuração',
        dockerLabel: 'Contêineres',
        taskLabel: 'Tarefas Agendadas',
        resourceLabel: 'Diretório de Recursos do Aplicativo',
        runtimeLabel: 'Ambiente de Execução',
        appLabel: 'Aplicativo',
        databaseLabel: 'Banco de Dados',
        snapshotLabel: 'Arquivos de Snapshot',
        websiteLabel: 'Site',
        directoryLabel: 'Diretório',
        appStoreLabel: 'Loja de Aplicativos',
        shellLabel: 'Script',
        tmpLabel: 'Diretório Temporário',
        sslLabel: 'Diretório de Certificados',
        reCreate: 'Falha ao criar snapshot',
        reRollback: 'Falha ao reverter snapshot',
        deleteHelper:
            'Todos os arquivos de snapshot, incluindo os da conta de backup de terceiros, serão excluídos. Você deseja continuar?',
        status: 'Status do snapshot',
        ignoreRule: 'Ignorar regra',
        editIgnoreRule: '@:commons.button.edit @.lower:setting.ignoreRule',
        ignoreHelper:
            'Esta regra será usada para comprimir e fazer backup do diretório de dados do 1Panel durante a criação do snapshot. Por padrão, arquivos de socket são ignorados.',
        ignoreHelper1: 'Um por linha. Exemplo,\n*.log\n/opt/1panel/cache',
        panelInfo: 'Escrever informações básicas do 1Panel',
        panelBin: 'Fazer backup dos arquivos do sistema 1Panel',
        daemonJson: 'Fazer backup do arquivo de configuração do Docker',
        appData: 'Fazer backup dos aplicativos instalados do 1Panel',
        panelData: 'Fazer backup do diretório de dados do 1Panel',
        backupData: 'Fazer backup do diretório de backup local do 1Panel',
        compress: 'Criar arquivo de snapshot',
        upload: 'Fazer upload do arquivo de snapshot',
        recoverDetail: 'Detalhes da recuperação',
        importHelper: 'Diretório do snapshot: ',
        lastRecoverAt: 'Última recuperação realizada',
        lastRollbackAt: 'Último rollback realizado',
        reDownload: 'Baixar o arquivo de backup novamente',
        recoverErrArch: 'A recuperação de snapshot entre diferentes arquiteturas de servidor não é suportada!',
        recoverErrSize:
            'Espaço em disco insuficiente detectado, por favor, verifique ou libere espaço e tente novamente!',
        recoverHelper:
            'Iniciando a recuperação do snapshot {0}, por favor, confirme as seguintes informações antes de prosseguir:',
        recoverHelper1: 'A recuperação requer reiniciar os serviços Docker e 1Panel',
        recoverHelper2:
            'Por favor, assegure-se de que há espaço suficiente em disco no servidor (Tamanho do arquivo de snapshot: {0}, Espaço disponível: {1})',
        recoverHelper3:
            'Por favor, assegure-se de que a arquitetura do servidor corresponda à arquitetura do servidor onde o snapshot foi criado (Arquitetura do servidor atual: {0})',
        recoverHelper4:
            'Esta operação faz rollback apenas do nó principal. Se houver nós secundários atualizados, faça o rollback deles primeiro antes de continuar.',
        rollback: 'Rollback',
        rollbackHelper:
            'Reverter essa recuperação substituirá todos os arquivos dessa recuperação e pode exigir reiniciar os serviços Docker e 1Panel. Você deseja continuar?',
        upgradeHelper: 'A atualização requer reiniciar o serviço 1Panel. Você deseja continuar?',
        rollbackLocalHelper:
            'O nó principal não suporta rollback direto. Por favor, execute manualmente o comando [1pctl restore] para fazer o rollback!',
        noUpgrade: 'Esta é a versão mais recente',
        upgradeNotes: 'Notas de versão',
        upgradeNow: 'Atualizar agora',
        source: 'Fonte para download',
        versionNotSame:
            'A versão do nó não corresponde à do nó principal. Atualize na Gestão de Nós antes de tentar novamente.',
        versionCompare:
            'Detectado que o nó {0} já está na última versão atualizável. Por favor, verifique a versão do nó principal e tente novamente!',
        about: 'Sobre',
        versionItem: 'Versão Atual',
        backupCopies: 'Cópias de Backup',
        backupCopiesHelper:
            'Defina o número de cópias de backup de atualização para manter para reversão de versão. 0 significa manter todas.',
        backupCopiesRule: 'Mantenha pelo menos 3 registros de backup de atualização',
        release: 'Registro de Atualizações de Versão',
        releaseHelper:
            'Falha ao obter o registro de atualizações para o ambiente atual. Você pode verificar a documentação oficial manualmente.',
        project: 'GitHub',
        issue: 'Problema',
        doc: 'Documentação oficial',
        star: 'Estrela',
        description: 'Painel de Servidor Linux',
        forum: 'Discussões',
        doc2: 'Documentação',
        currentVersion: 'Versão',
        license: 'Licença',
        bindNode: 'Vincular Nó',
        menuSetting: 'Configurações do Menu',
        menuHide: 'Ocultar menu',
        menuSettingHelper: 'Quando apenas 1 submenu existir, a barra de menus exibirá apenas esse submenu',
        showAll: 'Mostrar Tudo',
        hideALL: 'Ocultar Tudo',
        ifShow: 'Exibir?',
        menu: 'Menu',
        confirmMessage: 'A página será atualizada para atualizar a lista de menus avançados. Continuar?',
        recoverMessage:
            'A página será atualizada e a lista de menus será restaurada ao estado inicial. Deseja continuar?',
        compressPassword: 'Senha de compressão',
        backupRecoverMessage:
            'Por favor, insira a senha de compressão ou descompressão (deixe em branco para não definir)',
        componentSize: 'Tamanho do componente',
        apiKeyValidityTime: 'Período de validade da chave da API',
        apiKeyValidityTimeEgs: 'Período de validade da chave da API (em minutos)',
        apiKeyValidityTimeHelper:
            'O timestamp da interface é válido se a diferença para o timestamp atual (em minutos) estiver no intervalo permitido. Valor 0 desativa a verificação.',
        scope: 'Escopo',
        public: 'Público',
        publicHelper: 'Contas de backup públicas serão sincronizadas para cada subnó e podem ser usadas em conjunto',
        private: 'Privado',
        privateHelper: 'Contas de backup privadas são criadas apenas no nó atual e usadas somente por ele',
        UPYUN: 'UPYUN',
        ALIYUN: 'Aliyun Drive',
        ALIYUNHelper: 'O limite atual para download sem cliente no Aliyun Drive é 100 MB. Acima disso, use o cliente.',
        ALIYUNRecover:
            'O limite atual para download sem cliente no Aliyun Drive é 100 MB. Acima disso, baixe localmente via cliente e depois sincronize o snapshot para restaurar.',
        GoogleDrive: 'Google Drive',
        analysis: 'Análise',
        analysisHelper:
            'Cole todo o conteúdo do token para analisar automaticamente as partes necessárias. Para detalhes, veja a documentação oficial.',
        serviceName: 'Nome do serviço',
        operator: 'Operador',
        clickToRefresh: 'Clique para atualizar',
        recoverFailed: 'Falha na restauração do snapshot',
        upgradeRecord: 'Histórico de atualização',
        upgrading: 'Atualizando, aguarde...',
        versionHelper:
            'Regras de nome: [versão principal].[versão funcional].[versão de correção], como no exemplo abaixo:',
        upgradeCheck: 'Verificar atualizações',
    },
    license: {
        offLine: 'Versão Offline',
        community: 'Gratuito',
        oss: 'Open Source Software',
        ee: 'Edição Enterprise',
        pro: 'Pro',
        trial: 'Teste',
        add: 'Adicionar Edição Comunitária',
        licenseBindHelper: 'As cotas de nó gratuitas só podem ser usadas quando a licença está vinculada a um nó',
        licenseAlert:
            'Nós da Edição Comunitária só podem ser adicionados quando a licença está devidamente vinculada a um nó. Apenas nós devidamente vinculados à licença suportam troca.',
        licenseUnbindHelper:
            'Nós da Edição Comunitária detectados para esta licença. Por favor, desvincule e tente novamente!',
        subscription: 'Assinatura',
        perpetual: 'Licença Perpétua',
        product: 'Produto',
        versionConstraint: '{0} Compra do versão',
        forceUnbind: 'Forçar Desvinculação',
        forceUnbindHelper:
            'Forçar a desvinculação ignorará quaisquer erros que ocorram durante o processo de desvinculação e, em última análise, liberará a vinculação da licença.',
        updateForce:
            'Atualização forçada (ignora todos os erros durante o desvinculamento para garantir o sucesso da operação final)',
        trialInfo: 'Versão',
        authorizationId: 'ID da Assinatura',
        authorizedUser: 'Usuário autorizado',
        lostHelper:
            'A licença atingiu o limite de tentativas. Execute a sincronização manualmente para garantir que os recursos da edição comercial continuem funcionando. detalhes: ',
        quickUpdate: 'Atualização rápida',
        import: 'Importar',
        power: 'Autorizar',
        unbindHelper:
            'Todas as configurações relacionadas à edição comercial serão limpas após a desvinculação. Você deseja continuar?',
        importLicense: 'Licença',
        securityWarningTitle: 'Não use licenças crackeadas ou de fontes desconhecidas.',
        securityWarningContent:
            'O 1Panel precisa ser executado por um usuário com privilégios de administração do sistema. Licenças não oficiais ou versões adulteradas podem causar perda de controle do servidor, vazamento de dados e outros riscos graves de segurança. Obtenha licenças e instaladores apenas pelos canais oficiais da FIT2CLOUD.',
        importHelper: 'Clique ou arraste o arquivo de licença aqui',
        licenseRequiredTip:
            'A licença ainda não foi importada. Copie o ID do dispositivo, obtenha a licença e importe-a antes de fazer login.',
        licenseRequiredShortTip:
            'Copie primeiro o ID do dispositivo para obter a licença. Você poderá entrar depois de importá-la.',
        licenseRequiredUserTip:
            'A licença Enterprise Edition não está vinculada. Entre em contato com o superadministrador para importar a licença.',
        restoreCommunity: 'Restaurar Community Edition',
        restoreCommunityOnline: 'Restauração online',
        restoreCommunityOffline: 'Restauração offline',
        restoreCommunityPackageFound:
            'Um pacote offline utilizável da Community Edition foi detectado. A restauração offline está disponível.',
        restoreCommunityPackageMissing:
            'Nenhum pacote offline utilizável da Community Edition foi detectado. A restauração offline não está disponível no momento.',
        restoreCommunityOnlineHelper:
            'O pacote Community Edition da versão atual será baixado automaticamente e os dados exclusivos da Enterprise serão limpos.',
        restoreCommunityOfflineHelper:
            'Coloque em {path} um pacote oficial cuja versão não seja anterior à versão Enterprise atual. A troca será habilitada quando um pacote utilizável for detectado.',
        restoreCommunityConfirm:
            'Após trocar de versão, você poderá entrar na Community Edition com a conta atual de superadministrador da Enterprise. Os dados exclusivos da Enterprise serão removidos durante a troca. Prossiga com cuidado.',
        restoreCommunityStarting:
            'Preparando a Community Edition. O painel será reiniciado automaticamente quando estiver pronto.',
        technicalAdvice: 'Consultoria técnica',
        advice: 'Consultoria',
        levelUpPro: 'Fazer upgrade para a edição comercial',
        licenseSync: 'Sincronização de Licença',
        knowMorePro: 'Saiba mais',
        closeAlert: 'A página atual pode ser fechada nas configurações do painel',
        introduce: 'Introdução de recursos',
        deviceID: 'ID do dispositivo',
        corporation: 'Empresa licenciada',
        expired: 'Horário de expiração',
        edition: 'Edição',
        standard: 'Padrão',
        enterprise: 'Enterprise',
        count: 'Quantidade licenciada',
        serialNo: 'Número de série',
        remark: 'Observação',
        waf: 'Faça upgrade para a edição comercial para usar mapa de bloqueios, logs, registros de bloqueio, bloqueio geográfico, regras personalizadas, páginas de bloqueio personalizadas e mais.',
        tamper: 'Faça upgrade para a edição comercial para proteger sites contra alterações ou adulterações não autorizadas.',
        setting:
            'Faça upgrade para a edição comercial para personalizar o logo do painel, a mensagem de boas-vindas e mais.',
        monitor:
            'Faça upgrade para a edição comercial para acompanhar o status do site em tempo real, tendências de visitantes, origens de tráfego, logs de requisições e mais.',
        alert: 'Faça upgrade para a edição comercial para receber alertas por SMS e consultar os logs de alertas.',
        node: 'Atualize para a edição comercial para gerenciar vários servidores Linux com o 1Panel.',
        nodeApp:
            'Atualize para a edição comercial para atualizar versões de aplicativos multi-nó sem alternar manualmente entre os nós.',
        nodeDashboard:
            'Atualize para a edição comercial para gerenciar aplicativos, sites, bancos de dados e tarefas agendadas multi-nó de forma centralizada.',
        fileExchange: 'Atualize para a edição comercial para transferir arquivos rapidamente entre vários servidores.',
        app: 'Faça upgrade para a edição comercial para visualizar informações do serviço e monitoramento de anomalias no aplicativo móvel.',
        cluster: 'Atualize para a edição comercial para gerenciar clusters primário-réplica de MySQL/Postgres/Redis.',
        vllm: 'Atualize para a edição comercial para gerenciar serviços vLLM de forma centralizada no 1Panel, incluindo implantação, configuração, operações de ciclo de vida e acompanhamento de tarefas.',
        'model-downloader':
            'Atualize para a edição comercial para pesquisar, baixar e gerenciar arquivos de modelos locais do HuggingFace, ModelScope ou mirrors compatíveis, com diretórios de modelos e tarefas de download centralizados.',
        exceptionalHelper:
            'A verificação da sincronização da licença está anormal. Clique em sincronizar manualmente para garantir o funcionamento da edição comercial. detalhe: ',
        tamperHelper:
            'Falha na operação, o arquivo ou pasta tem proteção contra alteração habilitada. Verifique e tente novamente!',
    },
    clean: {
        scan: 'Iniciar escaneamento',
        scanHelper: 'Limpeza fácil de arquivos inúteis gerados durante a execução do 1Panel',
        clean: 'Limpar agora',
        reScan: 'Repetir escaneamento',
        cleanHelper: 'Arquivos e diretórios selecionados não podem ser revertidos após a limpeza. Continuar?',
        statusSuggest: '(Limpeza recomendada)',
        statusClean: '(Muito limpo)',
        statusEmpty: 'Muito limpo, nenhuma limpeza necessária!',
        statusWarning: '(Prossiga com cautela)',
        lastCleanTime: 'Última limpeza: {0}',
        lastCleanHelper: 'Arquivos e diretórios limpos: {0}, total limpo: {1}',
        cleanSuccessful: 'Limpeza realizada com sucesso',
        currentCleanHelper: 'Arquivos e diretórios limpos nesta sessão: {0}, total limpo: {1}',
        suggest: '(Recomendado)',
        totalScan: 'Total de arquivos inúteis a serem limpos: ',
        selectScan: 'Total de arquivos inúteis selecionados: ',
        system: 'Arquivos inúteis do sistema',
        systemHelper: 'Arquivos temporários gerados durante processos como snapshots e atualizações.',
        panelOriginal: 'Arquivos de backup antes da restauração do snapshot do sistema.',
        upgrade: 'Arquivos de backup de atualização do sistema.',
        agentPackages: 'Pacotes de atualização/instalação de nós filhos de versões históricas.',
        upgradeHelper: '(Recomenda-se manter o backup de atualização mais recente para rollback do sistema)',
        rollback: 'Arquivos de backup antes da recuperação',
        backup: 'Backup do Sistema',
        backupHelper: 'Arquivos de backup não associados a contas de backup locais',
        unknownBackup: 'Backup do Sistema',
        tmpBackup: 'Backup Temporário',
        unknownApp: 'Backup de Aplicativo não Associado',
        unknownDatabase: 'Backup de Banco de Dados não Associado',
        unknownWebsite: 'Backup de Site não Associado',
        unknownSnapshot: 'Backup de Instantâneo não Associado',
        upload: 'Arquivos temporários de upload',
        uploadHelper: 'Arquivos temporários enviados da lista de backup do sistema',
        download: 'Arquivos temporários de download',
        downloadHelper: 'Arquivos temporários baixados de contas de backup de terceiros pelo sistema',
        directory: 'Diretório',
        systemLog: 'Arquivo de log',
        systemLogHelper: 'Logs do sistema, logs de tarefas, arquivos de log do site',
        dockerLog: 'Arquivos de log de operação de contêineres',
        taskLog: 'Arquivos de log de execução de tarefas agendadas',
        shell: 'Tarefas agendadas de script de shell',
        containerShell: 'Tarefas agendadas de script de shell executadas dentro de contêineres',
        curl: 'Tarefas agendadas de CURL',
        docker: 'Lixo de contêineres',
        dockerHelper: 'Arquivos como contêineres, imagens, volumes, cache de compilação, etc.',
        volumes: 'Volumes',
        buildCache: 'Cache de construção do container',
        appTmpDownload: 'Arquivo de download temporário do aplicativo',
        unknownWebsiteLog: 'Arquivo de backup de log de site não vinculado',
        snapshot: 'Arquivos temporários de snapshot do sistema',
    },
    app: {
        app: 'Aplicativo | Aplicativos',
        installName: 'Nome',
        installed: 'Instalado',
        all: 'Todos',
        version: 'Versão',
        detail: 'Detalhes',
        params: 'Editar',
        author: 'Autor',
        source: 'Fonte',
        appName: 'Nome do Aplicativo',
        deleteWarn:
            'A operação de exclusão excluirá todos os dados e backups juntos. Esta operação não pode ser desfeita. Deseja continuar?',
        syncSuccess: 'Sincronizado com sucesso',
        canUpgrade: 'Atualizações',
        backupName: 'Nome do Arquivo',
        backupPath: 'Caminho do Arquivo',
        backupdate: 'Hora do Backup',
        versionSelect: 'Por favor, selecione uma versão',
        operatorHelper: 'A operação {0} será realizada no aplicativo selecionado. Deseja continuar?',
        startOperatorHelper: 'O aplicativo será iniciado. Deseja continuar?',
        stopOperatorHelper: 'O aplicativo será parado. Deseja continuar?',
        restartOperatorHelper: 'O aplicativo será reiniciado. Deseja continuar?',
        reloadOperatorHelper: 'O aplicativo será recarregado. Deseja continuar?',
        checkInstalledWarn: '"{0}" não foi detectado. Vá para "Loja de Aplicativos" para instalar.',
        limitHelper: 'O aplicativo já foi instalado.',
        deleteHelper: '"{0}" foi associado aos seguintes recursos. Por favor, verifique e tente novamente!',
        checkTitle: 'Dica',
        defaultConfig: 'Configuração padrão',
        defaultConfigHelper: 'Foi restaurado para a configuração padrão, ela entrará em vigor após salvar',
        forceDelete: 'Excluir forçadamente',
        forceDeleteHelper: 'A exclusão forçada ignorará erros durante o processo de exclusão e eliminará os metadados.',
        deleteBackup: 'Excluir backup',
        deleteBackupHelper: 'Excluir também o backup do aplicativo',
        deleteDB: 'Excluir banco de dados',
        deleteDBHelper: 'Excluir também o banco de dados',
        noService: 'Sem {0}',
        toInstall: 'Ir para instalar',
        param: 'Parâmetros',
        alreadyRun: 'Instalado',
        syncAppList: 'Sincronizar',
        less1Minute: 'Menos de 1 minuto',
        appOfficeWebsite: 'Site oficial',
        github: 'GitHub',
        document: 'Documentação',
        updatePrompt: 'Nenhuma atualização disponível',
        installPrompt: 'Nenhum aplicativo instalado ainda',
        updateHelper: 'Editar parâmetros pode causar falha no início do aplicativo. Por favor, proceda com cautela.',
        updateWarn: 'Os parâmetros de atualização precisam reconstruir o aplicativo. Deseja continuar?',
        busPort: 'Porta',
        syncStart: 'Iniciando a sincronização! Por favor, atualize a loja de aplicativos mais tarde',
        advanced: 'Configurações avançadas',
        cpuCore: 'núcleo(s)',
        containerName: 'Nome do container',
        containerNameHelper: 'O nome do container será gerado automaticamente quando não definido',
        allowPort: 'Acesso externo',
        allowPortHelper: 'Permitir o acesso externo irá liberar a porta do firewall',
        appInstallWarn:
            'O aplicativo não expõe a porta de acesso externo por padrão. Clique em "Configurações Avançadas" para expô-la.',
        upgradeStart: 'Iniciando a atualização! Por favor, atualize a página mais tarde',
        toFolder: 'Abrir o diretório de instalação',
        editCompose: 'Editar arquivo compose',
        editComposeHelper: 'Editar o arquivo compose pode resultar em falha na instalação do software',
        composeNullErr: 'O compose não pode estar vazio',
        takeDown: 'Descontinuado',
        allReadyInstalled: 'Instalado',
        installHelper: 'Se houver problemas ao puxar a imagem, configure a aceleração da imagem.',
        sortMode: 'Ordenar',
        installWarn:
            'O acesso externo não foi habilitado, o que impede que o aplicativo seja acessado via redes externas. Deseja continuar?',
        showIgnore: 'Exibir aplicativos ignorados',
        cancelIgnore: 'Cancelar ignorar',
        ignoreList: 'Aplicativos ignorados',
        appHelper:
            'Vá para a página de detalhes do aplicativo para aprender as instruções de instalação para alguns aplicativos especiais.',
        backupApp: 'Fazer backup do aplicativo antes de atualizar',
        backupAppHelper:
            'Se a atualização falhar, o backup será automaticamente revertido. Verifique a razão da falha no log de auditoria-sistema. O backup manterá as últimas 3 cópias por padrão',
        openrestyDeleteHelper: 'Excluir forçadamente o OpenResty excluirá todos os sites. Deseja continuar?',
        downloadLogHelper1: 'Todos os logs do aplicativo {0} estão prestes a ser baixados. Deseja continuar?',
        downloadLogHelper2: 'Os últimos {1} logs do aplicativo {0} estão prestes a ser baixados. Deseja continuar?',
        syncAllAppHelper: 'Todos os aplicativos serão sincronizados. Deseja continuar?',
        hostModeHelper:
            'O modo de rede atual do aplicativo é o modo host. Se precisar abrir a porta, abra-a manualmente na página do firewall.',
        showLocal: 'Exibir aplicativos locais',
        reload: 'Recarregar',
        upgradeWarn:
            'Atualizar o aplicativo substituirá o arquivo docker-compose.yml. Se houver alterações, você pode clicar para visualizar a comparação do arquivo',
        openclawHttpsUpgradeNoticeTitle:
            'Nota: As instruções a seguir se aplicam apenas a quem estiver atualizando o OpenClaw das versões 2026.3.13 a 2026.3.22 para a versão 2026.3.23 ou posterior:',
        openclawHttpsUpgradeNoticeItem1:
            'Após a atualização, o acesso do agente volta a usar HTTP. Vá para Configuração -> Ajustes -> Segurança e verifique o endereço de acesso.',
        openclawHttpsUpgradeNoticeItem2:
            'Se antes você usava um site com proxy reverso, altere o destino do proxy para http://IP:Port.',
        newVersion: 'Nova versão',
        oldVersion: 'Versão atual',
        composeDiff: 'Comparação de arquivo',
        showDiff: 'Exibir comparação',
        useNew: 'Usar versão personalizada',
        useDefault: 'Usar versão padrão',
        useCustom: 'Personalizar docker-compose.yml',
        useCustomHelper:
            'Usar um arquivo docker-compose.yml personalizado pode causar falha na atualização do aplicativo. Se não for necessário, não marque esta opção.',
        diffHelper:
            'O lado esquerdo é a versão antiga, o lado direito é a nova versão. Após editar, clique para salvar a versão personalizada',
        pullImage: 'Puxar Imagem',
        pullImageHelper: 'Execute o comando docker pull para puxar a imagem antes de iniciar o aplicativo',
        deleteImage: 'Excluir Imagem',
        deleteImageHelper:
            'Exclua a imagem relacionada ao aplicativo. A tarefa não será encerrada se a exclusão falhar.',
        requireMemory: 'Requisito de Memória',
        supportedArchitectures: 'Arquiteturas Suportadas',
        link: 'Link',
        showCurrentArch: 'Aplicações da arquitetura atual do servidor',
        syncLocalApp: 'Sincronizar Aplicativo Local',
        memoryRequiredHelper: 'O aplicativo atual requer {0} de memória',
        gpuConfig: 'Ativar Suporte a GPU',
        gpuConfigHelper:
            'Certifique-se de que a máquina possui uma GPU NVIDIA e tenha os drivers NVIDIA e NVIDIA Docker Container Toolkit instalados',
        webUI: 'Endereço de Acesso Web',
        webUIPlaceholder: 'Exemplo: example.com:8080/login',
        defaultWebDomain: 'Endereço de Acesso Padrão',
        defaultWebDomainHepler: 'Se a porta do aplicativo for 8080, o endereço será http(s)://endereço padrão:8080',
        webUIConfig:
            'O nó atual não tem um endereço de acesso padrão configurado. Por favor, defina-o nos parâmetros do aplicativo ou vá para as configurações do painel para configurar!',
        toLink: 'Ir para',
        customAppHelper:
            'Antes de instalar um pacote de loja de aplicativos personalizado, certifique-se de que não há aplicativos instalados.',
        forceUninstall: 'Desinstalação Forçada',
        syncCustomApp: 'Sincronizar Aplicativo Personalizado',
        ignoreAll: 'Ignorar todas as versões subsequentes',
        ignoreVersion: 'Ignorar versão especificada',
        specifyIP: 'Vincular IP do Host',
        specifyIPHelper:
            'Defina o endereço do host/interface de rede para vincular a porta (se você não tiver certeza sobre isso, por favor, não preencha)',
        uninstallDeleteBackup: 'Desinstalar Aplicativo - Excluir Backup',
        uninstallDeleteImage: 'Desinstalar Aplicativo - Excluir Imagem',
        upgradeBackup: 'Fazer Backup do Aplicativo Antes de Atualizar',
        upgradeDeleteImage: 'Atualizar Aplicativo - Excluir Imagem Antiga',
        installAllowPort: 'Abrir acesso externo à porta por padrão ao instalar aplicativos',
        noAppHelper:
            'Nenhuma aplicação detectada, por favor vá ao centro de tarefas para visualizar o log de sincronização da loja de aplicativos',
        isEdirWarn: 'Foram detectadas alterações no arquivo docker-compose.yml. Revise a comparação.',
    },
    website: {
        primaryDomain: 'Domínio principal',
        otherDomains: 'Outros domínios',
        static: 'Estático',
        deployment: 'Implantação',
        supportUpType:
            'Apenas o formato de arquivo .tar.gz é suportado, e o pacote compactado deve conter o arquivo {0}.json',
        proxy: 'Proxy reverso',
        alias: 'Alias',
        ftpUser: 'Conta FTP',
        ftpPassword: 'Senha FTP',
        ftpHelper:
            'Após criar um site, uma conta FTP correspondente será criada e o diretório FTP será vinculado ao diretório do site.',
        remark: 'Observação',
        groupSetting: 'Gerenciamento de grupos',
        createGroup: 'Criar grupo',
        appNew: 'Novo Aplicativo',
        appInstalled: 'Aplicativo instalado',
        delete: 'Excluir site',
        deleteApp: 'Excluir Aplicativo',
        deleteBackup: 'Excluir Backup',
        domain: 'Domínio',
        domainHelper: 'Um domínio por linha.\nSuporta curinga "*" e endereço IP.\nSuporta adição de porta.',
        addDomain: 'Adicionar',
        domainConfig: 'Domínios',
        defaultDoc: 'Documento padrão',
        perserver: 'Concorrência',
        perserverHelper: 'Limitar a concorrência máxima do site atual',
        perip: 'IP único',
        peripHelper: 'Limitar o número máximo de acessos simultâneos a um único IP',
        rate: 'Limites de tráfego',
        rateLimit: 'Limite de taxa por requisição',
        rateHelper: 'Limitar o fluxo de cada requisição (unidade: KB)',
        rateLimitHelper: 'Limita a taxa de transferência por requisição (unidade: KB/s)',
        limitHelper: 'Habilitar controle de fluxo',
        other: 'Outro',
        currentSSL: 'Certificado atual',
        dnsAccount: 'Conta DNS',
        applySSL: 'Solicitação de certificado',
        SSLList: 'Lista de certificados',
        createDnsAccount: 'Conta DNS',
        aliyun: 'Aliyun',
        aliEsa: 'Aliyun ESA',
        awsRoute53: 'Amazon Route 53',
        manual: 'Análise manual',
        key: 'Chave',
        check: 'Ver',
        acmeAccountManage: 'Contas ACME',
        email: 'Email',
        acmeAccount: 'Conta ACME',
        provider: 'Método de verificação',
        dnsManual: 'Resolução manual',
        expireDate: 'Data de expiração',
        brand: 'Organização',
        deploySSL: 'Implantação',
        deploySSLHelper: 'Tem certeza de que deseja implantar o certificado?',
        ssl: 'Certificado | Certificados',
        dnsAccountManage: 'Provedores DNS',
        renewSSL: 'Renovar',
        renewHelper: 'Tem certeza de que deseja renovar o certificado?',
        renewSuccess: 'Certificado renovado',
        enableHTTPS: 'Habilitar',
        aliasHelper: 'Alias é o nome do diretório do site',
        lastBackupAt: 'Último backup realizado em',
        null: 'nenhum',
        nginxConfig: 'Configuração Nginx',
        websiteConfig: 'Configurações do site',
        proxySettings: 'Configurações de Proxy',
        advancedSettings: 'Configurações Avançadas',
        cacheSettings: 'Configurações de Cache',
        sniSettings: 'Configurações de SNI',
        basic: 'Básico',
        source: 'Configuração',
        security: 'Segurança',
        nginxPer: 'Ajuste de desempenho',
        neverExpire: 'Nunca',
        setDefault: 'Definir como padrão',
        deleteHelper: 'O status do aplicativo relacionado está anômalo, por favor verifique',
        toApp: 'Ir para a lista de aplicativos instalados',
        cycle: 'Ciclo',
        frequency: 'Frequência',
        ccHelper:
            'Solicitar cumulativamente a mesma URL mais de {1} vezes em {0} segundos, aciona a defesa CC, bloqueia este IP',
        mustSave: 'A modificação precisa ser salva para ter efeito',
        fileExt: 'Extensão de arquivo',
        fileExtBlock: 'Lista negra de extensões de arquivo',
        value: 'valor',
        enable: 'Habilitar',
        proxyAddress: 'Endereço Proxy',
        proxyHelper: 'Exemplo: 127.0.0.1:8080',
        forceDelete: 'Excluir forçadamente',
        forceDeleteHelper: 'A exclusão forçada ignorará erros durante o processo de exclusão e excluirá os metadados.',
        deleteAppHelper: 'Excluir aplicativos associados e backups de aplicativos ao mesmo tempo',
        deleteBackupHelper: 'Excluir também backups do site.',
        deleteDatabaseHelper: 'Também excluir o banco de dados associado ao site',
        deleteConfirmHelper:
            'A operação de exclusão não pode ser desfeita. Digite <span style="color:red"> "{0}" </span> para confirmar a exclusão.',
        staticPath: 'O diretório principal correspondente é ',
        limit: 'Plano',
        blog: 'Fórum/Blog',
        imageSite: 'Site de Imagens',
        downloadSite: 'Site de Download',
        shopSite: 'Loja',
        doorSite: 'Portal',
        qiteSite: 'Empresarial',
        videoSite: 'Site de Vídeo',
        errLog: 'Erro de log',
        stopHelper:
            'Após parar o site, ele não poderá ser acessado normalmente, e o usuário verá a página de parada do site atual ao visitar. Deseja continuar?',
        startHelper: 'Após ativar o site, os usuários podem acessar o conteúdo do site normalmente, deseja continuar?',
        sitePath: 'Diretório',
        siteAlias: 'Alias do site',
        primaryPath: 'Diretório raiz',
        folderTitle: 'O site contém principalmente as seguintes pastas',
        wafFolder: 'Regras de firewall',
        indexFolder: 'Diretório raiz do site',
        sslFolder: 'Certificado do site',
        enableOrNot: 'Habilitar',
        oldSSL: 'Certificado existente',
        manualSSL: 'Importar certificado',
        select: 'Selecionar',
        selectSSL: 'Selecionar certificado',
        privateKey: 'Chave (KEY)',
        certificate: 'Certificado (formato PEM)',
        HTTPConfig: 'Opções HTTP',
        HTTPSOnly: 'Bloquear requisições HTTP',
        HTTPToHTTPS: 'Redirecionar para HTTPS',
        HTTPAlso: 'Permitir requisições HTTP diretas',
        sslConfig: 'Opções SSL',
        disableHTTPS: 'Desabilitar HTTPS',
        disableHTTPSHelper: 'Desabilitar HTTPS removerá a configuração do certificado relacionada, deseja continuar?',
        SSLHelper:
            'Nota: Não use certificados SSL para sites ilegais.\nSe o acesso HTTPS não funcionar após a ativação, verifique se o grupo de segurança liberou corretamente a porta 443.',
        SSLConfig: 'Configurações do certificado',
        SSLProConfig: 'Configurações do protocolo',
        supportProtocol: 'Versão do protocolo',
        encryptionAlgorithm: 'Algoritmo de criptografia',
        notSecurity: '(não seguro)',
        encryptHelper:
            "O Let's Encrypt tem um limite de frequência para a emissão de certificados, mas é suficiente para atender necessidades normais. Operações muito frequentes podem causar falha na emissão. Para restrições específicas, consulte <a target='_blank' href='https://letsencrypt.org/zh-cn/docs/rate-limits/'>documentação oficial</a>",
        ipValue: 'Valor',
        ext: 'Extensão de arquivo',
        wafInputHelper: 'Digite os dados por linha, uma linha por vez',
        data: 'dados',
        ever: 'permanente',
        nextYear: 'Um ano depois',
        noLog: 'Nenhum log encontrado',
        defaultServer: 'Site padrão',
        noDefaultServer: 'Não definido',
        defaultServerHelper:
            'Após definir o site padrão, todos os nomes de domínio e IPs desvinculados serão redirecionados para o site padrão\nIsso pode evitar eficazmente a resolução maliciosa\nNo entanto, isso também pode causar falha na interceptação de nomes de domínio não autorizados pelo WAF',
        restoreHelper: 'Tem certeza de que deseja restaurar com este backup?',
        websiteDeploymentHelper: 'Use um aplicativo instalado ou crie um novo aplicativo para criar um site.',
        websiteStatictHelper: 'Crie um diretório de site no host.',
        websiteProxyHelper:
            'Use proxy reverso para redirecionar um serviço existente. Por exemplo, se um serviço estiver instalado e rodando na porta 8080, o endereço do proxy será "http://127.0.0.1:8080".',
        runtimeProxyHelper: 'Use o ambiente de execução do site para criar um site.',
        runtime: 'Ambiente de execução',
        deleteRuntimeHelper:
            'O aplicativo de Runtime precisa ser excluído junto com o site, por favor, manuseie com cuidado',
        proxyType: 'Tipo de rede',
        unix: 'Rede Unix',
        tcp: 'Rede TCP/IP',
        phpFPM: 'Configuração FPM',
        phpConfig: 'Configuração PHP',
        updateConfig: 'Atualizar configurações',
        isOn: 'Ligado',
        isOff: 'Desligado',
        rewrite: 'Pseudo-estático',
        rewriteMode: 'Plano',
        current: 'Atual',
        rewriteHelper:
            'Se configurar pseudo-estático e o site se tornar inacessível, tente reverter para as configurações padrão.',
        runDir: 'Diretório de execução',
        runUserHelper:
            'Para sites implantados através do ambiente de execução PHP, você deve definir o proprietário e o grupo dos arquivos e pastas de índice e subdiretórios para 1000. Para o ambiente PHP local, consulte as configurações de usuário e grupo do PHP-FPM local',
        userGroup: 'Usuário/Grupo',
        uGroup: 'Grupo',
        proxyPath: 'Caminho do proxy',
        proxyPass: 'URL de destino',
        cache: 'Cache',
        cacheTime: 'Duração do cache',
        enableCache: 'Habilitar cache',
        proxyHost: 'Host do proxy',
        disabled: 'Parado',
        startProxy: 'Isso iniciará o proxy reverso. Deseja continuar?',
        stopProxy: 'Isso interromperá o proxy reverso. Deseja continuar?',
        sourceFile: 'Fonte',
        proxyHelper1: 'Ao acessar este diretório, o conteúdo da URL de destino será retornado e exibido.',
        proxyPassHelper: 'A URL de destino deve ser válida e acessível.',
        proxyHostHelper: 'Passe o nome de domínio no cabeçalho da requisição para o servidor proxy.',
        modifier: 'Regras de correspondência',
        modifierHelper:
            'Exemplo: "=" é correspondência exata, "~" é correspondência regular, "^~" corresponde ao início do caminho, etc.',
        replace: 'Substituições de texto',
        replaceHelper:
            'O recurso de substituição de texto do nginx permite a substituição de strings no conteúdo da resposta durante o proxy reverso. É comumente usado para modificar links, endereços de API, etc., em arquivos HTML, CSS, JavaScript e outros retornados pelo backend. Suporta correspondência de expressão regular para necessidades complexas de substituição de conteúdo.',
        addReplace: 'Adicionar',
        replaced: 'String de busca (não pode estar vazia)',
        replaceText: 'Substituir por string',
        replacedErr: 'A string de busca não pode estar vazia',
        replacedErr2: 'A string de busca não pode ser repetida',
        replacedListEmpty: 'Nenhuma regra de substituição de texto',
        proxySslName: 'Nome SNI do Proxy',
        basicAuth: 'Autenticação básica',
        editBasicAuthHelper:
            'A senha é criptografada de forma assimétrica e não pode ser exibida. A edição requer a redefinição da senha',
        antiLeech: 'Anti-leech',
        extends: 'Extensão',
        browserCache: 'Cache',
        noModify: 'Não Modificar',
        serverCache: 'Cache do servidor',
        leechLog: 'Registrar log anti-leech',
        accessDomain: 'Domínios permitidos',
        leechReturn: 'Recurso de resposta',
        noneRef: 'Permitir referrer vazio',
        disable: 'não habilitado',
        disableLeechHelper: 'Se deseja desabilitar o anti-leech',
        disableLeech: 'Desabilitar anti-leech',
        ipv6: 'Ouvir IPv6',
        leechReturnError: 'Por favor, preencha o código de status HTTP',
        blockedRef: 'Permitir Referer não padrão',
        accessControl: 'Controle anti-leech',
        leechcacheControl: 'Controle de cache',
        logEnableControl: 'Registrar solicitações de ativos estáticos',
        leechSpecialValidHelper:
            "Quando 'Permitir Referer vazio' estiver ativado, as solicitações sem Referer (acesso direto etc.) não serão bloqueadas; ao ativar 'Permitir Referer não padrão', qualquer Referer que não comece com http/https será permitido (solicitações de cliente etc.).",
        leechInvalidReturnHelper: 'Código de status HTTP retornado após bloquear solicitações de hotlink',
        leechlogControlHelper:
            'Registra solicitações de ativos estáticos; geralmente desativado em produção para evitar logs excessivos e ruidosos',
        selectAcme: 'Selecionar conta Acme',
        imported: 'Criado manualmente',
        importType: 'Tipo de importação',
        pasteSSL: 'Colar código',
        localSSL: 'Selecionar arquivo do servidor',
        privateKeyPath: 'Caminho do arquivo da chave privada',
        certificatePath: 'Caminho do arquivo do certificado',
        ipWhiteListHelper:
            'O papel da lista de permissões de IP: todas as regras são inválidas para a lista de permissões de IP',
        redirect: 'Redirecionar',
        sourceDomain: 'Domínio de origem',
        targetURL: 'Endereço da URL de destino',
        keepPath: 'Parâmetros URI',
        path: 'caminho',
        redirectType: 'Tipo de redirecionamento',
        redirectWay: 'Modo',
        keep: 'manter',
        notKeep: 'Não manter',
        redirectRoot: 'Redirecionar para a página inicial',
        redirectHelper: 'Redirecionamento permanente 301, redirecionamento temporário 302',
        changePHPVersionWarn:
            'Trocar a versão do PHP vai excluir o contêiner PHP original (o código do site montado não será perdido), continuar?',
        changeVersion: 'Trocar versão',
        retainConfig: 'Deseja manter os arquivos php-fpm.conf e php.ini?',
        runDirHelper2:
            'Por favor, certifique-se de que o diretório de execução secundário esteja no diretório do índice',
        openrestyHelper:
            'Porta HTTP padrão do OpenResty: {0} Porta HTTPS: {1}, o que pode afetar o acesso ao domínio do site e o redirecionamento forçado para HTTPS',
        primaryDomainHelper: 'Exemplo: exemplo.com ou exemplo.com:8080',
        acmeAccountType: 'Tipo de conta',
        keyType: 'Algoritmo de chave',
        tencentCloud: 'Tencent Cloud',
        containWarn: 'O nome de domínio contém o domínio principal, por favor, reentre',
        rewriteHelper2:
            'Aplicações como o WordPress instaladas a partir da loja de aplicativos geralmente vêm com configuração de pseudo-estática predefinida. Reconfigurá-las pode causar erros.',
        websiteBackupWarn:
            'Somente suporta importar backups locais, importar backups de outras máquinas pode causar falha na recuperação',
        ipWebsiteWarn:
            'Sites com IP como nomes de domínio precisam ser configurados como site padrão para serem acessados normalmente',
        hstsHelper: 'Ativar HSTS pode aumentar a segurança do site',
        includeSubDomains: 'SubDomains',
        hstsIncludeSubDomainsHelper:
            'Quando ativado, a política HSTS será aplicada a todos os subdomínios do domínio atual.',
        defaultHtml: 'Página padrão',
        website404: 'Página de erro 404 do site',
        domain404: 'O domínio do site não existe',
        indexHtml: 'Índice para site estático',
        stopHtml: 'Site parado',
        indexPHP: 'Índice para site PHP',
        sslExpireDate: 'Data de expiração do certificado',
        website404Helper:
            'A página de erro 404 do site suporta apenas sites com ambiente de execução PHP e sites estáticos',
        sni: 'SNI de origem',
        sniHelper:
            'Quando o proxy reverso de backend for HTTPS, você pode precisar configurar o SNI de origem. Consulte a documentação do provedor de serviços CDN para mais detalhes.',
        proxySslVerify: 'Verificar certificado SSL do backend',
        proxySslVerifyHelper:
            'Quando ativado, o proxy verificará estritamente o certificado SSL do servidor de origem (desativado por padrão).',
        huaweicloud: 'Huawei Cloud',
        createDb: 'Criar Banco de Dados',
        enableSSLHelper: 'A falha ao ativar o SSL não afetará a criação do site.',
        batchAdd: 'Adicionar Domínios em Lote',
        batchInput: 'Entrada em Lote',
        domainNotFQDN: 'Este domínio pode não estar acessível na rede pública',
        domainInvalid: 'Formato de domínio inválido',
        domainBatchHelper:
            'Um domínio por linha, formato: domínio:porta@ssl\nExemplo: example.com:443@ssl ou example.com',
        generateDomain: 'Gerar',
        global: 'Global',
        subsite: 'Subsite',
        subsiteHelper:
            'Um subsite pode selecionar o diretório de um site PHP ou estático existente como seu diretório raiz.',
        deleteSubsite: 'Para excluir o site atual, você deve primeiro excluir o subsite {0}.',
        loadBalance: 'Balanceamento de Carga',
        server: 'Nó',
        algorithm: 'Algoritmo',
        ipHash: 'Hash de IP',
        ipHashHelper:
            'Distribui as solicitações para um servidor específico com base no endereço IP do cliente, garantindo que um cliente específico seja sempre roteado para o mesmo servidor.',
        leastConn: 'Menos Conexões',
        leastConnHelper: 'Envia solicitações para o servidor com o menor número de conexões ativas.',
        leastTime: 'Menor Tempo',
        leastTimeHelper: 'Envia solicitações para o servidor com o menor tempo de conexão ativa.',
        defaultHelper:
            'Método padrão, as solicitações são distribuídas uniformemente para cada servidor. Se o servidor tiver configuração de peso, as solicitações são distribuídas de acordo com o peso especificado. Servidores com pesos mais altos recebem mais solicitações.',
        weight: 'Peso',
        maxFails: 'Máximo de Falhas',
        maxConns: 'Máximo de Conexões',
        strategy: 'Estratégia',
        strategyDown: 'Desativar',
        strategyBackup: 'Backup',
        ipHashBackupErr: 'Hash IP não suporta nós de backup',
        failTimeout: 'Tempo limite de falha',
        failTimeoutHelper:
            'O comprimento da janela de tempo para verificações de integridade do servidor. Quando o número acumulado de falhas atinge o limite dentro deste período, o servidor será removido temporariamente e repetido após a mesma duração. Padrão 10 segundos',
        staticChangePHPHelper: 'Atualmente um site estático, pode ser alterado para um site PHP.',
        proxyCache: 'Cache de Proxy Reverso',
        cacheLimit: 'Limite de Espaço de Cache',
        shareCache: 'Tamanho da Memória de Contagem de Cache',
        cacheExpire: 'Tempo de Expiração do Cache',
        shareCacheHelper: '1M de memória pode armazenar aproximadamente 8000 objetos de cache.',
        cacheLimitHelper: 'Exceder o limite excluirá automaticamente os caches antigos.',
        realIP: 'IP Real',
        ipFrom: 'Fonte do IP',
        ipFromHelper:
            'Ao configurar fontes de IP confiáveis, o OpenResty analisará as informações de IP no cabeçalho HTTP para identificar e registrar com precisão o endereço IP real do visitante, incluindo nos logs de acesso.',
        ipFromExample1:
            'Se o frontend for uma ferramenta como o Frp, você pode preencher o endereço IP do Frp, como 127.0.0.1.',
        ipFromExample2: 'Se o frontend for um CDN, você pode preencher o intervalo de IPs do CDN.',
        ipFromExample3:
            'Se não tiver certeza, você pode preencher 0.0.0.0/0 (IPv4) ou ::/0 (IPv6). [Nota: Permitir qualquer fonte de IP não é seguro.]',
        http3Helper:
            'O HTTP/3 é uma versão atualizada do HTTP/2, fornecendo velocidades de conexão mais rápidas e melhor desempenho. No entanto, nem todos os navegadores suportam HTTP/3, e ativá-lo pode fazer com que alguns navegadores não consigam acessar o site.',
        cors: 'Compartilhamento de Recursos de Origem Cruzada (CORS)',
        enableCors: 'Habilitar CORS',
        allowOrigins: 'Domínios permitidos',
        allowMethods: 'Métodos de solicitação permitidos',
        allowHeaders: 'Cabeçalhos de solicitação permitidos',
        allowCredentials: 'Permitir envio de cookies',
        preflight: 'Resposta rápida a solicitação de preflight',
        preflightHleper:
            'Quando habilitado, quando o navegador envia uma solicitação de preflight de origem cruzada (solicitação OPTIONS), o sistema retornará automaticamente um código de status 204 e definirá os cabeçalhos de resposta de origem cruzada necessários',
        changeDatabase: 'Alterar Banco de Dados',
        changeDatabaseHelper1: 'A associação do banco de dados é usada para backup e restauração do site.',
        changeDatabaseHelper2: 'Alternar para outro banco de dados pode tornar backups anteriores irrecuperáveis.',
        saveCustom: 'Salvar como Modelo',
        rainyun: 'Rainyun',
        volcengine: 'Volcengine',
        runtimePortHelper: 'O ambiente de runtime atual possui várias portas. Por favor, selecione uma porta de proxy.',
        runtimePortWarn: 'O ambiente de execução atual não possui portos, não é possível proxiar',
        cacheWarn: 'Por favor, desligue o interruptor de cache no proxy reverso primeiro',
        loadBalanceHelper:
            'Após criar o balanceamento de carga, vá para "Proxy Reverso", adicione um proxy e configure o endereço de backend para: http://<nome do balanceamento de carga>.',
        useProxy: 'Usar Proxy',
        useProxyHelper: 'Usar o endereço do servidor proxy nas configurações do painel',
        westCN: 'West Digital',
        openBaseDir: 'Prevenir Ataques entre Sites',
        openBaseDirHelper:
            'open_basedir é usado para restringir o caminho de acesso a arquivos PHP, ajudando a prevenir acesso entre sites e aumentar a segurança',
        serverCacheTime: 'Tempo de Cache do Servidor',
        serverCacheTimeHelper:
            'O tempo que uma requisição é armazenada em cache no servidor. Durante este período, requisições idênticas retornarão o resultado em cache diretamente, sem pedir ao servidor de origem.',
        browserCacheTime: 'Tempo de Cache do Navegador',
        browserCacheTimeHelper:
            'O tempo que os recursos estáticos são armazenados em cache localmente no navegador, reduzindo requisições redundantes. Os usuários usarão o cache local diretamente antes de expirar ao atualizar a página.',
        donotLinkeDB: 'Não Vincular Banco de Dados',
        toWebsiteDir: 'Entrar no Diretório do Site',
        execParameters: 'Parâmetros de Execução',
        extCommand: 'Comando Suplementar',
        mirror: 'Fonte de Espelho',
        execUser: 'Usuário Executando',
        execDir: 'Diretório de Execução',
        packagist: 'Espelho Completo da China',
        batchOperate: 'Operação em Lote',
        batchOperateHelper: 'Lote {0} sites, continuar operação?',
        stream: 'Proxy TCP/UDP',
        streamPorts: 'Portas de escuta',
        streamPortsHelper:
            'Defina o número da porta de escuta externa, os clientes acessarão o serviço através desta porta, separados por vírgulas, por exemplo: 5222,5223',
        streamHelper: 'Encaminhamento de Portas e Balanceamento de Carga TCP/UDP',
        udp: 'Habilitar UDP',
        syncHtmlHelper: 'Sincronizar com PHP e sites estáticos',
        wafValueHelper: 'Valor',
        parentWbeiste: 'Site pai',
        cacheExpireJHelper: 'O cache será excluído se não houver acesso após o tempo de expiração',
    },
    php: {
        short_open_tag: 'Suporte para short tags',
        max_execution_time: 'Tempo máximo de execução do script',
        max_input_time: 'Tempo máximo de entrada de dados',
        memory_limit: 'Limite de memória para scripts',
        post_max_size: 'Tamanho máximo para dados enviados via POST',
        file_uploads: 'Permitir upload de arquivos',
        upload_max_filesize: 'Tamanho máximo permitido para upload de arquivos',
        max_file_uploads: 'Número máximo de arquivos permitidos para upload simultâneo',
        default_socket_timeout: 'Tempo limite do socket',
        error_reporting: 'Nível de relatório de erros',
        display_errors: 'Exibir informações detalhadas de erro',
        cgi_fix_pathinfo: 'Ativar suporte a pathinfo',
        date_timezone: 'Fuso horário',
        disableFunction: 'Desabilitar função',
        disableFunctionHelper:
            'Informe a função a ser desabilitada, como exec. Para múltiplas funções, separe com vírgulas',
        uploadMaxSize: 'Limite de upload',
        indexHelper:
            'Para garantir o funcionamento normal do site em PHP, coloque o código no diretório de índice e evite renomeações',
        extensions: 'Modelos de extensão',
        extension: 'Extensão',
        extensionHelper: 'Para múltiplas extensões, separe com vírgulas',
        toExtensionsList: 'Ver lista de extensões',
        containerConfig: 'Configuração do Contêiner',
        containerConfigHelper:
            'Variáveis de ambiente e outras informações podem ser modificadas em Configuração - Configuração do Contêiner após a criação',
        dateTimezoneHelper: 'Exemplo: TZ=Asia/Shanghai (Adicione conforme necessário)',
        extensionsHelper: 'Para várias extensões, separe por vírgulas',
    },
    nginx: {
        serverNamesHashBucketSizeHelper: 'Tamanho da tabela hash dos nomes de servidor',
        clientHeaderBufferSizeHelper: 'Tamanho do buffer de cabeçalho solicitado pelo cliente',
        clientMaxBodySizeHelper: 'Tamanho máximo de upload',
        keepaliveTimeoutHelper: 'Tempo limite da conexão',
        gzipMinLengthHelper: 'Tamanho mínimo para compressão',
        gzipCompLevelHelper: 'Nível de compressão',
        gzipHelper: 'Ativar compressão na transmissão',
        connections: 'Conexões ativas',
        accepts: 'Accepts',
        handled: 'Handled',
        requests: 'Requests',
        reading: 'Reading',
        writing: 'Writing',
        waiting: 'Waiting',
        status: 'Status atual',
        configResource: 'Configuração',
        saveAndReload: 'Salvar e recarregar',
        clearProxyCache: 'Limpar cache do proxy reverso',
        clearProxyCacheWarn:
            'Todos os sites com cache configurado serão afetados e o "OpenResty" será reiniciado. Deseja continuar?',
        create: 'Criar Módulo',
        update: 'Editar Módulo',
        params: 'Parâmetros',
        packages: 'Pacotes',
        script: 'Script',
        module: 'Módulo',
        build: 'Construir',
        buildWarn:
            'A compilação local de módulos consome CPU e memória. Módulos estáticos também recompilam e reiniciam o OpenResty. Continuar?',
        buildPurposeHint:
            'Os módulos dinâmicos entram em vigor via hot reload após a compilação (sem reiniciar o contêiner); se houver módulos estáticos, a imagem será totalmente reconstruída e o contêiner recriado',
        buildMode: 'Modo de compilação',
        buildModeDynamic: 'Dinâmico',
        buildModeStatic: 'Estático',
        buildStatus: 'Status da compilação',
        loadOrder: 'Ordem de carregamento',
        modulesToBuild: 'Módulos dinâmicos (hot reload após a compilação, sem reiniciar o contêiner)',
        staticModules: 'Módulos estáticos',
        staticModulesHelper: 'A compilação reconstruirá todos os módulos e reiniciará o OpenResty',
        forceBuild: 'Recompilar sem cache',
        buildFailed: 'A última compilação falhou',
        pending: 'Pendente',
        ready: 'Pronto',
        failed: 'Falhou',
        dynamicUnsupported: 'A compilação dinâmica não é suportada na versão atual do OpenResty',
        moduleDynamicUnsupported: 'Os parâmetros deste módulo não suportam compilação dinâmica',
        mirrorUrl: 'Fonte de Software',
        paramsHelper: 'Por exemplo: --add-module=/tmp/ngx_brotli; o modo dinâmico converte automaticamente',
        packagesHelper: 'Por exemplo: git,curl separados por vírgulas',
        scriptHelper:
            'Script a ser executado antes da compilação, geralmente para baixar o código-fonte do módulo, instalar dependências, etc.',
        buildHelper:
            'Módulos dinâmicos são carregados pela configuração após a compilação; módulos estáticos ainda recompilam o OpenResty.',
        defaultHttps: 'Proteção contra adulteração HTTPS',
        defaultHttpsHelper1: 'A ativação desta opção pode resolver problemas de adulteração HTTPS.',
        sslRejectHandshake: 'Rejeitar handshake SSL padrão',
        sslRejectHandshakeHelper:
            'Ativar isso pode evitar vazamento de certificados, definir um site padrão invalidará esta configuração',
    },
    ssl: {
        create: 'Solicitar',
        provider: 'Tipo',
        manualCreate: 'Criado manualmente',
        acmeAccount: 'Conta ACME',
        resolveDomain: 'Resolver nome de domínio',
        err: 'Erro',
        value: 'Valor do registro',
        dnsResolveHelper: 'Vá ao provedor de serviço de DNS para adicionar os seguintes registros de resolução:',
        detail: 'Detalhes',
        msg: 'Informação',
        ssl: 'Certificado',
        key: 'Chave privada',
        startDate: 'Data de início',
        organization: 'Organização emissora',
        renewConfirm: 'Isso renovará um novo certificado para o domínio {0}. Deseja continuar?',
        autoRenew: 'Renovação automática',
        autoRenewHelper: 'Renova automaticamente 30 dias antes da expiração',
        renewSuccess: 'Renovação bem-sucedida',
        renewWebsite: 'Este certificado está associado aos seguintes sites e será aplicado a eles simultaneamente',
        createAcme: 'Criar conta',
        acmeHelper: 'A conta ACME é usada para solicitar certificados gratuitos',
        upload: 'Importar',
        applyType: 'Tipo',
        apply: 'Renovar',
        applyStart: 'Início da solicitação do certificado',
        getDnsResolve: 'Obtendo o valor de resolução DNS, por favor, aguarde...',
        selfSigned: 'CA autoassinado',
        ca: 'Autoridade certificadora',
        commonName: 'Nome comum',
        caName: 'Nome da autoridade certificadora',
        company: 'Nome da organização',
        department: 'Nome da unidade organizacional',
        city: 'Nome da localidade',
        province: 'Estado ou província',
        country: 'Nome do país (código de 2 letras)',
        commonNameHelper: 'Por exemplo, ',
        selfSign: 'Emitir certificado',
        days: 'Período de validade',
        domainHelper: 'Um domínio por linha, suporta * e endereços IP',
        pushDir: 'Enviar o certificado para o diretório local',
        dir: 'Diretório',
        pushDirHelper:
            'O arquivo do certificado "fullchain.pem" e o arquivo de chave "privkey.pem" serão gerados neste diretório.',
        organizationDetail: 'Detalhes da organização',
        fromWebsite: 'Do site',
        dnsMauanlHelper:
            'No modo de resolução manual, você precisa clicar no botão de solicitação após a criação para obter o valor de resolução DNS',
        httpHelper:
            'O uso do modo HTTP requer a instalação do OpenResty e não suporta a solicitação de certificados de domínio curinga.',
        buypassHelper: 'O Buypass não está acessível na China continental',
        googleHelper: 'Como obter EAB HmacKey e EAB kid',
        googleCloudHelper: 'A API do Google Cloud não está acessível na maior parte da China continental',
        skipDNSCheck: 'Pular verificação DNS',
        skipDNSCheckHelper:
            'Marque esta opção apenas se enfrentar problemas de timeout durante a solicitação de certificação.',
        cfHelper: 'Não use a Global API Key',
        deprecated: 'será descontinuado',
        deprecatedHelper:
            'A manutenção foi interrompida e pode ser abandonada em uma versão futura. Use o método Tencent Cloud para análise',
        dnsPodRemoved: 'removido',
        dnsPodRemovedTip:
            'O DnsPod foi removido no lego v5; esta conta não pode ser usada para emissão/renovação de certificados. Por favor, mude para uma conta DNS do TencentCloud.',
        dnsPodRemovedSSLTip:
            'A conta DnsPod vinculada a este certificado não é mais válida no lego v5; a renovação automática falhará. Por favor, troque a conta DNS para TencentCloud.',
        disableCNAME: 'Desativar CNAME',
        disableCNAMEHelper: 'Marque esta opção se o domínio tiver um registro CNAME e a solicitação falhar.',
        nameserver: 'Servidor DNS',
        nameserverHelper: 'Use um servidor DNS personalizado para verificar os nomes de domínio.',
        edit: 'Editar certificado',
        execShell: 'Executar o script após a solicitação de certificação.',
        shell: 'Conteúdo do script',
        shellHelper:
            'O diretório padrão de execução do script é o diretório de instalação do 1Panel. Se um certificado for enviado para o diretório local, o diretório de execução será o diretório de envio do certificado. O tempo limite padrão de execução é de 30 minutos.',
        customAcme: 'Serviço ACME Personalizado',
        customAcmeURL: 'URL do Serviço ACME',
        baiduCloud: 'Baidu Cloud',
        pushNode: 'Sincronizar com Outros Nós',
        pushNodeHelper: 'Enviar para os nós selecionados após a aplicação/renovação',
        fromMaster: 'Envio do Nó Mestre',
        hostedZoneID: 'Hosted Zone ID',
        isIP: 'Certificado de IP',
        useEAB: 'Usar autenticação EAB',
    },
    firewall: {
        create: 'Criar regra',
        edit: 'Editar regra',
        ccDeny: 'Proteção contra CC',
        ipWhiteList: 'Lista de IPs permitidos',
        ipBlockList: 'Lista de IPs bloqueados',
        fileExtBlockList: 'Lista de extensões de arquivo bloqueadas',
        urlWhiteList: 'Lista de URLs permitidas',
        urlBlockList: 'Lista de URLs bloqueadas',
        argsCheck: 'Verificação de parâmetros GET',
        postCheck: 'Verificação de parâmetros POST',
        cookieBlockList: 'Lista de cookies bloqueados',
        dockerHelper:
            'O firewall atual não pode desativar o mapeamento de porta de contêiner. Aplicativos instalados podem ir para a página [Instalados] para editar parâmetros do aplicativo e configurar regras de liberação de porta.',
        iptablesHelper:
            'Detectado que o sistema está usando o firewall {0}. Para mudar para iptables, desinstale-o manualmente primeiro!',
        quickJump: 'Acesso rápido',
        used: 'Usado',
        unUsed: 'Não usado',
        dockerRestart: 'Operações de firewall exigem reinicialização do serviço Docker',
        firewallHelper: 'Firewall do sistema {0}',
        firewallNotStart: 'O firewall do sistema não está habilitado atualmente. Habilite-o primeiro.',
        restartFirewallHelper: 'Esta operação reiniciará o firewall atual. Deseja continuar?',
        stopFirewallHelper: 'Isso fará com que o servidor perca a proteção de segurança. Deseja continuar?',
        startFirewallHelper:
            'Depois que o firewall for habilitado, a segurança do servidor será melhor protegida. Deseja continuar?',
        noPing: 'Desativar ping',
        enableBanPing: 'Bloquear Ping',
        disableBanPing: 'Desbloquear Ping',
        noPingTitle: 'Desativar ping',
        noPingHelper: 'Isso desativará o ping, e o servidor não responderá ao ICMP. Deseja continuar?',
        onPingHelper: 'Isso ativará o ping, permitindo que hackers descubram seu servidor. Deseja continuar?',
        changeStrategy: 'Alterar a estratégia {0}',
        changeStrategyIPHelper1:
            'Altere a estratégia de endereço IP para [negar]. Após definir o endereço IP, o acesso ao servidor será proibido. Deseja continuar?',
        changeStrategyIPHelper2:
            'Altere a estratégia de endereço IP para [permitir]. Após definir o endereço IP, o acesso normal será restaurado. Deseja continuar?',
        changeStrategyPortHelper1:
            'Altere a política de porta para [bloquear]. Após definir a política de porta, o acesso externo será negado. Deseja continuar?',
        changeStrategyPortHelper2:
            'Altere a política de porta para [aceitar]. Após definir a política de porta, o acesso normal será restaurado. Deseja continuar?',
        stop: 'Parar',
        portFormatError: 'Este campo deve ser uma porta válida.',
        portHelper1: 'Várias portas, ex.: 8080 e 8081',
        portHelper2: 'Faixa de portas, ex.: 8080-8089',
        changeStrategyHelper:
            'Alterar a estratégia [{1}] {0} para [{2}]. Após a definição, {0} acessará {2} externamente. Deseja continuar?',
        strategy: 'Estratégia',
        accept: 'Aceitar',
        drop: 'Bloquear',
        anyWhere: 'Qualquer',
        address: 'IPs especificados',
        addressHelper: 'Suporta endereço IP ou segmento de IP',
        allow: 'Permitir',
        deny: 'Negar',
        addressFormatError: 'Este campo deve ser um endereço IP válido.',
        addressHelper1: 'Suporta endereço IP ou intervalo de IP. Por exemplo, "172.16.10.11" ou "172.16.10.0/24".',
        addressHelper2: 'Para vários endereços IP, separe por vírgula. Por exemplo, "172.16.10.11, 172.16.0.0/24".',
        allIP: 'Todos os IPs',
        portRule: 'Regra | Regras',
        forwardRule: 'Regra de redirecionamento de porta | Regras de redirecionamento de porta',
        ipRule: 'Regra de IP | Regras de IP',
        userAgent: 'Filtro User-Agent',
        sourcePort: 'Porta de origem',
        targetIP: 'IP de destino',
        targetPort: 'Porta de destino',
        forwardHelper1:
            'Se você deseja redirecionar para a porta local, o IP de destino deve ser definido como "127.0.0.1".',
        forwardHelper2: 'Deixe o IP de destino em branco para redirecionar para a porta local.',
        forwardPortHelper: 'Suporta intervalos de portas, ex. 8080-8089',
        forwardInboundInterface: 'Interface de Rede de Entrada para Encaminhamento',
        exportHelper: 'Prestes a exportar {0} regras de firewall. Continuar?',
        importSuccess: '{0} regras importadas com sucesso',
        importPartialSuccess: 'Importação concluída: {0} sucesso, {1} falha',
        ipv4Limit: 'A operação atual suporta apenas endereços IPv4',
        basicStatus: 'A cadeia atual {0} não está vinculada, vincule primeiro!',
        baseIptables: 'Serviço iptables',
        forwardIptables: 'Serviço de Encaminhamento de Porta iptables',
        advanceIptables: 'Serviço de Configuração Avançada do iptables',
        initMsg: 'Prestes a inicializar {0}, continuar?',
        initHelper:
            'Detectado que {0} não está inicializado. Clique no botão de inicialização na barra de status superior para configurar!',
        bindHelper:
            'Vincular - As regras de firewall só entrarão em vigor quando o status estiver vinculado. Confirmar?',
        unbindHelper:
            'Desvincular - Quando desvinculado, todas as regras de firewall adicionadas se tornarão inválidas. Prossiga com cautela. Confirmar?',
        whiteList: 'Lista branca',
        portWhiteList: 'Lista branca de portas',
        portWhiteListAlter:
            'As portas na lista branca serão abertas automaticamente ao inicializar ou iniciar o firewall.',
        portWhiteListHelper:
            'O protocolo pode ser especificado, por exemplo 80/tcp ou 443/udp. Se omitido, o padrão é tcp.',
        defaultStrategy: 'A política padrão para a cadeia atual {0} é {1}',
        defaultStrategy2:
            'A política padrão para a cadeia atual {0} é {1}, o status atual é não vinculado. As regras de firewall adicionadas entrarão em vigor após a vinculação!',
        filterRule: 'Regra de Filtro',
        filterHelper:
            'As regras de filtro permitem controlar o tráfego de rede no nível INPUT/OUTPUT. Configure com cuidado para evitar bloquear o sistema.',
        chain: 'Cadeia',
        targetChain: 'Cadeia de Destino',
        sourceIP: 'IP de Origem',
        destIP: 'IP de Destino',
        inboundDirection: 'Direção de Entrada',
        outboundDirection: 'Direção de Saída',
        destPort: 'Porta de Destino',
        action: 'Ação',
        reject: 'Rejeitar',
        sourceIPHelper: 'Formato CIDR, ex. 192.168.1.0/24. Deixe vazio para todos os endereços',
        destIPHelper: 'Formato CIDR, ex. 10.0.0.0/8. Deixe vazio para todos os endereços',
        portHelper: '0 significa qualquer porta',
        allPorts: 'Todas as Portas',
        deleteRuleConfirm: 'Excluirá {0} regras. Continuar?',
        advancedControl: 'Controle avançado',
        advancedControlNotAvailable: 'Atualmente usando firewall {0}; regras avançadas suportam apenas iptables',
        destination: 'Destino',
    },
    runtime: {
        runtime: 'Runtime',
        workDir: 'Diretório de trabalho',
        localHelper: 'Para problemas de instalação em ambiente local e uso em ambiente offline, consulte ',
        versionHelper: 'Versão do PHP, por exemplo, v8.0',
        buildHelper:
            'Quanto mais extensões, maior será o uso de CPU durante a criação da imagem. As extensões podem ser instaladas após a criação do ambiente.',
        openrestyWarn: 'É necessário atualizar o PHP para OpenResty versão 1.21.4.1 ou superior para usar',
        toupgrade: 'Atualizar',
        edit: 'Editar runtime',
        extendHelper:
            'Extensões não listadas podem ser inseridas e selecionadas manualmente. Por exemplo, digite "sockets" e escolha a primeira opção da lista suspensa para visualizar a lista de extensões.',
        rebuildHelper: 'Após editar as extensões, é necessário recriar a aplicação PHP para aplicar as alterações',
        rebuild: 'Recriar Aplicação PHP',
        source: 'Fonte de extensões PHP',
        ustc: 'Universidade de Ciência e Tecnologia da China',
        netease: 'Netease',
        aliyun: 'Alibaba Cloud',
        default: 'Padrão',
        tsinghua: 'Universidade Tsinghua',
        xtomhk: 'Estação de Espelhos XTOM (Hong Kong)',
        xtom: 'Estação de Espelhos XTOM (Global)',
        phpsourceHelper: 'Escolha uma fonte adequada de acordo com o ambiente de rede.',
        appPort: 'Porta da aplicação',
        externalPort: 'Porta externa',
        packageManager: 'Gerenciador de pacotes',
        codeDir: 'Diretório do código',
        appPortHelper: 'A porta usada pela aplicação.',
        externalPortHelper: 'A porta exposta para o ambiente externo.',
        runScript: 'Executar script',
        runScriptHelper:
            'A lista de comandos de inicialização é gerada a partir do arquivo package.json no diretório de origem.',
        open: 'Abrir',
        operatorHelper: 'A operação {0} será realizada no ambiente selecionado. Deseja continuar?',
        taobao: 'Taobao',
        tencent: 'Tencent',
        imageSource: 'Fonte da imagem',
        moduleManager: 'Gerenciamento de Módulos',
        module: 'Módulo',
        nodeOperatorHelper:
            'Deseja {0} o módulo {1}? Esta operação pode causar instabilidade no ambiente, confirme antes de prosseguir.',
        customScript: 'Comando de inicialização personalizado',
        customScriptHelper:
            'Por favor, insira o comando de inicialização completo, por exemplo: npm run start. Para comandos de inicialização do PM2, substitua por pm2-runtime, caso contrário irá falhar ao iniciar.',
        portError: 'Evite repetir a mesma porta.',
        systemRestartHelper:
            'Descrição do status: Interrupção - falha ao adquirir status devido à reinicialização do sistema.',
        javaScriptHelper:
            'Forneça um comando completo de inicialização. Por exemplo, "java -jar halo.jar -Xmx1024M -Xms256M".',
        javaDirHelper: 'O diretório deve conter arquivos jar, subdiretórios também são aceitos.',
        goHelper: 'Forneça um comando completo de inicialização. Por exemplo, "go run main.go" ou "./main".',
        goDirHelper: 'O diretório ou subdiretório deve conter arquivos Go ou binários.',
        pythonHelper:
            'Forneça um comando completo de inicialização. Por exemplo, "pip install -r requirements.txt && python manage.py runserver 0.0.0.0:5000".',
        dotnetHelper: 'Por favor, preencha o comando completo de inicialização, por exemplo, dotnet MyWebApp.dll',
        dirHelper: 'Nota: Preencha o caminho do diretório dentro do contêiner',
        concurrency: 'Esquema de Concorrência',
        loadStatus: 'Status de Carga',
        extraHosts: 'Mapeamento de host',
        extension: 'Extensão',
        installExtension: 'Confirma instalar a extensão {0}',
        loadedExtension: 'Extensão carregada',
        popularExtension: 'Extensão popular',
        uninstallExtension: 'Tem certeza de que deseja desinstalar a extensão {0}',
        phpConfigHelper: 'Alterar a configuração exige reiniciar o ambiente. Deseja continuar',
        operateMode: 'modo de operação',
        dynamic: 'dinâmico',
        static: 'estático',
        ondemand: 'sob demanda',
        dynamicHelper:
            'Ajusta dinamicamente o número de processos; alta flexibilidade para tráfego variável ou baixa memória',
        staticHelper:
            'Número fixo de processos, adequado para tráfego estável e alta concorrência, com maior consumo de recursos',
        ondemandHelper:
            'Processos iniciam e encerram sob demanda; melhor uso de recursos, mas resposta inicial pode ser lenta',
        max_children: 'número máximo de processos permitidos',
        start_servers: 'número de processos ao iniciar',
        min_spare_servers: 'número mínimo de processos ociosos',
        max_spare_servers: 'número máximo de processos ociosos',
        envKey: 'Nome',
        envValue: 'Valor',
        environment: 'Variável de ambiente',
    },
    process: {
        pid: 'ID do Processo',
        ppid: 'ID do Processo Pai',
        numThreads: 'Threads',
        memory: 'Memória',
        diskRead: 'Leitura de Disco',
        diskWrite: 'Escrita de Disco',
        netSent: 'Envio (uplink)',
        netRecv: 'Recebimento (downlink)',
        numConnections: 'Conexões',
        startTime: 'Hora de Início',
        running: 'Executando',
        sleep: 'Dormindo',
        stop: 'Parado',
        idle: 'Ocioso',
        zombie: 'Processo zumbi',
        wait: 'Aguardando',
        lock: 'Travado',
        blocked: 'Bloqueado',
        cmdLine: 'Comando de Inicialização',
        basic: 'Básico',
        mem: 'Memória',
        openFiles: 'Arquivos Abertos',
        env: 'Ambientes',
        noenv: 'Nenhum',
        net: 'Conexões de Rede',
        laddr: 'Endereço/porta de origem',
        raddr: 'Endereço/porta de destino',
        stopProcess: 'Encerrar',
        viewDetails: 'Detalhes',
        stopProcessWarn: 'Tem certeza de que deseja encerrar este processo (PID:{0})?',
        kill: 'Encerrar Processo',
        killNow: 'Encerrar Agora',
        killHelper: 'Encerrar o processo {0} pode fazer com que alguns programas funcionem incorretamente. Continuar?',
        processName: 'Nome do Processo',
    },
    tool: {
        supervisor: {
            loadStatusErr: 'Falha ao recuperar o status do processo, verifique o status do serviço do supervisor.',
            notSupport:
                'Serviço Supervisor não detectado. Vá para a página da biblioteca de scripts para instalar manualmente',
            list: 'Processo daemon | Processos daemon',
            config: 'Configuração do Supervisor',
            primaryConfig: 'Localização do arquivo de configuração principal',
            notSupportCtl:
                'O supervisorctl não foi detectado. Vá para a página da biblioteca de scripts para instalar manualmente.',
            user: 'Usuário',
            command: 'Comando',
            dir: 'Diretório',
            numprocs: 'Nº de processos',
            initWarn:
                'Isso irá modificar o valor "files" na seção "[include"] do arquivo de configuração principal. O diretório de outros arquivos de configuração será: "{diretório de instalação do 1Panel}/1panel/tools/supervisord/supervisor.d/".',
            operatorHelper: 'A operação {1} será realizada em {0}, deseja continuar? ',
            uptime: 'Tempo de execução',
            notStartWarn: 'O Supervisor não foi iniciado. Inicie-o primeiro.',
            serviceName: 'Nome do serviço',
            initHelper:
                'O serviço Supervisor foi detectado, mas não está inicializado. Clique no botão de inicialização na barra de status superior para configurá-lo.',
            serviceNameHelper:
                'Nome do serviço do Supervisor gerenciado pelo systemctl, geralmente supervisor ou supervisord',
            restartHelper:
                'Isso reiniciará o serviço após a inicialização, o que fará com que todos os processos daemon existentes sejam interrompidos.',
            RUNNING: 'Executando',
            STOPPED: 'Parado',
            STOPPING: 'Parando',
            STARTING: 'Iniciando',
            FATAL: 'Falha ao iniciar',
            BACKOFF: 'Exceção ao iniciar',
            ERROR: 'Erro',
            statusCode: 'Código de status',
            manage: 'Gerenciamento',
            autoRestart: 'Reinicialização Automática',
            EXITED: 'Saiu',
            autoRestartHelper: 'Se o programa falhar, reiniciar automaticamente',
            autoStart: 'Início Automático',
            autoStartHelper: 'Se o serviço deve ser iniciado automaticamente após o Supervisor iniciar',
        },
    },
    disk: {
        management: 'Gerenciamento de Disco',
        partition: 'Partição',
        unmount: 'Desmontar',
        unmountHelper: 'Deseja desmontar a partição {0}?',
        mount: 'Montar',
        partitionAlert:
            'O particionamento de disco requer formatação do disco, e os dados existentes serão excluídos. Salve ou tire snapshots dos dados com antecedência.',
        mountPoint: 'Diretório de Montagem',
        systemDisk: 'Disco do Sistema',
        unpartitionedDisk: 'Disco Não Particionado',
        handlePartition: 'Particionar Agora',
        filesystem: 'Sistema de Arquivos',
        unmounted: 'Desmontado',
        cannotOperate: 'Não Pode Operar',
        systemDiskHelper: 'Dica: O disco atual é o disco do sistema, não pode ser operado.',
        autoMount: 'Montagem Automática',
        model: 'Modelo do Dispositivo',
        diskType: 'Tipo de Disco',
        serial: 'Número de Série',
        noFail: 'Falha na montagem não afeta a inicialização do sistema',
    },
    xpack: {
        ldap: {
            source: 'Origem',
            directoryMissing: 'Não encontrado no LDAP',
            localCredentialsManaged:
                'O nome de usuário e a senha são gerenciados pelo LDAP e não podem ser alterados localmente.',
            sources: {
                local: 'Local',
                ldap: 'LDAP',
            },
            importUsers: 'Importar usuários AD/LDAP',
            searchUsersPlaceholder: 'Pesquisar nome de usuário',
            readFromLDAP: 'Leia de LDAP',
            selectedUsers: '{0} selecionado',
            queriedAt: 'Lido em',
            cachedResult: 'Resultado armazenado em cache',
            roleForNewUsers: 'Função para novos usuários',
            selectRole: 'Selecione uma função',
            roleOnlyForNewUsers: 'Uma função é necessária somente quando a importação cria usuários.',
            roleRequiredForNewUsers: 'Selecione uma função para novos usuários LDAP.',
            changedFields: 'Campos alterados',
            importSelected: 'Importação selecionada',
            importAll: 'Importar tudo',
            importPreview: 'Pré-visualização da importação AD/LDAP',
            importCompleted: 'Importação AD/LDAP concluída',
            incompletePreview: 'A leitura do diretório LDAP estava incompleta. Leia LDAP novamente.',
            missingUsersWarning: 'Os usuários ausentes de LDAP serão desabilitados pela sincronização estrita.',
            missingUsersWarningDetail: '{0} usuários LDAP locais não poderão mais fazer login.',
            action: 'Ação',
            reason: 'Razão',
            noImportChanges: 'Nenhuma alteração de importação',
            confirmImport: 'Confirmar importação',
            created: 'Criar',
            updated: 'Atualizar',
            reactivated: 'Reativar',
            unchanged: 'Inalterado',
            conflicts: 'Conflitos',
            missing: 'Desaparecido',
            missingUsersConfirm: 'Usuários {0} ausentes em LDAP serão desabilitados e desconectados. Continuar?',
            strictSyncConfirm: 'Confirme a sincronização estrita',
            status: {
                importable: 'Novo usuário',
                update_available: 'Atualização disponível',
                up_to_date: 'Atualizado',
                conflict: 'Conflito',
            },
            fields: {
                name: 'Nome de usuário',
                externalDN: 'Diretório DN',
                externalID: 'ID externo',
                authSourceStatus: 'Status de autenticação',
            },
            actions: {
                created: 'Criar',
                updated: 'Atualizar',
                reactivated: 'Reativar',
                unchanged: 'Inalterado',
                skipped: 'Ignorado',
                conflicts: 'Conflito',
                conflict: 'Conflito',
                missing: 'Desativar',
                errors: 'Erro',
                error: 'Erro',
            },
        },
        expiresEnterpriseAlert:
            'Lembrete: Sua licença da Enterprise Edition expira em {0} dias. Depois disso, todos os recursos da Enterprise Edition deixarão de ficar disponíveis. Renove a licença para manter o uso contínuo.',
        expiresProAlert:
            'Lembrete: Sua licença da Pro Edition expira em {0} dias. Depois disso, todos os recursos da Pro Edition deixarão de ficar disponíveis. Renove a licença para manter o uso contínuo.',
        menu: 'Pro',
        upage: 'Construtor de Sites com IA',
        proAlert: 'Atualize para comercial para usar este recurso',
        opsReport: {
            name: 'Relatório de Operações',
            overview: 'Visão geral',
            system: 'Execução do host',
            login: 'Login e segurança',
            website: 'Proteção de sites',
            resource: 'Recursos de execução',
            cronjob: 'Tarefas agendadas',
            alert: 'Notificações de alerta',
            history: 'Histórico de exportação',
            setting: 'Configurações',
            page: {
                enterprise: 'Edição Empresarial',
                reportNode: 'Nó do relatório',
                selectReportNode: 'Selecionar nó do relatório',
                currentNode: 'Nó atual',
                scoreMeta: '{0} pontos deduzidos · {1} riscos',
                hostAddress: 'Endereço do host',
                panelVersion: 'Versão do painel',
                cpuCores: 'Núcleos físicos',
                coreUnit: '{0} núcleos',
                memoryTotal: 'Memória total',
                reportDate: 'Data do relatório',
                serverSecurityOverview: 'Visão geral de segurança do servidor',
                securityScore: 'Pontuação de segurança',
                overviewSummary:
                    'Nível de segurança atual: {0}. {1} pontos deduzidos, {2} itens de risco encontrados, {3} objetos verificados.',
                riskDistribution: 'Distribuição de riscos',
                totalDeducted: 'Total deduzido',
                noRiskDeducted: 'Sem deduções',
                scoreTrend: 'Tendência da pontuação',
                scoreLevelSafe: 'Seguro',
                scoreLevelAttention: 'Atenção necessária',
                scoreLevelMediumRisk: 'Risco médio',
                scoreLevelHighRisk: 'Alto risco',
                scoreCategoryHost: 'Recursos do host',
                scoreCategoryLogin: 'Segurança de login',
                scoreCategoryWebsite: 'Sites e certificados',
                scoreCategoryCronjob: 'Tarefas agendadas',
                scoreCategoryResource: 'Recursos de execução',
                scoreDiskHigh: 'Disco {0} uso em {1}%',
                scoreDiskMedium: 'Disco {0} uso em {1}%',
                scoreResourceHigh: '{0} uso atual em {1}%',
                scoreResourceMedium: '{0} uso atual em {1}%',
                scoreLoadMedium: 'Carga atual é {0}',
                scoreMonitorDisabled: 'Monitoramento do host desativado',
                scorePanelLoginFailedHigh: 'Falha no login do painel {0} vezes',
                scorePanelLoginFailedMedium: 'Falha no login do painel {0} vezes',
                scoreSSHLoginFailedHigh: 'Falha no login SSH {0} vezes',
                scoreSSHLoginFailedMedium: 'Falha no login SSH {0} vezes',
                scoreMFADisabled: 'MFA desativado',
                scoreAllowIPsOpen: 'IPs autorizados e domínio vinculado não configurados ou acesso irrestrito',
                scorePanelHTTPSDisabled: 'HTTPS do painel desativado',
                scoreSSHRootLogin: 'Login SSH como Root permitido',
                scoreSSHPasswordAuth: 'Autenticação por senha SSH ativada sem autenticação por chave',
                scoreSSLExpired: 'O certificado {0} expirou',
                scoreSSLHigh: 'Certificado {0} expira em {1} dias',
                scoreSSLMedium: 'Certificado {0} expira em {1} dias',
                scoreWebsiteExpired: 'O site {0} expirou',
                scoreWebsiteExpire: 'Site {0} expira em {1} dias',
                scoreWebsiteHTTP: '{0} não utiliza HTTPS',
                scoreWebsiteStopped: 'Status de {0} anormal',
                scoreWebsiteMonitorUnavailable: 'Monitoramento de sites detectou um site indisponível',
                scoreWebsiteMonitorAvailability:
                    'Disponibilidade das solicitações do monitoramento de sites {0}% está abaixo do limite',
                scoreWebsiteMonitorStatusAbnormal:
                    'O monitoramento de sites está ativado, mas não foi inicializado ou está em um estado anormal',
                scoreWafDisabled: 'WAF desativado e sites não estão protegidos',
                scoreWafHighRiskHit: 'WAF encontrou {0} regras de risco no período do relatório',
                scoreCronjobFailed: '{0} registros de falha de tarefas agendadas nos últimos 7 dias',
                scoreAppFailed: 'Aplicação {0} está anormal',
                scoreAppStopped: 'Aplicação {0} foi parada',
                scoreContainerHigh: 'Contêiner {0} com status anormal',
                scoreContainerExited: 'Contêiner {0} foi parado',
                scoreContainerResource: 'Uso de recursos do contêiner {0} está alto',
                scoreContainerPublicPort: 'Contêiner {0} possui portas expostas publicamente',
                attentionItems: 'Itens de atenção',
                attentionAssets: 'Ativos em atenção',
                riskItems: 'Itens de risco',
                object: 'Objeto',
                description: 'Descrição',
                itemUnit: 'itens',
                recordUnit: 'registros',
                certUnit: 'certificados',
                containerUnit: 'contêineres',
                loginFailed: 'Falhas de login',
                sslExpire: 'Vencimento de certificado',
                abnormalContainer: 'Contêineres anormais',
                statAttentionDesc: '{0} pontos deduzidos',
                statLoginDesc: 'Painel {0} · SSH {1}',
                statSslDesc: '{0} certificados verificados',
                statContainerDesc: '{0} contêineres verificados',
                assetHostDesc: 'Uso máximo de disco {0}%',
                assetWebsiteDesc: '{0} certificados prestes a vencer, {1} sites anormais',
                assetResourceDesc: '{0} aplicações anormais, {1} contêineres anormais',
                assetCronjobDesc: '{0} registros de falha nos últimos 7 dias, {1} tarefas desativadas',
                app: 'Aplicações',
                website: 'Sites',
                websiteSsl: 'Sites / Certificados',
                cronjob: 'Tarefas agendadas',
                container: 'Contêineres',
                sslCertificate: 'Certificados SSL',
                loginSecurity: 'Segurança de login',
                panelLogin: 'Login do painel',
                sshLogin: 'Login SSH',
                failedRecord: 'Registros com falha',
                expired: 'Expirado',
                expiredDays: 'Expirado há {0} dias',
                remainingDays: '{0} · {1} dias restantes',
                enabled: 'Ativado',
                disabled: 'Desativado',
                exportRecordFailed: 'Falha ao salvar registro de exportação',
                hostInfo: 'Informações do host',
                hostname: 'Nome do host',
                osVersion: 'Versão do sistema',
                kernelVersion: 'Versão do kernel',
                arch: 'Arquitetura',
                uptime: 'Tempo de atividade',
                diskUsage: 'Uso de disco',
                mountPoint: 'Ponto de montagem',
                device: 'Dispositivo',
                capacity: 'Capacidade',
                used: 'Usado',
                usageRate: 'Uso',
                memory: 'Memória',
                load: 'Carga',
                maxDiskUsage: 'Uso máximo de disco',
                panelLoginSecurity: 'Segurança de login do painel',
                sshSecurity: 'Segurança SSH do servidor Linux',
                panelFailedRecords: 'Registros de falha de login do painel',
                sshFailedRecords: 'Registros de falha de login SSH',
                location: 'Localização',
                configItem: 'Item de configuração',
                currentValue: 'Valor atual',
                securityEntrance: 'Entrada de segurança',
                configured: 'Configurado',
                notConfigured: 'Não configurado',
                normal: 'Normal',
                needAttention: 'Atenção necessária',
                allowIPs: 'IPs autorizados',
                restricted: 'Restrito',
                unrestricted: 'Sem restrição',
                bindDomain: 'Domínio vinculado',
                accessRestriction: 'Restrição de acesso',
                panelHTTPS: 'HTTPS do painel',
                passwordComplexity: 'Complexidade da senha',
                sshService: 'Serviço SSH',
                running: 'Em execução',
                notRunning: 'Não está em execução',
                listenPort: 'Porta de escuta',
                read: 'Lido',
                rootLogin: 'Login como Root',
                passwordAuth: 'Autenticação por senha',
                keyAuth: 'Autenticação por chave',
                panelLoginFailed: 'Falhas de login do painel',
                sshLoginFailed: 'Falhas de login SSH',
                panelSecurityItems: 'Itens de segurança do painel',
                sshSecurityItems: 'Itens de segurança SSH',
                loginSecurityHealthStatus: 'Saúde da segurança de login',
                adjustSSHSecurity: 'Ajustar segurança SSH',
                viewLoginLogs: 'Ver registros de login',
                riskLevel: 'Nível de risco',
                goConfig: 'Configurar',
                viewMore: 'Ver mais',
                involvedIPs: '{0} IPs envolvidos',
                sessionTimeout: 'Tempo limite da sessão',
                countUnit: 'vezes',
                recent24Hours: 'Últimas 24 horas',
                currentService: 'Serviço atual',
                riskItemsExist: '{0} itens de risco',
                loginHealthRiskDesc:
                    '{0} configurações de risco detectadas. Fortaleça a segurança de login para reduzir o risco de invasão.',
                loginHealthNormalDesc: 'As configurações atuais de login e segurança SSH estão normais',
                loginHealthNormalReason: 'Segurança de login está normal',
                securityEntranceConfiguredDesc:
                    'Entrada de segurança configurada para reduzir a exposição da entrada padrão',
                securityEntranceRiskDesc: 'Entrada de segurança desativada. Oculte a entrada de login padrão',
                allowIPsRestrictedDesc: 'IPs autorizados estão restritos para acesso ao painel',
                allowIPsRiskDesc: 'IPs de acesso sem restrição. Configure IPs autorizados para ambientes públicos',
                bindDomainRestrictedDesc: 'Domínio de acesso vinculado',
                bindDomainRiskDesc: 'Domínio de acesso não vinculado. Restrinja o acesso a um domínio fixo',
                accessRestrictionValue: 'IPs autorizados: {0} / Domínio vinculado: {1}',
                accessRestrictionNormalDesc:
                    'IPs autorizados ou domínio vinculado configurado para restringir origens de acesso ao painel',
                accessRestrictionRiskDesc:
                    'IPs autorizados e domínio vinculado não configurados ou acesso irrestrito. Configure pelo menos um',
                panelHTTPSNormalDesc: 'HTTPS do painel está ativado',
                panelHTTPSRiskDesc: 'HTTPS do painel desativado. O tráfego de login pode estar exposto',
                passwordComplexityNormalDesc: 'Verificação de complexidade de senha está ativada',
                passwordComplexityRiskDesc:
                    'Verificação de complexidade de senha desativada, aumentando o risco de senha fraca',
                sessionTimeoutNormalDesc: 'Tempo limite da sessão está dentro de um intervalo seguro',
                sessionTimeoutRiskDesc: 'Tempo limite da sessão é longo. Limite a duração de sessões inativas',
                sshServiceNormalDesc: 'Serviço SSH está em execução normal',
                sshServiceRiskDesc: 'Serviço SSH não está em execução ou está anormal',
                sshPortNormalDesc: 'Porta SSH alterada da porta padrão',
                sshPortRiskDesc: 'SSH ainda usa a porta padrão 22. Altere quando necessário',
                rootLoginNormalDesc: 'Usuário Root não pode fazer login direto',
                rootLoginRiskDesc: 'Usuário Root pode fazer login direto. Desative esta opção',
                passwordAuthNormalDesc: 'Login por senha SSH está desativado',
                passwordAuthRiskDesc: 'Login por senha está permitido, aumentando o risco de força bruta',
                keyAuthNormalDesc: 'Autenticação por chave SSH está ativada',
                keyAuthRiskDesc: 'Autenticação por chave desativada. Use login por chave',
                websiteOverview: 'Visão geral dos sites',
                primaryDomain: 'Domínio principal',
                expireTime: 'Data de vencimento',
                domain: 'Domínio',
                issuer: 'Emissor',
                autoRenew: 'Renovação automática',
                websiteCount: 'Sites',
                httpsWebsite: 'Sites HTTPS',
                certCount: 'Certificados',
                websiteExpire: 'Vencimento do site',
                database: 'Bancos de dados',
                remoteDatabase: 'Bancos de dados remotos',
                address: 'Endereço',
                containerResourceUsage: 'Uso de recursos dos contêineres',
                spaceUsage: 'Uso de espaço',
                reclaimable: 'Recuperável',
                containerReclaimable: 'Contêineres recuperáveis',
                image: 'Imagens',
                volume: 'Volumes',
                buildCache: 'Cache de build',
                alert: 'Alerta',
                alertConfigured: 'Alertas configurados',
                alertOperations: 'Notificações de alerta',
                alertTaskCount: 'Tarefas de alerta',
                enabledAlertTask: 'Tarefas ativadas',
                disabledAlertTask: 'Tarefas desativadas',
                alertChannels: 'Canais de notificação',
                alertLogCount: 'Registros de alerta',
                alertSuccessRate: 'Taxa de sucesso dos alertas',
                alertFailedLogs: 'Registros de alerta com falha',
                alertPendingLogs: 'Registros pendentes de sincronização',
                alertPending: 'Pendente de sincronização',
                alertTaskStats: 'Estatísticas de tarefas de alerta',
                alertTaskType: 'Tipo de alerta',
                alertLogStatusStats: 'Status de execução do alerta',
                alertHealthNormal: 'Normal',
                alertHealthAttention: 'Atenção necessária',
                alertHealthRisk: 'Alto risco',
                alertHealthSummary: 'Saúde do alerta',
                alertHealthNormalReason:
                    'Tarefas de alerta, canais de notificação e registros de execução estão saudáveis',
                alertNoChannelReason: 'Nenhum canal de notificação está ativado',
                alertFailedLogReason: '{0} registros de alerta com falha encontrados',
                alertPendingReason: '{0} registros de alerta pendentes de sincronização',
                alertDisabledTaskReason: '{0} tarefas de alerta estão desativadas',
                alertNoTaskReason: 'Nenhuma tarefa de alerta configurada',
                goAlertConfig: 'Configuração de alertas',
                goAlertLogs: 'Registros de alertas',
                configureAlertChannel: 'Configurar canais',
                createAlertTask: 'Criar tarefa de alerta',
                viewAlertTasks: 'Ver tarefas de alerta',
                viewFailedAlertLogs: 'Ver registros com falha',
                viewAlertLogs: 'Ver registros de alerta',
                alertChannelSummary: '{0} / {1} canais ativados',
                alertTaskEnabledDesc: '{0} tarefas ativadas',
                alertTaskSummary: '{0} ativadas, {1} desativadas',
                alertLogSummary: '{0} bem-sucedidos, {1} com falha',
                alertPendingDesc: '{0} registros pendentes de sincronização',
                alertLogSuccessDesc: 'Notificação concluída',
                alertLogFailedDesc: 'Verifique a configuração do canal ou o caminho de entrega',
                alertLogPendingDesc: 'Offline ou caminho de sincronização pendente',
                failedAlertLogs: 'Registros de alerta com falha',
                disabledAlertTasks: 'Tarefas de alerta desativadas',
                alertTableDisplayDesc: 'Exibindo {0} de {1}',
                alertMsg: 'Conteúdo do alerta',
                alertMethod: 'Método de alerta',
                alertRule: 'Regra de alerta',
                noAlertTask: 'Nenhuma tarefa de alerta',
                noFailedAlertLog: 'Nenhum registro de alerta com falha',
                noDisabledAlertTask: 'Nenhuma tarefa de alerta desativada',
                alertCronjobType: 'Tarefa agendada: {0}',
                alertAllTargets: 'Todos os alvos',
                alertAllDisks: 'Todos os discos',
                alertAllCertificates: 'Todos os certificados',
                alertAllWebsites: 'Todos os sites',
                alertDiskRuleShort: '{0} excede {1}{2}, {3} vezes por dia',
                alertAverageRuleShort: 'Média de {0} min excede {1}%, {2} vezes por dia',
                alertTimeRuleShort: 'Acionamento em {0} dias, enviar {1} vezes',
                alertSendCountRuleShort: 'Enviar {0} vezes por dia',
                alertConfigInvalid: 'Configuração inválida',
                scoreCategoryAlert: 'Notificações de alerta',
                scoreAlertNoTask: 'Nenhuma tarefa de alerta configurada',
                scoreAlertNoEnabledTask: 'Todas as tarefas de alerta estão desativadas',
                scoreAlertDisabledTask: '{0} tarefas de alerta estão desativadas',
                scoreAlertNoChannel: 'Nenhum canal de notificação de alerta está ativado',
                scoreAlertFailedHigh: '{0} registros de falha de alerta encontrados',
                scoreAlertFailedMedium: '{0} registros de falha de alerta encontrados',
                scoreAlertPending: '{0} registros de alerta pendentes de sincronização',
                statAlertDesc: '{0} tarefas ativadas · {1} canais',
                assetAlertDesc: '{0} registros com falha, {1} registros pendentes de sincronização',
                failedExecutionRecords: 'Registros de execução com falha',
                taskID: 'ID da tarefa',
                executeTime: 'Tempo de execução',
                backupTasks: 'Tarefas de backup',
                systemMetrics: 'Métricas de execução',
                cpu: 'CPU',
                thresholdPercent: 'Limite {0}%',
                recent24HourPeakPercent: 'Pico nas últimas 24h: {0}',
                loadAverage: 'Carga 1 / 5 / 15 min: {0} / {1} / {2}',
                sourceMount: 'Ponto de montagem {0}',
                storageUsage: 'Uso de armazenamento',
                localDisk: 'Disco local',
                highUsagePeriods: 'Períodos de alto uso',
                timeRange: 'Intervalo de tempo',
                threshold: 'Limite',
                duration: 'Duração',
                peak: 'Pico',
                scoring: 'Pontuação',
                counted: 'Contabilizado',
                notCounted: 'Não contabilizado',
                dataSource: 'Fonte de dados',
                noHighUsagePeriod: 'Nenhum período de alto uso',
                monitorDisabledOrNoData: 'Monitoramento do host desativado ou sem dados disponíveis',
                systemHealthStatus: 'Risco de execução do host nas últimas 24h',
                mainReasons: 'Principais motivos',
                viewHostMonitor: 'Ver monitor do host',
                systemHealthAttentionDesc:
                    '{0} itens de risco detectados nas últimas 24 horas. Priorize picos de recursos e uso de disco.',
                systemHealthNormalDesc: 'Métricas de execução do host estiveram normais nas últimas 24 horas',
                monitorEnabled: 'Monitoramento ativado',
                cpuCoreUsage: '{0} / {1} núcleos',
                load1Minute: 'Carga de 1 min',
                diskSpaceUsage: 'Uso de espaço em disco',
                usedCapacity: 'Usado / Total',
                fileSystem: 'Sistema de arquivos',
                resourceTrendSummary: 'Resumo de tendência de recursos',
                last24Hours: 'Últimas 24 horas',
                granularityHour: 'Granularidade: 1 hora',
                current: 'Atual',
                average: 'Média',
                totalItems: '{0} itens',
                to: 'até',
                hoursShort: '{0} h',
                minutesShort: '{0} min',
                websiteStatus: 'Status do site',
                websiteHealthStatus: 'Saúde da proteção do site',
                websiteHealthNormalReason: 'Sites, certificados, WAF e monitoramento de sites estão saudáveis',
                websiteHealthAttentionDesc:
                    '{0} itens de risco detectados. Trate-os em breve para proteger a segurança e disponibilidade do site.',
                websiteHealthNormalDesc: 'Métricas atuais de proteção do site estão normais',
                handleSslRisk: 'Tratar riscos de certificado',
                viewWaf: 'Ver WAF',
                priority: 'Prioridade',
                riskDescription: 'Descrição do risco',
                deductScore: 'Pontuação deduzida',
                remaining: 'Restante',
                wafSourceIpTop: 'IPs de origem WAF TOP5',
                wafAffectedSiteTop: 'Sites afetados TOP5',
                sslRisk: 'Riscos de certificado',
                sslExpiring: 'Certificados a vencer',
                includedInReport: 'Incluído no relatório',
                needRenewal: 'Renovação recomendada',
                fromExpireInfo: 'Das informações de vencimento',
                runningWebsite: 'Sites em execução',
                fromWebsiteStatus: 'Do status da lista de sites',
                stoppedWebsite: 'Sites parados',
                confirmStoppedWebsite: 'Confirme se isso é esperado',
                expiringWebsite: 'Sites a vencer',
                expiringSoon: 'Vencendo em breve',
                none: 'Nenhum',
                noSslRisk: 'Nenhum certificado precisa de tratamento',
                websiteProtection: 'WAF e monitoramento de sites',
                websiteMonitor: 'Monitoramento de sites',
                waf: 'WAF',
                siteAvailability: 'Disponibilidade das solicitações',
                monitoredSites: 'Sites monitorados',
                requestCount: 'Requisições',
                abnormalSites: 'Sites anormais',
                count5xxSource: 'Contagem por requisições 5xx',
                wafIntercept: 'Bloqueios WAF',
                websiteMonitorDisabledOrNoData: 'Monitoramento de sites desativado ou sem dados disponíveis',
                wafDisabledOrNoData: 'WAF desativado ou sem dados de bloqueio disponíveis',
                serviceEnabledButAbnormal: 'Ativado, mas em estado anormal',
                noWafData: 'Nenhum dado de bloqueio WAF',
                sourceIP: 'IP de origem',
                hitCount: 'Detecções',
                level: 'Nível',
                attackType: 'Tipo de ataque',
                requestRatio: 'Proporção de requisições',
                installed: 'Instalado',
                normalRunning: 'Execução normal',
                failedStart: 'Falha na inicialização',
                manualStopped: 'Parado manualmente',
                failed: 'Falha',
                success: 'Sucesso',
                canUpdate: 'Atualizável',
                listSeparator: ', ',
                containerCount: 'Contêineres',
                stopped: 'Parado',
                abnormal: 'Anormal',
                abnormalContainers: 'Contêineres anormais',
                resourceUsage: 'Uso de recursos',
                exposedContainerPorts: 'Portas expostas',
                portMapping: 'Mapeamento de portas',
                risk: 'Risco',
                noAbnormalContainer: 'Nenhum contêiner anormal',
                noExposedContainer: 'Nenhuma porta exposta detectada',
                publicExpose: 'Exposição pública',
                privateExpose: 'Mapeamento privado',
                resourceHealth: 'Saúde dos recursos em execução',
                checkTime: 'Hora da verificação',
                resourceHealthNormalDesc: 'Aplicações, bancos de dados e contêineres estão saudáveis',
                resourceHealthAttentionDesc:
                    '{0} itens de atenção detectados. Priorize recursos parados e portas públicas.',
                resourceHealthRiskDesc:
                    '{0} itens de alto risco detectados. Priorize contêineres anormais ou aplicações com falha.',
                resourceThresholdContainers: 'Contêineres com CPU / memória acima do limite',
                noThresholdExceededContainer: 'Nenhum contêiner ultrapassou o limite',
                triggerMetric: 'Métrica acionada',
                resourceReasonAppFailed: '{0} aplicações falharam ao iniciar',
                resourceReasonAppStopped: '{0} aplicações paradas',
                resourceReasonContainerAbnormal: '{0} contêineres anormais',
                resourceReasonContainerStopped: '{0} contêineres parados',
                resourceReasonPublicPorts: '{0} portas expostas publicamente',
                resourceReasonNormal: 'Aplicações, bancos de dados e contêineres estão saudáveis',
                viewAbnormalContainers: 'Ver contêineres anormais',
                viewExposedPorts: 'Ver portas expostas',
                viewAppResources: 'Ver recursos de apps',
                viewRuntimeResources: 'Ver recursos em execução',
                viewContainerResources: 'Ver recursos de contêineres',
                configuredServices: 'Serviços configurados',
                publicPrivatePorts: '{0} públicos / {1} mapeamentos privados',
                currentDisplayTotal: 'Exibindo {0} de {1}',
                reclaimableSpace: 'Espaço recuperável',
                estimatedReclaimable: 'Recuperável estimado',
                unusedImageSpace: 'Espaço de imagens não usadas',
                stoppedContainerSpace: 'Espaço de contêineres parados',
                unusedVolumeSpace: 'Espaço de volumes não usados',
                buildCacheSpace: 'Cache de build do Docker',
                executionRecords: 'Registros de execução',
                successRate: 'Taxa de sucesso',
                failedJobs: 'Tarefas com falha',
                recentRecoveryPoint: 'Último ponto de recuperação',
                disabledCronjobTasks: 'Tarefas agendadas desativadas',
                remoteCoverage: 'Cobertura remota',
                recent7Days: 'Últimos 7 dias',
                taskTypeStats: 'Estatísticas por tipo de tarefa',
                total: 'Total',
                taskTypeDesc: '{0} ativadas, {1} desativadas',
                failedOrAttentionTasks: 'Tarefas com falha ou em atenção',
                execution: 'Execução',
                latestExecution: 'Última execução',
                remoteBackup: 'Backup remoto',
                localOnly: 'Apenas local',
                covered: 'Coberto',
                noAttentionCronjob: 'Nenhuma tarefa agendada com falha ou em atenção',
                cronjobHealth: 'Saúde das tarefas agendadas',
                cronjobHealthNormalDesc: 'A execução das tarefas e a cobertura de backup estão saudáveis',
                cronjobHealthAttentionDesc:
                    '{0} itens de risco detectados. Priorize tarefas desativadas e cobertura de backup.',
                cronjobHealthRiskDesc: '{0} itens de risco detectados. Priorize tarefas com falha e desativadas.',
                cronjobReasonFailed: '{0} registros com falha',
                cronjobReasonDisabled: '{0} tarefas desativadas',
                cronjobReasonLocalOnlyBackup: '{0} backups somente locais',
                cronjobReasonNormal: 'A execução das tarefas e a cobertura de backup estão normais',
                riskLow: 'Baixo risco',
                viewFailedRecords: 'Ver tarefas com falha',
                viewCronjobTasks: 'Ver tarefas agendadas',
                checkBackupTasks: 'Verificar tarefas de backup',
                generationRule: 'Regras de geração',
                scheduleDaily: 'Diário',
                scheduleDailyDesc: 'Gerar um relatório das últimas 24 horas às 09:00 todos os dias',
                scheduleWeekly: 'Semanal',
                scheduleWeeklyDesc: 'Gerar um relatório dos últimos 7 dias às 09:00 toda segunda-feira',
                scheduleMonthly: 'Mensal',
                scheduleMonthlyDesc: 'Gerar um relatório do mês anterior às 09:00 no dia 1',
                scheduleCurrentDaily: 'Todos os dias às 09:00, gerar relatório das últimas 24 horas · Próximo {0}',
                scheduleCurrentWeekly: 'Toda segunda-feira às 09:00, gerar relatório dos últimos 7 dias · Próximo {0}',
                scheduleCurrentMonthly: 'No dia 1 às 09:00, gerar relatório do mês anterior · Próximo {0}',
                notificationMethod: 'Métodos de notificação',
                channel: 'Canal',
                receiver: 'Destinatário',
                systemThreshold: 'Limite do sistema',
                metric: 'Métrica',
                currentRule: 'Regra atual',
                hostMonitor: 'Monitor do host',
                monitorInterval: 'Intervalo de monitoramento',
                exportSettings: 'Configurações de exportação',
                lastExportReport: 'Último resultado gerado',
                noLastExportReport: 'Nenhum registro de relatório exportado',
                lastExportStatus: 'Último status de exportação',
                exportFile: 'Arquivo exportado',
                generateTime: 'Gerado em',
                fileSize: 'Tamanho do arquivo',
                viewExportHistory: 'Ver histórico de exportação',
                defaultFormat: 'Formato padrão',
                savePath: 'Diretório de salvamento',
                savePathRequired: 'Configure o diretório de salvamento do relatório',
                autoExport: 'Ativar exportação automática',
                autoExportDesc: 'Gerar um relatório de operações automaticamente todos os dias às 09:00 quando ativado',
                autoExportEnabled: 'Exportação automática ativada',
                autoExportDisabled: 'Exportação automática desativada',
                readOnlyPermissionTip:
                    'A conta atual só pode visualizar as configurações do relatório de operações. Entre em contato com um administrador para fazer alterações.',
                refreshing: 'Atualizando',
                exporting: 'Exportando',
                exportFailed: 'Falha ao exportar relatório',
                generating: 'Gerando',
                saved: 'Salvo',
                saveFailed: 'Falha ao salvar configurações',
                generateNow: 'Gerar agora',
                generateSuccess: 'Arquivo de relatório gerado: {0}',
                generateFailed: 'Falha ao gerar relatório',
                enabledStatus: 'Ativado',
                disabledStatus: 'Desativado',
                thresholdRule: 'Limite {0}, acionamento após {1} vezes consecutivas',
                hours: '{0} horas',
                minutes: '{0} minutos',
                seconds: '{0} segundos',
                totalExports: 'Total de exportações',
                successExports: 'Exportações bem-sucedidas',
                failedExports: 'Exportações com falha',
                reportName: 'Nome do relatório',
                exportFormat: 'Formato de exportação',
                operator: 'Operador',
                triggerType: 'Tipo de acionamento',
                filePath: 'Caminho do arquivo',
                manualExport: 'Manual',
                scheduledExport: 'Agendado',
                exportResult: 'Resultado da exportação',
                exportDetail: 'Detalhes da exportação',
                mfa: 'MFA',
                mfaNormalDesc: 'MFA ativado',
                mfaRiskDesc: 'MFA não ativado. Recomendamos ativá-lo para aumentar a segurança da conta',
            },
        },
        user: {
            user: 'Usuário',
            userInfo: 'Informações do Usuário',
            userManage: 'Gerenciamento de Usuários',
            superAdmin: 'Super Administrador',
            superAdminDesc:
                'Possui permissões completas de gerenciamento do sistema e pode gerenciar todos os recursos e configurações.',
            nodeAdmin: 'Administrador de Nó',
            nodeAdminDesc:
                'Possui permissões de gerenciamento para nós especificados e pode gerenciar recursos e configurações dentro desses nós.',
            readOnly: 'Somente leitura',
            readOnlyDesc: 'Tem acesso somente de leitura a todos os recursos e configurações do sistema.',
            bindNode: 'Vincular Nó',
            boundUsers: 'Usuários vinculados',
            role: 'Função',
            roleName: 'Nome',
            permission: 'Permissões',
            permissionDuplicate: 'Apenas uma função pode ser atribuída a cada nó',
            nodeAdminMasterConfirm:
                'As permissões de Administrador de Nó no nó principal são elevadas. Atribua-as com cuidado conforme as necessidades reais de administração.',
            permissionLinkageTip:
                'Permissões relacionadas serão selecionadas automaticamente quando houver dependências; após removê-las manualmente, alguns recursos podem mostrar "O usuário atual não tem permissão".',
            allViewPermissionHelper: 'Concede todas as permissões de visualização do AI Gateway.',
            apiKeyViewPermissionHelper: 'Permite visualizar apenas as API Keys do AI Gateway.',
            masterOnlyPermission: 'Permissão do nó principal',
            masterOnlyPermissionHelper: 'Esta permissão só tem efeito no nó principal.',
            view: 'Visualizar',
            manage: 'Gerenciar',
            authManage: 'Gerenciamento de autenticação',
            auth: {
                providerNavigation: 'Provedores de autenticação',
                defaultNode: 'Nó padrão',
                defaultNodePlaceholder: 'Selecione um nó',
                defaultNodeHelper: 'Somente para novos usuários.',
                defaultNodeRequired: 'Selecione um nó padrão válido.',
                nodesLoadFailed: 'Falha ao carregar os nós. Tente novamente antes de selecionar o nó padrão.',
                nodeHandling: 'Tratamento do nó',
                assignDefaultNode: 'Atribuir nó padrão: {node}',
                keepExistingNode: 'Manter as permissões de nó existentes',
                providers: {
                    ldap: 'AD/LDAP',
                    passkey: 'Passkey',
                    radius: 'Radius',
                    oidc: 'OIDC',
                    saml2: 'SAML2',
                    cas: 'CAS',
                    oauth2: 'OAuth2',
                    dingtalk: 'DingTalk',
                    feishu: 'Feishu',
                    wecom: 'WeCom',
                },
                providerDescriptions: {
                    ldap: 'Compatível com Active Directory, OpenLDAP e outros serviços LDAP',
                    passkey: 'Use credenciais do dispositivo para login sem senha',
                    radius: 'Autenticar o acesso à rede através de um serviço Radius',
                    oidc: 'Conecte o logon único empresarial com OpenID Connect',
                    saml2: 'Use SAML2 para federação de identidade corporativa',
                    cas: 'Conecte um serviço de autenticação centralizado para logon único',
                    oauth2: 'Conecte um serviço de identidade OAuth2 compatível',
                    dingtalk: 'Use a identidade da organização DingTalk e login QR',
                    feishu: 'Use a identidade da organização Feishu e a sincronização de contas',
                    wecom: 'Autenticar com identidade de membro WeCom',
                },
                planned: 'Planejado',
                plannedTitle: 'Configurações de autenticação {0}',
                plannedDesc: 'Este provedor de autenticação está planejado e ainda não está disponível.',
                oidc: {
                    accessMode: 'Modo de conexão',
                    accessModeDesc: 'Use o Discovery padrão sempre que o provedor de identidade oferecer suporte.',
                    actionCreate: 'Criar usuário',
                    actionKeepName: 'Mantenha o nome de usuário atual',
                    actionPending: 'Aguardando resultado',
                    actionReject: 'Rejeitar login',
                    actionUpdate: 'Atualizar informações de identidade',
                    advanced: 'Configurações avançadas',
                    advancedDesc:
                        'Mantenha os padrões seguros, a menos que o provedor exija uma opção de compatibilidade.',
                    assignDefaultRole: 'Atribuir função padrão: {role}',
                    authorizationEndpoint: 'Authorization Endpoint',
                    authorizationEndpointInvalid: 'Insira um Authorization Endpoint válido.',
                    authorizationFlow: 'Fluxo de autorização',
                    automatic: 'Automático',
                    automaticPolicy: 'Política de tratamento automático',
                    automaticPolicyDesc: 'Essas regras são aplicadas pelo back-end e não são opções de administrador.',
                    basic: 'Configurações básicas',
                    basicDesc: 'Selecione o modo do provedor e configure o cliente e o retorno de chamada.',
                    browserTest: 'Teste de login no navegador',
                    browserTestConflict: 'Identidade verificada, mas o nome de usuário está em conflito',
                    browserTestConflictHelper:
                        'O nome de usuário mapeado pertence a outra identidade e não será reivindicado.',
                    browserTestExpired: 'O teste do navegador expirou',
                    browserTestExpiredHelper:
                        'Inicie um novo teste do navegador e conclua a autorização antes que ela expire.',
                    browserTestFailed: 'Falha no teste do navegador',
                    browserTestFailedHelper:
                        'A visualização da identidade não pôde ser concluída. Revise o erro de back-end localizado.',
                    browserTestIsolation:
                        'Isso executa um fluxo real de autorização de ida e volta, mas não cria nem atualiza usuários, não atribui funções e não cria uma sessão autenticada do painel.',
                    browserTestPopupBlocked: 'Permita pop-ups para este site e reinicie o teste do navegador.',
                    browserTestPopupClosed: 'A janela de autorização foi fechada antes da conclusão do teste.',
                    browserTestSuccess: 'Verificação Provider bem-sucedida',
                    browserTestSuccessHelper:
                        'O mapeamento de identidade foi visualizado sem alterar usuários ou sessões.',
                    browserTestTitle: 'Login de teste do navegador OIDC',
                    browserTestWaiting: 'Aguardando autorização Provider',
                    browserTestWaitingHelper:
                        'Conclua o login na nova janela do navegador. Esta página será atualizada automaticamente.',
                    callbackCopied: 'Retorno de chamada OIDC URL copiado.',
                    callbackURL: 'Retorno de chamada URL',
                    callbackURLHelper:
                        'Adicione esta URL às URLs de retorno permitidas do cliente no provedor de identidade.',
                    cancelClearSecret: 'Cancelar limpeza',
                    clearSecret: 'Limpar segredo',
                    clearSecretConfirm: 'O Client Secret será removido somente após você salvar. Continuar?',
                    clientAuthMethod: 'Método de autenticação do cliente',
                    clientAuthMethodHelper:
                        'Selecione o método de autenticação configurado para este cliente no provedor de identidade.',
                    clientAuthMethodRequired: 'Selecione um método de autenticação do cliente.',
                    clientID: 'Client ID',
                    clientIDRequired: 'Insira o Client ID.',
                    clientSecret: 'Client Secret',
                    clockSkew: 'Tolerância de tempo do token',
                    clockSkewHelper:
                        'Permite uma pequena diferença de horário entre o provedor de identidade e o 1Panel. Mantenha o padrão de 60 segundos.',
                    clockSkewRequired: 'Insira a tolerância de tempo do token.',
                    compatibilityMode: 'Modo de compatibilidade',
                    compatibilityModeHelper:
                        'Use apenas para Discovery incompletos ou endpoints reescritos. A validação do núcleo OIDC permanece habilitada.',
                    configurationFailedHelper: 'O teste falhou. A página exibe apenas o erro de back-end localizado.',
                    configurationFailedTag: 'Falha no teste',
                    configurationHighRiskPassed:
                        'A configuração foi aprovada, mas contém opções de compatibilidade de alto risco.',
                    configurationHighRiskTag: 'Configuração de alto risco aprovada',
                    configurationNotTested: 'A configuração atual não foi testada.',
                    configurationNotTestedTag: 'Não testado',
                    configurationPassed: 'A configuração atual passou nas verificações de segurança e capacidade.',
                    configurationPassedTag: 'Teste aprovado',
                    configurationStaleHelper: 'A configuração foi alterada. Teste-a novamente antes de salvar.',
                    configurationStaleTag: 'Resultado expirou',
                    configurationTestMeta:
                        'Testado em {time}; concluído em {duration} ms. As respostas Provider brutas não são armazenadas.',
                    configurationTestResult: 'Resultado do teste de configuração',
                    configurationTestResultDesc:
                        'Isso verifica apenas Discovery e recursos; não troca código de autorização nem comprova o Client Secret. Use o login de teste do navegador para verificação ponta a ponta.',
                    configurationTestSuccess: 'O teste de configuração do OIDC foi bem-sucedido.',
                    configurationTesting: 'Testando a configuração atual do OIDC…',
                    configurationTestingTag: 'Teste',
                    configureSecret: 'Configurar segredo',
                    conflictExistingRename: 'Um subject vinculado retorna um novo name que está ocupado',
                    conflictExistingRenameResult:
                        'Mantenha o User.Name existente e permita que o usuário vinculado faça login',
                    conflictLDAP: 'Usuário LDAP',
                    conflictLocal: 'Usuário local',
                    conflictNewAvailable: 'O novo subject e o name mapeado estão disponíveis',
                    conflictNewAvailableResult: 'Crie um usuário corporativo e atribua a função padrão',
                    conflictNone: 'Sem conflito',
                    conflictOIDC: 'Outra identidade OIDC',
                    conflictOccupied: 'O name mapeado pertence a uma identidade local, LDAP ou outra identidade OIDC',
                    conflictOccupiedResult: 'Rejeite a nova identidade; nunca vincule ou mescle automaticamente',
                    conflictType: 'Tipo de conflito',
                    connectionSecurity: 'Segurança de conexão',
                    connectionSecurityDesc:
                        'A política TLS se aplica às solicitações Discovery, Token, JWKS e UserInfo.',
                    connectionTest: 'Teste de conexão e configuração',
                    connectionTestCompatibilityDesc:
                        'Valide os endpoints personalizados e a política de segurança do protocolo.',
                    connectionTestStandardDesc: 'Endpoints e recursos são descobertos automaticamente no Issuer.',
                    connectionTestTab: 'Teste de conexão',
                    customCA: 'CA personalizado',
                    customCAHelper: 'Aplica-se somente a esta fonte de autenticação e nunca é gravado em logs.',
                    customCARequired: 'Forneça o certificado CA personalizado.',
                    defaultRole: 'Função padrão',
                    defaultRoleHelper:
                        'Atribuída somente na primeira criação do usuário; logins posteriores não alteram a função.',
                    defaultRolePlaceholder: 'Selecione uma função',
                    defaultRoleRequired: 'Selecione uma função padrão válida.',
                    disableAfterSave: 'OIDC será desativado após salvar.',
                    disableConfirm:
                        'Desativar OIDC invalida imediatamente o acesso dos usuários desta fonte. Continuar?',
                    disableDiscardConfirm:
                        'Desabilitar o OIDC é uma ação emergencial: apenas fecha a entrada de login e invalida imediatamente o acesso dos usuários desta fonte. Outras alterações não salvas nesta página, incluindo alterações no Client Secret, serão descartadas. Continuar?',
                    disableTitle: 'Desativar OIDC',
                    disabled: 'Desativado',
                    discoveryAllowlist: 'Discovery ∩ lista de permissões de segurança',
                    enable: 'Ativar',
                    enableAfterSave: 'OIDC será habilitado após um salvamento bem-sucedido.',
                    enabled: 'Ativado',
                    endSessionEndpoint: 'End Session Endpoint',
                    endSessionEndpointHelper:
                        'Salvo para uso futuro; O logout iniciado pelo Provider não está incluído nesta versão.',
                    endSessionEndpointInvalid: 'Insira um End Session Endpoint válido.',
                    endpointDiscoveryPlaceholder: 'Exibido após o teste de conexão',
                    firstLogin: 'Primeiro login',
                    firstLoginPolicy: 'Crie um usuário corporativo local e atribua a função padrão configurada.',
                    fixedAuthorizationCode: 'Authorization Code Flow',
                    fixedNoTokenPersistence: 'Tokens, Claims e verifier nunca são persistidos',
                    fixedSecurityPolicy: 'Sempre aplicado; nenhuma configuração necessária',
                    fixedStateNonce: 'state e nonce únicos',
                    fixedTokenValidation: 'Assinatura ID Token e validação Claims',
                    highRiskSaveConfirm:
                        'Esta configuração habilitada contém opções de compatibilidade de alto risco. Confirme se o ambiente isolado os exige.',
                    highRiskTitle: 'Configuração OIDC de alto risco',
                    hs256Compatibility: 'HS256 (compatibilidade)',
                    hs256KeyHelper:
                        'HS256 sempre usa o Client Secret desta fonte e não aceita uma chave de assinatura separada.',
                    hs256Warning:
                        'HS256 usa um segredo simétrico compartilhado para assinaturas ID Token. Use-o somente quando o Provider não puder usar um algoritmo assimétrico.',
                    identityBindingPolicy:
                        'A identidade é fixada por AuthSourceID + issuer + subject. Uma coincidência de nome de usuário nunca vincula outra conta.',
                    identityMissing: 'Identidade inativa',
                    issuer: 'Issuer URL',
                    issuerHelper:
                        'O valor iss de ID Token e Discovery issuer devem corresponder exatamente a esse valor.',
                    issuerInvalid: 'Insira um HTTP ou HTTPS Issuer URL válido sem consulta ou fragmento.',
                    issuerRequired: 'Insira o Issuer URL.',
                    jwksRotation: 'Rotação automática JWKS',
                    jwksURI: 'JWKS URI',
                    jwksURIHelper: 'Necessário para assinatura assimétrica quando a origem da chave é JWKS.',
                    jwksURIInvalid: 'Insira um JWKS URI válido para a fonte de chave de assinatura selecionada.',
                    keepExistingRole: 'Mantenha as funções e permissões locais existentes',
                    localSecurityData: 'Dados de segurança local',
                    localSecurityDataPolicy: 'Nunca substitua funções, MFA, API Keys, Passkeys ou permissões locais.',
                    localCredentialsManaged:
                        'O nome de usuário e a senha local são gerenciados pelo OIDC e não podem ser editados aqui. Funções, permissões, MFA, API Keys e Passkeys permanecem locais.',
                    localUserFields: 'Campos de usuário local',
                    localUserFieldsDesc:
                        'A primeira versão mapeia apenas User.Name e não usa uma expressão de mapeamento JSON.',
                    loginWith: 'Entrar com {provider}',
                    manualEndpoints: 'Endpoints personalizados',
                    manualEndpointsDesc:
                        'Use somente quando Discovery estiver incompleto ou um gateway upstream reescrever endpoints.',
                    mappingResult: 'Resultado do mapeamento',
                    mode: 'Modo de conexão',
                    modeRequired: 'Selecione um modo de conexão.',
                    nameClaim: 'Claim de nome de usuário',
                    nameClaimHelper: 'Informe o campo que contém o nome de usuário, como preferred_username.',
                    nameClaimRequired: 'Insira o Claim de nome de usuário.',
                    nameConflict: 'Política de conflito de nomes',
                    panelURL: '1Panel público URL',
                    panelURLHTTPWarning:
                        'HTTP não protege a resposta de autorização. Use-o apenas em um ambiente privado isolado aceito pelo Provider.',
                    panelURLHelper:
                        'Informe o endereço usado para acessar o 1Panel. Ele será usado para gerar a URL de retorno.',
                    panelURLInvalid: 'Insira uma origem contendo apenas esquema, host e porta opcional.',
                    panelURLRequired: 'Insira o 1Panel público URL.',
                    pkceDisabled: 'Desativado (somente compatibilidade)',
                    pkceDisabledWarning:
                        'A desativação do PKCE reduz a proteção contra interceptação de código de autorização.',
                    pkceHelper: 'Prefira S256. O método de desafio plain nunca é oferecido.',
                    pkceS256: 'S256 (recomendado)',
                    plannedHandling: 'Manuseio planejado',
                    privateNetworkIdP: 'IdP de rede privada',
                    privateNetworkIdPHelper:
                        'Permite explicitamente endereços privados; metadados, loopback, link local, redirecionamentos e religação DNS permanecem bloqueados.',
                    privateNetworkWarning: 'O acesso à rede privada está habilitado para esta fonte de autenticação.',
                    protocolCompatibility: 'Compatibilidade de protocolo',
                    protocolCompatibilityDesc: 'A validação da assinatura ID Token nunca pode ser desativada.',
                    providerAndClient: 'Provider e cliente',
                    providerAndClientDesc:
                        'O Client Secret só pode ser substituído ou apagado e nunca é devolvido pela página.',
                    providerCapabilities: 'Capacidades do Provider',
                    recentTestSuccess: 'Último teste bem-sucedido: {0}',
                    recommended: 'Recomendado',
                    rejectPlain: 'plain rejeitado',
                    replaceSecret: 'Substituir segredo',
                    requestAndClaims: 'Solicitações e atributos',
                    requestAndClaimsDesc:
                        'Configure os escopos de autorização, o complemento de informações do usuário e os parâmetros da solicitação.',
                    requestTimeout: 'Tempo limite da solicitação',
                    requestTimeoutRequired: 'Insira o tempo limite da solicitação.',
                    restore: 'Restaurar',
                    restored: 'As últimas configurações salvas do OIDC foram restauradas.',
                    result: 'Resultado',
                    rolesLoadFailed:
                        'Não foi possível carregar as funções. Tente novamente antes de selecionar a função padrão.',
                    roleHandling: 'Manipulação de funções',
                    scenario: 'Cenário',
                    scopes: 'Escopos de autorização',
                    scopesHelper: 'Deve incluir openid. Separe vários escopos com espaços.',
                    scopesRequired: 'Scopes deve incluir openid.',
                    seconds: 'segundos',
                    secretClearHelper:
                        'Após a limpeza, um novo Client Secret é necessário antes que o OIDC possa ser ativado novamente.',
                    secretConfigured: 'Configurado',
                    secretNotConfigured: 'Não configurado',
                    secretPlaceholder: 'Insira um novo Client Secret',
                    secretReplaceHelper:
                        'O novo segredo substituirá o valor salvo ao salvar. Atualize também o Client Secret no Provider OIDC.',
                    secretRequiredHelper: 'Configure um Client Secret antes de ativar o OIDC.',
                    secretRequiredToEnable: 'Configure um Client Secret antes de ativar o OIDC.',
                    secretSavedHelper:
                        'Armazenado de forma criptografada. Deixe em branco para manter o segredo atual.',
                    secretWaiting: 'Aguardando entrada',
                    secretWillClear: 'Será limpo',
                    secretWillReplace: 'Será substituído',
                    signingAlgorithm: 'Algoritmo de assinatura ID Token',
                    signingAlgorithmHelper:
                        'Somente algoritmos na lista de permissões de segurança de back-end estão disponíveis.',
                    signingKey: 'Chave de assinatura',
                    signingKeyClientSecret: 'Client Secret (somente HS256)',
                    signingKeyJWKS: 'JWKS URI com rotação automática',
                    signingKeySource: 'Fonte de chave de assinatura',
                    signingKeySourceHelper:
                        'Prefira JWKS. Uma chave pública estática não pode ser rotacionada automaticamente.',
                    signingKeyStatic: 'Chave pública estática JWK ou PEM',
                    standardDiscovery: 'Padrão OIDC Discovery',
                    standardDiscoveryDesc: '1Panel descobre endpoints e recursos e não armazena o documento bruto.',
                    standardMode: 'Modo padrão',
                    standardModeHelper: 'Descubra endpoints, recursos de assinatura e suporte PKCE do Issuer.',
                    standardProtocolPolicy: 'Política de protocolo padrão',
                    standardProtocolPolicyDesc:
                        'Os recursos de assinatura são negociados automaticamente; nenhuma chave de assinatura é inserida aqui.',
                    staticSigningKey: 'Chave pública de assinatura estática',
                    staticSigningKeyHelper:
                        'Somente material de chave pública é aceito. Gire-o manualmente quando a chave Provider mudar.',
                    staticSigningKeyPlaceholder: 'Cole uma chave pública JWK, JWKS JSON ou PEM',
                    staticSigningKeyRequired: 'Forneça a chave pública de assinatura estática.',
                    staticSigningKeyWarning:
                        'Uma chave de assinatura estática não pode ser rotacionada automaticamente; atualize-a antes que o Provider gire as chaves.',
                    settingLoadFailed: 'As configurações do OIDC não puderam ser carregadas',
                    settingLoadFailedHelper:
                        'O formulário é bloqueado para evitar salvar uma configuração padrão vazia sobre as configurações atuais. Tente novamente depois que a conexão for recuperada.',
                    subsequentLogin: 'Login subsequente',
                    subsequentLoginPolicy:
                        'Encontre a ligação por subject e atualize apenas User.Name quando o novo nome estiver disponível.',
                    testBeforeBrowserTest:
                        'Teste a configuração atual antes de iniciar um teste de login do navegador.',
                    testBeforeEnable: 'Teste a configuração atual antes de salvar as alterações de configuração.',
                    testConfiguration: 'Testar configuração',
                    testDiscovery: 'Testar Discovery',
                    tlsCustomCA: 'HTTPS · Certificado CA personalizado',
                    tlsPrivateHTTP: 'HTTP · Somente rede privada (perigoso)',
                    tlsPrivateHTTPWarning:
                        'HTTP não fornece criptografia de transporte e é restrito a alvos privados explicitamente permitidos.',
                    tlsSkipVerify: 'HTTPS · Ignorar verificação de certificado (perigoso)',
                    tlsSystem: 'HTTPS · Verificação do certificado do sistema (recomendado)',
                    tokenEndpoint: 'Token Endpoint',
                    tokenEndpointInvalid: 'Insira um Token Endpoint válido.',
                    transportSecurity: 'Segurança de transporte',
                    transportSecurityHelper:
                        'Prefira HTTPS. O HTTP privado também requer acesso explícito ao private-network.',
                    unsavedChanges: 'Há alterações de OIDC não salvas.',
                    usedClaim: 'Claim usado',
                    userInfoEndpoint: 'UserInfo Endpoint',
                    userInfoEndpointHelper:
                        'Quando o campo de nome de usuário estiver ausente, o sistema o preencherá a partir deste endpoint. Deixe em branco para não preencher.',
                    userInfoEndpointInvalid: 'Insira um UserInfo Endpoint válido.',
                    userMapping: 'Configurações do usuário',
                    userMappingDesc:
                        'Configure o mapeamento do nome de usuário OIDC e o nó e a função padrão usados ao criar um usuário no primeiro acesso.',
                },
                saml2: {
                    actionCreate: 'Criar usuário',
                    actionPending: 'Aguardando resultado',
                    actionReject: 'Rejeitar login',
                    actionReuse: 'Usar usuário vinculado',
                    assignDefaultRole: 'Atribuir função padrão: {role}',
                    basic: 'Configurações básicas',
                    basicDesc: 'Configure as opções comuns exigidas pela maioria dos provedores SAML2.',
                    browserTest: 'Testar login',
                    browserTestConflict: 'Identidade verificada, mas o nome de usuário está em conflito',
                    browserTestConflictHelper:
                        'O nome de usuário mapeado pertence a outra identidade e não será reivindicado.',
                    browserTestExpired: 'O teste do navegador expirou',
                    browserTestExpiredHelper:
                        'Inicie um novo teste do navegador e conclua a autorização antes que ela expire.',
                    browserTestFailed: 'Falha no teste do navegador',
                    browserTestFailedHelper:
                        'A visualização da identidade não pôde ser concluída. Revise o erro de back-end localizado.',
                    browserTestIsolation:
                        'Isso executa um fluxo real de autorização de ida e volta, mas não cria nem atualiza usuários, não atribui funções e não cria uma sessão autenticada do painel.',
                    browserTestPopupBlocked: 'Permita pop-ups para este site e reinicie o teste do navegador.',
                    browserTestPopupClosed: 'A janela de autorização foi fechada antes da conclusão do teste.',
                    browserTestSuccess: 'Verificação Provider bem-sucedida',
                    browserTestSuccessHelper:
                        'O mapeamento de identidade foi visualizado sem alterar usuários ou sessões.',
                    browserTestTitle: 'Login de teste do navegador SAML2',
                    browserTestWaiting: 'Aguardando autorização Provider',
                    browserTestWaitingHelper:
                        'Conclua o login na nova janela do navegador. Esta página será atualizada automaticamente.',
                    certificateFileInvalid: 'Selecione um arquivo de certificado PEM, CRT ou CER válido.',
                    configured: 'Configurado',
                    configurationFailedHelper: 'O teste falhou. A página exibe apenas o erro de back-end localizado.',
                    configurationNotTested: 'A configuração atual não foi testada.',
                    configurationPassed: 'A configuração atual passou nas verificações de segurança e capacidade.',
                    configurationStaleHelper:
                        'Configurações sensíveis à autenticação alteradas. Teste o rascunho atual novamente.',
                    configurationTestSuccess: 'O teste de configuração do SAML2 foi bem-sucedido.',
                    configurationTesting: 'Testando a configuração atual do SAML2…',
                    conflictLDAP: 'Usuário LDAP',
                    conflictLocal: 'Usuário local',
                    conflictNone: 'Sem conflito',
                    conflictOIDC: 'Outra identidade OIDC',
                    conflictSAML2: 'Outra identidade SAML2',
                    conflictType: 'Tipo de conflito',
                    credentialFileReadFailed: 'Não foi possível ler o arquivo de credenciais.',
                    credentialFileTooLarge: 'Os arquivos de credenciais não devem exceder 256 KiB.',
                    credentialsRequired: 'Configure a chave privada e o certificado do SP.',
                    defaultRole: 'Função do novo usuário',
                    defaultRoleHelper:
                        'Atribuída apenas na primeira criação; logins posteriores preservam funções, MFA e permissões locais.',
                    defaultRolePlaceholder: 'Selecione uma função',
                    defaultRoleRequired: 'Selecione uma função padrão válida.',
                    disableConfirm:
                        'Desativar o SAML2 rejeita imediatamente novos logins e invalida suas sessões de usuário. Continuar?',
                    disableDiscardConfirm:
                        'Desativar o SAML2 descarta outras alterações não salvas nesta página e invalida imediatamente suas sessões de usuário. Continuar?',
                    disableTitle: 'Desativar SAML2',
                    disabled: 'Desativado',
                    enable: 'Ativar',
                    enabled: 'Ativado',
                    idpMetadata: 'Metadados do IdP',
                    idpMetadataDesc: 'Informe uma URL ou cole o XML. Se ambos existirem, a URL terá prioridade.',
                    keepExistingRole: 'Mantenha as funções e permissões locais existentes',
                    loginWith: 'Entrar com {provider}',
                    mappingResult: 'Resultado do mapeamento',
                    metadataRequired: 'Informe a URL ou o XML dos metadados do IdP.',
                    metadataURLHelper: 'O backend baixa e valida os metadados durante o teste e o salvamento.',
                    metadataURLInvalid: 'Insira uma URL HTTPS de metadados válida, sem credenciais nem fragmento.',
                    metadataURLRecommended: 'URL de metadados (recomendada)',
                    metadataXML: 'XML de metadados',
                    metadataXMLHelper: 'Use quando o IdP não expuser uma URL de metadados acessível.',
                    metadataXMLInvalid: 'Insira um XML de metadados EntityDescriptor válido.',
                    metadataXMLPlaceholder: 'Cole <EntityDescriptor>...</EntityDescriptor>',
                    nameAttribute: 'Atributo de nome de usuário',
                    nameAttributeHelper:
                        'Lê este atributo da asserção SAML verificada e o mapeia para o nome de usuário do 1Panel.',
                    nameAttributePlaceholder: 'Por exemplo: uid, username ou account',
                    nameAttributeRequired: 'Insira o atributo de nome de usuário.',
                    notConfigured: 'Não configurado',
                    or: 'ou',
                    pageDesc: 'Conecte o SSO corporativo por metadados do IdP com as opções comuns em uma página.',
                    plannedHandling: 'Manuseio planejado',
                    privateKeyFileInvalid: 'Selecione um arquivo de chave privada PEM válido.',
                    recentTestSuccess: 'Último teste bem-sucedido: {0}',
                    restore: 'Restaurar',
                    restored: 'As últimas configurações salvas do SAML2 foram restauradas.',
                    roleHandling: 'Manipulação de funções',
                    rolesLoadFailed:
                        'Não foi possível carregar as funções. Tente novamente antes de selecionar a função padrão.',
                    selectFile: 'Selecionar arquivo',
                    serviceStatus: 'Status do serviço',
                    serviceStatusDesc: 'A configuração atual deve passar no teste antes de ativar o SAML2.',
                    settingLoadFailed: 'As configurações do SAML2 não puderam ser carregadas',
                    settingLoadFailedHelper:
                        'O formulário é bloqueado para evitar salvar uma configuração padrão vazia sobre as configurações atuais. Tente novamente depois que a conexão for recuperada.',
                    spCertificate: 'Certificado do SP',
                    spCertificateHelper:
                        'Publicado nos metadados do SP para que o IdP possa verificar solicitações de login e logout.',
                    spCredentials: 'Chave privada e certificado do SP',
                    spCredentialsDesc:
                        'Usados para assinar mensagens de login e logout. A política de assinatura e validação é definida pelo backend.',
                    spEntityID: 'SP Entity ID',
                    spEntityIDHelper:
                        'Identificador único do SP. Deve corresponder ao ID da entidade ou ao público-alvo configurado no IdP; também é a URL de metadados do SP.',
                    acsURL: 'ACS URL',
                    sloURL: 'SLO URL',
                    spPrivateKey: 'Chave privada do SP',
                    spPrivateKeyHelper:
                        'Usada para assinar AuthnRequest e mensagens de logout. É criptografada em repouso e nunca exibida.',
                    syncLogout: 'Logout sincronizado',
                    syncLogoutHelper:
                        'Sair do 1Panel ou do provedor de identidade também encerra a sessão do outro lado.',
                    testBeforeBrowserTest:
                        'Teste a configuração atual antes de iniciar um teste de login do navegador.',
                    testBeforeEnable: 'Teste a configuração atual antes de ativar ou salvar alterações confidenciais.',
                    testConfiguration: 'Testar configuração',
                    unsavedChanges: 'Há alterações de SAML2 não salvas.',
                    usedAttribute: 'Mapeamento de nome de usuário',
                    usersAndRoles: 'Usuários e funções',
                    usersAndRolesDesc:
                        'Configure o mapeamento do nome de usuário do painel e o nó e a função padrão usados ao criar um usuário no primeiro acesso.',
                },
                ldap: {
                    basic: 'Configurações básicas',
                    loginTitle: 'Login LDAP',
                    loginWith: 'Entrar com LDAP',
                    backToLocalLogin: 'Voltar ao login do painel',
                    enable: 'Habilitar',
                    enabled: 'Habilitado',
                    disabled: 'Desativado',
                    connection: 'Conexão básica',
                    connectionDesc:
                        'Configure o serviço de diretório e a conta de ligação usada para procurar usuários.',
                    serverURL: 'URL do servidor',
                    serverURLHelper: 'Suporta URLs ldap:// e ldaps://.',
                    userBaseDN: 'Base DN do usuário',
                    userBaseDNHelper:
                        'DN inicial para pesquisas de usuários LDAP; pode ser uma OU, um CN ou o DN raiz do domínio.',
                    bindDN: 'DN de vínculo',
                    bindPassword: 'Senha',
                    passwordSaved: 'Deixe em branco para manter a senha salva',
                    userSearch: 'Pesquisa de usuário',
                    userSearchDesc:
                        'Configure a base e o filtro de pesquisa e mapeie o atributo LDAP para o campo name do 1Panel.',
                    userFilter: 'Filtro de usuário',
                    userFilterTooltip:
                        'Substitua %(user)s pelo nome de usuário com escape ou por * para uma leitura completa do diretório.',
                    userFilterHelper: 'Os nomes de usuário têm escape antes de serem inseridos no filtro LDAP.',
                    attributeMap: 'Mapeamento de atributos',
                    attributeMapTooltip: 'Mapeamento JSON do campo name do 1Panel para um atributo LDAP.',
                    attributeMapHelper: 'Configure o atributo LDAP mapeado para o campo name do 1Panel.',
                    advanced: 'Configurações avançadas',
                    advancedDesc: 'Configure a paginação de consulta TLS e LDAP.',
                    strictSync: 'Sincronização estrita',
                    strictSyncTooltip:
                        'Após um processamento completo, o status de autenticação dos usuários ausentes nesta origem LDAP é marcado como Não encontrado no LDAP, mas os usuários não são excluídos.',
                    strictSyncHelper:
                        'Aplica-se apenas a um processamento completo bem-sucedido. A importação de usuários selecionados não altera o status de autenticação de outros usuários.',
                    skipTLSVerify: 'Ignorar verificação TLS',
                    skipTLSVerifyTooltip: 'Desative a verificação de certificado para conexões LDAPS.',
                    connectTimeout: 'Tempo limite de conexão (segundos)',
                    searchPageSize: 'Tamanho da página de consulta LDAP',
                    restore: 'Restaurar',
                    testConnection: 'Testar conexão',
                    testLogin: 'Testar login',
                    userImport: 'Importar usuários',
                    saveBeforeImport: 'Salve as configurações AD/LDAP atuais antes de importar usuários.',
                    format: 'Formato',
                    restoreExample: 'Exemplo de restauração',
                    mappingValid: 'JSON válido; name está configurado.',
                    mappingInvalid: 'Insira JSON válido.',
                    mappingObject: 'O mapeamento de atributos deve ser um objeto JSON.',
                    mappingOnlyName: 'Somente o mapeamento name é suportado.',
                    mappingStringValues: 'Cada atributo mapeado deve ser uma string.',
                    mappingNameRequired: 'name deve ser uma sequência não vazia.',
                    restored: 'As últimas configurações salvas foram restauradas.',
                    connectionTestSuccess: 'O teste de conexão LDAP foi bem-sucedido.',
                    recentTestSuccess: 'Último teste bem-sucedido: {0}',
                    recentTestFailed: 'Último teste falhou: {0}',
                    serverURLRequired: 'Insira a URL do servidor LDAP.',
                    serverURLInvalid: 'Use um URL ldap:// ou ldaps:// válido.',
                    userBaseDNRequired: 'Informe a Base DN do usuário.',
                    bindDNRequired: 'Insira a ligação DN.',
                    passwordRequired: 'Digite a senha.',
                    userFilterRequired: 'Insira o filtro do usuário.',
                    connectTimeoutRequired: 'Insira o tempo limite de conexão.',
                    searchPageSizeRequired: 'Insira o tamanho da página de consulta LDAP.',
                    sync: {
                        title: 'Sincronização agendada',
                        description:
                            'Leia o diretório LDAP completo de acordo com uma programação e mantenha os usuários LDAP importados em 1Panel.',
                        enable: 'Ativar agendamento',
                        enableHelper:
                            'Quando desativado, a execução automática é interrompida; a sincronização manual permanece disponível.',
                        schedule: 'Cronograma',
                        daily: 'Diariamente',
                        weekly: 'Semanalmente',
                        customCron: 'Cron personalizado',
                        preview: 'Visualização',
                        previewTitle: 'Próximas 5 execuções',
                        previewEmpty: 'Não há tempo de execução disponível',
                        cronHelper:
                            'Use uma expressão Cron padrão de cinco campos: minuto, hora, dia, mês, dia da semana.',
                        autoImport: 'Importar novos usuários',
                        autoImportHelper:
                            'Quando desativado, apenas os identificadores e o status do diretório são mantidos para usuários LDAP importados; nenhum novo usuário é criado.',
                        defaultRole: 'Nova função de usuário',
                        defaultRolePlaceholder: 'Selecione uma função',
                        defaultRoleHelper: 'Aplica-se apenas a usuários criados por sincronização agendada.',
                        defaultRoleRequired: 'Selecione uma função para novos usuários LDAP.',
                        strictSyncHelper:
                            'Após uma sincronização completa, usuários ausentes no LDAP são marcados como Não encontrado no LDAP e suas sessões são encerradas sem excluir usuários, funções ou permissões.',
                        runNow: 'Sincronize agora',
                        lastRunSuccess: 'Última sincronização bem-sucedida: {0}',
                        lastRunFailed: 'Falha na última sincronização: {0}',
                        lastRunRunning: 'Sincronização iniciada: {0}',
                        sourceDisabled: 'Habilite e salve AD/LDAP antes de executar a sincronização.',
                        cronRequired: 'Insira uma expressão Cron.',
                        saveBeforeRun: 'Salve as configurações de sincronização antes de executar a tarefa.',
                        runConfirmTitle: 'Execute a sincronização estrita',
                        runConfirmDescription:
                            'O status de autenticação dos usuários ausentes em uma consulta LDAP completa será marcado como Não encontrado no LDAP e suas sessões ativas serão apagadas. Continuar?',
                        runSuccess: 'Sincronização LDAP concluída.',
                        weekdays: {
                            0: 'Domingo',
                            1: 'Segunda-feira',
                            2: 'Terça-feira',
                            3: 'Quarta-feira',
                            4: 'Quinta-feira',
                            5: 'Sexta-feira',
                            6: 'Sábado',
                        },
                    },
                    syncLogs: {
                        title: 'Sincronizar registros',
                        description: 'Revise os resultados da sincronização LDAP programada e manual.',
                        startedAt: 'Hora de início',
                        trigger: 'Tipo de execução',
                        manual: 'Manual',
                        scheduled: 'Agendado',
                        success: 'Sucesso',
                        failed: 'Falha',
                        running: 'Em execução',
                        result: 'Resultado',
                        resultSummary: 'Criados {0}, atualizados {1}, ausentes {2}',
                        duration: 'Duração',
                        action: 'Ação',
                    },
                    testLoginTitle: 'Testar login AD/LDAP',
                    testLoginDesc:
                        'Vincule com uma credencial de usuário AD/LDAP apenas para testar a autenticação. Nenhuma sessão 1Panel é criada.',
                    ldapUsername: 'Nome de usuário LDAP',
                    usernameRequired: 'Digite o nome de usuário LDAP.',
                    startTest: 'Iniciar teste',
                    testLoginSuccess: 'Autenticação bem-sucedida.',
                    testLoginSuccessWithDN: 'Autenticação bem-sucedida. Usuário DN: {0}',
                    import: {
                        title: 'Importar usuários AD/LDAP',
                        source: 'Fonte de dados: diretório AD/LDAP',
                        lastRead: 'Última leitura: {0}',
                        cacheHit: 'Resultado armazenado em cache',
                        keywordPlaceholder: 'Pesquisar nome de usuário',
                        search: 'Pesquisar',
                        refresh: 'Leia de LDAP',
                        refreshTip: 'Ignore o cache de curto prazo e leia o diretório LDAP novamente.',
                        loadFailed: 'Falha ao ler o diretório LDAP.',
                        retry: 'Tentar novamente',
                        noData: 'Nenhum usuário do diretório encontrado.',
                        username: 'Nome de usuário',
                        status: 'Estado',
                        changes: 'Mudanças',
                        noChanges: 'Sem alterações',
                        importable: 'Pronto para importar',
                        updateAvailable: 'Atualização disponível',
                        upToDate: 'Atualizado',
                        conflict: 'Conflito de nome',
                        selectedCount: '{0} selecionado',
                        totalCount: '{0} usuários',
                        newUserRole: 'Nova função de usuário',
                        newUserRoleRequired: 'Selecione uma função para novos usuários.',
                        noNewUsers: 'Não há novos usuários nesta operação.',
                        roleOnlyForNewUsers: 'A função selecionada é aplicada somente aos usuários recém-criados.',
                        strictOff:
                            'A sincronização estrita está desativada. Uma importação completa não desativará os usuários.',
                        importSelected: 'Importação/atualização selecionada ({0})',
                        importAll: 'Importar/atualizar tudo ({0})',
                        previewTitle: 'Confirme a importação completa',
                        previewDesc:
                            'O diretório LDAP completo foi lido. A palavra-chave de pesquisa não limita esta operação.',
                        created: 'Criar',
                        updated: 'Atualizar',
                        unchanged: 'Inalterado',
                        conflicts: 'Conflitos',
                        missing: 'Desativar',
                        reactivated: 'Reativar',
                        strictWarning:
                            'A sincronização estrita está habilitada. Os usuários ausentes de LDAP não podem fazer login, mas seus registros, funções e permissões são mantidos.',
                        missingUsers: 'Usuários ausentes em LDAP',
                        missingScope: 'Somente esta fonte LDAP é afetada.',
                        willDisable: 'Será desativado',
                        confirmAll: 'Confirmar importação',
                        confirmAllWithMissing: 'Confirmar importação e desabilitar {0} usuários',
                        executeSuccess: 'Os usuários LDAP foram processados com sucesso.',
                        queryExpired: 'O resultado do diretório expirou. Leia LDAP novamente.',
                        planIncomplete: 'A leitura completa do diretório está incompleta e não pode ser executada.',
                    },
                },
            },
        },
        app: {
            app: 'APP',
            title: 'Apelido do Painel',
            titleHelper: 'O alias do painel é usado para exibição no APP (alias do painel padrão)',
            qrCode: 'QR Code',
            apiStatusHelper: 'O APP do Painel precisa habilitar a funcionalidade da interface API',
            apiInterfaceHelper:
                'Suporta acesso à interface de API do painel (essa funcionalidade precisa ser ativada no aplicativo do painel)',
            apiInterfaceHelper1:
                'O acesso ao aplicativo do painel requer que o visitante seja adicionado à lista de permissões; para IPs não fixos, recomenda-se adicionar 0.0.0.0/0(todos os IPv4), ::/0 (todos os IPv6)',
            qrCodeExpired: 'Tempo de atualização',
            apiLeakageHelper: 'Não revele o QR code. Garanta que ele seja usado apenas em ambientes confiáveis.',
        },
        logExport: {
            title: 'Exportar logs',
            records: 'Registros de exportação',
            retentionDays: 'Retenção dos registros de exportação',
            timeRange: 'Período',
            timeRequired: 'Selecione o período da exportação',
            websiteRequired: 'Selecione um site',
            blackStatus: 'Status da lista de bloqueio',
            black: 'Bloqueado',
            notBlack: 'Não bloqueado',
            fuzzy: 'Correspondência aproximada',
            regex: 'Expressão regular',
            invalidRegex: 'Insira uma expressão RE2 válida com no máximo 256 caracteres',
            created: 'Tarefa de exportação criada',
            fileName: 'Nome do arquivo',
            fileSize: 'Tamanho do arquivo',
            expiresAt: 'Expira em',
            cancelConfirm: 'Cancelar esta tarefa de exportação?',
            deleteConfirm: 'Excluir este registro e arquivo de exportação?',
        },
        waf: {
            WAF: 'WAF',
            name: 'WAF',
            blackWhite: 'Lista negra e branca',
            globalSetting: 'Configurações globais',
            websiteSetting: 'Configurações do site',
            blockRecords: 'Registros de bloqueio',
            world: 'Mundo',
            china: 'China',
            intercept: 'Interceptar',
            request: 'Requisição',
            count4xx: 'Quantidade de 4xx',
            count5xx: 'Quantidade de 5xx',
            todayStatus: 'Status de hoje',
            reqMap: 'Mapa de interceptação (30 dias)',
            resource: 'Origem',
            count: 'Quantidade',
            hight: 'Alto',
            low: 'Baixo',
            reqCount: 'Requisições',
            interceptCount: 'Número de interceptações',
            requestTrends: 'Tendências de requisições (últimos 7 dias)',
            interceptTrends: 'Tendências de interceptação (últimos 7 dias)',
            whiteList: 'Lista branca',
            blackList: 'Lista negra',
            ipBlackListHelper: 'Endereços IP na lista negra estão bloqueados de acessar o site',
            ipWhiteListHelper: 'Endereços IP na lista branca contornam todas as restrições',
            uaBlackListHelper: 'Requisições com valores de User-Agent na lista negra serão bloqueadas',
            uaWhiteListHelper: 'Requisições com valores de User-Agent na lista branca contornam todas as restrições',
            urlBlackListHelper: 'Requisições para URLs na lista negra serão bloqueadas',
            urlWhiteListHelper: 'Requisições para URLs na lista branca contornam todas as restrições',
            ccHelper:
                'Se um site receber mais de {1} requisições do mesmo IP dentro de {0} segundos, o IP será bloqueado por {2}',
            blockTime: 'Duração do bloqueio',
            attackHelper:
                'Se as interceptações acumuladas excederem {1} dentro de {0} segundos, o IP será bloqueado por {2}',
            notFoundHelper:
                'Se requisições acumuladas retornarem erros 404 mais de {1} vezes dentro de {0} segundos, o IP será bloqueado por {2}',
            frequencyLimit: 'Limite de frequência',
            regionLimit: 'Limite de região',
            defaultRule: 'Regras padrão',
            accessFrequencyLimit: 'Limite de frequência de acesso',
            attackLimit: 'Limite de frequência de ataque',
            notFoundLimit: 'Limite de frequência de 404',
            urlLimit: 'Limite de frequência de URL',
            urlLimitHelper: 'Defina a frequência de acesso para uma única URL',
            sqliDefense: 'Proteção contra injeção SQL',
            sqliHelper: 'Detectar injeção SQL em requisições e bloqueá-las',
            xssHelper: 'Detectar XSS em requisições e bloqueá-las',
            xssDefense: 'Proteção contra XSS',
            uaDefense: 'Regras de User-Agent maliciosos',
            uaHelper: 'Inclui regras para identificar bots maliciosos comuns',
            argsDefense: 'Regras de parâmetros maliciosos',
            argsHelper: 'Bloqueia requisições que contenham parâmetros maliciosos',
            cookieDefense: 'Regras de cookies maliciosos',
            cookieHelper: 'Proíbe cookies maliciosos de serem carregados nas requisições',
            headerDefense: 'Regras de cabeçalhos maliciosos',
            headerHelper: 'Proíbe requisições que contenham cabeçalhos maliciosos',
            httpRule: 'Regras de método de requisição HTTP',
            httpHelper:
                'Defina os tipos de métodos permitidos para acessar. Se você deseja restringir certos tipos de acesso, desative esse tipo de botão. Por exemplo: se apenas o acesso do tipo GET for permitido, desative todos os outros botões, exceto o GET',
            geoRule: 'Restrições de acesso regional',
            geoHelper:
                'Combine políticas de região e província em um único controle. As regras de região são avaliadas antes das regras de província',
            regionPolicy: 'Política regional',
            provincePolicy: 'Política de província',
            provinceRuleLabel: 'Província',
            openRestyFeatureVersionAlert: 'A versão do OpenResty deve ser superior a 1.31.1.1-0 para que {0} funcione.',
            ipLocation: 'Localização do IP',
            ipLocationSearchHelper: 'Insira a localização do IP; pesquisa aproximada é suportada',
            action: 'Ação',
            ruleType: 'Tipo de ataque',
            ipHelper: 'Digite o endereço IP',
            attackLog: 'Log de ataques',
            rule: 'Regra',
            ipArr: 'Intervalo IPV4',
            ipStart: 'IP de início',
            ipEnd: 'IP de fim',
            ipv4: 'IPv4',
            ipv6: 'IPv6',
            urlDefense: 'Regras de URL',
            urlHelper: 'URL proibida',
            dirFilter: 'Filtro de diretório',
            sqlInject: 'Injeção de SQL',
            xss: 'XSS',
            webshell: 'WebShell',
            phpExec: 'Execução de script PHP',
            oneWordTrojan: 'Cavalo de Troia de uma palavra',
            appFilter: 'Filtragem de diretórios perigosos',
            webShell: 'Webshell',
            args: 'Parâmetros maliciosos',
            protocolFilter: 'Filtro de protocolo',
            javaFilter: 'Filtragem de arquivos Java perigosos',
            scannerFilter: 'Filtro de scanner',
            escapeFilter: 'Filtro de escape',
            customRule: 'Regras personalizadas',
            httpMethod: 'Filtro de método HTTP',
            fileExt: 'Limite de extensão de arquivo',
            fileExtHelper: 'Extensões de arquivos proibidas para upload',
            deny: 'Proibido',
            allow: 'Permitir',
            allowOnly: 'Permitir apenas',
            field: 'Objeto',
            pattern: 'Condição',
            ruleContent: 'Conteúdo',
            contain: 'incluir',
            equal: 'igual',
            regex: 'expressão regular',
            notEqual: 'Diferente de',
            customRuleHelper: 'Realize ações com base nas condições especificadas',
            actionAllow: 'Permitir',
            blockIP: 'Bloquear IP',
            code: 'Código de status retornado',
            noRes: 'Desconectar (444)',
            badReq: 'Parâmetros inválidos (400)',
            forbidden: 'Acesso proibido (403)',
            serverErr: 'Erro no servidor (500)',
            resHtml: 'Página de resposta',
            allowHelper: 'Permitir acesso pulará as regras subsequentes do WAF, use com cautela',
            captcha: 'verificação humano-máquina',
            fiveSeconds: 'Verificação de 5 segundos',
            location: 'Região',
            redisConfig: 'Configuração do Redis',
            redisHelper: 'Ativar o Redis para persistir IPs temporariamente bloqueados',
            wafHelper: 'Todos os sites perderão proteção após o fechamento',
            websiteWafHelper: 'Este site perderá a proteção após o fechamento',
            attackIP: 'IP atacante',
            attackParam: 'Detalhes do ataque',
            execRule: 'Regra atingida',
            acl: 'ACL',
            sql: 'Injeção de SQL',
            cc: 'Limite de frequência de acesso',
            isBlocking: 'Bloqueado',
            isFree: 'Desbloqueado',
            unLock: 'Desbloquear',
            unLockHelper: 'Você quer desbloquear o IP: {0}?',
            saveDefault: 'Salvar padrão',
            saveToWebsite: 'Aplicar ao site',
            saveToWebsiteHelper: 'Aplicar as configurações atuais a todos os sites?',
            websiteHelper:
                'Aqui estão as configurações padrão para criar um site. As modificações precisam ser aplicadas ao site para terem efeito',
            websiteHelper2:
                'Aqui estão as configurações padrão para criar um site. Por favor, modifique a configuração específica no site',
            ipGroup: 'Grupo de IP',
            ipGroupHelper:
                'Um IP ou segmento de IP por linha, suporta IPv4 e IPv6, por exemplo: 192.168.1.1 ou 192.168.1.0/24',
            ipBlack: 'Lista negra de IP',
            openRestyAlert: 'A versão do OpenResty precisa ser superior a {0}',
            initAlert:
                'A inicialização é necessária para o primeiro uso, o arquivo de configuração do site será modificado e a configuração original do WAF será perdida. Por favor, faça backup do OpenResty com antecedência',
            initHelper:
                'A operação de inicialização apagará a configuração WAF existente. Tem certeza de que deseja inicializar?',
            mainSwitch: 'Interruptor principal',
            websiteSwitch: 'Interruptor',
            websiteAlert: 'Por favor, crie um site primeiro',
            defaultUrlBlack: 'Regras de URL',
            htmlRes: 'Página de interceptação',
            urlSearchHelper: 'Por favor, insira a URL para suportar a pesquisa difusa',
            hostSearchHelper: 'Insira o Host para pesquisa aproximada',
            toCreate: 'Criar',
            closeWaf: 'Fechar WAF',
            closeWafHelper: 'Fechar o WAF fará com que o site perca a proteção, você deseja continuar?',
            addblack: 'Negro',
            addwhite: 'Adicionar branco',
            addblackHelper: 'Adicionar IP:{0} à lista negra padrão?',
            addwhiteHelper: 'Adicionar IP:{0} à lista branca padrão?',
            defaultUaBlack: 'Regra do User-Agent',
            defaultIpBlack: 'Grupo de IPs Maliciosos',
            cookie: 'Regras de Cookies',
            urlBlack: 'Lista negra de URLs',
            uaBlack: 'Lista negra de User-Agent',
            attackCount: 'Limite de frequência de ataques',
            fileExtCheck: 'Limite de upload de arquivos',
            geoRestrict: 'Restrição de acesso regional',
            originProtect: 'Proteção da origem CDN',
            attacklog: 'Registro de Interceptação',
            unknownWebsite: 'Acesso a nome de domínio não autorizado',
            geoRuleEmpty: 'Selecione pelo menos uma região ou província',
            unknown: 'Site não existe',
            geo: 'Restrição Regional',
            revertHtml: 'Você deseja restaurar {0} como a página padrão?',
            five_seconds: 'Verificação de 5 segundos',
            header: 'Regras de cabeçalho',
            methodWhite: 'Regras HTTP',
            expiryDate: 'Data de expiração',
            expiryDateHelper: 'Após passar na verificação, não será mais verificado dentro do período de validade',
            defaultIpBlackHelper: 'Alguns IPs maliciosos coletados da Internet para impedir o acesso',
            notFoundCount: 'Limite de Frequência 404',
            matchValue: 'Valor de correspondência',
            headerName: 'Suporta inglês, números, -, comprimento de 3-30',
            cdnHelper: 'Sites que usam CDN podem abrir aqui para obter o IP de origem correto',
            clearLogWarn: 'Limpar o log não será possível, você deseja continuar?',
            commonRuleHelper: 'A regra é correspondência difusa',
            blockIPHelper:
                'IPs bloqueados são armazenados temporariamente no OpenResty e serão desbloqueados quando você reiniciar o OpenResty. Eles podem ser bloqueados permanentemente através da função de bloqueio',
            addWhiteUrlHelper: 'Adicionar URL {0} à lista branca?',
            dashHelper:
                'A versão comunitária também pode usar as funções nas configurações globais e configurações de site',
            wafStatusHelper:
                'O firewall não está ativado. A proteção de segurança do site está pausada. Ative-o assim que possível.',
            enableProtection: 'Ativar Proteção',
            ccMode: 'Modo',
            global: 'Modo Global',
            uriMode: 'Modo URL',
            globalHelper:
                'Modo Global: Ativado quando o número total de solicitações para qualquer URL dentro de uma unidade de tempo excede o limite',
            uriModeHelper:
                'Modo URL: Ativado quando o número de solicitações para uma única URL dentro de uma unidade de tempo excede o limite',
            ip: 'Lista negra de IPs',
            globalSettingHelper:
                'Configurações com a tag [Website] precisam ser ativadas em [Configurações do Website], e as configurações globais são apenas as configurações padrão para sites recém-criados',
            globalSettingHelper2:
                'As configurações precisam ser ativadas tanto em [Configurações Globais] quanto em [Configurações do Website] ao mesmo tempo',
            urlCCHelper: 'Mais de {1} solicitações para este URL dentro de {0} segundos, bloqueando este IP {2}',
            urlCCHelper2: 'O URL não pode conter parâmetros',
            notContain: 'Não contém',
            urlcc: 'Limitação de frequência de URL',
            method: 'Tipo de solicitação',
            addIpsToBlock: 'Bloquear IPs em massa',
            addIpSegmentToBlock: 'Bloquear segmento de IP',
            addIpSegmentsToBlock: 'Bloquear segmentos de IP em massa',
            addUrlsToWhite: 'Adicionar URLs à lista branca em massa',
            noBlackIp: 'O IP já está bloqueado, não é necessário bloquear novamente',
            noWhiteUrl: 'O URL já está na lista branca, não é necessário adicionar novamente',
            spiderIpHelper:
                'Quando ativado, apenas os spiders selecionados são permitidos; quando desativado, todos são bloqueados.',
            spiderIp: 'Pool de IPs de spiders',
            spider: 'Spider',
            spiderAllowlist: 'Spiders permitidos',
            spiderAllowlistEmpty: 'Nenhum spider selecionado. Ao salvar, todos os spiders serão bloqueados.',
            geoIp: 'Biblioteca de endereços IP',
            geoIpHelper: 'Usado para determinar a localização geográfica do IP',
            stat: 'Relatório de ataques',
            statTitle: 'Relatório',
            attackIp: 'IP de ataque',
            attackCountNum: 'Número de ataques',
            percent: 'Porcentagem',
            addblackUrlHelper: 'Adicionar URL: {0} à lista negra padrão?',
            rce: 'Execução remota de código',
            software: 'Software',
            cveHelper: 'Contém vulnerabilidades comuns de software e frameworks',
            vulnCheck: 'Regras complementares',
            ssrf: 'Vulnerabilidade SSRF',
            afr: 'Leitura arbitrária de arquivos',
            ua: 'Acesso não autorizado',
            id: 'Dicas de informações',
            aa: 'Desvio de autenticação',
            dr: 'Trasversal de diretórios',
            xxe: 'Vulnerabilidade XXE',
            suid: 'Vulnerabilidade de serialização',
            dos: 'Vulnerabilidade de negação de serviço',
            afd: 'Download arbitrário de arquivos',
            sqlInjection: 'Injeção de SQL',
            afw: 'Escrita arbitrária de arquivos',
            il: 'Dicas de informações',
            clearAllLog: 'Limpar todos os logs',
            exportLog: 'Exportar logs',
            appRule: 'Regras de aplicação',
            appRuleHelper:
                'Regras comuns de aplicações, habilitar pode reduzir falsos positivos, um site pode usar apenas uma regra',
            logExternal: 'Excluir tipos de registro',
            ipWhite: 'Lista branca de IPs',
            urlWhite: 'Lista branca de URLs',
            uaWhite: 'Lista branca de User-Agent',
            logExternalHelper:
                'Tipos de registro excluídos não serão registrados nos logs, listas negras/brancas, restrições de acesso de região e regras personalizadas geram muitos logs, recomenda-se excluir',
            ssti: 'Ataque SSTI',
            crlf: 'Injeção CRLF',
            strict: 'Modo estrito',
            strictHelper: 'Usa regras mais rigorosas para validar solicitações',
            executionStrategy: 'Estratégia de execução',
            detectionStrength: 'Nível de detecção',
            protectionMode: 'Modo de proteção',
            observationMode: 'Modo de observação',
            standardMode: 'Modo padrão',
            observationModeHelper: 'Detecta e registra solicitações sem bloqueá-las',
            observationModeConfirm:
                'No modo de observação, todas as correspondências do WAF são registradas sem bloquear solicitações. Continuar?',
            globalStrictRequired: 'Primeiro habilite o modo estrito nas configurações globais',
            websiteSearchHelper: 'Digite o domínio, alias ou observação do site',
            configReadFailed: 'Falha ao carregar a configuração',
            detailSetting: 'Configurações detalhadas',
            observe: 'Observar',
            saveLog: 'Salvar log',
            remoteURLHelper: 'O URL remoto precisa garantir um IP por linha e nenhum outro caractere',
            notFound: 'Not Found (404)',
            serviceUnavailable: 'Serviço Indisponível (503)',
            gatewayTimeout: 'Tempo Limite da Porta de Entrada (504)',
            belongToIpGroup: 'Pertence ao Grupo de IP',
            notBelongToIpGroup: 'Não pertence ao Grupo de IP',
            unknownWebsiteKey: 'Domínio Desconhecido',
            special: 'Domínio Especial',
            fileToLarge: 'O arquivo excede 1MB e não pode ser enviado',
            uploadOverLimit: 'O arquivo enviado excede o limite de quantidade, máximo 1 arquivo',
            importRuleHelper: 'Uma regra por linha',
        },
        monitor: {
            '360': 'Busca 360',
            name: 'Monitoramento de Websites',
            pv: 'Visualizações de Página',
            uv: 'Visitantes Únicos',
            flow: 'Fluxo de Tráfego',
            ip: 'IP',
            spider: 'Spider',
            visitors: 'Tendências de Visitantes',
            today: 'Hoje',
            last7days: 'Últimos 7 Dias',
            last30days: 'Últimos 30 Dias',
            uvMap: 'Mapa de Visitantes (30 dias)',
            qps: 'Requisições em Tempo Real (por minuto)',
            flowSec: 'Tráfego em Tempo Real (por minuto)',
            excludeCode: 'Excluir Códigos de Status',
            excludeUrl: 'Excluir URLs',
            excludeExt: 'Excluir Extensões',
            cdnHelper: 'Obter o IP real do Header fornecido pela CDN',
            reqRank: 'Ranking de Visitas',
            refererDomain: 'Domínio de Referência',
            os: 'Sistema',
            browser: 'Navegador/Cliente',
            device: 'Dispositivo',
            showMore: 'Mais',
            unknown: 'Outro',
            pc: 'Computador',
            mobile: 'Dispositivo Móvel',
            wechat: 'WeChat',
            machine: 'Máquina',
            tencent: 'Navegador Tencent',
            ucweb: 'Navegador UC',
            '2345explorer': 'Navegador 2345',
            huaweibrowser: 'Navegador Huawei',
            log: 'Logs de Requisição',
            statusCode: 'Código de Status',
            requestTime: 'Tempo de Resposta',
            flowRes: 'Tráfego de Resposta',
            method: 'Método de Requisição',
            statusCodeHelper: 'Insira o código de status acima',
            statusCodeError: 'Tipo de código de status inválido',
            methodHelper: 'Insira o método de requisição acima',
            all: 'Todos',
            baidu: 'Baidu',
            google: 'Google',
            bing: 'Bing',
            bytes: 'Manchetes do Dia',
            sogou: 'Sogou',
            failed: 'Erro',
            ipCount: 'Contagem de IPs',
            spiderCount: 'Requisições de Spider',
            averageReqTime: 'Tempo Médio de Resposta',
            totalFlow: 'Fluxo Total',
            logSize: 'Tamanho do Arquivo de Log',
            realIPType: 'Método de Obtenção do IP Real',
            realIPRecognition: 'Identificação do IP real',
            fromHeader: 'Obter do Header HTTP',
            fromHeaders: 'Obter da lista de Headers',
            header: 'Header HTTP',
            cdnConfig: 'Configuração da CDN',
            xff1: 'Proxy de Primeiro Nível de X-Forwarded-For',
            xff2: 'Proxy de Segundo Nível de X-Forwarded-For',
            xff3: 'Proxy de Terceiro Nível de X-Forwarded-For',
            xffHelper:
                'Por exemplo: X-Forwarded-For: <cliente>,<proxy1>,<proxy2>,<proxy3>. O proxy superior pegará o último IP <proxy3>',
            headersHelper:
                'Obter o IP real dos Headers HTTP comuns fornecidos pela CDN, selecionando o primeiro valor disponível',
            monitorCDNHelper:
                'Modificar a configuração da CDN para monitoramento do site também atualizará as configurações de CDN do WAF',
            wafCDNHelper:
                'Modificar a configuração de CDN do WAF também atualizará as configurações de CDN do monitoramento do site',
            originProtection: 'Proteção do servidor de origem',
            originProtectionHelper:
                'Somente nós CDN nos grupos de IP selecionados podem conectar à origem. A detecção do IP real do visitante usa uma opção separada.',
            originProtectionIPGroups: 'Grupos de IP de origem CDN',
            originProtectionIPGroupsPlaceholder: 'Selecione grupos de IP de origem CDN confiáveis',
            originProtectionWarning:
                'Uma configuração incorreta pode tornar o site indisponível. Confirme se todos os endereços de retorno da CDN estão incluídos.',
            originProtectionEnableConfirm:
                'Conexões fora dos grupos de IP selecionados serão tratadas como acesso direto à origem e bloqueadas. Continuar?',
            statusErr: 'Formato de código de status inválido',
            shenma: 'Busca Shenma',
            duckduckgo: 'DuckDuckGo',
            yandex: 'Yandex',
            gptbot: 'GPTBot',
            excludeUri: 'Excluir URIs',
            top100Helper: 'Mostrar os 100 principais dados',
            logSaveDay: 'Período de Retenção de Logs (dias)',
            cros: 'Chrome OS',
            theworld: 'Navegador TheWorld',
            edge: 'Microsoft Edge',
            maxthon: 'Navegador Maxthon',
            monitorStatusHelper: 'O monitoramento do site está desabilitado. Habilite agora',
            excludeIp: 'Excluir Endereços IP',
            excludeUa: 'Excluir User-Agent',
            remotePort: 'Porta Remota',
            unknown_browser: 'Desconhecido',
            unknown_os: 'Desconhecido',
            unknown_device: 'Desconhecido',
            logSaveSize: 'Tamanho Máximo de Salvamento de Log',
            logSaveSizeHelper: 'Este é o tamanho de salvamento de log para um único site',
            '360se': 'Navegador de Segurança 360',
            websites: 'Lista de Sites',
            trend: 'Estatísticas de Tendência',
            reqCount: 'Contagem de Solicitações',
            uriHelper: 'Você pode usar /test/* ou /*/index.php para excluir Uri',
        },
        tamper: {
            tamper: 'Proteção contra adulteração do site',
            tamperCreateHint:
                'O diretório atual pode ser afetado pela proteção contra alterações ou por atributos de arquivo, causando falha na criação.',
            ignoreTemplate: 'Modelo de Exclusão',
            protectTemplate: 'Modelo de Proteção',
            ignoreTemplateHelper:
                'Digite o conteúdo de exclusão, separado por Enter ou espaço. (Diretório específico ./log ou nome do diretório tmp, para excluir arquivos precisa inserir arquivo específico ./data/test.html)',
            protectTemplateHelper:
                'Digite o conteúdo de proteção, separado por Enter ou espaço. (Arquivo específico ./index.html, extensão de arquivo .html, tipo de arquivo js, para proteger diretórios precisa inserir diretório específico ./log)',
            templateContent: 'Conteúdo do Modelo',
            template: 'Modelo',
            saveTemplate: 'Salvar como Modelo',
            tamperHelper1:
                'Para sites de implantação com um clique, é recomendável ativar a proteção contra violação de diretório de aplicativos; se o site não puder ser usado normalmente ou o backup/restauração falhar, desative primeiro a proteção contra violação;',
            tamperHelper2:
                'Restringirá operações de leitura/gravação, exclusão, permissão e modificação de proprietário para arquivos protegidos em diretórios não excluídos',
            tamperPath: 'Diretório de Proteção',
            tamperPathEdit: 'Modificar Caminho',
            log: 'Log de Bloqueio',
            totalProtect: 'Proteção Total',
            todayProtect: 'Proteção de Hoje',
            templateRule: 'Comprimento 1-512, o nome não pode conter {0} e outros símbolos',
            ignore: 'Excluir',
            ignoreHelper:
                'Selecione ou digite o conteúdo de exclusão, separado por Enter ou espaço. (Diretório específico ./log ou nome do diretório tmp, para excluir arquivos precisa inserir ou selecionar arquivo específico ./data/test.html)',
            protect: 'Proteger',
            protectHelper:
                'Selecione ou digite o conteúdo de proteção, separado por Enter ou espaço. (Arquivo específico ./index.html, extensão de arquivo .html, tipo de arquivo js, para proteger diretórios precisa inserir ou selecionar diretório específico ./log)',
            tamperHelper00: 'Exclusão e proteção suportam apenas caminhos relativos;',
            tamperHelper01:
                'Após ativar a proteção contra violação, o sistema restringirá as operações de criação, edição e exclusão de arquivos protegidos em diretórios não excluídos;',
            tamperHelper02:
                'Prioridade: Proteção de caminho específico > Exclusão de caminho específico > Proteção > Exclusão',
            tamperHelper03:
                'As operações de monitoramento visam apenas diretórios não excluídos, monitorando a criação de arquivos não protegidos nesses diretórios.',
            disableHelper: 'Prestes a desativar a proteção contra violação para os seguintes sites, continuar?',
            appendOnly: 'Somente Acréscimo',
            appendOnlyHelper:
                'Restringe operações de exclusão de arquivos neste diretório, permitindo apenas adição de diretórios excluídos ou arquivos não protegidos',
            immutable: 'Imutável',
            immutableHelper:
                'Restringe operações de edição, exclusão, permissão e modificação de proprietário para este arquivo',
            onWatch: 'Monitorar',
            onWatchHelper:
                'Monitora e intercepta a criação de arquivos protegidos ou diretórios não excluídos neste diretório',
            forceStop: 'Forçar Fechamento',
            forceStopHelper: 'Desativará forçadamente a função anti-violência para este diretório do site. Continuar?',
        },
        setting: {
            setting: 'Configurações do Painel',
            title: 'Descrição do Painel',
            titleHelper:
                'Será exibido na página de login do usuário (ex.: Painel de gerenciamento de manutenção de servidores Linux, recomendado 8-15 caracteres)',
            logo: 'Logo (Sem Texto)',
            logoHelper:
                'Será exibido no canto superior esquerdo da página de gerenciamento quando o menu estiver recolhido (tamanho recomendado da imagem: 82px*82px)',
            logoWithText: 'Logo (Com Texto)',
            logoWithTextHelper:
                'Será exibido no canto superior esquerdo da página de gerenciamento quando o menu estiver expandido (tamanho recomendado da imagem: 185px*55px)',
            favicon: 'Ícone do Site',
            faviconHelper: 'Ícone do site (tamanho recomendado da imagem: 16px*16px)',
            setDefault: 'Restaurar Padrão',
            setHelper: 'As configurações atuais serão salvas. Deseja continuar?',
            setDefaultHelper: 'Todas as configurações do painel serão restauradas para o padrão. Deseja continuar?',
            logoGroup: 'Logo',
            imageGroup: 'Imagem',
            loginImage: 'Imagem',
            loginImageHelper: 'Será exibida na página de login (Tamanho recomendado: 500x416px)',
            loginBgType: 'Tipo de Fundo',
            loginBgImage: 'Imagem de Fundo',
            loginBgImageHelper:
                'Será exibida como imagem de fundo na página de login (Tamanho recomendado: 1920x1080px)',
            loginBgColor: 'Cor de Fundo',
            loginBgColorHelper: 'Será exibida como cor de fundo na página de login',
            image: 'Imagem',
            bgColor: 'Cor de Fundo',
            loginGroup: 'Página de login',
            loginBtnLinkColor: 'Cor do botão/link',
            loginBtnLinkColorHelper: 'Será exibido como a cor do botão/link na página de login',
        },
        helper: {
            wafTitle1: 'Mapa de Interceptação',
            wafContent1: 'Exibe a distribuição geográfica das interceptações nos últimos 30 dias',
            wafTitle2: 'Restrições de Acesso Regional',
            wafContent2: 'Restringe o acesso ao site com base em localizações geográficas',
            wafTitle3: 'Página de Interceptação Personalizada',
            wafContent3: 'Crie uma página personalizada para exibir após uma solicitação ser interceptada',
            wafTitle4: 'Regras Personalizadas (ACL)',
            wafContent4: 'Intercepta solicitações com base em regras personalizadas',
            tamperTitle1: 'Monitoramento de Integridade de Arquivos',
            tamperContent1:
                'Monitora a integridade dos arquivos do site, incluindo arquivos principais, scripts e arquivos de configuração.',
            tamperTitle2: 'Varredura e Detecção em Tempo Real',
            tamperContent2:
                'Detecta arquivos anormais ou alterados por meio de varredura em tempo real do sistema de arquivos do site.',
            tamperTitle3: 'Configurações de Permissão de Segurança',
            tamperContent3:
                'Restringe o acesso aos arquivos do site através de configurações adequadas de permissões e políticas de controle de acesso, reduzindo a superfície de ataque.',
            tamperTitle4: 'Registro e Análise',
            tamperContent4:
                'Registra logs de acesso e operações em arquivos para auditoria e análise posteriores, ajudando administradores a identificar ameaças de segurança potenciais.',
            settingTitle1: 'Mensagem de Boas-vindas Personalizada',
            settingContent1: 'Defina uma mensagem de boas-vindas personalizada na página de login do 1Panel.',
            settingTitle2: 'Logo Personalizado',
            settingContent2: 'Permite o upload de imagens de logotipo contendo nomes de marcas ou outros textos.',
            settingTitle3: 'Ícone Personalizado do Site',
            settingContent3:
                'Permite o upload de ícones personalizados para substituir o ícone padrão do navegador, melhorando a experiência do usuário.',
            monitorTitle1: 'Tendência de Visitantes',
            monitorContent1: 'Estatísticas e exibição das tendências de visitantes do site',
            monitorTitle2: 'Mapa de Visitantes',
            monitorContent2: 'Estatísticas e exibição da distribuição geográfica dos visitantes do site',
            monitorTitle3: 'Estatísticas de Acesso',
            monitorContent3:
                'Estatísticas sobre informações de solicitação do site, incluindo robôs de busca, dispositivos de acesso, status das solicitações, etc.',
            monitorTitle4: 'Monitoramento em Tempo Real',
            monitorContent4:
                'Monitoramento em tempo real de informações de solicitações do site, incluindo número de solicitações, tráfego, etc.',
            alertTitle1: 'Alertas por SMS',
            alertContent1:
                'Quando houver uso anormal de recursos do servidor, expiração de sites e certificados, nova versão disponível, expiração de senha, entre outros, os usuários serão notificados via SMS para garantir um processamento oportuno.',
            alertTitle2: 'Registro de Alertas',
            alertContent2:
                'Oferece aos usuários a função de visualizar logs de alertas, facilitando o rastreamento e a análise de eventos históricos de alerta.',
            alertTitle3: 'Configurações de Alertas',
            alertContent3:
                'Permite que os usuários configurem números de telefone personalizados, frequência de envio diário e horários de envio, facilitando a criação de alertas mais adequados.',
            nodeDashTitle1: 'Gerenciamento de Aplicativos',
            nodeDashContent1:
                'Gerenciamento unificado de aplicativos multi-nó, suporta monitoramento de status, início/parada rápida, conexão de terminal e backup',
            nodeDashTitle2: 'Gerenciamento de Sites',
            nodeDashContent2:
                'Gerenciamento unificado de sites multi-nó, monitoramento de status em tempo real, suporta início/parada em lote e backup rápido',
            nodeDashTitle3: 'Gerenciamento de Bancos de Dados',
            nodeDashContent3:
                'Gerenciamento unificado de bancos de dados multi-nó, status chave de relance, suporta backup com um clique',
            nodeDashTitle4: 'Gerenciamento de Tarefas Agendadas',
            nodeDashContent4:
                'Gerenciamento unificado de tarefas agendadas multi-nó, suporta monitoramento de status, início/parada rápida e execução manual por acionamento',
            nodeTitle1: 'Adição de Nó com Um Clique',
            nodeContent1: 'Integre rapidamente vários nós de servidor',
            nodeTitle2: 'Atualização em Lote',
            nodeContent2: 'Sincronize e atualize todos os nós com uma única operação',
            nodeTitle3: 'Monitoramento de Status do Nó',
            nodeContent3: 'Acompanhe em tempo real o status operacional de cada nó',
            nodeTitle4: 'Conexão Remota Rápida',
            nodeContent4: 'Conecte-se diretamente a terminais remotos de nós com um clique',
            fileExchangeTitle1: 'Transmissão de Autenticação por Chave',
            fileExchangeContent1: 'Autentique via chaves SSH para garantir a segurança da transmissão.',
            fileExchangeTitle2: 'Sincronização de Arquivos Eficiente',
            fileExchangeContent2:
                'Sincronize apenas o conteúdo alterado para melhorar significativamente a velocidade e estabilidade da transmissão.',
            fileExchangeTitle3: 'Suporte a Troca Entre Múltiplos Nós',
            fileExchangeContent3:
                'Transfira facilmente arquivos de projeto entre diferentes nós, gerencie vários servidores de forma flexível.',
            nodeAppTitle1: 'Gerenciamento de Atualização de Aplicativos',
            nodeAppContent1:
                'Monitoramento unificado de atualizações de aplicativos multi-nó, suporta atualização com um clique',
            appTitle1: 'Gerenciamento Flexível do Painel',
            appContent1: 'Gerencie facilmente seu servidor 1Panel a qualquer hora e em qualquer lugar.',
            appTitle2: 'Informações Completas do Serviço',
            appContent2:
                'Gerencie aplicativos, sites, Docker, bancos de dados, etc. pelo app móvel e crie rapidamente aplicativos e sites.',
            appTitle3: 'Monitoramento Anômalo em Tempo Real',
            appContent3:
                'Veja o status do servidor, monitoramento de segurança WAF, estatísticas de visitas ao site e saúde dos processos em tempo real no aplicativo móvel.',
            clusterTitle1: 'Implantação Mestre-Escravo',
            clusterContent1:
                'Suporta a criação de instâncias mestre-escravo MySQL/Postgres/Redis em diferentes nós, completando automaticamente a associação e inicialização mestre-escravo',
            clusterTitle2: 'Gestão Mestre-Escravo',
            clusterContent2:
                'Página unificada para gerir centralmente vários nós mestre-escravo, visualizar seus papéis, status de execução, etc.',
            clusterTitle3: 'Estado de Replicação',
            clusterContent3:
                'Exibe o estado de replicação mestre-escravo e informações de atraso, auxiliando na resolução de problemas de sincronização',
            modelDownloaderTitle1: 'Descoberta de modelos',
            modelDownloaderContent1:
                'Pesquise repositórios de modelos do HuggingFace diretamente e veja downloads, curtidas, detalhes do modelo e lista de arquivos.',
            modelDownloaderTitle2: 'Downloads acelerados',
            modelDownloaderContent2:
                'Configure um endpoint de aceleração do HuggingFace e HF Token para o site oficial, espelhos e modelos privados.',
            modelDownloaderTitle3: 'Acompanhamento de tarefas',
            modelDownloaderContent3:
                'Veja filas de download, status, progresso e erros, com suporte para cancelar, tentar novamente e limpar registros.',
            modelDownloaderTitle4: 'Gerenciamento local',
            modelDownloaderContent4:
                'Gerencie diretórios de modelos locais em um só lugar, incluindo caminhos, tamanhos, horários e exclusão de modelos não usados.',
            vllmTitle1: 'Gestão centralizada',
            vllmContent1:
                'Integre instâncias vLLM distribuídas ao 1Panel e monitore versões, status operacional e diretórios de execução de forma centralizada.',
            vllmTitle2: 'Implantação rápida',
            vllmContent2:
                'Utilize formulários visuais para selecionar versões, montar diretórios de modelos e configurar parâmetros de inicialização, reduzindo a complexidade da configuração manual.',
            vllmTitle3: 'Eficiência operacional',
            vllmContent3:
                'Gerencie a criação, edição, inicialização, parada, reinicialização, exclusão de instâncias e o acompanhamento de tarefas em uma única interface, aumentando a eficiência operacional dos serviços de modelos locais.',
            vllmTitle4: 'Configuração flexível',
            vllmContent4:
                'Gerencie portas, contêineres, comandos de inicialização e configurações do Compose de forma unificada por meio de opções avançadas, facilitando implantações padronizadas e ajustes posteriores.',
        },
        node: {
            master: 'Nó Principal',
            masterBackup: 'Backup do Nó Mestre',
            backupNode: 'Nó de Backup',
            backupFrequency: 'Frequência de Backup (horas)',
            backupCopies: 'Cópias de Backup',
            noBackupNode:
                'O nó de backup está vazio atualmente. Selecione um nó de backup para salvar e tente novamente!',
            masterBackupAlert:
                'O backup do nó mestre não está configurado atualmente. Para garantir a segurança dos dados, configure um nó de backup o mais rápido possível para facilitar a troca manual para um novo nó mestre em caso de falha.',
            node: 'Nó',
            addr: 'Endereço',
            nodeUpgrade: 'Configurações de Atualização',
            nodeUpgradeHelper:
                'Os nós selecionados começarão a atualizar automaticamente após a conclusão da atualização do nó mestre, nenhuma operação manual necessária.',
            nodeUpgradePackageManage: 'Gerenciamento de Pacotes de Instalação',
            nodeUpgradePackageClean: 'Limpar',
            nodeUpgradePackageFormatHelper:
                'Somente pacotes de instalação `1panel-agent_v*_*` ou `1panel-v*-linux-*` são suportados',
            nodeUpgradePackageHostConfirm: 'O arquivo do servidor {0} será selecionado. Continuar?',
            nodeUpgradePackageCleanHelper:
                'Todos os pacotes de atualização de versões anteriores serão limpos. Continuar?',
            nodeUpgradeOfflinePackageHelper:
                'Em ambientes offline, nós com arquiteturas diferentes devem enviar o pacote de atualização correspondente antes de atualizar.',
            healthCheck: 'Verificação de Integridade',
            healthCheckFrequency: 'Frequência da Verificação Automática',
            healthCheckFrequencyHelper:
                'Verifica automaticamente a integridade dos nós na frequência configurada. Digite 0 para desativar as verificações automáticas.',
            healthCheckFrequencyLimit:
                'A frequência da verificação não pode exceder um dia e deve ser um número inteiro não negativo.',
            autoCheckFailedNodes: 'Verificar automaticamente nós com falha',
            autoCheckFailedNodesHelper:
                'Durante as verificações automáticas, também verifica nós com status de falha ou anormal. Só se aplica quando a frequência não é 0.',
            loadFailedNodeResources: 'Atualizar recursos de nós com falha',
            loadFailedNodeResourcesHelper:
                'Ao atualizar a lista de nós, também consulta os recursos de nós com status de falha ou anormal.',
            nodeUnhealthy: 'Estado do nó anormal',
            deletedNode: 'O nó excluído {0} não suporta atualmente operações de atualização!',
            nodeUnhealthyHelper:
                'Estado anormal do nó detectado. Por favor verifique em [Gestão de Nós] e tente novamente!',
            nodeUnbind: 'Nó não vinculado à licença',
            nodeUnbindHelper:
                'Detectamos que este nó não está vinculado a uma licença. Por favor vincule no menu [Configurações do Painel - Licença] e tente novamente!',
            memTotal: 'Memória Total',
            nodeManagement: 'Gerenciamento Multi-Máquina',
            multiOverview: 'Multi-Máquina',
            commonNodes: 'Nós frequentes',
            searchNodePlaceholder: 'Pesquise nome, grupo ou endereço do nó',
            nodeItem: 'Gerenciamento de Nós',
            panelItem: 'Gerenciamento de Painéis',
            addPanel: 'Adicionar Painel',
            addPanelHelper:
                'Após adicionar o painel com sucesso, você pode acessar rapidamente o painel de destino em [Visão Geral - Painéis].',
            panel: 'Painel 1Panel',
            others: 'Outros Painéis',
            addNode: 'Adicionar Nó',
            connInfo: 'Informações de Conexão',
            nodeInfo: 'Informações do Nó',
            withProxy: 'Ativar acesso por proxy',
            withoutProxy: 'Desativar acesso por proxy',
            withProxyHelper:
                'O proxy do sistema {0}, mantido nas configurações do painel, será usado para acessar os nós secundários. Continuar?',
            withoutProxyHelper:
                'O uso do proxy do sistema mantido nas configurações do painel para acessar os nós secundários será interrompido. Continuar?',
            syncInfo: 'Sincronização de dados,',
            syncHelper: 'Quando os dados do nó mestre mudam, são sincronizados em tempo real para este nó filho,',
            syncBackupAccount: 'Configurações de conta de backup',
            syncWithMaster:
                'Após atualizar para a edição comercial, todos os dados serão sincronizados por padrão. As políticas de sincronização podem ser ajustadas manualmente no gerenciamento de nós.',
            syncProxy: 'Configurações de proxy do sistema',
            syncProxyHelper: 'Sincronizar configurações de proxy do sistema requer reinicialização do Docker',
            syncProxyHelper1: 'Reiniciar o Docker pode afetar os serviços de contêiner em execução.',
            syncProxyHelper2: 'Você pode reiniciar manualmente na página Contêineres - Configuração.',
            syncProxyHelper3:
                'Sincronizar configurações de proxy do sistema requer reinicialização do Docker, o que pode afetar os serviços de contêiner em execução',
            syncProxyHelper4:
                'Sincronizar configurações de proxy do sistema requer reinicialização do Docker. Você pode reiniciar manualmente mais tarde na página Contêineres - Configuração.',
            syncCustomApp: 'Sincronizar Repositório de Aplicativos Personalizados',
            syncAlertSetting: 'Configurações de alerta do sistema',
            syncNodeInfo: 'Dados básicos do nó,',
            nodeSyncHelper: 'A sincronização das informações do nó irá sincronizar as seguintes informações:',
            nodeSyncHelper1: '1. Informações da conta de backup pública',
            nodeSyncHelper2: '2. Informações de conexão entre o nó principal e os sub-nós',
            nodeCheck: 'Verificação de disponibilidade',
            checkSSH: 'Verificar conexão SSH do nó',
            checkUserPermission: 'Verificar permissões de usuário do nó',
            isNotRoot: 'Detectado que sudo sem senha não é suportado neste nó e o usuário atual não é root',
            checkLicense: 'Verificar status da licença do nó',
            checkService: 'Verificar informações de serviço existentes no nó',
            checkPort: 'Verificar acessibilidade da porta do nó',
            panelExist:
                'Detectado que este nó está executando o serviço 1Panel V1. Atualize para V2 usando o script de migração antes de adicionar.',
            coreExist:
                'O nó atual já está habilitado como nó mestre e não pode ser adicionado diretamente como nó escravo. Por favor, faça o downgrade para nó escravo primeiro antes de adicionar, consulte a documentação para detalhes.',
            agentExist:
                'Detectado que 1panel-agent já está instalado neste nó. Continuar irá reter os dados existentes e apenas substituir o serviço 1panel-agent.',
            agentNotExist:
                'Foi detectado que o 1panel-agent não está instalado neste nó, portanto, as informações do nó não podem ser editadas diretamente. Por favor, exclua e adicione novamente.',
            oldDataExist:
                'Detectados dados históricos do 1Panel V2 neste nó. As seguintes informações serão usadas para sobrescrever as configurações atuais:',
            errLicense: 'A licença vinculada a este nó está indisponível. Por favor verifique e tente novamente!',
            errNodePort:
                'A porta do nó [ {0} ] foi detectada como inacessível. Verifique se o firewall ou grupo de segurança liberou esta porta.',
            reinstallHelper: 'Reinstalar o nó {0}, deseja continuar?',
            unhealthyCheck: 'Verificação Anormal',
            fixOperation: 'Operação de Correção',
            checkName: 'Item de Verificação',
            checkSSHConn: 'Verificar Disponibilidade da Conexão SSH',
            fixSSHConn: 'Edite o nó manualmente para confirmar as informações de conexão',
            checkConnInfo: 'Verificar Informações de Conexão do Agente',
            checkStatus: 'Verificar Disponibilidade do Serviço do Nó',
            fixStatus: 'Execute "systemctl status 1panel-agent.service" para verificar se o serviço está em execução.',
            checkAPI: 'Verificar Disponibilidade da API do Nó',
            fixAPI: 'Verifique os logs do nó e confirme se as portas do firewall estão devidamente abertas.',
            forceDelete: 'Excluir Forçadamente',
            operateHelper: 'A operação {0} será realizada nos seguintes nós, deseja continuar?',
            operatePanelHelper: 'A operação {0} será executada nos painéis a seguir. Continuar?',
            forceDeleteHelper:
                'Excluir forçadamente ignorará erros de exclusão do nó e removerá os metadados do banco de dados',
            uninstall: 'Excluir dados do nó',
            uninstallHelper: 'Isso excluirá todos os dados relacionados ao 1Panel do nó. Escolha com cuidado!',
            baseDir: 'Diretório de Instalação',
            baseDirHelper: 'Quando o diretório de instalação está vazio, será instalado por padrão no diretório /opt',
            nodePort: 'Porta do Nó',
            offline: 'Modo offline',
            freeCount: 'Cota gratuita [{0}]',
            offlineHelper: 'Usado quando o nó está em ambiente offline',
            appUpgrade: 'Atualização do Aplicativo',
            appUpgradeHelper: 'Existem {0} aplicativos que precisam ser atualizados',
            dashboardSetting: 'Configurações da Visão Geral',
            keepOneDashboardComponent: 'Mantenha pelo menos uma seção na visão geral',
        },
        customApp: {
            name: 'Repositório de Aplicativos Personalizados',
            appStoreType: 'Fonte do Pacote da App Store',
            appStoreUrl: 'URL do Repositório',
            local: 'Caminho Local',
            remote: 'Link Remoto',
            imagePrefix: 'Prefixo de Imagem',
            imagePrefixHelper:
                'Função: Personalize o prefixo da imagem e modifique o campo de imagem no arquivo compose. Por exemplo, quando o prefixo da imagem é configurado como 1panel/custom, o campo de imagem do MaxKB mudará para 1panel/custom/maxkb:v1.10.0',
            closeHelper: 'Cancelar o uso do repositório de aplicativos personalizados',
            appStoreUrlHelper: 'Apenas formato .tar.gz é suportado',
            postNode: 'Sincronizar para subnó',
            postNodeHelper:
                'Sincronize o pacote da loja personalizada para tmp/customApp/apps.tar.gz no diretório de instalação do sub-nó',
            nodes: 'Selecionar Nós',
            selectNode: 'Selecionar Node',
            selectNodeError: 'Por favor, selecione um nó',
            licenseHelper: 'A versão comercial suporta o recurso de repositório de aplicativos personalizados',
            databaseHelper: 'Banco de dados associado ao aplicativo, selecione o banco de dados do nó de destino',
            nodeHelper: 'Não é possível selecionar o nó atual',
            migrateHelper:
                'Atualmente suporta apenas a migração de aplicações monolíticas e aplicações associadas apenas a bancos de dados MySQL, MariaDB, PostgreSQL',
            opensslHelper:
                'Se usar backup criptografado, as versões do OpenSSL entre os dois nós devem ser consistentes, caso contrário a migração pode falhar.',
            installApp: 'Instalação em lote',
            installAppHelper: 'Instalar aplicativos em lote nos nós selecionados',
        },
        alert: {
            isAlert: 'Alerta',
            alertCount: 'Contagem de Alertas',
            clamHelper: 'Dispara um alerta ao detectar arquivos infectados durante a varredura',
            cronJobHelper: 'Dispara um alerta quando a execução da tarefa falha',
            licenseHelper: 'A edição comercial oferece suporte a mais recursos de alerta',
            alertCountHelper: 'Frequência máxima diária de alertas',
            alert: 'Alerta por SMS',
            logs: 'Registros de Alerta',
            list: 'Lista de Alertas',
            addTask: 'Criar Alerta',
            editTask: 'Editar Alerta',
            alertMethod: 'Método',
            alertMsg: 'Mensagem de Alerta',
            alertRule: 'Regras de Alerta',
            titleSearchHelper: 'Digite o título do alerta para busca aproximada',
            taskType: 'Tipo',
            ssl: 'Expiração do Certificado',
            siteEndTime: 'Expiração do Site',
            panelPwdEndTime: 'Expiração da Senha do Painel',
            panelUpdate: 'Nova Versão do Painel Disponível',
            cpu: 'Alerta de CPU do Servidor',
            memory: 'Alerta de Memória do Servidor',
            load: 'Alerta de Carga do Servidor',
            disk: 'Alerta de Disco do Servidor',
            website: 'Site',
            certificate: 'Certificado SSL',
            remainingDays: 'Dias Restantes',
            sendCount: 'Contagem de Envio',
            recipientPlaceholder: 'Insira o endereço de e-mail',
            addRecipient: 'Adicionar destinatário',
            webhookItem: 'URL do Webhook',
            addWebhook: 'Adicionar Webhook',
            selectAlertType: 'Selecionar tipo de alerta',
            configDetail: 'Configurar detalhes',
            webhookCount: 'Quantidade de Webhooks',
            sms: 'SMS',
            wechat: 'WeChat',
            dingTalk: 'DingTalk',
            feiShu: 'FeiShu',
            mail: 'E-mail',
            email: 'E-mail',
            weCom: 'WeCom',
            bark: 'Bark',
            sendCountRulesHelper: 'Alertas totais enviados antes da expiração (uma vez por dia)',
            panelUpdateRulesHelper: 'Alertas totais enviados para nova versão do painel (uma vez por dia)',
            oneDaySendCountRulesHelper: 'Número máximo de alertas enviados por dia',
            siteEndTimeRulesHelper: 'Sites que nunca expiram não dispararão alertas',
            autoRenewRulesHelper:
                'Certificados com renovação automática ativada e menos de 31 dias restantes não dispararão alertas',
            panelPwdEndTimeRulesHelper:
                'Alertas de expiração da senha do painel não estão disponíveis se nenhuma expiração estiver definida',
            sslRulesHelper: 'Todos os Certificados SSL',
            diskInfo: 'Disco',
            monitoringType: 'Tipo de Monitoramento',
            autoRenew: 'Renovação Automática',
            useDisk: 'Uso de Disco',
            usePercentage: 'Porcentagem de Uso',
            changeStatus: 'Alterar Status',
            disableMsg:
                'Parar a tarefa de alerta impedirá que esta tarefa envie mensagens de alerta. Deseja continuar?',
            enableMsg:
                'Ativar a tarefa de alerta permitirá que esta tarefa envie mensagens de alerta. Deseja continuar?',
            useExceed: 'Uso Excedeu',
            useExceedRulesHelper: 'Dispara alerta quando o uso excede o valor configurado',
            cpuUseExceedAvg: 'O uso médio da CPU excede o valor especificado',
            memoryUseExceedAvg: 'O uso médio da memória excede o valor especificado',
            loadUseExceedAvg: 'O uso médio da carga excede o valor especificado',
            cpuUseExceedAvgHelper: 'O uso médio da CPU dentro do tempo especificado excede o valor especificado',
            memoryUseExceedAvgHelper: 'O uso médio da memória dentro do tempo especificado excede o valor especificado',
            loadUseExceedAvgHelper: 'O uso médio da carga dentro do tempo especificado excede o valor especificado',
            resourceAlertRulesHelper: 'Nota: Alertas contínuos em 30 minutos enviarão apenas um',
            specifiedTime: 'Hora Especificada',
            deleteTitle: 'Excluir Alerta',
            deleteMsg: 'Tem certeza de que deseja excluir a tarefa de alerta?',
            allSslTitle: 'Alertas de Expiração de Todos os Certificados SSL do Site',
            sslTitle: 'Alerta de Expiração do Certificado SSL do Site {0}',
            allSiteEndTimeTitle: 'Alertas de Expiração de Todos os Sites',
            siteEndTimeTitle: 'Alerta de Expiração do Site {0}',
            panelPwdEndTimeTitle: 'Alerta de Expiração da Senha do Painel',
            panelUpdateTitle: 'Notificação de Nova Versão do Painel',
            cpuTitle: 'Alerta de Alto Uso de CPU',
            memoryTitle: 'Alerta de Alto Uso de Memória',
            loadTitle: 'Alerta de Alta Carga',
            diskTitle: 'Alerta de Alto Uso de Disco para o Diretório de Montagem {0}',
            allDiskTitle: 'Alerta de Alto Uso de Disco',
            timeRule: 'Tempo restante menor que {0} dias (se não tratado, será reenviado no próximo dia)',
            panelUpdateRule:
                'Envia um alerta quando uma nova versão do painel é detectada (se não tratado, será reenviado no próximo dia)',
            avgRule: 'Uso médio de {1} excede {2}% em {0} minutos, dispara alerta, envia {3} vezes por dia',
            diskRule:
                'Uso de disco para o diretório de montagem {0} excede {1}{2}, dispara alerta, envia {3} vezes por dia',
            allDiskRule: 'Uso de disco excede {0}{1}, dispara alerta, envia {2} vezes por dia',
            cpuName: 'CPU',
            memoryName: 'Memória',
            loadName: 'Carga',
            diskName: 'Disco',
            syncAlertInfo: 'Envio Manual',
            syncAlertInfoMsg: 'Deseja enviar a tarefa de alerta manualmente?',
            pushError: 'Envio Falhou',
            pushSuccess: 'Envio Bem-sucedido',
            syncError: 'Sincronização Falhou',
            success: 'Alerta Bem-sucedido',
            pushing: 'Enviando...',
            error: 'Falha no alerta',
            cleanLog: 'Limpar Registros',
            cleanAlertLogs: 'Limpar Registros de Alertas',
            daily: 'Contagem Diária de Alertas: {0}',
            cumulative: 'Contagem Acumulada de Alertas: {0}',
            clams: 'Varredura de Vírus',
            taskName: 'Nome da Tarefa',
            cronJobType: 'Tipo de Tarefa',
            clamPath: 'Diretório de Varredura',
            cronjob: 'Tarefa Cron agendada {0} falhou',
            app: 'Backup do Aplicativo',
            web: 'Backup do Site',
            database: 'Backup do Banco de Dados',
            directory: 'Backup do Diretório',
            log: 'Registros de Backup',
            snapshot: 'Instantâneo do Sistema',
            clamsRulesHelper: 'Tarefas de varredura de vírus que exigem alertas por',
            cronJobRulesHelper: 'Este tipo de tarefa cron precisa ser configurado',
            clamsTitle: 'Tarefa de Varredura de Vírus 「 {0} 」 detectou arquivo infectado',
            cronJobAppTitle: 'Tarefa Cron - Falha no Backup do Aplicativo 「 {0} 」',
            cronJobWebsiteTitle: 'Tarefa Cron - Falha no Backup do Site 「 {0} 」',
            cronJobDatabaseTitle: 'Tarefa Cron - Falha no Backup do Banco de Dados 「 {0} 」',
            cronJobDirectoryTitle: 'Tarefa Cron - Falha no Backup do Diretório 「 {0} 」',
            cronJobLogTitle: 'Tarefa Cron - Falha nos Registros de Backup 「 {0} 」',
            cronJobSnapshotTitle: 'Tarefa Cron - Falha no Instantâneo do Sistema 「 {0} 」',
            cronJobShellTitle: 'Tarefa Cron - Falha no Script Shell 「 {0} 」',
            cronJobCurlTitle: 'Tarefa Cron - Falha no Acesso à URL 「 {0} 」',
            cronJobCutWebsiteLogTitle: 'Tarefa Cron - Falha no Corte do Registro do Site 「 {0} 」',
            cronJobCleanTitle: 'Tarefa Cron - Falha na Limpeza de Cache 「 {0} 」',
            cronJobNtpTitle: 'Tarefa Cron - Falha na Sincronização do Horário do Servidor 「 {0} 」',
            clamsRule: 'Varredura de vírus detectou arquivo infectado, enviado {0} vezes por dia',
            cronJobAppRule: 'Falha na tarefa de backup do aplicativo, enviada {0} vezes por dia',
            cronJobWebsiteRule: 'Falha na tarefa de backup do site, enviada {0} vezes por dia',
            cronJobDatabaseRule: 'Falha na tarefa de backup do banco de dados, enviada {0} vezes por dia',
            cronJobDirectoryRule: 'Falha na tarefa de backup do diretório, enviada {0} vezes por dia',
            cronJobLogRule: 'Falha na tarefa de backup de registros, enviada {0} vezes por dia',
            cronJobSnapshotRule: 'Falha na tarefa de backup de instantâneo, enviada {0} vezes por dia',
            cronJobShellRule: 'Falha na tarefa de script shell, enviada {0} vezes por dia',
            cronJobCurlRule: 'Falha na tarefa de acesso à URL, enviada {0} vezes por dia',
            cronJobCutWebsiteLogRule: 'Falha na tarefa de corte do registro do site, enviada {0} vezes por dia',
            cronJobCleanRule: 'Falha na tarefa de limpeza de cache, enviada {0} vezes por dia',
            cronJobNtpRule: 'Falha na tarefa de sincronização do horário do servidor, enviada {0} vezes por dia',
            alertSmsHelper: 'Limite de SMS: total de {0} mensagens, {1} já usadas',
            goBuy: 'Comprar Mais',
            phone: 'Telefone',
            phoneHelper: 'Forneça um número de telefone real para mensagens de alerta',
            dailyAlertNum: 'Número de alertas diários',
            dailyAlertNumHelper: 'Número total de alertas diários, até um máximo de 100 alertas',
            timeRange: 'Intervalo de Tempo',
            sendTimeRange: 'Intervalo de tempo para envio de',
            sendTimeRangeHelper: 'Pode enviar alerta dentro do intervalo de tempo {0}',
            to: '-',
            startTime: 'hora de início',
            endTime: 'hora de término',
            defaultPhone: 'Número de telefone padrão vinculado à conta de licença',
            noticeAlert: 'Alerta de Notificação',
            resourceAlert: 'Alerta de Recursos',
            agentOfflineAlertHelper:
                'Quando o alerta offline estiver ativado para o nó, o nó principal verificará a cada 30 minutos para executar as tarefas de alerta.',
            offline: 'Alerta Offline',
            offlineHelper:
                'Ao definir como alerta offline, o nó principal verificará a cada 30 minutos para executar tarefas de alerta.',
            offlineOff: 'Ativar Alerta Offline',
            offlineOffHelper:
                'Ao ativar o alerta offline, o nó principal verificará a cada 30 minutos para executar as tarefas de alerta.',
            offlineClose: 'Desativar Alerta Offline',
            offlineCloseHelper:
                'Ao desativar o alerta offline, os nós secundários deverão lidar com os alertas por conta própria. Certifique-se de que a conectividade de rede está boa para evitar falhas.',
            alertNotice: 'Notificação de Alerta',
            methodConfig: 'Configuração do Método de Notificação',
            createMethod: 'Criar Método de Notificação',
            methodInvalid: 'Configuração inválida {0}',
            commonConfig: 'Configuração Global',
            smsConfig: 'SMS',
            smsConfigHelper: 'Configure os números para notificação por SMS',
            emailConfig: 'E-mail',
            emailConfigHelper: 'Configure o serviço de envio de e-mail SMTP',
            deleteConfigTitle: 'Excluir Configuração de Alerta',
            deleteConfigMsg: 'Tem certeza de que deseja excluir a configuração de alerta?',
            test: 'Testar',
            alertTestOk: 'Notificação de teste bem-sucedida',
            alertTestFailed: 'Falha na notificação de teste',
            displayName: 'Nome',
            sender: 'Remetente',
            password: 'Senha',
            host: 'Servidor SMTP',
            port: 'Porta',
            encryption: 'Criptografia',
            recipient: 'Destinatário',
            licenseTime: 'Lembrete de Expiração da Licença',
            licenseTimeTitle: 'Lembrete de Expiração da Licença',
            displayNameHelper: 'Nome exibido do remetente do e-mail',
            senderHelper: 'Endereço de e-mail usado para envio',
            passwordHelper: 'Código de autorização do serviço de e-mail',
            hostHelper: 'Endereço do servidor SMTP, ex: smtp.qq.com',
            portHelper: 'SSL geralmente usa 465, TLS geralmente usa 587',
            sslHelper: 'Se a porta SMTP for 465, normalmente é necessário SSL',
            tlsHelper: 'Se a porta SMTP for 587, normalmente é necessário TLS',
            triggerCondition: 'Condição de Disparo',
            loginFail: ' falhas de login em',
            nodeException: 'Alerta de Exceção de Nó',
            licenseException: 'Alerta de Exceção de Licença',
            panelLogin: 'Alerta de Exceção de Login no Painel',
            sshLogin: 'Alerta de Exceção de Login SSH',
            panelIpLogin: 'Alerta de Exceção de IP de Login no Painel',
            sshIpLogin: 'Alerta de Exceção de IP de Login SSH',
            ipWhiteListHelper:
                'Os IPs na lista de permissões não são restringidos pelas regras e não haverá alerta em caso de login bem-sucedido',
            nodeExceptionRule: 'Alerta de exceção de nó, enviado {0} vezes por dia',
            licenseExceptionRule: 'Alerta de exceção de licença, enviado {0} vezes por dia',
            panelLoginRule: 'Alerta de login no painel, enviado {0} vezes por dia',
            sshLoginRule: 'Alerta de login SSH, enviado {0} vezes por dia',
            userNameHelper: 'O nome de usuário está vazio, o endereço do remetente será usado por padrão',
            alertConfigHelper: 'Configurar canais de notificação de alerta para receber push de mensagens do painel',
            weComConfigHelper: 'Configuração de notificação de alerta WeCom',
            wechatConfigHelper: 'Configuração de notificação de alerta da Conta Oficial WeChat',
            dingTalkConfigHelper: 'Configuração de notificação de alerta DingTalk',
            feiShuConfigHelper: 'Configuração de notificação de alerta Feishu',
            barkConfigHelper: 'Configuração de notificação de alerta Bark',
            webhookName: 'Nome do bot',
            webhookUrl: 'URL do Webhook',
            alertConfigProHelper:
                'A edição comercial também oferece suporte a alertas via WeCom, DingTalk, Feishu e SMS.',
        },
        theme: {
            lingXiaGold: 'LXware Gold',
            classicBlue: 'Azul Clássico',
            freshGreen: 'Verde Fresco',
            customColor: 'Cor do Tema Personalizada',
            setDefault: 'Restaurar Padrão',
            setDefaultHelper: 'O esquema de cores do tema será restaurado para o estado inicial. Deseja continuar?',
            setHelper: 'O esquema de cores do tema selecionado será salvo. Deseja continuar?',
        },
        sync: {
            menu: 'Sincronização de Recursos',
            file: 'Transferência de Arquivos',
            fileSyncConfirm: 'Transferir o arquivo/pasta {1} do nó {0} para o diretório {3} no nó {2}?',

            image: 'Transferência de Imagens',
            imageBatchDesc:
                'Selecione primeiro o nó de origem e as imagens de origem e, em seguida, escolha os nós de destino para encaminhamento.',
            imageBatchConfirmPrefix: 'Serão encaminhadas {0} imagens para {1} nós, totalizando {2} tarefas.',

            ssl: 'Sincronização de Certificados',
            sslBatchDesc:
                'Após selecionar o nó de origem, os certificados especificados podem ser sincronizados com o ambiente atual do painel.',
            sslBatchConfirmPrefix: 'Serão sincronizados {0} certificados para {1} nós, totalizando {2} tarefas.',

            app: 'Transferência de Aplicativos',
            appBatchDesc:
                'Selecione o nó de origem, o aplicativo e os nós de destino, confirme as dependências de recursos e execute a tarefa de transferência de aplicativos.',
            appSelectedApp: 'Aplicativo Selecionado:',
            appPreviewTitle: 'Prévia da Transferência',
            appPreviewDesc:
                'Confirme os nós de destino e os recursos dependentes antes de iniciar a transferência do aplicativo.',
            appDatabaseDependency: 'Dependência de Banco de Dados',
            appResourceRequired: 'Selecione primeiro todos os recursos associados obrigatórios.',
            appUnsupportedMultipleResources:
                'Atualmente, apenas aplicativos associados a no máximo um recurso podem ser migrados.',
            appUnsupportedResourceType:
                'Atualmente, apenas aplicativos sem dependências de recursos ou dependentes apenas de MySQL, MariaDB ou PostgreSQL podem ser migrados.',

            targetTitle: 'Nós de Destino',
            targetDesc: 'O nó de origem será excluído automaticamente. Você pode selecionar um ou mais nós de destino.',
            targetSearchPlaceholder: 'Pesquisar nome ou endereço do nó',
            noTargetNodes: 'Nenhum nó de destino disponível',
            noSourceNode: 'Selecione primeiro um nó de origem',
            reviewTargets: 'Nós de Destino',
            reviewEmpty: 'Selecione primeiro os recursos e os nós de destino',
            selectSourceFirst: 'Selecione primeiro um nó de origem.',
            selectResourceFirst: 'Selecione primeiro um recurso para sincronizar.',
            selectTargetFirst: 'Selecione pelo menos um nó de destino.',
            submitSuccess: 'Tarefa de sincronização enviada com sucesso.',
        },
        vm: {
            vm: 'Máquina virtual',
            title: 'Gerenciamento de Máquinas Virtuais',
            healthCheck: 'Verificação de integridade',
            healthCheckResult: {
                pass: 'Aprovado',
                info: 'Informação',
                warn: 'Aviso',
                fail: 'Falha',
                normal: 'Normal',
                fixCommand: 'Comando de correção',
                technicalDetail: 'Detalhes técnicos',
                check: {
                    vmName: 'Nome da máquina virtual',
                    libvirtConnection: 'Conexão com o Libvirt',
                    vmDefinition: 'Definição da máquina virtual',
                    domainXML: 'XML da máquina virtual',
                    architecture: 'Arquitetura',
                    virtualizationType: 'Tipo de virtualização',
                    machineType: 'Tipo de máquina',
                    efiCapability: 'Compatibilidade com EFI',
                    qemuEmulator: 'Emulador QEMU',
                    bootOrder: 'Ordem de inicialização',
                    arm64Firmware: 'Firmware ARM64',
                    arm64Features: 'Recursos ARM64',
                    arm64Video: 'Vídeo ARM64',
                    arm64FirmwareFile: 'Arquivo de firmware ARM64',
                    arm64CDROM: 'CD-ROM ARM64',
                    blockDevice: 'Dispositivo de bloco',
                    isoArchitecture: 'Arquitetura da ISO',
                    network: 'Rede',
                    qemuLog: 'Log do QEMU',
                    arm64RuntimeFirmware: 'Firmware ARM64 em execução',
                },
                reason: {
                    invalidName: 'O nome da máquina virtual é inválido.',
                    connectionFailed: 'Não foi possível conectar a {uri}.',
                    vmNotFound: 'A máquina virtual {name} não foi encontrada.',
                    xmlReadFailed: 'Falha ao ler o XML da máquina virtual.',
                    liveXMLFallback:
                        'Não foi possível ler a configuração persistente; a configuração em execução está sendo usada.',
                    xmlParseFailed: 'Falha ao analisar o XML da máquina virtual.',
                    stateReadFailed:
                        'Não foi possível determinar o estado da máquina virtual. A verificação do firmware em execução foi ignorada.',
                    guestArchMissing: 'A arquitetura do sistema convidado está ausente no XML.',
                    archMismatch:
                        'A arquitetura do host é {hostArch}, enquanto a do convidado é {guestArch}. A execução entre arquiteturas diferentes não é suportada.',
                    nonKVMType: 'O tipo de virtualização é {type}, não o tipo KVM padrão.',
                    archOrMachineMissing: 'A arquitetura ou o tipo de máquina está ausente no XML.',
                    machineUnsupported: 'O host não suporta {arch}/{machine}.',
                    emulatorNotSpecified: 'Nenhum emulador foi especificado no XML; o Libvirt selecionará um.',
                    fileNotFound: 'Arquivo não encontrado: {path}',
                    fileNotExecutable: 'O arquivo não é executável: {path}',
                    bootDeviceMissing: 'Nenhum dispositivo de inicialização está definido no XML.',
                    diskNotFirst: 'O disco não é o primeiro dispositivo de inicialização. Ordem atual: {order}',
                    cdromNotInBootOrder: 'Um CD-ROM está conectado, mas não está incluído na ordem de inicialização.',
                    firmwareNotConfigured:
                        'EFI ou Loader não estão configurados, portanto o convidado pode não inicializar o vídeo ou arrancar.',
                    acpiCustom: 'ACPI está configurado. Confirme se o convidado precisa dessa personalização.',
                    acpiRequiresUEFI: 'ACPI está configurado sem UEFI, causando o erro ACPI requires UEFI.',
                    apicUnsupported: 'x86 APIC está configurado, mas não é válido para ARM64.',
                    gicNotDeclared:
                        'GIC não aparece no XML persistente; o Libvirt pode adicioná-lo durante a execução.',
                    videoNotConfigured: 'Nenhum dispositivo de vídeo está configurado no XML.',
                    videoNotVirtio: 'O tipo do dispositivo de vídeo é {type}; Virtio é recomendado.',
                    firmwareFileMissing: 'O arquivo de firmware não existe ou não é um arquivo comum: {path}',
                    firmwareNotAvailable:
                        'O Libvirt não informa compatibilidade com EFI e nenhum firmware UEFI ARM64 foi encontrado.',
                    cdromBusNotSCSI: 'O CD-ROM usa o barramento {bus}; ARM64 requer SCSI.',
                    cdromNotOnVirtioSCSI: 'O CD-ROM não está conectado a um controlador Virtio SCSI.',
                    diskSourceMissing: 'Nenhum arquivo de origem está configurado para {device} {target}.',
                    sourceNotFound: 'O arquivo de origem de {device} {target} não existe: {path}',
                    sourceIsDirectory: 'O caminho de origem de {device} {target} é um diretório: {path}',
                    systemDiskNotFound: 'Nenhum disco do sistema foi detectado.',
                    isoArchMismatch:
                        'O convidado {guestArch} tem uma imagem aparentemente destinada a {imageArch} conectada: {path}',
                    networkReadFailed: 'Não foi possível ler a rede {name}.',
                    networkStateReadFailed: 'Não foi possível ler o estado da rede {name}.',
                    networkInactive: 'A rede {name} existe, mas está inativa.',
                    logUnavailable: 'Nenhum log de inicialização está disponível para análise.',
                    logErrorsFound: 'Erros comuns foram encontrados no registro de inicialização mais recente.',
                    vmNotRunning:
                        'A máquina virtual não está em execução, portanto a verificação dos argumentos do QEMU foi ignorada.',
                    runtimeFirmwareMissing: 'Nenhuma entrada pflash, AAVMF ou QEMU_EFI foi encontrada no log do QEMU.',
                },
            },
            dependencies: 'Dependências',
            dependencyPurpose: 'Finalidade',
            dependencyPurposeMap: {
                libvirt:
                    'Fornece serviços de gerenciamento de VMs para controle de ciclo de vida e agendamento de recursos.',
                storage:
                    'Fornece o diretório de armazenamento padrão ou pool de armazenamento para arquivos de disco da VM.',
            },
            dependencyNotReady:
                'As verificações de dependência da VM falharam. Corrija as dependências antes de usar máquinas virtuais.',
            helperUnavailable:
                'A inicialização da capacidade de VM falhou. Verifique os logs do Core ou atualize novamente antes de usar VMs.',
            cpu: 'CPU',
            memory: 'Memória',
            disk: 'Disco',
            overview: 'Visão geral',
            kvmUnavailable: 'Nenhum recurso de virtualização de hardware KVM disponível foi detectado.',
            kvmCheckCpu: 'Confirme se a CPU do host oferece virtualização Intel VT-x ou AMD-V.',
            kvmCheckBios: 'Ative as opções de virtualização no BIOS/UEFI.',
            kvmCheckModule: 'Confirme se o módulo de kernel kvm, kvm_intel ou kvm_amd foi carregado corretamente.',
            kvmCheckDevice:
                'Confirme se /dev/kvm existe e se o ambiente atual não é um contêiner nem um host de nuvem sem suporte a KVM.',
            abnormal: 'Anormal',
            resourceOverview: 'Visão geral de recursos',
            cpuAllocated: 'CPU alocada',
            memoryAllocated: 'Memória alocada',
            storageUsed: 'Armazenamento usado',
            riskReminder: 'Alertas de risco',
            noRisk: 'Sem riscos',
            runtimeHealth: 'Integridade do ambiente',
            runtimeAbnormal: 'O ambiente de execução da VM está anormal',
            noDependency: 'Sem dados de verificação de dependências',
            storageOverview: 'Visão geral do armazenamento',
            totalAllocated: 'Calculado pela configuração total das VMs',
            runningAllocated: 'Alocação em execução: {0}',
            storageAvailable: 'Disponível: {0}',
            inProgress: 'Em andamento',
            needAttention: 'Requer atenção',
            normal: 'Normal',
            environmentRisk:
                'O ambiente de execução da VM não está pronto. Corrija as dependências ou os serviços de virtualização.',
            storageRisk: 'O uso do pool de armazenamento {0} atingiu {1}%.',
            abnormalRisk: '{0} VMs estão em estado anormal.',
            pausedRisk: '{0} VMs estão pausadas.',
            memoryRisk: 'A alocação de memória das VMs atingiu {0}%.',
            cpuLimitHelper: 'CPU disponível no momento: {0} núcleos',
            cpuLimitExceeded: 'CPU excede o limite. Máximo disponível no momento: {0} núcleos.',
            memoryLimitHelper: 'Memória alocável no momento: {0} (o host deve reservar {1} de memória)',
            memoryLimitExceeded: 'A memória excede o limite. Máximo alocável no momento: {0}.',
            storageLimitHelper: 'Espaço livre atual no pool de armazenamento de destino: {0}',
            storageLimitExceeded: 'A capacidade do disco excede o limite. Máximo disponível no momento: {0}.',
            iso: 'ISO',
            createFromTemplate: 'Criar a partir de modelo',
            template: 'Modelo',
            templateName: 'Nome do modelo',
            convertToTemplate: 'Converter em modelo',
            sourceVM: 'VM de origem',
            templateSize: 'Tamanho do modelo',
            deleteTemplateConfirm: 'Excluir modelo {0}. Esta operação não pode ser desfeita. Continuar?',
            orphanClean: 'Limpeza de dados órfãos',
            orphanScan: 'Verificar novamente',
            orphanCleanHelper:
                'São exibidos apenas arquivos candidatos sem referência por máquinas virtuais, snapshots ou modelos registrados. Confirme que o arquivo não está mais em uso antes de limpá-lo; a operação não pode ser desfeita.',
            orphanSelected: '{0} arquivos selecionados, {1} no total',
            orphanSize: 'Tamanho',
            orphanCleanConfirm: 'Limpar os {0} arquivos selecionados ({1})? Esta operação não pode ser desfeita.',
            orphanCleanSuccess: '{0} arquivos foram limpos e {1} foram liberados.',
            orphanType: {
                orphan_domain_disk: 'Disco órfão',
                orphan_snapshot: 'Snapshot órfão',
                partial_file: 'Arquivo incompleto',
            },
            diskSize: 'Tamanho do Disco',
            diskPath: 'Caminho do Disco',
            isoPath: 'Caminho do ISO',
            storagePool: 'Pool de Armazenamento',
            network: 'Rede',
            bridgeName: 'Nome da Bridge',
            natNetworkHelper:
                'As VMs podem acessar a rede pelo host, mas dispositivos externos geralmente não podem acessá-las diretamente.',
            bridgeNetworkHelper:
                'Conecte as VMs a uma bridge existente do host (como br0). Se o host tiver uma placa de rede adicional não utilizada, crie uma bridge para ela e use-a.',
            bridgeNameHelper:
                'Selecione uma Linux bridge existente no host, como br0. NICs físicas não são bridges, e bridges gerenciadas por docker/libvirt não podem ser selecionadas aqui.',
            natCIDRHelper: 'CIDR, gateway e intervalo DHCP são usados pela nova rede virtual NAT.',
            networkCIDR: 'CIDR da Rede',
            gateway: 'Gateway',
            dhcpStart: 'Início DHCP',
            dhcpEnd: 'Fim DHCP',
            bootOrder: 'Ordem de Boot',
            bootDiskFirst: 'Disco primeiro (HD → CD-ROM)',
            bootIsoFirst: 'ISO primeiro (CD-ROM → HD)',
            bootOrderConfirm:
                'Alterar a ordem de boot para {0}? Na próxima inicialização, a VM tentará nesta ordem os dispositivos inicializáveis que estiverem montados.',
            startAfterCreate: 'Iniciar após criação',
            autoStart: 'Inicialização automática',
            resourceAutoStart: 'Inicialização automática',
            capacity: 'Capacidade',
            available: 'Disponível',
            vmCount: 'VMs Vinculadas',
            usedIPs: 'IPs Usados',
            monitor: 'Monitoramento',
            monitorNotReady: 'A máquina virtual não está em execução. Os dados de monitoramento não estão disponíveis.',
            monitorLoadFailed: 'Falha ao obter os dados de monitoramento da VM.',
            monitorLoadFailedWithReason: 'Falha ao obter os dados de monitoramento da VM: {0}',
            rename: 'Renomear',
            newName: 'Novo nome',
            renameHelper: 'Digite um novo nome para a VM. Ela deve estar desligada antes de ser renomeada.',
            renameConfirm: 'Renomear a máquina virtual [{0}] para [{1}]?',
            renameRunningHelper: 'Desligue a máquina virtual antes de renomeá-la.',
            cpuUsage: 'Uso de CPU',
            memoryUsage: 'Uso de memória',
            diskIO: 'E/S de disco',
            networkIO: 'E/S de rede',
            diskReadWrite: 'Leitura / Gravação em disco',
            networkRxTx: 'RX / TX de rede',
            rx: 'RX',
            tx: 'TX',
            console: 'Console',
            consoleNotReady: 'O console VNC está indisponível. Inicie a VM e verifique sua configuração gráfica VNC.',
            consoleDisconnected: 'O console VNC foi desconectado.',
            consoleConnectFailed: 'Falha ao conectar ao console VNC. Verifique o serviço de proxy do console.',
            consoleCredentialsRequired: 'O console VNC requer credenciais. Verifique a configuração do proxy backend.',
            snapshot: 'Snapshot',
            createSnapshot: 'Criar snapshot',
            recoverSnapshot: 'Restaurar snapshot',
            snapshotSize: 'Uso',
            currentSnapshot: 'Atual',
            snapshotEmpty: 'Nenhum snapshot',
            snapshotHelper:
                'Um snapshot salva o estado atual da VM como ponto de restauração. As alterações posteriores são registradas em um arquivo delta sem modificar o disco original. Restaurar um snapshot devolve a VM a esse estado.',
            snapshotOperationHelper:
                'O snapshot atual não pode ser excluído. Snapshots só podem ser restaurados quando a máquina virtual estiver desligada.',
            snapshotRecoverConfirm:
                'Restaurar a máquina virtual [{1}] para o snapshot [{0}]? O disco da VM será restaurado ao estado do snapshot.',
            interface: 'Interface de Rede',
            device: 'Dispositivo',
            path: 'Caminho',
            start: 'Iniciar',
            shutdown: 'Desligar',
            reboot: 'Reiniciar',
            destroy: 'Forçar Parada',
            suspend: 'Suspender',
            resume: 'Retomar',
            operateConfirm: 'Confirmar {0} máquina virtual [{1}]?',
            forceDelete: 'Forçar exclusão',
            forceDeleteHelper:
                'A exclusão forçada ignorará erros de exclusão da VM, removerá os metadados do painel e liberará o uso de recursos.',
            deleteNameHelper: '" para excluir esta máquina virtual',
            isoSource: 'Origem do ISO',
            downloadFromServer: 'Download remoto',
            isoTargetDir: 'Caminho de destino ISO',
            isoTargetDirHelper: 'ISOs enviados localmente ou baixados do servidor serão salvos neste diretório.',
            addingIsoRecord: 'Adicionando registro ISO',
            transferInProgress: 'A transferência ISO está em andamento. Não feche este painel ou a página.',
            isoSize: 'Tamanho do ISO',
            deleteIsoConfirm: 'Esta operação de exclusão não pode ser desfeita. Continuar?',
            deleteSourceFile: 'Excluir arquivo de origem',
            deleteSourceFileHelper:
                'Quando marcado, o arquivo de origem referenciado por este registro ISO também será excluído e não poderá ser recuperado.',
            dir: 'Diretório Local',
        },
        cluster: {
            cluster: 'Alta Disponibilidade de Aplicações',
            name: 'Nome do Cluster',
            addCluster: 'Adicionar Cluster',
            installNode: 'Instalar Nó',
            master: 'Nó Mestre',
            slave: 'Nó Escravo',
            replicaStatus: 'Status Mestre-Escravo',
            unhealthyDeleteError:
                'O status do nó de instalação está anormal, verifique a lista de nós e tente novamente!',
            replicaStatusError: 'A aquisição do status está anormal, verifique o nó mestre.',
            masterHostError: 'O IP do nó mestre não pode ser 127.0.0.1',
        },
    },
    template: {
        create: 'Criar modelo',
        edit: 'Editar modelo',
        name: 'Nome do modelo',
        type: 'Tipo de modelo',
        single: 'Arquivo único',
        multi: 'Múltiplos arquivos (zip)',
        content: 'Conteúdo do modelo',
        variables: 'Definição de variáveis',
        remark: 'Observação',
        filePath: 'Caminho do arquivo',
        upload: 'Enviar zip',
        preview: 'Pré-visualização',
        previewEmpty: 'Selecione um modelo para pré-visualizar em tempo real',
        generate: 'Gerar saída',
        outputName: 'Nome da saída',
        outputList: 'Lista de saídas',
        outputCreate: 'Gerar saída',
        confirmDelete: 'Tem certeza de que deseja excluir este modelo? As saídas associadas também serão excluídas',
        confirmDeleteOutput: 'Tem certeza de que deseja excluir esta saída?',
        variableKey: 'Nome da variável',
        variableLabel: 'Rótulo',
        variableType: 'Tipo',
        variableDefault: 'Valor padrão',
        variableOptions: 'Opções (separadas por vírgula)',
        variableRequired: 'Obrigatório',
        varTypeText: 'Texto de linha única',
        varTypeTextHelper: 'Campo de texto comum',
        varTypeTextarea: 'Texto de múltiplas linhas',
        varTypeTextareaHelper: 'Adequado para parágrafos e textos longos',
        varTypeNumber: 'Número',
        varTypeNumberHelper: 'Somente entrada numérica',
        varTypeSelect: 'Seleção suspensa',
        varTypeSelectHelper: 'Escolher entre opções predefinidas, as opções devem ser informadas',
        varTypeColor: 'Cor',
        varTypeColorHelper: 'Seletor de cores',
        autoDetectHelper: 'Variáveis entre chaves duplas são detectadas automaticamente e adicionadas à tabela',
        selectTemplate: 'Selecionar modelo',
        fillVariables: 'Preencher variáveis',
        noVariables: 'Este modelo não possui variáveis definidas',
        outputSuccess: 'Saída gerada com sucesso',
        importButton: 'Importar do modelo',
    },
};

export default {
    ...getFuLocaleMessage('pt-BR'),
    ...message,
};
