fix(web): баннер сервера из снапшота, приглашение, встроенные звуки

- READY-снапшот больше не теряет banner/splash/accent: шапка сервера
  показывает баннер сразу после подключения (AGENT.md 7.4)
- GUILD_UPDATE несёт всё оформление, клиент применяет его без перезагрузки
- кнопка приглашения в шапке сервера со ссылкой и копированием
- встроенные звуки интерфейса на Web Audio с разблокировкой по жесту
- object URL превью через безопасные обёртки (jsdom и урезанные webview)
This commit is contained in:
2026-09-21 00:04:49 +03:00
parent 6882516340
commit 4ea2965892
22 changed files with 989 additions and 56 deletions
+12 -2
View File
@@ -239,7 +239,15 @@
"selectUnread": "Open channel {{name}}, {{count}} unread",
"selectMentions": "Open channel {{name}}, {{count}} mentions",
"slowmode": "slowmode {{seconds}}s",
"leaveHint": "You can leave the server in server settings → “Danger zone”."
"leaveHint": "You can leave the server in server settings → “Danger zone”.",
"invite": "Invite to server",
"inviteTitle": "Server invite",
"inviteHint": "The link expires after a while. Send it to whoever you want to invite.",
"inviteCreating": "Creating a link…",
"inviteLink": "Invite link",
"inviteCopy": "Copy",
"inviteCopied": "Copied",
"inviteNew": "New link"
},
"voice": {
"title": "Voice room",
@@ -1012,7 +1020,9 @@
"soundboardHint": "Play soundboard sounds in a voice channel.",
"latency": "Participant ping",
"latencySharing": "Show ping in the voice room",
"latencySharingHint": "Participant latency to the instance updates every second; your own ping is shared with the room."
"latencySharingHint": "Participant latency to the instance updates every second; your own ping is shared with the room.",
"interfaceSounds": "Built-in interface sounds",
"interfaceSoundsHint": "Short signals for messages, mentions and voice joins when the server has no custom sound."
},
"language": {
"title": "Language & region",
+12 -2
View File
@@ -239,7 +239,15 @@
"selectUnread": "Открыть комнату {{name}}, непрочитанных: {{count}}",
"selectMentions": "Открыть комнату {{name}}, упоминаний: {{count}}",
"slowmode": "медленный режим {{seconds}} с",
"leaveHint": "Выйти из сервера можно в настройках сервера → «Опасная зона»."
"leaveHint": "Выйти из сервера можно в настройках сервера → «Опасная зона».",
"invite": "Пригласить на сервер",
"inviteTitle": "Приглашение на сервер",
"inviteHint": "Ссылка действует ограниченное время. Отправьте её тому, кого хотите позвать.",
"inviteCreating": "Создаём ссылку…",
"inviteLink": "Ссылка приглашения",
"inviteCopy": "Скопировать",
"inviteCopied": "Скопировано",
"inviteNew": "Новая ссылка"
},
"voice": {
"title": "Голосовая комната",
@@ -1012,7 +1020,9 @@
"soundboardHint": "Проигрывать звуки саундборда в голосовой комнате.",
"latency": "Пинг участников",
"latencySharing": "Показывать пинг в голосовой комнате",
"latencySharingHint": "Задержка участников до инстанса обновляется раз в секунду; свой пинг публикуется в комнате."
"latencySharingHint": "Задержка участников до инстанса обновляется раз в секунду; свой пинг публикуется в комнате.",
"interfaceSounds": "Встроенные звуки интерфейса",
"interfaceSoundsHint": "Короткие сигналы сообщений, упоминаний и входов в голосовую, если на сервере не загружен свой звук."
},
"language": {
"title": "Язык и регион",