Files
Psychotoxical-psysonic/src/locales/ru/orbit.ts
T

204 lines
20 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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: 'ОК',
};