export const orbit = { triggerLabel: 'Orbit', triggerTooltip: 'Начать или присоединиться к совместной сессии прослушивания', launchCreate: 'Создать сессию', launchJoin: 'Присоединиться к сессии', launchHelp: 'Как это работает?', launchHelpSoon: 'Скоро будет', joinModalTitle: 'Присоединиться к сессии Orbit', joinModalSub: 'Вставь ссылку-приглашение от хоста.', joinModalLinkLabel: 'Ссылка-приглашение', joinModalLinkPlaceholder: 'psysonic2-…', joinModalLinkHelper: 'Работает с любой действительной ссылкой Orbit. Должна указывать на сервер, на котором ты сейчас авторизован.', joinModalPasteTooltip: 'Вставить из буфера обмена', joinModalSubmit: 'Присоединиться', joinModalBusy: 'Подключение…', joinErrEmpty: 'Вставь ссылку-приглашение.', joinErrInvalid: 'Это не похоже на ссылку-приглашение Orbit.', closeAria: 'Закрыть', heroTitlePrefix: 'Слушай вместе с', heroTitleBrand: 'Orbit', heroSub: 'Начни сессию — другие пользователи на {{server}} будут слушать вместе и смогут предлагать треки.', fallbackServer: 'этот сервер', tipLan: 'Ты сейчас подключён через адрес домашней сети. Гости вне твоей сети не смогут присоединиться — переключись на публичный адрес сервера в настройках перед стартом.', tipRemote: 'Чтобы гости вне домашней сети могли присоединиться, адрес сервера должен быть публично доступен. Если сервер только внутренний, переключись перед стартом.', labelName: 'Название сессии', namePlaceholder: 'Velvet Orbit', reshuffleTooltip: 'Новое предложение', reshuffleAria: 'Предложить новое название', helperName: 'Как сессия будет отображаться у гостей — оставь или введи своё.', labelMax: 'Макс. гостей', helperMax: 'Ты не считаешься — это только ограничивает входящих гостей.', labelLink: 'Ссылка-приглашение', tooltipCopied: 'Скопировано', tooltipCopy: 'Копировать', ariaCopyLink: 'Копировать ссылку-приглашение', helperLink: 'Отправь эту ссылку гостям. Они могут вставить её в Psysonic в любом месте с помощью Ctrl+V.', labelClearQueue: 'Сначала очистить мою очередь', helperClearQueue: 'Начать сессию с пустой очередью. Выкл.: уже поставленные треки остаются и делятся с гостями.', btnCancel: 'Отмена', btnStarting: 'Запуск…', btnStart: 'Запустить Orbit', btnCopyAndStart: 'Копировать ссылку и запустить', errNameRequired: 'Пожалуйста, дай название сессии.', errStartFailed: 'Не удалось запустить.', hostLabel: 'Хост: {{name}}', participantsTooltip: 'Участники', settingsTooltip: 'Настройки сессии', shareTooltip: 'Поделиться ссылкой-приглашением', shuffleLabel: 'Следующее перемешивание через', catchUpLabel: 'догнать', catchUpTooltip: 'Перейти к текущей позиции хоста', hostAway: 'Хост оффлайн', hostOnline: 'Хост онлайн', endTooltip: 'Завершить сессию', leaveTooltip: 'Покинуть сессию', helpTooltip: 'Как работает Orbit', diag: { openTooltip: 'Диагностика — копируемый журнал событий', title: 'Диагностика Orbit', role: 'Роль', hostTrack: 'ID трека хоста', hostPos: 'Позиция хоста', guestTrack: 'Мой ID трека', guestPos: 'Моя позиция', drift: 'Расхождение', stateAge: 'Возраст состояния', eventLog: 'Журнал событий ({{count}})', copyLabel: 'Копировать', copyTooltip: 'Скопировать журнал в буфер обмена', clearLabel: 'Очистить', clearTooltip: 'Очистить буфер', empty: 'Пока нет событий — они появятся когда Orbit начнёт синхронизацию.', hint: 'Открой это перед воспроизведением проблемы, затем нажми Копировать и вставь в баг-репорт.', copied: 'Скопировано строк: {{count}}', copyFailed: 'Не удалось скопировать в буфер обмена', cleared: 'Буфер очищен', }, helpTitle: 'Как работает Orbit', helpIntro: 'Orbit превращает Psysonic в общую комнату прослушивания. Хост выбирает музыку; гости слушают синхронно и могут предлагать треки.', helpHostOnly: '(хост)', helpSec1Title: 'Что такое Orbit?', helpSec1Body: 'Режим «слушать вместе» — хост управляет воспроизведением, гости подключаются. Всё идёт через плейлисты на твоём собственном сервере Navidrome; никакой внешней инфраструктуры.', helpSec2Title: 'Хост и гости', helpSec2Body: 'Хост управляет воспроизведением (play / pause / skip / seek) и решает, когда завершить сессию. Гости следуют за воспроизведением хоста, могут предлагать треки и выходить или присоединяться в любое время. Только хост может исключать или навсегда банить участников.', helpSec2WarnHead: 'Важно: отдельные аккаунты.', helpSec2WarnBody: 'У каждого участника должен быть свой аккаунт Navidrome. Если хост и гость входят под одним и тем же пользователем, их отправки конфликтуют, и хост никогда не увидит предложения гостя.', helpSec3Title: 'Запуск и приглашение', helpSec3Body: 'Нажми кнопку «Orbit» → Создать сессию → стартовое окно покажет готовую ссылку для копирования и опционально позволит очистить текущую очередь. Делись ссылкой как угодно. Пока сессия активна, кнопка «Поделиться» в верхней панели сессии копирует ссылку в любой момент.', helpSec4Title: 'Присоединение', helpSec4Body: 'Вставь ссылку-приглашение в любом месте Psysonic с помощью Ctrl+V / Cmd+V — запрос на присоединение появится автоматически. Альтернатива: «Orbit» → Присоединиться к сессии → вставь в поле. Если ссылка указывает на сервер, где у тебя есть аккаунт, Psysonic переключит тебя автоматически. Если у тебя несколько аккаунтов на этом сервере, небольшой выбор спросит, какой использовать.', helpSec5Title: 'Предложение треков', helpSec5Body: 'В любом списке треков: двойной клик по строке или правый клик → «Добавить в сессию Orbit». Одиночный клик показывает подсказку вместо того, чтобы забрасывать весь альбом в общую очередь — это намеренно. Явные массовые действия вроде «Воспроизвести всё» или «Воспроизвести альбом» сначала запрашивают подтверждение, потом добавляют (никогда не заменяют).', helpSec6Title: 'Общая очередь', helpSec6Body: 'Очередь показывает предстоящие треки хоста — видно всем. Входящие массовые добавления всегда идут в конец, чтобы не потерять предложения гостей. Автоперемешивание периодически переупорядочивает очередь (настраивается: 1 / 5 / 10 / 15 / 30 мин). Если твоё воспроизведение отклоняется от хоста, кнопка «Догнать» в панели сессии возвращает тебя к live-позиции хоста.', helpSec7Title: 'Подтверждения', helpSec7Body: 'По умолчанию предложения гостей требуют ручного подтверждения — они появляются в полосе «Подтверждения» вверху панели очереди с кнопками принять / отклонить. В настройках сессии можно включить автоматическое подтверждение, и всё будет попадать сразу.', helpSec8Title: 'Участники и настройки', helpSec8Body: 'Открой иконку настроек в панели сессии для частоты перемешивания, автоподтверждения и быстрого «Перемешать сейчас». Нажми на количество участников, чтобы увидеть, кто подключён — исключить (может присоединиться снова по ссылке) или забанить (заблокирован для этой сессии). Гости тоже видят список участников, но только для чтения.', helpSec9Title: 'Завершение сессии', helpSec9Body: 'X хоста → диалог подтверждения → сессия закрывается для всех, серверные плейлисты очищаются автоматически. X гостя → гость выходит, сессия продолжается. Если хост молчит 5 минут, гость автоматически выходит с уведомлением; короткие переподключения в этом окне невидимы.', participantsInviteLabel: 'Ссылка-приглашение', participantsCountLabel: '{{count}} в сессии', participantsHost: 'хост', participantsEmpty: 'Пока нет гостей', participantsKickTooltip: 'Удалить из сессии', participantsKickAria: 'Удалить {{user}}', participantsRemoveTooltip: 'Удалить из сессии', participantsRemoveAria: 'Удалить {{user}} из этой сессии', participantsBanTooltip: 'Забанить навсегда', participantsBanAria: 'Забанить {{user}} навсегда', participantsMuteTooltip: 'Запретить предлагать треки', participantsUnmuteTooltip: 'Разрешить предлагать треки', participantsMuteAria: 'Запретить {{user}} предлагать треки', participantsUnmuteAria: 'Снова разрешить {{user}} предлагать треки', confirmRemoveTitle: 'Удалить из сессии?', confirmRemoveBody: '{{user}} будет удалён из сессии, но может присоединиться снова по твоей ссылке-приглашению.', confirmRemoveConfirm: 'Удалить', confirmBanTitle: 'Забанить навсегда?', confirmBanBody: '{{user}} будет удалён и заблокирован от повторного присоединения к этой сессии. Отменить нельзя на время сессии.', confirmBanConfirm: 'Забанить', confirmCancel: 'Отмена', confirmJoinTitle: 'Присоединиться к сессии Orbit?', confirmJoinBody: '{{host}} пригласил тебя в «{{name}}». Присоединиться к сессии?', confirmJoinConfirm: 'Присоединиться', confirmLeaveTitle: 'Покинуть сессию?', confirmLeaveBody: 'Покинуть «{{name}}»? Ты можешь присоединиться снова в любое время по ссылке-приглашению от {{host}}.', confirmLeaveConfirm: 'Покинуть', confirmEndTitle: 'Завершить сессию для всех?', confirmEndBody: '«{{name}}» закроется для всех участников. Плейлисты сессии очищаются автоматически.', confirmEndConfirm: 'Завершить сессию', invalidLinkTitle: 'Ссылка-приглашение больше недействительна', invalidLinkBody: 'Эта сессия Orbit больше не существует или уже завершена. Попроси хоста прислать новую ссылку.', settingsTitle: 'Настройки сессии', settingAutoApprove: 'Автоматически принимать предложения', settingAutoApproveHint: 'Предложения гостей сразу попадают в твою очередь. Выкл.: они остаются в списке сессии для последующего просмотра.', settingAutoShuffle: 'Автоперемешивание', settingAutoShuffleHint: 'Периодически перемешивает предстоящую очередь. Выкл.: порядок меняется только при ручной перестановке.', settingShuffleInterval: 'Перемешивать каждые', settingShuffleIntervalHint: 'Как часто предстоящая очередь перемешивается во время сессии.', suggestBlockedMuted: 'Хост отключил тебе предложение треков на этой сессии.', settingShuffleIntervalValue_one: '{{count}} мин', settingShuffleIntervalValue_few: '{{count}} мин', settingShuffleIntervalValue_many: '{{count}} мин', settingShuffleIntervalValue_other: '{{count}} мин', settingShuffleNow: 'Перемешать сейчас', toastSuggested: '{{user}} предложил «{{title}}»', toastSuggestedMany: '{{count}} новых предложений в очереди', toastSuggestLost: 'Возможно, ваше предложение не дошло до хоста', toastShuffled: 'Очередь перемешана', toastJoined: 'Присоединился к сессии', toastLoginFirst: 'Войди, прежде чем присоединяться к сессии', toastSwitchServer: 'Сначала переключись на {{url}}, потом вставь снова', toastNoAccountForServer: 'У тебя нет доступа к {{url}}. Попроси хоста прислать приглашение.', toastSwitchFailed: 'Не удалось переключиться на {{url}}', accountPickerTitle: 'Какой аккаунт?', accountPickerSub: 'У тебя несколько аккаунтов для {{url}}. Выбери тот, под которым хочешь присоединиться.', toastJoinFail: 'Не удалось присоединиться к сессии', joinErrNotFound: 'Сессия не найдена', joinErrEnded: 'Сессия завершена', joinErrFull: 'Сессия заполнена', joinErrKicked: 'Ты не можешь присоединиться к этой сессии', joinErrNoUser: 'Нет активного сервера', joinErrServerError: 'Не удалось присоединиться', ctxAddToSession: 'Добавить в сессию Orbit', ctxSuggestedToast: 'Предложено в сессию', ctxSuggestFailed: 'Не удалось предложить — не присоединён', ctxAddToSessionHost: 'Добавить в сессию Orbit', ctxAddedHostToast: 'Добавлено в сессию', ctxAddHostFailed: 'Не удалось добавить в сессию', bulkConfirmTitle: 'Добавить всё в очередь Orbit?', bulkConfirmBody: 'Это сбросит {{count}} треков в общую очередь за раз. Это много для твоих гостей. Продолжить?', bulkConfirmYes: 'Добавить всё', bulkConfirmNo: 'Отмена', guestLive: 'Live', guestPlaying: 'Сейчас играет', guestPaused: 'Пауза', guestLoading: 'Загрузка…', guestSuggestions: 'Предложения', guestUpNext: 'Далее', guestUpNextEmpty: 'В очереди пусто. Открой контекстное меню трека и выбери «Добавить в сессию Orbit», чтобы предложить что-то.', guestPendingTitle: 'Ожидание хоста', guestPendingHint: 'Предложено — появится в очереди, когда хост примет.', approvalTitle: 'Ожидают подтверждения', approvalFrom: 'Предложено {{user}}', approvalAccept: 'Принять', approvalDecline: 'Отклонить', guestUpNextMore: '+ ещё {{count}} в очереди хоста', guestSubmitter: 'от {{user}}', queueAddedByHost: 'Добавил хост', queueAddedByYou: 'Добавил(а) ты', queueAddedByUser: 'Добавил {{user}}', guestEmpty: 'Предложений пока нет. Открой контекстное меню трека и выбери «Добавить в сессию Orbit».', guestFooter: 'Хост управляет воспроизведением — ты не можешь изменять список.', exitKickedTitle: 'Тебя забанили в сессии', exitRemovedTitle: 'Тебя удалили из сессии', exitEndedTitle: 'Хост завершил сессию', exitHostTimeoutTitle: 'Хост недоступен', exitHostTimeoutBody: '{{host}} давно не присылал обновления, поэтому «{{name}}» закрыта на твоей стороне. Ты можешь присоединиться снова в любое время по ссылке.', exitKickedBody: '{{host}} забанил тебя в «{{name}}». Ты не можешь присоединиться снова.', exitRemovedBody: '{{host}} удалил тебя из «{{name}}». Ты можешь присоединиться снова в любое время по ссылке.', exitEndedBody: '«{{name}}» завершена. Надеюсь, тебе понравилось.', exitOk: 'ОК', };