mirror of
https://github.com/zarzet/SpotiFLAC-Mobile.git
synced 2026-08-02 09:08:35 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f8d4351d9e | ||
|
|
fad1c45550 | ||
|
|
f200cf6e3b | ||
|
|
d0f7f1b3c4 | ||
|
|
2da814d1ee | ||
|
|
dd674f6fe3 | ||
|
|
786872bda1 | ||
|
|
cf8774645a | ||
|
|
b9d55b0231 | ||
|
|
1a268780ac | ||
|
|
67396f3f78 | ||
|
|
8b3944f11b | ||
|
|
6bfa1cb0d0 | ||
|
|
f26a285e23 | ||
|
|
965b897b57 | ||
|
|
30dd4d1317 | ||
|
|
c394443d93 | ||
|
|
23255b6418 | ||
|
|
285f313875 | ||
|
|
c46cc4d68f | ||
|
|
54463d37f3 | ||
|
|
0e03681cfc | ||
|
|
1b4dfa7580 |
File diff suppressed because it is too large
Load Diff
+260
-11
@@ -792,7 +792,7 @@
|
|||||||
"@dialogImportPlaylistTitle": {
|
"@dialogImportPlaylistTitle": {
|
||||||
"description": "Dialog title - import CSV playlist"
|
"description": "Dialog title - import CSV playlist"
|
||||||
},
|
},
|
||||||
"dialogImportPlaylistMessage": "{count} Titel gefunden hinzufügen?",
|
"dialogImportPlaylistMessage": "Found {count} tracks in the playlist file. Add them to download queue?",
|
||||||
"csvImportTracks": "{count} Titel aus CSV",
|
"csvImportTracks": "{count} Titel aus CSV",
|
||||||
"@csvImportTracks": {
|
"@csvImportTracks": {
|
||||||
"description": "Label shown in quality picker for CSV import",
|
"description": "Label shown in quality picker for CSV import",
|
||||||
@@ -802,6 +802,79 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"collectionExportM3u": "Export as M3U8",
|
||||||
|
"@collectionExportM3u": {
|
||||||
|
"description": "Tooltip on the collection screen action that exports the track list as an M3U8 playlist file"
|
||||||
|
},
|
||||||
|
"collectionExportM3uDone": "Exported {exported} of {total} tracks",
|
||||||
|
"@collectionExportM3uDone": {
|
||||||
|
"description": "Snackbar after M3U8 export; tracks without a local file are not exported",
|
||||||
|
"placeholders": {
|
||||||
|
"exported": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"total": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"collectionExportM3uNone": "No downloaded files to export",
|
||||||
|
"@collectionExportM3uNone": {
|
||||||
|
"description": "Snackbar when an M3U8 export finds no local files"
|
||||||
|
},
|
||||||
|
"collectionExportM3uFailed": "Export failed",
|
||||||
|
"@collectionExportM3uFailed": {
|
||||||
|
"description": "Snackbar when writing or sharing the M3U8 export fails"
|
||||||
|
},
|
||||||
|
"trackOpenOn": "Open on...",
|
||||||
|
"@trackOpenOn": {
|
||||||
|
"description": "Track option and sheet title listing streaming platforms where the track can be opened"
|
||||||
|
},
|
||||||
|
"trackOpenOnNoLinks": "No platform links found for this track.",
|
||||||
|
"@trackOpenOnNoLinks": {
|
||||||
|
"description": "Shown in the Open on sheet when song.link returns no links"
|
||||||
|
},
|
||||||
|
"libraryReviewDuplicates": "Review duplicates",
|
||||||
|
"@libraryReviewDuplicates": {
|
||||||
|
"description": "Library settings row opening the duplicate review sheet"
|
||||||
|
},
|
||||||
|
"libraryReviewDuplicatesSubtitle": "Find tracks stored more than once",
|
||||||
|
"@libraryReviewDuplicatesSubtitle": {
|
||||||
|
"description": "Subtitle for the duplicate review settings row"
|
||||||
|
},
|
||||||
|
"duplicatesTitle": "Duplicates",
|
||||||
|
"@duplicatesTitle": {
|
||||||
|
"description": "Title of the duplicate review sheet"
|
||||||
|
},
|
||||||
|
"duplicatesEmpty": "No duplicate tracks found.",
|
||||||
|
"@duplicatesEmpty": {
|
||||||
|
"description": "Shown when the duplicate review sheet finds nothing"
|
||||||
|
},
|
||||||
|
"duplicatesKeepBest": "Keep best",
|
||||||
|
"@duplicatesKeepBest": {
|
||||||
|
"description": "Button that deletes all but the highest-quality copy in a duplicate group"
|
||||||
|
},
|
||||||
|
"duplicatesKeepBestMessage": "Delete {count} lower-quality copies of \"{trackName}\"?",
|
||||||
|
"@duplicatesKeepBestMessage": {
|
||||||
|
"description": "Confirmation message for the keep-best action",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"trackName": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"duplicatesDeleteCopyMessage": "Delete this copy of \"{trackName}\"?",
|
||||||
|
"@duplicatesDeleteCopyMessage": {
|
||||||
|
"description": "Confirmation message for deleting one duplicate copy",
|
||||||
|
"placeholders": {
|
||||||
|
"trackName": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"@dialogImportPlaylistMessage": {
|
"@dialogImportPlaylistMessage": {
|
||||||
"description": "Dialog message - import playlist confirmation",
|
"description": "Dialog message - import playlist confirmation",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -2018,6 +2091,14 @@
|
|||||||
"@appearanceHeroAnimationsSubtitle": {
|
"@appearanceHeroAnimationsSubtitle": {
|
||||||
"description": "Subtitle for the Hero animations toggle"
|
"description": "Subtitle for the Hero animations toggle"
|
||||||
},
|
},
|
||||||
|
"appearanceForceBlur": "Always use blur effects",
|
||||||
|
"@appearanceForceBlur": {
|
||||||
|
"description": "Toggle that forces backdrop blur on even when the device profile disabled it"
|
||||||
|
},
|
||||||
|
"appearanceForceBlurSubtitle": "Enable the navigation bar blur even on devices where it is off by default. May cost performance.",
|
||||||
|
"@appearanceForceBlurSubtitle": {
|
||||||
|
"description": "Subtitle for the force-blur toggle"
|
||||||
|
},
|
||||||
"queueClearAll": "Alles löschen",
|
"queueClearAll": "Alles löschen",
|
||||||
"@queueClearAll": {
|
"@queueClearAll": {
|
||||||
"description": "Button - clear all queue items"
|
"description": "Button - clear all queue items"
|
||||||
@@ -2678,7 +2759,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tutorialWelcomeTitle": "Willkommen bei SpotiFLAC!",
|
"tutorialWelcomeTitle": "Welcome to SpotiFLAC Mobile!",
|
||||||
"@tutorialWelcomeTitle": {
|
"@tutorialWelcomeTitle": {
|
||||||
"description": "Tutorial welcome page title"
|
"description": "Tutorial welcome page title"
|
||||||
},
|
},
|
||||||
@@ -2686,7 +2767,7 @@
|
|||||||
"@tutorialWelcomeDesc": {
|
"@tutorialWelcomeDesc": {
|
||||||
"description": "Tutorial welcome page description"
|
"description": "Tutorial welcome page description"
|
||||||
},
|
},
|
||||||
"tutorialWelcomeTip1": "Lade Musik von Spotify, Deezer herunter oder jeden unterstützten Link einfügen",
|
"tutorialWelcomeTip1": "Search music or paste a link from any source your installed extensions support",
|
||||||
"@tutorialWelcomeTip1": {
|
"@tutorialWelcomeTip1": {
|
||||||
"description": "Tutorial welcome tip 1"
|
"description": "Tutorial welcome tip 1"
|
||||||
},
|
},
|
||||||
@@ -4202,10 +4283,51 @@
|
|||||||
"@editMetadataAutoFill": {
|
"@editMetadataAutoFill": {
|
||||||
"description": "Section title for selective online metadata auto-fill in the edit metadata sheet"
|
"description": "Section title for selective online metadata auto-fill in the edit metadata sheet"
|
||||||
},
|
},
|
||||||
"editMetadataAutoFillDesc": "Wähle Felder aus, die automatisch aus Online-Metadaten ausgefüllt werden sollen",
|
"editMetadataAutoFillDesc": "Choose a metadata extension, select fields, then review its data before applying",
|
||||||
"@editMetadataAutoFillDesc": {
|
"@editMetadataAutoFillDesc": {
|
||||||
"description": "Description for the auto-fill section"
|
"description": "Description for the auto-fill section"
|
||||||
},
|
},
|
||||||
|
"editMetadataAutoFillSource": "Metadata source",
|
||||||
|
"@editMetadataAutoFillSource": {
|
||||||
|
"description": "Label for the metadata extension selector in online auto-fill"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillSourceAutomatic": "Automatic (provider priority)",
|
||||||
|
"@editMetadataAutoFillSourceAutomatic": {
|
||||||
|
"description": "Automatic source option that follows configured metadata provider priority"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillFind": "Find metadata",
|
||||||
|
"@editMetadataAutoFillFind": {
|
||||||
|
"description": "Button label for finding an online metadata candidate"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillPreview": "Data from {source}",
|
||||||
|
"@editMetadataAutoFillPreview": {
|
||||||
|
"description": "Title for the online metadata preview",
|
||||||
|
"placeholders": {
|
||||||
|
"source": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillCoverAvailable": "Cover artwork available",
|
||||||
|
"@editMetadataAutoFillCoverAvailable": {
|
||||||
|
"description": "Preview value when the selected metadata source provides cover artwork"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillApply": "Apply selected data",
|
||||||
|
"@editMetadataAutoFillApply": {
|
||||||
|
"description": "Button label for applying the previewed metadata"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillDoneFromSource": "Filled {count} {count, plural, =1{field} other{fields}} from {source}",
|
||||||
|
"@editMetadataAutoFillDoneFromSource": {
|
||||||
|
"description": "Snackbar confirming fields applied from a selected metadata source",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"editMetadataAutoFillFetch": "Abrufen & Ausfüllen",
|
"editMetadataAutoFillFetch": "Abrufen & Ausfüllen",
|
||||||
"@editMetadataAutoFillFetch": {
|
"@editMetadataAutoFillFetch": {
|
||||||
"description": "Button label to fetch online metadata and fill selected fields"
|
"description": "Button label to fetch online metadata and fill selected fields"
|
||||||
@@ -4334,6 +4456,27 @@
|
|||||||
"@queueEmptySinglesSubtitle": {
|
"@queueEmptySinglesSubtitle": {
|
||||||
"description": "Empty state subtitle for single track downloads"
|
"description": "Empty state subtitle for single track downloads"
|
||||||
},
|
},
|
||||||
|
"queuePlaylistCount": "{count, plural, =1{1 playlist} other{{count} playlists}}",
|
||||||
|
"@queuePlaylistCount": {
|
||||||
|
"description": "Playlist count label with plural support",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"queueEmptyPlaylistsSubtitle": "Create a playlist to organize your tracks",
|
||||||
|
"@queueEmptyPlaylistsSubtitle": {
|
||||||
|
"description": "Empty state subtitle for the playlists library view"
|
||||||
|
},
|
||||||
|
"libraryDefaultView": "Default view",
|
||||||
|
"@libraryDefaultView": {
|
||||||
|
"description": "Setting title - which library view opens when switching to the Library tab"
|
||||||
|
},
|
||||||
|
"libraryDefaultViewLastUsed": "Last used",
|
||||||
|
"@libraryDefaultViewLastUsed": {
|
||||||
|
"description": "Default view option - keep the last used library view"
|
||||||
|
},
|
||||||
"queueEmptyHistory": "Kein Download-Verlauf",
|
"queueEmptyHistory": "Kein Download-Verlauf",
|
||||||
"@queueEmptyHistory": {
|
"@queueEmptyHistory": {
|
||||||
"description": "Empty state title when download history is empty"
|
"description": "Empty state title when download history is empty"
|
||||||
@@ -4434,6 +4577,10 @@
|
|||||||
"@audioAnalysisSpectralCutoff": {
|
"@audioAnalysisSpectralCutoff": {
|
||||||
"description": "Estimated spectral cutoff metric label"
|
"description": "Estimated spectral cutoff metric label"
|
||||||
},
|
},
|
||||||
|
"audioAnalysisCutoffNotDetected": "Not detected",
|
||||||
|
"@audioAnalysisCutoffNotDetected": {
|
||||||
|
"description": "Displayed when no reliable broadband spectral cutoff can be detected"
|
||||||
|
},
|
||||||
"audioAnalysisChannelStats": "Pro Kanal Statistik",
|
"audioAnalysisChannelStats": "Pro Kanal Statistik",
|
||||||
"@audioAnalysisChannelStats": {
|
"@audioAnalysisChannelStats": {
|
||||||
"description": "Per-channel audio analysis section label"
|
"description": "Per-channel audio analysis section label"
|
||||||
@@ -4504,6 +4651,14 @@
|
|||||||
"@cancelDownloadKeep": {
|
"@cancelDownloadKeep": {
|
||||||
"description": "Dialog button - keep the active download (do not cancel)"
|
"description": "Dialog button - keep the active download (do not cancel)"
|
||||||
},
|
},
|
||||||
|
"queueCancelledTitle": "Download cancelled",
|
||||||
|
"@queueCancelledTitle": {
|
||||||
|
"description": "Dialog title when opening a cancelled queue item"
|
||||||
|
},
|
||||||
|
"queueCancelledMessage": "This download was cancelled. Retry it or remove it from the queue.",
|
||||||
|
"@queueCancelledMessage": {
|
||||||
|
"description": "Dialog body when opening a cancelled queue item"
|
||||||
|
},
|
||||||
"metadataSaveFailedFfmpeg": "Fehler beim Speichern der Metadaten über FFmpeg",
|
"metadataSaveFailedFfmpeg": "Fehler beim Speichern der Metadaten über FFmpeg",
|
||||||
"@metadataSaveFailedFfmpeg": {
|
"@metadataSaveFailedFfmpeg": {
|
||||||
"description": "Snackbar error when FFmpeg fails to write metadata"
|
"description": "Snackbar error when FFmpeg fails to write metadata"
|
||||||
@@ -4769,9 +4924,9 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"homeImportCsvTooltip": "CSV-Datei importieren",
|
"homeImportCsvTooltip": "Import playlist (CSV, M3U)",
|
||||||
"@homeImportCsvTooltip": {
|
"@homeImportCsvTooltip": {
|
||||||
"description": "Tooltip for importing a CSV file into Home search"
|
"description": "Tooltip for importing a CSV or M3U playlist file into Home search"
|
||||||
},
|
},
|
||||||
"homeChangeSearchProviderTooltip": "Suchanbieter ändern",
|
"homeChangeSearchProviderTooltip": "Suchanbieter ändern",
|
||||||
"@homeChangeSearchProviderTooltip": {
|
"@homeChangeSearchProviderTooltip": {
|
||||||
@@ -4837,6 +4992,18 @@
|
|||||||
"@trackCoverReplaceNotice": {
|
"@trackCoverReplaceNotice": {
|
||||||
"description": "Notice shown when a new cover has been selected but not saved yet"
|
"description": "Notice shown when a new cover has been selected but not saved yet"
|
||||||
},
|
},
|
||||||
|
"trackCoverResolution": "Cover resolution",
|
||||||
|
"@trackCoverResolution": {
|
||||||
|
"description": "Label for selecting the embedded cover art resolution"
|
||||||
|
},
|
||||||
|
"trackCoverResolutionHint": "Sets the longest edge when saved. Enlarging does not add image detail.",
|
||||||
|
"@trackCoverResolutionHint": {
|
||||||
|
"description": "Explanation below the embedded cover art resolution selector"
|
||||||
|
},
|
||||||
|
"trackCoverResizeFailed": "The cover image could not be resized. Please try another size or image.",
|
||||||
|
"@trackCoverResizeFailed": {
|
||||||
|
"description": "Error shown when resizing cover art before saving metadata fails"
|
||||||
|
},
|
||||||
"actionStop": "Stop",
|
"actionStop": "Stop",
|
||||||
"@actionStop": {
|
"@actionStop": {
|
||||||
"description": "Generic action - stop"
|
"description": "Generic action - stop"
|
||||||
@@ -4845,6 +5012,55 @@
|
|||||||
"@queueFinalizingDownload": {
|
"@queueFinalizingDownload": {
|
||||||
"description": "Accessibility label for a queue item that is finalizing"
|
"description": "Accessibility label for a queue item that is finalizing"
|
||||||
},
|
},
|
||||||
|
"queueDownloadNext": "Download next",
|
||||||
|
"@queueDownloadNext": {
|
||||||
|
"description": "Tooltip on a queued download row; moves the item to the front of the queue so the next free slot downloads it"
|
||||||
|
},
|
||||||
|
"queueMoveUp": "Move up",
|
||||||
|
"@queueMoveUp": {
|
||||||
|
"description": "Queue item menu action - move the queued item one position earlier"
|
||||||
|
},
|
||||||
|
"queueMoveDown": "Move down",
|
||||||
|
"@queueMoveDown": {
|
||||||
|
"description": "Queue item menu action - move the queued item one position later"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzButton": "Fetch from MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzButton": {
|
||||||
|
"description": "Tag editor button that fills genre and album artist from MusicBrainz by ISRC"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzFilled": "Updated from MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzFilled": {
|
||||||
|
"description": "Snackbar after MusicBrainz suggestions were applied to the tag editor fields"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzNothing": "Nothing found on MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzNothing": {
|
||||||
|
"description": "Snackbar when the MusicBrainz lookup returns no data"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzNeedsIsrc": "Requires an ISRC tag",
|
||||||
|
"@editMetadataMusicBrainzNeedsIsrc": {
|
||||||
|
"description": "Snackbar when the MusicBrainz lookup is tapped without an ISRC"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatOff": "Repeat off",
|
||||||
|
"@nowPlayingRepeatOff": {
|
||||||
|
"description": "Repeat toggle tooltip when repeat is disabled"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatAll": "Repeat all",
|
||||||
|
"@nowPlayingRepeatAll": {
|
||||||
|
"description": "Repeat toggle tooltip when the whole queue repeats"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatOne": "Repeat one",
|
||||||
|
"@nowPlayingRepeatOne": {
|
||||||
|
"description": "Repeat toggle tooltip when the current track repeats"
|
||||||
|
},
|
||||||
|
"queueNetworkFailedOffline": "{count} downloads failed while offline",
|
||||||
|
"@queueNetworkFailedOffline": {
|
||||||
|
"description": "Snackbar shown when connectivity returns and network-failed downloads can be retried",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"queueDownloadedFileMissing": "Heruntergeladene Datei fehlt",
|
"queueDownloadedFileMissing": "Heruntergeladene Datei fehlt",
|
||||||
"@queueDownloadedFileMissing": {
|
"@queueDownloadedFileMissing": {
|
||||||
"description": "Accessibility label when a downloaded file is missing from disk"
|
"description": "Accessibility label when a downloaded file is missing from disk"
|
||||||
@@ -5120,7 +5336,7 @@
|
|||||||
"@downloadQualityVariants": {
|
"@downloadQualityVariants": {
|
||||||
"description": "Setting to retain multiple quality versions of the same track"
|
"description": "Setting to retain multiple quality versions of the same track"
|
||||||
},
|
},
|
||||||
"downloadQualityVariantsDescription": "Add the selected quality to the filename and keep each version in download history",
|
"downloadQualityVariantsDescription": "Keep every quality version; add its measured quality to the filename only when the name is already used",
|
||||||
"@downloadQualityVariantsDescription": {
|
"@downloadQualityVariantsDescription": {
|
||||||
"description": "Description for retaining multiple quality versions"
|
"description": "Description for retaining multiple quality versions"
|
||||||
},
|
},
|
||||||
@@ -5176,6 +5392,10 @@
|
|||||||
"@libraryFilterMetadataIncorrectIsrcFormat": {
|
"@libraryFilterMetadataIncorrectIsrcFormat": {
|
||||||
"description": "Filter option - items with an invalid ISRC format"
|
"description": "Filter option - items with an invalid ISRC format"
|
||||||
},
|
},
|
||||||
|
"libraryFilterMetadataMissingIsrc": "Missing ISRC",
|
||||||
|
"@libraryFilterMetadataMissingIsrc": {
|
||||||
|
"description": "Filter option - items without any ISRC tag"
|
||||||
|
},
|
||||||
"libraryFilterMetadataMissingLabel": "Label fehlt",
|
"libraryFilterMetadataMissingLabel": "Label fehlt",
|
||||||
"@libraryFilterMetadataMissingLabel": {
|
"@libraryFilterMetadataMissingLabel": {
|
||||||
"description": "Filter option - items missing record label"
|
"description": "Filter option - items missing record label"
|
||||||
@@ -5365,10 +5585,6 @@
|
|||||||
"@downloadNativeWorkerSubtitle": {
|
"@downloadNativeWorkerSubtitle": {
|
||||||
"description": "Setting subtitle for Android native download worker"
|
"description": "Setting subtitle for Android native download worker"
|
||||||
},
|
},
|
||||||
"badgeBeta": "BETA",
|
|
||||||
"@badgeBeta": {
|
|
||||||
"description": "Badge label for beta features"
|
|
||||||
},
|
|
||||||
"extensionServiceStatus": "Dienststatus",
|
"extensionServiceStatus": "Dienststatus",
|
||||||
"@extensionServiceStatus": {
|
"@extensionServiceStatus": {
|
||||||
"description": "Extension detail section header for service status"
|
"description": "Extension detail section header for service status"
|
||||||
@@ -6022,5 +6238,38 @@
|
|||||||
"extensionVerificationOpenBrowser": "Open browser",
|
"extensionVerificationOpenBrowser": "Open browser",
|
||||||
"@extensionVerificationOpenBrowser": {
|
"@extensionVerificationOpenBrowser": {
|
||||||
"description": "Button to open the extension verification URL in a browser"
|
"description": "Button to open the extension verification URL in a browser"
|
||||||
|
},
|
||||||
|
"settingsSearchHint": "Search settings",
|
||||||
|
"@settingsSearchHint": {
|
||||||
|
"description": "Placeholder of the search field on the Settings tab"
|
||||||
|
},
|
||||||
|
"settingsSearchNoResults": "No settings match \"{query}\"",
|
||||||
|
"@settingsSearchNoResults": {
|
||||||
|
"description": "Shown when a Settings search returns nothing",
|
||||||
|
"placeholders": {
|
||||||
|
"query": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"settingsGroupInterface": "Extensions & appearance",
|
||||||
|
"@settingsGroupInterface": {
|
||||||
|
"description": "Settings group covering look and feel"
|
||||||
|
},
|
||||||
|
"settingsGroupContent": "Content & metadata",
|
||||||
|
"@settingsGroupContent": {
|
||||||
|
"description": "Settings group covering the library, metadata and lyrics"
|
||||||
|
},
|
||||||
|
"settingsGroupDownloads": "Downloads & files",
|
||||||
|
"@settingsGroupDownloads": {
|
||||||
|
"description": "Settings group covering download behaviour and storage"
|
||||||
|
},
|
||||||
|
"settingsGroupSystem": "System",
|
||||||
|
"@settingsGroupSystem": {
|
||||||
|
"description": "Settings group covering app-level data, cache and logs"
|
||||||
|
},
|
||||||
|
"settingsGroupHelp": "About & support",
|
||||||
|
"@settingsGroupHelp": {
|
||||||
|
"description": "Settings group covering the about page and donations"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+261
-12
@@ -792,7 +792,7 @@
|
|||||||
"@dialogImportPlaylistTitle": {
|
"@dialogImportPlaylistTitle": {
|
||||||
"description": "Dialog title - import CSV playlist"
|
"description": "Dialog title - import CSV playlist"
|
||||||
},
|
},
|
||||||
"dialogImportPlaylistMessage": "Se han encontrado pistas {count} en CSV. ¿Añadirlas para descargar la cola?",
|
"dialogImportPlaylistMessage": "Found {count} tracks in the playlist file. Add them to download queue?",
|
||||||
"csvImportTracks": "{count} pistas de CSV",
|
"csvImportTracks": "{count} pistas de CSV",
|
||||||
"@csvImportTracks": {
|
"@csvImportTracks": {
|
||||||
"description": "Label shown in quality picker for CSV import",
|
"description": "Label shown in quality picker for CSV import",
|
||||||
@@ -802,6 +802,79 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"collectionExportM3u": "Export as M3U8",
|
||||||
|
"@collectionExportM3u": {
|
||||||
|
"description": "Tooltip on the collection screen action that exports the track list as an M3U8 playlist file"
|
||||||
|
},
|
||||||
|
"collectionExportM3uDone": "Exported {exported} of {total} tracks",
|
||||||
|
"@collectionExportM3uDone": {
|
||||||
|
"description": "Snackbar after M3U8 export; tracks without a local file are not exported",
|
||||||
|
"placeholders": {
|
||||||
|
"exported": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"total": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"collectionExportM3uNone": "No downloaded files to export",
|
||||||
|
"@collectionExportM3uNone": {
|
||||||
|
"description": "Snackbar when an M3U8 export finds no local files"
|
||||||
|
},
|
||||||
|
"collectionExportM3uFailed": "Export failed",
|
||||||
|
"@collectionExportM3uFailed": {
|
||||||
|
"description": "Snackbar when writing or sharing the M3U8 export fails"
|
||||||
|
},
|
||||||
|
"trackOpenOn": "Open on...",
|
||||||
|
"@trackOpenOn": {
|
||||||
|
"description": "Track option and sheet title listing streaming platforms where the track can be opened"
|
||||||
|
},
|
||||||
|
"trackOpenOnNoLinks": "No platform links found for this track.",
|
||||||
|
"@trackOpenOnNoLinks": {
|
||||||
|
"description": "Shown in the Open on sheet when song.link returns no links"
|
||||||
|
},
|
||||||
|
"libraryReviewDuplicates": "Review duplicates",
|
||||||
|
"@libraryReviewDuplicates": {
|
||||||
|
"description": "Library settings row opening the duplicate review sheet"
|
||||||
|
},
|
||||||
|
"libraryReviewDuplicatesSubtitle": "Find tracks stored more than once",
|
||||||
|
"@libraryReviewDuplicatesSubtitle": {
|
||||||
|
"description": "Subtitle for the duplicate review settings row"
|
||||||
|
},
|
||||||
|
"duplicatesTitle": "Duplicates",
|
||||||
|
"@duplicatesTitle": {
|
||||||
|
"description": "Title of the duplicate review sheet"
|
||||||
|
},
|
||||||
|
"duplicatesEmpty": "No duplicate tracks found.",
|
||||||
|
"@duplicatesEmpty": {
|
||||||
|
"description": "Shown when the duplicate review sheet finds nothing"
|
||||||
|
},
|
||||||
|
"duplicatesKeepBest": "Keep best",
|
||||||
|
"@duplicatesKeepBest": {
|
||||||
|
"description": "Button that deletes all but the highest-quality copy in a duplicate group"
|
||||||
|
},
|
||||||
|
"duplicatesKeepBestMessage": "Delete {count} lower-quality copies of \"{trackName}\"?",
|
||||||
|
"@duplicatesKeepBestMessage": {
|
||||||
|
"description": "Confirmation message for the keep-best action",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"trackName": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"duplicatesDeleteCopyMessage": "Delete this copy of \"{trackName}\"?",
|
||||||
|
"@duplicatesDeleteCopyMessage": {
|
||||||
|
"description": "Confirmation message for deleting one duplicate copy",
|
||||||
|
"placeholders": {
|
||||||
|
"trackName": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"@dialogImportPlaylistMessage": {
|
"@dialogImportPlaylistMessage": {
|
||||||
"description": "Dialog message - import playlist confirmation",
|
"description": "Dialog message - import playlist confirmation",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -1154,7 +1227,7 @@
|
|||||||
"@updateNewVersionReady": {
|
"@updateNewVersionReady": {
|
||||||
"description": "Update subtitle"
|
"description": "Update subtitle"
|
||||||
},
|
},
|
||||||
"updateRequiredTitle": "Update required",
|
"updateRequiredTitle": "Actualización Necesaria",
|
||||||
"@updateRequiredTitle": {
|
"@updateRequiredTitle": {
|
||||||
"description": "Title of the mandatory update dialog shown when the installed version is too old"
|
"description": "Title of the mandatory update dialog shown when the installed version is too old"
|
||||||
},
|
},
|
||||||
@@ -2018,6 +2091,14 @@
|
|||||||
"@appearanceHeroAnimationsSubtitle": {
|
"@appearanceHeroAnimationsSubtitle": {
|
||||||
"description": "Subtitle for the Hero animations toggle"
|
"description": "Subtitle for the Hero animations toggle"
|
||||||
},
|
},
|
||||||
|
"appearanceForceBlur": "Always use blur effects",
|
||||||
|
"@appearanceForceBlur": {
|
||||||
|
"description": "Toggle that forces backdrop blur on even when the device profile disabled it"
|
||||||
|
},
|
||||||
|
"appearanceForceBlurSubtitle": "Enable the navigation bar blur even on devices where it is off by default. May cost performance.",
|
||||||
|
"@appearanceForceBlurSubtitle": {
|
||||||
|
"description": "Subtitle for the force-blur toggle"
|
||||||
|
},
|
||||||
"queueClearAll": "Eliminar todo",
|
"queueClearAll": "Eliminar todo",
|
||||||
"@queueClearAll": {
|
"@queueClearAll": {
|
||||||
"description": "Button - clear all queue items"
|
"description": "Button - clear all queue items"
|
||||||
@@ -2678,7 +2759,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tutorialWelcomeTitle": "¡Bienvenido a SpotiFLAC!",
|
"tutorialWelcomeTitle": "Welcome to SpotiFLAC Mobile!",
|
||||||
"@tutorialWelcomeTitle": {
|
"@tutorialWelcomeTitle": {
|
||||||
"description": "Tutorial welcome page title"
|
"description": "Tutorial welcome page title"
|
||||||
},
|
},
|
||||||
@@ -2686,7 +2767,7 @@
|
|||||||
"@tutorialWelcomeDesc": {
|
"@tutorialWelcomeDesc": {
|
||||||
"description": "Tutorial welcome page description"
|
"description": "Tutorial welcome page description"
|
||||||
},
|
},
|
||||||
"tutorialWelcomeTip1": "Descarga música de Spotify, Deezer, o pega cualquier URL soportada",
|
"tutorialWelcomeTip1": "Search music or paste a link from any source your installed extensions support",
|
||||||
"@tutorialWelcomeTip1": {
|
"@tutorialWelcomeTip1": {
|
||||||
"description": "Tutorial welcome tip 1"
|
"description": "Tutorial welcome tip 1"
|
||||||
},
|
},
|
||||||
@@ -4202,10 +4283,51 @@
|
|||||||
"@editMetadataAutoFill": {
|
"@editMetadataAutoFill": {
|
||||||
"description": "Section title for selective online metadata auto-fill in the edit metadata sheet"
|
"description": "Section title for selective online metadata auto-fill in the edit metadata sheet"
|
||||||
},
|
},
|
||||||
"editMetadataAutoFillDesc": "Selecciona los campos para rellenar automáticamente con metadatos en línea",
|
"editMetadataAutoFillDesc": "Choose a metadata extension, select fields, then review its data before applying",
|
||||||
"@editMetadataAutoFillDesc": {
|
"@editMetadataAutoFillDesc": {
|
||||||
"description": "Description for the auto-fill section"
|
"description": "Description for the auto-fill section"
|
||||||
},
|
},
|
||||||
|
"editMetadataAutoFillSource": "Metadata source",
|
||||||
|
"@editMetadataAutoFillSource": {
|
||||||
|
"description": "Label for the metadata extension selector in online auto-fill"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillSourceAutomatic": "Automatic (provider priority)",
|
||||||
|
"@editMetadataAutoFillSourceAutomatic": {
|
||||||
|
"description": "Automatic source option that follows configured metadata provider priority"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillFind": "Find metadata",
|
||||||
|
"@editMetadataAutoFillFind": {
|
||||||
|
"description": "Button label for finding an online metadata candidate"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillPreview": "Data from {source}",
|
||||||
|
"@editMetadataAutoFillPreview": {
|
||||||
|
"description": "Title for the online metadata preview",
|
||||||
|
"placeholders": {
|
||||||
|
"source": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillCoverAvailable": "Cover artwork available",
|
||||||
|
"@editMetadataAutoFillCoverAvailable": {
|
||||||
|
"description": "Preview value when the selected metadata source provides cover artwork"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillApply": "Apply selected data",
|
||||||
|
"@editMetadataAutoFillApply": {
|
||||||
|
"description": "Button label for applying the previewed metadata"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillDoneFromSource": "Filled {count} {count, plural, =1{field} other{fields}} from {source}",
|
||||||
|
"@editMetadataAutoFillDoneFromSource": {
|
||||||
|
"description": "Snackbar confirming fields applied from a selected metadata source",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"editMetadataAutoFillFetch": "Recuperar y llenar",
|
"editMetadataAutoFillFetch": "Recuperar y llenar",
|
||||||
"@editMetadataAutoFillFetch": {
|
"@editMetadataAutoFillFetch": {
|
||||||
"description": "Button label to fetch online metadata and fill selected fields"
|
"description": "Button label to fetch online metadata and fill selected fields"
|
||||||
@@ -4334,6 +4456,27 @@
|
|||||||
"@queueEmptySinglesSubtitle": {
|
"@queueEmptySinglesSubtitle": {
|
||||||
"description": "Empty state subtitle for single track downloads"
|
"description": "Empty state subtitle for single track downloads"
|
||||||
},
|
},
|
||||||
|
"queuePlaylistCount": "{count, plural, =1{1 playlist} other{{count} playlists}}",
|
||||||
|
"@queuePlaylistCount": {
|
||||||
|
"description": "Playlist count label with plural support",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"queueEmptyPlaylistsSubtitle": "Create a playlist to organize your tracks",
|
||||||
|
"@queueEmptyPlaylistsSubtitle": {
|
||||||
|
"description": "Empty state subtitle for the playlists library view"
|
||||||
|
},
|
||||||
|
"libraryDefaultView": "Default view",
|
||||||
|
"@libraryDefaultView": {
|
||||||
|
"description": "Setting title - which library view opens when switching to the Library tab"
|
||||||
|
},
|
||||||
|
"libraryDefaultViewLastUsed": "Last used",
|
||||||
|
"@libraryDefaultViewLastUsed": {
|
||||||
|
"description": "Default view option - keep the last used library view"
|
||||||
|
},
|
||||||
"queueEmptyHistory": "No hay historial de descargas",
|
"queueEmptyHistory": "No hay historial de descargas",
|
||||||
"@queueEmptyHistory": {
|
"@queueEmptyHistory": {
|
||||||
"description": "Empty state title when download history is empty"
|
"description": "Empty state title when download history is empty"
|
||||||
@@ -4434,6 +4577,10 @@
|
|||||||
"@audioAnalysisSpectralCutoff": {
|
"@audioAnalysisSpectralCutoff": {
|
||||||
"description": "Estimated spectral cutoff metric label"
|
"description": "Estimated spectral cutoff metric label"
|
||||||
},
|
},
|
||||||
|
"audioAnalysisCutoffNotDetected": "Not detected",
|
||||||
|
"@audioAnalysisCutoffNotDetected": {
|
||||||
|
"description": "Displayed when no reliable broadband spectral cutoff can be detected"
|
||||||
|
},
|
||||||
"audioAnalysisChannelStats": "Per-channel Stats",
|
"audioAnalysisChannelStats": "Per-channel Stats",
|
||||||
"@audioAnalysisChannelStats": {
|
"@audioAnalysisChannelStats": {
|
||||||
"description": "Per-channel audio analysis section label"
|
"description": "Per-channel audio analysis section label"
|
||||||
@@ -4504,6 +4651,14 @@
|
|||||||
"@cancelDownloadKeep": {
|
"@cancelDownloadKeep": {
|
||||||
"description": "Dialog button - keep the active download (do not cancel)"
|
"description": "Dialog button - keep the active download (do not cancel)"
|
||||||
},
|
},
|
||||||
|
"queueCancelledTitle": "Download cancelled",
|
||||||
|
"@queueCancelledTitle": {
|
||||||
|
"description": "Dialog title when opening a cancelled queue item"
|
||||||
|
},
|
||||||
|
"queueCancelledMessage": "This download was cancelled. Retry it or remove it from the queue.",
|
||||||
|
"@queueCancelledMessage": {
|
||||||
|
"description": "Dialog body when opening a cancelled queue item"
|
||||||
|
},
|
||||||
"metadataSaveFailedFfmpeg": "Failed to save metadata via FFmpeg",
|
"metadataSaveFailedFfmpeg": "Failed to save metadata via FFmpeg",
|
||||||
"@metadataSaveFailedFfmpeg": {
|
"@metadataSaveFailedFfmpeg": {
|
||||||
"description": "Snackbar error when FFmpeg fails to write metadata"
|
"description": "Snackbar error when FFmpeg fails to write metadata"
|
||||||
@@ -4769,9 +4924,9 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"homeImportCsvTooltip": "Importar CSV",
|
"homeImportCsvTooltip": "Import playlist (CSV, M3U)",
|
||||||
"@homeImportCsvTooltip": {
|
"@homeImportCsvTooltip": {
|
||||||
"description": "Tooltip for importing a CSV file into Home search"
|
"description": "Tooltip for importing a CSV or M3U playlist file into Home search"
|
||||||
},
|
},
|
||||||
"homeChangeSearchProviderTooltip": "Change search provider",
|
"homeChangeSearchProviderTooltip": "Change search provider",
|
||||||
"@homeChangeSearchProviderTooltip": {
|
"@homeChangeSearchProviderTooltip": {
|
||||||
@@ -4837,6 +4992,18 @@
|
|||||||
"@trackCoverReplaceNotice": {
|
"@trackCoverReplaceNotice": {
|
||||||
"description": "Notice shown when a new cover has been selected but not saved yet"
|
"description": "Notice shown when a new cover has been selected but not saved yet"
|
||||||
},
|
},
|
||||||
|
"trackCoverResolution": "Cover resolution",
|
||||||
|
"@trackCoverResolution": {
|
||||||
|
"description": "Label for selecting the embedded cover art resolution"
|
||||||
|
},
|
||||||
|
"trackCoverResolutionHint": "Sets the longest edge when saved. Enlarging does not add image detail.",
|
||||||
|
"@trackCoverResolutionHint": {
|
||||||
|
"description": "Explanation below the embedded cover art resolution selector"
|
||||||
|
},
|
||||||
|
"trackCoverResizeFailed": "The cover image could not be resized. Please try another size or image.",
|
||||||
|
"@trackCoverResizeFailed": {
|
||||||
|
"description": "Error shown when resizing cover art before saving metadata fails"
|
||||||
|
},
|
||||||
"actionStop": "Detener",
|
"actionStop": "Detener",
|
||||||
"@actionStop": {
|
"@actionStop": {
|
||||||
"description": "Generic action - stop"
|
"description": "Generic action - stop"
|
||||||
@@ -4845,6 +5012,55 @@
|
|||||||
"@queueFinalizingDownload": {
|
"@queueFinalizingDownload": {
|
||||||
"description": "Accessibility label for a queue item that is finalizing"
|
"description": "Accessibility label for a queue item that is finalizing"
|
||||||
},
|
},
|
||||||
|
"queueDownloadNext": "Download next",
|
||||||
|
"@queueDownloadNext": {
|
||||||
|
"description": "Tooltip on a queued download row; moves the item to the front of the queue so the next free slot downloads it"
|
||||||
|
},
|
||||||
|
"queueMoveUp": "Move up",
|
||||||
|
"@queueMoveUp": {
|
||||||
|
"description": "Queue item menu action - move the queued item one position earlier"
|
||||||
|
},
|
||||||
|
"queueMoveDown": "Move down",
|
||||||
|
"@queueMoveDown": {
|
||||||
|
"description": "Queue item menu action - move the queued item one position later"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzButton": "Fetch from MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzButton": {
|
||||||
|
"description": "Tag editor button that fills genre and album artist from MusicBrainz by ISRC"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzFilled": "Updated from MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzFilled": {
|
||||||
|
"description": "Snackbar after MusicBrainz suggestions were applied to the tag editor fields"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzNothing": "Nothing found on MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzNothing": {
|
||||||
|
"description": "Snackbar when the MusicBrainz lookup returns no data"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzNeedsIsrc": "Requires an ISRC tag",
|
||||||
|
"@editMetadataMusicBrainzNeedsIsrc": {
|
||||||
|
"description": "Snackbar when the MusicBrainz lookup is tapped without an ISRC"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatOff": "Repeat off",
|
||||||
|
"@nowPlayingRepeatOff": {
|
||||||
|
"description": "Repeat toggle tooltip when repeat is disabled"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatAll": "Repeat all",
|
||||||
|
"@nowPlayingRepeatAll": {
|
||||||
|
"description": "Repeat toggle tooltip when the whole queue repeats"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatOne": "Repeat one",
|
||||||
|
"@nowPlayingRepeatOne": {
|
||||||
|
"description": "Repeat toggle tooltip when the current track repeats"
|
||||||
|
},
|
||||||
|
"queueNetworkFailedOffline": "{count} downloads failed while offline",
|
||||||
|
"@queueNetworkFailedOffline": {
|
||||||
|
"description": "Snackbar shown when connectivity returns and network-failed downloads can be retried",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"queueDownloadedFileMissing": "Downloaded file missing",
|
"queueDownloadedFileMissing": "Downloaded file missing",
|
||||||
"@queueDownloadedFileMissing": {
|
"@queueDownloadedFileMissing": {
|
||||||
"description": "Accessibility label when a downloaded file is missing from disk"
|
"description": "Accessibility label when a downloaded file is missing from disk"
|
||||||
@@ -5120,7 +5336,7 @@
|
|||||||
"@downloadQualityVariants": {
|
"@downloadQualityVariants": {
|
||||||
"description": "Setting to retain multiple quality versions of the same track"
|
"description": "Setting to retain multiple quality versions of the same track"
|
||||||
},
|
},
|
||||||
"downloadQualityVariantsDescription": "Add the selected quality to the filename and keep each version in download history",
|
"downloadQualityVariantsDescription": "Keep every quality version; add its measured quality to the filename only when the name is already used",
|
||||||
"@downloadQualityVariantsDescription": {
|
"@downloadQualityVariantsDescription": {
|
||||||
"description": "Description for retaining multiple quality versions"
|
"description": "Description for retaining multiple quality versions"
|
||||||
},
|
},
|
||||||
@@ -5176,6 +5392,10 @@
|
|||||||
"@libraryFilterMetadataIncorrectIsrcFormat": {
|
"@libraryFilterMetadataIncorrectIsrcFormat": {
|
||||||
"description": "Filter option - items with an invalid ISRC format"
|
"description": "Filter option - items with an invalid ISRC format"
|
||||||
},
|
},
|
||||||
|
"libraryFilterMetadataMissingIsrc": "Missing ISRC",
|
||||||
|
"@libraryFilterMetadataMissingIsrc": {
|
||||||
|
"description": "Filter option - items without any ISRC tag"
|
||||||
|
},
|
||||||
"libraryFilterMetadataMissingLabel": "Falta etiqueta",
|
"libraryFilterMetadataMissingLabel": "Falta etiqueta",
|
||||||
"@libraryFilterMetadataMissingLabel": {
|
"@libraryFilterMetadataMissingLabel": {
|
||||||
"description": "Filter option - items missing record label"
|
"description": "Filter option - items missing record label"
|
||||||
@@ -5365,10 +5585,6 @@
|
|||||||
"@downloadNativeWorkerSubtitle": {
|
"@downloadNativeWorkerSubtitle": {
|
||||||
"description": "Setting subtitle for Android native download worker"
|
"description": "Setting subtitle for Android native download worker"
|
||||||
},
|
},
|
||||||
"badgeBeta": "BETA",
|
|
||||||
"@badgeBeta": {
|
|
||||||
"description": "Badge label for beta features"
|
|
||||||
},
|
|
||||||
"extensionServiceStatus": "Estado del servicio",
|
"extensionServiceStatus": "Estado del servicio",
|
||||||
"@extensionServiceStatus": {
|
"@extensionServiceStatus": {
|
||||||
"description": "Extension detail section header for service status"
|
"description": "Extension detail section header for service status"
|
||||||
@@ -6022,5 +6238,38 @@
|
|||||||
"extensionVerificationOpenBrowser": "Open browser",
|
"extensionVerificationOpenBrowser": "Open browser",
|
||||||
"@extensionVerificationOpenBrowser": {
|
"@extensionVerificationOpenBrowser": {
|
||||||
"description": "Button to open the extension verification URL in a browser"
|
"description": "Button to open the extension verification URL in a browser"
|
||||||
|
},
|
||||||
|
"settingsSearchHint": "Search settings",
|
||||||
|
"@settingsSearchHint": {
|
||||||
|
"description": "Placeholder of the search field on the Settings tab"
|
||||||
|
},
|
||||||
|
"settingsSearchNoResults": "No settings match \"{query}\"",
|
||||||
|
"@settingsSearchNoResults": {
|
||||||
|
"description": "Shown when a Settings search returns nothing",
|
||||||
|
"placeholders": {
|
||||||
|
"query": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"settingsGroupInterface": "Extensions & appearance",
|
||||||
|
"@settingsGroupInterface": {
|
||||||
|
"description": "Settings group covering look and feel"
|
||||||
|
},
|
||||||
|
"settingsGroupContent": "Content & metadata",
|
||||||
|
"@settingsGroupContent": {
|
||||||
|
"description": "Settings group covering the library, metadata and lyrics"
|
||||||
|
},
|
||||||
|
"settingsGroupDownloads": "Downloads & files",
|
||||||
|
"@settingsGroupDownloads": {
|
||||||
|
"description": "Settings group covering download behaviour and storage"
|
||||||
|
},
|
||||||
|
"settingsGroupSystem": "System",
|
||||||
|
"@settingsGroupSystem": {
|
||||||
|
"description": "Settings group covering app-level data, cache and logs"
|
||||||
|
},
|
||||||
|
"settingsGroupHelp": "About & support",
|
||||||
|
"@settingsGroupHelp": {
|
||||||
|
"description": "Settings group covering the about page and donations"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+260
-11
@@ -792,7 +792,7 @@
|
|||||||
"@dialogImportPlaylistTitle": {
|
"@dialogImportPlaylistTitle": {
|
||||||
"description": "Dialog title - import CSV playlist"
|
"description": "Dialog title - import CSV playlist"
|
||||||
},
|
},
|
||||||
"dialogImportPlaylistMessage": "{count} pistes ont été trouvées dans le fichier CSV. Voulez-vous les ajouter à la file d'attente de téléchargement ?",
|
"dialogImportPlaylistMessage": "{count} titres ont été trouvés dans le fichier de la playlist. Voulez-vous les ajouter à la file d'attente de téléchargement ?",
|
||||||
"csvImportTracks": "{count} pistes issues d'un fichier CSV",
|
"csvImportTracks": "{count} pistes issues d'un fichier CSV",
|
||||||
"@csvImportTracks": {
|
"@csvImportTracks": {
|
||||||
"description": "Label shown in quality picker for CSV import",
|
"description": "Label shown in quality picker for CSV import",
|
||||||
@@ -802,6 +802,79 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"collectionExportM3u": "Exporter au format M3U8",
|
||||||
|
"@collectionExportM3u": {
|
||||||
|
"description": "Tooltip on the collection screen action that exports the track list as an M3U8 playlist file"
|
||||||
|
},
|
||||||
|
"collectionExportM3uDone": "{exported} titres exportés sur {total}",
|
||||||
|
"@collectionExportM3uDone": {
|
||||||
|
"description": "Snackbar after M3U8 export; tracks without a local file are not exported",
|
||||||
|
"placeholders": {
|
||||||
|
"exported": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"total": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"collectionExportM3uNone": "Aucun fichier téléchargé à exporter",
|
||||||
|
"@collectionExportM3uNone": {
|
||||||
|
"description": "Snackbar when an M3U8 export finds no local files"
|
||||||
|
},
|
||||||
|
"collectionExportM3uFailed": "L'exportation a échoué",
|
||||||
|
"@collectionExportM3uFailed": {
|
||||||
|
"description": "Snackbar when writing or sharing the M3U8 export fails"
|
||||||
|
},
|
||||||
|
"trackOpenOn": "Ouvrir sur...",
|
||||||
|
"@trackOpenOn": {
|
||||||
|
"description": "Track option and sheet title listing streaming platforms where the track can be opened"
|
||||||
|
},
|
||||||
|
"trackOpenOnNoLinks": "Aucun lien vers une plateforme n'a été trouvé pour ce titre.",
|
||||||
|
"@trackOpenOnNoLinks": {
|
||||||
|
"description": "Shown in the Open on sheet when song.link returns no links"
|
||||||
|
},
|
||||||
|
"libraryReviewDuplicates": "Vérifier les doublons",
|
||||||
|
"@libraryReviewDuplicates": {
|
||||||
|
"description": "Library settings row opening the duplicate review sheet"
|
||||||
|
},
|
||||||
|
"libraryReviewDuplicatesSubtitle": "Rechercher les titres enregistrés plusieurs fois",
|
||||||
|
"@libraryReviewDuplicatesSubtitle": {
|
||||||
|
"description": "Subtitle for the duplicate review settings row"
|
||||||
|
},
|
||||||
|
"duplicatesTitle": "Doublons",
|
||||||
|
"@duplicatesTitle": {
|
||||||
|
"description": "Title of the duplicate review sheet"
|
||||||
|
},
|
||||||
|
"duplicatesEmpty": "Aucun titre en double n'a été détecté.",
|
||||||
|
"@duplicatesEmpty": {
|
||||||
|
"description": "Shown when the duplicate review sheet finds nothing"
|
||||||
|
},
|
||||||
|
"duplicatesKeepBest": "Garder le meilleur",
|
||||||
|
"@duplicatesKeepBest": {
|
||||||
|
"description": "Button that deletes all but the highest-quality copy in a duplicate group"
|
||||||
|
},
|
||||||
|
"duplicatesKeepBestMessage": "Supprimer {count} copies de moindre qualité de « {trackName} » ?",
|
||||||
|
"@duplicatesKeepBestMessage": {
|
||||||
|
"description": "Confirmation message for the keep-best action",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"trackName": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"duplicatesDeleteCopyMessage": "Souhaitez-vous supprimer cette copie de « {trackName} » ?",
|
||||||
|
"@duplicatesDeleteCopyMessage": {
|
||||||
|
"description": "Confirmation message for deleting one duplicate copy",
|
||||||
|
"placeholders": {
|
||||||
|
"trackName": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"@dialogImportPlaylistMessage": {
|
"@dialogImportPlaylistMessage": {
|
||||||
"description": "Dialog message - import playlist confirmation",
|
"description": "Dialog message - import playlist confirmation",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -2018,6 +2091,14 @@
|
|||||||
"@appearanceHeroAnimationsSubtitle": {
|
"@appearanceHeroAnimationsSubtitle": {
|
||||||
"description": "Subtitle for the Hero animations toggle"
|
"description": "Subtitle for the Hero animations toggle"
|
||||||
},
|
},
|
||||||
|
"appearanceForceBlur": "Utilisez toujours des effets de flou",
|
||||||
|
"@appearanceForceBlur": {
|
||||||
|
"description": "Toggle that forces backdrop blur on even when the device profile disabled it"
|
||||||
|
},
|
||||||
|
"appearanceForceBlurSubtitle": "Activer l'effet de flou de la barre de navigation même sur les appareils où cette option est désactivée par défaut. Cela peut nuire aux performances.",
|
||||||
|
"@appearanceForceBlurSubtitle": {
|
||||||
|
"description": "Subtitle for the force-blur toggle"
|
||||||
|
},
|
||||||
"queueClearAll": "Tout effacer",
|
"queueClearAll": "Tout effacer",
|
||||||
"@queueClearAll": {
|
"@queueClearAll": {
|
||||||
"description": "Button - clear all queue items"
|
"description": "Button - clear all queue items"
|
||||||
@@ -2678,7 +2759,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tutorialWelcomeTitle": "Bienvenue sur SpotiFLAC !",
|
"tutorialWelcomeTitle": "Bienvenue sur SpotiFLAC Mobile !",
|
||||||
"@tutorialWelcomeTitle": {
|
"@tutorialWelcomeTitle": {
|
||||||
"description": "Tutorial welcome page title"
|
"description": "Tutorial welcome page title"
|
||||||
},
|
},
|
||||||
@@ -2686,7 +2767,7 @@
|
|||||||
"@tutorialWelcomeDesc": {
|
"@tutorialWelcomeDesc": {
|
||||||
"description": "Tutorial welcome page description"
|
"description": "Tutorial welcome page description"
|
||||||
},
|
},
|
||||||
"tutorialWelcomeTip1": "Téléchargez de la musique depuis Spotify ou Deezer, ou collez n'importe quelle URL prise en charge",
|
"tutorialWelcomeTip1": "Recherchez de la musique ou collez un lien provenant de n'importe quelle source prise en charge par vos extensions installées",
|
||||||
"@tutorialWelcomeTip1": {
|
"@tutorialWelcomeTip1": {
|
||||||
"description": "Tutorial welcome tip 1"
|
"description": "Tutorial welcome tip 1"
|
||||||
},
|
},
|
||||||
@@ -4202,10 +4283,51 @@
|
|||||||
"@editMetadataAutoFill": {
|
"@editMetadataAutoFill": {
|
||||||
"description": "Section title for selective online metadata auto-fill in the edit metadata sheet"
|
"description": "Section title for selective online metadata auto-fill in the edit metadata sheet"
|
||||||
},
|
},
|
||||||
"editMetadataAutoFillDesc": "Sélectionnez les champs à remplir automatiquement à partir des métadonnées en ligne",
|
"editMetadataAutoFillDesc": "Choisissez une extension de métadonnées, sélectionnez les champs, puis vérifiez les données avant de l'appliquer",
|
||||||
"@editMetadataAutoFillDesc": {
|
"@editMetadataAutoFillDesc": {
|
||||||
"description": "Description for the auto-fill section"
|
"description": "Description for the auto-fill section"
|
||||||
},
|
},
|
||||||
|
"editMetadataAutoFillSource": "Source des métadonnées",
|
||||||
|
"@editMetadataAutoFillSource": {
|
||||||
|
"description": "Label for the metadata extension selector in online auto-fill"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillSourceAutomatic": "Automatique (priorité au fournisseur)",
|
||||||
|
"@editMetadataAutoFillSourceAutomatic": {
|
||||||
|
"description": "Automatic source option that follows configured metadata provider priority"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillFind": "Rechercher des métadonnées",
|
||||||
|
"@editMetadataAutoFillFind": {
|
||||||
|
"description": "Button label for finding an online metadata candidate"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillPreview": "Données provenant de {source}",
|
||||||
|
"@editMetadataAutoFillPreview": {
|
||||||
|
"description": "Title for the online metadata preview",
|
||||||
|
"placeholders": {
|
||||||
|
"source": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillCoverAvailable": "Illustration de couverture disponible",
|
||||||
|
"@editMetadataAutoFillCoverAvailable": {
|
||||||
|
"description": "Preview value when the selected metadata source provides cover artwork"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillApply": "Appliquer les données sélectionnées",
|
||||||
|
"@editMetadataAutoFillApply": {
|
||||||
|
"description": "Button label for applying the previewed metadata"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillDoneFromSource": "Rempli {count} {count, plural, one {}=1{champ} other{champs}} ont été renseignés à partir de {source}",
|
||||||
|
"@editMetadataAutoFillDoneFromSource": {
|
||||||
|
"description": "Snackbar confirming fields applied from a selected metadata source",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"editMetadataAutoFillFetch": "Récupérer & remplir",
|
"editMetadataAutoFillFetch": "Récupérer & remplir",
|
||||||
"@editMetadataAutoFillFetch": {
|
"@editMetadataAutoFillFetch": {
|
||||||
"description": "Button label to fetch online metadata and fill selected fields"
|
"description": "Button label to fetch online metadata and fill selected fields"
|
||||||
@@ -4334,6 +4456,27 @@
|
|||||||
"@queueEmptySinglesSubtitle": {
|
"@queueEmptySinglesSubtitle": {
|
||||||
"description": "Empty state subtitle for single track downloads"
|
"description": "Empty state subtitle for single track downloads"
|
||||||
},
|
},
|
||||||
|
"queuePlaylistCount": "{count, plural, =1{1 playlist} other{{count} playlists}}",
|
||||||
|
"@queuePlaylistCount": {
|
||||||
|
"description": "Playlist count label with plural support",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"queueEmptyPlaylistsSubtitle": "Créez une playlist pour organiser vos morceaux",
|
||||||
|
"@queueEmptyPlaylistsSubtitle": {
|
||||||
|
"description": "Empty state subtitle for the playlists library view"
|
||||||
|
},
|
||||||
|
"libraryDefaultView": "Affichage par défaut",
|
||||||
|
"@libraryDefaultView": {
|
||||||
|
"description": "Setting title - which library view opens when switching to the Library tab"
|
||||||
|
},
|
||||||
|
"libraryDefaultViewLastUsed": "Dernière utilisation",
|
||||||
|
"@libraryDefaultViewLastUsed": {
|
||||||
|
"description": "Default view option - keep the last used library view"
|
||||||
|
},
|
||||||
"queueEmptyHistory": "Aucun historique de téléchargement",
|
"queueEmptyHistory": "Aucun historique de téléchargement",
|
||||||
"@queueEmptyHistory": {
|
"@queueEmptyHistory": {
|
||||||
"description": "Empty state title when download history is empty"
|
"description": "Empty state title when download history is empty"
|
||||||
@@ -4434,6 +4577,10 @@
|
|||||||
"@audioAnalysisSpectralCutoff": {
|
"@audioAnalysisSpectralCutoff": {
|
||||||
"description": "Estimated spectral cutoff metric label"
|
"description": "Estimated spectral cutoff metric label"
|
||||||
},
|
},
|
||||||
|
"audioAnalysisCutoffNotDetected": "Non détecté",
|
||||||
|
"@audioAnalysisCutoffNotDetected": {
|
||||||
|
"description": "Displayed when no reliable broadband spectral cutoff can be detected"
|
||||||
|
},
|
||||||
"audioAnalysisChannelStats": "Statistiques par chaîne",
|
"audioAnalysisChannelStats": "Statistiques par chaîne",
|
||||||
"@audioAnalysisChannelStats": {
|
"@audioAnalysisChannelStats": {
|
||||||
"description": "Per-channel audio analysis section label"
|
"description": "Per-channel audio analysis section label"
|
||||||
@@ -4504,6 +4651,14 @@
|
|||||||
"@cancelDownloadKeep": {
|
"@cancelDownloadKeep": {
|
||||||
"description": "Dialog button - keep the active download (do not cancel)"
|
"description": "Dialog button - keep the active download (do not cancel)"
|
||||||
},
|
},
|
||||||
|
"queueCancelledTitle": "Téléchargement annulé",
|
||||||
|
"@queueCancelledTitle": {
|
||||||
|
"description": "Dialog title when opening a cancelled queue item"
|
||||||
|
},
|
||||||
|
"queueCancelledMessage": "Ce téléchargement a été annulé. Veuillez réessayer ou le supprimer de la file d'attente.",
|
||||||
|
"@queueCancelledMessage": {
|
||||||
|
"description": "Dialog body when opening a cancelled queue item"
|
||||||
|
},
|
||||||
"metadataSaveFailedFfmpeg": "Échec de l'enregistrement des métadonnées via FFmpeg",
|
"metadataSaveFailedFfmpeg": "Échec de l'enregistrement des métadonnées via FFmpeg",
|
||||||
"@metadataSaveFailedFfmpeg": {
|
"@metadataSaveFailedFfmpeg": {
|
||||||
"description": "Snackbar error when FFmpeg fails to write metadata"
|
"description": "Snackbar error when FFmpeg fails to write metadata"
|
||||||
@@ -4769,9 +4924,9 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"homeImportCsvTooltip": "Importer un fichier CSV",
|
"homeImportCsvTooltip": "Importer une playlist (CSV, M3U)",
|
||||||
"@homeImportCsvTooltip": {
|
"@homeImportCsvTooltip": {
|
||||||
"description": "Tooltip for importing a CSV file into Home search"
|
"description": "Tooltip for importing a CSV or M3U playlist file into Home search"
|
||||||
},
|
},
|
||||||
"homeChangeSearchProviderTooltip": "Changer de moteur de recherche",
|
"homeChangeSearchProviderTooltip": "Changer de moteur de recherche",
|
||||||
"@homeChangeSearchProviderTooltip": {
|
"@homeChangeSearchProviderTooltip": {
|
||||||
@@ -4837,6 +4992,18 @@
|
|||||||
"@trackCoverReplaceNotice": {
|
"@trackCoverReplaceNotice": {
|
||||||
"description": "Notice shown when a new cover has been selected but not saved yet"
|
"description": "Notice shown when a new cover has been selected but not saved yet"
|
||||||
},
|
},
|
||||||
|
"trackCoverResolution": "Résolution de la couverture",
|
||||||
|
"@trackCoverResolution": {
|
||||||
|
"description": "Label for selecting the embedded cover art resolution"
|
||||||
|
},
|
||||||
|
"trackCoverResolutionHint": "Définit la longueur maximale de l'image lors de l'enregistrement. L'agrandissement n'apporte pas davantage de détails à l'image.",
|
||||||
|
"@trackCoverResolutionHint": {
|
||||||
|
"description": "Explanation below the embedded cover art resolution selector"
|
||||||
|
},
|
||||||
|
"trackCoverResizeFailed": "L'image de couverture n'a pas pu être redimensionnée. Veuillez essayer une autre taille ou une autre image.",
|
||||||
|
"@trackCoverResizeFailed": {
|
||||||
|
"description": "Error shown when resizing cover art before saving metadata fails"
|
||||||
|
},
|
||||||
"actionStop": "Arrêter",
|
"actionStop": "Arrêter",
|
||||||
"@actionStop": {
|
"@actionStop": {
|
||||||
"description": "Generic action - stop"
|
"description": "Generic action - stop"
|
||||||
@@ -4845,6 +5012,55 @@
|
|||||||
"@queueFinalizingDownload": {
|
"@queueFinalizingDownload": {
|
||||||
"description": "Accessibility label for a queue item that is finalizing"
|
"description": "Accessibility label for a queue item that is finalizing"
|
||||||
},
|
},
|
||||||
|
"queueDownloadNext": "Télécharger le suivant",
|
||||||
|
"@queueDownloadNext": {
|
||||||
|
"description": "Tooltip on a queued download row; moves the item to the front of the queue so the next free slot downloads it"
|
||||||
|
},
|
||||||
|
"queueMoveUp": "Remonter",
|
||||||
|
"@queueMoveUp": {
|
||||||
|
"description": "Queue item menu action - move the queued item one position earlier"
|
||||||
|
},
|
||||||
|
"queueMoveDown": "Descendre",
|
||||||
|
"@queueMoveDown": {
|
||||||
|
"description": "Queue item menu action - move the queued item one position later"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzButton": "Récupérer depuis MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzButton": {
|
||||||
|
"description": "Tag editor button that fills genre and album artist from MusicBrainz by ISRC"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzFilled": "Mise à jour à partir de MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzFilled": {
|
||||||
|
"description": "Snackbar after MusicBrainz suggestions were applied to the tag editor fields"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzNothing": "Aucun résultat trouvé sur MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzNothing": {
|
||||||
|
"description": "Snackbar when the MusicBrainz lookup returns no data"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzNeedsIsrc": "Nécessite une balise ISRC",
|
||||||
|
"@editMetadataMusicBrainzNeedsIsrc": {
|
||||||
|
"description": "Snackbar when the MusicBrainz lookup is tapped without an ISRC"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatOff": "Répétition désactivée",
|
||||||
|
"@nowPlayingRepeatOff": {
|
||||||
|
"description": "Repeat toggle tooltip when repeat is disabled"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatAll": "Tout répéter",
|
||||||
|
"@nowPlayingRepeatAll": {
|
||||||
|
"description": "Repeat toggle tooltip when the whole queue repeats"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatOne": "Répéter une fois",
|
||||||
|
"@nowPlayingRepeatOne": {
|
||||||
|
"description": "Repeat toggle tooltip when the current track repeats"
|
||||||
|
},
|
||||||
|
"queueNetworkFailedOffline": "{count} téléchargements ont échoué en mode hors ligne",
|
||||||
|
"@queueNetworkFailedOffline": {
|
||||||
|
"description": "Snackbar shown when connectivity returns and network-failed downloads can be retried",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"queueDownloadedFileMissing": "Fichier téléchargé manquant",
|
"queueDownloadedFileMissing": "Fichier téléchargé manquant",
|
||||||
"@queueDownloadedFileMissing": {
|
"@queueDownloadedFileMissing": {
|
||||||
"description": "Accessibility label when a downloaded file is missing from disk"
|
"description": "Accessibility label when a downloaded file is missing from disk"
|
||||||
@@ -5120,7 +5336,7 @@
|
|||||||
"@downloadQualityVariants": {
|
"@downloadQualityVariants": {
|
||||||
"description": "Setting to retain multiple quality versions of the same track"
|
"description": "Setting to retain multiple quality versions of the same track"
|
||||||
},
|
},
|
||||||
"downloadQualityVariantsDescription": "Ajouter la qualité sélectionnée au nom du fichier et conserver chaque version dans l'historique des téléchargements",
|
"downloadQualityVariantsDescription": "Conserver toutes les versions de qualité ; n'ajouter la note de qualité au nom de fichier que si ce nom est déjà utilisé",
|
||||||
"@downloadQualityVariantsDescription": {
|
"@downloadQualityVariantsDescription": {
|
||||||
"description": "Description for retaining multiple quality versions"
|
"description": "Description for retaining multiple quality versions"
|
||||||
},
|
},
|
||||||
@@ -5176,6 +5392,10 @@
|
|||||||
"@libraryFilterMetadataIncorrectIsrcFormat": {
|
"@libraryFilterMetadataIncorrectIsrcFormat": {
|
||||||
"description": "Filter option - items with an invalid ISRC format"
|
"description": "Filter option - items with an invalid ISRC format"
|
||||||
},
|
},
|
||||||
|
"libraryFilterMetadataMissingIsrc": "ISRC manquant",
|
||||||
|
"@libraryFilterMetadataMissingIsrc": {
|
||||||
|
"description": "Filter option - items without any ISRC tag"
|
||||||
|
},
|
||||||
"libraryFilterMetadataMissingLabel": "Label manquant",
|
"libraryFilterMetadataMissingLabel": "Label manquant",
|
||||||
"@libraryFilterMetadataMissingLabel": {
|
"@libraryFilterMetadataMissingLabel": {
|
||||||
"description": "Filter option - items missing record label"
|
"description": "Filter option - items missing record label"
|
||||||
@@ -5365,10 +5585,6 @@
|
|||||||
"@downloadNativeWorkerSubtitle": {
|
"@downloadNativeWorkerSubtitle": {
|
||||||
"description": "Setting subtitle for Android native download worker"
|
"description": "Setting subtitle for Android native download worker"
|
||||||
},
|
},
|
||||||
"badgeBeta": "BÊTA",
|
|
||||||
"@badgeBeta": {
|
|
||||||
"description": "Badge label for beta features"
|
|
||||||
},
|
|
||||||
"extensionServiceStatus": "État du service",
|
"extensionServiceStatus": "État du service",
|
||||||
"@extensionServiceStatus": {
|
"@extensionServiceStatus": {
|
||||||
"description": "Extension detail section header for service status"
|
"description": "Extension detail section header for service status"
|
||||||
@@ -6022,5 +6238,38 @@
|
|||||||
"extensionVerificationOpenBrowser": "Ouvrir le navigateur",
|
"extensionVerificationOpenBrowser": "Ouvrir le navigateur",
|
||||||
"@extensionVerificationOpenBrowser": {
|
"@extensionVerificationOpenBrowser": {
|
||||||
"description": "Button to open the extension verification URL in a browser"
|
"description": "Button to open the extension verification URL in a browser"
|
||||||
|
},
|
||||||
|
"settingsSearchHint": "Paramètres de recherche",
|
||||||
|
"@settingsSearchHint": {
|
||||||
|
"description": "Placeholder of the search field on the Settings tab"
|
||||||
|
},
|
||||||
|
"settingsSearchNoResults": "Aucun paramètre ne correspond à « {query} »",
|
||||||
|
"@settingsSearchNoResults": {
|
||||||
|
"description": "Shown when a Settings search returns nothing",
|
||||||
|
"placeholders": {
|
||||||
|
"query": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"settingsGroupInterface": "Extensions & Apparence",
|
||||||
|
"@settingsGroupInterface": {
|
||||||
|
"description": "Settings group covering look and feel"
|
||||||
|
},
|
||||||
|
"settingsGroupContent": "Contenu & Métadonnées",
|
||||||
|
"@settingsGroupContent": {
|
||||||
|
"description": "Settings group covering the library, metadata and lyrics"
|
||||||
|
},
|
||||||
|
"settingsGroupDownloads": "Téléchargements & Fichiers",
|
||||||
|
"@settingsGroupDownloads": {
|
||||||
|
"description": "Settings group covering download behaviour and storage"
|
||||||
|
},
|
||||||
|
"settingsGroupSystem": "Système",
|
||||||
|
"@settingsGroupSystem": {
|
||||||
|
"description": "Settings group covering app-level data, cache and logs"
|
||||||
|
},
|
||||||
|
"settingsGroupHelp": "À propos & Assistance",
|
||||||
|
"@settingsGroupHelp": {
|
||||||
|
"description": "Settings group covering the about page and donations"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
+260
-11
@@ -792,7 +792,7 @@
|
|||||||
"@dialogImportPlaylistTitle": {
|
"@dialogImportPlaylistTitle": {
|
||||||
"description": "Dialog title - import CSV playlist"
|
"description": "Dialog title - import CSV playlist"
|
||||||
},
|
},
|
||||||
"dialogImportPlaylistMessage": "Ditemukan {count} lagu di CSV. Tambahkan ke antrian unduhan?",
|
"dialogImportPlaylistMessage": "Found {count} tracks in the playlist file. Add them to download queue?",
|
||||||
"csvImportTracks": "{count} trek dari CSV",
|
"csvImportTracks": "{count} trek dari CSV",
|
||||||
"@csvImportTracks": {
|
"@csvImportTracks": {
|
||||||
"description": "Label shown in quality picker for CSV import",
|
"description": "Label shown in quality picker for CSV import",
|
||||||
@@ -802,6 +802,79 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"collectionExportM3u": "Export as M3U8",
|
||||||
|
"@collectionExportM3u": {
|
||||||
|
"description": "Tooltip on the collection screen action that exports the track list as an M3U8 playlist file"
|
||||||
|
},
|
||||||
|
"collectionExportM3uDone": "Exported {exported} of {total} tracks",
|
||||||
|
"@collectionExportM3uDone": {
|
||||||
|
"description": "Snackbar after M3U8 export; tracks without a local file are not exported",
|
||||||
|
"placeholders": {
|
||||||
|
"exported": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"total": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"collectionExportM3uNone": "No downloaded files to export",
|
||||||
|
"@collectionExportM3uNone": {
|
||||||
|
"description": "Snackbar when an M3U8 export finds no local files"
|
||||||
|
},
|
||||||
|
"collectionExportM3uFailed": "Export failed",
|
||||||
|
"@collectionExportM3uFailed": {
|
||||||
|
"description": "Snackbar when writing or sharing the M3U8 export fails"
|
||||||
|
},
|
||||||
|
"trackOpenOn": "Open on...",
|
||||||
|
"@trackOpenOn": {
|
||||||
|
"description": "Track option and sheet title listing streaming platforms where the track can be opened"
|
||||||
|
},
|
||||||
|
"trackOpenOnNoLinks": "No platform links found for this track.",
|
||||||
|
"@trackOpenOnNoLinks": {
|
||||||
|
"description": "Shown in the Open on sheet when song.link returns no links"
|
||||||
|
},
|
||||||
|
"libraryReviewDuplicates": "Review duplicates",
|
||||||
|
"@libraryReviewDuplicates": {
|
||||||
|
"description": "Library settings row opening the duplicate review sheet"
|
||||||
|
},
|
||||||
|
"libraryReviewDuplicatesSubtitle": "Find tracks stored more than once",
|
||||||
|
"@libraryReviewDuplicatesSubtitle": {
|
||||||
|
"description": "Subtitle for the duplicate review settings row"
|
||||||
|
},
|
||||||
|
"duplicatesTitle": "Duplicates",
|
||||||
|
"@duplicatesTitle": {
|
||||||
|
"description": "Title of the duplicate review sheet"
|
||||||
|
},
|
||||||
|
"duplicatesEmpty": "No duplicate tracks found.",
|
||||||
|
"@duplicatesEmpty": {
|
||||||
|
"description": "Shown when the duplicate review sheet finds nothing"
|
||||||
|
},
|
||||||
|
"duplicatesKeepBest": "Keep best",
|
||||||
|
"@duplicatesKeepBest": {
|
||||||
|
"description": "Button that deletes all but the highest-quality copy in a duplicate group"
|
||||||
|
},
|
||||||
|
"duplicatesKeepBestMessage": "Delete {count} lower-quality copies of \"{trackName}\"?",
|
||||||
|
"@duplicatesKeepBestMessage": {
|
||||||
|
"description": "Confirmation message for the keep-best action",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"trackName": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"duplicatesDeleteCopyMessage": "Delete this copy of \"{trackName}\"?",
|
||||||
|
"@duplicatesDeleteCopyMessage": {
|
||||||
|
"description": "Confirmation message for deleting one duplicate copy",
|
||||||
|
"placeholders": {
|
||||||
|
"trackName": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"@dialogImportPlaylistMessage": {
|
"@dialogImportPlaylistMessage": {
|
||||||
"description": "Dialog message - import playlist confirmation",
|
"description": "Dialog message - import playlist confirmation",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -2018,6 +2091,14 @@
|
|||||||
"@appearanceHeroAnimationsSubtitle": {
|
"@appearanceHeroAnimationsSubtitle": {
|
||||||
"description": "Subtitle for the Hero animations toggle"
|
"description": "Subtitle for the Hero animations toggle"
|
||||||
},
|
},
|
||||||
|
"appearanceForceBlur": "Always use blur effects",
|
||||||
|
"@appearanceForceBlur": {
|
||||||
|
"description": "Toggle that forces backdrop blur on even when the device profile disabled it"
|
||||||
|
},
|
||||||
|
"appearanceForceBlurSubtitle": "Enable the navigation bar blur even on devices where it is off by default. May cost performance.",
|
||||||
|
"@appearanceForceBlurSubtitle": {
|
||||||
|
"description": "Subtitle for the force-blur toggle"
|
||||||
|
},
|
||||||
"queueClearAll": "Hapus Semua",
|
"queueClearAll": "Hapus Semua",
|
||||||
"@queueClearAll": {
|
"@queueClearAll": {
|
||||||
"description": "Button - clear all queue items"
|
"description": "Button - clear all queue items"
|
||||||
@@ -2678,7 +2759,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tutorialWelcomeTitle": "Selamat Datang di SpotiFLAC!",
|
"tutorialWelcomeTitle": "Welcome to SpotiFLAC Mobile!",
|
||||||
"@tutorialWelcomeTitle": {
|
"@tutorialWelcomeTitle": {
|
||||||
"description": "Tutorial welcome page title"
|
"description": "Tutorial welcome page title"
|
||||||
},
|
},
|
||||||
@@ -2686,7 +2767,7 @@
|
|||||||
"@tutorialWelcomeDesc": {
|
"@tutorialWelcomeDesc": {
|
||||||
"description": "Tutorial welcome page description"
|
"description": "Tutorial welcome page description"
|
||||||
},
|
},
|
||||||
"tutorialWelcomeTip1": "Unduh musik dari Spotify, Deezer, atau tempel URL yang didukung",
|
"tutorialWelcomeTip1": "Search music or paste a link from any source your installed extensions support",
|
||||||
"@tutorialWelcomeTip1": {
|
"@tutorialWelcomeTip1": {
|
||||||
"description": "Tutorial welcome tip 1"
|
"description": "Tutorial welcome tip 1"
|
||||||
},
|
},
|
||||||
@@ -4202,10 +4283,51 @@
|
|||||||
"@editMetadataAutoFill": {
|
"@editMetadataAutoFill": {
|
||||||
"description": "Section title for selective online metadata auto-fill in the edit metadata sheet"
|
"description": "Section title for selective online metadata auto-fill in the edit metadata sheet"
|
||||||
},
|
},
|
||||||
"editMetadataAutoFillDesc": "Select fields to fill automatically from online metadata",
|
"editMetadataAutoFillDesc": "Choose a metadata extension, select fields, then review its data before applying",
|
||||||
"@editMetadataAutoFillDesc": {
|
"@editMetadataAutoFillDesc": {
|
||||||
"description": "Description for the auto-fill section"
|
"description": "Description for the auto-fill section"
|
||||||
},
|
},
|
||||||
|
"editMetadataAutoFillSource": "Metadata source",
|
||||||
|
"@editMetadataAutoFillSource": {
|
||||||
|
"description": "Label for the metadata extension selector in online auto-fill"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillSourceAutomatic": "Automatic (provider priority)",
|
||||||
|
"@editMetadataAutoFillSourceAutomatic": {
|
||||||
|
"description": "Automatic source option that follows configured metadata provider priority"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillFind": "Find metadata",
|
||||||
|
"@editMetadataAutoFillFind": {
|
||||||
|
"description": "Button label for finding an online metadata candidate"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillPreview": "Data from {source}",
|
||||||
|
"@editMetadataAutoFillPreview": {
|
||||||
|
"description": "Title for the online metadata preview",
|
||||||
|
"placeholders": {
|
||||||
|
"source": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillCoverAvailable": "Cover artwork available",
|
||||||
|
"@editMetadataAutoFillCoverAvailable": {
|
||||||
|
"description": "Preview value when the selected metadata source provides cover artwork"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillApply": "Apply selected data",
|
||||||
|
"@editMetadataAutoFillApply": {
|
||||||
|
"description": "Button label for applying the previewed metadata"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillDoneFromSource": "Filled {count} {count, plural, =1{field} other{fields}} from {source}",
|
||||||
|
"@editMetadataAutoFillDoneFromSource": {
|
||||||
|
"description": "Snackbar confirming fields applied from a selected metadata source",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"editMetadataAutoFillFetch": "Fetch & Fill",
|
"editMetadataAutoFillFetch": "Fetch & Fill",
|
||||||
"@editMetadataAutoFillFetch": {
|
"@editMetadataAutoFillFetch": {
|
||||||
"description": "Button label to fetch online metadata and fill selected fields"
|
"description": "Button label to fetch online metadata and fill selected fields"
|
||||||
@@ -4334,6 +4456,27 @@
|
|||||||
"@queueEmptySinglesSubtitle": {
|
"@queueEmptySinglesSubtitle": {
|
||||||
"description": "Empty state subtitle for single track downloads"
|
"description": "Empty state subtitle for single track downloads"
|
||||||
},
|
},
|
||||||
|
"queuePlaylistCount": "{count, plural, =1{1 playlist} other{{count} playlists}}",
|
||||||
|
"@queuePlaylistCount": {
|
||||||
|
"description": "Playlist count label with plural support",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"queueEmptyPlaylistsSubtitle": "Create a playlist to organize your tracks",
|
||||||
|
"@queueEmptyPlaylistsSubtitle": {
|
||||||
|
"description": "Empty state subtitle for the playlists library view"
|
||||||
|
},
|
||||||
|
"libraryDefaultView": "Default view",
|
||||||
|
"@libraryDefaultView": {
|
||||||
|
"description": "Setting title - which library view opens when switching to the Library tab"
|
||||||
|
},
|
||||||
|
"libraryDefaultViewLastUsed": "Last used",
|
||||||
|
"@libraryDefaultViewLastUsed": {
|
||||||
|
"description": "Default view option - keep the last used library view"
|
||||||
|
},
|
||||||
"queueEmptyHistory": "No download history",
|
"queueEmptyHistory": "No download history",
|
||||||
"@queueEmptyHistory": {
|
"@queueEmptyHistory": {
|
||||||
"description": "Empty state title when download history is empty"
|
"description": "Empty state title when download history is empty"
|
||||||
@@ -4434,6 +4577,10 @@
|
|||||||
"@audioAnalysisSpectralCutoff": {
|
"@audioAnalysisSpectralCutoff": {
|
||||||
"description": "Estimated spectral cutoff metric label"
|
"description": "Estimated spectral cutoff metric label"
|
||||||
},
|
},
|
||||||
|
"audioAnalysisCutoffNotDetected": "Not detected",
|
||||||
|
"@audioAnalysisCutoffNotDetected": {
|
||||||
|
"description": "Displayed when no reliable broadband spectral cutoff can be detected"
|
||||||
|
},
|
||||||
"audioAnalysisChannelStats": "Per-channel Stats",
|
"audioAnalysisChannelStats": "Per-channel Stats",
|
||||||
"@audioAnalysisChannelStats": {
|
"@audioAnalysisChannelStats": {
|
||||||
"description": "Per-channel audio analysis section label"
|
"description": "Per-channel audio analysis section label"
|
||||||
@@ -4504,6 +4651,14 @@
|
|||||||
"@cancelDownloadKeep": {
|
"@cancelDownloadKeep": {
|
||||||
"description": "Dialog button - keep the active download (do not cancel)"
|
"description": "Dialog button - keep the active download (do not cancel)"
|
||||||
},
|
},
|
||||||
|
"queueCancelledTitle": "Download cancelled",
|
||||||
|
"@queueCancelledTitle": {
|
||||||
|
"description": "Dialog title when opening a cancelled queue item"
|
||||||
|
},
|
||||||
|
"queueCancelledMessage": "This download was cancelled. Retry it or remove it from the queue.",
|
||||||
|
"@queueCancelledMessage": {
|
||||||
|
"description": "Dialog body when opening a cancelled queue item"
|
||||||
|
},
|
||||||
"metadataSaveFailedFfmpeg": "Failed to save metadata via FFmpeg",
|
"metadataSaveFailedFfmpeg": "Failed to save metadata via FFmpeg",
|
||||||
"@metadataSaveFailedFfmpeg": {
|
"@metadataSaveFailedFfmpeg": {
|
||||||
"description": "Snackbar error when FFmpeg fails to write metadata"
|
"description": "Snackbar error when FFmpeg fails to write metadata"
|
||||||
@@ -4769,9 +4924,9 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"homeImportCsvTooltip": "Import CSV",
|
"homeImportCsvTooltip": "Import playlist (CSV, M3U)",
|
||||||
"@homeImportCsvTooltip": {
|
"@homeImportCsvTooltip": {
|
||||||
"description": "Tooltip for importing a CSV file into Home search"
|
"description": "Tooltip for importing a CSV or M3U playlist file into Home search"
|
||||||
},
|
},
|
||||||
"homeChangeSearchProviderTooltip": "Change search provider",
|
"homeChangeSearchProviderTooltip": "Change search provider",
|
||||||
"@homeChangeSearchProviderTooltip": {
|
"@homeChangeSearchProviderTooltip": {
|
||||||
@@ -4837,6 +4992,18 @@
|
|||||||
"@trackCoverReplaceNotice": {
|
"@trackCoverReplaceNotice": {
|
||||||
"description": "Notice shown when a new cover has been selected but not saved yet"
|
"description": "Notice shown when a new cover has been selected but not saved yet"
|
||||||
},
|
},
|
||||||
|
"trackCoverResolution": "Cover resolution",
|
||||||
|
"@trackCoverResolution": {
|
||||||
|
"description": "Label for selecting the embedded cover art resolution"
|
||||||
|
},
|
||||||
|
"trackCoverResolutionHint": "Sets the longest edge when saved. Enlarging does not add image detail.",
|
||||||
|
"@trackCoverResolutionHint": {
|
||||||
|
"description": "Explanation below the embedded cover art resolution selector"
|
||||||
|
},
|
||||||
|
"trackCoverResizeFailed": "The cover image could not be resized. Please try another size or image.",
|
||||||
|
"@trackCoverResizeFailed": {
|
||||||
|
"description": "Error shown when resizing cover art before saving metadata fails"
|
||||||
|
},
|
||||||
"actionStop": "Stop",
|
"actionStop": "Stop",
|
||||||
"@actionStop": {
|
"@actionStop": {
|
||||||
"description": "Generic action - stop"
|
"description": "Generic action - stop"
|
||||||
@@ -4845,6 +5012,55 @@
|
|||||||
"@queueFinalizingDownload": {
|
"@queueFinalizingDownload": {
|
||||||
"description": "Accessibility label for a queue item that is finalizing"
|
"description": "Accessibility label for a queue item that is finalizing"
|
||||||
},
|
},
|
||||||
|
"queueDownloadNext": "Download next",
|
||||||
|
"@queueDownloadNext": {
|
||||||
|
"description": "Tooltip on a queued download row; moves the item to the front of the queue so the next free slot downloads it"
|
||||||
|
},
|
||||||
|
"queueMoveUp": "Move up",
|
||||||
|
"@queueMoveUp": {
|
||||||
|
"description": "Queue item menu action - move the queued item one position earlier"
|
||||||
|
},
|
||||||
|
"queueMoveDown": "Move down",
|
||||||
|
"@queueMoveDown": {
|
||||||
|
"description": "Queue item menu action - move the queued item one position later"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzButton": "Fetch from MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzButton": {
|
||||||
|
"description": "Tag editor button that fills genre and album artist from MusicBrainz by ISRC"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzFilled": "Updated from MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzFilled": {
|
||||||
|
"description": "Snackbar after MusicBrainz suggestions were applied to the tag editor fields"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzNothing": "Nothing found on MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzNothing": {
|
||||||
|
"description": "Snackbar when the MusicBrainz lookup returns no data"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzNeedsIsrc": "Requires an ISRC tag",
|
||||||
|
"@editMetadataMusicBrainzNeedsIsrc": {
|
||||||
|
"description": "Snackbar when the MusicBrainz lookup is tapped without an ISRC"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatOff": "Repeat off",
|
||||||
|
"@nowPlayingRepeatOff": {
|
||||||
|
"description": "Repeat toggle tooltip when repeat is disabled"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatAll": "Repeat all",
|
||||||
|
"@nowPlayingRepeatAll": {
|
||||||
|
"description": "Repeat toggle tooltip when the whole queue repeats"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatOne": "Repeat one",
|
||||||
|
"@nowPlayingRepeatOne": {
|
||||||
|
"description": "Repeat toggle tooltip when the current track repeats"
|
||||||
|
},
|
||||||
|
"queueNetworkFailedOffline": "{count} downloads failed while offline",
|
||||||
|
"@queueNetworkFailedOffline": {
|
||||||
|
"description": "Snackbar shown when connectivity returns and network-failed downloads can be retried",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"queueDownloadedFileMissing": "Downloaded file missing",
|
"queueDownloadedFileMissing": "Downloaded file missing",
|
||||||
"@queueDownloadedFileMissing": {
|
"@queueDownloadedFileMissing": {
|
||||||
"description": "Accessibility label when a downloaded file is missing from disk"
|
"description": "Accessibility label when a downloaded file is missing from disk"
|
||||||
@@ -5120,7 +5336,7 @@
|
|||||||
"@downloadQualityVariants": {
|
"@downloadQualityVariants": {
|
||||||
"description": "Setting to retain multiple quality versions of the same track"
|
"description": "Setting to retain multiple quality versions of the same track"
|
||||||
},
|
},
|
||||||
"downloadQualityVariantsDescription": "Add the selected quality to the filename and keep each version in download history",
|
"downloadQualityVariantsDescription": "Keep every quality version; add its measured quality to the filename only when the name is already used",
|
||||||
"@downloadQualityVariantsDescription": {
|
"@downloadQualityVariantsDescription": {
|
||||||
"description": "Description for retaining multiple quality versions"
|
"description": "Description for retaining multiple quality versions"
|
||||||
},
|
},
|
||||||
@@ -5176,6 +5392,10 @@
|
|||||||
"@libraryFilterMetadataIncorrectIsrcFormat": {
|
"@libraryFilterMetadataIncorrectIsrcFormat": {
|
||||||
"description": "Filter option - items with an invalid ISRC format"
|
"description": "Filter option - items with an invalid ISRC format"
|
||||||
},
|
},
|
||||||
|
"libraryFilterMetadataMissingIsrc": "Missing ISRC",
|
||||||
|
"@libraryFilterMetadataMissingIsrc": {
|
||||||
|
"description": "Filter option - items without any ISRC tag"
|
||||||
|
},
|
||||||
"libraryFilterMetadataMissingLabel": "Missing label",
|
"libraryFilterMetadataMissingLabel": "Missing label",
|
||||||
"@libraryFilterMetadataMissingLabel": {
|
"@libraryFilterMetadataMissingLabel": {
|
||||||
"description": "Filter option - items missing record label"
|
"description": "Filter option - items missing record label"
|
||||||
@@ -5365,10 +5585,6 @@
|
|||||||
"@downloadNativeWorkerSubtitle": {
|
"@downloadNativeWorkerSubtitle": {
|
||||||
"description": "Setting subtitle for Android native download worker"
|
"description": "Setting subtitle for Android native download worker"
|
||||||
},
|
},
|
||||||
"badgeBeta": "BETA",
|
|
||||||
"@badgeBeta": {
|
|
||||||
"description": "Badge label for beta features"
|
|
||||||
},
|
|
||||||
"extensionServiceStatus": "Service Status",
|
"extensionServiceStatus": "Service Status",
|
||||||
"@extensionServiceStatus": {
|
"@extensionServiceStatus": {
|
||||||
"description": "Extension detail section header for service status"
|
"description": "Extension detail section header for service status"
|
||||||
@@ -6022,5 +6238,38 @@
|
|||||||
"extensionVerificationOpenBrowser": "Open browser",
|
"extensionVerificationOpenBrowser": "Open browser",
|
||||||
"@extensionVerificationOpenBrowser": {
|
"@extensionVerificationOpenBrowser": {
|
||||||
"description": "Button to open the extension verification URL in a browser"
|
"description": "Button to open the extension verification URL in a browser"
|
||||||
|
},
|
||||||
|
"settingsSearchHint": "Search settings",
|
||||||
|
"@settingsSearchHint": {
|
||||||
|
"description": "Placeholder of the search field on the Settings tab"
|
||||||
|
},
|
||||||
|
"settingsSearchNoResults": "No settings match \"{query}\"",
|
||||||
|
"@settingsSearchNoResults": {
|
||||||
|
"description": "Shown when a Settings search returns nothing",
|
||||||
|
"placeholders": {
|
||||||
|
"query": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"settingsGroupInterface": "Extensions & appearance",
|
||||||
|
"@settingsGroupInterface": {
|
||||||
|
"description": "Settings group covering look and feel"
|
||||||
|
},
|
||||||
|
"settingsGroupContent": "Content & metadata",
|
||||||
|
"@settingsGroupContent": {
|
||||||
|
"description": "Settings group covering the library, metadata and lyrics"
|
||||||
|
},
|
||||||
|
"settingsGroupDownloads": "Downloads & files",
|
||||||
|
"@settingsGroupDownloads": {
|
||||||
|
"description": "Settings group covering download behaviour and storage"
|
||||||
|
},
|
||||||
|
"settingsGroupSystem": "System",
|
||||||
|
"@settingsGroupSystem": {
|
||||||
|
"description": "Settings group covering app-level data, cache and logs"
|
||||||
|
},
|
||||||
|
"settingsGroupHelp": "About & support",
|
||||||
|
"@settingsGroupHelp": {
|
||||||
|
"description": "Settings group covering the about page and donations"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+260
-11
@@ -792,7 +792,7 @@
|
|||||||
"@dialogImportPlaylistTitle": {
|
"@dialogImportPlaylistTitle": {
|
||||||
"description": "Dialog title - import CSV playlist"
|
"description": "Dialog title - import CSV playlist"
|
||||||
},
|
},
|
||||||
"dialogImportPlaylistMessage": "Found {count} tracks in CSV. Add them to download queue?",
|
"dialogImportPlaylistMessage": "Found {count} tracks in the playlist file. Add them to download queue?",
|
||||||
"csvImportTracks": "{count} tracks from CSV",
|
"csvImportTracks": "{count} tracks from CSV",
|
||||||
"@csvImportTracks": {
|
"@csvImportTracks": {
|
||||||
"description": "Label shown in quality picker for CSV import",
|
"description": "Label shown in quality picker for CSV import",
|
||||||
@@ -802,6 +802,79 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"collectionExportM3u": "Export as M3U8",
|
||||||
|
"@collectionExportM3u": {
|
||||||
|
"description": "Tooltip on the collection screen action that exports the track list as an M3U8 playlist file"
|
||||||
|
},
|
||||||
|
"collectionExportM3uDone": "Exported {exported} of {total} tracks",
|
||||||
|
"@collectionExportM3uDone": {
|
||||||
|
"description": "Snackbar after M3U8 export; tracks without a local file are not exported",
|
||||||
|
"placeholders": {
|
||||||
|
"exported": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"total": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"collectionExportM3uNone": "No downloaded files to export",
|
||||||
|
"@collectionExportM3uNone": {
|
||||||
|
"description": "Snackbar when an M3U8 export finds no local files"
|
||||||
|
},
|
||||||
|
"collectionExportM3uFailed": "Export failed",
|
||||||
|
"@collectionExportM3uFailed": {
|
||||||
|
"description": "Snackbar when writing or sharing the M3U8 export fails"
|
||||||
|
},
|
||||||
|
"trackOpenOn": "Open on...",
|
||||||
|
"@trackOpenOn": {
|
||||||
|
"description": "Track option and sheet title listing streaming platforms where the track can be opened"
|
||||||
|
},
|
||||||
|
"trackOpenOnNoLinks": "No platform links found for this track.",
|
||||||
|
"@trackOpenOnNoLinks": {
|
||||||
|
"description": "Shown in the Open on sheet when song.link returns no links"
|
||||||
|
},
|
||||||
|
"libraryReviewDuplicates": "Review duplicates",
|
||||||
|
"@libraryReviewDuplicates": {
|
||||||
|
"description": "Library settings row opening the duplicate review sheet"
|
||||||
|
},
|
||||||
|
"libraryReviewDuplicatesSubtitle": "Find tracks stored more than once",
|
||||||
|
"@libraryReviewDuplicatesSubtitle": {
|
||||||
|
"description": "Subtitle for the duplicate review settings row"
|
||||||
|
},
|
||||||
|
"duplicatesTitle": "Duplicates",
|
||||||
|
"@duplicatesTitle": {
|
||||||
|
"description": "Title of the duplicate review sheet"
|
||||||
|
},
|
||||||
|
"duplicatesEmpty": "No duplicate tracks found.",
|
||||||
|
"@duplicatesEmpty": {
|
||||||
|
"description": "Shown when the duplicate review sheet finds nothing"
|
||||||
|
},
|
||||||
|
"duplicatesKeepBest": "Keep best",
|
||||||
|
"@duplicatesKeepBest": {
|
||||||
|
"description": "Button that deletes all but the highest-quality copy in a duplicate group"
|
||||||
|
},
|
||||||
|
"duplicatesKeepBestMessage": "Delete {count} lower-quality copies of \"{trackName}\"?",
|
||||||
|
"@duplicatesKeepBestMessage": {
|
||||||
|
"description": "Confirmation message for the keep-best action",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"trackName": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"duplicatesDeleteCopyMessage": "Delete this copy of \"{trackName}\"?",
|
||||||
|
"@duplicatesDeleteCopyMessage": {
|
||||||
|
"description": "Confirmation message for deleting one duplicate copy",
|
||||||
|
"placeholders": {
|
||||||
|
"trackName": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"@dialogImportPlaylistMessage": {
|
"@dialogImportPlaylistMessage": {
|
||||||
"description": "Dialog message - import playlist confirmation",
|
"description": "Dialog message - import playlist confirmation",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -2018,6 +2091,14 @@
|
|||||||
"@appearanceHeroAnimationsSubtitle": {
|
"@appearanceHeroAnimationsSubtitle": {
|
||||||
"description": "Subtitle for the Hero animations toggle"
|
"description": "Subtitle for the Hero animations toggle"
|
||||||
},
|
},
|
||||||
|
"appearanceForceBlur": "Always use blur effects",
|
||||||
|
"@appearanceForceBlur": {
|
||||||
|
"description": "Toggle that forces backdrop blur on even when the device profile disabled it"
|
||||||
|
},
|
||||||
|
"appearanceForceBlurSubtitle": "Enable the navigation bar blur even on devices where it is off by default. May cost performance.",
|
||||||
|
"@appearanceForceBlurSubtitle": {
|
||||||
|
"description": "Subtitle for the force-blur toggle"
|
||||||
|
},
|
||||||
"queueClearAll": "すべて消去",
|
"queueClearAll": "すべて消去",
|
||||||
"@queueClearAll": {
|
"@queueClearAll": {
|
||||||
"description": "Button - clear all queue items"
|
"description": "Button - clear all queue items"
|
||||||
@@ -2678,7 +2759,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tutorialWelcomeTitle": "SpotiFLAC へようこそ!",
|
"tutorialWelcomeTitle": "Welcome to SpotiFLAC Mobile!",
|
||||||
"@tutorialWelcomeTitle": {
|
"@tutorialWelcomeTitle": {
|
||||||
"description": "Tutorial welcome page title"
|
"description": "Tutorial welcome page title"
|
||||||
},
|
},
|
||||||
@@ -2686,7 +2767,7 @@
|
|||||||
"@tutorialWelcomeDesc": {
|
"@tutorialWelcomeDesc": {
|
||||||
"description": "Tutorial welcome page description"
|
"description": "Tutorial welcome page description"
|
||||||
},
|
},
|
||||||
"tutorialWelcomeTip1": "Download music from Spotify, Deezer, or paste any supported URL",
|
"tutorialWelcomeTip1": "Search music or paste a link from any source your installed extensions support",
|
||||||
"@tutorialWelcomeTip1": {
|
"@tutorialWelcomeTip1": {
|
||||||
"description": "Tutorial welcome tip 1"
|
"description": "Tutorial welcome tip 1"
|
||||||
},
|
},
|
||||||
@@ -4202,10 +4283,51 @@
|
|||||||
"@editMetadataAutoFill": {
|
"@editMetadataAutoFill": {
|
||||||
"description": "Section title for selective online metadata auto-fill in the edit metadata sheet"
|
"description": "Section title for selective online metadata auto-fill in the edit metadata sheet"
|
||||||
},
|
},
|
||||||
"editMetadataAutoFillDesc": "Select fields to fill automatically from online metadata",
|
"editMetadataAutoFillDesc": "Choose a metadata extension, select fields, then review its data before applying",
|
||||||
"@editMetadataAutoFillDesc": {
|
"@editMetadataAutoFillDesc": {
|
||||||
"description": "Description for the auto-fill section"
|
"description": "Description for the auto-fill section"
|
||||||
},
|
},
|
||||||
|
"editMetadataAutoFillSource": "Metadata source",
|
||||||
|
"@editMetadataAutoFillSource": {
|
||||||
|
"description": "Label for the metadata extension selector in online auto-fill"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillSourceAutomatic": "Automatic (provider priority)",
|
||||||
|
"@editMetadataAutoFillSourceAutomatic": {
|
||||||
|
"description": "Automatic source option that follows configured metadata provider priority"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillFind": "Find metadata",
|
||||||
|
"@editMetadataAutoFillFind": {
|
||||||
|
"description": "Button label for finding an online metadata candidate"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillPreview": "Data from {source}",
|
||||||
|
"@editMetadataAutoFillPreview": {
|
||||||
|
"description": "Title for the online metadata preview",
|
||||||
|
"placeholders": {
|
||||||
|
"source": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillCoverAvailable": "Cover artwork available",
|
||||||
|
"@editMetadataAutoFillCoverAvailable": {
|
||||||
|
"description": "Preview value when the selected metadata source provides cover artwork"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillApply": "Apply selected data",
|
||||||
|
"@editMetadataAutoFillApply": {
|
||||||
|
"description": "Button label for applying the previewed metadata"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillDoneFromSource": "Filled {count} {count, plural, =1{field} other{fields}} from {source}",
|
||||||
|
"@editMetadataAutoFillDoneFromSource": {
|
||||||
|
"description": "Snackbar confirming fields applied from a selected metadata source",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"editMetadataAutoFillFetch": "Fetch & Fill",
|
"editMetadataAutoFillFetch": "Fetch & Fill",
|
||||||
"@editMetadataAutoFillFetch": {
|
"@editMetadataAutoFillFetch": {
|
||||||
"description": "Button label to fetch online metadata and fill selected fields"
|
"description": "Button label to fetch online metadata and fill selected fields"
|
||||||
@@ -4334,6 +4456,27 @@
|
|||||||
"@queueEmptySinglesSubtitle": {
|
"@queueEmptySinglesSubtitle": {
|
||||||
"description": "Empty state subtitle for single track downloads"
|
"description": "Empty state subtitle for single track downloads"
|
||||||
},
|
},
|
||||||
|
"queuePlaylistCount": "{count, plural, =1{1 playlist} other{{count} playlists}}",
|
||||||
|
"@queuePlaylistCount": {
|
||||||
|
"description": "Playlist count label with plural support",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"queueEmptyPlaylistsSubtitle": "Create a playlist to organize your tracks",
|
||||||
|
"@queueEmptyPlaylistsSubtitle": {
|
||||||
|
"description": "Empty state subtitle for the playlists library view"
|
||||||
|
},
|
||||||
|
"libraryDefaultView": "Default view",
|
||||||
|
"@libraryDefaultView": {
|
||||||
|
"description": "Setting title - which library view opens when switching to the Library tab"
|
||||||
|
},
|
||||||
|
"libraryDefaultViewLastUsed": "Last used",
|
||||||
|
"@libraryDefaultViewLastUsed": {
|
||||||
|
"description": "Default view option - keep the last used library view"
|
||||||
|
},
|
||||||
"queueEmptyHistory": "No download history",
|
"queueEmptyHistory": "No download history",
|
||||||
"@queueEmptyHistory": {
|
"@queueEmptyHistory": {
|
||||||
"description": "Empty state title when download history is empty"
|
"description": "Empty state title when download history is empty"
|
||||||
@@ -4434,6 +4577,10 @@
|
|||||||
"@audioAnalysisSpectralCutoff": {
|
"@audioAnalysisSpectralCutoff": {
|
||||||
"description": "Estimated spectral cutoff metric label"
|
"description": "Estimated spectral cutoff metric label"
|
||||||
},
|
},
|
||||||
|
"audioAnalysisCutoffNotDetected": "Not detected",
|
||||||
|
"@audioAnalysisCutoffNotDetected": {
|
||||||
|
"description": "Displayed when no reliable broadband spectral cutoff can be detected"
|
||||||
|
},
|
||||||
"audioAnalysisChannelStats": "Per-channel Stats",
|
"audioAnalysisChannelStats": "Per-channel Stats",
|
||||||
"@audioAnalysisChannelStats": {
|
"@audioAnalysisChannelStats": {
|
||||||
"description": "Per-channel audio analysis section label"
|
"description": "Per-channel audio analysis section label"
|
||||||
@@ -4504,6 +4651,14 @@
|
|||||||
"@cancelDownloadKeep": {
|
"@cancelDownloadKeep": {
|
||||||
"description": "Dialog button - keep the active download (do not cancel)"
|
"description": "Dialog button - keep the active download (do not cancel)"
|
||||||
},
|
},
|
||||||
|
"queueCancelledTitle": "Download cancelled",
|
||||||
|
"@queueCancelledTitle": {
|
||||||
|
"description": "Dialog title when opening a cancelled queue item"
|
||||||
|
},
|
||||||
|
"queueCancelledMessage": "This download was cancelled. Retry it or remove it from the queue.",
|
||||||
|
"@queueCancelledMessage": {
|
||||||
|
"description": "Dialog body when opening a cancelled queue item"
|
||||||
|
},
|
||||||
"metadataSaveFailedFfmpeg": "Failed to save metadata via FFmpeg",
|
"metadataSaveFailedFfmpeg": "Failed to save metadata via FFmpeg",
|
||||||
"@metadataSaveFailedFfmpeg": {
|
"@metadataSaveFailedFfmpeg": {
|
||||||
"description": "Snackbar error when FFmpeg fails to write metadata"
|
"description": "Snackbar error when FFmpeg fails to write metadata"
|
||||||
@@ -4769,9 +4924,9 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"homeImportCsvTooltip": "Import CSV",
|
"homeImportCsvTooltip": "Import playlist (CSV, M3U)",
|
||||||
"@homeImportCsvTooltip": {
|
"@homeImportCsvTooltip": {
|
||||||
"description": "Tooltip for importing a CSV file into Home search"
|
"description": "Tooltip for importing a CSV or M3U playlist file into Home search"
|
||||||
},
|
},
|
||||||
"homeChangeSearchProviderTooltip": "Change search provider",
|
"homeChangeSearchProviderTooltip": "Change search provider",
|
||||||
"@homeChangeSearchProviderTooltip": {
|
"@homeChangeSearchProviderTooltip": {
|
||||||
@@ -4837,6 +4992,18 @@
|
|||||||
"@trackCoverReplaceNotice": {
|
"@trackCoverReplaceNotice": {
|
||||||
"description": "Notice shown when a new cover has been selected but not saved yet"
|
"description": "Notice shown when a new cover has been selected but not saved yet"
|
||||||
},
|
},
|
||||||
|
"trackCoverResolution": "Cover resolution",
|
||||||
|
"@trackCoverResolution": {
|
||||||
|
"description": "Label for selecting the embedded cover art resolution"
|
||||||
|
},
|
||||||
|
"trackCoverResolutionHint": "Sets the longest edge when saved. Enlarging does not add image detail.",
|
||||||
|
"@trackCoverResolutionHint": {
|
||||||
|
"description": "Explanation below the embedded cover art resolution selector"
|
||||||
|
},
|
||||||
|
"trackCoverResizeFailed": "The cover image could not be resized. Please try another size or image.",
|
||||||
|
"@trackCoverResizeFailed": {
|
||||||
|
"description": "Error shown when resizing cover art before saving metadata fails"
|
||||||
|
},
|
||||||
"actionStop": "Stop",
|
"actionStop": "Stop",
|
||||||
"@actionStop": {
|
"@actionStop": {
|
||||||
"description": "Generic action - stop"
|
"description": "Generic action - stop"
|
||||||
@@ -4845,6 +5012,55 @@
|
|||||||
"@queueFinalizingDownload": {
|
"@queueFinalizingDownload": {
|
||||||
"description": "Accessibility label for a queue item that is finalizing"
|
"description": "Accessibility label for a queue item that is finalizing"
|
||||||
},
|
},
|
||||||
|
"queueDownloadNext": "Download next",
|
||||||
|
"@queueDownloadNext": {
|
||||||
|
"description": "Tooltip on a queued download row; moves the item to the front of the queue so the next free slot downloads it"
|
||||||
|
},
|
||||||
|
"queueMoveUp": "Move up",
|
||||||
|
"@queueMoveUp": {
|
||||||
|
"description": "Queue item menu action - move the queued item one position earlier"
|
||||||
|
},
|
||||||
|
"queueMoveDown": "Move down",
|
||||||
|
"@queueMoveDown": {
|
||||||
|
"description": "Queue item menu action - move the queued item one position later"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzButton": "Fetch from MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzButton": {
|
||||||
|
"description": "Tag editor button that fills genre and album artist from MusicBrainz by ISRC"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzFilled": "Updated from MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzFilled": {
|
||||||
|
"description": "Snackbar after MusicBrainz suggestions were applied to the tag editor fields"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzNothing": "Nothing found on MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzNothing": {
|
||||||
|
"description": "Snackbar when the MusicBrainz lookup returns no data"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzNeedsIsrc": "Requires an ISRC tag",
|
||||||
|
"@editMetadataMusicBrainzNeedsIsrc": {
|
||||||
|
"description": "Snackbar when the MusicBrainz lookup is tapped without an ISRC"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatOff": "Repeat off",
|
||||||
|
"@nowPlayingRepeatOff": {
|
||||||
|
"description": "Repeat toggle tooltip when repeat is disabled"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatAll": "Repeat all",
|
||||||
|
"@nowPlayingRepeatAll": {
|
||||||
|
"description": "Repeat toggle tooltip when the whole queue repeats"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatOne": "Repeat one",
|
||||||
|
"@nowPlayingRepeatOne": {
|
||||||
|
"description": "Repeat toggle tooltip when the current track repeats"
|
||||||
|
},
|
||||||
|
"queueNetworkFailedOffline": "{count} downloads failed while offline",
|
||||||
|
"@queueNetworkFailedOffline": {
|
||||||
|
"description": "Snackbar shown when connectivity returns and network-failed downloads can be retried",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"queueDownloadedFileMissing": "Downloaded file missing",
|
"queueDownloadedFileMissing": "Downloaded file missing",
|
||||||
"@queueDownloadedFileMissing": {
|
"@queueDownloadedFileMissing": {
|
||||||
"description": "Accessibility label when a downloaded file is missing from disk"
|
"description": "Accessibility label when a downloaded file is missing from disk"
|
||||||
@@ -5120,7 +5336,7 @@
|
|||||||
"@downloadQualityVariants": {
|
"@downloadQualityVariants": {
|
||||||
"description": "Setting to retain multiple quality versions of the same track"
|
"description": "Setting to retain multiple quality versions of the same track"
|
||||||
},
|
},
|
||||||
"downloadQualityVariantsDescription": "Add the selected quality to the filename and keep each version in download history",
|
"downloadQualityVariantsDescription": "Keep every quality version; add its measured quality to the filename only when the name is already used",
|
||||||
"@downloadQualityVariantsDescription": {
|
"@downloadQualityVariantsDescription": {
|
||||||
"description": "Description for retaining multiple quality versions"
|
"description": "Description for retaining multiple quality versions"
|
||||||
},
|
},
|
||||||
@@ -5176,6 +5392,10 @@
|
|||||||
"@libraryFilterMetadataIncorrectIsrcFormat": {
|
"@libraryFilterMetadataIncorrectIsrcFormat": {
|
||||||
"description": "Filter option - items with an invalid ISRC format"
|
"description": "Filter option - items with an invalid ISRC format"
|
||||||
},
|
},
|
||||||
|
"libraryFilterMetadataMissingIsrc": "Missing ISRC",
|
||||||
|
"@libraryFilterMetadataMissingIsrc": {
|
||||||
|
"description": "Filter option - items without any ISRC tag"
|
||||||
|
},
|
||||||
"libraryFilterMetadataMissingLabel": "Missing label",
|
"libraryFilterMetadataMissingLabel": "Missing label",
|
||||||
"@libraryFilterMetadataMissingLabel": {
|
"@libraryFilterMetadataMissingLabel": {
|
||||||
"description": "Filter option - items missing record label"
|
"description": "Filter option - items missing record label"
|
||||||
@@ -5365,10 +5585,6 @@
|
|||||||
"@downloadNativeWorkerSubtitle": {
|
"@downloadNativeWorkerSubtitle": {
|
||||||
"description": "Setting subtitle for Android native download worker"
|
"description": "Setting subtitle for Android native download worker"
|
||||||
},
|
},
|
||||||
"badgeBeta": "BETA",
|
|
||||||
"@badgeBeta": {
|
|
||||||
"description": "Badge label for beta features"
|
|
||||||
},
|
|
||||||
"extensionServiceStatus": "Service Status",
|
"extensionServiceStatus": "Service Status",
|
||||||
"@extensionServiceStatus": {
|
"@extensionServiceStatus": {
|
||||||
"description": "Extension detail section header for service status"
|
"description": "Extension detail section header for service status"
|
||||||
@@ -6022,5 +6238,38 @@
|
|||||||
"extensionVerificationOpenBrowser": "Open browser",
|
"extensionVerificationOpenBrowser": "Open browser",
|
||||||
"@extensionVerificationOpenBrowser": {
|
"@extensionVerificationOpenBrowser": {
|
||||||
"description": "Button to open the extension verification URL in a browser"
|
"description": "Button to open the extension verification URL in a browser"
|
||||||
|
},
|
||||||
|
"settingsSearchHint": "Search settings",
|
||||||
|
"@settingsSearchHint": {
|
||||||
|
"description": "Placeholder of the search field on the Settings tab"
|
||||||
|
},
|
||||||
|
"settingsSearchNoResults": "No settings match \"{query}\"",
|
||||||
|
"@settingsSearchNoResults": {
|
||||||
|
"description": "Shown when a Settings search returns nothing",
|
||||||
|
"placeholders": {
|
||||||
|
"query": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"settingsGroupInterface": "Extensions & appearance",
|
||||||
|
"@settingsGroupInterface": {
|
||||||
|
"description": "Settings group covering look and feel"
|
||||||
|
},
|
||||||
|
"settingsGroupContent": "Content & metadata",
|
||||||
|
"@settingsGroupContent": {
|
||||||
|
"description": "Settings group covering the library, metadata and lyrics"
|
||||||
|
},
|
||||||
|
"settingsGroupDownloads": "Downloads & files",
|
||||||
|
"@settingsGroupDownloads": {
|
||||||
|
"description": "Settings group covering download behaviour and storage"
|
||||||
|
},
|
||||||
|
"settingsGroupSystem": "System",
|
||||||
|
"@settingsGroupSystem": {
|
||||||
|
"description": "Settings group covering app-level data, cache and logs"
|
||||||
|
},
|
||||||
|
"settingsGroupHelp": "About & support",
|
||||||
|
"@settingsGroupHelp": {
|
||||||
|
"description": "Settings group covering the about page and donations"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+265
-16
@@ -792,7 +792,7 @@
|
|||||||
"@dialogImportPlaylistTitle": {
|
"@dialogImportPlaylistTitle": {
|
||||||
"description": "Dialog title - import CSV playlist"
|
"description": "Dialog title - import CSV playlist"
|
||||||
},
|
},
|
||||||
"dialogImportPlaylistMessage": "CSV 파일에서 {count} 개의 트랙을 찾았습니다. 다운로드 목록에 추가하시겠습니까?",
|
"dialogImportPlaylistMessage": "{count}개의 트랙이 재생목록 파일에서 발견되었습니다. 다운로드 대기열에 추가하시겠습니까?",
|
||||||
"csvImportTracks": "CSV 파일의 트랙: {count}",
|
"csvImportTracks": "CSV 파일의 트랙: {count}",
|
||||||
"@csvImportTracks": {
|
"@csvImportTracks": {
|
||||||
"description": "Label shown in quality picker for CSV import",
|
"description": "Label shown in quality picker for CSV import",
|
||||||
@@ -802,6 +802,79 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"collectionExportM3u": "M3U8로 추출",
|
||||||
|
"@collectionExportM3u": {
|
||||||
|
"description": "Tooltip on the collection screen action that exports the track list as an M3U8 playlist file"
|
||||||
|
},
|
||||||
|
"collectionExportM3uDone": "{total}개의 트랙 중 {exported}개 추출됨",
|
||||||
|
"@collectionExportM3uDone": {
|
||||||
|
"description": "Snackbar after M3U8 export; tracks without a local file are not exported",
|
||||||
|
"placeholders": {
|
||||||
|
"exported": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"total": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"collectionExportM3uNone": "추출할 다운로드된 파일 엊ㅅ음",
|
||||||
|
"@collectionExportM3uNone": {
|
||||||
|
"description": "Snackbar when an M3U8 export finds no local files"
|
||||||
|
},
|
||||||
|
"collectionExportM3uFailed": "추출 실패",
|
||||||
|
"@collectionExportM3uFailed": {
|
||||||
|
"description": "Snackbar when writing or sharing the M3U8 export fails"
|
||||||
|
},
|
||||||
|
"trackOpenOn": "다른 곳에서 열기...",
|
||||||
|
"@trackOpenOn": {
|
||||||
|
"description": "Track option and sheet title listing streaming platforms where the track can be opened"
|
||||||
|
},
|
||||||
|
"trackOpenOnNoLinks": "이 트랙의 플랫폼 링크를 찾을 수 없음.",
|
||||||
|
"@trackOpenOnNoLinks": {
|
||||||
|
"description": "Shown in the Open on sheet when song.link returns no links"
|
||||||
|
},
|
||||||
|
"libraryReviewDuplicates": "중복된 트랙 보기",
|
||||||
|
"@libraryReviewDuplicates": {
|
||||||
|
"description": "Library settings row opening the duplicate review sheet"
|
||||||
|
},
|
||||||
|
"libraryReviewDuplicatesSubtitle": "중복 저장된 트랙 찾기",
|
||||||
|
"@libraryReviewDuplicatesSubtitle": {
|
||||||
|
"description": "Subtitle for the duplicate review settings row"
|
||||||
|
},
|
||||||
|
"duplicatesTitle": "중복",
|
||||||
|
"@duplicatesTitle": {
|
||||||
|
"description": "Title of the duplicate review sheet"
|
||||||
|
},
|
||||||
|
"duplicatesEmpty": "중복된 트랙이 없습니다.",
|
||||||
|
"@duplicatesEmpty": {
|
||||||
|
"description": "Shown when the duplicate review sheet finds nothing"
|
||||||
|
},
|
||||||
|
"duplicatesKeepBest": "최고 음질 선택",
|
||||||
|
"@duplicatesKeepBest": {
|
||||||
|
"description": "Button that deletes all but the highest-quality copy in a duplicate group"
|
||||||
|
},
|
||||||
|
"duplicatesKeepBestMessage": "\"{trackName}\"의 {count}개의 저음질 복사본을 삭제하시겠습니까?",
|
||||||
|
"@duplicatesKeepBestMessage": {
|
||||||
|
"description": "Confirmation message for the keep-best action",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"trackName": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"duplicatesDeleteCopyMessage": "\"{trackName}\"의 복사본을 삭제하시겠습니까?",
|
||||||
|
"@duplicatesDeleteCopyMessage": {
|
||||||
|
"description": "Confirmation message for deleting one duplicate copy",
|
||||||
|
"placeholders": {
|
||||||
|
"trackName": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"@dialogImportPlaylistMessage": {
|
"@dialogImportPlaylistMessage": {
|
||||||
"description": "Dialog message - import playlist confirmation",
|
"description": "Dialog message - import playlist confirmation",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -2018,6 +2091,14 @@
|
|||||||
"@appearanceHeroAnimationsSubtitle": {
|
"@appearanceHeroAnimationsSubtitle": {
|
||||||
"description": "Subtitle for the Hero animations toggle"
|
"description": "Subtitle for the Hero animations toggle"
|
||||||
},
|
},
|
||||||
|
"appearanceForceBlur": "항상 블러 효과 사용",
|
||||||
|
"@appearanceForceBlur": {
|
||||||
|
"description": "Toggle that forces backdrop blur on even when the device profile disabled it"
|
||||||
|
},
|
||||||
|
"appearanceForceBlurSubtitle": "기본적으로 비활성화된 기기에서도 하단 바의 블러 효과를 활성화합니다.\n성능에 영향을 줄 수도 있습니다.",
|
||||||
|
"@appearanceForceBlurSubtitle": {
|
||||||
|
"description": "Subtitle for the force-blur toggle"
|
||||||
|
},
|
||||||
"queueClearAll": "모두 지우기",
|
"queueClearAll": "모두 지우기",
|
||||||
"@queueClearAll": {
|
"@queueClearAll": {
|
||||||
"description": "Button - clear all queue items"
|
"description": "Button - clear all queue items"
|
||||||
@@ -2145,7 +2226,7 @@
|
|||||||
"@downloadedAlbumTapToSelect": {
|
"@downloadedAlbumTapToSelect": {
|
||||||
"description": "Selection hint"
|
"description": "Selection hint"
|
||||||
},
|
},
|
||||||
"downloadedAlbumDeleteCount": "{count} {count, plural, =1{트랙} other{트랙}} 삭제",
|
"downloadedAlbumDeleteCount": "{count} 개의 {count, plural, =1{트랙} other{트랙}} 삭제",
|
||||||
"@downloadedAlbumDeleteCount": {
|
"@downloadedAlbumDeleteCount": {
|
||||||
"description": "Delete button text with count",
|
"description": "Delete button text with count",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -2678,7 +2759,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tutorialWelcomeTitle": "SpotiFLAC에 오신 것을 환영합니다!",
|
"tutorialWelcomeTitle": "SpotiFLAC Mobile에 어서오세요!",
|
||||||
"@tutorialWelcomeTitle": {
|
"@tutorialWelcomeTitle": {
|
||||||
"description": "Tutorial welcome page title"
|
"description": "Tutorial welcome page title"
|
||||||
},
|
},
|
||||||
@@ -2686,7 +2767,7 @@
|
|||||||
"@tutorialWelcomeDesc": {
|
"@tutorialWelcomeDesc": {
|
||||||
"description": "Tutorial welcome page description"
|
"description": "Tutorial welcome page description"
|
||||||
},
|
},
|
||||||
"tutorialWelcomeTip1": "Spotify, Deezer 또는 지원되는 URL에서 음악을 다운로드할 수 있습니다",
|
"tutorialWelcomeTip1": "음악을 검색하거나, 설치된 확장 기능이 지원하는 출처의 링크를 붙여넣기",
|
||||||
"@tutorialWelcomeTip1": {
|
"@tutorialWelcomeTip1": {
|
||||||
"description": "Tutorial welcome tip 1"
|
"description": "Tutorial welcome tip 1"
|
||||||
},
|
},
|
||||||
@@ -3510,7 +3591,7 @@
|
|||||||
"@collectionPlaylistRemoveCover": {
|
"@collectionPlaylistRemoveCover": {
|
||||||
"description": "Bottom sheet action to remove custom cover image from a playlist"
|
"description": "Bottom sheet action to remove custom cover image from a playlist"
|
||||||
},
|
},
|
||||||
"selectionShareCount": "{count} {count, plural, =1{트랙} other{트랙}} 공유",
|
"selectionShareCount": "{count} 개의 {count, plural, =1{트랙} other{트랙}} 공유",
|
||||||
"@selectionShareCount": {
|
"@selectionShareCount": {
|
||||||
"description": "Share button text with count in selection mode",
|
"description": "Share button text with count in selection mode",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -3523,7 +3604,7 @@
|
|||||||
"@selectionShareNoFiles": {
|
"@selectionShareNoFiles": {
|
||||||
"description": "Snackbar when no selected files exist on disk"
|
"description": "Snackbar when no selected files exist on disk"
|
||||||
},
|
},
|
||||||
"selectionConvertCount": "{count} {count, plural, =1{트랙} other{트랙}} 변환",
|
"selectionConvertCount": "{count} 개의 {count, plural, =1{트랙} other{트랙}} 변환",
|
||||||
"@selectionConvertCount": {
|
"@selectionConvertCount": {
|
||||||
"description": "Convert button text with count in selection mode",
|
"description": "Convert button text with count in selection mode",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -4202,10 +4283,51 @@
|
|||||||
"@editMetadataAutoFill": {
|
"@editMetadataAutoFill": {
|
||||||
"description": "Section title for selective online metadata auto-fill in the edit metadata sheet"
|
"description": "Section title for selective online metadata auto-fill in the edit metadata sheet"
|
||||||
},
|
},
|
||||||
"editMetadataAutoFillDesc": "온라인 메타데이터에서 자동으로 채워질 필드를 선택하세요",
|
"editMetadataAutoFillDesc": "메타데이터 확장 기능을 선택하고, 필드를 지정한 다음, 적용하기 전에 해당 데이터를 확인",
|
||||||
"@editMetadataAutoFillDesc": {
|
"@editMetadataAutoFillDesc": {
|
||||||
"description": "Description for the auto-fill section"
|
"description": "Description for the auto-fill section"
|
||||||
},
|
},
|
||||||
|
"editMetadataAutoFillSource": "메타데이터 출처",
|
||||||
|
"@editMetadataAutoFillSource": {
|
||||||
|
"description": "Label for the metadata extension selector in online auto-fill"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillSourceAutomatic": "자동 (제공자 우선순위)",
|
||||||
|
"@editMetadataAutoFillSourceAutomatic": {
|
||||||
|
"description": "Automatic source option that follows configured metadata provider priority"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillFind": "메타데이터 찾기",
|
||||||
|
"@editMetadataAutoFillFind": {
|
||||||
|
"description": "Button label for finding an online metadata candidate"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillPreview": "{source}의 데이터",
|
||||||
|
"@editMetadataAutoFillPreview": {
|
||||||
|
"description": "Title for the online metadata preview",
|
||||||
|
"placeholders": {
|
||||||
|
"source": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillCoverAvailable": "커버 아트워크 이용 가능",
|
||||||
|
"@editMetadataAutoFillCoverAvailable": {
|
||||||
|
"description": "Preview value when the selected metadata source provides cover artwork"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillApply": "선택된 데이터 적용하기",
|
||||||
|
"@editMetadataAutoFillApply": {
|
||||||
|
"description": "Button label for applying the previewed metadata"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillDoneFromSource": "Filled {count} {count, plural, =1{field} other{fields}} from {source}",
|
||||||
|
"@editMetadataAutoFillDoneFromSource": {
|
||||||
|
"description": "Snackbar confirming fields applied from a selected metadata source",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"editMetadataAutoFillFetch": "가져오기 & 채우기",
|
"editMetadataAutoFillFetch": "가져오기 & 채우기",
|
||||||
"@editMetadataAutoFillFetch": {
|
"@editMetadataAutoFillFetch": {
|
||||||
"description": "Button label to fetch online metadata and fill selected fields"
|
"description": "Button label to fetch online metadata and fill selected fields"
|
||||||
@@ -4334,6 +4456,27 @@
|
|||||||
"@queueEmptySinglesSubtitle": {
|
"@queueEmptySinglesSubtitle": {
|
||||||
"description": "Empty state subtitle for single track downloads"
|
"description": "Empty state subtitle for single track downloads"
|
||||||
},
|
},
|
||||||
|
"queuePlaylistCount": "{count, plural, =1{1 playlist} other{{count} playlists}}",
|
||||||
|
"@queuePlaylistCount": {
|
||||||
|
"description": "Playlist count label with plural support",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"queueEmptyPlaylistsSubtitle": "Create a playlist to organize your tracks",
|
||||||
|
"@queueEmptyPlaylistsSubtitle": {
|
||||||
|
"description": "Empty state subtitle for the playlists library view"
|
||||||
|
},
|
||||||
|
"libraryDefaultView": "Default view",
|
||||||
|
"@libraryDefaultView": {
|
||||||
|
"description": "Setting title - which library view opens when switching to the Library tab"
|
||||||
|
},
|
||||||
|
"libraryDefaultViewLastUsed": "마지막으로 사용됨",
|
||||||
|
"@libraryDefaultViewLastUsed": {
|
||||||
|
"description": "Default view option - keep the last used library view"
|
||||||
|
},
|
||||||
"queueEmptyHistory": "다운로드 기록이 없음",
|
"queueEmptyHistory": "다운로드 기록이 없음",
|
||||||
"@queueEmptyHistory": {
|
"@queueEmptyHistory": {
|
||||||
"description": "Empty state title when download history is empty"
|
"description": "Empty state title when download history is empty"
|
||||||
@@ -4434,6 +4577,10 @@
|
|||||||
"@audioAnalysisSpectralCutoff": {
|
"@audioAnalysisSpectralCutoff": {
|
||||||
"description": "Estimated spectral cutoff metric label"
|
"description": "Estimated spectral cutoff metric label"
|
||||||
},
|
},
|
||||||
|
"audioAnalysisCutoffNotDetected": "감지되지 않음",
|
||||||
|
"@audioAnalysisCutoffNotDetected": {
|
||||||
|
"description": "Displayed when no reliable broadband spectral cutoff can be detected"
|
||||||
|
},
|
||||||
"audioAnalysisChannelStats": "채널별 통계",
|
"audioAnalysisChannelStats": "채널별 통계",
|
||||||
"@audioAnalysisChannelStats": {
|
"@audioAnalysisChannelStats": {
|
||||||
"description": "Per-channel audio analysis section label"
|
"description": "Per-channel audio analysis section label"
|
||||||
@@ -4504,6 +4651,14 @@
|
|||||||
"@cancelDownloadKeep": {
|
"@cancelDownloadKeep": {
|
||||||
"description": "Dialog button - keep the active download (do not cancel)"
|
"description": "Dialog button - keep the active download (do not cancel)"
|
||||||
},
|
},
|
||||||
|
"queueCancelledTitle": "다운로드 취소됨",
|
||||||
|
"@queueCancelledTitle": {
|
||||||
|
"description": "Dialog title when opening a cancelled queue item"
|
||||||
|
},
|
||||||
|
"queueCancelledMessage": "이 다운로드는 취소되었습니다. 다시 시도하거나, 대기열에서 삭제하세요.",
|
||||||
|
"@queueCancelledMessage": {
|
||||||
|
"description": "Dialog body when opening a cancelled queue item"
|
||||||
|
},
|
||||||
"metadataSaveFailedFfmpeg": "FFmpeg를 통해 메타데이터 저장 실패",
|
"metadataSaveFailedFfmpeg": "FFmpeg를 통해 메타데이터 저장 실패",
|
||||||
"@metadataSaveFailedFfmpeg": {
|
"@metadataSaveFailedFfmpeg": {
|
||||||
"description": "Snackbar error when FFmpeg fails to write metadata"
|
"description": "Snackbar error when FFmpeg fails to write metadata"
|
||||||
@@ -4769,9 +4924,9 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"homeImportCsvTooltip": "CSV 가져오기",
|
"homeImportCsvTooltip": "재생목록 가져오기 (CSV, M3U)",
|
||||||
"@homeImportCsvTooltip": {
|
"@homeImportCsvTooltip": {
|
||||||
"description": "Tooltip for importing a CSV file into Home search"
|
"description": "Tooltip for importing a CSV or M3U playlist file into Home search"
|
||||||
},
|
},
|
||||||
"homeChangeSearchProviderTooltip": "검색 제공자 변경",
|
"homeChangeSearchProviderTooltip": "검색 제공자 변경",
|
||||||
"@homeChangeSearchProviderTooltip": {
|
"@homeChangeSearchProviderTooltip": {
|
||||||
@@ -4837,6 +4992,18 @@
|
|||||||
"@trackCoverReplaceNotice": {
|
"@trackCoverReplaceNotice": {
|
||||||
"description": "Notice shown when a new cover has been selected but not saved yet"
|
"description": "Notice shown when a new cover has been selected but not saved yet"
|
||||||
},
|
},
|
||||||
|
"trackCoverResolution": "커버 해상도",
|
||||||
|
"@trackCoverResolution": {
|
||||||
|
"description": "Label for selecting the embedded cover art resolution"
|
||||||
|
},
|
||||||
|
"trackCoverResolutionHint": "Sets the longest edge when saved. Enlarging does not add image detail.",
|
||||||
|
"@trackCoverResolutionHint": {
|
||||||
|
"description": "Explanation below the embedded cover art resolution selector"
|
||||||
|
},
|
||||||
|
"trackCoverResizeFailed": "The cover image could not be resized. Please try another size or image.",
|
||||||
|
"@trackCoverResizeFailed": {
|
||||||
|
"description": "Error shown when resizing cover art before saving metadata fails"
|
||||||
|
},
|
||||||
"actionStop": "중지",
|
"actionStop": "중지",
|
||||||
"@actionStop": {
|
"@actionStop": {
|
||||||
"description": "Generic action - stop"
|
"description": "Generic action - stop"
|
||||||
@@ -4845,6 +5012,55 @@
|
|||||||
"@queueFinalizingDownload": {
|
"@queueFinalizingDownload": {
|
||||||
"description": "Accessibility label for a queue item that is finalizing"
|
"description": "Accessibility label for a queue item that is finalizing"
|
||||||
},
|
},
|
||||||
|
"queueDownloadNext": "다음으로 다운로드",
|
||||||
|
"@queueDownloadNext": {
|
||||||
|
"description": "Tooltip on a queued download row; moves the item to the front of the queue so the next free slot downloads it"
|
||||||
|
},
|
||||||
|
"queueMoveUp": "위로 이동",
|
||||||
|
"@queueMoveUp": {
|
||||||
|
"description": "Queue item menu action - move the queued item one position earlier"
|
||||||
|
},
|
||||||
|
"queueMoveDown": "아래로 이동",
|
||||||
|
"@queueMoveDown": {
|
||||||
|
"description": "Queue item menu action - move the queued item one position later"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzButton": "MusicBrainz에서 가져옴",
|
||||||
|
"@editMetadataMusicBrainzButton": {
|
||||||
|
"description": "Tag editor button that fills genre and album artist from MusicBrainz by ISRC"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzFilled": "MusicBrainz에서 업데이트됨",
|
||||||
|
"@editMetadataMusicBrainzFilled": {
|
||||||
|
"description": "Snackbar after MusicBrainz suggestions were applied to the tag editor fields"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzNothing": "MusicBrainZ에서 발견되지 않음",
|
||||||
|
"@editMetadataMusicBrainzNothing": {
|
||||||
|
"description": "Snackbar when the MusicBrainz lookup returns no data"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzNeedsIsrc": "ISRC 태그 필요",
|
||||||
|
"@editMetadataMusicBrainzNeedsIsrc": {
|
||||||
|
"description": "Snackbar when the MusicBrainz lookup is tapped without an ISRC"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatOff": "반복 끄기",
|
||||||
|
"@nowPlayingRepeatOff": {
|
||||||
|
"description": "Repeat toggle tooltip when repeat is disabled"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatAll": "전체 반복",
|
||||||
|
"@nowPlayingRepeatAll": {
|
||||||
|
"description": "Repeat toggle tooltip when the whole queue repeats"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatOne": "한 곡 반복",
|
||||||
|
"@nowPlayingRepeatOne": {
|
||||||
|
"description": "Repeat toggle tooltip when the current track repeats"
|
||||||
|
},
|
||||||
|
"queueNetworkFailedOffline": "오프라인 중에 {count}개의 다운로드 실패",
|
||||||
|
"@queueNetworkFailedOffline": {
|
||||||
|
"description": "Snackbar shown when connectivity returns and network-failed downloads can be retried",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"queueDownloadedFileMissing": "다운로드된 파일이 없음",
|
"queueDownloadedFileMissing": "다운로드된 파일이 없음",
|
||||||
"@queueDownloadedFileMissing": {
|
"@queueDownloadedFileMissing": {
|
||||||
"description": "Accessibility label when a downloaded file is missing from disk"
|
"description": "Accessibility label when a downloaded file is missing from disk"
|
||||||
@@ -5120,7 +5336,7 @@
|
|||||||
"@downloadQualityVariants": {
|
"@downloadQualityVariants": {
|
||||||
"description": "Setting to retain multiple quality versions of the same track"
|
"description": "Setting to retain multiple quality versions of the same track"
|
||||||
},
|
},
|
||||||
"downloadQualityVariantsDescription": "선택된 음질을 파일 이름에 추가하고, 각 버전을 다운로드 기록에 유지합니다",
|
"downloadQualityVariantsDescription": "Keep every quality version; add its measured quality to the filename only when the name is already used",
|
||||||
"@downloadQualityVariantsDescription": {
|
"@downloadQualityVariantsDescription": {
|
||||||
"description": "Description for retaining multiple quality versions"
|
"description": "Description for retaining multiple quality versions"
|
||||||
},
|
},
|
||||||
@@ -5176,6 +5392,10 @@
|
|||||||
"@libraryFilterMetadataIncorrectIsrcFormat": {
|
"@libraryFilterMetadataIncorrectIsrcFormat": {
|
||||||
"description": "Filter option - items with an invalid ISRC format"
|
"description": "Filter option - items with an invalid ISRC format"
|
||||||
},
|
},
|
||||||
|
"libraryFilterMetadataMissingIsrc": "ISRC 없음",
|
||||||
|
"@libraryFilterMetadataMissingIsrc": {
|
||||||
|
"description": "Filter option - items without any ISRC tag"
|
||||||
|
},
|
||||||
"libraryFilterMetadataMissingLabel": "레이블 누락",
|
"libraryFilterMetadataMissingLabel": "레이블 누락",
|
||||||
"@libraryFilterMetadataMissingLabel": {
|
"@libraryFilterMetadataMissingLabel": {
|
||||||
"description": "Filter option - items missing record label"
|
"description": "Filter option - items missing record label"
|
||||||
@@ -5249,7 +5469,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"selectionDeleteTracksCount": "{count} {count, plural, =1{트랙} other{트랙}} 삭제",
|
"selectionDeleteTracksCount": "{count} 개의 {count, plural, =1{트랙} other{트랙}} 삭제",
|
||||||
"@selectionDeleteTracksCount": {
|
"@selectionDeleteTracksCount": {
|
||||||
"description": "Button label for deleting selected tracks",
|
"description": "Button label for deleting selected tracks",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -5365,10 +5585,6 @@
|
|||||||
"@downloadNativeWorkerSubtitle": {
|
"@downloadNativeWorkerSubtitle": {
|
||||||
"description": "Setting subtitle for Android native download worker"
|
"description": "Setting subtitle for Android native download worker"
|
||||||
},
|
},
|
||||||
"badgeBeta": "베타",
|
|
||||||
"@badgeBeta": {
|
|
||||||
"description": "Badge label for beta features"
|
|
||||||
},
|
|
||||||
"extensionServiceStatus": "서비스 상태",
|
"extensionServiceStatus": "서비스 상태",
|
||||||
"@extensionServiceStatus": {
|
"@extensionServiceStatus": {
|
||||||
"description": "Extension detail section header for service status"
|
"description": "Extension detail section header for service status"
|
||||||
@@ -6003,7 +6219,7 @@
|
|||||||
"@extensionVerificationHelpMessageManual": {
|
"@extensionVerificationHelpMessageManual": {
|
||||||
"description": "Dialog message when automatic browser launch for verification fails"
|
"description": "Dialog message when automatic browser launch for verification fails"
|
||||||
},
|
},
|
||||||
"extensionVerificationHelpMessageWaiting": "브라우저가 열리지 않았거나 인증을 완료한 후에도 SpotiFLAC Mobile로 돌아오지 않았다면, 아래 링크를 다시 열거나 직접 복사하세요",
|
"extensionVerificationHelpMessageWaiting": "브라우저가 열리지 않거나 인증을 완료한 후에도 SpotiFLAC Mobile로 돌아가지 않는다면, 아래 링크를 다시 열거나 직접 복사하세요",
|
||||||
"@extensionVerificationHelpMessageWaiting": {
|
"@extensionVerificationHelpMessageWaiting": {
|
||||||
"description": "Dialog message when verification may need manual browser help"
|
"description": "Dialog message when verification may need manual browser help"
|
||||||
},
|
},
|
||||||
@@ -6022,5 +6238,38 @@
|
|||||||
"extensionVerificationOpenBrowser": "브라우저 열기",
|
"extensionVerificationOpenBrowser": "브라우저 열기",
|
||||||
"@extensionVerificationOpenBrowser": {
|
"@extensionVerificationOpenBrowser": {
|
||||||
"description": "Button to open the extension verification URL in a browser"
|
"description": "Button to open the extension verification URL in a browser"
|
||||||
|
},
|
||||||
|
"settingsSearchHint": "설정 찾기",
|
||||||
|
"@settingsSearchHint": {
|
||||||
|
"description": "Placeholder of the search field on the Settings tab"
|
||||||
|
},
|
||||||
|
"settingsSearchNoResults": "\"{query}\"과 일치하는 설정 없음",
|
||||||
|
"@settingsSearchNoResults": {
|
||||||
|
"description": "Shown when a Settings search returns nothing",
|
||||||
|
"placeholders": {
|
||||||
|
"query": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"settingsGroupInterface": "확장 프로그램 & 모습",
|
||||||
|
"@settingsGroupInterface": {
|
||||||
|
"description": "Settings group covering look and feel"
|
||||||
|
},
|
||||||
|
"settingsGroupContent": "콘텐츠 & 메타데이터",
|
||||||
|
"@settingsGroupContent": {
|
||||||
|
"description": "Settings group covering the library, metadata and lyrics"
|
||||||
|
},
|
||||||
|
"settingsGroupDownloads": "다운로드 & 파일",
|
||||||
|
"@settingsGroupDownloads": {
|
||||||
|
"description": "Settings group covering download behaviour and storage"
|
||||||
|
},
|
||||||
|
"settingsGroupSystem": "시스템",
|
||||||
|
"@settingsGroupSystem": {
|
||||||
|
"description": "Settings group covering app-level data, cache and logs"
|
||||||
|
},
|
||||||
|
"settingsGroupHelp": "About & support",
|
||||||
|
"@settingsGroupHelp": {
|
||||||
|
"description": "Settings group covering the about page and donations"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
+260
-11
@@ -792,7 +792,7 @@
|
|||||||
"@dialogImportPlaylistTitle": {
|
"@dialogImportPlaylistTitle": {
|
||||||
"description": "Dialog title - import CSV playlist"
|
"description": "Dialog title - import CSV playlist"
|
||||||
},
|
},
|
||||||
"dialogImportPlaylistMessage": "{count} Faixas encontradas em CSV. Adicioná-las à lista de downloads?",
|
"dialogImportPlaylistMessage": "Found {count} tracks in the playlist file. Add them to download queue?",
|
||||||
"csvImportTracks": "{count} faixas do CSV",
|
"csvImportTracks": "{count} faixas do CSV",
|
||||||
"@csvImportTracks": {
|
"@csvImportTracks": {
|
||||||
"description": "Label shown in quality picker for CSV import",
|
"description": "Label shown in quality picker for CSV import",
|
||||||
@@ -802,6 +802,79 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"collectionExportM3u": "Export as M3U8",
|
||||||
|
"@collectionExportM3u": {
|
||||||
|
"description": "Tooltip on the collection screen action that exports the track list as an M3U8 playlist file"
|
||||||
|
},
|
||||||
|
"collectionExportM3uDone": "Exported {exported} of {total} tracks",
|
||||||
|
"@collectionExportM3uDone": {
|
||||||
|
"description": "Snackbar after M3U8 export; tracks without a local file are not exported",
|
||||||
|
"placeholders": {
|
||||||
|
"exported": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"total": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"collectionExportM3uNone": "No downloaded files to export",
|
||||||
|
"@collectionExportM3uNone": {
|
||||||
|
"description": "Snackbar when an M3U8 export finds no local files"
|
||||||
|
},
|
||||||
|
"collectionExportM3uFailed": "Export failed",
|
||||||
|
"@collectionExportM3uFailed": {
|
||||||
|
"description": "Snackbar when writing or sharing the M3U8 export fails"
|
||||||
|
},
|
||||||
|
"trackOpenOn": "Open on...",
|
||||||
|
"@trackOpenOn": {
|
||||||
|
"description": "Track option and sheet title listing streaming platforms where the track can be opened"
|
||||||
|
},
|
||||||
|
"trackOpenOnNoLinks": "No platform links found for this track.",
|
||||||
|
"@trackOpenOnNoLinks": {
|
||||||
|
"description": "Shown in the Open on sheet when song.link returns no links"
|
||||||
|
},
|
||||||
|
"libraryReviewDuplicates": "Review duplicates",
|
||||||
|
"@libraryReviewDuplicates": {
|
||||||
|
"description": "Library settings row opening the duplicate review sheet"
|
||||||
|
},
|
||||||
|
"libraryReviewDuplicatesSubtitle": "Find tracks stored more than once",
|
||||||
|
"@libraryReviewDuplicatesSubtitle": {
|
||||||
|
"description": "Subtitle for the duplicate review settings row"
|
||||||
|
},
|
||||||
|
"duplicatesTitle": "Duplicates",
|
||||||
|
"@duplicatesTitle": {
|
||||||
|
"description": "Title of the duplicate review sheet"
|
||||||
|
},
|
||||||
|
"duplicatesEmpty": "No duplicate tracks found.",
|
||||||
|
"@duplicatesEmpty": {
|
||||||
|
"description": "Shown when the duplicate review sheet finds nothing"
|
||||||
|
},
|
||||||
|
"duplicatesKeepBest": "Keep best",
|
||||||
|
"@duplicatesKeepBest": {
|
||||||
|
"description": "Button that deletes all but the highest-quality copy in a duplicate group"
|
||||||
|
},
|
||||||
|
"duplicatesKeepBestMessage": "Delete {count} lower-quality copies of \"{trackName}\"?",
|
||||||
|
"@duplicatesKeepBestMessage": {
|
||||||
|
"description": "Confirmation message for the keep-best action",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"trackName": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"duplicatesDeleteCopyMessage": "Delete this copy of \"{trackName}\"?",
|
||||||
|
"@duplicatesDeleteCopyMessage": {
|
||||||
|
"description": "Confirmation message for deleting one duplicate copy",
|
||||||
|
"placeholders": {
|
||||||
|
"trackName": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"@dialogImportPlaylistMessage": {
|
"@dialogImportPlaylistMessage": {
|
||||||
"description": "Dialog message - import playlist confirmation",
|
"description": "Dialog message - import playlist confirmation",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -2018,6 +2091,14 @@
|
|||||||
"@appearanceHeroAnimationsSubtitle": {
|
"@appearanceHeroAnimationsSubtitle": {
|
||||||
"description": "Subtitle for the Hero animations toggle"
|
"description": "Subtitle for the Hero animations toggle"
|
||||||
},
|
},
|
||||||
|
"appearanceForceBlur": "Always use blur effects",
|
||||||
|
"@appearanceForceBlur": {
|
||||||
|
"description": "Toggle that forces backdrop blur on even when the device profile disabled it"
|
||||||
|
},
|
||||||
|
"appearanceForceBlurSubtitle": "Enable the navigation bar blur even on devices where it is off by default. May cost performance.",
|
||||||
|
"@appearanceForceBlurSubtitle": {
|
||||||
|
"description": "Subtitle for the force-blur toggle"
|
||||||
|
},
|
||||||
"queueClearAll": "Limpar Tudo",
|
"queueClearAll": "Limpar Tudo",
|
||||||
"@queueClearAll": {
|
"@queueClearAll": {
|
||||||
"description": "Button - clear all queue items"
|
"description": "Button - clear all queue items"
|
||||||
@@ -2678,7 +2759,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tutorialWelcomeTitle": "Welcome to SpotiFLAC!",
|
"tutorialWelcomeTitle": "Welcome to SpotiFLAC Mobile!",
|
||||||
"@tutorialWelcomeTitle": {
|
"@tutorialWelcomeTitle": {
|
||||||
"description": "Tutorial welcome page title"
|
"description": "Tutorial welcome page title"
|
||||||
},
|
},
|
||||||
@@ -2686,7 +2767,7 @@
|
|||||||
"@tutorialWelcomeDesc": {
|
"@tutorialWelcomeDesc": {
|
||||||
"description": "Tutorial welcome page description"
|
"description": "Tutorial welcome page description"
|
||||||
},
|
},
|
||||||
"tutorialWelcomeTip1": "Download music from Spotify, Deezer, or paste any supported URL",
|
"tutorialWelcomeTip1": "Search music or paste a link from any source your installed extensions support",
|
||||||
"@tutorialWelcomeTip1": {
|
"@tutorialWelcomeTip1": {
|
||||||
"description": "Tutorial welcome tip 1"
|
"description": "Tutorial welcome tip 1"
|
||||||
},
|
},
|
||||||
@@ -4202,10 +4283,51 @@
|
|||||||
"@editMetadataAutoFill": {
|
"@editMetadataAutoFill": {
|
||||||
"description": "Section title for selective online metadata auto-fill in the edit metadata sheet"
|
"description": "Section title for selective online metadata auto-fill in the edit metadata sheet"
|
||||||
},
|
},
|
||||||
"editMetadataAutoFillDesc": "Select fields to fill automatically from online metadata",
|
"editMetadataAutoFillDesc": "Choose a metadata extension, select fields, then review its data before applying",
|
||||||
"@editMetadataAutoFillDesc": {
|
"@editMetadataAutoFillDesc": {
|
||||||
"description": "Description for the auto-fill section"
|
"description": "Description for the auto-fill section"
|
||||||
},
|
},
|
||||||
|
"editMetadataAutoFillSource": "Metadata source",
|
||||||
|
"@editMetadataAutoFillSource": {
|
||||||
|
"description": "Label for the metadata extension selector in online auto-fill"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillSourceAutomatic": "Automatic (provider priority)",
|
||||||
|
"@editMetadataAutoFillSourceAutomatic": {
|
||||||
|
"description": "Automatic source option that follows configured metadata provider priority"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillFind": "Find metadata",
|
||||||
|
"@editMetadataAutoFillFind": {
|
||||||
|
"description": "Button label for finding an online metadata candidate"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillPreview": "Data from {source}",
|
||||||
|
"@editMetadataAutoFillPreview": {
|
||||||
|
"description": "Title for the online metadata preview",
|
||||||
|
"placeholders": {
|
||||||
|
"source": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillCoverAvailable": "Cover artwork available",
|
||||||
|
"@editMetadataAutoFillCoverAvailable": {
|
||||||
|
"description": "Preview value when the selected metadata source provides cover artwork"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillApply": "Apply selected data",
|
||||||
|
"@editMetadataAutoFillApply": {
|
||||||
|
"description": "Button label for applying the previewed metadata"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillDoneFromSource": "Filled {count} {count, plural, =1{field} other{fields}} from {source}",
|
||||||
|
"@editMetadataAutoFillDoneFromSource": {
|
||||||
|
"description": "Snackbar confirming fields applied from a selected metadata source",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"editMetadataAutoFillFetch": "Fetch & Fill",
|
"editMetadataAutoFillFetch": "Fetch & Fill",
|
||||||
"@editMetadataAutoFillFetch": {
|
"@editMetadataAutoFillFetch": {
|
||||||
"description": "Button label to fetch online metadata and fill selected fields"
|
"description": "Button label to fetch online metadata and fill selected fields"
|
||||||
@@ -4334,6 +4456,27 @@
|
|||||||
"@queueEmptySinglesSubtitle": {
|
"@queueEmptySinglesSubtitle": {
|
||||||
"description": "Empty state subtitle for single track downloads"
|
"description": "Empty state subtitle for single track downloads"
|
||||||
},
|
},
|
||||||
|
"queuePlaylistCount": "{count, plural, =1{1 playlist} other{{count} playlists}}",
|
||||||
|
"@queuePlaylistCount": {
|
||||||
|
"description": "Playlist count label with plural support",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"queueEmptyPlaylistsSubtitle": "Create a playlist to organize your tracks",
|
||||||
|
"@queueEmptyPlaylistsSubtitle": {
|
||||||
|
"description": "Empty state subtitle for the playlists library view"
|
||||||
|
},
|
||||||
|
"libraryDefaultView": "Default view",
|
||||||
|
"@libraryDefaultView": {
|
||||||
|
"description": "Setting title - which library view opens when switching to the Library tab"
|
||||||
|
},
|
||||||
|
"libraryDefaultViewLastUsed": "Last used",
|
||||||
|
"@libraryDefaultViewLastUsed": {
|
||||||
|
"description": "Default view option - keep the last used library view"
|
||||||
|
},
|
||||||
"queueEmptyHistory": "No download history",
|
"queueEmptyHistory": "No download history",
|
||||||
"@queueEmptyHistory": {
|
"@queueEmptyHistory": {
|
||||||
"description": "Empty state title when download history is empty"
|
"description": "Empty state title when download history is empty"
|
||||||
@@ -4434,6 +4577,10 @@
|
|||||||
"@audioAnalysisSpectralCutoff": {
|
"@audioAnalysisSpectralCutoff": {
|
||||||
"description": "Estimated spectral cutoff metric label"
|
"description": "Estimated spectral cutoff metric label"
|
||||||
},
|
},
|
||||||
|
"audioAnalysisCutoffNotDetected": "Not detected",
|
||||||
|
"@audioAnalysisCutoffNotDetected": {
|
||||||
|
"description": "Displayed when no reliable broadband spectral cutoff can be detected"
|
||||||
|
},
|
||||||
"audioAnalysisChannelStats": "Per-channel Stats",
|
"audioAnalysisChannelStats": "Per-channel Stats",
|
||||||
"@audioAnalysisChannelStats": {
|
"@audioAnalysisChannelStats": {
|
||||||
"description": "Per-channel audio analysis section label"
|
"description": "Per-channel audio analysis section label"
|
||||||
@@ -4504,6 +4651,14 @@
|
|||||||
"@cancelDownloadKeep": {
|
"@cancelDownloadKeep": {
|
||||||
"description": "Dialog button - keep the active download (do not cancel)"
|
"description": "Dialog button - keep the active download (do not cancel)"
|
||||||
},
|
},
|
||||||
|
"queueCancelledTitle": "Download cancelled",
|
||||||
|
"@queueCancelledTitle": {
|
||||||
|
"description": "Dialog title when opening a cancelled queue item"
|
||||||
|
},
|
||||||
|
"queueCancelledMessage": "This download was cancelled. Retry it or remove it from the queue.",
|
||||||
|
"@queueCancelledMessage": {
|
||||||
|
"description": "Dialog body when opening a cancelled queue item"
|
||||||
|
},
|
||||||
"metadataSaveFailedFfmpeg": "Failed to save metadata via FFmpeg",
|
"metadataSaveFailedFfmpeg": "Failed to save metadata via FFmpeg",
|
||||||
"@metadataSaveFailedFfmpeg": {
|
"@metadataSaveFailedFfmpeg": {
|
||||||
"description": "Snackbar error when FFmpeg fails to write metadata"
|
"description": "Snackbar error when FFmpeg fails to write metadata"
|
||||||
@@ -4769,9 +4924,9 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"homeImportCsvTooltip": "Import CSV",
|
"homeImportCsvTooltip": "Import playlist (CSV, M3U)",
|
||||||
"@homeImportCsvTooltip": {
|
"@homeImportCsvTooltip": {
|
||||||
"description": "Tooltip for importing a CSV file into Home search"
|
"description": "Tooltip for importing a CSV or M3U playlist file into Home search"
|
||||||
},
|
},
|
||||||
"homeChangeSearchProviderTooltip": "Change search provider",
|
"homeChangeSearchProviderTooltip": "Change search provider",
|
||||||
"@homeChangeSearchProviderTooltip": {
|
"@homeChangeSearchProviderTooltip": {
|
||||||
@@ -4837,6 +4992,18 @@
|
|||||||
"@trackCoverReplaceNotice": {
|
"@trackCoverReplaceNotice": {
|
||||||
"description": "Notice shown when a new cover has been selected but not saved yet"
|
"description": "Notice shown when a new cover has been selected but not saved yet"
|
||||||
},
|
},
|
||||||
|
"trackCoverResolution": "Cover resolution",
|
||||||
|
"@trackCoverResolution": {
|
||||||
|
"description": "Label for selecting the embedded cover art resolution"
|
||||||
|
},
|
||||||
|
"trackCoverResolutionHint": "Sets the longest edge when saved. Enlarging does not add image detail.",
|
||||||
|
"@trackCoverResolutionHint": {
|
||||||
|
"description": "Explanation below the embedded cover art resolution selector"
|
||||||
|
},
|
||||||
|
"trackCoverResizeFailed": "The cover image could not be resized. Please try another size or image.",
|
||||||
|
"@trackCoverResizeFailed": {
|
||||||
|
"description": "Error shown when resizing cover art before saving metadata fails"
|
||||||
|
},
|
||||||
"actionStop": "Stop",
|
"actionStop": "Stop",
|
||||||
"@actionStop": {
|
"@actionStop": {
|
||||||
"description": "Generic action - stop"
|
"description": "Generic action - stop"
|
||||||
@@ -4845,6 +5012,55 @@
|
|||||||
"@queueFinalizingDownload": {
|
"@queueFinalizingDownload": {
|
||||||
"description": "Accessibility label for a queue item that is finalizing"
|
"description": "Accessibility label for a queue item that is finalizing"
|
||||||
},
|
},
|
||||||
|
"queueDownloadNext": "Download next",
|
||||||
|
"@queueDownloadNext": {
|
||||||
|
"description": "Tooltip on a queued download row; moves the item to the front of the queue so the next free slot downloads it"
|
||||||
|
},
|
||||||
|
"queueMoveUp": "Move up",
|
||||||
|
"@queueMoveUp": {
|
||||||
|
"description": "Queue item menu action - move the queued item one position earlier"
|
||||||
|
},
|
||||||
|
"queueMoveDown": "Move down",
|
||||||
|
"@queueMoveDown": {
|
||||||
|
"description": "Queue item menu action - move the queued item one position later"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzButton": "Fetch from MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzButton": {
|
||||||
|
"description": "Tag editor button that fills genre and album artist from MusicBrainz by ISRC"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzFilled": "Updated from MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzFilled": {
|
||||||
|
"description": "Snackbar after MusicBrainz suggestions were applied to the tag editor fields"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzNothing": "Nothing found on MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzNothing": {
|
||||||
|
"description": "Snackbar when the MusicBrainz lookup returns no data"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzNeedsIsrc": "Requires an ISRC tag",
|
||||||
|
"@editMetadataMusicBrainzNeedsIsrc": {
|
||||||
|
"description": "Snackbar when the MusicBrainz lookup is tapped without an ISRC"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatOff": "Repeat off",
|
||||||
|
"@nowPlayingRepeatOff": {
|
||||||
|
"description": "Repeat toggle tooltip when repeat is disabled"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatAll": "Repeat all",
|
||||||
|
"@nowPlayingRepeatAll": {
|
||||||
|
"description": "Repeat toggle tooltip when the whole queue repeats"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatOne": "Repeat one",
|
||||||
|
"@nowPlayingRepeatOne": {
|
||||||
|
"description": "Repeat toggle tooltip when the current track repeats"
|
||||||
|
},
|
||||||
|
"queueNetworkFailedOffline": "{count} downloads failed while offline",
|
||||||
|
"@queueNetworkFailedOffline": {
|
||||||
|
"description": "Snackbar shown when connectivity returns and network-failed downloads can be retried",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"queueDownloadedFileMissing": "Downloaded file missing",
|
"queueDownloadedFileMissing": "Downloaded file missing",
|
||||||
"@queueDownloadedFileMissing": {
|
"@queueDownloadedFileMissing": {
|
||||||
"description": "Accessibility label when a downloaded file is missing from disk"
|
"description": "Accessibility label when a downloaded file is missing from disk"
|
||||||
@@ -5120,7 +5336,7 @@
|
|||||||
"@downloadQualityVariants": {
|
"@downloadQualityVariants": {
|
||||||
"description": "Setting to retain multiple quality versions of the same track"
|
"description": "Setting to retain multiple quality versions of the same track"
|
||||||
},
|
},
|
||||||
"downloadQualityVariantsDescription": "Add the selected quality to the filename and keep each version in download history",
|
"downloadQualityVariantsDescription": "Keep every quality version; add its measured quality to the filename only when the name is already used",
|
||||||
"@downloadQualityVariantsDescription": {
|
"@downloadQualityVariantsDescription": {
|
||||||
"description": "Description for retaining multiple quality versions"
|
"description": "Description for retaining multiple quality versions"
|
||||||
},
|
},
|
||||||
@@ -5176,6 +5392,10 @@
|
|||||||
"@libraryFilterMetadataIncorrectIsrcFormat": {
|
"@libraryFilterMetadataIncorrectIsrcFormat": {
|
||||||
"description": "Filter option - items with an invalid ISRC format"
|
"description": "Filter option - items with an invalid ISRC format"
|
||||||
},
|
},
|
||||||
|
"libraryFilterMetadataMissingIsrc": "Missing ISRC",
|
||||||
|
"@libraryFilterMetadataMissingIsrc": {
|
||||||
|
"description": "Filter option - items without any ISRC tag"
|
||||||
|
},
|
||||||
"libraryFilterMetadataMissingLabel": "Missing label",
|
"libraryFilterMetadataMissingLabel": "Missing label",
|
||||||
"@libraryFilterMetadataMissingLabel": {
|
"@libraryFilterMetadataMissingLabel": {
|
||||||
"description": "Filter option - items missing record label"
|
"description": "Filter option - items missing record label"
|
||||||
@@ -5365,10 +5585,6 @@
|
|||||||
"@downloadNativeWorkerSubtitle": {
|
"@downloadNativeWorkerSubtitle": {
|
||||||
"description": "Setting subtitle for Android native download worker"
|
"description": "Setting subtitle for Android native download worker"
|
||||||
},
|
},
|
||||||
"badgeBeta": "BETA",
|
|
||||||
"@badgeBeta": {
|
|
||||||
"description": "Badge label for beta features"
|
|
||||||
},
|
|
||||||
"extensionServiceStatus": "Service Status",
|
"extensionServiceStatus": "Service Status",
|
||||||
"@extensionServiceStatus": {
|
"@extensionServiceStatus": {
|
||||||
"description": "Extension detail section header for service status"
|
"description": "Extension detail section header for service status"
|
||||||
@@ -6022,5 +6238,38 @@
|
|||||||
"extensionVerificationOpenBrowser": "Open browser",
|
"extensionVerificationOpenBrowser": "Open browser",
|
||||||
"@extensionVerificationOpenBrowser": {
|
"@extensionVerificationOpenBrowser": {
|
||||||
"description": "Button to open the extension verification URL in a browser"
|
"description": "Button to open the extension verification URL in a browser"
|
||||||
|
},
|
||||||
|
"settingsSearchHint": "Search settings",
|
||||||
|
"@settingsSearchHint": {
|
||||||
|
"description": "Placeholder of the search field on the Settings tab"
|
||||||
|
},
|
||||||
|
"settingsSearchNoResults": "No settings match \"{query}\"",
|
||||||
|
"@settingsSearchNoResults": {
|
||||||
|
"description": "Shown when a Settings search returns nothing",
|
||||||
|
"placeholders": {
|
||||||
|
"query": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"settingsGroupInterface": "Extensions & appearance",
|
||||||
|
"@settingsGroupInterface": {
|
||||||
|
"description": "Settings group covering look and feel"
|
||||||
|
},
|
||||||
|
"settingsGroupContent": "Content & metadata",
|
||||||
|
"@settingsGroupContent": {
|
||||||
|
"description": "Settings group covering the library, metadata and lyrics"
|
||||||
|
},
|
||||||
|
"settingsGroupDownloads": "Downloads & files",
|
||||||
|
"@settingsGroupDownloads": {
|
||||||
|
"description": "Settings group covering download behaviour and storage"
|
||||||
|
},
|
||||||
|
"settingsGroupSystem": "System",
|
||||||
|
"@settingsGroupSystem": {
|
||||||
|
"description": "Settings group covering app-level data, cache and logs"
|
||||||
|
},
|
||||||
|
"settingsGroupHelp": "About & support",
|
||||||
|
"@settingsGroupHelp": {
|
||||||
|
"description": "Settings group covering the about page and donations"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+315
-66
@@ -29,11 +29,11 @@
|
|||||||
"@homeSubtitle": {
|
"@homeSubtitle": {
|
||||||
"description": "Subtitle shown below search box"
|
"description": "Subtitle shown below search box"
|
||||||
},
|
},
|
||||||
"homeEmptyTitle": "No search providers yet",
|
"homeEmptyTitle": "Нет поставщиков поиска",
|
||||||
"@homeEmptyTitle": {
|
"@homeEmptyTitle": {
|
||||||
"description": "Title shown on home when no providers are available yet"
|
"description": "Title shown on home when no providers are available yet"
|
||||||
},
|
},
|
||||||
"homeEmptySubtitle": "Install an extension to continue.",
|
"homeEmptySubtitle": "Установите расширение, чтобы продолжить.",
|
||||||
"@homeEmptySubtitle": {
|
"@homeEmptySubtitle": {
|
||||||
"description": "Subtitle shown on home when no providers are available yet"
|
"description": "Subtitle shown on home when no providers are available yet"
|
||||||
},
|
},
|
||||||
@@ -162,7 +162,7 @@
|
|||||||
"@optionsDefaultSearchTab": {
|
"@optionsDefaultSearchTab": {
|
||||||
"description": "Title for the preferred default search tab setting"
|
"description": "Title for the preferred default search tab setting"
|
||||||
},
|
},
|
||||||
"optionsDefaultSearchTabSubtitle": "Choose which tab opens first for new search results.",
|
"optionsDefaultSearchTabSubtitle": "Выберите, какая вкладка открывает новые результаты поиска.",
|
||||||
"@optionsDefaultSearchTabSubtitle": {
|
"@optionsDefaultSearchTabSubtitle": {
|
||||||
"description": "Subtitle for the preferred default search tab setting"
|
"description": "Subtitle for the preferred default search tab setting"
|
||||||
},
|
},
|
||||||
@@ -194,27 +194,27 @@
|
|||||||
"@optionsReplayGain": {
|
"@optionsReplayGain": {
|
||||||
"description": "Title for ReplayGain setting toggle"
|
"description": "Title for ReplayGain setting toggle"
|
||||||
},
|
},
|
||||||
"optionsReplayGainSubtitleOn": "Scan loudness and embed ReplayGain tags (EBU R128)",
|
"optionsReplayGainSubtitleOn": "Сканировать громкость и вставить теги ReplayGain (EBU R128)",
|
||||||
"@optionsReplayGainSubtitleOn": {
|
"@optionsReplayGainSubtitleOn": {
|
||||||
"description": "Subtitle when ReplayGain is enabled"
|
"description": "Subtitle when ReplayGain is enabled"
|
||||||
},
|
},
|
||||||
"optionsReplayGainSubtitleOff": "Disabled: no loudness normalization tags",
|
"optionsReplayGainSubtitleOff": "Выключено: нет тегов нормализации громкости",
|
||||||
"@optionsReplayGainSubtitleOff": {
|
"@optionsReplayGainSubtitleOff": {
|
||||||
"description": "Subtitle when ReplayGain is disabled"
|
"description": "Subtitle when ReplayGain is disabled"
|
||||||
},
|
},
|
||||||
"trackReplayGain": "Rescan ReplayGain",
|
"trackReplayGain": "Пересканировать ReplayGain",
|
||||||
"@trackReplayGain": {
|
"@trackReplayGain": {
|
||||||
"description": "Three-dot menu option to scan loudness and write ReplayGain tags"
|
"description": "Three-dot menu option to scan loudness and write ReplayGain tags"
|
||||||
},
|
},
|
||||||
"trackReplayGainScanning": "Analyzing loudness...",
|
"trackReplayGainScanning": "Анализ громкости...",
|
||||||
"@trackReplayGainScanning": {
|
"@trackReplayGainScanning": {
|
||||||
"description": "Snackbar/progress message while scanning ReplayGain for a single track"
|
"description": "Snackbar/progress message while scanning ReplayGain for a single track"
|
||||||
},
|
},
|
||||||
"trackReplayGainSuccess": "ReplayGain tags added",
|
"trackReplayGainSuccess": "Добавлены теги ReplayGain",
|
||||||
"@trackReplayGainSuccess": {
|
"@trackReplayGainSuccess": {
|
||||||
"description": "Snackbar message after ReplayGain tags written for a single track"
|
"description": "Snackbar message after ReplayGain tags written for a single track"
|
||||||
},
|
},
|
||||||
"trackReplayGainFailed": "Failed to add ReplayGain tags",
|
"trackReplayGainFailed": "Не удалось добавить теги ReplayGain",
|
||||||
"@trackReplayGainFailed": {
|
"@trackReplayGainFailed": {
|
||||||
"description": "Snackbar message when ReplayGain scan/write fails"
|
"description": "Snackbar message when ReplayGain scan/write fails"
|
||||||
},
|
},
|
||||||
@@ -227,11 +227,11 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"replayGainBatchConfirmTitle": "Add ReplayGain",
|
"replayGainBatchConfirmTitle": "Добавить ReplayGain",
|
||||||
"@replayGainBatchConfirmTitle": {
|
"@replayGainBatchConfirmTitle": {
|
||||||
"description": "Title of the batch ReplayGain confirmation dialog"
|
"description": "Title of the batch ReplayGain confirmation dialog"
|
||||||
},
|
},
|
||||||
"replayGainBatchConfirmMessage": "Analyze loudness and write ReplayGain tags to {count} track(s)?",
|
"replayGainBatchConfirmMessage": "Проанализировать громкость и записать ReplayGain теги на {count} трек(-а)?",
|
||||||
"@replayGainBatchConfirmMessage": {
|
"@replayGainBatchConfirmMessage": {
|
||||||
"description": "Message of the batch ReplayGain confirmation dialog",
|
"description": "Message of the batch ReplayGain confirmation dialog",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -240,11 +240,11 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"replayGainBatchAnalyzing": "Analyzing ReplayGain...",
|
"replayGainBatchAnalyzing": "Анализ ReplayGain...",
|
||||||
"@replayGainBatchAnalyzing": {
|
"@replayGainBatchAnalyzing": {
|
||||||
"description": "Progress dialog title while batch scanning ReplayGain"
|
"description": "Progress dialog title while batch scanning ReplayGain"
|
||||||
},
|
},
|
||||||
"replayGainBatchSuccess": "ReplayGain added to {success} of {total} tracks",
|
"replayGainBatchSuccess": "ReplayGain добавлен к {success} треков {total}",
|
||||||
"@replayGainBatchSuccess": {
|
"@replayGainBatchSuccess": {
|
||||||
"description": "Snackbar after batch ReplayGain completes",
|
"description": "Snackbar after batch ReplayGain completes",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -256,11 +256,11 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"optionsArtistTagMode": "Artist Tag Mode",
|
"optionsArtistTagMode": "Режим тега исполнителя",
|
||||||
"@optionsArtistTagMode": {
|
"@optionsArtistTagMode": {
|
||||||
"description": "Setting title for how artist metadata is written into files"
|
"description": "Setting title for how artist metadata is written into files"
|
||||||
},
|
},
|
||||||
"optionsArtistTagModeDescription": "Choose how multiple artists are written into embedded tags.",
|
"optionsArtistTagModeDescription": "Выберите, как несколько исполнителей записываются встроенные теги.",
|
||||||
"@optionsArtistTagModeDescription": {
|
"@optionsArtistTagModeDescription": {
|
||||||
"description": "Bottom-sheet description for artist tag mode setting"
|
"description": "Bottom-sheet description for artist tag mode setting"
|
||||||
},
|
},
|
||||||
@@ -272,7 +272,7 @@
|
|||||||
"@optionsArtistTagModeJoinedSubtitle": {
|
"@optionsArtistTagModeJoinedSubtitle": {
|
||||||
"description": "Subtitle for joined artist tag mode"
|
"description": "Subtitle for joined artist tag mode"
|
||||||
},
|
},
|
||||||
"optionsArtistTagModeSplitVorbis": "Split tags for FLAC/Opus",
|
"optionsArtistTagModeSplitVorbis": "Разделить теги для FLAC/Opus",
|
||||||
"@optionsArtistTagModeSplitVorbis": {
|
"@optionsArtistTagModeSplitVorbis": {
|
||||||
"description": "Artist tag mode option that writes repeated ARTIST tags for Vorbis formats"
|
"description": "Artist tag mode option that writes repeated ARTIST tags for Vorbis formats"
|
||||||
},
|
},
|
||||||
@@ -284,7 +284,7 @@
|
|||||||
"@optionsExtensionStore": {
|
"@optionsExtensionStore": {
|
||||||
"description": "Show/hide repo tab"
|
"description": "Show/hide repo tab"
|
||||||
},
|
},
|
||||||
"optionsExtensionStoreSubtitle": "Show Repo tab in navigation",
|
"optionsExtensionStoreSubtitle": "Показывать вкладку репозитория в навигации",
|
||||||
"@optionsExtensionStoreSubtitle": {
|
"@optionsExtensionStoreSubtitle": {
|
||||||
"description": "Subtitle for extension repo toggle"
|
"description": "Subtitle for extension repo toggle"
|
||||||
},
|
},
|
||||||
@@ -413,7 +413,7 @@
|
|||||||
"@aboutPCSource": {
|
"@aboutPCSource": {
|
||||||
"description": "Link to PC GitHub repo"
|
"description": "Link to PC GitHub repo"
|
||||||
},
|
},
|
||||||
"aboutKeepAndroidOpen": "Keep Android Open",
|
"aboutKeepAndroidOpen": "Сохранить Android открытым",
|
||||||
"@aboutKeepAndroidOpen": {
|
"@aboutKeepAndroidOpen": {
|
||||||
"description": "Link to Keep Android Open campaign website"
|
"description": "Link to Keep Android Open campaign website"
|
||||||
},
|
},
|
||||||
@@ -473,7 +473,7 @@
|
|||||||
"@aboutSjdonadoDesc": {
|
"@aboutSjdonadoDesc": {
|
||||||
"description": "Credit description for sjdonado"
|
"description": "Credit description for sjdonado"
|
||||||
},
|
},
|
||||||
"aboutAppDescription": "Search music metadata, manage extensions, and organize your library.",
|
"aboutAppDescription": "Ищите метаданных музыки, управляйте расширениями и организуйте свою библиотеку.",
|
||||||
"@aboutAppDescription": {
|
"@aboutAppDescription": {
|
||||||
"description": "App description in header card"
|
"description": "App description in header card"
|
||||||
},
|
},
|
||||||
@@ -666,15 +666,15 @@
|
|||||||
"@setupAllowAccessToManageFiles": {
|
"@setupAllowAccessToManageFiles": {
|
||||||
"description": "Instruction for file access permission"
|
"description": "Instruction for file access permission"
|
||||||
},
|
},
|
||||||
"setupLanguageTitle": "Choose Language",
|
"setupLanguageTitle": "Выберите язык",
|
||||||
"@setupLanguageTitle": {
|
"@setupLanguageTitle": {
|
||||||
"description": "Title for the language selection step in setup"
|
"description": "Title for the language selection step in setup"
|
||||||
},
|
},
|
||||||
"setupLanguageDescription": "Select your preferred language for the app. You can change this later in Settings.",
|
"setupLanguageDescription": "Выберите язык для приложения. Вы можете изменить его позже в настройках.",
|
||||||
"@setupLanguageDescription": {
|
"@setupLanguageDescription": {
|
||||||
"description": "Description for the language selection step in setup"
|
"description": "Description for the language selection step in setup"
|
||||||
},
|
},
|
||||||
"setupLanguageSystemDefault": "System Default",
|
"setupLanguageSystemDefault": "Системные настройки",
|
||||||
"@setupLanguageSystemDefault": {
|
"@setupLanguageSystemDefault": {
|
||||||
"description": "Option to use the system language"
|
"description": "Option to use the system language"
|
||||||
},
|
},
|
||||||
@@ -710,15 +710,15 @@
|
|||||||
"@dialogDownload": {
|
"@dialogDownload": {
|
||||||
"description": "Confirm button in Download All dialog"
|
"description": "Confirm button in Download All dialog"
|
||||||
},
|
},
|
||||||
"previewPlay": "Play preview",
|
"previewPlay": "Предпросмотр проигрывания",
|
||||||
"@previewPlay": {
|
"@previewPlay": {
|
||||||
"description": "Tooltip for the button that plays a short track preview snippet"
|
"description": "Tooltip for the button that plays a short track preview snippet"
|
||||||
},
|
},
|
||||||
"previewStop": "Stop preview",
|
"previewStop": "Остановить предпросмотр",
|
||||||
"@previewStop": {
|
"@previewStop": {
|
||||||
"description": "Tooltip for the button that stops the playing track preview snippet"
|
"description": "Tooltip for the button that stops the playing track preview snippet"
|
||||||
},
|
},
|
||||||
"previewUnavailable": "Preview unavailable",
|
"previewUnavailable": "Предпросмотр недоступен",
|
||||||
"@previewUnavailable": {
|
"@previewUnavailable": {
|
||||||
"description": "Snackbar shown when a track preview snippet cannot be played"
|
"description": "Snackbar shown when a track preview snippet cannot be played"
|
||||||
},
|
},
|
||||||
@@ -779,7 +779,7 @@
|
|||||||
"@dialogDeleteSelectedTitle": {
|
"@dialogDeleteSelectedTitle": {
|
||||||
"description": "Dialog title - delete selected items"
|
"description": "Dialog title - delete selected items"
|
||||||
},
|
},
|
||||||
"dialogDeleteSelectedMessage": "Delete {count} {count, plural, =1{track} other{tracks}} from history?\n\nThis will also delete the files from storage.",
|
"dialogDeleteSelectedMessage": "Удалить {count} {count, plural, one {трек} few {трека} many {треков} =1{трек} other{треков}} из истории?\n\nЭто также удалит файлы из хранилища.",
|
||||||
"@dialogDeleteSelectedMessage": {
|
"@dialogDeleteSelectedMessage": {
|
||||||
"description": "Dialog message - delete selected tracks",
|
"description": "Dialog message - delete selected tracks",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -792,7 +792,7 @@
|
|||||||
"@dialogImportPlaylistTitle": {
|
"@dialogImportPlaylistTitle": {
|
||||||
"description": "Dialog title - import CSV playlist"
|
"description": "Dialog title - import CSV playlist"
|
||||||
},
|
},
|
||||||
"dialogImportPlaylistMessage": "Найдено {count} треков в CSV. Добавить их в очередь загрузки?",
|
"dialogImportPlaylistMessage": "Found {count} tracks in the playlist file. Add them to download queue?",
|
||||||
"csvImportTracks": "{count} трек(-ов) из CSV",
|
"csvImportTracks": "{count} трек(-ов) из CSV",
|
||||||
"@csvImportTracks": {
|
"@csvImportTracks": {
|
||||||
"description": "Label shown in quality picker for CSV import",
|
"description": "Label shown in quality picker for CSV import",
|
||||||
@@ -802,6 +802,79 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"collectionExportM3u": "Export as M3U8",
|
||||||
|
"@collectionExportM3u": {
|
||||||
|
"description": "Tooltip on the collection screen action that exports the track list as an M3U8 playlist file"
|
||||||
|
},
|
||||||
|
"collectionExportM3uDone": "Exported {exported} of {total} tracks",
|
||||||
|
"@collectionExportM3uDone": {
|
||||||
|
"description": "Snackbar after M3U8 export; tracks without a local file are not exported",
|
||||||
|
"placeholders": {
|
||||||
|
"exported": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"total": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"collectionExportM3uNone": "No downloaded files to export",
|
||||||
|
"@collectionExportM3uNone": {
|
||||||
|
"description": "Snackbar when an M3U8 export finds no local files"
|
||||||
|
},
|
||||||
|
"collectionExportM3uFailed": "Export failed",
|
||||||
|
"@collectionExportM3uFailed": {
|
||||||
|
"description": "Snackbar when writing or sharing the M3U8 export fails"
|
||||||
|
},
|
||||||
|
"trackOpenOn": "Open on...",
|
||||||
|
"@trackOpenOn": {
|
||||||
|
"description": "Track option and sheet title listing streaming platforms where the track can be opened"
|
||||||
|
},
|
||||||
|
"trackOpenOnNoLinks": "No platform links found for this track.",
|
||||||
|
"@trackOpenOnNoLinks": {
|
||||||
|
"description": "Shown in the Open on sheet when song.link returns no links"
|
||||||
|
},
|
||||||
|
"libraryReviewDuplicates": "Review duplicates",
|
||||||
|
"@libraryReviewDuplicates": {
|
||||||
|
"description": "Library settings row opening the duplicate review sheet"
|
||||||
|
},
|
||||||
|
"libraryReviewDuplicatesSubtitle": "Find tracks stored more than once",
|
||||||
|
"@libraryReviewDuplicatesSubtitle": {
|
||||||
|
"description": "Subtitle for the duplicate review settings row"
|
||||||
|
},
|
||||||
|
"duplicatesTitle": "Duplicates",
|
||||||
|
"@duplicatesTitle": {
|
||||||
|
"description": "Title of the duplicate review sheet"
|
||||||
|
},
|
||||||
|
"duplicatesEmpty": "No duplicate tracks found.",
|
||||||
|
"@duplicatesEmpty": {
|
||||||
|
"description": "Shown when the duplicate review sheet finds nothing"
|
||||||
|
},
|
||||||
|
"duplicatesKeepBest": "Keep best",
|
||||||
|
"@duplicatesKeepBest": {
|
||||||
|
"description": "Button that deletes all but the highest-quality copy in a duplicate group"
|
||||||
|
},
|
||||||
|
"duplicatesKeepBestMessage": "Delete {count} lower-quality copies of \"{trackName}\"?",
|
||||||
|
"@duplicatesKeepBestMessage": {
|
||||||
|
"description": "Confirmation message for the keep-best action",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"trackName": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"duplicatesDeleteCopyMessage": "Delete this copy of \"{trackName}\"?",
|
||||||
|
"@duplicatesDeleteCopyMessage": {
|
||||||
|
"description": "Confirmation message for deleting one duplicate copy",
|
||||||
|
"placeholders": {
|
||||||
|
"trackName": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"@dialogImportPlaylistMessage": {
|
"@dialogImportPlaylistMessage": {
|
||||||
"description": "Dialog message - import playlist confirmation",
|
"description": "Dialog message - import playlist confirmation",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -850,7 +923,7 @@
|
|||||||
"@snackbarHistoryCleared": {
|
"@snackbarHistoryCleared": {
|
||||||
"description": "Snackbar - history deleted"
|
"description": "Snackbar - history deleted"
|
||||||
},
|
},
|
||||||
"snackbarDeletedTracks": "Deleted {count} {count, plural, =1{track} other{tracks}}",
|
"snackbarDeletedTracks": "Удалено {count} {count, plural, one {трек} few {трека} many {треков} =1{трек} other{треков}}",
|
||||||
"@snackbarDeletedTracks": {
|
"@snackbarDeletedTracks": {
|
||||||
"description": "Snackbar - tracks deleted",
|
"description": "Snackbar - tracks deleted",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -936,7 +1009,7 @@
|
|||||||
"@errorNoTracksFound": {
|
"@errorNoTracksFound": {
|
||||||
"description": "Error - search returned no results"
|
"description": "Error - search returned no results"
|
||||||
},
|
},
|
||||||
"searchEmptyResultSubtitle": "Try another keyword",
|
"searchEmptyResultSubtitle": "Попробуйте другое ключевое слово",
|
||||||
"@searchEmptyResultSubtitle": {
|
"@searchEmptyResultSubtitle": {
|
||||||
"description": "Subtitle shown under the empty search result state on the home screen"
|
"description": "Subtitle shown under the empty search result state on the home screen"
|
||||||
},
|
},
|
||||||
@@ -1154,11 +1227,11 @@
|
|||||||
"@updateNewVersionReady": {
|
"@updateNewVersionReady": {
|
||||||
"description": "Update subtitle"
|
"description": "Update subtitle"
|
||||||
},
|
},
|
||||||
"updateRequiredTitle": "Update required",
|
"updateRequiredTitle": "Требуется обновление",
|
||||||
"@updateRequiredTitle": {
|
"@updateRequiredTitle": {
|
||||||
"description": "Title of the mandatory update dialog shown when the installed version is too old"
|
"description": "Title of the mandatory update dialog shown when the installed version is too old"
|
||||||
},
|
},
|
||||||
"updateRequiredNotice": "This version is {count} releases behind and is no longer supported. Update to keep using the app.",
|
"updateRequiredNotice": "Эта версия {count} больше не поддерживается. Обновите, чтобы продолжить использовать приложение.",
|
||||||
"@updateRequiredNotice": {
|
"@updateRequiredNotice": {
|
||||||
"description": "Subtitle of the mandatory update dialog; explains why the dialog cannot be dismissed",
|
"description": "Subtitle of the mandatory update dialog; explains why the dialog cannot be dismissed",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -1207,7 +1280,7 @@
|
|||||||
"@providerPriorityFallbackExtensionsDescription": {
|
"@providerPriorityFallbackExtensionsDescription": {
|
||||||
"description": "Section description for extension fallback selection"
|
"description": "Section description for extension fallback selection"
|
||||||
},
|
},
|
||||||
"providerPriorityFallbackExtensionsHint": "Only enabled extensions with download-provider capability are listed here.",
|
"providerPriorityFallbackExtensionsHint": "Здесь перечислены только включенные расширения с возможностями поставщика загрузок.",
|
||||||
"@providerPriorityFallbackExtensionsHint": {
|
"@providerPriorityFallbackExtensionsHint": {
|
||||||
"description": "Hint below the extension fallback selection list"
|
"description": "Hint below the extension fallback selection list"
|
||||||
},
|
},
|
||||||
@@ -1397,7 +1470,7 @@
|
|||||||
"@settingsAppearanceSubtitle": {
|
"@settingsAppearanceSubtitle": {
|
||||||
"description": "Appearance settings description"
|
"description": "Appearance settings description"
|
||||||
},
|
},
|
||||||
"settingsDownloadSubtitle": "Service, quality, fallback",
|
"settingsDownloadSubtitle": "Сервис, качество, откат",
|
||||||
"@settingsDownloadSubtitle": {
|
"@settingsDownloadSubtitle": {
|
||||||
"description": "Download settings description"
|
"description": "Download settings description"
|
||||||
},
|
},
|
||||||
@@ -1426,7 +1499,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tracksCount": "{count, plural, =1{1 track} other{{count} tracks}}",
|
"tracksCount": "{count, plural, one {{count} трек} few {{count} трека} many {{count} треков} =1 {1 трек} other {{count} треков}}",
|
||||||
"@tracksCount": {
|
"@tracksCount": {
|
||||||
"description": "Track count display",
|
"description": "Track count display",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -1527,7 +1600,7 @@
|
|||||||
"@trackCopyLyrics": {
|
"@trackCopyLyrics": {
|
||||||
"description": "Action - copy lyrics to clipboard"
|
"description": "Action - copy lyrics to clipboard"
|
||||||
},
|
},
|
||||||
"trackLyricsSource": "Source: {source}",
|
"trackLyricsSource": "Источник: {source}",
|
||||||
"@trackLyricsSource": {
|
"@trackLyricsSource": {
|
||||||
"description": "Label showing the lyrics source/provider",
|
"description": "Label showing the lyrics source/provider",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -1540,11 +1613,11 @@
|
|||||||
"@trackLyricsNotAvailable": {
|
"@trackLyricsNotAvailable": {
|
||||||
"description": "Message when lyrics not found"
|
"description": "Message when lyrics not found"
|
||||||
},
|
},
|
||||||
"trackLyricsNotInFile": "No lyrics found in this file",
|
"trackLyricsNotInFile": "В этом файле не найдено текстов песен",
|
||||||
"@trackLyricsNotInFile": {
|
"@trackLyricsNotInFile": {
|
||||||
"description": "Message when no embedded lyrics in audio file"
|
"description": "Message when no embedded lyrics in audio file"
|
||||||
},
|
},
|
||||||
"trackFetchOnlineLyrics": "Fetch from Online",
|
"trackFetchOnlineLyrics": "Поиск в сети",
|
||||||
"@trackFetchOnlineLyrics": {
|
"@trackFetchOnlineLyrics": {
|
||||||
"description": "Action - fetch lyrics from online providers"
|
"description": "Action - fetch lyrics from online providers"
|
||||||
},
|
},
|
||||||
@@ -1643,15 +1716,15 @@
|
|||||||
"@storeClearFilters": {
|
"@storeClearFilters": {
|
||||||
"description": "Button to clear all filters"
|
"description": "Button to clear all filters"
|
||||||
},
|
},
|
||||||
"storeAddRepoTitle": "Add Extension Repository",
|
"storeAddRepoTitle": "Добавить репозиторий расширения",
|
||||||
"@storeAddRepoTitle": {
|
"@storeAddRepoTitle": {
|
||||||
"description": "Store setup screen - heading when no repo is configured"
|
"description": "Store setup screen - heading when no repo is configured"
|
||||||
},
|
},
|
||||||
"storeAddRepoDescription": "Enter a GitHub repository URL that contains a registry.json file to browse and install extensions.",
|
"storeAddRepoDescription": "Введите URL-адрес репозитория GitHub, который содержит файл registry.json для просмотра и установки расширений.",
|
||||||
"@storeAddRepoDescription": {
|
"@storeAddRepoDescription": {
|
||||||
"description": "Store setup screen - explanatory text"
|
"description": "Store setup screen - explanatory text"
|
||||||
},
|
},
|
||||||
"storeRepoUrlLabel": "Repository URL",
|
"storeRepoUrlLabel": "Ссылка на репозиторий",
|
||||||
"@storeRepoUrlLabel": {
|
"@storeRepoUrlLabel": {
|
||||||
"description": "Label for the repository URL input field"
|
"description": "Label for the repository URL input field"
|
||||||
},
|
},
|
||||||
@@ -1667,7 +1740,7 @@
|
|||||||
"@storeChangeRepoTooltip": {
|
"@storeChangeRepoTooltip": {
|
||||||
"description": "Tooltip for the change-repository icon button in the app bar"
|
"description": "Tooltip for the change-repository icon button in the app bar"
|
||||||
},
|
},
|
||||||
"storeRepoDialogTitle": "Extension Repository",
|
"storeRepoDialogTitle": "Репозиторий расширения",
|
||||||
"@storeRepoDialogTitle": {
|
"@storeRepoDialogTitle": {
|
||||||
"description": "Title of the change/remove repository dialog"
|
"description": "Title of the change/remove repository dialog"
|
||||||
},
|
},
|
||||||
@@ -1675,7 +1748,7 @@
|
|||||||
"@storeRepoDialogCurrent": {
|
"@storeRepoDialogCurrent": {
|
||||||
"description": "Label shown above the current repository URL in the dialog"
|
"description": "Label shown above the current repository URL in the dialog"
|
||||||
},
|
},
|
||||||
"storeNewRepoUrlLabel": "New Repository URL",
|
"storeNewRepoUrlLabel": "Новый URL репозитория",
|
||||||
"@storeNewRepoUrlLabel": {
|
"@storeNewRepoUrlLabel": {
|
||||||
"description": "Label for the new repository URL field inside the dialog"
|
"description": "Label for the new repository URL field inside the dialog"
|
||||||
},
|
},
|
||||||
@@ -2018,6 +2091,14 @@
|
|||||||
"@appearanceHeroAnimationsSubtitle": {
|
"@appearanceHeroAnimationsSubtitle": {
|
||||||
"description": "Subtitle for the Hero animations toggle"
|
"description": "Subtitle for the Hero animations toggle"
|
||||||
},
|
},
|
||||||
|
"appearanceForceBlur": "Always use blur effects",
|
||||||
|
"@appearanceForceBlur": {
|
||||||
|
"description": "Toggle that forces backdrop blur on even when the device profile disabled it"
|
||||||
|
},
|
||||||
|
"appearanceForceBlurSubtitle": "Enable the navigation bar blur even on devices where it is off by default. May cost performance.",
|
||||||
|
"@appearanceForceBlurSubtitle": {
|
||||||
|
"description": "Subtitle for the force-blur toggle"
|
||||||
|
},
|
||||||
"queueClearAll": "Очистить всё",
|
"queueClearAll": "Очистить всё",
|
||||||
"@queueClearAll": {
|
"@queueClearAll": {
|
||||||
"description": "Button - clear all queue items"
|
"description": "Button - clear all queue items"
|
||||||
@@ -2678,7 +2759,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tutorialWelcomeTitle": "Добро пожаловать в SpotiFLAC!",
|
"tutorialWelcomeTitle": "Welcome to SpotiFLAC Mobile!",
|
||||||
"@tutorialWelcomeTitle": {
|
"@tutorialWelcomeTitle": {
|
||||||
"description": "Tutorial welcome page title"
|
"description": "Tutorial welcome page title"
|
||||||
},
|
},
|
||||||
@@ -2686,7 +2767,7 @@
|
|||||||
"@tutorialWelcomeDesc": {
|
"@tutorialWelcomeDesc": {
|
||||||
"description": "Tutorial welcome page description"
|
"description": "Tutorial welcome page description"
|
||||||
},
|
},
|
||||||
"tutorialWelcomeTip1": "Скачивайте музыку из Spotify, Deezer, или вставьте любой поддерживаемый URL",
|
"tutorialWelcomeTip1": "Search music or paste a link from any source your installed extensions support",
|
||||||
"@tutorialWelcomeTip1": {
|
"@tutorialWelcomeTip1": {
|
||||||
"description": "Tutorial welcome tip 1"
|
"description": "Tutorial welcome tip 1"
|
||||||
},
|
},
|
||||||
@@ -3167,7 +3248,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"trackConvertConfirmMessageLossless": "Convert from {sourceFormat} to {targetFormat}? (Lossless — no quality loss)\n\nThe original file will be deleted after conversion.",
|
"trackConvertConfirmMessageLossless": "Конвертировать {sourceFormat} в {targetFormat}? (Lossless — Без потери качества)\n\nОригинальные файлы будут удалены после конвертации.",
|
||||||
"@trackConvertConfirmMessageLossless": {
|
"@trackConvertConfirmMessageLossless": {
|
||||||
"description": "Confirmation dialog message for lossless-to-lossless conversion",
|
"description": "Confirmation dialog message for lossless-to-lossless conversion",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -3308,7 +3389,7 @@
|
|||||||
"@collectionLoved": {
|
"@collectionLoved": {
|
||||||
"description": "Custom folder for favorite tracks"
|
"description": "Custom folder for favorite tracks"
|
||||||
},
|
},
|
||||||
"collectionFavoriteArtists": "Favorite Artists",
|
"collectionFavoriteArtists": "Избранный исполнитель",
|
||||||
"@collectionFavoriteArtists": {
|
"@collectionFavoriteArtists": {
|
||||||
"description": "Custom folder for favorite artists"
|
"description": "Custom folder for favorite artists"
|
||||||
},
|
},
|
||||||
@@ -3400,11 +3481,11 @@
|
|||||||
"@collectionLovedEmptySubtitle": {
|
"@collectionLovedEmptySubtitle": {
|
||||||
"description": "Loved empty state subtitle"
|
"description": "Loved empty state subtitle"
|
||||||
},
|
},
|
||||||
"collectionFavoriteArtistsEmptyTitle": "No favorite artists yet",
|
"collectionFavoriteArtistsEmptyTitle": "Нет избранных исполнителей",
|
||||||
"@collectionFavoriteArtistsEmptyTitle": {
|
"@collectionFavoriteArtistsEmptyTitle": {
|
||||||
"description": "Favorite artists empty state title"
|
"description": "Favorite artists empty state title"
|
||||||
},
|
},
|
||||||
"collectionFavoriteArtistsEmptySubtitle": "Tap the heart on an artist page to keep them here",
|
"collectionFavoriteArtistsEmptySubtitle": "Нажмите на сердце на странице исполнителя, чтобы сохранить его здесь",
|
||||||
"@collectionFavoriteArtistsEmptySubtitle": {
|
"@collectionFavoriteArtistsEmptySubtitle": {
|
||||||
"description": "Favorite artists empty state subtitle"
|
"description": "Favorite artists empty state subtitle"
|
||||||
},
|
},
|
||||||
@@ -3460,7 +3541,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"collectionAddedToFavoriteArtists": "\"{artistName}\" added to Favorite Artists",
|
"collectionAddedToFavoriteArtists": "\"{artistName}\" добавлен в избранные исполнители",
|
||||||
"@collectionAddedToFavoriteArtists": {
|
"@collectionAddedToFavoriteArtists": {
|
||||||
"description": "Snackbar after adding artist to favorite artists",
|
"description": "Snackbar after adding artist to favorite artists",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -3469,7 +3550,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"collectionRemovedFromFavoriteArtists": "\"{artistName}\" removed from Favorite Artists",
|
"collectionRemovedFromFavoriteArtists": "\"{artistName}\" удалено из избранных исполнителей",
|
||||||
"@collectionRemovedFromFavoriteArtists": {
|
"@collectionRemovedFromFavoriteArtists": {
|
||||||
"description": "Snackbar after removing artist from favorite artists",
|
"description": "Snackbar after removing artist from favorite artists",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -3494,11 +3575,11 @@
|
|||||||
"@trackOptionRemoveFromWishlist": {
|
"@trackOptionRemoveFromWishlist": {
|
||||||
"description": "Bottom sheet action label - remove track from wishlist"
|
"description": "Bottom sheet action label - remove track from wishlist"
|
||||||
},
|
},
|
||||||
"artistOptionAddToFavorites": "Add to Favorite Artists",
|
"artistOptionAddToFavorites": "Добавить в избранные исполнители",
|
||||||
"@artistOptionAddToFavorites": {
|
"@artistOptionAddToFavorites": {
|
||||||
"description": "Action label - add artist to favorite artists"
|
"description": "Action label - add artist to favorite artists"
|
||||||
},
|
},
|
||||||
"artistOptionRemoveFromFavorites": "Remove from Favorite Artists",
|
"artistOptionRemoveFromFavorites": "Удалить из избранных исполнителей",
|
||||||
"@artistOptionRemoveFromFavorites": {
|
"@artistOptionRemoveFromFavorites": {
|
||||||
"description": "Action label - remove artist from favorite artists"
|
"description": "Action label - remove artist from favorite artists"
|
||||||
},
|
},
|
||||||
@@ -3510,7 +3591,7 @@
|
|||||||
"@collectionPlaylistRemoveCover": {
|
"@collectionPlaylistRemoveCover": {
|
||||||
"description": "Bottom sheet action to remove custom cover image from a playlist"
|
"description": "Bottom sheet action to remove custom cover image from a playlist"
|
||||||
},
|
},
|
||||||
"selectionShareCount": "Share {count} {count, plural, =1{track} other{tracks}}",
|
"selectionShareCount": "Отправить {count} {count, plural, one {трек} few {трека} many {треков} =1{трек} other{треков}}",
|
||||||
"@selectionShareCount": {
|
"@selectionShareCount": {
|
||||||
"description": "Share button text with count in selection mode",
|
"description": "Share button text with count in selection mode",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -3523,7 +3604,7 @@
|
|||||||
"@selectionShareNoFiles": {
|
"@selectionShareNoFiles": {
|
||||||
"description": "Snackbar when no selected files exist on disk"
|
"description": "Snackbar when no selected files exist on disk"
|
||||||
},
|
},
|
||||||
"selectionConvertCount": "Convert {count} {count, plural, =1{track} other{tracks}}",
|
"selectionConvertCount": "Конвертировать {count} {count, plural, one {трек} few {трека} many {треков} =1{трек} other{треков}}",
|
||||||
"@selectionConvertCount": {
|
"@selectionConvertCount": {
|
||||||
"description": "Convert button text with count in selection mode",
|
"description": "Convert button text with count in selection mode",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -3567,7 +3648,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"selectionBatchConvertConfirmKeepOriginal": "Convert {count} {count, plural, =1{track} other{tracks}} to {format}?\n\nOriginal files will be kept and converted files will be added as separate library entries.",
|
"selectionBatchConvertConfirmKeepOriginal": "Конвертировать {count} {count, plural, one {трек} few {трека} many {треков} =1{трек} other{треков}} в {format}?\n\nОригинальные файлы будут храниться и преобразовываться как отдельные элементы библиотеки.",
|
||||||
"@selectionBatchConvertConfirmKeepOriginal": {
|
"@selectionBatchConvertConfirmKeepOriginal": {
|
||||||
"description": "Batch conversion confirmation when source files will be preserved",
|
"description": "Batch conversion confirmation when source files will be preserved",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -3641,11 +3722,11 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"lyricsProvidersAtLeastOne": "At least one provider must remain enabled",
|
"lyricsProvidersAtLeastOne": "По крайней мере один провайдер должен оставаться включенным",
|
||||||
"@lyricsProvidersAtLeastOne": {
|
"@lyricsProvidersAtLeastOne": {
|
||||||
"description": "Snackbar when user tries to disable the last enabled provider"
|
"description": "Snackbar when user tries to disable the last enabled provider"
|
||||||
},
|
},
|
||||||
"lyricsProvidersSaved": "Lyrics provider priority saved",
|
"lyricsProvidersSaved": "Приоритетный провайдер текстов песен сохранен",
|
||||||
"@lyricsProvidersSaved": {
|
"@lyricsProvidersSaved": {
|
||||||
"description": "Snackbar after saving lyrics provider priority"
|
"description": "Snackbar after saving lyrics provider priority"
|
||||||
},
|
},
|
||||||
@@ -3661,7 +3742,7 @@
|
|||||||
"@lyricsProviderNeteaseDesc": {
|
"@lyricsProviderNeteaseDesc": {
|
||||||
"description": "Description for Netease provider"
|
"description": "Description for Netease provider"
|
||||||
},
|
},
|
||||||
"lyricsProviderMusixmatchDesc": "Largest lyrics database (multi-language)",
|
"lyricsProviderMusixmatchDesc": "Крупнейшая база данных текстов песен (мультиязычная)",
|
||||||
"@lyricsProviderMusixmatchDesc": {
|
"@lyricsProviderMusixmatchDesc": {
|
||||||
"description": "Description for Musixmatch provider"
|
"description": "Description for Musixmatch provider"
|
||||||
},
|
},
|
||||||
@@ -4202,10 +4283,51 @@
|
|||||||
"@editMetadataAutoFill": {
|
"@editMetadataAutoFill": {
|
||||||
"description": "Section title for selective online metadata auto-fill in the edit metadata sheet"
|
"description": "Section title for selective online metadata auto-fill in the edit metadata sheet"
|
||||||
},
|
},
|
||||||
"editMetadataAutoFillDesc": "Select fields to fill automatically from online metadata",
|
"editMetadataAutoFillDesc": "Choose a metadata extension, select fields, then review its data before applying",
|
||||||
"@editMetadataAutoFillDesc": {
|
"@editMetadataAutoFillDesc": {
|
||||||
"description": "Description for the auto-fill section"
|
"description": "Description for the auto-fill section"
|
||||||
},
|
},
|
||||||
|
"editMetadataAutoFillSource": "Metadata source",
|
||||||
|
"@editMetadataAutoFillSource": {
|
||||||
|
"description": "Label for the metadata extension selector in online auto-fill"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillSourceAutomatic": "Automatic (provider priority)",
|
||||||
|
"@editMetadataAutoFillSourceAutomatic": {
|
||||||
|
"description": "Automatic source option that follows configured metadata provider priority"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillFind": "Find metadata",
|
||||||
|
"@editMetadataAutoFillFind": {
|
||||||
|
"description": "Button label for finding an online metadata candidate"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillPreview": "Data from {source}",
|
||||||
|
"@editMetadataAutoFillPreview": {
|
||||||
|
"description": "Title for the online metadata preview",
|
||||||
|
"placeholders": {
|
||||||
|
"source": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillCoverAvailable": "Cover artwork available",
|
||||||
|
"@editMetadataAutoFillCoverAvailable": {
|
||||||
|
"description": "Preview value when the selected metadata source provides cover artwork"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillApply": "Apply selected data",
|
||||||
|
"@editMetadataAutoFillApply": {
|
||||||
|
"description": "Button label for applying the previewed metadata"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillDoneFromSource": "Filled {count} {count, plural, =1{field} other{fields}} from {source}",
|
||||||
|
"@editMetadataAutoFillDoneFromSource": {
|
||||||
|
"description": "Snackbar confirming fields applied from a selected metadata source",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"editMetadataAutoFillFetch": "Получить и заполнить",
|
"editMetadataAutoFillFetch": "Получить и заполнить",
|
||||||
"@editMetadataAutoFillFetch": {
|
"@editMetadataAutoFillFetch": {
|
||||||
"description": "Button label to fetch online metadata and fill selected fields"
|
"description": "Button label to fetch online metadata and fill selected fields"
|
||||||
@@ -4334,6 +4456,27 @@
|
|||||||
"@queueEmptySinglesSubtitle": {
|
"@queueEmptySinglesSubtitle": {
|
||||||
"description": "Empty state subtitle for single track downloads"
|
"description": "Empty state subtitle for single track downloads"
|
||||||
},
|
},
|
||||||
|
"queuePlaylistCount": "{count, plural, =1{1 playlist} other{{count} playlists}}",
|
||||||
|
"@queuePlaylistCount": {
|
||||||
|
"description": "Playlist count label with plural support",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"queueEmptyPlaylistsSubtitle": "Create a playlist to organize your tracks",
|
||||||
|
"@queueEmptyPlaylistsSubtitle": {
|
||||||
|
"description": "Empty state subtitle for the playlists library view"
|
||||||
|
},
|
||||||
|
"libraryDefaultView": "Default view",
|
||||||
|
"@libraryDefaultView": {
|
||||||
|
"description": "Setting title - which library view opens when switching to the Library tab"
|
||||||
|
},
|
||||||
|
"libraryDefaultViewLastUsed": "Last used",
|
||||||
|
"@libraryDefaultViewLastUsed": {
|
||||||
|
"description": "Default view option - keep the last used library view"
|
||||||
|
},
|
||||||
"queueEmptyHistory": "Нет истории скачиваний",
|
"queueEmptyHistory": "Нет истории скачиваний",
|
||||||
"@queueEmptyHistory": {
|
"@queueEmptyHistory": {
|
||||||
"description": "Empty state title when download history is empty"
|
"description": "Empty state title when download history is empty"
|
||||||
@@ -4434,6 +4577,10 @@
|
|||||||
"@audioAnalysisSpectralCutoff": {
|
"@audioAnalysisSpectralCutoff": {
|
||||||
"description": "Estimated spectral cutoff metric label"
|
"description": "Estimated spectral cutoff metric label"
|
||||||
},
|
},
|
||||||
|
"audioAnalysisCutoffNotDetected": "Not detected",
|
||||||
|
"@audioAnalysisCutoffNotDetected": {
|
||||||
|
"description": "Displayed when no reliable broadband spectral cutoff can be detected"
|
||||||
|
},
|
||||||
"audioAnalysisChannelStats": "Per-channel Stats",
|
"audioAnalysisChannelStats": "Per-channel Stats",
|
||||||
"@audioAnalysisChannelStats": {
|
"@audioAnalysisChannelStats": {
|
||||||
"description": "Per-channel audio analysis section label"
|
"description": "Per-channel audio analysis section label"
|
||||||
@@ -4504,6 +4651,14 @@
|
|||||||
"@cancelDownloadKeep": {
|
"@cancelDownloadKeep": {
|
||||||
"description": "Dialog button - keep the active download (do not cancel)"
|
"description": "Dialog button - keep the active download (do not cancel)"
|
||||||
},
|
},
|
||||||
|
"queueCancelledTitle": "Download cancelled",
|
||||||
|
"@queueCancelledTitle": {
|
||||||
|
"description": "Dialog title when opening a cancelled queue item"
|
||||||
|
},
|
||||||
|
"queueCancelledMessage": "This download was cancelled. Retry it or remove it from the queue.",
|
||||||
|
"@queueCancelledMessage": {
|
||||||
|
"description": "Dialog body when opening a cancelled queue item"
|
||||||
|
},
|
||||||
"metadataSaveFailedFfmpeg": "Не удалось сохранить метаданные через FFmpeg",
|
"metadataSaveFailedFfmpeg": "Не удалось сохранить метаданные через FFmpeg",
|
||||||
"@metadataSaveFailedFfmpeg": {
|
"@metadataSaveFailedFfmpeg": {
|
||||||
"description": "Snackbar error when FFmpeg fails to write metadata"
|
"description": "Snackbar error when FFmpeg fails to write metadata"
|
||||||
@@ -4769,9 +4924,9 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"homeImportCsvTooltip": "Import CSV",
|
"homeImportCsvTooltip": "Import playlist (CSV, M3U)",
|
||||||
"@homeImportCsvTooltip": {
|
"@homeImportCsvTooltip": {
|
||||||
"description": "Tooltip for importing a CSV file into Home search"
|
"description": "Tooltip for importing a CSV or M3U playlist file into Home search"
|
||||||
},
|
},
|
||||||
"homeChangeSearchProviderTooltip": "Change search provider",
|
"homeChangeSearchProviderTooltip": "Change search provider",
|
||||||
"@homeChangeSearchProviderTooltip": {
|
"@homeChangeSearchProviderTooltip": {
|
||||||
@@ -4837,6 +4992,18 @@
|
|||||||
"@trackCoverReplaceNotice": {
|
"@trackCoverReplaceNotice": {
|
||||||
"description": "Notice shown when a new cover has been selected but not saved yet"
|
"description": "Notice shown when a new cover has been selected but not saved yet"
|
||||||
},
|
},
|
||||||
|
"trackCoverResolution": "Cover resolution",
|
||||||
|
"@trackCoverResolution": {
|
||||||
|
"description": "Label for selecting the embedded cover art resolution"
|
||||||
|
},
|
||||||
|
"trackCoverResolutionHint": "Sets the longest edge when saved. Enlarging does not add image detail.",
|
||||||
|
"@trackCoverResolutionHint": {
|
||||||
|
"description": "Explanation below the embedded cover art resolution selector"
|
||||||
|
},
|
||||||
|
"trackCoverResizeFailed": "The cover image could not be resized. Please try another size or image.",
|
||||||
|
"@trackCoverResizeFailed": {
|
||||||
|
"description": "Error shown when resizing cover art before saving metadata fails"
|
||||||
|
},
|
||||||
"actionStop": "Stop",
|
"actionStop": "Stop",
|
||||||
"@actionStop": {
|
"@actionStop": {
|
||||||
"description": "Generic action - stop"
|
"description": "Generic action - stop"
|
||||||
@@ -4845,6 +5012,55 @@
|
|||||||
"@queueFinalizingDownload": {
|
"@queueFinalizingDownload": {
|
||||||
"description": "Accessibility label for a queue item that is finalizing"
|
"description": "Accessibility label for a queue item that is finalizing"
|
||||||
},
|
},
|
||||||
|
"queueDownloadNext": "Download next",
|
||||||
|
"@queueDownloadNext": {
|
||||||
|
"description": "Tooltip on a queued download row; moves the item to the front of the queue so the next free slot downloads it"
|
||||||
|
},
|
||||||
|
"queueMoveUp": "Move up",
|
||||||
|
"@queueMoveUp": {
|
||||||
|
"description": "Queue item menu action - move the queued item one position earlier"
|
||||||
|
},
|
||||||
|
"queueMoveDown": "Move down",
|
||||||
|
"@queueMoveDown": {
|
||||||
|
"description": "Queue item menu action - move the queued item one position later"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzButton": "Fetch from MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzButton": {
|
||||||
|
"description": "Tag editor button that fills genre and album artist from MusicBrainz by ISRC"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzFilled": "Updated from MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzFilled": {
|
||||||
|
"description": "Snackbar after MusicBrainz suggestions were applied to the tag editor fields"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzNothing": "Nothing found on MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzNothing": {
|
||||||
|
"description": "Snackbar when the MusicBrainz lookup returns no data"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzNeedsIsrc": "Requires an ISRC tag",
|
||||||
|
"@editMetadataMusicBrainzNeedsIsrc": {
|
||||||
|
"description": "Snackbar when the MusicBrainz lookup is tapped without an ISRC"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatOff": "Repeat off",
|
||||||
|
"@nowPlayingRepeatOff": {
|
||||||
|
"description": "Repeat toggle tooltip when repeat is disabled"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatAll": "Repeat all",
|
||||||
|
"@nowPlayingRepeatAll": {
|
||||||
|
"description": "Repeat toggle tooltip when the whole queue repeats"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatOne": "Repeat one",
|
||||||
|
"@nowPlayingRepeatOne": {
|
||||||
|
"description": "Repeat toggle tooltip when the current track repeats"
|
||||||
|
},
|
||||||
|
"queueNetworkFailedOffline": "{count} downloads failed while offline",
|
||||||
|
"@queueNetworkFailedOffline": {
|
||||||
|
"description": "Snackbar shown when connectivity returns and network-failed downloads can be retried",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"queueDownloadedFileMissing": "Downloaded file missing",
|
"queueDownloadedFileMissing": "Downloaded file missing",
|
||||||
"@queueDownloadedFileMissing": {
|
"@queueDownloadedFileMissing": {
|
||||||
"description": "Accessibility label when a downloaded file is missing from disk"
|
"description": "Accessibility label when a downloaded file is missing from disk"
|
||||||
@@ -5120,7 +5336,7 @@
|
|||||||
"@downloadQualityVariants": {
|
"@downloadQualityVariants": {
|
||||||
"description": "Setting to retain multiple quality versions of the same track"
|
"description": "Setting to retain multiple quality versions of the same track"
|
||||||
},
|
},
|
||||||
"downloadQualityVariantsDescription": "Add the selected quality to the filename and keep each version in download history",
|
"downloadQualityVariantsDescription": "Keep every quality version; add its measured quality to the filename only when the name is already used",
|
||||||
"@downloadQualityVariantsDescription": {
|
"@downloadQualityVariantsDescription": {
|
||||||
"description": "Description for retaining multiple quality versions"
|
"description": "Description for retaining multiple quality versions"
|
||||||
},
|
},
|
||||||
@@ -5176,6 +5392,10 @@
|
|||||||
"@libraryFilterMetadataIncorrectIsrcFormat": {
|
"@libraryFilterMetadataIncorrectIsrcFormat": {
|
||||||
"description": "Filter option - items with an invalid ISRC format"
|
"description": "Filter option - items with an invalid ISRC format"
|
||||||
},
|
},
|
||||||
|
"libraryFilterMetadataMissingIsrc": "Missing ISRC",
|
||||||
|
"@libraryFilterMetadataMissingIsrc": {
|
||||||
|
"description": "Filter option - items without any ISRC tag"
|
||||||
|
},
|
||||||
"libraryFilterMetadataMissingLabel": "Missing label",
|
"libraryFilterMetadataMissingLabel": "Missing label",
|
||||||
"@libraryFilterMetadataMissingLabel": {
|
"@libraryFilterMetadataMissingLabel": {
|
||||||
"description": "Filter option - items missing record label"
|
"description": "Filter option - items missing record label"
|
||||||
@@ -5365,10 +5585,6 @@
|
|||||||
"@downloadNativeWorkerSubtitle": {
|
"@downloadNativeWorkerSubtitle": {
|
||||||
"description": "Setting subtitle for Android native download worker"
|
"description": "Setting subtitle for Android native download worker"
|
||||||
},
|
},
|
||||||
"badgeBeta": "BETA",
|
|
||||||
"@badgeBeta": {
|
|
||||||
"description": "Badge label for beta features"
|
|
||||||
},
|
|
||||||
"extensionServiceStatus": "Service Status",
|
"extensionServiceStatus": "Service Status",
|
||||||
"@extensionServiceStatus": {
|
"@extensionServiceStatus": {
|
||||||
"description": "Extension detail section header for service status"
|
"description": "Extension detail section header for service status"
|
||||||
@@ -6022,5 +6238,38 @@
|
|||||||
"extensionVerificationOpenBrowser": "Open browser",
|
"extensionVerificationOpenBrowser": "Open browser",
|
||||||
"@extensionVerificationOpenBrowser": {
|
"@extensionVerificationOpenBrowser": {
|
||||||
"description": "Button to open the extension verification URL in a browser"
|
"description": "Button to open the extension verification URL in a browser"
|
||||||
|
},
|
||||||
|
"settingsSearchHint": "Search settings",
|
||||||
|
"@settingsSearchHint": {
|
||||||
|
"description": "Placeholder of the search field on the Settings tab"
|
||||||
|
},
|
||||||
|
"settingsSearchNoResults": "No settings match \"{query}\"",
|
||||||
|
"@settingsSearchNoResults": {
|
||||||
|
"description": "Shown when a Settings search returns nothing",
|
||||||
|
"placeholders": {
|
||||||
|
"query": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"settingsGroupInterface": "Extensions & appearance",
|
||||||
|
"@settingsGroupInterface": {
|
||||||
|
"description": "Settings group covering look and feel"
|
||||||
|
},
|
||||||
|
"settingsGroupContent": "Content & metadata",
|
||||||
|
"@settingsGroupContent": {
|
||||||
|
"description": "Settings group covering the library, metadata and lyrics"
|
||||||
|
},
|
||||||
|
"settingsGroupDownloads": "Downloads & files",
|
||||||
|
"@settingsGroupDownloads": {
|
||||||
|
"description": "Settings group covering download behaviour and storage"
|
||||||
|
},
|
||||||
|
"settingsGroupSystem": "System",
|
||||||
|
"@settingsGroupSystem": {
|
||||||
|
"description": "Settings group covering app-level data, cache and logs"
|
||||||
|
},
|
||||||
|
"settingsGroupHelp": "About & support",
|
||||||
|
"@settingsGroupHelp": {
|
||||||
|
"description": "Settings group covering the about page and donations"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+260
-11
@@ -792,7 +792,7 @@
|
|||||||
"@dialogImportPlaylistTitle": {
|
"@dialogImportPlaylistTitle": {
|
||||||
"description": "Dialog title - import CSV playlist"
|
"description": "Dialog title - import CSV playlist"
|
||||||
},
|
},
|
||||||
"dialogImportPlaylistMessage": "CSV'de {count} şarkı bulundu. İndirme kuyruğuna ekle?",
|
"dialogImportPlaylistMessage": "Found {count} tracks in the playlist file. Add them to download queue?",
|
||||||
"csvImportTracks": "CSV'den {count} şarkı",
|
"csvImportTracks": "CSV'den {count} şarkı",
|
||||||
"@csvImportTracks": {
|
"@csvImportTracks": {
|
||||||
"description": "Label shown in quality picker for CSV import",
|
"description": "Label shown in quality picker for CSV import",
|
||||||
@@ -802,6 +802,79 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"collectionExportM3u": "Export as M3U8",
|
||||||
|
"@collectionExportM3u": {
|
||||||
|
"description": "Tooltip on the collection screen action that exports the track list as an M3U8 playlist file"
|
||||||
|
},
|
||||||
|
"collectionExportM3uDone": "Exported {exported} of {total} tracks",
|
||||||
|
"@collectionExportM3uDone": {
|
||||||
|
"description": "Snackbar after M3U8 export; tracks without a local file are not exported",
|
||||||
|
"placeholders": {
|
||||||
|
"exported": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"total": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"collectionExportM3uNone": "No downloaded files to export",
|
||||||
|
"@collectionExportM3uNone": {
|
||||||
|
"description": "Snackbar when an M3U8 export finds no local files"
|
||||||
|
},
|
||||||
|
"collectionExportM3uFailed": "Export failed",
|
||||||
|
"@collectionExportM3uFailed": {
|
||||||
|
"description": "Snackbar when writing or sharing the M3U8 export fails"
|
||||||
|
},
|
||||||
|
"trackOpenOn": "Open on...",
|
||||||
|
"@trackOpenOn": {
|
||||||
|
"description": "Track option and sheet title listing streaming platforms where the track can be opened"
|
||||||
|
},
|
||||||
|
"trackOpenOnNoLinks": "No platform links found for this track.",
|
||||||
|
"@trackOpenOnNoLinks": {
|
||||||
|
"description": "Shown in the Open on sheet when song.link returns no links"
|
||||||
|
},
|
||||||
|
"libraryReviewDuplicates": "Review duplicates",
|
||||||
|
"@libraryReviewDuplicates": {
|
||||||
|
"description": "Library settings row opening the duplicate review sheet"
|
||||||
|
},
|
||||||
|
"libraryReviewDuplicatesSubtitle": "Find tracks stored more than once",
|
||||||
|
"@libraryReviewDuplicatesSubtitle": {
|
||||||
|
"description": "Subtitle for the duplicate review settings row"
|
||||||
|
},
|
||||||
|
"duplicatesTitle": "Duplicates",
|
||||||
|
"@duplicatesTitle": {
|
||||||
|
"description": "Title of the duplicate review sheet"
|
||||||
|
},
|
||||||
|
"duplicatesEmpty": "No duplicate tracks found.",
|
||||||
|
"@duplicatesEmpty": {
|
||||||
|
"description": "Shown when the duplicate review sheet finds nothing"
|
||||||
|
},
|
||||||
|
"duplicatesKeepBest": "Keep best",
|
||||||
|
"@duplicatesKeepBest": {
|
||||||
|
"description": "Button that deletes all but the highest-quality copy in a duplicate group"
|
||||||
|
},
|
||||||
|
"duplicatesKeepBestMessage": "Delete {count} lower-quality copies of \"{trackName}\"?",
|
||||||
|
"@duplicatesKeepBestMessage": {
|
||||||
|
"description": "Confirmation message for the keep-best action",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"trackName": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"duplicatesDeleteCopyMessage": "Delete this copy of \"{trackName}\"?",
|
||||||
|
"@duplicatesDeleteCopyMessage": {
|
||||||
|
"description": "Confirmation message for deleting one duplicate copy",
|
||||||
|
"placeholders": {
|
||||||
|
"trackName": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"@dialogImportPlaylistMessage": {
|
"@dialogImportPlaylistMessage": {
|
||||||
"description": "Dialog message - import playlist confirmation",
|
"description": "Dialog message - import playlist confirmation",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -2018,6 +2091,14 @@
|
|||||||
"@appearanceHeroAnimationsSubtitle": {
|
"@appearanceHeroAnimationsSubtitle": {
|
||||||
"description": "Subtitle for the Hero animations toggle"
|
"description": "Subtitle for the Hero animations toggle"
|
||||||
},
|
},
|
||||||
|
"appearanceForceBlur": "Always use blur effects",
|
||||||
|
"@appearanceForceBlur": {
|
||||||
|
"description": "Toggle that forces backdrop blur on even when the device profile disabled it"
|
||||||
|
},
|
||||||
|
"appearanceForceBlurSubtitle": "Enable the navigation bar blur even on devices where it is off by default. May cost performance.",
|
||||||
|
"@appearanceForceBlurSubtitle": {
|
||||||
|
"description": "Subtitle for the force-blur toggle"
|
||||||
|
},
|
||||||
"queueClearAll": "Tümünü Temizle",
|
"queueClearAll": "Tümünü Temizle",
|
||||||
"@queueClearAll": {
|
"@queueClearAll": {
|
||||||
"description": "Button - clear all queue items"
|
"description": "Button - clear all queue items"
|
||||||
@@ -2678,7 +2759,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tutorialWelcomeTitle": "SpotiFLAC'e hoş geldiniz!",
|
"tutorialWelcomeTitle": "Welcome to SpotiFLAC Mobile!",
|
||||||
"@tutorialWelcomeTitle": {
|
"@tutorialWelcomeTitle": {
|
||||||
"description": "Tutorial welcome page title"
|
"description": "Tutorial welcome page title"
|
||||||
},
|
},
|
||||||
@@ -2686,7 +2767,7 @@
|
|||||||
"@tutorialWelcomeDesc": {
|
"@tutorialWelcomeDesc": {
|
||||||
"description": "Tutorial welcome page description"
|
"description": "Tutorial welcome page description"
|
||||||
},
|
},
|
||||||
"tutorialWelcomeTip1": "Spotify, Deezer'dan müzik indirin veya desteklenen herhangi bir URL'yi yapıştırın",
|
"tutorialWelcomeTip1": "Search music or paste a link from any source your installed extensions support",
|
||||||
"@tutorialWelcomeTip1": {
|
"@tutorialWelcomeTip1": {
|
||||||
"description": "Tutorial welcome tip 1"
|
"description": "Tutorial welcome tip 1"
|
||||||
},
|
},
|
||||||
@@ -4202,10 +4283,51 @@
|
|||||||
"@editMetadataAutoFill": {
|
"@editMetadataAutoFill": {
|
||||||
"description": "Section title for selective online metadata auto-fill in the edit metadata sheet"
|
"description": "Section title for selective online metadata auto-fill in the edit metadata sheet"
|
||||||
},
|
},
|
||||||
"editMetadataAutoFillDesc": "Select fields to fill automatically from online metadata",
|
"editMetadataAutoFillDesc": "Choose a metadata extension, select fields, then review its data before applying",
|
||||||
"@editMetadataAutoFillDesc": {
|
"@editMetadataAutoFillDesc": {
|
||||||
"description": "Description for the auto-fill section"
|
"description": "Description for the auto-fill section"
|
||||||
},
|
},
|
||||||
|
"editMetadataAutoFillSource": "Metadata source",
|
||||||
|
"@editMetadataAutoFillSource": {
|
||||||
|
"description": "Label for the metadata extension selector in online auto-fill"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillSourceAutomatic": "Automatic (provider priority)",
|
||||||
|
"@editMetadataAutoFillSourceAutomatic": {
|
||||||
|
"description": "Automatic source option that follows configured metadata provider priority"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillFind": "Find metadata",
|
||||||
|
"@editMetadataAutoFillFind": {
|
||||||
|
"description": "Button label for finding an online metadata candidate"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillPreview": "Data from {source}",
|
||||||
|
"@editMetadataAutoFillPreview": {
|
||||||
|
"description": "Title for the online metadata preview",
|
||||||
|
"placeholders": {
|
||||||
|
"source": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillCoverAvailable": "Cover artwork available",
|
||||||
|
"@editMetadataAutoFillCoverAvailable": {
|
||||||
|
"description": "Preview value when the selected metadata source provides cover artwork"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillApply": "Apply selected data",
|
||||||
|
"@editMetadataAutoFillApply": {
|
||||||
|
"description": "Button label for applying the previewed metadata"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillDoneFromSource": "Filled {count} {count, plural, =1{field} other{fields}} from {source}",
|
||||||
|
"@editMetadataAutoFillDoneFromSource": {
|
||||||
|
"description": "Snackbar confirming fields applied from a selected metadata source",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"editMetadataAutoFillFetch": "Fetch & Fill",
|
"editMetadataAutoFillFetch": "Fetch & Fill",
|
||||||
"@editMetadataAutoFillFetch": {
|
"@editMetadataAutoFillFetch": {
|
||||||
"description": "Button label to fetch online metadata and fill selected fields"
|
"description": "Button label to fetch online metadata and fill selected fields"
|
||||||
@@ -4334,6 +4456,27 @@
|
|||||||
"@queueEmptySinglesSubtitle": {
|
"@queueEmptySinglesSubtitle": {
|
||||||
"description": "Empty state subtitle for single track downloads"
|
"description": "Empty state subtitle for single track downloads"
|
||||||
},
|
},
|
||||||
|
"queuePlaylistCount": "{count, plural, =1{1 playlist} other{{count} playlists}}",
|
||||||
|
"@queuePlaylistCount": {
|
||||||
|
"description": "Playlist count label with plural support",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"queueEmptyPlaylistsSubtitle": "Create a playlist to organize your tracks",
|
||||||
|
"@queueEmptyPlaylistsSubtitle": {
|
||||||
|
"description": "Empty state subtitle for the playlists library view"
|
||||||
|
},
|
||||||
|
"libraryDefaultView": "Default view",
|
||||||
|
"@libraryDefaultView": {
|
||||||
|
"description": "Setting title - which library view opens when switching to the Library tab"
|
||||||
|
},
|
||||||
|
"libraryDefaultViewLastUsed": "Last used",
|
||||||
|
"@libraryDefaultViewLastUsed": {
|
||||||
|
"description": "Default view option - keep the last used library view"
|
||||||
|
},
|
||||||
"queueEmptyHistory": "No download history",
|
"queueEmptyHistory": "No download history",
|
||||||
"@queueEmptyHistory": {
|
"@queueEmptyHistory": {
|
||||||
"description": "Empty state title when download history is empty"
|
"description": "Empty state title when download history is empty"
|
||||||
@@ -4434,6 +4577,10 @@
|
|||||||
"@audioAnalysisSpectralCutoff": {
|
"@audioAnalysisSpectralCutoff": {
|
||||||
"description": "Estimated spectral cutoff metric label"
|
"description": "Estimated spectral cutoff metric label"
|
||||||
},
|
},
|
||||||
|
"audioAnalysisCutoffNotDetected": "Not detected",
|
||||||
|
"@audioAnalysisCutoffNotDetected": {
|
||||||
|
"description": "Displayed when no reliable broadband spectral cutoff can be detected"
|
||||||
|
},
|
||||||
"audioAnalysisChannelStats": "Per-channel Stats",
|
"audioAnalysisChannelStats": "Per-channel Stats",
|
||||||
"@audioAnalysisChannelStats": {
|
"@audioAnalysisChannelStats": {
|
||||||
"description": "Per-channel audio analysis section label"
|
"description": "Per-channel audio analysis section label"
|
||||||
@@ -4504,6 +4651,14 @@
|
|||||||
"@cancelDownloadKeep": {
|
"@cancelDownloadKeep": {
|
||||||
"description": "Dialog button - keep the active download (do not cancel)"
|
"description": "Dialog button - keep the active download (do not cancel)"
|
||||||
},
|
},
|
||||||
|
"queueCancelledTitle": "Download cancelled",
|
||||||
|
"@queueCancelledTitle": {
|
||||||
|
"description": "Dialog title when opening a cancelled queue item"
|
||||||
|
},
|
||||||
|
"queueCancelledMessage": "This download was cancelled. Retry it or remove it from the queue.",
|
||||||
|
"@queueCancelledMessage": {
|
||||||
|
"description": "Dialog body when opening a cancelled queue item"
|
||||||
|
},
|
||||||
"metadataSaveFailedFfmpeg": "Failed to save metadata via FFmpeg",
|
"metadataSaveFailedFfmpeg": "Failed to save metadata via FFmpeg",
|
||||||
"@metadataSaveFailedFfmpeg": {
|
"@metadataSaveFailedFfmpeg": {
|
||||||
"description": "Snackbar error when FFmpeg fails to write metadata"
|
"description": "Snackbar error when FFmpeg fails to write metadata"
|
||||||
@@ -4769,9 +4924,9 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"homeImportCsvTooltip": "Import CSV",
|
"homeImportCsvTooltip": "Import playlist (CSV, M3U)",
|
||||||
"@homeImportCsvTooltip": {
|
"@homeImportCsvTooltip": {
|
||||||
"description": "Tooltip for importing a CSV file into Home search"
|
"description": "Tooltip for importing a CSV or M3U playlist file into Home search"
|
||||||
},
|
},
|
||||||
"homeChangeSearchProviderTooltip": "Change search provider",
|
"homeChangeSearchProviderTooltip": "Change search provider",
|
||||||
"@homeChangeSearchProviderTooltip": {
|
"@homeChangeSearchProviderTooltip": {
|
||||||
@@ -4837,6 +4992,18 @@
|
|||||||
"@trackCoverReplaceNotice": {
|
"@trackCoverReplaceNotice": {
|
||||||
"description": "Notice shown when a new cover has been selected but not saved yet"
|
"description": "Notice shown when a new cover has been selected but not saved yet"
|
||||||
},
|
},
|
||||||
|
"trackCoverResolution": "Cover resolution",
|
||||||
|
"@trackCoverResolution": {
|
||||||
|
"description": "Label for selecting the embedded cover art resolution"
|
||||||
|
},
|
||||||
|
"trackCoverResolutionHint": "Sets the longest edge when saved. Enlarging does not add image detail.",
|
||||||
|
"@trackCoverResolutionHint": {
|
||||||
|
"description": "Explanation below the embedded cover art resolution selector"
|
||||||
|
},
|
||||||
|
"trackCoverResizeFailed": "The cover image could not be resized. Please try another size or image.",
|
||||||
|
"@trackCoverResizeFailed": {
|
||||||
|
"description": "Error shown when resizing cover art before saving metadata fails"
|
||||||
|
},
|
||||||
"actionStop": "Stop",
|
"actionStop": "Stop",
|
||||||
"@actionStop": {
|
"@actionStop": {
|
||||||
"description": "Generic action - stop"
|
"description": "Generic action - stop"
|
||||||
@@ -4845,6 +5012,55 @@
|
|||||||
"@queueFinalizingDownload": {
|
"@queueFinalizingDownload": {
|
||||||
"description": "Accessibility label for a queue item that is finalizing"
|
"description": "Accessibility label for a queue item that is finalizing"
|
||||||
},
|
},
|
||||||
|
"queueDownloadNext": "Download next",
|
||||||
|
"@queueDownloadNext": {
|
||||||
|
"description": "Tooltip on a queued download row; moves the item to the front of the queue so the next free slot downloads it"
|
||||||
|
},
|
||||||
|
"queueMoveUp": "Move up",
|
||||||
|
"@queueMoveUp": {
|
||||||
|
"description": "Queue item menu action - move the queued item one position earlier"
|
||||||
|
},
|
||||||
|
"queueMoveDown": "Move down",
|
||||||
|
"@queueMoveDown": {
|
||||||
|
"description": "Queue item menu action - move the queued item one position later"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzButton": "Fetch from MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzButton": {
|
||||||
|
"description": "Tag editor button that fills genre and album artist from MusicBrainz by ISRC"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzFilled": "Updated from MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzFilled": {
|
||||||
|
"description": "Snackbar after MusicBrainz suggestions were applied to the tag editor fields"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzNothing": "Nothing found on MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzNothing": {
|
||||||
|
"description": "Snackbar when the MusicBrainz lookup returns no data"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzNeedsIsrc": "Requires an ISRC tag",
|
||||||
|
"@editMetadataMusicBrainzNeedsIsrc": {
|
||||||
|
"description": "Snackbar when the MusicBrainz lookup is tapped without an ISRC"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatOff": "Repeat off",
|
||||||
|
"@nowPlayingRepeatOff": {
|
||||||
|
"description": "Repeat toggle tooltip when repeat is disabled"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatAll": "Repeat all",
|
||||||
|
"@nowPlayingRepeatAll": {
|
||||||
|
"description": "Repeat toggle tooltip when the whole queue repeats"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatOne": "Repeat one",
|
||||||
|
"@nowPlayingRepeatOne": {
|
||||||
|
"description": "Repeat toggle tooltip when the current track repeats"
|
||||||
|
},
|
||||||
|
"queueNetworkFailedOffline": "{count} downloads failed while offline",
|
||||||
|
"@queueNetworkFailedOffline": {
|
||||||
|
"description": "Snackbar shown when connectivity returns and network-failed downloads can be retried",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"queueDownloadedFileMissing": "Downloaded file missing",
|
"queueDownloadedFileMissing": "Downloaded file missing",
|
||||||
"@queueDownloadedFileMissing": {
|
"@queueDownloadedFileMissing": {
|
||||||
"description": "Accessibility label when a downloaded file is missing from disk"
|
"description": "Accessibility label when a downloaded file is missing from disk"
|
||||||
@@ -5120,7 +5336,7 @@
|
|||||||
"@downloadQualityVariants": {
|
"@downloadQualityVariants": {
|
||||||
"description": "Setting to retain multiple quality versions of the same track"
|
"description": "Setting to retain multiple quality versions of the same track"
|
||||||
},
|
},
|
||||||
"downloadQualityVariantsDescription": "Add the selected quality to the filename and keep each version in download history",
|
"downloadQualityVariantsDescription": "Keep every quality version; add its measured quality to the filename only when the name is already used",
|
||||||
"@downloadQualityVariantsDescription": {
|
"@downloadQualityVariantsDescription": {
|
||||||
"description": "Description for retaining multiple quality versions"
|
"description": "Description for retaining multiple quality versions"
|
||||||
},
|
},
|
||||||
@@ -5176,6 +5392,10 @@
|
|||||||
"@libraryFilterMetadataIncorrectIsrcFormat": {
|
"@libraryFilterMetadataIncorrectIsrcFormat": {
|
||||||
"description": "Filter option - items with an invalid ISRC format"
|
"description": "Filter option - items with an invalid ISRC format"
|
||||||
},
|
},
|
||||||
|
"libraryFilterMetadataMissingIsrc": "Missing ISRC",
|
||||||
|
"@libraryFilterMetadataMissingIsrc": {
|
||||||
|
"description": "Filter option - items without any ISRC tag"
|
||||||
|
},
|
||||||
"libraryFilterMetadataMissingLabel": "Missing label",
|
"libraryFilterMetadataMissingLabel": "Missing label",
|
||||||
"@libraryFilterMetadataMissingLabel": {
|
"@libraryFilterMetadataMissingLabel": {
|
||||||
"description": "Filter option - items missing record label"
|
"description": "Filter option - items missing record label"
|
||||||
@@ -5365,10 +5585,6 @@
|
|||||||
"@downloadNativeWorkerSubtitle": {
|
"@downloadNativeWorkerSubtitle": {
|
||||||
"description": "Setting subtitle for Android native download worker"
|
"description": "Setting subtitle for Android native download worker"
|
||||||
},
|
},
|
||||||
"badgeBeta": "BETA",
|
|
||||||
"@badgeBeta": {
|
|
||||||
"description": "Badge label for beta features"
|
|
||||||
},
|
|
||||||
"extensionServiceStatus": "Service Status",
|
"extensionServiceStatus": "Service Status",
|
||||||
"@extensionServiceStatus": {
|
"@extensionServiceStatus": {
|
||||||
"description": "Extension detail section header for service status"
|
"description": "Extension detail section header for service status"
|
||||||
@@ -6022,5 +6238,38 @@
|
|||||||
"extensionVerificationOpenBrowser": "Open browser",
|
"extensionVerificationOpenBrowser": "Open browser",
|
||||||
"@extensionVerificationOpenBrowser": {
|
"@extensionVerificationOpenBrowser": {
|
||||||
"description": "Button to open the extension verification URL in a browser"
|
"description": "Button to open the extension verification URL in a browser"
|
||||||
|
},
|
||||||
|
"settingsSearchHint": "Search settings",
|
||||||
|
"@settingsSearchHint": {
|
||||||
|
"description": "Placeholder of the search field on the Settings tab"
|
||||||
|
},
|
||||||
|
"settingsSearchNoResults": "No settings match \"{query}\"",
|
||||||
|
"@settingsSearchNoResults": {
|
||||||
|
"description": "Shown when a Settings search returns nothing",
|
||||||
|
"placeholders": {
|
||||||
|
"query": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"settingsGroupInterface": "Extensions & appearance",
|
||||||
|
"@settingsGroupInterface": {
|
||||||
|
"description": "Settings group covering look and feel"
|
||||||
|
},
|
||||||
|
"settingsGroupContent": "Content & metadata",
|
||||||
|
"@settingsGroupContent": {
|
||||||
|
"description": "Settings group covering the library, metadata and lyrics"
|
||||||
|
},
|
||||||
|
"settingsGroupDownloads": "Downloads & files",
|
||||||
|
"@settingsGroupDownloads": {
|
||||||
|
"description": "Settings group covering download behaviour and storage"
|
||||||
|
},
|
||||||
|
"settingsGroupSystem": "System",
|
||||||
|
"@settingsGroupSystem": {
|
||||||
|
"description": "Settings group covering app-level data, cache and logs"
|
||||||
|
},
|
||||||
|
"settingsGroupHelp": "About & support",
|
||||||
|
"@settingsGroupHelp": {
|
||||||
|
"description": "Settings group covering the about page and donations"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+260
-11
@@ -792,7 +792,7 @@
|
|||||||
"@dialogImportPlaylistTitle": {
|
"@dialogImportPlaylistTitle": {
|
||||||
"description": "Dialog title - import CSV playlist"
|
"description": "Dialog title - import CSV playlist"
|
||||||
},
|
},
|
||||||
"dialogImportPlaylistMessage": "Знайдено {count} треків у CSV. Додати їх до черги завантаження?",
|
"dialogImportPlaylistMessage": "Found {count} tracks in the playlist file. Add them to download queue?",
|
||||||
"csvImportTracks": "{count} треків з CSV",
|
"csvImportTracks": "{count} треків з CSV",
|
||||||
"@csvImportTracks": {
|
"@csvImportTracks": {
|
||||||
"description": "Label shown in quality picker for CSV import",
|
"description": "Label shown in quality picker for CSV import",
|
||||||
@@ -802,6 +802,79 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"collectionExportM3u": "Export as M3U8",
|
||||||
|
"@collectionExportM3u": {
|
||||||
|
"description": "Tooltip on the collection screen action that exports the track list as an M3U8 playlist file"
|
||||||
|
},
|
||||||
|
"collectionExportM3uDone": "Exported {exported} of {total} tracks",
|
||||||
|
"@collectionExportM3uDone": {
|
||||||
|
"description": "Snackbar after M3U8 export; tracks without a local file are not exported",
|
||||||
|
"placeholders": {
|
||||||
|
"exported": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"total": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"collectionExportM3uNone": "No downloaded files to export",
|
||||||
|
"@collectionExportM3uNone": {
|
||||||
|
"description": "Snackbar when an M3U8 export finds no local files"
|
||||||
|
},
|
||||||
|
"collectionExportM3uFailed": "Export failed",
|
||||||
|
"@collectionExportM3uFailed": {
|
||||||
|
"description": "Snackbar when writing or sharing the M3U8 export fails"
|
||||||
|
},
|
||||||
|
"trackOpenOn": "Open on...",
|
||||||
|
"@trackOpenOn": {
|
||||||
|
"description": "Track option and sheet title listing streaming platforms where the track can be opened"
|
||||||
|
},
|
||||||
|
"trackOpenOnNoLinks": "No platform links found for this track.",
|
||||||
|
"@trackOpenOnNoLinks": {
|
||||||
|
"description": "Shown in the Open on sheet when song.link returns no links"
|
||||||
|
},
|
||||||
|
"libraryReviewDuplicates": "Review duplicates",
|
||||||
|
"@libraryReviewDuplicates": {
|
||||||
|
"description": "Library settings row opening the duplicate review sheet"
|
||||||
|
},
|
||||||
|
"libraryReviewDuplicatesSubtitle": "Find tracks stored more than once",
|
||||||
|
"@libraryReviewDuplicatesSubtitle": {
|
||||||
|
"description": "Subtitle for the duplicate review settings row"
|
||||||
|
},
|
||||||
|
"duplicatesTitle": "Duplicates",
|
||||||
|
"@duplicatesTitle": {
|
||||||
|
"description": "Title of the duplicate review sheet"
|
||||||
|
},
|
||||||
|
"duplicatesEmpty": "No duplicate tracks found.",
|
||||||
|
"@duplicatesEmpty": {
|
||||||
|
"description": "Shown when the duplicate review sheet finds nothing"
|
||||||
|
},
|
||||||
|
"duplicatesKeepBest": "Keep best",
|
||||||
|
"@duplicatesKeepBest": {
|
||||||
|
"description": "Button that deletes all but the highest-quality copy in a duplicate group"
|
||||||
|
},
|
||||||
|
"duplicatesKeepBestMessage": "Delete {count} lower-quality copies of \"{trackName}\"?",
|
||||||
|
"@duplicatesKeepBestMessage": {
|
||||||
|
"description": "Confirmation message for the keep-best action",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"trackName": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"duplicatesDeleteCopyMessage": "Delete this copy of \"{trackName}\"?",
|
||||||
|
"@duplicatesDeleteCopyMessage": {
|
||||||
|
"description": "Confirmation message for deleting one duplicate copy",
|
||||||
|
"placeholders": {
|
||||||
|
"trackName": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"@dialogImportPlaylistMessage": {
|
"@dialogImportPlaylistMessage": {
|
||||||
"description": "Dialog message - import playlist confirmation",
|
"description": "Dialog message - import playlist confirmation",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
@@ -2018,6 +2091,14 @@
|
|||||||
"@appearanceHeroAnimationsSubtitle": {
|
"@appearanceHeroAnimationsSubtitle": {
|
||||||
"description": "Subtitle for the Hero animations toggle"
|
"description": "Subtitle for the Hero animations toggle"
|
||||||
},
|
},
|
||||||
|
"appearanceForceBlur": "Always use blur effects",
|
||||||
|
"@appearanceForceBlur": {
|
||||||
|
"description": "Toggle that forces backdrop blur on even when the device profile disabled it"
|
||||||
|
},
|
||||||
|
"appearanceForceBlurSubtitle": "Enable the navigation bar blur even on devices where it is off by default. May cost performance.",
|
||||||
|
"@appearanceForceBlurSubtitle": {
|
||||||
|
"description": "Subtitle for the force-blur toggle"
|
||||||
|
},
|
||||||
"queueClearAll": "Усі",
|
"queueClearAll": "Усі",
|
||||||
"@queueClearAll": {
|
"@queueClearAll": {
|
||||||
"description": "Button - clear all queue items"
|
"description": "Button - clear all queue items"
|
||||||
@@ -2678,7 +2759,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tutorialWelcomeTitle": "Ласкаво просимо до SpotiFLAC!",
|
"tutorialWelcomeTitle": "Welcome to SpotiFLAC Mobile!",
|
||||||
"@tutorialWelcomeTitle": {
|
"@tutorialWelcomeTitle": {
|
||||||
"description": "Tutorial welcome page title"
|
"description": "Tutorial welcome page title"
|
||||||
},
|
},
|
||||||
@@ -2686,7 +2767,7 @@
|
|||||||
"@tutorialWelcomeDesc": {
|
"@tutorialWelcomeDesc": {
|
||||||
"description": "Tutorial welcome page description"
|
"description": "Tutorial welcome page description"
|
||||||
},
|
},
|
||||||
"tutorialWelcomeTip1": "Завантажуйте музику зі Spotify, Deezer або вставляйте будь-яку підтримувану URL-адресу",
|
"tutorialWelcomeTip1": "Search music or paste a link from any source your installed extensions support",
|
||||||
"@tutorialWelcomeTip1": {
|
"@tutorialWelcomeTip1": {
|
||||||
"description": "Tutorial welcome tip 1"
|
"description": "Tutorial welcome tip 1"
|
||||||
},
|
},
|
||||||
@@ -4202,10 +4283,51 @@
|
|||||||
"@editMetadataAutoFill": {
|
"@editMetadataAutoFill": {
|
||||||
"description": "Section title for selective online metadata auto-fill in the edit metadata sheet"
|
"description": "Section title for selective online metadata auto-fill in the edit metadata sheet"
|
||||||
},
|
},
|
||||||
"editMetadataAutoFillDesc": "Виберіть поля для автоматичного заповнення з онлайн-метаданих",
|
"editMetadataAutoFillDesc": "Choose a metadata extension, select fields, then review its data before applying",
|
||||||
"@editMetadataAutoFillDesc": {
|
"@editMetadataAutoFillDesc": {
|
||||||
"description": "Description for the auto-fill section"
|
"description": "Description for the auto-fill section"
|
||||||
},
|
},
|
||||||
|
"editMetadataAutoFillSource": "Metadata source",
|
||||||
|
"@editMetadataAutoFillSource": {
|
||||||
|
"description": "Label for the metadata extension selector in online auto-fill"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillSourceAutomatic": "Automatic (provider priority)",
|
||||||
|
"@editMetadataAutoFillSourceAutomatic": {
|
||||||
|
"description": "Automatic source option that follows configured metadata provider priority"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillFind": "Find metadata",
|
||||||
|
"@editMetadataAutoFillFind": {
|
||||||
|
"description": "Button label for finding an online metadata candidate"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillPreview": "Data from {source}",
|
||||||
|
"@editMetadataAutoFillPreview": {
|
||||||
|
"description": "Title for the online metadata preview",
|
||||||
|
"placeholders": {
|
||||||
|
"source": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillCoverAvailable": "Cover artwork available",
|
||||||
|
"@editMetadataAutoFillCoverAvailable": {
|
||||||
|
"description": "Preview value when the selected metadata source provides cover artwork"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillApply": "Apply selected data",
|
||||||
|
"@editMetadataAutoFillApply": {
|
||||||
|
"description": "Button label for applying the previewed metadata"
|
||||||
|
},
|
||||||
|
"editMetadataAutoFillDoneFromSource": "Filled {count} {count, plural, =1{field} other{fields}} from {source}",
|
||||||
|
"@editMetadataAutoFillDoneFromSource": {
|
||||||
|
"description": "Snackbar confirming fields applied from a selected metadata source",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"editMetadataAutoFillFetch": "Отримання та заповнення",
|
"editMetadataAutoFillFetch": "Отримання та заповнення",
|
||||||
"@editMetadataAutoFillFetch": {
|
"@editMetadataAutoFillFetch": {
|
||||||
"description": "Button label to fetch online metadata and fill selected fields"
|
"description": "Button label to fetch online metadata and fill selected fields"
|
||||||
@@ -4334,6 +4456,27 @@
|
|||||||
"@queueEmptySinglesSubtitle": {
|
"@queueEmptySinglesSubtitle": {
|
||||||
"description": "Empty state subtitle for single track downloads"
|
"description": "Empty state subtitle for single track downloads"
|
||||||
},
|
},
|
||||||
|
"queuePlaylistCount": "{count, plural, =1{1 playlist} other{{count} playlists}}",
|
||||||
|
"@queuePlaylistCount": {
|
||||||
|
"description": "Playlist count label with plural support",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"queueEmptyPlaylistsSubtitle": "Create a playlist to organize your tracks",
|
||||||
|
"@queueEmptyPlaylistsSubtitle": {
|
||||||
|
"description": "Empty state subtitle for the playlists library view"
|
||||||
|
},
|
||||||
|
"libraryDefaultView": "Default view",
|
||||||
|
"@libraryDefaultView": {
|
||||||
|
"description": "Setting title - which library view opens when switching to the Library tab"
|
||||||
|
},
|
||||||
|
"libraryDefaultViewLastUsed": "Last used",
|
||||||
|
"@libraryDefaultViewLastUsed": {
|
||||||
|
"description": "Default view option - keep the last used library view"
|
||||||
|
},
|
||||||
"queueEmptyHistory": "Немає історії завантажень",
|
"queueEmptyHistory": "Немає історії завантажень",
|
||||||
"@queueEmptyHistory": {
|
"@queueEmptyHistory": {
|
||||||
"description": "Empty state title when download history is empty"
|
"description": "Empty state title when download history is empty"
|
||||||
@@ -4434,6 +4577,10 @@
|
|||||||
"@audioAnalysisSpectralCutoff": {
|
"@audioAnalysisSpectralCutoff": {
|
||||||
"description": "Estimated spectral cutoff metric label"
|
"description": "Estimated spectral cutoff metric label"
|
||||||
},
|
},
|
||||||
|
"audioAnalysisCutoffNotDetected": "Not detected",
|
||||||
|
"@audioAnalysisCutoffNotDetected": {
|
||||||
|
"description": "Displayed when no reliable broadband spectral cutoff can be detected"
|
||||||
|
},
|
||||||
"audioAnalysisChannelStats": "Per-channel Stats",
|
"audioAnalysisChannelStats": "Per-channel Stats",
|
||||||
"@audioAnalysisChannelStats": {
|
"@audioAnalysisChannelStats": {
|
||||||
"description": "Per-channel audio analysis section label"
|
"description": "Per-channel audio analysis section label"
|
||||||
@@ -4504,6 +4651,14 @@
|
|||||||
"@cancelDownloadKeep": {
|
"@cancelDownloadKeep": {
|
||||||
"description": "Dialog button - keep the active download (do not cancel)"
|
"description": "Dialog button - keep the active download (do not cancel)"
|
||||||
},
|
},
|
||||||
|
"queueCancelledTitle": "Download cancelled",
|
||||||
|
"@queueCancelledTitle": {
|
||||||
|
"description": "Dialog title when opening a cancelled queue item"
|
||||||
|
},
|
||||||
|
"queueCancelledMessage": "This download was cancelled. Retry it or remove it from the queue.",
|
||||||
|
"@queueCancelledMessage": {
|
||||||
|
"description": "Dialog body when opening a cancelled queue item"
|
||||||
|
},
|
||||||
"metadataSaveFailedFfmpeg": "Не вдалося зберегти метадані через FFmpeg",
|
"metadataSaveFailedFfmpeg": "Не вдалося зберегти метадані через FFmpeg",
|
||||||
"@metadataSaveFailedFfmpeg": {
|
"@metadataSaveFailedFfmpeg": {
|
||||||
"description": "Snackbar error when FFmpeg fails to write metadata"
|
"description": "Snackbar error when FFmpeg fails to write metadata"
|
||||||
@@ -4769,9 +4924,9 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"homeImportCsvTooltip": "Import CSV",
|
"homeImportCsvTooltip": "Import playlist (CSV, M3U)",
|
||||||
"@homeImportCsvTooltip": {
|
"@homeImportCsvTooltip": {
|
||||||
"description": "Tooltip for importing a CSV file into Home search"
|
"description": "Tooltip for importing a CSV or M3U playlist file into Home search"
|
||||||
},
|
},
|
||||||
"homeChangeSearchProviderTooltip": "Change search provider",
|
"homeChangeSearchProviderTooltip": "Change search provider",
|
||||||
"@homeChangeSearchProviderTooltip": {
|
"@homeChangeSearchProviderTooltip": {
|
||||||
@@ -4837,6 +4992,18 @@
|
|||||||
"@trackCoverReplaceNotice": {
|
"@trackCoverReplaceNotice": {
|
||||||
"description": "Notice shown when a new cover has been selected but not saved yet"
|
"description": "Notice shown when a new cover has been selected but not saved yet"
|
||||||
},
|
},
|
||||||
|
"trackCoverResolution": "Cover resolution",
|
||||||
|
"@trackCoverResolution": {
|
||||||
|
"description": "Label for selecting the embedded cover art resolution"
|
||||||
|
},
|
||||||
|
"trackCoverResolutionHint": "Sets the longest edge when saved. Enlarging does not add image detail.",
|
||||||
|
"@trackCoverResolutionHint": {
|
||||||
|
"description": "Explanation below the embedded cover art resolution selector"
|
||||||
|
},
|
||||||
|
"trackCoverResizeFailed": "The cover image could not be resized. Please try another size or image.",
|
||||||
|
"@trackCoverResizeFailed": {
|
||||||
|
"description": "Error shown when resizing cover art before saving metadata fails"
|
||||||
|
},
|
||||||
"actionStop": "Stop",
|
"actionStop": "Stop",
|
||||||
"@actionStop": {
|
"@actionStop": {
|
||||||
"description": "Generic action - stop"
|
"description": "Generic action - stop"
|
||||||
@@ -4845,6 +5012,55 @@
|
|||||||
"@queueFinalizingDownload": {
|
"@queueFinalizingDownload": {
|
||||||
"description": "Accessibility label for a queue item that is finalizing"
|
"description": "Accessibility label for a queue item that is finalizing"
|
||||||
},
|
},
|
||||||
|
"queueDownloadNext": "Download next",
|
||||||
|
"@queueDownloadNext": {
|
||||||
|
"description": "Tooltip on a queued download row; moves the item to the front of the queue so the next free slot downloads it"
|
||||||
|
},
|
||||||
|
"queueMoveUp": "Move up",
|
||||||
|
"@queueMoveUp": {
|
||||||
|
"description": "Queue item menu action - move the queued item one position earlier"
|
||||||
|
},
|
||||||
|
"queueMoveDown": "Move down",
|
||||||
|
"@queueMoveDown": {
|
||||||
|
"description": "Queue item menu action - move the queued item one position later"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzButton": "Fetch from MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzButton": {
|
||||||
|
"description": "Tag editor button that fills genre and album artist from MusicBrainz by ISRC"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzFilled": "Updated from MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzFilled": {
|
||||||
|
"description": "Snackbar after MusicBrainz suggestions were applied to the tag editor fields"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzNothing": "Nothing found on MusicBrainz",
|
||||||
|
"@editMetadataMusicBrainzNothing": {
|
||||||
|
"description": "Snackbar when the MusicBrainz lookup returns no data"
|
||||||
|
},
|
||||||
|
"editMetadataMusicBrainzNeedsIsrc": "Requires an ISRC tag",
|
||||||
|
"@editMetadataMusicBrainzNeedsIsrc": {
|
||||||
|
"description": "Snackbar when the MusicBrainz lookup is tapped without an ISRC"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatOff": "Repeat off",
|
||||||
|
"@nowPlayingRepeatOff": {
|
||||||
|
"description": "Repeat toggle tooltip when repeat is disabled"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatAll": "Repeat all",
|
||||||
|
"@nowPlayingRepeatAll": {
|
||||||
|
"description": "Repeat toggle tooltip when the whole queue repeats"
|
||||||
|
},
|
||||||
|
"nowPlayingRepeatOne": "Repeat one",
|
||||||
|
"@nowPlayingRepeatOne": {
|
||||||
|
"description": "Repeat toggle tooltip when the current track repeats"
|
||||||
|
},
|
||||||
|
"queueNetworkFailedOffline": "{count} downloads failed while offline",
|
||||||
|
"@queueNetworkFailedOffline": {
|
||||||
|
"description": "Snackbar shown when connectivity returns and network-failed downloads can be retried",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"queueDownloadedFileMissing": "Downloaded file missing",
|
"queueDownloadedFileMissing": "Downloaded file missing",
|
||||||
"@queueDownloadedFileMissing": {
|
"@queueDownloadedFileMissing": {
|
||||||
"description": "Accessibility label when a downloaded file is missing from disk"
|
"description": "Accessibility label when a downloaded file is missing from disk"
|
||||||
@@ -5120,7 +5336,7 @@
|
|||||||
"@downloadQualityVariants": {
|
"@downloadQualityVariants": {
|
||||||
"description": "Setting to retain multiple quality versions of the same track"
|
"description": "Setting to retain multiple quality versions of the same track"
|
||||||
},
|
},
|
||||||
"downloadQualityVariantsDescription": "Add the selected quality to the filename and keep each version in download history",
|
"downloadQualityVariantsDescription": "Keep every quality version; add its measured quality to the filename only when the name is already used",
|
||||||
"@downloadQualityVariantsDescription": {
|
"@downloadQualityVariantsDescription": {
|
||||||
"description": "Description for retaining multiple quality versions"
|
"description": "Description for retaining multiple quality versions"
|
||||||
},
|
},
|
||||||
@@ -5176,6 +5392,10 @@
|
|||||||
"@libraryFilterMetadataIncorrectIsrcFormat": {
|
"@libraryFilterMetadataIncorrectIsrcFormat": {
|
||||||
"description": "Filter option - items with an invalid ISRC format"
|
"description": "Filter option - items with an invalid ISRC format"
|
||||||
},
|
},
|
||||||
|
"libraryFilterMetadataMissingIsrc": "Missing ISRC",
|
||||||
|
"@libraryFilterMetadataMissingIsrc": {
|
||||||
|
"description": "Filter option - items without any ISRC tag"
|
||||||
|
},
|
||||||
"libraryFilterMetadataMissingLabel": "Missing label",
|
"libraryFilterMetadataMissingLabel": "Missing label",
|
||||||
"@libraryFilterMetadataMissingLabel": {
|
"@libraryFilterMetadataMissingLabel": {
|
||||||
"description": "Filter option - items missing record label"
|
"description": "Filter option - items missing record label"
|
||||||
@@ -5365,10 +5585,6 @@
|
|||||||
"@downloadNativeWorkerSubtitle": {
|
"@downloadNativeWorkerSubtitle": {
|
||||||
"description": "Setting subtitle for Android native download worker"
|
"description": "Setting subtitle for Android native download worker"
|
||||||
},
|
},
|
||||||
"badgeBeta": "BETA",
|
|
||||||
"@badgeBeta": {
|
|
||||||
"description": "Badge label for beta features"
|
|
||||||
},
|
|
||||||
"extensionServiceStatus": "Service Status",
|
"extensionServiceStatus": "Service Status",
|
||||||
"@extensionServiceStatus": {
|
"@extensionServiceStatus": {
|
||||||
"description": "Extension detail section header for service status"
|
"description": "Extension detail section header for service status"
|
||||||
@@ -6022,5 +6238,38 @@
|
|||||||
"extensionVerificationOpenBrowser": "Open browser",
|
"extensionVerificationOpenBrowser": "Open browser",
|
||||||
"@extensionVerificationOpenBrowser": {
|
"@extensionVerificationOpenBrowser": {
|
||||||
"description": "Button to open the extension verification URL in a browser"
|
"description": "Button to open the extension verification URL in a browser"
|
||||||
|
},
|
||||||
|
"settingsSearchHint": "Search settings",
|
||||||
|
"@settingsSearchHint": {
|
||||||
|
"description": "Placeholder of the search field on the Settings tab"
|
||||||
|
},
|
||||||
|
"settingsSearchNoResults": "No settings match \"{query}\"",
|
||||||
|
"@settingsSearchNoResults": {
|
||||||
|
"description": "Shown when a Settings search returns nothing",
|
||||||
|
"placeholders": {
|
||||||
|
"query": {
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"settingsGroupInterface": "Extensions & appearance",
|
||||||
|
"@settingsGroupInterface": {
|
||||||
|
"description": "Settings group covering look and feel"
|
||||||
|
},
|
||||||
|
"settingsGroupContent": "Content & metadata",
|
||||||
|
"@settingsGroupContent": {
|
||||||
|
"description": "Settings group covering the library, metadata and lyrics"
|
||||||
|
},
|
||||||
|
"settingsGroupDownloads": "Downloads & files",
|
||||||
|
"@settingsGroupDownloads": {
|
||||||
|
"description": "Settings group covering download behaviour and storage"
|
||||||
|
},
|
||||||
|
"settingsGroupSystem": "System",
|
||||||
|
"@settingsGroupSystem": {
|
||||||
|
"description": "Settings group covering app-level data, cache and logs"
|
||||||
|
},
|
||||||
|
"settingsGroupHelp": "About & support",
|
||||||
|
"@settingsGroupHelp": {
|
||||||
|
"description": "Settings group covering the about page and donations"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user