mirror of
https://github.com/kilyabin/psysonic.git
synced 2026-07-21 22:15:40 +00:00
6226383762
Co-authored-by: Psychotoxical <dev@psysonic.app>
852 lines
46 KiB
TypeScript
852 lines
46 KiB
TypeScript
/** 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: 'Избранных станций нет.',
|
||
},
|
||
};
|