mirror of
https://github.com/spotiflacapp/SpotiFLAC-Mobile.git
synced 2026-06-01 03:15:17 +07:00
All search, metadata, and download providers are now exclusively supplied by extensions. The built-in provider registry that previously exposed Deezer/Tidal/Qobuz as hardcoded providers is fully removed. Removed across Go, Dart, Kotlin, and Swift: - BuiltInProviderSpec class, registry, and all accessor helpers - SearchProviderAllJSON, GetBuiltInProvidersJSON, ParseProviderURLJSON, ParseDeezerURLExport Go exports and their platform channel bindings - Built-in provider items in search dropdown, service picker, and provider priority UI lists - provider_ui_utils.dart helper file Deezer metadata enrichment (ISRC lookup, extended metadata, cover upgrade) remains fully functional through direct DeezerClient calls in the download pipeline — these are not part of the provider registry and are unaffected. Mark deezer as a retired built-in metadata provider so stale user priority lists are cleaned up on next launch.
4577 lines
173 KiB
Text
4577 lines
173 KiB
Text
{
|
||
"@@locale": "ru",
|
||
"@@last_modified": "2026-01-16",
|
||
"appName": "SpotiFLAC Mobile",
|
||
"@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": "Repo",
|
||
"@navStore": {
|
||
"description": "Bottom navigation - Extension store tab"
|
||
},
|
||
"homeTitle": "Главная",
|
||
"@homeTitle": {
|
||
"description": "Home screen title"
|
||
},
|
||
"homeSubtitle": "Paste a supported URL or search by name",
|
||
"@homeSubtitle": {
|
||
"description": "Subtitle shown below search box"
|
||
},
|
||
"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": "Single Filename Format",
|
||
"@downloadSingleFilenameFormat": {
|
||
"description": "Setting for output filename pattern for singles/EPs"
|
||
},
|
||
"downloadSingleFilenameFormatDescription": "Filename pattern for singles and EPs. Uses the same tags as the album format.",
|
||
"@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": "Default Search Tab",
|
||
"@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"
|
||
},
|
||
"optionsDefaultSearchTabAlbums": "Albums",
|
||
"@optionsDefaultSearchTabAlbums": {
|
||
"description": "Default search tab option - Albums tab"
|
||
},
|
||
"optionsDefaultSearchTabTracks": "Tracks",
|
||
"@optionsDefaultSearchTabTracks": {
|
||
"description": "Default search tab option - Tracks tab"
|
||
},
|
||
"optionsSwitchBack": "Нажмите Deezer или Spotify для возврата с расширения",
|
||
"@optionsSwitchBack": {
|
||
"description": "Hint to switch back to built-in providers"
|
||
},
|
||
"optionsAutoFallback": "Автоматический переход",
|
||
"@optionsAutoFallback": {
|
||
"description": "Auto-retry with other services"
|
||
},
|
||
"optionsAutoFallbackSubtitle": "Попробовать другие сервисы при сбое загрузки",
|
||
"@optionsAutoFallbackSubtitle": {
|
||
"description": "Subtitle for auto fallback"
|
||
},
|
||
"optionsUseExtensionProviders": "Использовать провайдера расширений",
|
||
"@optionsUseExtensionProviders": {
|
||
"description": "Enable extension download providers"
|
||
},
|
||
"optionsUseExtensionProvidersOn": "Сначала будут опробованы расширения",
|
||
"@optionsUseExtensionProvidersOn": {
|
||
"description": "Status when extension providers enabled"
|
||
},
|
||
"optionsUseExtensionProvidersOff": "Использование только встроенных провайдеров",
|
||
"@optionsUseExtensionProvidersOff": {
|
||
"description": "Status when extension providers disabled"
|
||
},
|
||
"optionsEmbedLyrics": "Вписать текст песни",
|
||
"@optionsEmbedLyrics": {
|
||
"description": "Embed lyrics in audio files"
|
||
},
|
||
"optionsEmbedLyricsSubtitle": "Вписать синхронизированные тексты во FLAC файлы",
|
||
"@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"
|
||
},
|
||
"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"
|
||
},
|
||
"optionsConcurrentDownloads": "Одновременные загрузки",
|
||
"@optionsConcurrentDownloads": {
|
||
"description": "Number of parallel downloads"
|
||
},
|
||
"optionsConcurrentSequential": "Последовательно (1 за раз)",
|
||
"@optionsConcurrentSequential": {
|
||
"description": "Download one at a time"
|
||
},
|
||
"optionsConcurrentParallel": "{count} параллельных загрузок",
|
||
"@optionsConcurrentParallel": {
|
||
"description": "Multiple parallel downloads",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"optionsConcurrentWarning": "Параллельные загрузки могут вызвать ограничение скорости",
|
||
"@optionsConcurrentWarning": {
|
||
"description": "Warning about rate limits"
|
||
},
|
||
"optionsExtensionStore": "Extension Repo",
|
||
"@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": "Extension Repo",
|
||
"@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": "Создатель QQDL & HiFi API. Без него API загрузки Tidal не существовали бы!",
|
||
"@aboutBinimumDesc": {
|
||
"description": "Credit description for binimum"
|
||
},
|
||
"aboutSachinsenalDesc": "Оригинальный создатель проекта HiFi. Основатель Tidal интеграции!",
|
||
"@aboutSachinsenalDesc": {
|
||
"description": "Credit description for sachinsenal0x64"
|
||
},
|
||
"aboutSjdonadoDesc": "Создатель I Don't Have Spotify (IDHS). Резервный резолвер ссылки",
|
||
"@aboutSjdonadoDesc": {
|
||
"description": "Credit description for sjdonado"
|
||
},
|
||
"aboutAppDescription": "Скачивайте треки Spotify в lossless качестве с Tidal и Qobuz.",
|
||
"@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"
|
||
},
|
||
"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": "Download",
|
||
"@dialogDownload": {
|
||
"description": "Confirm button in Download All dialog"
|
||
},
|
||
"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": "Удалить {count} {count, plural, one {трек} few {трека} many {треков} other{треков}} из истории?\n\nЭто также удалит файлы из хранилища.",
|
||
"@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": "Удалено {count} {count, plural, one {трек} few {трека} many {треков} other{треков}}",
|
||
"@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"
|
||
},
|
||
"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": "Sort Results",
|
||
"@searchSortTitle": {
|
||
"description": "Bottom sheet title for search sort options"
|
||
},
|
||
"searchSortDefault": "Default",
|
||
"@searchSortDefault": {
|
||
"description": "Sort option - default API order"
|
||
},
|
||
"searchSortTitleAZ": "Title (A-Z)",
|
||
"@searchSortTitleAZ": {
|
||
"description": "Sort option - title ascending"
|
||
},
|
||
"searchSortTitleZA": "Title (Z-A)",
|
||
"@searchSortTitleZA": {
|
||
"description": "Sort option - title descending"
|
||
},
|
||
"searchSortArtistAZ": "Artist (A-Z)",
|
||
"@searchSortArtistAZ": {
|
||
"description": "Sort option - artist ascending"
|
||
},
|
||
"searchSortArtistZA": "Artist (Z-A)",
|
||
"@searchSortArtistZA": {
|
||
"description": "Sort option - artist descending"
|
||
},
|
||
"searchSortDurationShort": "Duration (Shortest)",
|
||
"@searchSortDurationShort": {
|
||
"description": "Sort option - shortest duration first"
|
||
},
|
||
"searchSortDurationLong": "Duration (Longest)",
|
||
"@searchSortDurationLong": {
|
||
"description": "Sort option - longest duration first"
|
||
},
|
||
"searchSortDateOldest": "Release Date (Oldest)",
|
||
"@searchSortDateOldest": {
|
||
"description": "Sort option - oldest release first"
|
||
},
|
||
"searchSortDateNewest": "Release Date (Newest)",
|
||
"@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": "Extension Fallback",
|
||
"@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": "Встроенные",
|
||
"@providerBuiltIn": {
|
||
"description": "Label for built-in providers (Tidal/Qobuz)"
|
||
},
|
||
"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": "Client Secret",
|
||
"@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": "Сервисы, качество, формат имени файла",
|
||
"@settingsDownloadSubtitle": {
|
||
"description": "Download settings description"
|
||
},
|
||
"settingsOptionsSubtitle": "Резерв. сервер, тексты песен, обложки, обновления",
|
||
"@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, one {{count} трек} few {{count} трека} many {{count} треков} other {{count} треков}}",
|
||
"@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"
|
||
},
|
||
"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": "e.g. https://github.com/user/extensions-repo",
|
||
"@storeRepoUrlHelper": {
|
||
"description": "Helper text below the repository URL input field"
|
||
},
|
||
"storeAddRepoButton": "Add Repository",
|
||
"@storeAddRepoButton": {
|
||
"description": "Button to submit a new repository URL"
|
||
},
|
||
"storeChangeRepoTooltip": "Change repository",
|
||
"@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": "Current repository:",
|
||
"@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": "No extensions found",
|
||
"@storeEmptyNoResults": {
|
||
"description": "Message when search/filter returns no results"
|
||
},
|
||
"extensionDefaultProvider": "Default (Deezer)",
|
||
"@extensionDefaultProvider": {
|
||
"description": "Default search provider option"
|
||
},
|
||
"extensionDefaultProviderSubtitle": "Использовать встроенный поиск",
|
||
"@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"
|
||
},
|
||
"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": "Lossy 320kbps",
|
||
"@downloadLossy320": {
|
||
"description": "Quality option label for Tidal lossy 320kbps"
|
||
},
|
||
"downloadLossyFormat": "Lossy Format",
|
||
"@downloadLossyFormat": {
|
||
"description": "Setting title to pick output format for Tidal lossy downloads"
|
||
},
|
||
"downloadLossy320Format": "Lossy 320kbps Format",
|
||
"@downloadLossy320Format": {
|
||
"description": "Title of the Tidal lossy format picker bottom sheet"
|
||
},
|
||
"downloadLossy320FormatDesc": "Choose the output format for Tidal 320kbps lossy downloads. The original AAC stream will be converted to your selected format.",
|
||
"@downloadLossy320FormatDesc": {
|
||
"description": "Description in the Tidal lossy format picker"
|
||
},
|
||
"downloadLossyMp3": "MP3 320kbps",
|
||
"@downloadLossyMp3": {
|
||
"description": "Tidal lossy format option - MP3 320kbps"
|
||
},
|
||
"downloadLossyMp3Subtitle": "Best compatibility, ~10MB per track",
|
||
"@downloadLossyMp3Subtitle": {
|
||
"description": "Subtitle for MP3 320kbps Tidal lossy option"
|
||
},
|
||
"downloadLossyOpus256": "Opus 256kbps",
|
||
"@downloadLossyOpus256": {
|
||
"description": "Tidal lossy format option - Opus 256kbps"
|
||
},
|
||
"downloadLossyOpus256Subtitle": "Best quality Opus, ~8MB per track",
|
||
"@downloadLossyOpus256Subtitle": {
|
||
"description": "Subtitle for Opus 256kbps Tidal lossy option"
|
||
},
|
||
"downloadLossyOpus128": "Opus 128kbps",
|
||
"@downloadLossyOpus128": {
|
||
"description": "Tidal lossy format option - Opus 128kbps"
|
||
},
|
||
"downloadLossyOpus128Subtitle": "Smallest size, ~4MB per track",
|
||
"@downloadLossyOpus128Subtitle": {
|
||
"description": "Subtitle for Opus 128kbps Tidal 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"
|
||
},
|
||
"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": "Удалить {count} {count, plural, one {трек} few {трека} many {треков} other{треков}} из этого альбома?\n\nЭто также удалит файлы из хранилища.",
|
||
"@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": "Удалить {count} {count, plural, one {трек} few {трека} many {треков} other{треков}}",
|
||
"@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": "Auto Scan",
|
||
"@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": "Every app open",
|
||
"@libraryAutoScanOnOpen": {
|
||
"description": "Auto scan when app opens"
|
||
},
|
||
"libraryAutoScanDaily": "Daily",
|
||
"@libraryAutoScanDaily": {
|
||
"description": "Auto scan once per day"
|
||
},
|
||
"libraryAutoScanWeekly": "Weekly",
|
||
"@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, one {трек} few {трека} many {треков} other{треков}}",
|
||
"@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": "Finalizing library...",
|
||
"@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": "Lossy",
|
||
"@libraryFilterQualityLossy": {
|
||
"description": "Filter option - lossy compressed audio"
|
||
},
|
||
"libraryFilterFormat": "Формат",
|
||
"@libraryFilterFormat": {
|
||
"description": "Filter section - file format"
|
||
},
|
||
"libraryFilterMetadata": "Metadata",
|
||
"@libraryFilterMetadata": {
|
||
"description": "Filter section - metadata completeness"
|
||
},
|
||
"libraryFilterMetadataComplete": "Complete metadata",
|
||
"@libraryFilterMetadataComplete": {
|
||
"description": "Filter option - items with complete metadata"
|
||
},
|
||
"libraryFilterMetadataMissingAny": "Missing any metadata",
|
||
"@libraryFilterMetadataMissingAny": {
|
||
"description": "Filter option - items missing any tracked metadata field"
|
||
},
|
||
"libraryFilterMetadataMissingYear": "Missing year",
|
||
"@libraryFilterMetadataMissingYear": {
|
||
"description": "Filter option - items missing release year/date"
|
||
},
|
||
"libraryFilterMetadataMissingGenre": "Missing genre",
|
||
"@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": "Album (A-Z)",
|
||
"@libraryFilterSortAlbumAsc": {
|
||
"description": "Sort option - album ascending"
|
||
},
|
||
"libraryFilterSortAlbumDesc": "Album (Z-A)",
|
||
"@libraryFilterSortAlbumDesc": {
|
||
"description": "Sort option - album descending"
|
||
},
|
||
"libraryFilterSortGenreAsc": "Genre (A-Z)",
|
||
"@libraryFilterSortGenreAsc": {
|
||
"description": "Sort option - genre ascending"
|
||
},
|
||
"libraryFilterSortGenreDesc": "Genre (Z-A)",
|
||
"@libraryFilterSortGenreDesc": {
|
||
"description": "Sort option - genre descending"
|
||
},
|
||
"timeJustNow": "Только что",
|
||
"@timeJustNow": {
|
||
"description": "Relative time - less than a minute ago"
|
||
},
|
||
"timeMinutesAgo": "{count, plural, one {{count} минуту} few {{count} минуты} many {{count} минут} other {{count} минут}} назад",
|
||
"@timeMinutesAgo": {
|
||
"description": "Relative time - minutes ago",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"timeHoursAgo": "{count, plural, one {{count} час} few {{count} часа} many {{count} часов} other {{count} часов}} назад",
|
||
"@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": "Получите аудио в качестве FLAC от Tidal, Qobuz или Deezer",
|
||
"@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": "Fields to update",
|
||
"@trackReEnrichFieldsTitle": {
|
||
"description": "Section title for field selection in re-enrich dialog"
|
||
},
|
||
"trackReEnrichFieldCover": "Cover Art",
|
||
"@trackReEnrichFieldCover": {
|
||
"description": "Checkbox label for cover art field in re-enrich"
|
||
},
|
||
"trackReEnrichFieldLyrics": "Lyrics",
|
||
"@trackReEnrichFieldLyrics": {
|
||
"description": "Checkbox label for lyrics field in re-enrich"
|
||
},
|
||
"trackReEnrichFieldBasicTags": "Album, Album Artist",
|
||
"@trackReEnrichFieldBasicTags": {
|
||
"description": "Checkbox label for basic tags in re-enrich (title/artist are never overwritten)"
|
||
},
|
||
"trackReEnrichFieldTrackInfo": "Track & Disc Number",
|
||
"@trackReEnrichFieldTrackInfo": {
|
||
"description": "Checkbox label for track info in re-enrich"
|
||
},
|
||
"trackReEnrichFieldReleaseInfo": "Date & ISRC",
|
||
"@trackReEnrichFieldReleaseInfo": {
|
||
"description": "Checkbox label for release info in re-enrich"
|
||
},
|
||
"trackReEnrichFieldExtra": "Genre, Label, Copyright",
|
||
"@trackReEnrichFieldExtra": {
|
||
"description": "Checkbox label for extra metadata in re-enrich"
|
||
},
|
||
"trackReEnrichSelectAll": "Select All",
|
||
"@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": "Queue 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": "Finding FLAC matches... ({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 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": "Lossless conversion — no quality loss",
|
||
"@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"
|
||
},
|
||
"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, one {{count} трек} few {{count} трека} many {{count} треков} other {{count} треков}}",
|
||
"@collectionPlaylistTracks": {
|
||
"description": "Track count label for custom playlists",
|
||
"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"
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
},
|
||
"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"
|
||
},
|
||
"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": "Отправить {count} {count, plural, one {трек} few {трека} many {треков} other{треков}}",
|
||
"@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": "Конвертировать {count} {count, plural, one {трек} few {трека} many {треков} other{треков}}",
|
||
"@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": "Convert {count} {count, plural, =1{track} other{tracks}} to {format}? (Lossless — no quality loss)\n\nOriginal files will be deleted after conversion.",
|
||
"@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 naming"
|
||
},
|
||
"downloadUseAlbumArtistForFoldersTrackSubtitle": "Папки исполнителя используют только трек исполнителя",
|
||
"@downloadUseAlbumArtistForFoldersTrackSubtitle": {
|
||
"description": "Subtitle when Track Artist is used for folder naming"
|
||
},
|
||
"lyricsProvidersTitle": "Lyrics Providers",
|
||
"@lyricsProvidersTitle": {
|
||
"description": "Title for the lyrics provider priority page"
|
||
},
|
||
"lyricsProvidersDescription": "Enable, disable and reorder lyrics sources. Providers are tried top-to-bottom until lyrics are found.",
|
||
"@lyricsProvidersDescription": {
|
||
"description": "Description on the lyrics provider priority page"
|
||
},
|
||
"lyricsProvidersInfoText": "Extension lyrics providers always run before built-in providers. At least one provider must remain enabled.",
|
||
"@lyricsProvidersInfoText": {
|
||
"description": "Info tip on lyrics provider priority page"
|
||
},
|
||
"lyricsProvidersEnabledSection": "Enabled ({count})",
|
||
"@lyricsProvidersEnabledSection": {
|
||
"description": "Section header for enabled providers",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"lyricsProvidersDisabledSection": "Disabled ({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": "You have unsaved changes that will be lost.",
|
||
"@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 (good for Asian songs)",
|
||
"@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 Music (good for Chinese songs, via proxy)",
|
||
"@lyricsProviderQqMusicDesc": {
|
||
"description": "Description for QQ Music provider"
|
||
},
|
||
"lyricsProviderExtensionDesc": "Extension provider",
|
||
"@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": "Donate",
|
||
"@settingsDonate": {
|
||
"description": "Settings menu item - donate"
|
||
},
|
||
"settingsDonateSubtitle": "Support SpotiFLAC-Mobile development",
|
||
"@settingsDonateSubtitle": {
|
||
"description": "Subtitle for donate menu item"
|
||
},
|
||
"tooltipLoveAll": "Love All",
|
||
"@tooltipLoveAll": {
|
||
"description": "Tooltip for the Love All button on album/playlist screens"
|
||
},
|
||
"tooltipAddToPlaylist": "Add to Playlist",
|
||
"@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": "Download All",
|
||
"@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": "Go to Album",
|
||
"@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": "Loading CUE sheet...",
|
||
"@snackbarLoadingCueSheet": {
|
||
"description": "Snackbar while loading a CUE sheet file"
|
||
},
|
||
"snackbarMetadataSaved": "Metadata saved successfully",
|
||
"@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: {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 storage mode for downloaded files.",
|
||
"@downloadLocationSubtitle": {
|
||
"description": "Subtitle text in Android download location bottom sheet"
|
||
},
|
||
"storageModeAppFolder": "App folder (non-SAF)",
|
||
"@storageModeAppFolder": {
|
||
"description": "Storage mode option - use legacy app folder"
|
||
},
|
||
"storageModeAppFolderSubtitle": "Use default Music/SpotiFLAC path",
|
||
"@storageModeAppFolderSubtitle": {
|
||
"description": "Subtitle for app folder storage mode"
|
||
},
|
||
"storageModeSaf": "SAF folder",
|
||
"@storageModeSaf": {
|
||
"description": "Storage mode option - use Android SAF picker"
|
||
},
|
||
"storageModeSafSubtitle": "Pick folder via Android Storage Access Framework",
|
||
"@storageModeSafSubtitle": {
|
||
"description": "Subtitle for SAF storage mode"
|
||
},
|
||
"downloadFilenameDescription": "Customize how your files are named.",
|
||
"@downloadFilenameDescription": {
|
||
"description": "Description text in filename format bottom sheet"
|
||
},
|
||
"downloadFilenameInsertTag": "Tap to insert tag:",
|
||
"@downloadFilenameInsertTag": {
|
||
"description": "Label above filename tag chips"
|
||
},
|
||
"downloadSeparateSinglesEnabled": "Albums/ and Singles/ folders",
|
||
"@downloadSeparateSinglesEnabled": {
|
||
"description": "Subtitle when separate singles folder is enabled"
|
||
},
|
||
"downloadSeparateSinglesDisabled": "All files in same structure",
|
||
"@downloadSeparateSinglesDisabled": {
|
||
"description": "Subtitle when separate singles folder is disabled"
|
||
},
|
||
"downloadArtistNameFilters": "Artist Name Filters",
|
||
"@downloadArtistNameFilters": {
|
||
"description": "Setting title for artist folder filter options"
|
||
},
|
||
"downloadCreatePlaylistSourceFolder": "Create playlist source folder",
|
||
"@downloadCreatePlaylistSourceFolder": {
|
||
"description": "Setting title for adding a playlist folder prefix before the normal organization structure"
|
||
},
|
||
"downloadCreatePlaylistSourceFolderEnabled": "Playlist downloads use Playlist/ plus your normal folder structure.",
|
||
"@downloadCreatePlaylistSourceFolderEnabled": {
|
||
"description": "Subtitle when playlist source folder prefix is enabled"
|
||
},
|
||
"downloadCreatePlaylistSourceFolderDisabled": "Playlist downloads use the normal folder structure only.",
|
||
"@downloadCreatePlaylistSourceFolderDisabled": {
|
||
"description": "Subtitle when playlist source folder prefix is disabled"
|
||
},
|
||
"downloadCreatePlaylistSourceFolderRedundant": "By Playlist already places downloads inside a playlist folder.",
|
||
"@downloadCreatePlaylistSourceFolderRedundant": {
|
||
"description": "Subtitle when playlist folder prefix setting is redundant because folder organization is already by playlist"
|
||
},
|
||
"downloadSongLinkRegion": "SongLink Region",
|
||
"@downloadSongLinkRegion": {
|
||
"description": "Setting title for SongLink country region"
|
||
},
|
||
"downloadNetworkCompatibilityMode": "Network compatibility mode",
|
||
"@downloadNetworkCompatibilityMode": {
|
||
"description": "Setting title for network compatibility toggle"
|
||
},
|
||
"downloadNetworkCompatibilityModeEnabled": "Enabled: try HTTP + accept invalid TLS certificates (unsafe)",
|
||
"@downloadNetworkCompatibilityModeEnabled": {
|
||
"description": "Subtitle when network compatibility mode is enabled"
|
||
},
|
||
"downloadNetworkCompatibilityModeDisabled": "Off: strict HTTPS certificate validation (recommended)",
|
||
"@downloadNetworkCompatibilityModeDisabled": {
|
||
"description": "Subtitle when network compatibility mode is disabled"
|
||
},
|
||
"downloadSelectServiceToEnable": "Select a built-in service to enable",
|
||
"@downloadSelectServiceToEnable": {
|
||
"description": "Hint shown instead of Ask-quality subtitle when no built-in service selected"
|
||
},
|
||
"downloadSelectTidalQobuz": "Select Tidal or Qobuz above to configure quality",
|
||
"@downloadSelectTidalQobuz": {
|
||
"description": "Info hint when non-Tidal/Qobuz service is selected"
|
||
},
|
||
"downloadEmbedLyricsDisabled": "Disabled while Embed Metadata is turned off",
|
||
"@downloadEmbedLyricsDisabled": {
|
||
"description": "Subtitle for Embed Lyrics when Embed Metadata is disabled"
|
||
},
|
||
"downloadNeteaseIncludeTranslation": "Netease: Include Translation",
|
||
"@downloadNeteaseIncludeTranslation": {
|
||
"description": "Toggle title for including Netease translated lyrics"
|
||
},
|
||
"downloadNeteaseIncludeTranslationEnabled": "Append translated lyrics when available",
|
||
"@downloadNeteaseIncludeTranslationEnabled": {
|
||
"description": "Subtitle when Netease translation is enabled"
|
||
},
|
||
"downloadNeteaseIncludeTranslationDisabled": "Use original lyrics only",
|
||
"@downloadNeteaseIncludeTranslationDisabled": {
|
||
"description": "Subtitle when Netease translation is disabled"
|
||
},
|
||
"downloadNeteaseIncludeRomanization": "Netease: Include Romanization",
|
||
"@downloadNeteaseIncludeRomanization": {
|
||
"description": "Toggle title for including Netease romanized lyrics"
|
||
},
|
||
"downloadNeteaseIncludeRomanizationEnabled": "Append romanized lyrics when available",
|
||
"@downloadNeteaseIncludeRomanizationEnabled": {
|
||
"description": "Subtitle when Netease romanization is enabled"
|
||
},
|
||
"downloadNeteaseIncludeRomanizationDisabled": "Disabled",
|
||
"@downloadNeteaseIncludeRomanizationDisabled": {
|
||
"description": "Subtitle when Netease romanization is disabled"
|
||
},
|
||
"downloadAppleQqMultiPerson": "Apple/QQ Multi-Person Word-by-Word",
|
||
"@downloadAppleQqMultiPerson": {
|
||
"description": "Toggle title for Apple/QQ multi-person word-by-word lyrics"
|
||
},
|
||
"downloadAppleQqMultiPersonEnabled": "Enable v1/v2 speaker and [bg:] tags",
|
||
"@downloadAppleQqMultiPersonEnabled": {
|
||
"description": "Subtitle when multi-person word-by-word is enabled"
|
||
},
|
||
"downloadAppleQqMultiPersonDisabled": "Simplified word-by-word formatting",
|
||
"@downloadAppleQqMultiPersonDisabled": {
|
||
"description": "Subtitle when multi-person word-by-word is disabled"
|
||
},
|
||
"downloadMusixmatchLanguage": "Musixmatch Language",
|
||
"@downloadMusixmatchLanguage": {
|
||
"description": "Setting title for Musixmatch language preference"
|
||
},
|
||
"downloadMusixmatchLanguageAuto": "Auto (original)",
|
||
"@downloadMusixmatchLanguageAuto": {
|
||
"description": "Option label when Musixmatch uses original language"
|
||
},
|
||
"downloadFilterContributing": "Filter contributing artists in Album Artist",
|
||
"@downloadFilterContributing": {
|
||
"description": "Toggle title for filtering contributing artists in Album Artist metadata"
|
||
},
|
||
"downloadFilterContributingEnabled": "Album Artist metadata uses primary artist only",
|
||
"@downloadFilterContributingEnabled": {
|
||
"description": "Subtitle when contributing artist filter is enabled"
|
||
},
|
||
"downloadFilterContributingDisabled": "Keep full Album Artist metadata value",
|
||
"@downloadFilterContributingDisabled": {
|
||
"description": "Subtitle when contributing artist filter is disabled"
|
||
},
|
||
"downloadProvidersNoneEnabled": "None enabled",
|
||
"@downloadProvidersNoneEnabled": {
|
||
"description": "Subtitle for lyrics providers setting when no providers are enabled"
|
||
},
|
||
"downloadMusixmatchLanguageCode": "Language code",
|
||
"@downloadMusixmatchLanguageCode": {
|
||
"description": "Label for the Musixmatch language code text field"
|
||
},
|
||
"downloadMusixmatchLanguageHint": "auto / en / es / ja",
|
||
"@downloadMusixmatchLanguageHint": {
|
||
"description": "Hint text for the Musixmatch language code field"
|
||
},
|
||
"downloadMusixmatchLanguageDesc": "Set preferred language code (example: en, es, ja). Leave empty for auto.",
|
||
"@downloadMusixmatchLanguageDesc": {
|
||
"description": "Description in the Musixmatch language picker"
|
||
},
|
||
"downloadMusixmatchAuto": "Auto",
|
||
"@downloadMusixmatchAuto": {
|
||
"description": "Button to reset Musixmatch language to automatic"
|
||
},
|
||
"downloadNetworkAnySubtitle": "WiFi + Mobile Data",
|
||
"@downloadNetworkAnySubtitle": {
|
||
"description": "Subtitle for 'Any' network mode option"
|
||
},
|
||
"downloadNetworkWifiOnlySubtitle": "Pause downloads on mobile data",
|
||
"@downloadNetworkWifiOnlySubtitle": {
|
||
"description": "Subtitle for 'WiFi only' network mode option"
|
||
},
|
||
"downloadSongLinkRegionDesc": "Used as userCountry for SongLink API lookup.",
|
||
"@downloadSongLinkRegionDesc": {
|
||
"description": "Description in the SongLink region picker"
|
||
},
|
||
"snackbarUnsupportedAudioFormat": "Unsupported audio format",
|
||
"@snackbarUnsupportedAudioFormat": {
|
||
"description": "Snackbar when the audio format is not supported for the requested operation"
|
||
},
|
||
"cacheRefresh": "Refresh",
|
||
"@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": "Fetch & Fill",
|
||
"@editMetadataAutoFillFetch": {
|
||
"description": "Button label to fetch online metadata and fill selected fields"
|
||
},
|
||
"editMetadataAutoFillSearching": "Searching online...",
|
||
"@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": "Title",
|
||
"@editMetadataFieldTitle": {
|
||
"description": "Chip label for title field in auto-fill selector"
|
||
},
|
||
"editMetadataFieldArtist": "Artist",
|
||
"@editMetadataFieldArtist": {
|
||
"description": "Chip label for artist field in auto-fill selector"
|
||
},
|
||
"editMetadataFieldAlbum": "Album",
|
||
"@editMetadataFieldAlbum": {
|
||
"description": "Chip label for album field in auto-fill selector"
|
||
},
|
||
"editMetadataFieldAlbumArtist": "Album Artist",
|
||
"@editMetadataFieldAlbumArtist": {
|
||
"description": "Chip label for album artist field in auto-fill selector"
|
||
},
|
||
"editMetadataFieldDate": "Date",
|
||
"@editMetadataFieldDate": {
|
||
"description": "Chip label for date field in auto-fill selector"
|
||
},
|
||
"editMetadataFieldTrackNum": "Track #",
|
||
"@editMetadataFieldTrackNum": {
|
||
"description": "Chip label for track number field in auto-fill selector"
|
||
},
|
||
"editMetadataFieldDiscNum": "Disc #",
|
||
"@editMetadataFieldDiscNum": {
|
||
"description": "Chip label for disc number field in auto-fill selector"
|
||
},
|
||
"editMetadataFieldGenre": "Genre",
|
||
"@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": "Label",
|
||
"@editMetadataFieldLabel": {
|
||
"description": "Chip label for label field in auto-fill selector"
|
||
},
|
||
"editMetadataFieldCopyright": "Copyright",
|
||
"@editMetadataFieldCopyright": {
|
||
"description": "Chip label for copyright field in auto-fill selector"
|
||
},
|
||
"editMetadataFieldCover": "Cover Art",
|
||
"@editMetadataFieldCover": {
|
||
"description": "Chip label for cover art field in auto-fill selector"
|
||
},
|
||
"editMetadataSelectAll": "All",
|
||
"@editMetadataSelectAll": {
|
||
"description": "Button to select all fields for auto-fill"
|
||
},
|
||
"editMetadataSelectEmpty": "Empty only",
|
||
"@editMetadataSelectEmpty": {
|
||
"description": "Button to select only fields that are currently empty"
|
||
},
|
||
"queueDownloadingCount": "Downloading ({count})",
|
||
"@queueDownloadingCount": {
|
||
"description": "Header for active downloads section with count",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"queueDownloadedHeader": "Downloaded",
|
||
"@queueDownloadedHeader": {
|
||
"description": "Header label for downloaded items section in library"
|
||
},
|
||
"queueFilteringIndicator": "Filtering...",
|
||
"@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": "No download history",
|
||
"@queueEmptyHistory": {
|
||
"description": "Empty state title when download history is empty"
|
||
},
|
||
"queueEmptyHistorySubtitle": "Downloaded tracks will appear here",
|
||
"@queueEmptyHistorySubtitle": {
|
||
"description": "Empty state subtitle for download history"
|
||
},
|
||
"selectionAllPlaylistsSelected": "All playlists selected",
|
||
"@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": "Sample Rate",
|
||
"@audioAnalysisSampleRate": {
|
||
"description": "Sample rate metric label"
|
||
},
|
||
"audioAnalysisBitDepth": "Bit Depth",
|
||
"@audioAnalysisBitDepth": {
|
||
"description": "Bit depth metric label"
|
||
},
|
||
"audioAnalysisChannels": "Channels",
|
||
"@audioAnalysisChannels": {
|
||
"description": "Channels metric label"
|
||
},
|
||
"audioAnalysisDuration": "Duration",
|
||
"@audioAnalysisDuration": {
|
||
"description": "Duration metric label"
|
||
},
|
||
"audioAnalysisNyquist": "Nyquist",
|
||
"@audioAnalysisNyquist": {
|
||
"description": "Nyquist frequency metric label"
|
||
},
|
||
"audioAnalysisFileSize": "Size",
|
||
"@audioAnalysisFileSize": {
|
||
"description": "File size metric label"
|
||
},
|
||
"audioAnalysisDynamicRange": "Dynamic Range",
|
||
"@audioAnalysisDynamicRange": {
|
||
"description": "Dynamic range metric label"
|
||
},
|
||
"audioAnalysisPeak": "Peak",
|
||
"@audioAnalysisPeak": {
|
||
"description": "Peak amplitude metric label"
|
||
},
|
||
"audioAnalysisRms": "RMS",
|
||
"@audioAnalysisRms": {
|
||
"description": "RMS level metric label"
|
||
},
|
||
"audioAnalysisSamples": "Samples",
|
||
"@audioAnalysisSamples": {
|
||
"description": "Total samples metric label"
|
||
},
|
||
"extensionsSearchWith": "Search with {providerName}",
|
||
"@extensionsSearchWith": {
|
||
"description": "Extensions page - subtitle for built-in 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": "Auto",
|
||
"@extensionsHomeFeedAuto": {
|
||
"description": "Extensions page - home feed provider option: auto"
|
||
},
|
||
"extensionsHomeFeedAutoSubtitle": "Automatically select the best available",
|
||
"@extensionsHomeFeedAutoSubtitle": {
|
||
"description": "Extensions page - subtitle for auto 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": "A-Z",
|
||
"@sortAlphaAsc": {
|
||
"description": "Sort option - alphabetical ascending"
|
||
},
|
||
"sortAlphaDesc": "Z-A",
|
||
"@sortAlphaDesc": {
|
||
"description": "Sort option - alphabetical descending"
|
||
},
|
||
"cancelDownloadTitle": "Cancel download?",
|
||
"@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": "Keep",
|
||
"@cancelDownloadKeep": {
|
||
"description": "Dialog button - keep the active download (do not cancel)"
|
||
},
|
||
"metadataSaveFailedFfmpeg": "Failed to save metadata via FFmpeg",
|
||
"@metadataSaveFailedFfmpeg": {
|
||
"description": "Snackbar error when FFmpeg fails to write metadata"
|
||
},
|
||
"metadataSaveFailedStorage": "Failed to write metadata back to storage",
|
||
"@metadataSaveFailedStorage": {
|
||
"description": "Snackbar error when writing metadata file back to storage fails"
|
||
},
|
||
"snackbarFolderPickerFailed": "Failed to open folder picker: {error}",
|
||
"@snackbarFolderPickerFailed": {
|
||
"description": "Snackbar shown when folder picker fails to open",
|
||
"placeholders": {
|
||
"error": {
|
||
"type": "String"
|
||
}
|
||
}
|
||
},
|
||
"errorLoadAlbum": "Failed to load album",
|
||
"@errorLoadAlbum": {
|
||
"description": "Error state shown when album fails to load"
|
||
},
|
||
"errorLoadPlaylist": "Failed to load playlist",
|
||
"@errorLoadPlaylist": {
|
||
"description": "Error state shown when playlist fails to load"
|
||
},
|
||
"errorLoadArtist": "Failed to load artist",
|
||
"@errorLoadArtist": {
|
||
"description": "Error state shown when artist fails to load"
|
||
},
|
||
"notifChannelDownloadName": "Download Progress",
|
||
"@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": "Library Scan",
|
||
"@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": "Embedding metadata...",
|
||
"@notifEmbeddingMetadata": {
|
||
"description": "Notification body while embedding metadata into a downloaded track"
|
||
},
|
||
"notifAlreadyInLibraryCount": "Already in Library ({completed}/{total})",
|
||
"@notifAlreadyInLibraryCount": {
|
||
"description": "Notification title when track is already in library, with count",
|
||
"placeholders": {
|
||
"completed": {
|
||
"type": "int"
|
||
},
|
||
"total": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"notifAlreadyInLibrary": "Already in Library",
|
||
"@notifAlreadyInLibrary": {
|
||
"description": "Notification title when track is already in library"
|
||
},
|
||
"notifDownloadCompleteCount": "Download Complete ({completed}/{total})",
|
||
"@notifDownloadCompleteCount": {
|
||
"description": "Notification title when download is complete, with count",
|
||
"placeholders": {
|
||
"completed": {
|
||
"type": "int"
|
||
},
|
||
"total": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"notifDownloadComplete": "Download Complete",
|
||
"@notifDownloadComplete": {
|
||
"description": "Notification title when a single download is complete"
|
||
},
|
||
"notifDownloadsFinished": "Downloads Finished ({completed} done, {failed} failed)",
|
||
"@notifDownloadsFinished": {
|
||
"description": "Notification title when queue finishes with some failures",
|
||
"placeholders": {
|
||
"completed": {
|
||
"type": "int"
|
||
},
|
||
"failed": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"notifAllDownloadsComplete": "All Downloads Complete",
|
||
"@notifAllDownloadsComplete": {
|
||
"description": "Notification title when all downloads finish successfully"
|
||
},
|
||
"notifTracksDownloadedSuccess": "{count} tracks downloaded successfully",
|
||
"@notifTracksDownloadedSuccess": {
|
||
"description": "Notification body for queue complete - how many tracks were downloaded",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"notifScanningLibrary": "Scanning local library",
|
||
"@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": "Library scan complete",
|
||
"@notifLibraryScanComplete": {
|
||
"description": "Notification title when library scan finishes"
|
||
},
|
||
"notifLibraryScanCompleteBody": "{count} tracks indexed",
|
||
"@notifLibraryScanCompleteBody": {
|
||
"description": "Notification body for library scan complete - number of indexed tracks",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"notifLibraryScanExcluded": "{count} excluded",
|
||
"@notifLibraryScanExcluded": {
|
||
"description": "Library scan complete suffix - excluded track count",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"notifLibraryScanErrors": "{count} errors",
|
||
"@notifLibraryScanErrors": {
|
||
"description": "Library scan complete suffix - error count",
|
||
"placeholders": {
|
||
"count": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"notifLibraryScanFailed": "Library scan failed",
|
||
"@notifLibraryScanFailed": {
|
||
"description": "Notification title when library scan fails"
|
||
},
|
||
"notifLibraryScanCancelled": "Library scan cancelled",
|
||
"@notifLibraryScanCancelled": {
|
||
"description": "Notification title when library scan is cancelled by the user"
|
||
},
|
||
"notifLibraryScanStopped": "Scan stopped before completion.",
|
||
"@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} MB • {percentage}%",
|
||
"@notifUpdateProgress": {
|
||
"description": "Notification body showing update download progress",
|
||
"placeholders": {
|
||
"received": {
|
||
"type": "String"
|
||
},
|
||
"total": {
|
||
"type": "String"
|
||
},
|
||
"percentage": {
|
||
"type": "int"
|
||
}
|
||
}
|
||
},
|
||
"notifUpdateReady": "Update Ready",
|
||
"@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": "Update Failed",
|
||
"@notifUpdateFailed": {
|
||
"description": "Notification title when app update download fails"
|
||
},
|
||
"notifUpdateFailedBody": "Could not download update. Try again later.",
|
||
"@notifUpdateFailedBody": {
|
||
"description": "Notification body when app update download fails"
|
||
},
|
||
"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"
|
||
}
|
||
}
|