diff --git a/copyparty/web/browser.js b/copyparty/web/browser.js
index 5f3fbb1e..bb2601d6 100644
--- a/copyparty/web/browser.js
+++ b/copyparty/web/browser.js
@@ -8199,6 +8199,636 @@ var Ls = {
"lang_set": "odśwież stronę (F5), aby zastosować zmianę.",
},
+ "por": {
+ "tt": "Português",
+
+ "cols": {
+ "c": "botões de ação",
+ "dur": "duração",
+ "q": "qualidade / bitrate",
+ "Ac": "codec de áudio",
+ "Vc": "codec de vídeo",
+ "Fmt": "formato / contêiner",
+ "Ahash": "checksum de áudio",
+ "Vhash": "checksum de vídeo",
+ "Res": "resolução",
+ "T": "tipo de arquivo",
+ "aq": "qualidade / bitrate de áudio",
+ "vq": "qualidade / bitrate de vídeo",
+ "pixfmt": "subamostragem / estrutura de pixel",
+ "resw": "resolução horizontal",
+ "resh": "resolução vertical",
+ "chs": "canais de áudio",
+ "hz": "taxa de amostragem"
+ },
+
+ "hks": [
+ [
+ "diversos",
+ ["ESC", "fechar várias coisas"],
+
+ "gerenciador de arquivos",
+ ["G", "alternar entre visualização de lista / grade"],
+ ["T", "alternar entre miniaturas / ícones"],
+ ["⇧ A/D", "tamanho da miniatura"],
+ ["ctrl-K", "excluir selecionados"],
+ ["ctrl-X", "recortar seleção para a área de transferência"],
+ ["ctrl-C", "copiar seleção para a área de transferência"],
+ ["ctrl-V", "colar (mover/copiar) aqui"],
+ ["Y", "baixar selecionado"],
+ ["F2", "renomear selecionado"],
+
+ "seleção de lista de arquivos",
+ ["espaço", "alternar seleção de arquivo"],
+ ["↑/↓", "mover cursor de seleção"],
+ ["ctrl ↑/↓", "mover cursor e visualização"],
+ ["⇧ ↑/↓", "selecionar arquivo anterior/próximo"],
+ ["ctrl-A", "selecionar todos os arquivos / pastas"],
+ ], [
+ "navegação",
+ ["B", "alternar entre breadcrumbs / painel de navegação"],
+ ["I/K", "pasta anterior/próxima"],
+ ["M", "pasta pai (ou desexpandir a atual)"],
+ ["V", "alternar entre pastas / arquivos de texto no painel de navegação"],
+ ["A/D", "tamanho do painel de navegação"],
+ ], [
+ "reprodutor de áudio",
+ ["J/L", "música anterior/próxima"],
+ ["U/O", "pular 10 segundos para trás/frente"],
+ ["0..9", "pular para 0%..90%"],
+ ["P", "reproduzir/pausar (também inicia)"],
+ ["S", "selecionar a música que está tocando"],
+ ["Y", "baixar música"],
+ ], [
+ "visualizador de imagens",
+ ["J/L, ←/→", "imagem anterior/próxima"],
+ ["Home/End", "primeira/última imagem"],
+ ["F", "tela cheia"],
+ ["R", "girar no sentido horário"],
+ ["⇧ R", "girar no sentido anti-horário"],
+ ["S", "selecionar imagem"],
+ ["Y", "baixar imagem"],
+ ], [
+ "reprodutor de vídeo",
+ ["U/O", "pular 10 segundos para trás/frente"],
+ ["P/K/Espaço", "reproduzir/pausar"],
+ ["C", "continuar reproduzindo o próximo"],
+ ["V", "loop"],
+ ["M", "mudo"],
+ ["[ e ]", "definir intervalo de loop"],
+ ], [
+ "visualizador de arquivos de texto",
+ ["I/K", "arquivo anterior/próximo"],
+ ["M", "fechar arquivo de texto"],
+ ["E", "editar arquivo de texto"],
+ ["S", "selecionar arquivo (para recortar/copiar/renomear)"],
+ ]
+ ],
+
+ "m_ok": "OK",
+ "m_ng": "Cancelar",
+
+ "enable": "Ativar",
+ "danger": "PERIGO",
+ "clipped": "copiado para a área de transferência",
+
+ "ht_s1": "segundo",
+ "ht_s2": "segundos",
+ "ht_m1": "minuto",
+ "ht_m2": "minutos",
+ "ht_h1": "hora",
+ "ht_h2": "horas",
+ "ht_d1": "dia",
+ "ht_d2": "dias",
+ "ht_and": " e ",
+
+ "goh": "painel de controle",
+ "gop": 'pai anterior">anterior',
+ "gou": 'pasta pai">acima',
+ "gon": 'próxima pasta">próximo',
+ "logout": "Sair ",
+ "access": " acesso",
+ "ot_close": "fechar submenu",
+ "ot_search": "procurar arquivos por atributos, caminho / nome, tags de música ou qualquer combinação deles$N$N<code>foo bar</code> = deve conter ambos «foo» e «bar»,$N<code>foo -bar</code> = deve conter «foo» mas não «bar»,$N<code>^yana .opus$</code> = começar com «yana» e ser um arquivo «opus»$N<code>"try unite"</code> = conter exatamente «try unite»$N$No formato de data é iso-8601, como$N<code>2009-12-31</code> ou <code>2020-09-12 23:30:00</code>",
+ "ot_unpost": "despublicar: excluir seus uploads recentes, ou abortar os que não foram concluídos",
+ "ot_bup": "bup: uploader básico, até suporta netscape 4.0",
+ "ot_mkdir": "mkdir: criar um novo diretório",
+ "ot_md": "new-md: criar um novo documento markdown",
+ "ot_msg": "msg: enviar uma mensagem para o log do servidor",
+ "ot_mp": "opções do reprodutor de mídia",
+ "ot_cfg": "opções de configuração",
+ "ot_u2i": 'up2k: fazer upload de arquivos (se você tiver acesso de escrita) ou alternar para o modo de busca para ver se eles já existem em algum lugar no servidor$N$Nuploads são reiniciáveis, multithread, e os carimbos de data/hora dos arquivos são preservados, mas usa mais CPU que [🎈] (o uploader básico)
durante os uploads, este ícone se torna um indicador de progresso!',
+ "ot_u2w": 'up2k: fazer upload de arquivos com suporte a retomada (feche seu navegador e solte os mesmos arquivos mais tarde)$N$Nmultithread, e os carimbos de data/hora dos arquivos são preservados, mas usa mais CPU que [🎈] (o uploader básico)
durante os uploads, este ícone se torna um indicador de progresso!',
+ "ot_noie": 'Por favor, use Chrome / Firefox / Edge',
+
+ "ab_mkdir": "criar diretório",
+ "ab_mkdoc": "novo documento markdown",
+ "ab_msg": "enviar msg para o log do srv",
+
+ "ay_path": "pular para pastas",
+ "ay_files": "pular para arquivos",
+
+ "wt_ren": "renomear itens selecionados$NHotkey: F2",
+ "wt_del": "excluir itens selecionados$NHotkey: ctrl-K",
+ "wt_cut": "recortar itens selecionados <small>(depois colar em outro lugar)</small>$NHotkey: ctrl-X",
+ "wt_cpy": "copiar itens selecionados para a área de transferência$N(para colá-los em outro lugar)$NHotkey: ctrl-C",
+ "wt_pst": "colar uma seleção previamente recortada / copiada$NHotkey: ctrl-V",
+ "wt_selall": "selecionar todos os arquivos$NHotkey: ctrl-A (quando o arquivo estiver em foco)",
+ "wt_selinv": "inverter seleção",
+ "wt_zip1": "baixar esta pasta como um arquivo compactado",
+ "wt_selzip": "baixar seleção como um arquivo compactado",
+ "wt_seldl": "baixar seleção como arquivos separados$NHotkey: Y",
+ "wt_npirc": "copiar informações da faixa em formato irc",
+ "wt_nptxt": "copiar informações da faixa em texto simples",
+ "wt_m3ua": "adicionar à playlist m3u (clique em 📻copiar
depois)",
+ "wt_m3uc": "copiar playlist m3u para a área de transferência",
+ "wt_grid": "alternar entre visualização de grade / lista$NHotkey: G",
+ "wt_prev": "faixa anterior$NHotkey: J",
+ "wt_play": "reproduzir / pausar$NHotkey: P",
+ "wt_next": "próxima faixa$NHotkey: L",
+
+ "ul_par": "uploads paralelos:",
+ "ut_rand": "randomizar nomes de arquivos",
+ "ut_u2ts": "copiar o carimbo de data/hora de última modificação$Ndo seu sistema de arquivos para o servidor\">📅",
+ "ut_ow": "substituir arquivos existentes no servidor?$N🛡️: nunca (irá gerar um novo nome de arquivo em vez disso)$N🕒: substituir se o arquivo no servidor for mais antigo que o seu$N♻️: sempre substituir se os arquivos forem diferentes",
+ "ut_mt": "continuar a fazer o hash de outros arquivos enquanto faz upload$N$Ntalvez desativar se sua CPU ou HDD for um gargalo",
+ "ut_ask": 'pedir confirmação antes do upload começar">💭',
+ "ut_pot": "melhorar a velocidade de upload em dispositivos lentos$Ntornando a UI menos complexa",
+ "ut_srch": "não fazer upload, em vez disso verificar se os arquivos já$N existem no servidor (irá escanear todas as pastas que você pode ler)",
+ "ut_par": "pausar uploads definindo para 0$N$naumentar se sua conexão for lenta / alta latência$N$nmanter em 1 em LAN ou se o HDD do servidor for um gargalo",
+ "ul_btn": "soltar arquivos / pastas
aqui (ou clique em mim)",
+ "ul_btnu": "U P L O A D",
+ "ul_btns": "B U S C A R",
+
+ "ul_hash": "hash",
+ "ul_send": "enviar",
+ "ul_done": "feito",
+ "ul_idle1": "nenhum upload está na fila ainda",
+ "ut_etah": "velocidade média de <em>hash</em>, e tempo estimado até o fim",
+ "ut_etau": "velocidade média de <em>upload</em> e tempo estimado até o fim",
+ "ut_etat": "velocidade média <em>total</em> e tempo estimado até o fim",
+
+ "uct_ok": "concluído com sucesso",
+ "uct_ng": "ruim: falhou / rejeitado / não encontrado",
+ "uct_done": "ok e ruim combinados",
+ "uct_bz": "fazendo hash ou upload",
+ "uct_q": "ocioso, pendente",
+
+ "utl_name": "nome do arquivo",
+ "utl_ulist": "lista",
+ "utl_ucopy": "copiar",
+ "utl_links": "links",
+ "utl_stat": "status",
+ "utl_prog": "progresso",
+
+ // mantenha curto:
+ "utl_404": "404",
+ "utl_err": "ERRO",
+ "utl_oserr": "Erro-SO",
+ "utl_found": "encontrado",
+ "utl_defer": "adiar",
+ "utl_yolo": "YOLO",
+ "utl_done": "feito",
+
+ "ul_flagblk": "os arquivos foram adicionados à fila
no entanto, há um up2k ocupado em outra aba do navegador,
então esperando que ele termine primeiro",
+ "ul_btnlk": "a configuração do servidor bloqueou este interruptor neste estado",
+
+ "udt_up": "Upload",
+ "udt_srch": "Buscar",
+ "udt_drop": "solte aqui",
+
+ "u_nav_m": '
Enter
= Arquivos (um ou mais)\nESC
= Uma pasta (incluindo subpastas)',
+ "u_nav_b": 'ArquivosUma pasta',
+
+ "cl_opts": "interruptores",
+ "cl_themes": "tema",
+ "cl_langs": "idioma",
+ "cl_ziptype": "download de pasta",
+ "cl_uopts": "interruptores up2k",
+ "cl_favico": "favicon",
+ "cl_bigdir": "grandes dirs",
+ "cl_hsort": "#sort",
+ "cl_keytype": "notação de tecla",
+ "cl_hiddenc": "colunas ocultas",
+ "cl_hidec": "ocultar",
+ "cl_reset": "resetar",
+ "cl_hpick": "toque nos cabeçalhos das colunas para ocultá-los na tabela abaixo",
+ "cl_hcancel": "ocultar coluna abortado",
+
+ "ct_grid": '田 a grade',
+ "ct_ttips": '◔ ◡ ◔">ℹ️ dicas de ferramentas',
+ "ct_thumb": 'na visualização de grade, alternar entre ícones ou miniaturas$NHotkey: T">🖼️ miniaturas',
+ "ct_csel": 'usar CTRL e SHIFT para seleção de arquivo na visualização de grade">sel',
+ "ct_ihop": 'quando o visualizador de imagens for fechado, rolar para o último arquivo visualizado">g⮯',
+ "ct_dots": 'mostrar arquivos ocultos (se o servidor permitir)">dotfiles',
+ "ct_qdel": 'ao excluir arquivos, pedir confirmação apenas uma vez">qdel',
+ "ct_dir1st": 'ordenar pastas antes de arquivos">📁 primeiro',
+ "ct_nsort": 'ordem natural (para nomes de arquivos com dígitos iniciais)">nsort',
+ "ct_utc": 'mostrar todas as datas/horas em UTC">UTC',
+ "ct_readme": 'mostrar README.md nas listas de pastas">📜 readme',
+ "ct_idxh": 'mostrar index.html em vez de lista de pastas">htm',
+ "ct_sbars": 'mostrar barras de rolagem">⟊',
+
+ "cut_umod": "se um arquivo já existe no servidor, atualizar o carimbo de data/hora de última modificação do servidor para corresponder ao seu arquivo local (requer permissões de escrita+exclusão)\">re📅",
+
+ "cut_turbo": "o botão yolo, você provavelmente NÃO quer habilitar isso:$N$Nuse isto se você estava fazendo upload de uma enorme quantidade de arquivos e teve que reiniciar por algum motivo, e quer continuar o upload o mais rápido possível$N$Nisto substitui a verificação de hash por uma simples "este arquivo tem o mesmo tamanho no servidor?" então se o conteúdo do arquivo for diferente ele NÃO será enviado$N$Nvocê deve desativar isso quando o upload estiver concluído, e então "enviar" os mesmos arquivos novamente para permitir que o cliente os verifique\">turbo",
+
+ "cut_datechk": "não tem efeito a menos que o botão turbo esteja ativado$N$Nreduz o fator yolo por uma pequena quantidade; verifica se os carimbos de data/hora dos arquivos no servidor correspondem aos seus$N$ndeve teoricamente pegar a maioria dos uploads incompletos / corrompidos, mas não é um substituto para fazer uma verificação com o turbo desativado depois\">date-chk",
+
+ "cut_u2sz": "tamanho (em MiB) de cada bloco de upload; valores grandes voam melhor pelo atlântico. Tente valores baixos em conexões muito não confiáveis",
+
+ "cut_flag": "garantir que apenas uma aba esteja fazendo upload por vez $N -- outras abas devem ter isso ativado também $N -- só afeta abas no mesmo domínio",
+
+ "cut_az": "enviar arquivos em ordem alfabética, em vez de o menor primeiro$N$na ordem alfabética pode tornar mais fácil de verificar se algo deu errado no servidor, mas torna o upload um pouco mais lento em fibra / LAN",
+
+ "cut_nag": "notificação do SO quando o upload for concluído$N(somente se o navegador ou aba não estiver ativo)",
+ "cut_sfx": "alerta audível quando o upload for concluído$N(somente se o navegador ou aba não estiver ativo)",
+
+ "cut_mt": "usar multithreading para acelerar o hash de arquivos$N$nisto usa web-workers e requer$Nmais RAM (até 512 MiB extras)$N$ntorna https 30% mais rápido, http 4.5x mais rápido\">mt",
+
+ "cut_wasm": "usar wasm em vez do hasher embutido do navegador; melhora a velocidade em navegadores baseados em chrome mas aumenta a carga da CPU, e muitas versões antigas do chrome têm bugs que fazem o navegador consumir toda a RAM e travar se isso for ativado\">wasm",
+
+ "cft_text": "texto do favicon (deixe em branco e atualize para desativar)",
+ "cft_fg": "cor do primeiro plano",
+ "cft_bg": "cor do fundo",
+
+ "cdt_lim": "número máximo de arquivos para mostrar em uma pasta",
+ "cdt_ask": "ao rolar para o final,$nem vez de carregar mais arquivos,$nperguntar o que fazer",
+ "cdt_hsort": "quantas regras de ordenação (<code>,sorthref</code>) incluir em URLs de mídia. Definir isso para 0 também ignorará as regras de ordenação incluídas em links de mídia quando você clicar neles",
+
+ "tt_entree": "mostrar painel de navegação (árvore de diretórios)$NHotkey: B",
+ "tt_detree": "mostrar breadcrumbs$NHotkey: B",
+ "tt_visdir": "rolar para a pasta selecionada",
+ "tt_ftree": "alternar entre árvore de pastas / arquivos de texto$NHotkey: V",
+ "tt_pdock": "mostrar pastas pai em um painel acoplado no topo",
+ "tt_dynt": "crescer automaticamente à medida que a árvore se expande",
+ "tt_wrap": "quebra de linha",
+ "tt_hover": "revelar linhas transbordando ao passar o mouse$N( quebra a rolagem a menos que o cursor do mouse $N esteja na margem esquerda )",
+
+ "ml_pmode": "ao final da pasta...",
+ "ml_btns": "comandos",
+ "ml_tcode": "transcodificar",
+ "ml_tcode2": "transcodificar para",
+ "ml_tint": "matiz",
+ "ml_eq": "equalizador de áudio",
+ "ml_drc": "compressor de faixa dinâmica",
+
+ "mt_loop": "loop/repetir uma música\">🔁",
+ "mt_one": "parar depois de uma música\">1️⃣",
+ "mt_shuf": "embaralhar as músicas em cada pasta\">🔀",
+ "mt_aplay": "reproduzir automaticamente se houver um ID de música no link que você clicou para acessar o servidor$N$ndesativar isso também impedirá que a URL da página seja atualizada com IDs de música ao tocar música, para evitar a reprodução automática se essas configurações forem perdidas mas a URL permanecer\">a▶",
+ "mt_preload": "começar a carregar a próxima música perto do final para uma reprodução sem interrupções\">preload",
+ "mt_prescan": "ir para a próxima pasta antes que a última música$Ntermine, mantendo o navegador feliz$Npara que ele não pare a reprodução\">nav",
+ "mt_fullpre": "tentar pré-carregar a música inteira;$N✅ ativar em conexões não confiáveis,$N❌ desativar em conexões lentas provavelmente\">full",
+ "mt_fau": "em telefones, evitar que a música pare se a próxima música não pré-carregar rápido o suficiente (pode fazer as tags aparecerem com falhas)\">☕️",
+ "mt_waves": "barra de busca de forma de onda:$Nmostrar amplitude de áudio no scrubber\">~s",
+ "mt_npclip": "mostrar botões para copiar a música que está tocando para a área de transferência\">/np",
+ "mt_m3u_c": "mostrar botões para copiar as$Nmúsicas selecionadas como entradas de playlist m3u8 para a área de transferência\">📻",
+ "mt_octl": "integração com o SO (atalhos de mídia / osd)\">os-ctl",
+ "mt_oseek": "permitir busca através da integração com o SO$N$nnota: em alguns dispositivos (iPhones),$nisto substitui o botão de próxima música\">seek",
+ "mt_oscv": "mostrar capa do álbum no osd\">art",
+ "mt_follow": "manter a faixa que está tocando rolando à vista\">🎯",
+ "mt_compact": "controles compactos\">⟎",
+ "mt_uncache": "limpar cache (tente isso se seu navegador armazenou em cache$Numa cópia quebrada de uma música e se recusa a tocar)\">uncache",
+ "mt_mloop": "loop na pasta aberta\">🔁 loop",
+ "mt_mnext": "carregar a próxima pasta e continuar\">📂 próximo",
+ "mt_mstop": "parar reprodução\">⏸ parar",
+ "mt_cflac": "converter flac / wav para {0}\">flac",
+ "mt_caac": "converter aac / m4a para {0}\">aac",
+ "mt_coth": "converter todos os outros (não mp3) para {0}\">oth",
+ "mt_c2opus": "melhor escolha para desktops, laptops, android\">opus",
+ "mt_c2owa": "opus-weba, para iOS 17.5 e mais recentes\">owa",
+ "mt_c2caf": "opus-caf, para iOS 11 a 17\">caf",
+ "mt_c2mp3": "use isso em dispositivos muito antigos\">mp3",
+ "mt_c2flac": "melhor qualidade de som, mas downloads enormes\">flac",
+ "mt_c2wav": "reprodução não comprimida (ainda maior)\">wav",
+ "mt_c2ok": "legal, boa escolha",
+ "mt_c2nd": "esse não é o formato de saída recomendado para o seu dispositivo, mas tudo bem",
+ "mt_c2ng": "seu dispositivo não parece suportar este formato de saída, mas vamos tentar mesmo assim",
+ "mt_xowa": "existem bugs no iOS que impedem a reprodução em segundo plano usando este formato; por favor, use caf ou mp3 em vez disso",
+ "mt_tint": "nível de fundo (0-100) na barra de busca$Npara tornar o buffer menos distrativo",
+ "mt_eq": "ativa o equalizador e o controle de ganho;$N$nimpulsão <code>0</code> = volume padrão de 100% (não modificado)$N$nlargura <code>1 </code> = estéreo padrão (não modificado)$nlargura <code>0.5</code> = 50% de crossfeed esquerda-direita$nlargura <code>0 </code> = mono$N$nimpulsão <code>-0.8</code> & largura <code>10</code> = remoção de vocal :^)$N$natvar o equalizador torna os álbuns sem interrupções totalmente sem interrupções, então deixe-o ligado com todos os valores em zero (exceto largura = 1) se você se importa com isso",
+ "mt_drc": "ativa o compressor de faixa dinâmica (nivelador de volume / brickwaller); também ativará o EQ para equilibrar o spaghetti, então defina todos os campos EQ exceto 'width' para 0 se você não quiser$N$nabaixa o volume do áudio acima do THRESHOLD dB; para cada RATIO dB após o THRESHOLD há 1 dB de saída, então os valores padrão de tresh -24 e ratio 12 significam que nunca deve ficar mais alto que -22 dB e é seguro aumentar o impulso do equalizador para 0.8, ou até 1.8 com ATK 0 e um enorme RLS como 90 (só funciona no firefox; RLS é no máximo 1 em outros navegadores)$N$n(veja a wikipedia, eles explicam muito melhor)",
+
+ "mb_play": "reproduzir",
+ "mm_hashplay": "reproduzir este arquivo de áudio?",
+ "mm_m3u": "pressione Enter/OK
para Reproduzir\npressione ESC/Cancelar
para Editar",
+ "mp_breq": "precisa do firefox 82+ ou chrome 73+ ou iOS 15+",
+ "mm_bload": "carregando...",
+ "mm_bconv": "convertendo para {0}, por favor, espere...",
+ "mm_opusen": "seu navegador não pode reproduzir arquivos aac / m4a;\na transcodificação para opus agora está ativada",
+ "mm_playerr": "reprodução falhou: ",
+ "mm_eabrt": "A tentativa de reprodução foi cancelada",
+ "mm_enet": "Sua conexão de internet está instável",
+ "mm_edec": "Este arquivo está supostamente corrompido??",
+ "mm_esupp": "Seu navegador não entende este formato de áudio",
+ "mm_eunk": "Erro Desconhecido",
+ "mm_e404": "Não foi possível reproduzir áudio; erro 404: Arquivo não encontrado.",
+ "mm_e403": "Não foi possível reproduzir áudio; erro 403: Acesso negado.\n\nTente pressionar F5 para recarregar, talvez você tenha saído da conta",
+ "mm_e500": "Não foi possível reproduzir áudio; erro 500: Verifique os logs do servidor.",
+ "mm_e5xx": "Não foi possível reproduzir áudio; erro do servidor ",
+ "mm_nof": "não encontrando mais arquivos de áudio por perto",
+ "mm_prescan": "Procurando música para tocar a seguir...",
+ "mm_scank": "Encontrei a próxima música:",
+ "mm_uncache": "cache limpo; todas as músicas serão baixadas novamente na próxima reprodução",
+ "mm_hnf": "essa música não existe mais",
+
+ "im_hnf": "essa imagem não existe mais",
+
+ "f_empty": 'esta pasta está vazia',
+ "f_chide": 'isso irá ocultar a coluna «{0}»\n\nvocê pode reexibir as colunas na aba de configurações',
+ "f_bigtxt": "este arquivo tem {0} MiB de tamanho -- realmente ver como texto?",
+ "f_bigtxt2": "ver apenas o final do arquivo em vez disso? isso também ativará o acompanhamento/tailing, mostrando linhas de texto recém-adicionadas em tempo real",
+ "fbd_more": '',
+ "fbd_all": '',
+ "f_anota": "apenas {0} dos {1} itens foram selecionados;\npara selecionar a pasta inteira, primeiro role para o final",
+
+ "f_dls": 'os links de arquivo na pasta atual foram\nalterados para links de download',
+
+ "f_partial": "Para baixar com segurança um arquivo que está sendo enviado, por favor, clique no arquivo que tem o mesmo nome, mas sem a extensão .PARTIAL
. Por favor, pressione CANCELAR ou Escape para fazer isso.\n\nPressionar OK / Enter irá ignorar este aviso e continuar baixando o arquivo temporário .PARTIAL
, o que quase certamente lhe dará dados corrompidos.",
+
+ "ft_paste": "colar {0} itens$NHotkey: ctrl-V",
+ "fr_eperm": 'não é possível renomear:\nvocê não tem permissão de “mover” nesta pasta',
+ "fd_eperm": 'não é possível excluir:\nvocê não tem permissão de “excluir” nesta pasta',
+ "fc_eperm": 'não é possível recortar:\nvocê não tem permissão de “mover” nesta pasta',
+ "fp_eperm": 'não é possível colar:\nvocê não tem permissão de “escrever” nesta pasta',
+ "fr_emore": "selecione pelo menos um item para renomear",
+ "fd_emore": "selecione pelo menos um item para excluir",
+ "fc_emore": "selecione pelo menos um item para recortar",
+ "fcp_emore": "selecione pelo menos um item para copiar para a área de transferência",
+
+ "fs_sc": "compartilhar a pasta em que você está",
+ "fs_ss": "compartilhar os arquivos selecionados",
+ "fs_just1d": "você não pode selecionar mais de uma pasta,\nou misturar arquivos e pastas em uma seleção",
+ "fs_abrt": "❌ abortar",
+ "fs_rand": "🎲 nome aleatório",
+ "fs_go": "✅ criar compartilhamento",
+ "fs_name": "nome",
+ "fs_src": "fonte",
+ "fs_pwd": "senha",
+ "fs_exp": "expira",
+ "fs_tmin": "min",
+ "fs_thrs": "horas",
+ "fs_tdays": "dias",
+ "fs_never": "eterno",
+ "fs_pname": "nome do link opcional; será aleatório se em branco",
+ "fs_tsrc": "o arquivo ou pasta a ser compartilhado",
+ "fs_ppwd": "senha opcional",
+ "fs_w8": "criando compartilhamento...",
+ "fs_ok": "pressione Enter/OK
para Copiar para a Área de Transferência\npressione ESC/Cancelar
para Fechar",
+
+ "frt_dec": "pode consertar alguns casos de nomes de arquivos quebrados\">url-decode",
+ "frt_rst": "resetar nomes de arquivos modificados de volta para os originais\">↺ resetar",
+ "frt_abrt": "abortar e fechar esta janela\">❌ cancelar",
+ "frb_apply": "APLICAR RENOMEAÇÃO",
+ "fr_adv": "renomeação em lote / metadados / padrão\">avançado",
+ "fr_case": "regex sensível a maiúsculas e minúsculas\">case",
+ "fr_win": "nomes seguros para windows; substituir <>:"\\|?*
por caracteres japoneses de largura total\">win",
+ "fr_slash": "substituir /
por um caractere que não cause a criação de novas pastas\">no /",
+ "fr_re": "padrão de busca regex para aplicar aos nomes de arquivos originais; grupos de captura podem ser referenciados no campo de formato abaixo como <code>(1)</code> e <code>(2)</code> e assim por diante",
+ "fr_fmt": "inspirado por foobar2000:$N<code>(título)</code> é substituído pelo título da música,$N<code>[(artista) - ](título)</code> pula esta parte se o artista estiver em branco$N<code>$lpad((tn),2,0)</code> preenche o número da faixa com 2 dígitos",
+ "fr_pdel": "excluir",
+ "fr_pnew": "salvar como",
+ "fr_pname": "forneça um nome para seu novo preset",
+ "fr_aborted": "abortado",
+ "fr_lold": "nome antigo",
+ "fr_lnew": "novo nome",
+ "fr_tags": "tags para os arquivos selecionados (somente leitura, apenas para referência):",
+ "fr_busy": "renomeando {0} itens...\n\n{1}",
+ "fr_efail": "renomeação falhou:\n",
+ "fr_nchg": "{0} dos novos nomes foram alterados devido a win
e/ou no /
\n\nOK para continuar com estes novos nomes alterados?",
+
+ "fd_ok": "exclusão OK",
+ "fd_err": "exclusão falhou:\n",
+ "fd_none": "nada foi excluído; talvez bloqueado pela configuração do servidor (xbd)?",
+ "fd_busy": "excluindo {0} itens...\n\n{1}",
+ "fd_warn1": "EXCLUIR estes {0} itens?",
+ "fd_warn2": "Última chance! Não há como desfazer. Excluir?",
+
+ "fc_ok": "recortar {0} itens",
+ "fc_warn": 'recortar {0} itens\n\nmas: apenas esta aba do navegador pode colá-los\n(já que a seleção é tão absolutamente massiva)',
+
+ "fcc_ok": "copiado {0} itens para a área de transferência",
+ "fcc_warn": 'copiado {0} itens para a área de transferência\n\nmas: apenas esta aba do navegador pode colá-los\n(já que a seleção é tão absolutamente massiva)',
+
+ "fp_apply": "usar estes nomes",
+ "fp_ecut": "primeiro recorte ou copie alguns arquivos / pastas para colar / mover\n\nnota: você pode recortar / colar entre abas diferentes do navegador",
+ "fp_ename": "{0} itens não podem ser movidos para cá porque os nomes já estão em uso. Dê a eles novos nomes abaixo para continuar, ou deixe o nome em branco para pular:",
+ "fcp_ename": "{0} itens não podem ser copiados para cá porque os nomes já estão em uso. Dê a eles novos nomes abaixo para continuar, ou deixe o nome em branco para pular:",
+ "fp_emore": "ainda há algumas colisões de nome de arquivo para consertar",
+ "fp_ok": "movimento OK",
+ "fcp_ok": "cópia OK",
+ "fp_busy": "movendo {0} itens...\n\n{1}",
+ "fcp_busy": "copiando {0} itens...\n\n{1}",
+ "fp_abrt": "abortando...",
+ "fp_err": "movimento falhou:\n",
+ "fcp_err": "cópia falhou:\n",
+ "fp_confirm": "mover estes {0} itens para cá?",
+ "fcp_confirm": "copiar estes {0} itens para cá?",
+ "fp_etab": 'falha ao ler a área de transferência de outra aba do navegador',
+ "fp_name": "enviando um arquivo do seu dispositivo. Dê-lhe um nome:",
+ "fp_both_m": 'Enter
= Mover {0} arquivos de «{1}»\nESC
= Enviar {2} arquivos do seu dispositivo',
+ "fcp_both_m": 'Enter
= Copiar {0} arquivos de «{1}»\nESC
= Enviar {2} arquivos do seu dispositivo',
+ "fp_both_b": 'MoverEnviar',
+ "fcp_both_b": 'CopiarEnviar',
+
+ "mk_noname": "digite um nome no campo de texto à esquerda antes de fazer isso :p",
+
+ "tv_load": "Carregando documento de texto:\n\n{0}\n\n{1}% ({2} de {3} MiB carregados)",
+ "tv_xe1": "não foi possível carregar o arquivo de texto:\n\nerro ",
+ "tv_xe2": "404, arquivo não encontrado",
+ "tv_lst": "lista de arquivos de texto em",
+ "tvt_close": "voltar para a visualização da pasta$NHotkey: M (ou Esc)\">❌ fechar",
+ "tvt_dl": "baixar este arquivo$NHotkey: Y\">💾 baixar",
+ "tvt_prev": "mostrar documento anterior$NHotkey: i\">⬆ anterior",
+ "tvt_next": "mostrar próximo documento$NHotkey: K\">⬇ próximo",
+ "tvt_sel": "selecionar arquivo ( para recortar / copiar / excluir / ... )$NHotkey: S\">sel",
+ "tvt_edit": "abrir arquivo no editor de texto$NHotkey: E\">✏️ editar",
+ "tvt_tail": "monitorar arquivo para alterações; mostrar novas linhas em tempo real\">📡 seguir",
+ "tvt_wrap": "quebra de linha\">↵",
+ "tvt_atail": "fixar rolagem no final da página\">⚓",
+ "tvt_ctail": "decodificar cores do terminal (códigos de escape ansi)\">🌈",
+ "tvt_ntail": "limite de rolagem para trás (quantos bytes de texto manter carregados)",
+
+ "m3u_add1": "música adicionada à playlist m3u",
+ "m3u_addn": "{0} músicas adicionadas à playlist m3u",
+ "m3u_clip": "playlist m3u agora copiada para a área de transferência\n\nvocê deve criar um novo arquivo de texto chamado something.m3u e colar a playlist nesse documento; isso a tornará reproduzível",
+
+ "gt_vau": "não mostrar vídeos, apenas tocar o áudio\">🎧",
+ "gt_msel": "ativar seleção de arquivo; ctrl-clique em um arquivo para substituir$N$n<em>quando ativo: clique duas vezes em um arquivo / pasta para abri-lo&>t;/em>$N$nHotkey: S\">multisseleção",
+ "gt_crop": "cortar miniaturas ao centro\">cortar",
+ "gt_3x": "miniaturas de alta resolução\">3x",
+ "gt_zoom": "zoom",
+ "gt_chop": "picar",
+ "gt_sort": "ordenar por",
+ "gt_name": "nome",
+ "gt_sz": "tamanho",
+ "gt_ts": "data",
+ "gt_ext": "tipo",
+ "gt_c1": "truncar nomes de arquivos mais (mostrar menos)",
+ "gt_c2": "truncar nomes de arquivos menos (mostrar mais)",
+
+ "sm_w8": "buscando...",
+ "sm_prev": "os resultados da busca abaixo são de uma consulta anterior:\n ",
+ "sl_close": "fechar resultados da busca",
+ "sl_hits": "mostrando {0} resultados",
+ "sl_moar": "carregar mais",
+
+ "s_sz": "tamanho",
+ "s_dt": "data",
+ "s_rd": "caminho",
+ "s_fn": "nome",
+ "s_ta": "tags",
+ "s_ua": "up@",
+ "s_ad": "adv.",
+ "s_s1": "MiB mínimo",
+ "s_s2": "MiB máximo",
+ "s_d1": "iso8601 min.",
+ "s_d2": "iso8601 max.",
+ "s_u1": "enviado depois de",
+ "s_u2": "e/ou antes de",
+ "s_r1": "caminho contém (separado por espaço)",
+ "s_f1": "nome contém (negar com -nope)",
+ "s_t1": "tags contém (^=início, fim=$)",
+ "s_a1": "propriedades de metadados específicas",
+
+ "md_eshow": "não é possível renderizar ",
+ "md_off": "[📜readme] desativado em [⚙️] -- documento oculto",
+
+ "badreply": "Falha ao analisar a resposta do servidor",
+
+ "xhr403": "403: Acesso negado\n\ntente pressionar F5, talvez você tenha saído da conta",
+ "xhr0": "desconhecido (provavelmente perdeu a conexão com o servidor, ou o servidor está offline)",
+ "cf_ok": "desculpe por isso -- a proteção DD" + "oS foi ativada\n\nas coisas devem ser retomadas em cerca de 30 segundos\n\nse nada acontecer, pressione F5 para recarregar a página",
+ "tl_xe1": "não foi possível listar as subpastas:\n\nerro ",
+ "tl_xe2": "404: Pasta não encontrada",
+ "fl_xe1": "não foi possível listar os arquivos na pasta:\n\nerro ",
+ "fl_xe2": "404: Pasta não encontrada",
+ "fd_xe1": "não foi possível criar a subpasta:\n\nerro ",
+ "fd_xe2": "404: Pasta pai não encontrada",
+ "fsm_xe1": "não foi possível enviar a mensagem:\n\nerro ",
+ "fsm_xe2": "404: Pasta pai não encontrada",
+ "fu_xe1": "falha ao carregar a lista de despublicação do servidor:\n\nerro ",
+ "fu_xe2": "404: Arquivo não encontrado??",
+
+ "fz_tar": "arquivo gnu-tar não comprimido (linux / mac)",
+ "fz_pax": "tar de formato pax não comprimido (mais lento)",
+ "fz_targz": "gnu-tar com compressão gzip nível 3$N$nisto é geralmente muito lento, então$nuse tar não comprimido em vez disso",
+ "fz_tarxz": "gnu-tar com compressão xz nível 1$N$nisto é geralmente muito lento, então$nuse tar não comprimido em vez disso",
+ "fz_zip8": "zip com nomes de arquivos utf8 (pode ser instável no windows 7 e mais antigos)",
+ "fz_zipd": "zip com nomes de arquivos cp437 tradicionais, para software realmente antigo",
+ "fz_zipc": "cp437 com crc32 calculado antecipadamente,$npara MS-DOS PKZIP v2.04g (outubro de 1993)$n(leva mais tempo para processar antes que o download possa começar)",
+
+ "un_m1": "você pode excluir seus uploads recentes (ou abortar os que não foram concluídos) abaixo",
+ "un_upd": "atualizar",
+ "un_m4": "ou compartilhar os arquivos visíveis abaixo:",
+ "un_ulist": "mostrar",
+ "un_ucopy": "copiar",
+ "un_flt": "filtro opcional: a URL deve conter",
+ "un_fclr": "limpar filtro",
+ "un_derr": 'a exclusão da despublicação falhou:\n',
+ "un_f5": 'algo quebrou, por favor, tente uma atualização ou pressione F5',
+ "un_uf5": "desculpe, mas você tem que atualizar a página (por exemplo, pressionando F5 ou CTRL-R) antes que este upload possa ser abortado",
+ "un_nou": "aviso: o servidor está muito ocupado para mostrar uploads incompletos; clique no link \"atualizar\" em um momento",
+ "un_noc": "aviso: a despublicação de arquivos totalmente enviados não está ativada/permitida na configuração do servidor",
+ "un_max": "mostrando os primeiros 2000 arquivos (use o filtro)",
+ "un_avail": "{0} uploads recentes podem ser excluídosarquivos: {0} concluídos, {1} falhados, {2} ocupados, {3} na fila
", + "u_ever": "este é o uploader básico; up2k precisa de pelo menosOK/Enter
para PULAR os seguintes arquivos,\nPressione Cancelar/ESC
para NÃO excluir, e ENVIAR esses também:\n\n',
+ "u_just1": '\nTalvez funcione melhor se você selecionar apenas um arquivo',
+ "u_ff_many": "se você estiver usando Linux / MacOS / Android, então essa quantidade de arquivos pode travar o Firefox!\nse isso acontecer, por favor, tente novamente (ou use o Chrome).",
+ "u_up_life": "Este upload será excluído do servidor\n{0} após ser concluído",
+ "u_asku": 'enviar estes {0} arquivos para {1}
',
+ "u_unpt": "você pode desfazer / excluir este upload usando o 🧯 no canto superior esquerdo",
+ "u_bigtab": 'prestes a mostrar {0} arquivos\n\nisto pode travar seu navegador, tem certeza?',
+ "u_scan": 'Escaneando arquivos...',
+ "u_dirstuck": 'o iterador de diretório travou ao tentar acessar os seguintes {0} itens; irá pular:',
+ "u_etadone": 'Concluído ({0}, {1} arquivos)',
+ "u_etaprep": '(preparando para enviar)',
+ "u_hashdone": 'hash concluído',
+ "u_hashing": 'hash',
+ "u_hs": 'handshaking...',
+ "u_started": "os arquivos estão sendo enviados agora; veja [🚀]",
+ "u_dupdefer": "duplicado; será processado após todos os outros arquivos",
+ "u_actx": "clique neste texto para evitar perda deF5
para atualizar a páginamt
nas ⚙️ configurações
F5
para atualizar a página🥔
(batata) na UI de uploadconnections-per-server
em about:config
",
+ "u_tu": 'AVISO: turbo ativado, o cliente pode não detectar e retomar uploads incompletos; veja a dica de ferramenta do botão turbo
', + "u_ts": 'AVISO: turbo ativado, os resultados da busca podem estar incorretos; veja a dica de ferramenta do botão turbo
', + "u_turbo_c": "o turbo está desativado na configuração do servidor", + "u_turbo_g": "desativando o turbo porque você não tem\n privilégios de listagem de diretório neste volume", + "u_life_cfg": 'excluir automaticamente depois de min (ou horas)', + "u_life_est": 'o upload será excluído ---', + "u_life_max": 'esta pasta impõe um\n tempo de vida máximo de {0}', + "u_unp_ok": 'a despublicação é permitida para {0}', + "u_unp_ng": 'a despublicação NÃO será permitida', + "ue_ro": 'seu acesso a esta pasta é Somente Leitura\n\n', + "ue_nl": 'você não está logado no momento', + "ue_la": 'você está logado no momento como "{0}"', + "ue_sr": 'você está no modo de busca de arquivos no momento\n\nmude para o modo de upload clicando na lupa 🔎 (ao lado do grande botão BUSCAR), e tente enviar novamente\n\ndesculpe', + "ue_ta": 'tente enviar novamente, deve funcionar agora', + "ue_ab": "este arquivo já está sendo enviado para outra pasta, e esse upload deve ser concluído antes que o arquivo possa ser enviado para outro lugar.\n\nVocê pode abortar e esquecer o upload inicial usando o 🧯 no canto superior esquerdo", + "ur_1uo": "OK: Arquivo enviado com sucesso", + "ur_auo": "OK: Todos os {0} arquivos enviados com sucesso", + "ur_1so": "OK: Arquivo encontrado no servidor", + "ur_aso": "OK: Todos os {0} arquivos encontrados no servidor", + "ur_1un": "O upload falhou, desculpe", + "ur_aun": "Todos os {0} uploads falharam, desculpe", + "ur_1sn": "O arquivo NÃO foi encontrado no servidor", + "ur_asn": "Os {0} arquivos NÃO foram encontrados no servidor", + "ur_um": "Concluído;\n{0} uploads OK,\n{1} uploads falharam, desculpe", + "ur_sm": "Concluído;\n{0} arquivos encontrados no servidor,\n{1} arquivos NÃO encontrados no servidor", + + "lang_set": "atualizar para a mudança ter efeito?" + }, "rus": { "tt": "Русский", @@ -10720,7 +11350,7 @@ var Ls = { }, }; -var LANGS = ["eng", "nor", "nno", "chi", "cze", "deu", "fin", "fra", "grc", "ita", "kor", "nld", "rus", "spa", "swe", "ukr"]; +var LANGS = ["eng", "nor", "nno", "chi", "cze", "deu", "fin", "fra", "grc", "ita", "kor", "nld", "por", "rus", "spa", "swe", "ukr"]; if (window.langmod) langmod(); diff --git a/copyparty/web/splash.js b/copyparty/web/splash.js index ad2d81db..4ff09fd1 100644 --- a/copyparty/web/splash.js +++ b/copyparty/web/splash.js @@ -571,6 +571,53 @@ var Ls = { "af1": "pokaż ostatnio przesłane pliki", "ag1": "pokaż znanych użytkowników IdP", }, + "por": { + "a1": "atualizar", + "b1": "olá (você não está logado)", + "c1": "encerrar sessão", + "d1": "despejar o estado da pilha", + "d2": "mostra o estado de todos os threads ativos", + "e1": "recarregar configuração", + "e2": "recarregar arquivos de configuração (contas/volumes/indicadores de volume),$N e reescanear todos os volumes e2ds$N$Nnota: qualquer alteração na configuração global$N requer uma reinicialização completa para ter efeito", + "f1": "você pode navegar:", + "g1": "você pode fazer upload para:", + "cc1": "outras coisas:", + "h1": "desativar k304", + "i1": "ativar k304", + "j1": "ativar k304 irá desconectar seu cliente em cada HTTP 304, o que pode evitar que alguns proxies com erros fiquem presos (parando de carregar páginas de repente), mas também irá desacelerar as coisas em geral", + "k1": "redefinir config. de cliente", + "l1": "faça login para mais:", + "ls3": "fazer login", + "lu4": "nome de usuário", + "lp4": "senha", + "lo3": "encerrar sessão de \"{0}\" em todos os lugares", + "lo2": "isso irá encerrar a sessão em todos os navegadores", + "m1": "bem-vindo de volta,", + "n1": "404 não encontrado ┐( ´ -`)┌", + "o1": "ou talvez você não tenha acesso? -- tente com uma senha ou volte para o início", + "p1": "403 proibido ~┻━┻", + "q1": "use uma senha ou volte para o início", + "r1": "ir para o início", + ".s1": "reescanear", + "t1": "ação", + "u2": "tempo desde a última gravação no servidor$N( upload / renomear / ... )$N$N17d = 17 dias$N1h23 = 1 hora 23 minutos$N4m56 = 4 minutos 56 segundos", + "v1": "conectar", + "v2": "usar este servidor como um disco rígido local", + "w1": "mudar para https", + "x1": "mudar senha", + "y1": "editar recursos compartilhados", + "z1": "desbloquear este recurso compartilhado:", + "ta1": "primeiro digite sua nova senha", + "ta2": "repita para confirmar a nova senha:", + "ta3": "há um erro; por favor, tente novamente", + "aa1": "arquivos de entrada:", + "ab1": "desativar no304", + "ac1": "ativar no304", + "ad1": "ativar no304 irá desabilitar todo o armazenamento em cache; tente isso se k304 não for suficiente. Isso irá desperdiçar uma grande quantidade de tráfego de rede!", + "ae1": "downloads ativos:", + "af1": "mostrar uploads recentes", + "ag1": "mostrar usuários IdP conhecidos" + }, "spa": { "a1": "actualizar", "b1": "hola (no has iniciado sesión)",