feat: move session sharing and collab rooms into a plugin (B12)

This commit is contained in:
LukeGus committed 2026-09-23 23:42:46 -05:00
1 parent 791d8656a1
commit a276f6898c
207 files changed
+35771 -11072

No files matched your search

+2 -134
View File
@@ -667,7 +667,6 @@
"done_cli_link": "Abra a documentação da CLI."
},
"nav": {
"collab": "Reuniões",
"home": "Início",
"terminal": "Terminal",
"localTerminal": "Terminal local",
@@ -1036,8 +1035,6 @@
"enableAutoTmuxDesc": "Mantenha o seu shell e tudo o que nele está a ser executado em funcionamento mesmo após desconexões e reinicializações do browser, executando o comando dentro do tmux (o tmux necessita de estar instalado no host).",
"enableSessionLogging": "Registo de sessão",
"enableSessionLoggingDesc": "Gravar a saída da sessão de terminal para revisão posterior",
"allowSessionSharing": "Permitir partilha de sessão",
"allowSessionSharingDesc": "Permitir que as sessões em direto neste servidor sejam partilhadas através de link ou com outros utilizadores.",
"localEchoLabel": "Eco Local",
"localEchoDesc": "Preveja sequências de teclas seguras e imprimíveis localmente em ligações lentas. Os avisos de palavra-passe e as entradas de controlo nunca são repetidos.",
"localEchoDefault": "Usar configuração global",
@@ -1571,137 +1568,11 @@
"join": "Juntar",
"sharedSessionLabel": "{{hostName}} (partilhado)"
},
"collab": {
"createRoom": "Quarto novo",
"roomName": "Nome do quarto",
"persistentRoom": "Sala persistente",
"persistentRoomHint": "As salas permanentes permanecem listadas após o término da reunião e podem ser reutilizadas.",
"noRooms": "Ainda não há salas. Crie uma para iniciar uma reunião.",
"openRoom": "Aberto",
"endRoom": "Encerramento da reunião",
"leaveRoom": "Ausência",
"deleteMember": "Remover",
"removeMember": "Remover {{name}}",
"removeMemberTitle": "Remover este membro?",
"removeMemberDescription": "{{name}} perderá o acesso a esta sala imediatamente. Qualquer visualizador SSH ativo será desligado.",
"invite": "Convidar",
"inviteTitle": "Convide os membros",
"members": "Membros",
"membersPanel": "Membros da sala e pedidos de controlo",
"membersWithCount": "Membros ({{count}})",
"online": "online",
"offline": "offline",
"you": "(tu)",
"hostBadge": "Anfitrião",
"presenterBadge": "Apresentando",
"present": "Presente",
"presentTitle": "Suba ao palco",
"presentHost": "Anfitrião",
"searchHosts": "Pesquisar anfitriões",
"noHostsFound": "Nenhum host disponível encontrado.",
"presentProtocol": "Protocolo",
"stopPresenting": "Pare de apresentar",
"takeOver": "Assumir",
"takeOverConfirmTitle": "Substituir a apresentação atual?",
"takeOverDescription": "{{name}} está a apresentar agora. Assumir o controlo desconectará todos desse palco.",
"emptyStage": "Ninguém está a apresentar. Suba ao palco para partilhar uma sessão.",
"stageLoading": "Ligar-se ao palco...",
"stageEnded": "A apresentação terminou.",
"roomEnded": "Esta reunião terminou.",
"presenterLabel": "{{name}} está a apresentar",
"guestLink": "Link para convidado",
"guestLinkOn": "O link para convidados está ativado. Qualquer pessoa com o link pode assistir à apresentação.",
"guestLinkOff": "O link para os visitantes está desativado.",
"copyLink": "Copiar link",
"rotateLink": "Rotacionar ligação",
"disableLink": "Desativar ligação",
"rotateLinkConfirmTitle": "Rodar o link do convidado?",
"rotateLinkDescription": "A ligação atual deixará de funcionar imediatamente. Os dispositivos convidados SSH ligados serão desligados.",
"disableLinkConfirmTitle": "Desativar o link de convidado?",
"disableLinkDescription": "Os visualizadores SSH anónimos serão imediatamente desligados e a ligação atual deixará de funcionar.",
"linkCopied": "Link copiado",
"roles": "Funções",
"users": "Usuários",
"searchUsers": "Os utilizadores da pesquisa",
"endConfirmTitle": "Encerrar esta reunião?",
"endDescription": "{{name}} será encerrado para todos e não poderá ser reaberto.",
"endPersistentDescription": "A apresentação ativa em {{name}} será interrompida. A sala continua disponível para reutilização.",
"deleteRoom": "Apagar sala",
"deleteConfirmTitle": "Apagar esta sala?",
"deleteDescription": "{{name}} será eliminado permanentemente para todos e não poderá ser anulado.",
"invitedTo": "Foi convidado para \"{{name}}\"",
"guest": {
"title": "Reunião",
"waiting": "À espera do apresentador...",
"linkInvalid": "Este link de convidado é inválido ou a reunião já terminou."
},
"reopenFromPanel": "Esta aba da reunião expirou. Volte a abrir a sala no painel Reuniões.",
"requestControl": "Controle de solicitação",
"cancelControlRequest": "Cancelar pedido",
"controlQueue": "Solicitações de controlo",
"noControlRequests": "Não há pedidos pendentes.",
"grantControlTo": "Dê o controlo a {{name}}",
"dismissControlRequest": "Rejeitar pedido de controlo de {{name}}",
"releaseControl": "Libertar controle",
"grantControl": "Dê o controlo",
"revokeControl": "Retome o comando",
"controlRequestedBy": "{{name}} solicitou o controlo",
"grant": "Subvenção",
"controlBadge": "No controlo",
"youArePresenting": "Está a apresentar em outra aba. Pare de apresentar para passar a palavra.",
"created": "Quarto criado",
"invited": "Membros convidados",
"roomTab": "Reunião"
},
"sessionSharing": {
"guestView": {
"loading": "Ligar à sessão partilhada...",
"linkInvalid": "Este link de partilha é inválido, expirou ou foi revogado.",
"rateLimited": "Muitas tentativas foram feitas, tente novamente em breve.",
"sessionEnded": "Esta sessão terminou.",
"readOnlyBadge": "Somente visualização",
"ownerLabel": "Proprietário do anfitrião"
},
"modalTitle": "Sessão de partilha",
"shareButton": "Partilhar",
"notReadyToShare": "A sessão ainda não está pronta para ser partilhada.",
"modeTab": {
"link": "Ligação",
"user": "Usuário"
},
"linkModeDescription": "Qualquer pessoa com este link pode participar, sem necessidade de criar conta.",
"userModeDescription": "Partilhe com um utilizador específico que já tenha acesso a este host. Caso ainda não tenha acesso, partilhe primeiro o host com ele ou utilize um link. Após a partilha, a sessão aparecerá no separador Conexões do utilizador.",
"permissionLevel": {
"label": "Nível de permissão",
"readOnly": "Somente leitura",
"readOnlyDescription": "É possível assistir à sessão em direto, mas não é possível digitar ou interagir.",
"readWrite": "Ler e escrever",
"readWriteDescription": "Pode digitar e interagir com a sessão da mesma forma que o proprietário."
},
"expiryLabel": "Expiração do link",
"createLinkButton": "Criar link",
"createShareButton": "Partilhar com o usuário",
"searchUsersPlaceholder": "Pesquisar utilizadores...",
"noUsersFound": "Nenhum utilizador encontrado",
"linkCreated": "Partilhar link criado",
"linkCopied": "Ligação copiada para a área de transferência",
"copyLink": "Copiar link",
"shareCreated": "Sessão partilhada. Ela aparecerá no separador Conexões deles.",
"shareFailed": "Falha ao criar partilha",
"userLacksHostAccess": "Esse utilizador ainda não tem acesso a este host. Partilhe o host com ele primeiro ou use um link.",
"activeShares": "Ações ativas",
"noActiveShares": "Sem ação ativa nesta sessão.",
"revoke": "Revogar",
"revokeConfirmTitle": "Revogar essa participação?",
"revokeConfirmDescription": "Qualquer pessoa que utilize esta partilha perderá o acesso imediatamente.",
"revoked": "Ações revogadas",
"revokeFailed": "Falha ao revogar a participação",
"joinCount": "{{count}} junte-se",
"joinCount_other": "{{count}} entra",
"expiresAt": "Expira em {{date}}",
"linkShareBadge": "Ligação",
"userShareBadge": "Utilizador: {{username}}",
"loadSharesFailed": "Falha ao carregar partilhas ativas"
"readWrite": "Ler e escrever"
}
},
"terminal": {
"connect": "Ligar ao Host",
@@ -2239,7 +2110,6 @@
"analyticsEnabledDesc": "Envia uma contagem diária anónima de utilizadores, hosts e utilização de recursos para ajudar a melhorar o Termix. Nenhum dado pessoal ou detalhe de ligação é incluído.",
"analyticsEnabledLockedDesc": "Esta definição está bloqueada pela variável de ambiente ENABLE_TELEMETRY e não pode ser alterada aqui.",
"updateAnalyticsFailed": "Falha ao atualizar as definições de análise",
"sessionSharingGloballyEnabled": "Permitir partilha de sessão",
"auditForwardingTitle": "Encaminhar para SIEM",
"auditForwardingDesc": "Envie uma cópia de cada entrada de auditoria para um coletor externo no formato NDJSON. Os registos locais permanecem como a fonte da verdade.",
"auditForwardingEnvNotice": "Uma variável de ambiente também configura o encaminhamento; o URL aqui guardado tem precedência.",
@@ -2247,8 +2117,6 @@
"auditForwardingTokenStored": "Token de portador (armazenado)",
"auditForwardingSaved": "Configurações de encaminhamento de auditoria guardadas",
"auditForwardingSaveError": "Falha ao guardar as definições de encaminhamento de auditoria",
"sessionSharingGloballyEnabledDesc": "Permite que as sessões de terminal ao vivo, RDP, VNC e Telnet sejam partilhadas em toda a instância. Substitui todas as definições de partilha por host quando desativada.",
"updateSessionSharingFailed": "Falha ao atualizar as definições de partilha de sessão.",
"sessionTimeout": "Tempo Limite da Sessão",
"hours": "horas",
"sessionTimeoutRange": "Mín. 1h · Máx. 720h",