From 155f3259f2b63846911617a5df0733c13aa486ad Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Sat, 7 Feb 2026 19:20:06 +0700 Subject: [PATCH] New translations app_en.arb (Russian) --- lib/l10n/arb/app_ru.arb | 405 ++++++++++++++++++++++++++++++++-------- 1 file changed, 331 insertions(+), 74 deletions(-) diff --git a/lib/l10n/arb/app_ru.arb b/lib/l10n/arb/app_ru.arb index 8cf088bb..e85b196a 100644 --- a/lib/l10n/arb/app_ru.arb +++ b/lib/l10n/arb/app_ru.arb @@ -871,7 +871,7 @@ "@setupIosEmptyFolderWarning": { "description": "iOS folder selection warning" }, - "setupIcloudNotSupported": "iCloud Drive is not supported. Please use the app Documents folder.", + "setupIcloudNotSupported": "iCloud Drive не поддерживается. Пожалуйста, используйте папку Документы.", "@setupIcloudNotSupported": { "description": "Error when user selects iCloud Drive on iOS" }, @@ -1206,7 +1206,7 @@ } } }, - "snackbarAlreadyInLibrary": "\"{trackName}\" already exists in your library", + "snackbarAlreadyInLibrary": "\"{trackName}\" уже есть в вашей библиотеке", "@snackbarAlreadyInLibrary": { "description": "Snackbar - track already exists in local library", "placeholders": { @@ -2450,39 +2450,39 @@ "@qualityLossy": { "description": "Quality option - lossy format (MP3/Opus)" }, - "qualityLossyMp3Subtitle": "MP3 320kbps (converted from FLAC)", + "qualityLossyMp3Subtitle": "Opus 320 кбит/с (конвертировать из FLAC)", "@qualityLossyMp3Subtitle": { "description": "Technical spec for lossy MP3" }, - "qualityLossyOpusSubtitle": "Opus 128kbps (converted from FLAC)", + "qualityLossyOpusSubtitle": "Opus 128 кбит/с (конвертировать из FLAC)", "@qualityLossyOpusSubtitle": { "description": "Technical spec for lossy Opus" }, - "enableLossyOption": "Enable Lossy Option", + "enableLossyOption": "Включить опцию Lossy", "@enableLossyOption": { "description": "Setting - enable lossy quality option" }, - "enableLossyOptionSubtitleOn": "Lossy quality option is available", + "enableLossyOptionSubtitleOn": "Доступно качество с потерями", "@enableLossyOptionSubtitleOn": { "description": "Subtitle when lossy is enabled" }, - "enableLossyOptionSubtitleOff": "Downloads FLAC then converts to lossy format", + "enableLossyOptionSubtitleOff": "Скачивать FLAC и конвертировать в MP3 320 кбит/с", "@enableLossyOptionSubtitleOff": { "description": "Subtitle when lossy is disabled" }, - "lossyFormat": "Lossy Format", + "lossyFormat": "Формат с потерями", "@lossyFormat": { "description": "Setting - choose lossy format" }, - "lossyFormatDescription": "Choose the lossy format for conversion", + "lossyFormatDescription": "Выберите Lossy формат для конвертации", "@lossyFormatDescription": { "description": "Description for lossy format picker" }, - "lossyFormatMp3Subtitle": "320kbps, best compatibility", + "lossyFormatMp3Subtitle": "320Кбит/с, лучшая совместимость", "@lossyFormatMp3Subtitle": { "description": "MP3 format description" }, - "lossyFormatOpusSubtitle": "128kbps, better quality at smaller size", + "lossyFormatOpusSubtitle": "128кбит/с, лучшее качество при меньших размерах", "@lossyFormatOpusSubtitle": { "description": "Opus format description" }, @@ -2610,27 +2610,27 @@ "@queueClearAllMessage": { "description": "Clear queue confirmation" }, - "queueExportFailed": "Export", + "queueExportFailed": "Экспорт", "@queueExportFailed": { "description": "Button - export failed downloads to TXT" }, - "queueExportFailedSuccess": "Failed downloads exported to TXT file", + "queueExportFailedSuccess": "Сбой при экспорте загрузок в файл TXT", "@queueExportFailedSuccess": { "description": "Success message after exporting failed downloads" }, - "queueExportFailedClear": "Clear Failed", + "queueExportFailedClear": "Не удалось очистить", "@queueExportFailedClear": { "description": "Action to clear failed downloads after export" }, - "queueExportFailedError": "Failed to export downloads", + "queueExportFailedError": "Не удалось экспортировать загрузки", "@queueExportFailedError": { "description": "Error message when export fails" }, - "settingsAutoExportFailed": "Auto-export failed downloads", + "settingsAutoExportFailed": "Автоэкспорт неудачных загрузок", "@settingsAutoExportFailed": { "description": "Setting toggle for auto-export" }, - "settingsAutoExportFailedSubtitle": "Save failed downloads to TXT file automatically", + "settingsAutoExportFailedSubtitle": "Автоматическое сохранение неудачных загрузок в TXT файл", "@settingsAutoExportFailedSubtitle": { "description": "Subtitle for auto-export setting" }, @@ -2646,7 +2646,7 @@ "@settingsDownloadNetworkWifiOnly": { "description": "Network option - only use WiFi" }, - "settingsDownloadNetworkSubtitle": "Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.", + "settingsDownloadNetworkSubtitle": "Выберите, какую сеть использовать для скачивания. Когда установлено значение только WiFi — скачивания через мобильную сеть будут приостановлены.", "@settingsDownloadNetworkSubtitle": { "description": "Subtitle explaining network preference" }, @@ -2954,23 +2954,23 @@ "@allFilesAccess": { "description": "Toggle for MANAGE_EXTERNAL_STORAGE permission" }, - "allFilesAccessEnabledSubtitle": "Can write to any folder", + "allFilesAccessEnabledSubtitle": "Можно записать в любую папку", "@allFilesAccessEnabledSubtitle": { "description": "Subtitle when all files access is enabled" }, - "allFilesAccessDisabledSubtitle": "Limited to media folders only", + "allFilesAccessDisabledSubtitle": "Ограничено только папками медиа", "@allFilesAccessDisabledSubtitle": { "description": "Subtitle when all files access is disabled" }, - "allFilesAccessDescription": "Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.", + "allFilesAccessDescription": "Включите, если вы сталкиваетесь с ошибками записи при сохранении в пользовательские папки. Android 13+ по умолчанию ограничивает доступ к определенным папкам.", "@allFilesAccessDescription": { "description": "Description explaining when to enable all files access" }, - "allFilesAccessDeniedMessage": "Permission was denied. Please enable 'All files access' manually in system settings.", + "allFilesAccessDeniedMessage": "В разрешении отказано. Пожалуйста, включите функцию «Доступ ко всем файлам» в настройках системы.", "@allFilesAccessDeniedMessage": { "description": "Message when permission is permanently denied" }, - "allFilesAccessDisabledMessage": "All Files Access disabled. The app will use limited storage access.", + "allFilesAccessDisabledMessage": "Доступ ко всем файлам отключен. Приложение будет использовать ограниченный доступ к хранилищу.", "@allFilesAccessDisabledMessage": { "description": "Snackbar message when user disables all files access" }, @@ -2978,39 +2978,39 @@ "@settingsLocalLibrary": { "description": "Settings menu item - local library" }, - "settingsLocalLibrarySubtitle": "Scan music & detect duplicates", + "settingsLocalLibrarySubtitle": "Сканировать и обнаружить дубликаты", "@settingsLocalLibrarySubtitle": { "description": "Subtitle for local library settings" }, - "libraryTitle": "Local Library", + "libraryTitle": "Локальная библиотека", "@libraryTitle": { "description": "Library settings page title" }, - "libraryStatus": "Library Status", + "libraryStatus": "Статус Библиотеки", "@libraryStatus": { "description": "Section header for library status" }, - "libraryScanSettings": "Scan Settings", + "libraryScanSettings": "Настройки сканирования", "@libraryScanSettings": { "description": "Section header for scan settings" }, - "libraryEnableLocalLibrary": "Enable Local Library", + "libraryEnableLocalLibrary": "Включить локальную библиотеку", "@libraryEnableLocalLibrary": { "description": "Toggle to enable library scanning" }, - "libraryEnableLocalLibrarySubtitle": "Scan and track your existing music", + "libraryEnableLocalLibrarySubtitle": "Сканировать и отслеживать вашу существующую музыку", "@libraryEnableLocalLibrarySubtitle": { "description": "Subtitle for enable toggle" }, - "libraryFolder": "Library Folder", + "libraryFolder": "Папка библиотеки", "@libraryFolder": { "description": "Folder selection setting" }, - "libraryFolderHint": "Tap to select folder", + "libraryFolderHint": "Нажмите, чтобы выбрать папку", "@libraryFolderHint": { "description": "Placeholder when no folder selected" }, - "libraryShowDuplicateIndicator": "Show Duplicate Indicator", + "libraryShowDuplicateIndicator": "Показать индикатор дубликатов", "@libraryShowDuplicateIndicator": { "description": "Toggle for duplicate indicator in search" }, @@ -3018,7 +3018,7 @@ "@libraryShowDuplicateIndicatorSubtitle": { "description": "Subtitle for duplicate indicator toggle" }, - "libraryActions": "Actions", + "libraryActions": "Действия", "@libraryActions": { "description": "Section header for library actions" }, @@ -3026,47 +3026,47 @@ "@libraryScan": { "description": "Button to start library scan" }, - "libraryScanSubtitle": "Scan for audio files", + "libraryScanSubtitle": "Сканировать аудио файлы", "@libraryScanSubtitle": { "description": "Subtitle for scan button" }, - "libraryScanSelectFolderFirst": "Select a folder first", + "libraryScanSelectFolderFirst": "Сначала выберите папку", "@libraryScanSelectFolderFirst": { "description": "Message when trying to scan without folder" }, - "libraryCleanupMissingFiles": "Cleanup Missing Files", + "libraryCleanupMissingFiles": "Очистка отсутствующих файлов", "@libraryCleanupMissingFiles": { "description": "Button to remove entries for missing files" }, - "libraryCleanupMissingFilesSubtitle": "Remove entries for files that no longer exist", + "libraryCleanupMissingFilesSubtitle": "Удалить записи для файлов, которых больше не существует", "@libraryCleanupMissingFilesSubtitle": { "description": "Subtitle for cleanup button" }, - "libraryClear": "Clear Library", + "libraryClear": "Очистить библиотеку", "@libraryClear": { "description": "Button to clear all library entries" }, - "libraryClearSubtitle": "Remove all scanned tracks", + "libraryClearSubtitle": "Удалить все сканированные треки", "@libraryClearSubtitle": { "description": "Subtitle for clear button" }, - "libraryClearConfirmTitle": "Clear Library", + "libraryClearConfirmTitle": "Очистить библиотеку", "@libraryClearConfirmTitle": { "description": "Dialog title for clear confirmation" }, - "libraryClearConfirmMessage": "This will remove all scanned tracks from your library. Your actual music files will not be deleted.", + "libraryClearConfirmMessage": "Это удалит все сканированные треки из вашей библиотеки. Ваши фактические файлы не будут удалены.", "@libraryClearConfirmMessage": { "description": "Dialog message for clear confirmation" }, - "libraryAbout": "About Local Library", + "libraryAbout": "О локальной библиотеке", "@libraryAbout": { "description": "Section header for about info" }, - "libraryAboutDescription": "Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.", + "libraryAboutDescription": "Сканирует существующую коллекцию музыки для обнаружения дубликатов при загрузке. Поддерживает форматы FLAC, M4A, MP3, Opus и OGG. Метаданные читаются из тегов файлов, если доступны.", "@libraryAboutDescription": { "description": "Description of local library feature" }, - "libraryTracksCount": "{count} tracks", + "libraryTracksCount": "{count} {count, plural, one {трек} few {трека} many {треков} =1{трек} other{треков}}", "@libraryTracksCount": { "description": "Track count in library", "placeholders": { @@ -3075,7 +3075,7 @@ } } }, - "libraryLastScanned": "Last scanned: {time}", + "libraryLastScanned": "Последнее сканирование: {time}", "@libraryLastScanned": { "description": "Last scan time display", "placeholders": { @@ -3088,11 +3088,11 @@ "@libraryLastScannedNever": { "description": "Shown when library has never been scanned" }, - "libraryScanning": "Scanning...", + "libraryScanning": "Сканирование...", "@libraryScanning": { "description": "Status during scan" }, - "libraryScanProgress": "{progress}% of {total} files", + "libraryScanProgress": "{progress}% из {total} файлов", "@libraryScanProgress": { "description": "Scan progress display", "placeholders": { @@ -3104,11 +3104,11 @@ } } }, - "libraryInLibrary": "In Library", + "libraryInLibrary": "В библиотеке", "@libraryInLibrary": { "description": "Badge shown on tracks that exist in local library" }, - "libraryRemovedMissingFiles": "Removed {count} missing files from library", + "libraryRemovedMissingFiles": "Удалено {count} {count, plural, one {отсутствующий файл} few {трека} many {отсутствующих файлов} =1{отсутствующий файл} other{отсутствующих файлов}} в библиотеке", "@libraryRemovedMissingFiles": { "description": "Snackbar after cleanup", "placeholders": { @@ -3117,99 +3117,99 @@ } } }, - "libraryCleared": "Library cleared", + "libraryCleared": "Библиотека очищена", "@libraryCleared": { "description": "Snackbar after clearing library" }, - "libraryStorageAccessRequired": "Storage Access Required", + "libraryStorageAccessRequired": "Требуется доступ к хранилищу", "@libraryStorageAccessRequired": { "description": "Dialog title for storage permission" }, - "libraryStorageAccessMessage": "SpotiFLAC needs storage access to scan your music library. Please grant permission in settings.", + "libraryStorageAccessMessage": "SpotiFLAC требуется доступ к хранилищу для сканирования вашей библиотеки музыки. Пожалуйста, предоставьте разрешение в настройках.", "@libraryStorageAccessMessage": { "description": "Dialog message for storage permission" }, - "libraryFolderNotExist": "Selected folder does not exist", + "libraryFolderNotExist": "Выбранной папки не существует", "@libraryFolderNotExist": { "description": "Error when folder doesn't exist" }, - "librarySourceDownloaded": "Downloaded", + "librarySourceDownloaded": "Скачанные", "@librarySourceDownloaded": { "description": "Badge for tracks downloaded via SpotiFLAC" }, - "librarySourceLocal": "Local", + "librarySourceLocal": "Локальные", "@librarySourceLocal": { "description": "Badge for tracks from local library scan" }, - "libraryFilterAll": "All", + "libraryFilterAll": "Все", "@libraryFilterAll": { "description": "Filter chip - show all library items" }, - "libraryFilterDownloaded": "Downloaded", + "libraryFilterDownloaded": "Скачанные", "@libraryFilterDownloaded": { "description": "Filter chip - show only downloaded items" }, - "libraryFilterLocal": "Local", + "libraryFilterLocal": "Локальные", "@libraryFilterLocal": { "description": "Filter chip - show only local library items" }, - "libraryFilterTitle": "Filters", + "libraryFilterTitle": "Фильтры", "@libraryFilterTitle": { "description": "Filter bottom sheet title" }, - "libraryFilterReset": "Reset", + "libraryFilterReset": "Сброс", "@libraryFilterReset": { "description": "Reset all filters button" }, - "libraryFilterApply": "Apply", + "libraryFilterApply": "Применить", "@libraryFilterApply": { "description": "Apply filters button" }, - "libraryFilterSource": "Source", + "libraryFilterSource": "Источник", "@libraryFilterSource": { "description": "Filter section - source type" }, - "libraryFilterQuality": "Quality", + "libraryFilterQuality": "Качество", "@libraryFilterQuality": { "description": "Filter section - audio quality" }, - "libraryFilterQualityHiRes": "Hi-Res (24bit)", + "libraryFilterQualityHiRes": "Hi-Res (24 бит)", "@libraryFilterQualityHiRes": { "description": "Filter option - high resolution audio" }, - "libraryFilterQualityCD": "CD (16bit)", + "libraryFilterQualityCD": "CD (16 бит)", "@libraryFilterQualityCD": { "description": "Filter option - CD quality audio" }, - "libraryFilterQualityLossy": "Lossy", + "libraryFilterQualityLossy": "С потерями", "@libraryFilterQualityLossy": { "description": "Filter option - lossy compressed audio" }, - "libraryFilterFormat": "Format", + "libraryFilterFormat": "Формат", "@libraryFilterFormat": { "description": "Filter section - file format" }, - "libraryFilterDate": "Date Added", + "libraryFilterDate": "Дата добавления", "@libraryFilterDate": { "description": "Filter section - date range" }, - "libraryFilterDateToday": "Today", + "libraryFilterDateToday": "Сегодня", "@libraryFilterDateToday": { "description": "Filter option - today only" }, - "libraryFilterDateWeek": "This Week", + "libraryFilterDateWeek": "На этой неделе", "@libraryFilterDateWeek": { "description": "Filter option - this week" }, - "libraryFilterDateMonth": "This Month", + "libraryFilterDateMonth": "В этом месяце", "@libraryFilterDateMonth": { "description": "Filter option - this month" }, - "libraryFilterDateYear": "This Year", + "libraryFilterDateYear": "В этом году", "@libraryFilterDateYear": { "description": "Filter option - this year" }, - "libraryFilterActive": "{count} filter(s) active", + "libraryFilterActive": "{count} фильтр(-ов) активно", "@libraryFilterActive": { "description": "Badge showing number of active filters", "placeholders": { @@ -3218,7 +3218,7 @@ } } }, - "timeJustNow": "Just now", + "timeJustNow": "Только что", "@timeJustNow": { "description": "Relative time - less than a minute ago" }, @@ -3239,5 +3239,262 @@ "type": "int" } } + }, + "storageSwitchTitle": "Switch Storage Mode", + "@storageSwitchTitle": { + "description": "Dialog title when switching storage mode" + }, + "storageSwitchToSafTitle": "Switch to SAF Storage?", + "@storageSwitchToSafTitle": { + "description": "Dialog title when switching to SAF" + }, + "storageSwitchToAppTitle": "Switch to App Storage?", + "@storageSwitchToAppTitle": { + "description": "Dialog title when switching to app storage" + }, + "storageSwitchToSafMessage": "Your existing downloads will remain in the current location and stay accessible.\n\nNew downloads will be saved to your selected SAF folder.", + "@storageSwitchToSafMessage": { + "description": "Explanation when switching to SAF" + }, + "storageSwitchToAppMessage": "Your existing downloads will remain in the current SAF location and stay accessible.\n\nNew downloads will be saved to Music/SpotiFLAC folder.", + "@storageSwitchToAppMessage": { + "description": "Explanation when switching to app storage" + }, + "storageSwitchExistingDownloads": "Existing Downloads", + "@storageSwitchExistingDownloads": { + "description": "Section header for existing downloads info" + }, + "storageSwitchExistingDownloadsInfo": "{count} tracks in {mode} storage", + "@storageSwitchExistingDownloadsInfo": { + "description": "Info about existing downloads count", + "placeholders": { + "count": { + "type": "int" + }, + "mode": { + "type": "String" + } + } + }, + "storageSwitchNewDownloads": "New Downloads", + "@storageSwitchNewDownloads": { + "description": "Section header for new downloads info" + }, + "storageSwitchNewDownloadsLocation": "Will be saved to: {location}", + "@storageSwitchNewDownloadsLocation": { + "description": "Shows where new downloads will go", + "placeholders": { + "location": { + "type": "String" + } + } + }, + "storageSwitchContinue": "Continue", + "@storageSwitchContinue": { + "description": "Button to proceed with storage switch" + }, + "storageSwitchSelectFolder": "Select SAF Folder", + "@storageSwitchSelectFolder": { + "description": "Button to select SAF folder" + }, + "storageAppStorage": "App Storage", + "@storageAppStorage": { + "description": "Label for app storage mode" + }, + "storageSafStorage": "SAF Storage", + "@storageSafStorage": { + "description": "Label for SAF storage mode" + }, + "storageModeBadge": "Storage: {mode}", + "@storageModeBadge": { + "description": "Badge showing storage mode for a track", + "placeholders": { + "mode": { + "type": "String" + } + } + }, + "storageStatsTitle": "Storage Statistics", + "@storageStatsTitle": { + "description": "Section title for storage stats" + }, + "storageStatsAppCount": "{count} tracks in App Storage", + "@storageStatsAppCount": { + "description": "Count of tracks in app storage", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "storageStatsSafCount": "{count} tracks in SAF Storage", + "@storageStatsSafCount": { + "description": "Count of tracks in SAF storage", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "storageModeInfo": "Your files are stored in multiple locations", + "@storageModeInfo": { + "description": "Info when user has files in both storage modes" + }, + "tutorialWelcomeTitle": "Welcome to SpotiFLAC!", + "@tutorialWelcomeTitle": { + "description": "Tutorial welcome page title" + }, + "tutorialWelcomeDesc": "Let's learn how to download your favorite music in lossless quality. This quick tutorial will show you the basics.", + "@tutorialWelcomeDesc": { + "description": "Tutorial welcome page description" + }, + "tutorialWelcomeTip1": "Download music from Spotify, Deezer, or paste any supported URL", + "@tutorialWelcomeTip1": { + "description": "Tutorial welcome tip 1" + }, + "tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Amazon Music", + "@tutorialWelcomeTip2": { + "description": "Tutorial welcome tip 2" + }, + "tutorialWelcomeTip3": "Automatic metadata, cover art, and lyrics embedding", + "@tutorialWelcomeTip3": { + "description": "Tutorial welcome tip 3" + }, + "tutorialSearchTitle": "Finding Music", + "@tutorialSearchTitle": { + "description": "Tutorial search page title" + }, + "tutorialSearchDesc": "There are two easy ways to find music you want to download.", + "@tutorialSearchDesc": { + "description": "Tutorial search page description" + }, + "tutorialSearchTip1": "Paste a Spotify or Deezer URL directly in the search box", + "@tutorialSearchTip1": { + "description": "Tutorial search tip 1" + }, + "tutorialSearchTip2": "Or type the song name, artist, or album to search", + "@tutorialSearchTip2": { + "description": "Tutorial search tip 2" + }, + "tutorialSearchTip3": "Supports tracks, albums, playlists, and artist pages", + "@tutorialSearchTip3": { + "description": "Tutorial search tip 3" + }, + "tutorialDownloadTitle": "Downloading Music", + "@tutorialDownloadTitle": { + "description": "Tutorial download page title" + }, + "tutorialDownloadDesc": "Downloading music is simple and fast. Here's how it works.", + "@tutorialDownloadDesc": { + "description": "Tutorial download page description" + }, + "tutorialDownloadTip1": "Tap the download button next to any track to start downloading", + "@tutorialDownloadTip1": { + "description": "Tutorial download tip 1" + }, + "tutorialDownloadTip2": "Choose your preferred quality (FLAC, Hi-Res, or MP3)", + "@tutorialDownloadTip2": { + "description": "Tutorial download tip 2" + }, + "tutorialDownloadTip3": "Download entire albums or playlists with one tap", + "@tutorialDownloadTip3": { + "description": "Tutorial download tip 3" + }, + "tutorialLibraryTitle": "Your Library", + "@tutorialLibraryTitle": { + "description": "Tutorial library page title" + }, + "tutorialLibraryDesc": "All your downloaded music is organized in the Library tab.", + "@tutorialLibraryDesc": { + "description": "Tutorial library page description" + }, + "tutorialLibraryTip1": "View download progress and queue in the Library tab", + "@tutorialLibraryTip1": { + "description": "Tutorial library tip 1" + }, + "tutorialLibraryTip2": "Tap any track to play it with your music player", + "@tutorialLibraryTip2": { + "description": "Tutorial library tip 2" + }, + "tutorialLibraryTip3": "Switch between list and grid view for better browsing", + "@tutorialLibraryTip3": { + "description": "Tutorial library tip 3" + }, + "tutorialExtensionsTitle": "Extensions", + "@tutorialExtensionsTitle": { + "description": "Tutorial extensions page title" + }, + "tutorialExtensionsDesc": "Extend the app's capabilities with community extensions.", + "@tutorialExtensionsDesc": { + "description": "Tutorial extensions page description" + }, + "tutorialExtensionsTip1": "Browse the Store tab to discover useful extensions", + "@tutorialExtensionsTip1": { + "description": "Tutorial extensions tip 1" + }, + "tutorialExtensionsTip2": "Add new download providers or search sources", + "@tutorialExtensionsTip2": { + "description": "Tutorial extensions tip 2" + }, + "tutorialExtensionsTip3": "Get lyrics, enhanced metadata, and more features", + "@tutorialExtensionsTip3": { + "description": "Tutorial extensions tip 3" + }, + "tutorialSettingsTitle": "Customize Your Experience", + "@tutorialSettingsTitle": { + "description": "Tutorial settings page title" + }, + "tutorialSettingsDesc": "Personalize the app in Settings to match your preferences.", + "@tutorialSettingsDesc": { + "description": "Tutorial settings page description" + }, + "tutorialSettingsTip1": "Change download location and folder organization", + "@tutorialSettingsTip1": { + "description": "Tutorial settings tip 1" + }, + "tutorialSettingsTip2": "Set default audio quality and format preferences", + "@tutorialSettingsTip2": { + "description": "Tutorial settings tip 2" + }, + "tutorialSettingsTip3": "Customize app theme and appearance", + "@tutorialSettingsTip3": { + "description": "Tutorial settings tip 3" + }, + "tutorialReadyMessage": "You're all set! Start downloading your favorite music now.", + "@tutorialReadyMessage": { + "description": "Tutorial completion message" + }, + "tutorialExample": "EXAMPLE", + "@tutorialExample": { + "description": "Example label in tutorial" + }, + "libraryForceFullScan": "Force Full Scan", + "@libraryForceFullScan": { + "description": "Button to force a complete rescan of library" + }, + "libraryForceFullScanSubtitle": "Rescan all files, ignoring cache", + "@libraryForceFullScanSubtitle": { + "description": "Subtitle for force full scan button" + }, + "cleanupOrphanedDownloads": "Cleanup Orphaned Downloads", + "@cleanupOrphanedDownloads": { + "description": "Button to remove history entries for deleted files" + }, + "cleanupOrphanedDownloadsSubtitle": "Remove history entries for files that no longer exist", + "@cleanupOrphanedDownloadsSubtitle": { + "description": "Subtitle for orphaned cleanup button" + }, + "cleanupOrphanedDownloadsResult": "Removed {count} orphaned entries from history", + "@cleanupOrphanedDownloadsResult": { + "description": "Snackbar after orphan cleanup", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cleanupOrphanedDownloadsNone": "No orphaned entries found", + "@cleanupOrphanedDownloadsNone": { + "description": "Snackbar when no orphans found" } } \ No newline at end of file