mirror of
https://github.com/zarzet/SpotiFLAC-Mobile.git
synced 2026-10-20 14:37:33 +02:00
chore(l10n): merge Crowdin translation updates from PR #551
Integrate 16 locale updates from 9c32784be4 while preserving translations for newer local features. Resolve duplicate entries, regional locale IDs, placeholder mismatches, and introduced plural conflicts.
Validation: Flutter gen-l10n, flutter analyze lib/l10n, ARB key and placeholder audit, and git diff --check.
This commit is contained in:
1 parent
8251c16ca0
commit
61410f29fb
16 files changed
+5348
-2031
No files matched your search
@@ -1,4 +1,31 @@
|
||||
{
|
||||
"settingsPlaybackSubtitle": "Player, volume, AutoMix, and audio output",
|
||||
"sectionPlayer": "Player",
|
||||
"sectionVolumeAndTransitions": "Volume and transitions",
|
||||
"sectionAudioOutput": "Audio output",
|
||||
"usbBitPerfect": "Hi-res and bit-perfect audio",
|
||||
"usbBitPerfectDescription": "Preserve source precision on compatible outputs. Choose direct USB or AAudio exclusive below; otherwise Android USB output requires Android 14 or later. Applies from the next track, without AutoMix or normalization. System volume may not control direct USB.",
|
||||
"usbHardwareVolume": "DAC hardware volume",
|
||||
"usbVolumeWarningTitle": "Check your listening volume",
|
||||
"usbVolumeWarning": "Direct USB audio can be much louder than normal playback, and phone volume buttons may not control it. Lower your DAC or amplifier volume before starting. When supported, SpotiFLAC sets the DAC to at most −40 dB on connection; this does not guarantee a safe listening level on every amplifier or headphone.",
|
||||
"usbVolumeAccept": "I understand",
|
||||
"usbVolumeUnavailable": "Playback is paused because this DAC has no verified hardware volume control. Lower the DAC or amplifier volume, then enable fixed-volume output if needed and select the track again.",
|
||||
"usbFixedVolume": "Allow fixed-volume USB output",
|
||||
"usbFixedVolumeDescription": "For DACs without a volume control accessible to the app. Keep off for USB headsets without their own volume control. Applies from the next track.",
|
||||
"usbFixedVolumeWarning": "The app cannot lower the volume on this output. Audio may start at full level, and the phone volume slider will not help. Only continue after lowering the volume on your DAC or external amplifier. Do not enable this for a headset without its own volume control.",
|
||||
"dapExclusive": "DAP hi-res (AAudio exclusive)",
|
||||
"dapExclusiveDescription": "Use Oboe/AAudio at the track's original rate and precision for FLAC/WAV PCM. Requires Android 8.1 or later and compatible hardware. Exclusive access is checked; unavailable formats use normal playback. DSD requires the direct USB driver. Applies from the next track.",
|
||||
"dapExclusiveUnavailable": "AAudio exclusive access is unavailable for this track and current output. Using normal playback. For a USB DAC, try the direct USB driver.",
|
||||
"usbDirect": "Direct USB driver",
|
||||
"usbDirectDescription": "Use exclusive USB audio for FLAC/WAV, DSF/DFF and WavPack DSD, with Android USB permission. Native DSD requires a recognized compatible DAC. Other PCM formats use normal playback. Applies from the next track.",
|
||||
"usbDsdOverPcm": "DSD over PCM (DoP)",
|
||||
"usbDsdOverPcmDescription": "Enable only if your DAC explicitly supports DoP. Sends DSF/DFF and WavPack DSD inside a PCM carrier when native DSD is unavailable. An incompatible device may play noise; leave off for ordinary USB headsets.",
|
||||
"usbDsdUnsupported": "This DSD format or connected DAC is not supported. Playback stopped.",
|
||||
"usbPermissionDenied": "USB permission was not granted. Using normal playback.",
|
||||
"usbBitPerfectPending": "Waiting for the next track and a compatible USB output.",
|
||||
"usbBitPerfectNoDevice": "No USB DAC connected. Using normal audio output.",
|
||||
"usbBitPerfectFallback": "This device or audio format does not support bit-perfect output. Using normal playback.",
|
||||
"usbBitPerfectRouteChanged": "The USB audio route changed. Playback paused; select a track to reconnect.",
|
||||
"upgradeIntroWelcome": "Welcome to\nSpotiFLAC-Mobile 5.0",
|
||||
"upgradeIntroThemeTitle": "Make it\nyour own.",
|
||||
"upgradeIntroThemeBody": "Choose a look. Your choice applies immediately, and you can change it later in Appearance.",
|
||||
@@ -36,6 +63,32 @@
|
||||
"description": "System volume control label in the Mornye player"
|
||||
},
|
||||
"appearanceStyle": "App Style",
|
||||
"appearanceAccentRed": "Red (default)",
|
||||
"appearanceAccentOrange": "Orange",
|
||||
"appearanceAccentGreen": "Green",
|
||||
"appearanceAccentTeal": "Teal",
|
||||
"appearanceAccentBlue": "Blue",
|
||||
"appearanceAccentPurple": "Purple",
|
||||
"appearanceAccentPink": "Pink",
|
||||
"appearanceGlassClarity": "Glass clarity",
|
||||
"appearanceGlassClaritySubtitle": "Adjust transparency in Mornye menus and navigation. Text contrast is preserved.",
|
||||
"appearanceGlassTinted": "Tinted",
|
||||
"appearanceGlassClear": "Clear",
|
||||
"appearanceGlassClarityBlurOff": "Glass is opaque on this device. Turn on “{setting}” to adjust clarity.",
|
||||
"@appearanceGlassClarityBlurOff": {
|
||||
"description": "Shown under the disabled glass clarity slider when the device renders Mornye glass without blur. The placeholder is the name of the force-blur toggle.",
|
||||
"placeholders": {
|
||||
"setting": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appearanceGlassClarityHighContrast": "Glass stays opaque while the system’s high contrast setting is on.",
|
||||
"@appearanceGlassClarityHighContrast": {
|
||||
"description": "Shown under the disabled glass clarity slider while the OS high contrast accessibility setting is on"
|
||||
},
|
||||
"appearanceUseSystemFont": "Use system font",
|
||||
"appearanceUseSystemFontSubtitle": "Use your device’s default typeface for app text.",
|
||||
"@appearanceStyle": {
|
||||
"description": "Appearance section for choosing the app visual style"
|
||||
},
|
||||
@@ -255,6 +308,38 @@
|
||||
"@trackReplayGainFailed": {
|
||||
"description": "Snackbar message when ReplayGain scan/write fails"
|
||||
},
|
||||
"trackRemoveReplayGain": "Remove ReplayGain",
|
||||
"trackRemoveReplayGainSuccess": "ReplayGain tags removed",
|
||||
"trackRemoveReplayGainFailed": "Failed to remove ReplayGain tags",
|
||||
"replayGainRemoving": "Removing ReplayGain...",
|
||||
"replayGainRemoveConfirmMessage": "Remove track and album ReplayGain tags from {count} track(s)? Audio, artwork, and other metadata will be preserved.",
|
||||
"@replayGainRemoveConfirmMessage": {
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionRemoveReplayGainCount": "Remove RG ({count})",
|
||||
"@selectionRemoveReplayGainCount": {
|
||||
"description": "Compact selection action label. RG abbreviates ReplayGain; keep this short for a two-column toolbar.",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"replayGainRemoveBatchSuccess": "ReplayGain removed from {success} of {total} tracks",
|
||||
"@replayGainRemoveBatchSuccess": {
|
||||
"placeholders": {
|
||||
"success": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionReplayGainCount": "ٌReplyGain ({count})",
|
||||
"@selectionReplayGainCount": {
|
||||
"description": "Batch selection action button label for ReplayGain",
|
||||
@@ -318,6 +403,14 @@
|
||||
"@optionsArtistTagModeSplitVorbisSubtitle": {
|
||||
"description": "Subtitle for split Vorbis artist tag mode"
|
||||
},
|
||||
"optionsArtistTagModePrimary": "Primary artist only",
|
||||
"@optionsArtistTagModePrimary": {
|
||||
"description": "Artist tag mode option that writes only the first credited artist"
|
||||
},
|
||||
"optionsArtistTagModePrimarySubtitle": "Write only the first artist, like \"Artist A\", to Artist and Album Artist in every format, so players list one artist.",
|
||||
"@optionsArtistTagModePrimarySubtitle": {
|
||||
"description": "Subtitle for the primary-artist tag mode. Applies when downloading and re-enriching; manual edits keep what the user typed."
|
||||
},
|
||||
"optionsExtensionStore": "مستودع الإضافات",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide repo tab"
|
||||
@@ -1476,6 +1569,8 @@
|
||||
"@sectionLyrics": {
|
||||
"description": "Settings section header"
|
||||
},
|
||||
"lyricsKeepScreenOn": "Keep screen on while viewing lyrics",
|
||||
"lyricsKeepScreenOnSubtitle": "Prevent screen timeout while lyrics are open, including when playback is paused.",
|
||||
"lyricsMode": "وضع كلمات الأغنية",
|
||||
"@lyricsMode": {
|
||||
"description": "Setting - how to save lyrics"
|
||||
@@ -2757,6 +2852,10 @@
|
||||
"@libraryScanFinalizing": {
|
||||
"description": "Status shown after file scanning finishes but library persistence is still running"
|
||||
},
|
||||
"libraryScanPaused": "Scan paused",
|
||||
"@libraryScanPaused": {
|
||||
"description": "Status shown while a library scan is paused by the user"
|
||||
},
|
||||
"libraryScanProgress": "{progress}% من ملفات {total}",
|
||||
"@libraryScanProgress": {
|
||||
"description": "Scan progress display",
|
||||
@@ -4910,6 +5009,61 @@
|
||||
"@hiResCheckTitle": {
|
||||
"description": "Title of the fake Hi-Res check card"
|
||||
},
|
||||
"hiResCheckSummary": "Inspect the spectrum and active bit depth for signs of upsampling or padding.",
|
||||
"@hiResCheckSummary": {
|
||||
"description": "Introductory text for the sampled Hi-Res analysis"
|
||||
},
|
||||
"hiResCheckLimitedBandwidth": "Limited bandwidth",
|
||||
"@hiResCheckLimitedBandwidth": {
|
||||
"description": "Neutral finding: a limited spectrum alone does not prove upsampling"
|
||||
},
|
||||
"hiResCheckNoEvidence": "No upsampling or padding detected",
|
||||
"@hiResCheckNoEvidence": {
|
||||
"description": "No evidence was detected; this does not certify the master"
|
||||
},
|
||||
"hiResCheckEstimatedCutoff": "Estimated cutoff",
|
||||
"@hiResCheckEstimatedCutoff": {
|
||||
"description": "Estimated upper spectral edge at the analysis threshold"
|
||||
},
|
||||
"hiResCheckActiveBits": "Active / stored bits",
|
||||
"@hiResCheckActiveBits": {
|
||||
"description": "Active integer bit depth versus the container depth in the sampled segment"
|
||||
},
|
||||
"hiResCheckBandwidthExplanation": "A lower cutoff can come from mastering. It does not, by itself, prove upsampling.",
|
||||
"@hiResCheckBandwidthExplanation": {
|
||||
"description": "Explains why the limited-bandwidth finding is neutral"
|
||||
},
|
||||
"hiResCheckSampledExplanation": "Based on {seconds} seconds of audio. This analysis cannot certify the original master.",
|
||||
"@hiResCheckSampledExplanation": {
|
||||
"description": "Limits of the sampled Hi-Res analysis; seconds is a formatted duration",
|
||||
"placeholders": {
|
||||
"seconds": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckImagingEvidence": "The spectrum contains mirrored bands consistent with upsampling.",
|
||||
"@hiResCheckImagingEvidence": {
|
||||
"description": "Spectral imaging is suggestive evidence rather than proof"
|
||||
},
|
||||
"hiResCheckRateEvidence": "A sharp roll-off near {cutoff} and the measured noise floor suggest a lower-rate source.",
|
||||
"@hiResCheckRateEvidence": {
|
||||
"description": "Heuristic evidence from both a brickwall and a 16-bit-like noise floor",
|
||||
"placeholders": {
|
||||
"cutoff": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckSteadyEnergy": "Energy above {cutoff} is mostly steady in the analyzed segment and may be noise.",
|
||||
"@hiResCheckSteadyEnergy": {
|
||||
"description": "An observation about ultrasonic energy, not proof that removing it is safe",
|
||||
"placeholders": {
|
||||
"cutoff": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckDescription": "Detect upsampled or bit-padded fake Hi-Res files",
|
||||
"@hiResCheckDescription": {
|
||||
"description": "Explains what the Hi-Res authenticity check does"
|
||||
@@ -5256,6 +5410,19 @@
|
||||
"@notifLibraryScanStopped": {
|
||||
"description": "Notification body when library scan is cancelled"
|
||||
},
|
||||
"notifLibraryScanPaused": "Library scan paused",
|
||||
"@notifLibraryScanPaused": {
|
||||
"description": "Notification title when the user pauses a library scan"
|
||||
},
|
||||
"notifLibraryScanPausedBody": "{count} files scanned. Resume in Local Library settings to continue from here.",
|
||||
"@notifLibraryScanPausedBody": {
|
||||
"description": "Notification body for a paused library scan - files scanned so far",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"notifDownloadingUpdate": "Downloading SpotiFLAC Mobile v{version}",
|
||||
"@notifDownloadingUpdate": {
|
||||
"description": "Notification title while downloading an app update",
|
||||
@@ -6287,6 +6454,31 @@
|
||||
"description": "Tooltip for minimizing the now playing screen"
|
||||
},
|
||||
"nowPlayingUpNext": "Up next",
|
||||
"nowPlayingAudioOutput": "Audio Output",
|
||||
"nowPlayingWrittenBy": "Written by: {writers}",
|
||||
"@nowPlayingWrittenBy": {
|
||||
"placeholders": {
|
||||
"writers": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"nowPlayingLyricsProvider": "Lyrics: {provider}",
|
||||
"@nowPlayingLyricsProvider": {
|
||||
"placeholders": {
|
||||
"provider": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"concertGetTickets": "Get Tickets",
|
||||
"concertSetList": "Concert Set List",
|
||||
"concertSetListButton": "Set List",
|
||||
"concertAddToCalendar": "Add to Calendar",
|
||||
"concertOpenMaps": "Open Maps",
|
||||
"concertDetailsUnavailable": "Concert details are currently unavailable.",
|
||||
"concertCalendarUnavailable": "Unable to open the calendar.",
|
||||
"nowPlayingAudioOutputUnavailable": "Unable to open audio output settings.",
|
||||
"@nowPlayingUpNext": {
|
||||
"description": "Title for the playback queue sheet"
|
||||
},
|
||||
@@ -6354,6 +6546,18 @@
|
||||
"description": "Tab label for the lyrics view"
|
||||
},
|
||||
"nowPlayingNoLyrics": "No lyrics in this file",
|
||||
"nowPlayingInstrumental": "Instrumental",
|
||||
"@nowPlayingInstrumental": {
|
||||
"description": "Accessibility label for the three-dot countdown during an instrumental break before lyrics resume"
|
||||
},
|
||||
"nowPlayingLyricsLanguageOptions": "Lyrics language options",
|
||||
"@nowPlayingLyricsLanguageOptions": {
|
||||
"description": "Tooltip for the player menu that shows or hides existing lyric pronunciation and translation"
|
||||
},
|
||||
"nowPlayingHidePronunciation": "Hide Pronunciation",
|
||||
"nowPlayingShowPronunciation": "Show Pronunciation",
|
||||
"nowPlayingHideTranslation": "Hide Translation",
|
||||
"nowPlayingShowTranslation": "Show Translation",
|
||||
"@nowPlayingNoLyrics": {
|
||||
"description": "Empty state when the playing file has no embedded lyrics"
|
||||
},
|
||||
@@ -6761,6 +6965,10 @@
|
||||
"@libraryFilterMetadataMissingLyrics": {
|
||||
"description": "Filter option for tracks without embedded or sidecar lyrics"
|
||||
},
|
||||
"libraryFilterMetadataMissingReplayGain": "Missing ReplayGain",
|
||||
"@libraryFilterMetadataMissingReplayGain": {
|
||||
"description": "Filter option for scanned tracks without ReplayGain gain tags"
|
||||
},
|
||||
"trackOptionCopyTrackName": "Copy track name",
|
||||
"@trackOptionCopyTrackName": {
|
||||
"description": "Track menu action that copies the track title"
|
||||
@@ -6808,6 +7016,9 @@
|
||||
"autoMixDescription": "Blend songs with beat matching and pitch-preserving tempo adjustment. Uses crossfade when beats cannot be matched.",
|
||||
"autoMixOn": "AutoMix on",
|
||||
"autoMixOff": "AutoMix off",
|
||||
"autoplayOn": "Autoplay on",
|
||||
"autoplayOff": "Autoplay off",
|
||||
"autoplayFromLibrary": "Autoplay from your Library",
|
||||
"profileTitle": "Profile",
|
||||
"profileSetUp": "Set up your profile",
|
||||
"profileEdit": "Edit name and photo",
|
||||
@@ -6818,6 +7029,9 @@
|
||||
"profileRemovePhoto": "Remove photo",
|
||||
"profilePhotoError": "Choose a valid image smaller than 20 MB.",
|
||||
"profileSaveError": "Could not save your profile. Please try again.",
|
||||
"artistUpcomingConcerts": "Upcoming Concerts",
|
||||
"artistAllUpcomingConcerts": "All Upcoming Concerts",
|
||||
"artistNoUpcomingConcerts": "No upcoming concerts.",
|
||||
"optionsEmbeddedCoverSizeOriginal": "Original resolution",
|
||||
"@optionsEmbeddedCoverSizeOriginal": {
|
||||
"description": "Option that preserves the provider artwork at its original resolution"
|
||||
|
||||
+302
-88
@@ -1,4 +1,31 @@
|
||||
{
|
||||
"settingsPlaybackSubtitle": "Player, volume, AutoMix, and audio output",
|
||||
"sectionPlayer": "Player",
|
||||
"sectionVolumeAndTransitions": "Volume and transitions",
|
||||
"sectionAudioOutput": "Audio-Output",
|
||||
"usbBitPerfect": "Hi-res and bit-perfect audio",
|
||||
"usbBitPerfectDescription": "Preserve source precision on compatible outputs. Choose direct USB or AAudio exclusive below; otherwise Android USB output requires Android 14 or later. Applies from the next track, without AutoMix or normalization. System volume may not control direct USB.",
|
||||
"usbHardwareVolume": "DAC hardware volume",
|
||||
"usbVolumeWarningTitle": "Check your listening volume",
|
||||
"usbVolumeWarning": "Direct USB audio can be much louder than normal playback, and phone volume buttons may not control it. Lower your DAC or amplifier volume before starting. When supported, SpotiFLAC sets the DAC to at most −40 dB on connection; this does not guarantee a safe listening level on every amplifier or headphone.",
|
||||
"usbVolumeAccept": "Verstanden",
|
||||
"usbVolumeUnavailable": "Playback is paused because this DAC has no verified hardware volume control. Lower the DAC or amplifier volume, then enable fixed-volume output if needed and select the track again.",
|
||||
"usbFixedVolume": "Allow fixed-volume USB output",
|
||||
"usbFixedVolumeDescription": "For DACs without a volume control accessible to the app. Keep off for USB headsets without their own volume control. Applies from the next track.",
|
||||
"usbFixedVolumeWarning": "The app cannot lower the volume on this output. Audio may start at full level, and the phone volume slider will not help. Only continue after lowering the volume on your DAC or external amplifier. Do not enable this for a headset without its own volume control.",
|
||||
"dapExclusive": "DAP hi-res (AAudio exclusive)",
|
||||
"dapExclusiveDescription": "Use Oboe/AAudio at the track's original rate and precision for FLAC/WAV PCM. Requires Android 8.1 or later and compatible hardware. Exclusive access is checked; unavailable formats use normal playback. DSD requires the direct USB driver. Applies from the next track.",
|
||||
"dapExclusiveUnavailable": "AAudio exclusive access is unavailable for this track and current output. Using normal playback. For a USB DAC, try the direct USB driver.",
|
||||
"usbDirect": "Direct USB driver",
|
||||
"usbDirectDescription": "Use exclusive USB audio for FLAC/WAV, DSF/DFF and WavPack DSD, with Android USB permission. Native DSD requires a recognized compatible DAC. Other PCM formats use normal playback. Applies from the next track.",
|
||||
"usbDsdOverPcm": "DSD over PCM (DoP)",
|
||||
"usbDsdOverPcmDescription": "Enable only if your DAC explicitly supports DoP. Sends DSF/DFF and WavPack DSD inside a PCM carrier when native DSD is unavailable. An incompatible device may play noise; leave off for ordinary USB headsets.",
|
||||
"usbDsdUnsupported": "This DSD format or connected DAC is not supported. Playback stopped.",
|
||||
"usbPermissionDenied": "USB permission was not granted. Using normal playback.",
|
||||
"usbBitPerfectPending": "Waiting for the next track and a compatible USB output.",
|
||||
"usbBitPerfectNoDevice": "No USB DAC connected. Using normal audio output.",
|
||||
"usbBitPerfectFallback": "This device or audio format does not support bit-perfect output. Using normal playback.",
|
||||
"usbBitPerfectRouteChanged": "The USB audio route changed. Playback paused; select a track to reconnect.",
|
||||
"upgradeIntroWelcome": "Welcome to\nSpotiFLAC-Mobile 5.0",
|
||||
"upgradeIntroThemeTitle": "Make it\nyour own.",
|
||||
"upgradeIntroThemeBody": "Choose a look. Your choice applies immediately, and you can change it later in Appearance.",
|
||||
@@ -25,17 +52,43 @@
|
||||
"upgradeIntroAppearanceBody": "Change themes in Settings → Appearance. In Mornye, scroll down for compact navigation; scroll up to expand it.",
|
||||
"upgradeIntroAutoMixBody": "Match tempo and beats between tracks. Enable it in Settings → Local Library → Playback. Off by default.",
|
||||
"upgradeIntroSettingsBody": "In Mornye, tap your profile on Home to open Settings and edit your name and photo.",
|
||||
"upgradeIntroSkip": "Skip",
|
||||
"upgradeIntroContinue": "Continue",
|
||||
"upgradeIntroSkip": "Überspringen",
|
||||
"upgradeIntroContinue": "Fortfahren",
|
||||
"upgradeIntroDone": "Start listening",
|
||||
"upgradeIntroReplay": "What’s new in 5.0",
|
||||
"upgradeIntroReplay": "Was ist in 5.0 neu",
|
||||
"cacheMotionArtwork": "Offline motion covers",
|
||||
"cacheMotionArtworkDesc": "Album videos saved with downloads. Removing them keeps your music files and static covers.",
|
||||
"nowPlayingVolume": "Volume",
|
||||
"nowPlayingVolume": "Lautstärke",
|
||||
"@nowPlayingVolume": {
|
||||
"description": "System volume control label in the Mornye player"
|
||||
},
|
||||
"appearanceStyle": "App Style",
|
||||
"appearanceStyle": "App-Stil",
|
||||
"appearanceAccentRed": "Rot (Standard)",
|
||||
"appearanceAccentOrange": "Orange",
|
||||
"appearanceAccentGreen": "Grün",
|
||||
"appearanceAccentTeal": "Türkis",
|
||||
"appearanceAccentBlue": "Blau",
|
||||
"appearanceAccentPurple": "Lila",
|
||||
"appearanceAccentPink": "Pink",
|
||||
"appearanceGlassClarity": "Glastransparenz",
|
||||
"appearanceGlassClaritySubtitle": "Adjust transparency in Mornye menus and navigation. Text contrast is preserved.",
|
||||
"appearanceGlassTinted": "Eingefärbt",
|
||||
"appearanceGlassClear": "klar",
|
||||
"appearanceGlassClarityBlurOff": "Glass is opaque on this device. Turn on “{setting}” to adjust clarity.",
|
||||
"@appearanceGlassClarityBlurOff": {
|
||||
"description": "Shown under the disabled glass clarity slider when the device renders Mornye glass without blur. The placeholder is the name of the force-blur toggle.",
|
||||
"placeholders": {
|
||||
"setting": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appearanceGlassClarityHighContrast": "Glass stays opaque while the system’s high contrast setting is on.",
|
||||
"@appearanceGlassClarityHighContrast": {
|
||||
"description": "Shown under the disabled glass clarity slider while the OS high contrast accessibility setting is on"
|
||||
},
|
||||
"appearanceUseSystemFont": "Use system font",
|
||||
"appearanceUseSystemFontSubtitle": "Use your device’s default typeface for app text.",
|
||||
"@appearanceStyle": {
|
||||
"description": "Appearance section for choosing the app visual style"
|
||||
},
|
||||
@@ -97,7 +150,7 @@
|
||||
"@historyFilterSingles": {
|
||||
"description": "Filter chip - show singles only"
|
||||
},
|
||||
"libraryRecentlyAdded": "Recently Added",
|
||||
"libraryRecentlyAdded": "Zuletzt hinzugefügt",
|
||||
"libraryDownloads": "Downloads",
|
||||
"libraryNoActiveDownloads": "No active downloads",
|
||||
"librarySearchHint": "Search your library",
|
||||
@@ -239,7 +292,7 @@
|
||||
"@optionsReplayGainSubtitleOff": {
|
||||
"description": "Subtitle when ReplayGain is disabled"
|
||||
},
|
||||
"trackReplayGain": "Rescan ReplayGain",
|
||||
"trackReplayGain": "ReplayGain neu scannen",
|
||||
"@trackReplayGain": {
|
||||
"description": "Three-dot menu option to scan loudness and write ReplayGain tags"
|
||||
},
|
||||
@@ -255,6 +308,38 @@
|
||||
"@trackReplayGainFailed": {
|
||||
"description": "Snackbar message when ReplayGain scan/write fails"
|
||||
},
|
||||
"trackRemoveReplayGain": "ReplayGain entfernen",
|
||||
"trackRemoveReplayGainSuccess": "ReplayGain tags removed",
|
||||
"trackRemoveReplayGainFailed": "Failed to remove ReplayGain tags",
|
||||
"replayGainRemoving": "Removing ReplayGain...",
|
||||
"replayGainRemoveConfirmMessage": "Remove track and album ReplayGain tags from {count} track(s)? Audio, artwork, and other metadata will be preserved.",
|
||||
"@replayGainRemoveConfirmMessage": {
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionRemoveReplayGainCount": "Remove RG ({count})",
|
||||
"@selectionRemoveReplayGainCount": {
|
||||
"description": "Compact selection action label. RG abbreviates ReplayGain; keep this short for a two-column toolbar.",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"replayGainRemoveBatchSuccess": "ReplayGain removed from {success} of {total} tracks",
|
||||
"@replayGainRemoveBatchSuccess": {
|
||||
"placeholders": {
|
||||
"success": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionReplayGainCount": "ReplayGain ({count})",
|
||||
"@selectionReplayGainCount": {
|
||||
"description": "Batch selection action button label for ReplayGain",
|
||||
@@ -264,7 +349,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"replayGainBatchConfirmTitle": "Add ReplayGain",
|
||||
"replayGainBatchConfirmTitle": "ReplayGain hinzufügen",
|
||||
"@replayGainBatchConfirmTitle": {
|
||||
"description": "Title of the batch ReplayGain confirmation dialog"
|
||||
},
|
||||
@@ -306,7 +391,7 @@
|
||||
"@optionsArtistTagModeJoined": {
|
||||
"description": "Artist tag mode option that joins multiple artists into one value"
|
||||
},
|
||||
"optionsArtistTagModeJoinedSubtitle": "Einen Künstler wert wie \"Artist A, Artist B\" für maximale Spieler-Kompatibilität schreiben.",
|
||||
"optionsArtistTagModeJoinedSubtitle": "Einen Künstler wert wie \"Artist A, Artist B\" für maximale Player-Kompatibilität schreiben.",
|
||||
"@optionsArtistTagModeJoinedSubtitle": {
|
||||
"description": "Subtitle for joined artist tag mode"
|
||||
},
|
||||
@@ -318,6 +403,14 @@
|
||||
"@optionsArtistTagModeSplitVorbisSubtitle": {
|
||||
"description": "Subtitle for split Vorbis artist tag mode"
|
||||
},
|
||||
"optionsArtistTagModePrimary": "Primary artist only",
|
||||
"@optionsArtistTagModePrimary": {
|
||||
"description": "Artist tag mode option that writes only the first credited artist"
|
||||
},
|
||||
"optionsArtistTagModePrimarySubtitle": "Write only the first artist, like \"Artist A\", to Artist and Album Artist in every format, so players list one artist.",
|
||||
"@optionsArtistTagModePrimarySubtitle": {
|
||||
"description": "Subtitle for the primary-artist tag mode. Applies when downloading and re-enriching; manual edits keep what the user typed."
|
||||
},
|
||||
"optionsExtensionStore": "Erweiterungs-Repo",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide repo tab"
|
||||
@@ -848,7 +941,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionExportM3u": "Export as M3U8",
|
||||
"collectionExportM3u": "Als M3U8 exportieren",
|
||||
"@collectionExportM3u": {
|
||||
"description": "Tooltip on the collection screen action that exports the track list as an M3U8 playlist file"
|
||||
},
|
||||
@@ -868,11 +961,11 @@
|
||||
"@collectionExportM3uNone": {
|
||||
"description": "Snackbar when an M3U8 export finds no local files"
|
||||
},
|
||||
"collectionExportM3uFailed": "Export failed",
|
||||
"collectionExportM3uFailed": "Export fehlgeschlagen",
|
||||
"@collectionExportM3uFailed": {
|
||||
"description": "Snackbar when writing or sharing the M3U8 export fails"
|
||||
},
|
||||
"trackOpenOn": "Open on...",
|
||||
"trackOpenOn": "Öffnen in…",
|
||||
"@trackOpenOn": {
|
||||
"description": "Track option and sheet title listing streaming platforms where the track can be opened"
|
||||
},
|
||||
@@ -888,7 +981,7 @@
|
||||
"@libraryReviewDuplicatesSubtitle": {
|
||||
"description": "Subtitle for the duplicate review settings row"
|
||||
},
|
||||
"duplicatesTitle": "Duplicates",
|
||||
"duplicatesTitle": "Duplikate",
|
||||
"@duplicatesTitle": {
|
||||
"description": "Title of the duplicate review sheet"
|
||||
},
|
||||
@@ -896,7 +989,7 @@
|
||||
"@duplicatesEmpty": {
|
||||
"description": "Shown when the duplicate review sheet finds nothing"
|
||||
},
|
||||
"duplicatesKeepBest": "Keep best",
|
||||
"duplicatesKeepBest": "Behalte das Beste",
|
||||
"@duplicatesKeepBest": {
|
||||
"description": "Button that deletes all but the highest-quality copy in a duplicate group"
|
||||
},
|
||||
@@ -1476,6 +1569,8 @@
|
||||
"@sectionLyrics": {
|
||||
"description": "Settings section header"
|
||||
},
|
||||
"lyricsKeepScreenOn": "Keep screen on while viewing lyrics",
|
||||
"lyricsKeepScreenOnSubtitle": "Prevent screen timeout while lyrics are open, including when playback is paused.",
|
||||
"lyricsMode": "Lyrics-Modus",
|
||||
"@lyricsMode": {
|
||||
"description": "Setting - how to save lyrics"
|
||||
@@ -1606,7 +1701,7 @@
|
||||
"@trackOpenInSpotify": {
|
||||
"description": "Action - open track in Spotify app"
|
||||
},
|
||||
"trackTrackName": "Name des Titels",
|
||||
"trackTrackName": "Titel Name",
|
||||
"@trackTrackName": {
|
||||
"description": "Metadata label - track title"
|
||||
},
|
||||
@@ -1654,7 +1749,7 @@
|
||||
"@trackReplayGainAlbumPeak": {
|
||||
"description": "Metadata label - ReplayGain album peak"
|
||||
},
|
||||
"libraryQualityLabelFileFormat": "File format",
|
||||
"libraryQualityLabelFileFormat": "Datei Format",
|
||||
"@libraryQualityLabelFileFormat": {
|
||||
"description": "Library audio quality label mode that shows the detected file format"
|
||||
},
|
||||
@@ -1782,7 +1877,7 @@
|
||||
"@storeFilterDownload": {
|
||||
"description": "Repo filter - download providers"
|
||||
},
|
||||
"storeFilterUtility": "Utility",
|
||||
"storeFilterUtility": "Hilfsmittel",
|
||||
"@storeFilterUtility": {
|
||||
"description": "Repo filter - utility extensions"
|
||||
},
|
||||
@@ -2081,7 +2176,7 @@
|
||||
"@downloadAutoConvertSubtitle": {
|
||||
"description": "Explanation of safe automatic post-download conversion"
|
||||
},
|
||||
"downloadAutoConvertFormat": "Output format",
|
||||
"downloadAutoConvertFormat": "Ausgabeformat",
|
||||
"@downloadAutoConvertFormat": {
|
||||
"description": "Automatic conversion output format setting"
|
||||
},
|
||||
@@ -2089,7 +2184,7 @@
|
||||
"@downloadAutoConvertFormatSubtitle": {
|
||||
"description": "Automatic conversion format picker explanation"
|
||||
},
|
||||
"downloadAutoConvertBitrate": "Output quality",
|
||||
"downloadAutoConvertBitrate": "Ausgabequalität",
|
||||
"@downloadAutoConvertBitrate": {
|
||||
"description": "Automatic conversion bitrate setting"
|
||||
},
|
||||
@@ -2607,7 +2702,7 @@
|
||||
"@librarySourceOffline": {
|
||||
"description": "Library source is temporarily disconnected"
|
||||
},
|
||||
"librarySourceDisabled": "Disabled",
|
||||
"librarySourceDisabled": "Deaktiviert",
|
||||
"@librarySourceDisabled": {
|
||||
"description": "Library source has been disabled by the user"
|
||||
},
|
||||
@@ -2757,6 +2852,10 @@
|
||||
"@libraryScanFinalizing": {
|
||||
"description": "Status shown after file scanning finishes but library persistence is still running"
|
||||
},
|
||||
"libraryScanPaused": "Scan pausiert",
|
||||
"@libraryScanPaused": {
|
||||
"description": "Status shown while a library scan is paused by the user"
|
||||
},
|
||||
"libraryScanProgress": "{progress}% von {total} Dateien",
|
||||
"@libraryScanProgress": {
|
||||
"description": "Scan progress display",
|
||||
@@ -3298,7 +3397,7 @@
|
||||
"@trackReEnrichSelectAll": {
|
||||
"description": "Select all fields checkbox in re-enrich"
|
||||
},
|
||||
"trackReEnrichModeIsrc": "ISRC only",
|
||||
"trackReEnrichModeIsrc": "Nur ISRC",
|
||||
"@trackReEnrichModeIsrc": {
|
||||
"description": "Batch metadata mode that only writes ISRC"
|
||||
},
|
||||
@@ -3366,7 +3465,7 @@
|
||||
"@trackReEnrichNoChanges": {
|
||||
"description": "Message when batch metadata preview has no proposed changes"
|
||||
},
|
||||
"trackReEnrichApplyChanges": "Apply changes",
|
||||
"trackReEnrichApplyChanges": "Änderungen anwenden",
|
||||
"@trackReEnrichApplyChanges": {
|
||||
"description": "Confirmation button in the batch metadata review sheet"
|
||||
},
|
||||
@@ -4055,7 +4154,7 @@
|
||||
"@backupTitle": {
|
||||
"description": "App bar title for the backup and restore page"
|
||||
},
|
||||
"backupExportSectionTitle": "Create backup",
|
||||
"backupExportSectionTitle": "Backup erstellen",
|
||||
"@backupExportSectionTitle": {
|
||||
"description": "Section title for the export/backup card"
|
||||
},
|
||||
@@ -4095,7 +4194,7 @@
|
||||
"@backupRestoreConfirmMessage": {
|
||||
"description": "Confirmation dialog message before restoring a backup"
|
||||
},
|
||||
"backupRestoreConfirmButton": "Restore",
|
||||
"backupRestoreConfirmButton": "Wiederherstellen",
|
||||
"@backupRestoreConfirmButton": {
|
||||
"description": "Confirm button to proceed with restore"
|
||||
},
|
||||
@@ -4119,7 +4218,7 @@
|
||||
"@backupContentsTitle": {
|
||||
"description": "Header above the list summarizing what the backup contains"
|
||||
},
|
||||
"backupSettingsOnly": "Settings only",
|
||||
"backupSettingsOnly": "Nur Einstellungen",
|
||||
"backupSelectHistory": "Download history",
|
||||
"backupSelectCollections": "Library collections",
|
||||
"backupSelectCollectionsDescription": "Liked tracks, wishlist, favorite artists, playlists and playlist covers.",
|
||||
@@ -4478,7 +4577,7 @@
|
||||
"@downloadMusixmatchLanguageCode": {
|
||||
"description": "Label for Musixmatch language input field"
|
||||
},
|
||||
"downloadMusixmatchLanguageHint": "e.g. en, de, ja",
|
||||
"downloadMusixmatchLanguageHint": "z.B. en, de, ja",
|
||||
"@downloadMusixmatchLanguageHint": {
|
||||
"description": "Placeholder for Musixmatch language input"
|
||||
},
|
||||
@@ -4556,7 +4655,7 @@
|
||||
"@editMetadataAutoFillDesc": {
|
||||
"description": "Description for the auto-fill section"
|
||||
},
|
||||
"editMetadataAutoFillSource": "Metadata source",
|
||||
"editMetadataAutoFillSource": "Metadatenquelle",
|
||||
"@editMetadataAutoFillSource": {
|
||||
"description": "Label for the metadata extension selector in online auto-fill"
|
||||
},
|
||||
@@ -4564,7 +4663,7 @@
|
||||
"@editMetadataAutoFillSourceAutomatic": {
|
||||
"description": "Automatic source option that follows configured metadata provider priority"
|
||||
},
|
||||
"editMetadataAutoFillFind": "Find metadata",
|
||||
"editMetadataAutoFillFind": "Metadaten finden",
|
||||
"@editMetadataAutoFillFind": {
|
||||
"description": "Button label for finding an online metadata candidate"
|
||||
},
|
||||
@@ -4738,11 +4837,11 @@
|
||||
"@queueEmptyPlaylistsSubtitle": {
|
||||
"description": "Empty state subtitle for the playlists library view"
|
||||
},
|
||||
"libraryDefaultView": "Default view",
|
||||
"libraryDefaultView": "Standardansicht",
|
||||
"@libraryDefaultView": {
|
||||
"description": "Setting title - which library view opens when switching to the Library tab"
|
||||
},
|
||||
"libraryDefaultViewLastUsed": "Last used",
|
||||
"libraryDefaultViewLastUsed": "Zuletzt verwendet",
|
||||
"@libraryDefaultViewLastUsed": {
|
||||
"description": "Default view option - keep the last used library view"
|
||||
},
|
||||
@@ -4846,7 +4945,7 @@
|
||||
"@audioAnalysisSpectralCutoff": {
|
||||
"description": "Estimated spectral cutoff metric label"
|
||||
},
|
||||
"audioAnalysisCutoffNotDetected": "Not detected",
|
||||
"audioAnalysisCutoffNotDetected": "Nicht erkannt",
|
||||
"@audioAnalysisCutoffNotDetected": {
|
||||
"description": "Displayed when no reliable broadband spectral cutoff can be detected"
|
||||
},
|
||||
@@ -4890,7 +4989,7 @@
|
||||
"@hiResCheckReasonImaging": {
|
||||
"description": "Reason: spectral imaging from upsampling detected"
|
||||
},
|
||||
"hiResCheckMusicContent": "Musical content",
|
||||
"hiResCheckMusicContent": "Musik-Inhalt",
|
||||
"@hiResCheckMusicContent": {
|
||||
"description": "Label for the highest frequency that still moves with the music"
|
||||
},
|
||||
@@ -4910,11 +5009,66 @@
|
||||
"@hiResCheckTitle": {
|
||||
"description": "Title of the fake Hi-Res check card"
|
||||
},
|
||||
"hiResCheckSummary": "Inspect the spectrum and active bit depth for signs of upsampling or padding.",
|
||||
"@hiResCheckSummary": {
|
||||
"description": "Introductory text for the sampled Hi-Res analysis"
|
||||
},
|
||||
"hiResCheckLimitedBandwidth": "Limited bandwidth",
|
||||
"@hiResCheckLimitedBandwidth": {
|
||||
"description": "Neutral finding: a limited spectrum alone does not prove upsampling"
|
||||
},
|
||||
"hiResCheckNoEvidence": "No upsampling or padding detected",
|
||||
"@hiResCheckNoEvidence": {
|
||||
"description": "No evidence was detected; this does not certify the master"
|
||||
},
|
||||
"hiResCheckEstimatedCutoff": "Estimated cutoff",
|
||||
"@hiResCheckEstimatedCutoff": {
|
||||
"description": "Estimated upper spectral edge at the analysis threshold"
|
||||
},
|
||||
"hiResCheckActiveBits": "Active / stored bits",
|
||||
"@hiResCheckActiveBits": {
|
||||
"description": "Active integer bit depth versus the container depth in the sampled segment"
|
||||
},
|
||||
"hiResCheckBandwidthExplanation": "A lower cutoff can come from mastering. It does not, by itself, prove upsampling.",
|
||||
"@hiResCheckBandwidthExplanation": {
|
||||
"description": "Explains why the limited-bandwidth finding is neutral"
|
||||
},
|
||||
"hiResCheckSampledExplanation": "Based on {seconds} seconds of audio. This analysis cannot certify the original master.",
|
||||
"@hiResCheckSampledExplanation": {
|
||||
"description": "Limits of the sampled Hi-Res analysis; seconds is a formatted duration",
|
||||
"placeholders": {
|
||||
"seconds": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckImagingEvidence": "The spectrum contains mirrored bands consistent with upsampling.",
|
||||
"@hiResCheckImagingEvidence": {
|
||||
"description": "Spectral imaging is suggestive evidence rather than proof"
|
||||
},
|
||||
"hiResCheckRateEvidence": "A sharp roll-off near {cutoff} and the measured noise floor suggest a lower-rate source.",
|
||||
"@hiResCheckRateEvidence": {
|
||||
"description": "Heuristic evidence from both a brickwall and a 16-bit-like noise floor",
|
||||
"placeholders": {
|
||||
"cutoff": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckSteadyEnergy": "Energy above {cutoff} is mostly steady in the analyzed segment and may be noise.",
|
||||
"@hiResCheckSteadyEnergy": {
|
||||
"description": "An observation about ultrasonic energy, not proof that removing it is safe",
|
||||
"placeholders": {
|
||||
"cutoff": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckDescription": "Detect upsampled or bit-padded fake Hi-Res files",
|
||||
"@hiResCheckDescription": {
|
||||
"description": "Explains what the Hi-Res authenticity check does"
|
||||
},
|
||||
"hiResCheckRun": "Check",
|
||||
"hiResCheckRun": "Überprüfen",
|
||||
"@hiResCheckRun": {
|
||||
"description": "Button that starts the Hi-Res authenticity check"
|
||||
},
|
||||
@@ -4946,7 +5100,7 @@
|
||||
"@hiResCheckCutoff": {
|
||||
"description": "Label for the highest frequency with real content"
|
||||
},
|
||||
"hiResCheckBitsInUse": "Bits in use",
|
||||
"hiResCheckBitsInUse": "Verwendete Bits",
|
||||
"@hiResCheckBitsInUse": {
|
||||
"description": "Label for effective vs declared bit depth"
|
||||
},
|
||||
@@ -5256,6 +5410,19 @@
|
||||
"@notifLibraryScanStopped": {
|
||||
"description": "Notification body when library scan is cancelled"
|
||||
},
|
||||
"notifLibraryScanPaused": "Library scan paused",
|
||||
"@notifLibraryScanPaused": {
|
||||
"description": "Notification title when the user pauses a library scan"
|
||||
},
|
||||
"notifLibraryScanPausedBody": "{count} files scanned. Resume in Local Library settings to continue from here.",
|
||||
"@notifLibraryScanPausedBody": {
|
||||
"description": "Notification body for a paused library scan - files scanned so far",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"notifDownloadingUpdate": "SpotiFLAC Mobile v{version} wird heruntergeladen",
|
||||
"@notifDownloadingUpdate": {
|
||||
"description": "Notification title while downloading an app update",
|
||||
@@ -5406,15 +5573,15 @@
|
||||
"@queueFinalizingDownload": {
|
||||
"description": "Accessibility label for a queue item that is finalizing"
|
||||
},
|
||||
"queueDownloadNext": "Download next",
|
||||
"queueDownloadNext": "Nächstes herunterladen",
|
||||
"@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": "Nach oben",
|
||||
"@queueMoveUp": {
|
||||
"description": "Queue item menu action - move the queued item one position earlier"
|
||||
},
|
||||
"queueMoveDown": "Move down",
|
||||
"queueMoveDown": "Nach unten",
|
||||
"@queueMoveDown": {
|
||||
"description": "Queue item menu action - move the queued item one position later"
|
||||
},
|
||||
@@ -5434,15 +5601,15 @@
|
||||
"@editMetadataMusicBrainzNeedsIsrc": {
|
||||
"description": "Snackbar when the MusicBrainz lookup is tapped without an ISRC"
|
||||
},
|
||||
"nowPlayingRepeatOff": "Repeat off",
|
||||
"nowPlayingRepeatOff": "Wiederholen deaktivieren",
|
||||
"@nowPlayingRepeatOff": {
|
||||
"description": "Repeat toggle tooltip when repeat is disabled"
|
||||
},
|
||||
"nowPlayingRepeatAll": "Repeat all",
|
||||
"nowPlayingRepeatAll": "Alle wiederholen",
|
||||
"@nowPlayingRepeatAll": {
|
||||
"description": "Repeat toggle tooltip when the whole queue repeats"
|
||||
},
|
||||
"nowPlayingRepeatOne": "Repeat one",
|
||||
"nowPlayingRepeatOne": "1x wiederholen",
|
||||
"@nowPlayingRepeatOne": {
|
||||
"description": "Repeat toggle tooltip when the current track repeats"
|
||||
},
|
||||
@@ -5770,7 +5937,7 @@
|
||||
"@editMetadataFieldComment": {
|
||||
"description": "Label for comment field in the edit metadata sheet"
|
||||
},
|
||||
"trackAlbumType": "Release Type",
|
||||
"trackAlbumType": "Veröffentlichungstyp",
|
||||
"@trackAlbumType": {
|
||||
"description": "Label for an album or release type metadata value"
|
||||
},
|
||||
@@ -5778,7 +5945,7 @@
|
||||
"@editMetadataFieldAlbumTypeHint": {
|
||||
"description": "Hint for the release type metadata field"
|
||||
},
|
||||
"editMetadataFieldExplicit": "Explicit",
|
||||
"editMetadataFieldExplicit": "Anstößig",
|
||||
"@editMetadataFieldExplicit": {
|
||||
"description": "Label for the explicit content metadata field"
|
||||
},
|
||||
@@ -5786,7 +5953,7 @@
|
||||
"@editMetadataFieldExplicitHint": {
|
||||
"description": "Description for the explicit content metadata switch"
|
||||
},
|
||||
"metadataExplicitValue": "Explicit",
|
||||
"metadataExplicitValue": "Anstößig",
|
||||
"@metadataExplicitValue": {
|
||||
"description": "Displayed value when a track is marked explicit"
|
||||
},
|
||||
@@ -5818,7 +5985,7 @@
|
||||
"@libraryFilterMetadataIncorrectIsrcFormat": {
|
||||
"description": "Filter option - items with an invalid ISRC format"
|
||||
},
|
||||
"libraryFilterMetadataMissingIsrc": "Missing ISRC",
|
||||
"libraryFilterMetadataMissingIsrc": "Fehlendes ISRC",
|
||||
"@libraryFilterMetadataMissingIsrc": {
|
||||
"description": "Filter option - items without any ISRC tag"
|
||||
},
|
||||
@@ -6178,7 +6345,7 @@
|
||||
"@storeCategoryDownload": {
|
||||
"description": "Store extension category - download"
|
||||
},
|
||||
"storeCategoryUtility": "Utility",
|
||||
"storeCategoryUtility": "Hilfsmittel",
|
||||
"@storeCategoryUtility": {
|
||||
"description": "Store extension category - utility"
|
||||
},
|
||||
@@ -6190,7 +6357,7 @@
|
||||
"@storeCategoryIntegration": {
|
||||
"description": "Store extension category - integration"
|
||||
},
|
||||
"artistReleases": "Releases",
|
||||
"artistReleases": "Veröffentlichungen",
|
||||
"@artistReleases": {
|
||||
"description": "Section header for all artist releases"
|
||||
},
|
||||
@@ -6235,11 +6402,11 @@
|
||||
"@shareSheetNoExtensions": {
|
||||
"description": "Empty state when no extensions can be searched for cross-service links"
|
||||
},
|
||||
"shareSheetNotFound": "Not found",
|
||||
"shareSheetNotFound": "Nicht gefunden",
|
||||
"@shareSheetNotFound": {
|
||||
"description": "Cross-service share sheet row subtitle when a service has no match"
|
||||
},
|
||||
"shareSheetCopyLink": "Copy Link",
|
||||
"shareSheetCopyLink": "Link kopieren",
|
||||
"@shareSheetCopyLink": {
|
||||
"description": "Tooltip for copying a cross-service link"
|
||||
},
|
||||
@@ -6250,11 +6417,11 @@
|
||||
"service": {}
|
||||
}
|
||||
},
|
||||
"libraryPlayback": "Playback",
|
||||
"libraryPlayback": "Wiedergabe",
|
||||
"@libraryPlayback": {
|
||||
"description": "Section header for playback settings in library settings"
|
||||
},
|
||||
"libraryExternalPlayer": "External player",
|
||||
"libraryExternalPlayer": "Externer Player",
|
||||
"@libraryExternalPlayer": {
|
||||
"description": "Setting option to use an external music player"
|
||||
},
|
||||
@@ -6282,11 +6449,36 @@
|
||||
"@nowPlayingNothingPlaying": {
|
||||
"description": "Empty state when no track is currently playing"
|
||||
},
|
||||
"nowPlayingMinimize": "Minimize",
|
||||
"nowPlayingMinimize": "Minimieren",
|
||||
"@nowPlayingMinimize": {
|
||||
"description": "Tooltip for minimizing the now playing screen"
|
||||
},
|
||||
"nowPlayingUpNext": "Up next",
|
||||
"nowPlayingUpNext": "Als Nächstes",
|
||||
"nowPlayingAudioOutput": "Audio-Output",
|
||||
"nowPlayingWrittenBy": "Written by: {writers}",
|
||||
"@nowPlayingWrittenBy": {
|
||||
"placeholders": {
|
||||
"writers": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"nowPlayingLyricsProvider": "Lyrics: {provider}",
|
||||
"@nowPlayingLyricsProvider": {
|
||||
"placeholders": {
|
||||
"provider": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"concertGetTickets": "Tickets holen",
|
||||
"concertSetList": "Concert Set List",
|
||||
"concertSetListButton": "Set List",
|
||||
"concertAddToCalendar": "Add to Calendar",
|
||||
"concertOpenMaps": "Karte öffnen",
|
||||
"concertDetailsUnavailable": "Concert details are currently unavailable.",
|
||||
"concertCalendarUnavailable": "Unable to open the calendar.",
|
||||
"nowPlayingAudioOutputUnavailable": "Unable to open audio output settings.",
|
||||
"@nowPlayingUpNext": {
|
||||
"description": "Title for the playback queue sheet"
|
||||
},
|
||||
@@ -6294,7 +6486,7 @@
|
||||
"@nowPlayingPreviousTrack": {
|
||||
"description": "Tooltip for the previous-track playback control"
|
||||
},
|
||||
"nowPlayingNextTrack": "Next track",
|
||||
"nowPlayingNextTrack": "Nächster Titel",
|
||||
"@nowPlayingNextTrack": {
|
||||
"description": "Tooltip for the next-track playback control"
|
||||
},
|
||||
@@ -6302,7 +6494,7 @@
|
||||
"@nowPlayingDetails": {
|
||||
"description": "Menu item and section title for track metadata details"
|
||||
},
|
||||
"nowPlayingSleepTimer": "Sleep timer",
|
||||
"nowPlayingSleepTimer": "Schlaf Timer",
|
||||
"@nowPlayingSleepTimer": {
|
||||
"description": "Menu item and sheet title for the playback sleep timer"
|
||||
},
|
||||
@@ -6354,6 +6546,18 @@
|
||||
"description": "Tab label for the lyrics view"
|
||||
},
|
||||
"nowPlayingNoLyrics": "No lyrics in this file",
|
||||
"nowPlayingInstrumental": "Instrumental",
|
||||
"@nowPlayingInstrumental": {
|
||||
"description": "Accessibility label for the three-dot countdown during an instrumental break before lyrics resume"
|
||||
},
|
||||
"nowPlayingLyricsLanguageOptions": "Lyrics language options",
|
||||
"@nowPlayingLyricsLanguageOptions": {
|
||||
"description": "Tooltip for the player menu that shows or hides existing lyric pronunciation and translation"
|
||||
},
|
||||
"nowPlayingHidePronunciation": "Hide Pronunciation",
|
||||
"nowPlayingShowPronunciation": "Show Pronunciation",
|
||||
"nowPlayingHideTranslation": "Hide Translation",
|
||||
"nowPlayingShowTranslation": "Show Translation",
|
||||
"@nowPlayingNoLyrics": {
|
||||
"description": "Empty state when the playing file has no embedded lyrics"
|
||||
},
|
||||
@@ -6370,11 +6574,11 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"nowPlayingShuffleOn": "Shuffle on",
|
||||
"nowPlayingShuffleOn": "Shuffle an",
|
||||
"@nowPlayingShuffleOn": {
|
||||
"description": "Tooltip when shuffle mode is enabled"
|
||||
},
|
||||
"nowPlayingPlayInOrder": "Play in order",
|
||||
"nowPlayingPlayInOrder": "In Reihenfolge abspielen",
|
||||
"@nowPlayingPlayInOrder": {
|
||||
"description": "Tooltip when shuffle mode is disabled"
|
||||
},
|
||||
@@ -6512,7 +6716,7 @@
|
||||
"@trackConvertOriginalQuality": {
|
||||
"description": "Label when no bit depth or sample rate cap is applied during lossless conversion"
|
||||
},
|
||||
"trackConvertLosslessSuffix": "Lossless",
|
||||
"trackConvertLosslessSuffix": "Verlustfrei",
|
||||
"@trackConvertLosslessSuffix": {
|
||||
"description": "Suffix used in converted lossless quality labels"
|
||||
},
|
||||
@@ -6548,15 +6752,15 @@
|
||||
"@updateSeeReleaseNotes": {
|
||||
"description": "Fallback changelog text when release notes cannot be parsed"
|
||||
},
|
||||
"unknownTitle": "Unknown title",
|
||||
"unknownTitle": "Unbekannter Titel",
|
||||
"@unknownTitle": {
|
||||
"description": "Fallback track title when metadata is missing"
|
||||
},
|
||||
"trackPlayNext": "Play next",
|
||||
"trackPlayNext": "Als Nächstes spielen",
|
||||
"@trackPlayNext": {
|
||||
"description": "Menu action to play a track as the next queue item"
|
||||
},
|
||||
"trackAddToQueue": "Add to queue",
|
||||
"trackAddToQueue": "Zur Warteschlange hinzufügen",
|
||||
"@trackAddToQueue": {
|
||||
"description": "Menu action to add a track to the playback queue"
|
||||
},
|
||||
@@ -6607,23 +6811,23 @@
|
||||
"@releaseTypeSingle": {
|
||||
"description": "Badge label for single releases"
|
||||
},
|
||||
"trackCoverOnline": "Online cover",
|
||||
"trackCoverOnline": "Online-Cover",
|
||||
"@trackCoverOnline": {
|
||||
"description": "Label shown when metadata autofill downloaded cover art from the internet"
|
||||
},
|
||||
"regionCountryUS": "United States",
|
||||
"regionCountryUS": "Vereinigte Staaten",
|
||||
"@regionCountryUS": {
|
||||
"description": "Country name for SongLink region picker"
|
||||
},
|
||||
"regionCountryGB": "United Kingdom",
|
||||
"regionCountryGB": "Vereinigtes Königreich",
|
||||
"@regionCountryGB": {
|
||||
"description": "Country name for SongLink region picker"
|
||||
},
|
||||
"regionCountryFR": "France",
|
||||
"regionCountryFR": "Frankreich",
|
||||
"@regionCountryFR": {
|
||||
"description": "Country name for SongLink region picker"
|
||||
},
|
||||
"regionCountryDE": "Germany",
|
||||
"regionCountryDE": "Deutschland",
|
||||
"@regionCountryDE": {
|
||||
"description": "Country name for SongLink region picker"
|
||||
},
|
||||
@@ -6639,23 +6843,23 @@
|
||||
"@regionCountryIN": {
|
||||
"description": "Country name for SongLink region picker"
|
||||
},
|
||||
"regionCountryID": "Indonesia",
|
||||
"regionCountryID": "Indonesien",
|
||||
"@regionCountryID": {
|
||||
"description": "Country name for SongLink region picker"
|
||||
},
|
||||
"regionCountryBR": "Brazil",
|
||||
"regionCountryBR": "Brasilien",
|
||||
"@regionCountryBR": {
|
||||
"description": "Country name for SongLink region picker"
|
||||
},
|
||||
"regionCountryMX": "Mexico",
|
||||
"regionCountryMX": "Mexiko",
|
||||
"@regionCountryMX": {
|
||||
"description": "Country name for SongLink region picker"
|
||||
},
|
||||
"regionCountryAU": "Australia",
|
||||
"regionCountryAU": "Australien",
|
||||
"@regionCountryAU": {
|
||||
"description": "Country name for SongLink region picker"
|
||||
},
|
||||
"regionCountryCA": "Canada",
|
||||
"regionCountryCA": "Kanada",
|
||||
"@regionCountryCA": {
|
||||
"description": "Country name for SongLink region picker"
|
||||
},
|
||||
@@ -6675,11 +6879,11 @@
|
||||
"@extensionVerificationBrowserSubtitleInApp": {
|
||||
"description": "Subtitle when in-app browser is preferred for extension verification"
|
||||
},
|
||||
"extensionVerificationBrowserExternal": "External",
|
||||
"extensionVerificationBrowserExternal": "Extern",
|
||||
"@extensionVerificationBrowserExternal": {
|
||||
"description": "Chip label for external browser verification mode"
|
||||
},
|
||||
"extensionVerificationBrowserInApp": "In-app",
|
||||
"extensionVerificationBrowserInApp": "In-App",
|
||||
"@extensionVerificationBrowserInApp": {
|
||||
"description": "Chip label for in-app browser verification mode"
|
||||
},
|
||||
@@ -6712,7 +6916,7 @@
|
||||
"@extensionVerificationClose": {
|
||||
"description": "Button to dismiss the extension verification help dialog"
|
||||
},
|
||||
"extensionVerificationCopyLink": "Copy link",
|
||||
"extensionVerificationCopyLink": "Link kopieren",
|
||||
"@extensionVerificationCopyLink": {
|
||||
"description": "Button to copy the extension verification URL"
|
||||
},
|
||||
@@ -6720,7 +6924,7 @@
|
||||
"@extensionVerificationLinkCopied": {
|
||||
"description": "Snackbar after copying the extension verification URL"
|
||||
},
|
||||
"extensionVerificationOpenBrowser": "Open browser",
|
||||
"extensionVerificationOpenBrowser": "Browser öffnen",
|
||||
"@extensionVerificationOpenBrowser": {
|
||||
"description": "Button to open the extension verification URL in a browser"
|
||||
},
|
||||
@@ -6761,11 +6965,15 @@
|
||||
"@libraryFilterMetadataMissingLyrics": {
|
||||
"description": "Filter option for tracks without embedded or sidecar lyrics"
|
||||
},
|
||||
"libraryFilterMetadataMissingReplayGain": "Missing ReplayGain",
|
||||
"@libraryFilterMetadataMissingReplayGain": {
|
||||
"description": "Filter option for scanned tracks without ReplayGain gain tags"
|
||||
},
|
||||
"trackOptionCopyTrackName": "Copy track name",
|
||||
"@trackOptionCopyTrackName": {
|
||||
"description": "Track menu action that copies the track title"
|
||||
},
|
||||
"trackOptionCopyArtist": "Copy artist",
|
||||
"trackOptionCopyArtist": "Künstler kopieren",
|
||||
"@trackOptionCopyArtist": {
|
||||
"description": "Track menu action that copies the artist name"
|
||||
},
|
||||
@@ -6773,7 +6981,7 @@
|
||||
"@trackOptionCopyTrackAndArtist": {
|
||||
"description": "Track menu action that copies the track title and artist"
|
||||
},
|
||||
"metadataCopyValue": "Copy value",
|
||||
"metadataCopyValue": "Wert kopieren",
|
||||
"@metadataCopyValue": {
|
||||
"description": "Metadata menu action that copies only the selected value"
|
||||
},
|
||||
@@ -6781,8 +6989,8 @@
|
||||
"@metadataCopyField": {
|
||||
"description": "Metadata menu action that copies the selected key and value"
|
||||
},
|
||||
"mornyeShowTabs": "Show tabs",
|
||||
"mornyeSearch": "Search",
|
||||
"mornyeShowTabs": "Tabs anzeigen",
|
||||
"mornyeSearch": "Suche",
|
||||
"mornyeContinuePlaying": "Continue Playing",
|
||||
"metadataCopyAll": "Copy all metadata",
|
||||
"@metadataCopyAll": {
|
||||
@@ -6796,30 +7004,36 @@
|
||||
"@optionsEmbeddedCoverSizeDescription": {
|
||||
"description": "Description shown in the embedded cover size picker"
|
||||
},
|
||||
"mornyeFavorite": "Favorite",
|
||||
"mornyeGoToArtist": "Go to Artist",
|
||||
"mornyeFavorite": "Favorit",
|
||||
"mornyeGoToArtist": "Zum Künstler",
|
||||
"@mornyeFavorite": {
|
||||
"description": "Compact context menu action that adds a track to Loved"
|
||||
},
|
||||
"mornyeFavorited": "Favorited",
|
||||
"mornyeFavorited": "Favorisiert",
|
||||
"@mornyeFavorited": {
|
||||
"description": "Selected state of the compact favorite action"
|
||||
},
|
||||
"autoMixDescription": "Blend songs with beat matching and pitch-preserving tempo adjustment. Uses crossfade when beats cannot be matched.",
|
||||
"autoMixOn": "AutoMix on",
|
||||
"autoMixOff": "AutoMix off",
|
||||
"profileTitle": "Profile",
|
||||
"autoMixOn": "AutoMix an",
|
||||
"autoMixOff": "AutoMix aus",
|
||||
"autoplayOn": "Autoplay an",
|
||||
"autoplayOff": "Autoplay aus",
|
||||
"autoplayFromLibrary": "Autoplay from your Library",
|
||||
"profileTitle": "Profil",
|
||||
"profileSetUp": "Set up your profile",
|
||||
"profileEdit": "Edit name and photo",
|
||||
"backupIncludesProfile": "Includes your profile name and photo",
|
||||
"profileName": "Name",
|
||||
"profileNameHint": "Your name",
|
||||
"profileChangePhoto": "Choose photo",
|
||||
"profileRemovePhoto": "Remove photo",
|
||||
"profileNameHint": "Dein Name",
|
||||
"profileChangePhoto": "Bild wählen",
|
||||
"profileRemovePhoto": "Bild entfernen",
|
||||
"profilePhotoError": "Choose a valid image smaller than 20 MB.",
|
||||
"profileSaveError": "Could not save your profile. Please try again.",
|
||||
"artistUpcomingConcerts": "Upcoming Concerts",
|
||||
"artistAllUpcomingConcerts": "All Upcoming Concerts",
|
||||
"artistNoUpcomingConcerts": "No upcoming concerts.",
|
||||
"optionsEmbeddedCoverSizeOriginal": "Original resolution",
|
||||
"@optionsEmbeddedCoverSizeOriginal": {
|
||||
"description": "Option that preserves the provider artwork at its original resolution"
|
||||
}
|
||||
}
|
||||
}
|
||||
+548
-334
File diff suppressed because it is too large.
Load diff
+315
-101
@@ -1,41 +1,94 @@
|
||||
{
|
||||
"upgradeIntroWelcome": "Welcome to\nSpotiFLAC-Mobile 5.0",
|
||||
"upgradeIntroThemeTitle": "Make it\nyour own.",
|
||||
"upgradeIntroThemeBody": "Choose a look. Your choice applies immediately, and you can change it later in Appearance.",
|
||||
"upgradeIntroThemeMaterialBody": "The familiar layout, with Material controls and your accent color.",
|
||||
"upgradeIntroThemeMornyeBody": "Glass navigation, a redesigned Library and an immersive player.",
|
||||
"upgradeIntroRustTitle": "A new engine.\nBuilt with Rust.",
|
||||
"upgradeIntroRustBody": "In 5.0, the app’s backend has moved from Go to Rust. It is the engine working behind the screens you use every day.",
|
||||
"settingsPlaybackSubtitle": "Lecteur, volume, AutoMix et sortie audio",
|
||||
"sectionPlayer": "Lecteur",
|
||||
"sectionVolumeAndTransitions": "Volume et transitions",
|
||||
"sectionAudioOutput": "Sortie audio",
|
||||
"usbBitPerfect": "Audio haute résolution et sans perte",
|
||||
"usbBitPerfectDescription": "Conservez la précision de la source sur les sorties compatibles. Choisissez ci-dessous « USB direct » ou « AAudio exclusif » ; sinon, la sortie USB Android nécessite Android 14 ou une version ultérieure. S'applique à partir du morceau suivant, sans AutoMix ni normalisation. Le volume système peut ne pas contrôler la sortie USB directe.",
|
||||
"usbHardwareVolume": "Volume du matériel DAC",
|
||||
"usbVolumeWarningTitle": "Vérifiez le volume de votre appareil audio",
|
||||
"usbVolumeWarning": "Le son USB direct peut être beaucoup plus fort qu'une lecture normale, et les boutons de volume du téléphone peuvent ne pas permettre de le régler. Baissez le volume de votre DAC ou de votre amplificateur avant de commencer. Lorsque cette fonctionnalité est prise en charge, SpotiFLAC règle le DAC à −40 dB au maximum lors de la connexion ; cela ne garantit toutefois pas un niveau d'écoute sûr sur tous les amplificateurs ou casques.",
|
||||
"usbVolumeAccept": "Je comprends",
|
||||
"usbVolumeUnavailable": "La lecture est en pause car ce DAC ne dispose pas d'un contrôle du volume matériel vérifié. Baissez le volume du DAC ou de l'amplificateur, puis activez la sortie à volume fixe si nécessaire et sélectionnez à nouveau la piste.",
|
||||
"usbFixedVolume": "Autoriser la sortie USB à volume fixe",
|
||||
"usbFixedVolumeDescription": "Pour les DAC ne disposant pas d'un réglage du volume accessible depuis l'application. À laisser désactivé pour les casques USB ne disposant pas de leur propre réglage du volume. S'applique à partir du morceau suivant.",
|
||||
"usbFixedVolumeWarning": "L'application ne peut pas réduire le volume sur cette sortie. Le son peut démarrer à plein volume, et le curseur de volume du téléphone ne servira à rien. Ne poursuivez l'opération qu'après avoir réduit le volume sur votre DAC ou votre amplificateur externe. N'activez pas cette fonction pour un casque ne disposant pas de son propre contrôle de volume.",
|
||||
"dapExclusive": "DAP haute résolution (exclusivité AAudio)",
|
||||
"dapExclusiveDescription": "Utilisez Oboe/AAudio à la fréquence et à la précision d'origine de la piste pour les fichiers FLAC/WAV PCM. Nécessite Android 8.1 ou une version ultérieure, ainsi qu'un matériel compatible. L'option « Accès exclusif » est cochée ; les formats non pris en charge sont lus en mode normal. Le format DSD nécessite le pilote USB direct. S'applique à partir de la piste suivante.",
|
||||
"dapExclusiveUnavailable": "L'accès exclusif AAudio n'est pas disponible pour ce morceau et cette sortie. La lecture s'effectue en mode normal. Pour un DAC USB, essayez le pilote USB direct.",
|
||||
"usbDirect": "Pilote USB direct",
|
||||
"usbDirectDescription": "Utilisez la fonction audio USB exclusive pour les formats FLAC/WAV, DSF/DFF et WavPack DSD, avec l'autorisation USB Android. Le DSD natif nécessite un DAC compatible et reconnu. Les autres formats PCM sont lus normalement. Cette fonction s'applique à partir de la piste suivante.",
|
||||
"usbDsdOverPcm": "DSD sur PCM (DoP)",
|
||||
"usbDsdOverPcmDescription": "À activer uniquement si votre DAC prend explicitement en charge le DoP. Envoie des fichiers DSF/DFF et WavPack DSD dans une porteuse PCM lorsque le DSD natif n'est pas disponible. Un périphérique incompatible peut émettre du bruit ; laissez cette option désactivée pour les casques USB classiques.",
|
||||
"usbDsdUnsupported": "Ce format DSD ou ce DAC connecté n'est pas pris en charge. La lecture s'est arrêtée.",
|
||||
"usbPermissionDenied": "L'autorisation USB n'a pas été accordée. Lecture normale.",
|
||||
"usbBitPerfectPending": "En attendant le prochain morceau et une sortie USB compatible.",
|
||||
"usbBitPerfectNoDevice": "Aucun DAC USB n'est connecté. La sortie audio standard est utilisée.",
|
||||
"usbBitPerfectFallback": "Cet appareil ou ce format audio ne prend pas en charge la sortie « bit-perfect ». Lecture normale.",
|
||||
"usbBitPerfectRouteChanged": "La connexion audio USB a changé. La lecture est en pause ; sélectionnez un morceau pour rétablir la connexion.",
|
||||
"upgradeIntroWelcome": "Bienvenue dans\nSpotiFLAC-Mobile 5.0",
|
||||
"upgradeIntroThemeTitle": "Faites-en\nvotre propre version.",
|
||||
"upgradeIntroThemeBody": "Choisissez un thème. Votre choix s'applique immédiatement, et vous pourrez le modifier ultérieurement dans la section « Apparence ».",
|
||||
"upgradeIntroThemeMaterialBody": "Une mise en page familière, avec les commandes Material et votre couleur d'accent.",
|
||||
"upgradeIntroThemeMornyeBody": "Navigation en verre, bibliothèque repensée et lecteur immersif.",
|
||||
"upgradeIntroRustTitle": "Un nouveau moteur.\nDéveloppé avec Rust.",
|
||||
"upgradeIntroRustBody": "Dans la version 5.0, le backend de l'application est passé de Go à Rust. Il s'agit du moteur qui fonctionne en arrière-plan des écrans que vous utilisez tous les jours.",
|
||||
"upgradeIntroRustEngineTitle": "Travaille en arrière-plan",
|
||||
"upgradeIntroRustEngineBody": "Rust handles downloads, audio metadata, library scanning and the extension runtime on Android and iOS.",
|
||||
"upgradeIntroRustMemoryTitle": "More careful with memory",
|
||||
"upgradeIntroRustMemoryBody": "Reused buffers and fewer copies reduce temporary allocations when processing artwork and extension data.",
|
||||
"upgradeIntroRustKeepTitle": "Keep your music",
|
||||
"upgradeIntroRustKeepBody": "No need to download your collection again. Your saved music and settings stay in place, with no new setup required.",
|
||||
"upgradeIntroWelcomeBody": "A quick look at what has changed, and where to find it.",
|
||||
"upgradeIntroMornyeBody": "A new look for your player, lyrics and navigation.",
|
||||
"upgradeIntroLibrarySummary": "Browse your music by playlist, artist or album.",
|
||||
"upgradeIntroRepoSummary": "Choose your music sources and providers through extensions.",
|
||||
"upgradeIntroLibraryTitle": "Get to know\nyour Library.",
|
||||
"upgradeIntroLibraryBody": "In Mornye, browse by category or find your albums in Recently Added.",
|
||||
"upgradeIntroDownloadsBody": "Pause and retry from Downloads at the top right. Finished music moves to Recently Added.",
|
||||
"upgradeIntroSearchBody": "Search saved music here. The separate Search tab looks through your extensions.",
|
||||
"upgradeIntroPlayerTitle": "Set up\nyour player.",
|
||||
"upgradeIntroPlayerBody": "You can change your theme and playback options at any time. Here is where to find them.",
|
||||
"upgradeIntroAppearanceBody": "Change themes in Settings → Appearance. In Mornye, scroll down for compact navigation; scroll up to expand it.",
|
||||
"upgradeIntroAutoMixBody": "Match tempo and beats between tracks. Enable it in Settings → Local Library → Playback. Off by default.",
|
||||
"upgradeIntroSettingsBody": "In Mornye, tap your profile on Home to open Settings and edit your name and photo.",
|
||||
"upgradeIntroSkip": "Skip",
|
||||
"upgradeIntroContinue": "Continue",
|
||||
"upgradeIntroDone": "Start listening",
|
||||
"upgradeIntroReplay": "What’s new in 5.0",
|
||||
"cacheMotionArtwork": "Offline motion covers",
|
||||
"cacheMotionArtworkDesc": "Album videos saved with downloads. Removing them keeps your music files and static covers.",
|
||||
"upgradeIntroRustEngineBody": "Rust gère les téléchargements, les métadonnées audio, l'analyse des bibliothèques et l'exécution des extensions sur Android et iOS.",
|
||||
"upgradeIntroRustMemoryTitle": "Faire plus attention à sa mémoire",
|
||||
"upgradeIntroRustMemoryBody": "La réutilisation des tampons et la réduction du nombre de copies permettent de limiter les allocations temporaires lors du traitement des illustrations et des données d'extension.",
|
||||
"upgradeIntroRustKeepTitle": "Conservez votre musique",
|
||||
"upgradeIntroRustKeepBody": "Inutile de télécharger à nouveau votre bibliothèque. Votre musique et vos paramètres enregistrés sont conservés, aucune nouvelle configuration n'est nécessaire.",
|
||||
"upgradeIntroWelcomeBody": "Un aperçu rapide des changements apportés et des endroits où les trouver.",
|
||||
"upgradeIntroMornyeBody": "Un nouveau look pour votre lecteur, les paroles et la navigation.",
|
||||
"upgradeIntroLibrarySummary": "Parcourez votre musique par playlist, artiste ou album.",
|
||||
"upgradeIntroRepoSummary": "Choisissez vos sources musicales et vos fournisseurs grâce aux extensions.",
|
||||
"upgradeIntroLibraryTitle": "Découvrez\nvotre bibliothèque.",
|
||||
"upgradeIntroLibraryBody": "Sur Mornye, parcourez les albums par catégorie ou retrouvez vos albums dans la section « Ajouts récents ».",
|
||||
"upgradeIntroDownloadsBody": "Mettez en pause, puis réessayez depuis la rubrique « Téléchargements » en haut à droite. Les morceaux terminés sont déplacés vers la rubrique « Ajoutés récemment ».",
|
||||
"upgradeIntroSearchBody": "Recherchez ici la musique que vous avez enregistrée. L'onglet « Recherche » distinct passe en revue vos extensions.",
|
||||
"upgradeIntroPlayerTitle": "Configurez\nvotre lecteur.",
|
||||
"upgradeIntroPlayerBody": "Vous pouvez modifier votre thème et vos options de lecture à tout moment. Voici où les trouver.",
|
||||
"upgradeIntroAppearanceBody": "Pour changer de thème, rendez-vous dans Paramètres → Apparence. Dans Mornye, faites défiler vers le bas pour afficher la navigation compacte ; faites défiler vers le haut pour l'agrandir.",
|
||||
"upgradeIntroAutoMixBody": "Synchroniser le tempo et les temps entre les morceaux. Activez cette option dans Paramètres → Bibliothèque locale → Lecture. Désactivée par défaut.",
|
||||
"upgradeIntroSettingsBody": "Dans Mornye, appuyez sur votre profil depuis la page d'accueil pour ouvrir les Paramètres et modifier votre nom et votre photo.",
|
||||
"upgradeIntroSkip": "Passer",
|
||||
"upgradeIntroContinue": "Continuer",
|
||||
"upgradeIntroDone": "Commencez à écouter",
|
||||
"upgradeIntroReplay": "Nouveautés de la version 5.0",
|
||||
"cacheMotionArtwork": "Couverture de mouvement hors ligne",
|
||||
"cacheMotionArtworkDesc": "Les clips vidéo des albums sont enregistrés avec les téléchargements. Si vous les supprimez, vos fichiers musicaux et vos pochettes d'album resteront intacts.",
|
||||
"nowPlayingVolume": "Volume",
|
||||
"@nowPlayingVolume": {
|
||||
"description": "System volume control label in the Mornye player"
|
||||
},
|
||||
"appearanceStyle": "App Style",
|
||||
"appearanceStyle": "Style de l'application",
|
||||
"appearanceAccentRed": "Rouge (par défaut)",
|
||||
"appearanceAccentOrange": "Orange",
|
||||
"appearanceAccentGreen": "Vert",
|
||||
"appearanceAccentTeal": "Bleu sarcelle",
|
||||
"appearanceAccentBlue": "Bleu",
|
||||
"appearanceAccentPurple": "Violet",
|
||||
"appearanceAccentPink": "Rose",
|
||||
"appearanceGlassClarity": "Transparence du verre",
|
||||
"appearanceGlassClaritySubtitle": "Régler la transparence des menus et de la navigation dans Mornye. Le contraste du texte est conservé.",
|
||||
"appearanceGlassTinted": "Teinté",
|
||||
"appearanceGlassClear": "Effacer",
|
||||
"appearanceGlassClarityBlurOff": "Le verre est opaque sur cet appareil. Activez « {setting} » pour régler la transparence.",
|
||||
"@appearanceGlassClarityBlurOff": {
|
||||
"description": "Shown under the disabled glass clarity slider when the device renders Mornye glass without blur. The placeholder is the name of the force-blur toggle.",
|
||||
"placeholders": {
|
||||
"setting": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appearanceGlassClarityHighContrast": "Le verre reste opaque lorsque le réglage « contraste élevé » du système est activé.",
|
||||
"@appearanceGlassClarityHighContrast": {
|
||||
"description": "Shown under the disabled glass clarity slider while the OS high contrast accessibility setting is on"
|
||||
},
|
||||
"appearanceUseSystemFont": "Utiliser la police système",
|
||||
"appearanceUseSystemFontSubtitle": "Utilisez la police par défaut de votre appareil pour le texte de l'application.",
|
||||
"@appearanceStyle": {
|
||||
"description": "Appearance section for choosing the app visual style"
|
||||
},
|
||||
@@ -97,11 +150,11 @@
|
||||
"@historyFilterSingles": {
|
||||
"description": "Filter chip - show singles only"
|
||||
},
|
||||
"libraryRecentlyAdded": "Recently Added",
|
||||
"libraryDownloads": "Downloads",
|
||||
"libraryNoActiveDownloads": "No active downloads",
|
||||
"librarySearchHint": "Search your library",
|
||||
"libraryEmptyCollection": "Your music will appear here",
|
||||
"libraryRecentlyAdded": "Ajouts récents",
|
||||
"libraryDownloads": "Téléchargements",
|
||||
"libraryNoActiveDownloads": "Aucun téléchargement en cours",
|
||||
"librarySearchHint": "Rechercher dans votre bibliothèque",
|
||||
"libraryEmptyCollection": "Votre musique apparaîtra ici",
|
||||
"historySearchHint": "Historique de recherche...",
|
||||
"@historySearchHint": {
|
||||
"description": "Search bar placeholder in history"
|
||||
@@ -255,6 +308,38 @@
|
||||
"@trackReplayGainFailed": {
|
||||
"description": "Snackbar message when ReplayGain scan/write fails"
|
||||
},
|
||||
"trackRemoveReplayGain": "Supprimer ReplayGain",
|
||||
"trackRemoveReplayGainSuccess": "Suppression des balises ReplayGain",
|
||||
"trackRemoveReplayGainFailed": "Impossible de supprimer les balises ReplayGain",
|
||||
"replayGainRemoving": "Suppression de ReplayGain...",
|
||||
"replayGainRemoveConfirmMessage": "Souhaitez-vous supprimer les balises ReplayGain des {count} titres ? Les données audio, les pochettes et les autres métadonnées seront conservées.",
|
||||
"@replayGainRemoveConfirmMessage": {
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionRemoveReplayGainCount": "Supprimer RG ({count})",
|
||||
"@selectionRemoveReplayGainCount": {
|
||||
"description": "Compact selection action label. RG abbreviates ReplayGain; keep this short for a two-column toolbar.",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"replayGainRemoveBatchSuccess": "ReplayGain supprimé de {success} sur {total} titres",
|
||||
"@replayGainRemoveBatchSuccess": {
|
||||
"placeholders": {
|
||||
"success": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionReplayGainCount": "ReplayGain ({count})",
|
||||
"@selectionReplayGainCount": {
|
||||
"description": "Batch selection action button label for ReplayGain",
|
||||
@@ -318,6 +403,14 @@
|
||||
"@optionsArtistTagModeSplitVorbisSubtitle": {
|
||||
"description": "Subtitle for split Vorbis artist tag mode"
|
||||
},
|
||||
"optionsArtistTagModePrimary": "Artiste principal uniquement",
|
||||
"@optionsArtistTagModePrimary": {
|
||||
"description": "Artist tag mode option that writes only the first credited artist"
|
||||
},
|
||||
"optionsArtistTagModePrimarySubtitle": "Dans tous les formats, indiquez uniquement le premier artiste (par exemple « Artiste A ») dans les champs « Artiste » et « Artiste de l'album », afin que les lecteurs n'affichent qu'un seul artiste.",
|
||||
"@optionsArtistTagModePrimarySubtitle": {
|
||||
"description": "Subtitle for the primary-artist tag mode. Applies when downloading and re-enriching; manual edits keep what the user typed."
|
||||
},
|
||||
"optionsExtensionStore": "Référentiel d'extensions",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide repo tab"
|
||||
@@ -1476,6 +1569,8 @@
|
||||
"@sectionLyrics": {
|
||||
"description": "Settings section header"
|
||||
},
|
||||
"lyricsKeepScreenOn": "Garder l'écran allumé pendant l'affichage des paroles",
|
||||
"lyricsKeepScreenOnSubtitle": "Empêcher la mise en veille de l'écran lorsque les paroles sont affichées, y compris lorsque la lecture est en pause.",
|
||||
"lyricsMode": "Mode Paroles",
|
||||
"@lyricsMode": {
|
||||
"description": "Setting - how to save lyrics"
|
||||
@@ -1638,19 +1733,19 @@
|
||||
"@trackAudioQuality": {
|
||||
"description": "Metadata label - audio quality"
|
||||
},
|
||||
"trackReplayGainTrackGain": "ReplayGain Track Gain",
|
||||
"trackReplayGainTrackGain": "ReplayGain - Gain par piste",
|
||||
"@trackReplayGainTrackGain": {
|
||||
"description": "Metadata label - ReplayGain track gain"
|
||||
},
|
||||
"trackReplayGainTrackPeak": "ReplayGain Track Peak",
|
||||
"trackReplayGainTrackPeak": "ReplayGain – Pic de piste",
|
||||
"@trackReplayGainTrackPeak": {
|
||||
"description": "Metadata label - ReplayGain track peak"
|
||||
},
|
||||
"trackReplayGainAlbumGain": "ReplayGain Album Gain",
|
||||
"trackReplayGainAlbumGain": "ReplayGain - Gain de l'album",
|
||||
"@trackReplayGainAlbumGain": {
|
||||
"description": "Metadata label - ReplayGain album gain"
|
||||
},
|
||||
"trackReplayGainAlbumPeak": "ReplayGain Album Peak",
|
||||
"trackReplayGainAlbumPeak": "ReplayGain – Valeur maximale de l'album",
|
||||
"@trackReplayGainAlbumPeak": {
|
||||
"description": "Metadata label - ReplayGain album peak"
|
||||
},
|
||||
@@ -2757,6 +2852,10 @@
|
||||
"@libraryScanFinalizing": {
|
||||
"description": "Status shown after file scanning finishes but library persistence is still running"
|
||||
},
|
||||
"libraryScanPaused": "Numérisation en pause",
|
||||
"@libraryScanPaused": {
|
||||
"description": "Status shown while a library scan is paused by the user"
|
||||
},
|
||||
"libraryScanProgress": "{progress} % des {total} fichiers",
|
||||
"@libraryScanProgress": {
|
||||
"description": "Scan progress display",
|
||||
@@ -3413,10 +3512,10 @@
|
||||
"description": "Progress message while preparing manual batch metadata changes"
|
||||
},
|
||||
"trackReEnrichSuccess": "Métadonnées réenrichies avec succès",
|
||||
"trackReEnrichMetadataSaved": "Metadata saved",
|
||||
"trackReEnrichLyricsUpdated": "Lyrics updated",
|
||||
"trackReEnrichLyricsPreserved": "No new lyrics found; existing lyrics kept",
|
||||
"trackReEnrichLyricsDisabled": "Lyrics not updated: lyric downloading is disabled in Settings",
|
||||
"trackReEnrichMetadataSaved": "Métadonnées enregistrées",
|
||||
"trackReEnrichLyricsUpdated": "Paroles mises à jour",
|
||||
"trackReEnrichLyricsPreserved": "Aucune nouvelle parole n'a été trouvée ; les paroles existantes ont été conservées",
|
||||
"trackReEnrichLyricsDisabled": "Paroles non mises à jour : le téléchargement des paroles est désactivé dans les paramètres",
|
||||
"@trackReEnrichSuccess": {
|
||||
"description": "Snackbar after successful re-enrichment"
|
||||
},
|
||||
@@ -4119,14 +4218,14 @@
|
||||
"@backupContentsTitle": {
|
||||
"description": "Header above the list summarizing what the backup contains"
|
||||
},
|
||||
"backupSettingsOnly": "Settings only",
|
||||
"backupSelectHistory": "Download history",
|
||||
"backupSelectCollections": "Library collections",
|
||||
"backupSelectCollectionsDescription": "Liked tracks, wishlist, favorite artists, playlists and playlist covers.",
|
||||
"backupSelectExtensions": "Extensions and their settings",
|
||||
"backupSelectedExportDescription": "Save the selected categories to a backup file. Audio files are not included.",
|
||||
"backupSelectAtLeastOne": "Select at least one category to create a backup.",
|
||||
"backupSelectedRestoreMessage": "Only the categories listed below will be restored. Categories not included in this backup will stay unchanged. Restoring can replace existing data and cannot be undone.",
|
||||
"backupSettingsOnly": "Paramètres uniquement",
|
||||
"backupSelectHistory": "Historique des téléchargements",
|
||||
"backupSelectCollections": "Fonds de la bibliothèque",
|
||||
"backupSelectCollectionsDescription": "Titres appréciés, liste de souhaits, artistes préférés, playlists et pochettes de playlists.",
|
||||
"backupSelectExtensions": "Les extensions et leurs paramètres",
|
||||
"backupSelectedExportDescription": "Enregistrez les catégories sélectionnées dans un fichier de sauvegarde. Les fichiers audio ne sont pas inclus.",
|
||||
"backupSelectAtLeastOne": "Sélectionnez au moins une catégorie pour créer une sauvegarde.",
|
||||
"backupSelectedRestoreMessage": "Seules les catégories répertoriées ci-dessous seront restaurées. Les catégories non incluses dans cette sauvegarde resteront inchangées. La restauration peut remplacer les données existantes et ne peut pas être annulée.",
|
||||
"backupContentsSettings": "Paramètres de l'application",
|
||||
"@backupContentsSettings": {
|
||||
"description": "Backup contents row label for settings"
|
||||
@@ -4290,10 +4389,10 @@
|
||||
"@downloadLocationSubtitle": {
|
||||
"description": "Subtitle shown in the download location picker sheet"
|
||||
},
|
||||
"storageAutomaticFolder": "Automatic folder",
|
||||
"storageAutomaticDownloadFolder": "Uses Download/SpotiFLAC when writable, otherwise app storage",
|
||||
"storageSafRecommended": "Choose folder (Recommended)",
|
||||
"storageDownloadFolderHint": "In the Android folder picker, open Download and select SpotiFLAC. If it does not exist, create it using New folder, then tap Use this folder to grant access.",
|
||||
"storageAutomaticFolder": "Dossier automatique",
|
||||
"storageAutomaticDownloadFolder": "Utilise « Download/SpotiFLAC » si l'espace de stockage est accessible en écriture, sinon le stockage de l'application",
|
||||
"storageSafRecommended": "Choisir un dossier (recommandé)",
|
||||
"storageDownloadFolderHint": "Dans le sélecteur de dossiers Android, ouvrez le dossier « Téléchargements » et sélectionnez « SpotiFLAC ». S'il n'existe pas, créez-le à l'aide de l'option « Nouveau dossier », puis appuyez sur « Utiliser ce dossier » pour autoriser l'accès.",
|
||||
"storageModeAppFolder": "Dossier « Applications » (recommandé)",
|
||||
"@storageModeAppFolder": {
|
||||
"description": "Storage mode option - app-managed folder"
|
||||
@@ -4862,39 +4961,39 @@
|
||||
"@audioAnalysisRescan": {
|
||||
"description": "Tooltip/label for the button that re-runs the audio analysis, discarding cached results"
|
||||
},
|
||||
"downloadRedownloadFakeHiRes": "Re-download fake Hi-Res",
|
||||
"downloadRedownloadFakeHiRes": "Télécharger à nouveau la fausse version haute résolution",
|
||||
"@downloadRedownloadFakeHiRes": {
|
||||
"description": "Setting title: automatically replace downloads that measure as fake Hi-Res"
|
||||
},
|
||||
"downloadRedownloadFakeHiResSubtitle": "Off by default. Check Hi-Res downloads and replace only when every audio sample is preserved. Keep the original if verification or processing fails",
|
||||
"downloadRedownloadFakeHiResSubtitle": "Désactivé par défaut. Cochez « Téléchargements haute résolution » et ne remplacez les fichiers que si tous les échantillons audio sont conservés. Conservez l'original en cas d'échec de la vérification ou du traitement.",
|
||||
"@downloadRedownloadFakeHiResSubtitle": {
|
||||
"description": "Setting subtitle for the fake Hi-Res re-download toggle"
|
||||
},
|
||||
"hiResCheckVerdictFakeCertain": "Fake Hi-Res",
|
||||
"hiResCheckVerdictFakeCertain": "Fausse haute résolution",
|
||||
"@hiResCheckVerdictFakeCertain": {
|
||||
"description": "Verdict: an exact fingerprint (padded bits or upsampling pattern) proves the file is not real Hi-Res"
|
||||
},
|
||||
"hiResCheckVerdictFakeSuspect": "Possibly a filtered master",
|
||||
"hiResCheckVerdictFakeSuspect": "Peut-être une piste principale filtrée",
|
||||
"@hiResCheckVerdictFakeSuspect": {
|
||||
"description": "Verdict: fails the cutoff test but may be a genuine master low-pass filtered in mastering"
|
||||
},
|
||||
"hiResCheckReasonSampleHold": "Every sample is repeated: upsampled by duplication",
|
||||
"hiResCheckReasonSampleHold": "Chaque échantillon est répété : suréchantillonné par duplication",
|
||||
"@hiResCheckReasonSampleHold": {
|
||||
"description": "Reason: sample-and-hold upsampling detected"
|
||||
},
|
||||
"hiResCheckReasonInterpolation": "In-between samples are linearly interpolated",
|
||||
"hiResCheckReasonInterpolation": "Les échantillons intermédiaires sont interpolés de manière linéaire",
|
||||
"@hiResCheckReasonInterpolation": {
|
||||
"description": "Reason: linear-interpolation upsampling detected"
|
||||
},
|
||||
"hiResCheckReasonImaging": "Content above 22 kHz mirrors the audible band",
|
||||
"hiResCheckReasonImaging": "Les fréquences supérieures à 22 kHz reflètent la bande audible",
|
||||
"@hiResCheckReasonImaging": {
|
||||
"description": "Reason: spectral imaging from upsampling detected"
|
||||
},
|
||||
"hiResCheckMusicContent": "Musical content",
|
||||
"hiResCheckMusicContent": "Contenu musical",
|
||||
"@hiResCheckMusicContent": {
|
||||
"description": "Label for the highest frequency that still moves with the music"
|
||||
},
|
||||
"hiResCheckUltrasonicNoise": "Above {cutoff} only steady noise (typical of DSD or analog tape transfers): a {rate} file would hold all the music",
|
||||
"hiResCheckUltrasonicNoise": "Au-dessus de {cutoff}, on n'entend qu'un bruit constant (typique du DSD ou des transferts à partir de bandes analogiques) : un fichier {rate} contiendrait l'intégralité de la musique",
|
||||
"@hiResCheckUltrasonicNoise": {
|
||||
"description": "Shown when the ultrasonic content of a Hi-Res file is noise rather than music",
|
||||
"placeholders": {
|
||||
@@ -4906,55 +5005,110 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckTitle": "Hi-Res Authenticity",
|
||||
"hiResCheckTitle": "Authenticité haute résolution",
|
||||
"@hiResCheckTitle": {
|
||||
"description": "Title of the fake Hi-Res check card"
|
||||
},
|
||||
"hiResCheckDescription": "Detect upsampled or bit-padded fake Hi-Res files",
|
||||
"hiResCheckSummary": "Vérifiez le spectre et la profondeur de bits active pour détecter d'éventuels signes de suréchantillonnage ou de remplissage.",
|
||||
"@hiResCheckSummary": {
|
||||
"description": "Introductory text for the sampled Hi-Res analysis"
|
||||
},
|
||||
"hiResCheckLimitedBandwidth": "Bande passante limitée",
|
||||
"@hiResCheckLimitedBandwidth": {
|
||||
"description": "Neutral finding: a limited spectrum alone does not prove upsampling"
|
||||
},
|
||||
"hiResCheckNoEvidence": "Aucun suréchantillonnage ni remplissage détecté",
|
||||
"@hiResCheckNoEvidence": {
|
||||
"description": "No evidence was detected; this does not certify the master"
|
||||
},
|
||||
"hiResCheckEstimatedCutoff": "Seuil estimé",
|
||||
"@hiResCheckEstimatedCutoff": {
|
||||
"description": "Estimated upper spectral edge at the analysis threshold"
|
||||
},
|
||||
"hiResCheckActiveBits": "Bits actifs / stockés",
|
||||
"@hiResCheckActiveBits": {
|
||||
"description": "Active integer bit depth versus the container depth in the sampled segment"
|
||||
},
|
||||
"hiResCheckBandwidthExplanation": "Une fréquence de coupure inférieure peut résulter du mastering. Elle ne prouve pas, en soi, qu'il y a eu suréchantillonnage.",
|
||||
"@hiResCheckBandwidthExplanation": {
|
||||
"description": "Explains why the limited-bandwidth finding is neutral"
|
||||
},
|
||||
"hiResCheckSampledExplanation": "Sur la base de {seconds} secondes d'enregistrement audio. Cette analyse ne permet pas de certifier l'authenticité de la source originale.",
|
||||
"@hiResCheckSampledExplanation": {
|
||||
"description": "Limits of the sampled Hi-Res analysis; seconds is a formatted duration",
|
||||
"placeholders": {
|
||||
"seconds": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckImagingEvidence": "Le spectre présente des bandes symétriques, ce qui correspond à un suréchantillonnage.",
|
||||
"@hiResCheckImagingEvidence": {
|
||||
"description": "Spectral imaging is suggestive evidence rather than proof"
|
||||
},
|
||||
"hiResCheckRateEvidence": "Une forte atténuation en proximité de {cutoff} et le niveau de bruit de fond mesuré laissent supposer une source à faible débit.",
|
||||
"@hiResCheckRateEvidence": {
|
||||
"description": "Heuristic evidence from both a brickwall and a 16-bit-like noise floor",
|
||||
"placeholders": {
|
||||
"cutoff": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckSteadyEnergy": "L'énergie au-dessus de {cutoff} est globalement stable dans le segment analysé et pourrait correspondre à du bruit.",
|
||||
"@hiResCheckSteadyEnergy": {
|
||||
"description": "An observation about ultrasonic energy, not proof that removing it is safe",
|
||||
"placeholders": {
|
||||
"cutoff": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckDescription": "Détecter les faux fichiers « haute résolution » issus d'un suréchantillonnage ou d'un remplissage binaire",
|
||||
"@hiResCheckDescription": {
|
||||
"description": "Explains what the Hi-Res authenticity check does"
|
||||
},
|
||||
"hiResCheckRun": "Check",
|
||||
"hiResCheckRun": "Vérifier",
|
||||
"@hiResCheckRun": {
|
||||
"description": "Button that starts the Hi-Res authenticity check"
|
||||
},
|
||||
"hiResCheckChecking": "Checking Hi-Res authenticity...",
|
||||
"hiResCheckChecking": "Vérification de l'authenticité de la haute résolution...",
|
||||
"@hiResCheckChecking": {
|
||||
"description": "Loading text while the Hi-Res check runs"
|
||||
},
|
||||
"hiResCheckVerdictFake": "Likely fake Hi-Res",
|
||||
"hiResCheckVerdictFake": "Probablement une fausse image haute résolution",
|
||||
"@hiResCheckVerdictFake": {
|
||||
"description": "Verdict: the file claims Hi-Res but does not measure as it"
|
||||
},
|
||||
"hiResCheckVerdictGenuine": "Measures as genuine Hi-Res",
|
||||
"hiResCheckVerdictGenuine": "Offre une véritable haute résolution",
|
||||
"@hiResCheckVerdictGenuine": {
|
||||
"description": "Verdict: no upsampling or padded bit depth found"
|
||||
},
|
||||
"hiResCheckVerdictStandard": "Standard definition, nothing to flag",
|
||||
"hiResCheckVerdictStandard": "Définition standard, rien à signaler",
|
||||
"@hiResCheckVerdictStandard": {
|
||||
"description": "Verdict: neither sample rate nor bit depth claims Hi-Res"
|
||||
},
|
||||
"hiResCheckVerdictInconclusive": "Inconclusive: the analyzed segment is too quiet or short",
|
||||
"hiResCheckVerdictInconclusive": "Résultat non concluant : le segment analysé est trop silencieux ou trop court",
|
||||
"@hiResCheckVerdictInconclusive": {
|
||||
"description": "Verdict: analysis could not reach a reliable conclusion"
|
||||
},
|
||||
"hiResCheckUnsupported": "Only FLAC and WAV files can be checked",
|
||||
"hiResCheckUnsupported": "Seuls les fichiers FLAC et WAV peuvent être vérifiés",
|
||||
"@hiResCheckUnsupported": {
|
||||
"description": "Shown when the file format cannot be decoded by the Hi-Res check"
|
||||
},
|
||||
"hiResCheckCutoff": "Content cutoff",
|
||||
"hiResCheckCutoff": "Fin du contenu",
|
||||
"@hiResCheckCutoff": {
|
||||
"description": "Label for the highest frequency with real content"
|
||||
},
|
||||
"hiResCheckBitsInUse": "Bits in use",
|
||||
"hiResCheckBitsInUse": "Bits utilisés",
|
||||
"@hiResCheckBitsInUse": {
|
||||
"description": "Label for effective vs declared bit depth"
|
||||
},
|
||||
"hiResCheckDisclaimer": "The spectrum stops early, but nothing proves it was upsampled: it may be a genuine master low-pass filtered in mastering. It is not replaced automatically.",
|
||||
"hiResCheckDisclaimer": "Le spectre s'arrête prématurément, mais rien ne prouve qu'il ait été suréchantillonné : il peut s'agir d'un master authentique ayant subi un filtrage passe-bas lors du mastering. Il n'est pas remplacé automatiquement.",
|
||||
"@hiResCheckDisclaimer": {
|
||||
"description": "Caveat shown under a fake Hi-Res verdict"
|
||||
},
|
||||
"hiResCheckFailed": "Hi-Res check failed: {error}",
|
||||
"hiResCheckFailed": "Échec de la vérification haute résolution : {error}",
|
||||
"@hiResCheckFailed": {
|
||||
"description": "Error shown when the Hi-Res check fails",
|
||||
"placeholders": {
|
||||
@@ -4963,7 +5117,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckReasonRate": "Declares {sampleRate} but content stops at ~{cutoff}",
|
||||
"hiResCheckReasonRate": "Indique {sampleRate}, mais le contenu s'arrête à environ {cutoff}",
|
||||
"@hiResCheckReasonRate": {
|
||||
"description": "Reason for a fake verdict caused by upsampling",
|
||||
"placeholders": {
|
||||
@@ -4975,7 +5129,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckReasonDepth": "Declares {declared}-bit but only {effective} bits carry data",
|
||||
"hiResCheckReasonDepth": "Déclare {declared} bits, mais seuls les {effective} bits contiennent des données",
|
||||
"@hiResCheckReasonDepth": {
|
||||
"description": "Reason for a fake verdict caused by padded bit depth",
|
||||
"placeholders": {
|
||||
@@ -5256,6 +5410,19 @@
|
||||
"@notifLibraryScanStopped": {
|
||||
"description": "Notification body when library scan is cancelled"
|
||||
},
|
||||
"notifLibraryScanPaused": "La numérisation de la bibliothèque est en pause",
|
||||
"@notifLibraryScanPaused": {
|
||||
"description": "Notification title when the user pauses a library scan"
|
||||
},
|
||||
"notifLibraryScanPausedBody": "{count} fichiers analysés. Rendez-vous dans les paramètres de la bibliothèque locale pour reprendre à partir de là.",
|
||||
"@notifLibraryScanPausedBody": {
|
||||
"description": "Notification body for a paused library scan - files scanned so far",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"notifDownloadingUpdate": "Télécharger SpotiFLAC v{version}",
|
||||
"@notifDownloadingUpdate": {
|
||||
"description": "Notification title while downloading an app update",
|
||||
@@ -6266,7 +6433,7 @@
|
||||
"@libraryBuiltInPreviewPlayer": {
|
||||
"description": "Setting option to use the built-in preview player"
|
||||
},
|
||||
"libraryBuiltInPreviewPlayerSubtitle": "Quick local previews inside SpotiFLAC Mobile",
|
||||
"libraryBuiltInPreviewPlayerSubtitle": "Aperçus rapides en local dans SpotiFLAC Mobile",
|
||||
"@libraryBuiltInPreviewPlayerSubtitle": {
|
||||
"description": "Subtitle for built-in preview player option"
|
||||
},
|
||||
@@ -6287,6 +6454,31 @@
|
||||
"description": "Tooltip for minimizing the now playing screen"
|
||||
},
|
||||
"nowPlayingUpNext": "À suivre",
|
||||
"nowPlayingAudioOutput": "Sortie audio",
|
||||
"nowPlayingWrittenBy": "Écrit par : {writers}",
|
||||
"@nowPlayingWrittenBy": {
|
||||
"placeholders": {
|
||||
"writers": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"nowPlayingLyricsProvider": "Paroles : {provider}",
|
||||
"@nowPlayingLyricsProvider": {
|
||||
"placeholders": {
|
||||
"provider": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"concertGetTickets": "Acheter des billets",
|
||||
"concertSetList": "Liste des morceaux du concert",
|
||||
"concertSetListButton": "Liste des morceaux",
|
||||
"concertAddToCalendar": "Ajouter au calendrier",
|
||||
"concertOpenMaps": "Ouvrir Maps",
|
||||
"concertDetailsUnavailable": "Les informations concernant le concert ne sont pas disponibles pour le moment.",
|
||||
"concertCalendarUnavailable": "Impossible d'ouvrir le calendrier.",
|
||||
"nowPlayingAudioOutputUnavailable": "Impossible d'ouvrir les paramètres de sortie audio.",
|
||||
"@nowPlayingUpNext": {
|
||||
"description": "Title for the playback queue sheet"
|
||||
},
|
||||
@@ -6354,6 +6546,18 @@
|
||||
"description": "Tab label for the lyrics view"
|
||||
},
|
||||
"nowPlayingNoLyrics": "Ce fichier ne contient pas de paroles",
|
||||
"nowPlayingInstrumental": "Instrumental",
|
||||
"@nowPlayingInstrumental": {
|
||||
"description": "Accessibility label for the three-dot countdown during an instrumental break before lyrics resume"
|
||||
},
|
||||
"nowPlayingLyricsLanguageOptions": "Options de langue pour les paroles",
|
||||
"@nowPlayingLyricsLanguageOptions": {
|
||||
"description": "Tooltip for the player menu that shows or hides existing lyric pronunciation and translation"
|
||||
},
|
||||
"nowPlayingHidePronunciation": "Masquer la prononciation",
|
||||
"nowPlayingShowPronunciation": "Afficher la prononciation",
|
||||
"nowPlayingHideTranslation": "Masquer la traduction",
|
||||
"nowPlayingShowTranslation": "Afficher la traduction",
|
||||
"@nowPlayingNoLyrics": {
|
||||
"description": "Empty state when the playing file has no embedded lyrics"
|
||||
},
|
||||
@@ -6761,6 +6965,10 @@
|
||||
"@libraryFilterMetadataMissingLyrics": {
|
||||
"description": "Filter option for tracks without embedded or sidecar lyrics"
|
||||
},
|
||||
"libraryFilterMetadataMissingReplayGain": "ReplayGain manquant",
|
||||
"@libraryFilterMetadataMissingReplayGain": {
|
||||
"description": "Filter option for scanned tracks without ReplayGain gain tags"
|
||||
},
|
||||
"trackOptionCopyTrackName": "Copier le titre de la piste",
|
||||
"@trackOptionCopyTrackName": {
|
||||
"description": "Track menu action that copies the track title"
|
||||
@@ -6781,9 +6989,9 @@
|
||||
"@metadataCopyField": {
|
||||
"description": "Metadata menu action that copies the selected key and value"
|
||||
},
|
||||
"mornyeShowTabs": "Show tabs",
|
||||
"mornyeSearch": "Search",
|
||||
"mornyeContinuePlaying": "Continue Playing",
|
||||
"mornyeShowTabs": "Afficher les onglets",
|
||||
"mornyeSearch": "Rechercher",
|
||||
"mornyeContinuePlaying": "Continuer à lire",
|
||||
"metadataCopyAll": "Copier toutes les métadonnées",
|
||||
"@metadataCopyAll": {
|
||||
"description": "Metadata menu action that copies every visible key and value"
|
||||
@@ -6796,28 +7004,34 @@
|
||||
"@optionsEmbeddedCoverSizeDescription": {
|
||||
"description": "Description shown in the embedded cover size picker"
|
||||
},
|
||||
"mornyeFavorite": "Favorite",
|
||||
"mornyeGoToArtist": "Go to Artist",
|
||||
"mornyeFavorite": "Favoris",
|
||||
"mornyeGoToArtist": "Aller à la page de l'artiste",
|
||||
"@mornyeFavorite": {
|
||||
"description": "Compact context menu action that adds a track to Loved"
|
||||
},
|
||||
"mornyeFavorited": "Favorited",
|
||||
"mornyeFavorited": "Ajouté aux favoris",
|
||||
"@mornyeFavorited": {
|
||||
"description": "Selected state of the compact favorite action"
|
||||
},
|
||||
"autoMixDescription": "Blend songs with beat matching and pitch-preserving tempo adjustment. Uses crossfade when beats cannot be matched.",
|
||||
"autoMixOn": "AutoMix on",
|
||||
"autoMixOff": "AutoMix off",
|
||||
"profileTitle": "Profile",
|
||||
"profileSetUp": "Set up your profile",
|
||||
"profileEdit": "Edit name and photo",
|
||||
"backupIncludesProfile": "Includes your profile name and photo",
|
||||
"profileName": "Name",
|
||||
"profileNameHint": "Your name",
|
||||
"profileChangePhoto": "Choose photo",
|
||||
"profileRemovePhoto": "Remove photo",
|
||||
"profilePhotoError": "Choose a valid image smaller than 20 MB.",
|
||||
"profileSaveError": "Could not save your profile. Please try again.",
|
||||
"autoMixDescription": "Mélangez des morceaux grâce à la synchronisation des rythmes et à l'ajustement du tempo tout en conservant la hauteur tonale. Utilise un fondu enchaîné lorsque les rythmes ne peuvent pas être synchronisés.",
|
||||
"autoMixOn": "AutoMix activé",
|
||||
"autoMixOff": "AutoMix désactivé",
|
||||
"autoplayOn": "Lecture automatique activée",
|
||||
"autoplayOff": "Lecture automatique désactivée",
|
||||
"autoplayFromLibrary": "Lecture automatique à partir de votre bibliothèque",
|
||||
"profileTitle": "Profil",
|
||||
"profileSetUp": "Configurez votre profil",
|
||||
"profileEdit": "Modifier le nom et la photo",
|
||||
"backupIncludesProfile": "Comprend le nom et la photo de votre profil",
|
||||
"profileName": "Nom",
|
||||
"profileNameHint": "Votre nom",
|
||||
"profileChangePhoto": "Choisir une photo",
|
||||
"profileRemovePhoto": "Supprimer la photo",
|
||||
"profilePhotoError": "Choisissez une image valide dont la taille est inférieure à 20 Mo.",
|
||||
"profileSaveError": "Impossible d'enregistrer votre profil. Veuillez réessayer.",
|
||||
"artistUpcomingConcerts": "Prochains concerts",
|
||||
"artistAllUpcomingConcerts": "Tous les concerts à venir",
|
||||
"artistNoUpcomingConcerts": "Aucun concert prévu.",
|
||||
"optionsEmbeddedCoverSizeOriginal": "Résolution originale",
|
||||
"@optionsEmbeddedCoverSizeOriginal": {
|
||||
"description": "Option that preserves the provider artwork at its original resolution"
|
||||
|
||||
+215
-1
@@ -1,4 +1,31 @@
|
||||
{
|
||||
"settingsPlaybackSubtitle": "Player, volume, AutoMix, and audio output",
|
||||
"sectionPlayer": "Player",
|
||||
"sectionVolumeAndTransitions": "Volume and transitions",
|
||||
"sectionAudioOutput": "Audio output",
|
||||
"usbBitPerfect": "Hi-res and bit-perfect audio",
|
||||
"usbBitPerfectDescription": "Preserve source precision on compatible outputs. Choose direct USB or AAudio exclusive below; otherwise Android USB output requires Android 14 or later. Applies from the next track, without AutoMix or normalization. System volume may not control direct USB.",
|
||||
"usbHardwareVolume": "DAC hardware volume",
|
||||
"usbVolumeWarningTitle": "Check your listening volume",
|
||||
"usbVolumeWarning": "Direct USB audio can be much louder than normal playback, and phone volume buttons may not control it. Lower your DAC or amplifier volume before starting. When supported, SpotiFLAC sets the DAC to at most −40 dB on connection; this does not guarantee a safe listening level on every amplifier or headphone.",
|
||||
"usbVolumeAccept": "I understand",
|
||||
"usbVolumeUnavailable": "Playback is paused because this DAC has no verified hardware volume control. Lower the DAC or amplifier volume, then enable fixed-volume output if needed and select the track again.",
|
||||
"usbFixedVolume": "Allow fixed-volume USB output",
|
||||
"usbFixedVolumeDescription": "For DACs without a volume control accessible to the app. Keep off for USB headsets without their own volume control. Applies from the next track.",
|
||||
"usbFixedVolumeWarning": "The app cannot lower the volume on this output. Audio may start at full level, and the phone volume slider will not help. Only continue after lowering the volume on your DAC or external amplifier. Do not enable this for a headset without its own volume control.",
|
||||
"dapExclusive": "DAP hi-res (AAudio exclusive)",
|
||||
"dapExclusiveDescription": "Use Oboe/AAudio at the track's original rate and precision for FLAC/WAV PCM. Requires Android 8.1 or later and compatible hardware. Exclusive access is checked; unavailable formats use normal playback. DSD requires the direct USB driver. Applies from the next track.",
|
||||
"dapExclusiveUnavailable": "AAudio exclusive access is unavailable for this track and current output. Using normal playback. For a USB DAC, try the direct USB driver.",
|
||||
"usbDirect": "Direct USB driver",
|
||||
"usbDirectDescription": "Use exclusive USB audio for FLAC/WAV, DSF/DFF and WavPack DSD, with Android USB permission. Native DSD requires a recognized compatible DAC. Other PCM formats use normal playback. Applies from the next track.",
|
||||
"usbDsdOverPcm": "DSD over PCM (DoP)",
|
||||
"usbDsdOverPcmDescription": "Enable only if your DAC explicitly supports DoP. Sends DSF/DFF and WavPack DSD inside a PCM carrier when native DSD is unavailable. An incompatible device may play noise; leave off for ordinary USB headsets.",
|
||||
"usbDsdUnsupported": "This DSD format or connected DAC is not supported. Playback stopped.",
|
||||
"usbPermissionDenied": "USB permission was not granted. Using normal playback.",
|
||||
"usbBitPerfectPending": "Waiting for the next track and a compatible USB output.",
|
||||
"usbBitPerfectNoDevice": "No USB DAC connected. Using normal audio output.",
|
||||
"usbBitPerfectFallback": "This device or audio format does not support bit-perfect output. Using normal playback.",
|
||||
"usbBitPerfectRouteChanged": "The USB audio route changed. Playback paused; select a track to reconnect.",
|
||||
"upgradeIntroWelcome": "Welcome to\nSpotiFLAC-Mobile 5.0",
|
||||
"upgradeIntroThemeTitle": "Make it\nyour own.",
|
||||
"upgradeIntroThemeBody": "Choose a look. Your choice applies immediately, and you can change it later in Appearance.",
|
||||
@@ -36,6 +63,32 @@
|
||||
"description": "System volume control label in the Mornye player"
|
||||
},
|
||||
"appearanceStyle": "App Style",
|
||||
"appearanceAccentRed": "Red (default)",
|
||||
"appearanceAccentOrange": "Orange",
|
||||
"appearanceAccentGreen": "Green",
|
||||
"appearanceAccentTeal": "Teal",
|
||||
"appearanceAccentBlue": "Blue",
|
||||
"appearanceAccentPurple": "Purple",
|
||||
"appearanceAccentPink": "Pink",
|
||||
"appearanceGlassClarity": "Glass clarity",
|
||||
"appearanceGlassClaritySubtitle": "Adjust transparency in Mornye menus and navigation. Text contrast is preserved.",
|
||||
"appearanceGlassTinted": "Tinted",
|
||||
"appearanceGlassClear": "Clear",
|
||||
"appearanceGlassClarityBlurOff": "Glass is opaque on this device. Turn on “{setting}” to adjust clarity.",
|
||||
"@appearanceGlassClarityBlurOff": {
|
||||
"description": "Shown under the disabled glass clarity slider when the device renders Mornye glass without blur. The placeholder is the name of the force-blur toggle.",
|
||||
"placeholders": {
|
||||
"setting": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appearanceGlassClarityHighContrast": "Glass stays opaque while the system’s high contrast setting is on.",
|
||||
"@appearanceGlassClarityHighContrast": {
|
||||
"description": "Shown under the disabled glass clarity slider while the OS high contrast accessibility setting is on"
|
||||
},
|
||||
"appearanceUseSystemFont": "Use system font",
|
||||
"appearanceUseSystemFontSubtitle": "Use your device’s default typeface for app text.",
|
||||
"@appearanceStyle": {
|
||||
"description": "Appearance section for choosing the app visual style"
|
||||
},
|
||||
@@ -255,6 +308,38 @@
|
||||
"@trackReplayGainFailed": {
|
||||
"description": "Snackbar message when ReplayGain scan/write fails"
|
||||
},
|
||||
"trackRemoveReplayGain": "Remove ReplayGain",
|
||||
"trackRemoveReplayGainSuccess": "ReplayGain tags removed",
|
||||
"trackRemoveReplayGainFailed": "Failed to remove ReplayGain tags",
|
||||
"replayGainRemoving": "Removing ReplayGain...",
|
||||
"replayGainRemoveConfirmMessage": "Remove track and album ReplayGain tags from {count} track(s)? Audio, artwork, and other metadata will be preserved.",
|
||||
"@replayGainRemoveConfirmMessage": {
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionRemoveReplayGainCount": "Remove RG ({count})",
|
||||
"@selectionRemoveReplayGainCount": {
|
||||
"description": "Compact selection action label. RG abbreviates ReplayGain; keep this short for a two-column toolbar.",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"replayGainRemoveBatchSuccess": "ReplayGain removed from {success} of {total} tracks",
|
||||
"@replayGainRemoveBatchSuccess": {
|
||||
"placeholders": {
|
||||
"success": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionReplayGainCount": "ReplayGain ({count})",
|
||||
"@selectionReplayGainCount": {
|
||||
"description": "Batch selection action button label for ReplayGain",
|
||||
@@ -318,6 +403,14 @@
|
||||
"@optionsArtistTagModeSplitVorbisSubtitle": {
|
||||
"description": "Subtitle for split Vorbis artist tag mode"
|
||||
},
|
||||
"optionsArtistTagModePrimary": "Primary artist only",
|
||||
"@optionsArtistTagModePrimary": {
|
||||
"description": "Artist tag mode option that writes only the first credited artist"
|
||||
},
|
||||
"optionsArtistTagModePrimarySubtitle": "Write only the first artist, like \"Artist A\", to Artist and Album Artist in every format, so players list one artist.",
|
||||
"@optionsArtistTagModePrimarySubtitle": {
|
||||
"description": "Subtitle for the primary-artist tag mode. Applies when downloading and re-enriching; manual edits keep what the user typed."
|
||||
},
|
||||
"optionsExtensionStore": "Extension Repo",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide repo tab"
|
||||
@@ -1476,6 +1569,8 @@
|
||||
"@sectionLyrics": {
|
||||
"description": "Settings section header"
|
||||
},
|
||||
"lyricsKeepScreenOn": "Keep screen on while viewing lyrics",
|
||||
"lyricsKeepScreenOnSubtitle": "Prevent screen timeout while lyrics are open, including when playback is paused.",
|
||||
"lyricsMode": "Lyrics Mode",
|
||||
"@lyricsMode": {
|
||||
"description": "Setting - how to save lyrics"
|
||||
@@ -2757,6 +2852,10 @@
|
||||
"@libraryScanFinalizing": {
|
||||
"description": "Status shown after file scanning finishes but library persistence is still running"
|
||||
},
|
||||
"libraryScanPaused": "Scan paused",
|
||||
"@libraryScanPaused": {
|
||||
"description": "Status shown while a library scan is paused by the user"
|
||||
},
|
||||
"libraryScanProgress": "{progress}% of {total} files",
|
||||
"@libraryScanProgress": {
|
||||
"description": "Scan progress display",
|
||||
@@ -4910,6 +5009,61 @@
|
||||
"@hiResCheckTitle": {
|
||||
"description": "Title of the fake Hi-Res check card"
|
||||
},
|
||||
"hiResCheckSummary": "Inspect the spectrum and active bit depth for signs of upsampling or padding.",
|
||||
"@hiResCheckSummary": {
|
||||
"description": "Introductory text for the sampled Hi-Res analysis"
|
||||
},
|
||||
"hiResCheckLimitedBandwidth": "Limited bandwidth",
|
||||
"@hiResCheckLimitedBandwidth": {
|
||||
"description": "Neutral finding: a limited spectrum alone does not prove upsampling"
|
||||
},
|
||||
"hiResCheckNoEvidence": "No upsampling or padding detected",
|
||||
"@hiResCheckNoEvidence": {
|
||||
"description": "No evidence was detected; this does not certify the master"
|
||||
},
|
||||
"hiResCheckEstimatedCutoff": "Estimated cutoff",
|
||||
"@hiResCheckEstimatedCutoff": {
|
||||
"description": "Estimated upper spectral edge at the analysis threshold"
|
||||
},
|
||||
"hiResCheckActiveBits": "Active / stored bits",
|
||||
"@hiResCheckActiveBits": {
|
||||
"description": "Active integer bit depth versus the container depth in the sampled segment"
|
||||
},
|
||||
"hiResCheckBandwidthExplanation": "A lower cutoff can come from mastering. It does not, by itself, prove upsampling.",
|
||||
"@hiResCheckBandwidthExplanation": {
|
||||
"description": "Explains why the limited-bandwidth finding is neutral"
|
||||
},
|
||||
"hiResCheckSampledExplanation": "Based on {seconds} seconds of audio. This analysis cannot certify the original master.",
|
||||
"@hiResCheckSampledExplanation": {
|
||||
"description": "Limits of the sampled Hi-Res analysis; seconds is a formatted duration",
|
||||
"placeholders": {
|
||||
"seconds": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckImagingEvidence": "The spectrum contains mirrored bands consistent with upsampling.",
|
||||
"@hiResCheckImagingEvidence": {
|
||||
"description": "Spectral imaging is suggestive evidence rather than proof"
|
||||
},
|
||||
"hiResCheckRateEvidence": "A sharp roll-off near {cutoff} and the measured noise floor suggest a lower-rate source.",
|
||||
"@hiResCheckRateEvidence": {
|
||||
"description": "Heuristic evidence from both a brickwall and a 16-bit-like noise floor",
|
||||
"placeholders": {
|
||||
"cutoff": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckSteadyEnergy": "Energy above {cutoff} is mostly steady in the analyzed segment and may be noise.",
|
||||
"@hiResCheckSteadyEnergy": {
|
||||
"description": "An observation about ultrasonic energy, not proof that removing it is safe",
|
||||
"placeholders": {
|
||||
"cutoff": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckDescription": "Detect upsampled or bit-padded fake Hi-Res files",
|
||||
"@hiResCheckDescription": {
|
||||
"description": "Explains what the Hi-Res authenticity check does"
|
||||
@@ -5256,6 +5410,19 @@
|
||||
"@notifLibraryScanStopped": {
|
||||
"description": "Notification body when library scan is cancelled"
|
||||
},
|
||||
"notifLibraryScanPaused": "Library scan paused",
|
||||
"@notifLibraryScanPaused": {
|
||||
"description": "Notification title when the user pauses a library scan"
|
||||
},
|
||||
"notifLibraryScanPausedBody": "{count} files scanned. Resume in Local Library settings to continue from here.",
|
||||
"@notifLibraryScanPausedBody": {
|
||||
"description": "Notification body for a paused library scan - files scanned so far",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"notifDownloadingUpdate": "Downloading SpotiFLAC Mobile v{version}",
|
||||
"@notifDownloadingUpdate": {
|
||||
"description": "Notification title while downloading an app update",
|
||||
@@ -6287,6 +6454,31 @@
|
||||
"description": "Tooltip for minimizing the now playing screen"
|
||||
},
|
||||
"nowPlayingUpNext": "Up next",
|
||||
"nowPlayingAudioOutput": "Audio Output",
|
||||
"nowPlayingWrittenBy": "Written by: {writers}",
|
||||
"@nowPlayingWrittenBy": {
|
||||
"placeholders": {
|
||||
"writers": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"nowPlayingLyricsProvider": "Lyrics: {provider}",
|
||||
"@nowPlayingLyricsProvider": {
|
||||
"placeholders": {
|
||||
"provider": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"concertGetTickets": "Get Tickets",
|
||||
"concertSetList": "Concert Set List",
|
||||
"concertSetListButton": "Set List",
|
||||
"concertAddToCalendar": "Add to Calendar",
|
||||
"concertOpenMaps": "Open Maps",
|
||||
"concertDetailsUnavailable": "Concert details are currently unavailable.",
|
||||
"concertCalendarUnavailable": "Unable to open the calendar.",
|
||||
"nowPlayingAudioOutputUnavailable": "Unable to open audio output settings.",
|
||||
"@nowPlayingUpNext": {
|
||||
"description": "Title for the playback queue sheet"
|
||||
},
|
||||
@@ -6354,6 +6546,18 @@
|
||||
"description": "Tab label for the lyrics view"
|
||||
},
|
||||
"nowPlayingNoLyrics": "No lyrics in this file",
|
||||
"nowPlayingInstrumental": "Instrumental",
|
||||
"@nowPlayingInstrumental": {
|
||||
"description": "Accessibility label for the three-dot countdown during an instrumental break before lyrics resume"
|
||||
},
|
||||
"nowPlayingLyricsLanguageOptions": "Lyrics language options",
|
||||
"@nowPlayingLyricsLanguageOptions": {
|
||||
"description": "Tooltip for the player menu that shows or hides existing lyric pronunciation and translation"
|
||||
},
|
||||
"nowPlayingHidePronunciation": "Hide Pronunciation",
|
||||
"nowPlayingShowPronunciation": "Show Pronunciation",
|
||||
"nowPlayingHideTranslation": "Hide Translation",
|
||||
"nowPlayingShowTranslation": "Show Translation",
|
||||
"@nowPlayingNoLyrics": {
|
||||
"description": "Empty state when the playing file has no embedded lyrics"
|
||||
},
|
||||
@@ -6761,6 +6965,10 @@
|
||||
"@libraryFilterMetadataMissingLyrics": {
|
||||
"description": "Filter option for tracks without embedded or sidecar lyrics"
|
||||
},
|
||||
"libraryFilterMetadataMissingReplayGain": "Missing ReplayGain",
|
||||
"@libraryFilterMetadataMissingReplayGain": {
|
||||
"description": "Filter option for scanned tracks without ReplayGain gain tags"
|
||||
},
|
||||
"trackOptionCopyTrackName": "Copy track name",
|
||||
"@trackOptionCopyTrackName": {
|
||||
"description": "Track menu action that copies the track title"
|
||||
@@ -6808,6 +7016,9 @@
|
||||
"autoMixDescription": "Blend songs with beat matching and pitch-preserving tempo adjustment. Uses crossfade when beats cannot be matched.",
|
||||
"autoMixOn": "AutoMix on",
|
||||
"autoMixOff": "AutoMix off",
|
||||
"autoplayOn": "Autoplay on",
|
||||
"autoplayOff": "Autoplay off",
|
||||
"autoplayFromLibrary": "Autoplay from your Library",
|
||||
"profileTitle": "Profile",
|
||||
"profileSetUp": "Set up your profile",
|
||||
"profileEdit": "Edit name and photo",
|
||||
@@ -6818,8 +7029,11 @@
|
||||
"profileRemovePhoto": "Remove photo",
|
||||
"profilePhotoError": "Choose a valid image smaller than 20 MB.",
|
||||
"profileSaveError": "Could not save your profile. Please try again.",
|
||||
"artistUpcomingConcerts": "Upcoming Concerts",
|
||||
"artistAllUpcomingConcerts": "All Upcoming Concerts",
|
||||
"artistNoUpcomingConcerts": "No upcoming concerts.",
|
||||
"optionsEmbeddedCoverSizeOriginal": "Original resolution",
|
||||
"@optionsEmbeddedCoverSizeOriginal": {
|
||||
"description": "Option that preserves the provider artwork at its original resolution"
|
||||
}
|
||||
}
|
||||
}
|
||||
+458
-351
File diff suppressed because it is too large.
Load diff
@@ -1,4 +1,31 @@
|
||||
{
|
||||
"settingsPlaybackSubtitle": "Player, volume, AutoMix, and audio output",
|
||||
"sectionPlayer": "Player",
|
||||
"sectionVolumeAndTransitions": "Volume and transitions",
|
||||
"sectionAudioOutput": "Audio output",
|
||||
"usbBitPerfect": "Hi-res and bit-perfect audio",
|
||||
"usbBitPerfectDescription": "Preserve source precision on compatible outputs. Choose direct USB or AAudio exclusive below; otherwise Android USB output requires Android 14 or later. Applies from the next track, without AutoMix or normalization. System volume may not control direct USB.",
|
||||
"usbHardwareVolume": "DAC hardware volume",
|
||||
"usbVolumeWarningTitle": "Check your listening volume",
|
||||
"usbVolumeWarning": "Direct USB audio can be much louder than normal playback, and phone volume buttons may not control it. Lower your DAC or amplifier volume before starting. When supported, SpotiFLAC sets the DAC to at most −40 dB on connection; this does not guarantee a safe listening level on every amplifier or headphone.",
|
||||
"usbVolumeAccept": "I understand",
|
||||
"usbVolumeUnavailable": "Playback is paused because this DAC has no verified hardware volume control. Lower the DAC or amplifier volume, then enable fixed-volume output if needed and select the track again.",
|
||||
"usbFixedVolume": "Allow fixed-volume USB output",
|
||||
"usbFixedVolumeDescription": "For DACs without a volume control accessible to the app. Keep off for USB headsets without their own volume control. Applies from the next track.",
|
||||
"usbFixedVolumeWarning": "The app cannot lower the volume on this output. Audio may start at full level, and the phone volume slider will not help. Only continue after lowering the volume on your DAC or external amplifier. Do not enable this for a headset without its own volume control.",
|
||||
"dapExclusive": "DAP hi-res (AAudio exclusive)",
|
||||
"dapExclusiveDescription": "Use Oboe/AAudio at the track's original rate and precision for FLAC/WAV PCM. Requires Android 8.1 or later and compatible hardware. Exclusive access is checked; unavailable formats use normal playback. DSD requires the direct USB driver. Applies from the next track.",
|
||||
"dapExclusiveUnavailable": "AAudio exclusive access is unavailable for this track and current output. Using normal playback. For a USB DAC, try the direct USB driver.",
|
||||
"usbDirect": "Direct USB driver",
|
||||
"usbDirectDescription": "Use exclusive USB audio for FLAC/WAV, DSF/DFF and WavPack DSD, with Android USB permission. Native DSD requires a recognized compatible DAC. Other PCM formats use normal playback. Applies from the next track.",
|
||||
"usbDsdOverPcm": "DSD over PCM (DoP)",
|
||||
"usbDsdOverPcmDescription": "Enable only if your DAC explicitly supports DoP. Sends DSF/DFF and WavPack DSD inside a PCM carrier when native DSD is unavailable. An incompatible device may play noise; leave off for ordinary USB headsets.",
|
||||
"usbDsdUnsupported": "This DSD format or connected DAC is not supported. Playback stopped.",
|
||||
"usbPermissionDenied": "USB permission was not granted. Using normal playback.",
|
||||
"usbBitPerfectPending": "Waiting for the next track and a compatible USB output.",
|
||||
"usbBitPerfectNoDevice": "No USB DAC connected. Using normal audio output.",
|
||||
"usbBitPerfectFallback": "This device or audio format does not support bit-perfect output. Using normal playback.",
|
||||
"usbBitPerfectRouteChanged": "The USB audio route changed. Playback paused; select a track to reconnect.",
|
||||
"upgradeIntroWelcome": "Welcome to\nSpotiFLAC-Mobile 5.0",
|
||||
"upgradeIntroThemeTitle": "Make it\nyour own.",
|
||||
"upgradeIntroThemeBody": "Choose a look. Your choice applies immediately, and you can change it later in Appearance.",
|
||||
@@ -36,6 +63,32 @@
|
||||
"description": "System volume control label in the Mornye player"
|
||||
},
|
||||
"appearanceStyle": "App Style",
|
||||
"appearanceAccentRed": "Red (default)",
|
||||
"appearanceAccentOrange": "Orange",
|
||||
"appearanceAccentGreen": "Green",
|
||||
"appearanceAccentTeal": "Teal",
|
||||
"appearanceAccentBlue": "Blue",
|
||||
"appearanceAccentPurple": "Purple",
|
||||
"appearanceAccentPink": "Pink",
|
||||
"appearanceGlassClarity": "Glass clarity",
|
||||
"appearanceGlassClaritySubtitle": "Adjust transparency in Mornye menus and navigation. Text contrast is preserved.",
|
||||
"appearanceGlassTinted": "Tinted",
|
||||
"appearanceGlassClear": "Clear",
|
||||
"appearanceGlassClarityBlurOff": "Glass is opaque on this device. Turn on “{setting}” to adjust clarity.",
|
||||
"@appearanceGlassClarityBlurOff": {
|
||||
"description": "Shown under the disabled glass clarity slider when the device renders Mornye glass without blur. The placeholder is the name of the force-blur toggle.",
|
||||
"placeholders": {
|
||||
"setting": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appearanceGlassClarityHighContrast": "Glass stays opaque while the system’s high contrast setting is on.",
|
||||
"@appearanceGlassClarityHighContrast": {
|
||||
"description": "Shown under the disabled glass clarity slider while the OS high contrast accessibility setting is on"
|
||||
},
|
||||
"appearanceUseSystemFont": "Use system font",
|
||||
"appearanceUseSystemFontSubtitle": "Use your device’s default typeface for app text.",
|
||||
"@appearanceStyle": {
|
||||
"description": "Appearance section for choosing the app visual style"
|
||||
},
|
||||
@@ -255,6 +308,38 @@
|
||||
"@trackReplayGainFailed": {
|
||||
"description": "Snackbar message when ReplayGain scan/write fails"
|
||||
},
|
||||
"trackRemoveReplayGain": "Remove ReplayGain",
|
||||
"trackRemoveReplayGainSuccess": "ReplayGain tags removed",
|
||||
"trackRemoveReplayGainFailed": "Failed to remove ReplayGain tags",
|
||||
"replayGainRemoving": "Removing ReplayGain...",
|
||||
"replayGainRemoveConfirmMessage": "Remove track and album ReplayGain tags from {count} track(s)? Audio, artwork, and other metadata will be preserved.",
|
||||
"@replayGainRemoveConfirmMessage": {
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionRemoveReplayGainCount": "Remove RG ({count})",
|
||||
"@selectionRemoveReplayGainCount": {
|
||||
"description": "Compact selection action label. RG abbreviates ReplayGain; keep this short for a two-column toolbar.",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"replayGainRemoveBatchSuccess": "ReplayGain removed from {success} of {total} tracks",
|
||||
"@replayGainRemoveBatchSuccess": {
|
||||
"placeholders": {
|
||||
"success": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionReplayGainCount": "ReplayGain ({count})",
|
||||
"@selectionReplayGainCount": {
|
||||
"description": "Batch selection action button label for ReplayGain",
|
||||
@@ -318,6 +403,14 @@
|
||||
"@optionsArtistTagModeSplitVorbisSubtitle": {
|
||||
"description": "Subtitle for split Vorbis artist tag mode"
|
||||
},
|
||||
"optionsArtistTagModePrimary": "Primary artist only",
|
||||
"@optionsArtistTagModePrimary": {
|
||||
"description": "Artist tag mode option that writes only the first credited artist"
|
||||
},
|
||||
"optionsArtistTagModePrimarySubtitle": "Write only the first artist, like \"Artist A\", to Artist and Album Artist in every format, so players list one artist.",
|
||||
"@optionsArtistTagModePrimarySubtitle": {
|
||||
"description": "Subtitle for the primary-artist tag mode. Applies when downloading and re-enriching; manual edits keep what the user typed."
|
||||
},
|
||||
"optionsExtensionStore": "Extension Repo",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide repo tab"
|
||||
@@ -1476,6 +1569,8 @@
|
||||
"@sectionLyrics": {
|
||||
"description": "Settings section header"
|
||||
},
|
||||
"lyricsKeepScreenOn": "Keep screen on while viewing lyrics",
|
||||
"lyricsKeepScreenOnSubtitle": "Prevent screen timeout while lyrics are open, including when playback is paused.",
|
||||
"lyricsMode": "Modalità testi",
|
||||
"@lyricsMode": {
|
||||
"description": "Setting - how to save lyrics"
|
||||
@@ -2757,6 +2852,10 @@
|
||||
"@libraryScanFinalizing": {
|
||||
"description": "Status shown after file scanning finishes but library persistence is still running"
|
||||
},
|
||||
"libraryScanPaused": "Scan paused",
|
||||
"@libraryScanPaused": {
|
||||
"description": "Status shown while a library scan is paused by the user"
|
||||
},
|
||||
"libraryScanProgress": "{progress}% of {total} files",
|
||||
"@libraryScanProgress": {
|
||||
"description": "Scan progress display",
|
||||
@@ -4910,6 +5009,61 @@
|
||||
"@hiResCheckTitle": {
|
||||
"description": "Title of the fake Hi-Res check card"
|
||||
},
|
||||
"hiResCheckSummary": "Inspect the spectrum and active bit depth for signs of upsampling or padding.",
|
||||
"@hiResCheckSummary": {
|
||||
"description": "Introductory text for the sampled Hi-Res analysis"
|
||||
},
|
||||
"hiResCheckLimitedBandwidth": "Limited bandwidth",
|
||||
"@hiResCheckLimitedBandwidth": {
|
||||
"description": "Neutral finding: a limited spectrum alone does not prove upsampling"
|
||||
},
|
||||
"hiResCheckNoEvidence": "No upsampling or padding detected",
|
||||
"@hiResCheckNoEvidence": {
|
||||
"description": "No evidence was detected; this does not certify the master"
|
||||
},
|
||||
"hiResCheckEstimatedCutoff": "Estimated cutoff",
|
||||
"@hiResCheckEstimatedCutoff": {
|
||||
"description": "Estimated upper spectral edge at the analysis threshold"
|
||||
},
|
||||
"hiResCheckActiveBits": "Active / stored bits",
|
||||
"@hiResCheckActiveBits": {
|
||||
"description": "Active integer bit depth versus the container depth in the sampled segment"
|
||||
},
|
||||
"hiResCheckBandwidthExplanation": "A lower cutoff can come from mastering. It does not, by itself, prove upsampling.",
|
||||
"@hiResCheckBandwidthExplanation": {
|
||||
"description": "Explains why the limited-bandwidth finding is neutral"
|
||||
},
|
||||
"hiResCheckSampledExplanation": "Based on {seconds} seconds of audio. This analysis cannot certify the original master.",
|
||||
"@hiResCheckSampledExplanation": {
|
||||
"description": "Limits of the sampled Hi-Res analysis; seconds is a formatted duration",
|
||||
"placeholders": {
|
||||
"seconds": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckImagingEvidence": "The spectrum contains mirrored bands consistent with upsampling.",
|
||||
"@hiResCheckImagingEvidence": {
|
||||
"description": "Spectral imaging is suggestive evidence rather than proof"
|
||||
},
|
||||
"hiResCheckRateEvidence": "A sharp roll-off near {cutoff} and the measured noise floor suggest a lower-rate source.",
|
||||
"@hiResCheckRateEvidence": {
|
||||
"description": "Heuristic evidence from both a brickwall and a 16-bit-like noise floor",
|
||||
"placeholders": {
|
||||
"cutoff": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckSteadyEnergy": "Energy above {cutoff} is mostly steady in the analyzed segment and may be noise.",
|
||||
"@hiResCheckSteadyEnergy": {
|
||||
"description": "An observation about ultrasonic energy, not proof that removing it is safe",
|
||||
"placeholders": {
|
||||
"cutoff": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckDescription": "Rileva file Hi-Res falsi, ricampionati o con bit riempiti",
|
||||
"@hiResCheckDescription": {
|
||||
"description": "Explains what the Hi-Res authenticity check does"
|
||||
@@ -5256,6 +5410,19 @@
|
||||
"@notifLibraryScanStopped": {
|
||||
"description": "Notification body when library scan is cancelled"
|
||||
},
|
||||
"notifLibraryScanPaused": "Library scan paused",
|
||||
"@notifLibraryScanPaused": {
|
||||
"description": "Notification title when the user pauses a library scan"
|
||||
},
|
||||
"notifLibraryScanPausedBody": "{count} files scanned. Resume in Local Library settings to continue from here.",
|
||||
"@notifLibraryScanPausedBody": {
|
||||
"description": "Notification body for a paused library scan - files scanned so far",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"notifDownloadingUpdate": "Downloading SpotiFLAC Mobile v{version}",
|
||||
"@notifDownloadingUpdate": {
|
||||
"description": "Notification title while downloading an app update",
|
||||
@@ -6287,6 +6454,31 @@
|
||||
"description": "Tooltip for minimizing the now playing screen"
|
||||
},
|
||||
"nowPlayingUpNext": "Up next",
|
||||
"nowPlayingAudioOutput": "Audio Output",
|
||||
"nowPlayingWrittenBy": "Written by: {writers}",
|
||||
"@nowPlayingWrittenBy": {
|
||||
"placeholders": {
|
||||
"writers": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"nowPlayingLyricsProvider": "Lyrics: {provider}",
|
||||
"@nowPlayingLyricsProvider": {
|
||||
"placeholders": {
|
||||
"provider": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"concertGetTickets": "Get Tickets",
|
||||
"concertSetList": "Concert Set List",
|
||||
"concertSetListButton": "Set List",
|
||||
"concertAddToCalendar": "Add to Calendar",
|
||||
"concertOpenMaps": "Open Maps",
|
||||
"concertDetailsUnavailable": "Concert details are currently unavailable.",
|
||||
"concertCalendarUnavailable": "Unable to open the calendar.",
|
||||
"nowPlayingAudioOutputUnavailable": "Unable to open audio output settings.",
|
||||
"@nowPlayingUpNext": {
|
||||
"description": "Title for the playback queue sheet"
|
||||
},
|
||||
@@ -6354,6 +6546,18 @@
|
||||
"description": "Tab label for the lyrics view"
|
||||
},
|
||||
"nowPlayingNoLyrics": "No lyrics in this file",
|
||||
"nowPlayingInstrumental": "Instrumental",
|
||||
"@nowPlayingInstrumental": {
|
||||
"description": "Accessibility label for the three-dot countdown during an instrumental break before lyrics resume"
|
||||
},
|
||||
"nowPlayingLyricsLanguageOptions": "Lyrics language options",
|
||||
"@nowPlayingLyricsLanguageOptions": {
|
||||
"description": "Tooltip for the player menu that shows or hides existing lyric pronunciation and translation"
|
||||
},
|
||||
"nowPlayingHidePronunciation": "Hide Pronunciation",
|
||||
"nowPlayingShowPronunciation": "Show Pronunciation",
|
||||
"nowPlayingHideTranslation": "Hide Translation",
|
||||
"nowPlayingShowTranslation": "Show Translation",
|
||||
"@nowPlayingNoLyrics": {
|
||||
"description": "Empty state when the playing file has no embedded lyrics"
|
||||
},
|
||||
@@ -6761,6 +6965,10 @@
|
||||
"@libraryFilterMetadataMissingLyrics": {
|
||||
"description": "Filter option for tracks without embedded or sidecar lyrics"
|
||||
},
|
||||
"libraryFilterMetadataMissingReplayGain": "Missing ReplayGain",
|
||||
"@libraryFilterMetadataMissingReplayGain": {
|
||||
"description": "Filter option for scanned tracks without ReplayGain gain tags"
|
||||
},
|
||||
"trackOptionCopyTrackName": "Copy track name",
|
||||
"@trackOptionCopyTrackName": {
|
||||
"description": "Track menu action that copies the track title"
|
||||
@@ -6808,6 +7016,9 @@
|
||||
"autoMixDescription": "Blend songs with beat matching and pitch-preserving tempo adjustment. Uses crossfade when beats cannot be matched.",
|
||||
"autoMixOn": "AutoMix on",
|
||||
"autoMixOff": "AutoMix off",
|
||||
"autoplayOn": "Autoplay on",
|
||||
"autoplayOff": "Autoplay off",
|
||||
"autoplayFromLibrary": "Autoplay from your Library",
|
||||
"profileTitle": "Profile",
|
||||
"profileSetUp": "Set up your profile",
|
||||
"profileEdit": "Edit name and photo",
|
||||
@@ -6818,6 +7029,9 @@
|
||||
"profileRemovePhoto": "Remove photo",
|
||||
"profilePhotoError": "Choose a valid image smaller than 20 MB.",
|
||||
"profileSaveError": "Could not save your profile. Please try again.",
|
||||
"artistUpcomingConcerts": "Upcoming Concerts",
|
||||
"artistAllUpcomingConcerts": "All Upcoming Concerts",
|
||||
"artistNoUpcomingConcerts": "No upcoming concerts.",
|
||||
"optionsEmbeddedCoverSizeOriginal": "Original resolution",
|
||||
"@optionsEmbeddedCoverSizeOriginal": {
|
||||
"description": "Option that preserves the provider artwork at its original resolution"
|
||||
|
||||
+215
-1
@@ -1,4 +1,31 @@
|
||||
{
|
||||
"settingsPlaybackSubtitle": "Player, volume, AutoMix, and audio output",
|
||||
"sectionPlayer": "Player",
|
||||
"sectionVolumeAndTransitions": "Volume and transitions",
|
||||
"sectionAudioOutput": "Audio output",
|
||||
"usbBitPerfect": "Hi-res and bit-perfect audio",
|
||||
"usbBitPerfectDescription": "Preserve source precision on compatible outputs. Choose direct USB or AAudio exclusive below; otherwise Android USB output requires Android 14 or later. Applies from the next track, without AutoMix or normalization. System volume may not control direct USB.",
|
||||
"usbHardwareVolume": "DAC hardware volume",
|
||||
"usbVolumeWarningTitle": "Check your listening volume",
|
||||
"usbVolumeWarning": "Direct USB audio can be much louder than normal playback, and phone volume buttons may not control it. Lower your DAC or amplifier volume before starting. When supported, SpotiFLAC sets the DAC to at most −40 dB on connection; this does not guarantee a safe listening level on every amplifier or headphone.",
|
||||
"usbVolumeAccept": "I understand",
|
||||
"usbVolumeUnavailable": "Playback is paused because this DAC has no verified hardware volume control. Lower the DAC or amplifier volume, then enable fixed-volume output if needed and select the track again.",
|
||||
"usbFixedVolume": "Allow fixed-volume USB output",
|
||||
"usbFixedVolumeDescription": "For DACs without a volume control accessible to the app. Keep off for USB headsets without their own volume control. Applies from the next track.",
|
||||
"usbFixedVolumeWarning": "The app cannot lower the volume on this output. Audio may start at full level, and the phone volume slider will not help. Only continue after lowering the volume on your DAC or external amplifier. Do not enable this for a headset without its own volume control.",
|
||||
"dapExclusive": "DAP hi-res (AAudio exclusive)",
|
||||
"dapExclusiveDescription": "Use Oboe/AAudio at the track's original rate and precision for FLAC/WAV PCM. Requires Android 8.1 or later and compatible hardware. Exclusive access is checked; unavailable formats use normal playback. DSD requires the direct USB driver. Applies from the next track.",
|
||||
"dapExclusiveUnavailable": "AAudio exclusive access is unavailable for this track and current output. Using normal playback. For a USB DAC, try the direct USB driver.",
|
||||
"usbDirect": "Direct USB driver",
|
||||
"usbDirectDescription": "Use exclusive USB audio for FLAC/WAV, DSF/DFF and WavPack DSD, with Android USB permission. Native DSD requires a recognized compatible DAC. Other PCM formats use normal playback. Applies from the next track.",
|
||||
"usbDsdOverPcm": "DSD over PCM (DoP)",
|
||||
"usbDsdOverPcmDescription": "Enable only if your DAC explicitly supports DoP. Sends DSF/DFF and WavPack DSD inside a PCM carrier when native DSD is unavailable. An incompatible device may play noise; leave off for ordinary USB headsets.",
|
||||
"usbDsdUnsupported": "This DSD format or connected DAC is not supported. Playback stopped.",
|
||||
"usbPermissionDenied": "USB permission was not granted. Using normal playback.",
|
||||
"usbBitPerfectPending": "Waiting for the next track and a compatible USB output.",
|
||||
"usbBitPerfectNoDevice": "No USB DAC connected. Using normal audio output.",
|
||||
"usbBitPerfectFallback": "This device or audio format does not support bit-perfect output. Using normal playback.",
|
||||
"usbBitPerfectRouteChanged": "The USB audio route changed. Playback paused; select a track to reconnect.",
|
||||
"upgradeIntroWelcome": "Welcome to\nSpotiFLAC-Mobile 5.0",
|
||||
"upgradeIntroThemeTitle": "Make it\nyour own.",
|
||||
"upgradeIntroThemeBody": "Choose a look. Your choice applies immediately, and you can change it later in Appearance.",
|
||||
@@ -36,6 +63,32 @@
|
||||
"description": "System volume control label in the Mornye player"
|
||||
},
|
||||
"appearanceStyle": "App Style",
|
||||
"appearanceAccentRed": "Red (default)",
|
||||
"appearanceAccentOrange": "Orange",
|
||||
"appearanceAccentGreen": "Green",
|
||||
"appearanceAccentTeal": "Teal",
|
||||
"appearanceAccentBlue": "Blue",
|
||||
"appearanceAccentPurple": "Purple",
|
||||
"appearanceAccentPink": "Pink",
|
||||
"appearanceGlassClarity": "Glass clarity",
|
||||
"appearanceGlassClaritySubtitle": "Adjust transparency in Mornye menus and navigation. Text contrast is preserved.",
|
||||
"appearanceGlassTinted": "Tinted",
|
||||
"appearanceGlassClear": "Clear",
|
||||
"appearanceGlassClarityBlurOff": "Glass is opaque on this device. Turn on “{setting}” to adjust clarity.",
|
||||
"@appearanceGlassClarityBlurOff": {
|
||||
"description": "Shown under the disabled glass clarity slider when the device renders Mornye glass without blur. The placeholder is the name of the force-blur toggle.",
|
||||
"placeholders": {
|
||||
"setting": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appearanceGlassClarityHighContrast": "Glass stays opaque while the system’s high contrast setting is on.",
|
||||
"@appearanceGlassClarityHighContrast": {
|
||||
"description": "Shown under the disabled glass clarity slider while the OS high contrast accessibility setting is on"
|
||||
},
|
||||
"appearanceUseSystemFont": "Use system font",
|
||||
"appearanceUseSystemFontSubtitle": "Use your device’s default typeface for app text.",
|
||||
"@appearanceStyle": {
|
||||
"description": "Appearance section for choosing the app visual style"
|
||||
},
|
||||
@@ -255,6 +308,38 @@
|
||||
"@trackReplayGainFailed": {
|
||||
"description": "Snackbar message when ReplayGain scan/write fails"
|
||||
},
|
||||
"trackRemoveReplayGain": "Remove ReplayGain",
|
||||
"trackRemoveReplayGainSuccess": "ReplayGain tags removed",
|
||||
"trackRemoveReplayGainFailed": "Failed to remove ReplayGain tags",
|
||||
"replayGainRemoving": "Removing ReplayGain...",
|
||||
"replayGainRemoveConfirmMessage": "Remove track and album ReplayGain tags from {count} track(s)? Audio, artwork, and other metadata will be preserved.",
|
||||
"@replayGainRemoveConfirmMessage": {
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionRemoveReplayGainCount": "Remove RG ({count})",
|
||||
"@selectionRemoveReplayGainCount": {
|
||||
"description": "Compact selection action label. RG abbreviates ReplayGain; keep this short for a two-column toolbar.",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"replayGainRemoveBatchSuccess": "ReplayGain removed from {success} of {total} tracks",
|
||||
"@replayGainRemoveBatchSuccess": {
|
||||
"placeholders": {
|
||||
"success": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionReplayGainCount": "ReplayGain ({count})",
|
||||
"@selectionReplayGainCount": {
|
||||
"description": "Batch selection action button label for ReplayGain",
|
||||
@@ -318,6 +403,14 @@
|
||||
"@optionsArtistTagModeSplitVorbisSubtitle": {
|
||||
"description": "Subtitle for split Vorbis artist tag mode"
|
||||
},
|
||||
"optionsArtistTagModePrimary": "Primary artist only",
|
||||
"@optionsArtistTagModePrimary": {
|
||||
"description": "Artist tag mode option that writes only the first credited artist"
|
||||
},
|
||||
"optionsArtistTagModePrimarySubtitle": "Write only the first artist, like \"Artist A\", to Artist and Album Artist in every format, so players list one artist.",
|
||||
"@optionsArtistTagModePrimarySubtitle": {
|
||||
"description": "Subtitle for the primary-artist tag mode. Applies when downloading and re-enriching; manual edits keep what the user typed."
|
||||
},
|
||||
"optionsExtensionStore": "Extension Repo",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide repo tab"
|
||||
@@ -1476,6 +1569,8 @@
|
||||
"@sectionLyrics": {
|
||||
"description": "Settings section header"
|
||||
},
|
||||
"lyricsKeepScreenOn": "Keep screen on while viewing lyrics",
|
||||
"lyricsKeepScreenOnSubtitle": "Prevent screen timeout while lyrics are open, including when playback is paused.",
|
||||
"lyricsMode": "歌詞モード",
|
||||
"@lyricsMode": {
|
||||
"description": "Setting - how to save lyrics"
|
||||
@@ -2757,6 +2852,10 @@
|
||||
"@libraryScanFinalizing": {
|
||||
"description": "Status shown after file scanning finishes but library persistence is still running"
|
||||
},
|
||||
"libraryScanPaused": "Scan paused",
|
||||
"@libraryScanPaused": {
|
||||
"description": "Status shown while a library scan is paused by the user"
|
||||
},
|
||||
"libraryScanProgress": "{progress}% of {total} files",
|
||||
"@libraryScanProgress": {
|
||||
"description": "Scan progress display",
|
||||
@@ -4910,6 +5009,61 @@
|
||||
"@hiResCheckTitle": {
|
||||
"description": "Title of the fake Hi-Res check card"
|
||||
},
|
||||
"hiResCheckSummary": "Inspect the spectrum and active bit depth for signs of upsampling or padding.",
|
||||
"@hiResCheckSummary": {
|
||||
"description": "Introductory text for the sampled Hi-Res analysis"
|
||||
},
|
||||
"hiResCheckLimitedBandwidth": "Limited bandwidth",
|
||||
"@hiResCheckLimitedBandwidth": {
|
||||
"description": "Neutral finding: a limited spectrum alone does not prove upsampling"
|
||||
},
|
||||
"hiResCheckNoEvidence": "No upsampling or padding detected",
|
||||
"@hiResCheckNoEvidence": {
|
||||
"description": "No evidence was detected; this does not certify the master"
|
||||
},
|
||||
"hiResCheckEstimatedCutoff": "Estimated cutoff",
|
||||
"@hiResCheckEstimatedCutoff": {
|
||||
"description": "Estimated upper spectral edge at the analysis threshold"
|
||||
},
|
||||
"hiResCheckActiveBits": "Active / stored bits",
|
||||
"@hiResCheckActiveBits": {
|
||||
"description": "Active integer bit depth versus the container depth in the sampled segment"
|
||||
},
|
||||
"hiResCheckBandwidthExplanation": "A lower cutoff can come from mastering. It does not, by itself, prove upsampling.",
|
||||
"@hiResCheckBandwidthExplanation": {
|
||||
"description": "Explains why the limited-bandwidth finding is neutral"
|
||||
},
|
||||
"hiResCheckSampledExplanation": "Based on {seconds} seconds of audio. This analysis cannot certify the original master.",
|
||||
"@hiResCheckSampledExplanation": {
|
||||
"description": "Limits of the sampled Hi-Res analysis; seconds is a formatted duration",
|
||||
"placeholders": {
|
||||
"seconds": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckImagingEvidence": "The spectrum contains mirrored bands consistent with upsampling.",
|
||||
"@hiResCheckImagingEvidence": {
|
||||
"description": "Spectral imaging is suggestive evidence rather than proof"
|
||||
},
|
||||
"hiResCheckRateEvidence": "A sharp roll-off near {cutoff} and the measured noise floor suggest a lower-rate source.",
|
||||
"@hiResCheckRateEvidence": {
|
||||
"description": "Heuristic evidence from both a brickwall and a 16-bit-like noise floor",
|
||||
"placeholders": {
|
||||
"cutoff": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckSteadyEnergy": "Energy above {cutoff} is mostly steady in the analyzed segment and may be noise.",
|
||||
"@hiResCheckSteadyEnergy": {
|
||||
"description": "An observation about ultrasonic energy, not proof that removing it is safe",
|
||||
"placeholders": {
|
||||
"cutoff": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckDescription": "Detect upsampled or bit-padded fake Hi-Res files",
|
||||
"@hiResCheckDescription": {
|
||||
"description": "Explains what the Hi-Res authenticity check does"
|
||||
@@ -5256,6 +5410,19 @@
|
||||
"@notifLibraryScanStopped": {
|
||||
"description": "Notification body when library scan is cancelled"
|
||||
},
|
||||
"notifLibraryScanPaused": "Library scan paused",
|
||||
"@notifLibraryScanPaused": {
|
||||
"description": "Notification title when the user pauses a library scan"
|
||||
},
|
||||
"notifLibraryScanPausedBody": "{count} files scanned. Resume in Local Library settings to continue from here.",
|
||||
"@notifLibraryScanPausedBody": {
|
||||
"description": "Notification body for a paused library scan - files scanned so far",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"notifDownloadingUpdate": "Downloading SpotiFLAC Mobile v{version}",
|
||||
"@notifDownloadingUpdate": {
|
||||
"description": "Notification title while downloading an app update",
|
||||
@@ -6287,6 +6454,31 @@
|
||||
"description": "Tooltip for minimizing the now playing screen"
|
||||
},
|
||||
"nowPlayingUpNext": "Up next",
|
||||
"nowPlayingAudioOutput": "Audio Output",
|
||||
"nowPlayingWrittenBy": "Written by: {writers}",
|
||||
"@nowPlayingWrittenBy": {
|
||||
"placeholders": {
|
||||
"writers": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"nowPlayingLyricsProvider": "Lyrics: {provider}",
|
||||
"@nowPlayingLyricsProvider": {
|
||||
"placeholders": {
|
||||
"provider": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"concertGetTickets": "Get Tickets",
|
||||
"concertSetList": "Concert Set List",
|
||||
"concertSetListButton": "Set List",
|
||||
"concertAddToCalendar": "Add to Calendar",
|
||||
"concertOpenMaps": "Open Maps",
|
||||
"concertDetailsUnavailable": "Concert details are currently unavailable.",
|
||||
"concertCalendarUnavailable": "Unable to open the calendar.",
|
||||
"nowPlayingAudioOutputUnavailable": "Unable to open audio output settings.",
|
||||
"@nowPlayingUpNext": {
|
||||
"description": "Title for the playback queue sheet"
|
||||
},
|
||||
@@ -6354,6 +6546,18 @@
|
||||
"description": "Tab label for the lyrics view"
|
||||
},
|
||||
"nowPlayingNoLyrics": "No lyrics in this file",
|
||||
"nowPlayingInstrumental": "Instrumental",
|
||||
"@nowPlayingInstrumental": {
|
||||
"description": "Accessibility label for the three-dot countdown during an instrumental break before lyrics resume"
|
||||
},
|
||||
"nowPlayingLyricsLanguageOptions": "Lyrics language options",
|
||||
"@nowPlayingLyricsLanguageOptions": {
|
||||
"description": "Tooltip for the player menu that shows or hides existing lyric pronunciation and translation"
|
||||
},
|
||||
"nowPlayingHidePronunciation": "Hide Pronunciation",
|
||||
"nowPlayingShowPronunciation": "Show Pronunciation",
|
||||
"nowPlayingHideTranslation": "Hide Translation",
|
||||
"nowPlayingShowTranslation": "Show Translation",
|
||||
"@nowPlayingNoLyrics": {
|
||||
"description": "Empty state when the playing file has no embedded lyrics"
|
||||
},
|
||||
@@ -6761,6 +6965,10 @@
|
||||
"@libraryFilterMetadataMissingLyrics": {
|
||||
"description": "Filter option for tracks without embedded or sidecar lyrics"
|
||||
},
|
||||
"libraryFilterMetadataMissingReplayGain": "Missing ReplayGain",
|
||||
"@libraryFilterMetadataMissingReplayGain": {
|
||||
"description": "Filter option for scanned tracks without ReplayGain gain tags"
|
||||
},
|
||||
"trackOptionCopyTrackName": "Copy track name",
|
||||
"@trackOptionCopyTrackName": {
|
||||
"description": "Track menu action that copies the track title"
|
||||
@@ -6808,6 +7016,9 @@
|
||||
"autoMixDescription": "Blend songs with beat matching and pitch-preserving tempo adjustment. Uses crossfade when beats cannot be matched.",
|
||||
"autoMixOn": "AutoMix on",
|
||||
"autoMixOff": "AutoMix off",
|
||||
"autoplayOn": "Autoplay on",
|
||||
"autoplayOff": "Autoplay off",
|
||||
"autoplayFromLibrary": "Autoplay from your Library",
|
||||
"profileTitle": "Profile",
|
||||
"profileSetUp": "Set up your profile",
|
||||
"profileEdit": "Edit name and photo",
|
||||
@@ -6818,8 +7029,11 @@
|
||||
"profileRemovePhoto": "Remove photo",
|
||||
"profilePhotoError": "Choose a valid image smaller than 20 MB.",
|
||||
"profileSaveError": "Could not save your profile. Please try again.",
|
||||
"artistUpcomingConcerts": "Upcoming Concerts",
|
||||
"artistAllUpcomingConcerts": "All Upcoming Concerts",
|
||||
"artistNoUpcomingConcerts": "No upcoming concerts.",
|
||||
"optionsEmbeddedCoverSizeOriginal": "Original resolution",
|
||||
"@optionsEmbeddedCoverSizeOriginal": {
|
||||
"description": "Option that preserves the provider artwork at its original resolution"
|
||||
}
|
||||
}
|
||||
}
|
||||
+278
-64
@@ -1,5 +1,32 @@
|
||||
{
|
||||
"upgradeIntroWelcome": "SpotiFLAC Mobile 5.0\n에 오신 것을 환영 합니다",
|
||||
"settingsPlaybackSubtitle": "플레이어, 볼륨, AutoMix, 및 오디오 출력",
|
||||
"sectionPlayer": "플레이어",
|
||||
"sectionVolumeAndTransitions": "볼륨 및 전환",
|
||||
"sectionAudioOutput": "오디오 출력",
|
||||
"usbBitPerfect": "Hi-res 및 bit-perfect 오디오",
|
||||
"usbBitPerfectDescription": "지원되는 출력에서는 소스의 정밀도를 그대로 유지합니다. 아래에서 다이렉트 USB 또는 AAudio 전용 출력을 선택하세요. 그 외의 경우 Android USB 출력은 Android 14 이상에서만 사용할 수 있습니다. 이 설정은 다음 트랙부터 적용되며, AutoMix 또는 볼륨 정규화가 적용되지 않은 상태에서 작동합니다. 다이렉트 USB 출력에서는 휴대전화의 시스템 볼륨 조절이 작동하지 않을 수 있습니다",
|
||||
"usbHardwareVolume": "DAC 하드웨어 볼륨",
|
||||
"usbVolumeWarningTitle": "청취 볼륨을 확인하세요",
|
||||
"usbVolumeWarning": "다이렉트 USB 오디오는 일반 재생보다 훨씬 크게 출력될 수 있으며, 휴대전화의 볼륨 버튼으로 음량이 조절되지 않을 수 있습니다. 시작하기 전에 DAC 또는 앰프의 볼륨을 낮추세요. 지원되는 경우 SpotiFLAC은 연결 시 DAC의 볼륨을 최대 −40 dB로 설정합니다. 하지만 이것이 모든 앰프나 헤드폰에서 안전한 청취 음량을 보장하는 것은 아닙니다",
|
||||
"usbVolumeAccept": "이해했습니다",
|
||||
"usbVolumeUnavailable": "이 DAC에는 검증된 하드웨어 볼륨 조절 기능이 없기 때문에 재생이 일시 중지되었습니다. DAC 또는 앰프의 볼륨을 낮춘 다음, 필요하다면 고정 볼륨 출력을 활성화하고 트랙을 다시 선택하세요",
|
||||
"usbFixedVolume": "고정 볼륨 USB 출력 허용",
|
||||
"usbFixedVolumeDescription": "앱에서 볼륨을 조절할 수 없는 DAC용입니다. 자체 볼륨 조절 기능이 없는 USB 헤드셋에서는 켜지 않은 상태로 유지하세요. 이 설정은 다음 트랙부터 적용됩니다",
|
||||
"usbFixedVolumeWarning": "이 출력에서는 앱이 볼륨을 낮출 수 없습니다. 오디오가 최대 음량으로 시작할 수 있으며, 휴대전화의 볼륨 슬라이더로도 조절되지 않습니다. DAC 또는 외부 앰프의 볼륨을 먼저 낮춘 후에만 계속 진행하세요. 자체 볼륨 조절 기능이 없는 헤드셋에서는 이 기능을 활성화하지 마세요",
|
||||
"dapExclusive": "DAP hi-res (AAudio 전용)",
|
||||
"dapExclusiveDescription": "FLAC/WAV PCM 파일을 트랙의 원본 샘플레이트와 정밀도 그대로 재생하려면 Oboe/AAudio를 사용합니다. Android 8.1 이상과 호환되는 하드웨어가 필요합니다. 전용 접근 가능 여부를 확인하며, 지원되지 않는 형식은 일반 재생 방식으로 처리됩니다. DSD는 다이렉트 USB 드라이버가 필요합니다. 이 설정은 다음 트랙부터 적용됩니다",
|
||||
"dapExclusiveUnavailable": "이 트랙과 현재 출력에서는 AAudio 전용 접근을 사용할 수 없습니다. 일반 재생 방식으로 전환합니다. USB DAC을 사용하는 경우 다이렉트 USB 드라이버를 사용해 보세요",
|
||||
"usbDirect": "다이렉트 USB 드라이버",
|
||||
"usbDirectDescription": "FLAC/WAV, DSF/DFF 및 WavPack DSD를 재생하려면 독점 USB 오디오를 사용하며, Android의 USB 권한이 필요합니다. 네이티브 DSD는 인식된 호환 DAC이 필요합니다. 그 외의 PCM 형식은 일반 재생 방식을 사용합니다. 이 설정은 다음 트랙부터 적용됩니다",
|
||||
"usbDsdOverPcm": "DSD over PCM (DoP)",
|
||||
"usbDsdOverPcmDescription": "DAC이 DoP를 명시적으로 지원하는 경우에만 활성화하세요. 네이티브 DSD를 사용할 수 없을 때 DSF/DFF 및 WavPack DSD를 PCM 데이터 안에 담아 전송합니다. 호환되지 않는 기기에서는 잡음이 재생될 수 있으므로, 일반 USB 헤드셋에서는 이 기능을 꺼두세요",
|
||||
"usbDsdUnsupported": "이 DSD 형식 또는 연결된 DAC은 지원되지 않습니다. 재생이 중지되었습니다",
|
||||
"usbPermissionDenied": "USB 권한이 부여되지 않았습니다. 일반 재생을 사용합니다",
|
||||
"usbBitPerfectPending": "다음 트랙과 호환 가능한 USB 출력이 연결되기를 기다리고 있습니다",
|
||||
"usbBitPerfectNoDevice": "USB DAC이 연결되어 있지 않습니다. 일반 오디오 출력을 사용합니다",
|
||||
"usbBitPerfectFallback": "이 기기 또는 오디오 형식은 Bit-Perfect 출력을 지원하지 않습니다. 일반 재생을 사용합니다",
|
||||
"usbBitPerfectRouteChanged": "USB 오디오 출력 경로가 변경되었습니다. 재생이 일시 중지되었습니다. 다시 연결하려면 트랙을 선택하세요",
|
||||
"upgradeIntroWelcome": "SpotiFLAC Mobile 5.0\n에 오신 것을 환영합니다",
|
||||
"upgradeIntroThemeTitle": "나만의 스타일로\n꾸며보세요",
|
||||
"upgradeIntroThemeBody": "스타일을 선택하세요. 선택한 스타일은 즉시 적용되며, 나중에 디자인 설정에서 변경할 수 있습니다",
|
||||
"upgradeIntroThemeMaterialBody": "Material 디자인 컨트롤과 선택한 강조 색상이 적용된 익숙한 레이아웃",
|
||||
@@ -36,6 +63,32 @@
|
||||
"description": "System volume control label in the Mornye player"
|
||||
},
|
||||
"appearanceStyle": "앱 스타일",
|
||||
"appearanceAccentRed": "빨간색 (기본값)",
|
||||
"appearanceAccentOrange": "주황색",
|
||||
"appearanceAccentGreen": "초록색",
|
||||
"appearanceAccentTeal": "청록색",
|
||||
"appearanceAccentBlue": "파란색",
|
||||
"appearanceAccentPurple": "보라색",
|
||||
"appearanceAccentPink": "분홍색",
|
||||
"appearanceGlassClarity": "글래스 투명도",
|
||||
"appearanceGlassClaritySubtitle": "Mornye 메뉴와 하단바의 투명도를 조절할 수 있습니다. 텍스트 대비는 유지됩니다",
|
||||
"appearanceGlassTinted": "색조",
|
||||
"appearanceGlassClear": "투명",
|
||||
"appearanceGlassClarityBlurOff": "이 기기에서 글래스 효과가 불투명하게 표시됩니다. 투명도를 조절하려면 '{setting}'을 켜세요",
|
||||
"@appearanceGlassClarityBlurOff": {
|
||||
"description": "Shown under the disabled glass clarity slider when the device renders Mornye glass without blur. The placeholder is the name of the force-blur toggle.",
|
||||
"placeholders": {
|
||||
"setting": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appearanceGlassClarityHighContrast": "시스템의 고대비 설정이 켜져 있는 동안에는 글래스 효과가 불투명하게 표시됩니다",
|
||||
"@appearanceGlassClarityHighContrast": {
|
||||
"description": "Shown under the disabled glass clarity slider while the OS high contrast accessibility setting is on"
|
||||
},
|
||||
"appearanceUseSystemFont": "시스템 글꼴 사용",
|
||||
"appearanceUseSystemFontSubtitle": "앱 텍스트에 기기 기본 글꼴을 사용합니다",
|
||||
"@appearanceStyle": {
|
||||
"description": "Appearance section for choosing the app visual style"
|
||||
},
|
||||
@@ -99,7 +152,7 @@
|
||||
},
|
||||
"libraryRecentlyAdded": "최근 추가됨",
|
||||
"libraryDownloads": "다운로드",
|
||||
"libraryNoActiveDownloads": "활성화된 다운로드가 없음",
|
||||
"libraryNoActiveDownloads": "진행 중인 다운로드가 없습니다",
|
||||
"librarySearchHint": "라이브러리 검색",
|
||||
"libraryEmptyCollection": "음악이 여기에 표시됩니다",
|
||||
"historySearchHint": "기록 검색...",
|
||||
@@ -255,6 +308,38 @@
|
||||
"@trackReplayGainFailed": {
|
||||
"description": "Snackbar message when ReplayGain scan/write fails"
|
||||
},
|
||||
"trackRemoveReplayGain": "리플레이게인 제거",
|
||||
"trackRemoveReplayGainSuccess": "리플레이게인 태그 제거됨",
|
||||
"trackRemoveReplayGainFailed": "리플레이게인 태그 제거 실패",
|
||||
"replayGainRemoving": "리플레이게인 제거 중...",
|
||||
"replayGainRemoveConfirmMessage": "{count} 개의 트랙에서 트랙 및 앨범 리플레이게인 태그를 제거하시겠습니까? 오디오, 앨범 아트 및 기타 메타데이터는 보존됩니다",
|
||||
"@replayGainRemoveConfirmMessage": {
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionRemoveReplayGainCount": "RG 제거 ({count})",
|
||||
"@selectionRemoveReplayGainCount": {
|
||||
"description": "Compact selection action label. RG abbreviates ReplayGain; keep this short for a two-column toolbar.",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"replayGainRemoveBatchSuccess": "{total} 개 중 {success} 개의 트랙에서 리플레이게인이 제거됨",
|
||||
"@replayGainRemoveBatchSuccess": {
|
||||
"placeholders": {
|
||||
"success": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionReplayGainCount": "리플레이게인 ({count})",
|
||||
"@selectionReplayGainCount": {
|
||||
"description": "Batch selection action button label for ReplayGain",
|
||||
@@ -318,6 +403,14 @@
|
||||
"@optionsArtistTagModeSplitVorbisSubtitle": {
|
||||
"description": "Subtitle for split Vorbis artist tag mode"
|
||||
},
|
||||
"optionsArtistTagModePrimary": "주요 아티스트만",
|
||||
"@optionsArtistTagModePrimary": {
|
||||
"description": "Artist tag mode option that writes only the first credited artist"
|
||||
},
|
||||
"optionsArtistTagModePrimarySubtitle": "모든 형식에서 아티스트 및 앨범 아티스트 필드에 '아티스트 A'와 같은 첫 번째 아티스트만 입력하여, 플레이어에 하나의 아티스트만 표시되도록 합니다",
|
||||
"@optionsArtistTagModePrimarySubtitle": {
|
||||
"description": "Subtitle for the primary-artist tag mode. Applies when downloading and re-enriching; manual edits keep what the user typed."
|
||||
},
|
||||
"optionsExtensionStore": "확장 기능 레포",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide repo tab"
|
||||
@@ -569,7 +662,7 @@
|
||||
"@setupGrantPermission": {
|
||||
"description": "Button to request permission"
|
||||
},
|
||||
"setupSkip": "다음에 할래요",
|
||||
"setupSkip": "건너뛰기",
|
||||
"@setupSkip": {
|
||||
"description": "Skip current step button"
|
||||
},
|
||||
@@ -589,7 +682,7 @@
|
||||
"@setupPermissionDeniedMessage": {
|
||||
"description": "Error when permission denied"
|
||||
},
|
||||
"setupPermissionRequired": "''{permissionType}'' 권한 필요",
|
||||
"setupPermissionRequired": "'{permissionType}' 권한 필요",
|
||||
"@setupPermissionRequired": {
|
||||
"description": "Generic permission required title",
|
||||
"placeholders": {
|
||||
@@ -599,7 +692,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"setupPermissionRequiredMessage": "최상의 사용 경험을 위해 ''{permissionType}'' 권한이 필요합니다. 설정에서 나중에 변경할 수 있습니다",
|
||||
"setupPermissionRequiredMessage": "최상의 사용 경험을 위해 '{permissionType}' 권한이 필요합니다. 설정에서 나중에 변경할 수 있습니다",
|
||||
"@setupPermissionRequiredMessage": {
|
||||
"description": "Generic permission required message",
|
||||
"placeholders": {
|
||||
@@ -696,7 +789,7 @@
|
||||
"@setupNotificationBackgroundDescription": {
|
||||
"description": "Detailed notification explanation"
|
||||
},
|
||||
"setupSkipForNow": "다음에 할래요",
|
||||
"setupSkipForNow": "건너뛰기",
|
||||
"@setupSkipForNow": {
|
||||
"description": "Skip button text"
|
||||
},
|
||||
@@ -884,7 +977,7 @@
|
||||
"@libraryReviewDuplicates": {
|
||||
"description": "Library settings row opening the duplicate review sheet"
|
||||
},
|
||||
"libraryReviewDuplicatesSubtitle": "중복 저장된 트랙 찾기",
|
||||
"libraryReviewDuplicatesSubtitle": "중복 저장된 트랙을 찾을 수 있습니다",
|
||||
"@libraryReviewDuplicatesSubtitle": {
|
||||
"description": "Subtitle for the duplicate review settings row"
|
||||
},
|
||||
@@ -916,7 +1009,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"duplicatesKeepBestMessage": "\"{trackName}\"의 {count} 개의 저음질 복사본을 삭제하시겠습니까?",
|
||||
"duplicatesKeepBestMessage": "'{trackName}'의 {count} 개의 저음질 복사본을 삭제하시겠습니까?",
|
||||
"@duplicatesKeepBestMessage": {
|
||||
"description": "Confirmation message for the keep-best action",
|
||||
"placeholders": {
|
||||
@@ -928,7 +1021,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"duplicatesDeleteCopyMessage": "\"{trackName}\"의 복사본을 삭제하시겠습니까?",
|
||||
"duplicatesDeleteCopyMessage": "'{trackName}'의 복사본을 삭제하시겠습니까?",
|
||||
"@duplicatesDeleteCopyMessage": {
|
||||
"description": "Confirmation message for deleting one duplicate copy",
|
||||
"placeholders": {
|
||||
@@ -945,7 +1038,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"snackbarAddedToQueue": "''{trackName}''가 다운로드 목록에 추가됨",
|
||||
"snackbarAddedToQueue": "'{trackName}'가 다운로드 목록에 추가됨",
|
||||
"@snackbarAddedToQueue": {
|
||||
"description": "Snackbar - track added to download queue",
|
||||
"placeholders": {
|
||||
@@ -963,7 +1056,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"snackbarAlreadyDownloaded": "''{trackName}''은 이미 다운로드되어 있음",
|
||||
"snackbarAlreadyDownloaded": "'{trackName}'은 이미 다운로드되어 있음",
|
||||
"@snackbarAlreadyDownloaded": {
|
||||
"description": "Snackbar - track already exists",
|
||||
"placeholders": {
|
||||
@@ -972,7 +1065,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"snackbarAlreadyInLibrary": "라이브러리에 ''{trackName}''이 이미 존재함",
|
||||
"snackbarAlreadyInLibrary": "라이브러리에 '{trackName}'이 이미 존재함",
|
||||
"@snackbarAlreadyInLibrary": {
|
||||
"description": "Snackbar - track already exists in local library",
|
||||
"placeholders": {
|
||||
@@ -1033,7 +1126,7 @@
|
||||
"@snackbarMetadataProviderSaved": {
|
||||
"description": "Snackbar - metadata provider order saved"
|
||||
},
|
||||
"snackbarExtensionInstalled": "''{extensionName}''이 설치됨",
|
||||
"snackbarExtensionInstalled": "'{extensionName}'이 설치됨",
|
||||
"@snackbarExtensionInstalled": {
|
||||
"description": "Snackbar - extension installed successfully",
|
||||
"placeholders": {
|
||||
@@ -1042,7 +1135,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"snackbarExtensionUpdated": "''{extensionName}''이 설치됨",
|
||||
"snackbarExtensionUpdated": "'{extensionName}'이 업데이트됨",
|
||||
"@snackbarExtensionUpdated": {
|
||||
"description": "Snackbar - extension updated successfully",
|
||||
"placeholders": {
|
||||
@@ -1087,7 +1180,7 @@
|
||||
"@errorUrlFetchFailed": {
|
||||
"description": "Error message - generic URL fetch failure"
|
||||
},
|
||||
"errorMissingExtensionSource": "''{item}''을 불러올 수 없음: 확장 소스가 누락됨",
|
||||
"errorMissingExtensionSource": "'{item}'을 불러올 수 없음: 확장 소스가 누락됨",
|
||||
"@errorMissingExtensionSource": {
|
||||
"description": "Error - extension source not available",
|
||||
"placeholders": {
|
||||
@@ -1318,7 +1411,7 @@
|
||||
"@updateWhatsNew": {
|
||||
"description": "Changelog section title"
|
||||
},
|
||||
"updateDownloadInstall": "다운로드 & 설치",
|
||||
"updateDownloadInstall": "다운로드 및 설치",
|
||||
"@updateDownloadInstall": {
|
||||
"description": "Update button - download and install"
|
||||
},
|
||||
@@ -1476,6 +1569,8 @@
|
||||
"@sectionLyrics": {
|
||||
"description": "Settings section header"
|
||||
},
|
||||
"lyricsKeepScreenOn": "가사 보는 동안 화면 켜짐 유지",
|
||||
"lyricsKeepScreenOnSubtitle": "가사가 열려 있는 동안 재생이 일시정지된 경우를 포함하여 화면이 꺼지지 않도록 합니다",
|
||||
"lyricsMode": "가사 설정",
|
||||
"@lyricsMode": {
|
||||
"description": "Setting - how to save lyrics"
|
||||
@@ -2013,7 +2108,7 @@
|
||||
"@extensionsMetadataPriority": {
|
||||
"description": "Setting - metadata provider order"
|
||||
},
|
||||
"extensionsMetadataPrioritySubtitle": "검색 & 메타데이터 출처 순서를 설정하세요",
|
||||
"extensionsMetadataPrioritySubtitle": "검색 및 메타데이터 출처 순서를 설정하세요",
|
||||
"@extensionsMetadataPrioritySubtitle": {
|
||||
"description": "Subtitle for metadata priority"
|
||||
},
|
||||
@@ -2441,7 +2536,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"discographySinglesOnly": "싱글 & EP만",
|
||||
"discographySinglesOnly": "싱글 및 EP만",
|
||||
"@discographySinglesOnly": {
|
||||
"description": "Option - download only singles"
|
||||
},
|
||||
@@ -2555,11 +2650,11 @@
|
||||
"@settingsLocalLibrary": {
|
||||
"description": "Settings menu item - local library"
|
||||
},
|
||||
"settingsLocalLibrarySubtitle": "음악 스캔 & 중복 감지",
|
||||
"settingsLocalLibrarySubtitle": "음악 스캔 및 중복 감지",
|
||||
"@settingsLocalLibrarySubtitle": {
|
||||
"description": "Subtitle for local library settings"
|
||||
},
|
||||
"settingsCache": "저장소 & 캐시",
|
||||
"settingsCache": "저장소 및 캐시",
|
||||
"@settingsCache": {
|
||||
"description": "Settings menu item - cache management"
|
||||
},
|
||||
@@ -2642,7 +2737,7 @@
|
||||
"@libraryShowDuplicateIndicator": {
|
||||
"description": "Toggle for duplicate indicator in search"
|
||||
},
|
||||
"libraryShowDuplicateIndicatorSubtitle": "기존 트랙을 검색할 때 표시",
|
||||
"libraryShowDuplicateIndicatorSubtitle": "기존 트랙을 검색할 때 표시합니다",
|
||||
"@libraryShowDuplicateIndicatorSubtitle": {
|
||||
"description": "Subtitle for duplicate indicator toggle"
|
||||
},
|
||||
@@ -2698,7 +2793,7 @@
|
||||
"@libraryClear": {
|
||||
"description": "Button to clear all library entries"
|
||||
},
|
||||
"libraryClearSubtitle": "스캔된 모든 트랙 제거",
|
||||
"libraryClearSubtitle": "스캔된 모든 트랙을 제거합니다",
|
||||
"@libraryClearSubtitle": {
|
||||
"description": "Subtitle for clear button"
|
||||
},
|
||||
@@ -2757,6 +2852,10 @@
|
||||
"@libraryScanFinalizing": {
|
||||
"description": "Status shown after file scanning finishes but library persistence is still running"
|
||||
},
|
||||
"libraryScanPaused": "스캔이 일시 중지됨",
|
||||
"@libraryScanPaused": {
|
||||
"description": "Status shown while a library scan is paused by the user"
|
||||
},
|
||||
"libraryScanProgress": "{total} 개의 파일 중 {progress}%",
|
||||
"@libraryScanProgress": {
|
||||
"description": "Scan progress display",
|
||||
@@ -3057,7 +3156,7 @@
|
||||
"@cleanupOrphanedDownloadsNone": {
|
||||
"description": "Snackbar when no orphans found"
|
||||
},
|
||||
"cacheTitle": "저장소 & 캐시",
|
||||
"cacheTitle": "저장소 및 캐시",
|
||||
"@cacheTitle": {
|
||||
"description": "Cache management page title"
|
||||
},
|
||||
@@ -3201,7 +3300,7 @@
|
||||
"@cacheClearConfirmTitle": {
|
||||
"description": "Dialog title before clearing one cache category"
|
||||
},
|
||||
"cacheClearConfirmMessage": "''{target}''의 캐시된 데이터를 지웁니다. 다운로드된 음악 파일은 삭제되지 않습니다",
|
||||
"cacheClearConfirmMessage": "'{target}'의 캐시된 데이터를 지웁니다. 다운로드된 음악 파일은 삭제되지 않습니다",
|
||||
"@cacheClearConfirmMessage": {
|
||||
"description": "Dialog message before clearing selected cache",
|
||||
"placeholders": {
|
||||
@@ -3282,11 +3381,11 @@
|
||||
"@trackReEnrichFieldBasicTags": {
|
||||
"description": "Checkbox label for basic tags in re-enrich (title/artist are never overwritten)"
|
||||
},
|
||||
"trackReEnrichFieldTrackInfo": "트랙 & 디스크 번호",
|
||||
"trackReEnrichFieldTrackInfo": "트랙 및 디스크 번호",
|
||||
"@trackReEnrichFieldTrackInfo": {
|
||||
"description": "Checkbox label for track info in re-enrich"
|
||||
},
|
||||
"trackReEnrichFieldReleaseInfo": "데이터 & ISRC",
|
||||
"trackReEnrichFieldReleaseInfo": "데이터 및 ISRC",
|
||||
"@trackReEnrichFieldReleaseInfo": {
|
||||
"description": "Checkbox label for release info in re-enrich"
|
||||
},
|
||||
@@ -3378,7 +3477,7 @@
|
||||
"@trackEditMetadata": {
|
||||
"description": "Menu action - edit embedded metadata"
|
||||
},
|
||||
"trackCoverSaved": "앨범 커버가 ''{fileName}''에 저장됨",
|
||||
"trackCoverSaved": "앨범 커버가 '{fileName}'에 저장됨",
|
||||
"@trackCoverSaved": {
|
||||
"description": "Snackbar after cover art saved",
|
||||
"placeholders": {
|
||||
@@ -3391,7 +3490,7 @@
|
||||
"@trackCoverNoSource": {
|
||||
"description": "Snackbar when no cover art URL or embedded cover"
|
||||
},
|
||||
"trackLyricsSaved": "가사가 ''{fileName}''에 저장됨",
|
||||
"trackLyricsSaved": "가사가 '{fileName}'에 저장됨",
|
||||
"@trackLyricsSaved": {
|
||||
"description": "Snackbar after lyrics saved",
|
||||
"placeholders": {
|
||||
@@ -3585,7 +3684,7 @@
|
||||
"@cueSplitConfirmTitle": {
|
||||
"description": "CUE split confirmation dialog title"
|
||||
},
|
||||
"cueSplitConfirmMessage": "''{album}''을 {count} 개의 개별 FLAC 파일로 분할하시겠습니까?\n\n파일은 동일한 디렉토리에 저장됩니다",
|
||||
"cueSplitConfirmMessage": "'{album}'을 {count} 개의 개별 FLAC 파일로 분할하시겠습니까?\n\n파일은 동일한 디렉토리에 저장됩니다",
|
||||
"@cueSplitConfirmMessage": {
|
||||
"description": "CUE split confirmation dialog message",
|
||||
"placeholders": {
|
||||
@@ -3684,7 +3783,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionAddedToPlaylist": "''{playlistName}''에 추가됨",
|
||||
"collectionAddedToPlaylist": "'{playlistName}'에 추가됨",
|
||||
"@collectionAddedToPlaylist": {
|
||||
"description": "Snackbar after adding track to playlist",
|
||||
"placeholders": {
|
||||
@@ -3693,7 +3792,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionAlreadyInPlaylist": "이미 ''{playlistName}''에 있음",
|
||||
"collectionAlreadyInPlaylist": "이미 '{playlistName}'에 있음",
|
||||
"@collectionAlreadyInPlaylist": {
|
||||
"description": "Snackbar when track already exists in playlist",
|
||||
"placeholders": {
|
||||
@@ -3762,7 +3861,7 @@
|
||||
"@collectionRemoveFromFolder": {
|
||||
"description": "Tooltip for removing track from wishlist/loved folder"
|
||||
},
|
||||
"collectionAddedToLoved": "''{trackName}''이 '좋아요 표시한 음악'에 추가됨",
|
||||
"collectionAddedToLoved": "'{trackName}'이 '좋아요 표시한 음악'에 추가됨",
|
||||
"@collectionAddedToLoved": {
|
||||
"description": "Snackbar after adding track to loved folder",
|
||||
"placeholders": {
|
||||
@@ -3771,7 +3870,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionRemovedFromLoved": "''{trackName}''이 '좋아요 표시한 음악'에서 제거됨",
|
||||
"collectionRemovedFromLoved": "'{trackName}'이 '좋아요 표시한 음악'에서 제거됨",
|
||||
"@collectionRemovedFromLoved": {
|
||||
"description": "Snackbar after removing track from loved folder",
|
||||
"placeholders": {
|
||||
@@ -3780,7 +3879,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionAddedToWishlist": "''{trackName}''가 위시리스트에 추가됨",
|
||||
"collectionAddedToWishlist": "'{trackName}'가 위시리스트에 추가됨",
|
||||
"@collectionAddedToWishlist": {
|
||||
"description": "Snackbar after adding track to wishlist",
|
||||
"placeholders": {
|
||||
@@ -3789,7 +3888,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionRemovedFromWishlist": "''{trackName}''가 위시리스트에서 제거됨",
|
||||
"collectionRemovedFromWishlist": "'{trackName}'가 위시리스트에서 제거됨",
|
||||
"@collectionRemovedFromWishlist": {
|
||||
"description": "Snackbar after removing track from wishlist",
|
||||
"placeholders": {
|
||||
@@ -3798,7 +3897,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionAddedToFavoriteArtists": "''{artistName}''가 좋아하는 아티스트에 추가됨",
|
||||
"collectionAddedToFavoriteArtists": "'{artistName}'가 좋아하는 아티스트에 추가됨",
|
||||
"@collectionAddedToFavoriteArtists": {
|
||||
"description": "Snackbar after adding artist to favorite artists",
|
||||
"placeholders": {
|
||||
@@ -3807,7 +3906,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionRemovedFromFavoriteArtists": "''{artistName}''가 좋아하는 아티스트에서 제거됨",
|
||||
"collectionRemovedFromFavoriteArtists": "'{artistName}'가 좋아하는 아티스트에서 제거됨",
|
||||
"@collectionRemovedFromFavoriteArtists": {
|
||||
"description": "Snackbar after removing artist from favorite artists",
|
||||
"placeholders": {
|
||||
@@ -3979,7 +4078,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"lyricsProvidersAtLeastOne": "최소 한 명의 제공자가 활성화된 상태로 유지되어야 합니다",
|
||||
"lyricsProvidersAtLeastOne": "최소 한 개의 제공자가 활성화된 상태로 유지되어야 합니다",
|
||||
"@lyricsProvidersAtLeastOne": {
|
||||
"description": "Snackbar when user tries to disable the last enabled provider"
|
||||
},
|
||||
@@ -4043,7 +4142,7 @@
|
||||
"@settingsDonateSubtitle": {
|
||||
"description": "Subtitle for donate menu item"
|
||||
},
|
||||
"settingsBackup": "백업 & 복원",
|
||||
"settingsBackup": "백업 및 복원",
|
||||
"@settingsBackup": {
|
||||
"description": "Settings menu item - backup and restore page"
|
||||
},
|
||||
@@ -4051,7 +4150,7 @@
|
||||
"@settingsBackupSubtitle": {
|
||||
"description": "Subtitle for backup and restore settings item"
|
||||
},
|
||||
"backupTitle": "백업 & 복원",
|
||||
"backupTitle": "백업 및 복원",
|
||||
"@backupTitle": {
|
||||
"description": "App bar title for the backup and restore page"
|
||||
},
|
||||
@@ -4330,7 +4429,7 @@
|
||||
"@downloadErrorFolderAccessLost": {
|
||||
"description": "Error shown on downloads that failed because the iOS download folder bookmark could not be opened"
|
||||
},
|
||||
"downloadFilenameDescription": "''{artist}'', ''{title}'', ''{album}'', ''{track}'', ''{year}'', ''{date}'', ''{disc}''를 자리표시자로 사용하세요",
|
||||
"downloadFilenameDescription": "'{artist}', '{title}', '{album}', '{track}', '{year}', '{date}', '{disc}'를 자리표시자로 사용하세요",
|
||||
"@downloadFilenameDescription": {
|
||||
"description": "Description shown in filename format editor"
|
||||
},
|
||||
@@ -4597,7 +4696,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"editMetadataAutoFillFetch": "가져오기 & 채우기",
|
||||
"editMetadataAutoFillFetch": "가져오기 및 채우기",
|
||||
"@editMetadataAutoFillFetch": {
|
||||
"description": "Button label to fetch online metadata and fill selected fields"
|
||||
},
|
||||
@@ -4910,6 +5009,61 @@
|
||||
"@hiResCheckTitle": {
|
||||
"description": "Title of the fake Hi-Res check card"
|
||||
},
|
||||
"hiResCheckSummary": "스펙트럼과 활성 비트 깊이를 검사하여 업샘플링 또는 패딩의 징후를 확인합니다",
|
||||
"@hiResCheckSummary": {
|
||||
"description": "Introductory text for the sampled Hi-Res analysis"
|
||||
},
|
||||
"hiResCheckLimitedBandwidth": "대역폭이 제한됨",
|
||||
"@hiResCheckLimitedBandwidth": {
|
||||
"description": "Neutral finding: a limited spectrum alone does not prove upsampling"
|
||||
},
|
||||
"hiResCheckNoEvidence": "업샘플링 또는 패딩이 감지되지 않음",
|
||||
"@hiResCheckNoEvidence": {
|
||||
"description": "No evidence was detected; this does not certify the master"
|
||||
},
|
||||
"hiResCheckEstimatedCutoff": "추정되는 컷오프 주파수",
|
||||
"@hiResCheckEstimatedCutoff": {
|
||||
"description": "Estimated upper spectral edge at the analysis threshold"
|
||||
},
|
||||
"hiResCheckActiveBits": "활성화된 / 저장된 비트",
|
||||
"@hiResCheckActiveBits": {
|
||||
"description": "Active integer bit depth versus the container depth in the sampled segment"
|
||||
},
|
||||
"hiResCheckBandwidthExplanation": "더 낮은 컷오프는 마스터링 과정에서 발생할 수 있습니다. 이것만으로 업샘플링이라고 단정할 수는 없습니다",
|
||||
"@hiResCheckBandwidthExplanation": {
|
||||
"description": "Explains why the limited-bandwidth finding is neutral"
|
||||
},
|
||||
"hiResCheckSampledExplanation": "{seconds} 초 분량의 오디오를 기반으로 분석하였습니다. 이 분석만으로 원본 마스터를 인증할 수는 없습니다",
|
||||
"@hiResCheckSampledExplanation": {
|
||||
"description": "Limits of the sampled Hi-Res analysis; seconds is a formatted duration",
|
||||
"placeholders": {
|
||||
"seconds": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckImagingEvidence": "스펙트럼에 업샘플링과 일치하는 미러링된 대역이 나타납니다",
|
||||
"@hiResCheckImagingEvidence": {
|
||||
"description": "Spectral imaging is suggestive evidence rather than proof"
|
||||
},
|
||||
"hiResCheckRateEvidence": "{cutoff} 부근에서 급격한 롤오프가 나타나며, 측정된 노이즈 플로어를 고려하면 더 낮은 샘플레이트의 소스에서 비롯되었을 가능성이 있습니다",
|
||||
"@hiResCheckRateEvidence": {
|
||||
"description": "Heuristic evidence from both a brickwall and a 16-bit-like noise floor",
|
||||
"placeholders": {
|
||||
"cutoff": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckSteadyEnergy": "{cutoff} 이상의 에너지는 분석 구간에서 대부분 일정하며, 노이즈일 가능성이 있습니다",
|
||||
"@hiResCheckSteadyEnergy": {
|
||||
"description": "An observation about ultrasonic energy, not proof that removing it is safe",
|
||||
"placeholders": {
|
||||
"cutoff": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckDescription": "업샘플링되었거나 비트 패딩된 가짜 Hi-Res 파일을 감지합니다",
|
||||
"@hiResCheckDescription": {
|
||||
"description": "Explains what the Hi-Res authenticity check does"
|
||||
@@ -5032,7 +5186,7 @@
|
||||
"@cancelDownloadTitle": {
|
||||
"description": "Dialog title when confirming cancellation of an active download"
|
||||
},
|
||||
"cancelDownloadContent": "''{trackName}''에 대한 활성 다운로드를 취소합니다",
|
||||
"cancelDownloadContent": "'{trackName}'에 대한 활성 다운로드를 취소합니다",
|
||||
"@cancelDownloadContent": {
|
||||
"description": "Dialog body when confirming cancellation of an active download",
|
||||
"placeholders": {
|
||||
@@ -5070,7 +5224,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"notifDownloadingTrack": "''{trackName}''를 다운로드하는 중",
|
||||
"notifDownloadingTrack": "'{trackName}'를 다운로드하는 중",
|
||||
"@notifDownloadingTrack": {
|
||||
"description": "Notification title while downloading a track",
|
||||
"placeholders": {
|
||||
@@ -5079,7 +5233,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"notifFinalizingTrack": "''{trackName}''를 마무리하는 중",
|
||||
"notifFinalizingTrack": "'{trackName}'를 마무리하는 중",
|
||||
"@notifFinalizingTrack": {
|
||||
"description": "Notification title while finalizing (embedding metadata) a track",
|
||||
"placeholders": {
|
||||
@@ -5256,6 +5410,19 @@
|
||||
"@notifLibraryScanStopped": {
|
||||
"description": "Notification body when library scan is cancelled"
|
||||
},
|
||||
"notifLibraryScanPaused": "라이브러리 스캔이 일시 중지됨",
|
||||
"@notifLibraryScanPaused": {
|
||||
"description": "Notification title when the user pauses a library scan"
|
||||
},
|
||||
"notifLibraryScanPausedBody": "{count} 개의 파일을 스캔하였습니다. 여기에서 계속하려면 로컬 라이브러리 설정에서 다시 시작하세요",
|
||||
"@notifLibraryScanPausedBody": {
|
||||
"description": "Notification body for a paused library scan - files scanned so far",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"notifDownloadingUpdate": "SpotiFLAC Mobile v{version}을 다운로드하는 중",
|
||||
"@notifDownloadingUpdate": {
|
||||
"description": "Notification title while downloading an app update",
|
||||
@@ -5581,7 +5748,7 @@
|
||||
"@setupChangeFolderTooltip": {
|
||||
"description": "Tooltip for editing the selected download folder"
|
||||
},
|
||||
"a11yOpenTrackByArtist": "''{artistName}''의 트랙 ''{trackName}'' 열기",
|
||||
"a11yOpenTrackByArtist": "'{artistName}'의 트랙 '{trackName}' 열기",
|
||||
"@a11yOpenTrackByArtist": {
|
||||
"description": "Accessibility label for opening a track item",
|
||||
"placeholders": {
|
||||
@@ -5617,7 +5784,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"a11yOpenAlbumByArtistTrackCount": "''{artistName}''의 앨범 ''{albumName}'' 열기 ({trackCount} 번째 곡)",
|
||||
"a11yOpenAlbumByArtistTrackCount": "'{artistName}'의 앨범 '{albumName}' 열기 ({trackCount} 번째 곡)",
|
||||
"@a11yOpenAlbumByArtistTrackCount": {
|
||||
"description": "Accessibility label for opening an album item with track count",
|
||||
"placeholders": {
|
||||
@@ -5632,7 +5799,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"a11yTrackByArtist": "''{artistName}''의 ''{trackName}''",
|
||||
"a11yTrackByArtist": "'{artistName}'의 '{trackName}'",
|
||||
"@a11yTrackByArtist": {
|
||||
"description": "Accessibility label for a queue or list track item",
|
||||
"placeholders": {
|
||||
@@ -5644,7 +5811,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"a11ySelectAlbum": "앨범 ''{albumName}'' 선택",
|
||||
"a11ySelectAlbum": "앨범 '{albumName}' 선택",
|
||||
"@a11ySelectAlbum": {
|
||||
"description": "Accessibility label for selecting an album",
|
||||
"placeholders": {
|
||||
@@ -5653,7 +5820,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"a11yOpenAlbum": "앨범 ''{albumName}'' 열기",
|
||||
"a11yOpenAlbum": "앨범 '{albumName}' 열기",
|
||||
"@a11yOpenAlbum": {
|
||||
"description": "Accessibility label for opening an album",
|
||||
"placeholders": {
|
||||
@@ -5662,7 +5829,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"settingsFiles": "파일 & 폴더",
|
||||
"settingsFiles": "파일 및 폴더",
|
||||
"@settingsFiles": {
|
||||
"description": "Settings menu item - file and folder settings"
|
||||
},
|
||||
@@ -5933,7 +6100,7 @@
|
||||
"@a11yDeselectTrack": {
|
||||
"description": "Accessibility label for deselecting a track"
|
||||
},
|
||||
"a11yPlayTrackByArtist": "''{artistName}''의 ''{trackName}'' 재생",
|
||||
"a11yPlayTrackByArtist": "'{artistName}'의 '{trackName}' 재생",
|
||||
"@a11yPlayTrackByArtist": {
|
||||
"description": "Accessibility label for playing a local library track",
|
||||
"placeholders": {
|
||||
@@ -6266,7 +6433,7 @@
|
||||
"@libraryBuiltInPreviewPlayer": {
|
||||
"description": "Setting option to use the built-in preview player"
|
||||
},
|
||||
"libraryBuiltInPreviewPlayerSubtitle": "SpotiFLAC Mobile 내에서 빠른 로컬 미리 보기",
|
||||
"libraryBuiltInPreviewPlayerSubtitle": "SpotiFLAC Mobile에서 빠르게 미리 들을 수 있습니다 ",
|
||||
"@libraryBuiltInPreviewPlayerSubtitle": {
|
||||
"description": "Subtitle for built-in preview player option"
|
||||
},
|
||||
@@ -6287,6 +6454,31 @@
|
||||
"description": "Tooltip for minimizing the now playing screen"
|
||||
},
|
||||
"nowPlayingUpNext": "다음 곡",
|
||||
"nowPlayingAudioOutput": "오디오 출력",
|
||||
"nowPlayingWrittenBy": "작성자: {writers}",
|
||||
"@nowPlayingWrittenBy": {
|
||||
"placeholders": {
|
||||
"writers": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"nowPlayingLyricsProvider": "가사: {provider}",
|
||||
"@nowPlayingLyricsProvider": {
|
||||
"placeholders": {
|
||||
"provider": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"concertGetTickets": "티켓 구매",
|
||||
"concertSetList": "콘서트 세트리스트",
|
||||
"concertSetListButton": "세트리스트",
|
||||
"concertAddToCalendar": "캘린더에 추가",
|
||||
"concertOpenMaps": "지도 열기",
|
||||
"concertDetailsUnavailable": "콘서트 세부 정보를 현재 사용할 수 없습니다",
|
||||
"concertCalendarUnavailable": "캘린더를 열 수 없습니다",
|
||||
"nowPlayingAudioOutputUnavailable": "오디오 출력 설정을 열 수 없습니다",
|
||||
"@nowPlayingUpNext": {
|
||||
"description": "Title for the playback queue sheet"
|
||||
},
|
||||
@@ -6354,6 +6546,18 @@
|
||||
"description": "Tab label for the lyrics view"
|
||||
},
|
||||
"nowPlayingNoLyrics": "이 파일에는 가사가 없음",
|
||||
"nowPlayingInstrumental": "연주곡",
|
||||
"@nowPlayingInstrumental": {
|
||||
"description": "Accessibility label for the three-dot countdown during an instrumental break before lyrics resume"
|
||||
},
|
||||
"nowPlayingLyricsLanguageOptions": "가시 언어 옵션",
|
||||
"@nowPlayingLyricsLanguageOptions": {
|
||||
"description": "Tooltip for the player menu that shows or hides existing lyric pronunciation and translation"
|
||||
},
|
||||
"nowPlayingHidePronunciation": "발음 숨기기",
|
||||
"nowPlayingShowPronunciation": "발음 보기",
|
||||
"nowPlayingHideTranslation": "번역 숨기기",
|
||||
"nowPlayingShowTranslation": "번역 보기",
|
||||
"@nowPlayingNoLyrics": {
|
||||
"description": "Empty state when the playing file has no embedded lyrics"
|
||||
},
|
||||
@@ -6475,7 +6679,7 @@
|
||||
"@snackbarAddedToQueueGeneric": {
|
||||
"description": "Snackbar when a track is added to the playback queue without naming it"
|
||||
},
|
||||
"selectionDeletePlaylistsCount": "{count} {count, plural, =1{재생목록} other{재생목록}} 삭제",
|
||||
"selectionDeletePlaylistsCount": "{count} 개의 {count, plural, =1{재생목록} other{재생목록}} 삭제",
|
||||
"@selectionDeletePlaylistsCount": {
|
||||
"description": "Button label for deleting multiple selected playlists",
|
||||
"placeholders": {
|
||||
@@ -6560,7 +6764,7 @@
|
||||
"@trackAddToQueue": {
|
||||
"description": "Menu action to add a track to the playback queue"
|
||||
},
|
||||
"snackbarExtensionInstalledEnable": "''{extensionName}''이 설치됨. '설정 > 확장 기능'에서 활성화하세요",
|
||||
"snackbarExtensionInstalledEnable": "'{extensionName}'이 설치됨. '설정 > 확장 기능'에서 활성화하세요",
|
||||
"@snackbarExtensionInstalledEnable": {
|
||||
"description": "Snackbar after installing an extension from the repo tab",
|
||||
"placeholders": {
|
||||
@@ -6569,7 +6773,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"snackbarExtensionUpdatedVersion": "''{extensionName}''이 v{version}으로 업데이트됨",
|
||||
"snackbarExtensionUpdatedVersion": "'{extensionName}'이 v{version}으로 업데이트됨",
|
||||
"@snackbarExtensionUpdatedVersion": {
|
||||
"description": "Snackbar after updating an extension from the repo tab",
|
||||
"placeholders": {
|
||||
@@ -6728,7 +6932,7 @@
|
||||
"@settingsSearchHint": {
|
||||
"description": "Placeholder of the search field on the Settings tab"
|
||||
},
|
||||
"settingsSearchNoResults": "\"{query}\"과 일치하는 설정이 없음",
|
||||
"settingsSearchNoResults": "'{query}'과 일치하는 설정이 없음",
|
||||
"@settingsSearchNoResults": {
|
||||
"description": "Shown when a Settings search returns nothing",
|
||||
"placeholders": {
|
||||
@@ -6737,15 +6941,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"settingsGroupInterface": "확장 기능 & 디자인",
|
||||
"settingsGroupInterface": "확장 기능 및 디자인",
|
||||
"@settingsGroupInterface": {
|
||||
"description": "Settings group covering look and feel"
|
||||
},
|
||||
"settingsGroupContent": "콘텐츠 & 메타데이터",
|
||||
"settingsGroupContent": "콘텐츠 및 메타데이터",
|
||||
"@settingsGroupContent": {
|
||||
"description": "Settings group covering the library, metadata and lyrics"
|
||||
},
|
||||
"settingsGroupDownloads": "다운로드 & 파일",
|
||||
"settingsGroupDownloads": "다운로드 및 파일",
|
||||
"@settingsGroupDownloads": {
|
||||
"description": "Settings group covering download behaviour and storage"
|
||||
},
|
||||
@@ -6753,7 +6957,7 @@
|
||||
"@settingsGroupSystem": {
|
||||
"description": "Settings group covering app-level data, cache and logs"
|
||||
},
|
||||
"settingsGroupHelp": "정보 & 후원",
|
||||
"settingsGroupHelp": "정보 및 후원",
|
||||
"@settingsGroupHelp": {
|
||||
"description": "Settings group covering the about page and donations"
|
||||
},
|
||||
@@ -6761,6 +6965,10 @@
|
||||
"@libraryFilterMetadataMissingLyrics": {
|
||||
"description": "Filter option for tracks without embedded or sidecar lyrics"
|
||||
},
|
||||
"libraryFilterMetadataMissingReplayGain": "리플레이게인 누락",
|
||||
"@libraryFilterMetadataMissingReplayGain": {
|
||||
"description": "Filter option for scanned tracks without ReplayGain gain tags"
|
||||
},
|
||||
"trackOptionCopyTrackName": "트랙 제목 복사",
|
||||
"@trackOptionCopyTrackName": {
|
||||
"description": "Track menu action that copies the track title"
|
||||
@@ -6806,8 +7014,11 @@
|
||||
"description": "Selected state of the compact favorite action"
|
||||
},
|
||||
"autoMixDescription": "곡을 비트에 맞춰 믹싱하고, 음정은 유지한 채 템포를 조절합니다. 비트를 맞출 수 없는 경우에는 크로스페이드를 사용합니다",
|
||||
"autoMixOn": "자동믹스 켜짐",
|
||||
"autoMixOff": "자동믹스 꺼짐",
|
||||
"autoMixOn": "AutoMix 켜기",
|
||||
"autoMixOff": "AutoMix 끄기",
|
||||
"autoplayOn": "자동재생 켜기",
|
||||
"autoplayOff": "자동재생 끄기",
|
||||
"autoplayFromLibrary": "라이브러리에서 자동재생",
|
||||
"profileTitle": "프로필",
|
||||
"profileSetUp": "프로필 설정",
|
||||
"profileEdit": "이름 및 사진 편집",
|
||||
@@ -6818,8 +7029,11 @@
|
||||
"profileRemovePhoto": "사진 삭제",
|
||||
"profilePhotoError": "20MB보다 작은 유효한 이미지를 선택하세요",
|
||||
"profileSaveError": "프로필을 저장할 수 없습니다. 다시 시도하세요",
|
||||
"artistUpcomingConcerts": "예정된 콘서트",
|
||||
"artistAllUpcomingConcerts": "모든 예정된 콘서트",
|
||||
"artistNoUpcomingConcerts": "예정된 콘서트가 없습니다",
|
||||
"optionsEmbeddedCoverSizeOriginal": "원본 해상도",
|
||||
"@optionsEmbeddedCoverSizeOriginal": {
|
||||
"description": "Option that preserves the provider artwork at its original resolution"
|
||||
}
|
||||
}
|
||||
}
|
||||
+215
-1
@@ -1,4 +1,31 @@
|
||||
{
|
||||
"settingsPlaybackSubtitle": "Player, volume, AutoMix, and audio output",
|
||||
"sectionPlayer": "Player",
|
||||
"sectionVolumeAndTransitions": "Volume and transitions",
|
||||
"sectionAudioOutput": "Audio output",
|
||||
"usbBitPerfect": "Hi-res and bit-perfect audio",
|
||||
"usbBitPerfectDescription": "Preserve source precision on compatible outputs. Choose direct USB or AAudio exclusive below; otherwise Android USB output requires Android 14 or later. Applies from the next track, without AutoMix or normalization. System volume may not control direct USB.",
|
||||
"usbHardwareVolume": "DAC hardware volume",
|
||||
"usbVolumeWarningTitle": "Check your listening volume",
|
||||
"usbVolumeWarning": "Direct USB audio can be much louder than normal playback, and phone volume buttons may not control it. Lower your DAC or amplifier volume before starting. When supported, SpotiFLAC sets the DAC to at most −40 dB on connection; this does not guarantee a safe listening level on every amplifier or headphone.",
|
||||
"usbVolumeAccept": "I understand",
|
||||
"usbVolumeUnavailable": "Playback is paused because this DAC has no verified hardware volume control. Lower the DAC or amplifier volume, then enable fixed-volume output if needed and select the track again.",
|
||||
"usbFixedVolume": "Allow fixed-volume USB output",
|
||||
"usbFixedVolumeDescription": "For DACs without a volume control accessible to the app. Keep off for USB headsets without their own volume control. Applies from the next track.",
|
||||
"usbFixedVolumeWarning": "The app cannot lower the volume on this output. Audio may start at full level, and the phone volume slider will not help. Only continue after lowering the volume on your DAC or external amplifier. Do not enable this for a headset without its own volume control.",
|
||||
"dapExclusive": "DAP hi-res (AAudio exclusive)",
|
||||
"dapExclusiveDescription": "Use Oboe/AAudio at the track's original rate and precision for FLAC/WAV PCM. Requires Android 8.1 or later and compatible hardware. Exclusive access is checked; unavailable formats use normal playback. DSD requires the direct USB driver. Applies from the next track.",
|
||||
"dapExclusiveUnavailable": "AAudio exclusive access is unavailable for this track and current output. Using normal playback. For a USB DAC, try the direct USB driver.",
|
||||
"usbDirect": "Direct USB driver",
|
||||
"usbDirectDescription": "Use exclusive USB audio for FLAC/WAV, DSF/DFF and WavPack DSD, with Android USB permission. Native DSD requires a recognized compatible DAC. Other PCM formats use normal playback. Applies from the next track.",
|
||||
"usbDsdOverPcm": "DSD over PCM (DoP)",
|
||||
"usbDsdOverPcmDescription": "Enable only if your DAC explicitly supports DoP. Sends DSF/DFF and WavPack DSD inside a PCM carrier when native DSD is unavailable. An incompatible device may play noise; leave off for ordinary USB headsets.",
|
||||
"usbDsdUnsupported": "This DSD format or connected DAC is not supported. Playback stopped.",
|
||||
"usbPermissionDenied": "USB permission was not granted. Using normal playback.",
|
||||
"usbBitPerfectPending": "Waiting for the next track and a compatible USB output.",
|
||||
"usbBitPerfectNoDevice": "No USB DAC connected. Using normal audio output.",
|
||||
"usbBitPerfectFallback": "This device or audio format does not support bit-perfect output. Using normal playback.",
|
||||
"usbBitPerfectRouteChanged": "The USB audio route changed. Playback paused; select a track to reconnect.",
|
||||
"upgradeIntroWelcome": "Welcome to\nSpotiFLAC-Mobile 5.0",
|
||||
"upgradeIntroThemeTitle": "Make it\nyour own.",
|
||||
"upgradeIntroThemeBody": "Choose a look. Your choice applies immediately, and you can change it later in Appearance.",
|
||||
@@ -36,6 +63,32 @@
|
||||
"description": "System volume control label in the Mornye player"
|
||||
},
|
||||
"appearanceStyle": "App Style",
|
||||
"appearanceAccentRed": "Red (default)",
|
||||
"appearanceAccentOrange": "Orange",
|
||||
"appearanceAccentGreen": "Green",
|
||||
"appearanceAccentTeal": "Teal",
|
||||
"appearanceAccentBlue": "Blue",
|
||||
"appearanceAccentPurple": "Purple",
|
||||
"appearanceAccentPink": "Pink",
|
||||
"appearanceGlassClarity": "Glass clarity",
|
||||
"appearanceGlassClaritySubtitle": "Adjust transparency in Mornye menus and navigation. Text contrast is preserved.",
|
||||
"appearanceGlassTinted": "Tinted",
|
||||
"appearanceGlassClear": "Clear",
|
||||
"appearanceGlassClarityBlurOff": "Glass is opaque on this device. Turn on “{setting}” to adjust clarity.",
|
||||
"@appearanceGlassClarityBlurOff": {
|
||||
"description": "Shown under the disabled glass clarity slider when the device renders Mornye glass without blur. The placeholder is the name of the force-blur toggle.",
|
||||
"placeholders": {
|
||||
"setting": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appearanceGlassClarityHighContrast": "Glass stays opaque while the system’s high contrast setting is on.",
|
||||
"@appearanceGlassClarityHighContrast": {
|
||||
"description": "Shown under the disabled glass clarity slider while the OS high contrast accessibility setting is on"
|
||||
},
|
||||
"appearanceUseSystemFont": "Use system font",
|
||||
"appearanceUseSystemFontSubtitle": "Use your device’s default typeface for app text.",
|
||||
"@appearanceStyle": {
|
||||
"description": "Appearance section for choosing the app visual style"
|
||||
},
|
||||
@@ -255,6 +308,38 @@
|
||||
"@trackReplayGainFailed": {
|
||||
"description": "Snackbar message when ReplayGain scan/write fails"
|
||||
},
|
||||
"trackRemoveReplayGain": "Remove ReplayGain",
|
||||
"trackRemoveReplayGainSuccess": "ReplayGain tags removed",
|
||||
"trackRemoveReplayGainFailed": "Failed to remove ReplayGain tags",
|
||||
"replayGainRemoving": "Removing ReplayGain...",
|
||||
"replayGainRemoveConfirmMessage": "Remove track and album ReplayGain tags from {count} track(s)? Audio, artwork, and other metadata will be preserved.",
|
||||
"@replayGainRemoveConfirmMessage": {
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionRemoveReplayGainCount": "Remove RG ({count})",
|
||||
"@selectionRemoveReplayGainCount": {
|
||||
"description": "Compact selection action label. RG abbreviates ReplayGain; keep this short for a two-column toolbar.",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"replayGainRemoveBatchSuccess": "ReplayGain removed from {success} of {total} tracks",
|
||||
"@replayGainRemoveBatchSuccess": {
|
||||
"placeholders": {
|
||||
"success": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionReplayGainCount": "ReplayGain ({count})",
|
||||
"@selectionReplayGainCount": {
|
||||
"description": "Batch selection action button label for ReplayGain",
|
||||
@@ -318,6 +403,14 @@
|
||||
"@optionsArtistTagModeSplitVorbisSubtitle": {
|
||||
"description": "Subtitle for split Vorbis artist tag mode"
|
||||
},
|
||||
"optionsArtistTagModePrimary": "Primary artist only",
|
||||
"@optionsArtistTagModePrimary": {
|
||||
"description": "Artist tag mode option that writes only the first credited artist"
|
||||
},
|
||||
"optionsArtistTagModePrimarySubtitle": "Write only the first artist, like \"Artist A\", to Artist and Album Artist in every format, so players list one artist.",
|
||||
"@optionsArtistTagModePrimarySubtitle": {
|
||||
"description": "Subtitle for the primary-artist tag mode. Applies when downloading and re-enriching; manual edits keep what the user typed."
|
||||
},
|
||||
"optionsExtensionStore": "Extension Repo",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide repo tab"
|
||||
@@ -1476,6 +1569,8 @@
|
||||
"@sectionLyrics": {
|
||||
"description": "Settings section header"
|
||||
},
|
||||
"lyricsKeepScreenOn": "Keep screen on while viewing lyrics",
|
||||
"lyricsKeepScreenOnSubtitle": "Prevent screen timeout while lyrics are open, including when playback is paused.",
|
||||
"lyricsMode": "Lyrics Mode",
|
||||
"@lyricsMode": {
|
||||
"description": "Setting - how to save lyrics"
|
||||
@@ -2757,6 +2852,10 @@
|
||||
"@libraryScanFinalizing": {
|
||||
"description": "Status shown after file scanning finishes but library persistence is still running"
|
||||
},
|
||||
"libraryScanPaused": "Scan paused",
|
||||
"@libraryScanPaused": {
|
||||
"description": "Status shown while a library scan is paused by the user"
|
||||
},
|
||||
"libraryScanProgress": "{progress}% of {total} files",
|
||||
"@libraryScanProgress": {
|
||||
"description": "Scan progress display",
|
||||
@@ -4910,6 +5009,61 @@
|
||||
"@hiResCheckTitle": {
|
||||
"description": "Title of the fake Hi-Res check card"
|
||||
},
|
||||
"hiResCheckSummary": "Inspect the spectrum and active bit depth for signs of upsampling or padding.",
|
||||
"@hiResCheckSummary": {
|
||||
"description": "Introductory text for the sampled Hi-Res analysis"
|
||||
},
|
||||
"hiResCheckLimitedBandwidth": "Limited bandwidth",
|
||||
"@hiResCheckLimitedBandwidth": {
|
||||
"description": "Neutral finding: a limited spectrum alone does not prove upsampling"
|
||||
},
|
||||
"hiResCheckNoEvidence": "No upsampling or padding detected",
|
||||
"@hiResCheckNoEvidence": {
|
||||
"description": "No evidence was detected; this does not certify the master"
|
||||
},
|
||||
"hiResCheckEstimatedCutoff": "Estimated cutoff",
|
||||
"@hiResCheckEstimatedCutoff": {
|
||||
"description": "Estimated upper spectral edge at the analysis threshold"
|
||||
},
|
||||
"hiResCheckActiveBits": "Active / stored bits",
|
||||
"@hiResCheckActiveBits": {
|
||||
"description": "Active integer bit depth versus the container depth in the sampled segment"
|
||||
},
|
||||
"hiResCheckBandwidthExplanation": "A lower cutoff can come from mastering. It does not, by itself, prove upsampling.",
|
||||
"@hiResCheckBandwidthExplanation": {
|
||||
"description": "Explains why the limited-bandwidth finding is neutral"
|
||||
},
|
||||
"hiResCheckSampledExplanation": "Based on {seconds} seconds of audio. This analysis cannot certify the original master.",
|
||||
"@hiResCheckSampledExplanation": {
|
||||
"description": "Limits of the sampled Hi-Res analysis; seconds is a formatted duration",
|
||||
"placeholders": {
|
||||
"seconds": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckImagingEvidence": "The spectrum contains mirrored bands consistent with upsampling.",
|
||||
"@hiResCheckImagingEvidence": {
|
||||
"description": "Spectral imaging is suggestive evidence rather than proof"
|
||||
},
|
||||
"hiResCheckRateEvidence": "A sharp roll-off near {cutoff} and the measured noise floor suggest a lower-rate source.",
|
||||
"@hiResCheckRateEvidence": {
|
||||
"description": "Heuristic evidence from both a brickwall and a 16-bit-like noise floor",
|
||||
"placeholders": {
|
||||
"cutoff": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckSteadyEnergy": "Energy above {cutoff} is mostly steady in the analyzed segment and may be noise.",
|
||||
"@hiResCheckSteadyEnergy": {
|
||||
"description": "An observation about ultrasonic energy, not proof that removing it is safe",
|
||||
"placeholders": {
|
||||
"cutoff": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckDescription": "Detect upsampled or bit-padded fake Hi-Res files",
|
||||
"@hiResCheckDescription": {
|
||||
"description": "Explains what the Hi-Res authenticity check does"
|
||||
@@ -5256,6 +5410,19 @@
|
||||
"@notifLibraryScanStopped": {
|
||||
"description": "Notification body when library scan is cancelled"
|
||||
},
|
||||
"notifLibraryScanPaused": "Library scan paused",
|
||||
"@notifLibraryScanPaused": {
|
||||
"description": "Notification title when the user pauses a library scan"
|
||||
},
|
||||
"notifLibraryScanPausedBody": "{count} files scanned. Resume in Local Library settings to continue from here.",
|
||||
"@notifLibraryScanPausedBody": {
|
||||
"description": "Notification body for a paused library scan - files scanned so far",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"notifDownloadingUpdate": "Downloading SpotiFLAC Mobile v{version}",
|
||||
"@notifDownloadingUpdate": {
|
||||
"description": "Notification title while downloading an app update",
|
||||
@@ -6287,6 +6454,31 @@
|
||||
"description": "Tooltip for minimizing the now playing screen"
|
||||
},
|
||||
"nowPlayingUpNext": "Up next",
|
||||
"nowPlayingAudioOutput": "Audio Output",
|
||||
"nowPlayingWrittenBy": "Written by: {writers}",
|
||||
"@nowPlayingWrittenBy": {
|
||||
"placeholders": {
|
||||
"writers": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"nowPlayingLyricsProvider": "Lyrics: {provider}",
|
||||
"@nowPlayingLyricsProvider": {
|
||||
"placeholders": {
|
||||
"provider": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"concertGetTickets": "Get Tickets",
|
||||
"concertSetList": "Concert Set List",
|
||||
"concertSetListButton": "Set List",
|
||||
"concertAddToCalendar": "Add to Calendar",
|
||||
"concertOpenMaps": "Open Maps",
|
||||
"concertDetailsUnavailable": "Concert details are currently unavailable.",
|
||||
"concertCalendarUnavailable": "Unable to open the calendar.",
|
||||
"nowPlayingAudioOutputUnavailable": "Unable to open audio output settings.",
|
||||
"@nowPlayingUpNext": {
|
||||
"description": "Title for the playback queue sheet"
|
||||
},
|
||||
@@ -6354,6 +6546,18 @@
|
||||
"description": "Tab label for the lyrics view"
|
||||
},
|
||||
"nowPlayingNoLyrics": "No lyrics in this file",
|
||||
"nowPlayingInstrumental": "Instrumental",
|
||||
"@nowPlayingInstrumental": {
|
||||
"description": "Accessibility label for the three-dot countdown during an instrumental break before lyrics resume"
|
||||
},
|
||||
"nowPlayingLyricsLanguageOptions": "Lyrics language options",
|
||||
"@nowPlayingLyricsLanguageOptions": {
|
||||
"description": "Tooltip for the player menu that shows or hides existing lyric pronunciation and translation"
|
||||
},
|
||||
"nowPlayingHidePronunciation": "Hide Pronunciation",
|
||||
"nowPlayingShowPronunciation": "Show Pronunciation",
|
||||
"nowPlayingHideTranslation": "Hide Translation",
|
||||
"nowPlayingShowTranslation": "Show Translation",
|
||||
"@nowPlayingNoLyrics": {
|
||||
"description": "Empty state when the playing file has no embedded lyrics"
|
||||
},
|
||||
@@ -6761,6 +6965,10 @@
|
||||
"@libraryFilterMetadataMissingLyrics": {
|
||||
"description": "Filter option for tracks without embedded or sidecar lyrics"
|
||||
},
|
||||
"libraryFilterMetadataMissingReplayGain": "Missing ReplayGain",
|
||||
"@libraryFilterMetadataMissingReplayGain": {
|
||||
"description": "Filter option for scanned tracks without ReplayGain gain tags"
|
||||
},
|
||||
"trackOptionCopyTrackName": "Copy track name",
|
||||
"@trackOptionCopyTrackName": {
|
||||
"description": "Track menu action that copies the track title"
|
||||
@@ -6808,6 +7016,9 @@
|
||||
"autoMixDescription": "Blend songs with beat matching and pitch-preserving tempo adjustment. Uses crossfade when beats cannot be matched.",
|
||||
"autoMixOn": "AutoMix on",
|
||||
"autoMixOff": "AutoMix off",
|
||||
"autoplayOn": "Autoplay on",
|
||||
"autoplayOff": "Autoplay off",
|
||||
"autoplayFromLibrary": "Autoplay from your Library",
|
||||
"profileTitle": "Profile",
|
||||
"profileSetUp": "Set up your profile",
|
||||
"profileEdit": "Edit name and photo",
|
||||
@@ -6818,8 +7029,11 @@
|
||||
"profileRemovePhoto": "Remove photo",
|
||||
"profilePhotoError": "Choose a valid image smaller than 20 MB.",
|
||||
"profileSaveError": "Could not save your profile. Please try again.",
|
||||
"artistUpcomingConcerts": "Upcoming Concerts",
|
||||
"artistAllUpcomingConcerts": "All Upcoming Concerts",
|
||||
"artistNoUpcomingConcerts": "No upcoming concerts.",
|
||||
"optionsEmbeddedCoverSizeOriginal": "Original resolution",
|
||||
"@optionsEmbeddedCoverSizeOriginal": {
|
||||
"description": "Option that preserves the provider artwork at its original resolution"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,31 @@
|
||||
{
|
||||
"settingsPlaybackSubtitle": "Player, volume, AutoMix, and audio output",
|
||||
"sectionPlayer": "Player",
|
||||
"sectionVolumeAndTransitions": "Volume and transitions",
|
||||
"sectionAudioOutput": "Audio output",
|
||||
"usbBitPerfect": "Hi-res and bit-perfect audio",
|
||||
"usbBitPerfectDescription": "Preserve source precision on compatible outputs. Choose direct USB or AAudio exclusive below; otherwise Android USB output requires Android 14 or later. Applies from the next track, without AutoMix or normalization. System volume may not control direct USB.",
|
||||
"usbHardwareVolume": "DAC hardware volume",
|
||||
"usbVolumeWarningTitle": "Check your listening volume",
|
||||
"usbVolumeWarning": "Direct USB audio can be much louder than normal playback, and phone volume buttons may not control it. Lower your DAC or amplifier volume before starting. When supported, SpotiFLAC sets the DAC to at most −40 dB on connection; this does not guarantee a safe listening level on every amplifier or headphone.",
|
||||
"usbVolumeAccept": "I understand",
|
||||
"usbVolumeUnavailable": "Playback is paused because this DAC has no verified hardware volume control. Lower the DAC or amplifier volume, then enable fixed-volume output if needed and select the track again.",
|
||||
"usbFixedVolume": "Allow fixed-volume USB output",
|
||||
"usbFixedVolumeDescription": "For DACs without a volume control accessible to the app. Keep off for USB headsets without their own volume control. Applies from the next track.",
|
||||
"usbFixedVolumeWarning": "The app cannot lower the volume on this output. Audio may start at full level, and the phone volume slider will not help. Only continue after lowering the volume on your DAC or external amplifier. Do not enable this for a headset without its own volume control.",
|
||||
"dapExclusive": "DAP hi-res (AAudio exclusive)",
|
||||
"dapExclusiveDescription": "Use Oboe/AAudio at the track's original rate and precision for FLAC/WAV PCM. Requires Android 8.1 or later and compatible hardware. Exclusive access is checked; unavailable formats use normal playback. DSD requires the direct USB driver. Applies from the next track.",
|
||||
"dapExclusiveUnavailable": "AAudio exclusive access is unavailable for this track and current output. Using normal playback. For a USB DAC, try the direct USB driver.",
|
||||
"usbDirect": "Direct USB driver",
|
||||
"usbDirectDescription": "Use exclusive USB audio for FLAC/WAV, DSF/DFF and WavPack DSD, with Android USB permission. Native DSD requires a recognized compatible DAC. Other PCM formats use normal playback. Applies from the next track.",
|
||||
"usbDsdOverPcm": "DSD over PCM (DoP)",
|
||||
"usbDsdOverPcmDescription": "Enable only if your DAC explicitly supports DoP. Sends DSF/DFF and WavPack DSD inside a PCM carrier when native DSD is unavailable. An incompatible device may play noise; leave off for ordinary USB headsets.",
|
||||
"usbDsdUnsupported": "This DSD format or connected DAC is not supported. Playback stopped.",
|
||||
"usbPermissionDenied": "USB permission was not granted. Using normal playback.",
|
||||
"usbBitPerfectPending": "Waiting for the next track and a compatible USB output.",
|
||||
"usbBitPerfectNoDevice": "No USB DAC connected. Using normal audio output.",
|
||||
"usbBitPerfectFallback": "This device or audio format does not support bit-perfect output. Using normal playback.",
|
||||
"usbBitPerfectRouteChanged": "The USB audio route changed. Playback paused; select a track to reconnect.",
|
||||
"upgradeIntroWelcome": "Welcome to\nSpotiFLAC-Mobile 5.0",
|
||||
"upgradeIntroThemeTitle": "Make it\nyour own.",
|
||||
"upgradeIntroThemeBody": "Choose a look. Your choice applies immediately, and you can change it later in Appearance.",
|
||||
@@ -36,6 +63,32 @@
|
||||
"description": "System volume control label in the Mornye player"
|
||||
},
|
||||
"appearanceStyle": "App Style",
|
||||
"appearanceAccentRed": "Red (default)",
|
||||
"appearanceAccentOrange": "Orange",
|
||||
"appearanceAccentGreen": "Green",
|
||||
"appearanceAccentTeal": "Teal",
|
||||
"appearanceAccentBlue": "Blue",
|
||||
"appearanceAccentPurple": "Purple",
|
||||
"appearanceAccentPink": "Pink",
|
||||
"appearanceGlassClarity": "Glass clarity",
|
||||
"appearanceGlassClaritySubtitle": "Adjust transparency in Mornye menus and navigation. Text contrast is preserved.",
|
||||
"appearanceGlassTinted": "Tinted",
|
||||
"appearanceGlassClear": "Clear",
|
||||
"appearanceGlassClarityBlurOff": "Glass is opaque on this device. Turn on “{setting}” to adjust clarity.",
|
||||
"@appearanceGlassClarityBlurOff": {
|
||||
"description": "Shown under the disabled glass clarity slider when the device renders Mornye glass without blur. The placeholder is the name of the force-blur toggle.",
|
||||
"placeholders": {
|
||||
"setting": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appearanceGlassClarityHighContrast": "Glass stays opaque while the system’s high contrast setting is on.",
|
||||
"@appearanceGlassClarityHighContrast": {
|
||||
"description": "Shown under the disabled glass clarity slider while the OS high contrast accessibility setting is on"
|
||||
},
|
||||
"appearanceUseSystemFont": "Use system font",
|
||||
"appearanceUseSystemFontSubtitle": "Use your device’s default typeface for app text.",
|
||||
"@appearanceStyle": {
|
||||
"description": "Appearance section for choosing the app visual style"
|
||||
},
|
||||
@@ -255,6 +308,38 @@
|
||||
"@trackReplayGainFailed": {
|
||||
"description": "Snackbar message when ReplayGain scan/write fails"
|
||||
},
|
||||
"trackRemoveReplayGain": "Remove ReplayGain",
|
||||
"trackRemoveReplayGainSuccess": "ReplayGain tags removed",
|
||||
"trackRemoveReplayGainFailed": "Failed to remove ReplayGain tags",
|
||||
"replayGainRemoving": "Removing ReplayGain...",
|
||||
"replayGainRemoveConfirmMessage": "Remove track and album ReplayGain tags from {count} track(s)? Audio, artwork, and other metadata will be preserved.",
|
||||
"@replayGainRemoveConfirmMessage": {
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionRemoveReplayGainCount": "Remove RG ({count})",
|
||||
"@selectionRemoveReplayGainCount": {
|
||||
"description": "Compact selection action label. RG abbreviates ReplayGain; keep this short for a two-column toolbar.",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"replayGainRemoveBatchSuccess": "ReplayGain removed from {success} of {total} tracks",
|
||||
"@replayGainRemoveBatchSuccess": {
|
||||
"placeholders": {
|
||||
"success": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionReplayGainCount": "ReplayGain ({count})",
|
||||
"@selectionReplayGainCount": {
|
||||
"description": "Batch selection action button label for ReplayGain",
|
||||
@@ -318,6 +403,14 @@
|
||||
"@optionsArtistTagModeSplitVorbisSubtitle": {
|
||||
"description": "Subtitle for split Vorbis artist tag mode"
|
||||
},
|
||||
"optionsArtistTagModePrimary": "Primary artist only",
|
||||
"@optionsArtistTagModePrimary": {
|
||||
"description": "Artist tag mode option that writes only the first credited artist"
|
||||
},
|
||||
"optionsArtistTagModePrimarySubtitle": "Write only the first artist, like \"Artist A\", to Artist and Album Artist in every format, so players list one artist.",
|
||||
"@optionsArtistTagModePrimarySubtitle": {
|
||||
"description": "Subtitle for the primary-artist tag mode. Applies when downloading and re-enriching; manual edits keep what the user typed."
|
||||
},
|
||||
"optionsExtensionStore": "Repositório de extensões",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide repo tab"
|
||||
@@ -1476,6 +1569,8 @@
|
||||
"@sectionLyrics": {
|
||||
"description": "Settings section header"
|
||||
},
|
||||
"lyricsKeepScreenOn": "Keep screen on while viewing lyrics",
|
||||
"lyricsKeepScreenOnSubtitle": "Prevent screen timeout while lyrics are open, including when playback is paused.",
|
||||
"lyricsMode": "Modo de Letras",
|
||||
"@lyricsMode": {
|
||||
"description": "Setting - how to save lyrics"
|
||||
@@ -2757,6 +2852,10 @@
|
||||
"@libraryScanFinalizing": {
|
||||
"description": "Status shown after file scanning finishes but library persistence is still running"
|
||||
},
|
||||
"libraryScanPaused": "Scan paused",
|
||||
"@libraryScanPaused": {
|
||||
"description": "Status shown while a library scan is paused by the user"
|
||||
},
|
||||
"libraryScanProgress": "{progress}% of {total} files",
|
||||
"@libraryScanProgress": {
|
||||
"description": "Scan progress display",
|
||||
@@ -4910,6 +5009,61 @@
|
||||
"@hiResCheckTitle": {
|
||||
"description": "Title of the fake Hi-Res check card"
|
||||
},
|
||||
"hiResCheckSummary": "Inspect the spectrum and active bit depth for signs of upsampling or padding.",
|
||||
"@hiResCheckSummary": {
|
||||
"description": "Introductory text for the sampled Hi-Res analysis"
|
||||
},
|
||||
"hiResCheckLimitedBandwidth": "Limited bandwidth",
|
||||
"@hiResCheckLimitedBandwidth": {
|
||||
"description": "Neutral finding: a limited spectrum alone does not prove upsampling"
|
||||
},
|
||||
"hiResCheckNoEvidence": "No upsampling or padding detected",
|
||||
"@hiResCheckNoEvidence": {
|
||||
"description": "No evidence was detected; this does not certify the master"
|
||||
},
|
||||
"hiResCheckEstimatedCutoff": "Estimated cutoff",
|
||||
"@hiResCheckEstimatedCutoff": {
|
||||
"description": "Estimated upper spectral edge at the analysis threshold"
|
||||
},
|
||||
"hiResCheckActiveBits": "Active / stored bits",
|
||||
"@hiResCheckActiveBits": {
|
||||
"description": "Active integer bit depth versus the container depth in the sampled segment"
|
||||
},
|
||||
"hiResCheckBandwidthExplanation": "A lower cutoff can come from mastering. It does not, by itself, prove upsampling.",
|
||||
"@hiResCheckBandwidthExplanation": {
|
||||
"description": "Explains why the limited-bandwidth finding is neutral"
|
||||
},
|
||||
"hiResCheckSampledExplanation": "Based on {seconds} seconds of audio. This analysis cannot certify the original master.",
|
||||
"@hiResCheckSampledExplanation": {
|
||||
"description": "Limits of the sampled Hi-Res analysis; seconds is a formatted duration",
|
||||
"placeholders": {
|
||||
"seconds": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckImagingEvidence": "The spectrum contains mirrored bands consistent with upsampling.",
|
||||
"@hiResCheckImagingEvidence": {
|
||||
"description": "Spectral imaging is suggestive evidence rather than proof"
|
||||
},
|
||||
"hiResCheckRateEvidence": "A sharp roll-off near {cutoff} and the measured noise floor suggest a lower-rate source.",
|
||||
"@hiResCheckRateEvidence": {
|
||||
"description": "Heuristic evidence from both a brickwall and a 16-bit-like noise floor",
|
||||
"placeholders": {
|
||||
"cutoff": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckSteadyEnergy": "Energy above {cutoff} is mostly steady in the analyzed segment and may be noise.",
|
||||
"@hiResCheckSteadyEnergy": {
|
||||
"description": "An observation about ultrasonic energy, not proof that removing it is safe",
|
||||
"placeholders": {
|
||||
"cutoff": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckDescription": "Detect upsampled or bit-padded fake Hi-Res files",
|
||||
"@hiResCheckDescription": {
|
||||
"description": "Explains what the Hi-Res authenticity check does"
|
||||
@@ -5256,6 +5410,19 @@
|
||||
"@notifLibraryScanStopped": {
|
||||
"description": "Notification body when library scan is cancelled"
|
||||
},
|
||||
"notifLibraryScanPaused": "Library scan paused",
|
||||
"@notifLibraryScanPaused": {
|
||||
"description": "Notification title when the user pauses a library scan"
|
||||
},
|
||||
"notifLibraryScanPausedBody": "{count} files scanned. Resume in Local Library settings to continue from here.",
|
||||
"@notifLibraryScanPausedBody": {
|
||||
"description": "Notification body for a paused library scan - files scanned so far",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"notifDownloadingUpdate": "Downloading SpotiFLAC Mobile v{version}",
|
||||
"@notifDownloadingUpdate": {
|
||||
"description": "Notification title while downloading an app update",
|
||||
@@ -6287,6 +6454,31 @@
|
||||
"description": "Tooltip for minimizing the now playing screen"
|
||||
},
|
||||
"nowPlayingUpNext": "Up next",
|
||||
"nowPlayingAudioOutput": "Audio Output",
|
||||
"nowPlayingWrittenBy": "Written by: {writers}",
|
||||
"@nowPlayingWrittenBy": {
|
||||
"placeholders": {
|
||||
"writers": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"nowPlayingLyricsProvider": "Lyrics: {provider}",
|
||||
"@nowPlayingLyricsProvider": {
|
||||
"placeholders": {
|
||||
"provider": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"concertGetTickets": "Get Tickets",
|
||||
"concertSetList": "Concert Set List",
|
||||
"concertSetListButton": "Set List",
|
||||
"concertAddToCalendar": "Add to Calendar",
|
||||
"concertOpenMaps": "Open Maps",
|
||||
"concertDetailsUnavailable": "Concert details are currently unavailable.",
|
||||
"concertCalendarUnavailable": "Unable to open the calendar.",
|
||||
"nowPlayingAudioOutputUnavailable": "Unable to open audio output settings.",
|
||||
"@nowPlayingUpNext": {
|
||||
"description": "Title for the playback queue sheet"
|
||||
},
|
||||
@@ -6354,6 +6546,18 @@
|
||||
"description": "Tab label for the lyrics view"
|
||||
},
|
||||
"nowPlayingNoLyrics": "No lyrics in this file",
|
||||
"nowPlayingInstrumental": "Instrumental",
|
||||
"@nowPlayingInstrumental": {
|
||||
"description": "Accessibility label for the three-dot countdown during an instrumental break before lyrics resume"
|
||||
},
|
||||
"nowPlayingLyricsLanguageOptions": "Lyrics language options",
|
||||
"@nowPlayingLyricsLanguageOptions": {
|
||||
"description": "Tooltip for the player menu that shows or hides existing lyric pronunciation and translation"
|
||||
},
|
||||
"nowPlayingHidePronunciation": "Hide Pronunciation",
|
||||
"nowPlayingShowPronunciation": "Show Pronunciation",
|
||||
"nowPlayingHideTranslation": "Hide Translation",
|
||||
"nowPlayingShowTranslation": "Show Translation",
|
||||
"@nowPlayingNoLyrics": {
|
||||
"description": "Empty state when the playing file has no embedded lyrics"
|
||||
},
|
||||
@@ -6761,6 +6965,10 @@
|
||||
"@libraryFilterMetadataMissingLyrics": {
|
||||
"description": "Filter option for tracks without embedded or sidecar lyrics"
|
||||
},
|
||||
"libraryFilterMetadataMissingReplayGain": "Missing ReplayGain",
|
||||
"@libraryFilterMetadataMissingReplayGain": {
|
||||
"description": "Filter option for scanned tracks without ReplayGain gain tags"
|
||||
},
|
||||
"trackOptionCopyTrackName": "Copy track name",
|
||||
"@trackOptionCopyTrackName": {
|
||||
"description": "Track menu action that copies the track title"
|
||||
@@ -6808,6 +7016,9 @@
|
||||
"autoMixDescription": "Blend songs with beat matching and pitch-preserving tempo adjustment. Uses crossfade when beats cannot be matched.",
|
||||
"autoMixOn": "AutoMix on",
|
||||
"autoMixOff": "AutoMix off",
|
||||
"autoplayOn": "Autoplay on",
|
||||
"autoplayOff": "Autoplay off",
|
||||
"autoplayFromLibrary": "Autoplay from your Library",
|
||||
"profileTitle": "Profile",
|
||||
"profileSetUp": "Set up your profile",
|
||||
"profileEdit": "Edit name and photo",
|
||||
@@ -6818,6 +7029,9 @@
|
||||
"profileRemovePhoto": "Remove photo",
|
||||
"profilePhotoError": "Choose a valid image smaller than 20 MB.",
|
||||
"profileSaveError": "Could not save your profile. Please try again.",
|
||||
"artistUpcomingConcerts": "Upcoming Concerts",
|
||||
"artistAllUpcomingConcerts": "All Upcoming Concerts",
|
||||
"artistNoUpcomingConcerts": "No upcoming concerts.",
|
||||
"optionsEmbeddedCoverSizeOriginal": "Original resolution",
|
||||
"@optionsEmbeddedCoverSizeOriginal": {
|
||||
"description": "Option that preserves the provider artwork at its original resolution"
|
||||
|
||||
+501
-287
File diff suppressed because it is too large.
Load diff
+238
-24
@@ -1,4 +1,31 @@
|
||||
{
|
||||
"settingsPlaybackSubtitle": "Player, volume, AutoMix, and audio output",
|
||||
"sectionPlayer": "Player",
|
||||
"sectionVolumeAndTransitions": "Volume and transitions",
|
||||
"sectionAudioOutput": "Audio output",
|
||||
"usbBitPerfect": "Hi-res and bit-perfect audio",
|
||||
"usbBitPerfectDescription": "Preserve source precision on compatible outputs. Choose direct USB or AAudio exclusive below; otherwise Android USB output requires Android 14 or later. Applies from the next track, without AutoMix or normalization. System volume may not control direct USB.",
|
||||
"usbHardwareVolume": "DAC hardware volume",
|
||||
"usbVolumeWarningTitle": "Check your listening volume",
|
||||
"usbVolumeWarning": "Direct USB audio can be much louder than normal playback, and phone volume buttons may not control it. Lower your DAC or amplifier volume before starting. When supported, SpotiFLAC sets the DAC to at most −40 dB on connection; this does not guarantee a safe listening level on every amplifier or headphone.",
|
||||
"usbVolumeAccept": "I understand",
|
||||
"usbVolumeUnavailable": "Playback is paused because this DAC has no verified hardware volume control. Lower the DAC or amplifier volume, then enable fixed-volume output if needed and select the track again.",
|
||||
"usbFixedVolume": "Allow fixed-volume USB output",
|
||||
"usbFixedVolumeDescription": "For DACs without a volume control accessible to the app. Keep off for USB headsets without their own volume control. Applies from the next track.",
|
||||
"usbFixedVolumeWarning": "The app cannot lower the volume on this output. Audio may start at full level, and the phone volume slider will not help. Only continue after lowering the volume on your DAC or external amplifier. Do not enable this for a headset without its own volume control.",
|
||||
"dapExclusive": "DAP hi-res (AAudio exclusive)",
|
||||
"dapExclusiveDescription": "Use Oboe/AAudio at the track's original rate and precision for FLAC/WAV PCM. Requires Android 8.1 or later and compatible hardware. Exclusive access is checked; unavailable formats use normal playback. DSD requires the direct USB driver. Applies from the next track.",
|
||||
"dapExclusiveUnavailable": "AAudio exclusive access is unavailable for this track and current output. Using normal playback. For a USB DAC, try the direct USB driver.",
|
||||
"usbDirect": "Direct USB driver",
|
||||
"usbDirectDescription": "Use exclusive USB audio for FLAC/WAV, DSF/DFF and WavPack DSD, with Android USB permission. Native DSD requires a recognized compatible DAC. Other PCM formats use normal playback. Applies from the next track.",
|
||||
"usbDsdOverPcm": "DSD over PCM (DoP)",
|
||||
"usbDsdOverPcmDescription": "Enable only if your DAC explicitly supports DoP. Sends DSF/DFF and WavPack DSD inside a PCM carrier when native DSD is unavailable. An incompatible device may play noise; leave off for ordinary USB headsets.",
|
||||
"usbDsdUnsupported": "This DSD format or connected DAC is not supported. Playback stopped.",
|
||||
"usbPermissionDenied": "USB permission was not granted. Using normal playback.",
|
||||
"usbBitPerfectPending": "Waiting for the next track and a compatible USB output.",
|
||||
"usbBitPerfectNoDevice": "No USB DAC connected. Using normal audio output.",
|
||||
"usbBitPerfectFallback": "This device or audio format does not support bit-perfect output. Using normal playback.",
|
||||
"usbBitPerfectRouteChanged": "The USB audio route changed. Playback paused; select a track to reconnect.",
|
||||
"upgradeIntroWelcome": "Welcome to\nSpotiFLAC-Mobile 5.0",
|
||||
"upgradeIntroThemeTitle": "Make it\nyour own.",
|
||||
"upgradeIntroThemeBody": "Choose a look. Your choice applies immediately, and you can change it later in Appearance.",
|
||||
@@ -31,11 +58,37 @@
|
||||
"upgradeIntroReplay": "What’s new in 5.0",
|
||||
"cacheMotionArtwork": "Offline motion covers",
|
||||
"cacheMotionArtworkDesc": "Album videos saved with downloads. Removing them keeps your music files and static covers.",
|
||||
"nowPlayingVolume": "Volume",
|
||||
"nowPlayingVolume": "Ses",
|
||||
"@nowPlayingVolume": {
|
||||
"description": "System volume control label in the Mornye player"
|
||||
},
|
||||
"appearanceStyle": "App Style",
|
||||
"appearanceAccentRed": "Red (default)",
|
||||
"appearanceAccentOrange": "Turuncu",
|
||||
"appearanceAccentGreen": "Yeşil",
|
||||
"appearanceAccentTeal": "Teal",
|
||||
"appearanceAccentBlue": "Mavi",
|
||||
"appearanceAccentPurple": "Mor",
|
||||
"appearanceAccentPink": "Pembe",
|
||||
"appearanceGlassClarity": "Glass clarity",
|
||||
"appearanceGlassClaritySubtitle": "Adjust transparency in Mornye menus and navigation. Text contrast is preserved.",
|
||||
"appearanceGlassTinted": "Tinted",
|
||||
"appearanceGlassClear": "Clear",
|
||||
"appearanceGlassClarityBlurOff": "Glass is opaque on this device. Turn on “{setting}” to adjust clarity.",
|
||||
"@appearanceGlassClarityBlurOff": {
|
||||
"description": "Shown under the disabled glass clarity slider when the device renders Mornye glass without blur. The placeholder is the name of the force-blur toggle.",
|
||||
"placeholders": {
|
||||
"setting": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appearanceGlassClarityHighContrast": "Glass stays opaque while the system’s high contrast setting is on.",
|
||||
"@appearanceGlassClarityHighContrast": {
|
||||
"description": "Shown under the disabled glass clarity slider while the OS high contrast accessibility setting is on"
|
||||
},
|
||||
"appearanceUseSystemFont": "Sistem yazı tipini kullan",
|
||||
"appearanceUseSystemFontSubtitle": "Use your device’s default typeface for app text.",
|
||||
"@appearanceStyle": {
|
||||
"description": "Appearance section for choosing the app visual style"
|
||||
},
|
||||
@@ -98,7 +151,7 @@
|
||||
"description": "Filter chip - show singles only"
|
||||
},
|
||||
"libraryRecentlyAdded": "Recently Added",
|
||||
"libraryDownloads": "Downloads",
|
||||
"libraryDownloads": "İndirilenler",
|
||||
"libraryNoActiveDownloads": "No active downloads",
|
||||
"librarySearchHint": "Search your library",
|
||||
"libraryEmptyCollection": "Your music will appear here",
|
||||
@@ -255,6 +308,38 @@
|
||||
"@trackReplayGainFailed": {
|
||||
"description": "Snackbar message when ReplayGain scan/write fails"
|
||||
},
|
||||
"trackRemoveReplayGain": "Remove ReplayGain",
|
||||
"trackRemoveReplayGainSuccess": "ReplayGain tags removed",
|
||||
"trackRemoveReplayGainFailed": "Failed to remove ReplayGain tags",
|
||||
"replayGainRemoving": "Removing ReplayGain...",
|
||||
"replayGainRemoveConfirmMessage": "Remove track and album ReplayGain tags from {count} track(s)? Audio, artwork, and other metadata will be preserved.",
|
||||
"@replayGainRemoveConfirmMessage": {
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionRemoveReplayGainCount": "Remove RG ({count})",
|
||||
"@selectionRemoveReplayGainCount": {
|
||||
"description": "Compact selection action label. RG abbreviates ReplayGain; keep this short for a two-column toolbar.",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"replayGainRemoveBatchSuccess": "ReplayGain removed from {success} of {total} tracks",
|
||||
"@replayGainRemoveBatchSuccess": {
|
||||
"placeholders": {
|
||||
"success": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionReplayGainCount": "ReplayGain ({count})",
|
||||
"@selectionReplayGainCount": {
|
||||
"description": "Batch selection action button label for ReplayGain",
|
||||
@@ -318,6 +403,14 @@
|
||||
"@optionsArtistTagModeSplitVorbisSubtitle": {
|
||||
"description": "Subtitle for split Vorbis artist tag mode"
|
||||
},
|
||||
"optionsArtistTagModePrimary": "Primary artist only",
|
||||
"@optionsArtistTagModePrimary": {
|
||||
"description": "Artist tag mode option that writes only the first credited artist"
|
||||
},
|
||||
"optionsArtistTagModePrimarySubtitle": "Write only the first artist, like \"Artist A\", to Artist and Album Artist in every format, so players list one artist.",
|
||||
"@optionsArtistTagModePrimarySubtitle": {
|
||||
"description": "Subtitle for the primary-artist tag mode. Applies when downloading and re-enriching; manual edits keep what the user typed."
|
||||
},
|
||||
"optionsExtensionStore": "Eklenti Deposu",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide repo tab"
|
||||
@@ -756,15 +849,15 @@
|
||||
"@dialogDownload": {
|
||||
"description": "Confirm button in Download All dialog"
|
||||
},
|
||||
"previewPlay": "Play preview",
|
||||
"previewPlay": "Ön izlemeyi oynat",
|
||||
"@previewPlay": {
|
||||
"description": "Tooltip for the button that plays a short track preview snippet"
|
||||
},
|
||||
"previewStop": "Stop preview",
|
||||
"previewStop": "Ön izlemeyi durdur",
|
||||
"@previewStop": {
|
||||
"description": "Tooltip for the button that stops the playing track preview snippet"
|
||||
},
|
||||
"previewUnavailable": "Preview unavailable",
|
||||
"previewUnavailable": "Ön izleme mevcut değil",
|
||||
"@previewUnavailable": {
|
||||
"description": "Snackbar shown when a track preview snippet cannot be played"
|
||||
},
|
||||
@@ -848,7 +941,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionExportM3u": "Export as M3U8",
|
||||
"collectionExportM3u": "M3U8 olarak dışarı aktar",
|
||||
"@collectionExportM3u": {
|
||||
"description": "Tooltip on the collection screen action that exports the track list as an M3U8 playlist file"
|
||||
},
|
||||
@@ -1476,6 +1569,8 @@
|
||||
"@sectionLyrics": {
|
||||
"description": "Settings section header"
|
||||
},
|
||||
"lyricsKeepScreenOn": "Keep screen on while viewing lyrics",
|
||||
"lyricsKeepScreenOnSubtitle": "Prevent screen timeout while lyrics are open, including when playback is paused.",
|
||||
"lyricsMode": "Şarkı Sözü Modu",
|
||||
"@lyricsMode": {
|
||||
"description": "Setting - how to save lyrics"
|
||||
@@ -2089,7 +2184,7 @@
|
||||
"@downloadAutoConvertFormatSubtitle": {
|
||||
"description": "Automatic conversion format picker explanation"
|
||||
},
|
||||
"downloadAutoConvertBitrate": "Output quality",
|
||||
"downloadAutoConvertBitrate": "Çıktı kalitesi",
|
||||
"@downloadAutoConvertBitrate": {
|
||||
"description": "Automatic conversion bitrate setting"
|
||||
},
|
||||
@@ -2626,7 +2721,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraryExternalStorage": "External storage",
|
||||
"libraryExternalStorage": "Harici depolama",
|
||||
"@libraryExternalStorage": {
|
||||
"description": "Label for a removable or external library source"
|
||||
},
|
||||
@@ -2749,7 +2844,7 @@
|
||||
"@libraryLastScannedNever": {
|
||||
"description": "Shown when library has never been scanned"
|
||||
},
|
||||
"libraryScanning": "Scanning...",
|
||||
"libraryScanning": "Taranıyor...",
|
||||
"@libraryScanning": {
|
||||
"description": "Status during scan"
|
||||
},
|
||||
@@ -2757,6 +2852,10 @@
|
||||
"@libraryScanFinalizing": {
|
||||
"description": "Status shown after file scanning finishes but library persistence is still running"
|
||||
},
|
||||
"libraryScanPaused": "Scan paused",
|
||||
"@libraryScanPaused": {
|
||||
"description": "Status shown while a library scan is paused by the user"
|
||||
},
|
||||
"libraryScanProgress": "{total} dosyanın {progress}%'si",
|
||||
"@libraryScanProgress": {
|
||||
"description": "Scan progress display",
|
||||
@@ -2798,7 +2897,7 @@
|
||||
"@libraryFolderNotExist": {
|
||||
"description": "Error when folder doesn't exist"
|
||||
},
|
||||
"librarySourceDownloaded": "Downloaded",
|
||||
"librarySourceDownloaded": "İndirildi",
|
||||
"@librarySourceDownloaded": {
|
||||
"description": "Badge for tracks downloaded via SpotiFLAC"
|
||||
},
|
||||
@@ -2806,7 +2905,7 @@
|
||||
"@librarySourceLocal": {
|
||||
"description": "Badge for tracks from local library scan"
|
||||
},
|
||||
"libraryFilterAll": "All",
|
||||
"libraryFilterAll": "Tümü",
|
||||
"@libraryFilterAll": {
|
||||
"description": "Filter chip - show all library items"
|
||||
},
|
||||
@@ -3274,19 +3373,19 @@
|
||||
"@trackReEnrichFieldCover": {
|
||||
"description": "Checkbox label for cover art field in re-enrich"
|
||||
},
|
||||
"trackReEnrichFieldLyrics": "Lyrics",
|
||||
"trackReEnrichFieldLyrics": "Şarkı Sözleri",
|
||||
"@trackReEnrichFieldLyrics": {
|
||||
"description": "Checkbox label for lyrics field in re-enrich"
|
||||
},
|
||||
"trackReEnrichFieldBasicTags": "Album, Album Artist",
|
||||
"trackReEnrichFieldBasicTags": "Albüm, Albüm Sanatçısı",
|
||||
"@trackReEnrichFieldBasicTags": {
|
||||
"description": "Checkbox label for basic tags in re-enrich (title/artist are never overwritten)"
|
||||
},
|
||||
"trackReEnrichFieldTrackInfo": "Track & Disc Number",
|
||||
"trackReEnrichFieldTrackInfo": "Parça ve Disk Numarası",
|
||||
"@trackReEnrichFieldTrackInfo": {
|
||||
"description": "Checkbox label for track info in re-enrich"
|
||||
},
|
||||
"trackReEnrichFieldReleaseInfo": "Date & ISRC",
|
||||
"trackReEnrichFieldReleaseInfo": "Tarih ve ISRC",
|
||||
"@trackReEnrichFieldReleaseInfo": {
|
||||
"description": "Checkbox label for release info in re-enrich"
|
||||
},
|
||||
@@ -3298,7 +3397,7 @@
|
||||
"@trackReEnrichSelectAll": {
|
||||
"description": "Select all fields checkbox in re-enrich"
|
||||
},
|
||||
"trackReEnrichModeIsrc": "ISRC only",
|
||||
"trackReEnrichModeIsrc": "Sadece ISRC",
|
||||
"@trackReEnrichModeIsrc": {
|
||||
"description": "Batch metadata mode that only writes ISRC"
|
||||
},
|
||||
@@ -3654,7 +3753,7 @@
|
||||
"@collectionPlaylist": {
|
||||
"description": "Single playlist label"
|
||||
},
|
||||
"collectionAddToPlaylist": "Add to playlist",
|
||||
"collectionAddToPlaylist": "Çalma listesine ekle",
|
||||
"@collectionAddToPlaylist": {
|
||||
"description": "Action to add a track to user playlist"
|
||||
},
|
||||
@@ -4626,19 +4725,19 @@
|
||||
"@editMetadataFieldTitle": {
|
||||
"description": "Chip label for title field in auto-fill selector"
|
||||
},
|
||||
"editMetadataFieldArtist": "Artist",
|
||||
"editMetadataFieldArtist": "Sanatçı",
|
||||
"@editMetadataFieldArtist": {
|
||||
"description": "Chip label for artist field in auto-fill selector"
|
||||
},
|
||||
"editMetadataFieldAlbum": "Album",
|
||||
"editMetadataFieldAlbum": "Albüm",
|
||||
"@editMetadataFieldAlbum": {
|
||||
"description": "Chip label for album field in auto-fill selector"
|
||||
},
|
||||
"editMetadataFieldAlbumArtist": "Album Artist",
|
||||
"editMetadataFieldAlbumArtist": "Albüm Sanatçısı",
|
||||
"@editMetadataFieldAlbumArtist": {
|
||||
"description": "Chip label for album artist field in auto-fill selector"
|
||||
},
|
||||
"editMetadataFieldDate": "Date",
|
||||
"editMetadataFieldDate": "Tarih",
|
||||
"@editMetadataFieldDate": {
|
||||
"description": "Chip label for date field in auto-fill selector"
|
||||
},
|
||||
@@ -4650,7 +4749,7 @@
|
||||
"@editMetadataFieldDiscNum": {
|
||||
"description": "Chip label for disc number field in auto-fill selector"
|
||||
},
|
||||
"editMetadataFieldGenre": "Genre",
|
||||
"editMetadataFieldGenre": "Tür",
|
||||
"@editMetadataFieldGenre": {
|
||||
"description": "Chip label for genre field in auto-fill selector"
|
||||
},
|
||||
@@ -4910,6 +5009,61 @@
|
||||
"@hiResCheckTitle": {
|
||||
"description": "Title of the fake Hi-Res check card"
|
||||
},
|
||||
"hiResCheckSummary": "Inspect the spectrum and active bit depth for signs of upsampling or padding.",
|
||||
"@hiResCheckSummary": {
|
||||
"description": "Introductory text for the sampled Hi-Res analysis"
|
||||
},
|
||||
"hiResCheckLimitedBandwidth": "Limited bandwidth",
|
||||
"@hiResCheckLimitedBandwidth": {
|
||||
"description": "Neutral finding: a limited spectrum alone does not prove upsampling"
|
||||
},
|
||||
"hiResCheckNoEvidence": "No upsampling or padding detected",
|
||||
"@hiResCheckNoEvidence": {
|
||||
"description": "No evidence was detected; this does not certify the master"
|
||||
},
|
||||
"hiResCheckEstimatedCutoff": "Estimated cutoff",
|
||||
"@hiResCheckEstimatedCutoff": {
|
||||
"description": "Estimated upper spectral edge at the analysis threshold"
|
||||
},
|
||||
"hiResCheckActiveBits": "Active / stored bits",
|
||||
"@hiResCheckActiveBits": {
|
||||
"description": "Active integer bit depth versus the container depth in the sampled segment"
|
||||
},
|
||||
"hiResCheckBandwidthExplanation": "A lower cutoff can come from mastering. It does not, by itself, prove upsampling.",
|
||||
"@hiResCheckBandwidthExplanation": {
|
||||
"description": "Explains why the limited-bandwidth finding is neutral"
|
||||
},
|
||||
"hiResCheckSampledExplanation": "Based on {seconds} seconds of audio. This analysis cannot certify the original master.",
|
||||
"@hiResCheckSampledExplanation": {
|
||||
"description": "Limits of the sampled Hi-Res analysis; seconds is a formatted duration",
|
||||
"placeholders": {
|
||||
"seconds": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckImagingEvidence": "The spectrum contains mirrored bands consistent with upsampling.",
|
||||
"@hiResCheckImagingEvidence": {
|
||||
"description": "Spectral imaging is suggestive evidence rather than proof"
|
||||
},
|
||||
"hiResCheckRateEvidence": "A sharp roll-off near {cutoff} and the measured noise floor suggest a lower-rate source.",
|
||||
"@hiResCheckRateEvidence": {
|
||||
"description": "Heuristic evidence from both a brickwall and a 16-bit-like noise floor",
|
||||
"placeholders": {
|
||||
"cutoff": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckSteadyEnergy": "Energy above {cutoff} is mostly steady in the analyzed segment and may be noise.",
|
||||
"@hiResCheckSteadyEnergy": {
|
||||
"description": "An observation about ultrasonic energy, not proof that removing it is safe",
|
||||
"placeholders": {
|
||||
"cutoff": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckDescription": "Detect upsampled or bit-padded fake Hi-Res files",
|
||||
"@hiResCheckDescription": {
|
||||
"description": "Explains what the Hi-Res authenticity check does"
|
||||
@@ -5256,6 +5410,19 @@
|
||||
"@notifLibraryScanStopped": {
|
||||
"description": "Notification body when library scan is cancelled"
|
||||
},
|
||||
"notifLibraryScanPaused": "Library scan paused",
|
||||
"@notifLibraryScanPaused": {
|
||||
"description": "Notification title when the user pauses a library scan"
|
||||
},
|
||||
"notifLibraryScanPausedBody": "{count} files scanned. Resume in Local Library settings to continue from here.",
|
||||
"@notifLibraryScanPausedBody": {
|
||||
"description": "Notification body for a paused library scan - files scanned so far",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"notifDownloadingUpdate": "Downloading SpotiFLAC Mobile v{version}",
|
||||
"@notifDownloadingUpdate": {
|
||||
"description": "Notification title while downloading an app update",
|
||||
@@ -5548,7 +5715,7 @@
|
||||
"@logIssueTrackNotFoundSuggestion": {
|
||||
"description": "Diagnostic badge suggestion when a track is unavailable"
|
||||
},
|
||||
"clickableLookingUpArtist": "Looking up artist...",
|
||||
"clickableLookingUpArtist": "Sanatçı aranıyor...",
|
||||
"@clickableLookingUpArtist": {
|
||||
"description": "Snackbar shown while clickable artist metadata is being resolved"
|
||||
},
|
||||
@@ -6287,6 +6454,31 @@
|
||||
"description": "Tooltip for minimizing the now playing screen"
|
||||
},
|
||||
"nowPlayingUpNext": "Up next",
|
||||
"nowPlayingAudioOutput": "Audio Output",
|
||||
"nowPlayingWrittenBy": "Written by: {writers}",
|
||||
"@nowPlayingWrittenBy": {
|
||||
"placeholders": {
|
||||
"writers": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"nowPlayingLyricsProvider": "Lyrics: {provider}",
|
||||
"@nowPlayingLyricsProvider": {
|
||||
"placeholders": {
|
||||
"provider": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"concertGetTickets": "Get Tickets",
|
||||
"concertSetList": "Concert Set List",
|
||||
"concertSetListButton": "Set List",
|
||||
"concertAddToCalendar": "Add to Calendar",
|
||||
"concertOpenMaps": "Open Maps",
|
||||
"concertDetailsUnavailable": "Concert details are currently unavailable.",
|
||||
"concertCalendarUnavailable": "Unable to open the calendar.",
|
||||
"nowPlayingAudioOutputUnavailable": "Unable to open audio output settings.",
|
||||
"@nowPlayingUpNext": {
|
||||
"description": "Title for the playback queue sheet"
|
||||
},
|
||||
@@ -6354,6 +6546,18 @@
|
||||
"description": "Tab label for the lyrics view"
|
||||
},
|
||||
"nowPlayingNoLyrics": "No lyrics in this file",
|
||||
"nowPlayingInstrumental": "Instrumental",
|
||||
"@nowPlayingInstrumental": {
|
||||
"description": "Accessibility label for the three-dot countdown during an instrumental break before lyrics resume"
|
||||
},
|
||||
"nowPlayingLyricsLanguageOptions": "Lyrics language options",
|
||||
"@nowPlayingLyricsLanguageOptions": {
|
||||
"description": "Tooltip for the player menu that shows or hides existing lyric pronunciation and translation"
|
||||
},
|
||||
"nowPlayingHidePronunciation": "Hide Pronunciation",
|
||||
"nowPlayingShowPronunciation": "Show Pronunciation",
|
||||
"nowPlayingHideTranslation": "Hide Translation",
|
||||
"nowPlayingShowTranslation": "Show Translation",
|
||||
"@nowPlayingNoLyrics": {
|
||||
"description": "Empty state when the playing file has no embedded lyrics"
|
||||
},
|
||||
@@ -6761,6 +6965,10 @@
|
||||
"@libraryFilterMetadataMissingLyrics": {
|
||||
"description": "Filter option for tracks without embedded or sidecar lyrics"
|
||||
},
|
||||
"libraryFilterMetadataMissingReplayGain": "Missing ReplayGain",
|
||||
"@libraryFilterMetadataMissingReplayGain": {
|
||||
"description": "Filter option for scanned tracks without ReplayGain gain tags"
|
||||
},
|
||||
"trackOptionCopyTrackName": "Copy track name",
|
||||
"@trackOptionCopyTrackName": {
|
||||
"description": "Track menu action that copies the track title"
|
||||
@@ -6808,6 +7016,9 @@
|
||||
"autoMixDescription": "Blend songs with beat matching and pitch-preserving tempo adjustment. Uses crossfade when beats cannot be matched.",
|
||||
"autoMixOn": "AutoMix on",
|
||||
"autoMixOff": "AutoMix off",
|
||||
"autoplayOn": "Autoplay on",
|
||||
"autoplayOff": "Autoplay off",
|
||||
"autoplayFromLibrary": "Autoplay from your Library",
|
||||
"profileTitle": "Profile",
|
||||
"profileSetUp": "Set up your profile",
|
||||
"profileEdit": "Edit name and photo",
|
||||
@@ -6818,8 +7029,11 @@
|
||||
"profileRemovePhoto": "Remove photo",
|
||||
"profilePhotoError": "Choose a valid image smaller than 20 MB.",
|
||||
"profileSaveError": "Could not save your profile. Please try again.",
|
||||
"artistUpcomingConcerts": "Upcoming Concerts",
|
||||
"artistAllUpcomingConcerts": "All Upcoming Concerts",
|
||||
"artistNoUpcomingConcerts": "No upcoming concerts.",
|
||||
"optionsEmbeddedCoverSizeOriginal": "Original resolution",
|
||||
"@optionsEmbeddedCoverSizeOriginal": {
|
||||
"description": "Option that preserves the provider artwork at its original resolution"
|
||||
}
|
||||
}
|
||||
}
|
||||
+993
-779
File diff suppressed because it is too large.
Load diff
@@ -1,4 +1,31 @@
|
||||
{
|
||||
"settingsPlaybackSubtitle": "Player, volume, AutoMix, and audio output",
|
||||
"sectionPlayer": "Player",
|
||||
"sectionVolumeAndTransitions": "Volume and transitions",
|
||||
"sectionAudioOutput": "Audio output",
|
||||
"usbBitPerfect": "Hi-res and bit-perfect audio",
|
||||
"usbBitPerfectDescription": "Preserve source precision on compatible outputs. Choose direct USB or AAudio exclusive below; otherwise Android USB output requires Android 14 or later. Applies from the next track, without AutoMix or normalization. System volume may not control direct USB.",
|
||||
"usbHardwareVolume": "DAC hardware volume",
|
||||
"usbVolumeWarningTitle": "Check your listening volume",
|
||||
"usbVolumeWarning": "Direct USB audio can be much louder than normal playback, and phone volume buttons may not control it. Lower your DAC or amplifier volume before starting. When supported, SpotiFLAC sets the DAC to at most −40 dB on connection; this does not guarantee a safe listening level on every amplifier or headphone.",
|
||||
"usbVolumeAccept": "I understand",
|
||||
"usbVolumeUnavailable": "Playback is paused because this DAC has no verified hardware volume control. Lower the DAC or amplifier volume, then enable fixed-volume output if needed and select the track again.",
|
||||
"usbFixedVolume": "Allow fixed-volume USB output",
|
||||
"usbFixedVolumeDescription": "For DACs without a volume control accessible to the app. Keep off for USB headsets without their own volume control. Applies from the next track.",
|
||||
"usbFixedVolumeWarning": "The app cannot lower the volume on this output. Audio may start at full level, and the phone volume slider will not help. Only continue after lowering the volume on your DAC or external amplifier. Do not enable this for a headset without its own volume control.",
|
||||
"dapExclusive": "DAP hi-res (AAudio exclusive)",
|
||||
"dapExclusiveDescription": "Use Oboe/AAudio at the track's original rate and precision for FLAC/WAV PCM. Requires Android 8.1 or later and compatible hardware. Exclusive access is checked; unavailable formats use normal playback. DSD requires the direct USB driver. Applies from the next track.",
|
||||
"dapExclusiveUnavailable": "AAudio exclusive access is unavailable for this track and current output. Using normal playback. For a USB DAC, try the direct USB driver.",
|
||||
"usbDirect": "Direct USB driver",
|
||||
"usbDirectDescription": "Use exclusive USB audio for FLAC/WAV, DSF/DFF and WavPack DSD, with Android USB permission. Native DSD requires a recognized compatible DAC. Other PCM formats use normal playback. Applies from the next track.",
|
||||
"usbDsdOverPcm": "DSD over PCM (DoP)",
|
||||
"usbDsdOverPcmDescription": "Enable only if your DAC explicitly supports DoP. Sends DSF/DFF and WavPack DSD inside a PCM carrier when native DSD is unavailable. An incompatible device may play noise; leave off for ordinary USB headsets.",
|
||||
"usbDsdUnsupported": "This DSD format or connected DAC is not supported. Playback stopped.",
|
||||
"usbPermissionDenied": "USB permission was not granted. Using normal playback.",
|
||||
"usbBitPerfectPending": "Waiting for the next track and a compatible USB output.",
|
||||
"usbBitPerfectNoDevice": "No USB DAC connected. Using normal audio output.",
|
||||
"usbBitPerfectFallback": "This device or audio format does not support bit-perfect output. Using normal playback.",
|
||||
"usbBitPerfectRouteChanged": "The USB audio route changed. Playback paused; select a track to reconnect.",
|
||||
"upgradeIntroWelcome": "Welcome to\nSpotiFLAC-Mobile 5.0",
|
||||
"upgradeIntroThemeTitle": "Make it\nyour own.",
|
||||
"upgradeIntroThemeBody": "Choose a look. Your choice applies immediately, and you can change it later in Appearance.",
|
||||
@@ -36,6 +63,32 @@
|
||||
"description": "System volume control label in the Mornye player"
|
||||
},
|
||||
"appearanceStyle": "App Style",
|
||||
"appearanceAccentRed": "Red (default)",
|
||||
"appearanceAccentOrange": "Orange",
|
||||
"appearanceAccentGreen": "Green",
|
||||
"appearanceAccentTeal": "Teal",
|
||||
"appearanceAccentBlue": "Blue",
|
||||
"appearanceAccentPurple": "Purple",
|
||||
"appearanceAccentPink": "Pink",
|
||||
"appearanceGlassClarity": "Glass clarity",
|
||||
"appearanceGlassClaritySubtitle": "Adjust transparency in Mornye menus and navigation. Text contrast is preserved.",
|
||||
"appearanceGlassTinted": "Tinted",
|
||||
"appearanceGlassClear": "Clear",
|
||||
"appearanceGlassClarityBlurOff": "Glass is opaque on this device. Turn on “{setting}” to adjust clarity.",
|
||||
"@appearanceGlassClarityBlurOff": {
|
||||
"description": "Shown under the disabled glass clarity slider when the device renders Mornye glass without blur. The placeholder is the name of the force-blur toggle.",
|
||||
"placeholders": {
|
||||
"setting": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appearanceGlassClarityHighContrast": "Glass stays opaque while the system’s high contrast setting is on.",
|
||||
"@appearanceGlassClarityHighContrast": {
|
||||
"description": "Shown under the disabled glass clarity slider while the OS high contrast accessibility setting is on"
|
||||
},
|
||||
"appearanceUseSystemFont": "Use system font",
|
||||
"appearanceUseSystemFontSubtitle": "Use your device’s default typeface for app text.",
|
||||
"@appearanceStyle": {
|
||||
"description": "Appearance section for choosing the app visual style"
|
||||
},
|
||||
@@ -255,6 +308,38 @@
|
||||
"@trackReplayGainFailed": {
|
||||
"description": "Snackbar message when ReplayGain scan/write fails"
|
||||
},
|
||||
"trackRemoveReplayGain": "Remove ReplayGain",
|
||||
"trackRemoveReplayGainSuccess": "ReplayGain tags removed",
|
||||
"trackRemoveReplayGainFailed": "Failed to remove ReplayGain tags",
|
||||
"replayGainRemoving": "Removing ReplayGain...",
|
||||
"replayGainRemoveConfirmMessage": "Remove track and album ReplayGain tags from {count} track(s)? Audio, artwork, and other metadata will be preserved.",
|
||||
"@replayGainRemoveConfirmMessage": {
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionRemoveReplayGainCount": "Remove RG ({count})",
|
||||
"@selectionRemoveReplayGainCount": {
|
||||
"description": "Compact selection action label. RG abbreviates ReplayGain; keep this short for a two-column toolbar.",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"replayGainRemoveBatchSuccess": "ReplayGain removed from {success} of {total} tracks",
|
||||
"@replayGainRemoveBatchSuccess": {
|
||||
"placeholders": {
|
||||
"success": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionReplayGainCount": "ReplayGain ({count})",
|
||||
"@selectionReplayGainCount": {
|
||||
"description": "Batch selection action button label for ReplayGain",
|
||||
@@ -318,6 +403,14 @@
|
||||
"@optionsArtistTagModeSplitVorbisSubtitle": {
|
||||
"description": "Subtitle for split Vorbis artist tag mode"
|
||||
},
|
||||
"optionsArtistTagModePrimary": "Primary artist only",
|
||||
"@optionsArtistTagModePrimary": {
|
||||
"description": "Artist tag mode option that writes only the first credited artist"
|
||||
},
|
||||
"optionsArtistTagModePrimarySubtitle": "Write only the first artist, like \"Artist A\", to Artist and Album Artist in every format, so players list one artist.",
|
||||
"@optionsArtistTagModePrimarySubtitle": {
|
||||
"description": "Subtitle for the primary-artist tag mode. Applies when downloading and re-enriching; manual edits keep what the user typed."
|
||||
},
|
||||
"optionsExtensionStore": "扩展仓库",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide repo tab"
|
||||
@@ -1476,6 +1569,8 @@
|
||||
"@sectionLyrics": {
|
||||
"description": "Settings section header"
|
||||
},
|
||||
"lyricsKeepScreenOn": "Keep screen on while viewing lyrics",
|
||||
"lyricsKeepScreenOnSubtitle": "Prevent screen timeout while lyrics are open, including when playback is paused.",
|
||||
"lyricsMode": "Lyrics Mode",
|
||||
"@lyricsMode": {
|
||||
"description": "Setting - how to save lyrics"
|
||||
@@ -2757,6 +2852,10 @@
|
||||
"@libraryScanFinalizing": {
|
||||
"description": "Status shown after file scanning finishes but library persistence is still running"
|
||||
},
|
||||
"libraryScanPaused": "Scan paused",
|
||||
"@libraryScanPaused": {
|
||||
"description": "Status shown while a library scan is paused by the user"
|
||||
},
|
||||
"libraryScanProgress": "{progress}% of {total} files",
|
||||
"@libraryScanProgress": {
|
||||
"description": "Scan progress display",
|
||||
@@ -4910,6 +5009,61 @@
|
||||
"@hiResCheckTitle": {
|
||||
"description": "Title of the fake Hi-Res check card"
|
||||
},
|
||||
"hiResCheckSummary": "Inspect the spectrum and active bit depth for signs of upsampling or padding.",
|
||||
"@hiResCheckSummary": {
|
||||
"description": "Introductory text for the sampled Hi-Res analysis"
|
||||
},
|
||||
"hiResCheckLimitedBandwidth": "Limited bandwidth",
|
||||
"@hiResCheckLimitedBandwidth": {
|
||||
"description": "Neutral finding: a limited spectrum alone does not prove upsampling"
|
||||
},
|
||||
"hiResCheckNoEvidence": "No upsampling or padding detected",
|
||||
"@hiResCheckNoEvidence": {
|
||||
"description": "No evidence was detected; this does not certify the master"
|
||||
},
|
||||
"hiResCheckEstimatedCutoff": "Estimated cutoff",
|
||||
"@hiResCheckEstimatedCutoff": {
|
||||
"description": "Estimated upper spectral edge at the analysis threshold"
|
||||
},
|
||||
"hiResCheckActiveBits": "Active / stored bits",
|
||||
"@hiResCheckActiveBits": {
|
||||
"description": "Active integer bit depth versus the container depth in the sampled segment"
|
||||
},
|
||||
"hiResCheckBandwidthExplanation": "A lower cutoff can come from mastering. It does not, by itself, prove upsampling.",
|
||||
"@hiResCheckBandwidthExplanation": {
|
||||
"description": "Explains why the limited-bandwidth finding is neutral"
|
||||
},
|
||||
"hiResCheckSampledExplanation": "Based on {seconds} seconds of audio. This analysis cannot certify the original master.",
|
||||
"@hiResCheckSampledExplanation": {
|
||||
"description": "Limits of the sampled Hi-Res analysis; seconds is a formatted duration",
|
||||
"placeholders": {
|
||||
"seconds": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckImagingEvidence": "The spectrum contains mirrored bands consistent with upsampling.",
|
||||
"@hiResCheckImagingEvidence": {
|
||||
"description": "Spectral imaging is suggestive evidence rather than proof"
|
||||
},
|
||||
"hiResCheckRateEvidence": "A sharp roll-off near {cutoff} and the measured noise floor suggest a lower-rate source.",
|
||||
"@hiResCheckRateEvidence": {
|
||||
"description": "Heuristic evidence from both a brickwall and a 16-bit-like noise floor",
|
||||
"placeholders": {
|
||||
"cutoff": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckSteadyEnergy": "Energy above {cutoff} is mostly steady in the analyzed segment and may be noise.",
|
||||
"@hiResCheckSteadyEnergy": {
|
||||
"description": "An observation about ultrasonic energy, not proof that removing it is safe",
|
||||
"placeholders": {
|
||||
"cutoff": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckDescription": "Detect upsampled or bit-padded fake Hi-Res files",
|
||||
"@hiResCheckDescription": {
|
||||
"description": "Explains what the Hi-Res authenticity check does"
|
||||
@@ -5256,6 +5410,19 @@
|
||||
"@notifLibraryScanStopped": {
|
||||
"description": "Notification body when library scan is cancelled"
|
||||
},
|
||||
"notifLibraryScanPaused": "Library scan paused",
|
||||
"@notifLibraryScanPaused": {
|
||||
"description": "Notification title when the user pauses a library scan"
|
||||
},
|
||||
"notifLibraryScanPausedBody": "{count} files scanned. Resume in Local Library settings to continue from here.",
|
||||
"@notifLibraryScanPausedBody": {
|
||||
"description": "Notification body for a paused library scan - files scanned so far",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"notifDownloadingUpdate": "Downloading SpotiFLAC Mobile v{version}",
|
||||
"@notifDownloadingUpdate": {
|
||||
"description": "Notification title while downloading an app update",
|
||||
@@ -6287,6 +6454,31 @@
|
||||
"description": "Tooltip for minimizing the now playing screen"
|
||||
},
|
||||
"nowPlayingUpNext": "Up next",
|
||||
"nowPlayingAudioOutput": "Audio Output",
|
||||
"nowPlayingWrittenBy": "Written by: {writers}",
|
||||
"@nowPlayingWrittenBy": {
|
||||
"placeholders": {
|
||||
"writers": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"nowPlayingLyricsProvider": "Lyrics: {provider}",
|
||||
"@nowPlayingLyricsProvider": {
|
||||
"placeholders": {
|
||||
"provider": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"concertGetTickets": "Get Tickets",
|
||||
"concertSetList": "Concert Set List",
|
||||
"concertSetListButton": "Set List",
|
||||
"concertAddToCalendar": "Add to Calendar",
|
||||
"concertOpenMaps": "Open Maps",
|
||||
"concertDetailsUnavailable": "Concert details are currently unavailable.",
|
||||
"concertCalendarUnavailable": "Unable to open the calendar.",
|
||||
"nowPlayingAudioOutputUnavailable": "Unable to open audio output settings.",
|
||||
"@nowPlayingUpNext": {
|
||||
"description": "Title for the playback queue sheet"
|
||||
},
|
||||
@@ -6354,6 +6546,18 @@
|
||||
"description": "Tab label for the lyrics view"
|
||||
},
|
||||
"nowPlayingNoLyrics": "No lyrics in this file",
|
||||
"nowPlayingInstrumental": "Instrumental",
|
||||
"@nowPlayingInstrumental": {
|
||||
"description": "Accessibility label for the three-dot countdown during an instrumental break before lyrics resume"
|
||||
},
|
||||
"nowPlayingLyricsLanguageOptions": "Lyrics language options",
|
||||
"@nowPlayingLyricsLanguageOptions": {
|
||||
"description": "Tooltip for the player menu that shows or hides existing lyric pronunciation and translation"
|
||||
},
|
||||
"nowPlayingHidePronunciation": "Hide Pronunciation",
|
||||
"nowPlayingShowPronunciation": "Show Pronunciation",
|
||||
"nowPlayingHideTranslation": "Hide Translation",
|
||||
"nowPlayingShowTranslation": "Show Translation",
|
||||
"@nowPlayingNoLyrics": {
|
||||
"description": "Empty state when the playing file has no embedded lyrics"
|
||||
},
|
||||
@@ -6761,6 +6965,10 @@
|
||||
"@libraryFilterMetadataMissingLyrics": {
|
||||
"description": "Filter option for tracks without embedded or sidecar lyrics"
|
||||
},
|
||||
"libraryFilterMetadataMissingReplayGain": "Missing ReplayGain",
|
||||
"@libraryFilterMetadataMissingReplayGain": {
|
||||
"description": "Filter option for scanned tracks without ReplayGain gain tags"
|
||||
},
|
||||
"trackOptionCopyTrackName": "Copy track name",
|
||||
"@trackOptionCopyTrackName": {
|
||||
"description": "Track menu action that copies the track title"
|
||||
@@ -6808,6 +7016,9 @@
|
||||
"autoMixDescription": "Blend songs with beat matching and pitch-preserving tempo adjustment. Uses crossfade when beats cannot be matched.",
|
||||
"autoMixOn": "AutoMix on",
|
||||
"autoMixOff": "AutoMix off",
|
||||
"autoplayOn": "Autoplay on",
|
||||
"autoplayOff": "Autoplay off",
|
||||
"autoplayFromLibrary": "Autoplay from your Library",
|
||||
"profileTitle": "Profile",
|
||||
"profileSetUp": "Set up your profile",
|
||||
"profileEdit": "Edit name and photo",
|
||||
@@ -6818,6 +7029,9 @@
|
||||
"profileRemovePhoto": "Remove photo",
|
||||
"profilePhotoError": "Choose a valid image smaller than 20 MB.",
|
||||
"profileSaveError": "Could not save your profile. Please try again.",
|
||||
"artistUpcomingConcerts": "Upcoming Concerts",
|
||||
"artistAllUpcomingConcerts": "All Upcoming Concerts",
|
||||
"artistNoUpcomingConcerts": "No upcoming concerts.",
|
||||
"optionsEmbeddedCoverSizeOriginal": "Original resolution",
|
||||
"@optionsEmbeddedCoverSizeOriginal": {
|
||||
"description": "Option that preserves the provider artwork at its original resolution"
|
||||
|
||||
@@ -1,4 +1,31 @@
|
||||
{
|
||||
"settingsPlaybackSubtitle": "Player, volume, AutoMix, and audio output",
|
||||
"sectionPlayer": "Player",
|
||||
"sectionVolumeAndTransitions": "Volume and transitions",
|
||||
"sectionAudioOutput": "Audio output",
|
||||
"usbBitPerfect": "Hi-res and bit-perfect audio",
|
||||
"usbBitPerfectDescription": "Preserve source precision on compatible outputs. Choose direct USB or AAudio exclusive below; otherwise Android USB output requires Android 14 or later. Applies from the next track, without AutoMix or normalization. System volume may not control direct USB.",
|
||||
"usbHardwareVolume": "DAC hardware volume",
|
||||
"usbVolumeWarningTitle": "Check your listening volume",
|
||||
"usbVolumeWarning": "Direct USB audio can be much louder than normal playback, and phone volume buttons may not control it. Lower your DAC or amplifier volume before starting. When supported, SpotiFLAC sets the DAC to at most −40 dB on connection; this does not guarantee a safe listening level on every amplifier or headphone.",
|
||||
"usbVolumeAccept": "I understand",
|
||||
"usbVolumeUnavailable": "Playback is paused because this DAC has no verified hardware volume control. Lower the DAC or amplifier volume, then enable fixed-volume output if needed and select the track again.",
|
||||
"usbFixedVolume": "Allow fixed-volume USB output",
|
||||
"usbFixedVolumeDescription": "For DACs without a volume control accessible to the app. Keep off for USB headsets without their own volume control. Applies from the next track.",
|
||||
"usbFixedVolumeWarning": "The app cannot lower the volume on this output. Audio may start at full level, and the phone volume slider will not help. Only continue after lowering the volume on your DAC or external amplifier. Do not enable this for a headset without its own volume control.",
|
||||
"dapExclusive": "DAP hi-res (AAudio exclusive)",
|
||||
"dapExclusiveDescription": "Use Oboe/AAudio at the track's original rate and precision for FLAC/WAV PCM. Requires Android 8.1 or later and compatible hardware. Exclusive access is checked; unavailable formats use normal playback. DSD requires the direct USB driver. Applies from the next track.",
|
||||
"dapExclusiveUnavailable": "AAudio exclusive access is unavailable for this track and current output. Using normal playback. For a USB DAC, try the direct USB driver.",
|
||||
"usbDirect": "Direct USB driver",
|
||||
"usbDirectDescription": "Use exclusive USB audio for FLAC/WAV, DSF/DFF and WavPack DSD, with Android USB permission. Native DSD requires a recognized compatible DAC. Other PCM formats use normal playback. Applies from the next track.",
|
||||
"usbDsdOverPcm": "DSD over PCM (DoP)",
|
||||
"usbDsdOverPcmDescription": "Enable only if your DAC explicitly supports DoP. Sends DSF/DFF and WavPack DSD inside a PCM carrier when native DSD is unavailable. An incompatible device may play noise; leave off for ordinary USB headsets.",
|
||||
"usbDsdUnsupported": "This DSD format or connected DAC is not supported. Playback stopped.",
|
||||
"usbPermissionDenied": "USB permission was not granted. Using normal playback.",
|
||||
"usbBitPerfectPending": "Waiting for the next track and a compatible USB output.",
|
||||
"usbBitPerfectNoDevice": "No USB DAC connected. Using normal audio output.",
|
||||
"usbBitPerfectFallback": "This device or audio format does not support bit-perfect output. Using normal playback.",
|
||||
"usbBitPerfectRouteChanged": "The USB audio route changed. Playback paused; select a track to reconnect.",
|
||||
"upgradeIntroWelcome": "Welcome to\nSpotiFLAC-Mobile 5.0",
|
||||
"upgradeIntroThemeTitle": "Make it\nyour own.",
|
||||
"upgradeIntroThemeBody": "Choose a look. Your choice applies immediately, and you can change it later in Appearance.",
|
||||
@@ -36,6 +63,32 @@
|
||||
"description": "System volume control label in the Mornye player"
|
||||
},
|
||||
"appearanceStyle": "App Style",
|
||||
"appearanceAccentRed": "Red (default)",
|
||||
"appearanceAccentOrange": "Orange",
|
||||
"appearanceAccentGreen": "Green",
|
||||
"appearanceAccentTeal": "Teal",
|
||||
"appearanceAccentBlue": "Blue",
|
||||
"appearanceAccentPurple": "Purple",
|
||||
"appearanceAccentPink": "Pink",
|
||||
"appearanceGlassClarity": "Glass clarity",
|
||||
"appearanceGlassClaritySubtitle": "Adjust transparency in Mornye menus and navigation. Text contrast is preserved.",
|
||||
"appearanceGlassTinted": "Tinted",
|
||||
"appearanceGlassClear": "Clear",
|
||||
"appearanceGlassClarityBlurOff": "Glass is opaque on this device. Turn on “{setting}” to adjust clarity.",
|
||||
"@appearanceGlassClarityBlurOff": {
|
||||
"description": "Shown under the disabled glass clarity slider when the device renders Mornye glass without blur. The placeholder is the name of the force-blur toggle.",
|
||||
"placeholders": {
|
||||
"setting": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appearanceGlassClarityHighContrast": "Glass stays opaque while the system’s high contrast setting is on.",
|
||||
"@appearanceGlassClarityHighContrast": {
|
||||
"description": "Shown under the disabled glass clarity slider while the OS high contrast accessibility setting is on"
|
||||
},
|
||||
"appearanceUseSystemFont": "Use system font",
|
||||
"appearanceUseSystemFontSubtitle": "Use your device’s default typeface for app text.",
|
||||
"@appearanceStyle": {
|
||||
"description": "Appearance section for choosing the app visual style"
|
||||
},
|
||||
@@ -255,6 +308,38 @@
|
||||
"@trackReplayGainFailed": {
|
||||
"description": "Snackbar message when ReplayGain scan/write fails"
|
||||
},
|
||||
"trackRemoveReplayGain": "Remove ReplayGain",
|
||||
"trackRemoveReplayGainSuccess": "ReplayGain tags removed",
|
||||
"trackRemoveReplayGainFailed": "Failed to remove ReplayGain tags",
|
||||
"replayGainRemoving": "Removing ReplayGain...",
|
||||
"replayGainRemoveConfirmMessage": "Remove track and album ReplayGain tags from {count} track(s)? Audio, artwork, and other metadata will be preserved.",
|
||||
"@replayGainRemoveConfirmMessage": {
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionRemoveReplayGainCount": "Remove RG ({count})",
|
||||
"@selectionRemoveReplayGainCount": {
|
||||
"description": "Compact selection action label. RG abbreviates ReplayGain; keep this short for a two-column toolbar.",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"replayGainRemoveBatchSuccess": "ReplayGain removed from {success} of {total} tracks",
|
||||
"@replayGainRemoveBatchSuccess": {
|
||||
"placeholders": {
|
||||
"success": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionReplayGainCount": "音量平衡 ({count})",
|
||||
"@selectionReplayGainCount": {
|
||||
"description": "Batch selection action button label for ReplayGain",
|
||||
@@ -318,6 +403,14 @@
|
||||
"@optionsArtistTagModeSplitVorbisSubtitle": {
|
||||
"description": "Subtitle for split Vorbis artist tag mode"
|
||||
},
|
||||
"optionsArtistTagModePrimary": "Primary artist only",
|
||||
"@optionsArtistTagModePrimary": {
|
||||
"description": "Artist tag mode option that writes only the first credited artist"
|
||||
},
|
||||
"optionsArtistTagModePrimarySubtitle": "Write only the first artist, like \"Artist A\", to Artist and Album Artist in every format, so players list one artist.",
|
||||
"@optionsArtistTagModePrimarySubtitle": {
|
||||
"description": "Subtitle for the primary-artist tag mode. Applies when downloading and re-enriching; manual edits keep what the user typed."
|
||||
},
|
||||
"optionsExtensionStore": "擴充資料庫",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide repo tab"
|
||||
@@ -1476,6 +1569,8 @@
|
||||
"@sectionLyrics": {
|
||||
"description": "Settings section header"
|
||||
},
|
||||
"lyricsKeepScreenOn": "Keep screen on while viewing lyrics",
|
||||
"lyricsKeepScreenOnSubtitle": "Prevent screen timeout while lyrics are open, including when playback is paused.",
|
||||
"lyricsMode": "Lyrics Mode",
|
||||
"@lyricsMode": {
|
||||
"description": "Setting - how to save lyrics"
|
||||
@@ -2757,6 +2852,10 @@
|
||||
"@libraryScanFinalizing": {
|
||||
"description": "Status shown after file scanning finishes but library persistence is still running"
|
||||
},
|
||||
"libraryScanPaused": "Scan paused",
|
||||
"@libraryScanPaused": {
|
||||
"description": "Status shown while a library scan is paused by the user"
|
||||
},
|
||||
"libraryScanProgress": "{progress}% of {total} files",
|
||||
"@libraryScanProgress": {
|
||||
"description": "Scan progress display",
|
||||
@@ -4910,6 +5009,61 @@
|
||||
"@hiResCheckTitle": {
|
||||
"description": "Title of the fake Hi-Res check card"
|
||||
},
|
||||
"hiResCheckSummary": "Inspect the spectrum and active bit depth for signs of upsampling or padding.",
|
||||
"@hiResCheckSummary": {
|
||||
"description": "Introductory text for the sampled Hi-Res analysis"
|
||||
},
|
||||
"hiResCheckLimitedBandwidth": "Limited bandwidth",
|
||||
"@hiResCheckLimitedBandwidth": {
|
||||
"description": "Neutral finding: a limited spectrum alone does not prove upsampling"
|
||||
},
|
||||
"hiResCheckNoEvidence": "No upsampling or padding detected",
|
||||
"@hiResCheckNoEvidence": {
|
||||
"description": "No evidence was detected; this does not certify the master"
|
||||
},
|
||||
"hiResCheckEstimatedCutoff": "Estimated cutoff",
|
||||
"@hiResCheckEstimatedCutoff": {
|
||||
"description": "Estimated upper spectral edge at the analysis threshold"
|
||||
},
|
||||
"hiResCheckActiveBits": "Active / stored bits",
|
||||
"@hiResCheckActiveBits": {
|
||||
"description": "Active integer bit depth versus the container depth in the sampled segment"
|
||||
},
|
||||
"hiResCheckBandwidthExplanation": "A lower cutoff can come from mastering. It does not, by itself, prove upsampling.",
|
||||
"@hiResCheckBandwidthExplanation": {
|
||||
"description": "Explains why the limited-bandwidth finding is neutral"
|
||||
},
|
||||
"hiResCheckSampledExplanation": "Based on {seconds} seconds of audio. This analysis cannot certify the original master.",
|
||||
"@hiResCheckSampledExplanation": {
|
||||
"description": "Limits of the sampled Hi-Res analysis; seconds is a formatted duration",
|
||||
"placeholders": {
|
||||
"seconds": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckImagingEvidence": "The spectrum contains mirrored bands consistent with upsampling.",
|
||||
"@hiResCheckImagingEvidence": {
|
||||
"description": "Spectral imaging is suggestive evidence rather than proof"
|
||||
},
|
||||
"hiResCheckRateEvidence": "A sharp roll-off near {cutoff} and the measured noise floor suggest a lower-rate source.",
|
||||
"@hiResCheckRateEvidence": {
|
||||
"description": "Heuristic evidence from both a brickwall and a 16-bit-like noise floor",
|
||||
"placeholders": {
|
||||
"cutoff": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckSteadyEnergy": "Energy above {cutoff} is mostly steady in the analyzed segment and may be noise.",
|
||||
"@hiResCheckSteadyEnergy": {
|
||||
"description": "An observation about ultrasonic energy, not proof that removing it is safe",
|
||||
"placeholders": {
|
||||
"cutoff": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hiResCheckDescription": "Detect upsampled or bit-padded fake Hi-Res files",
|
||||
"@hiResCheckDescription": {
|
||||
"description": "Explains what the Hi-Res authenticity check does"
|
||||
@@ -5256,6 +5410,19 @@
|
||||
"@notifLibraryScanStopped": {
|
||||
"description": "Notification body when library scan is cancelled"
|
||||
},
|
||||
"notifLibraryScanPaused": "Library scan paused",
|
||||
"@notifLibraryScanPaused": {
|
||||
"description": "Notification title when the user pauses a library scan"
|
||||
},
|
||||
"notifLibraryScanPausedBody": "{count} files scanned. Resume in Local Library settings to continue from here.",
|
||||
"@notifLibraryScanPausedBody": {
|
||||
"description": "Notification body for a paused library scan - files scanned so far",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"notifDownloadingUpdate": "Downloading SpotiFLAC Mobile v{version}",
|
||||
"@notifDownloadingUpdate": {
|
||||
"description": "Notification title while downloading an app update",
|
||||
@@ -6287,6 +6454,31 @@
|
||||
"description": "Tooltip for minimizing the now playing screen"
|
||||
},
|
||||
"nowPlayingUpNext": "Up next",
|
||||
"nowPlayingAudioOutput": "Audio Output",
|
||||
"nowPlayingWrittenBy": "Written by: {writers}",
|
||||
"@nowPlayingWrittenBy": {
|
||||
"placeholders": {
|
||||
"writers": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"nowPlayingLyricsProvider": "Lyrics: {provider}",
|
||||
"@nowPlayingLyricsProvider": {
|
||||
"placeholders": {
|
||||
"provider": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"concertGetTickets": "Get Tickets",
|
||||
"concertSetList": "Concert Set List",
|
||||
"concertSetListButton": "Set List",
|
||||
"concertAddToCalendar": "Add to Calendar",
|
||||
"concertOpenMaps": "Open Maps",
|
||||
"concertDetailsUnavailable": "Concert details are currently unavailable.",
|
||||
"concertCalendarUnavailable": "Unable to open the calendar.",
|
||||
"nowPlayingAudioOutputUnavailable": "Unable to open audio output settings.",
|
||||
"@nowPlayingUpNext": {
|
||||
"description": "Title for the playback queue sheet"
|
||||
},
|
||||
@@ -6354,6 +6546,18 @@
|
||||
"description": "Tab label for the lyrics view"
|
||||
},
|
||||
"nowPlayingNoLyrics": "No lyrics in this file",
|
||||
"nowPlayingInstrumental": "Instrumental",
|
||||
"@nowPlayingInstrumental": {
|
||||
"description": "Accessibility label for the three-dot countdown during an instrumental break before lyrics resume"
|
||||
},
|
||||
"nowPlayingLyricsLanguageOptions": "Lyrics language options",
|
||||
"@nowPlayingLyricsLanguageOptions": {
|
||||
"description": "Tooltip for the player menu that shows or hides existing lyric pronunciation and translation"
|
||||
},
|
||||
"nowPlayingHidePronunciation": "Hide Pronunciation",
|
||||
"nowPlayingShowPronunciation": "Show Pronunciation",
|
||||
"nowPlayingHideTranslation": "Hide Translation",
|
||||
"nowPlayingShowTranslation": "Show Translation",
|
||||
"@nowPlayingNoLyrics": {
|
||||
"description": "Empty state when the playing file has no embedded lyrics"
|
||||
},
|
||||
@@ -6761,6 +6965,10 @@
|
||||
"@libraryFilterMetadataMissingLyrics": {
|
||||
"description": "Filter option for tracks without embedded or sidecar lyrics"
|
||||
},
|
||||
"libraryFilterMetadataMissingReplayGain": "Missing ReplayGain",
|
||||
"@libraryFilterMetadataMissingReplayGain": {
|
||||
"description": "Filter option for scanned tracks without ReplayGain gain tags"
|
||||
},
|
||||
"trackOptionCopyTrackName": "Copy track name",
|
||||
"@trackOptionCopyTrackName": {
|
||||
"description": "Track menu action that copies the track title"
|
||||
@@ -6808,6 +7016,9 @@
|
||||
"autoMixDescription": "Blend songs with beat matching and pitch-preserving tempo adjustment. Uses crossfade when beats cannot be matched.",
|
||||
"autoMixOn": "AutoMix on",
|
||||
"autoMixOff": "AutoMix off",
|
||||
"autoplayOn": "Autoplay on",
|
||||
"autoplayOff": "Autoplay off",
|
||||
"autoplayFromLibrary": "Autoplay from your Library",
|
||||
"profileTitle": "Profile",
|
||||
"profileSetUp": "Set up your profile",
|
||||
"profileEdit": "Edit name and photo",
|
||||
@@ -6818,6 +7029,9 @@
|
||||
"profileRemovePhoto": "Remove photo",
|
||||
"profilePhotoError": "Choose a valid image smaller than 20 MB.",
|
||||
"profileSaveError": "Could not save your profile. Please try again.",
|
||||
"artistUpcomingConcerts": "Upcoming Concerts",
|
||||
"artistAllUpcomingConcerts": "All Upcoming Concerts",
|
||||
"artistNoUpcomingConcerts": "No upcoming concerts.",
|
||||
"optionsEmbeddedCoverSizeOriginal": "Original resolution",
|
||||
"@optionsEmbeddedCoverSizeOriginal": {
|
||||
"description": "Option that preserves the provider artwork at its original resolution"
|
||||
|
||||
Reference in new issue
Block a user