Files
Psychotoxical-psysonic/src/locales/ru/playlists.ts
T
cucadmuh f3a0b3f7af fix(artist-detail): Last.fm/Wikipedia/Favorite hover keeps button border (#966)
* fix(artist-detail): keep ext-link border visible on hover

Hover used --border-subtle, which on Catppuccin matches --bg-card and
visually erased the rim while only the fill changed. Match btn-surface:
--ctp-surface1 border, --ctp-overlay0 on hover.

* docs(changelog): credit zunoz on Psysonic Discord for PR #966

* fix(playlists): tooltips on Play/Add Songs and song count pluralization

Add data-tooltip to Play and Add Songs in playlist hero; switch
playlists.songs to count-based _one/_other forms (was {{n}} without
i18next plural suffix, breaking spacing and singular).

* fix(playlists): render BPM and optional cols in Suggested Songs rows

PlaylistSuggestions shared column headers with the main tracklist but
its row switch omitted bpm, genre, playCount, and lastPlayed.
2026-06-03 23:19:51 +03:00

105 lines
6.0 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
export const playlists = {
title: 'Плейлисты',
newPlaylist: 'Новый плейлист',
unnamed: 'Без названия',
createName: 'Название…',
create: 'Создать',
cancel: 'Отмена',
empty: 'Плейлистов пока нет.',
emptyPlaylist: 'Плейлист пуст.',
addFirstSong: 'Добавьте первый трек',
notFound: 'Плейлист не найден.',
songs_one: '{{count}} трек',
songs_other: '{{count}} треков',
playAll: 'Воспроизвести всё',
playTooltip: 'Воспроизвести плейлист',
shuffle: 'Перемешать',
addToQueue: 'В очередь',
back: 'К списку плейлистов',
deletePlaylist: 'Удалить',
confirmDelete: 'Нажмите ещё раз для подтверждения',
removeSong: 'Убрать из плейлиста',
addSongs: 'Добавить треки',
addSongsTooltip: 'Найти треки в библиотеке и добавить в плейлист',
searchPlaceholder: 'Поиск по библиотеке…',
noResults: 'Ничего не найдено.',
suggestions: 'Рекомендации',
noSuggestions: 'Пока нет рекомендаций.',
titleBadge: 'Плейлист',
refreshSuggestions: 'Обновить подборку',
addSong: 'В плейлист',
preview: 'Превью (30 с)',
previewStop: 'Остановить превью',
playNextSuggestion: 'Играть следующим',
suggestionsHint: 'Двойной клик по строке — добавить в плейлист',
addSelected: 'Добавить выбранные',
cacheOffline: 'Сохранить плейлист офлайн',
offlineCached: 'Плейлист сохранён',
removeOffline: 'Удалить из офлайн-кэша',
offlineDownloading: 'Кэширование… ({{done}} из {{total}} альбомов)',
publicLabel: 'Публичный',
privateLabel: 'Личный',
editMeta: 'Изменить плейлист',
editNamePlaceholder: 'Название…',
editCommentPlaceholder: 'Описание…',
editPublic: 'Публичный плейлист',
editSave: 'Сохранить',
editCancel: 'Отмена',
changeCover: 'Сменить обложку',
changeCoverLabel: 'Сменить фото',
removeCover: 'Убрать фото',
coverUpdated: 'Обложка обновлена',
metaSaved: 'Плейлист сохранён',
downloadZip: 'Скачать (ZIP)',
// Toast notifications for multi-select
addSuccess: '{{count}} треков добавлено в {{playlist}}',
addPartial: '{{added}} добавлено, {{skipped}} пропущено (дубликаты)',
addAllSkipped: 'Все пропущены ({{count}} дубликатов)',
addedAsDuplicates: '{{count}} треков добавлено в {{playlist}} (как дубликаты)',
duplicateConfirmTitle: 'Уже в плейлисте',
duplicateConfirmMessage: 'Все {{count}} треков уже есть в «{{playlist}}». Всё равно добавить их как дубликаты?',
duplicateConfirmAction: 'Всё равно добавить',
addError: 'Ошибка при добавлении треков',
createAndAddSuccess: 'Плейлист "{{playlist}}" создан с {{count}} треками',
createError: 'Ошибка при создании плейлиста',
deleteSuccess: '{{count}} плейлистов удалено',
deleteFailed: 'Ошибка при удалении {{name}}',
deleteSelected: 'Удалить выбранные',
deleteSelectedPartial: 'Можно удалить только {{n}} из {{total}} выбранных плейлистов (остальные принадлежат другим пользователям).',
mergeSuccess: '{{count}} треков объединено в {{playlist}}',
mergeNoNewSongs: 'Нет новых треков для добавления',
mergeError: 'Ошибка при объединении плейлистов',
mergeInto: 'Объединить в',
selectionCount: '{{count}} выбрано',
select: 'Выбрать',
startSelect: 'Включить выбор',
cancelSelect: 'Отмена',
loadingAlbums: 'Загрузка {{count}} альбомов…',
loadingArtists: 'Загрузка {{count}} исполнителей…',
myPlaylists: 'Мои плейлисты',
noOtherPlaylists: 'Нет других доступных плейлистов',
addToPlaylistSuccess: '{{count}} треков добавлено в {{playlist}}',
addToPlaylistNoNew: 'Нет новых треков для {{playlist}}',
addToPlaylistError: 'Ошибка при добавлении в плейлист',
removeSuccess: 'Трек убран из плейлиста',
removeError: 'Ошибка при удалении из плейлиста',
importCSV: 'Импорт CSV',
importCSVTooltip: 'Импорт из CSV Spotify',
csvImportReport: 'Отчёт об импорте CSV',
csvImportTotal: 'Всего',
csvImportAdded: 'Добавлено',
csvImportDuplicates: 'Дубликаты',
csvImportNotFound: 'Не найдено',
csvImportNetworkErrors: 'Ошибки сети',
csvImportDuplicatesTitle: 'Дубликаты (уже в плейлисте):',
csvImportNotFoundTitle: 'Не найденные треки:',
csvImportNetworkErrorsTitle: 'Ошибки сети (можно повторить импорт):',
csvImportDownloadReport: 'Скачать отчёт',
csvImportClose: 'Закрыть',
csvImportNoValidTracks: 'В CSV-файле не найдено действительных треков',
csvImportFailed: 'Не удалось импортировать CSV-файл',
csvImportToast: '{{added}} добавлено, {{notFound}} не найдено, {{duplicates}} дубликатов',
csvImportDownloadSuccess: 'Отчёт успешно скачан',
csvImportDownloadError: 'Не удалось скачать отчёт',
};