Files
psysonic/src/locales/ru.ts
T
2026-04-06 19:13:47 +02:00

852 lines
46 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.
/** Russian UI strings — natural phrasing for a music desktop app */
export const ruTranslation = {
sidebar: {
library: 'Медиатека',
mainstage: 'Для вас',
newReleases: 'Новинки',
allAlbums: 'Все альбомы',
randomAlbums: 'Случайные альбомы',
artists: 'Исполнители',
randomMix: 'Случайный микс',
favorites: 'Избранное',
nowPlaying: 'Сейчас играет',
system: 'Система',
statistics: 'Статистика',
settings: 'Настройки',
help: 'Справка',
expand: 'Развернуть боковую панель',
collapse: 'Свернуть боковую панель',
updateAvailable: 'Доступно обновление',
updateReady: '{{version}} готово',
updateLink: 'Перейти к релизу →',
downloadingTracks: 'Кэширование {{n}} треков…',
offlineLibrary: 'Офлайн-библиотека',
genres: 'Жанры',
playlists: 'Плейлисты',
radio: 'Онлайн-радио',
},
home: {
hero: 'Подборка',
starred: 'Личное избранное',
recent: 'Недавно добавлено',
mostPlayed: 'Чаще всего',
recentlyPlayed: 'Недавно проиграно',
discover: 'Обзор',
loadMore: 'Ещё',
discoverMore: 'Смотреть ещё',
discoverArtists: 'Исполнители',
discoverArtistsMore: 'Все исполнители',
},
hero: {
eyebrow: 'Альбом дня',
playAlbum: 'Воспроизвести альбом',
enqueue: 'В очередь',
enqueueTooltip: 'Добавить весь альбом в очередь',
},
search: {
placeholder: 'Исполнитель, альбом или трек…',
noResults: 'Ничего не найдено по запросу «{{query}}»',
artists: 'Исполнители',
albums: 'Альбомы',
songs: 'Треки',
clearLabel: 'Очистить поиск',
title: 'Поиск',
resultsFor: 'Результаты по «{{query}}»',
album: 'Альбом',
advanced: 'Расширенный поиск',
advancedSearchTerm: 'Поисковый запрос',
advancedSearchPlaceholder: 'Название, альбом, исполнитель…',
advancedGenre: 'Жанр',
advancedAllGenres: 'Все жанры',
advancedYear: 'Год',
advancedYearFrom: 'от',
advancedYearTo: 'до',
advancedAll: 'Все',
advancedSearch: 'Найти',
advancedEmpty: 'Введите запрос или выберите фильтр.',
advancedNoResults: 'Ничего не найдено.',
advancedGenreNote: 'Треки выбираются случайно в рамках жанра.',
recentSearches: 'Недавние запросы',
browse: 'Обзор',
emptyHint: 'Что хочешь послушать?',
genres: 'Жанры',
},
nowPlaying: {
tooltip: 'Кто сейчас слушает?',
title: 'Кто сейчас слушает?',
loading: 'Загрузка…',
nobody: 'Сейчас никто не слушает.',
minutesAgo: '{{n}} мин назад',
nothingPlaying: 'Пока ничего не играет — включите трек.',
aboutArtist: 'Об исполнителе',
fromAlbum: 'Из этого альбома',
viewAlbum: 'Просмотр альбома',
goToArtist: 'Перейти к исполнителю',
readMore: 'Читать далее',
showLess: 'Свернуть',
genreInfo: 'Жанр',
trackInfo: 'О треке',
},
contextMenu: {
playNow: 'Играть сейчас',
playNext: 'Играть следующим',
addToQueue: 'В конец очереди',
enqueueAlbum: 'Альбом в очередь',
startRadio: 'Радио по похожим',
lfmLove: 'Любимое на Last.fm',
lfmUnlove: 'Убрать с Last.fm',
favorite: 'В избранное',
favoriteArtist: 'Исполнитель в избранное',
favoriteAlbum: 'Альбом в избранное',
unfavorite: 'Убрать из избранного',
unfavoriteArtist: 'Убрать исполнителя из избранного',
unfavoriteAlbum: 'Убрать альбом из избранного',
removeFromQueue: 'Убрать из очереди',
openAlbum: 'Открыть альбом',
goToArtist: 'К исполнителю',
download: 'Скачать (ZIP)',
addToPlaylist: 'В плейлист',
songInfo: 'Сведения о треке',
},
albumDetail: {
back: 'Назад',
playAll: 'Воспроизвести всё',
enqueue: 'В очередь',
enqueueTooltip: 'Добавить весь альбом в очередь',
artistBio: 'Биография',
download: 'Скачать (ZIP)',
downloading: 'Загрузка…',
cacheOffline: 'Сохранить офлайн',
offlineCached: 'Доступно офлайн',
offlineDownloading: 'Кэширование… ({{n}} из {{total}})',
removeOffline: 'Удалить офлайн-копию',
offlineStorageFull:
'Место для офлайн закончилось (лимит {{mb}} МБ). Освободите место в офлайн-библиотеке или увеличьте лимит в настройках.',
offlineStorageGoToLibrary: 'Офлайн-библиотека',
offlineStorageGoToSettings: 'Настройки',
favoriteAdd: 'В избранное',
favoriteRemove: 'Убрать из избранного',
favorite: 'Избранное',
noBio: 'Биография недоступна.',
moreByArtist: 'Ещё от {{artist}}',
tracksCount: 'Композиций: {{n}}',
goToArtist: 'Перейти к {{artist}}',
moreLabelAlbums: 'Другие альбомы на {{label}}',
trackTitle: 'Название',
trackArtist: 'Исполнитель',
trackGenre: 'Жанр',
trackFormat: 'Формат',
trackFavorite: 'Избранное',
trackRating: 'Оценка',
trackDuration: 'Длительность',
trackTotal: 'Итого',
columns: 'Колонки',
notFound: 'Альбом не найден.',
bioModal: 'Биография исполнителя',
bioClose: 'Закрыть',
ratingLabel: 'Оценка',
enlargeCover: 'Увеличить обложку',
},
artistDetail: {
back: 'Назад',
albums: 'Альбомы',
album: 'Альбом',
playAll: 'Воспроизвести всё',
shuffle: 'Перемешать',
radio: 'Радио',
loading: 'Загрузка…',
noRadio: 'Похожие треки для этого исполнителя не найдены.',
notFound: 'Исполнитель не найден.',
albumsBy: 'Альбомы — {{name}}',
topTracks: 'Популярные треки',
noAlbums: 'Альбомов нет.',
trackTitle: 'Название',
trackAlbum: 'Альбом',
trackDuration: 'Длительность',
favoriteAdd: 'В избранное',
favoriteRemove: 'Убрать из избранного',
favorite: 'Избранное',
albumCount_one: '{{count}} альбом',
albumCount_few: '{{count}} альбома',
albumCount_many: '{{count}} альбомов',
albumCount_other: '{{count}} альбомов',
openedInBrowser: 'Открыто в браузере',
featuredOn: 'Также участвует в',
similarArtists: 'Похожие исполнители',
cacheOffline: 'Сохранить дискографию офлайн',
offlineCached: 'Дискография сохранена',
offlineDownloading: 'Кэширование… ({{done}} из {{total}} альбомов)',
uploadImage: 'Загрузить фото исполнителя',
uploadImageError: 'Не удалось загрузить изображение',
},
favorites: {
title: 'Избранное',
empty: 'Пока ничего не отмечено звёздочкой.',
artists: 'Исполнители',
albums: 'Альбомы',
songs: 'Треки',
enqueueAll: 'Всё в очередь',
playAll: 'Воспроизвести всё',
removeSong: 'Убрать из избранного',
stations: 'Радиостанции',
},
randomAlbums: {
title: 'Случайные альбомы',
refresh: 'Обновить',
},
genres: {
title: 'Жанры',
genreCount: 'Жанры',
albumCount_one: '{{count}} альбом',
albumCount_few: '{{count}} альбома',
albumCount_many: '{{count}} альбомов',
albumCount_other: '{{count}} альбомов',
loading: 'Загрузка жанров…',
empty: 'Жанры не найдены.',
albumsLoading: 'Загрузка альбомов…',
albumsEmpty: 'В этом жанре альбомов нет.',
loadMore: 'Ещё',
back: 'Назад',
},
randomMix: {
title: 'Случайный микс',
remix: 'Новый микс',
remixTooltip: 'Подобрать другие случайные треки',
playAll: 'Воспроизвести всё',
trackTitle: 'Название',
trackArtist: 'Исполнитель',
trackAlbum: 'Альбом',
trackFavorite: 'Избранное',
trackDuration: 'Длительность',
favoriteAdd: 'В избранное',
favoriteRemove: 'Убрать из избранного',
play: 'Играть',
trackGenre: 'Жанр',
excludeAudiobooks: 'Исключать аудиокниги и радиоспектакли',
excludeAudiobooksDesc:
'По ключевым словам в жанре, названии, альбоме и исполнителе — например Hörbuch, Audiobook, Spoken Word и т. п.',
genreBlocked: 'Слово отфильтровано',
genreAddedToBlacklist: 'Добавлено в список фильтра',
genreAlreadyBlocked: 'Уже в списке',
artistBlocked: 'Исполнитель отфильтрован',
artistAddedToBlacklist: 'Исполнитель добавлен в фильтр',
artistClickHint: 'Нажмите, чтобы скрыть этого исполнителя',
blacklistToggle: 'Фильтр по словам',
genreMixTitle: 'Микс по жанру',
genreMixDesc: 'Топ-20 жанров по числу треков — нажмите, чтобы собрать микс',
genreMixLoadMore: 'Ещё 10 жанров',
genreMixNoGenres: 'На сервере нет данных о жанрах.',
shuffleGenres: 'Другие жанры',
filterPanelTitle: 'Фильтры',
filterPanelDesc:
'Нажмите на тег жанра или имя исполнителя в списке ниже, чтобы исключить их из будущих миксов.',
genreClickHint:
'Нажмите на тег жанра — слово попадёт в фильтр.\nУчитываются жанр, название, альбом и исполнитель.',
},
albums: {
title: 'Все альбомы',
sortByName: 'А–Я (альбом)',
sortByArtist: 'А–Я (исполнитель)',
sortNewest: 'Сначала новые',
sortRandom: 'Случайно',
yearFrom: 'С',
yearTo: 'По',
yearFilterClear: 'Сбросить год',
yearFilterLabel: 'Год',
},
artists: {
title: 'Исполнители',
search: 'Поиск…',
all: 'Все',
gridView: 'Сетка',
listView: 'Список',
imagesOn: 'Фото исполнителей — больше трафика и нагрузка на систему',
imagesOff: 'Только инициалы — экономнее по трафику',
loadMore: 'Ещё',
notFound: 'Исполнители не найдены.',
albumCount_one: '{{count}} альбом',
albumCount_few: '{{count}} альбома',
albumCount_many: '{{count}} альбомов',
albumCount_other: '{{count}} альбомов',
},
login: {
subtitle: 'Десктопный клиент для Navidrome',
serverName: 'Название сервера (необязательно)',
serverNamePlaceholder: 'Мой Navidrome',
serverUrl: 'Адрес сервера',
serverUrlPlaceholder: '192.168.1.100:4533 или music.example.com',
username: 'Логин',
usernamePlaceholder: 'admin',
password: 'Пароль',
showPassword: 'Показать пароль',
hidePassword: 'Скрыть пароль',
connect: 'Подключиться',
connecting: 'Подключение…',
connected: 'Готово!',
error: 'Не удалось подключиться — проверьте данные.',
urlRequired: 'Укажите адрес сервера.',
savedServers: 'Сохранённые серверы',
addNew: 'Или добавить новый сервер',
},
connection: {
connected: 'Подключено',
connectedTo: 'Сервер: {{server}}',
disconnected: 'Нет связи',
disconnectedFrom: 'Сервер {{server}} недоступен — нажмите для настроек',
checking: 'Подключение…',
extern: 'Внешний',
offlineTitle: 'Нет связи с сервером',
offlineSubtitle: 'Сервер {{server}} недоступен. Проверьте сеть и адрес.',
offlineModeBanner: 'Офлайн — воспроизведение из локального кэша',
offlineLibraryTitle: 'Офлайн-библиотека',
offlineLibraryEmpty:
'Пока ничего не сохранено. Подключитесь к сети, откройте альбом и нажмите «Сохранить офлайн».',
offlineAlbumCount_one: '{{n}} альбом',
offlineAlbumCount_few: '{{n}} альбома',
offlineAlbumCount_many: '{{n}} альбомов',
offlineAlbumCount_other: '{{n}} альбомов',
offlineFilterAll: 'Всё',
offlineFilterAlbums: 'Альбомы',
offlineFilterPlaylists: 'Плейлисты',
offlineFilterArtists: 'Дискографии',
retry: 'Повторить',
lastfmConnected: 'Last.fm: @{{user}}',
lastfmSessionInvalid: 'Сессия недействительна — подключите снова',
},
common: {
albums: 'Альбомы',
album: 'Альбом',
loading: 'Загрузка…',
loadingMore: 'Загрузка…',
loadingPlaylists: 'Загрузка плейлистов…',
noAlbums: 'Альбомов нет.',
downloading: 'Скачивание…',
downloadZip: 'Скачать (ZIP)',
back: 'Назад',
cancel: 'Отмена',
save: 'Сохранить',
delete: 'Удалить',
use: 'Использовать',
add: 'Добавить',
active: 'Активен',
download: 'Скачать',
chooseDownloadFolder: 'Выбрать папку',
noFolderSelected: 'Папка не выбрана',
rememberDownloadFolder: 'Запомнить папку',
filterGenre: 'Фильтр по жанру',
filterSearchGenres: 'Поиск жанров…',
filterNoGenres: 'Нет совпадений',
filterClear: 'Сбросить',
bulkSelected: 'Выбрано: {{count}}',
bulkAddToPlaylist: 'В плейлист',
bulkRemoveFromPlaylist: 'Убрать из плейлиста',
bulkClear: 'Снять выделение',
updaterAvailable: 'Доступно обновление',
updaterVersion: 'Версия {{version}} готова',
updaterInstall: 'Установить и перезапустить',
updaterDownloading: 'Скачивание…',
updaterInstalling: 'Установка…',
updaterDownload: 'Скачать с GitHub',
updaterExperimentalHint: 'Автообновление в разработке',
},
settings: {
title: 'Настройки',
language: 'Язык',
languageEn: 'Английский',
languageDe: 'Немецкий',
languageFr: 'Французский',
languageNl: 'Нидерландский',
languageZh: 'Китайский',
languageNb: 'Норвежский',
languageRu: 'Русский',
languageRu2: 'Русский 2',
font: 'Шрифт',
theme: 'Тема',
appearance: 'Оформление',
servers: 'Серверы',
serverName: 'Название',
serverUrl: 'Адрес',
serverUsername: 'Логин',
serverPassword: 'Пароль',
addServer: 'Добавить сервер',
addServerTitle: 'Новый сервер',
useServer: 'Выбрать',
deleteServer: 'Удалить',
noServers: 'Нет сохранённых серверов.',
serverActive: 'Активен',
confirmDeleteServer: 'Удалить сервер «{{name}}»?',
serverConnecting: 'Подключение…',
serverConnected: 'Подключено!',
serverFailed: 'Ошибка подключения.',
testBtn: 'Проверить',
testingBtn: 'Проверка…',
serverCompatible: 'Совместимость: Navidrome · Gonic · Airsonic · Subsonic',
connected: 'Подключено',
failed: 'Ошибка',
eqTitle: 'Эквалайзер',
eqEnabled: 'Включить эквалайзер',
eqPreset: 'Пресет',
eqPresetCustom: 'Свой',
eqPresetBuiltin: 'Встроенные',
eqPresetCustomGroup: 'Мои пресеты',
eqSavePreset: 'Сохранить как пресет',
eqPresetName: 'Название пресета…',
eqDeletePreset: 'Удалить пресет',
eqResetBands: 'Сбросить полосы',
eqPreGain: 'Предусиление',
eqResetPreGain: 'Сбросить предусиление',
eqAutoEqTitle: 'AutoEQ — поиск профиля наушников',
eqAutoEqPlaceholder: 'Модель наушников или IEM…',
eqAutoEqSearching: 'Поиск…',
eqAutoEqNoResults: 'Ничего не найдено',
eqAutoEqError: 'Ошибка поиска',
eqAutoEqRateLimit: 'Лимит GitHub — попробуйте через минуту',
eqAutoEqFetchError: 'Не удалось загрузить профиль EQ',
lfmTitle: 'Last.fm',
lfmConnect: 'Подключить Last.fm',
lfmConnecting: 'Ожидание авторизации…',
lfmConfirm: 'Я разрешил доступ',
lfmConnected: 'Аккаунт',
lfmDisconnect: 'Отключить',
lfmConnectDesc:
'Привяжите Last.fm для скробблинга и статуса «Сейчас слушаю» прямо из Psysonic — настраивать Navidrome не нужно.',
lfmOpenBrowser: 'Откроется браузер. Разрешите доступ на Last.fm, затем нажмите кнопку ниже.',
lfmScrobbles: 'Скробблов: {{n}}',
lfmMemberSince: 'С {{year}} года',
scrobbleEnabled: 'Скробблинг включён',
scrobbleDesc: 'Отправлять прослушивания на Last.fm после 50% трека',
behavior: 'Поведение',
cacheTitle: 'Макс. размер кэша',
cacheDesc:
'Обложки и фото исполнителей. При переполнении старые записи удаляются. Офлайн-альбомы не трогаются автоматически, но сотрутся при полной очистке кэша.',
cacheUsedImages: 'Изображения:',
cacheUsedOffline: 'Офлайн-треки:',
cacheMaxLabel: 'Лимит',
cacheClearBtn: 'Очистить кэш',
cacheClearWarning: 'Будут удалены и все офлайн-альбомы.',
cacheClearConfirm: 'Очистить всё',
cacheClearCancel: 'Отмена',
offlineDirTitle: 'Офлайн-библиотека (в приложении)',
offlineDirDesc: 'Папка для треков, сохранённых для офлайн-прослушивания.',
offlineDirDefault: 'По умолчанию (данные приложения)',
offlineDirChange: 'Сменить папку',
offlineDirClear: 'Сбросить по умолчанию',
offlineDirHint: 'Новые загрузки пойдут в выбранную папку. Старые останутся на прежнем месте.',
showArtistImages: 'Фото исполнителей',
showArtistImagesDesc:
'Показывать обложки в разделе «Исполнители». По умолчанию выключено — меньше нагрузки на диск и сеть.',
showTrayIcon: 'Иконка в трее',
showTrayIconDesc: 'Показывать Psysonic в области уведомлений / строке меню.',
minimizeToTray: 'Сворачивать в трей',
minimizeToTrayDesc: 'При закрытии окна не выходить из приложения, а оставаться в трее.',
discordRichPresence: 'Статус в Discord',
discordRichPresenceDesc:
'Показывать текущий трек в профиле и статусе Discord. Нужен запущенный клиент Discord.',
nowPlayingEnabled: 'Показывать в «Сейчас играет»',
nowPlayingEnabledDesc:
'Отправлять на сервер, что вы сейчас слушаете. Отключите, чтобы не делиться этим.',
downloadsTitle: 'Экспорт ZIP и архивы',
downloadsFolderDesc: 'Куда сохранять альбомы в виде ZIP на диск.',
downloadsDefault: 'Папка «Загрузки» по умолчанию',
pickFolder: 'Выбрать',
pickFolderTitle: 'Папка для загрузок',
clearFolder: 'Сбросить папку',
logout: 'Выйти',
aboutTitle: 'О Psysonic',
aboutDesc:
'Современный десктопный плеер для серверов с протоколом Subsonic (Navidrome, Gonic и др.). На Tauri v2 и нативном аудиодвижке на Rust — лёгкий и быстрый: волновая шкала, синхронные тексты, Last.fm, 10-полосный EQ, кроссфейд, воспроизведение без пауз, Replay Gain, жанры и много тем оформления.',
aboutFeatures:
'Несколько серверов · Last.fm · полноэкранный режим · волна · тексты · 10 полос EQ · кроссфейд и воспроизведение без пауз · Replay Gain · жанры · десятки тем · несколько языков',
aboutLicense: 'Лицензия',
aboutLicenseText: 'GNU GPL v3 — свободное использование и изменение на тех же условиях.',
aboutRepo: 'Исходный код на GitHub',
aboutVersion: 'Версия',
aboutBuiltWith: 'Tauri · React · TypeScript · Rust/rodio',
aboutAiCredit: 'При поддержке Claude Code (Anthropic)',
aboutContributorsLabel: 'Участники',
aboutSpecialThanksLabel: 'Особая благодарность',
changelog: 'Список изменений',
showChangelogOnUpdate: 'Показывать «Что нового» после обновления',
showChangelogOnUpdateDesc: 'Автоматически при первом запуске новой версии.',
randomMixTitle: 'Случайный микс',
randomMixBlacklistTitle: 'Свои слова-фильтры',
randomMixBlacklistDesc:
'Треки скрываются, если слово встречается в жанре, названии, альбоме или исполнителе (когда включён фильтр выше).',
randomMixBlacklistPlaceholder: 'Добавить слово…',
randomMixBlacklistAdd: 'Добавить',
randomMixBlacklistEmpty: 'Пока пусто.',
randomMixHardcodedTitle: 'Встроенные слова (при включённом фильтре)',
tabAudio: 'Звук',
tabStorage: 'Хранилище и загрузки',
tabAppearance: 'Внешний вид',
homeCustomizerTitle: 'Главная',
sidebarTitle: 'Боковая панель',
sidebarReset: 'Сбросить порядок',
sidebarDrag: 'Перетащите для порядка',
sidebarFixed: 'Всегда показывать',
tabInput: 'Ввод',
tabServer: 'Сервер',
tabSystem: 'Система',
tabGeneral: 'Общие',
backupTitle: 'Резервная копия',
backupExport: 'Экспорт настроек',
backupExportDesc:
'Сохраняет настройки, серверы, Last.fm, тему, EQ и горячие клавиши в файл .psybkp. Пароли в открытом виде — храните файл в безопасности.',
backupImport: 'Импорт настроек',
backupImportDesc: 'Восстановить из .psybkp. Приложение перезапустится.',
backupImportConfirm: 'Текущие настройки будут заменены. Продолжить?',
backupSuccess: 'Копия сохранена',
backupImportSuccess: 'Настройки восстановлены — перезапуск…',
backupImportError: 'Файл повреждён или не подходит.',
shortcutsReset: 'Сбросить',
shortcutListening: 'Нажмите клавишу…',
shortcutUnbound: '—',
globalShortcutsTitle: 'Глобальные сочетания',
globalShortcutsNote:
'Работают, когда окно не в фокусе. Нужен модификатор: Ctrl, Alt или Super.',
shortcutClear: 'Сбросить',
shortcutPlayPause: 'Пауза / воспроизведение',
shortcutNext: 'Следующий трек',
shortcutPrev: 'Предыдущий трек',
shortcutVolumeUp: 'Громче',
shortcutVolumeDown: 'Тише',
shortcutSeekForward: 'Вперёд на 10 с',
shortcutSeekBackward: 'Назад на 10 с',
shortcutToggleQueue: 'Показать / скрыть очередь',
shortcutFullscreenPlayer: 'Полноэкранный плеер',
shortcutNativeFullscreen: 'Системный полный экран',
playbackTitle: 'Воспроизведение',
replayGain: 'Replay Gain',
replayGainDesc: 'Выравнивание громкости по метаданным ReplayGain',
replayGainMode: 'Режим',
replayGainTrack: 'По треку',
replayGainAlbum: 'По альбому',
crossfade: 'Кроссфейд',
crossfadeDesc: 'Плавный переход между треками',
crossfadeSecs: '{{n}} с',
notWithGapless: 'Недоступно при включённом режиме без пауз',
notWithCrossfade: 'Недоступно при включённом кроссфейде',
gapless: 'Без пауз между треками',
gaplessDesc: 'Заранее подгружать следующий трек, чтобы не было тишины',
preloadMode: 'Предзагрузка следующего трека',
preloadModeDesc: 'Когда начинать буферизацию следующего в очереди',
preloadBalanced: 'Умеренно (за 30 с до конца)',
preloadEarly: 'Рано (через 5 с после старта)',
preloadCustom: 'Свой интервал',
preloadCustomSeconds: 'Секунд до конца: {{n}}',
infiniteQueue: 'Бесконечная очередь',
infiniteQueueDesc: 'Подмешивать случайные треки, когда очередь закончится',
experimental: 'Экспериментально',
},
changelog: {
modalTitle: 'Что нового',
dontShowAgain: 'Больше не показывать',
close: 'Понятно',
},
help: {
title: 'Справка',
s1: 'С чего начать',
q1: 'Какие серверы подходят?',
a1:
'Любой с API Subsonic: Navidrome, Gonic, Subsonic, Airsonic и др. Для новых проектов чаще всего рекомендуют Navidrome.',
q2: 'Как подключиться?',
a2:
'Настройки → «Добавить сервер»: адрес (например 192.168.1.100:4533), логин и пароль. Соединение проверяется до сохранения — при ошибке профиль не записывается.',
q3: 'Можно несколько серверов?',
a3: 'Да. Добавляйте сколько нужно и переключайтесь. Активен всегда один.',
s2: 'Воспроизведение',
q4: 'Как включить музыку?',
a4:
'Двойной щелчок по треку. На странице альбома или исполнителя — «Воспроизвести всё». Треки можно перетащить в панель очереди.',
q5: 'Какие есть горячие клавиши?',
a5:
'Пробел — пауза/воспроизведение, Esc — закрыть полноэкранный плеер. Медиаклавиши работают на всех платформах; на Linux иногда удобнее кнопки в панели плеера. Свои сочетания — в Настройках.',
q6: 'Что такое очередь?',
a6:
'Список следующих треков. Открывается иконкой справа вверху. Можно перетаскивать порядок, перемешивать и сохранять как плейлист.',
q7: 'Как открыть полноэкранный плеер?',
a7: 'Миниатюра обложки внизу или кнопка разворота рядом. Esc — выход.',
q8: 'Как работает повтор?',
a8: 'Кнопка повтора в панели: выкл. → все → один трек.',
s3: 'Медиатека',
q9: 'Как скачать альбом?',
a9:
'Страница альбома → «Скачать (ZIP)». Сервер сначала собирает архив — для больших альбомов или FLAC это может занять время; прогресс появится, когда начнётся передача файла.',
q10: 'Как добавить в избранное?',
a10: 'Звёздочка у трека или в шапке альбома. Всё избранное — в разделе слева.',
q11: 'Что за карусель на главной?',
a11:
'Случайные альбомы из библиотеки, смена примерно каждые 10 с. Точки — перейти к слайду, клик по баннеру — открыть альбом.',
s4: 'Настройки',
q12: 'Как сменить тему?',
a12: 'Настройки → Тема. Много готовых наборов в нескольких категориях.',
q13: 'Как сменить язык?',
a13:
'Настройки → Язык: английский, немецкий, французский, нидерландский, китайский, норвежский, русский и русский (альтернативный, Русский 2).',
q15: 'Куда сохраняются ZIP?',
a15:
'Настройки → Поведение → папка загрузок. Без выбора используется стандартная папка загрузок браузера/системы.',
s5: 'Скробблинг',
q16: 'Как устроен скробблинг?',
a16:
'Psysonic шлёт прослушивания напрямую на Last.fm — в Navidrome ничего настраивать не нужно. Подключите аккаунт в настройках.',
q17: 'Когда уходит скроббл?',
a17: 'После прослушивания примерно половины трека.',
q22: 'Что за волна внизу?',
a22:
'Волновая шкала вместо ползунка: клик — переход, перетаскивание — перемотка. Пройденный фрагмент подсвечен, дальше — буфер и остаток.',
q24: 'Можно перемешать очередь?',
a24: 'Да. В панели очереди — кнопка перемешивания. Текущий трек остаётся первым.',
q25: 'Ссылки Last.fm и Wikipedia открываются в браузере?',
a25: 'Да, в системном браузере по умолчанию. Кратко показывается подтверждение.',
s7: 'Случайный микс',
q26: 'Что такое случайный микс?',
a26:
'Случайный набор треков из всей библиотеки. Раздел в боковой панели → «Новый микс». Число треков можно задать заранее.',
q27: 'Что за фильтр по словам?',
a27:
'Исключает треки, где в жанре, названии или альбоме есть заданные слова. Аудиокниги отсекаются автоматически. Свои слова — в настройках микса или кликом по тегу жанра в списке.',
q28: 'Что за «супер-микс» по жанру?',
a28:
'Грубая группировка стилей (рок, метал, электроника и т. д.) и микс внутри выбранной группы. Результаты подгружаются по мере запросов.',
s6: 'Если что-то не так',
q18: 'Медленно грузятся обложки.',
a18:
'Первый раз картинки тянутся с сервера и кэшируются на ~30 дней. Медленный диск на сервере даёт задержку только при первом заходе.',
q19: 'Тест соединения не проходит.',
a19:
'Проверьте адрес с портом (http://192.168.1.100:4533), файрвол, для локалки иногда нужен http вместо https. Логин и пароль должны совпадать с сервером.',
q20: 'Нет звука в Linux.',
a20:
'Есть пакеты .deb, .rpm и AUR. Убедитесь, что запущены PipeWire или PulseAudio.',
q21: 'Чёрный экран в Linux.',
a21:
'Часто драйвер GPU / WebKitGTK. Запуск с GDK_BACKEND=x11 WEBKIT_DISABLE_COMPOSITING_MODE=1 WEBKIT_DISABLE_DMABUF_RENDERER=1. В официальных пакетах это часто уже задано.',
q29: 'Кроссфейд и воспроизведение без пауз?',
a29:
'Экспериментальные опции в Настройках → Звук. Режим без пауз заранее подгружает следующий трек. Кроссфейд плавно накладывает треки, длина 1–10 с.',
q30: 'Есть тексты песен?',
a30:
'Да. Иконка микрофона в панели плеера — вкладка текстов в очереди. Источник LRCLIB; синхронные строки подсвечиваются по ходу трека.',
q31: 'Можно переназначить клавиши?',
a31: 'Да: Настройки → сочетания в приложении и глобальные (работают в фоне).',
q32: 'Можно сменить шрифт?',
a32: 'Да, в настройках шрифта — набор гарнитур на весь интерфейс.',
s8: 'Офлайн',
q34: 'Что такое офлайн-режим?',
a34:
'Кэш альбомов на устройстве для прослушивания без сервера. Воспроизведение идёт с диска.',
q35: 'Как сохранить альбом офлайн?',
a35:
'Страница альбома → иконка загрузки в шапке. Прогресс на кнопке, после загрузки — индикатор готовности. Список — в офлайн-библиотеке.',
q36: 'Сколько места занимает офлайн?',
a36:
'Лимит задаётся в настройках. При переполнении на странице альбома появится предупреждение; удалить можно из офлайн-библиотеки.',
},
queue: {
title: 'Очередь',
savePlaylist: 'Сохранить как плейлист',
updatePlaylist: 'Обновить плейлист',
filterPlaylists: 'Фильтр плейлистов…',
playlistName: 'Название плейлиста',
cancel: 'Отмена',
save: 'Сохранить',
loadPlaylist: 'Загрузить плейлист',
loading: 'Загрузка…',
noPlaylists: 'Плейлистов нет.',
load: 'Заменить очередь и играть',
appendToQueue: 'Добавить в очередь',
delete: 'Удалить',
deleteConfirm: 'Удалить плейлист «{{name}}»?',
clear: 'Очистить',
shuffle: 'Перемешать',
gapless: 'Без пауз',
crossfade: 'Кроссфейд',
infiniteQueue: 'Бесконечная очередь',
autoAdded: '— Добавлено автоматически —',
radioAdded: '— Радио —',
hide: 'Скрыть',
close: 'Закрыть',
nextTracks: 'Дальше',
emptyQueue: 'Очередь пуста.',
trackSingular: 'трек',
trackPlural: 'треков',
showRemaining: 'Осталось',
showTotal: 'Всего',
},
statistics: {
title: 'Статистика',
recentlyPlayed: 'Недавно проиграно',
mostPlayed: 'Самые проигранные альбомы',
highestRated: 'С высоким рейтингом',
genreDistribution: 'Жанры (топ-20)',
loadMore: 'Ещё',
statArtists: 'Исполнители',
statAlbums: 'Альбомы',
statSongs: 'Треки',
statGenres: 'Жанры',
statPlaytime: 'Всего прослушано',
genreInsights: 'Жанры подробнее',
formatDistribution: 'Форматы',
formatSample: 'Выборка {{n}} треков',
computing: 'Считаем…',
genreSongs_one: '{{count}} композиция',
genreSongs_few: '{{count}} композиции',
genreSongs_many: '{{count}} композиций',
genreSongs_other: '{{count}} композиций',
genreAlbums_one: '{{count}} альбом',
genreAlbums_few: '{{count}} альбома',
genreAlbums_many: '{{count}} альбомов',
genreAlbums_other: '{{count}} альбомов',
recentlyAdded: 'Недавно добавлено',
decadeDistribution: 'Альбомы по десятилетиям',
decadeAlbums_one: '{{count}} альбом',
decadeAlbums_few: '{{count}} альбома',
decadeAlbums_many: '{{count}} альбомов',
decadeAlbums_other: '{{count}} альбомов',
decadeUnknown: 'Неизвестно',
lfmTitle: 'Статистика Last.fm',
lfmTopArtists: 'Топ исполнителей',
lfmTopAlbums: 'Топ альбомов',
lfmTopTracks: 'Топ треков',
lfmPlays_one: '{{count}} прослушивание',
lfmPlays_few: '{{count}} прослушивания',
lfmPlays_many: '{{count}} прослушиваний',
lfmPlays_other: '{{count}} прослушиваний',
lfmPeriodOverall: 'За всё время',
lfmPeriod7day: '7 дней',
lfmPeriod1month: 'Месяц',
lfmPeriod3month: '3 месяца',
lfmPeriod6month: '6 месяцев',
lfmPeriod12month: 'Год',
lfmNotConnected: 'Подключите Last.fm в настройках.',
lfmRecentTracks: 'Последние скробблы',
lfmNowPlaying: 'Сейчас играет',
lfmJustNow: 'только что',
lfmMinutesAgo: '{{n}} мин назад',
lfmHoursAgo: '{{n}} ч назад',
lfmDaysAgo: '{{n}} дн. назад',
},
player: {
regionLabel: 'Плеер',
openFullscreen: 'Полноэкранный плеер',
fullscreen: 'Полноэкранный режим',
closeFullscreen: 'Выйти из полноэкранного',
closeTooltip: 'Закрыть (Esc)',
noTitle: 'Без названия',
stop: 'Стоп',
prev: 'Предыдущий трек',
play: 'Играть',
pause: 'Пауза',
next: 'Следующий трек',
repeat: 'Повтор',
repeatOff: 'Выкл.',
repeatAll: 'Все',
repeatOne: 'Один',
progress: 'Прогресс',
volume: 'Громкость',
toggleQueue: 'Очередь',
lyrics: 'Текст',
lyricsLoading: 'Загрузка текста…',
lyricsNotFound: 'Текст не найден',
},
songInfo: {
title: 'О треке',
songTitle: 'Название',
artist: 'Исполнитель',
album: 'Альбом',
albumArtist: 'Альбомный исполнитель',
year: 'Год',
genre: 'Жанр',
duration: 'Длительность',
track: 'Номер',
format: 'Формат',
bitrate: 'Битрейт',
sampleRate: 'Частота',
bitDepth: 'Разрядность',
channels: 'Каналы',
fileSize: 'Размер файла',
path: 'Путь',
replayGainTrack: 'RG по треку',
replayGainAlbum: 'RG по альбому',
replayGainPeak: 'Пик RG',
mono: 'Моно',
stereo: 'Стерео',
},
playlists: {
title: 'Плейлисты',
newPlaylist: 'Новый плейлист',
unnamed: 'Без названия',
createName: 'Название…',
create: 'Создать',
cancel: 'Отмена',
empty: 'Плейлистов пока нет.',
emptyPlaylist: 'Плейлист пуст.',
addFirstSong: 'Добавьте первый трек',
notFound: 'Плейлист не найден.',
songs: 'Треков: {{n}}',
playAll: 'Воспроизвести всё',
shuffle: 'Перемешать',
addToQueue: 'В очередь',
back: 'К списку плейлистов',
deletePlaylist: 'Удалить',
confirmDelete: 'Нажмите ещё раз для подтверждения',
removeSong: 'Убрать из плейлиста',
addSongs: 'Добавить треки',
searchPlaceholder: 'Поиск по библиотеке…',
noResults: 'Ничего не найдено.',
suggestions: 'Рекомендации',
noSuggestions: 'Пока нет рекомендаций.',
titleBadge: 'Плейлист',
refreshSuggestions: 'Обновить подборку',
addSong: 'В плейлист',
cacheOffline: 'Сохранить плейлист офлайн',
offlineCached: 'Плейлист сохранён',
offlineDownloading: 'Кэширование… ({{done}} из {{total}} альбомов)',
publicLabel: 'Публичный',
privateLabel: 'Личный',
editMeta: 'Изменить плейлист',
editNamePlaceholder: 'Название…',
editCommentPlaceholder: 'Описание…',
editPublic: 'Публичный плейлист',
editSave: 'Сохранить',
editCancel: 'Отмена',
changeCover: 'Сменить обложку',
changeCoverLabel: 'Сменить фото',
removeCover: 'Убрать фото',
coverUpdated: 'Обложка обновлена',
metaSaved: 'Плейлист сохранён',
},
radio: {
title: 'Онлайн-радио',
empty: 'Радиостанции не настроены.',
addStation: 'Добавить станцию',
editStation: 'Изменить',
deleteStation: 'Удалить станцию',
confirmDelete: 'Нажмите ещё раз для подтверждения',
stationName: 'Название станции…',
streamUrl: 'URL потока…',
homepageUrl: 'Сайт станции (необязательно)',
save: 'Сохранить',
cancel: 'Отмена',
live: 'ЭФИР',
liveStream: 'Онлайн-радио',
openHomepage: 'Открыть сайт',
changeCoverLabel: 'Сменить обложку',
removeCover: 'Убрать обложку',
browseDirectory: 'Каталог станций',
directoryPlaceholder: 'Поиск станций…',
noResults: 'Станции не найдены.',
stationAdded: 'Станция добавлена',
filterAll: 'Все',
filterFavorites: 'Избранное',
sortManual: 'Вручную',
sortAZ: 'А → Я',
sortZA: 'Я → А',
sortNewest: 'Сначала новые',
favorite: 'В избранное',
unfavorite: 'Убрать из избранного',
noFavorites: 'Избранных станций нет.',
},
};