mirror of
https://github.com/zarzet/SpotiFLAC-Mobile.git
synced 2026-07-24 21:11:05 +02:00
7b7ee523fd
[ci skip]
6208 lines
234 KiB
Plaintext
6208 lines
234 KiB
Plaintext
{
|
||
"@@locale": "ru",
|
||
"@@last_modified": "2026-04-28",
|
||
"appName": "Spotify",
|
||
"@appName": {
|
||
"description": "App name - DO NOT TRANSLATE"
|
||
},
|
||
"navHome": "Главная",
|
||
"@navHome": {
|
||
"description": "Bottom navigation - Home tab"
|
||
},
|
||
"navLibrary": "Библиотека",
|
||
"@navLibrary": {
|
||
"description": "Bottom navigation - Library tab"
|
||
},
|
||
"navSettings": "Настройки",
|
||
"@navSettings": {
|
||
"description": "Bottom navigation - Settings tab"
|
||
},
|
||
"navStore": "Репозиторий",
|
||
"@navStore": {
|
||
"description": "Bottom navigation - Extension store tab"
|
||
},
|
||
"homeTitle": "Главная",
|
||
"@homeTitle": {
|
||
"description": "Home screen title"
|
||
},
|
||
"homeSubtitle": "Вставьте URL или ищите по названию",
|
||
"@homeSubtitle": {
|
||
"description": "Subtitle shown below search box"
|
||
},
|
||
"homeEmptyTitle": "No search providers yet",
|
||
"@homeEmptyTitle": {
|
||
"description": "Title shown on home when no providers are available yet"
|
||
},
|
||
"homeEmptySubtitle": "Install an extension to continue.",
|
||
"@homeEmptySubtitle": {
|
||
"description": "Subtitle shown on home when no providers are available yet"
|
||
},
|
||
"homeSupports": "Поддерживается: Трек, Альбом, Плейлист, URL исполнителя",
|
||
"@homeSupports": {
|
||
"description": "Info text about supported URL types"
|
||
},
|
||
"homeRecent": "Недавние",
|
||
"@homeRecent": {
|
||
"description": "Section header for recent searches"
|
||
},
|
||
"historyFilterAll": "Все",
|
||
"@historyFilterAll": {
|
||
"description": "Filter chip - show all items"
|
||
},
|
||
"historyFilterAlbums": "Альбомы",
|
||
"@historyFilterAlbums": {
|
||
"description": "Filter chip - show albums only"
|
||
},
|
||
"historyFilterSingles": "Синглы",
|
||
"@historyFilterSingles": {
|
||
"description": "Filter chip - show singles only"
|
||
},
|
||
"historySearchHint": "Поиск в истории...",
|
||
"@historySearchHint": {
|
||
"description": "Search bar placeholder in history"
|
||
},
|
||
"settingsTitle": "Настройки",
|
||
"@settingsTitle": {
|
||
"description": "Settings screen title"
|
||
},
|
||
"settingsDownload": "Скачивание",
|
||
"@settingsDownload": {
|
||
"description": "Settings section - download options"
|
||
},
|
||
"settingsAppearance": "Внешний вид",
|
||
"@settingsAppearance": {
|
||
"description": "Settings section - visual customization"
|
||
},
|
||
"settingsOptions": "Опции",
|
||
"@settingsOptions": {
|
||
"description": "Settings section - app options"
|
||
},
|
||
"settingsExtensions": "Расширения",
|
||
"@settingsExtensions": {
|
||
"description": "Settings section - extension management"
|
||
},
|
||
"settingsAbout": "О программе",
|
||
"@settingsAbout": {
|
||
"description": "Settings section - app info"
|
||
},
|
||
"downloadTitle": "Скачать",
|
||
"@downloadTitle": {
|
||
"description": "Download settings page title"
|
||
},
|
||
"downloadAskQualitySubtitle": "Показывать выбор качества для каждого скачивания",
|
||
"@downloadAskQualitySubtitle": {
|
||
"description": "Subtitle for ask quality toggle"
|
||
},
|
||
"downloadFilenameFormat": "Формат имени файла",
|
||
"@downloadFilenameFormat": {
|
||
"description": "Setting for output filename pattern"
|
||
},
|
||
"downloadSingleFilenameFormat": "Формат имени файла",
|
||
"@downloadSingleFilenameFormat": {
|
||
"description": "Setting for output filename pattern for singles/EPs"
|
||
},
|
||
"downloadSingleFilenameFormatDescription": "Формат имени файла для синглов и EP. Используются те же теги, что и для альбомов.",
|
||
"@downloadSingleFilenameFormatDescription": {
|
||
"description": "Subtitle description for single filename format setting"
|
||
},
|
||
"downloadFolderOrganization": "Организация папок",
|
||
"@downloadFolderOrganization": {
|
||
"description": "Title of the folder organization picker bottom sheet"
|
||
},
|
||
"appearanceTitle": "Внешний вид",
|
||
"@appearanceTitle": {
|
||
"description": "Appearance settings page title"
|
||
},
|
||
"appearanceThemeSystem": "Системная",
|
||
"@appearanceThemeSystem": {
|
||
"description": "Follow system theme"
|
||
},
|
||
"appearanceThemeLight": "Светлая",
|
||
"@appearanceThemeLight": {
|
||
"description": "Light theme"
|
||
},
|
||
"appearanceThemeDark": "Тёмная",
|
||
"@appearanceThemeDark": {
|
||
"description": "Dark theme"
|
||
},
|
||
"appearanceDynamicColor": "Динамический цвет",
|
||
"@appearanceDynamicColor": {
|
||
"description": "Material You dynamic colors"
|
||
},
|
||
"appearanceDynamicColorSubtitle": "Использовать цвета из ваших обоев",
|
||
"@appearanceDynamicColorSubtitle": {
|
||
"description": "Subtitle for dynamic color"
|
||
},
|
||
"appearanceHistoryView": "Отображение истории",
|
||
"@appearanceHistoryView": {
|
||
"description": "Layout style for history"
|
||
},
|
||
"appearanceHistoryViewList": "Список",
|
||
"@appearanceHistoryViewList": {
|
||
"description": "List layout option"
|
||
},
|
||
"appearanceHistoryViewGrid": "Сетка",
|
||
"@appearanceHistoryViewGrid": {
|
||
"description": "Grid layout option"
|
||
},
|
||
"optionsTitle": "Опции",
|
||
"@optionsTitle": {
|
||
"description": "Options settings page title"
|
||
},
|
||
"optionsPrimaryProvider": "Основной провайдер",
|
||
"@optionsPrimaryProvider": {
|
||
"description": "Main search provider setting"
|
||
},
|
||
"optionsPrimaryProviderSubtitle": "Сервис для поиска по названию трека или альбома",
|
||
"@optionsPrimaryProviderSubtitle": {
|
||
"description": "Subtitle for primary provider"
|
||
},
|
||
"optionsUsingExtension": "Используется расширение: {extensionName}",
|
||
"@optionsUsingExtension": {
|
||
"description": "Shows active extension name",
|
||
"placeholders": {
|
||
"extensionName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"optionsDefaultSearchTab": "Вкладка поиска по умолчанию",
|
||
"@optionsDefaultSearchTab": {
|
||
"description": "Title for the preferred default search tab setting"
|
||
},
|
||
"optionsDefaultSearchTabSubtitle": "Choose which tab opens first for new search results.",
|
||
"@optionsDefaultSearchTabSubtitle": {
|
||
"description": "Subtitle for the preferred default search tab setting"
|
||
},
|
||
"optionsSwitchBack": "Choose the default search provider to switch back from an extension",
|
||
"@optionsSwitchBack": {
|
||
"description": "Hint to switch back from extension search"
|
||
},
|
||
"optionsAutoFallback": "Автоматический переход",
|
||
"@optionsAutoFallback": {
|
||
"description": "Auto-retry with other services"
|
||
},
|
||
"optionsAutoFallbackSubtitle": "Попробовать другие сервисы при сбое загрузки",
|
||
"@optionsAutoFallbackSubtitle": {
|
||
"description": "Subtitle for auto fallback"
|
||
},
|
||
"optionsUseExtensionProviders": "Использовать провайдера расширений",
|
||
"@optionsUseExtensionProviders": {
|
||
"description": "Legacy setting label for extension download providers"
|
||
},
|
||
"optionsUseExtensionProvidersOn": "Extension providers are enabled",
|
||
"@optionsUseExtensionProvidersOn": {
|
||
"description": "Status when extension providers enabled"
|
||
},
|
||
"optionsUseExtensionProvidersOff": "Extension providers are required",
|
||
"@optionsUseExtensionProvidersOff": {
|
||
"description": "Legacy status when extension providers would be disabled"
|
||
},
|
||
"optionsEmbedLyrics": "Вписать текст песни",
|
||
"@optionsEmbedLyrics": {
|
||
"description": "Embed lyrics in audio files"
|
||
},
|
||
"optionsEmbedLyricsSubtitle": "Сохранять синхронизированный текст песни рядом с загруженным треком",
|
||
"@optionsEmbedLyricsSubtitle": {
|
||
"description": "Subtitle for embed lyrics"
|
||
},
|
||
"optionsMaxQualityCover": "Максимальное качество обложки",
|
||
"@optionsMaxQualityCover": {
|
||
"description": "Download highest quality album art"
|
||
},
|
||
"optionsMaxQualityCoverSubtitle": "Скачивать обложку в макс. разрешении",
|
||
"@optionsMaxQualityCoverSubtitle": {
|
||
"description": "Subtitle for max quality cover"
|
||
},
|
||
"optionsReplayGain": "ReplayGain",
|
||
"@optionsReplayGain": {
|
||
"description": "Title for ReplayGain setting toggle"
|
||
},
|
||
"optionsReplayGainSubtitleOn": "Scan loudness and embed ReplayGain tags (EBU R128)",
|
||
"@optionsReplayGainSubtitleOn": {
|
||
"description": "Subtitle when ReplayGain is enabled"
|
||
},
|
||
"optionsReplayGainSubtitleOff": "Disabled: no loudness normalization tags",
|
||
"@optionsReplayGainSubtitleOff": {
|
||
"description": "Subtitle when ReplayGain is disabled"
|
||
},
|
||
"trackReplayGain": "Rescan ReplayGain",
|
||
"@trackReplayGain": {
|
||
"description": "Three-dot menu option to scan loudness and write ReplayGain tags"
|
||
},
|
||
"trackReplayGainSubtitle": "Analyze loudness and write ReplayGain tags",
|
||
"@trackReplayGainSubtitle": {
|
||
"description": "Subtitle for the rescan ReplayGain menu option"
|
||
},
|
||
"trackReplayGainScanning": "Analyzing loudness...",
|
||
"@trackReplayGainScanning": {
|
||
"description": "Snackbar/progress message while scanning ReplayGain for a single track"
|
||
},
|
||
"trackReplayGainSuccess": "ReplayGain tags added",
|
||
"@trackReplayGainSuccess": {
|
||
"description": "Snackbar message after ReplayGain tags written for a single track"
|
||
},
|
||
"trackReplayGainFailed": "Failed to add ReplayGain tags",
|
||
"@trackReplayGainFailed": {
|
||
"description": "Snackbar message when ReplayGain scan/write fails"
|
||
},
|
||
"selectionReplayGainCount": "ReplayGain ({count})",
|
||
"@selectionReplayGainCount": {
|
||
"description": "Batch selection action button label for ReplayGain",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"replayGainBatchConfirmTitle": "Add ReplayGain",
|
||
"@replayGainBatchConfirmTitle": {
|
||
"description": "Title of the batch ReplayGain confirmation dialog"
|
||
},
|
||
"replayGainBatchConfirmMessage": "Analyze loudness and write ReplayGain tags to {count} track(s)?",
|
||
"@replayGainBatchConfirmMessage": {
|
||
"description": "Message of the batch ReplayGain confirmation dialog",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"replayGainBatchAnalyzing": "Analyzing ReplayGain...",
|
||
"@replayGainBatchAnalyzing": {
|
||
"description": "Progress dialog title while batch scanning ReplayGain"
|
||
},
|
||
"replayGainBatchSuccess": "ReplayGain added to {success} of {total} tracks",
|
||
"@replayGainBatchSuccess": {
|
||
"description": "Snackbar after batch ReplayGain completes",
|
||
"placeholders": {
|
||
"success": {
|
||
"type": "int"
|
||
},
|
||
"total": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"optionsArtistTagMode": "Artist Tag Mode",
|
||
"@optionsArtistTagMode": {
|
||
"description": "Setting title for how artist metadata is written into files"
|
||
},
|
||
"optionsArtistTagModeDescription": "Choose how multiple artists are written into embedded tags.",
|
||
"@optionsArtistTagModeDescription": {
|
||
"description": "Bottom-sheet description for artist tag mode setting"
|
||
},
|
||
"optionsArtistTagModeJoined": "Single joined value",
|
||
"@optionsArtistTagModeJoined": {
|
||
"description": "Artist tag mode option that joins multiple artists into one value"
|
||
},
|
||
"optionsArtistTagModeJoinedSubtitle": "Write one ARTIST value like \"Artist A, Artist B\" for maximum player compatibility.",
|
||
"@optionsArtistTagModeJoinedSubtitle": {
|
||
"description": "Subtitle for joined artist tag mode"
|
||
},
|
||
"optionsArtistTagModeSplitVorbis": "Split tags for FLAC/Opus",
|
||
"@optionsArtistTagModeSplitVorbis": {
|
||
"description": "Artist tag mode option that writes repeated ARTIST tags for Vorbis formats"
|
||
},
|
||
"optionsArtistTagModeSplitVorbisSubtitle": "Write one artist tag per artist for FLAC and Opus; MP3 and M4A stay joined.",
|
||
"@optionsArtistTagModeSplitVorbisSubtitle": {
|
||
"description": "Subtitle for split Vorbis artist tag mode"
|
||
},
|
||
"optionsExtensionStore": "Репозиторий расширения",
|
||
"@optionsExtensionStore": {
|
||
"description": "Show/hide store tab"
|
||
},
|
||
"optionsExtensionStoreSubtitle": "Show Repo tab in navigation",
|
||
"@optionsExtensionStoreSubtitle": {
|
||
"description": "Subtitle for extension store toggle"
|
||
},
|
||
"optionsCheckUpdates": "Проверить обновления",
|
||
"@optionsCheckUpdates": {
|
||
"description": "Auto update check toggle"
|
||
},
|
||
"optionsCheckUpdatesSubtitle": "Уведомлять о наличии новой версии",
|
||
"@optionsCheckUpdatesSubtitle": {
|
||
"description": "Subtitle for update check"
|
||
},
|
||
"optionsUpdateChannel": "Канал обновлений",
|
||
"@optionsUpdateChannel": {
|
||
"description": "Stable vs preview releases"
|
||
},
|
||
"optionsUpdateChannelStable": "Только стабильные релизы",
|
||
"@optionsUpdateChannelStable": {
|
||
"description": "Only stable updates"
|
||
},
|
||
"optionsUpdateChannelPreview": "Предварительные версии",
|
||
"@optionsUpdateChannelPreview": {
|
||
"description": "Include beta/preview updates"
|
||
},
|
||
"optionsUpdateChannelWarning": "Предварительная версия может содержать ошибки или неполные функции",
|
||
"@optionsUpdateChannelWarning": {
|
||
"description": "Warning about preview channel"
|
||
},
|
||
"optionsClearHistory": "Очистить историю загрузок",
|
||
"@optionsClearHistory": {
|
||
"description": "Delete all download history"
|
||
},
|
||
"optionsClearHistorySubtitle": "Удалить все скачанные треки из истории",
|
||
"@optionsClearHistorySubtitle": {
|
||
"description": "Subtitle for clear history"
|
||
},
|
||
"optionsDetailedLogging": "Подробный лог",
|
||
"@optionsDetailedLogging": {
|
||
"description": "Enable verbose logs for debugging"
|
||
},
|
||
"optionsDetailedLoggingOn": "Ведутся подробные логи",
|
||
"@optionsDetailedLoggingOn": {
|
||
"description": "Status when logging enabled"
|
||
},
|
||
"optionsDetailedLoggingOff": "Включить для отчётов об ошибках",
|
||
"@optionsDetailedLoggingOff": {
|
||
"description": "Status when logging disabled"
|
||
},
|
||
"optionsSpotifyCredentials": "Учётные данные Spotify",
|
||
"@optionsSpotifyCredentials": {
|
||
"description": "Spotify API credentials setting"
|
||
},
|
||
"optionsSpotifyCredentialsConfigured": "Client ID: {clientId}...",
|
||
"@optionsSpotifyCredentialsConfigured": {
|
||
"description": "Shows configured client ID preview",
|
||
"placeholders": {
|
||
"clientId": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"optionsSpotifyCredentialsRequired": "Необходимо - нажмите для настройки",
|
||
"@optionsSpotifyCredentialsRequired": {
|
||
"description": "Prompt to set up credentials"
|
||
},
|
||
"optionsSpotifyWarning": "Spotify требует ваши собственные учетные данные API. Получите их бесплатно на сайте developer.spotify.com",
|
||
"@optionsSpotifyWarning": {
|
||
"description": "Info about Spotify API requirement"
|
||
},
|
||
"optionsSpotifyDeprecationWarning": "Поиск Spotify устареет 3 марта 2026 года из-за изменений Spotify API. Пожалуйста, перейдите на Deezer.",
|
||
"@optionsSpotifyDeprecationWarning": {
|
||
"description": "Warning about Spotify API deprecation"
|
||
},
|
||
"extensionsTitle": "Расширения",
|
||
"@extensionsTitle": {
|
||
"description": "Extensions page title"
|
||
},
|
||
"extensionsDisabled": "Выключено",
|
||
"@extensionsDisabled": {
|
||
"description": "Extension status - inactive"
|
||
},
|
||
"extensionsVersion": "Версия {version}",
|
||
"@extensionsVersion": {
|
||
"description": "Extension version display",
|
||
"placeholders": {
|
||
"version": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"extensionsAuthor": "от {author}",
|
||
"@extensionsAuthor": {
|
||
"description": "Extension author credit",
|
||
"placeholders": {
|
||
"author": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"extensionsUninstall": "Удалить",
|
||
"@extensionsUninstall": {
|
||
"description": "Uninstall extension button"
|
||
},
|
||
"storeTitle": "Репозиторий расширения",
|
||
"@storeTitle": {
|
||
"description": "Store screen title"
|
||
},
|
||
"storeSearch": "Поиск расширений...",
|
||
"@storeSearch": {
|
||
"description": "Store search placeholder"
|
||
},
|
||
"storeInstall": "Установить",
|
||
"@storeInstall": {
|
||
"description": "Install extension button"
|
||
},
|
||
"storeInstalled": "Установлено",
|
||
"@storeInstalled": {
|
||
"description": "Already installed badge"
|
||
},
|
||
"storeUpdate": "Обновить",
|
||
"@storeUpdate": {
|
||
"description": "Update available button"
|
||
},
|
||
"aboutTitle": "О программе",
|
||
"@aboutTitle": {
|
||
"description": "About page title"
|
||
},
|
||
"aboutContributors": "Участники",
|
||
"@aboutContributors": {
|
||
"description": "Section for contributors"
|
||
},
|
||
"aboutMobileDeveloper": "Разработчик мобильной версии",
|
||
"@aboutMobileDeveloper": {
|
||
"description": "Role description for mobile dev"
|
||
},
|
||
"aboutOriginalCreator": "Создатель оригинального SpotiFLAC",
|
||
"@aboutOriginalCreator": {
|
||
"description": "Role description for original creator"
|
||
},
|
||
"aboutLogoArtist": "Талантливый художник, который создал наш красивый логотип приложения!",
|
||
"@aboutLogoArtist": {
|
||
"description": "Role description for logo artist"
|
||
},
|
||
"aboutTranslators": "Переводчики",
|
||
"@aboutTranslators": {
|
||
"description": "Section for translators"
|
||
},
|
||
"aboutSpecialThanks": "Особая благодарность",
|
||
"@aboutSpecialThanks": {
|
||
"description": "Section for special thanks"
|
||
},
|
||
"aboutLinks": "Ссылки",
|
||
"@aboutLinks": {
|
||
"description": "Section for external links"
|
||
},
|
||
"aboutMobileSource": "Исходный код мобильной версии",
|
||
"@aboutMobileSource": {
|
||
"description": "Link to mobile GitHub repo"
|
||
},
|
||
"aboutPCSource": "Исходный код ПК версии",
|
||
"@aboutPCSource": {
|
||
"description": "Link to PC GitHub repo"
|
||
},
|
||
"aboutKeepAndroidOpen": "Keep Android Open",
|
||
"@aboutKeepAndroidOpen": {
|
||
"description": "Link to Keep Android Open campaign website"
|
||
},
|
||
"aboutReportIssue": "Сообщить о проблеме",
|
||
"@aboutReportIssue": {
|
||
"description": "Link to report bugs"
|
||
},
|
||
"aboutReportIssueSubtitle": "Сообщите о возникших проблемах",
|
||
"@aboutReportIssueSubtitle": {
|
||
"description": "Subtitle for report issue"
|
||
},
|
||
"aboutFeatureRequest": "Предложить новую функцию",
|
||
"@aboutFeatureRequest": {
|
||
"description": "Link to suggest features"
|
||
},
|
||
"aboutFeatureRequestSubtitle": "Предложить новые функции для приложения",
|
||
"@aboutFeatureRequestSubtitle": {
|
||
"description": "Subtitle for feature request"
|
||
},
|
||
"aboutTelegramChannel": "Telegram канал",
|
||
"@aboutTelegramChannel": {
|
||
"description": "Link to Telegram channel"
|
||
},
|
||
"aboutTelegramChannelSubtitle": "Объявления и обновления",
|
||
"@aboutTelegramChannelSubtitle": {
|
||
"description": "Subtitle for Telegram channel"
|
||
},
|
||
"aboutTelegramChat": "Сообщество в Telegram",
|
||
"@aboutTelegramChat": {
|
||
"description": "Link to Telegram chat group"
|
||
},
|
||
"aboutTelegramChatSubtitle": "Чат с другими пользователями",
|
||
"@aboutTelegramChatSubtitle": {
|
||
"description": "Subtitle for Telegram chat"
|
||
},
|
||
"aboutSocial": "Соцсети",
|
||
"@aboutSocial": {
|
||
"description": "Section for social links"
|
||
},
|
||
"aboutApp": "Приложение",
|
||
"@aboutApp": {
|
||
"description": "Section for app info"
|
||
},
|
||
"aboutVersion": "Версия",
|
||
"@aboutVersion": {
|
||
"description": "Version info label"
|
||
},
|
||
"aboutBinimumDesc": "The creator of QQDL & HiFi API. This project helped shape lossless download support.",
|
||
"@aboutBinimumDesc": {
|
||
"description": "Credit description for binimum"
|
||
},
|
||
"aboutSachinsenalDesc": "The original HiFi project creator. A foundation for lossless-source integration.",
|
||
"@aboutSachinsenalDesc": {
|
||
"description": "Credit description for sachinsenal0x64"
|
||
},
|
||
"aboutSjdonadoDesc": "Создатель I Don't Have Spotify (IDHS). Резервный резолвер ссылки",
|
||
"@aboutSjdonadoDesc": {
|
||
"description": "Credit description for sjdonado"
|
||
},
|
||
"aboutAppDescription": "Search music metadata, manage extensions, and organize your library.",
|
||
"@aboutAppDescription": {
|
||
"description": "App description in header card"
|
||
},
|
||
"artistAlbums": "Альбомы",
|
||
"@artistAlbums": {
|
||
"description": "Section header for artist albums"
|
||
},
|
||
"artistSingles": "Синглы и EP",
|
||
"@artistSingles": {
|
||
"description": "Section header for singles/EPs"
|
||
},
|
||
"artistCompilations": "Сборники",
|
||
"@artistCompilations": {
|
||
"description": "Section header for compilations"
|
||
},
|
||
"artistPopular": "Популярное",
|
||
"@artistPopular": {
|
||
"description": "Section header for popular/top tracks"
|
||
},
|
||
"artistMonthlyListeners": "{count} слушателей в месяц",
|
||
"@artistMonthlyListeners": {
|
||
"description": "Monthly listener count display",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "String",
|
||
"description": "Formatted listener count"
|
||
}
|
||
}
|
||
},
|
||
"trackMetadataService": "Сервис",
|
||
"@trackMetadataService": {
|
||
"description": "Metadata field - download service used"
|
||
},
|
||
"trackMetadataPlay": "Воспроизвести",
|
||
"@trackMetadataPlay": {
|
||
"description": "Action button - play track"
|
||
},
|
||
"trackMetadataShare": "Поделиться",
|
||
"@trackMetadataShare": {
|
||
"description": "Action button - share track"
|
||
},
|
||
"trackMetadataDelete": "Удалить",
|
||
"@trackMetadataDelete": {
|
||
"description": "Action button - delete track"
|
||
},
|
||
"setupGrantPermission": "Предоставить разрешение",
|
||
"@setupGrantPermission": {
|
||
"description": "Button to request permission"
|
||
},
|
||
"setupSkip": "Пропустить",
|
||
"@setupSkip": {
|
||
"description": "Skip current step button"
|
||
},
|
||
"setupStorageAccessRequired": "Требуется доступ к хранилищу",
|
||
"@setupStorageAccessRequired": {
|
||
"description": "Title when storage access needed"
|
||
},
|
||
"setupStorageAccessMessageAndroid11": "Для Android 11+ требуется разрешение \"Доступ ко всем файлам\" для сохранения файлов в выбранную вами папку загрузки.",
|
||
"@setupStorageAccessMessageAndroid11": {
|
||
"description": "Android 11+ specific explanation"
|
||
},
|
||
"setupOpenSettings": "Открыть настройки",
|
||
"@setupOpenSettings": {
|
||
"description": "Button to open system settings"
|
||
},
|
||
"setupPermissionDeniedMessage": "В разрешении отказано. Пожалуйста, предоставьте все разрешения для продолжения.",
|
||
"@setupPermissionDeniedMessage": {
|
||
"description": "Error when permission denied"
|
||
},
|
||
"setupPermissionRequired": "Требуется разрешение {permissionType}",
|
||
"@setupPermissionRequired": {
|
||
"description": "Generic permission required title",
|
||
"placeholders": {
|
||
"permissionType": {
|
||
"type": "String",
|
||
"description": "Type of permission (Storage/Notification)"
|
||
}
|
||
}
|
||
},
|
||
"setupPermissionRequiredMessage": "Для оптимальной работы требуется разрешение {permissionType}. Вы можете изменить это позже в настройках.",
|
||
"@setupPermissionRequiredMessage": {
|
||
"description": "Generic permission required message",
|
||
"placeholders": {
|
||
"permissionType": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"setupUseDefaultFolder": "Использовать папку по умолчанию?",
|
||
"@setupUseDefaultFolder": {
|
||
"description": "Dialog title for default folder"
|
||
},
|
||
"setupNoFolderSelected": "Папка не выбрана. Хотите использовать папку Музыка по умолчанию?",
|
||
"@setupNoFolderSelected": {
|
||
"description": "Prompt when no folder selected"
|
||
},
|
||
"setupUseDefault": "По умолчанию",
|
||
"@setupUseDefault": {
|
||
"description": "Button to use default folder"
|
||
},
|
||
"setupDownloadLocationTitle": "Папка для скачивания",
|
||
"@setupDownloadLocationTitle": {
|
||
"description": "Download location dialog title"
|
||
},
|
||
"setupDownloadLocationIosMessage": "В iOS загрузки сохраняются в папке Документы приложения. Вы можете получить к ним доступ через приложение Файлы.",
|
||
"@setupDownloadLocationIosMessage": {
|
||
"description": "iOS-specific folder info"
|
||
},
|
||
"setupAppDocumentsFolder": "Папка Документы приложения",
|
||
"@setupAppDocumentsFolder": {
|
||
"description": "iOS documents folder option"
|
||
},
|
||
"setupAppDocumentsFolderSubtitle": "Рекомендуется - доступ через Файлы",
|
||
"@setupAppDocumentsFolderSubtitle": {
|
||
"description": "Subtitle for documents folder"
|
||
},
|
||
"setupChooseFromFiles": "Выбрать из файлов",
|
||
"@setupChooseFromFiles": {
|
||
"description": "iOS file picker option"
|
||
},
|
||
"setupChooseFromFilesSubtitle": "Выберите iCloud или другое местоположение",
|
||
"@setupChooseFromFilesSubtitle": {
|
||
"description": "Subtitle for file picker"
|
||
},
|
||
"setupIosEmptyFolderWarning": "Ограничение iOS: пустые папки не могут быть выбраны. Выберите папку, содержащую хотя бы один файл.",
|
||
"@setupIosEmptyFolderWarning": {
|
||
"description": "iOS folder selection warning"
|
||
},
|
||
"setupIcloudNotSupported": "iCloud Drive не поддерживается. Пожалуйста, используйте папку Документы.",
|
||
"@setupIcloudNotSupported": {
|
||
"description": "Error when user selects iCloud Drive on iOS"
|
||
},
|
||
"setupDownloadInFlac": "Скачать Spotify треки во FLAC",
|
||
"@setupDownloadInFlac": {
|
||
"description": "App tagline in setup"
|
||
},
|
||
"setupStorageGranted": "Доступ к хранилищу предоставлен!",
|
||
"@setupStorageGranted": {
|
||
"description": "Success message for storage permission"
|
||
},
|
||
"setupStorageRequired": "Требуется доступ к хранилищу",
|
||
"@setupStorageRequired": {
|
||
"description": "Title when storage permission needed"
|
||
},
|
||
"setupStorageDescription": "SpotiFLAC требуется разрешение на хранение для сохранения скачанных файлов.",
|
||
"@setupStorageDescription": {
|
||
"description": "Explanation for storage permission"
|
||
},
|
||
"setupNotificationGranted": "Разрешение на уведомление предоставлено!",
|
||
"@setupNotificationGranted": {
|
||
"description": "Success message for notification permission"
|
||
},
|
||
"setupNotificationEnable": "Включить уведомления",
|
||
"@setupNotificationEnable": {
|
||
"description": "Button to enable notifications"
|
||
},
|
||
"setupFolderChoose": "Выбрать папку для скачивания",
|
||
"@setupFolderChoose": {
|
||
"description": "Button to choose folder"
|
||
},
|
||
"setupFolderDescription": "Выберите папку, в которой будет сохраняться скачанная музыка.",
|
||
"@setupFolderDescription": {
|
||
"description": "Explanation for folder selection"
|
||
},
|
||
"setupSelectFolder": "Выбрать папку",
|
||
"@setupSelectFolder": {
|
||
"description": "Button to select folder"
|
||
},
|
||
"setupEnableNotifications": "Включить уведомления",
|
||
"@setupEnableNotifications": {
|
||
"description": "Button to enable notifications"
|
||
},
|
||
"setupNotificationBackgroundDescription": "Получайте уведомления о ходе и завершении загрузки. Это поможет вам отслеживать загрузки, когда приложение находится в фоновом режиме.",
|
||
"@setupNotificationBackgroundDescription": {
|
||
"description": "Detailed notification explanation"
|
||
},
|
||
"setupSkipForNow": "Пропустить",
|
||
"@setupSkipForNow": {
|
||
"description": "Skip button text"
|
||
},
|
||
"setupNext": "Далее",
|
||
"@setupNext": {
|
||
"description": "Next button text"
|
||
},
|
||
"setupGetStarted": "Приступить к работе",
|
||
"@setupGetStarted": {
|
||
"description": "Final setup button"
|
||
},
|
||
"setupAllowAccessToManageFiles": "Пожалуйста, включите \"Разрешить доступ для управления всеми файлами\" на следующем экране.",
|
||
"@setupAllowAccessToManageFiles": {
|
||
"description": "Instruction for file access permission"
|
||
},
|
||
"setupLanguageTitle": "Choose Language",
|
||
"@setupLanguageTitle": {
|
||
"description": "Title for the language selection step in setup"
|
||
},
|
||
"setupLanguageDescription": "Select your preferred language for the app. You can change this later in Settings.",
|
||
"@setupLanguageDescription": {
|
||
"description": "Description for the language selection step in setup"
|
||
},
|
||
"setupLanguageSystemDefault": "System Default",
|
||
"@setupLanguageSystemDefault": {
|
||
"description": "Option to use the system language"
|
||
},
|
||
"dialogCancel": "Отмена",
|
||
"@dialogCancel": {
|
||
"description": "Dialog button - cancel action"
|
||
},
|
||
"dialogSave": "Сохранить",
|
||
"@dialogSave": {
|
||
"description": "Dialog button - save changes"
|
||
},
|
||
"dialogDelete": "Удалить",
|
||
"@dialogDelete": {
|
||
"description": "Dialog button - delete item"
|
||
},
|
||
"dialogRetry": "Повторить",
|
||
"@dialogRetry": {
|
||
"description": "Dialog button - retry action"
|
||
},
|
||
"dialogClear": "Очистить",
|
||
"@dialogClear": {
|
||
"description": "Dialog button - clear items"
|
||
},
|
||
"dialogDone": "Готово",
|
||
"@dialogDone": {
|
||
"description": "Dialog button - action completed"
|
||
},
|
||
"dialogImport": "Импорт",
|
||
"@dialogImport": {
|
||
"description": "Dialog button - import data"
|
||
},
|
||
"dialogDownload": "Скачать",
|
||
"@dialogDownload": {
|
||
"description": "Confirm button in Download All dialog"
|
||
},
|
||
"previewPlay": "Play preview",
|
||
"@previewPlay": {
|
||
"description": "Tooltip for the button that plays a short track preview snippet"
|
||
},
|
||
"previewStop": "Stop preview",
|
||
"@previewStop": {
|
||
"description": "Tooltip for the button that stops the playing track preview snippet"
|
||
},
|
||
"previewUnavailable": "Preview unavailable",
|
||
"@previewUnavailable": {
|
||
"description": "Snackbar shown when a track preview snippet cannot be played"
|
||
},
|
||
"dialogDiscard": "Отменить",
|
||
"@dialogDiscard": {
|
||
"description": "Dialog button - discard changes"
|
||
},
|
||
"dialogRemove": "Убрать",
|
||
"@dialogRemove": {
|
||
"description": "Dialog button - remove item"
|
||
},
|
||
"dialogUninstall": "Удалить",
|
||
"@dialogUninstall": {
|
||
"description": "Dialog button - uninstall extension"
|
||
},
|
||
"dialogDiscardChanges": "Отменить изменения?",
|
||
"@dialogDiscardChanges": {
|
||
"description": "Dialog title - unsaved changes warning"
|
||
},
|
||
"dialogUnsavedChanges": "Есть несохраненные изменения. Отменить их?",
|
||
"@dialogUnsavedChanges": {
|
||
"description": "Dialog message - unsaved changes"
|
||
},
|
||
"dialogClearAll": "Очистить всё",
|
||
"@dialogClearAll": {
|
||
"description": "Dialog title - clear all items"
|
||
},
|
||
"dialogRemoveExtension": "Удалить расширение",
|
||
"@dialogRemoveExtension": {
|
||
"description": "Dialog title - uninstall extension"
|
||
},
|
||
"dialogRemoveExtensionMessage": "Вы уверены, что хотите удалить это расширение? Это действие не может быть отменено.",
|
||
"@dialogRemoveExtensionMessage": {
|
||
"description": "Dialog message - uninstall confirmation"
|
||
},
|
||
"dialogUninstallExtension": "Удалить расширение?",
|
||
"@dialogUninstallExtension": {
|
||
"description": "Dialog title - uninstall extension"
|
||
},
|
||
"dialogUninstallExtensionMessage": "Вы уверены, что хотите удалить {extensionName}?",
|
||
"@dialogUninstallExtensionMessage": {
|
||
"description": "Dialog message - uninstall specific extension",
|
||
"placeholders": {
|
||
"extensionName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"dialogClearHistoryTitle": "Очистить историю",
|
||
"@dialogClearHistoryTitle": {
|
||
"description": "Dialog title - clear download history"
|
||
},
|
||
"dialogClearHistoryMessage": "Вы уверены, что хотите удалить всю историю загрузок? Это действие необратимо.",
|
||
"@dialogClearHistoryMessage": {
|
||
"description": "Dialog message - clear history confirmation"
|
||
},
|
||
"dialogDeleteSelectedTitle": "Удалить выбранные",
|
||
"@dialogDeleteSelectedTitle": {
|
||
"description": "Dialog title - delete selected items"
|
||
},
|
||
"dialogDeleteSelectedMessage": "Delete {count} {count, plural, =1{track} other{tracks}} from history?\n\nThis will also delete the files from storage.",
|
||
"@dialogDeleteSelectedMessage": {
|
||
"description": "Dialog message - delete selected tracks",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"dialogImportPlaylistTitle": "Импорт плейлиста",
|
||
"@dialogImportPlaylistTitle": {
|
||
"description": "Dialog title - import CSV playlist"
|
||
},
|
||
"dialogImportPlaylistMessage": "Найдено {count} треков в CSV. Добавить их в очередь загрузки?",
|
||
"csvImportTracks": "{count} трек(-ов) из CSV",
|
||
"@csvImportTracks": {
|
||
"description": "Label shown in quality picker for CSV import",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"@dialogImportPlaylistMessage": {
|
||
"description": "Dialog message - import playlist confirmation",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"snackbarAddedToQueue": "\"{trackName}\" добавлен в очередь",
|
||
"@snackbarAddedToQueue": {
|
||
"description": "Snackbar - track added to download queue",
|
||
"placeholders": {
|
||
"trackName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"snackbarAddedTracksToQueue": "Добавлено {count} треков в очередь",
|
||
"@snackbarAddedTracksToQueue": {
|
||
"description": "Snackbar - multiple tracks added to queue",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"snackbarAlreadyDownloaded": "\"{trackName}\" уже скачан",
|
||
"@snackbarAlreadyDownloaded": {
|
||
"description": "Snackbar - track already exists",
|
||
"placeholders": {
|
||
"trackName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"snackbarAlreadyInLibrary": "\"{trackName}\" уже есть в вашей библиотеке",
|
||
"@snackbarAlreadyInLibrary": {
|
||
"description": "Snackbar - track already exists in local library",
|
||
"placeholders": {
|
||
"trackName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"snackbarHistoryCleared": "История очищена",
|
||
"@snackbarHistoryCleared": {
|
||
"description": "Snackbar - history deleted"
|
||
},
|
||
"snackbarCredentialsSaved": "Учётные данные сохранены",
|
||
"@snackbarCredentialsSaved": {
|
||
"description": "Snackbar - Spotify credentials saved"
|
||
},
|
||
"snackbarCredentialsCleared": "Учётные данные очищены",
|
||
"@snackbarCredentialsCleared": {
|
||
"description": "Snackbar - Spotify credentials removed"
|
||
},
|
||
"snackbarDeletedTracks": "Deleted {count} {count, plural, =1{track} other{tracks}}",
|
||
"@snackbarDeletedTracks": {
|
||
"description": "Snackbar - tracks deleted",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"snackbarCannotOpenFile": "Невозможно открыть файл: {error}",
|
||
"@snackbarCannotOpenFile": {
|
||
"description": "Snackbar - file open error",
|
||
"placeholders": {
|
||
"error": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"snackbarFillAllFields": "Пожалуйста, заполните все поля",
|
||
"@snackbarFillAllFields": {
|
||
"description": "Snackbar - validation error"
|
||
},
|
||
"snackbarViewQueue": "Просмотр очереди",
|
||
"@snackbarViewQueue": {
|
||
"description": "Snackbar action - view download queue"
|
||
},
|
||
"snackbarUrlCopied": "{platform} ссылка скопирована в буфер обмена",
|
||
"@snackbarUrlCopied": {
|
||
"description": "Snackbar - URL copied",
|
||
"placeholders": {
|
||
"platform": {
|
||
"type": "String",
|
||
"description": "Platform name (Spotify/Deezer)"
|
||
}
|
||
}
|
||
},
|
||
"snackbarFileNotFound": "Файл не найден",
|
||
"@snackbarFileNotFound": {
|
||
"description": "Snackbar - file doesn't exist"
|
||
},
|
||
"snackbarSelectExtFile": "Пожалуйста, выберите .spotiflac-ext-файл",
|
||
"@snackbarSelectExtFile": {
|
||
"description": "Snackbar - wrong file type selected"
|
||
},
|
||
"snackbarProviderPrioritySaved": "Приоритет провайдера сохранён",
|
||
"@snackbarProviderPrioritySaved": {
|
||
"description": "Snackbar - provider order saved"
|
||
},
|
||
"snackbarMetadataProviderSaved": "Приоритет провайдера метаданных сохранён",
|
||
"@snackbarMetadataProviderSaved": {
|
||
"description": "Snackbar - metadata provider order saved"
|
||
},
|
||
"snackbarExtensionInstalled": "{extensionName} установлено.",
|
||
"@snackbarExtensionInstalled": {
|
||
"description": "Snackbar - extension installed successfully",
|
||
"placeholders": {
|
||
"extensionName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"snackbarExtensionUpdated": "{extensionName} Обновлено.",
|
||
"@snackbarExtensionUpdated": {
|
||
"description": "Snackbar - extension updated successfully",
|
||
"placeholders": {
|
||
"extensionName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"snackbarFailedToInstall": "Не удалось установить расширение",
|
||
"@snackbarFailedToInstall": {
|
||
"description": "Snackbar - extension install error"
|
||
},
|
||
"snackbarFailedToUpdate": "Не удалось обновить расширение",
|
||
"@snackbarFailedToUpdate": {
|
||
"description": "Snackbar - extension update error"
|
||
},
|
||
"errorRateLimited": "Слишком много запросов",
|
||
"@errorRateLimited": {
|
||
"description": "Error title - too many requests"
|
||
},
|
||
"errorRateLimitedMessage": "Слишком много запросов. Пожалуйста, подождите минуту перед повторным поиском.",
|
||
"@errorRateLimitedMessage": {
|
||
"description": "Error message - rate limit explanation"
|
||
},
|
||
"errorNoTracksFound": "Треки не найдены",
|
||
"@errorNoTracksFound": {
|
||
"description": "Error - search returned no results"
|
||
},
|
||
"searchEmptyResultSubtitle": "Try another keyword",
|
||
"@searchEmptyResultSubtitle": {
|
||
"description": "Subtitle shown under the empty search result state on the home screen"
|
||
},
|
||
"errorUrlNotRecognized": "Ссылка не распознана",
|
||
"@errorUrlNotRecognized": {
|
||
"description": "Error title - URL not handled by any extension or service"
|
||
},
|
||
"errorUrlNotRecognizedMessage": "Эта ссылка не поддерживается. Убедитесь, что URL-адрес указан правильно и установлено совместимое расширение.",
|
||
"@errorUrlNotRecognizedMessage": {
|
||
"description": "Error message - URL not recognized explanation"
|
||
},
|
||
"errorUrlFetchFailed": "Не удалось загрузить контент по этой ссылке. Пожалуйста, попробуйте еще раз.",
|
||
"@errorUrlFetchFailed": {
|
||
"description": "Error message - generic URL fetch failure"
|
||
},
|
||
"errorMissingExtensionSource": "Невозможно загрузить {item}: отсутствует источник расширения",
|
||
"@errorMissingExtensionSource": {
|
||
"description": "Error - extension source not available",
|
||
"placeholders": {
|
||
"item": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"actionPause": "Пауза",
|
||
"@actionPause": {
|
||
"description": "Action button - pause download"
|
||
},
|
||
"actionResume": "Возобновить",
|
||
"@actionResume": {
|
||
"description": "Action button - resume download"
|
||
},
|
||
"actionCancel": "Отмена",
|
||
"@actionCancel": {
|
||
"description": "Action button - cancel operation"
|
||
},
|
||
"actionSelectAll": "Выбрать все",
|
||
"@actionSelectAll": {
|
||
"description": "Action button - select all items"
|
||
},
|
||
"actionDeselect": "Снять выделение",
|
||
"@actionDeselect": {
|
||
"description": "Action button - deselect all"
|
||
},
|
||
"actionRemoveCredentials": "Удалить учётные данные",
|
||
"@actionRemoveCredentials": {
|
||
"description": "Action button - delete Spotify credentials"
|
||
},
|
||
"actionSaveCredentials": "Сохранить учётные данные",
|
||
"@actionSaveCredentials": {
|
||
"description": "Action button - save Spotify credentials"
|
||
},
|
||
"selectionSelected": "{count} выбрано",
|
||
"@selectionSelected": {
|
||
"description": "Selection count indicator",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"selectionAllSelected": "Все треки выбраны",
|
||
"@selectionAllSelected": {
|
||
"description": "Status - all items selected"
|
||
},
|
||
"selectionSelectToDelete": "Выберите треки для удаления",
|
||
"@selectionSelectToDelete": {
|
||
"description": "Placeholder when nothing selected"
|
||
},
|
||
"progressFetchingMetadata": "Получение метаданных... {current}/{total}",
|
||
"@progressFetchingMetadata": {
|
||
"description": "Progress indicator - loading track info",
|
||
"placeholders": {
|
||
"current": {
|
||
"type": "int"
|
||
},
|
||
"total": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"progressReadingCsv": "Чтение CSV...",
|
||
"@progressReadingCsv": {
|
||
"description": "Progress indicator - parsing CSV file"
|
||
},
|
||
"searchSongs": "Песни",
|
||
"@searchSongs": {
|
||
"description": "Search result category - songs"
|
||
},
|
||
"searchArtists": "Исполнители",
|
||
"@searchArtists": {
|
||
"description": "Search result category - artists"
|
||
},
|
||
"searchAlbums": "Альбомы",
|
||
"@searchAlbums": {
|
||
"description": "Search result category - albums"
|
||
},
|
||
"searchPlaylists": "Плейлисты",
|
||
"@searchPlaylists": {
|
||
"description": "Search result category - playlists"
|
||
},
|
||
"searchSortTitle": "Упорядочить результаты",
|
||
"@searchSortTitle": {
|
||
"description": "Bottom sheet title for search sort options"
|
||
},
|
||
"searchSortDefault": "По умолчанию",
|
||
"@searchSortDefault": {
|
||
"description": "Sort option - default API order"
|
||
},
|
||
"searchSortTitleAZ": "Название (А-Я)",
|
||
"@searchSortTitleAZ": {
|
||
"description": "Sort option - title ascending"
|
||
},
|
||
"searchSortTitleZA": "Название (Я-А)",
|
||
"@searchSortTitleZA": {
|
||
"description": "Sort option - title descending"
|
||
},
|
||
"searchSortArtistAZ": "Исполнитель (А-Я)",
|
||
"@searchSortArtistAZ": {
|
||
"description": "Sort option - artist ascending"
|
||
},
|
||
"searchSortArtistZA": "Исполнитель (Я-А)",
|
||
"@searchSortArtistZA": {
|
||
"description": "Sort option - artist descending"
|
||
},
|
||
"searchSortDurationShort": "Продолжительность (наименьшая)",
|
||
"@searchSortDurationShort": {
|
||
"description": "Sort option - shortest duration first"
|
||
},
|
||
"searchSortDurationLong": "Продолжительность (наибольшая)",
|
||
"@searchSortDurationLong": {
|
||
"description": "Sort option - longest duration first"
|
||
},
|
||
"searchSortDateOldest": "Дата релиза (старейшая)",
|
||
"@searchSortDateOldest": {
|
||
"description": "Sort option - oldest release first"
|
||
},
|
||
"searchSortDateNewest": "Дата релиза (новейшая)",
|
||
"@searchSortDateNewest": {
|
||
"description": "Sort option - newest release first"
|
||
},
|
||
"tooltipPlay": "Воспроизвести",
|
||
"@tooltipPlay": {
|
||
"description": "Tooltip - play button"
|
||
},
|
||
"filenameFormat": "Формат имени файла",
|
||
"@filenameFormat": {
|
||
"description": "Setting title - filename pattern"
|
||
},
|
||
"filenameShowAdvancedTags": "Показать расширенные теги",
|
||
"@filenameShowAdvancedTags": {
|
||
"description": "Toggle label for showing advanced filename tags"
|
||
},
|
||
"filenameShowAdvancedTagsDescription": "Включить форматированные теги для отслеживания заполнения и шаблонов дат",
|
||
"@filenameShowAdvancedTagsDescription": {
|
||
"description": "Description for advanced filename tag toggle"
|
||
},
|
||
"folderOrganizationNone": "Без организации",
|
||
"@folderOrganizationNone": {
|
||
"description": "Folder option - flat structure"
|
||
},
|
||
"folderOrganizationByPlaylist": "По плейлисту",
|
||
"@folderOrganizationByPlaylist": {
|
||
"description": "Folder option - playlist folders"
|
||
},
|
||
"folderOrganizationByPlaylistSubtitle": "Отдельная папка для каждого плейлиста",
|
||
"@folderOrganizationByPlaylistSubtitle": {
|
||
"description": "Subtitle for playlist folder option"
|
||
},
|
||
"folderOrganizationByArtist": "По исполнителю",
|
||
"@folderOrganizationByArtist": {
|
||
"description": "Folder option - artist folders"
|
||
},
|
||
"folderOrganizationByAlbum": "По альбому",
|
||
"@folderOrganizationByAlbum": {
|
||
"description": "Folder option - album folders"
|
||
},
|
||
"folderOrganizationByArtistAlbum": "Исполнитель/Альбом",
|
||
"@folderOrganizationByArtistAlbum": {
|
||
"description": "Folder option - nested folders"
|
||
},
|
||
"folderOrganizationDescription": "Сортировать скачанные файлы по папкам",
|
||
"@folderOrganizationDescription": {
|
||
"description": "Folder organization sheet description"
|
||
},
|
||
"folderOrganizationNoneSubtitle": "Все файлы в папке загрузок",
|
||
"@folderOrganizationNoneSubtitle": {
|
||
"description": "Subtitle for no organization option"
|
||
},
|
||
"folderOrganizationByArtistSubtitle": "Отдельная папка для каждого исполнителя",
|
||
"@folderOrganizationByArtistSubtitle": {
|
||
"description": "Subtitle for artist folder option"
|
||
},
|
||
"folderOrganizationByAlbumSubtitle": "Отдельная папка для каждого альбома",
|
||
"@folderOrganizationByAlbumSubtitle": {
|
||
"description": "Subtitle for album folder option"
|
||
},
|
||
"folderOrganizationByArtistAlbumSubtitle": "Вложенные папки для исполнителей и альбомов",
|
||
"@folderOrganizationByArtistAlbumSubtitle": {
|
||
"description": "Subtitle for nested folder option"
|
||
},
|
||
"updateAvailable": "Доступно обновление",
|
||
"@updateAvailable": {
|
||
"description": "Update dialog title"
|
||
},
|
||
"updateLater": "Позже",
|
||
"@updateLater": {
|
||
"description": "Update button - dismiss"
|
||
},
|
||
"updateStartingDownload": "Загрузка началась...",
|
||
"@updateStartingDownload": {
|
||
"description": "Update status - initializing"
|
||
},
|
||
"updateDownloadFailed": "Не удалось скачать",
|
||
"@updateDownloadFailed": {
|
||
"description": "Update error title"
|
||
},
|
||
"updateFailedMessage": "Сбой загрузки обновления",
|
||
"@updateFailedMessage": {
|
||
"description": "Update error message"
|
||
},
|
||
"updateNewVersionReady": "Доступна новая версия",
|
||
"@updateNewVersionReady": {
|
||
"description": "Update subtitle"
|
||
},
|
||
"updateCurrent": "Текущая",
|
||
"@updateCurrent": {
|
||
"description": "Label for current version"
|
||
},
|
||
"updateNew": "Новая",
|
||
"@updateNew": {
|
||
"description": "Label for new version"
|
||
},
|
||
"updateDownloading": "Скачивание...",
|
||
"@updateDownloading": {
|
||
"description": "Update status - downloading"
|
||
},
|
||
"updateWhatsNew": "Что нового",
|
||
"@updateWhatsNew": {
|
||
"description": "Changelog section title"
|
||
},
|
||
"updateDownloadInstall": "Скачать и установить",
|
||
"@updateDownloadInstall": {
|
||
"description": "Update button - download and install"
|
||
},
|
||
"updateDontRemind": "Не напоминать",
|
||
"@updateDontRemind": {
|
||
"description": "Update button - skip this version"
|
||
},
|
||
"providerPriorityTitle": "Приоритет провайдера",
|
||
"@providerPriorityTitle": {
|
||
"description": "Provider priority page title"
|
||
},
|
||
"providerPriorityDescription": "Перетаскивайте, чтобы изменить порядок провайдеров загрузки. Приложение будет пробовать провайдеров сверху вниз при загрузке треков.",
|
||
"@providerPriorityDescription": {
|
||
"description": "Provider priority page description"
|
||
},
|
||
"providerPriorityInfo": "Если трек не доступен у первого провайдера, приложение автоматически попробует следующий.",
|
||
"@providerPriorityInfo": {
|
||
"description": "Info tip about fallback behavior"
|
||
},
|
||
"providerPriorityFallbackExtensionsTitle": "Резервное расширение",
|
||
"@providerPriorityFallbackExtensionsTitle": {
|
||
"description": "Section title for choosing which download extensions can be used as fallback providers"
|
||
},
|
||
"providerPriorityFallbackExtensionsDescription": "Choose which installed download extensions can be used during automatic fallback.",
|
||
"@providerPriorityFallbackExtensionsDescription": {
|
||
"description": "Section description for extension fallback selection"
|
||
},
|
||
"providerPriorityFallbackExtensionsHint": "Only enabled extensions with download-provider capability are listed here.",
|
||
"@providerPriorityFallbackExtensionsHint": {
|
||
"description": "Hint below the extension fallback selection list"
|
||
},
|
||
"providerBuiltIn": "Legacy",
|
||
"@providerBuiltIn": {
|
||
"description": "Legacy label retained for old generated localization compatibility"
|
||
},
|
||
"providerExtension": "Расширение",
|
||
"@providerExtension": {
|
||
"description": "Label for extension-provided providers"
|
||
},
|
||
"metadataProviderPriorityTitle": "Приоритет метаданных",
|
||
"@metadataProviderPriorityTitle": {
|
||
"description": "Metadata priority page title"
|
||
},
|
||
"metadataProviderPriorityDescription": "Перетаскивайте, чтобы изменить порядок провайдеров метаданных. Приложение будет пробовать провайдеров сверху вниз при поиске треков и извлечении метаданных.",
|
||
"@metadataProviderPriorityDescription": {
|
||
"description": "Metadata priority page description"
|
||
},
|
||
"metadataProviderPriorityInfo": "Deezer не имеет ограничений по скорости и рекомендуется в качестве основного. Spotify может ограничивать скорость после большого количества запросов.",
|
||
"@metadataProviderPriorityInfo": {
|
||
"description": "Info tip about rate limits"
|
||
},
|
||
"metadataNoRateLimits": "Без ограничений по скорости",
|
||
"@metadataNoRateLimits": {
|
||
"description": "Deezer provider description"
|
||
},
|
||
"metadataMayRateLimit": "Есть ограничения по скорости",
|
||
"@metadataMayRateLimit": {
|
||
"description": "Spotify provider description"
|
||
},
|
||
"logTitle": "Логи",
|
||
"@logTitle": {
|
||
"description": "Logs screen title"
|
||
},
|
||
"logCopied": "Логи скопированы в буфер обмена",
|
||
"@logCopied": {
|
||
"description": "Snackbar - logs copied"
|
||
},
|
||
"logSearchHint": "Поиск логов...",
|
||
"@logSearchHint": {
|
||
"description": "Log search placeholder"
|
||
},
|
||
"logFilterLevel": "Уровень",
|
||
"@logFilterLevel": {
|
||
"description": "Filter by log level"
|
||
},
|
||
"logFilterSection": "Фильтр",
|
||
"@logFilterSection": {
|
||
"description": "Filter section title"
|
||
},
|
||
"logShareLogs": "Поделиться логами",
|
||
"@logShareLogs": {
|
||
"description": "Share button tooltip"
|
||
},
|
||
"logClearLogs": "Очистить логи",
|
||
"@logClearLogs": {
|
||
"description": "Clear button tooltip"
|
||
},
|
||
"logClearLogsTitle": "Очистить логи",
|
||
"@logClearLogsTitle": {
|
||
"description": "Clear logs dialog title"
|
||
},
|
||
"logClearLogsMessage": "Вы уверены, что хотите очистить все логи?",
|
||
"@logClearLogsMessage": {
|
||
"description": "Clear logs confirmation message"
|
||
},
|
||
"logFilterBySeverity": "Фильтровать логи по серьезности",
|
||
"@logFilterBySeverity": {
|
||
"description": "Filter dialog title"
|
||
},
|
||
"logNoLogsYet": "Логов нет",
|
||
"@logNoLogsYet": {
|
||
"description": "Empty state title"
|
||
},
|
||
"logNoLogsYetSubtitle": "Логи появятся здесь по мере использования приложения",
|
||
"@logNoLogsYetSubtitle": {
|
||
"description": "Empty state subtitle"
|
||
},
|
||
"logEntriesFiltered": "Записи ({count} фильтровано)",
|
||
"@logEntriesFiltered": {
|
||
"description": "Log count with filter active",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"logEntries": "Записи ({count})",
|
||
"@logEntries": {
|
||
"description": "Total log count",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"credentialsTitle": "Учётные данные Spotify",
|
||
"@credentialsTitle": {
|
||
"description": "Credentials dialog title"
|
||
},
|
||
"credentialsDescription": "Введите свой Client ID и Secret, чтобы использовать собственные квоты в Spotify.",
|
||
"@credentialsDescription": {
|
||
"description": "Credentials dialog explanation"
|
||
},
|
||
"credentialsClientId": "Client ID",
|
||
"@credentialsClientId": {
|
||
"description": "Client ID field label - DO NOT TRANSLATE"
|
||
},
|
||
"credentialsClientIdHint": "Вставьте Client ID",
|
||
"@credentialsClientIdHint": {
|
||
"description": "Client ID placeholder"
|
||
},
|
||
"credentialsClientSecret": "Секретный код клиента",
|
||
"@credentialsClientSecret": {
|
||
"description": "Client Secret field label - DO NOT TRANSLATE"
|
||
},
|
||
"credentialsClientSecretHint": "Вставьте Client Secret",
|
||
"@credentialsClientSecretHint": {
|
||
"description": "Client Secret placeholder"
|
||
},
|
||
"channelStable": "Стабильный",
|
||
"@channelStable": {
|
||
"description": "Update channel - stable releases"
|
||
},
|
||
"channelPreview": "Предварительный",
|
||
"@channelPreview": {
|
||
"description": "Update channel - beta/preview releases"
|
||
},
|
||
"sectionSearchSource": "Поиск источника",
|
||
"@sectionSearchSource": {
|
||
"description": "Settings section header"
|
||
},
|
||
"sectionDownload": "Скачивание",
|
||
"@sectionDownload": {
|
||
"description": "Settings section header"
|
||
},
|
||
"sectionPerformance": "Производительность",
|
||
"@sectionPerformance": {
|
||
"description": "Settings section header"
|
||
},
|
||
"sectionApp": "Приложение",
|
||
"@sectionApp": {
|
||
"description": "Settings section header"
|
||
},
|
||
"sectionData": "Данные",
|
||
"@sectionData": {
|
||
"description": "Settings section header"
|
||
},
|
||
"sectionDebug": "Отладка",
|
||
"@sectionDebug": {
|
||
"description": "Settings section header"
|
||
},
|
||
"sectionService": "Сервис",
|
||
"@sectionService": {
|
||
"description": "Settings section header"
|
||
},
|
||
"sectionAudioQuality": "Качество аудио",
|
||
"@sectionAudioQuality": {
|
||
"description": "Settings section header"
|
||
},
|
||
"sectionFileSettings": "Настройки файла",
|
||
"@sectionFileSettings": {
|
||
"description": "Settings section header"
|
||
},
|
||
"sectionLyrics": "Тексты песен",
|
||
"@sectionLyrics": {
|
||
"description": "Settings section header"
|
||
},
|
||
"lyricsMode": "Режим текстов песен",
|
||
"@lyricsMode": {
|
||
"description": "Setting - how to save lyrics"
|
||
},
|
||
"lyricsModeDescription": "Выберите как сохранить тексты песен при скачивании",
|
||
"@lyricsModeDescription": {
|
||
"description": "Lyrics mode picker description"
|
||
},
|
||
"lyricsModeEmbed": "Вписать в файл",
|
||
"@lyricsModeEmbed": {
|
||
"description": "Lyrics mode option - embed in audio file"
|
||
},
|
||
"lyricsModeEmbedSubtitle": "Встроить текст в метаданные FLAC",
|
||
"@lyricsModeEmbedSubtitle": {
|
||
"description": "Subtitle for embed option"
|
||
},
|
||
"lyricsModeExternal": "Внешний файл .lrc",
|
||
"@lyricsModeExternal": {
|
||
"description": "Lyrics mode option - separate LRC file"
|
||
},
|
||
"lyricsModeExternalSubtitle": "Отдельный файл .lrc для плееров, таких, как Samsung Music",
|
||
"@lyricsModeExternalSubtitle": {
|
||
"description": "Subtitle for external option"
|
||
},
|
||
"lyricsModeBoth": "Оба варианта",
|
||
"@lyricsModeBoth": {
|
||
"description": "Lyrics mode option - embed and external"
|
||
},
|
||
"lyricsModeBothSubtitle": "Вписать и сохранить .lrc файл",
|
||
"@lyricsModeBothSubtitle": {
|
||
"description": "Subtitle for both option"
|
||
},
|
||
"sectionColor": "Цвет",
|
||
"@sectionColor": {
|
||
"description": "Settings section header"
|
||
},
|
||
"sectionTheme": "Тема",
|
||
"@sectionTheme": {
|
||
"description": "Settings section header"
|
||
},
|
||
"sectionLayout": "Разметка",
|
||
"@sectionLayout": {
|
||
"description": "Settings section header"
|
||
},
|
||
"sectionLanguage": "Язык",
|
||
"@sectionLanguage": {
|
||
"description": "Settings section header for language"
|
||
},
|
||
"appearanceLanguage": "Язык приложения",
|
||
"@appearanceLanguage": {
|
||
"description": "Language setting title"
|
||
},
|
||
"settingsAppearanceSubtitle": "Тема, цвета, дисплей",
|
||
"@settingsAppearanceSubtitle": {
|
||
"description": "Appearance settings description"
|
||
},
|
||
"settingsDownloadSubtitle": "Service, quality, fallback",
|
||
"@settingsDownloadSubtitle": {
|
||
"description": "Download settings description"
|
||
},
|
||
"settingsOptionsSubtitle": "Fallback, metadata, lyrics, cover art",
|
||
"@settingsOptionsSubtitle": {
|
||
"description": "Options settings description"
|
||
},
|
||
"settingsExtensionsSubtitle": "Управление провайдерами скачивания",
|
||
"@settingsExtensionsSubtitle": {
|
||
"description": "Extensions settings description"
|
||
},
|
||
"settingsLogsSubtitle": "Просмотреть логи для отладки",
|
||
"@settingsLogsSubtitle": {
|
||
"description": "Logs settings description"
|
||
},
|
||
"loadingSharedLink": "Загрузка общедоступной ссылки...",
|
||
"@loadingSharedLink": {
|
||
"description": "Status when opening shared URL"
|
||
},
|
||
"pressBackAgainToExit": "Нажмите «Назад» ещё раз, чтобы выйти",
|
||
"@pressBackAgainToExit": {
|
||
"description": "Exit confirmation message"
|
||
},
|
||
"downloadAllCount": "Скачать все ({count})",
|
||
"@downloadAllCount": {
|
||
"description": "Download all button with count",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"tracksCount": "{count, plural, =1{1 track} other{{count} tracks}}",
|
||
"@tracksCount": {
|
||
"description": "Track count display",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"trackCopyFilePath": "Скопировать путь к файлу",
|
||
"@trackCopyFilePath": {
|
||
"description": "Action - copy file path"
|
||
},
|
||
"trackRemoveFromDevice": "Удалить с устройства",
|
||
"@trackRemoveFromDevice": {
|
||
"description": "Action - delete downloaded file"
|
||
},
|
||
"trackLoadLyrics": "Загрузить текст песни",
|
||
"@trackLoadLyrics": {
|
||
"description": "Action - fetch lyrics"
|
||
},
|
||
"trackMetadata": "Метаданные",
|
||
"@trackMetadata": {
|
||
"description": "Tab title - track metadata"
|
||
},
|
||
"trackFileInfo": "Информация о файле",
|
||
"@trackFileInfo": {
|
||
"description": "Tab title - file information"
|
||
},
|
||
"trackLyrics": "Текст песни",
|
||
"@trackLyrics": {
|
||
"description": "Tab title - lyrics"
|
||
},
|
||
"trackFileNotFound": "Файл не найден",
|
||
"@trackFileNotFound": {
|
||
"description": "Error - file doesn't exist"
|
||
},
|
||
"trackOpenInDeezer": "Открыть в Deezer",
|
||
"@trackOpenInDeezer": {
|
||
"description": "Action - open track in Deezer app"
|
||
},
|
||
"trackOpenInSpotify": "Открыть в Spotify",
|
||
"@trackOpenInSpotify": {
|
||
"description": "Action - open track in Spotify app"
|
||
},
|
||
"trackTrackName": "Название",
|
||
"@trackTrackName": {
|
||
"description": "Metadata label - track title"
|
||
},
|
||
"trackArtist": "Исполнитель",
|
||
"@trackArtist": {
|
||
"description": "Metadata label - artist name"
|
||
},
|
||
"trackAlbumArtist": "Исполнитель альбома",
|
||
"@trackAlbumArtist": {
|
||
"description": "Metadata label - album artist"
|
||
},
|
||
"trackAlbum": "Альбом",
|
||
"@trackAlbum": {
|
||
"description": "Metadata label - album name"
|
||
},
|
||
"trackTrackNumber": "Номер трека",
|
||
"@trackTrackNumber": {
|
||
"description": "Metadata label - track number"
|
||
},
|
||
"trackDiscNumber": "Номер диска",
|
||
"@trackDiscNumber": {
|
||
"description": "Metadata label - disc number"
|
||
},
|
||
"trackDuration": "Продолжительность",
|
||
"@trackDuration": {
|
||
"description": "Metadata label - track length"
|
||
},
|
||
"trackAudioQuality": "Качество записи",
|
||
"@trackAudioQuality": {
|
||
"description": "Metadata label - audio quality"
|
||
},
|
||
"trackReleaseDate": "Дата выхода",
|
||
"@trackReleaseDate": {
|
||
"description": "Metadata label - release date"
|
||
},
|
||
"trackGenre": "Жанр",
|
||
"@trackGenre": {
|
||
"description": "Metadata label - music genre"
|
||
},
|
||
"trackLabel": "Заголовок",
|
||
"@trackLabel": {
|
||
"description": "Metadata label - record label"
|
||
},
|
||
"trackCopyright": "Авторские права",
|
||
"@trackCopyright": {
|
||
"description": "Metadata label - copyright information"
|
||
},
|
||
"trackDownloaded": "Скачано",
|
||
"@trackDownloaded": {
|
||
"description": "Metadata label - download date"
|
||
},
|
||
"trackCopyLyrics": "Копировать текст",
|
||
"@trackCopyLyrics": {
|
||
"description": "Action - copy lyrics to clipboard"
|
||
},
|
||
"trackLyricsSource": "Source: {source}",
|
||
"@trackLyricsSource": {
|
||
"description": "Label showing the lyrics source/provider",
|
||
"placeholders": {
|
||
"source": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"trackLyricsNotAvailable": "Текст песни недоступен для этого трека",
|
||
"@trackLyricsNotAvailable": {
|
||
"description": "Message when lyrics not found"
|
||
},
|
||
"trackLyricsNotInFile": "No lyrics found in this file",
|
||
"@trackLyricsNotInFile": {
|
||
"description": "Message when no embedded lyrics in audio file"
|
||
},
|
||
"trackFetchOnlineLyrics": "Fetch from Online",
|
||
"@trackFetchOnlineLyrics": {
|
||
"description": "Action - fetch lyrics from online providers"
|
||
},
|
||
"trackLyricsTimeout": "Время ожидания запроса истекло. Повторите попытку позже.",
|
||
"@trackLyricsTimeout": {
|
||
"description": "Message when lyrics request times out"
|
||
},
|
||
"trackLyricsLoadFailed": "Не удалось загрузить текст песни",
|
||
"@trackLyricsLoadFailed": {
|
||
"description": "Message when lyrics loading fails"
|
||
},
|
||
"trackEmbedLyrics": "Вписать текст песни",
|
||
"@trackEmbedLyrics": {
|
||
"description": "Action - embed lyrics into audio file"
|
||
},
|
||
"trackLyricsEmbedded": "Текст успешно добавлен",
|
||
"@trackLyricsEmbedded": {
|
||
"description": "Snackbar - lyrics saved to file"
|
||
},
|
||
"trackInstrumental": "Инструментальный трек",
|
||
"@trackInstrumental": {
|
||
"description": "Message when track is instrumental (no lyrics)"
|
||
},
|
||
"trackCopiedToClipboard": "Скопировано в буфер обмена",
|
||
"@trackCopiedToClipboard": {
|
||
"description": "Snackbar - content copied"
|
||
},
|
||
"trackDeleteConfirmTitle": "Удалить с устройства?",
|
||
"@trackDeleteConfirmTitle": {
|
||
"description": "Delete confirmation title"
|
||
},
|
||
"trackDeleteConfirmMessage": "Это приведет к окончательному удалению загруженного файла и его удалению из истории.",
|
||
"@trackDeleteConfirmMessage": {
|
||
"description": "Delete confirmation message"
|
||
},
|
||
"dateToday": "Сегодня",
|
||
"@dateToday": {
|
||
"description": "Relative date - today"
|
||
},
|
||
"dateYesterday": "Вчера",
|
||
"@dateYesterday": {
|
||
"description": "Relative date - yesterday"
|
||
},
|
||
"dateDaysAgo": "{count} дней назад",
|
||
"@dateDaysAgo": {
|
||
"description": "Relative date - days ago",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"dateWeeksAgo": "{count} недель назад",
|
||
"@dateWeeksAgo": {
|
||
"description": "Relative date - weeks ago",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"dateMonthsAgo": "{count} месяцев назад",
|
||
"@dateMonthsAgo": {
|
||
"description": "Relative date - months ago",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"storeFilterAll": "Все",
|
||
"@storeFilterAll": {
|
||
"description": "Store filter - all extensions"
|
||
},
|
||
"storeFilterMetadata": "Метаданные",
|
||
"@storeFilterMetadata": {
|
||
"description": "Store filter - metadata providers"
|
||
},
|
||
"storeFilterDownload": "Скачивание",
|
||
"@storeFilterDownload": {
|
||
"description": "Store filter - download providers"
|
||
},
|
||
"storeFilterUtility": "Утилиты",
|
||
"@storeFilterUtility": {
|
||
"description": "Store filter - utility extensions"
|
||
},
|
||
"storeFilterLyrics": "Тексты песен",
|
||
"@storeFilterLyrics": {
|
||
"description": "Store filter - lyrics providers"
|
||
},
|
||
"storeFilterIntegration": "Интеграция",
|
||
"@storeFilterIntegration": {
|
||
"description": "Store filter - integrations"
|
||
},
|
||
"storeClearFilters": "Очистить фильтры",
|
||
"@storeClearFilters": {
|
||
"description": "Button to clear all filters"
|
||
},
|
||
"storeAddRepoTitle": "Add Extension Repository",
|
||
"@storeAddRepoTitle": {
|
||
"description": "Store setup screen - heading when no repo is configured"
|
||
},
|
||
"storeAddRepoDescription": "Enter a GitHub repository URL that contains a registry.json file to browse and install extensions.",
|
||
"@storeAddRepoDescription": {
|
||
"description": "Store setup screen - explanatory text"
|
||
},
|
||
"storeRepoUrlLabel": "Repository URL",
|
||
"@storeRepoUrlLabel": {
|
||
"description": "Label for the repository URL input field"
|
||
},
|
||
"storeRepoUrlHint": "https://github.com/user/repo",
|
||
"@storeRepoUrlHint": {
|
||
"description": "Hint/placeholder for the repository URL input field"
|
||
},
|
||
"storeRepoUrlHelper": "например, https://github.com/user/extensions-repo",
|
||
"@storeRepoUrlHelper": {
|
||
"description": "Helper text below the repository URL input field"
|
||
},
|
||
"storeAddRepoButton": "Добавить репозиторий",
|
||
"@storeAddRepoButton": {
|
||
"description": "Button to submit a new repository URL"
|
||
},
|
||
"storeChangeRepoTooltip": "Изменить репозиторий",
|
||
"@storeChangeRepoTooltip": {
|
||
"description": "Tooltip for the change-repository icon button in the app bar"
|
||
},
|
||
"storeRepoDialogTitle": "Extension Repository",
|
||
"@storeRepoDialogTitle": {
|
||
"description": "Title of the change/remove repository dialog"
|
||
},
|
||
"storeRepoDialogCurrent": "Текущий репозиторий:",
|
||
"@storeRepoDialogCurrent": {
|
||
"description": "Label shown above the current repository URL in the dialog"
|
||
},
|
||
"storeNewRepoUrlLabel": "New Repository URL",
|
||
"@storeNewRepoUrlLabel": {
|
||
"description": "Label for the new repository URL field inside the dialog"
|
||
},
|
||
"storeLoadError": "Failed to load repository",
|
||
"@storeLoadError": {
|
||
"description": "Error heading when the store cannot be loaded"
|
||
},
|
||
"storeEmptyNoExtensions": "No extensions available",
|
||
"@storeEmptyNoExtensions": {
|
||
"description": "Message when store has no extensions"
|
||
},
|
||
"storeEmptyNoResults": "Расширения не найдены",
|
||
"@storeEmptyNoResults": {
|
||
"description": "Message when search/filter returns no results"
|
||
},
|
||
"extensionDefaultProvider": "Default Search",
|
||
"@extensionDefaultProvider": {
|
||
"description": "Default search provider option"
|
||
},
|
||
"extensionDefaultProviderSubtitle": "Use the default metadata search",
|
||
"@extensionDefaultProviderSubtitle": {
|
||
"description": "Subtitle for default provider"
|
||
},
|
||
"extensionAuthor": "Автор",
|
||
"@extensionAuthor": {
|
||
"description": "Extension detail - author"
|
||
},
|
||
"extensionId": "ID",
|
||
"@extensionId": {
|
||
"description": "Extension detail - unique ID"
|
||
},
|
||
"extensionError": "Ошибка",
|
||
"@extensionError": {
|
||
"description": "Extension detail - error message"
|
||
},
|
||
"extensionCapabilities": "Возможности",
|
||
"@extensionCapabilities": {
|
||
"description": "Section header - extension features"
|
||
},
|
||
"extensionMetadataProvider": "Провайдер метаданных",
|
||
"@extensionMetadataProvider": {
|
||
"description": "Capability - provides metadata"
|
||
},
|
||
"extensionDownloadProvider": "Провайдер скачивания",
|
||
"@extensionDownloadProvider": {
|
||
"description": "Capability - provides downloads"
|
||
},
|
||
"extensionLyricsProvider": "Провайдер текстов",
|
||
"@extensionLyricsProvider": {
|
||
"description": "Capability - provides lyrics"
|
||
},
|
||
"extensionUrlHandler": "URL-обработчик",
|
||
"@extensionUrlHandler": {
|
||
"description": "Capability - handles URLs"
|
||
},
|
||
"extensionQualityOptions": "Параметры качества",
|
||
"@extensionQualityOptions": {
|
||
"description": "Capability - quality selection"
|
||
},
|
||
"extensionPostProcessingHooks": "Хуки постобработки",
|
||
"@extensionPostProcessingHooks": {
|
||
"description": "Capability - post-processing"
|
||
},
|
||
"extensionPermissions": "Разрешения",
|
||
"@extensionPermissions": {
|
||
"description": "Section header - required permissions"
|
||
},
|
||
"extensionSettings": "Настройки",
|
||
"@extensionSettings": {
|
||
"description": "Section header - extension settings"
|
||
},
|
||
"extensionRemoveButton": "Удалить расширение",
|
||
"@extensionRemoveButton": {
|
||
"description": "Button to uninstall extension"
|
||
},
|
||
"extensionUpdated": "Обновлено",
|
||
"@extensionUpdated": {
|
||
"description": "Extension detail - last update"
|
||
},
|
||
"extensionMinAppVersion": "Мин. версия приложения",
|
||
"@extensionMinAppVersion": {
|
||
"description": "Extension detail - minimum app version"
|
||
},
|
||
"extensionCustomTrackMatching": "Соответствие пользовательских треков",
|
||
"@extensionCustomTrackMatching": {
|
||
"description": "Capability - custom track matching algorithm"
|
||
},
|
||
"extensionPostProcessing": "Постобработка",
|
||
"@extensionPostProcessing": {
|
||
"description": "Capability - post-download processing"
|
||
},
|
||
"extensionHooksAvailable": "Доступно {count} хуков(ов)",
|
||
"@extensionHooksAvailable": {
|
||
"description": "Post-processing hooks count",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"extensionPatternsCount": "{count} шаблон(ов)",
|
||
"@extensionPatternsCount": {
|
||
"description": "URL patterns count",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"extensionStrategy": "Стратегия: {strategy}",
|
||
"@extensionStrategy": {
|
||
"description": "Track matching strategy name",
|
||
"placeholders": {
|
||
"strategy": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"extensionsProviderPrioritySection": "Приоритет провайдера",
|
||
"@extensionsProviderPrioritySection": {
|
||
"description": "Section header - provider priority"
|
||
},
|
||
"extensionsInstalledSection": "Установленные расширения",
|
||
"@extensionsInstalledSection": {
|
||
"description": "Section header - installed extensions"
|
||
},
|
||
"extensionsNoExtensions": "Нет установленных расширений",
|
||
"@extensionsNoExtensions": {
|
||
"description": "Empty state - no extensions"
|
||
},
|
||
"extensionsNoExtensionsSubtitle": "Установите .spotiflac-ext файлы для добавления новых провайдеров",
|
||
"@extensionsNoExtensionsSubtitle": {
|
||
"description": "Empty state subtitle"
|
||
},
|
||
"extensionsInstallButton": "Установить расширение",
|
||
"@extensionsInstallButton": {
|
||
"description": "Button to install extension from file"
|
||
},
|
||
"extensionsInfoTip": "Расширения могут добавлять новые метаданные и провайдеров загрузки. Устанавливайте только расширения из надежных источников.",
|
||
"@extensionsInfoTip": {
|
||
"description": "Security warning about extensions"
|
||
},
|
||
"extensionsInstalledSuccess": "Расширение успешно установлено",
|
||
"@extensionsInstalledSuccess": {
|
||
"description": "Success message after install"
|
||
},
|
||
"extensionsInstalledCount": "{count} extensions installed successfully",
|
||
"@extensionsInstalledCount": {
|
||
"description": "Success message after installing multiple extensions",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int",
|
||
"description": "Number of installed extensions"
|
||
}
|
||
}
|
||
},
|
||
"extensionsInstallPartialSuccess": "Installed {installed} of {attempted} extensions",
|
||
"@extensionsInstallPartialSuccess": {
|
||
"description": "Message when installing multiple extensions partially succeeds",
|
||
"placeholders": {
|
||
"installed": {
|
||
"type": "int",
|
||
"description": "Number of successfully installed extensions"
|
||
},
|
||
"attempted": {
|
||
"type": "int",
|
||
"description": "Number of selected extensions"
|
||
}
|
||
}
|
||
},
|
||
"extensionsDownloadPriority": "Приоритет скачивания",
|
||
"@extensionsDownloadPriority": {
|
||
"description": "Setting - download provider order"
|
||
},
|
||
"extensionsDownloadPrioritySubtitle": "Установка порядок сервисов скачивания",
|
||
"@extensionsDownloadPrioritySubtitle": {
|
||
"description": "Subtitle for download priority"
|
||
},
|
||
"extensionsFallbackTitle": "Fallback Extensions",
|
||
"@extensionsFallbackTitle": {
|
||
"description": "Setting and page title for choosing which download extensions can be used during fallback"
|
||
},
|
||
"extensionsFallbackSubtitle": "Choose which installed download extensions can be used as fallback",
|
||
"@extensionsFallbackSubtitle": {
|
||
"description": "Subtitle for download fallback extensions menu"
|
||
},
|
||
"extensionsNoDownloadProvider": "Нет расширений с провайдером загрузки",
|
||
"@extensionsNoDownloadProvider": {
|
||
"description": "Empty state - no download providers"
|
||
},
|
||
"extensionsMetadataPriority": "Приоритет метаданных",
|
||
"@extensionsMetadataPriority": {
|
||
"description": "Setting - metadata provider order"
|
||
},
|
||
"extensionsMetadataPrioritySubtitle": "Установка порядка поиска и источника метаданных",
|
||
"@extensionsMetadataPrioritySubtitle": {
|
||
"description": "Subtitle for metadata priority"
|
||
},
|
||
"extensionsNoMetadataProvider": "Нет расширений с провайдером метаданных",
|
||
"@extensionsNoMetadataProvider": {
|
||
"description": "Empty state - no metadata providers"
|
||
},
|
||
"extensionsSearchProvider": "Провайдер поиска",
|
||
"@extensionsSearchProvider": {
|
||
"description": "Setting - search provider selection"
|
||
},
|
||
"extensionsNoCustomSearch": "Нет расширений с пользовательским поиском",
|
||
"@extensionsNoCustomSearch": {
|
||
"description": "Empty state - no search providers"
|
||
},
|
||
"extensionsSearchProviderDescription": "Выберите, какой сервис использовать для поиска треков",
|
||
"@extensionsSearchProviderDescription": {
|
||
"description": "Search provider setting description"
|
||
},
|
||
"extensionsCustomSearch": "Пользовательский поиск",
|
||
"@extensionsCustomSearch": {
|
||
"description": "Label for custom search provider"
|
||
},
|
||
"extensionsErrorLoading": "Ошибка загрузки расширения",
|
||
"@extensionsErrorLoading": {
|
||
"description": "Error message when extension fails to load"
|
||
},
|
||
"qualityFlacLossless": "FLAC Lossless",
|
||
"@qualityFlacLossless": {
|
||
"description": "Quality option - CD quality FLAC"
|
||
},
|
||
"qualityFlacLosslessSubtitle": "16-бит / 44.1 кГц",
|
||
"@qualityFlacLosslessSubtitle": {
|
||
"description": "Technical spec for lossless"
|
||
},
|
||
"qualityHiResFlac": "Hi-Res FLAC",
|
||
"@qualityHiResFlac": {
|
||
"description": "Quality option - high resolution FLAC"
|
||
},
|
||
"qualityHiResFlacSubtitle": "24-бит / до 96кГц",
|
||
"@qualityHiResFlacSubtitle": {
|
||
"description": "Technical spec for hi-res"
|
||
},
|
||
"qualityHiResFlacMax": "Hi-Res FLAC Макс.",
|
||
"@qualityHiResFlacMax": {
|
||
"description": "Quality option - maximum resolution FLAC"
|
||
},
|
||
"qualityHiResFlacMaxSubtitle": "24-бит / до 192кГц",
|
||
"@qualityHiResFlacMaxSubtitle": {
|
||
"description": "Technical spec for hi-res max"
|
||
},
|
||
"downloadLossy320": "С потерями 320 кбит/с",
|
||
"@downloadLossy320": {
|
||
"description": "Quality option label for lossy 320kbps"
|
||
},
|
||
"downloadLossyFormat": "Формат с потерями",
|
||
"@downloadLossyFormat": {
|
||
"description": "Setting title to pick output format for lossy downloads"
|
||
},
|
||
"downloadLossy320Format": "Формат с потерями 320 кбит/с",
|
||
"@downloadLossy320Format": {
|
||
"description": "Title of the lossy format picker bottom sheet"
|
||
},
|
||
"downloadLossy320FormatDesc": "Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.",
|
||
"@downloadLossy320FormatDesc": {
|
||
"description": "Description in the lossy format picker"
|
||
},
|
||
"downloadLossyMp3": "MP3 320 кбит/с",
|
||
"@downloadLossyMp3": {
|
||
"description": "Lossy format option - MP3 320kbps"
|
||
},
|
||
"downloadLossyMp3Subtitle": "Наилучшая совместимость, ~10 Мб на трек",
|
||
"@downloadLossyMp3Subtitle": {
|
||
"description": "Subtitle for MP3 320kbps lossy option"
|
||
},
|
||
"downloadLossyAac": "AAC/M4A 320kbps",
|
||
"@downloadLossyAac": {
|
||
"description": "Lossy format option - AAC in M4A container at 320kbps"
|
||
},
|
||
"downloadLossyAacSubtitle": "Best mobile compatibility, M4A container",
|
||
"@downloadLossyAacSubtitle": {
|
||
"description": "Subtitle for AAC/M4A 320kbps lossy option"
|
||
},
|
||
"downloadLossyOpus256": "Opus 256 кбит/с",
|
||
"@downloadLossyOpus256": {
|
||
"description": "Lossy format option - Opus 256kbps"
|
||
},
|
||
"downloadLossyOpus256Subtitle": "Best quality Opus, ~8MB per track",
|
||
"@downloadLossyOpus256Subtitle": {
|
||
"description": "Subtitle for Opus 256kbps lossy option"
|
||
},
|
||
"downloadLossyOpus128": "Opus 128 кбит/с",
|
||
"@downloadLossyOpus128": {
|
||
"description": "Lossy format option - Opus 128kbps"
|
||
},
|
||
"downloadLossyOpus128Subtitle": "Минимальный размер, ~4 Мб на трек",
|
||
"@downloadLossyOpus128Subtitle": {
|
||
"description": "Subtitle for Opus 128kbps lossy option"
|
||
},
|
||
"qualityNote": "Фактическое качество зависит от доступности треков в сервисе",
|
||
"@qualityNote": {
|
||
"description": "Note about quality availability"
|
||
},
|
||
"downloadAskBeforeDownload": "Спрашивать перед скачиванием",
|
||
"@downloadAskBeforeDownload": {
|
||
"description": "Setting - show quality picker"
|
||
},
|
||
"downloadDirectory": "Папка для скачивания",
|
||
"@downloadDirectory": {
|
||
"description": "Setting - download folder"
|
||
},
|
||
"downloadSeparateSinglesFolder": "Отдельная папка для синглов",
|
||
"@downloadSeparateSinglesFolder": {
|
||
"description": "Setting - separate folder for singles"
|
||
},
|
||
"downloadAlbumFolderStructure": "Структура папок альбома",
|
||
"@downloadAlbumFolderStructure": {
|
||
"description": "Setting - album folder organization"
|
||
},
|
||
"albumFolderStructureDescription": "Choose how album folders are structured",
|
||
"@albumFolderStructureDescription": {
|
||
"description": "Album folder structure picker description"
|
||
},
|
||
"downloadUseAlbumArtistForFolders": "Использовать исполнителя альбома для папок",
|
||
"@downloadUseAlbumArtistForFolders": {
|
||
"description": "Setting - choose whether artist folders use Album Artist or Track Artist"
|
||
},
|
||
"downloadUsePrimaryArtistOnly": "Основной исполнитель только для папок",
|
||
"@downloadUsePrimaryArtistOnly": {
|
||
"description": "Setting - strip featured artists from folder name"
|
||
},
|
||
"downloadUsePrimaryArtistOnlyEnabled": "Список исполнителей, чьи работы были удалены из названия папки (например, Джастин Бибер, Quavo → Джастин Бибер)",
|
||
"@downloadUsePrimaryArtistOnlyEnabled": {
|
||
"description": "Subtitle when primary artist only is enabled"
|
||
},
|
||
"downloadUsePrimaryArtistOnlyDisabled": "Полная строка исполнителя, используемая для имени папки",
|
||
"@downloadUsePrimaryArtistOnlyDisabled": {
|
||
"description": "Subtitle when primary artist only is disabled"
|
||
},
|
||
"downloadSelectQuality": "Выбор качества",
|
||
"@downloadSelectQuality": {
|
||
"description": "Dialog title - choose audio quality"
|
||
},
|
||
"downloadFrom": "Скачивать из",
|
||
"@downloadFrom": {
|
||
"description": "Label - download source"
|
||
},
|
||
"appearanceAmoledDark": "AMOLED",
|
||
"@appearanceAmoledDark": {
|
||
"description": "Theme option - pure black"
|
||
},
|
||
"appearanceAmoledDarkSubtitle": "Глубокий чёрный фон",
|
||
"@appearanceAmoledDarkSubtitle": {
|
||
"description": "Subtitle for AMOLED dark"
|
||
},
|
||
"queueClearAll": "Очистить всё",
|
||
"@queueClearAll": {
|
||
"description": "Button - clear all queue items"
|
||
},
|
||
"queueClearAllMessage": "Вы уверены, что хотите очистить все загрузки?",
|
||
"@queueClearAllMessage": {
|
||
"description": "Clear queue confirmation"
|
||
},
|
||
"settingsAutoExportFailed": "Автоэкспорт неудачных загрузок",
|
||
"@settingsAutoExportFailed": {
|
||
"description": "Setting toggle for auto-export"
|
||
},
|
||
"settingsAutoExportFailedSubtitle": "Автоматическое сохранение неудачных загрузок в TXT файл",
|
||
"@settingsAutoExportFailedSubtitle": {
|
||
"description": "Subtitle for auto-export setting"
|
||
},
|
||
"settingsDownloadNetwork": "Сеть для скачивания",
|
||
"@settingsDownloadNetwork": {
|
||
"description": "Setting for network type preference"
|
||
},
|
||
"settingsDownloadNetworkAny": "WiFi и Мобильная сеть",
|
||
"@settingsDownloadNetworkAny": {
|
||
"description": "Network option - use any connection"
|
||
},
|
||
"settingsDownloadNetworkWifiOnly": "Только WiFi",
|
||
"@settingsDownloadNetworkWifiOnly": {
|
||
"description": "Network option - only use WiFi"
|
||
},
|
||
"settingsDownloadNetworkSubtitle": "Выберите, какую сеть использовать для скачивания. Когда установлено значение только WiFi — скачивания через мобильную сеть будут приостановлены.",
|
||
"@settingsDownloadNetworkSubtitle": {
|
||
"description": "Subtitle explaining network preference"
|
||
},
|
||
"albumFolderArtistAlbum": "Исполнитель / Альбом",
|
||
"@albumFolderArtistAlbum": {
|
||
"description": "Album folder option"
|
||
},
|
||
"albumFolderArtistAlbumSubtitle": "Альбомы/Исполнитель/Название Альбома/",
|
||
"@albumFolderArtistAlbumSubtitle": {
|
||
"description": "Folder structure example"
|
||
},
|
||
"albumFolderArtistYearAlbum": "Исполнитель / [Год] Альбом",
|
||
"@albumFolderArtistYearAlbum": {
|
||
"description": "Album folder option with year"
|
||
},
|
||
"albumFolderArtistYearAlbumSubtitle": "Альбомы/Исполнитель/[2005] Название Альбома/",
|
||
"@albumFolderArtistYearAlbumSubtitle": {
|
||
"description": "Folder structure example"
|
||
},
|
||
"albumFolderAlbumOnly": "Только альбом",
|
||
"@albumFolderAlbumOnly": {
|
||
"description": "Album folder option"
|
||
},
|
||
"albumFolderAlbumOnlySubtitle": "Альбомы/Название Альбома/",
|
||
"@albumFolderAlbumOnlySubtitle": {
|
||
"description": "Folder structure example"
|
||
},
|
||
"albumFolderYearAlbum": "[Год] Альбом",
|
||
"@albumFolderYearAlbum": {
|
||
"description": "Album folder option with year"
|
||
},
|
||
"albumFolderYearAlbumSubtitle": "Альбомы/[2005] Название Альбома /",
|
||
"@albumFolderYearAlbumSubtitle": {
|
||
"description": "Folder structure example"
|
||
},
|
||
"albumFolderArtistAlbumSingles": "Исполнитель / Альбом + Синглы",
|
||
"@albumFolderArtistAlbumSingles": {
|
||
"description": "Album folder option with singles inside artist"
|
||
},
|
||
"albumFolderArtistAlbumSinglesSubtitle": "Исполнитель/Альбом и Исполнитель/Сингл/",
|
||
"@albumFolderArtistAlbumSinglesSubtitle": {
|
||
"description": "Folder structure example"
|
||
},
|
||
"albumFolderArtistAlbumFlat": "Artist / Album (Singles flat)",
|
||
"@albumFolderArtistAlbumFlat": {
|
||
"description": "Album folder option with singles directly in artist folder"
|
||
},
|
||
"albumFolderArtistAlbumFlatSubtitle": "Artist/Album/ and Artist/song.flac",
|
||
"@albumFolderArtistAlbumFlatSubtitle": {
|
||
"description": "Folder structure example for flat singles"
|
||
},
|
||
"downloadedAlbumDeleteSelected": "Удалить выбранные",
|
||
"@downloadedAlbumDeleteSelected": {
|
||
"description": "Button - delete selected tracks"
|
||
},
|
||
"downloadedAlbumDeleteMessage": "Delete {count} {count, plural, =1{track} other{tracks}} from this album?\n\nThis will also delete the files from storage.",
|
||
"@downloadedAlbumDeleteMessage": {
|
||
"description": "Delete confirmation with count",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"downloadedAlbumSelectedCount": "{count} выбрано",
|
||
"@downloadedAlbumSelectedCount": {
|
||
"description": "Selection count indicator",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"downloadedAlbumAllSelected": "Все треки выбраны",
|
||
"@downloadedAlbumAllSelected": {
|
||
"description": "Status - all items selected"
|
||
},
|
||
"downloadedAlbumTapToSelect": "Нажмите на треки для выбора",
|
||
"@downloadedAlbumTapToSelect": {
|
||
"description": "Selection hint"
|
||
},
|
||
"downloadedAlbumDeleteCount": "Delete {count} {count, plural, =1{track} other{tracks}}",
|
||
"@downloadedAlbumDeleteCount": {
|
||
"description": "Delete button text with count",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"downloadedAlbumSelectToDelete": "Выберите треки для удаления",
|
||
"@downloadedAlbumSelectToDelete": {
|
||
"description": "Placeholder when nothing selected"
|
||
},
|
||
"downloadedAlbumDiscHeader": "Диск {discNumber}",
|
||
"@downloadedAlbumDiscHeader": {
|
||
"description": "Header for disc separator in multi-disc albums",
|
||
"placeholders": {
|
||
"discNumber": {
|
||
"type": "int",
|
||
"example": "1"
|
||
}
|
||
}
|
||
},
|
||
"recentTypeArtist": "Исполнитель",
|
||
"@recentTypeArtist": {
|
||
"description": "Recent access item type - artist"
|
||
},
|
||
"recentTypeAlbum": "Альбом",
|
||
"@recentTypeAlbum": {
|
||
"description": "Recent access item type - album"
|
||
},
|
||
"recentTypeSong": "Песня",
|
||
"@recentTypeSong": {
|
||
"description": "Recent access item type - song/track"
|
||
},
|
||
"recentTypePlaylist": "Плейлист",
|
||
"@recentTypePlaylist": {
|
||
"description": "Recent access item type - playlist"
|
||
},
|
||
"recentEmpty": "Нет недавних элементов",
|
||
"@recentEmpty": {
|
||
"description": "Empty state text for recent access list"
|
||
},
|
||
"recentShowAllDownloads": "Показать все загрузки",
|
||
"@recentShowAllDownloads": {
|
||
"description": "Button label to unhide hidden downloads in recent access"
|
||
},
|
||
"recentPlaylistInfo": "Плейлист: {name}",
|
||
"@recentPlaylistInfo": {
|
||
"description": "Snackbar message when tapping playlist in recent access",
|
||
"placeholders": {
|
||
"name": {
|
||
"type": "String",
|
||
"description": "Playlist name"
|
||
}
|
||
}
|
||
},
|
||
"discographyDownload": "Скачать дискографию",
|
||
"@discographyDownload": {
|
||
"description": "Button - download artist discography"
|
||
},
|
||
"discographyDownloadAll": "Скачать всё",
|
||
"@discographyDownloadAll": {
|
||
"description": "Option - download entire discography"
|
||
},
|
||
"discographyDownloadAllSubtitle": "{count} треков из {albumCount} релизов",
|
||
"@discographyDownloadAllSubtitle": {
|
||
"description": "Subtitle showing total tracks and albums",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
},
|
||
"albumCount": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"discographyAlbumsOnly": "Только альбомы",
|
||
"@discographyAlbumsOnly": {
|
||
"description": "Option - download only albums"
|
||
},
|
||
"discographyAlbumsOnlySubtitle": "{count} треков из {albumCount} альбомов",
|
||
"@discographyAlbumsOnlySubtitle": {
|
||
"description": "Subtitle showing album tracks count",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
},
|
||
"albumCount": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"discographySinglesOnly": "Только синглы и EP",
|
||
"@discographySinglesOnly": {
|
||
"description": "Option - download only singles"
|
||
},
|
||
"discographySinglesOnlySubtitle": "{count} треков из {albumCount} синглов",
|
||
"@discographySinglesOnlySubtitle": {
|
||
"description": "Subtitle showing singles tracks count",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
},
|
||
"albumCount": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"discographySelectAlbums": "Выбрать альбомы...",
|
||
"@discographySelectAlbums": {
|
||
"description": "Option - manually select albums to download"
|
||
},
|
||
"discographySelectAlbumsSubtitle": "Выберите конкретные альбомы или синглы",
|
||
"@discographySelectAlbumsSubtitle": {
|
||
"description": "Subtitle for select albums option"
|
||
},
|
||
"discographyFetchingTracks": "Получение треков...",
|
||
"@discographyFetchingTracks": {
|
||
"description": "Progress - fetching album tracks"
|
||
},
|
||
"discographyFetchingAlbum": "Получение {current} из {total}...",
|
||
"@discographyFetchingAlbum": {
|
||
"description": "Progress - fetching specific album",
|
||
"placeholders": {
|
||
"current": {
|
||
"type": "int"
|
||
},
|
||
"total": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"discographySelectedCount": "{count} выбрано",
|
||
"@discographySelectedCount": {
|
||
"description": "Selection count badge",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"discographyDownloadSelected": "Скачать выбранное",
|
||
"@discographyDownloadSelected": {
|
||
"description": "Button - download selected albums"
|
||
},
|
||
"discographyAddedToQueue": "Добавлено {count} треков в очередь",
|
||
"@discographyAddedToQueue": {
|
||
"description": "Snackbar - tracks added from discography",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"discographySkippedDownloaded": "{added} добавлено, {skipped} уже скачано",
|
||
"@discographySkippedDownloaded": {
|
||
"description": "Snackbar - with skipped tracks count",
|
||
"placeholders": {
|
||
"added": {
|
||
"type": "int"
|
||
},
|
||
"skipped": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"discographyNoAlbums": "Нет доступных альбомов",
|
||
"@discographyNoAlbums": {
|
||
"description": "Error - no albums found for artist"
|
||
},
|
||
"discographyFailedToFetch": "Не удалось получить некоторые альбомы",
|
||
"@discographyFailedToFetch": {
|
||
"description": "Error - some albums failed to load"
|
||
},
|
||
"sectionStorageAccess": "Доступ к хранилищу",
|
||
"@sectionStorageAccess": {
|
||
"description": "Section header for storage access settings"
|
||
},
|
||
"allFilesAccess": "Доступ ко всем файлам",
|
||
"@allFilesAccess": {
|
||
"description": "Toggle for MANAGE_EXTERNAL_STORAGE permission"
|
||
},
|
||
"allFilesAccessEnabledSubtitle": "Можно записать в любую папку",
|
||
"@allFilesAccessEnabledSubtitle": {
|
||
"description": "Subtitle when all files access is enabled"
|
||
},
|
||
"allFilesAccessDisabledSubtitle": "Ограничено только папками медиа",
|
||
"@allFilesAccessDisabledSubtitle": {
|
||
"description": "Subtitle when all files access is disabled"
|
||
},
|
||
"allFilesAccessDescription": "Включите, если вы сталкиваетесь с ошибками записи при сохранении в пользовательские папки. Android 13+ по умолчанию ограничивает доступ к определенным папкам.",
|
||
"@allFilesAccessDescription": {
|
||
"description": "Description explaining when to enable all files access"
|
||
},
|
||
"allFilesAccessDeniedMessage": "В разрешении отказано. Пожалуйста, включите функцию «Доступ ко всем файлам» в настройках системы.",
|
||
"@allFilesAccessDeniedMessage": {
|
||
"description": "Message when permission is permanently denied"
|
||
},
|
||
"allFilesAccessDisabledMessage": "Доступ ко всем файлам отключен. Приложение будет использовать ограниченный доступ к хранилищу.",
|
||
"@allFilesAccessDisabledMessage": {
|
||
"description": "Snackbar message when user disables all files access"
|
||
},
|
||
"settingsLocalLibrary": "Локальная библиотека",
|
||
"@settingsLocalLibrary": {
|
||
"description": "Settings menu item - local library"
|
||
},
|
||
"settingsLocalLibrarySubtitle": "Сканировать и обнаружить дубликаты",
|
||
"@settingsLocalLibrarySubtitle": {
|
||
"description": "Subtitle for local library settings"
|
||
},
|
||
"settingsCache": "Хранилище и кэш",
|
||
"@settingsCache": {
|
||
"description": "Settings menu item - cache management"
|
||
},
|
||
"settingsCacheSubtitle": "Просмотреть размер и очистить кэш",
|
||
"@settingsCacheSubtitle": {
|
||
"description": "Subtitle for cache management menu"
|
||
},
|
||
"libraryTitle": "Локальная библиотека",
|
||
"@libraryTitle": {
|
||
"description": "Library settings page title"
|
||
},
|
||
"libraryScanSettings": "Настройки сканирования",
|
||
"@libraryScanSettings": {
|
||
"description": "Section header for scan settings"
|
||
},
|
||
"libraryEnableLocalLibrary": "Включить локальную библиотеку",
|
||
"@libraryEnableLocalLibrary": {
|
||
"description": "Toggle to enable library scanning"
|
||
},
|
||
"libraryEnableLocalLibrarySubtitle": "Сканировать и отслеживать вашу существующую музыку",
|
||
"@libraryEnableLocalLibrarySubtitle": {
|
||
"description": "Subtitle for enable toggle"
|
||
},
|
||
"libraryFolder": "Папка библиотеки",
|
||
"@libraryFolder": {
|
||
"description": "Folder selection setting"
|
||
},
|
||
"libraryFolderHint": "Нажмите, чтобы выбрать папку",
|
||
"@libraryFolderHint": {
|
||
"description": "Placeholder when no folder selected"
|
||
},
|
||
"libraryShowDuplicateIndicator": "Показать индикатор дубликатов",
|
||
"@libraryShowDuplicateIndicator": {
|
||
"description": "Toggle for duplicate indicator in search"
|
||
},
|
||
"libraryShowDuplicateIndicatorSubtitle": "Показать при поиске существующих треков",
|
||
"@libraryShowDuplicateIndicatorSubtitle": {
|
||
"description": "Subtitle for duplicate indicator toggle"
|
||
},
|
||
"libraryAutoScan": "Автосканирование",
|
||
"@libraryAutoScan": {
|
||
"description": "Setting for automatic library scanning"
|
||
},
|
||
"libraryAutoScanSubtitle": "Automatically scan your library for new files",
|
||
"@libraryAutoScanSubtitle": {
|
||
"description": "Subtitle for auto scan setting"
|
||
},
|
||
"libraryAutoScanOff": "Off",
|
||
"@libraryAutoScanOff": {
|
||
"description": "Auto scan disabled"
|
||
},
|
||
"libraryAutoScanOnOpen": "Каждое открытие приложения",
|
||
"@libraryAutoScanOnOpen": {
|
||
"description": "Auto scan when app opens"
|
||
},
|
||
"libraryAutoScanDaily": "Ежедневно",
|
||
"@libraryAutoScanDaily": {
|
||
"description": "Auto scan once per day"
|
||
},
|
||
"libraryAutoScanWeekly": "Еженедельно",
|
||
"@libraryAutoScanWeekly": {
|
||
"description": "Auto scan once per week"
|
||
},
|
||
"libraryActions": "Действия",
|
||
"@libraryActions": {
|
||
"description": "Section header for library actions"
|
||
},
|
||
"libraryScan": "Сканировать библиотеку",
|
||
"@libraryScan": {
|
||
"description": "Button to start library scan"
|
||
},
|
||
"libraryScanSubtitle": "Сканировать аудио файлы",
|
||
"@libraryScanSubtitle": {
|
||
"description": "Subtitle for scan button"
|
||
},
|
||
"libraryScanSelectFolderFirst": "Сначала выберите папку",
|
||
"@libraryScanSelectFolderFirst": {
|
||
"description": "Message when trying to scan without folder"
|
||
},
|
||
"libraryCleanupMissingFiles": "Очистка отсутствующих файлов",
|
||
"@libraryCleanupMissingFiles": {
|
||
"description": "Button to remove entries for missing files"
|
||
},
|
||
"libraryCleanupMissingFilesSubtitle": "Удалить записи для файлов, которых больше не существует",
|
||
"@libraryCleanupMissingFilesSubtitle": {
|
||
"description": "Subtitle for cleanup button"
|
||
},
|
||
"libraryClear": "Очистить библиотеку",
|
||
"@libraryClear": {
|
||
"description": "Button to clear all library entries"
|
||
},
|
||
"libraryClearSubtitle": "Удалить все сканированные треки",
|
||
"@libraryClearSubtitle": {
|
||
"description": "Subtitle for clear button"
|
||
},
|
||
"libraryClearConfirmTitle": "Очистить библиотеку",
|
||
"@libraryClearConfirmTitle": {
|
||
"description": "Dialog title for clear confirmation"
|
||
},
|
||
"libraryClearConfirmMessage": "Это удалит все сканированные треки из вашей библиотеки. Ваши фактические файлы не будут удалены.",
|
||
"@libraryClearConfirmMessage": {
|
||
"description": "Dialog message for clear confirmation"
|
||
},
|
||
"libraryAbout": "О локальной библиотеке",
|
||
"@libraryAbout": {
|
||
"description": "Section header for about info"
|
||
},
|
||
"libraryAboutDescription": "Сканирует существующую коллекцию музыки для обнаружения дубликатов при загрузке. Поддерживает форматы FLAC, M4A, MP3, Opus и OGG. Метаданные читаются из тегов файлов, если доступны.",
|
||
"@libraryAboutDescription": {
|
||
"description": "Description of local library feature"
|
||
},
|
||
"libraryTracksUnit": "{count, plural, =1{track} other{tracks}}",
|
||
"@libraryTracksUnit": {
|
||
"description": "Unit label for tracks count (without the number itself)",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"libraryFilesUnit": "{count, plural, =1{file} other{files}}",
|
||
"@libraryFilesUnit": {
|
||
"description": "Unit label for files count during library scanning",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"libraryLastScanned": "Последнее сканирование: {time}",
|
||
"@libraryLastScanned": {
|
||
"description": "Last scan time display",
|
||
"placeholders": {
|
||
"time": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"libraryLastScannedNever": "Никогда",
|
||
"@libraryLastScannedNever": {
|
||
"description": "Shown when library has never been scanned"
|
||
},
|
||
"libraryScanning": "Сканирование...",
|
||
"@libraryScanning": {
|
||
"description": "Status during scan"
|
||
},
|
||
"libraryScanFinalizing": "Завершение работы с библиотекой...",
|
||
"@libraryScanFinalizing": {
|
||
"description": "Status shown after file scanning finishes but library persistence is still running"
|
||
},
|
||
"libraryScanProgress": "{progress}% из {total} файлов",
|
||
"@libraryScanProgress": {
|
||
"description": "Scan progress display",
|
||
"placeholders": {
|
||
"progress": {
|
||
"type": "String"
|
||
},
|
||
"total": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"libraryInLibrary": "В библиотеке",
|
||
"@libraryInLibrary": {
|
||
"description": "Badge shown on tracks that exist in local library"
|
||
},
|
||
"libraryRemovedMissingFiles": "Удалено {count} {count, plural, one{отсутствующий файл} few{трека} many{отсутствующих файлов} other{отсутствующих файлов}} в библиотеке",
|
||
"@libraryRemovedMissingFiles": {
|
||
"description": "Snackbar after cleanup",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"libraryCleared": "Библиотека очищена",
|
||
"@libraryCleared": {
|
||
"description": "Snackbar after clearing library"
|
||
},
|
||
"libraryStorageAccessRequired": "Требуется доступ к хранилищу",
|
||
"@libraryStorageAccessRequired": {
|
||
"description": "Dialog title for storage permission"
|
||
},
|
||
"libraryStorageAccessMessage": "SpotiFLAC требуется доступ к хранилищу для сканирования вашей библиотеки музыки. Пожалуйста, предоставьте разрешение в настройках.",
|
||
"@libraryStorageAccessMessage": {
|
||
"description": "Dialog message for storage permission"
|
||
},
|
||
"libraryFolderNotExist": "Выбранной папки не существует",
|
||
"@libraryFolderNotExist": {
|
||
"description": "Error when folder doesn't exist"
|
||
},
|
||
"librarySourceDownloaded": "Скачанные",
|
||
"@librarySourceDownloaded": {
|
||
"description": "Badge for tracks downloaded via SpotiFLAC"
|
||
},
|
||
"librarySourceLocal": "Локальные",
|
||
"@librarySourceLocal": {
|
||
"description": "Badge for tracks from local library scan"
|
||
},
|
||
"libraryFilterAll": "Все",
|
||
"@libraryFilterAll": {
|
||
"description": "Filter chip - show all library items"
|
||
},
|
||
"libraryFilterDownloaded": "Скачанные",
|
||
"@libraryFilterDownloaded": {
|
||
"description": "Filter chip - show only downloaded items"
|
||
},
|
||
"libraryFilterLocal": "Локальные",
|
||
"@libraryFilterLocal": {
|
||
"description": "Filter chip - show only local library items"
|
||
},
|
||
"libraryFilterTitle": "Фильтры",
|
||
"@libraryFilterTitle": {
|
||
"description": "Filter bottom sheet title"
|
||
},
|
||
"libraryFilterReset": "Сброс",
|
||
"@libraryFilterReset": {
|
||
"description": "Reset all filters button"
|
||
},
|
||
"libraryFilterApply": "Применить",
|
||
"@libraryFilterApply": {
|
||
"description": "Apply filters button"
|
||
},
|
||
"libraryFilterSource": "Источник",
|
||
"@libraryFilterSource": {
|
||
"description": "Filter section - source type"
|
||
},
|
||
"libraryFilterQuality": "Качество",
|
||
"@libraryFilterQuality": {
|
||
"description": "Filter section - audio quality"
|
||
},
|
||
"libraryFilterQualityHiRes": "Hi-Res (24 бит)",
|
||
"@libraryFilterQualityHiRes": {
|
||
"description": "Filter option - high resolution audio"
|
||
},
|
||
"libraryFilterQualityCD": "CD (16 бит)",
|
||
"@libraryFilterQualityCD": {
|
||
"description": "Filter option - CD quality audio"
|
||
},
|
||
"libraryFilterQualityLossy": "С потерями",
|
||
"@libraryFilterQualityLossy": {
|
||
"description": "Filter option - lossy compressed audio"
|
||
},
|
||
"libraryFilterFormat": "Формат",
|
||
"@libraryFilterFormat": {
|
||
"description": "Filter section - file format"
|
||
},
|
||
"libraryFilterMetadata": "Метаданные",
|
||
"@libraryFilterMetadata": {
|
||
"description": "Filter section - metadata completeness"
|
||
},
|
||
"libraryFilterMetadataComplete": "Complete metadata",
|
||
"@libraryFilterMetadataComplete": {
|
||
"description": "Filter option - items with complete metadata"
|
||
},
|
||
"libraryFilterMetadataMissingAny": "Не хватает метаданных",
|
||
"@libraryFilterMetadataMissingAny": {
|
||
"description": "Filter option - items missing any tracked metadata field"
|
||
},
|
||
"libraryFilterMetadataMissingYear": "Отсутствует год",
|
||
"@libraryFilterMetadataMissingYear": {
|
||
"description": "Filter option - items missing release year/date"
|
||
},
|
||
"libraryFilterMetadataMissingGenre": "Отсутствует жанр",
|
||
"@libraryFilterMetadataMissingGenre": {
|
||
"description": "Filter option - items missing genre"
|
||
},
|
||
"libraryFilterMetadataMissingAlbumArtist": "Missing album artist",
|
||
"@libraryFilterMetadataMissingAlbumArtist": {
|
||
"description": "Filter option - items missing album artist"
|
||
},
|
||
"libraryFilterSort": "Сортировка",
|
||
"@libraryFilterSort": {
|
||
"description": "Filter section - sort order"
|
||
},
|
||
"libraryFilterSortLatest": "Последние",
|
||
"@libraryFilterSortLatest": {
|
||
"description": "Sort option - newest first"
|
||
},
|
||
"libraryFilterSortOldest": "Старые",
|
||
"@libraryFilterSortOldest": {
|
||
"description": "Sort option - oldest first"
|
||
},
|
||
"libraryFilterSortAlbumAsc": "Альбом (А-Я)",
|
||
"@libraryFilterSortAlbumAsc": {
|
||
"description": "Sort option - album ascending"
|
||
},
|
||
"libraryFilterSortAlbumDesc": "Альбом (Я-А)",
|
||
"@libraryFilterSortAlbumDesc": {
|
||
"description": "Sort option - album descending"
|
||
},
|
||
"libraryFilterSortGenreAsc": "Жанр (А-Я)",
|
||
"@libraryFilterSortGenreAsc": {
|
||
"description": "Sort option - genre ascending"
|
||
},
|
||
"libraryFilterSortGenreDesc": "Жанр (Я-А)",
|
||
"@libraryFilterSortGenreDesc": {
|
||
"description": "Sort option - genre descending"
|
||
},
|
||
"timeJustNow": "Только что",
|
||
"@timeJustNow": {
|
||
"description": "Relative time - less than a minute ago"
|
||
},
|
||
"timeMinutesAgo": "{count, plural, =1{1 minute ago} other{{count} minutes ago}}",
|
||
"@timeMinutesAgo": {
|
||
"description": "Relative time - minutes ago",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"timeHoursAgo": "{count, plural, =1{1 hour ago} other{{count} hours ago}}",
|
||
"@timeHoursAgo": {
|
||
"description": "Relative time - hours ago",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"tutorialWelcomeTitle": "Добро пожаловать в SpotiFLAC!",
|
||
"@tutorialWelcomeTitle": {
|
||
"description": "Tutorial welcome page title"
|
||
},
|
||
"tutorialWelcomeDesc": "Давайте научимся скачивать свою любимую музыку в качестве без потерь. В этом кратком руководстве мы покажем вам основы.",
|
||
"@tutorialWelcomeDesc": {
|
||
"description": "Tutorial welcome page description"
|
||
},
|
||
"tutorialWelcomeTip1": "Скачивайте музыку из Spotify, Deezer, или вставьте любой поддерживаемый URL",
|
||
"@tutorialWelcomeTip1": {
|
||
"description": "Tutorial welcome tip 1"
|
||
},
|
||
"tutorialWelcomeTip2": "Get FLAC quality audio from installed download extensions",
|
||
"@tutorialWelcomeTip2": {
|
||
"description": "Tutorial welcome tip 2"
|
||
},
|
||
"tutorialWelcomeTip3": "Автоматическое встраивание метаданных, обложек и текстов песен",
|
||
"@tutorialWelcomeTip3": {
|
||
"description": "Tutorial welcome tip 3"
|
||
},
|
||
"tutorialSearchTitle": "Поиск музыки",
|
||
"@tutorialSearchTitle": {
|
||
"description": "Tutorial search page title"
|
||
},
|
||
"tutorialSearchDesc": "Есть два простых способа найти музыку, которую вы хотите скачать.",
|
||
"@tutorialSearchDesc": {
|
||
"description": "Tutorial search page description"
|
||
},
|
||
"tutorialDownloadTitle": "Скачивание музыки",
|
||
"@tutorialDownloadTitle": {
|
||
"description": "Tutorial download page title"
|
||
},
|
||
"tutorialDownloadDesc": "Скачивание музыки просто и быстро. Вот как это работает.",
|
||
"@tutorialDownloadDesc": {
|
||
"description": "Tutorial download page description"
|
||
},
|
||
"tutorialLibraryTitle": "Ваша библиотека",
|
||
"@tutorialLibraryTitle": {
|
||
"description": "Tutorial library page title"
|
||
},
|
||
"tutorialLibraryDesc": "Вся скачанная музыка организована во вкладке Библиотека.",
|
||
"@tutorialLibraryDesc": {
|
||
"description": "Tutorial library page description"
|
||
},
|
||
"tutorialLibraryTip1": "Просмотр прогресса загрузки и очереди на вкладке Библиотека",
|
||
"@tutorialLibraryTip1": {
|
||
"description": "Tutorial library tip 1"
|
||
},
|
||
"tutorialLibraryTip2": "Нажмите на любой трек, чтобы воспроизвести его с помощью вашего музыкального плеера",
|
||
"@tutorialLibraryTip2": {
|
||
"description": "Tutorial library tip 2"
|
||
},
|
||
"tutorialLibraryTip3": "Переключение между списком и сеткой для лучшего просмотра",
|
||
"@tutorialLibraryTip3": {
|
||
"description": "Tutorial library tip 3"
|
||
},
|
||
"tutorialExtensionsTitle": "Расширения",
|
||
"@tutorialExtensionsTitle": {
|
||
"description": "Tutorial extensions page title"
|
||
},
|
||
"tutorialExtensionsDesc": "Расширьте возможности приложения с расширениями от сообщества.",
|
||
"@tutorialExtensionsDesc": {
|
||
"description": "Tutorial extensions page description"
|
||
},
|
||
"tutorialExtensionsTip1": "Browse the Repo tab to discover useful extensions",
|
||
"@tutorialExtensionsTip1": {
|
||
"description": "Tutorial extensions tip 1"
|
||
},
|
||
"tutorialExtensionsTip2": "Добавить новых поставщиков загрузок или поиска",
|
||
"@tutorialExtensionsTip2": {
|
||
"description": "Tutorial extensions tip 2"
|
||
},
|
||
"tutorialExtensionsTip3": "Получайте тексты песен, улучшенные метаданные и другие возможности",
|
||
"@tutorialExtensionsTip3": {
|
||
"description": "Tutorial extensions tip 3"
|
||
},
|
||
"tutorialSettingsTitle": "Настройте приложение под себя",
|
||
"@tutorialSettingsTitle": {
|
||
"description": "Tutorial settings page title"
|
||
},
|
||
"tutorialSettingsDesc": "Персонализируйте приложение в Настройках, чтобы оно соответствовало вашим предпочтениям.",
|
||
"@tutorialSettingsDesc": {
|
||
"description": "Tutorial settings page description"
|
||
},
|
||
"tutorialSettingsTip1": "Изменить местоположение и организацию папок для скачивания",
|
||
"@tutorialSettingsTip1": {
|
||
"description": "Tutorial settings tip 1"
|
||
},
|
||
"tutorialSettingsTip2": "Настройте качество и формата аудиофайла по умолчанию",
|
||
"@tutorialSettingsTip2": {
|
||
"description": "Tutorial settings tip 2"
|
||
},
|
||
"tutorialSettingsTip3": "Настроить тему и внешний вид приложения",
|
||
"@tutorialSettingsTip3": {
|
||
"description": "Tutorial settings tip 3"
|
||
},
|
||
"tutorialReadyMessage": "Всё готово! Начните загружать любимую музыку прямо сейчас.",
|
||
"@tutorialReadyMessage": {
|
||
"description": "Tutorial completion message"
|
||
},
|
||
"libraryForceFullScan": "Полное сканирование",
|
||
"@libraryForceFullScan": {
|
||
"description": "Button to force a complete rescan of library"
|
||
},
|
||
"libraryForceFullScanSubtitle": "Пересканировать все файлы, игнорировать кэш",
|
||
"@libraryForceFullScanSubtitle": {
|
||
"description": "Subtitle for force full scan button"
|
||
},
|
||
"cleanupOrphanedDownloads": "Очистка отложенных скачиваний",
|
||
"@cleanupOrphanedDownloads": {
|
||
"description": "Button to remove history entries for deleted files"
|
||
},
|
||
"cleanupOrphanedDownloadsSubtitle": "Удалить историю записи для файлов, которых больше не существует",
|
||
"@cleanupOrphanedDownloadsSubtitle": {
|
||
"description": "Subtitle for orphaned cleanup button"
|
||
},
|
||
"cleanupOrphanedDownloadsResult": "Удалено {count} утерянных записей из истории",
|
||
"@cleanupOrphanedDownloadsResult": {
|
||
"description": "Snackbar after orphan cleanup",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"cleanupOrphanedDownloadsNone": "Записей без описания не найдено",
|
||
"@cleanupOrphanedDownloadsNone": {
|
||
"description": "Snackbar when no orphans found"
|
||
},
|
||
"cacheTitle": "Хранилище и кэш",
|
||
"@cacheTitle": {
|
||
"description": "Cache management page title"
|
||
},
|
||
"cacheSummaryTitle": "Просмотр кэша",
|
||
"@cacheSummaryTitle": {
|
||
"description": "Heading for cache summary card"
|
||
},
|
||
"cacheSummarySubtitle": "Очистка кэша не приведет к удалению загруженных музыкальных файлов.",
|
||
"@cacheSummarySubtitle": {
|
||
"description": "Helper text for cache summary card"
|
||
},
|
||
"cacheEstimatedTotal": "Приблизительное использование кэша: {size}",
|
||
"@cacheEstimatedTotal": {
|
||
"description": "Total cache size shown in summary",
|
||
"placeholders": {
|
||
"size": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"cacheSectionStorage": "Кэшированные данные",
|
||
"@cacheSectionStorage": {
|
||
"description": "Section header for cache entries"
|
||
},
|
||
"cacheSectionMaintenance": "Обслуживание",
|
||
"@cacheSectionMaintenance": {
|
||
"description": "Section header for cleanup actions"
|
||
},
|
||
"cacheAppDirectory": "Папка кэша приложения",
|
||
"@cacheAppDirectory": {
|
||
"description": "Cache item title for app cache directory"
|
||
},
|
||
"cacheAppDirectoryDesc": "HTTP-ответы, данные WebView и другие временные данные приложения.",
|
||
"@cacheAppDirectoryDesc": {
|
||
"description": "Description of what app cache directory contains"
|
||
},
|
||
"cacheTempDirectory": "Временная директория",
|
||
"@cacheTempDirectory": {
|
||
"description": "Cache item title for temporary files directory"
|
||
},
|
||
"cacheTempDirectoryDesc": "Временные файлы из загрузок и аудио конвертации.",
|
||
"@cacheTempDirectoryDesc": {
|
||
"description": "Description of what temporary directory contains"
|
||
},
|
||
"cacheCoverImage": "Кэш обложек",
|
||
"@cacheCoverImage": {
|
||
"description": "Cache item title for persistent cover images"
|
||
},
|
||
"cacheCoverImageDesc": "Скачанный альбом и трек обложки. Будет заново скачан после просмотра.",
|
||
"@cacheCoverImageDesc": {
|
||
"description": "Description of what cover image cache contains"
|
||
},
|
||
"cacheLibraryCover": "Кэш обложек библиотеки",
|
||
"@cacheLibraryCover": {
|
||
"description": "Cache item title for local library cover art images"
|
||
},
|
||
"cacheLibraryCoverDesc": "Обложка извлечена из локальных музыкальных файлов. Будет повторно извлечено при следующем сканировании.",
|
||
"@cacheLibraryCoverDesc": {
|
||
"description": "Description of what library cover cache contains"
|
||
},
|
||
"cacheExploreFeed": "Просмотреть кэш ленты",
|
||
"@cacheExploreFeed": {
|
||
"description": "Cache item title for explore home feed cache"
|
||
},
|
||
"cacheExploreFeedDesc": "Изучите содержимое вкладки (новые релизы, тренды). Они обновятся при следующем посещении.",
|
||
"@cacheExploreFeedDesc": {
|
||
"description": "Description of what explore feed cache contains"
|
||
},
|
||
"cacheTrackLookup": "Отслеживать кэш поиска",
|
||
"@cacheTrackLookup": {
|
||
"description": "Cache item title for track ID lookup cache"
|
||
},
|
||
"cacheTrackLookupDesc": "Поиск ID трека в Spotify/Deezer. Очистка может замедлить следующие несколько поисков.",
|
||
"@cacheTrackLookupDesc": {
|
||
"description": "Description of what track lookup cache contains"
|
||
},
|
||
"cacheCleanupUnusedDesc": "Удалить записи из истории загрузок и библиотеки, которые остались без файлов.",
|
||
"@cacheCleanupUnusedDesc": {
|
||
"description": "Description of what cleanup unused data does"
|
||
},
|
||
"cacheNoData": "Нет кэшированных данных",
|
||
"@cacheNoData": {
|
||
"description": "Label when cache category has no data"
|
||
},
|
||
"cacheSizeWithFiles": "{size} в {count} файлах",
|
||
"@cacheSizeWithFiles": {
|
||
"description": "Cache size and file count",
|
||
"placeholders": {
|
||
"size": {
|
||
"type": "String"
|
||
},
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"cacheSizeOnly": "{size}",
|
||
"@cacheSizeOnly": {
|
||
"description": "Cache size only",
|
||
"placeholders": {
|
||
"size": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"cacheEntries": "{count} записей",
|
||
"@cacheEntries": {
|
||
"description": "Track cache entry count",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"cacheClearSuccess": "Очищено: {target}",
|
||
"@cacheClearSuccess": {
|
||
"description": "Snackbar after clearing selected cache",
|
||
"placeholders": {
|
||
"target": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"cacheClearConfirmTitle": "Очистить кэш?",
|
||
"@cacheClearConfirmTitle": {
|
||
"description": "Dialog title before clearing one cache category"
|
||
},
|
||
"cacheClearConfirmMessage": "Это очистит кэш для {target}. Загруженные музыкальные файлы не будут удалены.",
|
||
"@cacheClearConfirmMessage": {
|
||
"description": "Dialog message before clearing selected cache",
|
||
"placeholders": {
|
||
"target": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"cacheClearAllConfirmTitle": "Очистить весь кэш?",
|
||
"@cacheClearAllConfirmTitle": {
|
||
"description": "Dialog title before clearing all caches"
|
||
},
|
||
"cacheClearAllConfirmMessage": "Это очистит все категории кэша на этой странице. Скачанные музыкальные файлы не будут удалены.",
|
||
"@cacheClearAllConfirmMessage": {
|
||
"description": "Dialog message before clearing all caches"
|
||
},
|
||
"cacheClearAll": "Очистить весь кэш",
|
||
"@cacheClearAll": {
|
||
"description": "Button label to clear all caches"
|
||
},
|
||
"cacheCleanupUnused": "Очистка неиспользуемых данных",
|
||
"@cacheCleanupUnused": {
|
||
"description": "Action title for cleaning unused entries"
|
||
},
|
||
"cacheCleanupUnusedSubtitle": "Удалить историю загрузок, оставшихся без просмотра, и отсутствующие записи в библиотеке",
|
||
"@cacheCleanupUnusedSubtitle": {
|
||
"description": "Subtitle for cleanup unused data action"
|
||
},
|
||
"cacheCleanupResult": "Очистка завершена: {downloadCount} потерянных загрузок, {libraryCount} отсутствующих записей в библиотеке",
|
||
"@cacheCleanupResult": {
|
||
"description": "Snackbar after unused data cleanup",
|
||
"placeholders": {
|
||
"downloadCount": {
|
||
"type": "int"
|
||
},
|
||
"libraryCount": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"cacheRefreshStats": "Обновить статистику",
|
||
"@cacheRefreshStats": {
|
||
"description": "Button label to refresh cache statistics"
|
||
},
|
||
"trackSaveCoverArt": "Сохранить обложку",
|
||
"@trackSaveCoverArt": {
|
||
"description": "Menu action - save album cover art as file"
|
||
},
|
||
"trackSaveCoverArtSubtitle": "Сохранить обложку как файл .jpg",
|
||
"@trackSaveCoverArtSubtitle": {
|
||
"description": "Subtitle for save cover art action"
|
||
},
|
||
"trackSaveLyrics": "Сохранить текст (.lrc)",
|
||
"@trackSaveLyrics": {
|
||
"description": "Menu action - save lyrics as .lrc file"
|
||
},
|
||
"trackSaveLyricsSubtitle": "Получить и сохранить текст песни в формате .lrc",
|
||
"@trackSaveLyricsSubtitle": {
|
||
"description": "Subtitle for save lyrics action"
|
||
},
|
||
"trackSaveLyricsProgress": "Сохранение текста...",
|
||
"@trackSaveLyricsProgress": {
|
||
"description": "Snackbar while saving lyrics to file"
|
||
},
|
||
"trackReEnrich": "Обновить",
|
||
"@trackReEnrich": {
|
||
"description": "Menu action - re-embed metadata into audio file"
|
||
},
|
||
"trackReEnrichOnlineSubtitle": "Поиск в сети метаданных и встраивание в файл",
|
||
"@trackReEnrichOnlineSubtitle": {
|
||
"description": "Subtitle for re-enrich metadata action for local items"
|
||
},
|
||
"trackReEnrichFieldsTitle": "Поля для обновления",
|
||
"@trackReEnrichFieldsTitle": {
|
||
"description": "Section title for field selection in re-enrich dialog"
|
||
},
|
||
"trackReEnrichFieldCover": "Обложка",
|
||
"@trackReEnrichFieldCover": {
|
||
"description": "Checkbox label for cover art field in re-enrich"
|
||
},
|
||
"trackReEnrichFieldLyrics": "Текст песни",
|
||
"@trackReEnrichFieldLyrics": {
|
||
"description": "Checkbox label for lyrics field in re-enrich"
|
||
},
|
||
"trackReEnrichFieldBasicTags": "Альбом, Исполнитель альбома",
|
||
"@trackReEnrichFieldBasicTags": {
|
||
"description": "Checkbox label for basic tags in re-enrich (title/artist are never overwritten)"
|
||
},
|
||
"trackReEnrichFieldTrackInfo": "Номер трека и диска",
|
||
"@trackReEnrichFieldTrackInfo": {
|
||
"description": "Checkbox label for track info in re-enrich"
|
||
},
|
||
"trackReEnrichFieldReleaseInfo": "Дата и ISRC",
|
||
"@trackReEnrichFieldReleaseInfo": {
|
||
"description": "Checkbox label for release info in re-enrich"
|
||
},
|
||
"trackReEnrichFieldExtra": "Жанр, Название, Авторские права",
|
||
"@trackReEnrichFieldExtra": {
|
||
"description": "Checkbox label for extra metadata in re-enrich"
|
||
},
|
||
"trackReEnrichSelectAll": "Выбрать всё",
|
||
"@trackReEnrichSelectAll": {
|
||
"description": "Select all fields checkbox in re-enrich"
|
||
},
|
||
"trackEditMetadata": "Редактировать метаданные",
|
||
"@trackEditMetadata": {
|
||
"description": "Menu action - edit embedded metadata"
|
||
},
|
||
"trackCoverSaved": "Обложка сохранена в {fileName}",
|
||
"@trackCoverSaved": {
|
||
"description": "Snackbar after cover art saved",
|
||
"placeholders": {
|
||
"fileName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"trackCoverNoSource": "Нет доступных источников обложки",
|
||
"@trackCoverNoSource": {
|
||
"description": "Snackbar when no cover art URL or embedded cover"
|
||
},
|
||
"trackLyricsSaved": "Текст песни сохранен в {fileName}",
|
||
"@trackLyricsSaved": {
|
||
"description": "Snackbar after lyrics saved",
|
||
"placeholders": {
|
||
"fileName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"trackReEnrichProgress": "Обновление метаданных...",
|
||
"@trackReEnrichProgress": {
|
||
"description": "Snackbar while re-enriching metadata"
|
||
},
|
||
"trackReEnrichSearching": "Поиск метаданных в сети...",
|
||
"@trackReEnrichSearching": {
|
||
"description": "Snackbar while searching metadata from internet for local items"
|
||
},
|
||
"trackReEnrichSuccess": "Метаданные успешно обновлены",
|
||
"@trackReEnrichSuccess": {
|
||
"description": "Snackbar after successful re-enrichment"
|
||
},
|
||
"trackReEnrichFfmpegFailed": "Ошибка встраивания метаданных FFmpeg",
|
||
"@trackReEnrichFfmpegFailed": {
|
||
"description": "Snackbar when FFmpeg embed fails for MP3/Opus"
|
||
},
|
||
"queueFlacAction": "Очередь FLAC",
|
||
"@queueFlacAction": {
|
||
"description": "Action/button label for queueing FLAC redownloads for local tracks"
|
||
},
|
||
"queueFlacConfirmMessage": "Search online matches for the selected tracks and queue FLAC downloads.\n\nExisting files will not be modified or deleted.\n\nOnly high-confidence matches are queued automatically.\n\n{count} selected",
|
||
"@queueFlacConfirmMessage": {
|
||
"description": "Confirmation dialog body before queueing FLAC redownloads for local tracks",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"queueFlacFindingProgress": "Поиск совпадений FLAC... ({current}/{total})",
|
||
"@queueFlacFindingProgress": {
|
||
"description": "Snackbar while resolving remote matches for local FLAC redownloads",
|
||
"placeholders": {
|
||
"current": {
|
||
"type": "int"
|
||
},
|
||
"total": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"queueFlacNoReliableMatches": "No reliable online matches found for the selection",
|
||
"@queueFlacNoReliableMatches": {
|
||
"description": "Snackbar when no safe FLAC redownload matches were found"
|
||
},
|
||
"queueFlacQueuedWithSkipped": "Added {addedCount} tracks to queue, skipped {skippedCount}",
|
||
"@queueFlacQueuedWithSkipped": {
|
||
"description": "Snackbar when some selected local tracks were queued for FLAC redownload and some were skipped",
|
||
"placeholders": {
|
||
"addedCount": {
|
||
"type": "int"
|
||
},
|
||
"skippedCount": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"trackSaveFailed": "Ошибка: {error}",
|
||
"@trackSaveFailed": {
|
||
"description": "Snackbar when save operation fails",
|
||
"placeholders": {
|
||
"error": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"trackConvertFormat": "Переконвертировать формат",
|
||
"@trackConvertFormat": {
|
||
"description": "Menu item - convert audio format"
|
||
},
|
||
"trackConvertFormatSubtitle": "Convert to AAC/M4A, MP3, Opus, ALAC, or FLAC",
|
||
"@trackConvertFormatSubtitle": {
|
||
"description": "Subtitle for convert format menu item"
|
||
},
|
||
"trackConvertTitle": "Конвертировать аудио",
|
||
"@trackConvertTitle": {
|
||
"description": "Title of convert bottom sheet"
|
||
},
|
||
"trackConvertTargetFormat": "Целевой формат",
|
||
"@trackConvertTargetFormat": {
|
||
"description": "Label for format selection"
|
||
},
|
||
"trackConvertBitrate": "Битрейт",
|
||
"@trackConvertBitrate": {
|
||
"description": "Label for bitrate selection"
|
||
},
|
||
"trackConvertConfirmTitle": "Подтвердить конвертацию",
|
||
"@trackConvertConfirmTitle": {
|
||
"description": "Confirmation dialog title"
|
||
},
|
||
"trackConvertConfirmMessage": "Конвертировать из {sourceFormat} в {targetFormat} {bitrate}?\n\nОригинальный файл будет удален после конвертации.",
|
||
"@trackConvertConfirmMessage": {
|
||
"description": "Confirmation dialog message",
|
||
"placeholders": {
|
||
"sourceFormat": {
|
||
"type": "String"
|
||
},
|
||
"targetFormat": {
|
||
"type": "String"
|
||
},
|
||
"bitrate": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"trackConvertConfirmMessageLossless": "Convert from {sourceFormat} to {targetFormat}? (Lossless — no quality loss)\n\nThe original file will be deleted after conversion.",
|
||
"@trackConvertConfirmMessageLossless": {
|
||
"description": "Confirmation dialog message for lossless-to-lossless conversion",
|
||
"placeholders": {
|
||
"sourceFormat": {
|
||
"type": "String"
|
||
},
|
||
"targetFormat": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"trackConvertLosslessHint": "Конвертация без потери качества",
|
||
"@trackConvertLosslessHint": {
|
||
"description": "Hint shown when converting between lossless formats"
|
||
},
|
||
"trackConvertConverting": "Конвертация аудио...",
|
||
"@trackConvertConverting": {
|
||
"description": "Snackbar while converting"
|
||
},
|
||
"trackConvertSuccess": "Успешно конвертировано в {format}",
|
||
"@trackConvertSuccess": {
|
||
"description": "Snackbar after successful conversion",
|
||
"placeholders": {
|
||
"format": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"trackConvertFailed": "Ошибка конвертации",
|
||
"@trackConvertFailed": {
|
||
"description": "Snackbar when conversion fails"
|
||
},
|
||
"cueSplitTitle": "Разделить CUE Sheet",
|
||
"@cueSplitTitle": {
|
||
"description": "Title for CUE split bottom sheet"
|
||
},
|
||
"cueSplitSubtitle": "Разделить файл CUE+FLAC на отдельные треки",
|
||
"@cueSplitSubtitle": {
|
||
"description": "Subtitle for CUE split menu item"
|
||
},
|
||
"cueSplitAlbum": "Альбом: {album}",
|
||
"@cueSplitAlbum": {
|
||
"description": "Album name in CUE split sheet",
|
||
"placeholders": {
|
||
"album": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"cueSplitArtist": "Артист: {artist}",
|
||
"@cueSplitArtist": {
|
||
"description": "Artist name in CUE split sheet",
|
||
"placeholders": {
|
||
"artist": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"cueSplitTrackCount": "{count} треков",
|
||
"@cueSplitTrackCount": {
|
||
"description": "Number of tracks in CUE sheet",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"cueSplitConfirmTitle": "Разделенный CUE-альбом",
|
||
"@cueSplitConfirmTitle": {
|
||
"description": "CUE split confirmation dialog title"
|
||
},
|
||
"cueSplitConfirmMessage": "Разбить \"{album}\" на {count} отдельных FLAC-файлов?",
|
||
"@cueSplitConfirmMessage": {
|
||
"description": "CUE split confirmation dialog message",
|
||
"placeholders": {
|
||
"album": {
|
||
"type": "String"
|
||
},
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"cueSplitSplitting": "Разделение CUE sheet... ({current}/{total})",
|
||
"@cueSplitSplitting": {
|
||
"description": "Snackbar while splitting CUE",
|
||
"placeholders": {
|
||
"current": {
|
||
"type": "int"
|
||
},
|
||
"total": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"cueSplitSuccess": "Успешно разделено на {count} треков",
|
||
"@cueSplitSuccess": {
|
||
"description": "Snackbar after successful CUE split",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"cueSplitFailed": "Разделение CUE не удалось",
|
||
"@cueSplitFailed": {
|
||
"description": "Snackbar when CUE split fails"
|
||
},
|
||
"cueSplitNoAudioFile": "Аудиофайл для этого CUE sheet не найден",
|
||
"@cueSplitNoAudioFile": {
|
||
"description": "Error when CUE audio file is missing"
|
||
},
|
||
"cueSplitButton": "Разделить на Треки",
|
||
"@cueSplitButton": {
|
||
"description": "Button text to start CUE splitting"
|
||
},
|
||
"actionCreate": "Создать",
|
||
"@actionCreate": {
|
||
"description": "Generic action button - create"
|
||
},
|
||
"collectionFoldersTitle": "Мои папки",
|
||
"@collectionFoldersTitle": {
|
||
"description": "Library section title for custom folders"
|
||
},
|
||
"collectionWishlist": "Список желаемого",
|
||
"@collectionWishlist": {
|
||
"description": "Custom folder for saved tracks to download later"
|
||
},
|
||
"collectionLoved": "Любимые",
|
||
"@collectionLoved": {
|
||
"description": "Custom folder for favorite tracks"
|
||
},
|
||
"collectionFavoriteArtists": "Favorite Artists",
|
||
"@collectionFavoriteArtists": {
|
||
"description": "Custom folder for favorite artists"
|
||
},
|
||
"collectionPlaylists": "Плейлисты",
|
||
"@collectionPlaylists": {
|
||
"description": "Custom user playlists folder"
|
||
},
|
||
"collectionPlaylist": "Плейлист",
|
||
"@collectionPlaylist": {
|
||
"description": "Single playlist label"
|
||
},
|
||
"collectionAddToPlaylist": "Добавить в плейлист",
|
||
"@collectionAddToPlaylist": {
|
||
"description": "Action to add a track to user playlist"
|
||
},
|
||
"collectionCreatePlaylist": "Создать плейлист",
|
||
"@collectionCreatePlaylist": {
|
||
"description": "Action to create a new playlist"
|
||
},
|
||
"collectionNoPlaylistsYet": "Плейлисты отсутствуют",
|
||
"@collectionNoPlaylistsYet": {
|
||
"description": "Empty state title when user has no playlists"
|
||
},
|
||
"collectionNoPlaylistsSubtitle": "Создайте плейлист, чтобы начать классифицировать треки",
|
||
"@collectionNoPlaylistsSubtitle": {
|
||
"description": "Empty state subtitle when user has no playlists"
|
||
},
|
||
"collectionPlaylistTracks": "{count, plural, =1{1 track} other{{count} tracks}}",
|
||
"@collectionPlaylistTracks": {
|
||
"description": "Track count label for custom playlists",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"collectionArtistCount": "{count, plural, =1{1 artist} other{{count} artists}}",
|
||
"@collectionArtistCount": {
|
||
"description": "Artist count label for favorite artists",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"collectionAddedToPlaylist": "Добавлено в \"{playlistName}\"",
|
||
"@collectionAddedToPlaylist": {
|
||
"description": "Snackbar after adding track to playlist",
|
||
"placeholders": {
|
||
"playlistName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"collectionAlreadyInPlaylist": "Уже в \"{playlistName}\"",
|
||
"@collectionAlreadyInPlaylist": {
|
||
"description": "Snackbar when track already exists in playlist",
|
||
"placeholders": {
|
||
"playlistName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"collectionPlaylistCreated": "Плейлист создан",
|
||
"@collectionPlaylistCreated": {
|
||
"description": "Snackbar after creating playlist"
|
||
},
|
||
"collectionPlaylistNameHint": "Название плейлиста",
|
||
"@collectionPlaylistNameHint": {
|
||
"description": "Hint text for playlist name input"
|
||
},
|
||
"collectionPlaylistNameRequired": "Имя плейлиста обязательно",
|
||
"@collectionPlaylistNameRequired": {
|
||
"description": "Validation error for empty playlist name"
|
||
},
|
||
"collectionRenamePlaylist": "Переименовать плейлист",
|
||
"@collectionRenamePlaylist": {
|
||
"description": "Action to rename playlist"
|
||
},
|
||
"collectionDeletePlaylist": "Удалить плейлист",
|
||
"@collectionDeletePlaylist": {
|
||
"description": "Action to delete playlist"
|
||
},
|
||
"collectionDeletePlaylistMessage": "Удалить \"{playlistName}\" и все треки внутри него?",
|
||
"@collectionDeletePlaylistMessage": {
|
||
"description": "Confirmation message for deleting playlist",
|
||
"placeholders": {
|
||
"playlistName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"collectionPlaylistDeleted": "Плейлист удалён",
|
||
"@collectionPlaylistDeleted": {
|
||
"description": "Snackbar after deleting playlist"
|
||
},
|
||
"collectionPlaylistRenamed": "Плейлист переименован",
|
||
"@collectionPlaylistRenamed": {
|
||
"description": "Snackbar after renaming playlist"
|
||
},
|
||
"collectionWishlistEmptyTitle": "Список желаний пуст",
|
||
"@collectionWishlistEmptyTitle": {
|
||
"description": "Wishlist empty state title"
|
||
},
|
||
"collectionWishlistEmptySubtitle": "Нажмите + на треках, чтобы сохранить то, что вы хотите скачать позже",
|
||
"@collectionWishlistEmptySubtitle": {
|
||
"description": "Wishlist empty state subtitle"
|
||
},
|
||
"collectionLovedEmptyTitle": "Папка Любимые пуста",
|
||
"@collectionLovedEmptyTitle": {
|
||
"description": "Loved empty state title"
|
||
},
|
||
"collectionLovedEmptySubtitle": "Нажмите \"любовь\" на треках, чтобы сохранить ваши избранные",
|
||
"@collectionLovedEmptySubtitle": {
|
||
"description": "Loved empty state subtitle"
|
||
},
|
||
"collectionFavoriteArtistsEmptyTitle": "No favorite artists yet",
|
||
"@collectionFavoriteArtistsEmptyTitle": {
|
||
"description": "Favorite artists empty state title"
|
||
},
|
||
"collectionFavoriteArtistsEmptySubtitle": "Tap the heart on an artist page to keep them here",
|
||
"@collectionFavoriteArtistsEmptySubtitle": {
|
||
"description": "Favorite artists empty state subtitle"
|
||
},
|
||
"collectionPlaylistEmptyTitle": "Плейлист пуст",
|
||
"@collectionPlaylistEmptyTitle": {
|
||
"description": "Playlist empty state title"
|
||
},
|
||
"collectionPlaylistEmptySubtitle": "Удерживайте + на любом треке, чтобы добавить его сюда",
|
||
"@collectionPlaylistEmptySubtitle": {
|
||
"description": "Playlist empty state subtitle"
|
||
},
|
||
"collectionRemoveFromPlaylist": "Удалить из плейлиста",
|
||
"@collectionRemoveFromPlaylist": {
|
||
"description": "Tooltip for removing track from playlist"
|
||
},
|
||
"collectionRemoveFromFolder": "Убрать из папки",
|
||
"@collectionRemoveFromFolder": {
|
||
"description": "Tooltip for removing track from wishlist/loved folder"
|
||
},
|
||
"collectionRemoved": "\"{trackName}\" удалён",
|
||
"@collectionRemoved": {
|
||
"description": "Snackbar after removing a track from a collection",
|
||
"placeholders": {
|
||
"trackName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"collectionAddedToLoved": "\"{trackName}\" добавлен в Любимые",
|
||
"@collectionAddedToLoved": {
|
||
"description": "Snackbar after adding track to loved folder",
|
||
"placeholders": {
|
||
"trackName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"collectionRemovedFromLoved": "\"{trackName}\" удалено из Любимых",
|
||
"@collectionRemovedFromLoved": {
|
||
"description": "Snackbar after removing track from loved folder",
|
||
"placeholders": {
|
||
"trackName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"collectionAddedToWishlist": "\"{trackName}\" добавлен в список желаний",
|
||
"@collectionAddedToWishlist": {
|
||
"description": "Snackbar after adding track to wishlist",
|
||
"placeholders": {
|
||
"trackName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"collectionRemovedFromWishlist": "\"{trackName}\" удалён из списка желаний",
|
||
"@collectionRemovedFromWishlist": {
|
||
"description": "Snackbar after removing track from wishlist",
|
||
"placeholders": {
|
||
"trackName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"collectionAddedToFavoriteArtists": "\"{artistName}\" added to Favorite Artists",
|
||
"@collectionAddedToFavoriteArtists": {
|
||
"description": "Snackbar after adding artist to favorite artists",
|
||
"placeholders": {
|
||
"artistName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"collectionRemovedFromFavoriteArtists": "\"{artistName}\" removed from Favorite Artists",
|
||
"@collectionRemovedFromFavoriteArtists": {
|
||
"description": "Snackbar after removing artist from favorite artists",
|
||
"placeholders": {
|
||
"artistName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"trackOptionAddToLoved": "Добавить в Любимое",
|
||
"@trackOptionAddToLoved": {
|
||
"description": "Bottom sheet action label - add track to loved folder"
|
||
},
|
||
"trackOptionRemoveFromLoved": "Исключить из Любимых",
|
||
"@trackOptionRemoveFromLoved": {
|
||
"description": "Bottom sheet action label - remove track from loved folder"
|
||
},
|
||
"trackOptionAddToWishlist": "Добавить в список желаний",
|
||
"@trackOptionAddToWishlist": {
|
||
"description": "Bottom sheet action label - add track to wishlist"
|
||
},
|
||
"trackOptionRemoveFromWishlist": "Удалить из списка желаний",
|
||
"@trackOptionRemoveFromWishlist": {
|
||
"description": "Bottom sheet action label - remove track from wishlist"
|
||
},
|
||
"artistOptionAddToFavorites": "Add to Favorite Artists",
|
||
"@artistOptionAddToFavorites": {
|
||
"description": "Action label - add artist to favorite artists"
|
||
},
|
||
"artistOptionRemoveFromFavorites": "Remove from Favorite Artists",
|
||
"@artistOptionRemoveFromFavorites": {
|
||
"description": "Action label - remove artist from favorite artists"
|
||
},
|
||
"collectionPlaylistChangeCover": "Изменить обложку",
|
||
"@collectionPlaylistChangeCover": {
|
||
"description": "Bottom sheet action to pick a custom cover image for a playlist"
|
||
},
|
||
"collectionPlaylistRemoveCover": "Удалить обложку",
|
||
"@collectionPlaylistRemoveCover": {
|
||
"description": "Bottom sheet action to remove custom cover image from a playlist"
|
||
},
|
||
"selectionShareCount": "Share {count} {count, plural, =1{track} other{tracks}}",
|
||
"@selectionShareCount": {
|
||
"description": "Share button text with count in selection mode",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"selectionShareNoFiles": "Файлы, доступные для совместного доступа, не найдены",
|
||
"@selectionShareNoFiles": {
|
||
"description": "Snackbar when no selected files exist on disk"
|
||
},
|
||
"selectionConvertCount": "Convert {count} {count, plural, =1{track} other{tracks}}",
|
||
"@selectionConvertCount": {
|
||
"description": "Convert button text with count in selection mode",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"selectionConvertNoConvertible": "Не выбраны конвертируемые треки",
|
||
"@selectionConvertNoConvertible": {
|
||
"description": "Snackbar when no selected tracks support conversion"
|
||
},
|
||
"selectionBatchConvertConfirmTitle": "Пакетная конвертация",
|
||
"@selectionBatchConvertConfirmTitle": {
|
||
"description": "Confirmation dialog title for batch conversion"
|
||
},
|
||
"selectionBatchConvertConfirmMessage": "Преобразовать {count} {count, plural, =1{track} other{tracks}} в {format} с {bitrate}?",
|
||
"@selectionBatchConvertConfirmMessage": {
|
||
"description": "Confirmation dialog message for batch conversion",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
},
|
||
"format": {
|
||
"type": "String"
|
||
},
|
||
"bitrate": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"selectionBatchConvertConfirmMessageLossless": "Конвертировать {count} {count, plural, =1{track} other{tracks}} в {format}? (Без потери качества)\n\nОригинальные файлы будут удалены после конвертации.",
|
||
"@selectionBatchConvertConfirmMessageLossless": {
|
||
"description": "Confirmation dialog message for lossless batch conversion",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
},
|
||
"format": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"selectionBatchConvertProgress": "Конвертация {current} из {total}...",
|
||
"@selectionBatchConvertProgress": {
|
||
"description": "Snackbar during batch conversion progress",
|
||
"placeholders": {
|
||
"current": {
|
||
"type": "int"
|
||
},
|
||
"total": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"selectionBatchConvertSuccess": "Конвертировано {success} треков {total} в {format}",
|
||
"@selectionBatchConvertSuccess": {
|
||
"description": "Snackbar after batch conversion completes",
|
||
"placeholders": {
|
||
"success": {
|
||
"type": "int"
|
||
},
|
||
"total": {
|
||
"type": "int"
|
||
},
|
||
"format": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"downloadedAlbumDownloadedCount": "{count} скачано",
|
||
"@downloadedAlbumDownloadedCount": {
|
||
"description": "Downloaded tracks count badge",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"downloadUseAlbumArtistForFoldersAlbumSubtitle": "Папка названная в честь тега Альбома Артиста",
|
||
"@downloadUseAlbumArtistForFoldersAlbumSubtitle": {
|
||
"description": "Subtitle when album artist is used for folder names"
|
||
},
|
||
"downloadUseAlbumArtistForFoldersTrackSubtitle": "Папка названная в честь тега Трека Артиста",
|
||
"@downloadUseAlbumArtistForFoldersTrackSubtitle": {
|
||
"description": "Subtitle when track artist is used for folder names"
|
||
},
|
||
"lyricsProvidersTitle": "Приоритет к поставщику текста песни",
|
||
"@lyricsProvidersTitle": {
|
||
"description": "Settings item title for lyrics provider order"
|
||
},
|
||
"lyricsProvidersDescription": "Включайте, выключайте, переупорядочивайте источники текстов. Поставщики связаны сверху вниз пока проводится поиск текста.",
|
||
"@lyricsProvidersDescription": {
|
||
"description": "Description on the lyrics provider priority page"
|
||
},
|
||
"lyricsProvidersInfoText": "Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.",
|
||
"@lyricsProvidersInfoText": {
|
||
"description": "Info tip on lyrics provider priority page"
|
||
},
|
||
"lyricsProvidersEnabledSection": "Включено ({count})",
|
||
"@lyricsProvidersEnabledSection": {
|
||
"description": "Section header for enabled providers",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"lyricsProvidersDisabledSection": "Выключено ({count})",
|
||
"@lyricsProvidersDisabledSection": {
|
||
"description": "Section header for disabled providers",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"lyricsProvidersAtLeastOne": "At least one provider must remain enabled",
|
||
"@lyricsProvidersAtLeastOne": {
|
||
"description": "Snackbar when user tries to disable the last enabled provider"
|
||
},
|
||
"lyricsProvidersSaved": "Lyrics provider priority saved",
|
||
"@lyricsProvidersSaved": {
|
||
"description": "Snackbar after saving lyrics provider priority"
|
||
},
|
||
"lyricsProvidersDiscardContent": "У вас есть несохранённые изменения, которые будут потеряны.",
|
||
"@lyricsProvidersDiscardContent": {
|
||
"description": "Body text of the discard-changes dialog on lyrics provider page"
|
||
},
|
||
"lyricsProviderLrclibDesc": "Open-source synced lyrics database",
|
||
"@lyricsProviderLrclibDesc": {
|
||
"description": "Description for LRCLIB provider"
|
||
},
|
||
"lyricsProviderNeteaseDesc": "NetEase Cloud Music (хорош для азиатских песен)",
|
||
"@lyricsProviderNeteaseDesc": {
|
||
"description": "Description for Netease provider"
|
||
},
|
||
"lyricsProviderMusixmatchDesc": "Largest lyrics database (multi-language)",
|
||
"@lyricsProviderMusixmatchDesc": {
|
||
"description": "Description for Musixmatch provider"
|
||
},
|
||
"lyricsProviderAppleMusicDesc": "Word-by-word synced lyrics (via proxy)",
|
||
"@lyricsProviderAppleMusicDesc": {
|
||
"description": "Description for Apple Music provider"
|
||
},
|
||
"lyricsProviderQqMusicDesc": "QQ Музыка (хорошо подходит для китайских песен, через прокси)",
|
||
"@lyricsProviderQqMusicDesc": {
|
||
"description": "Description for QQ Music provider"
|
||
},
|
||
"lyricsProviderLyricsPlusDesc": "Word-by-word karaoke lyrics (Apple/Musixmatch/Spotify/QQ, via proxy)",
|
||
"@lyricsProviderLyricsPlusDesc": {
|
||
"description": "Description for LyricsPlus provider"
|
||
},
|
||
"lyricsProviderExtensionDesc": "Поставщик расширений",
|
||
"@lyricsProviderExtensionDesc": {
|
||
"description": "Generic description for extension-based lyrics providers"
|
||
},
|
||
"safMigrationTitle": "Storage Update Required",
|
||
"@safMigrationTitle": {
|
||
"description": "Title of SAF migration dialog"
|
||
},
|
||
"safMigrationMessage1": "SpotiFLAC now uses Android Storage Access Framework (SAF) for downloads. This fixes \"permission denied\" errors on Android 10+.",
|
||
"@safMigrationMessage1": {
|
||
"description": "First paragraph of SAF migration dialog"
|
||
},
|
||
"safMigrationMessage2": "Please select your download folder again to switch to the new storage system.",
|
||
"@safMigrationMessage2": {
|
||
"description": "Second paragraph of SAF migration dialog"
|
||
},
|
||
"safMigrationSuccess": "Download folder updated to SAF mode",
|
||
"@safMigrationSuccess": {
|
||
"description": "Snackbar after successfully migrating to SAF"
|
||
},
|
||
"settingsDonate": "Support Development",
|
||
"@settingsDonate": {
|
||
"description": "Settings menu item - donate page"
|
||
},
|
||
"settingsDonateSubtitle": "Buy the developer a coffee",
|
||
"@settingsDonateSubtitle": {
|
||
"description": "Subtitle for donate menu item"
|
||
},
|
||
"settingsBackup": "Backup & Restore",
|
||
"@settingsBackup": {
|
||
"description": "Settings menu item - backup and restore page"
|
||
},
|
||
"settingsBackupSubtitle": "Move your library, history and settings to a new device",
|
||
"@settingsBackupSubtitle": {
|
||
"description": "Subtitle for backup and restore settings item"
|
||
},
|
||
"backupTitle": "Backup & Restore",
|
||
"@backupTitle": {
|
||
"description": "App bar title for the backup and restore page"
|
||
},
|
||
"backupExportSectionTitle": "Create backup",
|
||
"@backupExportSectionTitle": {
|
||
"description": "Section title for the export/backup card"
|
||
},
|
||
"backupExportSectionDescription": "Save your settings, download history, liked tracks, wishlist, favorite artists and playlists into a single file you can keep or move to another phone.",
|
||
"@backupExportSectionDescription": {
|
||
"description": "Description of what a backup contains"
|
||
},
|
||
"backupExportButton": "Create backup file",
|
||
"@backupExportButton": {
|
||
"description": "Button to create and share a backup file"
|
||
},
|
||
"backupImportSectionTitle": "Restore backup",
|
||
"@backupImportSectionTitle": {
|
||
"description": "Section title for the import/restore card"
|
||
},
|
||
"backupImportSectionDescription": "Pick a backup file to restore your data. This replaces the current settings, history and library on this device.",
|
||
"@backupImportSectionDescription": {
|
||
"description": "Description for the restore action"
|
||
},
|
||
"backupImportButton": "Choose backup file",
|
||
"@backupImportButton": {
|
||
"description": "Button to pick a backup file to restore"
|
||
},
|
||
"backupCreating": "Creating backup...",
|
||
"@backupCreating": {
|
||
"description": "Progress text while a backup is being created"
|
||
},
|
||
"backupCreated": "Backup created",
|
||
"@backupCreated": {
|
||
"description": "Snackbar after a backup file is created"
|
||
},
|
||
"backupCreateFailed": "Failed to create backup",
|
||
"@backupCreateFailed": {
|
||
"description": "Snackbar when backup creation fails"
|
||
},
|
||
"backupEmpty": "There is nothing to back up yet",
|
||
"@backupEmpty": {
|
||
"description": "Snackbar when there is no data to back up"
|
||
},
|
||
"backupRestoreConfirmTitle": "Restore this backup?",
|
||
"@backupRestoreConfirmTitle": {
|
||
"description": "Confirmation dialog title before restoring a backup"
|
||
},
|
||
"backupRestoreConfirmMessage": "This will replace your current settings, download history, liked tracks, wishlist and playlists with the contents of the backup. This cannot be undone.",
|
||
"@backupRestoreConfirmMessage": {
|
||
"description": "Confirmation dialog message before restoring a backup"
|
||
},
|
||
"backupRestoreConfirmButton": "Restore",
|
||
"@backupRestoreConfirmButton": {
|
||
"description": "Confirm button to proceed with restore"
|
||
},
|
||
"backupRestoring": "Restoring backup...",
|
||
"@backupRestoring": {
|
||
"description": "Progress text while restoring a backup"
|
||
},
|
||
"backupRestored": "Backup restored successfully",
|
||
"@backupRestored": {
|
||
"description": "Snackbar after a successful restore"
|
||
},
|
||
"backupRestoreFailed": "Failed to restore backup",
|
||
"@backupRestoreFailed": {
|
||
"description": "Snackbar when restore fails"
|
||
},
|
||
"backupInvalidFile": "This file is not a valid SpotiFLAC backup",
|
||
"@backupInvalidFile": {
|
||
"description": "Snackbar when the chosen file is not a valid backup"
|
||
},
|
||
"backupRestoreRestartHint": "Restart the app to make sure every change is applied.",
|
||
"@backupRestoreRestartHint": {
|
||
"description": "Hint shown after restoring that an app restart is recommended"
|
||
},
|
||
"backupContentsTitle": "Backup contents",
|
||
"@backupContentsTitle": {
|
||
"description": "Header above the list summarizing what the backup contains"
|
||
},
|
||
"backupContentsSettings": "App settings",
|
||
"@backupContentsSettings": {
|
||
"description": "Backup contents row label for settings"
|
||
},
|
||
"backupContentsHistory": "{count} history {count, plural, =1{item} other{items}}",
|
||
"@backupContentsHistory": {
|
||
"description": "Backup contents row for history count",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"backupContentsLiked": "{count} liked {count, plural, =1{track} other{tracks}}",
|
||
"@backupContentsLiked": {
|
||
"description": "Backup contents row for liked tracks count",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"backupContentsWishlist": "{count} wishlist {count, plural, =1{track} other{tracks}}",
|
||
"@backupContentsWishlist": {
|
||
"description": "Backup contents row for wishlist tracks count",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"backupContentsPlaylists": "{count, plural, =1{1 playlist} other{{count} playlists}}",
|
||
"@backupContentsPlaylists": {
|
||
"description": "Backup contents row for playlist count",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"backupContentsArtists": "{count, plural, =1{1 favorite artist} other{{count} favorite artists}}",
|
||
"@backupContentsArtists": {
|
||
"description": "Backup contents row for favorite artists count",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"backupContentsExtensions": "{count, plural, =1{1 extension} other{{count} extensions}}",
|
||
"@backupContentsExtensions": {
|
||
"description": "Backup contents row for installed extensions count",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"backupIncludeSecrets": "Include extension credentials",
|
||
"@backupIncludeSecrets": {
|
||
"description": "Toggle to include secret extension settings (tokens, API keys) in the backup"
|
||
},
|
||
"backupIncludeSecretsDescription": "Tokens and API keys from extensions will be saved into the backup file. Keep the file private. When off, you re-enter them after restoring.",
|
||
"@backupIncludeSecretsDescription": {
|
||
"description": "Explanation for the include-credentials toggle"
|
||
},
|
||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the store.",
|
||
"@backupExtensionsRestoreFailed": {
|
||
"description": "Snackbar/hint when some extensions failed to reinstall during restore",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"tooltipLoveAll": "Love All",
|
||
"@tooltipLoveAll": {
|
||
"description": "Tooltip for the Love All button on album/playlist screens"
|
||
},
|
||
"tooltipAddToPlaylist": "Добавить в плейлист",
|
||
"@tooltipAddToPlaylist": {
|
||
"description": "Tooltip for the Add to Playlist button"
|
||
},
|
||
"snackbarRemovedTracksFromLoved": "Removed {count} tracks from Loved",
|
||
"@snackbarRemovedTracksFromLoved": {
|
||
"description": "Snackbar after removing multiple tracks from Loved folder",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"snackbarAddedTracksToLoved": "Added {count} tracks to Loved",
|
||
"@snackbarAddedTracksToLoved": {
|
||
"description": "Snackbar after adding multiple tracks to Loved folder",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"dialogDownloadAllTitle": "Скачать всё",
|
||
"@dialogDownloadAllTitle": {
|
||
"description": "Dialog title for bulk download confirmation"
|
||
},
|
||
"dialogDownloadAllMessage": "Download {count} tracks?",
|
||
"@dialogDownloadAllMessage": {
|
||
"description": "Body of the Download All confirmation dialog",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"homeSkipAlreadyDownloaded": "Skip already downloaded songs",
|
||
"@homeSkipAlreadyDownloaded": {
|
||
"description": "Checkbox label in import dialog to skip already-downloaded songs"
|
||
},
|
||
"homeGoToAlbum": "Перейти к альбому",
|
||
"@homeGoToAlbum": {
|
||
"description": "Context menu item to navigate to the album page"
|
||
},
|
||
"homeAlbumInfoUnavailable": "Album info not available",
|
||
"@homeAlbumInfoUnavailable": {
|
||
"description": "Snackbar when album info cannot be loaded"
|
||
},
|
||
"snackbarLoadingCueSheet": "Загрузка CUE разметки...",
|
||
"@snackbarLoadingCueSheet": {
|
||
"description": "Snackbar while loading a CUE sheet file"
|
||
},
|
||
"snackbarMetadataSaved": "Метаданные успешно сохранены",
|
||
"@snackbarMetadataSaved": {
|
||
"description": "Snackbar after successfully saving track metadata"
|
||
},
|
||
"snackbarFailedToEmbedLyrics": "Failed to embed lyrics",
|
||
"@snackbarFailedToEmbedLyrics": {
|
||
"description": "Snackbar when lyrics embedding fails"
|
||
},
|
||
"snackbarFailedToWriteStorage": "Failed to write back to storage",
|
||
"@snackbarFailedToWriteStorage": {
|
||
"description": "Snackbar when writing metadata back to file fails"
|
||
},
|
||
"snackbarError": "Ошибка: {error}",
|
||
"@snackbarError": {
|
||
"description": "Generic error snackbar with error detail",
|
||
"placeholders": {
|
||
"error": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"snackbarNoActionDefined": "No action defined for this button",
|
||
"@snackbarNoActionDefined": {
|
||
"description": "Snackbar when an extension button has no action configured"
|
||
},
|
||
"noTracksFoundForAlbum": "No tracks found for this album",
|
||
"@noTracksFoundForAlbum": {
|
||
"description": "Empty state message when an album has no tracks"
|
||
},
|
||
"downloadLocationSubtitle": "Choose where to save your downloaded tracks",
|
||
"@downloadLocationSubtitle": {
|
||
"description": "Subtitle shown in the download location picker sheet"
|
||
},
|
||
"storageModeAppFolder": "App Folder (Recommended)",
|
||
"@storageModeAppFolder": {
|
||
"description": "Storage mode option - app-managed folder"
|
||
},
|
||
"storageModeAppFolderSubtitle": "Saves to Music/SpotiFLAC by default",
|
||
"@storageModeAppFolderSubtitle": {
|
||
"description": "Subtitle for app folder storage mode"
|
||
},
|
||
"storageModeSaf": "Custom Folder (SAF)",
|
||
"@storageModeSaf": {
|
||
"description": "Storage mode option - Storage Access Framework"
|
||
},
|
||
"storageModeSafSubtitle": "Pick any folder, including SD card",
|
||
"@storageModeSafSubtitle": {
|
||
"description": "Subtitle for SAF storage mode"
|
||
},
|
||
"downloadFilenameDescription": "Use {artist}, {title}, {album}, {track}, {year}, {date}, {disc} as placeholders.",
|
||
"@downloadFilenameDescription": {
|
||
"description": "Description shown in filename format editor"
|
||
},
|
||
"downloadFilenameInsertTag": "Нажмите для вставки тега:",
|
||
"@downloadFilenameInsertTag": {
|
||
"description": "Label above filename tag chips"
|
||
},
|
||
"downloadSeparateSinglesEnabled": "Singles and EPs saved in a separate folder",
|
||
"@downloadSeparateSinglesEnabled": {
|
||
"description": "Subtitle when separate singles folder is on"
|
||
},
|
||
"downloadSeparateSinglesDisabled": "Singles and albums saved in the same folder",
|
||
"@downloadSeparateSinglesDisabled": {
|
||
"description": "Subtitle when separate singles folder is off"
|
||
},
|
||
"downloadArtistNameFilters": "Artist Name Filters",
|
||
"@downloadArtistNameFilters": {
|
||
"description": "Setting title for artist folder filter options"
|
||
},
|
||
"downloadCreatePlaylistSourceFolder": "Playlist Source Folder",
|
||
"@downloadCreatePlaylistSourceFolder": {
|
||
"description": "Setting to create a subfolder per playlist source"
|
||
},
|
||
"downloadCreatePlaylistSourceFolderEnabled": "A subfolder is created for each playlist",
|
||
"@downloadCreatePlaylistSourceFolderEnabled": {
|
||
"description": "Subtitle when playlist folder is enabled"
|
||
},
|
||
"downloadCreatePlaylistSourceFolderDisabled": "All tracks saved directly to download folder",
|
||
"@downloadCreatePlaylistSourceFolderDisabled": {
|
||
"description": "Subtitle when playlist folder is disabled"
|
||
},
|
||
"downloadCreatePlaylistSourceFolderRedundant": "Handled by folder organization setting",
|
||
"@downloadCreatePlaylistSourceFolderRedundant": {
|
||
"description": "Subtitle when folder organization is already set to playlist"
|
||
},
|
||
"downloadSongLinkRegion": "Регион SongLink",
|
||
"@downloadSongLinkRegion": {
|
||
"description": "Setting for SongLink region used during fallback resolution"
|
||
},
|
||
"downloadNetworkCompatibilityMode": "Network Compatibility Mode",
|
||
"@downloadNetworkCompatibilityMode": {
|
||
"description": "Setting for legacy TLS/network handling"
|
||
},
|
||
"downloadNetworkCompatibilityModeEnabled": "Using legacy TLS settings for older networks",
|
||
"@downloadNetworkCompatibilityModeEnabled": {
|
||
"description": "Subtitle when network compatibility mode is on"
|
||
},
|
||
"downloadNetworkCompatibilityModeDisabled": "Using standard network settings",
|
||
"@downloadNetworkCompatibilityModeDisabled": {
|
||
"description": "Subtitle when network compatibility mode is off"
|
||
},
|
||
"downloadAllowLocalNetwork": "Allow Local Network Access",
|
||
"@downloadAllowLocalNetwork": {
|
||
"description": "Setting title for allowing requests to private/local network targets"
|
||
},
|
||
"downloadAllowLocalNetworkEnabled": "Requests to local/private addresses are allowed (for local proxy or custom DNS)",
|
||
"@downloadAllowLocalNetworkEnabled": {
|
||
"description": "Subtitle when allow local network access is on"
|
||
},
|
||
"downloadAllowLocalNetworkDisabled": "Local/private addresses are blocked for security",
|
||
"@downloadAllowLocalNetworkDisabled": {
|
||
"description": "Subtitle when allow local network access is off"
|
||
},
|
||
"downloadSelectServiceToEnable": "Select a provider with quality options to enable this option",
|
||
"@downloadSelectServiceToEnable": {
|
||
"description": "Subtitle when quality picker is disabled due to extension service"
|
||
},
|
||
"downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality",
|
||
"@downloadSelectTidalQobuz": {
|
||
"description": "Legacy info shown when a provider does not expose quality options"
|
||
},
|
||
"downloadEmbedLyricsDisabled": "Enable metadata embedding first",
|
||
"@downloadEmbedLyricsDisabled": {
|
||
"description": "Subtitle when lyrics embedding is blocked by metadata toggle"
|
||
},
|
||
"downloadNeteaseIncludeTranslation": "Netease: включение перевода",
|
||
"@downloadNeteaseIncludeTranslation": {
|
||
"description": "Setting to include translated lyrics from Netease"
|
||
},
|
||
"downloadNeteaseIncludeTranslationEnabled": "Chinese translation lines included",
|
||
"@downloadNeteaseIncludeTranslationEnabled": {
|
||
"description": "Subtitle when Netease translation is on"
|
||
},
|
||
"downloadNeteaseIncludeTranslationDisabled": "Original lyrics only",
|
||
"@downloadNeteaseIncludeTranslationDisabled": {
|
||
"description": "Subtitle when Netease translation is off"
|
||
},
|
||
"downloadNeteaseIncludeRomanization": "Netease: Include Romanization",
|
||
"@downloadNeteaseIncludeRomanization": {
|
||
"description": "Setting to include romanized lyrics from Netease"
|
||
},
|
||
"downloadNeteaseIncludeRomanizationEnabled": "Romanization lines included",
|
||
"@downloadNeteaseIncludeRomanizationEnabled": {
|
||
"description": "Subtitle when Netease romanization is on"
|
||
},
|
||
"downloadNeteaseIncludeRomanizationDisabled": "No romanization",
|
||
"@downloadNeteaseIncludeRomanizationDisabled": {
|
||
"description": "Subtitle when Netease romanization is off"
|
||
},
|
||
"downloadAppleQqMultiPerson": "Apple / QQ: Multi-Person Lyrics",
|
||
"@downloadAppleQqMultiPerson": {
|
||
"description": "Setting for word-by-word multi-person lyrics from Apple Music and QQ Music"
|
||
},
|
||
"downloadAppleQqMultiPersonEnabled": "Speaker labels included for duets and group tracks",
|
||
"@downloadAppleQqMultiPersonEnabled": {
|
||
"description": "Subtitle when multi-person lyrics is on"
|
||
},
|
||
"downloadAppleQqMultiPersonDisabled": "Standard lyrics without speaker labels",
|
||
"@downloadAppleQqMultiPersonDisabled": {
|
||
"description": "Subtitle when multi-person lyrics is off"
|
||
},
|
||
"downloadAppleElrcWordSync": "Apple Music eLRC Word Sync",
|
||
"@downloadAppleElrcWordSync": {
|
||
"description": "Setting for preserving Apple Music word-by-word eLRC timestamps"
|
||
},
|
||
"downloadAppleElrcWordSyncEnabled": "Raw word-by-word timestamps preserved",
|
||
"@downloadAppleElrcWordSyncEnabled": {
|
||
"description": "Subtitle when Apple Music eLRC word sync is enabled"
|
||
},
|
||
"downloadAppleElrcWordSyncDisabled": "Safer line-by-line Apple Music lyrics",
|
||
"@downloadAppleElrcWordSyncDisabled": {
|
||
"description": "Subtitle when Apple Music eLRC word sync is disabled"
|
||
},
|
||
"downloadMusixmatchLanguage": "Язык Musixmatch",
|
||
"@downloadMusixmatchLanguage": {
|
||
"description": "Setting for Musixmatch lyrics translation language"
|
||
},
|
||
"downloadMusixmatchLanguageAuto": "Auto (original language)",
|
||
"@downloadMusixmatchLanguageAuto": {
|
||
"description": "Subtitle when no language is set"
|
||
},
|
||
"downloadFilterContributing": "Filter Contributing Artists",
|
||
"@downloadFilterContributing": {
|
||
"description": "Setting to strip contributing artists from Album Artist folder name"
|
||
},
|
||
"downloadFilterContributingEnabled": "Contributing artists removed from Album Artist folder name",
|
||
"@downloadFilterContributingEnabled": {
|
||
"description": "Subtitle when contributing artist filter is on"
|
||
},
|
||
"downloadFilterContributingDisabled": "Full Album Artist string used",
|
||
"@downloadFilterContributingDisabled": {
|
||
"description": "Subtitle when contributing artist filter is off"
|
||
},
|
||
"downloadProvidersNoneEnabled": "No providers enabled",
|
||
"@downloadProvidersNoneEnabled": {
|
||
"description": "Shown when no lyrics providers are active"
|
||
},
|
||
"downloadMusixmatchLanguageCode": "Код языка",
|
||
"@downloadMusixmatchLanguageCode": {
|
||
"description": "Label for Musixmatch language input field"
|
||
},
|
||
"downloadMusixmatchLanguageHint": "e.g. en, de, ja",
|
||
"@downloadMusixmatchLanguageHint": {
|
||
"description": "Placeholder for Musixmatch language input"
|
||
},
|
||
"downloadMusixmatchLanguageDesc": "Enter a BCP-47 language code (e.g. en, de, ja) to request translated lyrics from Musixmatch.",
|
||
"@downloadMusixmatchLanguageDesc": {
|
||
"description": "Description in Musixmatch language picker"
|
||
},
|
||
"downloadMusixmatchAuto": "Авто",
|
||
"@downloadMusixmatchAuto": {
|
||
"description": "Button to clear Musixmatch language (use auto)"
|
||
},
|
||
"downloadNetworkAnySubtitle": "Use WiFi or mobile data",
|
||
"@downloadNetworkAnySubtitle": {
|
||
"description": "Subtitle for any-network option in picker"
|
||
},
|
||
"downloadNetworkWifiOnlySubtitle": "Downloads pause when on mobile data",
|
||
"@downloadNetworkWifiOnlySubtitle": {
|
||
"description": "Subtitle for WiFi-only option in picker"
|
||
},
|
||
"downloadSongLinkRegionDesc": "Region used when resolving track links via SongLink. Choose the country where your streaming services are available.",
|
||
"@downloadSongLinkRegionDesc": {
|
||
"description": "Description in SongLink region picker"
|
||
},
|
||
"snackbarUnsupportedAudioFormat": "Неподдерживаемый аудио формат",
|
||
"@snackbarUnsupportedAudioFormat": {
|
||
"description": "Snackbar when the audio format is not supported for the requested operation"
|
||
},
|
||
"cacheRefresh": "Обновить",
|
||
"@cacheRefresh": {
|
||
"description": "Tooltip for refresh button on cache management page"
|
||
},
|
||
"dialogDownloadPlaylistsMessage": "Download {trackCount} {trackCount, plural, =1{track} other{tracks}} from {playlistCount} {playlistCount, plural, =1{playlist} other{playlists}}?",
|
||
"@dialogDownloadPlaylistsMessage": {
|
||
"description": "Dialog message for bulk playlist download confirmation",
|
||
"placeholders": {
|
||
"trackCount": {
|
||
"type": "int"
|
||
},
|
||
"playlistCount": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"bulkDownloadPlaylistsButton": "Download {count} {count, plural, =1{playlist} other{playlists}}",
|
||
"@bulkDownloadPlaylistsButton": {
|
||
"description": "Button label for bulk downloading selected playlists",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"bulkDownloadSelectPlaylists": "Select playlists to download",
|
||
"@bulkDownloadSelectPlaylists": {
|
||
"description": "Button label when no playlists are selected for download"
|
||
},
|
||
"snackbarSelectedPlaylistsEmpty": "Selected playlists have no tracks",
|
||
"@snackbarSelectedPlaylistsEmpty": {
|
||
"description": "Snackbar when selected playlists contain no tracks"
|
||
},
|
||
"playlistsCount": "{count, plural, =1{1 playlist} other{{count} playlists}}",
|
||
"@playlistsCount": {
|
||
"description": "Playlist count display",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"editMetadataAutoFill": "Auto-fill from online",
|
||
"@editMetadataAutoFill": {
|
||
"description": "Section title for selective online metadata auto-fill in the edit metadata sheet"
|
||
},
|
||
"editMetadataAutoFillDesc": "Select fields to fill automatically from online metadata",
|
||
"@editMetadataAutoFillDesc": {
|
||
"description": "Description for the auto-fill section"
|
||
},
|
||
"editMetadataAutoFillFetch": "Получить и заполнить",
|
||
"@editMetadataAutoFillFetch": {
|
||
"description": "Button label to fetch online metadata and fill selected fields"
|
||
},
|
||
"editMetadataAutoFillSearching": "Поиск в сети...",
|
||
"@editMetadataAutoFillSearching": {
|
||
"description": "Snackbar shown while searching for online metadata"
|
||
},
|
||
"editMetadataAutoFillNoResults": "No matching metadata found online",
|
||
"@editMetadataAutoFillNoResults": {
|
||
"description": "Snackbar when online metadata search returns no results"
|
||
},
|
||
"editMetadataAutoFillDone": "Filled {count} {count, plural, =1{field} other{fields}} from online metadata",
|
||
"@editMetadataAutoFillDone": {
|
||
"description": "Snackbar confirming how many fields were auto-filled",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"editMetadataAutoFillNoneSelected": "Select at least one field to auto-fill",
|
||
"@editMetadataAutoFillNoneSelected": {
|
||
"description": "Snackbar when user taps Fetch without selecting any fields"
|
||
},
|
||
"editMetadataFieldTitle": "Название",
|
||
"@editMetadataFieldTitle": {
|
||
"description": "Chip label for title field in auto-fill selector"
|
||
},
|
||
"editMetadataFieldArtist": "Исполнитель",
|
||
"@editMetadataFieldArtist": {
|
||
"description": "Chip label for artist field in auto-fill selector"
|
||
},
|
||
"editMetadataFieldAlbum": "Альбом",
|
||
"@editMetadataFieldAlbum": {
|
||
"description": "Chip label for album field in auto-fill selector"
|
||
},
|
||
"editMetadataFieldAlbumArtist": "Исполнитель альбома",
|
||
"@editMetadataFieldAlbumArtist": {
|
||
"description": "Chip label for album artist field in auto-fill selector"
|
||
},
|
||
"editMetadataFieldDate": "Дата",
|
||
"@editMetadataFieldDate": {
|
||
"description": "Chip label for date field in auto-fill selector"
|
||
},
|
||
"editMetadataFieldTrackNum": "Трек #",
|
||
"@editMetadataFieldTrackNum": {
|
||
"description": "Chip label for track number field in auto-fill selector"
|
||
},
|
||
"editMetadataFieldDiscNum": "Диск #",
|
||
"@editMetadataFieldDiscNum": {
|
||
"description": "Chip label for disc number field in auto-fill selector"
|
||
},
|
||
"editMetadataFieldGenre": "Жанр",
|
||
"@editMetadataFieldGenre": {
|
||
"description": "Chip label for genre field in auto-fill selector"
|
||
},
|
||
"editMetadataFieldIsrc": "ISRC",
|
||
"@editMetadataFieldIsrc": {
|
||
"description": "Chip label for ISRC field in auto-fill selector"
|
||
},
|
||
"editMetadataFieldLabel": "Заголовок",
|
||
"@editMetadataFieldLabel": {
|
||
"description": "Chip label for label field in auto-fill selector"
|
||
},
|
||
"editMetadataFieldCopyright": "Авторские права",
|
||
"@editMetadataFieldCopyright": {
|
||
"description": "Chip label for copyright field in auto-fill selector"
|
||
},
|
||
"editMetadataFieldCover": "Обложка",
|
||
"@editMetadataFieldCover": {
|
||
"description": "Chip label for cover art field in auto-fill selector"
|
||
},
|
||
"editMetadataSelectAll": "Все",
|
||
"@editMetadataSelectAll": {
|
||
"description": "Button to select all fields for auto-fill"
|
||
},
|
||
"editMetadataSelectEmpty": "Только пустые",
|
||
"@editMetadataSelectEmpty": {
|
||
"description": "Button to select only fields that are currently empty"
|
||
},
|
||
"queueDownloadingCount": "Скачивание ({count})",
|
||
"@queueDownloadingCount": {
|
||
"description": "Header for active downloads section with count",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"queueDownloadedHeader": "Скачано",
|
||
"@queueDownloadedHeader": {
|
||
"description": "Header label for downloaded items section in library"
|
||
},
|
||
"queueFilteringIndicator": "Фильтрация...",
|
||
"@queueFilteringIndicator": {
|
||
"description": "Shown while filter results are being computed"
|
||
},
|
||
"queueTrackCount": "{count, plural, =1{1 track} other{{count} tracks}}",
|
||
"@queueTrackCount": {
|
||
"description": "Track count label with plural support",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"queueAlbumCount": "{count, plural, =1{1 album} other{{count} albums}}",
|
||
"@queueAlbumCount": {
|
||
"description": "Album count label with plural support",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"queueEmptyAlbums": "No album downloads",
|
||
"@queueEmptyAlbums": {
|
||
"description": "Empty state title when no album downloads exist"
|
||
},
|
||
"queueEmptyAlbumsSubtitle": "Download multiple tracks from an album to see them here",
|
||
"@queueEmptyAlbumsSubtitle": {
|
||
"description": "Empty state subtitle for album downloads"
|
||
},
|
||
"queueEmptySingles": "No single downloads",
|
||
"@queueEmptySingles": {
|
||
"description": "Empty state title when no single track downloads exist"
|
||
},
|
||
"queueEmptySinglesSubtitle": "Single track downloads will appear here",
|
||
"@queueEmptySinglesSubtitle": {
|
||
"description": "Empty state subtitle for single track downloads"
|
||
},
|
||
"queueEmptyHistory": "Нет истории скачиваний",
|
||
"@queueEmptyHistory": {
|
||
"description": "Empty state title when download history is empty"
|
||
},
|
||
"queueEmptyHistorySubtitle": "Скачанные треки появятся здесь",
|
||
"@queueEmptyHistorySubtitle": {
|
||
"description": "Empty state subtitle for download history"
|
||
},
|
||
"selectionAllPlaylistsSelected": "Выбраны все плейлисты",
|
||
"@selectionAllPlaylistsSelected": {
|
||
"description": "Shown when all playlists are selected in selection mode"
|
||
},
|
||
"selectionTapPlaylistsToSelect": "Tap playlists to select",
|
||
"@selectionTapPlaylistsToSelect": {
|
||
"description": "Hint shown in playlist selection mode"
|
||
},
|
||
"selectionSelectPlaylistsToDelete": "Select playlists to delete",
|
||
"@selectionSelectPlaylistsToDelete": {
|
||
"description": "Hint shown when no playlists are selected for deletion"
|
||
},
|
||
"audioAnalysisTitle": "Audio Quality Analysis",
|
||
"@audioAnalysisTitle": {
|
||
"description": "Title for audio analysis section"
|
||
},
|
||
"audioAnalysisDescription": "Verify lossless quality with spectrum analysis",
|
||
"@audioAnalysisDescription": {
|
||
"description": "Description for audio analysis tap-to-analyze prompt"
|
||
},
|
||
"audioAnalysisAnalyzing": "Analyzing audio...",
|
||
"@audioAnalysisAnalyzing": {
|
||
"description": "Loading text while analyzing audio"
|
||
},
|
||
"audioAnalysisSampleRate": "Частота дискретизации",
|
||
"@audioAnalysisSampleRate": {
|
||
"description": "Sample rate metric label"
|
||
},
|
||
"audioAnalysisCodec": "Codec",
|
||
"@audioAnalysisCodec": {
|
||
"description": "Audio codec metric label"
|
||
},
|
||
"audioAnalysisContainer": "Container",
|
||
"@audioAnalysisContainer": {
|
||
"description": "Audio container metric label"
|
||
},
|
||
"audioAnalysisDecodedFormat": "Decoded Format",
|
||
"@audioAnalysisDecodedFormat": {
|
||
"description": "Decoded sample format metric label"
|
||
},
|
||
"audioAnalysisBitDepth": "Разрядность",
|
||
"@audioAnalysisBitDepth": {
|
||
"description": "Bit depth metric label"
|
||
},
|
||
"audioAnalysisChannels": "Каналы",
|
||
"@audioAnalysisChannels": {
|
||
"description": "Channels metric label"
|
||
},
|
||
"audioAnalysisDuration": "Продолжительность",
|
||
"@audioAnalysisDuration": {
|
||
"description": "Duration metric label"
|
||
},
|
||
"audioAnalysisNyquist": "Nyquist",
|
||
"@audioAnalysisNyquist": {
|
||
"description": "Nyquist frequency metric label"
|
||
},
|
||
"audioAnalysisFileSize": "Размер",
|
||
"@audioAnalysisFileSize": {
|
||
"description": "File size metric label"
|
||
},
|
||
"audioAnalysisDynamicRange": "Динамический диапазон",
|
||
"@audioAnalysisDynamicRange": {
|
||
"description": "Dynamic range metric label"
|
||
},
|
||
"audioAnalysisPeak": "Peak",
|
||
"@audioAnalysisPeak": {
|
||
"description": "Peak amplitude metric label"
|
||
},
|
||
"audioAnalysisRms": "RMS",
|
||
"@audioAnalysisRms": {
|
||
"description": "RMS level metric label"
|
||
},
|
||
"audioAnalysisLufs": "LUFS",
|
||
"@audioAnalysisLufs": {
|
||
"description": "Integrated loudness metric label"
|
||
},
|
||
"audioAnalysisTruePeak": "True Peak",
|
||
"@audioAnalysisTruePeak": {
|
||
"description": "True peak metric label"
|
||
},
|
||
"audioAnalysisClipping": "Clipping",
|
||
"@audioAnalysisClipping": {
|
||
"description": "Clipping metric label"
|
||
},
|
||
"audioAnalysisNoClipping": "No clipping",
|
||
"@audioAnalysisNoClipping": {
|
||
"description": "Displayed when no clipped samples were detected"
|
||
},
|
||
"audioAnalysisSpectralCutoff": "Spectral Cutoff",
|
||
"@audioAnalysisSpectralCutoff": {
|
||
"description": "Estimated spectral cutoff metric label"
|
||
},
|
||
"audioAnalysisChannelStats": "Per-channel Stats",
|
||
"@audioAnalysisChannelStats": {
|
||
"description": "Per-channel audio analysis section label"
|
||
},
|
||
"audioAnalysisSamples": "Сэмплы",
|
||
"@audioAnalysisSamples": {
|
||
"description": "Total samples metric label"
|
||
},
|
||
"audioAnalysisRescan": "Re-analyze",
|
||
"@audioAnalysisRescan": {
|
||
"description": "Tooltip/label for the button that re-runs the audio analysis, discarding cached results"
|
||
},
|
||
"audioAnalysisRescanning": "Re-analyzing audio...",
|
||
"@audioAnalysisRescanning": {
|
||
"description": "Loading text while audio is being re-analyzed after an explicit refresh"
|
||
},
|
||
"extensionsSearchWith": "Искать с помощью {providerName}",
|
||
"@extensionsSearchWith": {
|
||
"description": "Extensions page - subtitle for default metadata search provider option",
|
||
"placeholders": {
|
||
"providerName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"extensionsHomeFeedProvider": "Home Feed Provider",
|
||
"@extensionsHomeFeedProvider": {
|
||
"description": "Extensions page - label for home feed provider selector"
|
||
},
|
||
"extensionsHomeFeedDescription": "Choose which extension provides the home feed on the main screen",
|
||
"@extensionsHomeFeedDescription": {
|
||
"description": "Extensions page - description for home feed provider picker"
|
||
},
|
||
"extensionsHomeFeedAuto": "Авто",
|
||
"@extensionsHomeFeedAuto": {
|
||
"description": "Label for auto-selected search provider"
|
||
},
|
||
"extensionsHomeFeedAutoSubtitle": "Automatically select the best available",
|
||
"@extensionsHomeFeedAutoSubtitle": {
|
||
"description": "Extensions page - subtitle for auto home feed option"
|
||
},
|
||
"extensionsHomeFeedOff": "Off",
|
||
"@extensionsHomeFeedOff": {
|
||
"description": "Extensions page - home feed provider option: off"
|
||
},
|
||
"extensionsHomeFeedOffSubtitle": "Do not show the home feed on the main screen",
|
||
"@extensionsHomeFeedOffSubtitle": {
|
||
"description": "Extensions page - subtitle for off home feed option"
|
||
},
|
||
"extensionsHomeFeedUse": "Use {extensionName} home feed",
|
||
"@extensionsHomeFeedUse": {
|
||
"description": "Extensions page - subtitle for a specific extension home feed option",
|
||
"placeholders": {
|
||
"extensionName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"extensionsNoHomeFeedExtensions": "No extensions with home feed",
|
||
"@extensionsNoHomeFeedExtensions": {
|
||
"description": "Extensions page - shown when no installed extension has home feed"
|
||
},
|
||
"sortAlphaAsc": "А-Я",
|
||
"@sortAlphaAsc": {
|
||
"description": "Sort option - alphabetical ascending"
|
||
},
|
||
"sortAlphaDesc": "Я-А",
|
||
"@sortAlphaDesc": {
|
||
"description": "Sort option - alphabetical descending"
|
||
},
|
||
"cancelDownloadTitle": "Отменить скачивание?",
|
||
"@cancelDownloadTitle": {
|
||
"description": "Dialog title when confirming cancellation of an active download"
|
||
},
|
||
"cancelDownloadContent": "This will cancel the active download for \"{trackName}\".",
|
||
"@cancelDownloadContent": {
|
||
"description": "Dialog body when confirming cancellation of an active download",
|
||
"placeholders": {
|
||
"trackName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"cancelDownloadKeep": "Удерживать",
|
||
"@cancelDownloadKeep": {
|
||
"description": "Dialog button - keep the active download (do not cancel)"
|
||
},
|
||
"metadataSaveFailedFfmpeg": "Не удалось сохранить метаданные через FFmpeg",
|
||
"@metadataSaveFailedFfmpeg": {
|
||
"description": "Snackbar error when FFmpeg fails to write metadata"
|
||
},
|
||
"metadataSaveFailedStorage": "Не удалось записать метаданные обратно в хранилище",
|
||
"@metadataSaveFailedStorage": {
|
||
"description": "Snackbar error when writing metadata file back to storage fails"
|
||
},
|
||
"snackbarFolderPickerFailed": "Не удалось открыть выбор папок: {error}",
|
||
"@snackbarFolderPickerFailed": {
|
||
"description": "Snackbar shown when folder picker fails to open",
|
||
"placeholders": {
|
||
"error": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"errorLoadAlbum": "Не удалось загрузить альбом",
|
||
"@errorLoadAlbum": {
|
||
"description": "Error state shown when album fails to load"
|
||
},
|
||
"errorLoadPlaylist": "Не удалось загрузить плейлист",
|
||
"@errorLoadPlaylist": {
|
||
"description": "Error state shown when playlist fails to load"
|
||
},
|
||
"errorLoadArtist": "Не удалось загрузить исполнителя",
|
||
"@errorLoadArtist": {
|
||
"description": "Error state shown when artist fails to load"
|
||
},
|
||
"notifChannelDownloadName": "Прогресс скачивания",
|
||
"@notifChannelDownloadName": {
|
||
"description": "Android notification channel name for download progress"
|
||
},
|
||
"notifChannelDownloadDesc": "Shows download progress for tracks",
|
||
"@notifChannelDownloadDesc": {
|
||
"description": "Android notification channel description for download progress"
|
||
},
|
||
"notifChannelLibraryScanName": "Сканирование библиотеки",
|
||
"@notifChannelLibraryScanName": {
|
||
"description": "Android notification channel name for library scan"
|
||
},
|
||
"notifChannelLibraryScanDesc": "Shows local library scan progress",
|
||
"@notifChannelLibraryScanDesc": {
|
||
"description": "Android notification channel description for library scan"
|
||
},
|
||
"notifDownloadingTrack": "Downloading {trackName}",
|
||
"@notifDownloadingTrack": {
|
||
"description": "Notification title while downloading a track",
|
||
"placeholders": {
|
||
"trackName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"notifFinalizingTrack": "Finalizing {trackName}",
|
||
"@notifFinalizingTrack": {
|
||
"description": "Notification title while finalizing (embedding metadata) a track",
|
||
"placeholders": {
|
||
"trackName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"notifEmbeddingMetadata": "Встраивание метаданных...",
|
||
"@notifEmbeddingMetadata": {
|
||
"description": "Notification body while embedding metadata into a downloaded track"
|
||
},
|
||
"notifAlreadyInLibraryCount": "Уже в библиотеке ({completed}/{total})",
|
||
"@notifAlreadyInLibraryCount": {
|
||
"description": "Notification title when track is already in library, with count",
|
||
"placeholders": {
|
||
"completed": {
|
||
"type": "int"
|
||
},
|
||
"total": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"notifAlreadyInLibrary": "Уже в библиотеке",
|
||
"@notifAlreadyInLibrary": {
|
||
"description": "Notification title when track is already in library"
|
||
},
|
||
"notifDownloadCompleteCount": "Загрузка завершена ({completed}/{total})",
|
||
"@notifDownloadCompleteCount": {
|
||
"description": "Notification title when download is complete, with count",
|
||
"placeholders": {
|
||
"completed": {
|
||
"type": "int"
|
||
},
|
||
"total": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"notifDownloadComplete": "Скачивание завершено",
|
||
"@notifDownloadComplete": {
|
||
"description": "Notification title when a single download is complete"
|
||
},
|
||
"notifDownloadsFinished": "Загрузка завершена ({completed} завершено, {failed} не удалось)",
|
||
"@notifDownloadsFinished": {
|
||
"description": "Notification title when queue finishes with some failures",
|
||
"placeholders": {
|
||
"completed": {
|
||
"type": "int"
|
||
},
|
||
"failed": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"notifAllDownloadsComplete": "Все загрузки завершены",
|
||
"@notifAllDownloadsComplete": {
|
||
"description": "Notification title when all downloads finish successfully"
|
||
},
|
||
"notifTracksDownloadedSuccess": "{count, plural, =1{1 track downloaded successfully} other{{count} tracks downloaded successfully}}",
|
||
"@notifTracksDownloadedSuccess": {
|
||
"description": "Notification body for queue complete - how many tracks were downloaded",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"notifDownloadsFinishedBody": "{completed, plural, =1{1 track downloaded} other{{completed} tracks downloaded}}, {failed, plural, =1{1 failed} other{{failed} failed}}",
|
||
"@notifDownloadsFinishedBody": {
|
||
"description": "Notification body when queue finishes with failures",
|
||
"placeholders": {
|
||
"completed": {
|
||
"type": "int"
|
||
},
|
||
"failed": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"notifDownloadsCanceledTitle": "Downloads canceled",
|
||
"@notifDownloadsCanceledTitle": {
|
||
"description": "Notification title when downloads are canceled by the user"
|
||
},
|
||
"notifDownloadsCanceledBody": "{count, plural, =1{1 download canceled by user} other{{count} downloads canceled by user}}",
|
||
"@notifDownloadsCanceledBody": {
|
||
"description": "Notification body when downloads are canceled by the user",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"notifScanningLibrary": "Сканирование локальной библиотеки",
|
||
"@notifScanningLibrary": {
|
||
"description": "Notification title while scanning local library"
|
||
},
|
||
"notifLibraryScanProgressWithTotal": "{scanned}/{total} files • {percentage}%",
|
||
"@notifLibraryScanProgressWithTotal": {
|
||
"description": "Notification body for library scan progress when total is known",
|
||
"placeholders": {
|
||
"scanned": {
|
||
"type": "int"
|
||
},
|
||
"total": {
|
||
"type": "int"
|
||
},
|
||
"percentage": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"notifLibraryScanProgressNoTotal": "{scanned} files scanned • {percentage}%",
|
||
"@notifLibraryScanProgressNoTotal": {
|
||
"description": "Notification body for library scan progress when total is unknown",
|
||
"placeholders": {
|
||
"scanned": {
|
||
"type": "int"
|
||
},
|
||
"percentage": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"notifLibraryScanComplete": "Сканирование библиотеки завершено",
|
||
"@notifLibraryScanComplete": {
|
||
"description": "Notification title when library scan finishes"
|
||
},
|
||
"notifLibraryScanCompleteBody": "{count} треков индексировано",
|
||
"@notifLibraryScanCompleteBody": {
|
||
"description": "Notification body for library scan complete - number of indexed tracks",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"notifLibraryScanExcluded": "{count} исключено",
|
||
"@notifLibraryScanExcluded": {
|
||
"description": "Library scan complete suffix - excluded track count",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"notifLibraryScanErrors": "{count} ошибок",
|
||
"@notifLibraryScanErrors": {
|
||
"description": "Library scan complete suffix - error count",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"notifLibraryScanFailed": "Ошибка сканирования библиотеки",
|
||
"@notifLibraryScanFailed": {
|
||
"description": "Notification title when library scan fails"
|
||
},
|
||
"notifLibraryScanCancelled": "Сканирование библиотеки отменено",
|
||
"@notifLibraryScanCancelled": {
|
||
"description": "Notification title when library scan is cancelled by the user"
|
||
},
|
||
"notifLibraryScanStopped": "Сканирование остановлено перед завершением.",
|
||
"@notifLibraryScanStopped": {
|
||
"description": "Notification body when library scan is cancelled"
|
||
},
|
||
"notifDownloadingUpdate": "Downloading SpotiFLAC Mobile v{version}",
|
||
"@notifDownloadingUpdate": {
|
||
"description": "Notification title while downloading an app update",
|
||
"placeholders": {
|
||
"version": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"notifUpdateProgress": "{received} / {total} МБ • {percentage}%",
|
||
"@notifUpdateProgress": {
|
||
"description": "Notification body showing update download progress",
|
||
"placeholders": {
|
||
"received": {
|
||
"type": "String"
|
||
},
|
||
"total": {
|
||
"type": "String"
|
||
},
|
||
"percentage": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"notifUpdateReady": "Обновление готово",
|
||
"@notifUpdateReady": {
|
||
"description": "Notification title when app update download is complete"
|
||
},
|
||
"notifUpdateReadyBody": "SpotiFLAC Mobile v{version} downloaded. Tap to install.",
|
||
"@notifUpdateReadyBody": {
|
||
"description": "Notification body when app update is ready to install",
|
||
"placeholders": {
|
||
"version": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"notifUpdateFailed": "Ошибка обновления",
|
||
"@notifUpdateFailed": {
|
||
"description": "Notification title when app update download fails"
|
||
},
|
||
"notifUpdateFailedBody": "Не удалось скачать обновление. Попробуйте позже.",
|
||
"@notifUpdateFailedBody": {
|
||
"description": "Notification body when app update download fails"
|
||
},
|
||
"searchTracks": "Tracks",
|
||
"@searchTracks": {
|
||
"description": "Search filter label - tracks"
|
||
},
|
||
"homeSearchHintDefault": "Paste supported URL or search...",
|
||
"@homeSearchHintDefault": {
|
||
"description": "Default placeholder for the main search field on Home"
|
||
},
|
||
"homeSearchHintProvider": "Search with {providerName}...",
|
||
"@homeSearchHintProvider": {
|
||
"description": "Placeholder for the main search field when a provider is selected",
|
||
"placeholders": {
|
||
"providerName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"homeImportCsvTooltip": "Import CSV",
|
||
"@homeImportCsvTooltip": {
|
||
"description": "Tooltip for importing a CSV file into Home search"
|
||
},
|
||
"homeChangeSearchProviderTooltip": "Change search provider",
|
||
"@homeChangeSearchProviderTooltip": {
|
||
"description": "Tooltip for the Home search provider picker"
|
||
},
|
||
"actionPaste": "Paste",
|
||
"@actionPaste": {
|
||
"description": "Generic action - paste from clipboard"
|
||
},
|
||
"searchTracksHint": "Search tracks...",
|
||
"@searchTracksHint": {
|
||
"description": "Placeholder for the search screen input"
|
||
},
|
||
"searchTracksEmptyPrompt": "Search for tracks",
|
||
"@searchTracksEmptyPrompt": {
|
||
"description": "Empty-state prompt on the search screen"
|
||
},
|
||
"tutorialSearchHint": "Paste or search...",
|
||
"@tutorialSearchHint": {
|
||
"description": "Placeholder shown in the tutorial search demo"
|
||
},
|
||
"tutorialDownloadCompletedSemantics": "Download completed",
|
||
"@tutorialDownloadCompletedSemantics": {
|
||
"description": "Accessibility label for completed download state in tutorial demo"
|
||
},
|
||
"tutorialDownloadInProgressSemantics": "Download in progress",
|
||
"@tutorialDownloadInProgressSemantics": {
|
||
"description": "Accessibility label for active download state in tutorial demo"
|
||
},
|
||
"tutorialStartDownloadSemantics": "Start download",
|
||
"@tutorialStartDownloadSemantics": {
|
||
"description": "Accessibility label for idle download button in tutorial demo"
|
||
},
|
||
"optionsEmbedMetadata": "Embed Metadata",
|
||
"@optionsEmbedMetadata": {
|
||
"description": "Settings toggle title for writing metadata into downloaded files"
|
||
},
|
||
"optionsEmbedMetadataSubtitleOn": "Write metadata, cover art, and embedded lyrics to files",
|
||
"@optionsEmbedMetadataSubtitleOn": {
|
||
"description": "Subtitle when metadata embedding is enabled"
|
||
},
|
||
"optionsEmbedMetadataSubtitleOff": "Disabled (advanced): skip all metadata embedding",
|
||
"@optionsEmbedMetadataSubtitleOff": {
|
||
"description": "Subtitle when metadata embedding is disabled"
|
||
},
|
||
"optionsMaxQualityCoverSubtitleDisabled": "Disabled when metadata embedding is off",
|
||
"@optionsMaxQualityCoverSubtitleDisabled": {
|
||
"description": "Subtitle for max quality cover when metadata embedding is disabled"
|
||
},
|
||
"downloadFilenameHintExample": "{artist} - {title}",
|
||
"@downloadFilenameHintExample": {
|
||
"description": "Example placeholder for the download filename format input"
|
||
},
|
||
"trackCoverNoEmbeddedArt": "No embedded album art found",
|
||
"@trackCoverNoEmbeddedArt": {
|
||
"description": "Message shown when a track file has no embedded cover art"
|
||
},
|
||
"trackCoverReplace": "Replace Cover",
|
||
"@trackCoverReplace": {
|
||
"description": "Button label for replacing selected cover art"
|
||
},
|
||
"trackCoverPick": "Pick Cover",
|
||
"@trackCoverPick": {
|
||
"description": "Button label for selecting cover art"
|
||
},
|
||
"trackCoverClearSelected": "Clear selected cover",
|
||
"@trackCoverClearSelected": {
|
||
"description": "Tooltip for clearing the newly selected cover art"
|
||
},
|
||
"trackCoverCurrent": "Current cover",
|
||
"@trackCoverCurrent": {
|
||
"description": "Label for the currently embedded cover preview"
|
||
},
|
||
"trackCoverSelected": "Selected cover",
|
||
"@trackCoverSelected": {
|
||
"description": "Label for the newly selected cover preview"
|
||
},
|
||
"trackCoverReplaceNotice": "The selected cover will replace the current embedded cover when you tap Save.",
|
||
"@trackCoverReplaceNotice": {
|
||
"description": "Notice shown when a new cover has been selected but not saved yet"
|
||
},
|
||
"actionStop": "Stop",
|
||
"@actionStop": {
|
||
"description": "Generic action - stop"
|
||
},
|
||
"queueFinalizingDownload": "Finalizing download",
|
||
"@queueFinalizingDownload": {
|
||
"description": "Accessibility label for a queue item that is finalizing"
|
||
},
|
||
"queueDownloadedFileMissing": "Downloaded file missing",
|
||
"@queueDownloadedFileMissing": {
|
||
"description": "Accessibility label when a downloaded file is missing from disk"
|
||
},
|
||
"queueDownloadCompleted": "Download completed",
|
||
"@queueDownloadCompleted": {
|
||
"description": "Accessibility label for completed download state in queue"
|
||
},
|
||
"queueRateLimitTitle": "Service rate limited",
|
||
"@queueRateLimitTitle": {
|
||
"description": "Title shown on a failed queue item when the download service rate limits requests"
|
||
},
|
||
"queueRateLimitMessage": "This track may still be available. Wait a few minutes, reduce parallel downloads, then retry.",
|
||
"@queueRateLimitMessage": {
|
||
"description": "Explanation shown on a failed queue item when the download service rate limits requests"
|
||
},
|
||
"appearanceSelectAccentColor": "Select accent color {hex}",
|
||
"@appearanceSelectAccentColor": {
|
||
"description": "Accessibility label for picking an accent color",
|
||
"placeholders": {
|
||
"hex": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"logAutoScrollOn": "Auto-scroll ON",
|
||
"@logAutoScrollOn": {
|
||
"description": "Tooltip when auto-scroll is enabled on the log screen"
|
||
},
|
||
"logAutoScrollOff": "Auto-scroll OFF",
|
||
"@logAutoScrollOff": {
|
||
"description": "Tooltip when auto-scroll is disabled on the log screen"
|
||
},
|
||
"logCopyLogs": "Copy logs",
|
||
"@logCopyLogs": {
|
||
"description": "Tooltip for copying logs"
|
||
},
|
||
"logClearSearch": "Clear search",
|
||
"@logClearSearch": {
|
||
"description": "Tooltip for clearing the log search field"
|
||
},
|
||
"logIssueIspBlockingLabel": "ISP BLOCKING DETECTED",
|
||
"@logIssueIspBlockingLabel": {
|
||
"description": "Diagnostic badge label when ISP blocking is detected"
|
||
},
|
||
"logIssueIspBlockingDescription": "Your ISP may be blocking access to download services",
|
||
"@logIssueIspBlockingDescription": {
|
||
"description": "Diagnostic badge description for ISP blocking"
|
||
},
|
||
"logIssueIspBlockingSuggestion": "Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8",
|
||
"@logIssueIspBlockingSuggestion": {
|
||
"description": "Diagnostic badge suggestion for ISP blocking"
|
||
},
|
||
"logIssueRateLimitedLabel": "RATE LIMITED",
|
||
"@logIssueRateLimitedLabel": {
|
||
"description": "Diagnostic badge label when the service rate limits requests"
|
||
},
|
||
"logIssueRateLimitedDescription": "Too many requests to the service",
|
||
"@logIssueRateLimitedDescription": {
|
||
"description": "Diagnostic badge description for rate limiting"
|
||
},
|
||
"logIssueRateLimitedSuggestion": "Wait a few minutes before trying again",
|
||
"@logIssueRateLimitedSuggestion": {
|
||
"description": "Diagnostic badge suggestion for rate limiting"
|
||
},
|
||
"logIssueNetworkErrorLabel": "NETWORK ERROR",
|
||
"@logIssueNetworkErrorLabel": {
|
||
"description": "Diagnostic badge label for generic network errors"
|
||
},
|
||
"logIssueNetworkErrorDescription": "Connection issues detected",
|
||
"@logIssueNetworkErrorDescription": {
|
||
"description": "Diagnostic badge description for generic network errors"
|
||
},
|
||
"logIssueNetworkErrorSuggestion": "Check your internet connection",
|
||
"@logIssueNetworkErrorSuggestion": {
|
||
"description": "Diagnostic badge suggestion for generic network errors"
|
||
},
|
||
"logIssueTrackNotFoundLabel": "TRACK NOT FOUND",
|
||
"@logIssueTrackNotFoundLabel": {
|
||
"description": "Diagnostic badge label when a track is unavailable"
|
||
},
|
||
"logIssueTrackNotFoundDescription": "Some tracks could not be found on download services",
|
||
"@logIssueTrackNotFoundDescription": {
|
||
"description": "Diagnostic badge description when a track is unavailable"
|
||
},
|
||
"logIssueTrackNotFoundSuggestion": "The track may not be available in lossless quality",
|
||
"@logIssueTrackNotFoundSuggestion": {
|
||
"description": "Diagnostic badge suggestion when a track is unavailable"
|
||
},
|
||
"clickableLookingUpArtist": "Looking up artist...",
|
||
"@clickableLookingUpArtist": {
|
||
"description": "Snackbar shown while clickable artist metadata is being resolved"
|
||
},
|
||
"clickableInformationUnavailable": "{type} information not available",
|
||
"@clickableInformationUnavailable": {
|
||
"description": "Snackbar shown when clickable metadata cannot open a destination",
|
||
"placeholders": {
|
||
"type": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"extensionDetailsTags": "Tags",
|
||
"@extensionDetailsTags": {
|
||
"description": "Section title for extension tags"
|
||
},
|
||
"extensionDetailsInformation": "Information",
|
||
"@extensionDetailsInformation": {
|
||
"description": "Section title for extension metadata information"
|
||
},
|
||
"extensionUtilityFunctions": "Utility Functions",
|
||
"@extensionUtilityFunctions": {
|
||
"description": "Capability label for utility-only extensions"
|
||
},
|
||
"actionDismiss": "Dismiss",
|
||
"@actionDismiss": {
|
||
"description": "Generic action - dismiss"
|
||
},
|
||
"setupChangeFolderTooltip": "Change folder",
|
||
"@setupChangeFolderTooltip": {
|
||
"description": "Tooltip for editing the selected download folder"
|
||
},
|
||
"a11yOpenTrackByArtist": "Open track {trackName} by {artistName}",
|
||
"@a11yOpenTrackByArtist": {
|
||
"description": "Accessibility label for opening a track item",
|
||
"placeholders": {
|
||
"trackName": {
|
||
"type": "String"
|
||
},
|
||
"artistName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"a11yOpenItem": "Open {itemType} {name}",
|
||
"@a11yOpenItem": {
|
||
"description": "Accessibility label for opening a generic item",
|
||
"placeholders": {
|
||
"itemType": {
|
||
"type": "String"
|
||
},
|
||
"name": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"a11yOpenItemCount": "Open {title}, {count} {count, plural, =1{item} other{items}}",
|
||
"@a11yOpenItemCount": {
|
||
"description": "Accessibility label for opening a grouped item with count",
|
||
"placeholders": {
|
||
"title": {
|
||
"type": "String"
|
||
},
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"a11yOpenAlbumByArtistTrackCount": "Open album {albumName} by {artistName}, {trackCount} tracks",
|
||
"@a11yOpenAlbumByArtistTrackCount": {
|
||
"description": "Accessibility label for opening an album item with track count",
|
||
"placeholders": {
|
||
"albumName": {
|
||
"type": "String"
|
||
},
|
||
"artistName": {
|
||
"type": "String"
|
||
},
|
||
"trackCount": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"a11yTrackByArtist": "{trackName} by {artistName}",
|
||
"@a11yTrackByArtist": {
|
||
"description": "Accessibility label for a queue or list track item",
|
||
"placeholders": {
|
||
"trackName": {
|
||
"type": "String"
|
||
},
|
||
"artistName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"a11ySelectAlbum": "Select album {albumName}",
|
||
"@a11ySelectAlbum": {
|
||
"description": "Accessibility label for selecting an album",
|
||
"placeholders": {
|
||
"albumName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"a11yOpenAlbum": "Open album {albumName}",
|
||
"@a11yOpenAlbum": {
|
||
"description": "Accessibility label for opening an album",
|
||
"placeholders": {
|
||
"albumName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"optionsDefaultSearchTabAlbums": "Альбомы",
|
||
"@optionsDefaultSearchTabAlbums": {
|
||
"description": "Default search tab option - Albums tab"
|
||
},
|
||
"optionsDefaultSearchTabTracks": "Треки",
|
||
"@optionsDefaultSearchTabTracks": {
|
||
"description": "Default search tab option - Tracks tab"
|
||
},
|
||
"settingsFiles": "Files & Folders",
|
||
"@settingsFiles": {
|
||
"description": "Settings menu item - file and folder settings"
|
||
},
|
||
"settingsFilesSubtitle": "Download location, filename, folder structure",
|
||
"@settingsFilesSubtitle": {
|
||
"description": "Subtitle for files & folders settings"
|
||
},
|
||
"settingsMetadata": "Metadata",
|
||
"@settingsMetadata": {
|
||
"description": "Settings menu item - metadata settings"
|
||
},
|
||
"settingsMetadataSubtitle": "Cover art, tags, ReplayGain, providers",
|
||
"@settingsMetadataSubtitle": {
|
||
"description": "Subtitle for metadata settings"
|
||
},
|
||
"settingsLyrics": "Lyrics",
|
||
"@settingsLyrics": {
|
||
"description": "Settings menu item - lyrics settings"
|
||
},
|
||
"settingsLyricsSubtitle": "Embed, mode, providers, language options",
|
||
"@settingsLyricsSubtitle": {
|
||
"description": "Subtitle for lyrics settings"
|
||
},
|
||
"settingsApp": "App",
|
||
"@settingsApp": {
|
||
"description": "Settings menu item - app settings"
|
||
},
|
||
"settingsAppSubtitle": "Updates, data, extension repo, debug",
|
||
"@settingsAppSubtitle": {
|
||
"description": "Subtitle for app settings"
|
||
},
|
||
"sectionMetadataProviders": "Providers",
|
||
"@sectionMetadataProviders": {
|
||
"description": "Settings section header for metadata providers"
|
||
},
|
||
"sectionDuplicates": "Duplicates",
|
||
"@sectionDuplicates": {
|
||
"description": "Settings section header for deduplication"
|
||
},
|
||
"sectionLyricsProviderOptions": "Provider Options",
|
||
"@sectionLyricsProviderOptions": {
|
||
"description": "Settings section header for per-provider lyrics options"
|
||
},
|
||
"metadataProvidersTitle": "Metadata Provider Priority",
|
||
"@metadataProvidersTitle": {
|
||
"description": "Settings item title for metadata provider order"
|
||
},
|
||
"metadataProvidersSubtitle": "Drag to set search and metadata source order",
|
||
"@metadataProvidersSubtitle": {
|
||
"description": "Subtitle for metadata provider priority item"
|
||
},
|
||
"downloadDeduplication": "Skip Duplicate Downloads",
|
||
"@downloadDeduplication": {
|
||
"description": "Setting - skip tracks already in download history"
|
||
},
|
||
"downloadDeduplicationEnabled": "Already-downloaded tracks will be skipped",
|
||
"@downloadDeduplicationEnabled": {
|
||
"description": "Subtitle when deduplication is on"
|
||
},
|
||
"downloadDeduplicationDisabled": "All tracks will be downloaded regardless of history",
|
||
"@downloadDeduplicationDisabled": {
|
||
"description": "Subtitle when deduplication is off"
|
||
},
|
||
"downloadFallbackExtensions": "Fallback Extensions",
|
||
"@downloadFallbackExtensions": {
|
||
"description": "Settings item for configuring fallback extension providers"
|
||
},
|
||
"downloadFallbackExtensionsSubtitle": "Choose which extensions can be used as fallback",
|
||
"@downloadFallbackExtensionsSubtitle": {
|
||
"description": "Subtitle for fallback extensions item"
|
||
},
|
||
"editMetadataFieldDateHint": "YYYY-MM-DD or YYYY",
|
||
"@editMetadataFieldDateHint": {
|
||
"description": "Hint text for the edit metadata date field"
|
||
},
|
||
"editMetadataFieldTrackTotal": "Track Total",
|
||
"@editMetadataFieldTrackTotal": {
|
||
"description": "Label for total tracks field in the edit metadata sheet"
|
||
},
|
||
"editMetadataFieldDiscTotal": "Disc Total",
|
||
"@editMetadataFieldDiscTotal": {
|
||
"description": "Label for total discs field in the edit metadata sheet"
|
||
},
|
||
"editMetadataFieldComposer": "Composer",
|
||
"@editMetadataFieldComposer": {
|
||
"description": "Label for composer field in the edit metadata sheet"
|
||
},
|
||
"editMetadataFieldComment": "Comment",
|
||
"@editMetadataFieldComment": {
|
||
"description": "Label for comment field in the edit metadata sheet"
|
||
},
|
||
"editMetadataAdvanced": "Advanced",
|
||
"@editMetadataAdvanced": {
|
||
"description": "Expandable section label for advanced metadata fields"
|
||
},
|
||
"libraryFilterMetadataMissingTrackNumber": "Missing track number",
|
||
"@libraryFilterMetadataMissingTrackNumber": {
|
||
"description": "Filter option - items missing track number"
|
||
},
|
||
"libraryFilterMetadataMissingDiscNumber": "Missing disc number",
|
||
"@libraryFilterMetadataMissingDiscNumber": {
|
||
"description": "Filter option - items missing disc number"
|
||
},
|
||
"libraryFilterMetadataMissingArtist": "Missing artist",
|
||
"@libraryFilterMetadataMissingArtist": {
|
||
"description": "Filter option - items missing artist"
|
||
},
|
||
"libraryFilterMetadataIncorrectIsrcFormat": "Incorrect ISRC format",
|
||
"@libraryFilterMetadataIncorrectIsrcFormat": {
|
||
"description": "Filter option - items with an invalid ISRC format"
|
||
},
|
||
"libraryFilterMetadataMissingLabel": "Missing label",
|
||
"@libraryFilterMetadataMissingLabel": {
|
||
"description": "Filter option - items missing record label"
|
||
},
|
||
"collectionDeletePlaylistsMessage": "Delete {count} {count, plural, =1{playlist} other{playlists}}?",
|
||
"@collectionDeletePlaylistsMessage": {
|
||
"description": "Confirmation message for deleting selected playlists",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"collectionPlaylistsDeleted": "{count} {count, plural, =1{playlist} other{playlists}} deleted",
|
||
"@collectionPlaylistsDeleted": {
|
||
"description": "Snackbar after deleting selected playlists",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"collectionAddedTracksToPlaylist": "Added {count} {count, plural, =1{track} other{tracks}} to {playlistName}",
|
||
"@collectionAddedTracksToPlaylist": {
|
||
"description": "Snackbar after adding multiple tracks to a playlist",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
},
|
||
"playlistName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"collectionAddedTracksToPlaylistWithExisting": "Added {count} {count, plural, =1{track} other{tracks}} to {playlistName} ({alreadyCount} already in playlist)",
|
||
"@collectionAddedTracksToPlaylistWithExisting": {
|
||
"description": "Snackbar after adding multiple tracks to a playlist when some were already present",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
},
|
||
"playlistName": {
|
||
"type": "String"
|
||
},
|
||
"alreadyCount": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"itemCount": "{count} {count, plural, =1{item} other{items}}",
|
||
"@itemCount": {
|
||
"description": "Generic item count label",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"trackReEnrichSuccessWithFailures": "Metadata re-enriched successfully ({successCount}/{total}) - Failed: {failedCount}",
|
||
"@trackReEnrichSuccessWithFailures": {
|
||
"description": "Snackbar summary after batch metadata re-enrichment finishes with failures",
|
||
"placeholders": {
|
||
"successCount": {
|
||
"type": "int"
|
||
},
|
||
"total": {
|
||
"type": "int"
|
||
},
|
||
"failedCount": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"selectionDeleteTracksCount": "Delete {count} {count, plural, =1{track} other{tracks}}",
|
||
"@selectionDeleteTracksCount": {
|
||
"description": "Button label for deleting selected tracks",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"queueDownloadSpeedStatus": "Downloading - {speed} MB/s",
|
||
"@queueDownloadSpeedStatus": {
|
||
"description": "Queue status while downloading with speed",
|
||
"placeholders": {
|
||
"speed": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"queueDownloadStarting": "Starting...",
|
||
"@queueDownloadStarting": {
|
||
"description": "Queue status before download progress is available"
|
||
},
|
||
"a11ySelectTrack": "Select track",
|
||
"@a11ySelectTrack": {
|
||
"description": "Accessibility label for selecting a track"
|
||
},
|
||
"a11yDeselectTrack": "Deselect track",
|
||
"@a11yDeselectTrack": {
|
||
"description": "Accessibility label for deselecting a track"
|
||
},
|
||
"a11yPlayTrackByArtist": "Play {trackName} by {artistName}",
|
||
"@a11yPlayTrackByArtist": {
|
||
"description": "Accessibility label for playing a local library track",
|
||
"placeholders": {
|
||
"trackName": {
|
||
"type": "String"
|
||
},
|
||
"artistName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"storeExtensionsCount": "{count} {count, plural, =1{extension} other{extensions}}",
|
||
"@storeExtensionsCount": {
|
||
"description": "Store extension result count",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"storeRequiresVersion": "Requires v{version}+",
|
||
"@storeRequiresVersion": {
|
||
"description": "Store compatibility badge for minimum app version",
|
||
"placeholders": {
|
||
"version": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"actionGo": "Go",
|
||
"@actionGo": {
|
||
"description": "Generic action button label"
|
||
},
|
||
"logIssueSummary": "Issue Summary",
|
||
"@logIssueSummary": {
|
||
"description": "Header for log issue analysis summary"
|
||
},
|
||
"logTotalErrors": "Total errors: {count}",
|
||
"@logTotalErrors": {
|
||
"description": "Total error count in log issue analysis",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"logAffectedDomains": "Affected: {domains}",
|
||
"@logAffectedDomains": {
|
||
"description": "Affected domains in log issue analysis",
|
||
"placeholders": {
|
||
"domains": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"libraryScanCancelled": "Scan cancelled",
|
||
"@libraryScanCancelled": {
|
||
"description": "Library scan status when a scan was cancelled"
|
||
},
|
||
"libraryScanCancelledSubtitle": "You can retry the scan when ready.",
|
||
"@libraryScanCancelledSubtitle": {
|
||
"description": "Library scan status subtitle after cancellation"
|
||
},
|
||
"libraryDownloadsHistoryExcluded": "{count} from Downloads history (excluded from list)",
|
||
"@libraryDownloadsHistoryExcluded": {
|
||
"description": "Library count note for downloaded history items excluded from the local list",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"downloadNativeWorker": "Native download worker",
|
||
"@downloadNativeWorker": {
|
||
"description": "Setting title for Android native download worker"
|
||
},
|
||
"downloadNativeWorkerSubtitle": "Beta Android service worker for extension downloads",
|
||
"@downloadNativeWorkerSubtitle": {
|
||
"description": "Setting subtitle for Android native download worker"
|
||
},
|
||
"badgeBeta": "BETA",
|
||
"@badgeBeta": {
|
||
"description": "Badge label for beta features"
|
||
},
|
||
"extensionServiceStatus": "Service Status",
|
||
"@extensionServiceStatus": {
|
||
"description": "Extension detail section header for service status"
|
||
},
|
||
"extensionServiceHealth": "Service health",
|
||
"@extensionServiceHealth": {
|
||
"description": "Extension capability label for service health checks"
|
||
},
|
||
"extensionHealthChecksConfigured": "{count} {count, plural, =1{check} other{checks}} configured",
|
||
"@extensionHealthChecksConfigured": {
|
||
"description": "Extension service health check count",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"extensionOauthConnectHint": "Tap Connect to Spotify to fill this field.",
|
||
"@extensionOauthConnectHint": {
|
||
"description": "Hint for an OAuth login link field before connecting Spotify"
|
||
},
|
||
"extensionLastChecked": "Last checked {time}",
|
||
"@extensionLastChecked": {
|
||
"description": "Timestamp for the latest extension service health check",
|
||
"placeholders": {
|
||
"time": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"extensionRefreshStatus": "Refresh status",
|
||
"@extensionRefreshStatus": {
|
||
"description": "Tooltip for refreshing extension service health status"
|
||
},
|
||
"extensionCustomUrlHandling": "Custom URL Handling",
|
||
"@extensionCustomUrlHandling": {
|
||
"description": "Extension detail section title for custom URL handling"
|
||
},
|
||
"extensionCustomUrlHandlingSubtitle": "This extension can handle links from these sites",
|
||
"@extensionCustomUrlHandlingSubtitle": {
|
||
"description": "Extension detail subtitle for custom URL handling"
|
||
},
|
||
"extensionCustomUrlHandlingShareHint": "Share links from these sites to SpotiFLAC Mobile and this extension will handle them.",
|
||
"@extensionCustomUrlHandlingShareHint": {
|
||
"description": "Extension detail hint explaining share-to-app URL handling"
|
||
},
|
||
"extensionSettingsCount": "{count} {count, plural, =1{setting} other{settings}}",
|
||
"@extensionSettingsCount": {
|
||
"description": "Count of settings exposed by an extension quality option",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"extensionHealthOnline": "Online",
|
||
"@extensionHealthOnline": {
|
||
"description": "Extension service health status - online"
|
||
},
|
||
"extensionHealthDegraded": "Degraded",
|
||
"@extensionHealthDegraded": {
|
||
"description": "Extension service health status - degraded"
|
||
},
|
||
"extensionHealthOffline": "Offline",
|
||
"@extensionHealthOffline": {
|
||
"description": "Extension service health status - offline"
|
||
},
|
||
"extensionHealthNotConfigured": "Not configured",
|
||
"@extensionHealthNotConfigured": {
|
||
"description": "Extension service health status - not configured"
|
||
},
|
||
"extensionHealthUnknown": "Unknown",
|
||
"@extensionHealthUnknown": {
|
||
"description": "Extension service health status - unknown"
|
||
},
|
||
"extensionHealthRequired": "required",
|
||
"@extensionHealthRequired": {
|
||
"description": "Label for a required extension service health check"
|
||
},
|
||
"extensionSettingNotSet": "Not set",
|
||
"@extensionSettingNotSet": {
|
||
"description": "Value shown when an extension setting has no value"
|
||
},
|
||
"extensionActionFailed": "Action failed",
|
||
"@extensionActionFailed": {
|
||
"description": "Fallback error when an extension action fails without details"
|
||
},
|
||
"extensionEnterValue": "Enter value",
|
||
"@extensionEnterValue": {
|
||
"description": "Hint for editing an extension setting value"
|
||
},
|
||
"extensionHealthServiceOnline": "Service online",
|
||
"@extensionHealthServiceOnline": {
|
||
"description": "Tooltip for online extension service"
|
||
},
|
||
"extensionHealthServiceDegraded": "Service degraded",
|
||
"@extensionHealthServiceDegraded": {
|
||
"description": "Tooltip for degraded extension service"
|
||
},
|
||
"extensionHealthServiceOffline": "Service offline",
|
||
"@extensionHealthServiceOffline": {
|
||
"description": "Tooltip for offline extension service"
|
||
},
|
||
"extensionHealthServiceUnknown": "Service status unknown",
|
||
"@extensionHealthServiceUnknown": {
|
||
"description": "Tooltip for unknown extension service health"
|
||
},
|
||
"audioAnalysisStereo": "Stereo",
|
||
"@audioAnalysisStereo": {
|
||
"description": "Audio channel layout label - stereo"
|
||
},
|
||
"audioAnalysisMono": "Mono",
|
||
"@audioAnalysisMono": {
|
||
"description": "Audio channel layout label - mono"
|
||
},
|
||
"trackOpenInService": "Open in {serviceName}",
|
||
"@trackOpenInService": {
|
||
"description": "Button label to open a track in a named music service",
|
||
"placeholders": {
|
||
"serviceName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"trackLyricsEmbeddedSource": "Embedded",
|
||
"@trackLyricsEmbeddedSource": {
|
||
"description": "Lyrics source label for embedded lyrics"
|
||
},
|
||
"unknownAlbum": "Unknown Album",
|
||
"@unknownAlbum": {
|
||
"description": "Fallback album name when metadata is missing"
|
||
},
|
||
"unknownArtist": "Unknown Artist",
|
||
"@unknownArtist": {
|
||
"description": "Fallback artist name when metadata is missing"
|
||
},
|
||
"permissionAudio": "Audio",
|
||
"@permissionAudio": {
|
||
"description": "Audio permission type label"
|
||
},
|
||
"permissionStorage": "Storage",
|
||
"@permissionStorage": {
|
||
"description": "Storage permission type label"
|
||
},
|
||
"permissionNotification": "Notification",
|
||
"@permissionNotification": {
|
||
"description": "Notification permission type label"
|
||
},
|
||
"errorInvalidFolderSelected": "Invalid folder selected",
|
||
"@errorInvalidFolderSelected": {
|
||
"description": "Error when the selected folder is invalid"
|
||
},
|
||
"errorCouldNotKeepFolderAccess": "Could not keep access to the selected folder",
|
||
"@errorCouldNotKeepFolderAccess": {
|
||
"description": "Error when persistent folder access cannot be saved"
|
||
},
|
||
"storeAnyVersion": "Any",
|
||
"@storeAnyVersion": {
|
||
"description": "Store detail value when any app version is accepted"
|
||
},
|
||
"storeCategoryMetadata": "Metadata",
|
||
"@storeCategoryMetadata": {
|
||
"description": "Store extension category - metadata"
|
||
},
|
||
"storeCategoryDownload": "Download",
|
||
"@storeCategoryDownload": {
|
||
"description": "Store extension category - download"
|
||
},
|
||
"storeCategoryUtility": "Utility",
|
||
"@storeCategoryUtility": {
|
||
"description": "Store extension category - utility"
|
||
},
|
||
"storeCategoryLyrics": "Lyrics",
|
||
"@storeCategoryLyrics": {
|
||
"description": "Store extension category - lyrics"
|
||
},
|
||
"storeCategoryIntegration": "Integration",
|
||
"@storeCategoryIntegration": {
|
||
"description": "Store extension category - integration"
|
||
},
|
||
"artistReleases": "Releases",
|
||
"@artistReleases": {
|
||
"description": "Section header for all artist releases"
|
||
},
|
||
"editMetadataSelectNone": "None",
|
||
"@editMetadataSelectNone": {
|
||
"description": "Button to clear selected fields for auto-fill"
|
||
},
|
||
"queueRetryAllFailed": "Retry {count} failed",
|
||
"@queueRetryAllFailed": {
|
||
"description": "Button to retry every failed download in the queue",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"settingsSaveDownloadHistory": "Save download history",
|
||
"@settingsSaveDownloadHistory": {
|
||
"description": "Settings switch title for storing completed downloads in history"
|
||
},
|
||
"settingsSaveDownloadHistorySubtitle": "Keep completed downloads in history and library views",
|
||
"@settingsSaveDownloadHistorySubtitle": {
|
||
"description": "Settings switch subtitle for storing completed downloads in history"
|
||
},
|
||
"dialogDisableHistoryTitle": "Turn off download history?",
|
||
"@dialogDisableHistoryTitle": {
|
||
"description": "Confirmation dialog title shown before disabling download history"
|
||
},
|
||
"dialogDisableHistoryMessage": "Existing history will be cleared. Downloaded files will not be deleted.",
|
||
"@dialogDisableHistoryMessage": {
|
||
"description": "Confirmation dialog message shown before disabling download history"
|
||
},
|
||
"dialogDisableAndClear": "Turn off and clear",
|
||
"@dialogDisableAndClear": {
|
||
"description": "Confirmation action to disable download history and clear existing entries"
|
||
},
|
||
"openInOtherServices": "Open in Other Services",
|
||
"@openInOtherServices": {
|
||
"description": "Title and tooltip for finding the current collection in other services"
|
||
},
|
||
"shareSheetNoExtensions": "No other compatible services",
|
||
"@shareSheetNoExtensions": {
|
||
"description": "Empty state when no extensions can be searched for cross-service links"
|
||
},
|
||
"shareSheetNotFound": "Not found",
|
||
"@shareSheetNotFound": {
|
||
"description": "Cross-service share sheet row subtitle when a service has no match"
|
||
},
|
||
"shareSheetCopyLink": "Copy Link",
|
||
"@shareSheetCopyLink": {
|
||
"description": "Tooltip for copying a cross-service link"
|
||
},
|
||
"shareSheetLinkCopied": "{service} link copied",
|
||
"@shareSheetLinkCopied": {
|
||
"description": "Snackbar after copying a cross-service link",
|
||
"placeholders": {
|
||
"service": {}
|
||
}
|
||
},
|
||
"libraryPlayback": "Playback",
|
||
"@libraryPlayback": {
|
||
"description": "Section header for playback settings in library settings"
|
||
},
|
||
"libraryExternalPlayer": "External player",
|
||
"@libraryExternalPlayer": {
|
||
"description": "Setting option to use an external music player"
|
||
},
|
||
"libraryExternalPlayerSubtitle": "Recommended for listening, best quality, gapless playback, EQ, and wider format support",
|
||
"@libraryExternalPlayerSubtitle": {
|
||
"description": "Subtitle for external player option"
|
||
},
|
||
"libraryBuiltInPreviewPlayer": "Built-in preview player",
|
||
"@libraryBuiltInPreviewPlayer": {
|
||
"description": "Setting option to use the built-in preview player"
|
||
},
|
||
"libraryBuiltInPreviewPlayerSubtitle": "Only for quick local previews inside SpotiFLAC Mobile, not recommended for regular listening",
|
||
"@libraryBuiltInPreviewPlayerSubtitle": {
|
||
"description": "Subtitle for built-in preview player option"
|
||
},
|
||
"libraryBuiltInPlayerInfo": "The built-in player is a preview tool for checking local tracks quickly. Use an external music player for actual listening.",
|
||
"@libraryBuiltInPlayerInfo": {
|
||
"description": "Info note explaining the built-in player is for previews only"
|
||
},
|
||
"nowPlayingTitle": "Now Playing",
|
||
"@nowPlayingTitle": {
|
||
"description": "Title for the now playing screen"
|
||
},
|
||
"nowPlayingNothingPlaying": "Nothing is playing",
|
||
"@nowPlayingNothingPlaying": {
|
||
"description": "Empty state when no track is currently playing"
|
||
},
|
||
"nowPlayingMinimize": "Minimize",
|
||
"@nowPlayingMinimize": {
|
||
"description": "Tooltip for minimizing the now playing screen"
|
||
},
|
||
"nowPlayingUpNext": "Up next",
|
||
"@nowPlayingUpNext": {
|
||
"description": "Title for the playback queue sheet"
|
||
},
|
||
"nowPlayingDetails": "Details",
|
||
"@nowPlayingDetails": {
|
||
"description": "Menu item and section title for track metadata details"
|
||
},
|
||
"nowPlayingOpenInExternalPlayer": "Open in external player",
|
||
"@nowPlayingOpenInExternalPlayer": {
|
||
"description": "Menu item to open the current track in an external player"
|
||
},
|
||
"nowPlayingTabPlayer": "Player",
|
||
"@nowPlayingTabPlayer": {
|
||
"description": "Tab label for the player view"
|
||
},
|
||
"nowPlayingTabLyrics": "Lyrics",
|
||
"@nowPlayingTabLyrics": {
|
||
"description": "Tab label for the lyrics view"
|
||
},
|
||
"nowPlayingNoLyrics": "No lyrics in this file",
|
||
"@nowPlayingNoLyrics": {
|
||
"description": "Empty state when the playing file has no embedded lyrics"
|
||
},
|
||
"nowPlayingLibraryEmpty": "Your library is empty",
|
||
"@nowPlayingLibraryEmpty": {
|
||
"description": "Snackbar when shuffle library is requested but library has no tracks"
|
||
},
|
||
"nowPlayingShuffleLibraryFailed": "Could not shuffle library: {error}",
|
||
"@nowPlayingShuffleLibraryFailed": {
|
||
"description": "Snackbar when shuffling the library fails",
|
||
"placeholders": {
|
||
"error": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"nowPlayingShuffleOn": "Shuffle on",
|
||
"@nowPlayingShuffleOn": {
|
||
"description": "Tooltip when shuffle mode is enabled"
|
||
},
|
||
"nowPlayingPlayInOrder": "Play in order",
|
||
"@nowPlayingPlayInOrder": {
|
||
"description": "Tooltip when shuffle mode is disabled"
|
||
},
|
||
"nowPlayingShuffleLibrary": "Shuffle library",
|
||
"@nowPlayingShuffleLibrary": {
|
||
"description": "Button label to shuffle and play the entire local library"
|
||
},
|
||
"nowPlayingQueueEmpty": "Queue is empty",
|
||
"@nowPlayingQueueEmpty": {
|
||
"description": "Empty state when the playback queue has no items"
|
||
},
|
||
"nowPlayingNoMetadata": "No metadata available",
|
||
"@nowPlayingNoMetadata": {
|
||
"description": "Empty state when track metadata cannot be loaded"
|
||
},
|
||
"announcementUnableToOpenLink": "Unable to open link. Please try again.",
|
||
"@announcementUnableToOpenLink": {
|
||
"description": "Snackbar shown when an announcement CTA link cannot be opened"
|
||
},
|
||
"trackConvertLosslessOutputWithCap": "Lossless output with {quality} cap",
|
||
"@trackConvertLosslessOutputWithCap": {
|
||
"description": "Hint shown when lossless conversion will cap bit depth or sample rate",
|
||
"placeholders": {
|
||
"quality": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"trackConvertConfirmMessageLosslessCapped": "Convert from {sourceFormat} to {targetFormat} ({quality})?\n\nThe output stays in a lossless codec, but bit depth/sample rate will be capped. Original file will be deleted after conversion.",
|
||
"@trackConvertConfirmMessageLosslessCapped": {
|
||
"description": "Confirmation dialog message for capped lossless conversion of a single file",
|
||
"placeholders": {
|
||
"sourceFormat": {
|
||
"type": "String"
|
||
},
|
||
"targetFormat": {
|
||
"type": "String"
|
||
},
|
||
"quality": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"selectionBatchConvertConfirmMessageLosslessCapped": "Convert {count} {count, plural, =1{track} other{tracks}} to {format} ({quality})?\n\nThe output stays in a lossless codec, but bit depth/sample rate will be capped. Original files will be deleted after conversion.",
|
||
"@selectionBatchConvertConfirmMessageLosslessCapped": {
|
||
"description": "Confirmation dialog message for capped lossless batch conversion",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
},
|
||
"format": {
|
||
"type": "String"
|
||
},
|
||
"quality": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"trackConvertActionLabelLossless": "{sourceFormat} → {targetFormat} ({quality})",
|
||
"@trackConvertActionLabelLossless": {
|
||
"description": "Convert button label for lossless conversion with quality cap",
|
||
"placeholders": {
|
||
"sourceFormat": {
|
||
"type": "String"
|
||
},
|
||
"targetFormat": {
|
||
"type": "String"
|
||
},
|
||
"quality": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"trackConvertActionLabelLossy": "{sourceFormat} → {targetFormat} @ {bitrate}",
|
||
"@trackConvertActionLabelLossy": {
|
||
"description": "Convert button label for lossy conversion",
|
||
"placeholders": {
|
||
"sourceFormat": {
|
||
"type": "String"
|
||
},
|
||
"targetFormat": {
|
||
"type": "String"
|
||
},
|
||
"bitrate": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"aboutPaxsenixSubtitle": "Lyrics proxy for Musixmatch, Netease, Apple Music, QQ Music, Spotify, Deezer, YouTube, Kugou, and Genius",
|
||
"@aboutPaxsenixSubtitle": {
|
||
"description": "Subtitle for Paxsenix special thanks entry on the about page"
|
||
},
|
||
"snackbarPlayingNext": "Playing next",
|
||
"@snackbarPlayingNext": {
|
||
"description": "Snackbar when a track is inserted as the next queue item"
|
||
},
|
||
"snackbarAddedToQueueGeneric": "Added to queue",
|
||
"@snackbarAddedToQueueGeneric": {
|
||
"description": "Snackbar when a track is added to the playback queue without naming it"
|
||
},
|
||
"selectionDeletePlaylistsCount": "Delete {count} {count, plural, =1{playlist} other{playlists}}",
|
||
"@selectionDeletePlaylistsCount": {
|
||
"description": "Button label for deleting multiple selected playlists",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"actionShuffle": "Shuffle",
|
||
"@actionShuffle": {
|
||
"description": "Tooltip for shuffle playback action"
|
||
},
|
||
"downloadPrimaryArtistOnlyOn": "Primary only: On",
|
||
"@downloadPrimaryArtistOnlyOn": {
|
||
"description": "Status label when primary-artist-only folder naming is enabled"
|
||
},
|
||
"downloadPrimaryArtistOnlyOff": "Primary only: Off",
|
||
"@downloadPrimaryArtistOnlyOff": {
|
||
"description": "Status label when primary-artist-only folder naming is disabled"
|
||
},
|
||
"downloadAlbumArtistMetadataPrimaryOnly": "Album Artist metadata: Primary only",
|
||
"@downloadAlbumArtistMetadataPrimaryOnly": {
|
||
"description": "Status label when album-artist folder filtering uses primary artist only"
|
||
},
|
||
"downloadAlbumArtistMetadataFull": "Album Artist metadata: Full",
|
||
"@downloadAlbumArtistMetadataFull": {
|
||
"description": "Status label when album-artist folder filtering uses full metadata"
|
||
},
|
||
"trackConvertOriginal": "Original",
|
||
"@trackConvertOriginal": {
|
||
"description": "Label for keeping original bit depth or sample rate during conversion"
|
||
},
|
||
"trackConvertOriginalQuality": "Original quality",
|
||
"@trackConvertOriginalQuality": {
|
||
"description": "Label when no bit depth or sample rate cap is applied during lossless conversion"
|
||
},
|
||
"trackConvertLosslessSuffix": "Lossless",
|
||
"@trackConvertLosslessSuffix": {
|
||
"description": "Suffix used in converted lossless quality labels"
|
||
},
|
||
"trackConvertDithering": "Dithering",
|
||
"@trackConvertDithering": {
|
||
"description": "Section label for lossless conversion dithering options"
|
||
},
|
||
"trackConvertResampler": "Resampler",
|
||
"@trackConvertResampler": {
|
||
"description": "Section label for lossless conversion resampler options"
|
||
},
|
||
"trackConvertDitherNone": "None",
|
||
"@trackConvertDitherNone": {
|
||
"description": "Lossless conversion dither option with no dithering applied"
|
||
},
|
||
"trackConvertDitherTriangular": "TPDF",
|
||
"@trackConvertDitherTriangular": {
|
||
"description": "Lossless conversion triangular probability density function dither option"
|
||
},
|
||
"trackConvertDitherTriangularHp": "Triangular HP",
|
||
"@trackConvertDitherTriangularHp": {
|
||
"description": "Lossless conversion high-pass triangular dither option"
|
||
},
|
||
"trackConvertResamplerSwr": "SWR",
|
||
"@trackConvertResamplerSwr": {
|
||
"description": "Lossless conversion default FFmpeg swresample resampler option"
|
||
},
|
||
"trackConvertResamplerSoxr": "SoXr",
|
||
"@trackConvertResamplerSoxr": {
|
||
"description": "Lossless conversion SoX resampler option"
|
||
},
|
||
"updateSeeReleaseNotes": "See release notes for details.",
|
||
"@updateSeeReleaseNotes": {
|
||
"description": "Fallback changelog text when release notes cannot be parsed"
|
||
},
|
||
"unknownTitle": "Unknown title",
|
||
"@unknownTitle": {
|
||
"description": "Fallback track title when metadata is missing"
|
||
},
|
||
"trackPlayNext": "Play next",
|
||
"@trackPlayNext": {
|
||
"description": "Menu action to play a track as the next queue item"
|
||
},
|
||
"trackAddToQueue": "Add to queue",
|
||
"@trackAddToQueue": {
|
||
"description": "Menu action to add a track to the playback queue"
|
||
},
|
||
"snackbarExtensionInstalledEnable": "{extensionName} installed. Enable it in Settings > Extensions",
|
||
"@snackbarExtensionInstalledEnable": {
|
||
"description": "Snackbar after installing an extension from the repo tab",
|
||
"placeholders": {
|
||
"extensionName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"snackbarExtensionUpdatedVersion": "{extensionName} updated to v{version}",
|
||
"@snackbarExtensionUpdatedVersion": {
|
||
"description": "Snackbar after updating an extension from the repo tab",
|
||
"placeholders": {
|
||
"extensionName": {
|
||
"type": "String"
|
||
},
|
||
"version": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"snackbarFailedToInstallNamed": "Failed to install {extensionName}",
|
||
"@snackbarFailedToInstallNamed": {
|
||
"description": "Snackbar when extension install fails in the repo tab",
|
||
"placeholders": {
|
||
"extensionName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"snackbarFailedToUpdateNamed": "Failed to update {extensionName}",
|
||
"@snackbarFailedToUpdateNamed": {
|
||
"description": "Snackbar when extension update fails in the repo tab",
|
||
"placeholders": {
|
||
"extensionName": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"releaseTypeEp": "EP",
|
||
"@releaseTypeEp": {
|
||
"description": "Badge label for EP releases"
|
||
},
|
||
"releaseTypeSingle": "Single",
|
||
"@releaseTypeSingle": {
|
||
"description": "Badge label for single releases"
|
||
},
|
||
"trackCoverOnline": "Online cover",
|
||
"@trackCoverOnline": {
|
||
"description": "Label shown when metadata autofill downloaded cover art from the internet"
|
||
},
|
||
"regionCountryUS": "United States",
|
||
"@regionCountryUS": {
|
||
"description": "Country name for SongLink region picker"
|
||
},
|
||
"regionCountryGB": "United Kingdom",
|
||
"@regionCountryGB": {
|
||
"description": "Country name for SongLink region picker"
|
||
},
|
||
"regionCountryFR": "France",
|
||
"@regionCountryFR": {
|
||
"description": "Country name for SongLink region picker"
|
||
},
|
||
"regionCountryDE": "Germany",
|
||
"@regionCountryDE": {
|
||
"description": "Country name for SongLink region picker"
|
||
},
|
||
"regionCountryJP": "Japan",
|
||
"@regionCountryJP": {
|
||
"description": "Country name for SongLink region picker"
|
||
},
|
||
"regionCountryKR": "South Korea",
|
||
"@regionCountryKR": {
|
||
"description": "Country name for SongLink region picker"
|
||
},
|
||
"regionCountryIN": "India",
|
||
"@regionCountryIN": {
|
||
"description": "Country name for SongLink region picker"
|
||
},
|
||
"regionCountryID": "Indonesia",
|
||
"@regionCountryID": {
|
||
"description": "Country name for SongLink region picker"
|
||
},
|
||
"regionCountryBR": "Brazil",
|
||
"@regionCountryBR": {
|
||
"description": "Country name for SongLink region picker"
|
||
},
|
||
"regionCountryMX": "Mexico",
|
||
"@regionCountryMX": {
|
||
"description": "Country name for SongLink region picker"
|
||
},
|
||
"regionCountryAU": "Australia",
|
||
"@regionCountryAU": {
|
||
"description": "Country name for SongLink region picker"
|
||
},
|
||
"regionCountryCA": "Canada",
|
||
"@regionCountryCA": {
|
||
"description": "Country name for SongLink region picker"
|
||
},
|
||
"regionCountryXK": "Kosovo",
|
||
"@regionCountryXK": {
|
||
"description": "Country name for SongLink region picker"
|
||
},
|
||
"extensionVerificationBrowserTitle": "Verification browser",
|
||
"@extensionVerificationBrowserTitle": {
|
||
"description": "Settings option title for extension verification browser preference"
|
||
},
|
||
"extensionVerificationBrowserSubtitleExternal": "Open challenges in the default browser first",
|
||
"@extensionVerificationBrowserSubtitleExternal": {
|
||
"description": "Subtitle when external browser is preferred for extension verification"
|
||
},
|
||
"extensionVerificationBrowserSubtitleInApp": "Open challenges in the in-app browser first",
|
||
"@extensionVerificationBrowserSubtitleInApp": {
|
||
"description": "Subtitle when in-app browser is preferred for extension verification"
|
||
},
|
||
"extensionVerificationBrowserExternal": "External",
|
||
"@extensionVerificationBrowserExternal": {
|
||
"description": "Chip label for external browser verification mode"
|
||
},
|
||
"extensionVerificationBrowserInApp": "In-app",
|
||
"@extensionVerificationBrowserInApp": {
|
||
"description": "Chip label for in-app browser verification mode"
|
||
},
|
||
"extensionVerificationHelpTitleManual": "Open verification manually",
|
||
"@extensionVerificationHelpTitleManual": {
|
||
"description": "Dialog title when automatic browser launch for verification fails"
|
||
},
|
||
"extensionVerificationHelpTitleWaiting": "Verification still waiting",
|
||
"@extensionVerificationHelpTitleWaiting": {
|
||
"description": "Dialog title when verification is taking longer than expected"
|
||
},
|
||
"extensionVerificationHelpMessageManual": "SpotiFLAC Mobile could not open the browser automatically. Open this link in your browser, or copy it manually.",
|
||
"@extensionVerificationHelpMessageManual": {
|
||
"description": "Dialog message when automatic browser launch for verification fails"
|
||
},
|
||
"extensionVerificationHelpMessageWaiting": "If the browser did not open, or verification finished but did not return to SpotiFLAC Mobile, open this link again or copy it manually.",
|
||
"@extensionVerificationHelpMessageWaiting": {
|
||
"description": "Dialog message when verification may need manual browser help"
|
||
},
|
||
"extensionVerificationClose": "Close",
|
||
"@extensionVerificationClose": {
|
||
"description": "Button to dismiss the extension verification help dialog"
|
||
},
|
||
"extensionVerificationCopyLink": "Copy link",
|
||
"@extensionVerificationCopyLink": {
|
||
"description": "Button to copy the extension verification URL"
|
||
},
|
||
"extensionVerificationLinkCopied": "Verification link copied",
|
||
"@extensionVerificationLinkCopied": {
|
||
"description": "Snackbar after copying the extension verification URL"
|
||
},
|
||
"extensionVerificationOpenBrowser": "Open browser",
|
||
"@extensionVerificationOpenBrowser": {
|
||
"description": "Button to open the extension verification URL in a browser"
|
||
}
|
||
} |