mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-10-30 15:15:24 +00:00
* fix(sso): send the PKCE verifier for GitHub login (#1534) * fix(remote-desktop): clip cursor overflow without disabling zoom (#1535) * test(remote-desktop): preserve sessions beyond one hour (#1536) * fix(hosts): expose controls for overflowing editor tabs (#1537) * fix(hosts): expose controls for overflowing editor tabs * test(hosts): mock resize observation in admin panel tests * fix(status): skip TCP probes while host sessions are active (#1538) * fix(database): batch session activity persistence (#1539) * docs(api): describe cookie and API key authentication (#1540) * fix(snippets): repair missing note column on SQLite upgrades (#1541) * fix(docker): retain stored SSH credential association (#1543) * fix(file-manager): render transfer toasts without plugin hooks (#1546) * feat(hosts): keep compact row actions inline (#1547) * fix(auth): allow retrying unavailable second-factor interfaces (#1549) * fix(auth): reject unresolved legacy identity provisioning (#1550) * fix(desktop): ship the plugin SDK inside Mac App Store builds (#1551) * fix(tmux): pass full session info to the terminal's session picker (#1552) The tmux.sessions service reduced detected sessions to bare names, but the picker reads session.name, so every entry rendered blank and selecting one sent an empty name, which created a new session instead of attaching. * fix(ssh): read force keyboard-interactive as a boolean when resolving hosts (#1553) The column holds the text "true"/"false", and the resolver passed it through as-is. The string "false" is truthy, so the password provider treated every saved host as forced keyboard-interactive and left the password out. Jump hops are built straight from the resolved host, so a password hop whose server doesn't offer keyboard-interactive failed with "All configured authentication methods failed". * fix(database): batch database saves for bulk host writes (#1554) * fix(database): yield to the event loop between database saves Each SQLite save serializes and encrypts the whole database into new buffers, which V8 only releases once the event loop turns. Boot migrations and bulk host import write plugin settings per host and per key in an awaited loop, so hundreds of full copies piled up and the container ran out of memory. * fix(database): save once per bulk host write instead of once per row On SQLite every repository write force-saves the whole database. Boot plugin data migrations, host defaults materialization and the bulk host routes write one row per host per setting, so they serialized and encrypted the full database hundreds of times in a row. DatabaseSaveTrigger.batched wraps a function so force saves made while it runs collapse into a single save when it finishes. Nested scopes fold into the outer one, and work that outlives its scope saves normally. * feat(hosts): add instance-wide predefined tag suggestions (#1548) * feat(hosts): add shared predefined tag suggestions * style(hosts): format tag catalog routes * test(database): advance fake timers past the save yield (#1555) * fix(i18n): complete Simplified Chinese core and plugin translations (#1542) * fix(i18n): complete Chinese onboarding and navigation labels * fix(i18n): translate remaining Chinese core and plugin interfaces * fix(i18n): translate host editor tab overflow controls * fix(i18n): use consistent Chinese fleet terminology * fix(i18n): localize hardcoded controls and plugin views * fix(i18n): translate built-in homepage widget catalog * test(homepage): follow translated timezone placeholder * fix(i18n): translate plugin-provided homepage widgets * fix(i18n): localize feature settings section titles * fix: 2.8 oidc accounts unable to sign in after upgrading (#1381) * fix: plugins losing the saved ssh login when copying a host (#1391) * fix: fleets, proxmox and automations not getting the host sudo password * fix: host imports running a defaults pass and metrics restart per host (#1384) * fix: high cpu from status probes and full database saves on every sample (#1300) * fix: user data export freezing the server (#1393) * fix: op:// secret references rejected as ssh keys on credentials (#1394) * fix: slow file deletes from the trash lookups on every delete (#1390) * fix: add openapi docs and error handling to host tag routes * test: compare download stream buffers directly so it stops timing out * chore: drop em dash from host row comment * chore: update release notes for 2.9.1 * fix: restore space to add host tags and redesign predefined tags editor * fix: host key silently accepted when the host is missing from the database (#1397) * fix: clearer host login failed status label and fix its translations (#1396) * chore: add host key and status label fixes to release notes * fix: sso and ldap provider dialogs overflowing the screen and using mismatched toggles * chore: increment ver * fix(audit): store plugin entries with no acting user as a null user_id (#1556) Plugin audit entries written outside a request used the literal "system" as user_id. That column references users.id, so the insert was refused (Postgres logs it as an FK violation) and the entry was silently dropped. Write null instead and keep "system" / plugin:<id> in username. * chore: add sso/ldap dialog and audit log fixes to release notes * fix: tunnels and host settings missing from shared hosts on desktop * fix: remote desktop logins missing from shared hosts on desktop * fix: simplify host status to online/offline and keep it live without a refresh * chore: sync Crowdin translations for 2.9.1 --------- Co-authored-by: ZacharyZcR <zacharyzcr1984@gmail.com>
556 lines
30 KiB
JSON
556 lines
30 KiB
JSON
{
|
|
"nav": {
|
|
"files": "Arquivos",
|
|
"sftp": "SFTP",
|
|
"openFileManager": "Abrir o Gerenciador de Arquivos"
|
|
},
|
|
"permissions": {
|
|
"use": {
|
|
"title": "Use o gerenciador de arquivos",
|
|
"description": "Navegue, edite e transfira arquivos via SFTP."
|
|
}
|
|
},
|
|
"settings": {
|
|
"host": {
|
|
"enable": {
|
|
"label": "Ativar Gerenciador de Arquivos",
|
|
"description": "Navegue e edite arquivos neste servidor via SFTP."
|
|
},
|
|
"defaultPath": {
|
|
"label": "Caminho padrão"
|
|
},
|
|
"scpLegacy": {
|
|
"label": "Modo Legado SCP"
|
|
}
|
|
},
|
|
"user": {
|
|
"transferConcurrency": {
|
|
"label": "Transferências simultâneas de arquivos",
|
|
"description": "Quantos arquivos o gerenciador local/remoto lado a lado carrega ou baixa simultaneamente? Diminua esse valor se o seu servidor limitar os canais SFTP."
|
|
},
|
|
"confirmBeforeTrash": {
|
|
"label": "Confirme antes de mover os arquivos para a lixeira.",
|
|
"description": "Peça permissão antes de mover arquivos remotos para a lixeira. A exclusão permanente ainda requer confirmação."
|
|
}
|
|
}
|
|
},
|
|
"hostCapability": {
|
|
"label": "Gerenciador de Arquivos"
|
|
},
|
|
"fileManager": {
|
|
"noHostSelected": "Nenhum host selecionado",
|
|
"initializingEditor": "Inicializando o editor...",
|
|
"file": "Arquivo",
|
|
"folder": "Pasta",
|
|
"uploadFile": "Enviar arquivo",
|
|
"downloadFile": "Download",
|
|
"extractArchive": "Extrair arquivo",
|
|
"extractingArchive": "Extraindo {{name}}...",
|
|
"archiveExtractedSuccessfully": "{{name}} extraído com sucesso",
|
|
"extractFailed": "A extração falhou",
|
|
"compressFile": "Compactar arquivo",
|
|
"compressFiles": "Comprimir arquivos",
|
|
"compressFilesDesc": "Comprima {{count}} itens em um arquivo",
|
|
"archiveName": "Nome do arquivo",
|
|
"enterArchiveName": "Digite o nome do arquivo...",
|
|
"compressionFormat": "Formato de compressão",
|
|
"selectedFiles": "Arquivos selecionados",
|
|
"andMoreFiles": "e {{count}} mais...",
|
|
"compress": "Compressa",
|
|
"compressingFiles": "Comprimindo {{count}} itens em {{name}}...",
|
|
"filesCompressedSuccessfully": "{{name}} criado com sucesso",
|
|
"compressFailed": "A compressão falhou",
|
|
"edit": "Editar",
|
|
"preview": "Pré-visualização",
|
|
"previous": "Voltar",
|
|
"next": "Próximo",
|
|
"pageXOfY": "Página {{current}} de {{total}}",
|
|
"zoomOut": "Diminuir o zoom",
|
|
"zoomIn": "Ampliar",
|
|
"newFile": "Novo arquivo",
|
|
"newFolder": "Nova pasta",
|
|
"rename": "Renomear",
|
|
"uploading": "Carregando...",
|
|
"uploadingFile": "Carregando {{name}}...",
|
|
"uploadingChunk": "Enviando {{name}}: {{percent}}% (parte {{chunk}} de {{total}})",
|
|
"fileName": "Nome do arquivo",
|
|
"folderName": "Nome da pasta",
|
|
"fileUploadedSuccessfully": "Arquivo \"{{name}}\" enviado com sucesso",
|
|
"failedToUploadFile": "Falha ao carregar o arquivo",
|
|
"uploadingFolderFiles": "Enviando {{count}} arquivo(s)...",
|
|
"uploadedFolderFiles": "Arquivo(s) carregado(s) com sucesso {{count}}",
|
|
"uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed",
|
|
"fileDownloadedSuccessfully": "Arquivo \"{{name}}\" baixado com sucesso",
|
|
"failedToDownloadFile": "Falha ao baixar o arquivo",
|
|
"fileCreatedSuccessfully": "Arquivo \"{{name}}\" criado com sucesso",
|
|
"folderCreatedSuccessfully": "Pasta \"{{name}}\" criada com sucesso",
|
|
"failedToCreateItem": "Falha ao criar o item",
|
|
"operationFailed": "A operação {{operation}} falhou para {{name}}: {{error}}",
|
|
"failedToResolveSymlink": "Falha ao resolver o link simbólico",
|
|
"itemsDeletedSuccessfully": "{{count}} itens excluídos com sucesso",
|
|
"failedToDeleteItems": "Falha ao excluir itens",
|
|
"sudoPasswordRequired": "Senha de administrador necessária",
|
|
"enterSudoPassword": "Digite a senha de sudo para continuar esta operação.",
|
|
"sudoPassword": "Senha de sudo",
|
|
"sudoOperationFailed": "A operação sudo falhou",
|
|
"sudoAuthFailed": "Falha na autenticação sudo",
|
|
"dragFilesToUpload": "Arraste e solte os arquivos aqui para fazer o upload.",
|
|
"dropToUploadHere": "Arraste e faça o upload aqui.",
|
|
"dropToDownloadHere": "Faça o download aqui.",
|
|
"localFiles": "Local",
|
|
"showLocalFiles": "Exibir arquivos locais (visualização dividida)",
|
|
"hideLocalFiles": "Ocultar arquivos locais",
|
|
"localHome": "Pasta inicial",
|
|
"localPathPlaceholder": "Caminho da pasta local",
|
|
"localShowHidden": "Mostrar arquivos ocultos",
|
|
"localHideHidden": "Ocultar arquivos ocultos",
|
|
"localRevealInFileManager": "Exibir no gerenciador de arquivos do sistema",
|
|
"localCannotOpenFolder": "Não é possível abrir a pasta",
|
|
"localItemCount": "{{count}} itens",
|
|
"localSelectedCount": "{{count}} selecionado",
|
|
"back": "Voltar",
|
|
"forward": "Avançar",
|
|
"up": "Acima",
|
|
"kind": "Tipo",
|
|
"localUploadingProgress": "Enviando {{current}} de {{total}}",
|
|
"localDownloadingProgress": "Baixando {{current}} de {{total}}",
|
|
"localTransferInFlight": "{{count}} imediatamente",
|
|
"localPreparingDownload": "Preparando o download...",
|
|
"localTransferCancelled": "Transferência cancelada",
|
|
"localNothingToTransfer": "Nada a transferir",
|
|
"localUploadComplete": "Uploaded {{count}} file(s)",
|
|
"localUploadFailed": "Falha no upload",
|
|
"localUploadPartial": "Uploaded {{done}} file(s), {{failed}} failed",
|
|
"localDownloadComplete": "Arquivo(s) baixado(s) {{count}}",
|
|
"localDownloadFailed": "Falha no download",
|
|
"localDownloadPartial": "O download de {{done}} arquivo(s) falhou. {{failed}}",
|
|
"localReplaceExistingPrompt": "{{count}} Já existem itens nesta pasta. Deseja substituí-los?",
|
|
"localReplace": "Substituir",
|
|
"localSkipExisting": "Pular",
|
|
"localSkippedExisting": "Ignorou {{count}} item(ns) existente(s)",
|
|
"localUnsafeNamesSkipped": "Ignorado {{count}} item(ns) cujos nomes não podem ser usados neste computador",
|
|
"localOpen": "Abrir",
|
|
"localOpenFolder": "Abra a pasta",
|
|
"localUploadToRemote": "Enviar para o servidor",
|
|
"localUploadToRemoteMany": "Enviar {{count}} itens para o servidor",
|
|
"localMoveToTrash": "Mover para a Lixeira",
|
|
"localMoveToTrashMany": "Mova {{count}} itens para a Lixeira",
|
|
"localTrashConfirmSingle": "Mover \"{{name}}\" para a Lixeira?",
|
|
"localTrashConfirmFolder": "Mover a pasta \"{{name}}\" e todo o seu conteúdo para a Lixeira?",
|
|
"localTrashConfirmMany": "Mover {{count}} itens para a Lixeira?",
|
|
"localTrashed": "Movidos {{count}} itens para a Lixeira",
|
|
"localTrashFailed": "Não foi possível mover para a Lixeira",
|
|
"localRenameFailed": "A renomeação falhou",
|
|
"localCreateFailed": "Não foi possível criar o item.",
|
|
"goToParentFolder": "Acesse a pasta principal",
|
|
"resizeSidebar": "Arraste para redimensionar a barra lateral (clique duas vezes para redefinir).",
|
|
"resizeLocalPane": "Arraste para redimensionar o painel local (clique duas vezes para redefinir).",
|
|
"columns": "Colunas",
|
|
"columnsHint": "Clique com o botão direito do mouse para escolher as colunas.",
|
|
"emptyFolder": "Esta pasta está vazia",
|
|
"searchFiles": "Pesquisar arquivos...",
|
|
"upload": "Fazer upload",
|
|
"selectHostToStart": "Selecione um host para iniciar o gerenciamento de arquivos.",
|
|
"sshRequiredForFileManager": "O gerenciador de arquivos requer SSH. Este host não tem o SSH habilitado.",
|
|
"failedToConnect": "Falha ao conectar-se ao SSH",
|
|
"failedToLoadDirectory": "Falha ao carregar o diretório",
|
|
"noSSHConnection": "Nenhuma conexão SSH disponível",
|
|
"copy": "Copiar",
|
|
"cut": "Corte",
|
|
"paste": "Colar",
|
|
"copyPath": "Copiar caminho",
|
|
"copyPaths": "Copiar caminhos",
|
|
"delete": "Apagar",
|
|
"properties": "Propriedades",
|
|
"refresh": "Atualizar",
|
|
"downloadFiles": "Baixar {{count}} arquivos para o navegador",
|
|
"copyFiles": "Copiar {{count}} itens",
|
|
"cutFiles": "Recortar {{count}} itens",
|
|
"deleteFiles": "Excluir {{count}} itens",
|
|
"filesCopiedToClipboard": "{{count}} itens copiados para a área de transferência",
|
|
"filesCutToClipboard": "{{count}} itens copiados para a área de transferência",
|
|
"pathCopiedToClipboard": "Caminho copiado para a área de transferência",
|
|
"pathsCopiedToClipboard": "{{count}} caminhos copiados para a área de transferência",
|
|
"failedToCopyPath": "Falha ao copiar o caminho para a área de transferência",
|
|
"copyFolderLink": "Copiar link para a pasta",
|
|
"copyCurrentFolderLink": "Copiar link para a pasta atual",
|
|
"folderLinkCopied": "Link da pasta copiado para a área de transferência",
|
|
"failedToCopyFolderLink": "Falha ao copiar o link da pasta",
|
|
"movedItems": "Itens movidos {{count}}",
|
|
"failedToDeleteItem": "Falha ao excluir o item",
|
|
"itemRenamedSuccessfully": "{{type}} renomeado com sucesso",
|
|
"failedToRenameItem": "Falha ao renomear o item",
|
|
"download": "Download",
|
|
"openExternalEditor": "Abrir externamente",
|
|
"chooseExternalEditor": "Escolha um editor externo.",
|
|
"externalEditorSelected": "Editor externo selecionado",
|
|
"externalEditorDesktopOnly": "O editor externo está disponível apenas no aplicativo para desktop.",
|
|
"externalEditorOpened": "Aberto em um editor externo. Salvar aqui enviará as alterações de volta para o servidor.",
|
|
"failedToOpenExternalEditor": "Não foi possível abrir o editor externo.",
|
|
"failedToSelectExternalEditor": "Não foi possível selecionar o editor externo.",
|
|
"permissions": "Permissões",
|
|
"size": "Tamanho",
|
|
"modified": "Modificado",
|
|
"path": "Caminho",
|
|
"confirmDelete": "Tem certeza de que deseja excluir {{name}}?",
|
|
"permissionDenied": "Permissão negada",
|
|
"serverError": "Erro do servidor",
|
|
"fileSavedSuccessfully": "Arquivo salvo com sucesso",
|
|
"failedToSaveFile": "Falha ao salvar o arquivo",
|
|
"confirmDeleteSingleItem": "Tem certeza de que deseja excluir permanentemente \"{{name}}\"?",
|
|
"confirmDeleteMultipleItems": "Tem certeza de que deseja excluir permanentemente {{count}} itens?",
|
|
"confirmDeleteMultipleItemsWithFolders": "Tem certeza de que deseja excluir permanentemente {{count}} itens? Isso inclui pastas e seus conteúdos.",
|
|
"confirmDeleteFolder": "Tem certeza de que deseja excluir permanentemente a pasta \"{{name}}\" e todo o seu conteúdo?",
|
|
"permanentDeleteWarning": "Esta ação não pode ser desfeita. O(s) item(ns) será(ão) excluído(s) permanentemente do servidor.",
|
|
"moveToTrashWarning": "O(s) item(ns) será(ão) movido(s) para a Lixeira Termix e poderá(ão) ser restaurado(s) antes do término do período de retenção.",
|
|
"itemsMovedToTrash": "{{count}} item(ns) movido(s) para a Lixeira",
|
|
"trash": "Lixo",
|
|
"trashDescription": "Os itens excluídos são retidos por {{days}} dia(s) neste host.",
|
|
"trashLoadFailed": "Falha ao carregar a Lixeira",
|
|
"trashEmpty": "A lixeira está vazia.",
|
|
"trashRestore": "Restaurar",
|
|
"trashRestored": "Restaurado {{name}}",
|
|
"trashRestoreFailed": "Falha ao restaurar o item. O caminho original pode já existir.",
|
|
"trashDeletePermanently": "Excluir permanentemente",
|
|
"trashDeleteConfirm": "Excluir permanentemente {{name}}? Esta ação não pode ser desfeita.",
|
|
"trashPermanentlyDeleted": "Excluído permanentemente {{name}}",
|
|
"trashDeleteFailed": "Falha ao excluir o item permanentemente",
|
|
"trashEmptyAction": "Esvaziar o lixo",
|
|
"trashEmptyConfirm": "Excluir permanentemente todos os itens da Lixeira? Esta ação é irreversível.",
|
|
"trashEmptied": "Lixo esvaziado",
|
|
"trashRetention": "Limpeza automática após (dias)",
|
|
"trashRetentionSaved": "Retenção de lixo atualizada",
|
|
"trashRetentionFailed": "Falha na atualização da retenção de lixo",
|
|
"trashUnavailableConfirm": "Este item não pode ser movido para a Lixeira, geralmente porque está em outro sistema de arquivos ou requer permissões elevadas. Deseja excluí-lo permanentemente?",
|
|
"recent": "Recente",
|
|
"pinned": "Fixado",
|
|
"folderShortcuts": "Atalhos de pastas",
|
|
"failedToReconnectSSH": "Falha ao reconectar a sessão SSH",
|
|
"openTerminalHere": "Abra o terminal aqui",
|
|
"run": "Correr",
|
|
"openTerminalInFolder": "Abra o terminal nesta pasta.",
|
|
"openTerminalInFileLocation": "Abra o terminal no local do arquivo.",
|
|
"runningFile": "Correndo - {{file}}",
|
|
"onlyRunExecutableFiles": "Só é possível executar arquivos executáveis.",
|
|
"directories": "Diretórios",
|
|
"removedFromRecentFiles": "Removemos \"{{name}}\" dos arquivos recentes",
|
|
"removeFailed": "Remover falha",
|
|
"unpinnedSuccessfully": "Desfixado \"{{name}}\" com sucesso",
|
|
"unpinFailed": "Desafixar falhou",
|
|
"removedShortcut": "Atalho removido \"{{name}}\"",
|
|
"removeShortcutFailed": "A remoção do atalho falhou",
|
|
"clearedAllRecentFiles": "Apaguei todos os arquivos recentes.",
|
|
"clearFailed": "Limpar falhou",
|
|
"removeFromRecentFiles": "Remover dos arquivos recentes",
|
|
"clearAllRecentFiles": "Limpar todos os arquivos recentes",
|
|
"unpinFile": "Desafixar arquivo",
|
|
"removeShortcut": "Remover atalho",
|
|
"pinFile": "Arquivo PIN",
|
|
"addToShortcuts": "Adicionar aos atalhos",
|
|
"pasteFailed": "A colagem falhou",
|
|
"noUndoableActions": "Ações não podem ser desfeitas",
|
|
"undoCopySuccess": "Operação de cópia desfeita: Arquivos copiados excluídos {{count}}",
|
|
"undoCopyFailedDelete": "Falha ao desfazer: Não foi possível excluir nenhum arquivo copiado.",
|
|
"undoCopyFailedNoInfo": "A ação de desfazer falhou: Não foi possível encontrar as informações do arquivo copiado.",
|
|
"undoMoveSuccess": "Operação de movimentação desfeita: {{count}} arquivos foram movidos de volta para o local original.",
|
|
"undoMoveFailedMove": "Falha ao desfazer: Não foi possível mover nenhum arquivo de volta.",
|
|
"undoMoveFailedNoInfo": "A ação de desfazer falhou: Não foi possível encontrar as informações do arquivo movido.",
|
|
"undoDeleteNotSupported": "A operação de exclusão não pode ser desfeita: os arquivos foram excluídos permanentemente do servidor.",
|
|
"undoTypeNotSupported": "Tipo de operação de desfazer não suportado",
|
|
"undoOperationFailed": "A operação de desfazer falhou",
|
|
"unknownError": "Erro desconhecido",
|
|
"confirm": "Confirmar",
|
|
"find": "Encontrar...",
|
|
"replace": "Substituir",
|
|
"downloadInstead": "Baixe em vez de baixar.",
|
|
"keyboardShortcuts": "Atalhos de teclado",
|
|
"searchAndReplace": "Localizar e substituir",
|
|
"editing": "Edição",
|
|
"search": "Procurar",
|
|
"findNext": "Encontre a seguir",
|
|
"findPrevious": "Encontrar Anterior",
|
|
"save": "Salvar",
|
|
"selectAll": "Selecionar Tudo",
|
|
"undo": "Desfazer",
|
|
"redo": "Refazer",
|
|
"moveLineUp": "Mova a fila para cima",
|
|
"moveLineDown": "Deslizar a linha para baixo",
|
|
"toggleComment": "Alternar comentário",
|
|
"autoComplete": "Preenchimento automático",
|
|
"imageLoadError": "Falha ao carregar a imagem",
|
|
"startTyping": "Comece a digitar...",
|
|
"unknownSize": "Tamanho desconhecido",
|
|
"fileIsEmpty": "O arquivo está vazio",
|
|
"largeFileWarning": "Aviso de Arquivo Grande",
|
|
"largeFileWarningDesc": "Este arquivo tem {{size}} de tamanho, o que pode causar problemas de desempenho ao ser aberto como texto.",
|
|
"fileNotFoundAndRemoved": "O arquivo \"{{name}}\" não foi encontrado e foi removido dos arquivos recentes/fixados",
|
|
"failedToLoadFile": "Falha ao carregar o arquivo: {{error}}",
|
|
"serverErrorOccurred": "Ocorreu um erro no servidor. Tente novamente mais tarde.",
|
|
"autoSaveFailed": "O salvamento automático falhou",
|
|
"fileAutoSaved": "Arquivo salvo automaticamente",
|
|
"moveFileFailed": "Falha ao mover {{name}}",
|
|
"moveOperationFailed": "A operação de movimentação falhou",
|
|
"canOnlyCompareFiles": "Só é possível comparar dois arquivos.",
|
|
"comparingFiles": "Comparando arquivos: {{file1}} e {{file2}}",
|
|
"dragFailed": "A operação de arrastar falhou",
|
|
"filePinnedSuccessfully": "Arquivo \"{{name}}\" fixado com sucesso",
|
|
"pinFileFailed": "Falha ao fixar o arquivo",
|
|
"fileUnpinnedSuccessfully": "Arquivo \"{{name}}\" desafixado com sucesso",
|
|
"unpinFileFailed": "Falha ao desafixar o arquivo",
|
|
"shortcutAddedSuccessfully": "Atalho de pasta \"{{name}}\" adicionado com sucesso",
|
|
"addShortcutFailed": "Falha ao adicionar atalho",
|
|
"operationCompletedSuccessfully": "{{operation}} {{count}} itens com sucesso",
|
|
"operationCompleted": "{{operation}} {{count}} itens",
|
|
"downloadFileSuccess": "Arquivo {{name}} baixado com sucesso",
|
|
"downloadFileFailed": "Falha no download",
|
|
"downloadingFile": "Baixando {{name}}…",
|
|
"downloadProgressBytes": "{{transferred}} / {{total}}",
|
|
"moveTo": "Mover para {{name}}",
|
|
"diffCompareWith": "Diff compare com {{name}}",
|
|
"dragOutsideToDownload": "Arraste para fora da janela para baixar ({{count}} arquivos)",
|
|
"newFolderDefault": "Nova pasta",
|
|
"newFileDefault": "NovoArquivo.txt",
|
|
"successfullyMovedItems": "Movidos com sucesso {{count}} itens para {{target}}",
|
|
"move": "Mover",
|
|
"searchInFile": "Pesquisar no arquivo (Ctrl+F)",
|
|
"showKeyboardShortcuts": "Mostrar atalhos de teclado",
|
|
"decreaseFontSize": "Diminuir o tamanho da fonte",
|
|
"increaseFontSize": "Aumentar o tamanho da fonte",
|
|
"startWritingMarkdown": "Comece a escrever seu conteúdo em Markdown...",
|
|
"loadingFileComparison": "Carregando comparação de arquivos...",
|
|
"reload": "Recarregar",
|
|
"compare": "Comparar",
|
|
"sideBySide": "Lado a lado",
|
|
"inline": "Em linha",
|
|
"fileComparison": "Comparação de arquivos: {{file1}} vs {{file2}}",
|
|
"fileTooLarge": "File is too large (> 10MB) and cannot be opened as text for security reasons.",
|
|
"sshConnectionFailed": "A conexão SSH falhou. Verifique sua conexão com {{name}} ({{ip}}:{{port}})",
|
|
"loadFileFailed": "Falha ao carregar o arquivo: {{error}}",
|
|
"connecting": "Conectando...",
|
|
"connectedSuccessfully": "Conexão estabelecida com sucesso.",
|
|
"totpVerificationFailed": "A verificação TOTP falhou.",
|
|
"browserSignInFailed": "Falha ao efetuar o login. Tente novamente.",
|
|
"authenticationFailed": "A autenticação falhou.",
|
|
"incorrectPassphrase": "Senha incorreta. Tente novamente.",
|
|
"verificationCodePrompt": "Código de verificação:",
|
|
"changePermissions": "Alterar permissões",
|
|
"currentPermissions": "Permissões atuais",
|
|
"owner": "Proprietário",
|
|
"group": "Grupo",
|
|
"others": "Outros",
|
|
"read": "Ler",
|
|
"write": "Escrever",
|
|
"execute": "Executar",
|
|
"permissionsChangedSuccessfully": "Permissões alteradas com sucesso",
|
|
"failedToChangePermissions": "Falha ao alterar as permissões",
|
|
"name": "Nome",
|
|
"sortByName": "Nome",
|
|
"sortByDate": "Data de modificação",
|
|
"sortBySize": "Tamanho",
|
|
"ascending": "Ascendente",
|
|
"descending": "Descendente",
|
|
"root": "Raiz",
|
|
"new": "Novo",
|
|
"sortBy": "Ordenar por",
|
|
"items": "Unid",
|
|
"selected": "Selecionado",
|
|
"editor": "Editor",
|
|
"octal": "Octal",
|
|
"storage": "Armazenar",
|
|
"disk": "Disco",
|
|
"used": "Usado",
|
|
"of": "de",
|
|
"toggleSidebar": "Alternar barra lateral",
|
|
"compactLayout": "Utilize um layout compacto.",
|
|
"comfortableLayout": "Use um layout confortável",
|
|
"cannotLoadPdf": "Não foi possível carregar o PDF.",
|
|
"pdfLoadError": "Ocorreu um erro ao carregar este arquivo PDF.",
|
|
"loadingPdf": "Loading PDF viewer...",
|
|
"loadingPage": "Carregando página...",
|
|
"cancel": "Cancelar",
|
|
"copiedItems_one": "Item copiado {{count}}",
|
|
"copiedItems_other": "Itens copiados {{count}}",
|
|
"deleteCopiedFileFailed": "Não foi possível excluir a cópia de {{name}}: {{error}}",
|
|
"dragMovedItems_one": "Moved {{count}} item to {{target}}",
|
|
"dragMovedItems_other": "Movidos {{count}} itens para {{target}}",
|
|
"moveBackFileFailed": "Não foi possível mover {{name}} para trás: {{error}}",
|
|
"terminal": "Terminal: {{host}} ({{path}})",
|
|
"dragToDesktop": "Arrastar {{name}} para a área de trabalho",
|
|
"dragFilesToDesktop": "Arrastar {{count}} arquivos para a área de trabalho",
|
|
"folderDragUnsupported": "Arrastar pastas para a área de trabalho ainda não é suportado.",
|
|
"saveToDesktopFailed": "Falha ao salvar: {{error}}",
|
|
"dragFailedDetail": "Falha ao arrastar: {{error}}",
|
|
"videoUnsupported": "Seu navegador não consegue reproduzir este formato de vídeo.",
|
|
"downloadToPlay": "Faça o download para jogar em outro lugar.",
|
|
"cannotPreviewType": "Não é possível visualizar este tipo de arquivo.",
|
|
"cannotPreviewTypeHint": "Este tipo de arquivo não possui pré-visualização. Faça o download para abri-lo em outro aplicativo.",
|
|
"loadingFile": "Loading file...",
|
|
"loadingImage": "Loading image...",
|
|
"loadingEditor": "Loading editor...",
|
|
"loadingPreview": "Loading preview...",
|
|
"loadingAudio": "Loading audio player...",
|
|
"emptyPreview": "Nothing to preview yet...",
|
|
"revert": "Revert",
|
|
"openAsText": "Open as Text",
|
|
"confirmOpenAsText": "Do you want to continue opening this file as text? This may slow down your browser."
|
|
},
|
|
"sftpTransfer": {
|
|
"title": "SFTP",
|
|
"description": "Transferir arquivos entre dois hosts SSH.",
|
|
"sourceServer": "Servidor de origem",
|
|
"destinationServer": "Servidor de destino",
|
|
"selectHost": "Selecione o host",
|
|
"noHostSelected": "Nenhum host selecionado",
|
|
"move": "Mover",
|
|
"copy": "Copiar",
|
|
"upload": "Enviar",
|
|
"itemsSelected": "{{count}} item selecionado",
|
|
"itemsSelected_other": "{{count}} itens selecionados",
|
|
"ready": "Preparar",
|
|
"loadingHosts": "Carregando hosts...",
|
|
"name": "Nome",
|
|
"modified": "Modificado",
|
|
"size": "Tamanho",
|
|
"noFiles": "Nenhum arquivo",
|
|
"open": "Abrir",
|
|
"up": "Acima",
|
|
"refresh": "Atualizar",
|
|
"copyToTarget": "Copiar para o diretório de destino",
|
|
"rename": "Renomear",
|
|
"delete": "Apagar",
|
|
"editPermissions": "Editar permissões",
|
|
"createNewFolder": "Criar nova pasta",
|
|
"deleteSelectedItems": "Excluir itens selecionados",
|
|
"deleteConfirm": "Delete {{count}} selected item?",
|
|
"deleteConfirm_other": "Excluir {{count}} itens selecionados?",
|
|
"cancel": "Cancelar",
|
|
"save": "Salvar",
|
|
"folderCreated": "Pasta criada",
|
|
"itemRenamed": "Item renomeado",
|
|
"actionFailed": "A ação falhou",
|
|
"itemsDeleted": "{{count}} item excluído",
|
|
"itemsDeleted_other": "{{count}} itens excluídos",
|
|
"deleteFailed": "Falha ao excluir",
|
|
"permissionsUpdated": "Permissões atualizadas",
|
|
"noRemoteSessionConnected": "Nenhuma sessão remota conectada.",
|
|
"failedToListFiles": "Falha ao listar os arquivos",
|
|
"failedToRefresh": "Falha ao atualizar",
|
|
"destinationInsideSource": "O destino não pode estar dentro do caminho de origem selecionado.",
|
|
"sameHostNoOp": "A origem e o destino são a mesma pasta."
|
|
},
|
|
"hosts": {
|
|
"fileManager": "Gerenciador de Arquivos",
|
|
"fileManagerUrlCopied": "URL do Gerenciador de Arquivos copiada",
|
|
"copyFileManagerUrlAction": "Copiar URL do Gerenciador de Arquivos",
|
|
"docsLink": "Documentação",
|
|
"hostNotFound": "Host não encontrado",
|
|
"loadingHost": "Carregando host..."
|
|
},
|
|
"onboarding": {
|
|
"feature_files": "Gerenciador de arquivos",
|
|
"feature_files_desc": "Navegue, carregue, baixe e edite arquivos via SFTP sem sair do aplicativo."
|
|
},
|
|
"terminal": {
|
|
"runTitle": "Executando {{command}} - {{host}}",
|
|
"terminalTitle": "Terminal - {{host}}",
|
|
"terminalWithPath": "Terminal - {{host}}:{{path}}"
|
|
},
|
|
"transfer": {
|
|
"browseFolders": "Procurar pastas de destino",
|
|
"browsePathError": "Não foi possível abrir este caminho no host de destino.",
|
|
"browsePathWillBeCreated": "Esta pasta ainda não existe. Ela será criada quando a transferência começar.",
|
|
"cancel": "Cancelar",
|
|
"cleanupDestFiles": "destino de limpeza",
|
|
"cleanupDestFilesError": "A limpeza falhou",
|
|
"cleanupDestFilesNothing": "Nada para limpar no destino.",
|
|
"cleanupDestFilesPartial": "Alguns arquivos parciais não puderam ser removidos.",
|
|
"cleanupDestFilesSuccess": "Arquivos parciais removidos do destino.",
|
|
"confirmCopy": "Copiar",
|
|
"confirmMove": "Mover",
|
|
"copyFolderToHost": "Copiar pasta para o host…",
|
|
"copyItemsToHost": "Copiar {{count}} itens para o host…",
|
|
"copyToHost": "Copiar para o host…",
|
|
"destinationPath": "Caminho de destino",
|
|
"destMustBeDirectory": "O destino deve ser um diretório para transferências de múltiplos itens.",
|
|
"goUp": "Subir",
|
|
"hostAuthRequired": "É necessária autenticação. Primeiro, abra o Gerenciador de Arquivos neste host.",
|
|
"hostConnecting": "Conectando…",
|
|
"hostConnectionFailed": "Falha na conexão",
|
|
"hostDisconnected": "Não conectado",
|
|
"hostReady": "Preparar",
|
|
"itemsSummary": "{{count}} itens",
|
|
"jumpHostLimitation": "Ambos os hosts devem ser acessíveis a partir do servidor Termix. O roteamento direto de host para host não é suportado.",
|
|
"methodAuto": "Auto",
|
|
"methodAutoHint": "Seleciona o método de compactação (tar) ou SFTP por arquivo com base na quantidade de arquivos, tamanho e compressibilidade. Arquivos individuais sempre utilizam SFTP de streaming.",
|
|
"methodItemSftp": "SFTP por arquivo",
|
|
"methodItemSftpHint": "Transfira cada arquivo individualmente via SFTP. Funciona em todos os hosts, incluindo Windows.",
|
|
"methodItemSftpLimitation": "Cada arquivo utiliza o mesmo fluxo SFTP como uma cópia de arquivo único, um após o outro. O progresso é combinado em todos os arquivos, portanto a barra se move lentamente durante a transferência de arquivos grandes.",
|
|
"methodLabel": "Método de transferência",
|
|
"methodPreviewError": "Não foi possível visualizar o método de transferência. O servidor ainda escolherá um método quando você iniciar o servidor.",
|
|
"methodPreviewLoading": "Calculando o método de transferência…",
|
|
"methodPreviewScanSummary": "{{fileCount}} arquivos, {{totalSize}} total (verificado no host de origem).",
|
|
"methodPreviewWillUseItemSftp": "Será utilizado: SFTP por arquivo",
|
|
"methodPreviewWillUseTar": "Será utilizado: Arquivo tar",
|
|
"methodReason": {
|
|
"user_item_sftp": "Você escolheu SFTP por arquivo.",
|
|
"user_tar": "Você escolheu o arquivo tar.",
|
|
"tar_unavailable": "O arquivo tar não está disponível em um ou ambos os servidores, portanto, será utilizado o SFTP por arquivo.",
|
|
"windows_host": "Como se trata de um host Windows, o tar não é utilizado.",
|
|
"auto_multi_large": "Automático: vários arquivos, incluindo um arquivo grande ({{largestSize}}) com dados compressíveis. O Tar os agrupa em uma única transferência.",
|
|
"auto_single_large_in_archive": "Automático: um arquivo grande ({{largestSize}}) neste conjunto, portanto, SFTP por arquivo.",
|
|
"auto_many_incompressible": "Automático: dados em sua maioria não compressíveis, portanto, SFTP por arquivo.",
|
|
"auto_many_files": "Automático: muitos arquivos ({{fileCount}}), tar reduz a sobrecarga por arquivo.",
|
|
"auto_default": "Automático: SFTP por arquivo para este conjunto."
|
|
},
|
|
"methodTar": "Arquivo Tar",
|
|
"methodTarHint": "Comprima na origem, transfira um único arquivo compactado e extraia no destino. Requer o uso do tar em ambos os hosts Unix.",
|
|
"metricsCompress": "Comprimir na origem: {{duration}}",
|
|
"metricsExtract": "Extrair no destino: {{duration}}",
|
|
"metricsPrepare": "Preparar destino: {{duration}}",
|
|
"metricsRouteBenchmark": "Sondagem de rota: direta {{direct}}, retransmissão {{relay}}",
|
|
"metricsSourceDelete": "Remover da fonte: {{duration}}",
|
|
"metricsTotal": "Total: {{duration}}",
|
|
"metricsTransfer": "De ponta a ponta: {{throughput}} ({{duration}})",
|
|
"metricsVerify": "Verificado por SHA-256: {{duration}}",
|
|
"moveFolderToHost": "Mover pasta para o host…",
|
|
"moveItemsToHost": "Mova {{count}} itens para o host…",
|
|
"moveToHost": "Mover para o host…",
|
|
"noHostsConnected": "Não há outros servidores de gerenciamento de arquivos disponíveis.",
|
|
"noHostsConnectedHint": "Adicione outro host SSH com o Gerenciador de Arquivos habilitado no Gerenciador de Hosts.",
|
|
"parallelSegmentsHint": "Arquivos grandes são divididos em partes de 256 MB. Várias vias utilizam conexões separadas (como iniciar várias transferências) para obter uma taxa de transferência total maior.",
|
|
"parallelSegmentsLabel": "Faixas de transferência paralelas",
|
|
"parallelSegmentsOption": "{{count}} faixas",
|
|
"progressBenchmarking": "Selecionando a rota de transferência mais rápida…",
|
|
"progressBytes": "{{transferred}} / {{total}}",
|
|
"progressCancel": "Cancelar",
|
|
"progressCancelling": "Cancelando…",
|
|
"progressCompressing": "Comprimindo no host de origem…",
|
|
"progressExtracting": "Extraindo no destino…",
|
|
"progressItems": "{{current}} / {{total}} arquivos",
|
|
"progressReconnecting": "Reconectando…",
|
|
"progressStalled": "Paralisado",
|
|
"progressTotalSpeed": "{{speed}} total ({{lanes}} faixas)",
|
|
"progressTransferring": "Transferindo dados…",
|
|
"progressTransferringItems": "Transferindo arquivos ({{current}} de {{total}})…",
|
|
"progressVerifying": "Verificando a integridade do arquivo…",
|
|
"recentDestinations": "Destinos recentes",
|
|
"resumedHint": "Reconectado a uma transferência ativa iniciada em outra janela.",
|
|
"retryTransfer": "Tentar novamente",
|
|
"retryTransferError": "A nova tentativa falhou.",
|
|
"selectDestinationHost": "Selecione o host de destino",
|
|
"transferCancelled": "Transferência cancelada",
|
|
"transferCancelledCopyHint": "Alguns arquivos podem permanecer no destino.",
|
|
"transferCancelledMoveHint": "É possível que alguns arquivos permaneçam no destino. Os arquivos de origem não foram removidos.",
|
|
"transferError": "A transferência falhou",
|
|
"transferFailedRetryHint": "Dados parciais foram mantidos no destino. A tentativa será retomada quando a conexão for restabelecida.",
|
|
"transferPartialHint": "Não foi possível transferir: {{paths}}",
|
|
"transferSuccess": "Transferência concluída",
|
|
"metricsHopSourceRead": "Origem → servidor: {{throughput}}",
|
|
"metricsHopDestSftpWrite": "Servidor → destino (SFTP): {{throughput}}",
|
|
"metricsHopDestLocalWrite": "Servidor → destino (local): {{throughput}}"
|
|
},
|
|
"plugin": {
|
|
"name": "File Manager"
|
|
}
|
|
}
|