From 62626ddc08cd3f89d5850b96456ddc78eecba610 Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Tue, 10 Feb 2026 19:46:29 +0700 Subject: [PATCH] Update source file app_en.arb --- lib/l10n/arb/app_en.arb | 174 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 173 insertions(+), 1 deletion(-) diff --git a/lib/l10n/arb/app_en.arb b/lib/l10n/arb/app_en.arb index 4f365b51..8187756d 100644 --- a/lib/l10n/arb/app_en.arb +++ b/lib/l10n/arb/app_en.arb @@ -241,6 +241,8 @@ "@optionsSpotifyCredentialsRequired": {"description": "Prompt to set up credentials"}, "optionsSpotifyWarning": "Spotify requires your own API credentials. Get them free from developer.spotify.com", "@optionsSpotifyWarning": {"description": "Info about Spotify API requirement"}, + "optionsSpotifyDeprecationWarning": "Spotify search will be deprecated on March 3, 2026 due to Spotify API changes. Please switch to Deezer.", + "@optionsSpotifyDeprecationWarning": {"description": "Warning about Spotify API deprecation"}, "extensionsTitle": "Extensions", "@extensionsTitle": {"description": "Extensions page title"}, @@ -1412,6 +1414,8 @@ "@lossyFormatOpusSubtitle": {"description": "Opus format description"}, "qualityNote": "Actual quality depends on track availability from the service", "@qualityNote": {"description": "Note about quality availability"}, + "youtubeQualityNote": "YouTube provides lossy audio only. Not part of lossless fallback.", + "@youtubeQualityNote": {"description": "Note for YouTube service explaining lossy-only quality"}, "downloadAskBeforeDownload": "Ask Before Download", "@downloadAskBeforeDownload": {"description": "Setting - show quality picker"}, @@ -1421,6 +1425,12 @@ "@downloadSeparateSinglesFolder": {"description": "Setting - separate folder for singles"}, "downloadAlbumFolderStructure": "Album Folder Structure", "@downloadAlbumFolderStructure": {"description": "Setting - album folder organization"}, + "downloadUseAlbumArtistForFolders": "Use Album Artist for folders", + "@downloadUseAlbumArtistForFolders": {"description": "Setting - choose whether artist folders use Album Artist or Track Artist"}, + "downloadUseAlbumArtistForFoldersAlbumSubtitle": "Artist folders use Album Artist when available", + "@downloadUseAlbumArtistForFoldersAlbumSubtitle": {"description": "Subtitle when Album Artist is used for folder naming"}, + "downloadUseAlbumArtistForFoldersTrackSubtitle": "Artist folders use Track Artist only", + "@downloadUseAlbumArtistForFoldersTrackSubtitle": {"description": "Subtitle when Track Artist is used for folder naming"}, "downloadSaveFormat": "Save Format", "@downloadSaveFormat": {"description": "Setting - output file format"}, "downloadSelectService": "Select Service", @@ -1594,6 +1604,12 @@ "@recentTypeSong": {"description": "Recent access item type - song/track"}, "recentTypePlaylist": "Playlist", "@recentTypePlaylist": {"description": "Recent access item type - playlist"}, + "recentEmpty": "No recent items yet", + "@recentEmpty": {"description": "Empty state text for recent access list"}, + "recentShowAllDownloads": "Show All Downloads", + "@recentShowAllDownloads": { + "description": "Button label to unhide hidden downloads in recent access" + }, "recentPlaylistInfo": "Playlist: {name}", "@recentPlaylistInfo": { @@ -1704,6 +1720,10 @@ "@settingsLocalLibrary": {"description": "Settings menu item - local library"}, "settingsLocalLibrarySubtitle": "Scan music & detect duplicates", "@settingsLocalLibrarySubtitle": {"description": "Subtitle for local library settings"}, + "settingsCache": "Storage & Cache", + "@settingsCache": {"description": "Settings menu item - cache management"}, + "settingsCacheSubtitle": "View size and clear cached data", + "@settingsCacheSubtitle": {"description": "Subtitle for cache management menu"}, "libraryTitle": "Local Library", "@libraryTitle": {"description": "Library settings page title"}, "libraryStatus": "Library Status", @@ -2010,5 +2030,157 @@ } }, "cleanupOrphanedDownloadsNone": "No orphaned entries found", - "@cleanupOrphanedDownloadsNone": {"description": "Snackbar when no orphans found"} + "@cleanupOrphanedDownloadsNone": {"description": "Snackbar when no orphans found"}, + + "cacheTitle": "Storage & Cache", + "@cacheTitle": {"description": "Cache management page title"}, + "cacheSummaryTitle": "Cache overview", + "@cacheSummaryTitle": {"description": "Heading for cache summary card"}, + "cacheSummarySubtitle": "Clearing cache will not remove downloaded music files.", + "@cacheSummarySubtitle": {"description": "Helper text for cache summary card"}, + "cacheEstimatedTotal": "Estimated cache usage: {size}", + "@cacheEstimatedTotal": { + "description": "Total cache size shown in summary", + "placeholders": { + "size": {"type": "String"} + } + }, + "cacheSectionStorage": "Cached Data", + "@cacheSectionStorage": {"description": "Section header for cache entries"}, + "cacheSectionMaintenance": "Maintenance", + "@cacheSectionMaintenance": {"description": "Section header for cleanup actions"}, + "cacheAppDirectory": "App cache directory", + "@cacheAppDirectory": {"description": "Cache item title for app cache directory"}, + "cacheAppDirectoryDesc": "HTTP responses, WebView data, and other temporary app data.", + "@cacheAppDirectoryDesc": {"description": "Description of what app cache directory contains"}, + "cacheTempDirectory": "Temporary directory", + "@cacheTempDirectory": {"description": "Cache item title for temporary files directory"}, + "cacheTempDirectoryDesc": "Temporary files from downloads and audio conversion.", + "@cacheTempDirectoryDesc": {"description": "Description of what temporary directory contains"}, + "cacheCoverImage": "Cover image cache", + "@cacheCoverImage": {"description": "Cache item title for persistent cover images"}, + "cacheCoverImageDesc": "Downloaded album and track cover art. Will re-download when viewed.", + "@cacheCoverImageDesc": {"description": "Description of what cover image cache contains"}, + "cacheLibraryCover": "Library cover cache", + "@cacheLibraryCover": {"description": "Cache item title for local library cover art images"}, + "cacheLibraryCoverDesc": "Cover art extracted from local music files. Will re-extract on next scan.", + "@cacheLibraryCoverDesc": {"description": "Description of what library cover cache contains"}, + "cacheExploreFeed": "Explore feed cache", + "@cacheExploreFeed": {"description": "Cache item title for explore home feed cache"}, + "cacheExploreFeedDesc": "Explore tab content (new releases, trending). Will refresh on next visit.", + "@cacheExploreFeedDesc": {"description": "Description of what explore feed cache contains"}, + "cacheTrackLookup": "Track lookup cache", + "@cacheTrackLookup": {"description": "Cache item title for track ID lookup cache"}, + "cacheTrackLookupDesc": "Spotify/Deezer track ID lookups. Clearing may slow next few searches.", + "@cacheTrackLookupDesc": {"description": "Description of what track lookup cache contains"}, + "cacheCleanupUnusedDesc": "Remove orphaned download history and library entries for missing files.", + "@cacheCleanupUnusedDesc": {"description": "Description of what cleanup unused data does"}, + "cacheNoData": "No cached data", + "@cacheNoData": {"description": "Label when cache category has no data"}, + "cacheSizeWithFiles": "{size} in {count} files", + "@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} entries", + "@cacheEntries": { + "description": "Track cache entry count", + "placeholders": { + "count": {"type": "int"} + } + }, + "cacheClearSuccess": "Cleared: {target}", + "@cacheClearSuccess": { + "description": "Snackbar after clearing selected cache", + "placeholders": { + "target": {"type": "String"} + } + }, + "cacheClearConfirmTitle": "Clear cache?", + "@cacheClearConfirmTitle": {"description": "Dialog title before clearing one cache category"}, + "cacheClearConfirmMessage": "This will clear cached data for {target}. Downloaded music files will not be deleted.", + "@cacheClearConfirmMessage": { + "description": "Dialog message before clearing selected cache", + "placeholders": { + "target": {"type": "String"} + } + }, + "cacheClearAllConfirmTitle": "Clear all cache?", + "@cacheClearAllConfirmTitle": {"description": "Dialog title before clearing all caches"}, + "cacheClearAllConfirmMessage": "This will clear all cache categories on this page. Downloaded music files will not be deleted.", + "@cacheClearAllConfirmMessage": {"description": "Dialog message before clearing all caches"}, + "cacheClearAll": "Clear all cache", + "@cacheClearAll": {"description": "Button label to clear all caches"}, + "cacheCleanupUnused": "Cleanup unused data", + "@cacheCleanupUnused": {"description": "Action title for cleaning unused entries"}, + "cacheCleanupUnusedSubtitle": "Remove orphaned download history and missing library entries", + "@cacheCleanupUnusedSubtitle": {"description": "Subtitle for cleanup unused data action"}, + "cacheCleanupResult": "Cleanup completed: {downloadCount} orphaned downloads, {libraryCount} missing library entries", + "@cacheCleanupResult": { + "description": "Snackbar after unused data cleanup", + "placeholders": { + "downloadCount": {"type": "int"}, + "libraryCount": {"type": "int"} + } + }, + "cacheRefreshStats": "Refresh stats", + "@cacheRefreshStats": {"description": "Button label to refresh cache statistics"}, + + "trackSaveCoverArt": "Save Cover Art", + "@trackSaveCoverArt": {"description": "Menu action - save album cover art as file"}, + "trackSaveCoverArtSubtitle": "Save album art as .jpg file", + "@trackSaveCoverArtSubtitle": {"description": "Subtitle for save cover art action"}, + "trackSaveLyrics": "Save Lyrics (.lrc)", + "@trackSaveLyrics": {"description": "Menu action - save lyrics as .lrc file"}, + "trackSaveLyricsSubtitle": "Fetch and save lyrics as .lrc file", + "@trackSaveLyricsSubtitle": {"description": "Subtitle for save lyrics action"}, + "trackReEnrich": "Re-enrich Metadata", + "@trackReEnrich": {"description": "Menu action - re-embed metadata into audio file"}, + "trackReEnrichSubtitle": "Re-embed metadata without re-downloading", + "@trackReEnrichSubtitle": {"description": "Subtitle for re-enrich metadata action"}, + "trackReEnrichOnlineSubtitle": "Search metadata online and embed into file", + "@trackReEnrichOnlineSubtitle": {"description": "Subtitle for re-enrich metadata action for local items"}, + "trackEditMetadata": "Edit Metadata", + "@trackEditMetadata": {"description": "Menu action - edit embedded metadata"}, + "trackCoverSaved": "Cover art saved to {fileName}", + "@trackCoverSaved": { + "description": "Snackbar after cover art saved", + "placeholders": { + "fileName": {"type": "String"} + } + }, + "trackCoverNoSource": "No cover art source available", + "@trackCoverNoSource": {"description": "Snackbar when no cover art URL or embedded cover"}, + "trackLyricsSaved": "Lyrics saved to {fileName}", + "@trackLyricsSaved": { + "description": "Snackbar after lyrics saved", + "placeholders": { + "fileName": {"type": "String"} + } + }, + "trackReEnrichProgress": "Re-enriching metadata...", + "@trackReEnrichProgress": {"description": "Snackbar while re-enriching metadata"}, + "trackReEnrichSearching": "Searching metadata online...", + "@trackReEnrichSearching": {"description": "Snackbar while searching metadata from internet for local items"}, + "trackReEnrichSuccess": "Metadata re-enriched successfully", + "@trackReEnrichSuccess": {"description": "Snackbar after successful re-enrichment"}, + "trackReEnrichFfmpegFailed": "FFmpeg metadata embed failed", + "@trackReEnrichFfmpegFailed": {"description": "Snackbar when FFmpeg embed fails for MP3/Opus"}, + "trackSaveFailed": "Failed: {error}", + "@trackSaveFailed": { + "description": "Snackbar when save operation fails", + "placeholders": { + "error": {"type": "String"} + } + } }