export const settings = {
  title: 'Настройки',
  language: 'Язык',
  languageEn: 'English',
  languageDe: 'Deutsch',
  languageEs: 'Español',
  languageFr: 'Français',
  languageIt: 'Italiano',
  languageNl: 'Nederlands',
  languageNb: 'Norsk',
  languageRu: 'Русский',
  languageZh: '中文',
  languageRo: 'Română',
  languageJa: '日本語',
  languageHu: 'Magyar',
  languagePl: 'Polski',
  languageBg: 'Български',
  font: 'Шрифт',
  fontHintOpenDyslexic: 'Подходит для дислексии · без поддержки китайского',
  theme: 'Тема',
  appearance: 'Оформление',
  servers: 'Серверы',
  serverName: 'Название',
  serverUrl: 'Адрес',
  serverUrlPlaceholder: '192.168.1.100:4533 или https://music.example.com',
  serverAlternateUrl: 'Второй адрес (необязательно)',
  serverAlternateUrlPlaceholderPublic: 'https://music.example.com',
  serverAlternateUrlPlaceholderLocal: '192.168.1.100:4533',
  serverAlternateUrlHintAddPublic: 'Добавьте публичный адрес, чтобы подключаться вне домашней сети.',
  serverAlternateUrlHintAddLocal: 'Добавьте локальный адрес для более быстрой связи дома.',
  serverBothLanError: 'Оба адреса локальные — оставьте один или добавьте публичный.',
  dualAddressVerifying: 'Проверяем, что оба адреса указывают на один и тот же сервер…',
  dualAddressMismatch: 'Адреса ведут к разным серверам. Проверьте написание и попробуйте снова.',
  dualAddressInsufficient: 'Не удалось убедиться, что это один сервер. Удалите один адрес, чтобы продолжить.',
  dualAddressUnreachable: 'Не удалось достучаться до {{host}}. Проверьте адрес и сеть, затем попробуйте снова.',
  urlRemigrationTitle: 'Переместить данные библиотеки?',
  urlRemigrationMessage: 'Смена адреса перенесёт все данные библиотеки, анализа и кэша обложек с {{oldKey}} на {{newKey}}. Это нельзя отменить.',
  urlRemigrationConfirm: 'Переместить данные',
  urlRemigrationProgress: 'Перемещаем данные библиотеки…',
  urlRemigrationFailureInspect: 'Не удалось проверить, что нужно перенести. Попробуйте снова или откройте журнал отладки.',
  urlRemigrationFailureRun: 'Не удалось перенести данные библиотеки. Сохранённые данные не изменены — попробуйте снова.',
  urlRemigrationFailureCoverRename: 'Данные библиотеки перенесены, но файлы обложек не удалось переименовать. Обложки восстановятся при следующем обращении.',
  shareUsesLocalUrl: 'Использовать локальный адрес в ссылках общего доступа',
  shareUsesLocalUrlDesc: 'Применяется к приглашениям Orbit и ссылкам на библиотеку. По умолчанию — публичный адрес.',
  serverUsername: 'Логин',
  serverPassword: 'Пароль',
  customHeadersTitle: 'Пользовательские HTTP-заголовки',
  customHeadersHelp: 'Используются для reverse-proxy (Pangolin, Cloudflare Access). Отправляются только на ваш сервер — не сторонним сервисам.',
  customHeadersNamePlaceholder: 'Имя заголовка',
  customHeadersValuePlaceholder: 'Значение заголовка',
  customHeadersAddRow: 'Добавить заголовок',
  customHeadersRemoveRow: 'Удалить заголовок',
  customHeadersApplyTo: 'Применять заголовки к',
  customHeadersApplyTo_public: 'Публичному адресу',
  customHeadersApplyTo_local: 'Локальному адресу',
  customHeadersApplyTo_both: 'Оба адреса',
  customHeadersNotInShare: 'Заголовки не входят в приглашения — настройте их на каждом устройстве отдельно.',
  'customHeadersValidation.tooMany': 'Слишком много заголовков (макс. 16).',
  'customHeadersValidation.nameRequired': 'Укажите имя заголовка.',
  'customHeadersValidation.nameTooLong': 'Имя заголовка слишком длинное.',
  'customHeadersValidation.valueTooLong': 'Значение заголовка слишком длинное.',
  'customHeadersValidation.crlf': 'Имя и значение не могут содержать переводы строк.',
  'customHeadersValidation.blocked': 'Это имя заголовка запрещено.',
  'customHeadersValidation.duplicate': 'Дублирующееся имя заголовка.',
  addServer: 'Добавить сервер',
  addServerTitle: 'Новый сервер',
  editServer: 'Изменить',
  editServerTitle: 'Изменить сервер',
  useServer: 'Выбрать',
  deleteServer: 'Удалить',
  noServers: 'Нет сохранённых серверов.',
  serverActive: 'Активен',
  serverVersionUnknown: 'Версия сервера неизвестна',
  confirmDeleteServer: 'Удалить сервер «{{name}}»?',
  serverConnecting: 'Подключение…',
  serverConnected: 'Подключено!',
  serverFailed: 'Ошибка подключения.',
  serverUrlRequired: 'Укажите адрес сервера.',
  serverUsernameRequired: 'Укажите имя пользователя.',
  serverConnectFailedReason: 'Не удалось подключиться: {{reason}}',
  testBtn: 'Проверить',
  testingBtn: 'Проверка…',
  serverCompatible: 'Разработано для Navidrome. Другие Subsonic-совместимые серверы (Gonic, Airsonic, …) могут работать с ограничениями, так как Psysonic использует много специфичных для Navidrome API-эндпоинтов.',
  userMgmtTitle: 'Управление пользователями',
  userMgmtDesc: 'Управляйте пользователями этого сервера. Требуются права администратора.',
  userMgmtNoAdmin: 'Для управления пользователями на этом сервере нужны права администратора.',
  userMgmtLoadError: 'Не удалось загрузить пользователей.',
  userMgmtLoadFriendly: 'Сервер не ответил — обычно разовая ошибка.',
  userMgmtRetry: 'Повторить',
  userMgmtEmpty: 'Пользователи не найдены.',
  userMgmtYouBadge: 'Вы',
  userMgmtAdminBadge: 'Админ',
  userMgmtAddUser: 'Добавить пользователя',
  userMgmtAddUserTitle: 'Новый пользователь',
  userMgmtEditUserTitle: 'Изменить пользователя',
  userMgmtUsername: 'Имя пользователя',
  userMgmtName: 'Отображаемое имя',
  userMgmtEmail: 'E-mail',
  userMgmtPassword: 'Пароль',
  userMgmtPasswordEditHint: 'Введите новый пароль, чтобы изменить его.',
  userMgmtRoleAdmin: 'Админ',
  userMgmtLibraries: 'Библиотеки',
  userMgmtLibrariesAdminHint: 'Администраторы автоматически имеют доступ ко всем библиотекам.',
  userMgmtLibrariesEmpty: 'На этом сервере нет доступных библиотек.',
  userMgmtLibrariesValidation: 'Выберите хотя бы одну библиотеку.',
  userMgmtLibrariesUpdateError: 'Пользователь сохранён, но не удалось назначить библиотеки',
  userMgmtNoLibraries: 'Библиотеки не назначены',
  userMgmtNeverSeen: 'Никогда',
  userMgmtSave: 'Сохранить',
  userMgmtCancel: 'Отмена',
  userMgmtDelete: 'Удалить',
  userMgmtEdit: 'Изменить',
  userMgmtConfirmDelete: 'Удалить пользователя «{{username}}»? Действие нельзя отменить.',
  userMgmtCreateError: 'Не удалось создать пользователя.',
  userMgmtUpdateError: 'Не удалось обновить пользователя.',
  userMgmtDeleteError: 'Не удалось удалить пользователя.',
  userMgmtCreated: 'Пользователь создан.',
  userMgmtUpdated: 'Пользователь обновлён.',
  userMgmtDeleted: 'Пользователь удалён.',
  userMgmtValidationMissing: 'Требуются имя пользователя, отображаемое имя и пароль.',
  userMgmtValidationMissingIdentity: 'Укажите имя пользователя и отображаемое имя.',
  userMgmtMagicStringGenerate: 'Сгенерировать magic string',
  userMgmtSaveAndMagicString: 'Сохранить и получить magic string',
  userMgmtMagicStringPasswordNavHint:
    'Navidrome сохранит этот пароль для пользователя. Если он не совпадает с текущим, на сервере будет установлен новый пароль входа.',
  userMgmtMagicStringPlaintextWarning:
    'Передавайте magic string осторожно: в ней пароль в открытом виде (кодирование — не шифрование). У кого есть полная строка, тот может войти под этим пользователем.',
  userMgmtMagicStringCopied: 'Magic string скопирован в буфер обмена.',
  userMgmtMagicStringCopyFailed: 'Не удалось скопировать в буфер обмена.',
  userMgmtMagicStringLoginFailed: 'Пароль не подошёл — не удалось проверить учётные данные.',
  userMgmtMagicStringModalTitle: 'Сгенерировать magic string',
  userMgmtMagicStringModalDesc: 'Введите пароль Subsonic для «{{username}}» — он попадёт в копируемую magic string.',
  userMgmtMagicStringModalConfirm: 'Скопировать строку',
  audiomuseTitle: 'AudioMuse-AI (Navidrome)',
  audiomuseBadge: 'AudioMuse-AI',
  audiomuseStatusActive: 'Активно',
  audiomuseStatusChecking: 'Проверка…',
  audiomuseStatusNotDetected: 'Не обнаружено',
  audiomuseStatusProbeFailed: 'Ошибка проверки',
  audiomuseDesc:
    'Включите, если на этом сервере настроен <pluginLink>плагин AudioMuse-AI для Navidrome</pluginLink>. Появится Instant Mix для треков, а на странице исполнителя похожие будут браться с сервера вместо Last.fm.',
  audiomuseIssueHint:
    'Недавно не удалось собрать Instant Mix — проверьте плагин Navidrome и API AudioMuse. Похожие исполнители подтянутся с Last.fm, если сервер ничего не вернёт.',
  connected: 'Подключено',
  failed: 'Ошибка',
  eqTitle: 'Эквалайзер',
  eqEnabled: 'Включить эквалайзер',
  eqPreset: 'Пресет',
  eqPresetCustom: 'Свой',
  eqPresetBuiltin: 'Встроенные',
  eqPresetCustomGroup: 'Мои пресеты',
  eqPresetAutoEqGroup: 'AutoEQ',
  eqSavePreset: 'Сохранить как пресет',
  eqPresetName: 'Название пресета…',
  eqDeletePreset: 'Удалить пресет',
  eqResetBands: 'Сбросить полосы',
  eqPreGain: 'Предусиление',
  eqResetPreGain: 'Сбросить предусиление',
  eqAutoEqTitle: 'AutoEQ — поиск профиля наушников',
  eqAutoEqPlaceholder: 'Модель наушников или IEM…',
  eqAutoEqSearching: 'Поиск…',
  eqAutoEqNoResults: 'Ничего не найдено',
  eqAutoEqError: 'Ошибка поиска',
  eqAutoEqRateLimit: 'Лимит GitHub — попробуйте через минуту',
  eqAutoEqFetchError: 'Не удалось загрузить профиль EQ',
  behavior: 'Поведение',
  groupTray: 'Трей',
  groupLinuxRendering: 'Отрисовка (Linux)',
  groupClock: 'Часы',
  groupDisplay: 'Отображение',
  groupWindow: 'Окно',
  cacheTitle: 'Макс. размер кэша',
  cacheDesc:
    'Кэш обложек и фото исполнителей в хранилище приложения (IndexedDB). При нехватке места старые записи удаляются автоматически.',
  cacheUsedImages: 'Изображения:',
  cacheUsedOffline: 'Офлайн-треки:',
  cacheUsedHot: 'На диске:',
  hotCacheTrackCount: 'Треков в кэше:',
  cacheMaxLabel: 'Лимит',
  imageCacheScopeLabel: 'Область',
  imageCacheSubTitle: 'Превью в приложении',
  coverDiskCacheSubTitle: 'Обложки на диске',
  coverCacheStrategyTitle: 'Кэш обложек',
  coverCacheStrategyDesc: 'Для каждого сервера можно выбрать стратегию: Ленивый — загружать обложки по мере необходимости; Агрессивный — то же самое плюс дополнительный фоновый прогрев.',
  coverCacheStrategyLabel: 'Стратегия',
  coverCacheStrategyServerLabel: 'Сервер',
  coverCacheStrategyProgressLabel: 'Кэш',
  coverCacheStrategyActionsLabel: 'Действия',
  coverCacheStrategyLazy: 'Ленивый',
  coverCacheStrategyLazyDesc: 'Загружает обложки только когда они нужны.',
  coverCacheStrategyAggressive: 'Агрессивный',
  coverCacheStrategyAggressiveDesc: 'Как ленивый, но с дополнительным фоновым прогревом.',
  coverCacheStrategyDiskUsage: 'На диске: {{size}}',
  coverCacheStrategyProgressValue: '{{percent}}% ({{done}}/{{total}}) · {{size}}',
  coverCacheStrategyClearAction: 'Очистить кэш обложек',
  coverCacheStrategyClearTitle: 'Очистить кэш обложек?',
  coverCacheStrategyClearDesc: 'Удалить все кэшированные обложки для {{server}}. При необходимости скачаются снова.',
  coverCacheStrategyClearConfirm: 'Очистить',
  coverCacheStrategyClearCancel: 'Отмена',
  coverCacheStrategyClearSuccess: 'Кэш обложек для этого сервера очищен.',
  coverCacheStrategyClearError: 'Не удалось очистить кэш обложек.',
  coverCacheStrategyServerRemoved: 'удалённый сервер',
  cacheClearBtn: 'Очистить кэш',
  cacheClearWarning: 'Очистит кэш обложек и фото исполнителей в хранилище приложения. При необходимости скачаются снова.',
  cacheClearConfirm: 'Очистить кэш изображений',
  cacheClearCancel: 'Отмена',
  waveformCacheCleared: 'Кэш waveform очищен ({{count}} строк).',
  waveformCacheClearFailed: 'Не удалось очистить кэш waveform.',
  storageTabTitle: 'Офлайн и кэш',
  mediaDirTitle: 'Папка медиа',
  mediaDirDesc: 'Корневая папка локального воспроизведения: офлайн-библиотека — library/, буфер очереди — cache/.',
  mediaDirDefault: 'По умолчанию (данные приложения)',
  mediaDirChange: 'Сменить папку',
  mediaDirClear: 'Сбросить по умолчанию',
  mediaDirHint: 'Новые загрузки пойдут в выбранную папку. Старые файлы останутся на прежних путях, пока вы их не удалите.',
  offlineStorageTitle: 'Офлайн-хранилище',
  offlineDirTitle: 'Офлайн-библиотека (в приложении)',
  offlineDirDesc: 'Папка для треков, сохранённых для офлайн-прослушивания.',
  offlineDirDefault: 'По умолчанию (данные приложения)',
  offlineDirChange: 'Сменить папку',
  offlineDirClear: 'Сбросить по умолчанию',
  offlineDirHint: 'Новые загрузки пойдут в выбранную папку. Старые останутся на прежнем месте.',
  hotCacheTitle: 'Горячий кэш воспроизведения',
  hotCacheDisclaimer: 'Заранее подгружает следующие треки из очереди и сохраняет предыдущие. При включении использует место на диске и сеть.',
  hotCacheDirDefault: 'По умолчанию (данные приложения)',
  hotCacheDirChange: 'Сменить папку',
  hotCacheDirClear: 'Сбросить по умолчанию',
  hotCacheDirHint: 'При смене папки сбрасывается список в приложении; уже скачанные файлы остаются на старом пути, пока вы их не удалите.',
  hotCacheEnabled: 'Включить горячий кэш воспроизведения',
  hotCacheMaxMb: 'Максимальный размер кэша',
  hotCacheDebounce: 'Задержка после изменения очереди',
  hotCacheDebounceImmediate: 'Сразу',
  hotCacheDebounceSeconds: '{{n}} с',
  hotCacheClearBtn: 'Очистить горячий кэш',
  audioOutputDevice: 'Устройство вывода звука',
  audioOutputDeviceDesc: 'Выберите аудиоустройство для воспроизведения. Изменения применяются немедленно и перезапускают текущий трек.',
  audioOutputDeviceDefault: 'Системное по умолчанию',
  audioOutputDeviceRefresh: 'Обновить список устройств',
  audioOutputDeviceOsDefaultNow: 'текущий системный вывод',
  audioOutputDeviceListError: 'Не удалось загрузить список аудиоустройств.',
  audioOutputDeviceNotInCurrentList: 'нет в текущем списке',
  audioOutputDeviceRememberEq: 'Запоминать эквалайзер для каждого устройства',
  audioOutputDeviceRememberEqDesc: 'Сохраняет настройки эквалайзера для каждого устройства вывода звука и восстанавливает их автоматически при переключении устройств. При выборе «Системный по умолчанию» профили следуют за активным системным выходом, в том числе при смене извне Psysonic.',
  hiResTitle: 'Нативное воспроизведение Hi-Res',
  hiResEnabled: 'Включить нативное Hi-Res воспроизведение',
  hiResDesc: "Воспроизводит каждый трек с его исходной частотой дискретизации вместо передискретизации всего в 44,1 кГц, переключая устройство вывода под частоту файла (88,2 кГц и выше). Включайте только если оборудование и сеть надёжно справляются с высокими частотами.",
  hiResCrossfadeResampleTitle: 'Частота сведения при переходах',
  hiResCrossfadeResampleDesc: 'Когда соседние треки имеют разную частоту дискретизации, обе стороны передискретизируются на эту частоту во время кроссфейда, AutoDJ и gapless-переходов.',
  hiResCrossfadeResample44: '44,1 кГц',
  hiResCrossfadeResample88: '88,2 кГц',
  hiResCrossfadeResample96: '96 кГц',
  hiResCrossfadeResampleWarning: 'Передискретизация увеличивает нагрузку на CPU и память — на слабых устройствах выбирайте с осторожностью.',
  showArtistImages: 'Фото исполнителей',
  showArtistImagesDesc:
    'Показывать обложки в разделе «Исполнители». По умолчанию выключено — меньше нагрузки на диск и сеть.',
  showOrbitTrigger: 'Показывать «Orbit» в шапке',
  showOrbitTriggerDesc: 'Кнопка в шапке для запуска или присоединения к совместной сессии. Скрой, если не используешь Orbit — здесь же можно включить обратно.',
  showTrayIcon: 'Иконка в трее',
  showTrayIconDesc: 'Показывать Psysonic в области уведомлений / строке меню.',
  minimizeToTray: 'Сворачивать в трей',
  minimizeToTrayDesc: 'При закрытии окна не выходить из приложения, а оставаться в трее.',
  startMinimizedToTray: 'Запускать свёрнутым в трей',
  startMinimizedToTrayDesc: 'При запуске скрывать главное окно; открыть приложение можно через иконку в трее.',
  startMinimizedToTrayRequiresTray: 'Сначала включите «Иконка в трее» — без неё окно не открыть после скрытого запуска.',
  clockFormat: 'Формат времени',
  clockFormatDesc: 'Формат времени для ETA очереди и предпросмотра таймера сна.',
  clockFormatAuto: 'Авто (системный)',
  clockFormatTwentyFour: '24-часовой',
  clockFormatTwelve: '12-часовой (AM/PM)',
  preloadMiniPlayer: 'Предзагрузка мини-плеера',
  preloadMiniPlayerDesc: 'Создаёт окно мини-плеера в фоне при запуске приложения, чтобы при первом открытии содержимое отображалось мгновенно. Использует немного больше памяти.',
  useCustomTitlebar: 'Своя строка заголовка',
  useCustomTitlebarDesc:
    'Заменить системную строку заголовка встроенной, в стиле темы приложения. Отключите, чтобы использовать родную строку GNOME/GTK и т.д.',
  windowButtonStyle: 'Кнопки окна',
  windowButtonStyleDesc: 'Выберите вид кнопок свернуть, развернуть и закрыть.',
  windowButtonsDots: 'Кружки',
  windowButtonsDotsGlyph: 'Кружки + значки',
  windowButtonsFlat: 'Плоские',
  windowButtonsPill: 'Пилюля',
  windowButtonsOutline: 'Контур',
  windowButtonsGlyph: 'Минимал',
  showMinimizeButton: 'Показывать кнопку «Свернуть»',
  showMinimizeButtonDesc: 'Выключите, чтобы показывать только «Развернуть» и «Закрыть».',
  linuxWebkitSmoothScroll: 'Плавное колесо (Linux)',
  linuxWebkitSmoothScrollDesc: 'Вкл — инерция. Выкл — по шагам, как в GTK.',
  linuxWebkitInputForceRepaint: 'Перерисовывать поля ввода при фокусе (Linux)',
  linuxWebkitInputForceRepaintDesc: 'Исправляет зависание текстовых полей при клике. Иконки поиска могут кратко мигать при фокусе.',
  linuxWaylandTextRender: 'Рендеринг текста Wayland (Linux)',
  linuxWaylandTextRenderDesc:
    'Сглаживание меняется сразу. Пресет ускорения (Чёткий / GPU) применяется после перезапуска приложения.',
  linuxWaylandTextRenderBalanced: 'Сбалансированный',
  linuxWaylandTextRenderSharp: 'Чёткий (меньше GPU)',
  linuxWaylandTextRenderGpu: 'С приоритетом GPU',
  linuxWaylandTextRenderMinimal: 'Минимальный (сглаживание по умолчанию)',
  discordRichPresence: 'Статус в Discord',
  discordRichPresenceDesc:
    'Показывать текущий трек в профиле и статусе Discord. Нужен запущенный клиент Discord.',
  discordRichPresenceNotice: 'Внимание: это встроенная Discord Rich Presence в Psysonic. Если вы хотите использовать официальный плагин Discord Rich Presence для Navidrome, оставьте эту функцию выключенной и вместо этого включите «Показывать в „Сейчас играет"» ниже на этой странице.',
  discordCoverTitle: 'Источник обложки',
  discordCoverDesc: 'Откуда берётся обложка, показываемая в вашем профиле Discord. Обложки с сервера используют публичную ссылку на изображение без учётных данных — любой, кто видит ваш профиль, может узнать публичный адрес вашего сервера. Требуется публично доступный сервер.',
  discordCoverNone: 'Нет (только иконка приложения)',
  discordCoverServer: 'Сервер (через информацию об альбоме)',
  discordCoverApple: 'Apple Music',
  discordOptions: 'Расширенные параметры Discord',
  discordTemplates: 'Пользовательские шаблоны текста',
  discordTemplatesDesc: 'Настройте, какая информация отображается в профиле Discord. Переменные: {title}, {artist}, {album}',
  discordTemplateDetails: 'Основная строка (details)',
  discordTemplateState: 'Вторичная строка (state)',
  discordTemplateLargeText: 'Подсказка альбома (largeText)',
  discordTemplateName: 'Строка в списке пользователей (name)',
  nowPlayingEnabled: 'Показывать в «Сейчас играет»',
  nowPlayingEnabledDesc:
    'Отправлять на сервер, что вы сейчас слушаете. Отключите, чтобы не делиться этим.',
  nowPlayingPluginNote: 'Необходимо при использовании официального плагина Discord Rich Presence для Navidrome.',
  externalArtwork: 'Внешний сборщик обложек',
  externalArtworkDesc: 'Загружает фоновые изображения и баннеры исполнителей в высоком разрешении с fanart.tv для раздела «Для вас», страниц исполнителей и полноэкранного плеера. По умолчанию выключено.',
  externalArtworkNote: 'Когда включено, отправляет имя исполнителя (и текущего альбома) на musicbrainz.org для идентификации исполнителя, затем загружает изображения с fanart.tv — по запросу и только для чтения; теги вашей библиотеки никогда не изменяются. Изображения предоставлены fanart.tv и его участниками.',
  externalArtworkByokTitle: 'Личный API-ключ (BYOK)',
  externalArtworkByokDesc: 'Необязательно. Введите здесь свой личный API-ключ fanart.tv — он отправляется вместе с ключом приложения.',
  externalArtworkByokSaved: 'Сохранено — отправляется с ключом приложения, пока скрапер включён.',
  enableBandsintown: 'Даты туров Bandsintown',
  enableBandsintownDesc: 'Показывает предстоящие концерты текущего исполнителя на вкладке «Инфо». Данные берутся из публичного API Bandsintown.',
  lyricsServerFirst: 'Предпочитать тексты с сервера',
  lyricsServerFirstDesc: 'Проверять тексты песен, предоставленные сервером (встроенные теги, sidecar-файлы) перед запросом LRCLIB. Отключите, чтобы сначала использовать LRCLIB.',
  enableNeteaselyrics: 'Тексты из Netease Cloud Music',
  enableNeteaselyricsDesc: 'Использовать Netease Cloud Music как последний источник текстов, когда остальные способы не находят ничего. Лучшее покрытие для азиатской и международной музыки.',
  lyricsSourcesTitle: 'Источники текстов',
  lyricsSourcesDesc: 'Выберите источники для поиска текстов и их порядок. Перетаскивайте для сортировки. Отключённые источники пропускаются.',
  lyricsSourceServer: 'Сервер',
  lyricsSourceLrclib: 'LRCLIB',
  lyricsSourceNetease: 'Netease Cloud Music',
  lyricsYouLyPlus: 'YouLyPlus (Караоке)',
  lyricsYouLyPlusDesc: 'Синхронизация слово-в-слово из общественного бэкенда (Apple Music, Spotify, Musixmatch, QQ). Пробуется первым; включённые источники ниже служат запасным вариантом.',
  lyricsSourcesFallbackHint: 'Используются как запасной вариант, когда YouLyPlus ничего не находит. Перетащите для изменения порядка.',
  lyricsSourcesPrimaryHint: 'Пробуются по порядку. Перетащите для изменения порядка. Всё выключено = текст отключён.',
  lyricsServerWordSyncHint: 'Подсветка по словам требует Navidrome 0.63+ и текста с таймингами отдельных слов, например файлов TTML или Enhanced LRC. Остальное отображается построчно.',
  lyricsStaticOnly: 'Показывать текст статично',
  lyricsStaticOnlyDesc: 'Синхронизированный текст отображается без авто-прокрутки и подсветки слов.',
  downloadsTitle: 'Экспорт ZIP и архивов',
  downloadsFolderDesc: 'Куда сохранять альбомы в ZIP архиве на диск.',
  downloadsDefault: 'Папка «Загрузки» по умолчанию',
  pickFolder: 'Выбрать',
  pickFolderTitle: 'Папка для загрузок',
  clearFolder: 'Сбросить папку',
  logout: 'Выйти',
  aboutTitle: 'О Psysonic',
  aboutDesc:
    'Современный десктопный плеер, созданный для Navidrome. Использует API Subsonic плюс специфичные для Navidrome расширения. На Tauri v2 и нативном аудиодвижке на Rust — лёгкий и быстрый: волновая шкала, синхронные тексты, Last.fm, 10-полосный EQ, кроссфейд, воспроизведение без пауз, Replay Gain, жанры и много тем оформления.',
  aboutLicense: 'Лицензия',
  aboutLicenseText: 'GNU GPL v3 — свободное использование и изменение на тех же условиях.',
  aboutRepo: 'Исходный код на GitHub',
  aboutVersion: 'Версия',
  aboutBuiltWith: 'Tauri · React · TypeScript · Rust/rodio',
  aboutReleaseNotesLabel: 'Примечания к выпуску',
  aboutReleaseNotesLink: 'Открыть «Что нового» этой версии',
  aboutContributorsLabel: 'Участники',
  showChangelogOnUpdate: 'Показывать «Что нового» после обновления',
  showChangelogOnUpdateDesc: 'После обновления над «Сейчас играет» появится ненавязчивый баннер журнала изменений. Клик открывает заметки о выпуске, X скрывает.',
  libraryGridMaxColumnsTitle: 'Сетки карточек в библиотеке',
  libraryGridMaxColumnsPerfHint: 'Больше колонок — больше плиток в ряд и больше работы по вёрстке и отрисовке; на очень больших библиотеках или слабом железе это заметнее.',
  libraryGridMaxColumnsRangeLabel: 'Максимум колонок ({{min}}–{{max}})',
  libraryGridMaxColumnsDesc: 'Действует для альбомов, исполнителей, плейлистов, радио, офлайн-библиотеки и других экранов с карточками. Меньше колонок — крупнее плитки и обычно меньше нагрузка на CPU.',
  libraryIndexTitle: 'Локальный индекс библиотеки (preview)',
  libraryIndexDesc: 'Локальная копия каталога каждого сервера для быстрого поиска и офлайн-доступа. Первичная индексация для всех серверов; офлайн-серверы синхронизируются позже автоматически.',
  libraryIndexDeltaHint: 'Фоновая дельта-синхронизация проверяет привязанные серверы каждые 30 с и запускается по расписанию — обычно раз в 5–45 минут в зависимости от размера библиотеки и нагрузки.',
  libraryIndexEnable: 'Включить локальный индекс',
  libraryIndexEnableAllDesc: 'Индексировать и синхронизировать все настроенные серверы в фоне.',
  libraryIndexNoServer: 'Сначала добавьте сервер.',
  libraryIndexServerListTitle: 'Индексируемые серверы',
  libraryIndexAllExcluded: 'Все серверы исключены из синхронизации.',
  libraryIndexServerOffline: 'Сервер офлайн — синхронизация отложена',
  libraryIndexServerSyncing: 'Синхронизация…',
  libraryIndexFullResync: 'Полная пересинхронизация',
  libraryIndexDeltaSync: 'Быстрая дельта',
  libraryIndexExcludeServer: 'Исключить из синхронизации',
  libraryIndexExcludingServer: 'Отключается…',
  libraryIndexExcludedTitle: 'Исключены из синхронизации',
  libraryIndexIncludeServer: 'Включить снова',
  libraryIndexIncludingServer: 'Подключается…',
  libraryIndexStatus: 'Статус',
  libraryIndexStatusIdle: 'Ожидание',
  libraryIndexStatusProbing: 'Проверка сервера…',
  libraryIndexStatusInitial: 'Первичная синхронизация…',
  libraryIndexStatusReady: 'Готово ({{count}} треков)',
  libraryIndexStatusError: 'Ошибка — см. логи',
  libraryIndexProgressIngest: 'Проиндексировано {{count}} треков…',
  libraryIndexProgressVerify: 'Проверено {{checked}} (удалено {{deleted}})',
  libraryIndexSyncNow: 'Синхронизировать',
  libraryIndexVerify: 'Проверить целостность',
  libraryIndexCancel: 'Отмена',
  libraryIndexAutoReconcile: 'Авто-сверка при падении счётчика',
  libraryIndexAutoReconcileDesc: 'Автоматически искать удалённые треки, когда на сервере их меньше ожидаемого.',
  libraryIndexSyncError: 'Ошибка синхронизации: {{error}}',
  libraryIndexBindError: 'Не удалось включить индекс: {{error}}',
  analyticsStrategyTitle: 'Стратегии анализа',
  analyticsStrategyDesc:
    'Для каждого сервера можно выбрать стратегию: Ленивый — анализ по мере прослушивания; Агрессивный — фоновый анализ всей библиотеки.',
  analyticsStrategyLabel: 'Стратегия',
  analyticsStrategyLazy: 'Ленивая',
  analyticsStrategyLazyDesc:
    'Анализирует только треки, которые вы слушаете или которые уже попали в кэш.',
  analyticsStrategyAdvanced: 'Агрессивный',
  analyticsStrategyAdvancedDesc:
    'Запускает фоновый анализ всей библиотеки и скачивает треки для анализа.',
  analyticsStrategyPriorityTitle: 'Приоритет анализа (всегда)',
  analyticsStrategyPriorityHigh: '1 — Сейчас играет: скачивание и анализ в первую очередь (байты воспроизведения, loudness backfill или HTTP при необходимости).',
  analyticsStrategyPriorityMiddle: '2 — Следующие: ~5 треков в очереди и соседи hot cache — анализ из уже скачанных байтов, HTTP backfill только при промахе.',
  analyticsStrategyPriorityLow: '3 — Библиотечный batch (только Агрессивный): автоматическая фоновая очередь в хвосте; пополняется по watermark (~3× потоков), не дожидаясь полного опустошения.',
  analyticsStrategyServerLabel: 'Сервер',
  analyticsStrategyProgressLabel: 'Прогресс анализа:',
  analyticsStrategyProgressValue: '{{percent}}% ({{done}}/{{total}})',
  analyticsStrategyActionsLabel: 'Действия',
  analyticsStrategyParallelismLabel: 'Параллельные потоки',
  analyticsStrategyParallelismValue: '{{n}} потоков',
  analyticsStrategyParallelismDesc: 'Сколько треков одновременно скачивать и анализировать (HTTP + CPU). Больше значение — быстрее догоняет библиотеку, но выше нагрузка на сеть и CPU.',
  analyticsStrategyAdvancedWarning:
    'Агрессивный режим скачивает всю библиотеку для анализа и создаёт заметную нагрузку на сеть и процессор. Рекомендуется в локальной сети или для не очень больших библиотек.',
  analyticsStrategyServerRemoved: 'Удалённый сервер',
  analyticsStrategyClearAction: 'Очистить анализ',
  analyticsStrategyClearTitle: 'Очистить анализ?',
  analyticsStrategyClearDesc: 'Очистка анализа для {{server}} удалит кэш волн и loudness. При повторном добавлении сервера индексация может занять много времени.',
  analyticsStrategyClearCancel: 'Отмена',
  analyticsStrategyClearConfirm: 'Очистить анализ',
  analyticsStrategyClearSuccess: 'Анализ удалён для удалённого сервера.',
  analyticsStrategyClearError: 'Не удалось очистить анализ для удалённого сервера.',
  analyticsStrategyProgressEmptyAfterFailed: '100% (0/0, треки помечены как проблемные)',
  analyticsFailedTracksOpenTitle: 'Проблемных треков: {{count}}',
  analyticsFailedTracksTitle: 'Проблемные треки при анализе — {{server}}',
  analyticsFailedTracksDesc: 'Эти треки многократно падали на decode/enrichment и исключены из фонового автоанализа.',
  analyticsFailedTracksLoading: 'Загрузка списка проблемных треков…',
  analyticsFailedTracksEmpty: 'Для этого сервера проблемных треков нет.',
  analyticsFailedTracksClose: 'Закрыть',
  analyticsFailedTracksExport: 'Экспорт списка',
  analyticsFailedTracksExportSuccess: 'Список проблемных треков экспортирован ({{count}}).',
  analyticsFailedTracksExportError: 'Не удалось экспортировать список проблемных треков.',
  analyticsFailedTracksRescan: 'Повторное сканирование проблемных треков',
  analyticsFailedTracksRescanSuccess: 'Повторное сканирование запланировано для {{count}} проблемных треков.',
  analyticsFailedTracksRescanError: 'Не удалось запустить повторное сканирование проблемных треков.',
  analyticsFailedTracksLoadError: 'Не удалось загрузить список проблемных треков.',
  randomMixTitle: 'Чёрный список случайного микса',
  luckyMixMenuTitle: 'Показывать «Мне повезёт» в меню',
  luckyMixMenuDesc:
    'Включает «Мне повезёт» в «Собрать микс», а при раздельной навигации — отдельным пунктом меню. Видно только при включённом AudioMuse на активном сервере.',
  randomMixBlacklistTitle: 'Свои слова-фильтры',
  randomMixBlacklistDesc:
    'Треки скрываются, если слово встречается в жанре, названии, альбоме или исполнителе (когда включён фильтр выше).',
  randomMixBlacklistPlaceholder: 'Добавить слово…',
  randomMixBlacklistAdd: 'Добавить',
  randomMixBlacklistEmpty: 'Пока пусто.',
  randomMixHardcodedTitle: 'Встроенные слова (при включённом фильтре)',
  tabAudio: 'Звук',
  tabStorage: 'Офлайн и кэш',
  tabAppearance: 'Внешний вид',
  tabThemes: 'Темы',
  themesYourThemesTitle: 'Ваши темы',
  themesCvdTooltip: 'Безопасно при дальтонизме — дейтеранопия, протанопия, тританопия',
  themeAnimationWarning: 'Эта тема использует анимации, которые могут повысить нагрузку на процессор в вашей конфигурации (Nvidia/Linux или композитинг выключен).',
  themeStoreTitle: 'Магазин тем',
  themeStoreSubmitText: 'Создали свою тему? Поделитесь с сообществом — подробности в репозитории тем.',
  themeStoreSubmitLink: 'Открыть репозиторий тем',
  themeStoreNetworkNotice: 'Магазин тем загружает каталог и превью с GitHub. Личные данные не отправляются.',
  themeStoreStatsNotice: 'Даты последнего изменения обновляются раз в день (около 04:17 UTC).',
  themeStoreSearchPlaceholder: 'Поиск тем…',
  themeStoreFilterMode: 'Фильтр по режиму',
  themeStoreModeAll: 'Все',
  themeStoreModeDark: 'Тёмные',
  themeStoreModeLight: 'Светлые',
  themeStoreRefresh: 'Обновить',
  themeStoreLoading: 'Загрузка тем…',
  themeStoreError: 'Не удалось загрузить магазин тем. Проверьте подключение.',
  themeStoreRetry: 'Повторить',
  themeStoreOfflineTitle: 'Магазин тем недоступен',
  themeStoreEmpty: 'Нет тем, соответствующих фильтрам.',
  themeStoreActive: 'Активна',
  themeStoreEnlarge: 'Увеличить превью',
  themeStoreSortNewest: 'Новые',
  themeStoreSortName: 'По алфавиту',
  themeStoreAnimAll: 'Все',
  themeStoreAnimAnimated: 'Анимированные',
  themeStoreAnimStatic: 'Статичные',
  themeStoreByAuthor: 'от {{author}}',
  themeStoreLastChanged: 'Изменён',
  themeStoreWhatsNew: 'Что нового',
  themeMigrationNoticeTitle: 'Тема перенесена в магазин',
  themeMigrationNoticeBody: '{{themes}} больше не входит в приложение. Вы можете переустановить её из магазина тем (Настройки → Темы) или выбрать другую тему.',
  themeMigrationNoticeOpen: 'Открыть магазин тем',
  themeStoreOffline: 'Показан последний кэшированный каталог — похоже, вы офлайн.',
  themeStoreInstall: 'Установить',
  themeStoreInstalling: 'Установка…',
  themeStoreApply: 'Применить',
  themeStoreUpdate: 'Обновить',
  themeStoreUpdating: 'Обновление…',
  themeStoreUninstall: 'Удалить',
  themeStoreInstallFailed: 'Ошибка установки',
  themeStorePagePrev: 'Предыдущая страница',
  themeStorePageNext: 'Следующая страница',
  themeStorePageStatus: 'Страница {{page}} из {{total}}',
  themeImportTitle: 'Импорт темы',
  themeImportButton: 'Импортировать тему…',
  themeImporting: 'Импорт…',
  themeImportHint: 'Загружает тему, упакованную в .zip (manifest.json + theme.css).',
  themeImportSuccess: '«{{name}}» импортирована.',
  themeImportErrorTitle: 'Не удалось импортировать эту тему',
  themeImportErrorBody: 'Он не соответствует формату тем Psysonic. Возможно, он создан для другой версии или файл неполный — проверьте, что выбрали правильный .zip, или обратитесь к автору темы.',
  themeImportErrorDetails: 'Технические подробности',
  themeImportConfirmTitle: 'Установить тему?',
  themeImportConfirmBody: 'Установить «{{name}}» от {{author}}?',
  themeImportConfirmRisk: 'Импортированные темы не проверяются — устанавливайте только темы, которым доверяете.',
  tabLibrary: 'Библиотека',
  tabServers: 'Серверы',
  tabLyrics: 'Тексты песен',
  tabPersonalisation: 'Персонализация',
  tabIntegrations: 'Интеграции',
  inputKeybindingsTitle: 'Горячие клавиши',
  aboutContributorsCount_one: '{{count}} вклад',
  aboutContributorsCount_few: '{{count}} вклада',
  aboutContributorsCount_many: '{{count}} вкладов',
  aboutContributorsCount_other: '{{count}} вклада',
  aboutContributorsApp: 'Приложение',
  aboutContributorsThemes: 'Темы',
  aboutThemeContributorsCount_one: '{{count}} тема',
  aboutThemeContributorsCount_few: '{{count}} темы',
  aboutThemeContributorsCount_many: '{{count}} тем',
  aboutThemeContributorsCount_other: '{{count}} темы',
  searchPlaceholder: 'Поиск в настройках…',
  searchNoResults: 'Ничего не найдено по вашему запросу.',
  aboutMaintainersLabel: 'Сопровождающие',
  integrationsPrivacyTitle: 'Уведомление о конфиденциальности',
  integrationsPrivacyBody: 'Все интеграции на этой вкладке включаются <strong>по желанию</strong> и при активации отправляют данные во внешние сервисы или на ваш сервер Navidrome. Last.fm получает вашу историю прослушивания, Discord показывает текущую композицию в вашем профиле, Bandsintown опрашивается по артисту для получения дат гастролей, а «Сейчас играет» делится текущей композицией с другими пользователями вашего сервера Navidrome. Если вы не хотите ничего из этого, просто оставьте соответствующий раздел отключённым.',
  homeCustomizerTitle: 'Для вас',
  queueSettingsTitle: 'Настройки очереди',
  queueModeTitle: 'Режим отображения очереди',
  queueModeQueueSub: 'Показывает только предстоящие треки. Текущий трек остаётся в заголовке и исчезает из списка после воспроизведения.',
  queueModePlaylistSub: 'Сохраняет всю очередь в списке, текущий трек выделен вверху; воспроизведённые треки остаются.',
  queueModeTimelineSub: 'Текущий трек сверху списка; история воспроизведения прокручивается выше, предстоящие треки (в порядке перемешивания) — ниже.',
  queueToolbarTitle: 'Панель инструментов очереди',
  queueToolbarReset: 'Сбросить',
  queueToolbarSeparator: 'Разделитель',
  sidebarTitle: 'Боковая панель',
  sidebarReset: 'Сбросить порядок',
  artistLayoutTitle: 'Разделы страницы исполнителя',
  artistLayoutDesc: 'Перетаскивайте, чтобы изменить порядок, переключайте, чтобы скрыть отдельные разделы страницы исполнителя. Разделы без данных пропускаются автоматически.',
  artistLayoutReset: 'Сбросить',
  artistLayoutBio: 'Биография исполнителя',
  artistLayoutTopTracks: 'Топ-треки',
  artistLayoutSimilar: 'Похожие исполнители',
  artistLayoutAlbums: 'Альбомы',
  artistLayoutFeatured: 'Также участвует в',
  playlistLayoutTitle: 'Макет страницы плейлиста',
  playlistLayoutDesc: 'Показать или скрыть отдельные элементы на странице плейлиста.',
  playlistLayoutReset: 'Сбросить',
  playerBarTitle: 'Панель плеера',
  playerBarReset: 'Сбросить',
  playerBarStarRating: 'Оценка звёздами',
  playerBarFavorite: 'Избранное (сердечко)',
  playerBarLastfmLove: 'Кнопка «Нравится»',
  playerBarPlaybackRate: 'Скорость',
  playerBarEqualizer: 'Эквалайзер',
  playerBarMiniPlayer: 'Мини-плеер',
  playerBarStop: 'Кнопка «Стоп»',
  playerBarShuffle: 'Случайный порядок',
  playerBarTransportGroup: 'Управление воспроизведением',
  playerBarActionsGroup: 'Действия',
  playerBarTrackInfo: 'Информация о треке',
  playerBarTrackInfoTitle: 'Только название',
  playerBarTrackInfoTitleAlbum: 'Название + альбом',
  playbackRateTitle: 'Скорость воспроизведения',
  playbackRateEnabled: 'Включить изменение скорости',
  playbackRateEnabledDesc: 'Глобальная скорость для всех треков. Не применяется к радио и превью.',
  playbackRateStrategy: 'Стратегия',
  playbackRateStrategySpeed: 'Скорость',
  playbackRateStrategyVarispeed: 'С тоном',
  playbackRateStrategyVarispeedSemitones: 'Полутона',
  playbackRateStrategyPreserve: 'Сдвиг тона',
  playbackRateStrategySpeedTip: 'Меняет темп; высота тона корректируется автоматически.',
  playbackRateStrategyVarispeedTip: 'Скорость и тон меняются вместе, как у плёнки. Тон от скорости: 12 × log2(скорость).',
  playbackRateStrategyVarispeedSemitonesTip: 'Тот же режим «С тоном», но задаётся напрямую в полутонах. Скорость = 2^(пт/12).',
  playbackRateStrategyPreserveTip: 'Регулируемый темп плюс ручное смещение тона (±12 пт).',
  playbackRateSpeed: 'Скорость',
  playbackRatePitch: 'Тон',
  playbackRateDerivedPitch: 'Сдвиг тона от скорости: {{value}}',
  playbackRateDerivedSpeed: 'Скорость из полутонов: {{value}}',
  playbackRateFineStep: 'Точная настройка',
  playbackRateFineStepDesc: 'Меньший шаг ползунков: 0.01× для скорости и 0.01 пт для тона.',
  playbackRateAutoPitch: 'Тон корректируется автоматически.',
  playbackRateHint: '«Скорость» сохраняет высоту тона при изменении темпа. «С тоном» меняет тон вместе со скоростью. «С тоном (полутона)» задаёт это изменение тона напрямую в полутонах. «Сдвиг тона» — ручное смещение. Выше нагрузка на процессор, чем у режима «С тоном». Не для радио, превью и Orbit.',
  playbackRateNeutral: 'При 1.0× и нулевом сдвиге тона воспроизведение обычное.',
  playbackRateOrbitPaused: 'Во время сессии Orbit не применяется — воспроизведение остаётся 1.0× для синхронизации.',
  playbackRateOrbitPausedShort: 'Orbit: 1.0× для синхронизации.',
  advancedMode: 'Дополнительно',
  advancedModeTooltip: 'Показывать расширенные параметры во всех вкладках настроек. Вклады сообщества, которые не обязательно соответствуют дизайн-философии мейнтейнеров Psysonic.',
  advancedBadge: 'Дополнительно',
  sidebarDrag: 'Перетащите для порядка',
  sidebarFixed: 'Всегда показывать',
  nowPlayingTopTitle: '«Сейчас играет» вверху',
  nowPlayingTopDesc: 'Закрепить пункт «Сейчас играет» вверху боковой панели вместо нижней части.',
  randomNavSplitTitle: 'Разделить навигацию микса',
  randomNavSplitDesc:
    'Показывать «Случайный микс», «Случайные альбомы» и «Мне повезёт» как отдельные пункты боковой панели вместо хаба «Собрать микс».',
  tabInput: 'Ввод',
  tabUsers: 'Пользователи',
  tabSystem: 'Система',
  loggingTitle: 'Логирование',
  loggingModeDesc: 'Управляет подробностью логов бэкенда в терминале.',
  loggingModeOff: 'Выключено',
  loggingModeNormal: 'Обычное',
  loggingModeDebug: 'Дебаг',
  loggingExport: 'Экспорт логов',
  loggingExportSuccess: 'Логи экспортированы ({{count}} строк).',
  loggingExportError: 'Не удалось экспортировать логи.',
  ratingsSectionTitle: 'Рейтинги',
  ratingsSkipStarTitle: 'Скипнуть для 1 звезды',
  ratingsSkipStarDesc:
    'При N скипов подряд ставить 1★ треку. Только для не оцененных ранее.',
  ratingsSkipStarThresholdLabel: 'Скипов',
  ratingsMixFilterTitle: 'Фильтрация по рейтингу',
  ratingsMixFilterDesc:
    'Фильтровать с низким рейтингом в «{{mix}}» и «{{albums}}». Повторный клик по выбранной звезде отключает порог.',
  ratingsMixMinSong: 'Песни',
  ratingsMixMinAlbum: 'Альбомы',
  ratingsMixMinArtist: 'Исполнители',
  ratingsMixMinThresholdAria: 'Минимум звёзд: {{label}}',
  backupTitle: 'Резервная копия',
  backupExport: 'Экспорт настроек',
  backupExportDesc:
    'Сохраняет настройки, серверы, Last.fm, тему, EQ и горячие клавиши в файл .psybkp. Пароли в открытом виде — храните файл в безопасности.',
  backupImport: 'Импорт настроек',
  backupImportDesc: 'Восстановить из .psybkp. Приложение перезапустится.',
  backupImportConfirm: 'Текущие настройки будут заменены. Продолжить?',
  backupImportAny: 'Импорт резервной копии',
  backupImportAnyConfirm:
    'Импортировать выбранный файл резервной копии и применить его содержимое (настройки, базы библиотеки или полный архив). Продолжить?',
  backupSuccess: 'Копия сохранена',
  backupImportSuccess: 'Настройки восстановлены — перезапуск…',
  backupImportError: 'Файл повреждён или не подходит.',
  backupModeFull: 'Полный',
  backupModeLibrary: 'Базы библиотеки',
  backupModeConfig: 'Настройки',
  backupFullDesc: 'Архивирует настройки и базы библиотеки в один файл резервной копии.',
  backupFullExport: 'Экспорт полного архива',
  backupFullImport: 'Импорт полного архива',
  backupFullImportConfirm:
    'Настройки будут перезаписаны, текущие базы библиотеки будут заменены и сохранены в .bak. Продолжить?',
  backupFullExportSuccess: 'Полный архив экспортирован.',
  backupFullImportSuccess: 'Полный архив импортирован — перезапуск…',
  backupFullImportError: 'Не удалось импортировать полный архив.',
  backupLibraryExport: 'Экспорт баз',
  backupLibraryExportDesc: 'Создаёт сжатый архив с чистыми SQLite-снимками баз библиотеки.',
  backupLibraryImport: 'Импорт баз',
  backupLibraryImportDesc:
    'Восстанавливает базы библиотеки из архива. Текущие базы перед заменой переносятся в .bak.',
  backupLibraryImportConfirm:
    'Текущие базы библиотеки будут заменены и сохранены в .bak. Продолжить?',
  backupLibraryExportSuccess: 'Копия баз экспортирована.',
  backupLibraryImportSuccess: 'Копия баз импортирована.',
  backupLibraryImportError: 'Не удалось импортировать копию баз.',
  backupOverlayExportTitle: 'Создаём резервную копию…',
  backupOverlayImportTitle: 'Восстанавливаем резервную копию…',
  backupOverlayHint: 'Окно можно не закрывать, идёт обработка файлов. Ввод временно заблокирован.',
  shortcutsReset: 'Сбросить',
  shortcutListening: 'Нажмите клавишу…',
  shortcutUnbound: '—',
  globalShortcutsTitle: 'Глобальные сочетания',
  globalShortcutsNote:
    'Работают, когда окно не в фокусе. Нужен модификатор: Ctrl, Alt или Super.',
  shortcutClear: 'Сбросить',
  shortcutPlayPause: 'Пауза / воспроизведение',
  shortcutNext: 'Следующий трек',
  shortcutPrev: 'Предыдущий трек',
  shortcutVolumeUp: 'Громче',
  shortcutVolumeDown: 'Тише',
  shortcutSeekForward: 'Вперёд на 10 с',
  shortcutSeekBackward: 'Назад на 10 с',
  shortcutToggleQueue: 'Показать / скрыть очередь',
  shortcutOpenFolderBrowser: 'Открыть {{folderBrowser}}',
  shortcutFullscreenPlayer: 'Полноэкранный плеер',
  shortcutNativeFullscreen: 'Системный полный экран',
  shortcutOpenMiniPlayer: 'Открыть мини-плеер',
  shortcutStartSearch: 'Начать поиск',
  shortcutStartAdvancedSearch: 'Начать расширенный поиск',
  shortcutToggleSidebar: 'Переключить боковую панель',
  shortcutMuteSound: 'Без звука',
  shortcutToggleEqualizer: 'Открыть / переключить эквалайзер',
  shortcutToggleRepeat: 'Переключить повтор',
  shortcutOpenNowPlaying: 'Открыть «Сейчас играет»',
  shortcutShowLyrics: 'Показать текст песни',
  shortcutFavoriteCurrentTrack: 'Добавить текущий трек в избранное',
  shortcutOpenHelp: 'Справка',
  playbackTitle: 'Воспроизведение',
  replayGain: 'Replay Gain',
  replayGainDesc: 'Выравнивание громкости по метаданным ReplayGain',
  replayGainMode: 'Режим',
  replayGainAuto: 'Авто',
  replayGainAutoDesc: 'Использует громкость альбома, когда соседние треки в очереди из того же альбома, иначе громкость трека.',
  replayGainTrack: 'По треку',
  replayGainAlbum: 'По альбому',
  replayGainPreGain: 'Предусиление (файлы с тегами)',
  replayGainPreGainDesc: 'Общая прибавка, добавляемая к каждому расчёту ReplayGain. Удобно, если библиотека в целом кажется тихой.',
  replayGainFallback: 'Резерв (без тегов / радио)',
  replayGainFallbackDesc: 'Применяется к трекам (и радиопотокам) без тегов ReplayGain, чтобы непомеченный контент не звучал громче остального.',
  normalization: 'Нормализация',
  normalizationDesc: 'Выровнять воспринимаемую громкость между треками, альбомами и радио.',
  normalizationOff: 'Выкл.',
  normalizationReplayGain: 'ReplayGain',
  normalizationLufs: 'LUFS',
  loudnessTargetLufs: 'Целевой LUFS',
  loudnessTargetLufsDesc: 'Опорная громкость, к которой подгоняются все треки. Меньше число = громче на выходе. Стриминг-сервисы обычно держат около -14 LUFS.',
  loudnessPreAnalysisAttenuation: 'Ослабление до измерения',
  loudnessPreAnalysisAttenuationDesc:
    'Насколько приглушить звук, пока для трека нет сохранённого измерения громкости. При стриме дальше идут лишь грубые оценки, не полный LUFS. 0 dB — без дополнительного приглушения; ниже — тише. Справа показывается фактическая поправка для текущей цели.',
  loudnessPreAnalysisAttenuationRef: 'Фактически {{eff}} dB при цели {{tgt}} LUFS.',
  loudnessPreAnalysisAttenuationReset: 'По умолчанию',
  loudnessFirstPlayNote:
    'При первом прослушивании нового трека громкость может ненадолго колебаться, пока идёт измерение. Со второго раза применяется уже сохранённое значение и всё стабильно. Следующие треки в очереди обычно анализируются во время предыдущей композиции, поэтому на практике это случается редко.',
  crossfade: 'Кроссфейд',
  crossfadeSecs: '{{n}} с',
  autoDj: 'AutoDJ',
  autoDjDesc: 'Без фиксированной длительности — AutoDJ подстраивается под само звучание, накладываясь на реальные затухания и вступления, а не на заданное число секунд. Для надёжной работы включите «Горячий кэш воспроизведения».',
  autodjSmoothSkip: 'Плавный пропуск',
  autodjSmoothSkipDesc: 'При переходе на следующий или предыдущий трек во время воспроизведения склеивает его по тем же правилам AutoDJ (длина наложения, обрезка вступления) с текущей позиции, а не резким обрывом. Надёжнее, когда следующий трек уже в буфере.',
  autodjOverlapCapTitle: 'Лимит наложения',
  autodjOverlapCapDesc: 'Ограничивает максимальную длительность наложения AutoDJ. Авто — по анализу контента (до 12 с). Лимит — ваш верхний предел.',
  autodjOverlapCapAuto: 'Авто',
  autodjOverlapCapLimit: 'Лимит',
  autodjOverlapCapSecs: '{{n}} с',
  gapless: 'Без пауз',
  transitionsTitle: 'Переходы между треками',
  transitionsDesc: 'Как соединяются идущие подряд треки. Одновременно может быть активен только один режим.',
  transitionOff: 'Выкл.',
  transitionsHostControlled: 'Управляется хостом Orbit во время сессии',
  queueBehaviourTitle: 'Поведение очереди',
  preservePlayNextOrder: 'Сохранять порядок «Играть следующим»',
  preservePlayNextOrderDesc: 'Новые элементы «Играть следующим» становятся в конец очереди, а не лезут вперёд.',
  queueTrackListCovers: 'Обложки в очереди',
  queueTrackListCoversSub: 'Миниатюра альбома напротив каждого трека в панели очереди, мини-плеере и «Далее» в полноэкранном режиме. Рекомендуется включение агрессивного кэширования.',
  trackListCoverArtOnPages: 'Обложки в списках треков',
  trackListCoverArtOnPagesSub: 'Миниатюра альбома в разделах «Треки», «Поиск», плейлистах, избранном, «Случайный микс» и других списках просмотра. Рекомендуется включение агрессивного кэширования.',
  trackPreviewsTitle: 'Превью треков',
  trackPreviewsToggle: 'Включить превью треков',
  trackPreviewsDesc: 'Показывать встроенные кнопки воспроизведения и превью в списках треков для быстрого прослушивания фрагмента.',
  trackPreviewStart: 'Начальная позиция',
  trackPreviewStartDesc: 'С какого момента трека начинается превью (% от длительности).',
  trackPreviewDuration: 'Длительность',
  trackPreviewDurationDesc: 'Сколько играет каждое превью до автоматической остановки.',
  trackPreviewDurationSecs: '{{n}} с',
  trackPreviewLocationsTitle: 'Где показывать превью',
  trackPreviewLocationsDesc: 'Выберите, в каких списках показывать кнопки превью.',
  trackPreviewLocation_suggestions: 'В предложениях плейлиста',
  trackPreviewLocation_albums: 'В списках треков альбома',
  trackPreviewLocation_playlists: 'В плейлистах',
  trackPreviewLocation_favorites: 'В избранном',
  trackPreviewLocation_artist: 'В топ-треках исполнителя',
  trackPreviewLocation_randomMix: 'В случайном миксе',
  nextTrackBufferingTitle: 'Буферизация',
  infiniteQueue: 'Бесконечная очередь',
  infiniteQueueDesc: 'Подмешивать случайные треки, когда очередь закончится',
  experimental: 'Экспериментально',
  sidebarLyricsStyle: 'Стиль прокрутки текста',
  sidebarLyricsStyleClassic: 'Классический',
  sidebarLyricsStyleClassicDesc: 'Активная строка центрируется.',
  sidebarLyricsStyleApple: 'Apple Music-like',
  sidebarLyricsStyleAppleDesc: 'Активная строка фиксируется сверху с плавной анимацией.',
  seekbarStyle: 'Стиль прогресс-бара',
  fullscreenPlayerStyle: 'Стиль полноэкранного плеера',
  fsLyricsStyleRail: 'Рельс',
  fsLyricsStyleRailDesc: 'Классическая рамка из 5 строк.',
  fsLyricsStyleApple: 'Прокрутка',
  fsLyricsStyleAppleDesc: 'Полноэкранный список с прокруткой.',
  fullscreenPlayerStyleDesc: 'Выберите вид полноэкранного экрана воспроизведения.',
  fullscreenPlayerMinimal: 'Минимальный',
  fullscreenPlayerImmersive: 'Иммерсивный',
  fullscreenPlayerPrism: 'Prism',
  fsShowArtistPortrait: 'Отображать фото артиста',
  fsShowArtistPortraitDesc: 'Показывать фото артиста (или обложку альбома) в правой части полноэкранного плеера.',
  fsPortraitDim: 'Затемнение фото',
  seekbarStyleDesc: 'Выбор внешнего вида полосы воспроизведения',
  buttonSizeTitle: 'Компактные кнопки',
  buttonSizeLabel: 'Размер кнопок',
  buttonSizeDesc: 'Уменьшает кнопки действий и панели инструментов до значков на страницах сведений и в списках.',
  buttonSize_large: 'Большие',
  buttonSize_small: 'Маленькие',
  seekbarTruewave: 'Реальная форма волны',
  seekbarPseudowave: 'Псевдо форма волны',
  seekbarLinedot: 'Линия и точка',
  seekbarBar: 'Полоса',
  seekbarThick: 'Толстая полоса',
  seekbarSegmented: 'Сегменты',
  seekbarNeon: 'Неон',
  seekbarPulsewave: 'Пульс-волна',
  seekbarParticletrail: 'Частицы',
  seekbarLiquidfill: 'Жидкость',
  seekbarRetrotape: 'Ретро-лента',
  themeSchedulerTitle: 'Расписание тем',
  themeSchedulerEnable: 'Включить расписание тем',
  themeSchedulerEnableSub: 'Автоматически переключается между двумя темами в зависимости от времени суток или системной темы',
  themeSchedulerDayTheme: 'Дневная тема',
  themeSchedulerDayStart: 'День начинается в',
  themeSchedulerNightTheme: 'Ночная тема',
  themeSchedulerNightStart: 'Ночь начинается в',
  themeSchedulerActiveHint: 'Расписание тем активно - темы переключаются автоматически.',
  themeSchedulerModeLabel: 'Переключать по',
  themeSchedulerModeTime: 'Времени суток',
  themeSchedulerModeSystem: 'Системной теме',
  themeSchedulerLightTheme: 'Светлая тема',
  themeSchedulerDarkTheme: 'Тёмная тема',
  themeSchedulerSystemRestartHint: 'Изменение светлой/тёмной настройки системы вступит в силу после перезапуска приложения.',
  visualOptionsTitle: 'Визуальные настройки',
  coverArtBackground: 'Фон обложки',
  coverArtBackgroundSub: 'Показывать размытую обложку как фон в заголовках альбомов и плейлистов',
  backdropSourcesTitle: 'Фоны',
  backdropSourcesSub: 'Выберите, какое изображение каждая область использует как фон и в каком порядке их пробовать. Перетаскивайте для изменения порядка или выключите источник, чтобы пропустить его.',
  backdropSurfaceMainstage: '«Для вас»',
  backdropSurfaceArtistDetail: 'Шапка страницы исполнителя',
  backdropSurfaceFullscreen: 'Полноэкранный плеер',
  backdropSourceBanner: 'Баннер',
  backdropSourceFanart: 'Изображение исполнителя Fanart',
  backdropSourceNavidrome: 'Изображение Navidrome',
  backdropMoveUp: 'Вверх',
  backdropMoveDown: 'Вниз',
  playlistCoverPhoto: 'Обложка плейлиста',
  playlistCoverPhotoSub: 'Показывать сетку обложек в детальном виде плейлиста',
  showBitrate: 'Показывать битрейт',
  showBitrateSub: 'Отображать битрейт аудио в списках треков',
  floatingPlayerBar: 'Плавающая панель плеера',
  floatingPlayerBarSub: 'Держать панель плеера плавающей над содержимым',
  squareCorners: 'Прямые углы',
  squareCornersSub: 'Убрать скруглённые углы у карточек для чёткого, прямоугольного вида',
  uiScaleTitle: 'Масштаб интерфейса',
  uiScaleLabel: 'Масштаб',
  confirmDeleteServerLibrary: 'Также удалить локальный индекс библиотеки этого сервера? Нажмите «Отмена», чтобы сохранить кэш-копию для офлайн-использования.',
};
