diff --git a/lib/l10n/arb/app_de.arb b/lib/l10n/arb/app_de.arb index 28890472..db6a5afd 100644 --- a/lib/l10n/arb/app_de.arb +++ b/lib/l10n/arb/app_de.arb @@ -127,6 +127,10 @@ "@historyNoSinglesSubtitle": { "description": "Empty state subtitle for singles filter" }, + "historySearchHint": "Suchverlauf...", + "@historySearchHint": { + "description": "Search bar placeholder in history" + }, "settingsTitle": "Einstellungen", "@settingsTitle": { "description": "Settings screen title" @@ -512,6 +516,10 @@ "@aboutLogoArtist": { "description": "Role description for logo artist" }, + "aboutTranslators": "Übersetzer", + "@aboutTranslators": { + "description": "Section for translators" + }, "aboutSpecialThanks": "Besonderer Dank", "@aboutSpecialThanks": { "description": "Section for special thanks" @@ -544,6 +552,26 @@ "@aboutFeatureRequestSubtitle": { "description": "Subtitle for feature request" }, + "aboutTelegramChannel": "Telegram Kanal", + "@aboutTelegramChannel": { + "description": "Link to Telegram channel" + }, + "aboutTelegramChannelSubtitle": "Ankündigungen und Updates", + "@aboutTelegramChannelSubtitle": { + "description": "Subtitle for Telegram channel" + }, + "aboutTelegramChat": "Telegram Community", + "@aboutTelegramChat": { + "description": "Link to Telegram chat group" + }, + "aboutTelegramChatSubtitle": "Mit anderen Nutzern chatten", + "@aboutTelegramChatSubtitle": { + "description": "Subtitle for Telegram chat" + }, + "aboutSocial": "Sozial", + "@aboutSocial": { + "description": "Section for social links" + }, "aboutSupport": "Support", "@aboutSupport": { "description": "Section for support/donation links" @@ -588,7 +616,7 @@ "@aboutDabMusicDesc": { "description": "Credit for DAB Music API" }, - "aboutAppDescription": "Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.", + "aboutAppDescription": "Lade Spotify-Titel in verlustfreier Qualität von Tidal, Qobuz und Amazon Music herunter.", "@aboutAppDescription": { "description": "App description in header card" }, @@ -596,7 +624,7 @@ "@albumTitle": { "description": "Album screen title" }, - "albumTracks": "{count, plural, =1{1 track} other{{count} tracks}}", + "albumTracks": "{count, plural,=1{1 Song} other{{count} Songs}}", "@albumTracks": { "description": "Album track count", "placeholders": { @@ -605,11 +633,11 @@ } } }, - "albumDownloadAll": "Download All", + "albumDownloadAll": "Alle Herunterladen", "@albumDownloadAll": { "description": "Button to download all tracks" }, - "albumDownloadRemaining": "Download Remaining", + "albumDownloadRemaining": "Downloads verbleibend", "@albumDownloadRemaining": { "description": "Button to download remaining tracks" }, @@ -617,11 +645,11 @@ "@playlistTitle": { "description": "Playlist screen title" }, - "artistTitle": "Artist", + "artistTitle": "Künstler", "@artistTitle": { "description": "Artist screen title" }, - "artistAlbums": "Albums", + "artistAlbums": "Alben", "@artistAlbums": { "description": "Section header for artist albums" }, @@ -629,11 +657,11 @@ "@artistSingles": { "description": "Section header for singles/EPs" }, - "artistCompilations": "Compilations", + "artistCompilations": "Zusammenstellungen", "@artistCompilations": { "description": "Section header for compilations" }, - "artistReleases": "{count, plural, =1{1 release} other{{count} releases}}", + "artistReleases": "{count, plural,=1{1 Veröffentlichung} other{{count} Veröffentlichungen}}", "@artistReleases": { "description": "Artist release count", "placeholders": { @@ -642,11 +670,11 @@ } } }, - "artistPopular": "Popular", + "artistPopular": "Beliebt", "@artistPopular": { "description": "Section header for popular/top tracks" }, - "artistMonthlyListeners": "{count} monthly listeners", + "artistMonthlyListeners": "{count} monatliche Hörer", "@artistMonthlyListeners": { "description": "Monthly listener count display", "placeholders": { @@ -656,11 +684,11 @@ } } }, - "trackMetadataTitle": "Track Info", + "trackMetadataTitle": "Titel Info", "@trackMetadataTitle": { "description": "Track metadata screen title" }, - "trackMetadataArtist": "Artist", + "trackMetadataArtist": "Künstler", "@trackMetadataArtist": { "description": "Metadata field - artist name" }, @@ -668,111 +696,111 @@ "@trackMetadataAlbum": { "description": "Metadata field - album name" }, - "trackMetadataDuration": "Duration", + "trackMetadataDuration": "Länge", "@trackMetadataDuration": { "description": "Metadata field - track length" }, - "trackMetadataQuality": "Quality", + "trackMetadataQuality": "Qualität", "@trackMetadataQuality": { "description": "Metadata field - audio quality" }, - "trackMetadataPath": "File Path", + "trackMetadataPath": "Dateipfad", "@trackMetadataPath": { "description": "Metadata field - file location" }, - "trackMetadataDownloadedAt": "Downloaded", + "trackMetadataDownloadedAt": "Heruntergeladen", "@trackMetadataDownloadedAt": { "description": "Metadata field - download date" }, - "trackMetadataService": "Service", + "trackMetadataService": "Anbieter", "@trackMetadataService": { "description": "Metadata field - download service used" }, - "trackMetadataPlay": "Play", + "trackMetadataPlay": "Abspielen", "@trackMetadataPlay": { "description": "Action button - play track" }, - "trackMetadataShare": "Share", + "trackMetadataShare": "Teilen", "@trackMetadataShare": { "description": "Action button - share track" }, - "trackMetadataDelete": "Delete", + "trackMetadataDelete": "Löschen", "@trackMetadataDelete": { "description": "Action button - delete track" }, - "trackMetadataRedownload": "Re-download", + "trackMetadataRedownload": "Erneut herunterladen", "@trackMetadataRedownload": { "description": "Action button - download again" }, - "trackMetadataOpenFolder": "Open Folder", + "trackMetadataOpenFolder": "Ordner öffnen", "@trackMetadataOpenFolder": { "description": "Action button - open containing folder" }, - "setupTitle": "Welcome to SpotiFLAC", + "setupTitle": "Willkommen bei SpotiFLAC", "@setupTitle": { "description": "Setup wizard title" }, - "setupSubtitle": "Let's get you started", + "setupSubtitle": "Los geht's", "@setupSubtitle": { "description": "Setup wizard subtitle" }, - "setupStoragePermission": "Storage Permission", + "setupStoragePermission": "Speicherberechtigung", "@setupStoragePermission": { "description": "Storage permission step title" }, - "setupStoragePermissionSubtitle": "Required to save downloaded files", + "setupStoragePermissionSubtitle": "Benötigt um heruntergeladene Dateien zu Speichern", "@setupStoragePermissionSubtitle": { "description": "Explanation for storage permission" }, - "setupStoragePermissionGranted": "Permission granted", + "setupStoragePermissionGranted": "Berechtigung erteilt", "@setupStoragePermissionGranted": { "description": "Status when permission granted" }, - "setupStoragePermissionDenied": "Permission denied", + "setupStoragePermissionDenied": "Berechtigung verweigert", "@setupStoragePermissionDenied": { "description": "Status when permission denied" }, - "setupGrantPermission": "Grant Permission", + "setupGrantPermission": "Berechtigung erlauben", "@setupGrantPermission": { "description": "Button to request permission" }, - "setupDownloadLocation": "Download Location", + "setupDownloadLocation": "Speicherort", "@setupDownloadLocation": { "description": "Download folder step title" }, - "setupChooseFolder": "Choose Folder", + "setupChooseFolder": "Ordner wählen", "@setupChooseFolder": { "description": "Button to pick folder" }, - "setupContinue": "Continue", + "setupContinue": "Fortfahren", "@setupContinue": { "description": "Continue to next step button" }, - "setupSkip": "Skip for now", + "setupSkip": "Vorerst überspringen", "@setupSkip": { "description": "Skip current step button" }, - "setupStorageAccessRequired": "Storage Access Required", + "setupStorageAccessRequired": "Speicherzugriff erforderlich", "@setupStorageAccessRequired": { "description": "Title when storage access needed" }, - "setupStorageAccessMessage": "SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.", + "setupStorageAccessMessage": "SpotiFLAC benötigt die Berechtigung \"Auf alle Dateien zugreifen\", um Musikdateien in deinen gewählten Ordner zu speichern.", "@setupStorageAccessMessage": { "description": "Explanation for storage access" }, - "setupStorageAccessMessageAndroid11": "Android 11+ requires \"All files access\" permission to save files to your chosen download folder.", + "setupStorageAccessMessageAndroid11": "Android 11+ benötigt die Berechtigung „Auf alle Dateien“, um Dateien im ausgewählten Download-Ordner zu speichern.", "@setupStorageAccessMessageAndroid11": { "description": "Android 11+ specific explanation" }, - "setupOpenSettings": "Open Settings", + "setupOpenSettings": "Einstellungen öffnen", "@setupOpenSettings": { "description": "Button to open system settings" }, - "setupPermissionDeniedMessage": "Permission denied. Please grant all permissions to continue.", + "setupPermissionDeniedMessage": "Berechtigung verweigert. Bitte erteilen Sie alle Berechtigungen um fortzufahren.", "@setupPermissionDeniedMessage": { "description": "Error when permission denied" }, - "setupPermissionRequired": "{permissionType} Permission Required", + "setupPermissionRequired": "{permissionType} Zugriff verweigert", "@setupPermissionRequired": { "description": "Generic permission required title", "placeholders": { @@ -782,7 +810,7 @@ } } }, - "setupPermissionRequiredMessage": "{permissionType} permission is required for the best experience. You can change this later in Settings.", + "setupPermissionRequiredMessage": "{permissionType} Berechtigung ist erforderlich für\ndie beste Benutzererfahrung. Für kannst dies später in den Einstellungen ändern.", "@setupPermissionRequiredMessage": { "description": "Generic permission required message", "placeholders": { @@ -791,63 +819,63 @@ } } }, - "setupSelectDownloadFolder": "Select Download Folder", + "setupSelectDownloadFolder": "Wähle Download-Ordner aus", "@setupSelectDownloadFolder": { "description": "Folder selection step title" }, - "setupUseDefaultFolder": "Use Default Folder?", + "setupUseDefaultFolder": "Als Standardordner verwenden?", "@setupUseDefaultFolder": { "description": "Dialog title for default folder" }, - "setupNoFolderSelected": "No folder selected. Would you like to use the default Music folder?", + "setupNoFolderSelected": "Kein Ordner ausgewählt. Soll der Standard-Musikordner verwendet werden?", "@setupNoFolderSelected": { "description": "Prompt when no folder selected" }, - "setupUseDefault": "Use Default", + "setupUseDefault": "Standart benutzen", "@setupUseDefault": { "description": "Button to use default folder" }, - "setupDownloadLocationTitle": "Download Location", + "setupDownloadLocationTitle": "Speicherort", "@setupDownloadLocationTitle": { "description": "Download location dialog title" }, - "setupDownloadLocationIosMessage": "On iOS, downloads are saved to the app's Documents folder. You can access them via the Files app.", + "setupDownloadLocationIosMessage": "Auf iOS werden Downloads im Dokumentenverzeichnis der App gespeichert. Sie können sie über die Datei-App aufrufen.", "@setupDownloadLocationIosMessage": { "description": "iOS-specific folder info" }, - "setupAppDocumentsFolder": "App Documents Folder", + "setupAppDocumentsFolder": "App-Dokumentenordner", "@setupAppDocumentsFolder": { "description": "iOS documents folder option" }, - "setupAppDocumentsFolderSubtitle": "Recommended - accessible via Files app", + "setupAppDocumentsFolderSubtitle": "Empfohlen - zugänglich über die Datei-App", "@setupAppDocumentsFolderSubtitle": { "description": "Subtitle for documents folder" }, - "setupChooseFromFiles": "Choose from Files", + "setupChooseFromFiles": "Aus Dateien auswählen", "@setupChooseFromFiles": { "description": "iOS file picker option" }, - "setupChooseFromFilesSubtitle": "Select iCloud or other location", + "setupChooseFromFilesSubtitle": "Wählen Sie iCloud oder einen anderen Ort", "@setupChooseFromFilesSubtitle": { "description": "Subtitle for file picker" }, - "setupIosEmptyFolderWarning": "iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.", + "setupIosEmptyFolderWarning": "iOS-Einschränkung: Leere Ordner können nicht ausgewählt werden. Wählen Sie einen Ordner mit mindestens einer Datei.", "@setupIosEmptyFolderWarning": { "description": "iOS folder selection warning" }, - "setupDownloadInFlac": "Download Spotify tracks in FLAC", + "setupDownloadInFlac": "Spotify Titel in FLAC herunterladen", "@setupDownloadInFlac": { "description": "App tagline in setup" }, - "setupStepStorage": "Storage", + "setupStepStorage": "Speicherort", "@setupStepStorage": { "description": "Setup step indicator - storage" }, - "setupStepNotification": "Notification", + "setupStepNotification": "Benachrichtigung", "@setupStepNotification": { "description": "Setup step indicator - notification" }, - "setupStepFolder": "Folder", + "setupStepFolder": "Ordner", "@setupStepFolder": { "description": "Setup step indicator - folder" }, @@ -855,55 +883,55 @@ "@setupStepSpotify": { "description": "Setup step indicator - Spotify API" }, - "setupStepPermission": "Permission", + "setupStepPermission": "Berechtigung", "@setupStepPermission": { "description": "Setup step indicator - permission" }, - "setupStorageGranted": "Storage Permission Granted!", + "setupStorageGranted": "Speicherberechtigung erlaubt!", "@setupStorageGranted": { "description": "Success message for storage permission" }, - "setupStorageRequired": "Storage Permission Required", + "setupStorageRequired": "Speicherzugriff erforderlich", "@setupStorageRequired": { "description": "Title when storage permission needed" }, - "setupStorageDescription": "SpotiFLAC needs storage permission to save your downloaded music files.", + "setupStorageDescription": "SpotiFLAC benötigt Speicherrechte, um die heruntergeladenen Musikdateien zu speichern.", "@setupStorageDescription": { "description": "Explanation for storage permission" }, - "setupNotificationGranted": "Notification Permission Granted!", + "setupNotificationGranted": "Benachrichtigungs-Berechtigung erteilt", "@setupNotificationGranted": { "description": "Success message for notification permission" }, - "setupNotificationEnable": "Enable Notifications", + "setupNotificationEnable": "Benachrichtigungen aktivieren", "@setupNotificationEnable": { "description": "Button to enable notifications" }, - "setupNotificationDescription": "Get notified when downloads complete or require attention.", + "setupNotificationDescription": "Benachrichtigt werden, wenn Downloads abgeschlossen sind.", "@setupNotificationDescription": { "description": "Explanation for notifications" }, - "setupFolderSelected": "Download Folder Selected!", + "setupFolderSelected": "Download Ordner ausgewählt!", "@setupFolderSelected": { "description": "Success message for folder selection" }, - "setupFolderChoose": "Choose Download Folder", + "setupFolderChoose": "Speicherort auwählen", "@setupFolderChoose": { "description": "Button to choose folder" }, - "setupFolderDescription": "Select a folder where your downloaded music will be saved.", + "setupFolderDescription": "Wählen Sie einen Ordner, in dem Ihre heruntergeladene Musik gespeichert wird.", "@setupFolderDescription": { "description": "Explanation for folder selection" }, - "setupChangeFolder": "Change Folder", + "setupChangeFolder": "Ordner ändern", "@setupChangeFolder": { "description": "Button to change selected folder" }, - "setupSelectFolder": "Select Folder", + "setupSelectFolder": "Ordner wählen", "@setupSelectFolder": { "description": "Button to select folder" }, - "setupSpotifyApiOptional": "Spotify API (Optional)", + "setupSpotifyApiOptional": "Spotify-API (optional)", "@setupSpotifyApiOptional": { "description": "Spotify API step title" }, @@ -1122,6 +1150,15 @@ "description": "Dialog title - import CSV playlist" }, "dialogImportPlaylistMessage": "Found {count} tracks in CSV. Add them to download queue?", + "csvImportTracks": "{count} tracks from CSV", + "@csvImportTracks": { + "description": "Label shown in quality picker for CSV import", + "placeholders": { + "count": { + "type": "int" + } + } + }, "@dialogImportPlaylistMessage": { "description": "Dialog message - import playlist confirmation", "placeholders": { @@ -1851,6 +1888,42 @@ "@sectionFileSettings": { "description": "Settings section header" }, + "sectionLyrics": "Lyrics", + "@sectionLyrics": { + "description": "Settings section header" + }, + "lyricsMode": "Lyrics Mode", + "@lyricsMode": { + "description": "Setting - how to save lyrics" + }, + "lyricsModeDescription": "Choose how lyrics are saved with your downloads", + "@lyricsModeDescription": { + "description": "Lyrics mode picker description" + }, + "lyricsModeEmbed": "Embed in file", + "@lyricsModeEmbed": { + "description": "Lyrics mode option - embed in audio file" + }, + "lyricsModeEmbedSubtitle": "Lyrics stored inside FLAC metadata", + "@lyricsModeEmbedSubtitle": { + "description": "Subtitle for embed option" + }, + "lyricsModeExternal": "External .lrc file", + "@lyricsModeExternal": { + "description": "Lyrics mode option - separate LRC file" + }, + "lyricsModeExternalSubtitle": "Separate .lrc file for players like Samsung Music", + "@lyricsModeExternalSubtitle": { + "description": "Subtitle for external option" + }, + "lyricsModeBoth": "Both", + "@lyricsModeBoth": { + "description": "Lyrics mode option - embed and external" + }, + "lyricsModeBothSubtitle": "Embed and save .lrc file", + "@lyricsModeBothSubtitle": { + "description": "Subtitle for both option" + }, "sectionColor": "Color", "@sectionColor": { "description": "Settings section header" @@ -1997,6 +2070,18 @@ "@trackReleaseDate": { "description": "Metadata label - release date" }, + "trackGenre": "Genre", + "@trackGenre": { + "description": "Metadata label - music genre" + }, + "trackLabel": "Label", + "@trackLabel": { + "description": "Metadata label - record label" + }, + "trackCopyright": "Copyright", + "@trackCopyright": { + "description": "Metadata label - copyright information" + }, "trackDownloaded": "Downloaded", "@trackDownloaded": { "description": "Metadata label - download date" @@ -2017,6 +2102,18 @@ "@trackLyricsLoadFailed": { "description": "Message when lyrics loading fails" }, + "trackEmbedLyrics": "Embed Lyrics", + "@trackEmbedLyrics": { + "description": "Action - embed lyrics into audio file" + }, + "trackLyricsEmbedded": "Lyrics embedded successfully", + "@trackLyricsEmbedded": { + "description": "Snackbar - lyrics saved to file" + }, + "trackInstrumental": "Instrumental track", + "@trackInstrumental": { + "description": "Message when track is instrumental (no lyrics)" + }, "trackCopiedToClipboard": "Copied to clipboard", "@trackCopiedToClipboard": { "description": "Snackbar - content copied" @@ -2328,6 +2425,26 @@ "@qualityHiResFlacMaxSubtitle": { "description": "Technical spec for hi-res max" }, + "qualityMp3": "MP3", + "@qualityMp3": { + "description": "Quality option - MP3 lossy format" + }, + "qualityMp3Subtitle": "320kbps (converted from FLAC)", + "@qualityMp3Subtitle": { + "description": "Technical spec for MP3" + }, + "enableMp3Option": "Enable MP3 Option", + "@enableMp3Option": { + "description": "Setting - enable MP3 quality option" + }, + "enableMp3OptionSubtitleOn": "MP3 quality option is available", + "@enableMp3OptionSubtitleOn": { + "description": "Subtitle when MP3 is enabled" + }, + "enableMp3OptionSubtitleOff": "Downloads FLAC then converts to 320kbps MP3", + "@enableMp3OptionSubtitleOff": { + "description": "Subtitle when MP3 is disabled" + }, "qualityNote": "Actual quality depends on track availability from the service", "@qualityNote": { "description": "Note about quality availability" @@ -2516,6 +2633,14 @@ "@albumFolderYearAlbumSubtitle": { "description": "Folder structure example" }, + "albumFolderArtistAlbumSingles": "Artist / Album + Singles", + "@albumFolderArtistAlbumSingles": { + "description": "Album folder option with singles inside artist" + }, + "albumFolderArtistAlbumSinglesSubtitle": "Artist/Album/ and Artist/Singles/", + "@albumFolderArtistAlbumSinglesSubtitle": { + "description": "Folder structure example" + }, "downloadedAlbumDeleteSelected": "Delete Selected", "@downloadedAlbumDeleteSelected": { "description": "Button - delete selected tracks" @@ -2572,6 +2697,16 @@ "@downloadedAlbumSelectToDelete": { "description": "Placeholder when nothing selected" }, + "downloadedAlbumDiscHeader": "Disc {discNumber}", + "@downloadedAlbumDiscHeader": { + "description": "Header for disc separator in multi-disc albums", + "placeholders": { + "discNumber": { + "type": "int", + "example": "1" + } + } + }, "utilityFunctions": "Utility Functions", "@utilityFunctions": { "description": "Extension capability - utility functions" @@ -2611,5 +2746,123 @@ "description": "Error message" } } + }, + "discographyDownload": "Download Discography", + "@discographyDownload": { + "description": "Button - download artist discography" + }, + "discographyDownloadAll": "Download All", + "@discographyDownloadAll": { + "description": "Option - download entire discography" + }, + "discographyDownloadAllSubtitle": "{count} tracks from {albumCount} releases", + "@discographyDownloadAllSubtitle": { + "description": "Subtitle showing total tracks and albums", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographyAlbumsOnly": "Albums Only", + "@discographyAlbumsOnly": { + "description": "Option - download only albums" + }, + "discographyAlbumsOnlySubtitle": "{count} tracks from {albumCount} albums", + "@discographyAlbumsOnlySubtitle": { + "description": "Subtitle showing album tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySinglesOnly": "Singles & EPs Only", + "@discographySinglesOnly": { + "description": "Option - download only singles" + }, + "discographySinglesOnlySubtitle": "{count} tracks from {albumCount} singles", + "@discographySinglesOnlySubtitle": { + "description": "Subtitle showing singles tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySelectAlbums": "Select Albums...", + "@discographySelectAlbums": { + "description": "Option - manually select albums to download" + }, + "discographySelectAlbumsSubtitle": "Choose specific albums or singles", + "@discographySelectAlbumsSubtitle": { + "description": "Subtitle for select albums option" + }, + "discographyFetchingTracks": "Fetching tracks...", + "@discographyFetchingTracks": { + "description": "Progress - fetching album tracks" + }, + "discographyFetchingAlbum": "Fetching {current} of {total}...", + "@discographyFetchingAlbum": { + "description": "Progress - fetching specific album", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "discographySelectedCount": "{count} selected", + "@discographySelectedCount": { + "description": "Selection count badge", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographyDownloadSelected": "Download Selected", + "@discographyDownloadSelected": { + "description": "Button - download selected albums" + }, + "discographyAddedToQueue": "Added {count} tracks to queue", + "@discographyAddedToQueue": { + "description": "Snackbar - tracks added from discography", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographySkippedDownloaded": "{added} added, {skipped} already downloaded", + "@discographySkippedDownloaded": { + "description": "Snackbar - with skipped tracks count", + "placeholders": { + "added": { + "type": "int" + }, + "skipped": { + "type": "int" + } + } + }, + "discographyNoAlbums": "No albums available", + "@discographyNoAlbums": { + "description": "Error - no albums found for artist" + }, + "discographyFailedToFetch": "Failed to fetch some albums", + "@discographyFailedToFetch": { + "description": "Error - some albums failed to load" } } \ No newline at end of file diff --git a/lib/l10n/arb/app_es-ES.arb b/lib/l10n/arb/app_es-ES.arb new file mode 100644 index 00000000..d08057a5 --- /dev/null +++ b/lib/l10n/arb/app_es-ES.arb @@ -0,0 +1,2868 @@ +{ + "@@locale": "es-ES", + "@@last_modified": "2026-01-16", + "appName": "SpotiFLAC", + "@appName": { + "description": "App name - DO NOT TRANSLATE" + }, + "appDescription": "Descargue pistas de Spotify con calidad sin pérdida de Tidal, Qobuz y Amazon Music.", + "@appDescription": { + "description": "App description shown in about page" + }, + "navHome": "Inicio", + "@navHome": { + "description": "Bottom navigation - Home tab" + }, + "navHistory": "Historial", + "@navHistory": { + "description": "Bottom navigation - History tab" + }, + "navSettings": "Ajustes", + "@navSettings": { + "description": "Bottom navigation - Settings tab" + }, + "navStore": "Tienda", + "@navStore": { + "description": "Bottom navigation - Extension store tab" + }, + "homeTitle": "Inicio", + "@homeTitle": { + "description": "Home screen title" + }, + "homeSearchHint": "Pegar URL Spotify o buscar...", + "@homeSearchHint": { + "description": "Placeholder text in search box" + }, + "homeSearchHintExtension": "Buscar con {extensionName}...", + "@homeSearchHintExtension": { + "description": "Placeholder when extension search is active", + "placeholders": { + "extensionName": { + "type": "String", + "description": "Name of the active extension" + } + } + }, + "homeSubtitle": "Pegar enlace de Spotify o buscar por nombre", + "@homeSubtitle": { + "description": "Subtitle shown below search box" + }, + "homeSupports": "Soportes: Pista, Álbum, Lista de reproducción, URLs de Artistas", + "@homeSupports": { + "description": "Info text about supported URL types" + }, + "homeRecent": "Recientes", + "@homeRecent": { + "description": "Section header for recent searches" + }, + "historyTitle": "Historial", + "@historyTitle": { + "description": "History screen title" + }, + "historyDownloading": "Descargando ({count})", + "@historyDownloading": { + "description": "Tab showing active downloads count", + "placeholders": { + "count": { + "type": "int", + "description": "Number of active downloads" + } + } + }, + "historyDownloaded": "Descargado", + "@historyDownloaded": { + "description": "Tab showing completed downloads" + }, + "historyFilterAll": "Todo", + "@historyFilterAll": { + "description": "Filter chip - show all items" + }, + "historyFilterAlbums": "Álbumes", + "@historyFilterAlbums": { + "description": "Filter chip - show albums only" + }, + "historyFilterSingles": "Pistas", + "@historyFilterSingles": { + "description": "Filter chip - show singles only" + }, + "historyTracksCount": "{count, plural, one {}=1{1 pista} other{{count} pistas}}", + "@historyTracksCount": { + "description": "Track count with plural form", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "historyAlbumsCount": "{count, plural, one {}=1{1 álbum} other{{count} álbumes}}", + "@historyAlbumsCount": { + "description": "Album count with plural form", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "historyNoDownloads": "No hay historial de descargas", + "@historyNoDownloads": { + "description": "Empty state title" + }, + "historyNoDownloadsSubtitle": "Las pistas descargadas aparecerán aquí", + "@historyNoDownloadsSubtitle": { + "description": "Empty state subtitle" + }, + "historyNoAlbums": "No hay descargas de álbum", + "@historyNoAlbums": { + "description": "Empty state when filtering albums" + }, + "historyNoAlbumsSubtitle": "Descargar múltiples pistas de un álbum para verlas aquí", + "@historyNoAlbumsSubtitle": { + "description": "Empty state subtitle for albums filter" + }, + "historyNoSingles": "No hay descargas", + "@historyNoSingles": { + "description": "Empty state when filtering singles" + }, + "historyNoSinglesSubtitle": "Las descargas de una sola pista aparecerán aquí", + "@historyNoSinglesSubtitle": { + "description": "Empty state subtitle for singles filter" + }, + "historySearchHint": "Buscar en historial...", + "@historySearchHint": { + "description": "Search bar placeholder in history" + }, + "settingsTitle": "Ajustes", + "@settingsTitle": { + "description": "Settings screen title" + }, + "settingsDownload": "Descargar", + "@settingsDownload": { + "description": "Settings section - download options" + }, + "settingsAppearance": "Apariencia", + "@settingsAppearance": { + "description": "Settings section - visual customization" + }, + "settingsOptions": "Opciones", + "@settingsOptions": { + "description": "Settings section - app options" + }, + "settingsExtensions": "Extensiones", + "@settingsExtensions": { + "description": "Settings section - extension management" + }, + "settingsAbout": "Acerca de", + "@settingsAbout": { + "description": "Settings section - app info" + }, + "downloadTitle": "Descargar", + "@downloadTitle": { + "description": "Download settings page title" + }, + "downloadLocation": "Ubicación de descarga", + "@downloadLocation": { + "description": "Setting for download folder" + }, + "downloadLocationSubtitle": "Elija dónde guardar los archivos", + "@downloadLocationSubtitle": { + "description": "Subtitle for download location" + }, + "downloadLocationDefault": "Ubicación predeterminada", + "@downloadLocationDefault": { + "description": "Shown when using default folder" + }, + "downloadDefaultService": "Servicio por defecto", + "@downloadDefaultService": { + "description": "Setting for preferred download service (Tidal/Qobuz/Amazon)" + }, + "downloadDefaultServiceSubtitle": "Servicio usado para descargas", + "@downloadDefaultServiceSubtitle": { + "description": "Subtitle for default service" + }, + "downloadDefaultQuality": "Calidad por defecto", + "@downloadDefaultQuality": { + "description": "Setting for audio quality" + }, + "downloadAskQuality": "Preguntar calidad antes de descargar", + "@downloadAskQuality": { + "description": "Toggle to show quality picker" + }, + "downloadAskQualitySubtitle": "Mostrar selector de calidad para cada descarga", + "@downloadAskQualitySubtitle": { + "description": "Subtitle for ask quality toggle" + }, + "downloadFilenameFormat": "Formato del nombre del archivo", + "@downloadFilenameFormat": { + "description": "Setting for output filename pattern" + }, + "downloadFolderOrganization": "Organización de carpetas", + "@downloadFolderOrganization": { + "description": "Setting for folder structure" + }, + "downloadSeparateSingles": "Separar Pistas", + "@downloadSeparateSingles": { + "description": "Toggle to separate single tracks" + }, + "downloadSeparateSinglesSubtitle": "Colocar pistas individuales en una carpeta separada", + "@downloadSeparateSinglesSubtitle": { + "description": "Subtitle for separate singles toggle" + }, + "qualityBest": "Mejor disponible", + "@qualityBest": { + "description": "Audio quality option - highest available" + }, + "qualityFlac": "FLAC", + "@qualityFlac": { + "description": "Audio quality option - FLAC lossless" + }, + "quality320": "320 kbps", + "@quality320": { + "description": "Audio quality option - 320kbps MP3" + }, + "quality128": "128 kbps", + "@quality128": { + "description": "Audio quality option - 128kbps MP3" + }, + "appearanceTitle": "Apariencia", + "@appearanceTitle": { + "description": "Appearance settings page title" + }, + "appearanceTheme": "Tema", + "@appearanceTheme": { + "description": "Theme mode setting" + }, + "appearanceThemeSystem": "Sistema", + "@appearanceThemeSystem": { + "description": "Follow system theme" + }, + "appearanceThemeLight": "Claro", + "@appearanceThemeLight": { + "description": "Light theme" + }, + "appearanceThemeDark": "Oscuro", + "@appearanceThemeDark": { + "description": "Dark theme" + }, + "appearanceDynamicColor": "Color dinámico", + "@appearanceDynamicColor": { + "description": "Material You dynamic colors" + }, + "appearanceDynamicColorSubtitle": "Usar colores de tu fondo de pantalla", + "@appearanceDynamicColorSubtitle": { + "description": "Subtitle for dynamic color" + }, + "appearanceAccentColor": "Color Secundario", + "@appearanceAccentColor": { + "description": "Custom accent color picker" + }, + "appearanceHistoryView": "Vista de Historial", + "@appearanceHistoryView": { + "description": "Layout style for history" + }, + "appearanceHistoryViewList": "Lista", + "@appearanceHistoryViewList": { + "description": "List layout option" + }, + "appearanceHistoryViewGrid": "Cuadrícula", + "@appearanceHistoryViewGrid": { + "description": "Grid layout option" + }, + "optionsTitle": "Opciones", + "@optionsTitle": { + "description": "Options settings page title" + }, + "optionsSearchSource": "Buscar Fuente", + "@optionsSearchSource": { + "description": "Section for search provider settings" + }, + "optionsPrimaryProvider": "Proveedor Principal", + "@optionsPrimaryProvider": { + "description": "Main search provider setting" + }, + "optionsPrimaryProviderSubtitle": "Servicio usado al buscar por nombre de la pista.", + "@optionsPrimaryProviderSubtitle": { + "description": "Subtitle for primary provider" + }, + "optionsUsingExtension": "Usando la extensión: {extensionName}", + "@optionsUsingExtension": { + "description": "Shows active extension name", + "placeholders": { + "extensionName": { + "type": "String" + } + } + }, + "optionsSwitchBack": "Toque Deezer o Spotify para volver desde la extensión", + "@optionsSwitchBack": { + "description": "Hint to switch back to built-in providers" + }, + "optionsAutoFallback": "Alternativa automática", + "@optionsAutoFallback": { + "description": "Auto-retry with other services" + }, + "optionsAutoFallbackSubtitle": "Pruebe otros servicios si falla la descarga", + "@optionsAutoFallbackSubtitle": { + "description": "Subtitle for auto fallback" + }, + "optionsUseExtensionProviders": "Usar proveedores de extensiones", + "@optionsUseExtensionProviders": { + "description": "Enable extension download providers" + }, + "optionsUseExtensionProvidersOn": "Las extensiones serán probadas primero", + "@optionsUseExtensionProvidersOn": { + "description": "Status when extension providers enabled" + }, + "optionsUseExtensionProvidersOff": "Utilizando sólo proveedores integrados", + "@optionsUseExtensionProvidersOff": { + "description": "Status when extension providers disabled" + }, + "optionsEmbedLyrics": "Incrustar Letras", + "@optionsEmbedLyrics": { + "description": "Embed lyrics in audio files" + }, + "optionsEmbedLyricsSubtitle": "Insertar letras sincronizadas en archivos FLAC", + "@optionsEmbedLyricsSubtitle": { + "description": "Subtitle for embed lyrics" + }, + "optionsMaxQualityCover": "Carátula de calidad máxima", + "@optionsMaxQualityCover": { + "description": "Download highest quality album art" + }, + "optionsMaxQualityCoverSubtitle": "Descargar carátula de resolución máxima", + "@optionsMaxQualityCoverSubtitle": { + "description": "Subtitle for max quality cover" + }, + "optionsConcurrentDownloads": "Descargas Simultáneas", + "@optionsConcurrentDownloads": { + "description": "Number of parallel downloads" + }, + "optionsConcurrentSequential": "Secuencial (1 a la vez)", + "@optionsConcurrentSequential": { + "description": "Download one at a time" + }, + "optionsConcurrentParallel": "{count} descargas paralelas", + "@optionsConcurrentParallel": { + "description": "Multiple parallel downloads", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "optionsConcurrentWarning": "Las descargas paralelas pueden activar la limitación de velocidad", + "@optionsConcurrentWarning": { + "description": "Warning about rate limits" + }, + "optionsExtensionStore": "Tienda de extensiones", + "@optionsExtensionStore": { + "description": "Show/hide store tab" + }, + "optionsExtensionStoreSubtitle": "Mostrar pestaña de tienda en la navegación", + "@optionsExtensionStoreSubtitle": { + "description": "Subtitle for extension store toggle" + }, + "optionsCheckUpdates": "Comprobar actualizaciones", + "@optionsCheckUpdates": { + "description": "Auto update check toggle" + }, + "optionsCheckUpdatesSubtitle": "Notificar cuando una nueva versión esté disponible", + "@optionsCheckUpdatesSubtitle": { + "description": "Subtitle for update check" + }, + "optionsUpdateChannel": "Tipo de actualizaciones", + "@optionsUpdateChannel": { + "description": "Stable vs preview releases" + }, + "optionsUpdateChannelStable": "Sólo versiones estables", + "@optionsUpdateChannelStable": { + "description": "Only stable updates" + }, + "optionsUpdateChannelPreview": "Versión preliminar", + "@optionsUpdateChannelPreview": { + "description": "Include beta/preview updates" + }, + "optionsUpdateChannelWarning": "La Versión preliminar puede contener errores o características incompletas", + "@optionsUpdateChannelWarning": { + "description": "Warning about preview channel" + }, + "optionsClearHistory": "Borrar el historial de descargas", + "@optionsClearHistory": { + "description": "Delete all download history" + }, + "optionsClearHistorySubtitle": "Eliminar todas las pistas descargadas del historial", + "@optionsClearHistorySubtitle": { + "description": "Subtitle for clear history" + }, + "optionsDetailedLogging": "Registro detallado", + "@optionsDetailedLogging": { + "description": "Enable verbose logs for debugging" + }, + "optionsDetailedLoggingOn": "Registros detallados están siendo registrados", + "@optionsDetailedLoggingOn": { + "description": "Status when logging enabled" + }, + "optionsDetailedLoggingOff": "Habilitar para informes de errores", + "@optionsDetailedLoggingOff": { + "description": "Status when logging disabled" + }, + "optionsSpotifyCredentials": "Credenciales de Spotify", + "@optionsSpotifyCredentials": { + "description": "Spotify API credentials setting" + }, + "optionsSpotifyCredentialsConfigured": "ID de cliente: {clientId}...", + "@optionsSpotifyCredentialsConfigured": { + "description": "Shows configured client ID preview", + "placeholders": { + "clientId": { + "type": "String" + } + } + }, + "optionsSpotifyCredentialsRequired": "Requerido - toque para configurar", + "@optionsSpotifyCredentialsRequired": { + "description": "Prompt to set up credentials" + }, + "optionsSpotifyWarning": "Spotify requiere tus propias credenciales API. Obténgalas gratis de developer.spotify.com", + "@optionsSpotifyWarning": { + "description": "Info about Spotify API requirement" + }, + "extensionsTitle": "Extensiones", + "@extensionsTitle": { + "description": "Extensions page title" + }, + "extensionsInstalled": "Extensiones instaladas", + "@extensionsInstalled": { + "description": "Section header for installed extensions" + }, + "extensionsNone": "No hay extensiones instaladas", + "@extensionsNone": { + "description": "Empty state title" + }, + "extensionsNoneSubtitle": "Instalar extensiones desde la pestaña Tienda", + "@extensionsNoneSubtitle": { + "description": "Empty state subtitle" + }, + "extensionsEnabled": "Habilitado", + "@extensionsEnabled": { + "description": "Extension status - active" + }, + "extensionsDisabled": "Deshabilitado", + "@extensionsDisabled": { + "description": "Extension status - inactive" + }, + "extensionsVersion": "Versión {version}", + "@extensionsVersion": { + "description": "Extension version display", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "extensionsAuthor": "por {author}", + "@extensionsAuthor": { + "description": "Extension author credit", + "placeholders": { + "author": { + "type": "String" + } + } + }, + "extensionsUninstall": "Desinstalar", + "@extensionsUninstall": { + "description": "Uninstall extension button" + }, + "extensionsSetAsSearch": "Establecer como proveedor de búsqueda", + "@extensionsSetAsSearch": { + "description": "Use extension for search" + }, + "storeTitle": "Tienda de extensiones", + "@storeTitle": { + "description": "Store screen title" + }, + "storeSearch": "Buscar extensiones...", + "@storeSearch": { + "description": "Store search placeholder" + }, + "storeInstall": "Instalar", + "@storeInstall": { + "description": "Install extension button" + }, + "storeInstalled": "Instalada", + "@storeInstalled": { + "description": "Already installed badge" + }, + "storeUpdate": "Actualizar", + "@storeUpdate": { + "description": "Update available button" + }, + "aboutTitle": "Acerca de", + "@aboutTitle": { + "description": "About page title" + }, + "aboutContributors": "Colaboradores", + "@aboutContributors": { + "description": "Section for contributors" + }, + "aboutMobileDeveloper": "Desarrollador de versiones móviles", + "@aboutMobileDeveloper": { + "description": "Role description for mobile dev" + }, + "aboutOriginalCreator": "Creador original de SpotiFLAC", + "@aboutOriginalCreator": { + "description": "Role description for original creator" + }, + "aboutLogoArtist": "¡El talentoso artista que creó nuestro hermoso logo!", + "@aboutLogoArtist": { + "description": "Role description for logo artist" + }, + "aboutTranslators": "Traductores", + "@aboutTranslators": { + "description": "Section for translators" + }, + "aboutSpecialThanks": "Agradecimientos especiales", + "@aboutSpecialThanks": { + "description": "Section for special thanks" + }, + "aboutLinks": "Enlaces", + "@aboutLinks": { + "description": "Section for external links" + }, + "aboutMobileSource": "Código fuente móvil", + "@aboutMobileSource": { + "description": "Link to mobile GitHub repo" + }, + "aboutPCSource": "Código fuente de PC", + "@aboutPCSource": { + "description": "Link to PC GitHub repo" + }, + "aboutReportIssue": "Reportar un problema", + "@aboutReportIssue": { + "description": "Link to report bugs" + }, + "aboutReportIssueSubtitle": "Reporta cualquier problema que encuentres", + "@aboutReportIssueSubtitle": { + "description": "Subtitle for report issue" + }, + "aboutFeatureRequest": "Sugerir una función", + "@aboutFeatureRequest": { + "description": "Link to suggest features" + }, + "aboutFeatureRequestSubtitle": "Sugerir nuevas funciones para la aplicación", + "@aboutFeatureRequestSubtitle": { + "description": "Subtitle for feature request" + }, + "aboutTelegramChannel": "Canal de Telegram", + "@aboutTelegramChannel": { + "description": "Link to Telegram channel" + }, + "aboutTelegramChannelSubtitle": "Anuncios y actualizaciones", + "@aboutTelegramChannelSubtitle": { + "description": "Subtitle for Telegram channel" + }, + "aboutTelegramChat": "Comunidad de Telegram", + "@aboutTelegramChat": { + "description": "Link to Telegram chat group" + }, + "aboutTelegramChatSubtitle": "Chatear con otros usuarios", + "@aboutTelegramChatSubtitle": { + "description": "Subtitle for Telegram chat" + }, + "aboutSocial": "Redes sociales", + "@aboutSocial": { + "description": "Section for social links" + }, + "aboutSupport": "Soporte", + "@aboutSupport": { + "description": "Section for support/donation links" + }, + "aboutBuyMeCoffee": "Invítame a un café", + "@aboutBuyMeCoffee": { + "description": "Donation link" + }, + "aboutBuyMeCoffeeSubtitle": "Apoyar el desarrollo en Ko-fi", + "@aboutBuyMeCoffeeSubtitle": { + "description": "Subtitle for donation" + }, + "aboutApp": "Aplicación", + "@aboutApp": { + "description": "Section for app info" + }, + "aboutVersion": "Versión", + "@aboutVersion": { + "description": "Version info label" + }, + "aboutBinimumDesc": "El creador de la API QQDL & Hi-Fi. ¡Sin esta API, las descargas de Tidal no existiría!", + "@aboutBinimumDesc": { + "description": "Credit description for binimum" + }, + "aboutSachinsenalDesc": "El creador original del proyecto Hi-Fi. ¡La base de la integración de Tidal!", + "@aboutSachinsenalDesc": { + "description": "Credit description for sachinsenal0x64" + }, + "aboutDoubleDouble": "DoubleDouble", + "@aboutDoubleDouble": { + "description": "Name of Amazon API service - DO NOT TRANSLATE" + }, + "aboutDoubleDoubleDesc": "API increible para descargas de Amazon Music. ¡Gracias por hacerla gratis!", + "@aboutDoubleDoubleDesc": { + "description": "Credit for DoubleDouble API" + }, + "aboutDabMusic": "Música DAB", + "@aboutDabMusic": { + "description": "Name of Qobuz API service - DO NOT TRANSLATE" + }, + "aboutDabMusicDesc": "La mejor API de streaming de Qobuz. ¡Las descargas de Hi-Res no serían posibles sin esto!", + "@aboutDabMusicDesc": { + "description": "Credit for DAB Music API" + }, + "aboutAppDescription": "Descarga pistas de Spotify con calidad sin pérdida de Tidal, Qobuz y Amazon Music.", + "@aboutAppDescription": { + "description": "App description in header card" + }, + "albumTitle": "Álbum", + "@albumTitle": { + "description": "Album screen title" + }, + "albumTracks": "{count, plural, one {}=1{1 pista} other{{count} pistas}}", + "@albumTracks": { + "description": "Album track count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "albumDownloadAll": "Descargar Todo", + "@albumDownloadAll": { + "description": "Button to download all tracks" + }, + "albumDownloadRemaining": "Descargas Restantes", + "@albumDownloadRemaining": { + "description": "Button to download remaining tracks" + }, + "playlistTitle": "Lista de reproducción", + "@playlistTitle": { + "description": "Playlist screen title" + }, + "artistTitle": "Artista", + "@artistTitle": { + "description": "Artist screen title" + }, + "artistAlbums": "Álbumes", + "@artistAlbums": { + "description": "Section header for artist albums" + }, + "artistSingles": "Pistas y EPs", + "@artistSingles": { + "description": "Section header for singles/EPs" + }, + "artistCompilations": "Compilaciones", + "@artistCompilations": { + "description": "Section header for compilations" + }, + "artistReleases": "{count, plural, one {}=1{1 lanzamiento} other{{count} lanzamientos}}", + "@artistReleases": { + "description": "Artist release count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "artistPopular": "Populares", + "@artistPopular": { + "description": "Section header for popular/top tracks" + }, + "artistMonthlyListeners": "{count} oyentes mensuales", + "@artistMonthlyListeners": { + "description": "Monthly listener count display", + "placeholders": { + "count": { + "type": "String", + "description": "Formatted listener count" + } + } + }, + "trackMetadataTitle": "Información de pista", + "@trackMetadataTitle": { + "description": "Track metadata screen title" + }, + "trackMetadataArtist": "Artista", + "@trackMetadataArtist": { + "description": "Metadata field - artist name" + }, + "trackMetadataAlbum": "Álbum", + "@trackMetadataAlbum": { + "description": "Metadata field - album name" + }, + "trackMetadataDuration": "Duración", + "@trackMetadataDuration": { + "description": "Metadata field - track length" + }, + "trackMetadataQuality": "Calidad", + "@trackMetadataQuality": { + "description": "Metadata field - audio quality" + }, + "trackMetadataPath": "Ruta del archivo", + "@trackMetadataPath": { + "description": "Metadata field - file location" + }, + "trackMetadataDownloadedAt": "Descargado", + "@trackMetadataDownloadedAt": { + "description": "Metadata field - download date" + }, + "trackMetadataService": "Servicio", + "@trackMetadataService": { + "description": "Metadata field - download service used" + }, + "trackMetadataPlay": "Reproducir", + "@trackMetadataPlay": { + "description": "Action button - play track" + }, + "trackMetadataShare": "Compartir", + "@trackMetadataShare": { + "description": "Action button - share track" + }, + "trackMetadataDelete": "Eliminar", + "@trackMetadataDelete": { + "description": "Action button - delete track" + }, + "trackMetadataRedownload": "Volver a descargar", + "@trackMetadataRedownload": { + "description": "Action button - download again" + }, + "trackMetadataOpenFolder": "Abrir carpeta", + "@trackMetadataOpenFolder": { + "description": "Action button - open containing folder" + }, + "setupTitle": "Bienvenido a SpotiFLAC", + "@setupTitle": { + "description": "Setup wizard title" + }, + "setupSubtitle": "Comencemos", + "@setupSubtitle": { + "description": "Setup wizard subtitle" + }, + "setupStoragePermission": "Permiso de almacenamiento", + "@setupStoragePermission": { + "description": "Storage permission step title" + }, + "setupStoragePermissionSubtitle": "Necesario para guardar los archivos descargados", + "@setupStoragePermissionSubtitle": { + "description": "Explanation for storage permission" + }, + "setupStoragePermissionGranted": "Permiso aprobado", + "@setupStoragePermissionGranted": { + "description": "Status when permission granted" + }, + "setupStoragePermissionDenied": "Permiso denegado", + "@setupStoragePermissionDenied": { + "description": "Status when permission denied" + }, + "setupGrantPermission": "Conceder permiso", + "@setupGrantPermission": { + "description": "Button to request permission" + }, + "setupDownloadLocation": "Ubicación de descarga", + "@setupDownloadLocation": { + "description": "Download folder step title" + }, + "setupChooseFolder": "Seleccionar Carpeta", + "@setupChooseFolder": { + "description": "Button to pick folder" + }, + "setupContinue": "Continuar", + "@setupContinue": { + "description": "Continue to next step button" + }, + "setupSkip": "Omitir por ahora", + "@setupSkip": { + "description": "Skip current step button" + }, + "setupStorageAccessRequired": "Acceso al almacenamiento requerido", + "@setupStorageAccessRequired": { + "description": "Title when storage access needed" + }, + "setupStorageAccessMessage": "SpotiFLAC necesita permiso de \"Todos los archivos de acceso\" para guardar los archivos de música en la carpeta elegida.", + "@setupStorageAccessMessage": { + "description": "Explanation for storage access" + }, + "setupStorageAccessMessageAndroid11": "Android 11+ requiere permiso \"Todos los archivos de acceso\" para guardar los archivos en la carpeta de descargas elegida.", + "@setupStorageAccessMessageAndroid11": { + "description": "Android 11+ specific explanation" + }, + "setupOpenSettings": "Abrir ajustes", + "@setupOpenSettings": { + "description": "Button to open system settings" + }, + "setupPermissionDeniedMessage": "Permiso denegado. Por favor, conceda todos los permisos para continuar.", + "@setupPermissionDeniedMessage": { + "description": "Error when permission denied" + }, + "setupPermissionRequired": "Permiso de {permissionType} requerido", + "@setupPermissionRequired": { + "description": "Generic permission required title", + "placeholders": { + "permissionType": { + "type": "String", + "description": "Type of permission (Storage/Notification)" + } + } + }, + "setupPermissionRequiredMessage": "Se requiere un permiso {permissionType} para la mejor experiencia. Puedes cambiar esto más tarde en ajustes.", + "@setupPermissionRequiredMessage": { + "description": "Generic permission required message", + "placeholders": { + "permissionType": { + "type": "String" + } + } + }, + "setupSelectDownloadFolder": "Seleccionar carpeta de descarga", + "@setupSelectDownloadFolder": { + "description": "Folder selection step title" + }, + "setupUseDefaultFolder": "¿Usar carpeta por defecto?", + "@setupUseDefaultFolder": { + "description": "Dialog title for default folder" + }, + "setupNoFolderSelected": "No se ha seleccionado ninguna carpeta. ¿Desea utilizar la carpeta por defecto?", + "@setupNoFolderSelected": { + "description": "Prompt when no folder selected" + }, + "setupUseDefault": "Usar por defecto", + "@setupUseDefault": { + "description": "Button to use default folder" + }, + "setupDownloadLocationTitle": "Ubicación de descarga", + "@setupDownloadLocationTitle": { + "description": "Download location dialog title" + }, + "setupDownloadLocationIosMessage": "En iOS, las descargas se guardan en la carpeta de documentos de la aplicación. Puede acceder a ellas desde la aplicación Archivos.", + "@setupDownloadLocationIosMessage": { + "description": "iOS-specific folder info" + }, + "setupAppDocumentsFolder": "Carpeta de documentos de App", + "@setupAppDocumentsFolder": { + "description": "iOS documents folder option" + }, + "setupAppDocumentsFolderSubtitle": "Recomendado - accesible desde la aplicación Archivos", + "@setupAppDocumentsFolderSubtitle": { + "description": "Subtitle for documents folder" + }, + "setupChooseFromFiles": "Elegir de archivos", + "@setupChooseFromFiles": { + "description": "iOS file picker option" + }, + "setupChooseFromFilesSubtitle": "Seleccione iCloud u otra ubicación", + "@setupChooseFromFilesSubtitle": { + "description": "Subtitle for file picker" + }, + "setupIosEmptyFolderWarning": "Limitación de iOS: No se pueden seleccionar carpetas vacías. Elige una carpeta con al menos un archivo.", + "@setupIosEmptyFolderWarning": { + "description": "iOS folder selection warning" + }, + "setupDownloadInFlac": "Descargar pistas de Spotify en FLAC", + "@setupDownloadInFlac": { + "description": "App tagline in setup" + }, + "setupStepStorage": "Almacenamiento", + "@setupStepStorage": { + "description": "Setup step indicator - storage" + }, + "setupStepNotification": "Notificación", + "@setupStepNotification": { + "description": "Setup step indicator - notification" + }, + "setupStepFolder": "Carpeta", + "@setupStepFolder": { + "description": "Setup step indicator - folder" + }, + "setupStepSpotify": "Spotify", + "@setupStepSpotify": { + "description": "Setup step indicator - Spotify API" + }, + "setupStepPermission": "Permiso", + "@setupStepPermission": { + "description": "Setup step indicator - permission" + }, + "setupStorageGranted": "¡Permiso de almacenamiento concedido!", + "@setupStorageGranted": { + "description": "Success message for storage permission" + }, + "setupStorageRequired": "Permiso de almacenamiento requerido", + "@setupStorageRequired": { + "description": "Title when storage permission needed" + }, + "setupStorageDescription": "SpotiFLAC necesita permiso de almacenamiento para guardar sus archivos de música descargados.", + "@setupStorageDescription": { + "description": "Explanation for storage permission" + }, + "setupNotificationGranted": "¡Acceso a las notificaciones permitido!", + "@setupNotificationGranted": { + "description": "Success message for notification permission" + }, + "setupNotificationEnable": "Activar notificaciones", + "@setupNotificationEnable": { + "description": "Button to enable notifications" + }, + "setupNotificationDescription": "Recibe notificaciones cuando las descargas completen o requieran atención.", + "@setupNotificationDescription": { + "description": "Explanation for notifications" + }, + "setupFolderSelected": "¡Carpeta de descarga seleccionada!", + "@setupFolderSelected": { + "description": "Success message for folder selection" + }, + "setupFolderChoose": "Cambiar carpeta de descargas", + "@setupFolderChoose": { + "description": "Button to choose folder" + }, + "setupFolderDescription": "Seleccione una carpeta donde se guardará la música descargada.", + "@setupFolderDescription": { + "description": "Explanation for folder selection" + }, + "setupChangeFolder": "Cambiar carpeta", + "@setupChangeFolder": { + "description": "Button to change selected folder" + }, + "setupSelectFolder": "Seleccionar Carpeta", + "@setupSelectFolder": { + "description": "Button to select folder" + }, + "setupSpotifyApiOptional": "API de Spotify (opcional)", + "@setupSpotifyApiOptional": { + "description": "Spotify API step title" + }, + "setupSpotifyApiDescription": "Añade tus credenciales de la API de Spotify para mejores resultados de búsqueda y acceso al contenido exclusivo de Spotify.", + "@setupSpotifyApiDescription": { + "description": "Explanation for Spotify API" + }, + "setupUseSpotifyApi": "Usar API de Spotify", + "@setupUseSpotifyApi": { + "description": "Toggle to enable Spotify API" + }, + "setupEnterCredentialsBelow": "Ingresa tus credenciales a continuación", + "@setupEnterCredentialsBelow": { + "description": "Prompt to enter credentials" + }, + "setupUsingDeezer": "Usando Deezer (no se necesita cuenta)", + "@setupUsingDeezer": { + "description": "Status when using Deezer" + }, + "setupEnterClientId": "Introduzca el ID de cliente de Spotify", + "@setupEnterClientId": { + "description": "Placeholder for client ID field" + }, + "setupEnterClientSecret": "Ingresa el Client Secret de Spotify", + "@setupEnterClientSecret": { + "description": "Placeholder for client secret field" + }, + "setupGetFreeCredentials": "Obtén tus credenciales gratuitas de la API desde el Spotify Developer Dashboard.", + "@setupGetFreeCredentials": { + "description": "Info about getting Spotify credentials" + }, + "setupEnableNotifications": "Activar notificaciones", + "@setupEnableNotifications": { + "description": "Button to enable notifications" + }, + "setupProceedToNextStep": "Ahora puedes continuar con el siguiente paso.", + "@setupProceedToNextStep": { + "description": "Message after completing a step" + }, + "setupNotificationProgressDescription": "Recibirás notificaciones de progreso de descargas.", + "@setupNotificationProgressDescription": { + "description": "Info about notification usage" + }, + "setupNotificationBackgroundDescription": "Recibe notificaciones sobre el progreso de la descarga y la finalización. Esto te ayuda a rastrear las descargas cuando la aplicación está en segundo plano.", + "@setupNotificationBackgroundDescription": { + "description": "Detailed notification explanation" + }, + "setupSkipForNow": "Omitir por ahora", + "@setupSkipForNow": { + "description": "Skip button text" + }, + "setupBack": "Atrás", + "@setupBack": { + "description": "Back button text" + }, + "setupNext": "Siguiente", + "@setupNext": { + "description": "Next button text" + }, + "setupGetStarted": "Empezar", + "@setupGetStarted": { + "description": "Final setup button" + }, + "setupSkipAndStart": "Saltar y empezar", + "@setupSkipAndStart": { + "description": "Skip setup and start app" + }, + "setupAllowAccessToManageFiles": "Por favor, activa \"Permitir el acceso para gestionar todos los archivos\" en la siguiente pantalla.", + "@setupAllowAccessToManageFiles": { + "description": "Instruction for file access permission" + }, + "setupGetCredentialsFromSpotify": "Obtener credenciales de developer.spotify.com", + "@setupGetCredentialsFromSpotify": { + "description": "Link text for Spotify developer portal" + }, + "dialogCancel": "Cancelar", + "@dialogCancel": { + "description": "Dialog button - cancel action" + }, + "dialogOk": "Aceptar", + "@dialogOk": { + "description": "Dialog button - confirm/acknowledge" + }, + "dialogSave": "Guardar", + "@dialogSave": { + "description": "Dialog button - save changes" + }, + "dialogDelete": "Eliminar", + "@dialogDelete": { + "description": "Dialog button - delete item" + }, + "dialogRetry": "Volver a intentar", + "@dialogRetry": { + "description": "Dialog button - retry action" + }, + "dialogClose": "Cerrar", + "@dialogClose": { + "description": "Dialog button - close dialog" + }, + "dialogYes": "Sí", + "@dialogYes": { + "description": "Dialog button - confirm yes" + }, + "dialogNo": "No", + "@dialogNo": { + "description": "Dialog button - confirm no" + }, + "dialogClear": "Borrar", + "@dialogClear": { + "description": "Dialog button - clear items" + }, + "dialogConfirm": "Confirmar", + "@dialogConfirm": { + "description": "Dialog button - confirm action" + }, + "dialogDone": "Hecho", + "@dialogDone": { + "description": "Dialog button - action completed" + }, + "dialogImport": "Importar", + "@dialogImport": { + "description": "Dialog button - import data" + }, + "dialogDiscard": "Descartar", + "@dialogDiscard": { + "description": "Dialog button - discard changes" + }, + "dialogRemove": "Eliminar", + "@dialogRemove": { + "description": "Dialog button - remove item" + }, + "dialogUninstall": "Desinstalar", + "@dialogUninstall": { + "description": "Dialog button - uninstall extension" + }, + "dialogDiscardChanges": "¿Descartar cambios?", + "@dialogDiscardChanges": { + "description": "Dialog title - unsaved changes warning" + }, + "dialogUnsavedChanges": "Tienes cambios sin guardar. ¿Quieres descartarlos?", + "@dialogUnsavedChanges": { + "description": "Dialog message - unsaved changes" + }, + "dialogDownloadFailed": "Descarga fallida", + "@dialogDownloadFailed": { + "description": "Dialog title - download error" + }, + "dialogTrackLabel": "Pista:", + "@dialogTrackLabel": { + "description": "Label for track name in error dialog" + }, + "dialogArtistLabel": "Artista:", + "@dialogArtistLabel": { + "description": "Label for artist name in error dialog" + }, + "dialogErrorLabel": "Error:", + "@dialogErrorLabel": { + "description": "Label for error message" + }, + "dialogClearAll": "Eliminar todo", + "@dialogClearAll": { + "description": "Dialog title - clear all items" + }, + "dialogClearAllDownloads": "¿Estás seguro de que quieres borrar todas las descargas?", + "@dialogClearAllDownloads": { + "description": "Dialog message - clear downloads confirmation" + }, + "dialogRemoveFromDevice": "¿Eliminar del dispositivo?", + "@dialogRemoveFromDevice": { + "description": "Dialog title - delete file confirmation" + }, + "dialogRemoveExtension": "Eliminar extensión", + "@dialogRemoveExtension": { + "description": "Dialog title - uninstall extension" + }, + "dialogRemoveExtensionMessage": "¿Estás seguro de que quieres eliminar esta extensión? Esto no se puede deshacer.", + "@dialogRemoveExtensionMessage": { + "description": "Dialog message - uninstall confirmation" + }, + "dialogUninstallExtension": "¿Desinstalar extensión?", + "@dialogUninstallExtension": { + "description": "Dialog title - uninstall extension" + }, + "dialogUninstallExtensionMessage": "¿Estás seguro de que quieres eliminar {extensionName}?", + "@dialogUninstallExtensionMessage": { + "description": "Dialog message - uninstall specific extension", + "placeholders": { + "extensionName": { + "type": "String" + } + } + }, + "dialogClearHistoryTitle": "Borrar historial", + "@dialogClearHistoryTitle": { + "description": "Dialog title - clear download history" + }, + "dialogClearHistoryMessage": "¿Estás seguro de que quieres borrar todo el historial de descargas? Esta acción no se puede deshacer.", + "@dialogClearHistoryMessage": { + "description": "Dialog message - clear history confirmation" + }, + "dialogDeleteSelectedTitle": "Borrar Seleccionados", + "@dialogDeleteSelectedTitle": { + "description": "Dialog title - delete selected items" + }, + "dialogDeleteSelectedMessage": "¿Eliminar {count} {count, plural, one {}=1{pista} other{pistas}} del historial?\n\nEsto también eliminará los archivos del almacenamiento.", + "@dialogDeleteSelectedMessage": { + "description": "Dialog message - delete selected tracks", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dialogImportPlaylistTitle": "Importar lista de reproducción", + "@dialogImportPlaylistTitle": { + "description": "Dialog title - import CSV playlist" + }, + "dialogImportPlaylistMessage": "Se han encontrado pistas {count} en CSV. ¿Añadirlas para descargar la cola?", + "csvImportTracks": "{count} pistas de 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": "Añadido \"{trackName}\" a la cola", + "@snackbarAddedToQueue": { + "description": "Snackbar - track added to download queue", + "placeholders": { + "trackName": { + "type": "String" + } + } + }, + "snackbarAddedTracksToQueue": "Añadidas pistas {count} a la cola", + "@snackbarAddedTracksToQueue": { + "description": "Snackbar - multiple tracks added to queue", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "snackbarAlreadyDownloaded": "\"{trackName}\" ya descargado", + "@snackbarAlreadyDownloaded": { + "description": "Snackbar - track already exists", + "placeholders": { + "trackName": { + "type": "String" + } + } + }, + "snackbarHistoryCleared": "Historial borrado", + "@snackbarHistoryCleared": { + "description": "Snackbar - history deleted" + }, + "snackbarCredentialsSaved": "Credenciales guardadas", + "@snackbarCredentialsSaved": { + "description": "Snackbar - Spotify credentials saved" + }, + "snackbarCredentialsCleared": "Credenciales borradas", + "@snackbarCredentialsCleared": { + "description": "Snackbar - Spotify credentials removed" + }, + "snackbarDeletedTracks": "Eliminado {count} {count, plural, one {}=1{pista} other{pistas}}", + "@snackbarDeletedTracks": { + "description": "Snackbar - tracks deleted", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "snackbarCannotOpenFile": "No se puede abrir el archivo: {error}", + "@snackbarCannotOpenFile": { + "description": "Snackbar - file open error", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "snackbarFillAllFields": "Por favor, completa todos los campos", + "@snackbarFillAllFields": { + "description": "Snackbar - validation error" + }, + "snackbarViewQueue": "Ver cola", + "@snackbarViewQueue": { + "description": "Snackbar action - view download queue" + }, + "snackbarFailedToLoad": "Error al cargar: {error}", + "@snackbarFailedToLoad": { + "description": "Snackbar - loading error", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "snackbarUrlCopied": "URL {platform} copiada al portapapeles", + "@snackbarUrlCopied": { + "description": "Snackbar - URL copied", + "placeholders": { + "platform": { + "type": "String", + "description": "Platform name (Spotify/Deezer)" + } + } + }, + "snackbarFileNotFound": "Archivo no encontrado", + "@snackbarFileNotFound": { + "description": "Snackbar - file doesn't exist" + }, + "snackbarSelectExtFile": "Por favor, seleccione un archivo .spotiflac-ext", + "@snackbarSelectExtFile": { + "description": "Snackbar - wrong file type selected" + }, + "snackbarProviderPrioritySaved": "Prioridad de proveedor guardada", + "@snackbarProviderPrioritySaved": { + "description": "Snackbar - provider order saved" + }, + "snackbarMetadataProviderSaved": "Prioridad de proveedor de metadatos guardada", + "@snackbarMetadataProviderSaved": { + "description": "Snackbar - metadata provider order saved" + }, + "snackbarExtensionInstalled": "{extensionName} instalado.", + "@snackbarExtensionInstalled": { + "description": "Snackbar - extension installed successfully", + "placeholders": { + "extensionName": { + "type": "String" + } + } + }, + "snackbarExtensionUpdated": "{extensionName} actualizada.", + "@snackbarExtensionUpdated": { + "description": "Snackbar - extension updated successfully", + "placeholders": { + "extensionName": { + "type": "String" + } + } + }, + "snackbarFailedToInstall": "Fallo al instalar la extensión", + "@snackbarFailedToInstall": { + "description": "Snackbar - extension install error" + }, + "snackbarFailedToUpdate": "Error al actualizar la extensión", + "@snackbarFailedToUpdate": { + "description": "Snackbar - extension update error" + }, + "errorRateLimited": "Límite Excedido", + "@errorRateLimited": { + "description": "Error title - too many requests" + }, + "errorRateLimitedMessage": "Demasiadas solicitudes. Por favor, espere un momento antes de buscar de nuevo.", + "@errorRateLimitedMessage": { + "description": "Error message - rate limit explanation" + }, + "errorFailedToLoad": "Error al cargar {item}", + "@errorFailedToLoad": { + "description": "Error message - loading failed", + "placeholders": { + "item": { + "type": "String", + "description": "Item that failed to load (album/playlist/etc)" + } + } + }, + "errorNoTracksFound": "No se encontraron pistas", + "@errorNoTracksFound": { + "description": "Error - search returned no results" + }, + "errorMissingExtensionSource": "No se puede cargar {item}: falta una fuente de extensión", + "@errorMissingExtensionSource": { + "description": "Error - extension source not available", + "placeholders": { + "item": { + "type": "String" + } + } + }, + "statusQueued": "En cola", + "@statusQueued": { + "description": "Download status - waiting in queue" + }, + "statusDownloading": "Descargando", + "@statusDownloading": { + "description": "Download status - in progress" + }, + "statusFinalizing": "Finalizando", + "@statusFinalizing": { + "description": "Download status - writing metadata" + }, + "statusCompleted": "Completado", + "@statusCompleted": { + "description": "Download status - finished" + }, + "statusFailed": "Error", + "@statusFailed": { + "description": "Download status - error occurred" + }, + "statusSkipped": "Omitido", + "@statusSkipped": { + "description": "Download status - already exists" + }, + "statusPaused": "Pausado", + "@statusPaused": { + "description": "Download status - paused" + }, + "actionPause": "Pausar", + "@actionPause": { + "description": "Action button - pause download" + }, + "actionResume": "Reanudar", + "@actionResume": { + "description": "Action button - resume download" + }, + "actionCancel": "Cancelar", + "@actionCancel": { + "description": "Action button - cancel operation" + }, + "actionStop": "Detener", + "@actionStop": { + "description": "Action button - stop operation" + }, + "actionSelect": "Seleccionar", + "@actionSelect": { + "description": "Action button - enter selection mode" + }, + "actionSelectAll": "Seleccionar Todo", + "@actionSelectAll": { + "description": "Action button - select all items" + }, + "actionDeselect": "Deseleccionar", + "@actionDeselect": { + "description": "Action button - deselect all" + }, + "actionPaste": "Pegar", + "@actionPaste": { + "description": "Action button - paste from clipboard" + }, + "actionImportCsv": "Importar CSV", + "@actionImportCsv": { + "description": "Action button - import CSV file" + }, + "actionRemoveCredentials": "Eliminar credenciales", + "@actionRemoveCredentials": { + "description": "Action button - delete Spotify credentials" + }, + "actionSaveCredentials": "Guardar credenciales", + "@actionSaveCredentials": { + "description": "Action button - save Spotify credentials" + }, + "selectionSelected": "{count} seleccionado", + "@selectionSelected": { + "description": "Selection count indicator", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "selectionAllSelected": "Todas las pistas seleccionadas", + "@selectionAllSelected": { + "description": "Status - all items selected" + }, + "selectionTapToSelect": "Toca las pistas para seleccionar", + "@selectionTapToSelect": { + "description": "Hint - how to select items" + }, + "selectionDeleteTracks": "¡Eliminar {count} {count, plural, one {}=1{pista} other{pistas}}", + "@selectionDeleteTracks": { + "description": "Delete button with count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "selectionSelectToDelete": "Seleccionar pistas a eliminar", + "@selectionSelectToDelete": { + "description": "Placeholder when nothing selected" + }, + "progressFetchingMetadata": "Obteniendo metadatos... {current}/{total}", + "@progressFetchingMetadata": { + "description": "Progress indicator - loading track info", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "progressReadingCsv": "Leyendo CSV...", + "@progressReadingCsv": { + "description": "Progress indicator - parsing CSV file" + }, + "searchSongs": "Canciones", + "@searchSongs": { + "description": "Search result category - songs" + }, + "searchArtists": "Artistas", + "@searchArtists": { + "description": "Search result category - artists" + }, + "searchAlbums": "Álbumes", + "@searchAlbums": { + "description": "Search result category - albums" + }, + "searchPlaylists": "Listas de reproducción", + "@searchPlaylists": { + "description": "Search result category - playlists" + }, + "tooltipPlay": "Reproducir", + "@tooltipPlay": { + "description": "Tooltip - play button" + }, + "tooltipCancel": "Cancelar", + "@tooltipCancel": { + "description": "Tooltip - cancel button" + }, + "tooltipStop": "Detener", + "@tooltipStop": { + "description": "Tooltip - stop button" + }, + "tooltipRetry": "Volver a intentar", + "@tooltipRetry": { + "description": "Tooltip - retry button" + }, + "tooltipRemove": "Eliminar", + "@tooltipRemove": { + "description": "Tooltip - remove button" + }, + "tooltipClear": "Borrar", + "@tooltipClear": { + "description": "Tooltip - clear button" + }, + "tooltipPaste": "Pegar", + "@tooltipPaste": { + "description": "Tooltip - paste button" + }, + "filenameFormat": "Formato del nombre del archivo", + "@filenameFormat": { + "description": "Setting title - filename pattern" + }, + "filenameFormatPreview": "Vista previa: {preview}", + "@filenameFormatPreview": { + "description": "Preview of filename pattern", + "placeholders": { + "preview": { + "type": "String" + } + } + }, + "filenameAvailablePlaceholders": "Marcadores disponibles:", + "@filenameAvailablePlaceholders": { + "description": "Label for placeholder list" + }, + "filenameHint": "{artist} - {title}", + "@filenameHint": { + "description": "Default filename format hint" + }, + "folderOrganization": "Organización de carpetas", + "@folderOrganization": { + "description": "Setting title - folder structure" + }, + "folderOrganizationNone": "Ninguna organización", + "@folderOrganizationNone": { + "description": "Folder option - flat structure" + }, + "folderOrganizationByArtist": "Por Artista", + "@folderOrganizationByArtist": { + "description": "Folder option - artist folders" + }, + "folderOrganizationByAlbum": "Por Álbum", + "@folderOrganizationByAlbum": { + "description": "Folder option - album folders" + }, + "folderOrganizationByArtistAlbum": "Artista/Álbum", + "@folderOrganizationByArtistAlbum": { + "description": "Folder option - nested folders" + }, + "folderOrganizationDescription": "Organizar los archivos descargados en carpetas", + "@folderOrganizationDescription": { + "description": "Folder organization sheet description" + }, + "folderOrganizationNoneSubtitle": "Todos los archivos de la carpeta de descargas", + "@folderOrganizationNoneSubtitle": { + "description": "Subtitle for no organization option" + }, + "folderOrganizationByArtistSubtitle": "Carpeta separada para cada artista", + "@folderOrganizationByArtistSubtitle": { + "description": "Subtitle for artist folder option" + }, + "folderOrganizationByAlbumSubtitle": "Carpeta separada para cada artista", + "@folderOrganizationByAlbumSubtitle": { + "description": "Subtitle for album folder option" + }, + "folderOrganizationByArtistAlbumSubtitle": "Carpetas organizadas por artista y álbum", + "@folderOrganizationByArtistAlbumSubtitle": { + "description": "Subtitle for nested folder option" + }, + "updateAvailable": "Actualización Disponible", + "@updateAvailable": { + "description": "Update dialog title" + }, + "updateNewVersion": "Versión {version} está disponible", + "@updateNewVersion": { + "description": "Update available message", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "updateDownload": "Descargar", + "@updateDownload": { + "description": "Update button - download update" + }, + "updateLater": "Más tarde", + "@updateLater": { + "description": "Update button - dismiss" + }, + "updateChangelog": "Historial de cambios", + "@updateChangelog": { + "description": "Link to changelog" + }, + "updateStartingDownload": "Iniciando descarga...", + "@updateStartingDownload": { + "description": "Update status - initializing" + }, + "updateDownloadFailed": "Descarga fallida", + "@updateDownloadFailed": { + "description": "Update error title" + }, + "updateFailedMessage": "Error al descargar la actualización", + "@updateFailedMessage": { + "description": "Update error message" + }, + "updateNewVersionReady": "Una nueva versión está lista", + "@updateNewVersionReady": { + "description": "Update subtitle" + }, + "updateCurrent": "Actual", + "@updateCurrent": { + "description": "Label for current version" + }, + "updateNew": "Nuevo", + "@updateNew": { + "description": "Label for new version" + }, + "updateDownloading": "Descargando...", + "@updateDownloading": { + "description": "Update status - downloading" + }, + "updateWhatsNew": "Novedades", + "@updateWhatsNew": { + "description": "Changelog section title" + }, + "updateDownloadInstall": "Descargar & Instalar", + "@updateDownloadInstall": { + "description": "Update button - download and install" + }, + "updateDontRemind": "No recordar", + "@updateDontRemind": { + "description": "Update button - skip this version" + }, + "providerPriority": "Prioridad del proveedor", + "@providerPriority": { + "description": "Setting title - download provider order" + }, + "providerPrioritySubtitle": "Arrastre para reordenar los proveedores de descarga", + "@providerPrioritySubtitle": { + "description": "Subtitle for provider priority" + }, + "providerPriorityTitle": "Prioridad del proveedor", + "@providerPriorityTitle": { + "description": "Provider priority page title" + }, + "providerPriorityDescription": "Arrastra para reordenar los proveedores de descarga. La aplicación intentará usar los proveedores de arriba hacia abajo al descargar las pistas.", + "@providerPriorityDescription": { + "description": "Provider priority page description" + }, + "providerPriorityInfo": "Si una pista no está disponible en el primer proveedor, la aplicación intentará automáticamente el siguiente.", + "@providerPriorityInfo": { + "description": "Info tip about fallback behavior" + }, + "providerBuiltIn": "Integrado", + "@providerBuiltIn": { + "description": "Label for built-in providers (Tidal/Qobuz/Amazon)" + }, + "providerExtension": "Extensión", + "@providerExtension": { + "description": "Label for extension-provided providers" + }, + "metadataProviderPriority": "Prioridad del proveedor de metadatos", + "@metadataProviderPriority": { + "description": "Setting title - metadata provider order" + }, + "metadataProviderPrioritySubtitle": "Orden usado al recuperar metadatos de la pista", + "@metadataProviderPrioritySubtitle": { + "description": "Subtitle for metadata priority" + }, + "metadataProviderPriorityTitle": "Prioridad de los metadatos", + "@metadataProviderPriorityTitle": { + "description": "Metadata priority page title" + }, + "metadataProviderPriorityDescription": "Arrastra para reordenar los proveedores de metadatos. La aplicación probará los proveedores de arriba hacia abajo al buscar pistas y obtener los metadatos.", + "@metadataProviderPriorityDescription": { + "description": "Metadata priority page description" + }, + "metadataProviderPriorityInfo": "Deezer no tiene límites de tasa y se recomienda como principal. Spotify puede valorar el límite después de muchas solicitudes.", + "@metadataProviderPriorityInfo": { + "description": "Info tip about rate limits" + }, + "metadataNoRateLimits": "Sin límites de tasa", + "@metadataNoRateLimits": { + "description": "Deezer provider description" + }, + "metadataMayRateLimit": "Sin límites de tasa", + "@metadataMayRateLimit": { + "description": "Spotify provider description" + }, + "logTitle": "Registros", + "@logTitle": { + "description": "Logs screen title" + }, + "logCopy": "Copiar Registros", + "@logCopy": { + "description": "Action - copy logs to clipboard" + }, + "logClear": "Limpiar registros", + "@logClear": { + "description": "Action - delete all logs" + }, + "logShare": "Compartir Registros", + "@logShare": { + "description": "Action - share logs file" + }, + "logEmpty": "No hay registros aún", + "@logEmpty": { + "description": "Empty state title" + }, + "logCopied": "Registros copiados al portapapeles", + "@logCopied": { + "description": "Snackbar - logs copied" + }, + "logSearchHint": "Buscar registros...", + "@logSearchHint": { + "description": "Log search placeholder" + }, + "logFilterLevel": "Nivel", + "@logFilterLevel": { + "description": "Filter by log level" + }, + "logFilterSection": "Filtrar", + "@logFilterSection": { + "description": "Filter section title" + }, + "logShareLogs": "Compartir registros", + "@logShareLogs": { + "description": "Share button tooltip" + }, + "logClearLogs": "Borrar registros", + "@logClearLogs": { + "description": "Clear button tooltip" + }, + "logClearLogsTitle": "Limpiar registros", + "@logClearLogsTitle": { + "description": "Clear logs dialog title" + }, + "logClearLogsMessage": "¿Estás seguro que deseas limpiar todos los registros?", + "@logClearLogsMessage": { + "description": "Clear logs confirmation message" + }, + "logIspBlocking": "BLOQUEO POR EL ISP DETECTADO", + "@logIspBlocking": { + "description": "Error category - ISP blocking" + }, + "logRateLimited": "TASA LIMITADA", + "@logRateLimited": { + "description": "Error category - rate limiting" + }, + "logNetworkError": "ERROR DE RED", + "@logNetworkError": { + "description": "Error category - network issues" + }, + "logTrackNotFound": "PISTA NO ENCONTRADA", + "@logTrackNotFound": { + "description": "Error category - missing tracks" + }, + "logFilterBySeverity": "Filtrar los registros por gravedad", + "@logFilterBySeverity": { + "description": "Filter dialog title" + }, + "logNoLogsYet": "No hay registros aún", + "@logNoLogsYet": { + "description": "Empty state title" + }, + "logNoLogsYetSubtitle": "Los registros aparecerán aquí mientras usas la aplicación", + "@logNoLogsYetSubtitle": { + "description": "Empty state subtitle" + }, + "logIssueSummary": "Resumen de Incidencias", + "@logIssueSummary": { + "description": "Section header for error summary" + }, + "logIspBlockingDescription": "Tu ISP puede estar bloqueando el acceso a los servicios de descarga", + "@logIspBlockingDescription": { + "description": "ISP blocking explanation" + }, + "logIspBlockingSuggestion": "Intente usar una VPN o cambie el DNS a 1.1.1.1 o 8.8.8.8", + "@logIspBlockingSuggestion": { + "description": "ISP blocking fix suggestion" + }, + "logRateLimitedDescription": "Demasiadas solicitudes al servicio", + "@logRateLimitedDescription": { + "description": "Rate limit explanation" + }, + "logRateLimitedSuggestion": "Espere unos minutos antes de volver a intentarlo", + "@logRateLimitedSuggestion": { + "description": "Rate limit fix suggestion" + }, + "logNetworkErrorDescription": "Problemas de conexión detectados", + "@logNetworkErrorDescription": { + "description": "Network error explanation" + }, + "logNetworkErrorSuggestion": "Comprueba tu conexión a internet", + "@logNetworkErrorSuggestion": { + "description": "Network error fix suggestion" + }, + "logTrackNotFoundDescription": "No se pudieron encontrar algunas pistas en los servicios de descarga", + "@logTrackNotFoundDescription": { + "description": "Track not found explanation" + }, + "logTrackNotFoundSuggestion": "La pista puede no estar disponible en calidad sin pérdida", + "@logTrackNotFoundSuggestion": { + "description": "Track not found explanation" + }, + "logTotalErrors": "Total de errores: {count}", + "@logTotalErrors": { + "description": "Error count display", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "logAffected": "Afectado: {domains}", + "@logAffected": { + "description": "Affected domains display", + "placeholders": { + "domains": { + "type": "String" + } + } + }, + "logEntriesFiltered": "Entradas ({count} filtradas)", + "@logEntriesFiltered": { + "description": "Log count with filter active", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "logEntries": "Entradas ({count})", + "@logEntries": { + "description": "Total log count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "credentialsTitle": "Credenciales de Spotify", + "@credentialsTitle": { + "description": "Credentials dialog title" + }, + "credentialsDescription": "Introduzca su ID de cliente y secreto para utilizar su propia cuota de aplicación de Spotify.", + "@credentialsDescription": { + "description": "Credentials dialog explanation" + }, + "credentialsClientId": "ID del cliente", + "@credentialsClientId": { + "description": "Client ID field label - DO NOT TRANSLATE" + }, + "credentialsClientIdHint": "Pegar ID de cliente", + "@credentialsClientIdHint": { + "description": "Client ID placeholder" + }, + "credentialsClientSecret": "Client Secret", + "@credentialsClientSecret": { + "description": "Client Secret field label - DO NOT TRANSLATE" + }, + "credentialsClientSecretHint": "Pegar Client Secret", + "@credentialsClientSecretHint": { + "description": "Client Secret placeholder" + }, + "channelStable": "Estable", + "@channelStable": { + "description": "Update channel - stable releases" + }, + "channelPreview": "Vista previa", + "@channelPreview": { + "description": "Update channel - beta/preview releases" + }, + "sectionSearchSource": "Buscar Fuente", + "@sectionSearchSource": { + "description": "Settings section header" + }, + "sectionDownload": "Descargar", + "@sectionDownload": { + "description": "Settings section header" + }, + "sectionPerformance": "Alto rendimiento", + "@sectionPerformance": { + "description": "Settings section header" + }, + "sectionApp": "Aplicación", + "@sectionApp": { + "description": "Settings section header" + }, + "sectionData": "Datos", + "@sectionData": { + "description": "Settings section header" + }, + "sectionDebug": "Depuración", + "@sectionDebug": { + "description": "Settings section header" + }, + "sectionService": "Servicio", + "@sectionService": { + "description": "Settings section header" + }, + "sectionAudioQuality": "Calidad de Sonido", + "@sectionAudioQuality": { + "description": "Settings section header" + }, + "sectionFileSettings": "Ajustes del archivo", + "@sectionFileSettings": { + "description": "Settings section header" + }, + "sectionLyrics": "Letras", + "@sectionLyrics": { + "description": "Settings section header" + }, + "lyricsMode": "Modo Letras", + "@lyricsMode": { + "description": "Setting - how to save lyrics" + }, + "lyricsModeDescription": "Elige cómo se guardan las letras de tus descargas", + "@lyricsModeDescription": { + "description": "Lyrics mode picker description" + }, + "lyricsModeEmbed": "Insertar en archivo", + "@lyricsModeEmbed": { + "description": "Lyrics mode option - embed in audio file" + }, + "lyricsModeEmbedSubtitle": "Letras almacenadas en los metadatos FLAC", + "@lyricsModeEmbedSubtitle": { + "description": "Subtitle for embed option" + }, + "lyricsModeExternal": "Archivo .lrc externo", + "@lyricsModeExternal": { + "description": "Lyrics mode option - separate LRC file" + }, + "lyricsModeExternalSubtitle": "Archivo .lrc separado para reproductores como Samsung Music", + "@lyricsModeExternalSubtitle": { + "description": "Subtitle for external option" + }, + "lyricsModeBoth": "Ambos", + "@lyricsModeBoth": { + "description": "Lyrics mode option - embed and external" + }, + "lyricsModeBothSubtitle": "Insertar y guardar archivo .lrc", + "@lyricsModeBothSubtitle": { + "description": "Subtitle for both option" + }, + "sectionColor": "Colores", + "@sectionColor": { + "description": "Settings section header" + }, + "sectionTheme": "Tema", + "@sectionTheme": { + "description": "Settings section header" + }, + "sectionLayout": "Diseño", + "@sectionLayout": { + "description": "Settings section header" + }, + "sectionLanguage": "Idioma", + "@sectionLanguage": { + "description": "Settings section header for language" + }, + "appearanceLanguage": "Idioma de la aplicación", + "@appearanceLanguage": { + "description": "Language setting title" + }, + "appearanceLanguageSubtitle": "Elija su idioma preferido", + "@appearanceLanguageSubtitle": { + "description": "Language setting subtitle" + }, + "settingsAppearanceSubtitle": "Tema, colores, pantalla", + "@settingsAppearanceSubtitle": { + "description": "Appearance settings description" + }, + "settingsDownloadSubtitle": "Servicio, calidad, formato del nombre del archivo", + "@settingsDownloadSubtitle": { + "description": "Download settings description" + }, + "settingsOptionsSubtitle": "Alternativa, letras, carátula, actualizaciones", + "@settingsOptionsSubtitle": { + "description": "Options settings description" + }, + "settingsExtensionsSubtitle": "Administrar proveedores de descarga", + "@settingsExtensionsSubtitle": { + "description": "Extensions settings description" + }, + "settingsLogsSubtitle": "Ver registros de aplicaciones para depuración", + "@settingsLogsSubtitle": { + "description": "Logs settings description" + }, + "loadingSharedLink": "Cargando enlace compartido...", + "@loadingSharedLink": { + "description": "Status when opening shared URL" + }, + "pressBackAgainToExit": "Presione de nuevo para salir", + "@pressBackAgainToExit": { + "description": "Exit confirmation message" + }, + "tracksHeader": "Pistas", + "@tracksHeader": { + "description": "Section header for track list" + }, + "downloadAllCount": "Descargar Todo ({count})", + "@downloadAllCount": { + "description": "Download all button with count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "tracksCount": "{count, plural, one {}=1{1 pista} other{{count} pistas}}", + "@tracksCount": { + "description": "Track count display", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "trackCopyFilePath": "Copiar ruta de archivo", + "@trackCopyFilePath": { + "description": "Action - copy file path" + }, + "trackRemoveFromDevice": "Eliminar del dispositivo", + "@trackRemoveFromDevice": { + "description": "Action - delete downloaded file" + }, + "trackLoadLyrics": "Cargar letras", + "@trackLoadLyrics": { + "description": "Action - fetch lyrics" + }, + "trackMetadata": "Metadatos", + "@trackMetadata": { + "description": "Tab title - track metadata" + }, + "trackFileInfo": "Información de archivo", + "@trackFileInfo": { + "description": "Tab title - file information" + }, + "trackLyrics": "Letras", + "@trackLyrics": { + "description": "Tab title - lyrics" + }, + "trackFileNotFound": "Archivo no encontrado", + "@trackFileNotFound": { + "description": "Error - file doesn't exist" + }, + "trackOpenInDeezer": "Abrir en Deezer", + "@trackOpenInDeezer": { + "description": "Action - open track in Deezer app" + }, + "trackOpenInSpotify": "Abrir en Spotify", + "@trackOpenInSpotify": { + "description": "Action - open track in Spotify app" + }, + "trackTrackName": "Nombre de pista", + "@trackTrackName": { + "description": "Metadata label - track title" + }, + "trackArtist": "Artista", + "@trackArtist": { + "description": "Metadata label - artist name" + }, + "trackAlbumArtist": "Artista del álbum", + "@trackAlbumArtist": { + "description": "Metadata label - album artist" + }, + "trackAlbum": "Álbum", + "@trackAlbum": { + "description": "Metadata label - album name" + }, + "trackTrackNumber": "Número de pista", + "@trackTrackNumber": { + "description": "Metadata label - track number" + }, + "trackDiscNumber": "Número de disco", + "@trackDiscNumber": { + "description": "Metadata label - disc number" + }, + "trackDuration": "Duración", + "@trackDuration": { + "description": "Metadata label - track length" + }, + "trackAudioQuality": "Calidad del sonido", + "@trackAudioQuality": { + "description": "Metadata label - audio quality" + }, + "trackReleaseDate": "Fecha de lanzamiento", + "@trackReleaseDate": { + "description": "Metadata label - release date" + }, + "trackGenre": "Género", + "@trackGenre": { + "description": "Metadata label - music genre" + }, + "trackLabel": "Etiqueta", + "@trackLabel": { + "description": "Metadata label - record label" + }, + "trackCopyright": "Derechos de autor", + "@trackCopyright": { + "description": "Metadata label - copyright information" + }, + "trackDownloaded": "Descargado", + "@trackDownloaded": { + "description": "Metadata label - download date" + }, + "trackCopyLyrics": "Copiar letras", + "@trackCopyLyrics": { + "description": "Action - copy lyrics to clipboard" + }, + "trackLyricsNotAvailable": "Letras no disponibles para este tema", + "@trackLyricsNotAvailable": { + "description": "Message when lyrics not found" + }, + "trackLyricsTimeout": "Tiempo de espera agotado. Inténtalo de nuevo más tarde.", + "@trackLyricsTimeout": { + "description": "Message when lyrics request times out" + }, + "trackLyricsLoadFailed": "Error al cargar la letra", + "@trackLyricsLoadFailed": { + "description": "Message when lyrics loading fails" + }, + "trackEmbedLyrics": "Incrustar Letras", + "@trackEmbedLyrics": { + "description": "Action - embed lyrics into audio file" + }, + "trackLyricsEmbedded": "Letra incrustada con éxito", + "@trackLyricsEmbedded": { + "description": "Snackbar - lyrics saved to file" + }, + "trackInstrumental": "Pista intrumental", + "@trackInstrumental": { + "description": "Message when track is instrumental (no lyrics)" + }, + "trackCopiedToClipboard": "Copiado al portapapeles", + "@trackCopiedToClipboard": { + "description": "Snackbar - content copied" + }, + "trackDeleteConfirmTitle": "¿Eliminar del dispositivo?", + "@trackDeleteConfirmTitle": { + "description": "Delete confirmation title" + }, + "trackDeleteConfirmMessage": "Esto eliminará permanentemente el archivo descargado y lo eliminará de tu historial.", + "@trackDeleteConfirmMessage": { + "description": "Delete confirmation message" + }, + "trackCannotOpen": "No se puede abrir: {message}", + "@trackCannotOpen": { + "description": "Error opening file", + "placeholders": { + "message": { + "type": "String" + } + } + }, + "dateToday": "Hoy", + "@dateToday": { + "description": "Relative date - today" + }, + "dateYesterday": "Ayer", + "@dateYesterday": { + "description": "Relative date - yesterday" + }, + "dateDaysAgo": "Hace {count} días", + "@dateDaysAgo": { + "description": "Relative date - days ago", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dateWeeksAgo": "{count} semanas antes", + "@dateWeeksAgo": { + "description": "Relative date - weeks ago", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dateMonthsAgo": "{count} meses atrás", + "@dateMonthsAgo": { + "description": "Relative date - months ago", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "concurrentSequential": "Secuencial", + "@concurrentSequential": { + "description": "Download mode - one at a time" + }, + "concurrentParallel2": "2 simultáneamente", + "@concurrentParallel2": { + "description": "Download mode - 2 simultaneous" + }, + "concurrentParallel3": "3 simultáneamente", + "@concurrentParallel3": { + "description": "Download mode - 3 simultaneous" + }, + "tapToSeeError": "Pulse para ver los detalles del error", + "@tapToSeeError": { + "description": "Tooltip for failed download" + }, + "storeFilterAll": "Todo", + "@storeFilterAll": { + "description": "Store filter - all extensions" + }, + "storeFilterMetadata": "Metadatos", + "@storeFilterMetadata": { + "description": "Store filter - metadata providers" + }, + "storeFilterDownload": "Descargar", + "@storeFilterDownload": { + "description": "Store filter - download providers" + }, + "storeFilterUtility": "Utilidad", + "@storeFilterUtility": { + "description": "Store filter - utility extensions" + }, + "storeFilterLyrics": "Letras", + "@storeFilterLyrics": { + "description": "Store filter - lyrics providers" + }, + "storeFilterIntegration": "Integración", + "@storeFilterIntegration": { + "description": "Store filter - integrations" + }, + "storeClearFilters": "Limpiar filtros", + "@storeClearFilters": { + "description": "Button to clear all filters" + }, + "storeNoResults": "No se encontraron extensiones", + "@storeNoResults": { + "description": "Empty state when no extensions match filters" + }, + "extensionProviderPriority": "Prioridad del proveedor", + "@extensionProviderPriority": { + "description": "Extension capability - provider priority" + }, + "extensionInstallButton": "Instalar extensión", + "@extensionInstallButton": { + "description": "Button to install extension" + }, + "extensionDefaultProvider": "Por defecto (Deezer/Spotify)", + "@extensionDefaultProvider": { + "description": "Default search provider option" + }, + "extensionDefaultProviderSubtitle": "Usar búsqueda integrada", + "@extensionDefaultProviderSubtitle": { + "description": "Subtitle for default provider" + }, + "extensionAuthor": "Autor/a", + "@extensionAuthor": { + "description": "Extension detail - author" + }, + "extensionId": "ID", + "@extensionId": { + "description": "Extension detail - unique ID" + }, + "extensionError": "Error", + "@extensionError": { + "description": "Extension detail - error message" + }, + "extensionCapabilities": "Recursos", + "@extensionCapabilities": { + "description": "Section header - extension features" + }, + "extensionMetadataProvider": "Proveedor de metadatos", + "@extensionMetadataProvider": { + "description": "Capability - provides metadata" + }, + "extensionDownloadProvider": "Proveedor de descargas", + "@extensionDownloadProvider": { + "description": "Capability - provides downloads" + }, + "extensionLyricsProvider": "Proveedor de letras", + "@extensionLyricsProvider": { + "description": "Capability - provides lyrics" + }, + "extensionUrlHandler": "Gestor de URL", + "@extensionUrlHandler": { + "description": "Capability - handles URLs" + }, + "extensionQualityOptions": "Opciones de calidad", + "@extensionQualityOptions": { + "description": "Capability - quality selection" + }, + "extensionPostProcessingHooks": "Hooks post-procesamiento", + "@extensionPostProcessingHooks": { + "description": "Capability - post-processing" + }, + "extensionPermissions": "Permisos", + "@extensionPermissions": { + "description": "Section header - required permissions" + }, + "extensionSettings": "Ajustes", + "@extensionSettings": { + "description": "Section header - extension settings" + }, + "extensionRemoveButton": "Eliminar extensión", + "@extensionRemoveButton": { + "description": "Button to uninstall extension" + }, + "extensionUpdated": "Actualizado", + "@extensionUpdated": { + "description": "Extension detail - last update" + }, + "extensionMinAppVersion": "Versión Mínima de la aplicación", + "@extensionMinAppVersion": { + "description": "Extension detail - minimum app version" + }, + "extensionCustomTrackMatching": "Coincidencia de pista personalizada", + "@extensionCustomTrackMatching": { + "description": "Capability - custom track matching algorithm" + }, + "extensionPostProcessing": "Post-Procesamiento", + "@extensionPostProcessing": { + "description": "Capability - post-download processing" + }, + "extensionHooksAvailable": "{count} hook(s) disponibles", + "@extensionHooksAvailable": { + "description": "Post-processing hooks count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "extensionPatternsCount": "Patrón(es) {count}", + "@extensionPatternsCount": { + "description": "URL patterns count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "extensionStrategy": "Estrategia: {strategy}", + "@extensionStrategy": { + "description": "Track matching strategy name", + "placeholders": { + "strategy": { + "type": "String" + } + } + }, + "extensionsProviderPrioritySection": "Prioridad del proveedor", + "@extensionsProviderPrioritySection": { + "description": "Section header - provider priority" + }, + "extensionsInstalledSection": "Extensiones instaladas", + "@extensionsInstalledSection": { + "description": "Section header - installed extensions" + }, + "extensionsNoExtensions": "No hay extensiones instaladas", + "@extensionsNoExtensions": { + "description": "Empty state - no extensions" + }, + "extensionsNoExtensionsSubtitle": "Instalar archivos .spotiflac-ext para añadir nuevos proveedores", + "@extensionsNoExtensionsSubtitle": { + "description": "Empty state subtitle" + }, + "extensionsInstallButton": "Instalar extensión", + "@extensionsInstallButton": { + "description": "Button to install extension from file" + }, + "extensionsInfoTip": "Las extensiones pueden añadir nuevos metadatos y proveedores de descargas. Sólo instalar extensiones desde fuentes confiables.", + "@extensionsInfoTip": { + "description": "Security warning about extensions" + }, + "extensionsInstalledSuccess": "Extensión instalada correctamente", + "@extensionsInstalledSuccess": { + "description": "Success message after install" + }, + "extensionsDownloadPriority": "Prioridad de descarga", + "@extensionsDownloadPriority": { + "description": "Setting - download provider order" + }, + "extensionsDownloadPrioritySubtitle": "Establecer orden de servicio de descarga", + "@extensionsDownloadPrioritySubtitle": { + "description": "Subtitle for download priority" + }, + "extensionsNoDownloadProvider": "No hay extensiones con proveedor de descargas", + "@extensionsNoDownloadProvider": { + "description": "Empty state - no download providers" + }, + "extensionsMetadataPriority": "Prioridad de los metadatos", + "@extensionsMetadataPriority": { + "description": "Setting - metadata provider order" + }, + "extensionsMetadataPrioritySubtitle": "Establecer orden de búsqueda y metadatos", + "@extensionsMetadataPrioritySubtitle": { + "description": "Subtitle for metadata priority" + }, + "extensionsNoMetadataProvider": "No hay extensiones con el proveedor de metadatos", + "@extensionsNoMetadataProvider": { + "description": "Empty state - no metadata providers" + }, + "extensionsSearchProvider": "Proveedor de búsqueda", + "@extensionsSearchProvider": { + "description": "Setting - search provider selection" + }, + "extensionsNoCustomSearch": "No hay extensiones con búsqueda personalizada", + "@extensionsNoCustomSearch": { + "description": "Empty state - no search providers" + }, + "extensionsSearchProviderDescription": "Elegir qué servicio usar para buscar pistas", + "@extensionsSearchProviderDescription": { + "description": "Search provider setting description" + }, + "extensionsCustomSearch": "Búsqueda personalizada", + "@extensionsCustomSearch": { + "description": "Label for custom search provider" + }, + "extensionsErrorLoading": "Error al cargar la extensión", + "@extensionsErrorLoading": { + "description": "Error message when extension fails to load" + }, + "qualityFlacLossless": "FLAC Lossless", + "@qualityFlacLossless": { + "description": "Quality option - CD quality FLAC" + }, + "qualityFlacLosslessSubtitle": "16-bit / 44.1kHz", + "@qualityFlacLosslessSubtitle": { + "description": "Technical spec for lossless" + }, + "qualityHiResFlac": "Hi-Res FLAC", + "@qualityHiResFlac": { + "description": "Quality option - high resolution FLAC" + }, + "qualityHiResFlacSubtitle": "24 bits/hasta 96kHz", + "@qualityHiResFlacSubtitle": { + "description": "Technical spec for hi-res" + }, + "qualityHiResFlacMax": "Hi-Res FLAC Max", + "@qualityHiResFlacMax": { + "description": "Quality option - maximum resolution FLAC" + }, + "qualityHiResFlacMaxSubtitle": "24 bits / hasta 192kHz", + "@qualityHiResFlacMaxSubtitle": { + "description": "Technical spec for hi-res max" + }, + "qualityMp3": "MP3", + "@qualityMp3": { + "description": "Quality option - MP3 lossy format" + }, + "qualityMp3Subtitle": "320kbps (convertido desde FLAC)", + "@qualityMp3Subtitle": { + "description": "Technical spec for MP3" + }, + "enableMp3Option": "Habilitar opción MP3", + "@enableMp3Option": { + "description": "Setting - enable MP3 quality option" + }, + "enableMp3OptionSubtitleOn": "Opción de calidad MP3 disponible", + "@enableMp3OptionSubtitleOn": { + "description": "Subtitle when MP3 is enabled" + }, + "enableMp3OptionSubtitleOff": "Descargas FLAC luego se convierte en MP3 de 320kbps", + "@enableMp3OptionSubtitleOff": { + "description": "Subtitle when MP3 is disabled" + }, + "qualityNote": "La calidad real depende de la disponibilidad de la pista del servicio", + "@qualityNote": { + "description": "Note about quality availability" + }, + "downloadAskBeforeDownload": "Preguntar antes de descargar", + "@downloadAskBeforeDownload": { + "description": "Setting - show quality picker" + }, + "downloadDirectory": "Carpeta de descarga", + "@downloadDirectory": { + "description": "Setting - download folder" + }, + "downloadSeparateSinglesFolder": "Carpeta separada para pistas", + "@downloadSeparateSinglesFolder": { + "description": "Setting - separate folder for singles" + }, + "downloadAlbumFolderStructure": "Estructura de carpeta del álbum", + "@downloadAlbumFolderStructure": { + "description": "Setting - album folder organization" + }, + "downloadSaveFormat": "Guardar Formato", + "@downloadSaveFormat": { + "description": "Setting - output file format" + }, + "downloadSelectService": "Seleccionar Servicio", + "@downloadSelectService": { + "description": "Dialog title - choose download service" + }, + "downloadSelectQuality": "Seleccionar Calidad", + "@downloadSelectQuality": { + "description": "Dialog title - choose audio quality" + }, + "downloadFrom": "Descargar Desde", + "@downloadFrom": { + "description": "Label - download source" + }, + "downloadDefaultQualityLabel": "Calidad por Defecto", + "@downloadDefaultQualityLabel": { + "description": "Label - default quality setting" + }, + "downloadBestAvailable": "La mejor disponible", + "@downloadBestAvailable": { + "description": "Quality option - highest available" + }, + "folderNone": "Ninguna", + "@folderNone": { + "description": "Folder option - no organization" + }, + "folderNoneSubtitle": "Guardar todos los archivos directamente para descargar la carpeta", + "@folderNoneSubtitle": { + "description": "Subtitle for no folder organization" + }, + "folderArtist": "Artista", + "@folderArtist": { + "description": "Folder option - by artist" + }, + "folderArtistSubtitle": "Nombre del Artista/nombre de archivo", + "@folderArtistSubtitle": { + "description": "Folder structure example" + }, + "folderAlbum": "Álbum", + "@folderAlbum": { + "description": "Folder option - by album" + }, + "folderAlbumSubtitle": "Nombre del álbum/nombre de archivo", + "@folderAlbumSubtitle": { + "description": "Folder structure example" + }, + "folderArtistAlbum": "Artista/Álbum", + "@folderArtistAlbum": { + "description": "Folder option - nested" + }, + "folderArtistAlbumSubtitle": "Nombre del Artista/Nombre del Álbum/Nombre del Archivo", + "@folderArtistAlbumSubtitle": { + "description": "Folder structure example" + }, + "serviceTidal": "Tidal", + "@serviceTidal": { + "description": "Service name - DO NOT TRANSLATE" + }, + "serviceQobuz": "Qobuz", + "@serviceQobuz": { + "description": "Service name - DO NOT TRANSLATE" + }, + "serviceAmazon": "Amazon", + "@serviceAmazon": { + "description": "Service name - DO NOT TRANSLATE" + }, + "serviceDeezer": "Deezer", + "@serviceDeezer": { + "description": "Service name - DO NOT TRANSLATE" + }, + "serviceSpotify": "Spotify", + "@serviceSpotify": { + "description": "Service name - DO NOT TRANSLATE" + }, + "appearanceAmoledDark": "AMOLED Oscuro", + "@appearanceAmoledDark": { + "description": "Theme option - pure black" + }, + "appearanceAmoledDarkSubtitle": "Fondo negro puro", + "@appearanceAmoledDarkSubtitle": { + "description": "Subtitle for AMOLED dark" + }, + "appearanceChooseAccentColor": "Elegir color principal", + "@appearanceChooseAccentColor": { + "description": "Color picker dialog title" + }, + "appearanceChooseTheme": "Modo de tema", + "@appearanceChooseTheme": { + "description": "Theme picker dialog title" + }, + "queueTitle": "Descargas en proceso", + "@queueTitle": { + "description": "Queue screen title" + }, + "queueClearAll": "Eliminar todo", + "@queueClearAll": { + "description": "Button - clear all queue items" + }, + "queueClearAllMessage": "¿Estás seguro de que quieres borrar todas las descargas?", + "@queueClearAllMessage": { + "description": "Clear queue confirmation" + }, + "queueEmpty": "No hay descargas en cola", + "@queueEmpty": { + "description": "Empty queue state title" + }, + "queueEmptySubtitle": "Añadir pistas desde la pantalla de inicio", + "@queueEmptySubtitle": { + "description": "Empty queue state subtitle" + }, + "queueClearCompleted": "Limpiar tareas finalizadas", + "@queueClearCompleted": { + "description": "Button - clear finished downloads" + }, + "queueDownloadFailed": "Descarga fallida", + "@queueDownloadFailed": { + "description": "Error dialog title" + }, + "queueTrackLabel": "Pista:", + "@queueTrackLabel": { + "description": "Label in error dialog" + }, + "queueArtistLabel": "Artista:", + "@queueArtistLabel": { + "description": "Label in error dialog" + }, + "queueErrorLabel": "Error:", + "@queueErrorLabel": { + "description": "Label in error dialog" + }, + "queueUnknownError": "Error desconocido", + "@queueUnknownError": { + "description": "Fallback error message" + }, + "albumFolderArtistAlbum": "Artista / Álbum", + "@albumFolderArtistAlbum": { + "description": "Album folder option" + }, + "albumFolderArtistAlbumSubtitle": "Álbumes/Nombre del Artista/Nombre del Álbum/", + "@albumFolderArtistAlbumSubtitle": { + "description": "Folder structure example" + }, + "albumFolderArtistYearAlbum": "Artista / [Año] Álbum", + "@albumFolderArtistYearAlbum": { + "description": "Album folder option with year" + }, + "albumFolderArtistYearAlbumSubtitle": "Álbumes/Nombre del Artista /[2005] Nombre del Álbum/", + "@albumFolderArtistYearAlbumSubtitle": { + "description": "Folder structure example" + }, + "albumFolderAlbumOnly": "Sólo álbum", + "@albumFolderAlbumOnly": { + "description": "Album folder option" + }, + "albumFolderAlbumOnlySubtitle": "Álbumes/Nombre del Álbum/", + "@albumFolderAlbumOnlySubtitle": { + "description": "Folder structure example" + }, + "albumFolderYearAlbum": "Álbum [Año]", + "@albumFolderYearAlbum": { + "description": "Album folder option with year" + }, + "albumFolderYearAlbumSubtitle": "Álbumes/[2005] Nombre del Álbum/", + "@albumFolderYearAlbumSubtitle": { + "description": "Folder structure example" + }, + "albumFolderArtistAlbumSingles": "Artist / Album + Singles", + "@albumFolderArtistAlbumSingles": { + "description": "Album folder option with singles inside artist" + }, + "albumFolderArtistAlbumSinglesSubtitle": "Artist/Album/ and Artist/Singles/", + "@albumFolderArtistAlbumSinglesSubtitle": { + "description": "Folder structure example" + }, + "downloadedAlbumDeleteSelected": "Borrar Seleccionados", + "@downloadedAlbumDeleteSelected": { + "description": "Button - delete selected tracks" + }, + "downloadedAlbumDeleteMessage": "¿Eliminar {count} {count, plural, one {}=1{pista} other{pistas}} del historial?\n\nEsto también eliminará los archivos del almacenamiento.", + "@downloadedAlbumDeleteMessage": { + "description": "Delete confirmation with count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "downloadedAlbumTracksHeader": "Pistas", + "@downloadedAlbumTracksHeader": { + "description": "Section header for tracks" + }, + "downloadedAlbumDownloadedCount": "{count} descargado", + "@downloadedAlbumDownloadedCount": { + "description": "Downloaded tracks count badge", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "downloadedAlbumSelectedCount": "{count} seleccionado", + "@downloadedAlbumSelectedCount": { + "description": "Selection count indicator", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "downloadedAlbumAllSelected": "Todas las pistas seleccionadas", + "@downloadedAlbumAllSelected": { + "description": "Status - all items selected" + }, + "downloadedAlbumTapToSelect": "Toca las pistas para seleccionar", + "@downloadedAlbumTapToSelect": { + "description": "Selection hint" + }, + "downloadedAlbumDeleteCount": "¡Eliminar {count} {count, plural, one {}=1{pista} other{pistas}}", + "@downloadedAlbumDeleteCount": { + "description": "Delete button text with count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "downloadedAlbumSelectToDelete": "Seleccionar pistas a eliminar", + "@downloadedAlbumSelectToDelete": { + "description": "Placeholder when nothing selected" + }, + "downloadedAlbumDiscHeader": "Disco {discNumber}", + "@downloadedAlbumDiscHeader": { + "description": "Header for disc separator in multi-disc albums", + "placeholders": { + "discNumber": { + "type": "int", + "example": "1" + } + } + }, + "utilityFunctions": "Funciones de utilidad", + "@utilityFunctions": { + "description": "Extension capability - utility functions" + }, + "recentTypeArtist": "Artista", + "@recentTypeArtist": { + "description": "Recent access item type - artist" + }, + "recentTypeAlbum": "Álbum", + "@recentTypeAlbum": { + "description": "Recent access item type - album" + }, + "recentTypeSong": "Canción", + "@recentTypeSong": { + "description": "Recent access item type - song/track" + }, + "recentTypePlaylist": "Lista de reproducción", + "@recentTypePlaylist": { + "description": "Recent access item type - playlist" + }, + "recentPlaylistInfo": "Lista de reproducción: {name}", + "@recentPlaylistInfo": { + "description": "Snackbar message when tapping playlist in recent access", + "placeholders": { + "name": { + "type": "String", + "description": "Playlist name" + } + } + }, + "errorGeneric": "Error: {message}", + "@errorGeneric": { + "description": "Generic error message format", + "placeholders": { + "message": { + "type": "String", + "description": "Error message" + } + } + }, + "discographyDownload": "Download Discography", + "@discographyDownload": { + "description": "Button - download artist discography" + }, + "discographyDownloadAll": "Download All", + "@discographyDownloadAll": { + "description": "Option - download entire discography" + }, + "discographyDownloadAllSubtitle": "{count} tracks from {albumCount} releases", + "@discographyDownloadAllSubtitle": { + "description": "Subtitle showing total tracks and albums", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographyAlbumsOnly": "Albums Only", + "@discographyAlbumsOnly": { + "description": "Option - download only albums" + }, + "discographyAlbumsOnlySubtitle": "{count} tracks from {albumCount} albums", + "@discographyAlbumsOnlySubtitle": { + "description": "Subtitle showing album tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySinglesOnly": "Singles & EPs Only", + "@discographySinglesOnly": { + "description": "Option - download only singles" + }, + "discographySinglesOnlySubtitle": "{count} tracks from {albumCount} singles", + "@discographySinglesOnlySubtitle": { + "description": "Subtitle showing singles tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySelectAlbums": "Select Albums...", + "@discographySelectAlbums": { + "description": "Option - manually select albums to download" + }, + "discographySelectAlbumsSubtitle": "Choose specific albums or singles", + "@discographySelectAlbumsSubtitle": { + "description": "Subtitle for select albums option" + }, + "discographyFetchingTracks": "Fetching tracks...", + "@discographyFetchingTracks": { + "description": "Progress - fetching album tracks" + }, + "discographyFetchingAlbum": "Fetching {current} of {total}...", + "@discographyFetchingAlbum": { + "description": "Progress - fetching specific album", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "discographySelectedCount": "{count} selected", + "@discographySelectedCount": { + "description": "Selection count badge", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographyDownloadSelected": "Download Selected", + "@discographyDownloadSelected": { + "description": "Button - download selected albums" + }, + "discographyAddedToQueue": "Added {count} tracks to queue", + "@discographyAddedToQueue": { + "description": "Snackbar - tracks added from discography", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographySkippedDownloaded": "{added} added, {skipped} already downloaded", + "@discographySkippedDownloaded": { + "description": "Snackbar - with skipped tracks count", + "placeholders": { + "added": { + "type": "int" + }, + "skipped": { + "type": "int" + } + } + }, + "discographyNoAlbums": "No albums available", + "@discographyNoAlbums": { + "description": "Error - no albums found for artist" + }, + "discographyFailedToFetch": "Failed to fetch some albums", + "@discographyFailedToFetch": { + "description": "Error - some albums failed to load" + } +} \ No newline at end of file diff --git a/lib/l10n/arb/app_fr.arb b/lib/l10n/arb/app_fr.arb index 3e5f8961..deb1c103 100644 --- a/lib/l10n/arb/app_fr.arb +++ b/lib/l10n/arb/app_fr.arb @@ -127,6 +127,10 @@ "@historyNoSinglesSubtitle": { "description": "Empty state subtitle for singles filter" }, + "historySearchHint": "Search history...", + "@historySearchHint": { + "description": "Search bar placeholder in history" + }, "settingsTitle": "Settings", "@settingsTitle": { "description": "Settings screen title" @@ -512,6 +516,10 @@ "@aboutLogoArtist": { "description": "Role description for logo artist" }, + "aboutTranslators": "Translators", + "@aboutTranslators": { + "description": "Section for translators" + }, "aboutSpecialThanks": "Special Thanks", "@aboutSpecialThanks": { "description": "Section for special thanks" @@ -544,6 +552,26 @@ "@aboutFeatureRequestSubtitle": { "description": "Subtitle for feature request" }, + "aboutTelegramChannel": "Telegram Channel", + "@aboutTelegramChannel": { + "description": "Link to Telegram channel" + }, + "aboutTelegramChannelSubtitle": "Announcements and updates", + "@aboutTelegramChannelSubtitle": { + "description": "Subtitle for Telegram channel" + }, + "aboutTelegramChat": "Telegram Community", + "@aboutTelegramChat": { + "description": "Link to Telegram chat group" + }, + "aboutTelegramChatSubtitle": "Chat with other users", + "@aboutTelegramChatSubtitle": { + "description": "Subtitle for Telegram chat" + }, + "aboutSocial": "Social", + "@aboutSocial": { + "description": "Section for social links" + }, "aboutSupport": "Support", "@aboutSupport": { "description": "Section for support/donation links" @@ -1122,6 +1150,15 @@ "description": "Dialog title - import CSV playlist" }, "dialogImportPlaylistMessage": "Found {count} tracks in CSV. Add them to download queue?", + "csvImportTracks": "{count} tracks from CSV", + "@csvImportTracks": { + "description": "Label shown in quality picker for CSV import", + "placeholders": { + "count": { + "type": "int" + } + } + }, "@dialogImportPlaylistMessage": { "description": "Dialog message - import playlist confirmation", "placeholders": { @@ -1851,6 +1888,42 @@ "@sectionFileSettings": { "description": "Settings section header" }, + "sectionLyrics": "Lyrics", + "@sectionLyrics": { + "description": "Settings section header" + }, + "lyricsMode": "Lyrics Mode", + "@lyricsMode": { + "description": "Setting - how to save lyrics" + }, + "lyricsModeDescription": "Choose how lyrics are saved with your downloads", + "@lyricsModeDescription": { + "description": "Lyrics mode picker description" + }, + "lyricsModeEmbed": "Embed in file", + "@lyricsModeEmbed": { + "description": "Lyrics mode option - embed in audio file" + }, + "lyricsModeEmbedSubtitle": "Lyrics stored inside FLAC metadata", + "@lyricsModeEmbedSubtitle": { + "description": "Subtitle for embed option" + }, + "lyricsModeExternal": "External .lrc file", + "@lyricsModeExternal": { + "description": "Lyrics mode option - separate LRC file" + }, + "lyricsModeExternalSubtitle": "Separate .lrc file for players like Samsung Music", + "@lyricsModeExternalSubtitle": { + "description": "Subtitle for external option" + }, + "lyricsModeBoth": "Both", + "@lyricsModeBoth": { + "description": "Lyrics mode option - embed and external" + }, + "lyricsModeBothSubtitle": "Embed and save .lrc file", + "@lyricsModeBothSubtitle": { + "description": "Subtitle for both option" + }, "sectionColor": "Color", "@sectionColor": { "description": "Settings section header" @@ -1997,6 +2070,18 @@ "@trackReleaseDate": { "description": "Metadata label - release date" }, + "trackGenre": "Genre", + "@trackGenre": { + "description": "Metadata label - music genre" + }, + "trackLabel": "Label", + "@trackLabel": { + "description": "Metadata label - record label" + }, + "trackCopyright": "Copyright", + "@trackCopyright": { + "description": "Metadata label - copyright information" + }, "trackDownloaded": "Downloaded", "@trackDownloaded": { "description": "Metadata label - download date" @@ -2017,6 +2102,18 @@ "@trackLyricsLoadFailed": { "description": "Message when lyrics loading fails" }, + "trackEmbedLyrics": "Embed Lyrics", + "@trackEmbedLyrics": { + "description": "Action - embed lyrics into audio file" + }, + "trackLyricsEmbedded": "Lyrics embedded successfully", + "@trackLyricsEmbedded": { + "description": "Snackbar - lyrics saved to file" + }, + "trackInstrumental": "Instrumental track", + "@trackInstrumental": { + "description": "Message when track is instrumental (no lyrics)" + }, "trackCopiedToClipboard": "Copied to clipboard", "@trackCopiedToClipboard": { "description": "Snackbar - content copied" @@ -2328,6 +2425,26 @@ "@qualityHiResFlacMaxSubtitle": { "description": "Technical spec for hi-res max" }, + "qualityMp3": "MP3", + "@qualityMp3": { + "description": "Quality option - MP3 lossy format" + }, + "qualityMp3Subtitle": "320kbps (converted from FLAC)", + "@qualityMp3Subtitle": { + "description": "Technical spec for MP3" + }, + "enableMp3Option": "Enable MP3 Option", + "@enableMp3Option": { + "description": "Setting - enable MP3 quality option" + }, + "enableMp3OptionSubtitleOn": "MP3 quality option is available", + "@enableMp3OptionSubtitleOn": { + "description": "Subtitle when MP3 is enabled" + }, + "enableMp3OptionSubtitleOff": "Downloads FLAC then converts to 320kbps MP3", + "@enableMp3OptionSubtitleOff": { + "description": "Subtitle when MP3 is disabled" + }, "qualityNote": "Actual quality depends on track availability from the service", "@qualityNote": { "description": "Note about quality availability" @@ -2516,6 +2633,14 @@ "@albumFolderYearAlbumSubtitle": { "description": "Folder structure example" }, + "albumFolderArtistAlbumSingles": "Artist / Album + Singles", + "@albumFolderArtistAlbumSingles": { + "description": "Album folder option with singles inside artist" + }, + "albumFolderArtistAlbumSinglesSubtitle": "Artist/Album/ and Artist/Singles/", + "@albumFolderArtistAlbumSinglesSubtitle": { + "description": "Folder structure example" + }, "downloadedAlbumDeleteSelected": "Delete Selected", "@downloadedAlbumDeleteSelected": { "description": "Button - delete selected tracks" @@ -2572,6 +2697,16 @@ "@downloadedAlbumSelectToDelete": { "description": "Placeholder when nothing selected" }, + "downloadedAlbumDiscHeader": "Disc {discNumber}", + "@downloadedAlbumDiscHeader": { + "description": "Header for disc separator in multi-disc albums", + "placeholders": { + "discNumber": { + "type": "int", + "example": "1" + } + } + }, "utilityFunctions": "Utility Functions", "@utilityFunctions": { "description": "Extension capability - utility functions" @@ -2611,5 +2746,123 @@ "description": "Error message" } } + }, + "discographyDownload": "Download Discography", + "@discographyDownload": { + "description": "Button - download artist discography" + }, + "discographyDownloadAll": "Download All", + "@discographyDownloadAll": { + "description": "Option - download entire discography" + }, + "discographyDownloadAllSubtitle": "{count} tracks from {albumCount} releases", + "@discographyDownloadAllSubtitle": { + "description": "Subtitle showing total tracks and albums", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographyAlbumsOnly": "Albums Only", + "@discographyAlbumsOnly": { + "description": "Option - download only albums" + }, + "discographyAlbumsOnlySubtitle": "{count} tracks from {albumCount} albums", + "@discographyAlbumsOnlySubtitle": { + "description": "Subtitle showing album tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySinglesOnly": "Singles & EPs Only", + "@discographySinglesOnly": { + "description": "Option - download only singles" + }, + "discographySinglesOnlySubtitle": "{count} tracks from {albumCount} singles", + "@discographySinglesOnlySubtitle": { + "description": "Subtitle showing singles tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySelectAlbums": "Select Albums...", + "@discographySelectAlbums": { + "description": "Option - manually select albums to download" + }, + "discographySelectAlbumsSubtitle": "Choose specific albums or singles", + "@discographySelectAlbumsSubtitle": { + "description": "Subtitle for select albums option" + }, + "discographyFetchingTracks": "Fetching tracks...", + "@discographyFetchingTracks": { + "description": "Progress - fetching album tracks" + }, + "discographyFetchingAlbum": "Fetching {current} of {total}...", + "@discographyFetchingAlbum": { + "description": "Progress - fetching specific album", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "discographySelectedCount": "{count} selected", + "@discographySelectedCount": { + "description": "Selection count badge", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographyDownloadSelected": "Download Selected", + "@discographyDownloadSelected": { + "description": "Button - download selected albums" + }, + "discographyAddedToQueue": "Added {count} tracks to queue", + "@discographyAddedToQueue": { + "description": "Snackbar - tracks added from discography", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographySkippedDownloaded": "{added} added, {skipped} already downloaded", + "@discographySkippedDownloaded": { + "description": "Snackbar - with skipped tracks count", + "placeholders": { + "added": { + "type": "int" + }, + "skipped": { + "type": "int" + } + } + }, + "discographyNoAlbums": "No albums available", + "@discographyNoAlbums": { + "description": "Error - no albums found for artist" + }, + "discographyFailedToFetch": "Failed to fetch some albums", + "@discographyFailedToFetch": { + "description": "Error - some albums failed to load" } } \ No newline at end of file diff --git a/lib/l10n/arb/app_hi.arb b/lib/l10n/arb/app_hi.arb index d286a4ea..582a3ec7 100644 --- a/lib/l10n/arb/app_hi.arb +++ b/lib/l10n/arb/app_hi.arb @@ -1,23 +1,23 @@ { "@@locale": "hi", "@@last_modified": "2026-01-16", - "appName": "SpotiFLAC", + "appName": "SpotiFlac", "@appName": { "description": "App name - DO NOT TRANSLATE" }, - "appDescription": "Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.", + "appDescription": "स्पॉटीफाई ट्रैक डाउनलोड करें टाइडल, क्वाबज एवं एवं अमेजन म्यूजिक से उच्चतम क्वालिटी में।", "@appDescription": { "description": "App description shown in about page" }, - "navHome": "Home", + "navHome": "होम", "@navHome": { "description": "Bottom navigation - Home tab" }, - "navHistory": "History", + "navHistory": "इतिहास", "@navHistory": { "description": "Bottom navigation - History tab" }, - "navSettings": "Settings", + "navSettings": "विकल्प", "@navSettings": { "description": "Bottom navigation - Settings tab" }, @@ -127,6 +127,10 @@ "@historyNoSinglesSubtitle": { "description": "Empty state subtitle for singles filter" }, + "historySearchHint": "Search history...", + "@historySearchHint": { + "description": "Search bar placeholder in history" + }, "settingsTitle": "Settings", "@settingsTitle": { "description": "Settings screen title" @@ -219,7 +223,7 @@ "@quality128": { "description": "Audio quality option - 128kbps MP3" }, - "appearanceTitle": "Appearance", + "appearanceTitle": "दिखावट", "@appearanceTitle": { "description": "Appearance settings page title" }, @@ -239,11 +243,11 @@ "@appearanceThemeDark": { "description": "Dark theme" }, - "appearanceDynamicColor": "Dynamic Color", + "appearanceDynamicColor": "डायनेमिक रंग", "@appearanceDynamicColor": { "description": "Material You dynamic colors" }, - "appearanceDynamicColorSubtitle": "Use colors from your wallpaper", + "appearanceDynamicColorSubtitle": "वॉलपेपर से रंग इस्तेमाल करें", "@appearanceDynamicColorSubtitle": { "description": "Subtitle for dynamic color" }, @@ -512,6 +516,10 @@ "@aboutLogoArtist": { "description": "Role description for logo artist" }, + "aboutTranslators": "Translators", + "@aboutTranslators": { + "description": "Section for translators" + }, "aboutSpecialThanks": "Special Thanks", "@aboutSpecialThanks": { "description": "Section for special thanks" @@ -544,6 +552,26 @@ "@aboutFeatureRequestSubtitle": { "description": "Subtitle for feature request" }, + "aboutTelegramChannel": "Telegram Channel", + "@aboutTelegramChannel": { + "description": "Link to Telegram channel" + }, + "aboutTelegramChannelSubtitle": "Announcements and updates", + "@aboutTelegramChannelSubtitle": { + "description": "Subtitle for Telegram channel" + }, + "aboutTelegramChat": "Telegram Community", + "@aboutTelegramChat": { + "description": "Link to Telegram chat group" + }, + "aboutTelegramChatSubtitle": "Chat with other users", + "@aboutTelegramChatSubtitle": { + "description": "Subtitle for Telegram chat" + }, + "aboutSocial": "Social", + "@aboutSocial": { + "description": "Section for social links" + }, "aboutSupport": "Support", "@aboutSupport": { "description": "Section for support/donation links" @@ -1122,6 +1150,15 @@ "description": "Dialog title - import CSV playlist" }, "dialogImportPlaylistMessage": "Found {count} tracks in CSV. Add them to download queue?", + "csvImportTracks": "{count} tracks from CSV", + "@csvImportTracks": { + "description": "Label shown in quality picker for CSV import", + "placeholders": { + "count": { + "type": "int" + } + } + }, "@dialogImportPlaylistMessage": { "description": "Dialog message - import playlist confirmation", "placeholders": { @@ -1851,6 +1888,42 @@ "@sectionFileSettings": { "description": "Settings section header" }, + "sectionLyrics": "Lyrics", + "@sectionLyrics": { + "description": "Settings section header" + }, + "lyricsMode": "Lyrics Mode", + "@lyricsMode": { + "description": "Setting - how to save lyrics" + }, + "lyricsModeDescription": "Choose how lyrics are saved with your downloads", + "@lyricsModeDescription": { + "description": "Lyrics mode picker description" + }, + "lyricsModeEmbed": "Embed in file", + "@lyricsModeEmbed": { + "description": "Lyrics mode option - embed in audio file" + }, + "lyricsModeEmbedSubtitle": "Lyrics stored inside FLAC metadata", + "@lyricsModeEmbedSubtitle": { + "description": "Subtitle for embed option" + }, + "lyricsModeExternal": "External .lrc file", + "@lyricsModeExternal": { + "description": "Lyrics mode option - separate LRC file" + }, + "lyricsModeExternalSubtitle": "Separate .lrc file for players like Samsung Music", + "@lyricsModeExternalSubtitle": { + "description": "Subtitle for external option" + }, + "lyricsModeBoth": "Both", + "@lyricsModeBoth": { + "description": "Lyrics mode option - embed and external" + }, + "lyricsModeBothSubtitle": "Embed and save .lrc file", + "@lyricsModeBothSubtitle": { + "description": "Subtitle for both option" + }, "sectionColor": "Color", "@sectionColor": { "description": "Settings section header" @@ -1997,6 +2070,18 @@ "@trackReleaseDate": { "description": "Metadata label - release date" }, + "trackGenre": "Genre", + "@trackGenre": { + "description": "Metadata label - music genre" + }, + "trackLabel": "Label", + "@trackLabel": { + "description": "Metadata label - record label" + }, + "trackCopyright": "Copyright", + "@trackCopyright": { + "description": "Metadata label - copyright information" + }, "trackDownloaded": "Downloaded", "@trackDownloaded": { "description": "Metadata label - download date" @@ -2017,6 +2102,18 @@ "@trackLyricsLoadFailed": { "description": "Message when lyrics loading fails" }, + "trackEmbedLyrics": "Embed Lyrics", + "@trackEmbedLyrics": { + "description": "Action - embed lyrics into audio file" + }, + "trackLyricsEmbedded": "Lyrics embedded successfully", + "@trackLyricsEmbedded": { + "description": "Snackbar - lyrics saved to file" + }, + "trackInstrumental": "Instrumental track", + "@trackInstrumental": { + "description": "Message when track is instrumental (no lyrics)" + }, "trackCopiedToClipboard": "Copied to clipboard", "@trackCopiedToClipboard": { "description": "Snackbar - content copied" @@ -2328,6 +2425,26 @@ "@qualityHiResFlacMaxSubtitle": { "description": "Technical spec for hi-res max" }, + "qualityMp3": "MP3", + "@qualityMp3": { + "description": "Quality option - MP3 lossy format" + }, + "qualityMp3Subtitle": "320kbps (converted from FLAC)", + "@qualityMp3Subtitle": { + "description": "Technical spec for MP3" + }, + "enableMp3Option": "Enable MP3 Option", + "@enableMp3Option": { + "description": "Setting - enable MP3 quality option" + }, + "enableMp3OptionSubtitleOn": "MP3 quality option is available", + "@enableMp3OptionSubtitleOn": { + "description": "Subtitle when MP3 is enabled" + }, + "enableMp3OptionSubtitleOff": "Downloads FLAC then converts to 320kbps MP3", + "@enableMp3OptionSubtitleOff": { + "description": "Subtitle when MP3 is disabled" + }, "qualityNote": "Actual quality depends on track availability from the service", "@qualityNote": { "description": "Note about quality availability" @@ -2516,6 +2633,14 @@ "@albumFolderYearAlbumSubtitle": { "description": "Folder structure example" }, + "albumFolderArtistAlbumSingles": "Artist / Album + Singles", + "@albumFolderArtistAlbumSingles": { + "description": "Album folder option with singles inside artist" + }, + "albumFolderArtistAlbumSinglesSubtitle": "Artist/Album/ and Artist/Singles/", + "@albumFolderArtistAlbumSinglesSubtitle": { + "description": "Folder structure example" + }, "downloadedAlbumDeleteSelected": "Delete Selected", "@downloadedAlbumDeleteSelected": { "description": "Button - delete selected tracks" @@ -2572,6 +2697,16 @@ "@downloadedAlbumSelectToDelete": { "description": "Placeholder when nothing selected" }, + "downloadedAlbumDiscHeader": "Disc {discNumber}", + "@downloadedAlbumDiscHeader": { + "description": "Header for disc separator in multi-disc albums", + "placeholders": { + "discNumber": { + "type": "int", + "example": "1" + } + } + }, "utilityFunctions": "Utility Functions", "@utilityFunctions": { "description": "Extension capability - utility functions" @@ -2611,5 +2746,123 @@ "description": "Error message" } } + }, + "discographyDownload": "Download Discography", + "@discographyDownload": { + "description": "Button - download artist discography" + }, + "discographyDownloadAll": "Download All", + "@discographyDownloadAll": { + "description": "Option - download entire discography" + }, + "discographyDownloadAllSubtitle": "{count} tracks from {albumCount} releases", + "@discographyDownloadAllSubtitle": { + "description": "Subtitle showing total tracks and albums", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographyAlbumsOnly": "Albums Only", + "@discographyAlbumsOnly": { + "description": "Option - download only albums" + }, + "discographyAlbumsOnlySubtitle": "{count} tracks from {albumCount} albums", + "@discographyAlbumsOnlySubtitle": { + "description": "Subtitle showing album tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySinglesOnly": "Singles & EPs Only", + "@discographySinglesOnly": { + "description": "Option - download only singles" + }, + "discographySinglesOnlySubtitle": "{count} tracks from {albumCount} singles", + "@discographySinglesOnlySubtitle": { + "description": "Subtitle showing singles tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySelectAlbums": "Select Albums...", + "@discographySelectAlbums": { + "description": "Option - manually select albums to download" + }, + "discographySelectAlbumsSubtitle": "Choose specific albums or singles", + "@discographySelectAlbumsSubtitle": { + "description": "Subtitle for select albums option" + }, + "discographyFetchingTracks": "Fetching tracks...", + "@discographyFetchingTracks": { + "description": "Progress - fetching album tracks" + }, + "discographyFetchingAlbum": "Fetching {current} of {total}...", + "@discographyFetchingAlbum": { + "description": "Progress - fetching specific album", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "discographySelectedCount": "{count} selected", + "@discographySelectedCount": { + "description": "Selection count badge", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographyDownloadSelected": "Download Selected", + "@discographyDownloadSelected": { + "description": "Button - download selected albums" + }, + "discographyAddedToQueue": "Added {count} tracks to queue", + "@discographyAddedToQueue": { + "description": "Snackbar - tracks added from discography", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographySkippedDownloaded": "{added} added, {skipped} already downloaded", + "@discographySkippedDownloaded": { + "description": "Snackbar - with skipped tracks count", + "placeholders": { + "added": { + "type": "int" + }, + "skipped": { + "type": "int" + } + } + }, + "discographyNoAlbums": "No albums available", + "@discographyNoAlbums": { + "description": "Error - no albums found for artist" + }, + "discographyFailedToFetch": "Failed to fetch some albums", + "@discographyFailedToFetch": { + "description": "Error - some albums failed to load" } } \ No newline at end of file diff --git a/lib/l10n/arb/app_ja.arb b/lib/l10n/arb/app_ja.arb index 1da85d29..55fb50c8 100644 --- a/lib/l10n/arb/app_ja.arb +++ b/lib/l10n/arb/app_ja.arb @@ -5,7 +5,7 @@ "@appName": { "description": "App name - DO NOT TRANSLATE" }, - "appDescription": "Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.", + "appDescription": "Tidal、Qobuz、Amazon Music から Spotify のトラックをロスレス品質でダウンロードします。", "@appDescription": { "description": "App description shown in about page" }, @@ -29,11 +29,11 @@ "@homeTitle": { "description": "Home screen title" }, - "homeSearchHint": "Paste Spotify URL or search...", + "homeSearchHint": "Spotify の URL を貼り付けまたは検索...", "@homeSearchHint": { "description": "Placeholder text in search box" }, - "homeSearchHintExtension": "Search with {extensionName}...", + "homeSearchHintExtension": "{extensionName} で検索...", "@homeSearchHintExtension": { "description": "Placeholder when extension search is active", "placeholders": { @@ -43,19 +43,19 @@ } } }, - "homeSubtitle": "Paste a Spotify link or search by name", + "homeSubtitle": "Spotify のリンクを貼り付けるか、名前で検索します", "@homeSubtitle": { "description": "Subtitle shown below search box" }, - "homeSupports": "Supports: Track, Album, Playlist, Artist URLs", + "homeSupports": "サポート: トラック、アルバム、プレイリスト、アーティスト、URL", "@homeSupports": { "description": "Info text about supported URL types" }, - "homeRecent": "Recent", + "homeRecent": "最近", "@homeRecent": { "description": "Section header for recent searches" }, - "historyTitle": "History", + "historyTitle": "履歴", "@historyTitle": { "description": "History screen title" }, @@ -85,7 +85,7 @@ "@historyFilterSingles": { "description": "Filter chip - show singles only" }, - "historyTracksCount": "{count, plural, =1{1 track} other{{count} tracks}}", + "historyTracksCount": "{count, plural, =1{1 個のトラック} other{{count} 個のトラック}}", "@historyTracksCount": { "description": "Track count with plural form", "placeholders": { @@ -94,7 +94,7 @@ } } }, - "historyAlbumsCount": "{count, plural, =1{1 album} other{{count} albums}}", + "historyAlbumsCount": "{count, plural, =1{1 個のアルバム} other{{count} 個のアルバム}}", "@historyAlbumsCount": { "description": "Album count with plural form", "placeholders": { @@ -103,15 +103,15 @@ } } }, - "historyNoDownloads": "No download history", + "historyNoDownloads": "ダウンロード履歴はありません", "@historyNoDownloads": { "description": "Empty state title" }, - "historyNoDownloadsSubtitle": "Downloaded tracks will appear here", + "historyNoDownloadsSubtitle": "ダウンロードしたトラックはここに表示されます", "@historyNoDownloadsSubtitle": { "description": "Empty state subtitle" }, - "historyNoAlbums": "No album downloads", + "historyNoAlbums": "アルバムのダウンロードはありません", "@historyNoAlbums": { "description": "Empty state when filtering albums" }, @@ -119,7 +119,7 @@ "@historyNoAlbumsSubtitle": { "description": "Empty state subtitle for albums filter" }, - "historyNoSingles": "No single downloads", + "historyNoSingles": "シングルのダウンロードはありません", "@historyNoSingles": { "description": "Empty state when filtering singles" }, @@ -127,6 +127,10 @@ "@historyNoSinglesSubtitle": { "description": "Empty state subtitle for singles filter" }, + "historySearchHint": "検索履歴...", + "@historySearchHint": { + "description": "Search bar placeholder in history" + }, "settingsTitle": "設定", "@settingsTitle": { "description": "Settings screen title" @@ -155,11 +159,11 @@ "@downloadTitle": { "description": "Download settings page title" }, - "downloadLocation": "Download Location", + "downloadLocation": "ダウンロード先", "@downloadLocation": { "description": "Setting for download folder" }, - "downloadLocationSubtitle": "Choose where to save files", + "downloadLocationSubtitle": "ファイルの保存先を選択", "@downloadLocationSubtitle": { "description": "Subtitle for download location" }, @@ -179,7 +183,7 @@ "@downloadDefaultQuality": { "description": "Setting for audio quality" }, - "downloadAskQuality": "Ask Quality Before Download", + "downloadAskQuality": "ダウンロード前に品質を確認する", "@downloadAskQuality": { "description": "Toggle to show quality picker" }, @@ -191,11 +195,11 @@ "@downloadFilenameFormat": { "description": "Setting for output filename pattern" }, - "downloadFolderOrganization": "Folder Organization", + "downloadFolderOrganization": "フォルダ構成", "@downloadFolderOrganization": { "description": "Setting for folder structure" }, - "downloadSeparateSingles": "Separate Singles", + "downloadSeparateSingles": "シングルを分割", "@downloadSeparateSingles": { "description": "Toggle to separate single tracks" }, @@ -203,7 +207,7 @@ "@downloadSeparateSinglesSubtitle": { "description": "Subtitle for separate singles toggle" }, - "qualityBest": "Best Available", + "qualityBest": "おすすめ", "@qualityBest": { "description": "Audio quality option - highest available" }, @@ -243,7 +247,7 @@ "@appearanceDynamicColor": { "description": "Material You dynamic colors" }, - "appearanceDynamicColorSubtitle": "Use colors from your wallpaper", + "appearanceDynamicColorSubtitle": "壁紙の色を使用する", "@appearanceDynamicColorSubtitle": { "description": "Subtitle for dynamic color" }, @@ -304,7 +308,7 @@ "@optionsUseExtensionProviders": { "description": "Enable extension download providers" }, - "optionsUseExtensionProvidersOn": "Extensions will be tried first", + "optionsUseExtensionProvidersOn": "最初に拡張で試みます", "@optionsUseExtensionProvidersOn": { "description": "Status when extension providers enabled" }, @@ -316,7 +320,7 @@ "@optionsEmbedLyrics": { "description": "Embed lyrics in audio files" }, - "optionsEmbedLyricsSubtitle": "Embed synced lyrics into FLAC files", + "optionsEmbedLyricsSubtitle": "同期する歌詞を FLAC ファイルに埋め込む", "@optionsEmbedLyricsSubtitle": { "description": "Subtitle for embed lyrics" }, @@ -324,11 +328,11 @@ "@optionsMaxQualityCover": { "description": "Download highest quality album art" }, - "optionsMaxQualityCoverSubtitle": "Download highest resolution cover art", + "optionsMaxQualityCoverSubtitle": "最高解像度のカバーアートをダウンロード", "@optionsMaxQualityCoverSubtitle": { "description": "Subtitle for max quality cover" }, - "optionsConcurrentDownloads": "Concurrent Downloads", + "optionsConcurrentDownloads": "同時ダウンロード", "@optionsConcurrentDownloads": { "description": "Number of parallel downloads" }, @@ -353,7 +357,7 @@ "@optionsExtensionStore": { "description": "Show/hide store tab" }, - "optionsExtensionStoreSubtitle": "Show Store tab in navigation", + "optionsExtensionStoreSubtitle": "ナビゲーションにストアタブを表示", "@optionsExtensionStoreSubtitle": { "description": "Subtitle for extension store toggle" }, @@ -381,23 +385,23 @@ "@optionsUpdateChannelWarning": { "description": "Warning about preview channel" }, - "optionsClearHistory": "Clear Download History", + "optionsClearHistory": "ダウンロード履歴を消去", "@optionsClearHistory": { "description": "Delete all download history" }, - "optionsClearHistorySubtitle": "Remove all downloaded tracks from history", + "optionsClearHistorySubtitle": "ダウンロード済みのすべてのトラックを履歴から削除", "@optionsClearHistorySubtitle": { "description": "Subtitle for clear history" }, - "optionsDetailedLogging": "Detailed Logging", + "optionsDetailedLogging": "詳細ログ", "@optionsDetailedLogging": { "description": "Enable verbose logs for debugging" }, - "optionsDetailedLoggingOn": "Detailed logs are being recorded", + "optionsDetailedLoggingOn": "詳細なログを記録しています", "@optionsDetailedLoggingOn": { "description": "Status when logging enabled" }, - "optionsDetailedLoggingOff": "Enable for bug reports", + "optionsDetailedLoggingOff": "バグレポートを有効", "@optionsDetailedLoggingOff": { "description": "Status when logging disabled" }, @@ -414,11 +418,11 @@ } } }, - "optionsSpotifyCredentialsRequired": "Required - tap to configure", + "optionsSpotifyCredentialsRequired": "必須 - タップで設定", "@optionsSpotifyCredentialsRequired": { "description": "Prompt to set up credentials" }, - "optionsSpotifyWarning": "Spotify requires your own API credentials. Get them free from developer.spotify.com", + "optionsSpotifyWarning": "Spotify は独自の API 認証情報が必要です。developer.spotify.com から取得できます。", "@optionsSpotifyWarning": { "description": "Info about Spotify API requirement" }, @@ -442,7 +446,7 @@ "@extensionsEnabled": { "description": "Extension status - active" }, - "extensionsDisabled": "Disabled", + "extensionsDisabled": "無効", "@extensionsDisabled": { "description": "Extension status - inactive" }, @@ -468,7 +472,7 @@ "@extensionsUninstall": { "description": "Uninstall extension button" }, - "extensionsSetAsSearch": "検索プロバイダーを設定", + "extensionsSetAsSearch": "検索のプロバイダーを設定", "@extensionsSetAsSearch": { "description": "Use extension for search" }, @@ -504,14 +508,18 @@ "@aboutMobileDeveloper": { "description": "Role description for mobile dev" }, - "aboutOriginalCreator": "Creator of the original SpotiFLAC", + "aboutOriginalCreator": "オリジナルの SpotiFLAC の作者", "@aboutOriginalCreator": { "description": "Role description for original creator" }, - "aboutLogoArtist": "The talented artist who created our beautiful app logo!", + "aboutLogoArtist": "美しいアプリロゴを作成した才能あるアーティストです!", "@aboutLogoArtist": { "description": "Role description for logo artist" }, + "aboutTranslators": "翻訳者", + "@aboutTranslators": { + "description": "Section for translators" + }, "aboutSpecialThanks": "スペシャルサンクス", "@aboutSpecialThanks": { "description": "Section for special thanks" @@ -528,11 +536,11 @@ "@aboutPCSource": { "description": "Link to PC GitHub repo" }, - "aboutReportIssue": "Issue で報告する", + "aboutReportIssue": "問題を報告する", "@aboutReportIssue": { "description": "Link to report bugs" }, - "aboutReportIssueSubtitle": "Report any problems you encounter", + "aboutReportIssueSubtitle": "問題が発生した場合に報告してください", "@aboutReportIssueSubtitle": { "description": "Subtitle for report issue" }, @@ -540,11 +548,31 @@ "@aboutFeatureRequest": { "description": "Link to suggest features" }, - "aboutFeatureRequestSubtitle": "Suggest new features for the app", + "aboutFeatureRequestSubtitle": "アプリの新機能を提案する", "@aboutFeatureRequestSubtitle": { "description": "Subtitle for feature request" }, - "aboutSupport": "Support", + "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" + }, + "aboutSupport": "サポート", "@aboutSupport": { "description": "Section for support/donation links" }, @@ -588,15 +616,15 @@ "@aboutDabMusicDesc": { "description": "Credit for DAB Music API" }, - "aboutAppDescription": "Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.", + "aboutAppDescription": "Tidal、Qobuz、Amazon Music から Spotify のトラックをロスレス品質でダウンロードします。", "@aboutAppDescription": { "description": "App description in header card" }, - "albumTitle": "Album", + "albumTitle": "アルバム", "@albumTitle": { "description": "Album screen title" }, - "albumTracks": "{count, plural, =1{1 track} other{{count} tracks}}", + "albumTracks": "{count, plural, =1{1 個のトラック} other{{count} 個のトラック}}", "@albumTracks": { "description": "Album track count", "placeholders": { @@ -605,7 +633,7 @@ } } }, - "albumDownloadAll": "Download All", + "albumDownloadAll": "すべてダウンロード", "@albumDownloadAll": { "description": "Button to download all tracks" }, @@ -613,15 +641,15 @@ "@albumDownloadRemaining": { "description": "Button to download remaining tracks" }, - "playlistTitle": "Playlist", + "playlistTitle": "プレイリスト", "@playlistTitle": { "description": "Playlist screen title" }, - "artistTitle": "Artist", + "artistTitle": "アーティスト", "@artistTitle": { "description": "Artist screen title" }, - "artistAlbums": "Albums", + "artistAlbums": "アルバム", "@artistAlbums": { "description": "Section header for artist albums" }, @@ -633,7 +661,7 @@ "@artistCompilations": { "description": "Section header for compilations" }, - "artistReleases": "{count, plural, =1{1 release} other{{count} releases}}", + "artistReleases": "{count, plural, =1{1 個のリリース} other{{count} 個のリリース}}", "@artistReleases": { "description": "Artist release count", "placeholders": { @@ -642,11 +670,11 @@ } } }, - "artistPopular": "Popular", + "artistPopular": "人気", "@artistPopular": { "description": "Section header for popular/top tracks" }, - "artistMonthlyListeners": "{count} monthly listeners", + "artistMonthlyListeners": "{count} 人の月間リスナー", "@artistMonthlyListeners": { "description": "Monthly listener count display", "placeholders": { @@ -656,59 +684,59 @@ } } }, - "trackMetadataTitle": "Track Info", + "trackMetadataTitle": "トラック情報", "@trackMetadataTitle": { "description": "Track metadata screen title" }, - "trackMetadataArtist": "Artist", + "trackMetadataArtist": "アーティスト", "@trackMetadataArtist": { "description": "Metadata field - artist name" }, - "trackMetadataAlbum": "Album", + "trackMetadataAlbum": "アルバム", "@trackMetadataAlbum": { "description": "Metadata field - album name" }, - "trackMetadataDuration": "Duration", + "trackMetadataDuration": "再生時間", "@trackMetadataDuration": { "description": "Metadata field - track length" }, - "trackMetadataQuality": "Quality", + "trackMetadataQuality": "品質", "@trackMetadataQuality": { "description": "Metadata field - audio quality" }, - "trackMetadataPath": "File Path", + "trackMetadataPath": "ファイルパス", "@trackMetadataPath": { "description": "Metadata field - file location" }, - "trackMetadataDownloadedAt": "Downloaded", + "trackMetadataDownloadedAt": "ダウンロード済み", "@trackMetadataDownloadedAt": { "description": "Metadata field - download date" }, - "trackMetadataService": "Service", + "trackMetadataService": "サービス", "@trackMetadataService": { "description": "Metadata field - download service used" }, - "trackMetadataPlay": "Play", + "trackMetadataPlay": "再生", "@trackMetadataPlay": { "description": "Action button - play track" }, - "trackMetadataShare": "Share", + "trackMetadataShare": "共有", "@trackMetadataShare": { "description": "Action button - share track" }, - "trackMetadataDelete": "Delete", + "trackMetadataDelete": "削除", "@trackMetadataDelete": { "description": "Action button - delete track" }, - "trackMetadataRedownload": "Re-download", + "trackMetadataRedownload": "再ダウンロード", "@trackMetadataRedownload": { "description": "Action button - download again" }, - "trackMetadataOpenFolder": "Open Folder", + "trackMetadataOpenFolder": "フォルダを開く", "@trackMetadataOpenFolder": { "description": "Action button - open containing folder" }, - "setupTitle": "Welcome to SpotiFLAC", + "setupTitle": "SpotiFLAC へようこそ", "@setupTitle": { "description": "Setup wizard title" }, @@ -716,31 +744,31 @@ "@setupSubtitle": { "description": "Setup wizard subtitle" }, - "setupStoragePermission": "Storage Permission", + "setupStoragePermission": "ストレージの権限", "@setupStoragePermission": { "description": "Storage permission step title" }, - "setupStoragePermissionSubtitle": "Required to save downloaded files", + "setupStoragePermissionSubtitle": "ダウンロードしたファイルを保存するために必要です", "@setupStoragePermissionSubtitle": { "description": "Explanation for storage permission" }, - "setupStoragePermissionGranted": "Permission granted", + "setupStoragePermissionGranted": "権限を許可しました", "@setupStoragePermissionGranted": { "description": "Status when permission granted" }, - "setupStoragePermissionDenied": "Permission denied", + "setupStoragePermissionDenied": "権限が拒否されました", "@setupStoragePermissionDenied": { "description": "Status when permission denied" }, - "setupGrantPermission": "Grant Permission", + "setupGrantPermission": "権限を許可", "@setupGrantPermission": { "description": "Button to request permission" }, - "setupDownloadLocation": "Download Location", + "setupDownloadLocation": "ダウンロード先", "@setupDownloadLocation": { "description": "Download folder step title" }, - "setupChooseFolder": "Choose Folder", + "setupChooseFolder": "フォルダを選択", "@setupChooseFolder": { "description": "Button to pick folder" }, @@ -764,7 +792,7 @@ "@setupStorageAccessMessageAndroid11": { "description": "Android 11+ specific explanation" }, - "setupOpenSettings": "Open Settings", + "setupOpenSettings": "設定を開く", "@setupOpenSettings": { "description": "Button to open system settings" }, @@ -772,7 +800,7 @@ "@setupPermissionDeniedMessage": { "description": "Error when permission denied" }, - "setupPermissionRequired": "{permissionType} Permission Required", + "setupPermissionRequired": "{permissionType} の権限が必要です", "@setupPermissionRequired": { "description": "Generic permission required title", "placeholders": { @@ -782,7 +810,7 @@ } } }, - "setupPermissionRequiredMessage": "{permissionType} permission is required for the best experience. You can change this later in Settings.", + "setupPermissionRequiredMessage": "最適な体験を得るには {permissionType} の権限が必要です。この権限は設定で後から変更できます。", "@setupPermissionRequiredMessage": { "description": "Generic permission required message", "placeholders": { @@ -791,11 +819,11 @@ } } }, - "setupSelectDownloadFolder": "Select Download Folder", + "setupSelectDownloadFolder": "ダウンロードフォルダを選択", "@setupSelectDownloadFolder": { "description": "Folder selection step title" }, - "setupUseDefaultFolder": "Use Default Folder?", + "setupUseDefaultFolder": "デフォルトのフォルダを使用しますか?", "@setupUseDefaultFolder": { "description": "Dialog title for default folder" }, @@ -803,11 +831,11 @@ "@setupNoFolderSelected": { "description": "Prompt when no folder selected" }, - "setupUseDefault": "Use Default", + "setupUseDefault": "デフォルトを使用する", "@setupUseDefault": { "description": "Button to use default folder" }, - "setupDownloadLocationTitle": "Download Location", + "setupDownloadLocationTitle": "ダウンロード先", "@setupDownloadLocationTitle": { "description": "Download location dialog title" }, @@ -815,7 +843,7 @@ "@setupDownloadLocationIosMessage": { "description": "iOS-specific folder info" }, - "setupAppDocumentsFolder": "App Documents Folder", + "setupAppDocumentsFolder": "アプリのドキュメントフォルダ", "@setupAppDocumentsFolder": { "description": "iOS documents folder option" }, @@ -823,11 +851,11 @@ "@setupAppDocumentsFolderSubtitle": { "description": "Subtitle for documents folder" }, - "setupChooseFromFiles": "Choose from Files", + "setupChooseFromFiles": "ファイルから選択", "@setupChooseFromFiles": { "description": "iOS file picker option" }, - "setupChooseFromFilesSubtitle": "Select iCloud or other location", + "setupChooseFromFilesSubtitle": "iCloud またはその他の場所を選択", "@setupChooseFromFilesSubtitle": { "description": "Subtitle for file picker" }, @@ -835,19 +863,19 @@ "@setupIosEmptyFolderWarning": { "description": "iOS folder selection warning" }, - "setupDownloadInFlac": "Download Spotify tracks in FLAC", + "setupDownloadInFlac": "Spotify のトラックを FLAC でダウンロード", "@setupDownloadInFlac": { "description": "App tagline in setup" }, - "setupStepStorage": "Storage", + "setupStepStorage": "ストレージ", "@setupStepStorage": { "description": "Setup step indicator - storage" }, - "setupStepNotification": "Notification", + "setupStepNotification": "通知", "@setupStepNotification": { "description": "Setup step indicator - notification" }, - "setupStepFolder": "Folder", + "setupStepFolder": "フォルダ", "@setupStepFolder": { "description": "Setup step indicator - folder" }, @@ -859,19 +887,19 @@ "@setupStepPermission": { "description": "Setup step indicator - permission" }, - "setupStorageGranted": "Storage Permission Granted!", + "setupStorageGranted": "ストレージの権限が許可されました!", "@setupStorageGranted": { "description": "Success message for storage permission" }, - "setupStorageRequired": "Storage Permission Required", + "setupStorageRequired": "ストレージの権限が必要です", "@setupStorageRequired": { "description": "Title when storage permission needed" }, - "setupStorageDescription": "SpotiFLAC needs storage permission to save your downloaded music files.", + "setupStorageDescription": "SpotiFLAC はダウンロードした音楽ファイルを保存するためにストレージの権限が必要です。", "@setupStorageDescription": { "description": "Explanation for storage permission" }, - "setupNotificationGranted": "Notification Permission Granted!", + "setupNotificationGranted": "通知の権限が許可されました!", "@setupNotificationGranted": { "description": "Success message for notification permission" }, @@ -887,7 +915,7 @@ "@setupFolderSelected": { "description": "Success message for folder selection" }, - "setupFolderChoose": "Choose Download Folder", + "setupFolderChoose": "ダウンロードフォルダを選択", "@setupFolderChoose": { "description": "Button to choose folder" }, @@ -895,11 +923,11 @@ "@setupFolderDescription": { "description": "Explanation for folder selection" }, - "setupChangeFolder": "Change Folder", + "setupChangeFolder": "フォルダを変更", "@setupChangeFolder": { "description": "Button to change selected folder" }, - "setupSelectFolder": "Select Folder", + "setupSelectFolder": "フォルダを選択", "@setupSelectFolder": { "description": "Button to select folder" }, @@ -915,7 +943,7 @@ "@setupUseSpotifyApi": { "description": "Toggle to enable Spotify API" }, - "setupEnterCredentialsBelow": "Enter your credentials below", + "setupEnterCredentialsBelow": "以下に認証情報を入力してください", "@setupEnterCredentialsBelow": { "description": "Prompt to enter credentials" }, @@ -931,11 +959,11 @@ "@setupEnterClientSecret": { "description": "Placeholder for client secret field" }, - "setupGetFreeCredentials": "Get your free API credentials from the Spotify Developer Dashboard.", + "setupGetFreeCredentials": "Spotify 開発者ダッシュボードから無料の API 認証情報を取得します。", "@setupGetFreeCredentials": { "description": "Info about getting Spotify credentials" }, - "setupEnableNotifications": "Enable Notifications", + "setupEnableNotifications": "通知を有効化する", "@setupEnableNotifications": { "description": "Button to enable notifications" }, @@ -975,11 +1003,11 @@ "@setupAllowAccessToManageFiles": { "description": "Instruction for file access permission" }, - "setupGetCredentialsFromSpotify": "Get credentials from developer.spotify.com", + "setupGetCredentialsFromSpotify": "developer.spotify.com から認証情報を取得します", "@setupGetCredentialsFromSpotify": { "description": "Link text for Spotify developer portal" }, - "dialogCancel": "Cancel", + "dialogCancel": "キャンセル", "@dialogCancel": { "description": "Dialog button - cancel action" }, @@ -987,59 +1015,59 @@ "@dialogOk": { "description": "Dialog button - confirm/acknowledge" }, - "dialogSave": "Save", + "dialogSave": "保存", "@dialogSave": { "description": "Dialog button - save changes" }, - "dialogDelete": "Delete", + "dialogDelete": "削除", "@dialogDelete": { "description": "Dialog button - delete item" }, - "dialogRetry": "Retry", + "dialogRetry": "再試行", "@dialogRetry": { "description": "Dialog button - retry action" }, - "dialogClose": "Close", + "dialogClose": "閉じる", "@dialogClose": { "description": "Dialog button - close dialog" }, - "dialogYes": "Yes", + "dialogYes": "はい", "@dialogYes": { "description": "Dialog button - confirm yes" }, - "dialogNo": "No", + "dialogNo": "いいえ", "@dialogNo": { "description": "Dialog button - confirm no" }, - "dialogClear": "Clear", + "dialogClear": "消去", "@dialogClear": { "description": "Dialog button - clear items" }, - "dialogConfirm": "Confirm", + "dialogConfirm": "続行", "@dialogConfirm": { "description": "Dialog button - confirm action" }, - "dialogDone": "Done", + "dialogDone": "完了", "@dialogDone": { "description": "Dialog button - action completed" }, - "dialogImport": "Import", + "dialogImport": "インポート", "@dialogImport": { "description": "Dialog button - import data" }, - "dialogDiscard": "Discard", + "dialogDiscard": "破棄", "@dialogDiscard": { "description": "Dialog button - discard changes" }, - "dialogRemove": "Remove", + "dialogRemove": "削除", "@dialogRemove": { "description": "Dialog button - remove item" }, - "dialogUninstall": "Uninstall", + "dialogUninstall": "アンインストール", "@dialogUninstall": { "description": "Dialog button - uninstall extension" }, - "dialogDiscardChanges": "Discard Changes?", + "dialogDiscardChanges": "変更を破棄しますか?", "@dialogDiscardChanges": { "description": "Dialog title - unsaved changes warning" }, @@ -1047,23 +1075,23 @@ "@dialogUnsavedChanges": { "description": "Dialog message - unsaved changes" }, - "dialogDownloadFailed": "Download Failed", + "dialogDownloadFailed": "ダウンロードに失敗しました", "@dialogDownloadFailed": { "description": "Dialog title - download error" }, - "dialogTrackLabel": "Track:", + "dialogTrackLabel": "トラック:", "@dialogTrackLabel": { "description": "Label for track name in error dialog" }, - "dialogArtistLabel": "Artist:", + "dialogArtistLabel": "アーティスト:", "@dialogArtistLabel": { "description": "Label for artist name in error dialog" }, - "dialogErrorLabel": "Error:", + "dialogErrorLabel": "エラー:", "@dialogErrorLabel": { "description": "Label for error message" }, - "dialogClearAll": "Clear All", + "dialogClearAll": "すべて消去", "@dialogClearAll": { "description": "Dialog title - clear all items" }, @@ -1071,11 +1099,11 @@ "@dialogClearAllDownloads": { "description": "Dialog message - clear downloads confirmation" }, - "dialogRemoveFromDevice": "Remove from device?", + "dialogRemoveFromDevice": "デバイスから削除しますか?", "@dialogRemoveFromDevice": { "description": "Dialog title - delete file confirmation" }, - "dialogRemoveExtension": "Remove Extension", + "dialogRemoveExtension": "拡張を削除", "@dialogRemoveExtension": { "description": "Dialog title - uninstall extension" }, @@ -1096,7 +1124,7 @@ } } }, - "dialogClearHistoryTitle": "Clear History", + "dialogClearHistoryTitle": "履歴を消去", "@dialogClearHistoryTitle": { "description": "Dialog title - clear download history" }, @@ -1104,7 +1132,7 @@ "@dialogClearHistoryMessage": { "description": "Dialog message - clear history confirmation" }, - "dialogDeleteSelectedTitle": "Delete Selected", + "dialogDeleteSelectedTitle": "選択済みを削除", "@dialogDeleteSelectedTitle": { "description": "Dialog title - delete selected items" }, @@ -1122,6 +1150,15 @@ "description": "Dialog title - import CSV playlist" }, "dialogImportPlaylistMessage": "Found {count} tracks in CSV. Add them to download queue?", + "csvImportTracks": "{count} tracks from CSV", + "@csvImportTracks": { + "description": "Label shown in quality picker for CSV import", + "placeholders": { + "count": { + "type": "int" + } + } + }, "@dialogImportPlaylistMessage": { "description": "Dialog message - import playlist confirmation", "placeholders": { @@ -1130,7 +1167,7 @@ } } }, - "snackbarAddedToQueue": "Added \"{trackName}\" to queue", + "snackbarAddedToQueue": "「{trackName}」をキューに追加しました", "@snackbarAddedToQueue": { "description": "Snackbar - track added to download queue", "placeholders": { @@ -1139,7 +1176,7 @@ } } }, - "snackbarAddedTracksToQueue": "Added {count} tracks to queue", + "snackbarAddedTracksToQueue": "{count} 個のトラックをキューに追加しました", "@snackbarAddedTracksToQueue": { "description": "Snackbar - multiple tracks added to queue", "placeholders": { @@ -1148,7 +1185,7 @@ } } }, - "snackbarAlreadyDownloaded": "\"{trackName}\" already downloaded", + "snackbarAlreadyDownloaded": "「{trackName}」は既にダウンロードされています", "@snackbarAlreadyDownloaded": { "description": "Snackbar - track already exists", "placeholders": { @@ -1157,19 +1194,19 @@ } } }, - "snackbarHistoryCleared": "History cleared", + "snackbarHistoryCleared": "履歴を消去しました", "@snackbarHistoryCleared": { "description": "Snackbar - history deleted" }, - "snackbarCredentialsSaved": "Credentials saved", + "snackbarCredentialsSaved": "認証情報を保存しました", "@snackbarCredentialsSaved": { "description": "Snackbar - Spotify credentials saved" }, - "snackbarCredentialsCleared": "Credentials cleared", + "snackbarCredentialsCleared": "認証情報を消去しました", "@snackbarCredentialsCleared": { "description": "Snackbar - Spotify credentials removed" }, - "snackbarDeletedTracks": "Deleted {count} {count, plural, =1{track} other{tracks}}", + "snackbarDeletedTracks": "{count} {count, plural, =1{個のトラック} other{個のトラック}}を削除", "@snackbarDeletedTracks": { "description": "Snackbar - tracks deleted", "placeholders": { @@ -1178,7 +1215,7 @@ } } }, - "snackbarCannotOpenFile": "Cannot open file: {error}", + "snackbarCannotOpenFile": "ファイルが開けません: {error}", "@snackbarCannotOpenFile": { "description": "Snackbar - file open error", "placeholders": { @@ -1187,15 +1224,15 @@ } } }, - "snackbarFillAllFields": "Please fill all fields", + "snackbarFillAllFields": "すべての項目を入力してください", "@snackbarFillAllFields": { "description": "Snackbar - validation error" }, - "snackbarViewQueue": "View Queue", + "snackbarViewQueue": "キューを表示", "@snackbarViewQueue": { "description": "Snackbar action - view download queue" }, - "snackbarFailedToLoad": "Failed to load: {error}", + "snackbarFailedToLoad": "読み込みに失敗: {error}", "@snackbarFailedToLoad": { "description": "Snackbar - loading error", "placeholders": { @@ -1204,7 +1241,7 @@ } } }, - "snackbarUrlCopied": "{platform} URL copied to clipboard", + "snackbarUrlCopied": "{platform} の URL をクリップボードにコピーしました", "@snackbarUrlCopied": { "description": "Snackbar - URL copied", "placeholders": { @@ -1214,23 +1251,23 @@ } } }, - "snackbarFileNotFound": "File not found", + "snackbarFileNotFound": "ファイルがありません", "@snackbarFileNotFound": { "description": "Snackbar - file doesn't exist" }, - "snackbarSelectExtFile": "Please select a .spotiflac-ext file", + "snackbarSelectExtFile": ".spotiflac-ext ファイルを選択してください", "@snackbarSelectExtFile": { "description": "Snackbar - wrong file type selected" }, - "snackbarProviderPrioritySaved": "Provider priority saved", + "snackbarProviderPrioritySaved": "プロバイダーの優先度を保存しました", "@snackbarProviderPrioritySaved": { "description": "Snackbar - provider order saved" }, - "snackbarMetadataProviderSaved": "Metadata provider priority saved", + "snackbarMetadataProviderSaved": "メタデータプロバイダーの優先度を保存しました", "@snackbarMetadataProviderSaved": { "description": "Snackbar - metadata provider order saved" }, - "snackbarExtensionInstalled": "{extensionName} installed.", + "snackbarExtensionInstalled": "{extensionName} をインストールしました。", "@snackbarExtensionInstalled": { "description": "Snackbar - extension installed successfully", "placeholders": { @@ -1239,7 +1276,7 @@ } } }, - "snackbarExtensionUpdated": "{extensionName} updated.", + "snackbarExtensionUpdated": "{extensionName} を更新しました。", "@snackbarExtensionUpdated": { "description": "Snackbar - extension updated successfully", "placeholders": { @@ -1248,11 +1285,11 @@ } } }, - "snackbarFailedToInstall": "Failed to install extension", + "snackbarFailedToInstall": "拡張のインストールに失敗しました", "@snackbarFailedToInstall": { "description": "Snackbar - extension install error" }, - "snackbarFailedToUpdate": "Failed to update extension", + "snackbarFailedToUpdate": "拡張の更新に失敗しました", "@snackbarFailedToUpdate": { "description": "Snackbar - extension update error" }, @@ -1274,11 +1311,11 @@ } } }, - "errorNoTracksFound": "No tracks found", + "errorNoTracksFound": "トラックがありません", "@errorNoTracksFound": { "description": "Error - search returned no results" }, - "errorMissingExtensionSource": "Cannot load {item}: missing extension source", + "errorMissingExtensionSource": "{item} を読み込めません: 拡張ソースがありません", "@errorMissingExtensionSource": { "description": "Error - extension source not available", "placeholders": { @@ -1287,79 +1324,79 @@ } } }, - "statusQueued": "Queued", + "statusQueued": "キュー済み", "@statusQueued": { "description": "Download status - waiting in queue" }, - "statusDownloading": "Downloading", + "statusDownloading": "ダウンロード中", "@statusDownloading": { "description": "Download status - in progress" }, - "statusFinalizing": "Finalizing", + "statusFinalizing": "終了処理中", "@statusFinalizing": { "description": "Download status - writing metadata" }, - "statusCompleted": "Completed", + "statusCompleted": "完了しました", "@statusCompleted": { "description": "Download status - finished" }, - "statusFailed": "Failed", + "statusFailed": "失敗しました", "@statusFailed": { "description": "Download status - error occurred" }, - "statusSkipped": "Skipped", + "statusSkipped": "スキップしました", "@statusSkipped": { "description": "Download status - already exists" }, - "statusPaused": "Paused", + "statusPaused": "一時停止中", "@statusPaused": { "description": "Download status - paused" }, - "actionPause": "Pause", + "actionPause": "一時停止", "@actionPause": { "description": "Action button - pause download" }, - "actionResume": "Resume", + "actionResume": "再開", "@actionResume": { "description": "Action button - resume download" }, - "actionCancel": "Cancel", + "actionCancel": "キャンセル", "@actionCancel": { "description": "Action button - cancel operation" }, - "actionStop": "Stop", + "actionStop": "停止", "@actionStop": { "description": "Action button - stop operation" }, - "actionSelect": "Select", + "actionSelect": "選択", "@actionSelect": { "description": "Action button - enter selection mode" }, - "actionSelectAll": "Select All", + "actionSelectAll": "すべて選択", "@actionSelectAll": { "description": "Action button - select all items" }, - "actionDeselect": "Deselect", + "actionDeselect": "選択を解除", "@actionDeselect": { "description": "Action button - deselect all" }, - "actionPaste": "Paste", + "actionPaste": "貼り付け", "@actionPaste": { "description": "Action button - paste from clipboard" }, - "actionImportCsv": "Import CSV", + "actionImportCsv": "CSV をインポート", "@actionImportCsv": { "description": "Action button - import CSV file" }, - "actionRemoveCredentials": "Remove Credentials", + "actionRemoveCredentials": "認証情報を削除", "@actionRemoveCredentials": { "description": "Action button - delete Spotify credentials" }, - "actionSaveCredentials": "Save Credentials", + "actionSaveCredentials": "認証情報を保存", "@actionSaveCredentials": { "description": "Action button - save Spotify credentials" }, - "selectionSelected": "{count} selected", + "selectionSelected": "{count} 個を選択済み", "@selectionSelected": { "description": "Selection count indicator", "placeholders": { @@ -1368,15 +1405,15 @@ } } }, - "selectionAllSelected": "All tracks selected", + "selectionAllSelected": "すべてのトラックを選択済み", "@selectionAllSelected": { "description": "Status - all items selected" }, - "selectionTapToSelect": "Tap tracks to select", + "selectionTapToSelect": "トラックをタップで選択", "@selectionTapToSelect": { "description": "Hint - how to select items" }, - "selectionDeleteTracks": "Delete {count} {count, plural, =1{track} other{tracks}}", + "selectionDeleteTracks": "{count} {count, plural, =1{個のトラック} other{個のトラック}}を削除", "@selectionDeleteTracks": { "description": "Delete button with count", "placeholders": { @@ -1385,11 +1422,11 @@ } } }, - "selectionSelectToDelete": "Select tracks to delete", + "selectionSelectToDelete": "トラックを選択で削除", "@selectionSelectToDelete": { "description": "Placeholder when nothing selected" }, - "progressFetchingMetadata": "Fetching metadata... {current}/{total}", + "progressFetchingMetadata": "メタデータを取得中... {current}/{total}", "@progressFetchingMetadata": { "description": "Progress indicator - loading track info", "placeholders": { @@ -1401,59 +1438,59 @@ } } }, - "progressReadingCsv": "Reading CSV...", + "progressReadingCsv": "CSV を読み取り中...", "@progressReadingCsv": { "description": "Progress indicator - parsing CSV file" }, - "searchSongs": "Songs", + "searchSongs": "曲", "@searchSongs": { "description": "Search result category - songs" }, - "searchArtists": "Artists", + "searchArtists": "アーティスト", "@searchArtists": { "description": "Search result category - artists" }, - "searchAlbums": "Albums", + "searchAlbums": "アルバム", "@searchAlbums": { "description": "Search result category - albums" }, - "searchPlaylists": "Playlists", + "searchPlaylists": "プレイリスト", "@searchPlaylists": { "description": "Search result category - playlists" }, - "tooltipPlay": "Play", + "tooltipPlay": "再生", "@tooltipPlay": { "description": "Tooltip - play button" }, - "tooltipCancel": "Cancel", + "tooltipCancel": "キャンセル", "@tooltipCancel": { "description": "Tooltip - cancel button" }, - "tooltipStop": "Stop", + "tooltipStop": "停止", "@tooltipStop": { "description": "Tooltip - stop button" }, - "tooltipRetry": "Retry", + "tooltipRetry": "再試行", "@tooltipRetry": { "description": "Tooltip - retry button" }, - "tooltipRemove": "Remove", + "tooltipRemove": "削除", "@tooltipRemove": { "description": "Tooltip - remove button" }, - "tooltipClear": "Clear", + "tooltipClear": "消去", "@tooltipClear": { "description": "Tooltip - clear button" }, - "tooltipPaste": "Paste", + "tooltipPaste": "貼り付け", "@tooltipPaste": { "description": "Tooltip - paste button" }, - "filenameFormat": "Filename Format", + "filenameFormat": "ファイル名の形式", "@filenameFormat": { "description": "Setting title - filename pattern" }, - "filenameFormatPreview": "Preview: {preview}", + "filenameFormatPreview": "プレビュー: {preview}", "@filenameFormatPreview": { "description": "Preview of filename pattern", "placeholders": { @@ -1462,7 +1499,7 @@ } } }, - "filenameAvailablePlaceholders": "Available placeholders:", + "filenameAvailablePlaceholders": "利用可能なプレースホルダー:", "@filenameAvailablePlaceholders": { "description": "Label for placeholder list" }, @@ -1470,31 +1507,31 @@ "@filenameHint": { "description": "Default filename format hint" }, - "folderOrganization": "Folder Organization", + "folderOrganization": "フォルダ構成", "@folderOrganization": { "description": "Setting title - folder structure" }, - "folderOrganizationNone": "No organization", + "folderOrganizationNone": "構成がありません", "@folderOrganizationNone": { "description": "Folder option - flat structure" }, - "folderOrganizationByArtist": "By Artist", + "folderOrganizationByArtist": "アーティスト別", "@folderOrganizationByArtist": { "description": "Folder option - artist folders" }, - "folderOrganizationByAlbum": "By Album", + "folderOrganizationByAlbum": "アルバム別", "@folderOrganizationByAlbum": { "description": "Folder option - album folders" }, - "folderOrganizationByArtistAlbum": "Artist/Album", + "folderOrganizationByArtistAlbum": "アーティスト/アルバム", "@folderOrganizationByArtistAlbum": { "description": "Folder option - nested folders" }, - "folderOrganizationDescription": "Organize downloaded files into folders", + "folderOrganizationDescription": "ダウンロードしたファイルをフォルダに整理する", "@folderOrganizationDescription": { "description": "Folder organization sheet description" }, - "folderOrganizationNoneSubtitle": "All files in download folder", + "folderOrganizationNoneSubtitle": "ダウンロードフォルダ内のすべてのファイル", "@folderOrganizationNoneSubtitle": { "description": "Subtitle for no organization option" }, @@ -1510,11 +1547,11 @@ "@folderOrganizationByArtistAlbumSubtitle": { "description": "Subtitle for nested folder option" }, - "updateAvailable": "Update Available", + "updateAvailable": "更新が利用可能です", "@updateAvailable": { "description": "Update dialog title" }, - "updateNewVersion": "Version {version} is available", + "updateNewVersion": "バージョン {version} が利用可能です", "@updateNewVersion": { "description": "Update available message", "placeholders": { @@ -1527,27 +1564,27 @@ "@updateDownload": { "description": "Update button - download update" }, - "updateLater": "Later", + "updateLater": "後で", "@updateLater": { "description": "Update button - dismiss" }, - "updateChangelog": "Changelog", + "updateChangelog": "更新履歴", "@updateChangelog": { "description": "Link to changelog" }, - "updateStartingDownload": "Starting download...", + "updateStartingDownload": "ダウンロードを開始中...", "@updateStartingDownload": { "description": "Update status - initializing" }, - "updateDownloadFailed": "Download failed", + "updateDownloadFailed": "ダウンロードに失敗しました", "@updateDownloadFailed": { "description": "Update error title" }, - "updateFailedMessage": "Failed to download update", + "updateFailedMessage": "更新のダウンロードに失敗しました", "@updateFailedMessage": { "description": "Update error message" }, - "updateNewVersionReady": "A new version is ready", + "updateNewVersionReady": "新しいバージョンの準備ができています", "@updateNewVersionReady": { "description": "Update subtitle" }, @@ -1555,35 +1592,35 @@ "@updateCurrent": { "description": "Label for current version" }, - "updateNew": "New", + "updateNew": "新着", "@updateNew": { "description": "Label for new version" }, - "updateDownloading": "Downloading...", + "updateDownloading": "ダウンロード中...", "@updateDownloading": { "description": "Update status - downloading" }, - "updateWhatsNew": "What's New", + "updateWhatsNew": "新着情報", "@updateWhatsNew": { "description": "Changelog section title" }, - "updateDownloadInstall": "Download & Install", + "updateDownloadInstall": "ダウンロードとインストール", "@updateDownloadInstall": { "description": "Update button - download and install" }, - "updateDontRemind": "Don't remind", + "updateDontRemind": "通知しない", "@updateDontRemind": { "description": "Update button - skip this version" }, - "providerPriority": "Provider Priority", + "providerPriority": "プロバイダーの優先度", "@providerPriority": { "description": "Setting title - download provider order" }, - "providerPrioritySubtitle": "Drag to reorder download providers", + "providerPrioritySubtitle": "ドラッグでダウンロードプロバイダーを並べ替え", "@providerPrioritySubtitle": { "description": "Subtitle for provider priority" }, - "providerPriorityTitle": "Provider Priority", + "providerPriorityTitle": "プロバイダーの優先度", "@providerPriorityTitle": { "description": "Provider priority page title" }, @@ -1595,15 +1632,15 @@ "@providerPriorityInfo": { "description": "Info tip about fallback behavior" }, - "providerBuiltIn": "Built-in", + "providerBuiltIn": "内蔵", "@providerBuiltIn": { "description": "Label for built-in providers (Tidal/Qobuz/Amazon)" }, - "providerExtension": "Extension", + "providerExtension": "拡張", "@providerExtension": { "description": "Label for extension-provided providers" }, - "metadataProviderPriority": "Metadata Provider Priority", + "metadataProviderPriority": "メタデータプロバイダーの優先度", "@metadataProviderPriority": { "description": "Setting title - metadata provider order" }, @@ -1611,7 +1648,7 @@ "@metadataProviderPrioritySubtitle": { "description": "Subtitle for metadata priority" }, - "metadataProviderPriorityTitle": "Metadata Priority", + "metadataProviderPriorityTitle": "メタデータの優先度", "@metadataProviderPriorityTitle": { "description": "Metadata priority page title" }, @@ -1623,7 +1660,7 @@ "@metadataProviderPriorityInfo": { "description": "Info tip about rate limits" }, - "metadataNoRateLimits": "No rate limits", + "metadataNoRateLimits": "レート制限はありません", "@metadataNoRateLimits": { "description": "Deezer provider description" }, @@ -1631,55 +1668,55 @@ "@metadataMayRateLimit": { "description": "Spotify provider description" }, - "logTitle": "Logs", + "logTitle": "ログ", "@logTitle": { "description": "Logs screen title" }, - "logCopy": "Copy Logs", + "logCopy": "ログをコピー", "@logCopy": { "description": "Action - copy logs to clipboard" }, - "logClear": "Clear Logs", + "logClear": "ログを消去", "@logClear": { "description": "Action - delete all logs" }, - "logShare": "Share Logs", + "logShare": "ログを共有", "@logShare": { "description": "Action - share logs file" }, - "logEmpty": "No logs yet", + "logEmpty": "まだログはありません", "@logEmpty": { "description": "Empty state title" }, - "logCopied": "Logs copied to clipboard", + "logCopied": "ログをクリップボードにコピーしました", "@logCopied": { "description": "Snackbar - logs copied" }, - "logSearchHint": "Search logs...", + "logSearchHint": "ログを検索...", "@logSearchHint": { "description": "Log search placeholder" }, - "logFilterLevel": "Level", + "logFilterLevel": "レベル", "@logFilterLevel": { "description": "Filter by log level" }, - "logFilterSection": "Filter", + "logFilterSection": "フィルター", "@logFilterSection": { "description": "Filter section title" }, - "logShareLogs": "Share logs", + "logShareLogs": "ログを共有", "@logShareLogs": { "description": "Share button tooltip" }, - "logClearLogs": "Clear logs", + "logClearLogs": "ログを消去", "@logClearLogs": { "description": "Clear button tooltip" }, - "logClearLogsTitle": "Clear Logs", + "logClearLogsTitle": "ログを消去", "@logClearLogsTitle": { "description": "Clear logs dialog title" }, - "logClearLogsMessage": "Are you sure you want to clear all logs?", + "logClearLogsMessage": "すべてのログを消去してもよろしいですか?", "@logClearLogsMessage": { "description": "Clear logs confirmation message" }, @@ -1695,7 +1732,7 @@ "@logNetworkError": { "description": "Error category - network issues" }, - "logTrackNotFound": "TRACK NOT FOUND", + "logTrackNotFound": "トラックがありません", "@logTrackNotFound": { "description": "Error category - missing tracks" }, @@ -1703,7 +1740,7 @@ "@logFilterBySeverity": { "description": "Filter dialog title" }, - "logNoLogsYet": "No logs yet", + "logNoLogsYet": "まだログはありません", "@logNoLogsYet": { "description": "Empty state title" }, @@ -1711,19 +1748,19 @@ "@logNoLogsYetSubtitle": { "description": "Empty state subtitle" }, - "logIssueSummary": "Issue Summary", + "logIssueSummary": "問題の概要", "@logIssueSummary": { "description": "Section header for error summary" }, - "logIspBlockingDescription": "Your ISP may be blocking access to download services", + "logIspBlockingDescription": "ISP がダウンロードサービスのアクセスをブロックしている可能性があります", "@logIspBlockingDescription": { "description": "ISP blocking explanation" }, - "logIspBlockingSuggestion": "Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8", + "logIspBlockingSuggestion": "VPN を使用するか DNS を 1.1.1.1 または 8.8.8.8 に変更をお試しください", "@logIspBlockingSuggestion": { "description": "ISP blocking fix suggestion" }, - "logRateLimitedDescription": "Too many requests to the service", + "logRateLimitedDescription": "サービスへのリクエストが多すぎます", "@logRateLimitedDescription": { "description": "Rate limit explanation" }, @@ -1731,11 +1768,11 @@ "@logRateLimitedSuggestion": { "description": "Rate limit fix suggestion" }, - "logNetworkErrorDescription": "Connection issues detected", + "logNetworkErrorDescription": "接続の問題が検出されました", "@logNetworkErrorDescription": { "description": "Network error explanation" }, - "logNetworkErrorSuggestion": "Check your internet connection", + "logNetworkErrorSuggestion": "インターネット接続を確認してください", "@logNetworkErrorSuggestion": { "description": "Network error fix suggestion" }, @@ -1747,7 +1784,7 @@ "@logTrackNotFoundSuggestion": { "description": "Track not found explanation" }, - "logTotalErrors": "Total errors: {count}", + "logTotalErrors": "エラーの合計: {count}", "@logTotalErrors": { "description": "Error count display", "placeholders": { @@ -1756,7 +1793,7 @@ } } }, - "logAffected": "Affected: {domains}", + "logAffected": "影響: {domains}", "@logAffected": { "description": "Affected domains display", "placeholders": { @@ -1765,7 +1802,7 @@ } } }, - "logEntriesFiltered": "Entries ({count} filtered)", + "logEntriesFiltered": "エントリー ({count} 個をフィルター済み)", "@logEntriesFiltered": { "description": "Log count with filter active", "placeholders": { @@ -1774,7 +1811,7 @@ } } }, - "logEntries": "Entries ({count})", + "logEntries": "エントリー ({count})", "@logEntries": { "description": "Total log count", "placeholders": { @@ -1783,7 +1820,7 @@ } } }, - "credentialsTitle": "Spotify Credentials", + "credentialsTitle": "Spotify の認証情報", "@credentialsTitle": { "description": "Credentials dialog title" }, @@ -1791,95 +1828,131 @@ "@credentialsDescription": { "description": "Credentials dialog explanation" }, - "credentialsClientId": "Client ID", + "credentialsClientId": "クライアント ID", "@credentialsClientId": { "description": "Client ID field label - DO NOT TRANSLATE" }, - "credentialsClientIdHint": "Paste Client ID", + "credentialsClientIdHint": "クライアント ID を貼り付け", "@credentialsClientIdHint": { "description": "Client ID placeholder" }, - "credentialsClientSecret": "Client Secret", + "credentialsClientSecret": "クライアントシークレット", "@credentialsClientSecret": { "description": "Client Secret field label - DO NOT TRANSLATE" }, - "credentialsClientSecretHint": "Paste Client Secret", + "credentialsClientSecretHint": "クライアントシークレットを貼り付け", "@credentialsClientSecretHint": { "description": "Client Secret placeholder" }, - "channelStable": "Stable", + "channelStable": "安定版", "@channelStable": { "description": "Update channel - stable releases" }, - "channelPreview": "Preview", + "channelPreview": "プレビュー", "@channelPreview": { "description": "Update channel - beta/preview releases" }, - "sectionSearchSource": "Search Source", + "sectionSearchSource": "検索ソース", "@sectionSearchSource": { "description": "Settings section header" }, - "sectionDownload": "Download", + "sectionDownload": "ダウンロード", "@sectionDownload": { "description": "Settings section header" }, - "sectionPerformance": "Performance", + "sectionPerformance": "パフォーマンス", "@sectionPerformance": { "description": "Settings section header" }, - "sectionApp": "App", + "sectionApp": "アプリ", "@sectionApp": { "description": "Settings section header" }, - "sectionData": "Data", + "sectionData": "データ", "@sectionData": { "description": "Settings section header" }, - "sectionDebug": "Debug", + "sectionDebug": "デバッグ", "@sectionDebug": { "description": "Settings section header" }, - "sectionService": "Service", + "sectionService": "サービス", "@sectionService": { "description": "Settings section header" }, - "sectionAudioQuality": "Audio Quality", + "sectionAudioQuality": "オーディオ品質", "@sectionAudioQuality": { "description": "Settings section header" }, - "sectionFileSettings": "File Settings", + "sectionFileSettings": "ファイル設定", "@sectionFileSettings": { "description": "Settings section header" }, - "sectionColor": "Color", + "sectionLyrics": "歌詞", + "@sectionLyrics": { + "description": "Settings section header" + }, + "lyricsMode": "歌詞モード", + "@lyricsMode": { + "description": "Setting - how to save lyrics" + }, + "lyricsModeDescription": "Choose how lyrics are saved with your downloads", + "@lyricsModeDescription": { + "description": "Lyrics mode picker description" + }, + "lyricsModeEmbed": "Embed in file", + "@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": "Separate .lrc file for players like Samsung Music", + "@lyricsModeExternalSubtitle": { + "description": "Subtitle for external option" + }, + "lyricsModeBoth": "両方", + "@lyricsModeBoth": { + "description": "Lyrics mode option - embed and external" + }, + "lyricsModeBothSubtitle": "Embed and save .lrc file", + "@lyricsModeBothSubtitle": { + "description": "Subtitle for both option" + }, + "sectionColor": "カラー", "@sectionColor": { "description": "Settings section header" }, - "sectionTheme": "Theme", + "sectionTheme": "テーマ", "@sectionTheme": { "description": "Settings section header" }, - "sectionLayout": "Layout", + "sectionLayout": "レイアウト", "@sectionLayout": { "description": "Settings section header" }, - "sectionLanguage": "Language", + "sectionLanguage": "言語", "@sectionLanguage": { "description": "Settings section header for language" }, - "appearanceLanguage": "App Language", + "appearanceLanguage": "アプリの言語", "@appearanceLanguage": { "description": "Language setting title" }, - "appearanceLanguageSubtitle": "Choose your preferred language", + "appearanceLanguageSubtitle": "お好みの言語を選択してください", "@appearanceLanguageSubtitle": { "description": "Language setting subtitle" }, - "settingsAppearanceSubtitle": "Theme, colors, display", + "settingsAppearanceSubtitle": "テーマ、カラー、画面", "@settingsAppearanceSubtitle": { "description": "Appearance settings description" }, - "settingsDownloadSubtitle": "Service, quality, filename format", + "settingsDownloadSubtitle": "サービス、品質、ファイル名、形式", "@settingsDownloadSubtitle": { "description": "Download settings description" }, @@ -1887,15 +1960,15 @@ "@settingsOptionsSubtitle": { "description": "Options settings description" }, - "settingsExtensionsSubtitle": "Manage download providers", + "settingsExtensionsSubtitle": "ダウンロードプロバイダーを管理", "@settingsExtensionsSubtitle": { "description": "Extensions settings description" }, - "settingsLogsSubtitle": "View app logs for debugging", + "settingsLogsSubtitle": "デバッグのためのアプリログを表示", "@settingsLogsSubtitle": { "description": "Logs settings description" }, - "loadingSharedLink": "Loading shared link...", + "loadingSharedLink": "共有リンクを読み込み中...", "@loadingSharedLink": { "description": "Status when opening shared URL" }, @@ -1903,11 +1976,11 @@ "@pressBackAgainToExit": { "description": "Exit confirmation message" }, - "tracksHeader": "Tracks", + "tracksHeader": "トラック", "@tracksHeader": { "description": "Section header for track list" }, - "downloadAllCount": "Download All ({count})", + "downloadAllCount": "すべてダウンロード ({count})", "@downloadAllCount": { "description": "Download all button with count", "placeholders": { @@ -1916,7 +1989,7 @@ } } }, - "tracksCount": "{count, plural, =1{1 track} other{{count} tracks}}", + "tracksCount": "{count, plural, =1{1 個のトラック} other{{count} 個のトラック}}", "@tracksCount": { "description": "Track count display", "placeholders": { @@ -1925,19 +1998,19 @@ } } }, - "trackCopyFilePath": "Copy file path", + "trackCopyFilePath": "ファイルパスをコピー", "@trackCopyFilePath": { "description": "Action - copy file path" }, - "trackRemoveFromDevice": "Remove from device", + "trackRemoveFromDevice": "デバイスから削除", "@trackRemoveFromDevice": { "description": "Action - delete downloaded file" }, - "trackLoadLyrics": "Load Lyrics", + "trackLoadLyrics": "歌詞を読み込み", "@trackLoadLyrics": { "description": "Action - fetch lyrics" }, - "trackMetadata": "Metadata", + "trackMetadata": "メタデータ", "@trackMetadata": { "description": "Tab title - track metadata" }, @@ -1965,63 +2038,87 @@ "@trackTrackName": { "description": "Metadata label - track title" }, - "trackArtist": "Artist", + "trackArtist": "アーティスト", "@trackArtist": { "description": "Metadata label - artist name" }, - "trackAlbumArtist": "Album artist", + "trackAlbumArtist": "アルバムアーティスト", "@trackAlbumArtist": { "description": "Metadata label - album artist" }, - "trackAlbum": "Album", + "trackAlbum": "アルバム", "@trackAlbum": { "description": "Metadata label - album name" }, - "trackTrackNumber": "Track number", + "trackTrackNumber": "トラック番号", "@trackTrackNumber": { "description": "Metadata label - track number" }, - "trackDiscNumber": "Disc number", + "trackDiscNumber": "ディスク番号", "@trackDiscNumber": { "description": "Metadata label - disc number" }, - "trackDuration": "Duration", + "trackDuration": "再生時間", "@trackDuration": { "description": "Metadata label - track length" }, - "trackAudioQuality": "Audio quality", + "trackAudioQuality": "オーディオ品質", "@trackAudioQuality": { "description": "Metadata label - audio quality" }, - "trackReleaseDate": "Release date", + "trackReleaseDate": "リリース日", "@trackReleaseDate": { "description": "Metadata label - release date" }, - "trackDownloaded": "Downloaded", + "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": "Copy lyrics", + "trackCopyLyrics": "歌詞をコピー", "@trackCopyLyrics": { "description": "Action - copy lyrics to clipboard" }, - "trackLyricsNotAvailable": "Lyrics not available for this track", + "trackLyricsNotAvailable": "このトラックの歌詞は利用できません", "@trackLyricsNotAvailable": { "description": "Message when lyrics not found" }, - "trackLyricsTimeout": "Request timed out. Try again later.", + "trackLyricsTimeout": "リクエストがタイムアウトしました。後ほどお試しください。", "@trackLyricsTimeout": { "description": "Message when lyrics request times out" }, - "trackLyricsLoadFailed": "Failed to load lyrics", + "trackLyricsLoadFailed": "歌詞の読み込みに失敗しました", "@trackLyricsLoadFailed": { "description": "Message when lyrics loading fails" }, - "trackCopiedToClipboard": "Copied to clipboard", + "trackEmbedLyrics": "Embed Lyrics", + "@trackEmbedLyrics": { + "description": "Action - embed lyrics into audio file" + }, + "trackLyricsEmbedded": "Lyrics embedded successfully", + "@trackLyricsEmbedded": { + "description": "Snackbar - lyrics saved to file" + }, + "trackInstrumental": "Instrumental track", + "@trackInstrumental": { + "description": "Message when track is instrumental (no lyrics)" + }, + "trackCopiedToClipboard": "クリップボードにコピーしました", "@trackCopiedToClipboard": { "description": "Snackbar - content copied" }, - "trackDeleteConfirmTitle": "Remove from device?", + "trackDeleteConfirmTitle": "デバイスから削除しますか?", "@trackDeleteConfirmTitle": { "description": "Delete confirmation title" }, @@ -2029,7 +2126,7 @@ "@trackDeleteConfirmMessage": { "description": "Delete confirmation message" }, - "trackCannotOpen": "Cannot open: {message}", + "trackCannotOpen": "開けません: {message}", "@trackCannotOpen": { "description": "Error opening file", "placeholders": { @@ -2038,15 +2135,15 @@ } } }, - "dateToday": "Today", + "dateToday": "今日", "@dateToday": { "description": "Relative date - today" }, - "dateYesterday": "Yesterday", + "dateYesterday": "昨日", "@dateYesterday": { "description": "Relative date - yesterday" }, - "dateDaysAgo": "{count} days ago", + "dateDaysAgo": "{count} 日前", "@dateDaysAgo": { "description": "Relative date - days ago", "placeholders": { @@ -2055,7 +2152,7 @@ } } }, - "dateWeeksAgo": "{count} weeks ago", + "dateWeeksAgo": "{count} 週間前", "@dateWeeksAgo": { "description": "Relative date - weeks ago", "placeholders": { @@ -2064,7 +2161,7 @@ } } }, - "dateMonthsAgo": "{count} months ago", + "dateMonthsAgo": "{count} ヶ月前", "@dateMonthsAgo": { "description": "Relative date - months ago", "placeholders": { @@ -2077,59 +2174,59 @@ "@concurrentSequential": { "description": "Download mode - one at a time" }, - "concurrentParallel2": "2 Parallel", + "concurrentParallel2": "2 並列", "@concurrentParallel2": { "description": "Download mode - 2 simultaneous" }, - "concurrentParallel3": "3 Parallel", + "concurrentParallel3": "3 並列", "@concurrentParallel3": { "description": "Download mode - 3 simultaneous" }, - "tapToSeeError": "Tap to see error details", + "tapToSeeError": "タップでエラーの詳細を表示", "@tapToSeeError": { "description": "Tooltip for failed download" }, - "storeFilterAll": "All", + "storeFilterAll": "すべて", "@storeFilterAll": { "description": "Store filter - all extensions" }, - "storeFilterMetadata": "Metadata", + "storeFilterMetadata": "メタデータ", "@storeFilterMetadata": { "description": "Store filter - metadata providers" }, - "storeFilterDownload": "Download", + "storeFilterDownload": "ダウンロード", "@storeFilterDownload": { "description": "Store filter - download providers" }, - "storeFilterUtility": "Utility", + "storeFilterUtility": "ユーティリティ", "@storeFilterUtility": { "description": "Store filter - utility extensions" }, - "storeFilterLyrics": "Lyrics", + "storeFilterLyrics": "歌詞", "@storeFilterLyrics": { "description": "Store filter - lyrics providers" }, - "storeFilterIntegration": "Integration", + "storeFilterIntegration": "統合", "@storeFilterIntegration": { "description": "Store filter - integrations" }, - "storeClearFilters": "Clear filters", + "storeClearFilters": "フィルターを消去", "@storeClearFilters": { "description": "Button to clear all filters" }, - "storeNoResults": "No extensions found", + "storeNoResults": "拡張がありません", "@storeNoResults": { "description": "Empty state when no extensions match filters" }, - "extensionProviderPriority": "Provider Priority", + "extensionProviderPriority": "プロバイダーの優先度", "@extensionProviderPriority": { "description": "Extension capability - provider priority" }, - "extensionInstallButton": "Install Extension", + "extensionInstallButton": "拡張をインストール", "@extensionInstallButton": { "description": "Button to install extension" }, - "extensionDefaultProvider": "Default (Deezer/Spotify)", + "extensionDefaultProvider": "デフォルト (Deezer/Spotify)", "@extensionDefaultProvider": { "description": "Default search provider option" }, @@ -2149,39 +2246,39 @@ "@extensionError": { "description": "Extension detail - error message" }, - "extensionCapabilities": "Capabilities", + "extensionCapabilities": "機能", "@extensionCapabilities": { "description": "Section header - extension features" }, - "extensionMetadataProvider": "Metadata Provider", + "extensionMetadataProvider": "メタデータのプロバイダー", "@extensionMetadataProvider": { "description": "Capability - provides metadata" }, - "extensionDownloadProvider": "Download Provider", + "extensionDownloadProvider": "ダウンロードのプロバイダー", "@extensionDownloadProvider": { "description": "Capability - provides downloads" }, - "extensionLyricsProvider": "Lyrics Provider", + "extensionLyricsProvider": "歌詞のプロバイダー", "@extensionLyricsProvider": { "description": "Capability - provides lyrics" }, - "extensionUrlHandler": "URL Handler", + "extensionUrlHandler": "URL ハンドラ", "@extensionUrlHandler": { "description": "Capability - handles URLs" }, - "extensionQualityOptions": "Quality Options", + "extensionQualityOptions": "品質のオプション", "@extensionQualityOptions": { "description": "Capability - quality selection" }, - "extensionPostProcessingHooks": "Post-Processing Hooks", + "extensionPostProcessingHooks": "ポストプロセスフック", "@extensionPostProcessingHooks": { "description": "Capability - post-processing" }, - "extensionPermissions": "Permissions", + "extensionPermissions": "権限", "@extensionPermissions": { "description": "Section header - required permissions" }, - "extensionSettings": "Settings", + "extensionSettings": "設定", "@extensionSettings": { "description": "Section header - extension settings" }, @@ -2201,11 +2298,11 @@ "@extensionCustomTrackMatching": { "description": "Capability - custom track matching algorithm" }, - "extensionPostProcessing": "Post-Processing", + "extensionPostProcessing": "ポストプロセス", "@extensionPostProcessing": { "description": "Capability - post-download processing" }, - "extensionHooksAvailable": "{count} hook(s) available", + "extensionHooksAvailable": "{count} 個のフックが利用可能です", "@extensionHooksAvailable": { "description": "Post-processing hooks count", "placeholders": { @@ -2214,7 +2311,7 @@ } } }, - "extensionPatternsCount": "{count} pattern(s)", + "extensionPatternsCount": "{count} 個のパターン", "@extensionPatternsCount": { "description": "URL patterns count", "placeholders": { @@ -2223,7 +2320,7 @@ } } }, - "extensionStrategy": "Strategy: {strategy}", + "extensionStrategy": "ストラテジー: {strategy}", "@extensionStrategy": { "description": "Track matching strategy name", "placeholders": { @@ -2232,7 +2329,7 @@ } } }, - "extensionsProviderPrioritySection": "Provider Priority", + "extensionsProviderPrioritySection": "プロバイダーの優先度", "@extensionsProviderPrioritySection": { "description": "Section header - provider priority" }, @@ -2244,7 +2341,7 @@ "@extensionsNoExtensions": { "description": "Empty state - no extensions" }, - "extensionsNoExtensionsSubtitle": "Install .spotiflac-ext files to add new providers", + "extensionsNoExtensionsSubtitle": "新しいプロバイダーを追加するには .spotiflac-ext ファイルをインストールします", "@extensionsNoExtensionsSubtitle": { "description": "Empty state subtitle" }, @@ -2252,55 +2349,55 @@ "@extensionsInstallButton": { "description": "Button to install extension from file" }, - "extensionsInfoTip": "Extensions can add new metadata and download providers. Only install extensions from trusted sources.", + "extensionsInfoTip": "拡張は新しいメタデータとダウンロードプロバイダーを追加することがあります。信頼できるソースからの拡張のみをインストールしてください。", "@extensionsInfoTip": { "description": "Security warning about extensions" }, - "extensionsInstalledSuccess": "Extension installed successfully", + "extensionsInstalledSuccess": "拡張のインストールが成功しました", "@extensionsInstalledSuccess": { "description": "Success message after install" }, - "extensionsDownloadPriority": "Download Priority", + "extensionsDownloadPriority": "ダウンロードの優先度", "@extensionsDownloadPriority": { "description": "Setting - download provider order" }, - "extensionsDownloadPrioritySubtitle": "Set download service order", + "extensionsDownloadPrioritySubtitle": "ダウンロードサービスの順序を設定", "@extensionsDownloadPrioritySubtitle": { "description": "Subtitle for download priority" }, - "extensionsNoDownloadProvider": "No extensions with download provider", + "extensionsNoDownloadProvider": "ダウンロードプロバイダーの拡張はありません", "@extensionsNoDownloadProvider": { "description": "Empty state - no download providers" }, - "extensionsMetadataPriority": "Metadata Priority", + "extensionsMetadataPriority": "メタデータの優先度", "@extensionsMetadataPriority": { "description": "Setting - metadata provider order" }, - "extensionsMetadataPrioritySubtitle": "Set search & metadata source order", + "extensionsMetadataPrioritySubtitle": "検索とメタデータソースの順序を設定", "@extensionsMetadataPrioritySubtitle": { "description": "Subtitle for metadata priority" }, - "extensionsNoMetadataProvider": "No extensions with metadata provider", + "extensionsNoMetadataProvider": "メタデータプロバイダーの拡張はありません", "@extensionsNoMetadataProvider": { "description": "Empty state - no metadata providers" }, - "extensionsSearchProvider": "Search Provider", + "extensionsSearchProvider": "検索のプロバイダー", "@extensionsSearchProvider": { "description": "Setting - search provider selection" }, - "extensionsNoCustomSearch": "No extensions with custom search", + "extensionsNoCustomSearch": "カスタム検索の拡張はありません", "@extensionsNoCustomSearch": { "description": "Empty state - no search providers" }, - "extensionsSearchProviderDescription": "Choose which service to use for searching tracks", + "extensionsSearchProviderDescription": "トラックの検索に使用するサービスを選択してください", "@extensionsSearchProviderDescription": { "description": "Search provider setting description" }, - "extensionsCustomSearch": "Custom search", + "extensionsCustomSearch": "カスタム検索", "@extensionsCustomSearch": { "description": "Label for custom search provider" }, - "extensionsErrorLoading": "Error loading extension", + "extensionsErrorLoading": "拡張の読み込みエラー", "@extensionsErrorLoading": { "description": "Error message when extension fails to load" }, @@ -2328,11 +2425,31 @@ "@qualityHiResFlacMaxSubtitle": { "description": "Technical spec for hi-res max" }, - "qualityNote": "Actual quality depends on track availability from the service", + "qualityMp3": "MP3", + "@qualityMp3": { + "description": "Quality option - MP3 lossy format" + }, + "qualityMp3Subtitle": "320kbps (FLAC から変換)", + "@qualityMp3Subtitle": { + "description": "Technical spec for MP3" + }, + "enableMp3Option": "MP3 オプションを有効", + "@enableMp3Option": { + "description": "Setting - enable MP3 quality option" + }, + "enableMp3OptionSubtitleOn": "MP3 品質オプションが利用可能です", + "@enableMp3OptionSubtitleOn": { + "description": "Subtitle when MP3 is enabled" + }, + "enableMp3OptionSubtitleOff": "FLAC をダウンロードして 320kbps の MP3 に変換します", + "@enableMp3OptionSubtitleOff": { + "description": "Subtitle when MP3 is disabled" + }, + "qualityNote": "実際の品質はサービスからのトラックの可用性に依存します", "@qualityNote": { "description": "Note about quality availability" }, - "downloadAskBeforeDownload": "Ask Before Download", + "downloadAskBeforeDownload": "ダウンロード前に確認する", "@downloadAskBeforeDownload": { "description": "Setting - show quality picker" }, @@ -2344,63 +2461,63 @@ "@downloadSeparateSinglesFolder": { "description": "Setting - separate folder for singles" }, - "downloadAlbumFolderStructure": "Album Folder Structure", + "downloadAlbumFolderStructure": "アルバムフォルダの構造", "@downloadAlbumFolderStructure": { "description": "Setting - album folder organization" }, - "downloadSaveFormat": "Save Format", + "downloadSaveFormat": "形式を保存", "@downloadSaveFormat": { "description": "Setting - output file format" }, - "downloadSelectService": "Select Service", + "downloadSelectService": "サービスを選択", "@downloadSelectService": { "description": "Dialog title - choose download service" }, - "downloadSelectQuality": "Select Quality", + "downloadSelectQuality": "品質を選択", "@downloadSelectQuality": { "description": "Dialog title - choose audio quality" }, - "downloadFrom": "Download From", + "downloadFrom": "ダウンロード元", "@downloadFrom": { "description": "Label - download source" }, - "downloadDefaultQualityLabel": "Default Quality", + "downloadDefaultQualityLabel": "デフォルトの品質", "@downloadDefaultQualityLabel": { "description": "Label - default quality setting" }, - "downloadBestAvailable": "Best available", + "downloadBestAvailable": "おすすめ", "@downloadBestAvailable": { "description": "Quality option - highest available" }, - "folderNone": "None", + "folderNone": "なし", "@folderNone": { "description": "Folder option - no organization" }, - "folderNoneSubtitle": "Save all files directly to download folder", + "folderNoneSubtitle": "すべてのファイルをダウンロードフォルダに保存します", "@folderNoneSubtitle": { "description": "Subtitle for no folder organization" }, - "folderArtist": "Artist", + "folderArtist": "アーティスト", "@folderArtist": { "description": "Folder option - by artist" }, - "folderArtistSubtitle": "Artist Name/filename", + "folderArtistSubtitle": "アーティスト名/ファイル名", "@folderArtistSubtitle": { "description": "Folder structure example" }, - "folderAlbum": "Album", + "folderAlbum": "アルバム", "@folderAlbum": { "description": "Folder option - by album" }, - "folderAlbumSubtitle": "Album Name/filename", + "folderAlbumSubtitle": "アルバム名/ファイル名", "@folderAlbumSubtitle": { "description": "Folder structure example" }, - "folderArtistAlbum": "Artist/Album", + "folderArtistAlbum": "アーティスト/アルバム", "@folderArtistAlbum": { "description": "Folder option - nested" }, - "folderArtistAlbumSubtitle": "Artist Name/Album Name/filename", + "folderArtistAlbumSubtitle": "アーティスト名/アルバム名/ファイル名", "@folderArtistAlbumSubtitle": { "description": "Folder structure example" }, @@ -2432,7 +2549,7 @@ "@appearanceAmoledDarkSubtitle": { "description": "Subtitle for AMOLED dark" }, - "appearanceChooseAccentColor": "Choose Accent Color", + "appearanceChooseAccentColor": "アクセントカラーを選択", "@appearanceChooseAccentColor": { "description": "Color picker dialog title" }, @@ -2448,75 +2565,83 @@ "@queueClearAll": { "description": "Button - clear all queue items" }, - "queueClearAllMessage": "Are you sure you want to clear all downloads?", + "queueClearAllMessage": "すべてのダウンロードを消去してもよろしいですか?", "@queueClearAllMessage": { "description": "Clear queue confirmation" }, - "queueEmpty": "No downloads in queue", + "queueEmpty": "キューにダウンロードがありません", "@queueEmpty": { "description": "Empty queue state title" }, - "queueEmptySubtitle": "Add tracks from the home screen", + "queueEmptySubtitle": "ホーム画面からトラックを追加", "@queueEmptySubtitle": { "description": "Empty queue state subtitle" }, - "queueClearCompleted": "Clear completed", + "queueClearCompleted": "完了済みを消去", "@queueClearCompleted": { "description": "Button - clear finished downloads" }, - "queueDownloadFailed": "Download Failed", + "queueDownloadFailed": "ダウンロードに失敗しました", "@queueDownloadFailed": { "description": "Error dialog title" }, - "queueTrackLabel": "Track:", + "queueTrackLabel": "トラック:", "@queueTrackLabel": { "description": "Label in error dialog" }, - "queueArtistLabel": "Artist:", + "queueArtistLabel": "アーティスト:", "@queueArtistLabel": { "description": "Label in error dialog" }, - "queueErrorLabel": "Error:", + "queueErrorLabel": "エラー:", "@queueErrorLabel": { "description": "Label in error dialog" }, - "queueUnknownError": "Unknown error", + "queueUnknownError": "不明なエラー", "@queueUnknownError": { "description": "Fallback error message" }, - "albumFolderArtistAlbum": "Artist / Album", + "albumFolderArtistAlbum": "アーティスト / アルバム", "@albumFolderArtistAlbum": { "description": "Album folder option" }, - "albumFolderArtistAlbumSubtitle": "Albums/Artist Name/Album Name/", + "albumFolderArtistAlbumSubtitle": "アルバム/アーティスト名/アルバム名/", "@albumFolderArtistAlbumSubtitle": { "description": "Folder structure example" }, - "albumFolderArtistYearAlbum": "Artist / [Year] Album", + "albumFolderArtistYearAlbum": "アーティスト / [年] アルバム", "@albumFolderArtistYearAlbum": { "description": "Album folder option with year" }, - "albumFolderArtistYearAlbumSubtitle": "Albums/Artist Name/[2005] Album Name/", + "albumFolderArtistYearAlbumSubtitle": "アルバム/アーティスト名/[2005] アルバム名/", "@albumFolderArtistYearAlbumSubtitle": { "description": "Folder structure example" }, - "albumFolderAlbumOnly": "Album Only", + "albumFolderAlbumOnly": "アルバムのみ", "@albumFolderAlbumOnly": { "description": "Album folder option" }, - "albumFolderAlbumOnlySubtitle": "Albums/Album Name/", + "albumFolderAlbumOnlySubtitle": "アルバム/アルバム名/", "@albumFolderAlbumOnlySubtitle": { "description": "Folder structure example" }, - "albumFolderYearAlbum": "[Year] Album", + "albumFolderYearAlbum": "[年] アルバム", "@albumFolderYearAlbum": { "description": "Album folder option with year" }, - "albumFolderYearAlbumSubtitle": "Albums/[2005] Album Name/", + "albumFolderYearAlbumSubtitle": "アルバム/[2005] アルバム名/", "@albumFolderYearAlbumSubtitle": { "description": "Folder structure example" }, - "downloadedAlbumDeleteSelected": "Delete Selected", + "albumFolderArtistAlbumSingles": "Artist / Album + Singles", + "@albumFolderArtistAlbumSingles": { + "description": "Album folder option with singles inside artist" + }, + "albumFolderArtistAlbumSinglesSubtitle": "Artist/Album/ and Artist/Singles/", + "@albumFolderArtistAlbumSinglesSubtitle": { + "description": "Folder structure example" + }, + "downloadedAlbumDeleteSelected": "選択済みを削除", "@downloadedAlbumDeleteSelected": { "description": "Button - delete selected tracks" }, @@ -2529,11 +2654,11 @@ } } }, - "downloadedAlbumTracksHeader": "Tracks", + "downloadedAlbumTracksHeader": "トラック", "@downloadedAlbumTracksHeader": { "description": "Section header for tracks" }, - "downloadedAlbumDownloadedCount": "{count} downloaded", + "downloadedAlbumDownloadedCount": "{count} 個をダウンロード済み", "@downloadedAlbumDownloadedCount": { "description": "Downloaded tracks count badge", "placeholders": { @@ -2542,7 +2667,7 @@ } } }, - "downloadedAlbumSelectedCount": "{count} selected", + "downloadedAlbumSelectedCount": "{count} 個を選択済み", "@downloadedAlbumSelectedCount": { "description": "Selection count indicator", "placeholders": { @@ -2551,15 +2676,15 @@ } } }, - "downloadedAlbumAllSelected": "All tracks selected", + "downloadedAlbumAllSelected": "すべてのトラックを選択済み", "@downloadedAlbumAllSelected": { "description": "Status - all items selected" }, - "downloadedAlbumTapToSelect": "Tap tracks to select", + "downloadedAlbumTapToSelect": "トラックをタップで選択", "@downloadedAlbumTapToSelect": { "description": "Selection hint" }, - "downloadedAlbumDeleteCount": "Delete {count} {count, plural, =1{track} other{tracks}}", + "downloadedAlbumDeleteCount": "{count} {count, plural, =1{個のトラック} other{個のトラック}}を削除", "@downloadedAlbumDeleteCount": { "description": "Delete button text with count", "placeholders": { @@ -2568,31 +2693,41 @@ } } }, - "downloadedAlbumSelectToDelete": "Select tracks to delete", + "downloadedAlbumSelectToDelete": "トラックを選択で削除", "@downloadedAlbumSelectToDelete": { "description": "Placeholder when nothing selected" }, - "utilityFunctions": "Utility Functions", + "downloadedAlbumDiscHeader": "ディスク {discNumber}", + "@downloadedAlbumDiscHeader": { + "description": "Header for disc separator in multi-disc albums", + "placeholders": { + "discNumber": { + "type": "int", + "example": "1" + } + } + }, + "utilityFunctions": "ユーティリティ機能", "@utilityFunctions": { "description": "Extension capability - utility functions" }, - "recentTypeArtist": "Artist", + "recentTypeArtist": "アーティスト", "@recentTypeArtist": { "description": "Recent access item type - artist" }, - "recentTypeAlbum": "Album", + "recentTypeAlbum": "アルバム", "@recentTypeAlbum": { "description": "Recent access item type - album" }, - "recentTypeSong": "Song", + "recentTypeSong": "曲", "@recentTypeSong": { "description": "Recent access item type - song/track" }, - "recentTypePlaylist": "Playlist", + "recentTypePlaylist": "プレイリスト", "@recentTypePlaylist": { "description": "Recent access item type - playlist" }, - "recentPlaylistInfo": "Playlist: {name}", + "recentPlaylistInfo": "プレイリスト: {name}", "@recentPlaylistInfo": { "description": "Snackbar message when tapping playlist in recent access", "placeholders": { @@ -2602,7 +2737,7 @@ } } }, - "errorGeneric": "Error: {message}", + "errorGeneric": "エラー: {message}", "@errorGeneric": { "description": "Generic error message format", "placeholders": { @@ -2611,5 +2746,123 @@ "description": "Error message" } } + }, + "discographyDownload": "ディスコグラフィをダウンロード", + "@discographyDownload": { + "description": "Button - download artist discography" + }, + "discographyDownloadAll": "すべてダウンロード", + "@discographyDownloadAll": { + "description": "Option - download entire discography" + }, + "discographyDownloadAllSubtitle": "{albumCount} 個のリリースから {count} 個のトラック", + "@discographyDownloadAllSubtitle": { + "description": "Subtitle showing total tracks and albums", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographyAlbumsOnly": "アルバムのみ", + "@discographyAlbumsOnly": { + "description": "Option - download only albums" + }, + "discographyAlbumsOnlySubtitle": "{count} tracks from {albumCount} albums", + "@discographyAlbumsOnlySubtitle": { + "description": "Subtitle showing album tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySinglesOnly": "シングルと EP のみ", + "@discographySinglesOnly": { + "description": "Option - download only singles" + }, + "discographySinglesOnlySubtitle": "{count} tracks from {albumCount} singles", + "@discographySinglesOnlySubtitle": { + "description": "Subtitle showing singles tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySelectAlbums": "アルバムを選択...", + "@discographySelectAlbums": { + "description": "Option - manually select albums to download" + }, + "discographySelectAlbumsSubtitle": "Choose specific albums or singles", + "@discographySelectAlbumsSubtitle": { + "description": "Subtitle for select albums option" + }, + "discographyFetchingTracks": "トラックを取得中です...", + "@discographyFetchingTracks": { + "description": "Progress - fetching album tracks" + }, + "discographyFetchingAlbum": "Fetching {current} of {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": "Added {count} tracks to queue", + "@discographyAddedToQueue": { + "description": "Snackbar - tracks added from discography", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographySkippedDownloaded": "{added} added, {skipped} already downloaded", + "@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" } } \ No newline at end of file diff --git a/lib/l10n/arb/app_ko.arb b/lib/l10n/arb/app_ko.arb index 92bee94b..e475a220 100644 --- a/lib/l10n/arb/app_ko.arb +++ b/lib/l10n/arb/app_ko.arb @@ -127,6 +127,10 @@ "@historyNoSinglesSubtitle": { "description": "Empty state subtitle for singles filter" }, + "historySearchHint": "Search history...", + "@historySearchHint": { + "description": "Search bar placeholder in history" + }, "settingsTitle": "Settings", "@settingsTitle": { "description": "Settings screen title" @@ -512,6 +516,10 @@ "@aboutLogoArtist": { "description": "Role description for logo artist" }, + "aboutTranslators": "Translators", + "@aboutTranslators": { + "description": "Section for translators" + }, "aboutSpecialThanks": "Special Thanks", "@aboutSpecialThanks": { "description": "Section for special thanks" @@ -544,6 +552,26 @@ "@aboutFeatureRequestSubtitle": { "description": "Subtitle for feature request" }, + "aboutTelegramChannel": "Telegram Channel", + "@aboutTelegramChannel": { + "description": "Link to Telegram channel" + }, + "aboutTelegramChannelSubtitle": "Announcements and updates", + "@aboutTelegramChannelSubtitle": { + "description": "Subtitle for Telegram channel" + }, + "aboutTelegramChat": "Telegram Community", + "@aboutTelegramChat": { + "description": "Link to Telegram chat group" + }, + "aboutTelegramChatSubtitle": "Chat with other users", + "@aboutTelegramChatSubtitle": { + "description": "Subtitle for Telegram chat" + }, + "aboutSocial": "Social", + "@aboutSocial": { + "description": "Section for social links" + }, "aboutSupport": "Support", "@aboutSupport": { "description": "Section for support/donation links" @@ -1122,6 +1150,15 @@ "description": "Dialog title - import CSV playlist" }, "dialogImportPlaylistMessage": "Found {count} tracks in CSV. Add them to download queue?", + "csvImportTracks": "{count} tracks from CSV", + "@csvImportTracks": { + "description": "Label shown in quality picker for CSV import", + "placeholders": { + "count": { + "type": "int" + } + } + }, "@dialogImportPlaylistMessage": { "description": "Dialog message - import playlist confirmation", "placeholders": { @@ -1851,6 +1888,42 @@ "@sectionFileSettings": { "description": "Settings section header" }, + "sectionLyrics": "Lyrics", + "@sectionLyrics": { + "description": "Settings section header" + }, + "lyricsMode": "Lyrics Mode", + "@lyricsMode": { + "description": "Setting - how to save lyrics" + }, + "lyricsModeDescription": "Choose how lyrics are saved with your downloads", + "@lyricsModeDescription": { + "description": "Lyrics mode picker description" + }, + "lyricsModeEmbed": "Embed in file", + "@lyricsModeEmbed": { + "description": "Lyrics mode option - embed in audio file" + }, + "lyricsModeEmbedSubtitle": "Lyrics stored inside FLAC metadata", + "@lyricsModeEmbedSubtitle": { + "description": "Subtitle for embed option" + }, + "lyricsModeExternal": "External .lrc file", + "@lyricsModeExternal": { + "description": "Lyrics mode option - separate LRC file" + }, + "lyricsModeExternalSubtitle": "Separate .lrc file for players like Samsung Music", + "@lyricsModeExternalSubtitle": { + "description": "Subtitle for external option" + }, + "lyricsModeBoth": "Both", + "@lyricsModeBoth": { + "description": "Lyrics mode option - embed and external" + }, + "lyricsModeBothSubtitle": "Embed and save .lrc file", + "@lyricsModeBothSubtitle": { + "description": "Subtitle for both option" + }, "sectionColor": "Color", "@sectionColor": { "description": "Settings section header" @@ -1997,6 +2070,18 @@ "@trackReleaseDate": { "description": "Metadata label - release date" }, + "trackGenre": "Genre", + "@trackGenre": { + "description": "Metadata label - music genre" + }, + "trackLabel": "Label", + "@trackLabel": { + "description": "Metadata label - record label" + }, + "trackCopyright": "Copyright", + "@trackCopyright": { + "description": "Metadata label - copyright information" + }, "trackDownloaded": "Downloaded", "@trackDownloaded": { "description": "Metadata label - download date" @@ -2017,6 +2102,18 @@ "@trackLyricsLoadFailed": { "description": "Message when lyrics loading fails" }, + "trackEmbedLyrics": "Embed Lyrics", + "@trackEmbedLyrics": { + "description": "Action - embed lyrics into audio file" + }, + "trackLyricsEmbedded": "Lyrics embedded successfully", + "@trackLyricsEmbedded": { + "description": "Snackbar - lyrics saved to file" + }, + "trackInstrumental": "Instrumental track", + "@trackInstrumental": { + "description": "Message when track is instrumental (no lyrics)" + }, "trackCopiedToClipboard": "Copied to clipboard", "@trackCopiedToClipboard": { "description": "Snackbar - content copied" @@ -2328,6 +2425,26 @@ "@qualityHiResFlacMaxSubtitle": { "description": "Technical spec for hi-res max" }, + "qualityMp3": "MP3", + "@qualityMp3": { + "description": "Quality option - MP3 lossy format" + }, + "qualityMp3Subtitle": "320kbps (converted from FLAC)", + "@qualityMp3Subtitle": { + "description": "Technical spec for MP3" + }, + "enableMp3Option": "Enable MP3 Option", + "@enableMp3Option": { + "description": "Setting - enable MP3 quality option" + }, + "enableMp3OptionSubtitleOn": "MP3 quality option is available", + "@enableMp3OptionSubtitleOn": { + "description": "Subtitle when MP3 is enabled" + }, + "enableMp3OptionSubtitleOff": "Downloads FLAC then converts to 320kbps MP3", + "@enableMp3OptionSubtitleOff": { + "description": "Subtitle when MP3 is disabled" + }, "qualityNote": "Actual quality depends on track availability from the service", "@qualityNote": { "description": "Note about quality availability" @@ -2516,6 +2633,14 @@ "@albumFolderYearAlbumSubtitle": { "description": "Folder structure example" }, + "albumFolderArtistAlbumSingles": "Artist / Album + Singles", + "@albumFolderArtistAlbumSingles": { + "description": "Album folder option with singles inside artist" + }, + "albumFolderArtistAlbumSinglesSubtitle": "Artist/Album/ and Artist/Singles/", + "@albumFolderArtistAlbumSinglesSubtitle": { + "description": "Folder structure example" + }, "downloadedAlbumDeleteSelected": "Delete Selected", "@downloadedAlbumDeleteSelected": { "description": "Button - delete selected tracks" @@ -2572,6 +2697,16 @@ "@downloadedAlbumSelectToDelete": { "description": "Placeholder when nothing selected" }, + "downloadedAlbumDiscHeader": "Disc {discNumber}", + "@downloadedAlbumDiscHeader": { + "description": "Header for disc separator in multi-disc albums", + "placeholders": { + "discNumber": { + "type": "int", + "example": "1" + } + } + }, "utilityFunctions": "Utility Functions", "@utilityFunctions": { "description": "Extension capability - utility functions" @@ -2611,5 +2746,123 @@ "description": "Error message" } } + }, + "discographyDownload": "Download Discography", + "@discographyDownload": { + "description": "Button - download artist discography" + }, + "discographyDownloadAll": "Download All", + "@discographyDownloadAll": { + "description": "Option - download entire discography" + }, + "discographyDownloadAllSubtitle": "{count} tracks from {albumCount} releases", + "@discographyDownloadAllSubtitle": { + "description": "Subtitle showing total tracks and albums", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographyAlbumsOnly": "Albums Only", + "@discographyAlbumsOnly": { + "description": "Option - download only albums" + }, + "discographyAlbumsOnlySubtitle": "{count} tracks from {albumCount} albums", + "@discographyAlbumsOnlySubtitle": { + "description": "Subtitle showing album tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySinglesOnly": "Singles & EPs Only", + "@discographySinglesOnly": { + "description": "Option - download only singles" + }, + "discographySinglesOnlySubtitle": "{count} tracks from {albumCount} singles", + "@discographySinglesOnlySubtitle": { + "description": "Subtitle showing singles tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySelectAlbums": "Select Albums...", + "@discographySelectAlbums": { + "description": "Option - manually select albums to download" + }, + "discographySelectAlbumsSubtitle": "Choose specific albums or singles", + "@discographySelectAlbumsSubtitle": { + "description": "Subtitle for select albums option" + }, + "discographyFetchingTracks": "Fetching tracks...", + "@discographyFetchingTracks": { + "description": "Progress - fetching album tracks" + }, + "discographyFetchingAlbum": "Fetching {current} of {total}...", + "@discographyFetchingAlbum": { + "description": "Progress - fetching specific album", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "discographySelectedCount": "{count} selected", + "@discographySelectedCount": { + "description": "Selection count badge", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographyDownloadSelected": "Download Selected", + "@discographyDownloadSelected": { + "description": "Button - download selected albums" + }, + "discographyAddedToQueue": "Added {count} tracks to queue", + "@discographyAddedToQueue": { + "description": "Snackbar - tracks added from discography", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographySkippedDownloaded": "{added} added, {skipped} already downloaded", + "@discographySkippedDownloaded": { + "description": "Snackbar - with skipped tracks count", + "placeholders": { + "added": { + "type": "int" + }, + "skipped": { + "type": "int" + } + } + }, + "discographyNoAlbums": "No albums available", + "@discographyNoAlbums": { + "description": "Error - no albums found for artist" + }, + "discographyFailedToFetch": "Failed to fetch some albums", + "@discographyFailedToFetch": { + "description": "Error - some albums failed to load" } } \ No newline at end of file diff --git a/lib/l10n/arb/app_nl.arb b/lib/l10n/arb/app_nl.arb index c762fd9f..3db0d42a 100644 --- a/lib/l10n/arb/app_nl.arb +++ b/lib/l10n/arb/app_nl.arb @@ -127,6 +127,10 @@ "@historyNoSinglesSubtitle": { "description": "Empty state subtitle for singles filter" }, + "historySearchHint": "Search history...", + "@historySearchHint": { + "description": "Search bar placeholder in history" + }, "settingsTitle": "Settings", "@settingsTitle": { "description": "Settings screen title" @@ -512,6 +516,10 @@ "@aboutLogoArtist": { "description": "Role description for logo artist" }, + "aboutTranslators": "Translators", + "@aboutTranslators": { + "description": "Section for translators" + }, "aboutSpecialThanks": "Special Thanks", "@aboutSpecialThanks": { "description": "Section for special thanks" @@ -544,6 +552,26 @@ "@aboutFeatureRequestSubtitle": { "description": "Subtitle for feature request" }, + "aboutTelegramChannel": "Telegram Channel", + "@aboutTelegramChannel": { + "description": "Link to Telegram channel" + }, + "aboutTelegramChannelSubtitle": "Announcements and updates", + "@aboutTelegramChannelSubtitle": { + "description": "Subtitle for Telegram channel" + }, + "aboutTelegramChat": "Telegram Community", + "@aboutTelegramChat": { + "description": "Link to Telegram chat group" + }, + "aboutTelegramChatSubtitle": "Chat with other users", + "@aboutTelegramChatSubtitle": { + "description": "Subtitle for Telegram chat" + }, + "aboutSocial": "Social", + "@aboutSocial": { + "description": "Section for social links" + }, "aboutSupport": "Support", "@aboutSupport": { "description": "Section for support/donation links" @@ -1122,6 +1150,15 @@ "description": "Dialog title - import CSV playlist" }, "dialogImportPlaylistMessage": "Found {count} tracks in CSV. Add them to download queue?", + "csvImportTracks": "{count} tracks from CSV", + "@csvImportTracks": { + "description": "Label shown in quality picker for CSV import", + "placeholders": { + "count": { + "type": "int" + } + } + }, "@dialogImportPlaylistMessage": { "description": "Dialog message - import playlist confirmation", "placeholders": { @@ -1851,6 +1888,42 @@ "@sectionFileSettings": { "description": "Settings section header" }, + "sectionLyrics": "Lyrics", + "@sectionLyrics": { + "description": "Settings section header" + }, + "lyricsMode": "Lyrics Mode", + "@lyricsMode": { + "description": "Setting - how to save lyrics" + }, + "lyricsModeDescription": "Choose how lyrics are saved with your downloads", + "@lyricsModeDescription": { + "description": "Lyrics mode picker description" + }, + "lyricsModeEmbed": "Embed in file", + "@lyricsModeEmbed": { + "description": "Lyrics mode option - embed in audio file" + }, + "lyricsModeEmbedSubtitle": "Lyrics stored inside FLAC metadata", + "@lyricsModeEmbedSubtitle": { + "description": "Subtitle for embed option" + }, + "lyricsModeExternal": "External .lrc file", + "@lyricsModeExternal": { + "description": "Lyrics mode option - separate LRC file" + }, + "lyricsModeExternalSubtitle": "Separate .lrc file for players like Samsung Music", + "@lyricsModeExternalSubtitle": { + "description": "Subtitle for external option" + }, + "lyricsModeBoth": "Both", + "@lyricsModeBoth": { + "description": "Lyrics mode option - embed and external" + }, + "lyricsModeBothSubtitle": "Embed and save .lrc file", + "@lyricsModeBothSubtitle": { + "description": "Subtitle for both option" + }, "sectionColor": "Color", "@sectionColor": { "description": "Settings section header" @@ -1997,6 +2070,18 @@ "@trackReleaseDate": { "description": "Metadata label - release date" }, + "trackGenre": "Genre", + "@trackGenre": { + "description": "Metadata label - music genre" + }, + "trackLabel": "Label", + "@trackLabel": { + "description": "Metadata label - record label" + }, + "trackCopyright": "Copyright", + "@trackCopyright": { + "description": "Metadata label - copyright information" + }, "trackDownloaded": "Downloaded", "@trackDownloaded": { "description": "Metadata label - download date" @@ -2017,6 +2102,18 @@ "@trackLyricsLoadFailed": { "description": "Message when lyrics loading fails" }, + "trackEmbedLyrics": "Embed Lyrics", + "@trackEmbedLyrics": { + "description": "Action - embed lyrics into audio file" + }, + "trackLyricsEmbedded": "Lyrics embedded successfully", + "@trackLyricsEmbedded": { + "description": "Snackbar - lyrics saved to file" + }, + "trackInstrumental": "Instrumental track", + "@trackInstrumental": { + "description": "Message when track is instrumental (no lyrics)" + }, "trackCopiedToClipboard": "Copied to clipboard", "@trackCopiedToClipboard": { "description": "Snackbar - content copied" @@ -2328,6 +2425,26 @@ "@qualityHiResFlacMaxSubtitle": { "description": "Technical spec for hi-res max" }, + "qualityMp3": "MP3", + "@qualityMp3": { + "description": "Quality option - MP3 lossy format" + }, + "qualityMp3Subtitle": "320kbps (converted from FLAC)", + "@qualityMp3Subtitle": { + "description": "Technical spec for MP3" + }, + "enableMp3Option": "Enable MP3 Option", + "@enableMp3Option": { + "description": "Setting - enable MP3 quality option" + }, + "enableMp3OptionSubtitleOn": "MP3 quality option is available", + "@enableMp3OptionSubtitleOn": { + "description": "Subtitle when MP3 is enabled" + }, + "enableMp3OptionSubtitleOff": "Downloads FLAC then converts to 320kbps MP3", + "@enableMp3OptionSubtitleOff": { + "description": "Subtitle when MP3 is disabled" + }, "qualityNote": "Actual quality depends on track availability from the service", "@qualityNote": { "description": "Note about quality availability" @@ -2516,6 +2633,14 @@ "@albumFolderYearAlbumSubtitle": { "description": "Folder structure example" }, + "albumFolderArtistAlbumSingles": "Artist / Album + Singles", + "@albumFolderArtistAlbumSingles": { + "description": "Album folder option with singles inside artist" + }, + "albumFolderArtistAlbumSinglesSubtitle": "Artist/Album/ and Artist/Singles/", + "@albumFolderArtistAlbumSinglesSubtitle": { + "description": "Folder structure example" + }, "downloadedAlbumDeleteSelected": "Delete Selected", "@downloadedAlbumDeleteSelected": { "description": "Button - delete selected tracks" @@ -2572,6 +2697,16 @@ "@downloadedAlbumSelectToDelete": { "description": "Placeholder when nothing selected" }, + "downloadedAlbumDiscHeader": "Disc {discNumber}", + "@downloadedAlbumDiscHeader": { + "description": "Header for disc separator in multi-disc albums", + "placeholders": { + "discNumber": { + "type": "int", + "example": "1" + } + } + }, "utilityFunctions": "Utility Functions", "@utilityFunctions": { "description": "Extension capability - utility functions" @@ -2611,5 +2746,123 @@ "description": "Error message" } } + }, + "discographyDownload": "Download Discography", + "@discographyDownload": { + "description": "Button - download artist discography" + }, + "discographyDownloadAll": "Download All", + "@discographyDownloadAll": { + "description": "Option - download entire discography" + }, + "discographyDownloadAllSubtitle": "{count} tracks from {albumCount} releases", + "@discographyDownloadAllSubtitle": { + "description": "Subtitle showing total tracks and albums", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographyAlbumsOnly": "Albums Only", + "@discographyAlbumsOnly": { + "description": "Option - download only albums" + }, + "discographyAlbumsOnlySubtitle": "{count} tracks from {albumCount} albums", + "@discographyAlbumsOnlySubtitle": { + "description": "Subtitle showing album tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySinglesOnly": "Singles & EPs Only", + "@discographySinglesOnly": { + "description": "Option - download only singles" + }, + "discographySinglesOnlySubtitle": "{count} tracks from {albumCount} singles", + "@discographySinglesOnlySubtitle": { + "description": "Subtitle showing singles tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySelectAlbums": "Select Albums...", + "@discographySelectAlbums": { + "description": "Option - manually select albums to download" + }, + "discographySelectAlbumsSubtitle": "Choose specific albums or singles", + "@discographySelectAlbumsSubtitle": { + "description": "Subtitle for select albums option" + }, + "discographyFetchingTracks": "Fetching tracks...", + "@discographyFetchingTracks": { + "description": "Progress - fetching album tracks" + }, + "discographyFetchingAlbum": "Fetching {current} of {total}...", + "@discographyFetchingAlbum": { + "description": "Progress - fetching specific album", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "discographySelectedCount": "{count} selected", + "@discographySelectedCount": { + "description": "Selection count badge", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographyDownloadSelected": "Download Selected", + "@discographyDownloadSelected": { + "description": "Button - download selected albums" + }, + "discographyAddedToQueue": "Added {count} tracks to queue", + "@discographyAddedToQueue": { + "description": "Snackbar - tracks added from discography", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographySkippedDownloaded": "{added} added, {skipped} already downloaded", + "@discographySkippedDownloaded": { + "description": "Snackbar - with skipped tracks count", + "placeholders": { + "added": { + "type": "int" + }, + "skipped": { + "type": "int" + } + } + }, + "discographyNoAlbums": "No albums available", + "@discographyNoAlbums": { + "description": "Error - no albums found for artist" + }, + "discographyFailedToFetch": "Failed to fetch some albums", + "@discographyFailedToFetch": { + "description": "Error - some albums failed to load" } } \ No newline at end of file diff --git a/lib/l10n/arb/app_pt-PT.arb b/lib/l10n/arb/app_pt-PT.arb new file mode 100644 index 00000000..7a7e70e4 --- /dev/null +++ b/lib/l10n/arb/app_pt-PT.arb @@ -0,0 +1,2868 @@ +{ + "@@locale": "pt-PT", + "@@last_modified": "2026-01-16", + "appName": "SpotiFLAC", + "@appName": { + "description": "App name - DO NOT TRANSLATE" + }, + "appDescription": "Baixe faixas do Spotify em qualidade sem perdas de Tidal, Qobuz e Amazon Music.", + "@appDescription": { + "description": "App description shown in about page" + }, + "navHome": "Início", + "@navHome": { + "description": "Bottom navigation - Home tab" + }, + "navHistory": "Histórico", + "@navHistory": { + "description": "Bottom navigation - History tab" + }, + "navSettings": "Configurações", + "@navSettings": { + "description": "Bottom navigation - Settings tab" + }, + "navStore": "Loja", + "@navStore": { + "description": "Bottom navigation - Extension store tab" + }, + "homeTitle": "Início", + "@homeTitle": { + "description": "Home screen title" + }, + "homeSearchHint": "Pesquise ou cole a URL do Spotify...", + "@homeSearchHint": { + "description": "Placeholder text in search box" + }, + "homeSearchHintExtension": "Pesquisar com {extensionName}...", + "@homeSearchHintExtension": { + "description": "Placeholder when extension search is active", + "placeholders": { + "extensionName": { + "type": "String", + "description": "Name of the active extension" + } + } + }, + "homeSubtitle": "Cole um link do Spotify ou procure por nome", + "@homeSubtitle": { + "description": "Subtitle shown below search box" + }, + "homeSupports": "Suporte: Faixas, Álbuns, Playlists, URLs de Artista", + "@homeSupports": { + "description": "Info text about supported URL types" + }, + "homeRecent": "Recentes", + "@homeRecent": { + "description": "Section header for recent searches" + }, + "historyTitle": "Histórico", + "@historyTitle": { + "description": "History screen title" + }, + "historyDownloading": "Baixando ({count})", + "@historyDownloading": { + "description": "Tab showing active downloads count", + "placeholders": { + "count": { + "type": "int", + "description": "Number of active downloads" + } + } + }, + "historyDownloaded": "Baixados", + "@historyDownloaded": { + "description": "Tab showing completed downloads" + }, + "historyFilterAll": "Tudo", + "@historyFilterAll": { + "description": "Filter chip - show all items" + }, + "historyFilterAlbums": "Álbuns", + "@historyFilterAlbums": { + "description": "Filter chip - show albums only" + }, + "historyFilterSingles": "Singles", + "@historyFilterSingles": { + "description": "Filter chip - show singles only" + }, + "historyTracksCount": "{count, plural, one {}=1{1 faixa} other{{count} faixas}}", + "@historyTracksCount": { + "description": "Track count with plural form", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "historyAlbumsCount": "{count, plural, one {}=1{1 álbum} other{{count} álbuns}}", + "@historyAlbumsCount": { + "description": "Album count with plural form", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "historyNoDownloads": "Nenhum histórico de downloads", + "@historyNoDownloads": { + "description": "Empty state title" + }, + "historyNoDownloadsSubtitle": "As faixas baixadas aparecerão aqui", + "@historyNoDownloadsSubtitle": { + "description": "Empty state subtitle" + }, + "historyNoAlbums": "Sem álbuns baixados", + "@historyNoAlbums": { + "description": "Empty state when filtering albums" + }, + "historyNoAlbumsSubtitle": "Baixe várias faixas de um álbum para vê-las aqui", + "@historyNoAlbumsSubtitle": { + "description": "Empty state subtitle for albums filter" + }, + "historyNoSingles": "Sem singles baixados", + "@historyNoSingles": { + "description": "Empty state when filtering singles" + }, + "historyNoSinglesSubtitle": "Os downloads de faixa individuais aparecerão aqui", + "@historyNoSinglesSubtitle": { + "description": "Empty state subtitle for singles filter" + }, + "historySearchHint": "Pesquisar histórico...", + "@historySearchHint": { + "description": "Search bar placeholder in history" + }, + "settingsTitle": "Configurações", + "@settingsTitle": { + "description": "Settings screen title" + }, + "settingsDownload": "Download", + "@settingsDownload": { + "description": "Settings section - download options" + }, + "settingsAppearance": "Aparência", + "@settingsAppearance": { + "description": "Settings section - visual customization" + }, + "settingsOptions": "Opções", + "@settingsOptions": { + "description": "Settings section - app options" + }, + "settingsExtensions": "Extensões", + "@settingsExtensions": { + "description": "Settings section - extension management" + }, + "settingsAbout": "Sobre", + "@settingsAbout": { + "description": "Settings section - app info" + }, + "downloadTitle": "Download", + "@downloadTitle": { + "description": "Download settings page title" + }, + "downloadLocation": "Local dos Downloads", + "@downloadLocation": { + "description": "Setting for download folder" + }, + "downloadLocationSubtitle": "Escolha onde salvar os arquivos", + "@downloadLocationSubtitle": { + "description": "Subtitle for download location" + }, + "downloadLocationDefault": "Local padrão", + "@downloadLocationDefault": { + "description": "Shown when using default folder" + }, + "downloadDefaultService": "Serviço Padrão", + "@downloadDefaultService": { + "description": "Setting for preferred download service (Tidal/Qobuz/Amazon)" + }, + "downloadDefaultServiceSubtitle": "Serviço usado para downloads", + "@downloadDefaultServiceSubtitle": { + "description": "Subtitle for default service" + }, + "downloadDefaultQuality": "Qualidade Predefinida", + "@downloadDefaultQuality": { + "description": "Setting for audio quality" + }, + "downloadAskQuality": "Perguntar qualidade antes de baixar", + "@downloadAskQuality": { + "description": "Toggle to show quality picker" + }, + "downloadAskQualitySubtitle": "Mostrar seletor de qualidade para cada download", + "@downloadAskQualitySubtitle": { + "description": "Subtitle for ask quality toggle" + }, + "downloadFilenameFormat": "Formato do Nome do Arquivo", + "@downloadFilenameFormat": { + "description": "Setting for output filename pattern" + }, + "downloadFolderOrganization": "Organização de Pastas", + "@downloadFolderOrganization": { + "description": "Setting for folder structure" + }, + "downloadSeparateSingles": "Separar Singles", + "@downloadSeparateSingles": { + "description": "Toggle to separate single tracks" + }, + "downloadSeparateSinglesSubtitle": "Colocar singles numa pasta separada", + "@downloadSeparateSinglesSubtitle": { + "description": "Subtitle for separate singles toggle" + }, + "qualityBest": "Melhor Disponível", + "@qualityBest": { + "description": "Audio quality option - highest available" + }, + "qualityFlac": "FLAC", + "@qualityFlac": { + "description": "Audio quality option - FLAC lossless" + }, + "quality320": "320 kbps", + "@quality320": { + "description": "Audio quality option - 320kbps MP3" + }, + "quality128": "128 kbps", + "@quality128": { + "description": "Audio quality option - 128kbps MP3" + }, + "appearanceTitle": "Aparência", + "@appearanceTitle": { + "description": "Appearance settings page title" + }, + "appearanceTheme": "Tema", + "@appearanceTheme": { + "description": "Theme mode setting" + }, + "appearanceThemeSystem": "Sistema", + "@appearanceThemeSystem": { + "description": "Follow system theme" + }, + "appearanceThemeLight": "Claro", + "@appearanceThemeLight": { + "description": "Light theme" + }, + "appearanceThemeDark": "Escuro", + "@appearanceThemeDark": { + "description": "Dark theme" + }, + "appearanceDynamicColor": "Cores Dinâmicas", + "@appearanceDynamicColor": { + "description": "Material You dynamic colors" + }, + "appearanceDynamicColorSubtitle": "Usar cores do seu papel de parede", + "@appearanceDynamicColorSubtitle": { + "description": "Subtitle for dynamic color" + }, + "appearanceAccentColor": "Cor de Destaque", + "@appearanceAccentColor": { + "description": "Custom accent color picker" + }, + "appearanceHistoryView": "Visualização do Histórico", + "@appearanceHistoryView": { + "description": "Layout style for history" + }, + "appearanceHistoryViewList": "Lista", + "@appearanceHistoryViewList": { + "description": "List layout option" + }, + "appearanceHistoryViewGrid": "Grade", + "@appearanceHistoryViewGrid": { + "description": "Grid layout option" + }, + "optionsTitle": "Opções", + "@optionsTitle": { + "description": "Options settings page title" + }, + "optionsSearchSource": "Origem da Pesquisa", + "@optionsSearchSource": { + "description": "Section for search provider settings" + }, + "optionsPrimaryProvider": "Provedor Primário", + "@optionsPrimaryProvider": { + "description": "Main search provider setting" + }, + "optionsPrimaryProviderSubtitle": "Serviço usado ao pesquisar por nome da faixa.", + "@optionsPrimaryProviderSubtitle": { + "description": "Subtitle for primary provider" + }, + "optionsUsingExtension": "Usando a extensão: {extensionName}", + "@optionsUsingExtension": { + "description": "Shows active extension name", + "placeholders": { + "extensionName": { + "type": "String" + } + } + }, + "optionsSwitchBack": "Toque no Deezer ou Spotify para alternar de volta da extensão", + "@optionsSwitchBack": { + "description": "Hint to switch back to built-in providers" + }, + "optionsAutoFallback": "Fallback Automático", + "@optionsAutoFallback": { + "description": "Auto-retry with other services" + }, + "optionsAutoFallbackSubtitle": "Tentar outros serviços se o download falhar", + "@optionsAutoFallbackSubtitle": { + "description": "Subtitle for auto fallback" + }, + "optionsUseExtensionProviders": "Usar Provedores de Extensão", + "@optionsUseExtensionProviders": { + "description": "Enable extension download providers" + }, + "optionsUseExtensionProvidersOn": "Extensões serão tentadas primeiro", + "@optionsUseExtensionProvidersOn": { + "description": "Status when extension providers enabled" + }, + "optionsUseExtensionProvidersOff": "Usando apenas provedores integrados", + "@optionsUseExtensionProvidersOff": { + "description": "Status when extension providers disabled" + }, + "optionsEmbedLyrics": "Incorporar Letras", + "@optionsEmbedLyrics": { + "description": "Embed lyrics in audio files" + }, + "optionsEmbedLyricsSubtitle": "Incorporar letras sincronizadas aos arquivos FLAC", + "@optionsEmbedLyricsSubtitle": { + "description": "Subtitle for embed lyrics" + }, + "optionsMaxQualityCover": "Capa de Qualidade Máxima", + "@optionsMaxQualityCover": { + "description": "Download highest quality album art" + }, + "optionsMaxQualityCoverSubtitle": "Baixar capa do álbum com a mais alta resolução", + "@optionsMaxQualityCoverSubtitle": { + "description": "Subtitle for max quality cover" + }, + "optionsConcurrentDownloads": "Downloads Simultâneos", + "@optionsConcurrentDownloads": { + "description": "Number of parallel downloads" + }, + "optionsConcurrentSequential": "Sequencial (1 por vez)", + "@optionsConcurrentSequential": { + "description": "Download one at a time" + }, + "optionsConcurrentParallel": "{count} downloads paralelos", + "@optionsConcurrentParallel": { + "description": "Multiple parallel downloads", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "optionsConcurrentWarning": "Downloads simultâneos podem causar um limite da taxa (ratelimit)", + "@optionsConcurrentWarning": { + "description": "Warning about rate limits" + }, + "optionsExtensionStore": "Loja de Extensões", + "@optionsExtensionStore": { + "description": "Show/hide store tab" + }, + "optionsExtensionStoreSubtitle": "Mostrar aba da Loja na navegação", + "@optionsExtensionStoreSubtitle": { + "description": "Subtitle for extension store toggle" + }, + "optionsCheckUpdates": "Procurar Atualizações", + "@optionsCheckUpdates": { + "description": "Auto update check toggle" + }, + "optionsCheckUpdatesSubtitle": "Notificar quando uma nova versão estiver disponível", + "@optionsCheckUpdatesSubtitle": { + "description": "Subtitle for update check" + }, + "optionsUpdateChannel": "Canal de Atualização", + "@optionsUpdateChannel": { + "description": "Stable vs preview releases" + }, + "optionsUpdateChannelStable": "Somente versões estáveis", + "@optionsUpdateChannelStable": { + "description": "Only stable updates" + }, + "optionsUpdateChannelPreview": "Obter versões de prévia", + "@optionsUpdateChannelPreview": { + "description": "Include beta/preview updates" + }, + "optionsUpdateChannelWarning": "A prévia pode conter erros ou recursos incompletos", + "@optionsUpdateChannelWarning": { + "description": "Warning about preview channel" + }, + "optionsClearHistory": "Limpar Histórico de Download", + "@optionsClearHistory": { + "description": "Delete all download history" + }, + "optionsClearHistorySubtitle": "Remover todas as faixas baixadas do histórico", + "@optionsClearHistorySubtitle": { + "description": "Subtitle for clear history" + }, + "optionsDetailedLogging": "Registro detalhado", + "@optionsDetailedLogging": { + "description": "Enable verbose logs for debugging" + }, + "optionsDetailedLoggingOn": "Registros detalhados estão sendo gravados", + "@optionsDetailedLoggingOn": { + "description": "Status when logging enabled" + }, + "optionsDetailedLoggingOff": "Habilitar para relatórios de erros", + "@optionsDetailedLoggingOff": { + "description": "Status when logging disabled" + }, + "optionsSpotifyCredentials": "Credenciais do Spotify", + "@optionsSpotifyCredentials": { + "description": "Spotify API credentials setting" + }, + "optionsSpotifyCredentialsConfigured": "Client ID: {clientId}...", + "@optionsSpotifyCredentialsConfigured": { + "description": "Shows configured client ID preview", + "placeholders": { + "clientId": { + "type": "String" + } + } + }, + "optionsSpotifyCredentialsRequired": "Obrigatório - toque para configurar", + "@optionsSpotifyCredentialsRequired": { + "description": "Prompt to set up credentials" + }, + "optionsSpotifyWarning": "O Spotify requer as suas próprias credenciais de API. Consiga gratuitamente em developer.spotify.com", + "@optionsSpotifyWarning": { + "description": "Info about Spotify API requirement" + }, + "extensionsTitle": "Extensões", + "@extensionsTitle": { + "description": "Extensions page title" + }, + "extensionsInstalled": "Extensões Instaladas", + "@extensionsInstalled": { + "description": "Section header for installed extensions" + }, + "extensionsNone": "Nenhuma extensão instalada", + "@extensionsNone": { + "description": "Empty state title" + }, + "extensionsNoneSubtitle": "Instalar extensões a partir da aba Loja", + "@extensionsNoneSubtitle": { + "description": "Empty state subtitle" + }, + "extensionsEnabled": "Habilitado", + "@extensionsEnabled": { + "description": "Extension status - active" + }, + "extensionsDisabled": "Desabilitado", + "@extensionsDisabled": { + "description": "Extension status - inactive" + }, + "extensionsVersion": "Versão {version}", + "@extensionsVersion": { + "description": "Extension version display", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "extensionsAuthor": "por {author}", + "@extensionsAuthor": { + "description": "Extension author credit", + "placeholders": { + "author": { + "type": "String" + } + } + }, + "extensionsUninstall": "Desinstalar", + "@extensionsUninstall": { + "description": "Uninstall extension button" + }, + "extensionsSetAsSearch": "Definir como Provedor de Pesquisa", + "@extensionsSetAsSearch": { + "description": "Use extension for search" + }, + "storeTitle": "Loja de Extensões", + "@storeTitle": { + "description": "Store screen title" + }, + "storeSearch": "Pesquisar extensões...", + "@storeSearch": { + "description": "Store search placeholder" + }, + "storeInstall": "Instalar", + "@storeInstall": { + "description": "Install extension button" + }, + "storeInstalled": "Instalado", + "@storeInstalled": { + "description": "Already installed badge" + }, + "storeUpdate": "Atualizar", + "@storeUpdate": { + "description": "Update available button" + }, + "aboutTitle": "Sobre", + "@aboutTitle": { + "description": "About page title" + }, + "aboutContributors": "Colaboradores", + "@aboutContributors": { + "description": "Section for contributors" + }, + "aboutMobileDeveloper": "Desenvolvedor da versão móvel", + "@aboutMobileDeveloper": { + "description": "Role description for mobile dev" + }, + "aboutOriginalCreator": "Criador do SpotiFLAC original", + "@aboutOriginalCreator": { + "description": "Role description for original creator" + }, + "aboutLogoArtist": "O artista talentoso que criou o nosso lindo logotipo do aplicativo!", + "@aboutLogoArtist": { + "description": "Role description for logo artist" + }, + "aboutTranslators": "Tradutores", + "@aboutTranslators": { + "description": "Section for translators" + }, + "aboutSpecialThanks": "Agradecimentos Especiais", + "@aboutSpecialThanks": { + "description": "Section for special thanks" + }, + "aboutLinks": "Links", + "@aboutLinks": { + "description": "Section for external links" + }, + "aboutMobileSource": "Código-fonte do app móvel", + "@aboutMobileSource": { + "description": "Link to mobile GitHub repo" + }, + "aboutPCSource": "Código-fonte do app desktop", + "@aboutPCSource": { + "description": "Link to PC GitHub repo" + }, + "aboutReportIssue": "Reportar um problema", + "@aboutReportIssue": { + "description": "Link to report bugs" + }, + "aboutReportIssueSubtitle": "Reporte qualquer problema que encontrar", + "@aboutReportIssueSubtitle": { + "description": "Subtitle for report issue" + }, + "aboutFeatureRequest": "Solicitação de recurso", + "@aboutFeatureRequest": { + "description": "Link to suggest features" + }, + "aboutFeatureRequestSubtitle": "Sugira novos recursos para o aplicativo", + "@aboutFeatureRequestSubtitle": { + "description": "Subtitle for feature request" + }, + "aboutTelegramChannel": "Canal do Telegram", + "@aboutTelegramChannel": { + "description": "Link to Telegram channel" + }, + "aboutTelegramChannelSubtitle": "Anúncios e atualizações", + "@aboutTelegramChannelSubtitle": { + "description": "Subtitle for Telegram channel" + }, + "aboutTelegramChat": "Comunidade do Telegram", + "@aboutTelegramChat": { + "description": "Link to Telegram chat group" + }, + "aboutTelegramChatSubtitle": "Converse com outros usuários", + "@aboutTelegramChatSubtitle": { + "description": "Subtitle for Telegram chat" + }, + "aboutSocial": "Social", + "@aboutSocial": { + "description": "Section for social links" + }, + "aboutSupport": "Apoiar", + "@aboutSupport": { + "description": "Section for support/donation links" + }, + "aboutBuyMeCoffee": "Compre-me um café", + "@aboutBuyMeCoffee": { + "description": "Donation link" + }, + "aboutBuyMeCoffeeSubtitle": "Apoie o desenvolvimento na Ko-fi", + "@aboutBuyMeCoffeeSubtitle": { + "description": "Subtitle for donation" + }, + "aboutApp": "Aplicativo", + "@aboutApp": { + "description": "Section for app info" + }, + "aboutVersion": "Versão", + "@aboutVersion": { + "description": "Version info label" + }, + "aboutBinimumDesc": "O criador da API QQDL e HiFi. Sem esta API, os downloads Tidal não existiriam!", + "@aboutBinimumDesc": { + "description": "Credit description for binimum" + }, + "aboutSachinsenalDesc": "O criador original do projeto HiFi. A base da integração do Tidal!", + "@aboutSachinsenalDesc": { + "description": "Credit description for sachinsenal0x64" + }, + "aboutDoubleDouble": "DoubleDouble", + "@aboutDoubleDouble": { + "description": "Name of Amazon API service - DO NOT TRANSLATE" + }, + "aboutDoubleDoubleDesc": "API incrível para downloads do Amazon Music. Obrigado por fazê-lo gratuitamente!", + "@aboutDoubleDoubleDesc": { + "description": "Credit for DoubleDouble API" + }, + "aboutDabMusic": "DAB Music", + "@aboutDabMusic": { + "description": "Name of Qobuz API service - DO NOT TRANSLATE" + }, + "aboutDabMusicDesc": "A melhor API de streaming do Qobuz. Downloads de alta resolução não seriam possíveis sem isso!", + "@aboutDabMusicDesc": { + "description": "Credit for DAB Music API" + }, + "aboutAppDescription": "Baixe faixas do Spotify em qualidade sem perdas do Tidal, Qobuz e Amazon Music.", + "@aboutAppDescription": { + "description": "App description in header card" + }, + "albumTitle": "Álbum", + "@albumTitle": { + "description": "Album screen title" + }, + "albumTracks": "{count, plural, one {}=1{1 faixa} other{{count} faixas}}", + "@albumTracks": { + "description": "Album track count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "albumDownloadAll": "Baixar Tudo", + "@albumDownloadAll": { + "description": "Button to download all tracks" + }, + "albumDownloadRemaining": "Downloads Restantes", + "@albumDownloadRemaining": { + "description": "Button to download remaining tracks" + }, + "playlistTitle": "Playlist", + "@playlistTitle": { + "description": "Playlist screen title" + }, + "artistTitle": "Artista", + "@artistTitle": { + "description": "Artist screen title" + }, + "artistAlbums": "Álbuns", + "@artistAlbums": { + "description": "Section header for artist albums" + }, + "artistSingles": "Singles e EPs", + "@artistSingles": { + "description": "Section header for singles/EPs" + }, + "artistCompilations": "Compilações", + "@artistCompilations": { + "description": "Section header for compilations" + }, + "artistReleases": "{count, plural, one {}=1{1 lançamento} other{{count} lançamentos}}", + "@artistReleases": { + "description": "Artist release count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "artistPopular": "Populares", + "@artistPopular": { + "description": "Section header for popular/top tracks" + }, + "artistMonthlyListeners": "{count} ouvintes mensais", + "@artistMonthlyListeners": { + "description": "Monthly listener count display", + "placeholders": { + "count": { + "type": "String", + "description": "Formatted listener count" + } + } + }, + "trackMetadataTitle": "Informações da Faixa", + "@trackMetadataTitle": { + "description": "Track metadata screen title" + }, + "trackMetadataArtist": "Artista", + "@trackMetadataArtist": { + "description": "Metadata field - artist name" + }, + "trackMetadataAlbum": "Álbum", + "@trackMetadataAlbum": { + "description": "Metadata field - album name" + }, + "trackMetadataDuration": "Duração", + "@trackMetadataDuration": { + "description": "Metadata field - track length" + }, + "trackMetadataQuality": "Qualidade", + "@trackMetadataQuality": { + "description": "Metadata field - audio quality" + }, + "trackMetadataPath": "Caminho do Arquivo", + "@trackMetadataPath": { + "description": "Metadata field - file location" + }, + "trackMetadataDownloadedAt": "Baixado", + "@trackMetadataDownloadedAt": { + "description": "Metadata field - download date" + }, + "trackMetadataService": "Serviço", + "@trackMetadataService": { + "description": "Metadata field - download service used" + }, + "trackMetadataPlay": "Reproduzir", + "@trackMetadataPlay": { + "description": "Action button - play track" + }, + "trackMetadataShare": "Compartilhar", + "@trackMetadataShare": { + "description": "Action button - share track" + }, + "trackMetadataDelete": "Apagar", + "@trackMetadataDelete": { + "description": "Action button - delete track" + }, + "trackMetadataRedownload": "Baixar Novamente", + "@trackMetadataRedownload": { + "description": "Action button - download again" + }, + "trackMetadataOpenFolder": "Abrir Pasta", + "@trackMetadataOpenFolder": { + "description": "Action button - open containing folder" + }, + "setupTitle": "Bem-vindo ao SpotiFLAC", + "@setupTitle": { + "description": "Setup wizard title" + }, + "setupSubtitle": "Vamos começar", + "@setupSubtitle": { + "description": "Setup wizard subtitle" + }, + "setupStoragePermission": "Permissão de Armazenamento", + "@setupStoragePermission": { + "description": "Storage permission step title" + }, + "setupStoragePermissionSubtitle": "Necessária para salvar arquivos baixados", + "@setupStoragePermissionSubtitle": { + "description": "Explanation for storage permission" + }, + "setupStoragePermissionGranted": "Permissão concedida", + "@setupStoragePermissionGranted": { + "description": "Status when permission granted" + }, + "setupStoragePermissionDenied": "Permissão negada", + "@setupStoragePermissionDenied": { + "description": "Status when permission denied" + }, + "setupGrantPermission": "Conceder Permissão", + "@setupGrantPermission": { + "description": "Button to request permission" + }, + "setupDownloadLocation": "Local do Download", + "@setupDownloadLocation": { + "description": "Download folder step title" + }, + "setupChooseFolder": "Selecionar Pasta", + "@setupChooseFolder": { + "description": "Button to pick folder" + }, + "setupContinue": "Continuar", + "@setupContinue": { + "description": "Continue to next step button" + }, + "setupSkip": "Ignorar por enquanto", + "@setupSkip": { + "description": "Skip current step button" + }, + "setupStorageAccessRequired": "Acesso ao Armazenamento Necessário", + "@setupStorageAccessRequired": { + "description": "Title when storage access needed" + }, + "setupStorageAccessMessage": "O SpotiFLAC precisa da permissão \"Acesso a todos os arquivos\" para salvar arquivos de música na sua pasta escolhida.", + "@setupStorageAccessMessage": { + "description": "Explanation for storage access" + }, + "setupStorageAccessMessageAndroid11": "O Android 11+ requer a permissão \"Acesso a Todos os Arquivos\" para salvar arquivos na pasta de download escolhida.", + "@setupStorageAccessMessageAndroid11": { + "description": "Android 11+ specific explanation" + }, + "setupOpenSettings": "Abrir Configurações", + "@setupOpenSettings": { + "description": "Button to open system settings" + }, + "setupPermissionDeniedMessage": "Permissão negada. Por favor, conceda todas as permissões para continuar.", + "@setupPermissionDeniedMessage": { + "description": "Error when permission denied" + }, + "setupPermissionRequired": "Permissão {permissionType} Necessária", + "@setupPermissionRequired": { + "description": "Generic permission required title", + "placeholders": { + "permissionType": { + "type": "String", + "description": "Type of permission (Storage/Notification)" + } + } + }, + "setupPermissionRequiredMessage": "A permissão {permissionType} é necessária para a melhor experiência. Você pode alterar isso mais tarde em Configurações.", + "@setupPermissionRequiredMessage": { + "description": "Generic permission required message", + "placeholders": { + "permissionType": { + "type": "String" + } + } + }, + "setupSelectDownloadFolder": "Escolher Pasta de Download", + "@setupSelectDownloadFolder": { + "description": "Folder selection step title" + }, + "setupUseDefaultFolder": "Usar Pasta Padrão?", + "@setupUseDefaultFolder": { + "description": "Dialog title for default folder" + }, + "setupNoFolderSelected": "Nenhuma pasta selecionada. Você gostaria de usar a pasta padrão de música?", + "@setupNoFolderSelected": { + "description": "Prompt when no folder selected" + }, + "setupUseDefault": "Usar Padrão", + "@setupUseDefault": { + "description": "Button to use default folder" + }, + "setupDownloadLocationTitle": "Local do Download", + "@setupDownloadLocationTitle": { + "description": "Download location dialog title" + }, + "setupDownloadLocationIosMessage": "No iOS, downloads são salvos na pasta Documentos do aplicativo. Você pode acessá-los através do app Arquivos.", + "@setupDownloadLocationIosMessage": { + "description": "iOS-specific folder info" + }, + "setupAppDocumentsFolder": "Pasta Documentos do App", + "@setupAppDocumentsFolder": { + "description": "iOS documents folder option" + }, + "setupAppDocumentsFolderSubtitle": "Recomendado - acessível através do aplicativo Arquivos", + "@setupAppDocumentsFolderSubtitle": { + "description": "Subtitle for documents folder" + }, + "setupChooseFromFiles": "Escolher dos Arquivos", + "@setupChooseFromFiles": { + "description": "iOS file picker option" + }, + "setupChooseFromFilesSubtitle": "Selecione o iCloud ou outro local", + "@setupChooseFromFilesSubtitle": { + "description": "Subtitle for file picker" + }, + "setupIosEmptyFolderWarning": "Limitação do iOS: Pastas vazias não podem ser selecionadas. Escolha uma pasta com pelo menos um arquivo.", + "@setupIosEmptyFolderWarning": { + "description": "iOS folder selection warning" + }, + "setupDownloadInFlac": "Baixar faixas do Spotify em FLAC", + "@setupDownloadInFlac": { + "description": "App tagline in setup" + }, + "setupStepStorage": "Armazenamento", + "@setupStepStorage": { + "description": "Setup step indicator - storage" + }, + "setupStepNotification": "Notificação", + "@setupStepNotification": { + "description": "Setup step indicator - notification" + }, + "setupStepFolder": "Pasta", + "@setupStepFolder": { + "description": "Setup step indicator - folder" + }, + "setupStepSpotify": "Spotify", + "@setupStepSpotify": { + "description": "Setup step indicator - Spotify API" + }, + "setupStepPermission": "Permissão", + "@setupStepPermission": { + "description": "Setup step indicator - permission" + }, + "setupStorageGranted": "Permissão de Armazenamento Concedida!", + "@setupStorageGranted": { + "description": "Success message for storage permission" + }, + "setupStorageRequired": "Permissão de Armazenamento Necessária", + "@setupStorageRequired": { + "description": "Title when storage permission needed" + }, + "setupStorageDescription": "O SpotiFLAC precisa de permissão de armazenamento para salvar os seus arquivos de música baixados.", + "@setupStorageDescription": { + "description": "Explanation for storage permission" + }, + "setupNotificationGranted": "Permissão de Notificações Concedida!", + "@setupNotificationGranted": { + "description": "Success message for notification permission" + }, + "setupNotificationEnable": "Habilitar Notificações", + "@setupNotificationEnable": { + "description": "Button to enable notifications" + }, + "setupNotificationDescription": "Seja notificado quando os downloads completarem ou exigirem atenção.", + "@setupNotificationDescription": { + "description": "Explanation for notifications" + }, + "setupFolderSelected": "Pasta para Download Selecionada!", + "@setupFolderSelected": { + "description": "Success message for folder selection" + }, + "setupFolderChoose": "Escolher Pasta de Download", + "@setupFolderChoose": { + "description": "Button to choose folder" + }, + "setupFolderDescription": "Selecione uma pasta onde as suas músicas baixadas serão salvas.", + "@setupFolderDescription": { + "description": "Explanation for folder selection" + }, + "setupChangeFolder": "Alterar Pasta", + "@setupChangeFolder": { + "description": "Button to change selected folder" + }, + "setupSelectFolder": "Seleccionar Pasta", + "@setupSelectFolder": { + "description": "Button to select folder" + }, + "setupSpotifyApiOptional": "API do Spotify (opcional)", + "@setupSpotifyApiOptional": { + "description": "Spotify API step title" + }, + "setupSpotifyApiDescription": "Adicione as suas credenciais da API do Spotify para obter melhores resultados de busca e acesso a conteúdo exclusivo do Spotify.", + "@setupSpotifyApiDescription": { + "description": "Explanation for Spotify API" + }, + "setupUseSpotifyApi": "Usar API do Spotify", + "@setupUseSpotifyApi": { + "description": "Toggle to enable Spotify API" + }, + "setupEnterCredentialsBelow": "Insira as suas credenciais abaixo", + "@setupEnterCredentialsBelow": { + "description": "Prompt to enter credentials" + }, + "setupUsingDeezer": "Usando o Deezer (nenhuma conta necessária)", + "@setupUsingDeezer": { + "description": "Status when using Deezer" + }, + "setupEnterClientId": "Insira o Spotify Client ID", + "@setupEnterClientId": { + "description": "Placeholder for client ID field" + }, + "setupEnterClientSecret": "Insira o Spotify Client Secret", + "@setupEnterClientSecret": { + "description": "Placeholder for client secret field" + }, + "setupGetFreeCredentials": "Receba as suas credenciais de API gratuitas na Spotify Developer Dashboard.", + "@setupGetFreeCredentials": { + "description": "Info about getting Spotify credentials" + }, + "setupEnableNotifications": "Habilitar Notificações", + "@setupEnableNotifications": { + "description": "Button to enable notifications" + }, + "setupProceedToNextStep": "Você já pode prosseguir para o próximo passo.", + "@setupProceedToNextStep": { + "description": "Message after completing a step" + }, + "setupNotificationProgressDescription": "Você receberá notificações de progresso dos downloads.", + "@setupNotificationProgressDescription": { + "description": "Info about notification usage" + }, + "setupNotificationBackgroundDescription": "Seja notificado sobre o progresso e conclusão do download. Isso ajuda você a acompanhar os downloads quando o app estiver em segundo plano.", + "@setupNotificationBackgroundDescription": { + "description": "Detailed notification explanation" + }, + "setupSkipForNow": "Ignorar por enquanto", + "@setupSkipForNow": { + "description": "Skip button text" + }, + "setupBack": "Voltar", + "@setupBack": { + "description": "Back button text" + }, + "setupNext": "Próximo", + "@setupNext": { + "description": "Next button text" + }, + "setupGetStarted": "Começar", + "@setupGetStarted": { + "description": "Final setup button" + }, + "setupSkipAndStart": "Ignorar e Iniciar", + "@setupSkipAndStart": { + "description": "Skip setup and start app" + }, + "setupAllowAccessToManageFiles": "Por favor, habilite \"Permitir acesso para gerenciar todos os arquivos\" na próxima tela.", + "@setupAllowAccessToManageFiles": { + "description": "Instruction for file access permission" + }, + "setupGetCredentialsFromSpotify": "Obter credenciais do developer.spotify.com", + "@setupGetCredentialsFromSpotify": { + "description": "Link text for Spotify developer portal" + }, + "dialogCancel": "Cancelar", + "@dialogCancel": { + "description": "Dialog button - cancel action" + }, + "dialogOk": "OK", + "@dialogOk": { + "description": "Dialog button - confirm/acknowledge" + }, + "dialogSave": "Salvar", + "@dialogSave": { + "description": "Dialog button - save changes" + }, + "dialogDelete": "Apagar", + "@dialogDelete": { + "description": "Dialog button - delete item" + }, + "dialogRetry": "Tentar novamente", + "@dialogRetry": { + "description": "Dialog button - retry action" + }, + "dialogClose": "Fechar", + "@dialogClose": { + "description": "Dialog button - close dialog" + }, + "dialogYes": "Sim", + "@dialogYes": { + "description": "Dialog button - confirm yes" + }, + "dialogNo": "Não", + "@dialogNo": { + "description": "Dialog button - confirm no" + }, + "dialogClear": "Limpar", + "@dialogClear": { + "description": "Dialog button - clear items" + }, + "dialogConfirm": "Confirmar", + "@dialogConfirm": { + "description": "Dialog button - confirm action" + }, + "dialogDone": "Concluído", + "@dialogDone": { + "description": "Dialog button - action completed" + }, + "dialogImport": "Importar", + "@dialogImport": { + "description": "Dialog button - import data" + }, + "dialogDiscard": "Descartar", + "@dialogDiscard": { + "description": "Dialog button - discard changes" + }, + "dialogRemove": "Remover", + "@dialogRemove": { + "description": "Dialog button - remove item" + }, + "dialogUninstall": "Desinstalar", + "@dialogUninstall": { + "description": "Dialog button - uninstall extension" + }, + "dialogDiscardChanges": "Descartar Alterações?", + "@dialogDiscardChanges": { + "description": "Dialog title - unsaved changes warning" + }, + "dialogUnsavedChanges": "Você tem alterações não salvas. Deseja descartá-las?", + "@dialogUnsavedChanges": { + "description": "Dialog message - unsaved changes" + }, + "dialogDownloadFailed": "Download Falhou", + "@dialogDownloadFailed": { + "description": "Dialog title - download error" + }, + "dialogTrackLabel": "Faixa:", + "@dialogTrackLabel": { + "description": "Label for track name in error dialog" + }, + "dialogArtistLabel": "Artista:", + "@dialogArtistLabel": { + "description": "Label for artist name in error dialog" + }, + "dialogErrorLabel": "Erro:", + "@dialogErrorLabel": { + "description": "Label for error message" + }, + "dialogClearAll": "Limpar Tudo", + "@dialogClearAll": { + "description": "Dialog title - clear all items" + }, + "dialogClearAllDownloads": "Você tem certeza que deseja limpar todos os downloads?", + "@dialogClearAllDownloads": { + "description": "Dialog message - clear downloads confirmation" + }, + "dialogRemoveFromDevice": "Remover do dispositivo?", + "@dialogRemoveFromDevice": { + "description": "Dialog title - delete file confirmation" + }, + "dialogRemoveExtension": "Remover Extensão", + "@dialogRemoveExtension": { + "description": "Dialog title - uninstall extension" + }, + "dialogRemoveExtensionMessage": "Tem certeza de que deseja remover esta extensão? Isso não pode ser desfeito.", + "@dialogRemoveExtensionMessage": { + "description": "Dialog message - uninstall confirmation" + }, + "dialogUninstallExtension": "Desinstalar Extensão?", + "@dialogUninstallExtension": { + "description": "Dialog title - uninstall extension" + }, + "dialogUninstallExtensionMessage": "Tem certeza que deseja remover {extensionName}?", + "@dialogUninstallExtensionMessage": { + "description": "Dialog message - uninstall specific extension", + "placeholders": { + "extensionName": { + "type": "String" + } + } + }, + "dialogClearHistoryTitle": "Limpar Histórico", + "@dialogClearHistoryTitle": { + "description": "Dialog title - clear download history" + }, + "dialogClearHistoryMessage": "Tem certeza que deseja limpar todo o histórico de downloads? Isso não pode ser desfeito.", + "@dialogClearHistoryMessage": { + "description": "Dialog message - clear history confirmation" + }, + "dialogDeleteSelectedTitle": "Apagar Selecionados", + "@dialogDeleteSelectedTitle": { + "description": "Dialog title - delete selected items" + }, + "dialogDeleteSelectedMessage": "Apagar {count} {count, plural, one {}=1{faixa} other{faixas}} do histórico?\n\nIsso também apagará os arquivos do armazenamento.", + "@dialogDeleteSelectedMessage": { + "description": "Dialog message - delete selected tracks", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dialogImportPlaylistTitle": "Importar Playlist", + "@dialogImportPlaylistTitle": { + "description": "Dialog title - import CSV playlist" + }, + "dialogImportPlaylistMessage": "{count} Faixas encontradas em CSV. Adicioná-las à lista de downloads?", + "csvImportTracks": "{count} faixas do 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}\" adicionada à fila", + "@snackbarAddedToQueue": { + "description": "Snackbar - track added to download queue", + "placeholders": { + "trackName": { + "type": "String" + } + } + }, + "snackbarAddedTracksToQueue": "{count} faixas adicionadas à fila", + "@snackbarAddedTracksToQueue": { + "description": "Snackbar - multiple tracks added to queue", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "snackbarAlreadyDownloaded": "\"{trackName}\" já foi baixada", + "@snackbarAlreadyDownloaded": { + "description": "Snackbar - track already exists", + "placeholders": { + "trackName": { + "type": "String" + } + } + }, + "snackbarHistoryCleared": "Histórico limpo", + "@snackbarHistoryCleared": { + "description": "Snackbar - history deleted" + }, + "snackbarCredentialsSaved": "Credenciais salvas", + "@snackbarCredentialsSaved": { + "description": "Snackbar - Spotify credentials saved" + }, + "snackbarCredentialsCleared": "Credenciais limpas", + "@snackbarCredentialsCleared": { + "description": "Snackbar - Spotify credentials removed" + }, + "snackbarDeletedTracks": "{count} {count, plural, one {}=1{faixa apagada} other{faixas apagadas}}", + "@snackbarDeletedTracks": { + "description": "Snackbar - tracks deleted", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "snackbarCannotOpenFile": "Não foi possível abrir o arquivo: {error}", + "@snackbarCannotOpenFile": { + "description": "Snackbar - file open error", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "snackbarFillAllFields": "Por favor, preencha todos os campos", + "@snackbarFillAllFields": { + "description": "Snackbar - validation error" + }, + "snackbarViewQueue": "Ver Fila", + "@snackbarViewQueue": { + "description": "Snackbar action - view download queue" + }, + "snackbarFailedToLoad": "Falha ao carregar: {error}", + "@snackbarFailedToLoad": { + "description": "Snackbar - loading error", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "snackbarUrlCopied": "URL do {platform} copiado para a área de transferência", + "@snackbarUrlCopied": { + "description": "Snackbar - URL copied", + "placeholders": { + "platform": { + "type": "String", + "description": "Platform name (Spotify/Deezer)" + } + } + }, + "snackbarFileNotFound": "Arquivo não encontrado", + "@snackbarFileNotFound": { + "description": "Snackbar - file doesn't exist" + }, + "snackbarSelectExtFile": "Por favor, selecione um arquivo .spotiflac-ext", + "@snackbarSelectExtFile": { + "description": "Snackbar - wrong file type selected" + }, + "snackbarProviderPrioritySaved": "Prioridade de provedor salva", + "@snackbarProviderPrioritySaved": { + "description": "Snackbar - provider order saved" + }, + "snackbarMetadataProviderSaved": "Prioridade do provedor de metadados salva", + "@snackbarMetadataProviderSaved": { + "description": "Snackbar - metadata provider order saved" + }, + "snackbarExtensionInstalled": "{extensionName} instalada.", + "@snackbarExtensionInstalled": { + "description": "Snackbar - extension installed successfully", + "placeholders": { + "extensionName": { + "type": "String" + } + } + }, + "snackbarExtensionUpdated": "{extensionName} atualizada.", + "@snackbarExtensionUpdated": { + "description": "Snackbar - extension updated successfully", + "placeholders": { + "extensionName": { + "type": "String" + } + } + }, + "snackbarFailedToInstall": "Falha ao instalar a extensão", + "@snackbarFailedToInstall": { + "description": "Snackbar - extension install error" + }, + "snackbarFailedToUpdate": "Falha ao atualizar a extensão", + "@snackbarFailedToUpdate": { + "description": "Snackbar - extension update error" + }, + "errorRateLimited": "Tráfico Limitado (Rate Limited)", + "@errorRateLimited": { + "description": "Error title - too many requests" + }, + "errorRateLimitedMessage": "Muitas solicitações. Por favor, aguarde um momento antes de pesquisar novamente.", + "@errorRateLimitedMessage": { + "description": "Error message - rate limit explanation" + }, + "errorFailedToLoad": "Falha ao carregar {item}", + "@errorFailedToLoad": { + "description": "Error message - loading failed", + "placeholders": { + "item": { + "type": "String", + "description": "Item that failed to load (album/playlist/etc)" + } + } + }, + "errorNoTracksFound": "Nenhuma faixa encontrada", + "@errorNoTracksFound": { + "description": "Error - search returned no results" + }, + "errorMissingExtensionSource": "Não é possível carregar {item}: faltando a fonte da extensão", + "@errorMissingExtensionSource": { + "description": "Error - extension source not available", + "placeholders": { + "item": { + "type": "String" + } + } + }, + "statusQueued": "Na Fila", + "@statusQueued": { + "description": "Download status - waiting in queue" + }, + "statusDownloading": "Baixando", + "@statusDownloading": { + "description": "Download status - in progress" + }, + "statusFinalizing": "Finalizando", + "@statusFinalizing": { + "description": "Download status - writing metadata" + }, + "statusCompleted": "Concluído", + "@statusCompleted": { + "description": "Download status - finished" + }, + "statusFailed": "Falhou", + "@statusFailed": { + "description": "Download status - error occurred" + }, + "statusSkipped": "Ignorado", + "@statusSkipped": { + "description": "Download status - already exists" + }, + "statusPaused": "Pausado", + "@statusPaused": { + "description": "Download status - paused" + }, + "actionPause": "Pausar", + "@actionPause": { + "description": "Action button - pause download" + }, + "actionResume": "Retomar", + "@actionResume": { + "description": "Action button - resume download" + }, + "actionCancel": "Cancelar", + "@actionCancel": { + "description": "Action button - cancel operation" + }, + "actionStop": "Parar", + "@actionStop": { + "description": "Action button - stop operation" + }, + "actionSelect": "Selecionar", + "@actionSelect": { + "description": "Action button - enter selection mode" + }, + "actionSelectAll": "Selecionar Tudo", + "@actionSelectAll": { + "description": "Action button - select all items" + }, + "actionDeselect": "Desselecionar", + "@actionDeselect": { + "description": "Action button - deselect all" + }, + "actionPaste": "Colar", + "@actionPaste": { + "description": "Action button - paste from clipboard" + }, + "actionImportCsv": "Importar CSV", + "@actionImportCsv": { + "description": "Action button - import CSV file" + }, + "actionRemoveCredentials": "Remover Credenciais", + "@actionRemoveCredentials": { + "description": "Action button - delete Spotify credentials" + }, + "actionSaveCredentials": "Salvar Credenciais", + "@actionSaveCredentials": { + "description": "Action button - save Spotify credentials" + }, + "selectionSelected": "{count} selecionado(s)", + "@selectionSelected": { + "description": "Selection count indicator", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "selectionAllSelected": "Todas as faixas selecionadas", + "@selectionAllSelected": { + "description": "Status - all items selected" + }, + "selectionTapToSelect": "Toque nas faixas para selecionar", + "@selectionTapToSelect": { + "description": "Hint - how to select items" + }, + "selectionDeleteTracks": "Apagar {count} {count, plural, one {}=1{faixa} other{faixas}}", + "@selectionDeleteTracks": { + "description": "Delete button with count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "selectionSelectToDelete": "Selecione as faixas para apagar", + "@selectionSelectToDelete": { + "description": "Placeholder when nothing selected" + }, + "progressFetchingMetadata": "Buscando metadados... {current}/{total}", + "@progressFetchingMetadata": { + "description": "Progress indicator - loading track info", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "progressReadingCsv": "Lendo CSV...", + "@progressReadingCsv": { + "description": "Progress indicator - parsing CSV file" + }, + "searchSongs": "Músicas", + "@searchSongs": { + "description": "Search result category - songs" + }, + "searchArtists": "Artistas", + "@searchArtists": { + "description": "Search result category - artists" + }, + "searchAlbums": "Álbuns", + "@searchAlbums": { + "description": "Search result category - albums" + }, + "searchPlaylists": "Playlists", + "@searchPlaylists": { + "description": "Search result category - playlists" + }, + "tooltipPlay": "Reproduzir", + "@tooltipPlay": { + "description": "Tooltip - play button" + }, + "tooltipCancel": "Cancelar", + "@tooltipCancel": { + "description": "Tooltip - cancel button" + }, + "tooltipStop": "Parar", + "@tooltipStop": { + "description": "Tooltip - stop button" + }, + "tooltipRetry": "Tentar Novamente", + "@tooltipRetry": { + "description": "Tooltip - retry button" + }, + "tooltipRemove": "Remover", + "@tooltipRemove": { + "description": "Tooltip - remove button" + }, + "tooltipClear": "Limpar", + "@tooltipClear": { + "description": "Tooltip - clear button" + }, + "tooltipPaste": "Colar", + "@tooltipPaste": { + "description": "Tooltip - paste button" + }, + "filenameFormat": "Formato do Nome do Arquivo", + "@filenameFormat": { + "description": "Setting title - filename pattern" + }, + "filenameFormatPreview": "Prévia: {preview}", + "@filenameFormatPreview": { + "description": "Preview of filename pattern", + "placeholders": { + "preview": { + "type": "String" + } + } + }, + "filenameAvailablePlaceholders": "Substituições permitidas:", + "@filenameAvailablePlaceholders": { + "description": "Label for placeholder list" + }, + "filenameHint": "{artist} - {title}", + "@filenameHint": { + "description": "Default filename format hint" + }, + "folderOrganization": "Organização de Pastas", + "@folderOrganization": { + "description": "Setting title - folder structure" + }, + "folderOrganizationNone": "Nenhuma organização", + "@folderOrganizationNone": { + "description": "Folder option - flat structure" + }, + "folderOrganizationByArtist": "Por Artista", + "@folderOrganizationByArtist": { + "description": "Folder option - artist folders" + }, + "folderOrganizationByAlbum": "Por Album", + "@folderOrganizationByAlbum": { + "description": "Folder option - album folders" + }, + "folderOrganizationByArtistAlbum": "Artista/Álbum", + "@folderOrganizationByArtistAlbum": { + "description": "Folder option - nested folders" + }, + "folderOrganizationDescription": "Organizar arquivos baixados em pastas", + "@folderOrganizationDescription": { + "description": "Folder organization sheet description" + }, + "folderOrganizationNoneSubtitle": "Todos os arquivos na pasta de download", + "@folderOrganizationNoneSubtitle": { + "description": "Subtitle for no organization option" + }, + "folderOrganizationByArtistSubtitle": "Pasta separada para cada artista", + "@folderOrganizationByArtistSubtitle": { + "description": "Subtitle for artist folder option" + }, + "folderOrganizationByAlbumSubtitle": "Pasta separada para cada álbum", + "@folderOrganizationByAlbumSubtitle": { + "description": "Subtitle for album folder option" + }, + "folderOrganizationByArtistAlbumSubtitle": "Pastas aninhadas para artista e álbum", + "@folderOrganizationByArtistAlbumSubtitle": { + "description": "Subtitle for nested folder option" + }, + "updateAvailable": "Atualização Disponível", + "@updateAvailable": { + "description": "Update dialog title" + }, + "updateNewVersion": "A versão {version} está disponível", + "@updateNewVersion": { + "description": "Update available message", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "updateDownload": "Baixar", + "@updateDownload": { + "description": "Update button - download update" + }, + "updateLater": "Depois", + "@updateLater": { + "description": "Update button - dismiss" + }, + "updateChangelog": "Lista de alterações", + "@updateChangelog": { + "description": "Link to changelog" + }, + "updateStartingDownload": "Iniciando download...", + "@updateStartingDownload": { + "description": "Update status - initializing" + }, + "updateDownloadFailed": "Download falhou", + "@updateDownloadFailed": { + "description": "Update error title" + }, + "updateFailedMessage": "Falha ao baixar a atualização", + "@updateFailedMessage": { + "description": "Update error message" + }, + "updateNewVersionReady": "Uma nova versão está pronta", + "@updateNewVersionReady": { + "description": "Update subtitle" + }, + "updateCurrent": "Atual", + "@updateCurrent": { + "description": "Label for current version" + }, + "updateNew": "Novo", + "@updateNew": { + "description": "Label for new version" + }, + "updateDownloading": "Baixando...", + "@updateDownloading": { + "description": "Update status - downloading" + }, + "updateWhatsNew": "Novidades", + "@updateWhatsNew": { + "description": "Changelog section title" + }, + "updateDownloadInstall": "Baixar e Instalar", + "@updateDownloadInstall": { + "description": "Update button - download and install" + }, + "updateDontRemind": "Não lembrar", + "@updateDontRemind": { + "description": "Update button - skip this version" + }, + "providerPriority": "Prioridade de Provedor", + "@providerPriority": { + "description": "Setting title - download provider order" + }, + "providerPrioritySubtitle": "Arraste para reordenar os provedores de download", + "@providerPrioritySubtitle": { + "description": "Subtitle for provider priority" + }, + "providerPriorityTitle": "Prioridade de Provedor", + "@providerPriorityTitle": { + "description": "Provider priority page title" + }, + "providerPriorityDescription": "Arraste para reordenar provedores de download. O aplicativo irá tentar provedores de cima para baixo ao baixar as faixas.", + "@providerPriorityDescription": { + "description": "Provider priority page description" + }, + "providerPriorityInfo": "Se uma faixa não estiver disponível no primeiro provedor, o aplicativo irá tentar automaticamente a próxima.", + "@providerPriorityInfo": { + "description": "Info tip about fallback behavior" + }, + "providerBuiltIn": "Embutido", + "@providerBuiltIn": { + "description": "Label for built-in providers (Tidal/Qobuz/Amazon)" + }, + "providerExtension": "Extensão", + "@providerExtension": { + "description": "Label for extension-provided providers" + }, + "metadataProviderPriority": "Prioridade de Provedor de Metadados", + "@metadataProviderPriority": { + "description": "Setting title - metadata provider order" + }, + "metadataProviderPrioritySubtitle": "Ordem usada para obter metadados de faixa", + "@metadataProviderPrioritySubtitle": { + "description": "Subtitle for metadata priority" + }, + "metadataProviderPriorityTitle": "Prioridade de Metadados", + "@metadataProviderPriorityTitle": { + "description": "Metadata priority page title" + }, + "metadataProviderPriorityDescription": "Arraste para reordenar provedores de metadados. O aplicativo tentará provedores de cima para baixo ao procurar por faixas e buscar metadados.", + "@metadataProviderPriorityDescription": { + "description": "Metadata priority page description" + }, + "metadataProviderPriorityInfo": "O Deezer não tem limites de taxa e é recomendado como principal. O Spotify pode limitar a taxa após muitas solicitações.", + "@metadataProviderPriorityInfo": { + "description": "Info tip about rate limits" + }, + "metadataNoRateLimits": "Sem limites de taxa", + "@metadataNoRateLimits": { + "description": "Deezer provider description" + }, + "metadataMayRateLimit": "Pode ter limites de taxa", + "@metadataMayRateLimit": { + "description": "Spotify provider description" + }, + "logTitle": "Registros", + "@logTitle": { + "description": "Logs screen title" + }, + "logCopy": "Copiar Registros", + "@logCopy": { + "description": "Action - copy logs to clipboard" + }, + "logClear": "Limpar Registros", + "@logClear": { + "description": "Action - delete all logs" + }, + "logShare": "Compartilhar Registros", + "@logShare": { + "description": "Action - share logs file" + }, + "logEmpty": "Ainda não há registros", + "@logEmpty": { + "description": "Empty state title" + }, + "logCopied": "Registros copiados para área de transferência", + "@logCopied": { + "description": "Snackbar - logs copied" + }, + "logSearchHint": "Pesquisar registros...", + "@logSearchHint": { + "description": "Log search placeholder" + }, + "logFilterLevel": "Nível", + "@logFilterLevel": { + "description": "Filter by log level" + }, + "logFilterSection": "Filtro", + "@logFilterSection": { + "description": "Filter section title" + }, + "logShareLogs": "Compartilhar registros", + "@logShareLogs": { + "description": "Share button tooltip" + }, + "logClearLogs": "Limpar registros", + "@logClearLogs": { + "description": "Clear button tooltip" + }, + "logClearLogsTitle": "Limpar Registros", + "@logClearLogsTitle": { + "description": "Clear logs dialog title" + }, + "logClearLogsMessage": "Tem certeza de que deseja limpar todos os registros?", + "@logClearLogsMessage": { + "description": "Clear logs confirmation message" + }, + "logIspBlocking": "BLOQUEIO DE ISP DETECTADO", + "@logIspBlocking": { + "description": "Error category - ISP blocking" + }, + "logRateLimited": "TAXA LIMITADA (RATELIMITED)", + "@logRateLimited": { + "description": "Error category - rate limiting" + }, + "logNetworkError": "ERRO DE REDE", + "@logNetworkError": { + "description": "Error category - network issues" + }, + "logTrackNotFound": "FAIXA NÃO ENCONTRADA", + "@logTrackNotFound": { + "description": "Error category - missing tracks" + }, + "logFilterBySeverity": "Filtrar registros por gravidade", + "@logFilterBySeverity": { + "description": "Filter dialog title" + }, + "logNoLogsYet": "Ainda não há registros", + "@logNoLogsYet": { + "description": "Empty state title" + }, + "logNoLogsYetSubtitle": "Os registros aparecerão aqui enquanto você usa o aplicativo", + "@logNoLogsYetSubtitle": { + "description": "Empty state subtitle" + }, + "logIssueSummary": "Resumo do Problemas", + "@logIssueSummary": { + "description": "Section header for error summary" + }, + "logIspBlockingDescription": "O seu provedor pode estar bloqueando o acesso aos serviços de download", + "@logIspBlockingDescription": { + "description": "ISP blocking explanation" + }, + "logIspBlockingSuggestion": "Tente usar uma VPN ou altere o DNS para 1.1.1 ou 8.8.8.8", + "@logIspBlockingSuggestion": { + "description": "ISP blocking fix suggestion" + }, + "logRateLimitedDescription": "Muitas solicitações ao serviço", + "@logRateLimitedDescription": { + "description": "Rate limit explanation" + }, + "logRateLimitedSuggestion": "Aguarde alguns minutos antes de tentar novamente", + "@logRateLimitedSuggestion": { + "description": "Rate limit fix suggestion" + }, + "logNetworkErrorDescription": "Problemas de conexão detectados", + "@logNetworkErrorDescription": { + "description": "Network error explanation" + }, + "logNetworkErrorSuggestion": "Verifique sua conexão de internet", + "@logNetworkErrorSuggestion": { + "description": "Network error fix suggestion" + }, + "logTrackNotFoundDescription": "Algumas faixas não foram encontradas nos serviços de download", + "@logTrackNotFoundDescription": { + "description": "Track not found explanation" + }, + "logTrackNotFoundSuggestion": "A faixa pode não estar disponível em qualidade sem perdas", + "@logTrackNotFoundSuggestion": { + "description": "Track not found explanation" + }, + "logTotalErrors": "Total de erros: {count}", + "@logTotalErrors": { + "description": "Error count display", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "logAffected": "Afetado(s): {domains}", + "@logAffected": { + "description": "Affected domains display", + "placeholders": { + "domains": { + "type": "String" + } + } + }, + "logEntriesFiltered": "Entradas ({count} filtradas)", + "@logEntriesFiltered": { + "description": "Log count with filter active", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "logEntries": "Entradas ({count})", + "@logEntries": { + "description": "Total log count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "credentialsTitle": "Credenciais do Spotify", + "@credentialsTitle": { + "description": "Credentials dialog title" + }, + "credentialsDescription": "Digite a sua Client ID e Secret para usar a sua própria cota de aplicativo do Spotify.", + "@credentialsDescription": { + "description": "Credentials dialog explanation" + }, + "credentialsClientId": "Client ID", + "@credentialsClientId": { + "description": "Client ID field label - DO NOT TRANSLATE" + }, + "credentialsClientIdHint": "Colar Client ID", + "@credentialsClientIdHint": { + "description": "Client ID placeholder" + }, + "credentialsClientSecret": "Client Secret", + "@credentialsClientSecret": { + "description": "Client Secret field label - DO NOT TRANSLATE" + }, + "credentialsClientSecretHint": "Colar Client Secret", + "@credentialsClientSecretHint": { + "description": "Client Secret placeholder" + }, + "channelStable": "Estável", + "@channelStable": { + "description": "Update channel - stable releases" + }, + "channelPreview": "Prévia", + "@channelPreview": { + "description": "Update channel - beta/preview releases" + }, + "sectionSearchSource": "Origem da Pesquisa", + "@sectionSearchSource": { + "description": "Settings section header" + }, + "sectionDownload": "Download", + "@sectionDownload": { + "description": "Settings section header" + }, + "sectionPerformance": "Desempenho", + "@sectionPerformance": { + "description": "Settings section header" + }, + "sectionApp": "Aplicativo", + "@sectionApp": { + "description": "Settings section header" + }, + "sectionData": "Dados", + "@sectionData": { + "description": "Settings section header" + }, + "sectionDebug": "Depuração", + "@sectionDebug": { + "description": "Settings section header" + }, + "sectionService": "Serviço", + "@sectionService": { + "description": "Settings section header" + }, + "sectionAudioQuality": "Qualidade de Áudio", + "@sectionAudioQuality": { + "description": "Settings section header" + }, + "sectionFileSettings": "Configurações de Arquivo", + "@sectionFileSettings": { + "description": "Settings section header" + }, + "sectionLyrics": "Letras", + "@sectionLyrics": { + "description": "Settings section header" + }, + "lyricsMode": "Modo de Letras", + "@lyricsMode": { + "description": "Setting - how to save lyrics" + }, + "lyricsModeDescription": "Escolha como as letras são salvas com os seus downloads", + "@lyricsModeDescription": { + "description": "Lyrics mode picker description" + }, + "lyricsModeEmbed": "Incorporar no arquivo", + "@lyricsModeEmbed": { + "description": "Lyrics mode option - embed in audio file" + }, + "lyricsModeEmbedSubtitle": "Letra armazenada nos metadados da FLAC", + "@lyricsModeEmbedSubtitle": { + "description": "Subtitle for embed option" + }, + "lyricsModeExternal": "Arquivo .lrc externo", + "@lyricsModeExternal": { + "description": "Lyrics mode option - separate LRC file" + }, + "lyricsModeExternalSubtitle": "Arquivo .lrc separado para reprodutores como o Samsung Music", + "@lyricsModeExternalSubtitle": { + "description": "Subtitle for external option" + }, + "lyricsModeBoth": "Ambos", + "@lyricsModeBoth": { + "description": "Lyrics mode option - embed and external" + }, + "lyricsModeBothSubtitle": "Incorporar e salvar arquivo .lrc", + "@lyricsModeBothSubtitle": { + "description": "Subtitle for both option" + }, + "sectionColor": "Cor", + "@sectionColor": { + "description": "Settings section header" + }, + "sectionTheme": "Tema", + "@sectionTheme": { + "description": "Settings section header" + }, + "sectionLayout": "Layout", + "@sectionLayout": { + "description": "Settings section header" + }, + "sectionLanguage": "Idioma", + "@sectionLanguage": { + "description": "Settings section header for language" + }, + "appearanceLanguage": "Idioma do aplicativo", + "@appearanceLanguage": { + "description": "Language setting title" + }, + "appearanceLanguageSubtitle": "Escolha o seu idioma preferido", + "@appearanceLanguageSubtitle": { + "description": "Language setting subtitle" + }, + "settingsAppearanceSubtitle": "Tema, cores, exibição", + "@settingsAppearanceSubtitle": { + "description": "Appearance settings description" + }, + "settingsDownloadSubtitle": "Serviço, qualidade, formato de nome de arquivo", + "@settingsDownloadSubtitle": { + "description": "Download settings description" + }, + "settingsOptionsSubtitle": "Fallback, letras, arte de capa, atualizações", + "@settingsOptionsSubtitle": { + "description": "Options settings description" + }, + "settingsExtensionsSubtitle": "Gerenciar provedores de download", + "@settingsExtensionsSubtitle": { + "description": "Extensions settings description" + }, + "settingsLogsSubtitle": "Ver logs do app para depuração", + "@settingsLogsSubtitle": { + "description": "Logs settings description" + }, + "loadingSharedLink": "Carregando link compartilhado...", + "@loadingSharedLink": { + "description": "Status when opening shared URL" + }, + "pressBackAgainToExit": "Pressione voltar novamente para sair", + "@pressBackAgainToExit": { + "description": "Exit confirmation message" + }, + "tracksHeader": "Faixas", + "@tracksHeader": { + "description": "Section header for track list" + }, + "downloadAllCount": "Baixar Todos ({count})", + "@downloadAllCount": { + "description": "Download all button with count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "tracksCount": "{count, plural, one {}=1{1 faixa} other{{count} faixas}}", + "@tracksCount": { + "description": "Track count display", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "trackCopyFilePath": "Copiar caminho do arquivo", + "@trackCopyFilePath": { + "description": "Action - copy file path" + }, + "trackRemoveFromDevice": "Remover do dispositivo", + "@trackRemoveFromDevice": { + "description": "Action - delete downloaded file" + }, + "trackLoadLyrics": "Carregar Letras", + "@trackLoadLyrics": { + "description": "Action - fetch lyrics" + }, + "trackMetadata": "Metadados", + "@trackMetadata": { + "description": "Tab title - track metadata" + }, + "trackFileInfo": "Informações do Arquivo", + "@trackFileInfo": { + "description": "Tab title - file information" + }, + "trackLyrics": "Letras", + "@trackLyrics": { + "description": "Tab title - lyrics" + }, + "trackFileNotFound": "Arquivo não encontrado", + "@trackFileNotFound": { + "description": "Error - file doesn't exist" + }, + "trackOpenInDeezer": "Abrir no Deezer", + "@trackOpenInDeezer": { + "description": "Action - open track in Deezer app" + }, + "trackOpenInSpotify": "Abrir no Spotify", + "@trackOpenInSpotify": { + "description": "Action - open track in Spotify app" + }, + "trackTrackName": "Nome da faixa", + "@trackTrackName": { + "description": "Metadata label - track title" + }, + "trackArtist": "Artista", + "@trackArtist": { + "description": "Metadata label - artist name" + }, + "trackAlbumArtist": "Artista do álbum", + "@trackAlbumArtist": { + "description": "Metadata label - album artist" + }, + "trackAlbum": "Álbum", + "@trackAlbum": { + "description": "Metadata label - album name" + }, + "trackTrackNumber": "Número da faixa", + "@trackTrackNumber": { + "description": "Metadata label - track number" + }, + "trackDiscNumber": "Número do disco", + "@trackDiscNumber": { + "description": "Metadata label - disc number" + }, + "trackDuration": "Duração", + "@trackDuration": { + "description": "Metadata label - track length" + }, + "trackAudioQuality": "Qualidade de Áudio", + "@trackAudioQuality": { + "description": "Metadata label - audio quality" + }, + "trackReleaseDate": "Data de lançamento", + "@trackReleaseDate": { + "description": "Metadata label - release date" + }, + "trackGenre": "Género", + "@trackGenre": { + "description": "Metadata label - music genre" + }, + "trackLabel": "Gravadora", + "@trackLabel": { + "description": "Metadata label - record label" + }, + "trackCopyright": "Direitos Autorais", + "@trackCopyright": { + "description": "Metadata label - copyright information" + }, + "trackDownloaded": "Baixado", + "@trackDownloaded": { + "description": "Metadata label - download date" + }, + "trackCopyLyrics": "Copiar letra", + "@trackCopyLyrics": { + "description": "Action - copy lyrics to clipboard" + }, + "trackLyricsNotAvailable": "Letra não disponível para esta faixa", + "@trackLyricsNotAvailable": { + "description": "Message when lyrics not found" + }, + "trackLyricsTimeout": "A solicitação expirou. Tente novamente mais tarde.", + "@trackLyricsTimeout": { + "description": "Message when lyrics request times out" + }, + "trackLyricsLoadFailed": "Falha ao carregar a letra", + "@trackLyricsLoadFailed": { + "description": "Message when lyrics loading fails" + }, + "trackEmbedLyrics": "Incorporar Letras", + "@trackEmbedLyrics": { + "description": "Action - embed lyrics into audio file" + }, + "trackLyricsEmbedded": "Letras incorporadas com sucesso", + "@trackLyricsEmbedded": { + "description": "Snackbar - lyrics saved to file" + }, + "trackInstrumental": "Faixa de instrumentais", + "@trackInstrumental": { + "description": "Message when track is instrumental (no lyrics)" + }, + "trackCopiedToClipboard": "Copiado para a área de transferência", + "@trackCopiedToClipboard": { + "description": "Snackbar - content copied" + }, + "trackDeleteConfirmTitle": "Remover do dispositivo?", + "@trackDeleteConfirmTitle": { + "description": "Delete confirmation title" + }, + "trackDeleteConfirmMessage": "Isto irá excluir o arquivo baixado permanentemente e removê-lo do seu histórico.", + "@trackDeleteConfirmMessage": { + "description": "Delete confirmation message" + }, + "trackCannotOpen": "Não foi possível abrir: {message}", + "@trackCannotOpen": { + "description": "Error opening file", + "placeholders": { + "message": { + "type": "String" + } + } + }, + "dateToday": "Hoje", + "@dateToday": { + "description": "Relative date - today" + }, + "dateYesterday": "Ontem", + "@dateYesterday": { + "description": "Relative date - yesterday" + }, + "dateDaysAgo": "{count} dias atrás", + "@dateDaysAgo": { + "description": "Relative date - days ago", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dateWeeksAgo": "{count} semanas atrás", + "@dateWeeksAgo": { + "description": "Relative date - weeks ago", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dateMonthsAgo": "{count} meses atrás", + "@dateMonthsAgo": { + "description": "Relative date - months ago", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "concurrentSequential": "Sequencial", + "@concurrentSequential": { + "description": "Download mode - one at a time" + }, + "concurrentParallel2": "2 Paralelos", + "@concurrentParallel2": { + "description": "Download mode - 2 simultaneous" + }, + "concurrentParallel3": "3 Paralelos", + "@concurrentParallel3": { + "description": "Download mode - 3 simultaneous" + }, + "tapToSeeError": "Toque para ver os detalhes do erro", + "@tapToSeeError": { + "description": "Tooltip for failed download" + }, + "storeFilterAll": "Tudo", + "@storeFilterAll": { + "description": "Store filter - all extensions" + }, + "storeFilterMetadata": "Metadados", + "@storeFilterMetadata": { + "description": "Store filter - metadata providers" + }, + "storeFilterDownload": "Download", + "@storeFilterDownload": { + "description": "Store filter - download providers" + }, + "storeFilterUtility": "Utilidade", + "@storeFilterUtility": { + "description": "Store filter - utility extensions" + }, + "storeFilterLyrics": "Letras", + "@storeFilterLyrics": { + "description": "Store filter - lyrics providers" + }, + "storeFilterIntegration": "Integração", + "@storeFilterIntegration": { + "description": "Store filter - integrations" + }, + "storeClearFilters": "Limpar filtros", + "@storeClearFilters": { + "description": "Button to clear all filters" + }, + "storeNoResults": "Nenhuma extensão encontrada", + "@storeNoResults": { + "description": "Empty state when no extensions match filters" + }, + "extensionProviderPriority": "Prioridade de Provedor", + "@extensionProviderPriority": { + "description": "Extension capability - provider priority" + }, + "extensionInstallButton": "Instalar Extensão", + "@extensionInstallButton": { + "description": "Button to install extension" + }, + "extensionDefaultProvider": "Padrão (Deezer/Spotify)", + "@extensionDefaultProvider": { + "description": "Default search provider option" + }, + "extensionDefaultProviderSubtitle": "Usar pesquisa integrada", + "@extensionDefaultProviderSubtitle": { + "description": "Subtitle for default provider" + }, + "extensionAuthor": "Autor", + "@extensionAuthor": { + "description": "Extension detail - author" + }, + "extensionId": "ID", + "@extensionId": { + "description": "Extension detail - unique ID" + }, + "extensionError": "Erro", + "@extensionError": { + "description": "Extension detail - error message" + }, + "extensionCapabilities": "Funcionalidades", + "@extensionCapabilities": { + "description": "Section header - extension features" + }, + "extensionMetadataProvider": "Provedor de Metadados", + "@extensionMetadataProvider": { + "description": "Capability - provides metadata" + }, + "extensionDownloadProvider": "Provedor de Download", + "@extensionDownloadProvider": { + "description": "Capability - provides downloads" + }, + "extensionLyricsProvider": "Provedor de Letras", + "@extensionLyricsProvider": { + "description": "Capability - provides lyrics" + }, + "extensionUrlHandler": "Gerenciador de URL", + "@extensionUrlHandler": { + "description": "Capability - handles URLs" + }, + "extensionQualityOptions": "Opções de Qualidade", + "@extensionQualityOptions": { + "description": "Capability - quality selection" + }, + "extensionPostProcessingHooks": "Ganchos de Pós-Processamento", + "@extensionPostProcessingHooks": { + "description": "Capability - post-processing" + }, + "extensionPermissions": "Permissões", + "@extensionPermissions": { + "description": "Section header - required permissions" + }, + "extensionSettings": "Configurações", + "@extensionSettings": { + "description": "Section header - extension settings" + }, + "extensionRemoveButton": "Remover Extensão", + "@extensionRemoveButton": { + "description": "Button to uninstall extension" + }, + "extensionUpdated": "Atualizado", + "@extensionUpdated": { + "description": "Extension detail - last update" + }, + "extensionMinAppVersion": "Versão Mínima do App", + "@extensionMinAppVersion": { + "description": "Extension detail - minimum app version" + }, + "extensionCustomTrackMatching": "Correspondência de Faixa Personalizada", + "@extensionCustomTrackMatching": { + "description": "Capability - custom track matching algorithm" + }, + "extensionPostProcessing": "Pós-Processamento", + "@extensionPostProcessing": { + "description": "Capability - post-download processing" + }, + "extensionHooksAvailable": "{count} gancho(s) disponíveis", + "@extensionHooksAvailable": { + "description": "Post-processing hooks count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "extensionPatternsCount": "{count} padrão(ões)", + "@extensionPatternsCount": { + "description": "URL patterns count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "extensionStrategy": "Estratégia: {strategy}", + "@extensionStrategy": { + "description": "Track matching strategy name", + "placeholders": { + "strategy": { + "type": "String" + } + } + }, + "extensionsProviderPrioritySection": "Prioridade de Provedor", + "@extensionsProviderPrioritySection": { + "description": "Section header - provider priority" + }, + "extensionsInstalledSection": "Extensões Instaladas", + "@extensionsInstalledSection": { + "description": "Section header - installed extensions" + }, + "extensionsNoExtensions": "Nenhuma extensão instalada", + "@extensionsNoExtensions": { + "description": "Empty state - no extensions" + }, + "extensionsNoExtensionsSubtitle": "Instale arquivos .spotiflac-ext para adicionar novos provedores", + "@extensionsNoExtensionsSubtitle": { + "description": "Empty state subtitle" + }, + "extensionsInstallButton": "Instalar Extensão", + "@extensionsInstallButton": { + "description": "Button to install extension from file" + }, + "extensionsInfoTip": "Extensões podem adicionar novos metadados e baixar provedores. Somente instale extensões a partir de fontes confiáveis.", + "@extensionsInfoTip": { + "description": "Security warning about extensions" + }, + "extensionsInstalledSuccess": "Extensão instalada com sucesso", + "@extensionsInstalledSuccess": { + "description": "Success message after install" + }, + "extensionsDownloadPriority": "Prioridade de Download", + "@extensionsDownloadPriority": { + "description": "Setting - download provider order" + }, + "extensionsDownloadPrioritySubtitle": "Definir ordem do serviço de download", + "@extensionsDownloadPrioritySubtitle": { + "description": "Subtitle for download priority" + }, + "extensionsNoDownloadProvider": "Nenhuma extensão com provedor de download", + "@extensionsNoDownloadProvider": { + "description": "Empty state - no download providers" + }, + "extensionsMetadataPriority": "Prioridade de Metadados", + "@extensionsMetadataPriority": { + "description": "Setting - metadata provider order" + }, + "extensionsMetadataPrioritySubtitle": "Definir ordem de origem de pesquisa e metadados", + "@extensionsMetadataPrioritySubtitle": { + "description": "Subtitle for metadata priority" + }, + "extensionsNoMetadataProvider": "Nenhuma extensão com provedor de metadados", + "@extensionsNoMetadataProvider": { + "description": "Empty state - no metadata providers" + }, + "extensionsSearchProvider": "Provedor de Pesquisa", + "@extensionsSearchProvider": { + "description": "Setting - search provider selection" + }, + "extensionsNoCustomSearch": "Nenhuma extensão com pesquisa personalizada", + "@extensionsNoCustomSearch": { + "description": "Empty state - no search providers" + }, + "extensionsSearchProviderDescription": "Escolha qual serviço utilizar para pesquisar faixas", + "@extensionsSearchProviderDescription": { + "description": "Search provider setting description" + }, + "extensionsCustomSearch": "Busca personalizada", + "@extensionsCustomSearch": { + "description": "Label for custom search provider" + }, + "extensionsErrorLoading": "Erro ao carregar extensão", + "@extensionsErrorLoading": { + "description": "Error message when extension fails to load" + }, + "qualityFlacLossless": "FLAC Lossless", + "@qualityFlacLossless": { + "description": "Quality option - CD quality FLAC" + }, + "qualityFlacLosslessSubtitle": "16-bit / 44.1kHz", + "@qualityFlacLosslessSubtitle": { + "description": "Technical spec for lossless" + }, + "qualityHiResFlac": "Hi-Res FLAC", + "@qualityHiResFlac": { + "description": "Quality option - high resolution FLAC" + }, + "qualityHiResFlacSubtitle": "24-bit / até 96kHz", + "@qualityHiResFlacSubtitle": { + "description": "Technical spec for hi-res" + }, + "qualityHiResFlacMax": "Hi-Res FLAC Max", + "@qualityHiResFlacMax": { + "description": "Quality option - maximum resolution FLAC" + }, + "qualityHiResFlacMaxSubtitle": "24-bit / até 192kHz", + "@qualityHiResFlacMaxSubtitle": { + "description": "Technical spec for hi-res max" + }, + "qualityMp3": "MP3", + "@qualityMp3": { + "description": "Quality option - MP3 lossy format" + }, + "qualityMp3Subtitle": "320kbps (convertido de FLAC)", + "@qualityMp3Subtitle": { + "description": "Technical spec for MP3" + }, + "enableMp3Option": "Ativar Opção MP3", + "@enableMp3Option": { + "description": "Setting - enable MP3 quality option" + }, + "enableMp3OptionSubtitleOn": "A opção de qualidade MP3 está disponível", + "@enableMp3OptionSubtitleOn": { + "description": "Subtitle when MP3 is enabled" + }, + "enableMp3OptionSubtitleOff": "Baixa FLAC e em seguida converte para MP3 320kbps", + "@enableMp3OptionSubtitleOff": { + "description": "Subtitle when MP3 is disabled" + }, + "qualityNote": "A qualidade real depende da faixa que estiver disponível no serviço", + "@qualityNote": { + "description": "Note about quality availability" + }, + "downloadAskBeforeDownload": "Perguntar qualidade antes de baixar", + "@downloadAskBeforeDownload": { + "description": "Setting - show quality picker" + }, + "downloadDirectory": "Pasta de Download", + "@downloadDirectory": { + "description": "Setting - download folder" + }, + "downloadSeparateSinglesFolder": "Pasta de Singles Separada", + "@downloadSeparateSinglesFolder": { + "description": "Setting - separate folder for singles" + }, + "downloadAlbumFolderStructure": "Estrutura da Pasta de Álbum", + "@downloadAlbumFolderStructure": { + "description": "Setting - album folder organization" + }, + "downloadSaveFormat": "Formato para Salvar", + "@downloadSaveFormat": { + "description": "Setting - output file format" + }, + "downloadSelectService": "Selecionar Serviço", + "@downloadSelectService": { + "description": "Dialog title - choose download service" + }, + "downloadSelectQuality": "Selecionar Qualidade", + "@downloadSelectQuality": { + "description": "Dialog title - choose audio quality" + }, + "downloadFrom": "Baixar De", + "@downloadFrom": { + "description": "Label - download source" + }, + "downloadDefaultQualityLabel": "Qualidade Padrão", + "@downloadDefaultQualityLabel": { + "description": "Label - default quality setting" + }, + "downloadBestAvailable": "Melhor Disponível", + "@downloadBestAvailable": { + "description": "Quality option - highest available" + }, + "folderNone": "Nenhuma", + "@folderNone": { + "description": "Folder option - no organization" + }, + "folderNoneSubtitle": "Salvar todos os arquivos diretamente na pasta de download", + "@folderNoneSubtitle": { + "description": "Subtitle for no folder organization" + }, + "folderArtist": "Artista", + "@folderArtist": { + "description": "Folder option - by artist" + }, + "folderArtistSubtitle": "Nome do Artista/arquivo", + "@folderArtistSubtitle": { + "description": "Folder structure example" + }, + "folderAlbum": "Álbum", + "@folderAlbum": { + "description": "Folder option - by album" + }, + "folderAlbumSubtitle": "Nome do Álbum/arquivo", + "@folderAlbumSubtitle": { + "description": "Folder structure example" + }, + "folderArtistAlbum": "Artista/Álbum", + "@folderArtistAlbum": { + "description": "Folder option - nested" + }, + "folderArtistAlbumSubtitle": "Nome do Artista/Nome do Álbum/arquivo", + "@folderArtistAlbumSubtitle": { + "description": "Folder structure example" + }, + "serviceTidal": "Tidal", + "@serviceTidal": { + "description": "Service name - DO NOT TRANSLATE" + }, + "serviceQobuz": "Qobuz", + "@serviceQobuz": { + "description": "Service name - DO NOT TRANSLATE" + }, + "serviceAmazon": "Amazon", + "@serviceAmazon": { + "description": "Service name - DO NOT TRANSLATE" + }, + "serviceDeezer": "Deezer", + "@serviceDeezer": { + "description": "Service name - DO NOT TRANSLATE" + }, + "serviceSpotify": "Spotify", + "@serviceSpotify": { + "description": "Service name - DO NOT TRANSLATE" + }, + "appearanceAmoledDark": "Escuro AMOLED", + "@appearanceAmoledDark": { + "description": "Theme option - pure black" + }, + "appearanceAmoledDarkSubtitle": "Fundo preto puro", + "@appearanceAmoledDarkSubtitle": { + "description": "Subtitle for AMOLED dark" + }, + "appearanceChooseAccentColor": "Escolha a Cor de Destaque", + "@appearanceChooseAccentColor": { + "description": "Color picker dialog title" + }, + "appearanceChooseTheme": "Modo do Tema", + "@appearanceChooseTheme": { + "description": "Theme picker dialog title" + }, + "queueTitle": "Fila de Download", + "@queueTitle": { + "description": "Queue screen title" + }, + "queueClearAll": "Limpar Tudo", + "@queueClearAll": { + "description": "Button - clear all queue items" + }, + "queueClearAllMessage": "Você tem certeza que deseja limpar todos os downloads?", + "@queueClearAllMessage": { + "description": "Clear queue confirmation" + }, + "queueEmpty": "Nenhum download na fila", + "@queueEmpty": { + "description": "Empty queue state title" + }, + "queueEmptySubtitle": "Adicione faixas a partir da tela inicial", + "@queueEmptySubtitle": { + "description": "Empty queue state subtitle" + }, + "queueClearCompleted": "Limpar concluídos", + "@queueClearCompleted": { + "description": "Button - clear finished downloads" + }, + "queueDownloadFailed": "Download Falhou", + "@queueDownloadFailed": { + "description": "Error dialog title" + }, + "queueTrackLabel": "Faixa:", + "@queueTrackLabel": { + "description": "Label in error dialog" + }, + "queueArtistLabel": "Artista:", + "@queueArtistLabel": { + "description": "Label in error dialog" + }, + "queueErrorLabel": "Erro:", + "@queueErrorLabel": { + "description": "Label in error dialog" + }, + "queueUnknownError": "Erro desconhecido", + "@queueUnknownError": { + "description": "Fallback error message" + }, + "albumFolderArtistAlbum": "Artista / Álbum", + "@albumFolderArtistAlbum": { + "description": "Album folder option" + }, + "albumFolderArtistAlbumSubtitle": "Álbuns/Nome do Artista/Nome do Álbum/", + "@albumFolderArtistAlbumSubtitle": { + "description": "Folder structure example" + }, + "albumFolderArtistYearAlbum": "Artista / [Ano] Álbum", + "@albumFolderArtistYearAlbum": { + "description": "Album folder option with year" + }, + "albumFolderArtistYearAlbumSubtitle": "Álbuns/Nome do Artista/[2005] Nome do Álbum/", + "@albumFolderArtistYearAlbumSubtitle": { + "description": "Folder structure example" + }, + "albumFolderAlbumOnly": "Somente Álbum", + "@albumFolderAlbumOnly": { + "description": "Album folder option" + }, + "albumFolderAlbumOnlySubtitle": "Albums/Nome do Álbum/", + "@albumFolderAlbumOnlySubtitle": { + "description": "Folder structure example" + }, + "albumFolderYearAlbum": "[Ano] Álbum", + "@albumFolderYearAlbum": { + "description": "Album folder option with year" + }, + "albumFolderYearAlbumSubtitle": "Álbuns/[2005] Nome do Álbum/", + "@albumFolderYearAlbumSubtitle": { + "description": "Folder structure example" + }, + "albumFolderArtistAlbumSingles": "Artista / Álbum + Singles", + "@albumFolderArtistAlbumSingles": { + "description": "Album folder option with singles inside artist" + }, + "albumFolderArtistAlbumSinglesSubtitle": "Artista/Álbum/ e Artista/Singles/", + "@albumFolderArtistAlbumSinglesSubtitle": { + "description": "Folder structure example" + }, + "downloadedAlbumDeleteSelected": "Apagar Selecionados", + "@downloadedAlbumDeleteSelected": { + "description": "Button - delete selected tracks" + }, + "downloadedAlbumDeleteMessage": "Excluir {count} {count, plural, one {}=1{faixa} other{faixas}} deste álbum?\n\nIsso também excluirá os arquivos do armazenamento.", + "@downloadedAlbumDeleteMessage": { + "description": "Delete confirmation with count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "downloadedAlbumTracksHeader": "Faixas", + "@downloadedAlbumTracksHeader": { + "description": "Section header for tracks" + }, + "downloadedAlbumDownloadedCount": "{count} baixado(s)", + "@downloadedAlbumDownloadedCount": { + "description": "Downloaded tracks count badge", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "downloadedAlbumSelectedCount": "{count} selecionado(s)", + "@downloadedAlbumSelectedCount": { + "description": "Selection count indicator", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "downloadedAlbumAllSelected": "Todas as faixas selecionadas", + "@downloadedAlbumAllSelected": { + "description": "Status - all items selected" + }, + "downloadedAlbumTapToSelect": "Toque nas faixas para selecionar", + "@downloadedAlbumTapToSelect": { + "description": "Selection hint" + }, + "downloadedAlbumDeleteCount": "Apagar {count} {count, plural, one {}=1{faixa} other{faixas}}", + "@downloadedAlbumDeleteCount": { + "description": "Delete button text with count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "downloadedAlbumSelectToDelete": "Selecione as faixas para apagar", + "@downloadedAlbumSelectToDelete": { + "description": "Placeholder when nothing selected" + }, + "downloadedAlbumDiscHeader": "Disco {discNumber}", + "@downloadedAlbumDiscHeader": { + "description": "Header for disc separator in multi-disc albums", + "placeholders": { + "discNumber": { + "type": "int", + "example": "1" + } + } + }, + "utilityFunctions": "Funções Utilitárias", + "@utilityFunctions": { + "description": "Extension capability - utility functions" + }, + "recentTypeArtist": "Artista", + "@recentTypeArtist": { + "description": "Recent access item type - artist" + }, + "recentTypeAlbum": "Álbum", + "@recentTypeAlbum": { + "description": "Recent access item type - album" + }, + "recentTypeSong": "Música", + "@recentTypeSong": { + "description": "Recent access item type - song/track" + }, + "recentTypePlaylist": "Playlist", + "@recentTypePlaylist": { + "description": "Recent access item type - playlist" + }, + "recentPlaylistInfo": "Playlist: {name}", + "@recentPlaylistInfo": { + "description": "Snackbar message when tapping playlist in recent access", + "placeholders": { + "name": { + "type": "String", + "description": "Playlist name" + } + } + }, + "errorGeneric": "Erro: {message}", + "@errorGeneric": { + "description": "Generic error message format", + "placeholders": { + "message": { + "type": "String", + "description": "Error message" + } + } + }, + "discographyDownload": "Baixar Discografia", + "@discographyDownload": { + "description": "Button - download artist discography" + }, + "discographyDownloadAll": "Baixar Tudo", + "@discographyDownloadAll": { + "description": "Option - download entire discography" + }, + "discographyDownloadAllSubtitle": "{count} faixas de {albumCount} lançamentos", + "@discographyDownloadAllSubtitle": { + "description": "Subtitle showing total tracks and albums", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographyAlbumsOnly": "Somente Álbuns", + "@discographyAlbumsOnly": { + "description": "Option - download only albums" + }, + "discographyAlbumsOnlySubtitle": "{count} faixas de {albumCount} álbuns", + "@discographyAlbumsOnlySubtitle": { + "description": "Subtitle showing album tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySinglesOnly": "Somente Singles e EPs", + "@discographySinglesOnly": { + "description": "Option - download only singles" + }, + "discographySinglesOnlySubtitle": "{count} faixas de {albumCount} singles", + "@discographySinglesOnlySubtitle": { + "description": "Subtitle showing singles tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySelectAlbums": "Selecione Álbuns...", + "@discographySelectAlbums": { + "description": "Option - manually select albums to download" + }, + "discographySelectAlbumsSubtitle": "Escolher álbuns ou singles específicos", + "@discographySelectAlbumsSubtitle": { + "description": "Subtitle for select albums option" + }, + "discographyFetchingTracks": "Buscando faixas...", + "@discographyFetchingTracks": { + "description": "Progress - fetching album tracks" + }, + "discographyFetchingAlbum": "Buscando {current} de {total}...", + "@discographyFetchingAlbum": { + "description": "Progress - fetching specific album", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "discographySelectedCount": "{count} selecionado(s)", + "@discographySelectedCount": { + "description": "Selection count badge", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographyDownloadSelected": "Baixar Selecionados", + "@discographyDownloadSelected": { + "description": "Button - download selected albums" + }, + "discographyAddedToQueue": "{count} faixas adicionadas à fila", + "@discographyAddedToQueue": { + "description": "Snackbar - tracks added from discography", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographySkippedDownloaded": "{added} adicionada(s), {skipped} já baixada(s)", + "@discographySkippedDownloaded": { + "description": "Snackbar - with skipped tracks count", + "placeholders": { + "added": { + "type": "int" + }, + "skipped": { + "type": "int" + } + } + }, + "discographyNoAlbums": "Nenhum álbum disponível", + "@discographyNoAlbums": { + "description": "Error - no albums found for artist" + }, + "discographyFailedToFetch": "Falha ao obter alguns álbuns", + "@discographyFailedToFetch": { + "description": "Error - some albums failed to load" + } +} \ No newline at end of file diff --git a/lib/l10n/arb/app_ru.arb b/lib/l10n/arb/app_ru.arb index cf315776..a98f609a 100644 --- a/lib/l10n/arb/app_ru.arb +++ b/lib/l10n/arb/app_ru.arb @@ -85,7 +85,7 @@ "@historyFilterSingles": { "description": "Filter chip - show singles only" }, - "historyTracksCount": "{count, plural, one {{count} трек} few {{count} трека} many {{count} треков} other {{count} треков}}", + "historyTracksCount": "{count, plural, one {{count} трек} few {{count} трека} many {{count} треков} =1 {1 трек} other {{count} треков}}", "@historyTracksCount": { "description": "Track count with plural form", "placeholders": { @@ -94,7 +94,7 @@ } } }, - "historyAlbumsCount": "{count, plural, one {{count} альбом} few {{count} альбома} many {{count} альбомов} other {{count} альбомов}}", + "historyAlbumsCount": "{count, plural, one {{count} альбом} few {{count} альбома} many {{count} альбомов} =1 {1 альбом} other {{count} альбомов}}", "@historyAlbumsCount": { "description": "Album count with plural form", "placeholders": { @@ -127,6 +127,10 @@ "@historyNoSinglesSubtitle": { "description": "Empty state subtitle for singles filter" }, + "historySearchHint": "Поиск в истории...", + "@historySearchHint": { + "description": "Search bar placeholder in history" + }, "settingsTitle": "Настройки", "@settingsTitle": { "description": "Settings screen title" @@ -512,6 +516,10 @@ "@aboutLogoArtist": { "description": "Role description for logo artist" }, + "aboutTranslators": "Переводчики", + "@aboutTranslators": { + "description": "Section for translators" + }, "aboutSpecialThanks": "Особая благодарность", "@aboutSpecialThanks": { "description": "Section for special thanks" @@ -544,6 +552,26 @@ "@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" + }, "aboutSupport": "Поддержка", "@aboutSupport": { "description": "Section for support/donation links" @@ -596,7 +624,7 @@ "@albumTitle": { "description": "Album screen title" }, - "albumTracks": "{count, plural, one {{count} трек} few {{count} трека} many {{count} треков} other {{count} треков}}", + "albumTracks": "{count, plural, one {{count} трек} few {{count} трека} many {{count} треков} =1 {1 трек} other {{count} треков}}", "@albumTracks": { "description": "Album track count", "placeholders": { @@ -633,7 +661,7 @@ "@artistCompilations": { "description": "Section header for compilations" }, - "artistReleases": "{count, plural, one {{count} релиз} few {{count} релиза} many {{count} релизов} other {{count} релизов}}", + "artistReleases": "{count, plural, one {{count} релиз} few {{count} релиза} many {{count} релизов} =1 {1 релиз} other {{count} релизов}}", "@artistReleases": { "description": "Artist release count", "placeholders": { @@ -1108,7 +1136,7 @@ "@dialogDeleteSelectedTitle": { "description": "Dialog title - delete selected items" }, - "dialogDeleteSelectedMessage": "Удалить {count} {count, plural, one {трек} few {трека} many {треков} other{треков}} из истории?\n\nЭто также удалит файлы из хранилища.", + "dialogDeleteSelectedMessage": "Удалить {count} {count, plural, one {трек} few {трека} many {треков} =1{трек} other{треков}} из истории?\n\nЭто также удалит файлы из хранилища.", "@dialogDeleteSelectedMessage": { "description": "Dialog message - delete selected tracks", "placeholders": { @@ -1122,6 +1150,15 @@ "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": { @@ -1169,7 +1206,7 @@ "@snackbarCredentialsCleared": { "description": "Snackbar - Spotify credentials removed" }, - "snackbarDeletedTracks": "Удалено {count} {count, plural, one {трек} few {трека} many {треков} other{треков}}", + "snackbarDeletedTracks": "Удалено {count} {count, plural, one {трек} few {трека} many {треков} =1{трек} other{треков}}", "@snackbarDeletedTracks": { "description": "Snackbar - tracks deleted", "placeholders": { @@ -1376,7 +1413,7 @@ "@selectionTapToSelect": { "description": "Hint - how to select items" }, - "selectionDeleteTracks": "Удалить {count} {count, plural, one {трек} few {трека} many {треков} other{треков}}", + "selectionDeleteTracks": "Удалить {count} {count, plural, one {трек} few {трека} many {треков} =1{трек} other{треков}}", "@selectionDeleteTracks": { "description": "Delete button with count", "placeholders": { @@ -1851,6 +1888,42 @@ "@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" @@ -1916,7 +1989,7 @@ } } }, - "tracksCount": "{count, plural, one {{count} трек} few {{count} трека} many {{count} треков} other {{count} треков}}", + "tracksCount": "{count, plural, one {{count} трек} few {{count} трека} many {{count} треков} =1 {1 трек} other {{count} треков}}", "@tracksCount": { "description": "Track count display", "placeholders": { @@ -1997,6 +2070,18 @@ "@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" @@ -2017,6 +2102,18 @@ "@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" @@ -2328,6 +2425,26 @@ "@qualityHiResFlacMaxSubtitle": { "description": "Technical spec for hi-res max" }, + "qualityMp3": "MP3", + "@qualityMp3": { + "description": "Quality option - MP3 lossy format" + }, + "qualityMp3Subtitle": "320 кбит/с (Конвертировано из FLAC)", + "@qualityMp3Subtitle": { + "description": "Technical spec for MP3" + }, + "enableMp3Option": "Скачивние в MP3", + "@enableMp3Option": { + "description": "Setting - enable MP3 quality option" + }, + "enableMp3OptionSubtitleOn": "MP3 качество доступно", + "@enableMp3OptionSubtitleOn": { + "description": "Subtitle when MP3 is enabled" + }, + "enableMp3OptionSubtitleOff": "Скачивать FLAC и конвертировать в MP3 320 кбит/с", + "@enableMp3OptionSubtitleOff": { + "description": "Subtitle when MP3 is disabled" + }, "qualityNote": "Фактическое качество зависит от доступности треков в сервисе", "@qualityNote": { "description": "Note about quality availability" @@ -2516,11 +2633,19 @@ "@albumFolderYearAlbumSubtitle": { "description": "Folder structure example" }, + "albumFolderArtistAlbumSingles": "Исполнитель / Альбом + Синглы", + "@albumFolderArtistAlbumSingles": { + "description": "Album folder option with singles inside artist" + }, + "albumFolderArtistAlbumSinglesSubtitle": "Исполнитель/Альбом и Исполнитель/Сингл/", + "@albumFolderArtistAlbumSinglesSubtitle": { + "description": "Folder structure example" + }, "downloadedAlbumDeleteSelected": "Удалить выбранные", "@downloadedAlbumDeleteSelected": { "description": "Button - delete selected tracks" }, - "downloadedAlbumDeleteMessage": "Удалить {count} {count, plural, one {трек} few {трека} many {треков} other{треков}} из этого альбома?\n\nЭто также удалит файлы из хранилища.", + "downloadedAlbumDeleteMessage": "Удалить {count} {count, plural, one {трек} few {трека} many {треков} =1{трек} other{треков}} из этого альбома?\n\nЭто также удалит файлы из хранилища.", "@downloadedAlbumDeleteMessage": { "description": "Delete confirmation with count", "placeholders": { @@ -2559,7 +2684,7 @@ "@downloadedAlbumTapToSelect": { "description": "Selection hint" }, - "downloadedAlbumDeleteCount": "Удалить {count} {count, plural, one {трек} few {трека} many {треков} other{треков}}", + "downloadedAlbumDeleteCount": "Удалить {count} {count, plural, one {трек} few {трека} many {треков} =1{трек} other{треков}}", "@downloadedAlbumDeleteCount": { "description": "Delete button text with count", "placeholders": { @@ -2572,6 +2697,16 @@ "@downloadedAlbumSelectToDelete": { "description": "Placeholder when nothing selected" }, + "downloadedAlbumDiscHeader": "Диск {discNumber}", + "@downloadedAlbumDiscHeader": { + "description": "Header for disc separator in multi-disc albums", + "placeholders": { + "discNumber": { + "type": "int", + "example": "1" + } + } + }, "utilityFunctions": "Функции утилиты", "@utilityFunctions": { "description": "Extension capability - utility functions" @@ -2611,5 +2746,123 @@ "description": "Error message" } } + }, + "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" } } \ No newline at end of file diff --git a/lib/l10n/arb/app_tr-TR.arb b/lib/l10n/arb/app_tr-TR.arb new file mode 100644 index 00000000..a6148fa1 --- /dev/null +++ b/lib/l10n/arb/app_tr-TR.arb @@ -0,0 +1,2868 @@ +{ + "@@locale": "tr", + "@@last_modified": "2026-01-16", + "appName": "SpotiFLAC", + "@appName": { + "description": "App name - DO NOT TRANSLATE" + }, + "appDescription": "Spotify şarkılarını Tidal, Qobuz ve Amazon Music'den yüksek kalitede indir.", + "@appDescription": { + "description": "App description shown in about page" + }, + "navHome": "Ara", + "@navHome": { + "description": "Bottom navigation - Home tab" + }, + "navHistory": "Geçmiş", + "@navHistory": { + "description": "Bottom navigation - History tab" + }, + "navSettings": "Ayarlar", + "@navSettings": { + "description": "Bottom navigation - Settings tab" + }, + "navStore": "Dükkan", + "@navStore": { + "description": "Bottom navigation - Extension store tab" + }, + "homeTitle": "Ara", + "@homeTitle": { + "description": "Home screen title" + }, + "homeSearchHint": "Spotify URL'i yapıştır veya ara...", + "@homeSearchHint": { + "description": "Placeholder text in search box" + }, + "homeSearchHintExtension": "{extensionName} ile arat...", + "@homeSearchHintExtension": { + "description": "Placeholder when extension search is active", + "placeholders": { + "extensionName": { + "type": "String", + "description": "Name of the active extension" + } + } + }, + "homeSubtitle": "Spotify linki yapıştır veya isimle arat", + "@homeSubtitle": { + "description": "Subtitle shown below search box" + }, + "homeSupports": "Desteklenen linkler: Şarkı, Albüm, Çalma Listesi, Sanatçı linkleri", + "@homeSupports": { + "description": "Info text about supported URL types" + }, + "homeRecent": "En son", + "@homeRecent": { + "description": "Section header for recent searches" + }, + "historyTitle": "Geçmiş", + "@historyTitle": { + "description": "History screen title" + }, + "historyDownloading": "({count}) tane indiriliyor", + "@historyDownloading": { + "description": "Tab showing active downloads count", + "placeholders": { + "count": { + "type": "int", + "description": "Number of active downloads" + } + } + }, + "historyDownloaded": "İndirildi", + "@historyDownloaded": { + "description": "Tab showing completed downloads" + }, + "historyFilterAll": "Tümü", + "@historyFilterAll": { + "description": "Filter chip - show all items" + }, + "historyFilterAlbums": "Albümler", + "@historyFilterAlbums": { + "description": "Filter chip - show albums only" + }, + "historyFilterSingles": "Single'lar", + "@historyFilterSingles": { + "description": "Filter chip - show singles only" + }, + "historyTracksCount": "{count, plural, one {}=1{1 şarkı} other{{count} şarkı}}", + "@historyTracksCount": { + "description": "Track count with plural form", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "historyAlbumsCount": "{count, plural, one {}=1{1 albüm} other{{count} albüm}}", + "@historyAlbumsCount": { + "description": "Album count with plural form", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "historyNoDownloads": "İndirme geçmişi yok", + "@historyNoDownloads": { + "description": "Empty state title" + }, + "historyNoDownloadsSubtitle": "İndirilen şarkılar burada gözükecek", + "@historyNoDownloadsSubtitle": { + "description": "Empty state subtitle" + }, + "historyNoAlbums": "İndirilen albüm yok", + "@historyNoAlbums": { + "description": "Empty state when filtering albums" + }, + "historyNoAlbumsSubtitle": "Albümleri burada görmek için bir albümden birden fazla şarkı indir", + "@historyNoAlbumsSubtitle": { + "description": "Empty state subtitle for albums filter" + }, + "historyNoSingles": "Single indirilmemiş", + "@historyNoSingles": { + "description": "Empty state when filtering singles" + }, + "historyNoSinglesSubtitle": "Single şarkılar burada gözükecek", + "@historyNoSinglesSubtitle": { + "description": "Empty state subtitle for singles filter" + }, + "historySearchHint": "Arama geçmişi...", + "@historySearchHint": { + "description": "Search bar placeholder in history" + }, + "settingsTitle": "Ayarlar", + "@settingsTitle": { + "description": "Settings screen title" + }, + "settingsDownload": "İndirme", + "@settingsDownload": { + "description": "Settings section - download options" + }, + "settingsAppearance": "Görünüm", + "@settingsAppearance": { + "description": "Settings section - visual customization" + }, + "settingsOptions": "Seçenekler", + "@settingsOptions": { + "description": "Settings section - app options" + }, + "settingsExtensions": "Eklentiler", + "@settingsExtensions": { + "description": "Settings section - extension management" + }, + "settingsAbout": "Hakkında", + "@settingsAbout": { + "description": "Settings section - app info" + }, + "downloadTitle": "İndirme", + "@downloadTitle": { + "description": "Download settings page title" + }, + "downloadLocation": "İndirme Konumu", + "@downloadLocation": { + "description": "Setting for download folder" + }, + "downloadLocationSubtitle": "Dosyaları nereye kaydedeceğinizi seçin", + "@downloadLocationSubtitle": { + "description": "Subtitle for download location" + }, + "downloadLocationDefault": "Varsayılan dizin", + "@downloadLocationDefault": { + "description": "Shown when using default folder" + }, + "downloadDefaultService": "Varsayılan Hizmet", + "@downloadDefaultService": { + "description": "Setting for preferred download service (Tidal/Qobuz/Amazon)" + }, + "downloadDefaultServiceSubtitle": "İndirmeler için kullanılan hizmet", + "@downloadDefaultServiceSubtitle": { + "description": "Subtitle for default service" + }, + "downloadDefaultQuality": "Varsayılan Kalite", + "@downloadDefaultQuality": { + "description": "Setting for audio quality" + }, + "downloadAskQuality": "İndirmeden Önce Kaliteyi Sor", + "@downloadAskQuality": { + "description": "Toggle to show quality picker" + }, + "downloadAskQualitySubtitle": "Her indirmeden önce kalite seçim ekranını göster", + "@downloadAskQualitySubtitle": { + "description": "Subtitle for ask quality toggle" + }, + "downloadFilenameFormat": "Dosya adı formatı", + "@downloadFilenameFormat": { + "description": "Setting for output filename pattern" + }, + "downloadFolderOrganization": "Dosya Organizasyonu", + "@downloadFolderOrganization": { + "description": "Setting for folder structure" + }, + "downloadSeparateSingles": "Single'ları Ayır", + "@downloadSeparateSingles": { + "description": "Toggle to separate single tracks" + }, + "downloadSeparateSinglesSubtitle": "Single şarkıları ayrı dosyaya koy", + "@downloadSeparateSinglesSubtitle": { + "description": "Subtitle for separate singles toggle" + }, + "qualityBest": "Mevcut en iyi", + "@qualityBest": { + "description": "Audio quality option - highest available" + }, + "qualityFlac": "FLAC", + "@qualityFlac": { + "description": "Audio quality option - FLAC lossless" + }, + "quality320": "320 kbps", + "@quality320": { + "description": "Audio quality option - 320kbps MP3" + }, + "quality128": "128 kbps", + "@quality128": { + "description": "Audio quality option - 128kbps MP3" + }, + "appearanceTitle": "Görünüm", + "@appearanceTitle": { + "description": "Appearance settings page title" + }, + "appearanceTheme": "Tema", + "@appearanceTheme": { + "description": "Theme mode setting" + }, + "appearanceThemeSystem": "Sistem", + "@appearanceThemeSystem": { + "description": "Follow system theme" + }, + "appearanceThemeLight": "Açık", + "@appearanceThemeLight": { + "description": "Light theme" + }, + "appearanceThemeDark": "Koyu", + "@appearanceThemeDark": { + "description": "Dark theme" + }, + "appearanceDynamicColor": "Dinamik Renk", + "@appearanceDynamicColor": { + "description": "Material You dynamic colors" + }, + "appearanceDynamicColorSubtitle": "Duvar kağıdının renklerini kullan", + "@appearanceDynamicColorSubtitle": { + "description": "Subtitle for dynamic color" + }, + "appearanceAccentColor": "Vurgu Rengi", + "@appearanceAccentColor": { + "description": "Custom accent color picker" + }, + "appearanceHistoryView": "Geçmiş Düzeni", + "@appearanceHistoryView": { + "description": "Layout style for history" + }, + "appearanceHistoryViewList": "Liste", + "@appearanceHistoryViewList": { + "description": "List layout option" + }, + "appearanceHistoryViewGrid": "Izgara", + "@appearanceHistoryViewGrid": { + "description": "Grid layout option" + }, + "optionsTitle": "Seçenekler", + "@optionsTitle": { + "description": "Options settings page title" + }, + "optionsSearchSource": "Arama Kaynağı", + "@optionsSearchSource": { + "description": "Section for search provider settings" + }, + "optionsPrimaryProvider": "Ana Kaynek", + "@optionsPrimaryProvider": { + "description": "Main search provider setting" + }, + "optionsPrimaryProviderSubtitle": "Şarkı ismi aratılırken kullanılan kaynak.", + "@optionsPrimaryProviderSubtitle": { + "description": "Subtitle for primary provider" + }, + "optionsUsingExtension": "Kullanılan eklenti: {extensionName}", + "@optionsUsingExtension": { + "description": "Shows active extension name", + "placeholders": { + "extensionName": { + "type": "String" + } + } + }, + "optionsSwitchBack": "Dahili kaynaklara dönmek için Deezer veya Spotify'a tıkla", + "@optionsSwitchBack": { + "description": "Hint to switch back to built-in providers" + }, + "optionsAutoFallback": "Diğerlerini dene", + "@optionsAutoFallback": { + "description": "Auto-retry with other services" + }, + "optionsAutoFallbackSubtitle": "İndirme başarısız olursa diğer hizmetleri dene", + "@optionsAutoFallbackSubtitle": { + "description": "Subtitle for auto fallback" + }, + "optionsUseExtensionProviders": "Eklenti sağlayıcılarını kullan", + "@optionsUseExtensionProviders": { + "description": "Enable extension download providers" + }, + "optionsUseExtensionProvidersOn": "Eklentiler ilk denenecek", + "@optionsUseExtensionProvidersOn": { + "description": "Status when extension providers enabled" + }, + "optionsUseExtensionProvidersOff": "Sadece dahili sağlayıcıları kullan", + "@optionsUseExtensionProvidersOff": { + "description": "Status when extension providers disabled" + }, + "optionsEmbedLyrics": "Şarkı Sözlerini Göm", + "@optionsEmbedLyrics": { + "description": "Embed lyrics in audio files" + }, + "optionsEmbedLyricsSubtitle": "Senkronize şarkı sözlerini FLAC dosyalarına göm", + "@optionsEmbedLyricsSubtitle": { + "description": "Subtitle for embed lyrics" + }, + "optionsMaxQualityCover": "En Yüksek Kapak Kalitesi", + "@optionsMaxQualityCover": { + "description": "Download highest quality album art" + }, + "optionsMaxQualityCoverSubtitle": "En yüksek kalitedeki albüm kapaklarını indir", + "@optionsMaxQualityCoverSubtitle": { + "description": "Subtitle for max quality cover" + }, + "optionsConcurrentDownloads": "Eş Zamanlı İndirmeler", + "@optionsConcurrentDownloads": { + "description": "Number of parallel downloads" + }, + "optionsConcurrentSequential": "Sıralı (Birer birer)", + "@optionsConcurrentSequential": { + "description": "Download one at a time" + }, + "optionsConcurrentParallel": "Aynı anda {count} indirme", + "@optionsConcurrentParallel": { + "description": "Multiple parallel downloads", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "optionsConcurrentWarning": "Aynı anda birden fazla indirme sınırlamaya takılabilir", + "@optionsConcurrentWarning": { + "description": "Warning about rate limits" + }, + "optionsExtensionStore": "Eklenti Dükkanı", + "@optionsExtensionStore": { + "description": "Show/hide store tab" + }, + "optionsExtensionStoreSubtitle": "Dükkan sekmesini altta göster", + "@optionsExtensionStoreSubtitle": { + "description": "Subtitle for extension store toggle" + }, + "optionsCheckUpdates": "Güncelleştirmeleri Denetle", + "@optionsCheckUpdates": { + "description": "Auto update check toggle" + }, + "optionsCheckUpdatesSubtitle": "Yeni sürüm çıktığında bildir", + "@optionsCheckUpdatesSubtitle": { + "description": "Subtitle for update check" + }, + "optionsUpdateChannel": "Güncelleme Kanalı", + "@optionsUpdateChannel": { + "description": "Stable vs preview releases" + }, + "optionsUpdateChannelStable": "Sadece stabil sürümler", + "@optionsUpdateChannelStable": { + "description": "Only stable updates" + }, + "optionsUpdateChannelPreview": "Önizleme sürümlerini al", + "@optionsUpdateChannelPreview": { + "description": "Include beta/preview updates" + }, + "optionsUpdateChannelWarning": "Önizleme sürümleri hatalar veya tamamlanmamış özellikler içerebilir", + "@optionsUpdateChannelWarning": { + "description": "Warning about preview channel" + }, + "optionsClearHistory": "İndirme Geçmişini Temizle", + "@optionsClearHistory": { + "description": "Delete all download history" + }, + "optionsClearHistorySubtitle": "İndirilen bütün şarkıları geçmişten temizle", + "@optionsClearHistorySubtitle": { + "description": "Subtitle for clear history" + }, + "optionsDetailedLogging": "Detaylı Günlükleme", + "@optionsDetailedLogging": { + "description": "Enable verbose logs for debugging" + }, + "optionsDetailedLoggingOn": "Detaylı günlük kayıt ediliyor", + "@optionsDetailedLoggingOn": { + "description": "Status when logging enabled" + }, + "optionsDetailedLoggingOff": "Hata bildirmek için aç", + "@optionsDetailedLoggingOff": { + "description": "Status when logging disabled" + }, + "optionsSpotifyCredentials": "Spotify Kimlik Bilgileri", + "@optionsSpotifyCredentials": { + "description": "Spotify API credentials setting" + }, + "optionsSpotifyCredentialsConfigured": "Client ID: {clientId}...", + "@optionsSpotifyCredentialsConfigured": { + "description": "Shows configured client ID preview", + "placeholders": { + "clientId": { + "type": "String" + } + } + }, + "optionsSpotifyCredentialsRequired": "Zorunlu - değiştirmek için tıkla", + "@optionsSpotifyCredentialsRequired": { + "description": "Prompt to set up credentials" + }, + "optionsSpotifyWarning": "Spotify'ın senin API kimlik bilgilerine ihtiyacı var. Onları developer.spotify.com'dan alabilirsin", + "@optionsSpotifyWarning": { + "description": "Info about Spotify API requirement" + }, + "extensionsTitle": "Eklentiler", + "@extensionsTitle": { + "description": "Extensions page title" + }, + "extensionsInstalled": "Kurulu Eklentiler", + "@extensionsInstalled": { + "description": "Section header for installed extensions" + }, + "extensionsNone": "Hiçbir eklenti kurulmamış", + "@extensionsNone": { + "description": "Empty state title" + }, + "extensionsNoneSubtitle": "Dükkan sekmesinden eklenti indir", + "@extensionsNoneSubtitle": { + "description": "Empty state subtitle" + }, + "extensionsEnabled": "Etkin", + "@extensionsEnabled": { + "description": "Extension status - active" + }, + "extensionsDisabled": "Devre Dışı", + "@extensionsDisabled": { + "description": "Extension status - inactive" + }, + "extensionsVersion": "Versiyon {version}", + "@extensionsVersion": { + "description": "Extension version display", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "extensionsAuthor": "{author} tarafından", + "@extensionsAuthor": { + "description": "Extension author credit", + "placeholders": { + "author": { + "type": "String" + } + } + }, + "extensionsUninstall": "Kaldır", + "@extensionsUninstall": { + "description": "Uninstall extension button" + }, + "extensionsSetAsSearch": "Arama Sağlayıcı olarak Ayarla", + "@extensionsSetAsSearch": { + "description": "Use extension for search" + }, + "storeTitle": "Eklenti Dükkanı", + "@storeTitle": { + "description": "Store screen title" + }, + "storeSearch": "Eklenti ara...", + "@storeSearch": { + "description": "Store search placeholder" + }, + "storeInstall": "Kur", + "@storeInstall": { + "description": "Install extension button" + }, + "storeInstalled": "Kuruldu", + "@storeInstalled": { + "description": "Already installed badge" + }, + "storeUpdate": "Güncelle", + "@storeUpdate": { + "description": "Update available button" + }, + "aboutTitle": "Hakkında", + "@aboutTitle": { + "description": "About page title" + }, + "aboutContributors": "Katkıda Bulunanlar", + "@aboutContributors": { + "description": "Section for contributors" + }, + "aboutMobileDeveloper": "Mobil versiyon geliştiricisi", + "@aboutMobileDeveloper": { + "description": "Role description for mobile dev" + }, + "aboutOriginalCreator": "Orijinal SpotiFLAC'ın kurucusu", + "@aboutOriginalCreator": { + "description": "Role description for original creator" + }, + "aboutLogoArtist": "Uygulama logomuzu yaratmış yetenekli sanatçımız!", + "@aboutLogoArtist": { + "description": "Role description for logo artist" + }, + "aboutTranslators": "Çevirmenler", + "@aboutTranslators": { + "description": "Section for translators" + }, + "aboutSpecialThanks": "Özel teşekkür", + "@aboutSpecialThanks": { + "description": "Section for special thanks" + }, + "aboutLinks": "Linkler", + "@aboutLinks": { + "description": "Section for external links" + }, + "aboutMobileSource": "Mobil kaynak kodu", + "@aboutMobileSource": { + "description": "Link to mobile GitHub repo" + }, + "aboutPCSource": "PC kaynak kodu", + "@aboutPCSource": { + "description": "Link to PC GitHub repo" + }, + "aboutReportIssue": "Sorun bildir", + "@aboutReportIssue": { + "description": "Link to report bugs" + }, + "aboutReportIssueSubtitle": "Karşılaştığın herhangi bir problemi bildir", + "@aboutReportIssueSubtitle": { + "description": "Subtitle for report issue" + }, + "aboutFeatureRequest": "Özellik isteği", + "@aboutFeatureRequest": { + "description": "Link to suggest features" + }, + "aboutFeatureRequestSubtitle": "Uygulama için yeni özellikler isteyin", + "@aboutFeatureRequestSubtitle": { + "description": "Subtitle for feature request" + }, + "aboutTelegramChannel": "Telegram Kanalı", + "@aboutTelegramChannel": { + "description": "Link to Telegram channel" + }, + "aboutTelegramChannelSubtitle": "Duyurular ve güncellemeler", + "@aboutTelegramChannelSubtitle": { + "description": "Subtitle for Telegram channel" + }, + "aboutTelegramChat": "Telegram Grubu", + "@aboutTelegramChat": { + "description": "Link to Telegram chat group" + }, + "aboutTelegramChatSubtitle": "Diğer kullanıcılarla sohbet et", + "@aboutTelegramChatSubtitle": { + "description": "Subtitle for Telegram chat" + }, + "aboutSocial": "Sosyal ağlar", + "@aboutSocial": { + "description": "Section for social links" + }, + "aboutSupport": "Destek", + "@aboutSupport": { + "description": "Section for support/donation links" + }, + "aboutBuyMeCoffee": "Bana bir kahve ısmarla", + "@aboutBuyMeCoffee": { + "description": "Donation link" + }, + "aboutBuyMeCoffeeSubtitle": "Ko-fi üzerinden uygulamayı destekle", + "@aboutBuyMeCoffeeSubtitle": { + "description": "Subtitle for donation" + }, + "aboutApp": "Uygulama", + "@aboutApp": { + "description": "Section for app info" + }, + "aboutVersion": "Versiyon", + "@aboutVersion": { + "description": "Version info label" + }, + "aboutBinimumDesc": "QQDL ve HiFi API'ın kurucusu. Bu API olmadan, Tidal indirmeleri olmazdı!", + "@aboutBinimumDesc": { + "description": "Credit description for binimum" + }, + "aboutSachinsenalDesc": "Orijinal HiFi projesi kurucusu. Tidal entegrasyonun temeli!", + "@aboutSachinsenalDesc": { + "description": "Credit description for sachinsenal0x64" + }, + "aboutDoubleDouble": "DoubleDouble", + "@aboutDoubleDouble": { + "description": "Name of Amazon API service - DO NOT TRANSLATE" + }, + "aboutDoubleDoubleDesc": "Amazom Music indirmeleri için harika bir API. Ücretsiz yaptığın için teşekkürler!", + "@aboutDoubleDoubleDesc": { + "description": "Credit for DoubleDouble API" + }, + "aboutDabMusic": "DAB Music", + "@aboutDabMusic": { + "description": "Name of Qobuz API service - DO NOT TRANSLATE" + }, + "aboutDabMusicDesc": "En iyi Qobuz streaming API'ı. Yüksek kalite indirmeler bunun sayesinde!", + "@aboutDabMusicDesc": { + "description": "Credit for DAB Music API" + }, + "aboutAppDescription": "Spotify şarkılarını Tidal, Qobuz ve Amazon Music'den yüksek kalitede indir.", + "@aboutAppDescription": { + "description": "App description in header card" + }, + "albumTitle": "Albüm", + "@albumTitle": { + "description": "Album screen title" + }, + "albumTracks": "{count, plural, one {}=1{1 şarkı} other{{count} şarkı}}", + "@albumTracks": { + "description": "Album track count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "albumDownloadAll": "Tümünü İndir", + "@albumDownloadAll": { + "description": "Button to download all tracks" + }, + "albumDownloadRemaining": "Kalanını İndir", + "@albumDownloadRemaining": { + "description": "Button to download remaining tracks" + }, + "playlistTitle": "Çalma Listesi", + "@playlistTitle": { + "description": "Playlist screen title" + }, + "artistTitle": "Sanatçı", + "@artistTitle": { + "description": "Artist screen title" + }, + "artistAlbums": "Albümler", + "@artistAlbums": { + "description": "Section header for artist albums" + }, + "artistSingles": "Single'lar ve EP'ler", + "@artistSingles": { + "description": "Section header for singles/EPs" + }, + "artistCompilations": "Derlemeler", + "@artistCompilations": { + "description": "Section header for compilations" + }, + "artistReleases": "{count, plural, =1{1 release} other{{count} releases}}", + "@artistReleases": { + "description": "Artist release count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "artistPopular": "Popüler", + "@artistPopular": { + "description": "Section header for popular/top tracks" + }, + "artistMonthlyListeners": "Aylık {count} dinleyici", + "@artistMonthlyListeners": { + "description": "Monthly listener count display", + "placeholders": { + "count": { + "type": "String", + "description": "Formatted listener count" + } + } + }, + "trackMetadataTitle": "Şarkı Bilgisi", + "@trackMetadataTitle": { + "description": "Track metadata screen title" + }, + "trackMetadataArtist": "Sanatçı", + "@trackMetadataArtist": { + "description": "Metadata field - artist name" + }, + "trackMetadataAlbum": "Albüm", + "@trackMetadataAlbum": { + "description": "Metadata field - album name" + }, + "trackMetadataDuration": "Süre", + "@trackMetadataDuration": { + "description": "Metadata field - track length" + }, + "trackMetadataQuality": "Kalite", + "@trackMetadataQuality": { + "description": "Metadata field - audio quality" + }, + "trackMetadataPath": "Dosya Yolu", + "@trackMetadataPath": { + "description": "Metadata field - file location" + }, + "trackMetadataDownloadedAt": "İndirme tarihi", + "@trackMetadataDownloadedAt": { + "description": "Metadata field - download date" + }, + "trackMetadataService": "Hizmet", + "@trackMetadataService": { + "description": "Metadata field - download service used" + }, + "trackMetadataPlay": "Oynat", + "@trackMetadataPlay": { + "description": "Action button - play track" + }, + "trackMetadataShare": "Paylaş", + "@trackMetadataShare": { + "description": "Action button - share track" + }, + "trackMetadataDelete": "Sil", + "@trackMetadataDelete": { + "description": "Action button - delete track" + }, + "trackMetadataRedownload": "Yeniden İndir", + "@trackMetadataRedownload": { + "description": "Action button - download again" + }, + "trackMetadataOpenFolder": "Klasörü Aç", + "@trackMetadataOpenFolder": { + "description": "Action button - open containing folder" + }, + "setupTitle": "SpotiFLAC'e Hoşgeldiniz", + "@setupTitle": { + "description": "Setup wizard title" + }, + "setupSubtitle": "Hadi başlayalım", + "@setupSubtitle": { + "description": "Setup wizard subtitle" + }, + "setupStoragePermission": "Depolama İzni", + "@setupStoragePermission": { + "description": "Storage permission step title" + }, + "setupStoragePermissionSubtitle": "İndirilen dosyaları kaydetmek için gerekli", + "@setupStoragePermissionSubtitle": { + "description": "Explanation for storage permission" + }, + "setupStoragePermissionGranted": "İzin verildi", + "@setupStoragePermissionGranted": { + "description": "Status when permission granted" + }, + "setupStoragePermissionDenied": "İzin reddedildi", + "@setupStoragePermissionDenied": { + "description": "Status when permission denied" + }, + "setupGrantPermission": "İzin Ver", + "@setupGrantPermission": { + "description": "Button to request permission" + }, + "setupDownloadLocation": "İndirme Konumu", + "@setupDownloadLocation": { + "description": "Download folder step title" + }, + "setupChooseFolder": "Klasör Seç", + "@setupChooseFolder": { + "description": "Button to pick folder" + }, + "setupContinue": "Devam", + "@setupContinue": { + "description": "Continue to next step button" + }, + "setupSkip": "Şimdilik atla", + "@setupSkip": { + "description": "Skip current step button" + }, + "setupStorageAccessRequired": "Depolama Erişimi Gerekli", + "@setupStorageAccessRequired": { + "description": "Title when storage access needed" + }, + "setupStorageAccessMessage": "SpotiFLAC'ın şarkıları seçili klasörünüze kaydetmek için \"Bütün dosyalara eriş\" iznine ihtiyacı var.", + "@setupStorageAccessMessage": { + "description": "Explanation for storage access" + }, + "setupStorageAccessMessageAndroid11": "Android 11 ve sonrasında şarkıların seçili klasörünüze kaydedilebilmesi için \"Bütün dosyalara eriş\" iznine ihtiyaç var.", + "@setupStorageAccessMessageAndroid11": { + "description": "Android 11+ specific explanation" + }, + "setupOpenSettings": "Ayarları Aç", + "@setupOpenSettings": { + "description": "Button to open system settings" + }, + "setupPermissionDeniedMessage": "İzin reddedildi. Devam etmek için lütfen bütün izinleri verin.", + "@setupPermissionDeniedMessage": { + "description": "Error when permission denied" + }, + "setupPermissionRequired": "{permissionType} İzni Zorunlu", + "@setupPermissionRequired": { + "description": "Generic permission required title", + "placeholders": { + "permissionType": { + "type": "String", + "description": "Type of permission (Storage/Notification)" + } + } + }, + "setupPermissionRequiredMessage": "En iyi deneyim için {permissionType} izni zorunludur. Bunu ayarlardan daha sonra değiştirebilirsiniz.", + "@setupPermissionRequiredMessage": { + "description": "Generic permission required message", + "placeholders": { + "permissionType": { + "type": "String" + } + } + }, + "setupSelectDownloadFolder": "İndirilecek Klasörü Seç", + "@setupSelectDownloadFolder": { + "description": "Folder selection step title" + }, + "setupUseDefaultFolder": "Varsayılan Klasörü Kullan?", + "@setupUseDefaultFolder": { + "description": "Dialog title for default folder" + }, + "setupNoFolderSelected": "Klasör seçilmedi. Varsayılan \"Music\" klasörünü kullanmak ister misiniz?", + "@setupNoFolderSelected": { + "description": "Prompt when no folder selected" + }, + "setupUseDefault": "Varsayılanı Kullan", + "@setupUseDefault": { + "description": "Button to use default folder" + }, + "setupDownloadLocationTitle": "İndirme Konumu", + "@setupDownloadLocationTitle": { + "description": "Download location dialog title" + }, + "setupDownloadLocationIosMessage": "iOS'ta indirilenler uygulamanın \"Documents\" dosyasına kaydedilir. Onlara Dosyalar uygulamasından erişebilirsiniz.", + "@setupDownloadLocationIosMessage": { + "description": "iOS-specific folder info" + }, + "setupAppDocumentsFolder": "App Documents Folder", + "@setupAppDocumentsFolder": { + "description": "iOS documents folder option" + }, + "setupAppDocumentsFolderSubtitle": "Tavsiye edilen - Dosyalar uygulamasından erişilebilir", + "@setupAppDocumentsFolderSubtitle": { + "description": "Subtitle for documents folder" + }, + "setupChooseFromFiles": "Dosyalar'dan Seç", + "@setupChooseFromFiles": { + "description": "iOS file picker option" + }, + "setupChooseFromFilesSubtitle": "iCloud veya başka konum seç", + "@setupChooseFromFilesSubtitle": { + "description": "Subtitle for file picker" + }, + "setupIosEmptyFolderWarning": "iOS'un sınırlaması: Boş klasörler seçilemiyor. İçinde en az bir dosya bulunan bir klasör seçin.", + "@setupIosEmptyFolderWarning": { + "description": "iOS folder selection warning" + }, + "setupDownloadInFlac": "Spotify şarkılarını FLAC olarak indirin", + "@setupDownloadInFlac": { + "description": "App tagline in setup" + }, + "setupStepStorage": "Depolama", + "@setupStepStorage": { + "description": "Setup step indicator - storage" + }, + "setupStepNotification": "Bildirim", + "@setupStepNotification": { + "description": "Setup step indicator - notification" + }, + "setupStepFolder": "Klasör", + "@setupStepFolder": { + "description": "Setup step indicator - folder" + }, + "setupStepSpotify": "Spotify", + "@setupStepSpotify": { + "description": "Setup step indicator - Spotify API" + }, + "setupStepPermission": "İzin", + "@setupStepPermission": { + "description": "Setup step indicator - permission" + }, + "setupStorageGranted": "Depolama İzni Verildi!", + "@setupStorageGranted": { + "description": "Success message for storage permission" + }, + "setupStorageRequired": "Depolama İzni Gerekli", + "@setupStorageRequired": { + "description": "Title when storage permission needed" + }, + "setupStorageDescription": "SpotiFLAC'ın şarkılarınızı kaydetmek için depolama iznine ihtiyacı var.", + "@setupStorageDescription": { + "description": "Explanation for storage permission" + }, + "setupNotificationGranted": "Bildirim İzni Verildi!", + "@setupNotificationGranted": { + "description": "Success message for notification permission" + }, + "setupNotificationEnable": "Bildirimleri Etkinleştir", + "@setupNotificationEnable": { + "description": "Button to enable notifications" + }, + "setupNotificationDescription": "İndirmeler bittiğinde veya bakılması gereken bir şey olduğunda haberdar olun.", + "@setupNotificationDescription": { + "description": "Explanation for notifications" + }, + "setupFolderSelected": "İndirilecek Klasör Seçildi!", + "@setupFolderSelected": { + "description": "Success message for folder selection" + }, + "setupFolderChoose": "İndirilecek Klasörü Seç", + "@setupFolderChoose": { + "description": "Button to choose folder" + }, + "setupFolderDescription": "İndirdiğin şarkıların kaydedileceği klasörü seç.", + "@setupFolderDescription": { + "description": "Explanation for folder selection" + }, + "setupChangeFolder": "Klasörü Değiştir", + "@setupChangeFolder": { + "description": "Button to change selected folder" + }, + "setupSelectFolder": "Klasör Seç", + "@setupSelectFolder": { + "description": "Button to select folder" + }, + "setupSpotifyApiOptional": "Spotify API (İsteğe Bağlı)", + "@setupSpotifyApiOptional": { + "description": "Spotify API step title" + }, + "setupSpotifyApiDescription": "Daha iyi arama sonuçları ve Spotify'a özel içeriklere erişmek için Spotify API kimlik bilgilerini gir.", + "@setupSpotifyApiDescription": { + "description": "Explanation for Spotify API" + }, + "setupUseSpotifyApi": "Spotify API'ı kullan", + "@setupUseSpotifyApi": { + "description": "Toggle to enable Spotify API" + }, + "setupEnterCredentialsBelow": "Kimlik bilgilerini aşağıya gir", + "@setupEnterCredentialsBelow": { + "description": "Prompt to enter credentials" + }, + "setupUsingDeezer": "Deezer kullanılıyor (hesap gerekli değil)", + "@setupUsingDeezer": { + "description": "Status when using Deezer" + }, + "setupEnterClientId": "Spotify Client ID gir", + "@setupEnterClientId": { + "description": "Placeholder for client ID field" + }, + "setupEnterClientSecret": "Spotify Client Secret gir", + "@setupEnterClientSecret": { + "description": "Placeholder for client secret field" + }, + "setupGetFreeCredentials": "Spotify Developer Dashboard'tan API kimlik bilgilerini ücretsiz alın.", + "@setupGetFreeCredentials": { + "description": "Info about getting Spotify credentials" + }, + "setupEnableNotifications": "Bildirimleri Etkinleştir", + "@setupEnableNotifications": { + "description": "Button to enable notifications" + }, + "setupProceedToNextStep": "Bir sonraki adıma geçebilirsin.", + "@setupProceedToNextStep": { + "description": "Message after completing a step" + }, + "setupNotificationProgressDescription": "İndirme ilerlemelerinin bildirimlerini alacaksın.", + "@setupNotificationProgressDescription": { + "description": "Info about notification usage" + }, + "setupNotificationBackgroundDescription": "İndirmelerin durumu hakkında bildirim al. Bunu açmak uygulama arka plandayken indirmelerinizi takip etmenizi sağlar.", + "@setupNotificationBackgroundDescription": { + "description": "Detailed notification explanation" + }, + "setupSkipForNow": "Şimdilik atla", + "@setupSkipForNow": { + "description": "Skip button text" + }, + "setupBack": "Geri", + "@setupBack": { + "description": "Back button text" + }, + "setupNext": "Sıradaki", + "@setupNext": { + "description": "Next button text" + }, + "setupGetStarted": "Başla", + "@setupGetStarted": { + "description": "Final setup button" + }, + "setupSkipAndStart": "Kurulumu atla", + "@setupSkipAndStart": { + "description": "Skip setup and start app" + }, + "setupAllowAccessToManageFiles": "Lütfen bir sonraki ekranda \"Bütün dosyalara eriş\" iznini sağlayın.", + "@setupAllowAccessToManageFiles": { + "description": "Instruction for file access permission" + }, + "setupGetCredentialsFromSpotify": "Kimlik bilgilerini developer.spotify.com'dan alın", + "@setupGetCredentialsFromSpotify": { + "description": "Link text for Spotify developer portal" + }, + "dialogCancel": "İptal", + "@dialogCancel": { + "description": "Dialog button - cancel action" + }, + "dialogOk": "Tamam", + "@dialogOk": { + "description": "Dialog button - confirm/acknowledge" + }, + "dialogSave": "Kaydet", + "@dialogSave": { + "description": "Dialog button - save changes" + }, + "dialogDelete": "Sil", + "@dialogDelete": { + "description": "Dialog button - delete item" + }, + "dialogRetry": "Yeniden dene", + "@dialogRetry": { + "description": "Dialog button - retry action" + }, + "dialogClose": "Kapat", + "@dialogClose": { + "description": "Dialog button - close dialog" + }, + "dialogYes": "Evet", + "@dialogYes": { + "description": "Dialog button - confirm yes" + }, + "dialogNo": "Hayır", + "@dialogNo": { + "description": "Dialog button - confirm no" + }, + "dialogClear": "Temizle", + "@dialogClear": { + "description": "Dialog button - clear items" + }, + "dialogConfirm": "Onayla", + "@dialogConfirm": { + "description": "Dialog button - confirm action" + }, + "dialogDone": "Tamamlandı", + "@dialogDone": { + "description": "Dialog button - action completed" + }, + "dialogImport": "İçe aktar", + "@dialogImport": { + "description": "Dialog button - import data" + }, + "dialogDiscard": "Vazgeç", + "@dialogDiscard": { + "description": "Dialog button - discard changes" + }, + "dialogRemove": "Kaldır", + "@dialogRemove": { + "description": "Dialog button - remove item" + }, + "dialogUninstall": "Kaldır", + "@dialogUninstall": { + "description": "Dialog button - uninstall extension" + }, + "dialogDiscardChanges": "Değişiklikleri İptal Et?", + "@dialogDiscardChanges": { + "description": "Dialog title - unsaved changes warning" + }, + "dialogUnsavedChanges": "Kaydedilmeyen değişiklikler mevcut. Bu değişiklikleri iptal etmek istiyor musunuz?", + "@dialogUnsavedChanges": { + "description": "Dialog message - unsaved changes" + }, + "dialogDownloadFailed": "İndirme Başarısız", + "@dialogDownloadFailed": { + "description": "Dialog title - download error" + }, + "dialogTrackLabel": "Şarkı:", + "@dialogTrackLabel": { + "description": "Label for track name in error dialog" + }, + "dialogArtistLabel": "Sanatçı:", + "@dialogArtistLabel": { + "description": "Label for artist name in error dialog" + }, + "dialogErrorLabel": "Hata:", + "@dialogErrorLabel": { + "description": "Label for error message" + }, + "dialogClearAll": "Tümünü Temizle", + "@dialogClearAll": { + "description": "Dialog title - clear all items" + }, + "dialogClearAllDownloads": "Bütün indirmeleri temizlemek istediğinize emin misiniz?", + "@dialogClearAllDownloads": { + "description": "Dialog message - clear downloads confirmation" + }, + "dialogRemoveFromDevice": "Cihazdan kaldır?", + "@dialogRemoveFromDevice": { + "description": "Dialog title - delete file confirmation" + }, + "dialogRemoveExtension": "Eklentiyi Kaldır", + "@dialogRemoveExtension": { + "description": "Dialog title - uninstall extension" + }, + "dialogRemoveExtensionMessage": "Bu eklentiyi kaldırmak istediğine emin misin? Bu işlem geri alınamaz.", + "@dialogRemoveExtensionMessage": { + "description": "Dialog message - uninstall confirmation" + }, + "dialogUninstallExtension": "Eklentiyi Kaldır?", + "@dialogUninstallExtension": { + "description": "Dialog title - uninstall extension" + }, + "dialogUninstallExtensionMessage": "{extensionName} eklentisini kaldırmak istediğine emin misin?", + "@dialogUninstallExtensionMessage": { + "description": "Dialog message - uninstall specific extension", + "placeholders": { + "extensionName": { + "type": "String" + } + } + }, + "dialogClearHistoryTitle": "Geçmişi Temizle", + "@dialogClearHistoryTitle": { + "description": "Dialog title - clear download history" + }, + "dialogClearHistoryMessage": "Tüm indirme geçmişini temizlemek istediğinizden emin misiniz? Bu işlem geri alınamaz.", + "@dialogClearHistoryMessage": { + "description": "Dialog message - clear history confirmation" + }, + "dialogDeleteSelectedTitle": "Seçileni Sil", + "@dialogDeleteSelectedTitle": { + "description": "Dialog title - delete selected items" + }, + "dialogDeleteSelectedMessage": "{count} {count, plural, one {}=1{şarkıyı} other{şarkıyı}} geçmişten silmeye emin misiniz?\n\nBu işlem seçilenleri cihazınızdan da silecektir.", + "@dialogDeleteSelectedMessage": { + "description": "Dialog message - delete selected tracks", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dialogImportPlaylistTitle": "Çalma listesini içe aktar", + "@dialogImportPlaylistTitle": { + "description": "Dialog title - import CSV playlist" + }, + "dialogImportPlaylistMessage": "CSV'de {count} şarkı bulundu. İndirme kuyruğuna ekle?", + "csvImportTracks": "CSV'den {count} şarkı", + "@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}\" kuyruğa eklendi", + "@snackbarAddedToQueue": { + "description": "Snackbar - track added to download queue", + "placeholders": { + "trackName": { + "type": "String" + } + } + }, + "snackbarAddedTracksToQueue": "{count} şarkı kuyruğa eklendi", + "@snackbarAddedTracksToQueue": { + "description": "Snackbar - multiple tracks added to queue", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "snackbarAlreadyDownloaded": "\"{trackName}\" zaten indirilmiş", + "@snackbarAlreadyDownloaded": { + "description": "Snackbar - track already exists", + "placeholders": { + "trackName": { + "type": "String" + } + } + }, + "snackbarHistoryCleared": "Geçmiş temizlendi", + "@snackbarHistoryCleared": { + "description": "Snackbar - history deleted" + }, + "snackbarCredentialsSaved": "Kimlik bilgileri kaydedildi", + "@snackbarCredentialsSaved": { + "description": "Snackbar - Spotify credentials saved" + }, + "snackbarCredentialsCleared": "Kimlik bilgileri temizlendi", + "@snackbarCredentialsCleared": { + "description": "Snackbar - Spotify credentials removed" + }, + "snackbarDeletedTracks": "{count} {count, plural, one {}=1{şarkı} other{şarkı}} silindi", + "@snackbarDeletedTracks": { + "description": "Snackbar - tracks deleted", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "snackbarCannotOpenFile": "Dosya açılamadı: {error}", + "@snackbarCannotOpenFile": { + "description": "Snackbar - file open error", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "snackbarFillAllFields": "Lütfen tüm alanları doldurun", + "@snackbarFillAllFields": { + "description": "Snackbar - validation error" + }, + "snackbarViewQueue": "Kuyruğu Görüntüle", + "@snackbarViewQueue": { + "description": "Snackbar action - view download queue" + }, + "snackbarFailedToLoad": "Yüklenemedi: {error}", + "@snackbarFailedToLoad": { + "description": "Snackbar - loading error", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "snackbarUrlCopied": "{platform} Bağlantı panoya kopyalandı", + "@snackbarUrlCopied": { + "description": "Snackbar - URL copied", + "placeholders": { + "platform": { + "type": "String", + "description": "Platform name (Spotify/Deezer)" + } + } + }, + "snackbarFileNotFound": "Dosya bulunamadı", + "@snackbarFileNotFound": { + "description": "Snackbar - file doesn't exist" + }, + "snackbarSelectExtFile": "Lütfen .spotiflac-ext dosyasını seçin", + "@snackbarSelectExtFile": { + "description": "Snackbar - wrong file type selected" + }, + "snackbarProviderPrioritySaved": "Provider priority saved", + "@snackbarProviderPrioritySaved": { + "description": "Snackbar - provider order saved" + }, + "snackbarMetadataProviderSaved": "Metadata provider priority saved", + "@snackbarMetadataProviderSaved": { + "description": "Snackbar - metadata provider order saved" + }, + "snackbarExtensionInstalled": "{extensionName} yüklendi.", + "@snackbarExtensionInstalled": { + "description": "Snackbar - extension installed successfully", + "placeholders": { + "extensionName": { + "type": "String" + } + } + }, + "snackbarExtensionUpdated": "{extensionName} güncellendi.", + "@snackbarExtensionUpdated": { + "description": "Snackbar - extension updated successfully", + "placeholders": { + "extensionName": { + "type": "String" + } + } + }, + "snackbarFailedToInstall": "Eklenti yüklenirken hata oluştu", + "@snackbarFailedToInstall": { + "description": "Snackbar - extension install error" + }, + "snackbarFailedToUpdate": "Eklenti güncellenirken hata oluştu", + "@snackbarFailedToUpdate": { + "description": "Snackbar - extension update error" + }, + "errorRateLimited": "Aşırı istek gönderildi", + "@errorRateLimited": { + "description": "Error title - too many requests" + }, + "errorRateLimitedMessage": "Çok fazla istek. Lütfen arama yapmadan önce biraz bekleyin.", + "@errorRateLimitedMessage": { + "description": "Error message - rate limit explanation" + }, + "errorFailedToLoad": "{item} yüklenirken hata oluştu", + "@errorFailedToLoad": { + "description": "Error message - loading failed", + "placeholders": { + "item": { + "type": "String", + "description": "Item that failed to load (album/playlist/etc)" + } + } + }, + "errorNoTracksFound": "Parça bulunamadı", + "@errorNoTracksFound": { + "description": "Error - search returned no results" + }, + "errorMissingExtensionSource": "{item} yüklenemedi: Eksik eklenti kaynağı", + "@errorMissingExtensionSource": { + "description": "Error - extension source not available", + "placeholders": { + "item": { + "type": "String" + } + } + }, + "statusQueued": "Sıraya alındı", + "@statusQueued": { + "description": "Download status - waiting in queue" + }, + "statusDownloading": "İndiriliyor", + "@statusDownloading": { + "description": "Download status - in progress" + }, + "statusFinalizing": "Tamamlanıyor", + "@statusFinalizing": { + "description": "Download status - writing metadata" + }, + "statusCompleted": "Tamamlandı", + "@statusCompleted": { + "description": "Download status - finished" + }, + "statusFailed": "Başarısız", + "@statusFailed": { + "description": "Download status - error occurred" + }, + "statusSkipped": "Atlandı", + "@statusSkipped": { + "description": "Download status - already exists" + }, + "statusPaused": "Durduruldu", + "@statusPaused": { + "description": "Download status - paused" + }, + "actionPause": "Duraklat", + "@actionPause": { + "description": "Action button - pause download" + }, + "actionResume": "Devam et", + "@actionResume": { + "description": "Action button - resume download" + }, + "actionCancel": "Vazgeç", + "@actionCancel": { + "description": "Action button - cancel operation" + }, + "actionStop": "Durdur", + "@actionStop": { + "description": "Action button - stop operation" + }, + "actionSelect": "Seç", + "@actionSelect": { + "description": "Action button - enter selection mode" + }, + "actionSelectAll": "Tümünü Seç", + "@actionSelectAll": { + "description": "Action button - select all items" + }, + "actionDeselect": "Seçimi kaldır", + "@actionDeselect": { + "description": "Action button - deselect all" + }, + "actionPaste": "Yapıştır", + "@actionPaste": { + "description": "Action button - paste from clipboard" + }, + "actionImportCsv": "CSV İçe Aktar", + "@actionImportCsv": { + "description": "Action button - import CSV file" + }, + "actionRemoveCredentials": "Özellikleri kaldır", + "@actionRemoveCredentials": { + "description": "Action button - delete Spotify credentials" + }, + "actionSaveCredentials": "Özellikleri kaydet", + "@actionSaveCredentials": { + "description": "Action button - save Spotify credentials" + }, + "selectionSelected": "{count} seçildi", + "@selectionSelected": { + "description": "Selection count indicator", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "selectionAllSelected": "Tüm parçalar seçildi", + "@selectionAllSelected": { + "description": "Status - all items selected" + }, + "selectionTapToSelect": "Seçmek için parçalara dokunun", + "@selectionTapToSelect": { + "description": "Hint - how to select items" + }, + "selectionDeleteTracks": "Delete {count} {count, plural, =1{track} other{tracks}}", + "@selectionDeleteTracks": { + "description": "Delete button with count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "selectionSelectToDelete": "Silinecek parçaları seçin", + "@selectionSelectToDelete": { + "description": "Placeholder when nothing selected" + }, + "progressFetchingMetadata": "Meta verileri alınıyor... {current}/{total}", + "@progressFetchingMetadata": { + "description": "Progress indicator - loading track info", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "progressReadingCsv": "CSV okunuyor...", + "@progressReadingCsv": { + "description": "Progress indicator - parsing CSV file" + }, + "searchSongs": "Şarkılar", + "@searchSongs": { + "description": "Search result category - songs" + }, + "searchArtists": "Sanatçılar", + "@searchArtists": { + "description": "Search result category - artists" + }, + "searchAlbums": "Albümler", + "@searchAlbums": { + "description": "Search result category - albums" + }, + "searchPlaylists": "Çalma Listeleri", + "@searchPlaylists": { + "description": "Search result category - playlists" + }, + "tooltipPlay": "Oynat", + "@tooltipPlay": { + "description": "Tooltip - play button" + }, + "tooltipCancel": "Vazgeç", + "@tooltipCancel": { + "description": "Tooltip - cancel button" + }, + "tooltipStop": "Durdur", + "@tooltipStop": { + "description": "Tooltip - stop button" + }, + "tooltipRetry": "Yeniden dene", + "@tooltipRetry": { + "description": "Tooltip - retry button" + }, + "tooltipRemove": "Kaldır", + "@tooltipRemove": { + "description": "Tooltip - remove button" + }, + "tooltipClear": "Temizle", + "@tooltipClear": { + "description": "Tooltip - clear button" + }, + "tooltipPaste": "Yapıştır", + "@tooltipPaste": { + "description": "Tooltip - paste button" + }, + "filenameFormat": "Dosya adı formatı", + "@filenameFormat": { + "description": "Setting title - filename pattern" + }, + "filenameFormatPreview": "Önizleme: {preview}", + "@filenameFormatPreview": { + "description": "Preview of filename pattern", + "placeholders": { + "preview": { + "type": "String" + } + } + }, + "filenameAvailablePlaceholders": "Kullanılabilir yer tutucular:", + "@filenameAvailablePlaceholders": { + "description": "Label for placeholder list" + }, + "filenameHint": "{artist} - {title}", + "@filenameHint": { + "description": "Default filename format hint" + }, + "folderOrganization": "Klasör Organizasyonu", + "@folderOrganization": { + "description": "Setting title - folder structure" + }, + "folderOrganizationNone": "Organizasyon yok", + "@folderOrganizationNone": { + "description": "Folder option - flat structure" + }, + "folderOrganizationByArtist": "Sanatçıya Göre", + "@folderOrganizationByArtist": { + "description": "Folder option - artist folders" + }, + "folderOrganizationByAlbum": "Albüme Göre", + "@folderOrganizationByAlbum": { + "description": "Folder option - album folders" + }, + "folderOrganizationByArtistAlbum": "Sanatçı/Albüm", + "@folderOrganizationByArtistAlbum": { + "description": "Folder option - nested folders" + }, + "folderOrganizationDescription": "İndirilenleri klasörlerle organize et", + "@folderOrganizationDescription": { + "description": "Folder organization sheet description" + }, + "folderOrganizationNoneSubtitle": "Her şey indirilen dosyasına kaydedilecek", + "@folderOrganizationNoneSubtitle": { + "description": "Subtitle for no organization option" + }, + "folderOrganizationByArtistSubtitle": "Her sanatçı için ayrı klasör", + "@folderOrganizationByArtistSubtitle": { + "description": "Subtitle for artist folder option" + }, + "folderOrganizationByAlbumSubtitle": "Her albüm için ayrı klasör", + "@folderOrganizationByAlbumSubtitle": { + "description": "Subtitle for album folder option" + }, + "folderOrganizationByArtistAlbumSubtitle": "Sanatçı klasörlerinin içinde Albüm klasörleri", + "@folderOrganizationByArtistAlbumSubtitle": { + "description": "Subtitle for nested folder option" + }, + "updateAvailable": "Güncelleme Mevcut", + "@updateAvailable": { + "description": "Update dialog title" + }, + "updateNewVersion": "{version} sürümü mevcut", + "@updateNewVersion": { + "description": "Update available message", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "updateDownload": "İndir", + "@updateDownload": { + "description": "Update button - download update" + }, + "updateLater": "Daha Sonra", + "@updateLater": { + "description": "Update button - dismiss" + }, + "updateChangelog": "Değişiklikler", + "@updateChangelog": { + "description": "Link to changelog" + }, + "updateStartingDownload": "İndirme başlıyor...", + "@updateStartingDownload": { + "description": "Update status - initializing" + }, + "updateDownloadFailed": "İndirme başarısız", + "@updateDownloadFailed": { + "description": "Update error title" + }, + "updateFailedMessage": "Güncelleme indirilemedi", + "@updateFailedMessage": { + "description": "Update error message" + }, + "updateNewVersionReady": "Yeni bir sürüm hazır", + "@updateNewVersionReady": { + "description": "Update subtitle" + }, + "updateCurrent": "Şimdiki", + "@updateCurrent": { + "description": "Label for current version" + }, + "updateNew": "Yeni", + "@updateNew": { + "description": "Label for new version" + }, + "updateDownloading": "İndiriliyor...", + "@updateDownloading": { + "description": "Update status - downloading" + }, + "updateWhatsNew": "Yenilikler", + "@updateWhatsNew": { + "description": "Changelog section title" + }, + "updateDownloadInstall": "İndir & Yükle", + "@updateDownloadInstall": { + "description": "Update button - download and install" + }, + "updateDontRemind": "Bir daha sorma", + "@updateDontRemind": { + "description": "Update button - skip this version" + }, + "providerPriority": "İndirme hizmetleri öncelik sırası", + "@providerPriority": { + "description": "Setting title - download provider order" + }, + "providerPrioritySubtitle": "İndirme hizmetlerini sıralamak için kaydır", + "@providerPrioritySubtitle": { + "description": "Subtitle for provider priority" + }, + "providerPriorityTitle": "İndirme hizmetleri öncelik sırası", + "@providerPriorityTitle": { + "description": "Provider priority page title" + }, + "providerPriorityDescription": "İndirme hizmetlerini sıralamak için kaydır. Uygulama şarkı indirirken hizmetleri yukarıdan aşağıya doğru deneyecektir.", + "@providerPriorityDescription": { + "description": "Provider priority page description" + }, + "providerPriorityInfo": "Eğer bir şarkı ilk hizmette mevcut değilse uygulama otomatik olarak bir sonrakini deneyecektir.", + "@providerPriorityInfo": { + "description": "Info tip about fallback behavior" + }, + "providerBuiltIn": "Dahili", + "@providerBuiltIn": { + "description": "Label for built-in providers (Tidal/Qobuz/Amazon)" + }, + "providerExtension": "Eklenti", + "@providerExtension": { + "description": "Label for extension-provided providers" + }, + "metadataProviderPriority": "Metadata Provider Priority", + "@metadataProviderPriority": { + "description": "Setting title - metadata provider order" + }, + "metadataProviderPrioritySubtitle": "Order used when fetching track metadata", + "@metadataProviderPrioritySubtitle": { + "description": "Subtitle for metadata priority" + }, + "metadataProviderPriorityTitle": "Metadata Priority", + "@metadataProviderPriorityTitle": { + "description": "Metadata priority page title" + }, + "metadataProviderPriorityDescription": "Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.", + "@metadataProviderPriorityDescription": { + "description": "Metadata priority page description" + }, + "metadataProviderPriorityInfo": "Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.", + "@metadataProviderPriorityInfo": { + "description": "Info tip about rate limits" + }, + "metadataNoRateLimits": "No rate limits", + "@metadataNoRateLimits": { + "description": "Deezer provider description" + }, + "metadataMayRateLimit": "May rate limit", + "@metadataMayRateLimit": { + "description": "Spotify provider description" + }, + "logTitle": "Kayıtlar", + "@logTitle": { + "description": "Logs screen title" + }, + "logCopy": "Copy Logs", + "@logCopy": { + "description": "Action - copy logs to clipboard" + }, + "logClear": "Kayıtları temizle", + "@logClear": { + "description": "Action - delete all logs" + }, + "logShare": "Kayıtları Paylaş", + "@logShare": { + "description": "Action - share logs file" + }, + "logEmpty": "Henüz kayıt yok", + "@logEmpty": { + "description": "Empty state title" + }, + "logCopied": "Kayıtlar panoya kopyalandı", + "@logCopied": { + "description": "Snackbar - logs copied" + }, + "logSearchHint": "Kayıtları Ara...", + "@logSearchHint": { + "description": "Log search placeholder" + }, + "logFilterLevel": "Seviye", + "@logFilterLevel": { + "description": "Filter by log level" + }, + "logFilterSection": "Filtre", + "@logFilterSection": { + "description": "Filter section title" + }, + "logShareLogs": "Kayıtları paylaş", + "@logShareLogs": { + "description": "Share button tooltip" + }, + "logClearLogs": "Kayıtları temizle", + "@logClearLogs": { + "description": "Clear button tooltip" + }, + "logClearLogsTitle": "Kayıtları temizle", + "@logClearLogsTitle": { + "description": "Clear logs dialog title" + }, + "logClearLogsMessage": "Tüm kayıtları temizlemek istediğinize emin misiniz?", + "@logClearLogsMessage": { + "description": "Clear logs confirmation message" + }, + "logIspBlocking": "ISP BLOCKING DETECTED", + "@logIspBlocking": { + "description": "Error category - ISP blocking" + }, + "logRateLimited": "RATE LIMITED", + "@logRateLimited": { + "description": "Error category - rate limiting" + }, + "logNetworkError": "NETWORK ERROR", + "@logNetworkError": { + "description": "Error category - network issues" + }, + "logTrackNotFound": "TRACK NOT FOUND", + "@logTrackNotFound": { + "description": "Error category - missing tracks" + }, + "logFilterBySeverity": "Filter logs by severity", + "@logFilterBySeverity": { + "description": "Filter dialog title" + }, + "logNoLogsYet": "No logs yet", + "@logNoLogsYet": { + "description": "Empty state title" + }, + "logNoLogsYetSubtitle": "Logs will appear here as you use the app", + "@logNoLogsYetSubtitle": { + "description": "Empty state subtitle" + }, + "logIssueSummary": "Issue Summary", + "@logIssueSummary": { + "description": "Section header for error summary" + }, + "logIspBlockingDescription": "Your ISP may be blocking access to download services", + "@logIspBlockingDescription": { + "description": "ISP blocking explanation" + }, + "logIspBlockingSuggestion": "Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8", + "@logIspBlockingSuggestion": { + "description": "ISP blocking fix suggestion" + }, + "logRateLimitedDescription": "Too many requests to the service", + "@logRateLimitedDescription": { + "description": "Rate limit explanation" + }, + "logRateLimitedSuggestion": "Wait a few minutes before trying again", + "@logRateLimitedSuggestion": { + "description": "Rate limit fix suggestion" + }, + "logNetworkErrorDescription": "Connection issues detected", + "@logNetworkErrorDescription": { + "description": "Network error explanation" + }, + "logNetworkErrorSuggestion": "Check your internet connection", + "@logNetworkErrorSuggestion": { + "description": "Network error fix suggestion" + }, + "logTrackNotFoundDescription": "Some tracks could not be found on download services", + "@logTrackNotFoundDescription": { + "description": "Track not found explanation" + }, + "logTrackNotFoundSuggestion": "The track may not be available in lossless quality", + "@logTrackNotFoundSuggestion": { + "description": "Track not found explanation" + }, + "logTotalErrors": "Total errors: {count}", + "@logTotalErrors": { + "description": "Error count display", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "logAffected": "Affected: {domains}", + "@logAffected": { + "description": "Affected domains display", + "placeholders": { + "domains": { + "type": "String" + } + } + }, + "logEntriesFiltered": "Entries ({count} filtered)", + "@logEntriesFiltered": { + "description": "Log count with filter active", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "logEntries": "Entries ({count})", + "@logEntries": { + "description": "Total log count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "credentialsTitle": "Spotify Credentials", + "@credentialsTitle": { + "description": "Credentials dialog title" + }, + "credentialsDescription": "Enter your Client ID and Secret to use your own Spotify application quota.", + "@credentialsDescription": { + "description": "Credentials dialog explanation" + }, + "credentialsClientId": "Client ID", + "@credentialsClientId": { + "description": "Client ID field label - DO NOT TRANSLATE" + }, + "credentialsClientIdHint": "Paste Client ID", + "@credentialsClientIdHint": { + "description": "Client ID placeholder" + }, + "credentialsClientSecret": "Client Secret", + "@credentialsClientSecret": { + "description": "Client Secret field label - DO NOT TRANSLATE" + }, + "credentialsClientSecretHint": "Paste Client Secret", + "@credentialsClientSecretHint": { + "description": "Client Secret placeholder" + }, + "channelStable": "Stable", + "@channelStable": { + "description": "Update channel - stable releases" + }, + "channelPreview": "Preview", + "@channelPreview": { + "description": "Update channel - beta/preview releases" + }, + "sectionSearchSource": "Search Source", + "@sectionSearchSource": { + "description": "Settings section header" + }, + "sectionDownload": "Download", + "@sectionDownload": { + "description": "Settings section header" + }, + "sectionPerformance": "Performance", + "@sectionPerformance": { + "description": "Settings section header" + }, + "sectionApp": "App", + "@sectionApp": { + "description": "Settings section header" + }, + "sectionData": "Data", + "@sectionData": { + "description": "Settings section header" + }, + "sectionDebug": "Debug", + "@sectionDebug": { + "description": "Settings section header" + }, + "sectionService": "Service", + "@sectionService": { + "description": "Settings section header" + }, + "sectionAudioQuality": "Audio Quality", + "@sectionAudioQuality": { + "description": "Settings section header" + }, + "sectionFileSettings": "File Settings", + "@sectionFileSettings": { + "description": "Settings section header" + }, + "sectionLyrics": "Lyrics", + "@sectionLyrics": { + "description": "Settings section header" + }, + "lyricsMode": "Lyrics Mode", + "@lyricsMode": { + "description": "Setting - how to save lyrics" + }, + "lyricsModeDescription": "Choose how lyrics are saved with your downloads", + "@lyricsModeDescription": { + "description": "Lyrics mode picker description" + }, + "lyricsModeEmbed": "Embed in file", + "@lyricsModeEmbed": { + "description": "Lyrics mode option - embed in audio file" + }, + "lyricsModeEmbedSubtitle": "Lyrics stored inside FLAC metadata", + "@lyricsModeEmbedSubtitle": { + "description": "Subtitle for embed option" + }, + "lyricsModeExternal": "External .lrc file", + "@lyricsModeExternal": { + "description": "Lyrics mode option - separate LRC file" + }, + "lyricsModeExternalSubtitle": "Separate .lrc file for players like Samsung Music", + "@lyricsModeExternalSubtitle": { + "description": "Subtitle for external option" + }, + "lyricsModeBoth": "Both", + "@lyricsModeBoth": { + "description": "Lyrics mode option - embed and external" + }, + "lyricsModeBothSubtitle": "Embed and save .lrc file", + "@lyricsModeBothSubtitle": { + "description": "Subtitle for both option" + }, + "sectionColor": "Color", + "@sectionColor": { + "description": "Settings section header" + }, + "sectionTheme": "Theme", + "@sectionTheme": { + "description": "Settings section header" + }, + "sectionLayout": "Layout", + "@sectionLayout": { + "description": "Settings section header" + }, + "sectionLanguage": "Language", + "@sectionLanguage": { + "description": "Settings section header for language" + }, + "appearanceLanguage": "App Language", + "@appearanceLanguage": { + "description": "Language setting title" + }, + "appearanceLanguageSubtitle": "Choose your preferred language", + "@appearanceLanguageSubtitle": { + "description": "Language setting subtitle" + }, + "settingsAppearanceSubtitle": "Theme, colors, display", + "@settingsAppearanceSubtitle": { + "description": "Appearance settings description" + }, + "settingsDownloadSubtitle": "Service, quality, filename format", + "@settingsDownloadSubtitle": { + "description": "Download settings description" + }, + "settingsOptionsSubtitle": "Fallback, lyrics, cover art, updates", + "@settingsOptionsSubtitle": { + "description": "Options settings description" + }, + "settingsExtensionsSubtitle": "Manage download providers", + "@settingsExtensionsSubtitle": { + "description": "Extensions settings description" + }, + "settingsLogsSubtitle": "View app logs for debugging", + "@settingsLogsSubtitle": { + "description": "Logs settings description" + }, + "loadingSharedLink": "Loading shared link...", + "@loadingSharedLink": { + "description": "Status when opening shared URL" + }, + "pressBackAgainToExit": "Press back again to exit", + "@pressBackAgainToExit": { + "description": "Exit confirmation message" + }, + "tracksHeader": "Tracks", + "@tracksHeader": { + "description": "Section header for track list" + }, + "downloadAllCount": "Download All ({count})", + "@downloadAllCount": { + "description": "Download all button with count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "tracksCount": "{count, plural, =1{1 track} other{{count} tracks}}", + "@tracksCount": { + "description": "Track count display", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "trackCopyFilePath": "Copy file path", + "@trackCopyFilePath": { + "description": "Action - copy file path" + }, + "trackRemoveFromDevice": "Remove from device", + "@trackRemoveFromDevice": { + "description": "Action - delete downloaded file" + }, + "trackLoadLyrics": "Load Lyrics", + "@trackLoadLyrics": { + "description": "Action - fetch lyrics" + }, + "trackMetadata": "Metadata", + "@trackMetadata": { + "description": "Tab title - track metadata" + }, + "trackFileInfo": "File Info", + "@trackFileInfo": { + "description": "Tab title - file information" + }, + "trackLyrics": "Lyrics", + "@trackLyrics": { + "description": "Tab title - lyrics" + }, + "trackFileNotFound": "File not found", + "@trackFileNotFound": { + "description": "Error - file doesn't exist" + }, + "trackOpenInDeezer": "Open in Deezer", + "@trackOpenInDeezer": { + "description": "Action - open track in Deezer app" + }, + "trackOpenInSpotify": "Open in Spotify", + "@trackOpenInSpotify": { + "description": "Action - open track in Spotify app" + }, + "trackTrackName": "Track name", + "@trackTrackName": { + "description": "Metadata label - track title" + }, + "trackArtist": "Artist", + "@trackArtist": { + "description": "Metadata label - artist name" + }, + "trackAlbumArtist": "Album artist", + "@trackAlbumArtist": { + "description": "Metadata label - album artist" + }, + "trackAlbum": "Album", + "@trackAlbum": { + "description": "Metadata label - album name" + }, + "trackTrackNumber": "Track number", + "@trackTrackNumber": { + "description": "Metadata label - track number" + }, + "trackDiscNumber": "Disc number", + "@trackDiscNumber": { + "description": "Metadata label - disc number" + }, + "trackDuration": "Duration", + "@trackDuration": { + "description": "Metadata label - track length" + }, + "trackAudioQuality": "Audio quality", + "@trackAudioQuality": { + "description": "Metadata label - audio quality" + }, + "trackReleaseDate": "Release date", + "@trackReleaseDate": { + "description": "Metadata label - release date" + }, + "trackGenre": "Genre", + "@trackGenre": { + "description": "Metadata label - music genre" + }, + "trackLabel": "Label", + "@trackLabel": { + "description": "Metadata label - record label" + }, + "trackCopyright": "Copyright", + "@trackCopyright": { + "description": "Metadata label - copyright information" + }, + "trackDownloaded": "Downloaded", + "@trackDownloaded": { + "description": "Metadata label - download date" + }, + "trackCopyLyrics": "Copy lyrics", + "@trackCopyLyrics": { + "description": "Action - copy lyrics to clipboard" + }, + "trackLyricsNotAvailable": "Lyrics not available for this track", + "@trackLyricsNotAvailable": { + "description": "Message when lyrics not found" + }, + "trackLyricsTimeout": "Request timed out. Try again later.", + "@trackLyricsTimeout": { + "description": "Message when lyrics request times out" + }, + "trackLyricsLoadFailed": "Failed to load lyrics", + "@trackLyricsLoadFailed": { + "description": "Message when lyrics loading fails" + }, + "trackEmbedLyrics": "Embed Lyrics", + "@trackEmbedLyrics": { + "description": "Action - embed lyrics into audio file" + }, + "trackLyricsEmbedded": "Lyrics embedded successfully", + "@trackLyricsEmbedded": { + "description": "Snackbar - lyrics saved to file" + }, + "trackInstrumental": "Instrumental track", + "@trackInstrumental": { + "description": "Message when track is instrumental (no lyrics)" + }, + "trackCopiedToClipboard": "Copied to clipboard", + "@trackCopiedToClipboard": { + "description": "Snackbar - content copied" + }, + "trackDeleteConfirmTitle": "Remove from device?", + "@trackDeleteConfirmTitle": { + "description": "Delete confirmation title" + }, + "trackDeleteConfirmMessage": "This will permanently delete the downloaded file and remove it from your history.", + "@trackDeleteConfirmMessage": { + "description": "Delete confirmation message" + }, + "trackCannotOpen": "Cannot open: {message}", + "@trackCannotOpen": { + "description": "Error opening file", + "placeholders": { + "message": { + "type": "String" + } + } + }, + "dateToday": "Today", + "@dateToday": { + "description": "Relative date - today" + }, + "dateYesterday": "Yesterday", + "@dateYesterday": { + "description": "Relative date - yesterday" + }, + "dateDaysAgo": "{count} days ago", + "@dateDaysAgo": { + "description": "Relative date - days ago", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dateWeeksAgo": "{count} weeks ago", + "@dateWeeksAgo": { + "description": "Relative date - weeks ago", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dateMonthsAgo": "{count} months ago", + "@dateMonthsAgo": { + "description": "Relative date - months ago", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "concurrentSequential": "Sequential", + "@concurrentSequential": { + "description": "Download mode - one at a time" + }, + "concurrentParallel2": "2 Parallel", + "@concurrentParallel2": { + "description": "Download mode - 2 simultaneous" + }, + "concurrentParallel3": "3 Parallel", + "@concurrentParallel3": { + "description": "Download mode - 3 simultaneous" + }, + "tapToSeeError": "Tap to see error details", + "@tapToSeeError": { + "description": "Tooltip for failed download" + }, + "storeFilterAll": "All", + "@storeFilterAll": { + "description": "Store filter - all extensions" + }, + "storeFilterMetadata": "Metadata", + "@storeFilterMetadata": { + "description": "Store filter - metadata providers" + }, + "storeFilterDownload": "Download", + "@storeFilterDownload": { + "description": "Store filter - download providers" + }, + "storeFilterUtility": "Utility", + "@storeFilterUtility": { + "description": "Store filter - utility extensions" + }, + "storeFilterLyrics": "Lyrics", + "@storeFilterLyrics": { + "description": "Store filter - lyrics providers" + }, + "storeFilterIntegration": "Integration", + "@storeFilterIntegration": { + "description": "Store filter - integrations" + }, + "storeClearFilters": "Clear filters", + "@storeClearFilters": { + "description": "Button to clear all filters" + }, + "storeNoResults": "No extensions found", + "@storeNoResults": { + "description": "Empty state when no extensions match filters" + }, + "extensionProviderPriority": "Provider Priority", + "@extensionProviderPriority": { + "description": "Extension capability - provider priority" + }, + "extensionInstallButton": "Install Extension", + "@extensionInstallButton": { + "description": "Button to install extension" + }, + "extensionDefaultProvider": "Default (Deezer/Spotify)", + "@extensionDefaultProvider": { + "description": "Default search provider option" + }, + "extensionDefaultProviderSubtitle": "Use built-in search", + "@extensionDefaultProviderSubtitle": { + "description": "Subtitle for default provider" + }, + "extensionAuthor": "Author", + "@extensionAuthor": { + "description": "Extension detail - author" + }, + "extensionId": "ID", + "@extensionId": { + "description": "Extension detail - unique ID" + }, + "extensionError": "Error", + "@extensionError": { + "description": "Extension detail - error message" + }, + "extensionCapabilities": "Capabilities", + "@extensionCapabilities": { + "description": "Section header - extension features" + }, + "extensionMetadataProvider": "Metadata Provider", + "@extensionMetadataProvider": { + "description": "Capability - provides metadata" + }, + "extensionDownloadProvider": "Download Provider", + "@extensionDownloadProvider": { + "description": "Capability - provides downloads" + }, + "extensionLyricsProvider": "Lyrics Provider", + "@extensionLyricsProvider": { + "description": "Capability - provides lyrics" + }, + "extensionUrlHandler": "URL Handler", + "@extensionUrlHandler": { + "description": "Capability - handles URLs" + }, + "extensionQualityOptions": "Quality Options", + "@extensionQualityOptions": { + "description": "Capability - quality selection" + }, + "extensionPostProcessingHooks": "Post-Processing Hooks", + "@extensionPostProcessingHooks": { + "description": "Capability - post-processing" + }, + "extensionPermissions": "Permissions", + "@extensionPermissions": { + "description": "Section header - required permissions" + }, + "extensionSettings": "Settings", + "@extensionSettings": { + "description": "Section header - extension settings" + }, + "extensionRemoveButton": "Remove Extension", + "@extensionRemoveButton": { + "description": "Button to uninstall extension" + }, + "extensionUpdated": "Updated", + "@extensionUpdated": { + "description": "Extension detail - last update" + }, + "extensionMinAppVersion": "Min App Version", + "@extensionMinAppVersion": { + "description": "Extension detail - minimum app version" + }, + "extensionCustomTrackMatching": "Custom Track Matching", + "@extensionCustomTrackMatching": { + "description": "Capability - custom track matching algorithm" + }, + "extensionPostProcessing": "Post-Processing", + "@extensionPostProcessing": { + "description": "Capability - post-download processing" + }, + "extensionHooksAvailable": "{count} hook(s) available", + "@extensionHooksAvailable": { + "description": "Post-processing hooks count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "extensionPatternsCount": "{count} pattern(s)", + "@extensionPatternsCount": { + "description": "URL patterns count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "extensionStrategy": "Strategy: {strategy}", + "@extensionStrategy": { + "description": "Track matching strategy name", + "placeholders": { + "strategy": { + "type": "String" + } + } + }, + "extensionsProviderPrioritySection": "Provider Priority", + "@extensionsProviderPrioritySection": { + "description": "Section header - provider priority" + }, + "extensionsInstalledSection": "Installed Extensions", + "@extensionsInstalledSection": { + "description": "Section header - installed extensions" + }, + "extensionsNoExtensions": "No extensions installed", + "@extensionsNoExtensions": { + "description": "Empty state - no extensions" + }, + "extensionsNoExtensionsSubtitle": "Install .spotiflac-ext files to add new providers", + "@extensionsNoExtensionsSubtitle": { + "description": "Empty state subtitle" + }, + "extensionsInstallButton": "Install Extension", + "@extensionsInstallButton": { + "description": "Button to install extension from file" + }, + "extensionsInfoTip": "Extensions can add new metadata and download providers. Only install extensions from trusted sources.", + "@extensionsInfoTip": { + "description": "Security warning about extensions" + }, + "extensionsInstalledSuccess": "Extension installed successfully", + "@extensionsInstalledSuccess": { + "description": "Success message after install" + }, + "extensionsDownloadPriority": "Download Priority", + "@extensionsDownloadPriority": { + "description": "Setting - download provider order" + }, + "extensionsDownloadPrioritySubtitle": "Set download service order", + "@extensionsDownloadPrioritySubtitle": { + "description": "Subtitle for download priority" + }, + "extensionsNoDownloadProvider": "No extensions with download provider", + "@extensionsNoDownloadProvider": { + "description": "Empty state - no download providers" + }, + "extensionsMetadataPriority": "Metadata Priority", + "@extensionsMetadataPriority": { + "description": "Setting - metadata provider order" + }, + "extensionsMetadataPrioritySubtitle": "Set search & metadata source order", + "@extensionsMetadataPrioritySubtitle": { + "description": "Subtitle for metadata priority" + }, + "extensionsNoMetadataProvider": "No extensions with metadata provider", + "@extensionsNoMetadataProvider": { + "description": "Empty state - no metadata providers" + }, + "extensionsSearchProvider": "Search Provider", + "@extensionsSearchProvider": { + "description": "Setting - search provider selection" + }, + "extensionsNoCustomSearch": "No extensions with custom search", + "@extensionsNoCustomSearch": { + "description": "Empty state - no search providers" + }, + "extensionsSearchProviderDescription": "Choose which service to use for searching tracks", + "@extensionsSearchProviderDescription": { + "description": "Search provider setting description" + }, + "extensionsCustomSearch": "Custom search", + "@extensionsCustomSearch": { + "description": "Label for custom search provider" + }, + "extensionsErrorLoading": "Error loading extension", + "@extensionsErrorLoading": { + "description": "Error message when extension fails to load" + }, + "qualityFlacLossless": "FLAC Lossless", + "@qualityFlacLossless": { + "description": "Quality option - CD quality FLAC" + }, + "qualityFlacLosslessSubtitle": "16-bit / 44.1kHz", + "@qualityFlacLosslessSubtitle": { + "description": "Technical spec for lossless" + }, + "qualityHiResFlac": "Hi-Res FLAC", + "@qualityHiResFlac": { + "description": "Quality option - high resolution FLAC" + }, + "qualityHiResFlacSubtitle": "24-bit / up to 96kHz", + "@qualityHiResFlacSubtitle": { + "description": "Technical spec for hi-res" + }, + "qualityHiResFlacMax": "Hi-Res FLAC Max", + "@qualityHiResFlacMax": { + "description": "Quality option - maximum resolution FLAC" + }, + "qualityHiResFlacMaxSubtitle": "24-bit / up to 192kHz", + "@qualityHiResFlacMaxSubtitle": { + "description": "Technical spec for hi-res max" + }, + "qualityMp3": "MP3", + "@qualityMp3": { + "description": "Quality option - MP3 lossy format" + }, + "qualityMp3Subtitle": "320kbps (converted from FLAC)", + "@qualityMp3Subtitle": { + "description": "Technical spec for MP3" + }, + "enableMp3Option": "Enable MP3 Option", + "@enableMp3Option": { + "description": "Setting - enable MP3 quality option" + }, + "enableMp3OptionSubtitleOn": "MP3 quality option is available", + "@enableMp3OptionSubtitleOn": { + "description": "Subtitle when MP3 is enabled" + }, + "enableMp3OptionSubtitleOff": "Downloads FLAC then converts to 320kbps MP3", + "@enableMp3OptionSubtitleOff": { + "description": "Subtitle when MP3 is disabled" + }, + "qualityNote": "Actual quality depends on track availability from the service", + "@qualityNote": { + "description": "Note about quality availability" + }, + "downloadAskBeforeDownload": "Ask Before Download", + "@downloadAskBeforeDownload": { + "description": "Setting - show quality picker" + }, + "downloadDirectory": "Download Directory", + "@downloadDirectory": { + "description": "Setting - download folder" + }, + "downloadSeparateSinglesFolder": "Separate Singles Folder", + "@downloadSeparateSinglesFolder": { + "description": "Setting - separate folder for singles" + }, + "downloadAlbumFolderStructure": "Album Folder Structure", + "@downloadAlbumFolderStructure": { + "description": "Setting - album folder organization" + }, + "downloadSaveFormat": "Save Format", + "@downloadSaveFormat": { + "description": "Setting - output file format" + }, + "downloadSelectService": "Select Service", + "@downloadSelectService": { + "description": "Dialog title - choose download service" + }, + "downloadSelectQuality": "Select Quality", + "@downloadSelectQuality": { + "description": "Dialog title - choose audio quality" + }, + "downloadFrom": "Download From", + "@downloadFrom": { + "description": "Label - download source" + }, + "downloadDefaultQualityLabel": "Default Quality", + "@downloadDefaultQualityLabel": { + "description": "Label - default quality setting" + }, + "downloadBestAvailable": "Best available", + "@downloadBestAvailable": { + "description": "Quality option - highest available" + }, + "folderNone": "None", + "@folderNone": { + "description": "Folder option - no organization" + }, + "folderNoneSubtitle": "Save all files directly to download folder", + "@folderNoneSubtitle": { + "description": "Subtitle for no folder organization" + }, + "folderArtist": "Artist", + "@folderArtist": { + "description": "Folder option - by artist" + }, + "folderArtistSubtitle": "Artist Name/filename", + "@folderArtistSubtitle": { + "description": "Folder structure example" + }, + "folderAlbum": "Album", + "@folderAlbum": { + "description": "Folder option - by album" + }, + "folderAlbumSubtitle": "Album Name/filename", + "@folderAlbumSubtitle": { + "description": "Folder structure example" + }, + "folderArtistAlbum": "Artist/Album", + "@folderArtistAlbum": { + "description": "Folder option - nested" + }, + "folderArtistAlbumSubtitle": "Artist Name/Album Name/filename", + "@folderArtistAlbumSubtitle": { + "description": "Folder structure example" + }, + "serviceTidal": "Tidal", + "@serviceTidal": { + "description": "Service name - DO NOT TRANSLATE" + }, + "serviceQobuz": "Qobuz", + "@serviceQobuz": { + "description": "Service name - DO NOT TRANSLATE" + }, + "serviceAmazon": "Amazon", + "@serviceAmazon": { + "description": "Service name - DO NOT TRANSLATE" + }, + "serviceDeezer": "Deezer", + "@serviceDeezer": { + "description": "Service name - DO NOT TRANSLATE" + }, + "serviceSpotify": "Spotify", + "@serviceSpotify": { + "description": "Service name - DO NOT TRANSLATE" + }, + "appearanceAmoledDark": "AMOLED Dark", + "@appearanceAmoledDark": { + "description": "Theme option - pure black" + }, + "appearanceAmoledDarkSubtitle": "Pure black background", + "@appearanceAmoledDarkSubtitle": { + "description": "Subtitle for AMOLED dark" + }, + "appearanceChooseAccentColor": "Choose Accent Color", + "@appearanceChooseAccentColor": { + "description": "Color picker dialog title" + }, + "appearanceChooseTheme": "Theme Mode", + "@appearanceChooseTheme": { + "description": "Theme picker dialog title" + }, + "queueTitle": "Download Queue", + "@queueTitle": { + "description": "Queue screen title" + }, + "queueClearAll": "Clear All", + "@queueClearAll": { + "description": "Button - clear all queue items" + }, + "queueClearAllMessage": "Are you sure you want to clear all downloads?", + "@queueClearAllMessage": { + "description": "Clear queue confirmation" + }, + "queueEmpty": "No downloads in queue", + "@queueEmpty": { + "description": "Empty queue state title" + }, + "queueEmptySubtitle": "Add tracks from the home screen", + "@queueEmptySubtitle": { + "description": "Empty queue state subtitle" + }, + "queueClearCompleted": "Clear completed", + "@queueClearCompleted": { + "description": "Button - clear finished downloads" + }, + "queueDownloadFailed": "Download Failed", + "@queueDownloadFailed": { + "description": "Error dialog title" + }, + "queueTrackLabel": "Track:", + "@queueTrackLabel": { + "description": "Label in error dialog" + }, + "queueArtistLabel": "Artist:", + "@queueArtistLabel": { + "description": "Label in error dialog" + }, + "queueErrorLabel": "Error:", + "@queueErrorLabel": { + "description": "Label in error dialog" + }, + "queueUnknownError": "Unknown error", + "@queueUnknownError": { + "description": "Fallback error message" + }, + "albumFolderArtistAlbum": "Artist / Album", + "@albumFolderArtistAlbum": { + "description": "Album folder option" + }, + "albumFolderArtistAlbumSubtitle": "Albums/Artist Name/Album Name/", + "@albumFolderArtistAlbumSubtitle": { + "description": "Folder structure example" + }, + "albumFolderArtistYearAlbum": "Artist / [Year] Album", + "@albumFolderArtistYearAlbum": { + "description": "Album folder option with year" + }, + "albumFolderArtistYearAlbumSubtitle": "Albums/Artist Name/[2005] Album Name/", + "@albumFolderArtistYearAlbumSubtitle": { + "description": "Folder structure example" + }, + "albumFolderAlbumOnly": "Album Only", + "@albumFolderAlbumOnly": { + "description": "Album folder option" + }, + "albumFolderAlbumOnlySubtitle": "Albums/Album Name/", + "@albumFolderAlbumOnlySubtitle": { + "description": "Folder structure example" + }, + "albumFolderYearAlbum": "[Year] Album", + "@albumFolderYearAlbum": { + "description": "Album folder option with year" + }, + "albumFolderYearAlbumSubtitle": "Albums/[2005] Album Name/", + "@albumFolderYearAlbumSubtitle": { + "description": "Folder structure example" + }, + "albumFolderArtistAlbumSingles": "Artist / Album + Singles", + "@albumFolderArtistAlbumSingles": { + "description": "Album folder option with singles inside artist" + }, + "albumFolderArtistAlbumSinglesSubtitle": "Artist/Album/ and Artist/Singles/", + "@albumFolderArtistAlbumSinglesSubtitle": { + "description": "Folder structure example" + }, + "downloadedAlbumDeleteSelected": "Delete Selected", + "@downloadedAlbumDeleteSelected": { + "description": "Button - delete selected tracks" + }, + "downloadedAlbumDeleteMessage": "Delete {count} {count, plural, =1{track} other{tracks}} from this album?\n\nThis will also delete the files from storage.", + "@downloadedAlbumDeleteMessage": { + "description": "Delete confirmation with count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "downloadedAlbumTracksHeader": "Tracks", + "@downloadedAlbumTracksHeader": { + "description": "Section header for tracks" + }, + "downloadedAlbumDownloadedCount": "{count} downloaded", + "@downloadedAlbumDownloadedCount": { + "description": "Downloaded tracks count badge", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "downloadedAlbumSelectedCount": "{count} selected", + "@downloadedAlbumSelectedCount": { + "description": "Selection count indicator", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "downloadedAlbumAllSelected": "All tracks selected", + "@downloadedAlbumAllSelected": { + "description": "Status - all items selected" + }, + "downloadedAlbumTapToSelect": "Tap tracks to select", + "@downloadedAlbumTapToSelect": { + "description": "Selection hint" + }, + "downloadedAlbumDeleteCount": "Delete {count} {count, plural, =1{track} other{tracks}}", + "@downloadedAlbumDeleteCount": { + "description": "Delete button text with count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "downloadedAlbumSelectToDelete": "Select tracks to delete", + "@downloadedAlbumSelectToDelete": { + "description": "Placeholder when nothing selected" + }, + "downloadedAlbumDiscHeader": "Disc {discNumber}", + "@downloadedAlbumDiscHeader": { + "description": "Header for disc separator in multi-disc albums", + "placeholders": { + "discNumber": { + "type": "int", + "example": "1" + } + } + }, + "utilityFunctions": "Utility Functions", + "@utilityFunctions": { + "description": "Extension capability - utility functions" + }, + "recentTypeArtist": "Artist", + "@recentTypeArtist": { + "description": "Recent access item type - artist" + }, + "recentTypeAlbum": "Album", + "@recentTypeAlbum": { + "description": "Recent access item type - album" + }, + "recentTypeSong": "Song", + "@recentTypeSong": { + "description": "Recent access item type - song/track" + }, + "recentTypePlaylist": "Playlist", + "@recentTypePlaylist": { + "description": "Recent access item type - playlist" + }, + "recentPlaylistInfo": "Playlist: {name}", + "@recentPlaylistInfo": { + "description": "Snackbar message when tapping playlist in recent access", + "placeholders": { + "name": { + "type": "String", + "description": "Playlist name" + } + } + }, + "errorGeneric": "Error: {message}", + "@errorGeneric": { + "description": "Generic error message format", + "placeholders": { + "message": { + "type": "String", + "description": "Error message" + } + } + }, + "discographyDownload": "Download Discography", + "@discographyDownload": { + "description": "Button - download artist discography" + }, + "discographyDownloadAll": "Download All", + "@discographyDownloadAll": { + "description": "Option - download entire discography" + }, + "discographyDownloadAllSubtitle": "{count} tracks from {albumCount} releases", + "@discographyDownloadAllSubtitle": { + "description": "Subtitle showing total tracks and albums", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographyAlbumsOnly": "Albums Only", + "@discographyAlbumsOnly": { + "description": "Option - download only albums" + }, + "discographyAlbumsOnlySubtitle": "{count} tracks from {albumCount} albums", + "@discographyAlbumsOnlySubtitle": { + "description": "Subtitle showing album tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySinglesOnly": "Singles & EPs Only", + "@discographySinglesOnly": { + "description": "Option - download only singles" + }, + "discographySinglesOnlySubtitle": "{count} tracks from {albumCount} singles", + "@discographySinglesOnlySubtitle": { + "description": "Subtitle showing singles tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySelectAlbums": "Select Albums...", + "@discographySelectAlbums": { + "description": "Option - manually select albums to download" + }, + "discographySelectAlbumsSubtitle": "Choose specific albums or singles", + "@discographySelectAlbumsSubtitle": { + "description": "Subtitle for select albums option" + }, + "discographyFetchingTracks": "Fetching tracks...", + "@discographyFetchingTracks": { + "description": "Progress - fetching album tracks" + }, + "discographyFetchingAlbum": "Fetching {current} of {total}...", + "@discographyFetchingAlbum": { + "description": "Progress - fetching specific album", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "discographySelectedCount": "{count} selected", + "@discographySelectedCount": { + "description": "Selection count badge", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographyDownloadSelected": "Download Selected", + "@discographyDownloadSelected": { + "description": "Button - download selected albums" + }, + "discographyAddedToQueue": "Added {count} tracks to queue", + "@discographyAddedToQueue": { + "description": "Snackbar - tracks added from discography", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographySkippedDownloaded": "{added} added, {skipped} already downloaded", + "@discographySkippedDownloaded": { + "description": "Snackbar - with skipped tracks count", + "placeholders": { + "added": { + "type": "int" + }, + "skipped": { + "type": "int" + } + } + }, + "discographyNoAlbums": "No albums available", + "@discographyNoAlbums": { + "description": "Error - no albums found for artist" + }, + "discographyFailedToFetch": "Failed to fetch some albums", + "@discographyFailedToFetch": { + "description": "Error - some albums failed to load" + } +} \ No newline at end of file diff --git a/lib/l10n/arb/app_zh_CN.arb b/lib/l10n/arb/app_zh_CN.arb index 5b9f70aa..fb038479 100644 --- a/lib/l10n/arb/app_zh_CN.arb +++ b/lib/l10n/arb/app_zh_CN.arb @@ -1,5 +1,5 @@ { - "@@locale": "zh_CN", + "@@locale": "zh-CN", "@@last_modified": "2026-01-16", "appName": "SpotiFLAC", "@appName": { @@ -127,6 +127,10 @@ "@historyNoSinglesSubtitle": { "description": "Empty state subtitle for singles filter" }, + "historySearchHint": "Search history...", + "@historySearchHint": { + "description": "Search bar placeholder in history" + }, "settingsTitle": "Settings", "@settingsTitle": { "description": "Settings screen title" @@ -512,6 +516,10 @@ "@aboutLogoArtist": { "description": "Role description for logo artist" }, + "aboutTranslators": "Translators", + "@aboutTranslators": { + "description": "Section for translators" + }, "aboutSpecialThanks": "Special Thanks", "@aboutSpecialThanks": { "description": "Section for special thanks" @@ -544,6 +552,26 @@ "@aboutFeatureRequestSubtitle": { "description": "Subtitle for feature request" }, + "aboutTelegramChannel": "Telegram Channel", + "@aboutTelegramChannel": { + "description": "Link to Telegram channel" + }, + "aboutTelegramChannelSubtitle": "Announcements and updates", + "@aboutTelegramChannelSubtitle": { + "description": "Subtitle for Telegram channel" + }, + "aboutTelegramChat": "Telegram Community", + "@aboutTelegramChat": { + "description": "Link to Telegram chat group" + }, + "aboutTelegramChatSubtitle": "Chat with other users", + "@aboutTelegramChatSubtitle": { + "description": "Subtitle for Telegram chat" + }, + "aboutSocial": "Social", + "@aboutSocial": { + "description": "Section for social links" + }, "aboutSupport": "Support", "@aboutSupport": { "description": "Section for support/donation links" @@ -1122,6 +1150,15 @@ "description": "Dialog title - import CSV playlist" }, "dialogImportPlaylistMessage": "Found {count} tracks in CSV. Add them to download queue?", + "csvImportTracks": "{count} tracks from CSV", + "@csvImportTracks": { + "description": "Label shown in quality picker for CSV import", + "placeholders": { + "count": { + "type": "int" + } + } + }, "@dialogImportPlaylistMessage": { "description": "Dialog message - import playlist confirmation", "placeholders": { @@ -1851,6 +1888,42 @@ "@sectionFileSettings": { "description": "Settings section header" }, + "sectionLyrics": "Lyrics", + "@sectionLyrics": { + "description": "Settings section header" + }, + "lyricsMode": "Lyrics Mode", + "@lyricsMode": { + "description": "Setting - how to save lyrics" + }, + "lyricsModeDescription": "Choose how lyrics are saved with your downloads", + "@lyricsModeDescription": { + "description": "Lyrics mode picker description" + }, + "lyricsModeEmbed": "Embed in file", + "@lyricsModeEmbed": { + "description": "Lyrics mode option - embed in audio file" + }, + "lyricsModeEmbedSubtitle": "Lyrics stored inside FLAC metadata", + "@lyricsModeEmbedSubtitle": { + "description": "Subtitle for embed option" + }, + "lyricsModeExternal": "External .lrc file", + "@lyricsModeExternal": { + "description": "Lyrics mode option - separate LRC file" + }, + "lyricsModeExternalSubtitle": "Separate .lrc file for players like Samsung Music", + "@lyricsModeExternalSubtitle": { + "description": "Subtitle for external option" + }, + "lyricsModeBoth": "Both", + "@lyricsModeBoth": { + "description": "Lyrics mode option - embed and external" + }, + "lyricsModeBothSubtitle": "Embed and save .lrc file", + "@lyricsModeBothSubtitle": { + "description": "Subtitle for both option" + }, "sectionColor": "Color", "@sectionColor": { "description": "Settings section header" @@ -1997,6 +2070,18 @@ "@trackReleaseDate": { "description": "Metadata label - release date" }, + "trackGenre": "Genre", + "@trackGenre": { + "description": "Metadata label - music genre" + }, + "trackLabel": "Label", + "@trackLabel": { + "description": "Metadata label - record label" + }, + "trackCopyright": "Copyright", + "@trackCopyright": { + "description": "Metadata label - copyright information" + }, "trackDownloaded": "Downloaded", "@trackDownloaded": { "description": "Metadata label - download date" @@ -2017,6 +2102,18 @@ "@trackLyricsLoadFailed": { "description": "Message when lyrics loading fails" }, + "trackEmbedLyrics": "Embed Lyrics", + "@trackEmbedLyrics": { + "description": "Action - embed lyrics into audio file" + }, + "trackLyricsEmbedded": "Lyrics embedded successfully", + "@trackLyricsEmbedded": { + "description": "Snackbar - lyrics saved to file" + }, + "trackInstrumental": "Instrumental track", + "@trackInstrumental": { + "description": "Message when track is instrumental (no lyrics)" + }, "trackCopiedToClipboard": "Copied to clipboard", "@trackCopiedToClipboard": { "description": "Snackbar - content copied" @@ -2328,6 +2425,26 @@ "@qualityHiResFlacMaxSubtitle": { "description": "Technical spec for hi-res max" }, + "qualityMp3": "MP3", + "@qualityMp3": { + "description": "Quality option - MP3 lossy format" + }, + "qualityMp3Subtitle": "320kbps (converted from FLAC)", + "@qualityMp3Subtitle": { + "description": "Technical spec for MP3" + }, + "enableMp3Option": "Enable MP3 Option", + "@enableMp3Option": { + "description": "Setting - enable MP3 quality option" + }, + "enableMp3OptionSubtitleOn": "MP3 quality option is available", + "@enableMp3OptionSubtitleOn": { + "description": "Subtitle when MP3 is enabled" + }, + "enableMp3OptionSubtitleOff": "Downloads FLAC then converts to 320kbps MP3", + "@enableMp3OptionSubtitleOff": { + "description": "Subtitle when MP3 is disabled" + }, "qualityNote": "Actual quality depends on track availability from the service", "@qualityNote": { "description": "Note about quality availability" @@ -2516,6 +2633,14 @@ "@albumFolderYearAlbumSubtitle": { "description": "Folder structure example" }, + "albumFolderArtistAlbumSingles": "Artist / Album + Singles", + "@albumFolderArtistAlbumSingles": { + "description": "Album folder option with singles inside artist" + }, + "albumFolderArtistAlbumSinglesSubtitle": "Artist/Album/ and Artist/Singles/", + "@albumFolderArtistAlbumSinglesSubtitle": { + "description": "Folder structure example" + }, "downloadedAlbumDeleteSelected": "Delete Selected", "@downloadedAlbumDeleteSelected": { "description": "Button - delete selected tracks" @@ -2572,6 +2697,16 @@ "@downloadedAlbumSelectToDelete": { "description": "Placeholder when nothing selected" }, + "downloadedAlbumDiscHeader": "Disc {discNumber}", + "@downloadedAlbumDiscHeader": { + "description": "Header for disc separator in multi-disc albums", + "placeholders": { + "discNumber": { + "type": "int", + "example": "1" + } + } + }, "utilityFunctions": "Utility Functions", "@utilityFunctions": { "description": "Extension capability - utility functions" @@ -2611,5 +2746,123 @@ "description": "Error message" } } + }, + "discographyDownload": "Download Discography", + "@discographyDownload": { + "description": "Button - download artist discography" + }, + "discographyDownloadAll": "Download All", + "@discographyDownloadAll": { + "description": "Option - download entire discography" + }, + "discographyDownloadAllSubtitle": "{count} tracks from {albumCount} releases", + "@discographyDownloadAllSubtitle": { + "description": "Subtitle showing total tracks and albums", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographyAlbumsOnly": "Albums Only", + "@discographyAlbumsOnly": { + "description": "Option - download only albums" + }, + "discographyAlbumsOnlySubtitle": "{count} tracks from {albumCount} albums", + "@discographyAlbumsOnlySubtitle": { + "description": "Subtitle showing album tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySinglesOnly": "Singles & EPs Only", + "@discographySinglesOnly": { + "description": "Option - download only singles" + }, + "discographySinglesOnlySubtitle": "{count} tracks from {albumCount} singles", + "@discographySinglesOnlySubtitle": { + "description": "Subtitle showing singles tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySelectAlbums": "Select Albums...", + "@discographySelectAlbums": { + "description": "Option - manually select albums to download" + }, + "discographySelectAlbumsSubtitle": "Choose specific albums or singles", + "@discographySelectAlbumsSubtitle": { + "description": "Subtitle for select albums option" + }, + "discographyFetchingTracks": "Fetching tracks...", + "@discographyFetchingTracks": { + "description": "Progress - fetching album tracks" + }, + "discographyFetchingAlbum": "Fetching {current} of {total}...", + "@discographyFetchingAlbum": { + "description": "Progress - fetching specific album", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "discographySelectedCount": "{count} selected", + "@discographySelectedCount": { + "description": "Selection count badge", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographyDownloadSelected": "Download Selected", + "@discographyDownloadSelected": { + "description": "Button - download selected albums" + }, + "discographyAddedToQueue": "Added {count} tracks to queue", + "@discographyAddedToQueue": { + "description": "Snackbar - tracks added from discography", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographySkippedDownloaded": "{added} added, {skipped} already downloaded", + "@discographySkippedDownloaded": { + "description": "Snackbar - with skipped tracks count", + "placeholders": { + "added": { + "type": "int" + }, + "skipped": { + "type": "int" + } + } + }, + "discographyNoAlbums": "No albums available", + "@discographyNoAlbums": { + "description": "Error - no albums found for artist" + }, + "discographyFailedToFetch": "Failed to fetch some albums", + "@discographyFailedToFetch": { + "description": "Error - some albums failed to load" } } \ No newline at end of file diff --git a/lib/l10n/arb/app_zh_TW.arb b/lib/l10n/arb/app_zh_TW.arb index 57beac71..26539714 100644 --- a/lib/l10n/arb/app_zh_TW.arb +++ b/lib/l10n/arb/app_zh_TW.arb @@ -1,5 +1,5 @@ { - "@@locale": "zh_TW", + "@@locale": "zh-TW", "@@last_modified": "2026-01-16", "appName": "SpotiFLAC", "@appName": { @@ -127,6 +127,10 @@ "@historyNoSinglesSubtitle": { "description": "Empty state subtitle for singles filter" }, + "historySearchHint": "Search history...", + "@historySearchHint": { + "description": "Search bar placeholder in history" + }, "settingsTitle": "Settings", "@settingsTitle": { "description": "Settings screen title" @@ -512,6 +516,10 @@ "@aboutLogoArtist": { "description": "Role description for logo artist" }, + "aboutTranslators": "Translators", + "@aboutTranslators": { + "description": "Section for translators" + }, "aboutSpecialThanks": "Special Thanks", "@aboutSpecialThanks": { "description": "Section for special thanks" @@ -544,6 +552,26 @@ "@aboutFeatureRequestSubtitle": { "description": "Subtitle for feature request" }, + "aboutTelegramChannel": "Telegram Channel", + "@aboutTelegramChannel": { + "description": "Link to Telegram channel" + }, + "aboutTelegramChannelSubtitle": "Announcements and updates", + "@aboutTelegramChannelSubtitle": { + "description": "Subtitle for Telegram channel" + }, + "aboutTelegramChat": "Telegram Community", + "@aboutTelegramChat": { + "description": "Link to Telegram chat group" + }, + "aboutTelegramChatSubtitle": "Chat with other users", + "@aboutTelegramChatSubtitle": { + "description": "Subtitle for Telegram chat" + }, + "aboutSocial": "Social", + "@aboutSocial": { + "description": "Section for social links" + }, "aboutSupport": "Support", "@aboutSupport": { "description": "Section for support/donation links" @@ -1122,6 +1150,15 @@ "description": "Dialog title - import CSV playlist" }, "dialogImportPlaylistMessage": "Found {count} tracks in CSV. Add them to download queue?", + "csvImportTracks": "{count} tracks from CSV", + "@csvImportTracks": { + "description": "Label shown in quality picker for CSV import", + "placeholders": { + "count": { + "type": "int" + } + } + }, "@dialogImportPlaylistMessage": { "description": "Dialog message - import playlist confirmation", "placeholders": { @@ -1851,6 +1888,42 @@ "@sectionFileSettings": { "description": "Settings section header" }, + "sectionLyrics": "Lyrics", + "@sectionLyrics": { + "description": "Settings section header" + }, + "lyricsMode": "Lyrics Mode", + "@lyricsMode": { + "description": "Setting - how to save lyrics" + }, + "lyricsModeDescription": "Choose how lyrics are saved with your downloads", + "@lyricsModeDescription": { + "description": "Lyrics mode picker description" + }, + "lyricsModeEmbed": "Embed in file", + "@lyricsModeEmbed": { + "description": "Lyrics mode option - embed in audio file" + }, + "lyricsModeEmbedSubtitle": "Lyrics stored inside FLAC metadata", + "@lyricsModeEmbedSubtitle": { + "description": "Subtitle for embed option" + }, + "lyricsModeExternal": "External .lrc file", + "@lyricsModeExternal": { + "description": "Lyrics mode option - separate LRC file" + }, + "lyricsModeExternalSubtitle": "Separate .lrc file for players like Samsung Music", + "@lyricsModeExternalSubtitle": { + "description": "Subtitle for external option" + }, + "lyricsModeBoth": "Both", + "@lyricsModeBoth": { + "description": "Lyrics mode option - embed and external" + }, + "lyricsModeBothSubtitle": "Embed and save .lrc file", + "@lyricsModeBothSubtitle": { + "description": "Subtitle for both option" + }, "sectionColor": "Color", "@sectionColor": { "description": "Settings section header" @@ -1997,6 +2070,18 @@ "@trackReleaseDate": { "description": "Metadata label - release date" }, + "trackGenre": "Genre", + "@trackGenre": { + "description": "Metadata label - music genre" + }, + "trackLabel": "Label", + "@trackLabel": { + "description": "Metadata label - record label" + }, + "trackCopyright": "Copyright", + "@trackCopyright": { + "description": "Metadata label - copyright information" + }, "trackDownloaded": "Downloaded", "@trackDownloaded": { "description": "Metadata label - download date" @@ -2017,6 +2102,18 @@ "@trackLyricsLoadFailed": { "description": "Message when lyrics loading fails" }, + "trackEmbedLyrics": "Embed Lyrics", + "@trackEmbedLyrics": { + "description": "Action - embed lyrics into audio file" + }, + "trackLyricsEmbedded": "Lyrics embedded successfully", + "@trackLyricsEmbedded": { + "description": "Snackbar - lyrics saved to file" + }, + "trackInstrumental": "Instrumental track", + "@trackInstrumental": { + "description": "Message when track is instrumental (no lyrics)" + }, "trackCopiedToClipboard": "Copied to clipboard", "@trackCopiedToClipboard": { "description": "Snackbar - content copied" @@ -2328,6 +2425,26 @@ "@qualityHiResFlacMaxSubtitle": { "description": "Technical spec for hi-res max" }, + "qualityMp3": "MP3", + "@qualityMp3": { + "description": "Quality option - MP3 lossy format" + }, + "qualityMp3Subtitle": "320kbps (converted from FLAC)", + "@qualityMp3Subtitle": { + "description": "Technical spec for MP3" + }, + "enableMp3Option": "Enable MP3 Option", + "@enableMp3Option": { + "description": "Setting - enable MP3 quality option" + }, + "enableMp3OptionSubtitleOn": "MP3 quality option is available", + "@enableMp3OptionSubtitleOn": { + "description": "Subtitle when MP3 is enabled" + }, + "enableMp3OptionSubtitleOff": "Downloads FLAC then converts to 320kbps MP3", + "@enableMp3OptionSubtitleOff": { + "description": "Subtitle when MP3 is disabled" + }, "qualityNote": "Actual quality depends on track availability from the service", "@qualityNote": { "description": "Note about quality availability" @@ -2516,6 +2633,14 @@ "@albumFolderYearAlbumSubtitle": { "description": "Folder structure example" }, + "albumFolderArtistAlbumSingles": "Artist / Album + Singles", + "@albumFolderArtistAlbumSingles": { + "description": "Album folder option with singles inside artist" + }, + "albumFolderArtistAlbumSinglesSubtitle": "Artist/Album/ and Artist/Singles/", + "@albumFolderArtistAlbumSinglesSubtitle": { + "description": "Folder structure example" + }, "downloadedAlbumDeleteSelected": "Delete Selected", "@downloadedAlbumDeleteSelected": { "description": "Button - delete selected tracks" @@ -2572,6 +2697,16 @@ "@downloadedAlbumSelectToDelete": { "description": "Placeholder when nothing selected" }, + "downloadedAlbumDiscHeader": "Disc {discNumber}", + "@downloadedAlbumDiscHeader": { + "description": "Header for disc separator in multi-disc albums", + "placeholders": { + "discNumber": { + "type": "int", + "example": "1" + } + } + }, "utilityFunctions": "Utility Functions", "@utilityFunctions": { "description": "Extension capability - utility functions" @@ -2611,5 +2746,123 @@ "description": "Error message" } } + }, + "discographyDownload": "Download Discography", + "@discographyDownload": { + "description": "Button - download artist discography" + }, + "discographyDownloadAll": "Download All", + "@discographyDownloadAll": { + "description": "Option - download entire discography" + }, + "discographyDownloadAllSubtitle": "{count} tracks from {albumCount} releases", + "@discographyDownloadAllSubtitle": { + "description": "Subtitle showing total tracks and albums", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographyAlbumsOnly": "Albums Only", + "@discographyAlbumsOnly": { + "description": "Option - download only albums" + }, + "discographyAlbumsOnlySubtitle": "{count} tracks from {albumCount} albums", + "@discographyAlbumsOnlySubtitle": { + "description": "Subtitle showing album tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySinglesOnly": "Singles & EPs Only", + "@discographySinglesOnly": { + "description": "Option - download only singles" + }, + "discographySinglesOnlySubtitle": "{count} tracks from {albumCount} singles", + "@discographySinglesOnlySubtitle": { + "description": "Subtitle showing singles tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySelectAlbums": "Select Albums...", + "@discographySelectAlbums": { + "description": "Option - manually select albums to download" + }, + "discographySelectAlbumsSubtitle": "Choose specific albums or singles", + "@discographySelectAlbumsSubtitle": { + "description": "Subtitle for select albums option" + }, + "discographyFetchingTracks": "Fetching tracks...", + "@discographyFetchingTracks": { + "description": "Progress - fetching album tracks" + }, + "discographyFetchingAlbum": "Fetching {current} of {total}...", + "@discographyFetchingAlbum": { + "description": "Progress - fetching specific album", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "discographySelectedCount": "{count} selected", + "@discographySelectedCount": { + "description": "Selection count badge", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographyDownloadSelected": "Download Selected", + "@discographyDownloadSelected": { + "description": "Button - download selected albums" + }, + "discographyAddedToQueue": "Added {count} tracks to queue", + "@discographyAddedToQueue": { + "description": "Snackbar - tracks added from discography", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographySkippedDownloaded": "{added} added, {skipped} already downloaded", + "@discographySkippedDownloaded": { + "description": "Snackbar - with skipped tracks count", + "placeholders": { + "added": { + "type": "int" + }, + "skipped": { + "type": "int" + } + } + }, + "discographyNoAlbums": "No albums available", + "@discographyNoAlbums": { + "description": "Error - no albums found for artist" + }, + "discographyFailedToFetch": "Failed to fetch some albums", + "@discographyFailedToFetch": { + "description": "Error - some albums failed to load" } } \ No newline at end of file