mirror of
https://github.com/zarzet/SpotiFLAC-Mobile.git
synced 2026-08-02 09:08:35 +02:00
feat(l10n): merge Crowdin updates, enable Korean at 98%
Merge origin/l10n_main (PR #428) with a per-key three-way resolution: Crowdin values win only where main did not change the key since the last sync, so the unused-key removal, store->repo wording sweep, and ICU plural fixes survive. Korean is restored at 98% completion and mapped again in crowdin.yml and both language pickers; ar/hi/nl/zh-CN/ zh-TW stay dropped (37% and below).
This commit is contained in:
+2
-1
@@ -6,7 +6,7 @@ files:
|
||||
# Keys MUST be the project's Crowdin language ids; values are the
|
||||
# %locale% suffix used in app_%locale%.arb (underscores so Flutter
|
||||
# gen-l10n parses them — hyphenated filenames break gen-l10n).
|
||||
# Locales below the 70% translation threshold (ar, hi, ko, nl,
|
||||
# Locales below the 70% translation threshold (ar, hi, nl,
|
||||
# zh-CN, zh-TW) are unmapped so `crowdin pull` doesn't recreate
|
||||
# their arb files; re-add a mapping line when one qualifies.
|
||||
de: de
|
||||
@@ -14,6 +14,7 @@ files:
|
||||
fr: fr
|
||||
id: id
|
||||
ja: ja
|
||||
ko: ko
|
||||
pt-PT: pt_PT
|
||||
ru: ru
|
||||
tr: tr
|
||||
|
||||
@@ -11,6 +11,7 @@ import 'app_localizations_es.dart';
|
||||
import 'app_localizations_fr.dart';
|
||||
import 'app_localizations_id.dart';
|
||||
import 'app_localizations_ja.dart';
|
||||
import 'app_localizations_ko.dart';
|
||||
import 'app_localizations_pt.dart';
|
||||
import 'app_localizations_ru.dart';
|
||||
import 'app_localizations_tr.dart';
|
||||
@@ -109,6 +110,7 @@ abstract class AppLocalizations {
|
||||
Locale('fr'),
|
||||
Locale('id'),
|
||||
Locale('ja'),
|
||||
Locale('ko'),
|
||||
Locale('pt'),
|
||||
Locale('pt', 'PT'),
|
||||
Locale('ru'),
|
||||
@@ -1256,6 +1258,18 @@ abstract class AppLocalizations {
|
||||
/// **'Export failed'**
|
||||
String get collectionExportM3uFailed;
|
||||
|
||||
/// Track option and sheet title listing streaming platforms where the track can be opened
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Open on...'**
|
||||
String get trackOpenOn;
|
||||
|
||||
/// Shown in the Open on sheet when song.link returns no links
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'No platform links found for this track.'**
|
||||
String get trackOpenOnNoLinks;
|
||||
|
||||
/// Snackbar - track added to download queue
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -7682,6 +7696,7 @@ class _AppLocalizationsDelegate
|
||||
'fr',
|
||||
'id',
|
||||
'ja',
|
||||
'ko',
|
||||
'pt',
|
||||
'ru',
|
||||
'tr',
|
||||
@@ -7727,6 +7742,8 @@ AppLocalizations lookupAppLocalizations(Locale locale) {
|
||||
return AppLocalizationsId();
|
||||
case 'ja':
|
||||
return AppLocalizationsJa();
|
||||
case 'ko':
|
||||
return AppLocalizationsKo();
|
||||
case 'pt':
|
||||
return AppLocalizationsPt();
|
||||
case 'ru':
|
||||
|
||||
@@ -563,10 +563,10 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
String get dialogDownload => 'Herunterladen';
|
||||
|
||||
@override
|
||||
String get previewPlay => 'Play preview';
|
||||
String get previewPlay => 'Vorschau abspielen';
|
||||
|
||||
@override
|
||||
String get previewStop => 'Stop preview';
|
||||
String get previewStop => 'Vorschau stoppen';
|
||||
|
||||
@override
|
||||
String get previewUnavailable => 'Preview unavailable';
|
||||
@@ -653,6 +653,12 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get collectionExportM3uFailed => 'Export failed';
|
||||
|
||||
@override
|
||||
String get trackOpenOn => 'Open on...';
|
||||
|
||||
@override
|
||||
String get trackOpenOnNoLinks => 'No platform links found for this track.';
|
||||
|
||||
@override
|
||||
String snackbarAddedToQueue(String trackName) {
|
||||
return '\"$trackName\" hinzugefügt';
|
||||
@@ -966,7 +972,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
'Deezer hat keine Limits und wird als primäre empfohlen. Spotify kann nach vielen Anfragen begrenzen.';
|
||||
|
||||
@override
|
||||
String get logTitle => 'Logs';
|
||||
String get logTitle => 'Protokolle';
|
||||
|
||||
@override
|
||||
String get logCopied => 'Logs in Zwischenablage kopiert';
|
||||
@@ -2912,7 +2918,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
String get backupContentsTitle => 'Backup contents';
|
||||
|
||||
@override
|
||||
String get backupContentsSettings => 'App settings';
|
||||
String get backupContentsSettings => 'Appeinstellungen';
|
||||
|
||||
@override
|
||||
String backupContentsHistory(int count) {
|
||||
@@ -3455,7 +3461,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
String get audioAnalysisAnalyzing => 'Audio wird analysiert...';
|
||||
|
||||
@override
|
||||
String get audioAnalysisSampleRate => 'Sample Rate';
|
||||
String get audioAnalysisSampleRate => 'Abtastrate';
|
||||
|
||||
@override
|
||||
String get audioAnalysisCodec => 'Codec';
|
||||
@@ -4361,7 +4367,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
String get artistReleases => 'Releases';
|
||||
|
||||
@override
|
||||
String get editMetadataSelectNone => 'None';
|
||||
String get editMetadataSelectNone => 'Keine';
|
||||
|
||||
@override
|
||||
String queueRetryAllFailed(int count) {
|
||||
@@ -4424,7 +4430,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
'The built-in player is a preview tool for checking local tracks quickly. Use an external music player for actual listening.';
|
||||
|
||||
@override
|
||||
String get nowPlayingTitle => 'Now Playing';
|
||||
String get nowPlayingTitle => 'Jetzt läuft';
|
||||
|
||||
@override
|
||||
String get nowPlayingNothingPlaying => 'Nothing is playing';
|
||||
@@ -4529,7 +4535,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
'Lyrics proxy for Musixmatch, Netease, Apple Music, QQ Music, Spotify, Deezer, YouTube, Kugou, and Genius';
|
||||
|
||||
@override
|
||||
String get snackbarPlayingNext => 'Playing next';
|
||||
String get snackbarPlayingNext => 'Als nächstes';
|
||||
|
||||
@override
|
||||
String get snackbarAddedToQueueGeneric => 'Added to queue';
|
||||
@@ -4577,7 +4583,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
String get trackConvertResampler => 'Resampler';
|
||||
|
||||
@override
|
||||
String get trackConvertDitherNone => 'None';
|
||||
String get trackConvertDitherNone => 'Keine';
|
||||
|
||||
@override
|
||||
String get trackConvertDitherTriangular => 'TPDF';
|
||||
@@ -4648,10 +4654,10 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
String get regionCountryJP => 'Japan';
|
||||
|
||||
@override
|
||||
String get regionCountryKR => 'South Korea';
|
||||
String get regionCountryKR => 'Südkorea';
|
||||
|
||||
@override
|
||||
String get regionCountryIN => 'India';
|
||||
String get regionCountryIN => 'Indien';
|
||||
|
||||
@override
|
||||
String get regionCountryID => 'Indonesia';
|
||||
@@ -4705,7 +4711,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
'If the browser did not open, or verification finished but did not return to SpotiFLAC Mobile, open this link again or copy it manually.';
|
||||
|
||||
@override
|
||||
String get extensionVerificationClose => 'Close';
|
||||
String get extensionVerificationClose => 'Schließen';
|
||||
|
||||
@override
|
||||
String get extensionVerificationCopyLink => 'Copy link';
|
||||
|
||||
@@ -645,6 +645,12 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get collectionExportM3uFailed => 'Export failed';
|
||||
|
||||
@override
|
||||
String get trackOpenOn => 'Open on...';
|
||||
|
||||
@override
|
||||
String get trackOpenOnNoLinks => 'No platform links found for this track.';
|
||||
|
||||
@override
|
||||
String snackbarAddedToQueue(String trackName) {
|
||||
return 'Added \"$trackName\" to queue';
|
||||
|
||||
@@ -645,6 +645,12 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
@override
|
||||
String get collectionExportM3uFailed => 'Export failed';
|
||||
|
||||
@override
|
||||
String get trackOpenOn => 'Open on...';
|
||||
|
||||
@override
|
||||
String get trackOpenOnNoLinks => 'No platform links found for this track.';
|
||||
|
||||
@override
|
||||
String snackbarAddedToQueue(String trackName) {
|
||||
return 'Added \"$trackName\" to queue';
|
||||
@@ -5555,6 +5561,14 @@ class AppLocalizationsEsEs extends AppLocalizationsEs {
|
||||
@override
|
||||
String get updateNewVersionReady => 'Una nueva versión está lista';
|
||||
|
||||
@override
|
||||
String get updateRequiredTitle => 'Update required';
|
||||
|
||||
@override
|
||||
String updateRequiredNotice(int count) {
|
||||
return 'This version is $count releases behind and is no longer supported. Update to keep using the app.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get updateCurrent => 'Actual';
|
||||
|
||||
@@ -6201,6 +6215,13 @@ class AppLocalizationsEsEs extends AppLocalizationsEs {
|
||||
@override
|
||||
String get appearanceAmoledDarkSubtitle => 'Fondo negro puro';
|
||||
|
||||
@override
|
||||
String get appearanceHeroAnimations => 'Hero animations';
|
||||
|
||||
@override
|
||||
String get appearanceHeroAnimationsSubtitle =>
|
||||
'Fly covers between screens, e.g. when opening the player';
|
||||
|
||||
@override
|
||||
String get queueClearAll => 'Eliminar todo';
|
||||
|
||||
@@ -6228,6 +6249,21 @@ class AppLocalizationsEsEs extends AppLocalizationsEs {
|
||||
String get settingsDownloadNetworkSubtitle =>
|
||||
'Elegir qué red usar para descargas. Cuando se establece en Wi-Fi solamente, las descargas se detendrán en los datos móviles.';
|
||||
|
||||
@override
|
||||
String get settingsConcurrentDownloads => 'Concurrent downloads';
|
||||
|
||||
@override
|
||||
String get settingsConcurrentDownloadsSubtitle =>
|
||||
'Downloading several tracks at once is faster, but some providers may rate-limit parallel requests.';
|
||||
|
||||
@override
|
||||
String get concurrentDownloadsOne => '1 track at a time';
|
||||
|
||||
@override
|
||||
String concurrentDownloadsCount(int count) {
|
||||
return 'Up to $count tracks at once';
|
||||
}
|
||||
|
||||
@override
|
||||
String get albumFolderArtistAlbum => 'Artista / Álbum';
|
||||
|
||||
@@ -6857,6 +6893,20 @@ class AppLocalizationsEsEs extends AppLocalizationsEs {
|
||||
String get cacheLibraryCoverDesc =>
|
||||
'Portada extraída de archivos locales. Se extraerá de nuevo en el próximo escaneo.';
|
||||
|
||||
@override
|
||||
String get libraryPlaybackNormalization => 'Volume normalization';
|
||||
|
||||
@override
|
||||
String get libraryPlaybackNormalizationSubtitle =>
|
||||
'Even out loudness between tracks using their ReplayGain or R128 tags, when present';
|
||||
|
||||
@override
|
||||
String get cacheAudioAnalysis => 'Audio analysis cache';
|
||||
|
||||
@override
|
||||
String get cacheAudioAnalysisDesc =>
|
||||
'Saved spectrograms and analysis results. Will re-analyze on next open.';
|
||||
|
||||
@override
|
||||
String get cacheExploreFeed => 'Explorar caché de inicio';
|
||||
|
||||
@@ -7031,6 +7081,13 @@ class AppLocalizationsEsEs extends AppLocalizationsEs {
|
||||
@override
|
||||
String get trackConvertBitrate => 'Tasa de bits';
|
||||
|
||||
@override
|
||||
String get trackConvertKeepOriginal => 'Keep original file';
|
||||
|
||||
@override
|
||||
String get trackConvertKeepOriginalDescription =>
|
||||
'Add the converted file as a separate library entry';
|
||||
|
||||
@override
|
||||
String get trackConvertConfirmTitle => 'Confirmar conversión';
|
||||
|
||||
@@ -7051,6 +7108,14 @@ class AppLocalizationsEsEs extends AppLocalizationsEs {
|
||||
return 'Convertir de $sourceFormat a $targetFormat? \n(Sin pérdidas)\n\nEl archivo original será eliminado después de la conversión.';
|
||||
}
|
||||
|
||||
@override
|
||||
String trackConvertConfirmKeepOriginal(
|
||||
String sourceFormat,
|
||||
String targetFormat,
|
||||
) {
|
||||
return 'Convert from $sourceFormat to $targetFormat?\n\nThe original file will be kept and the converted file will be added as a separate library entry.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get trackConvertLosslessHint =>
|
||||
'Conversión sin pérdidas — sin pérdida de calidad';
|
||||
@@ -7337,6 +7402,17 @@ class AppLocalizationsEsEs extends AppLocalizationsEs {
|
||||
return '¿Convertir $count $_temp0 a $format? (Sin pérdida — no hay pérdida de calidad)\n\nLos archivos originales se eliminarán después de la conversión.';
|
||||
}
|
||||
|
||||
@override
|
||||
String selectionBatchConvertConfirmKeepOriginal(int count, String format) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other: 'tracks',
|
||||
one: 'track',
|
||||
);
|
||||
return 'Convert $count $_temp0 to $format?\n\nOriginal files will be kept and converted files will be added as separate library entries.';
|
||||
}
|
||||
|
||||
@override
|
||||
String selectionBatchConvertSuccess(int success, int total, String format) {
|
||||
return 'Se convirtieron $success de $total pistas a $format';
|
||||
@@ -7665,6 +7741,24 @@ class AppLocalizationsEsEs extends AppLocalizationsEs {
|
||||
String get storageModeSafSubtitle =>
|
||||
'Escoge cualquier carpeta, incluyendo la tarjeta SD';
|
||||
|
||||
@override
|
||||
String get downloadFolderAccessLostTitle => 'Download folder access lost';
|
||||
|
||||
@override
|
||||
String get downloadFolderAccessLostSubtitle =>
|
||||
'Downloads will fail until you re-select the folder';
|
||||
|
||||
@override
|
||||
String get downloadFolderReselect => 'Re-select folder';
|
||||
|
||||
@override
|
||||
String get downloadErrorSafPermissionLost =>
|
||||
'SAF permission invalid or revoked. Please reconfigure download location in Settings.';
|
||||
|
||||
@override
|
||||
String get downloadErrorFolderAccessLost =>
|
||||
'Download folder access lost. Please re-select your download folder in Settings.';
|
||||
|
||||
@override
|
||||
String downloadFilenameDescription(
|
||||
Object album,
|
||||
@@ -8175,6 +8269,13 @@ class AppLocalizationsEsEs extends AppLocalizationsEs {
|
||||
return 'Downloads Finished ($completed done, $failed failed)';
|
||||
}
|
||||
|
||||
@override
|
||||
String get notifVerificationRequiredTitle => 'Verification required';
|
||||
|
||||
@override
|
||||
String get notifVerificationRequiredBody =>
|
||||
'Open the app to complete verification and resume downloads';
|
||||
|
||||
@override
|
||||
String get notifAllDownloadsComplete => 'Todas las descargas completadas';
|
||||
|
||||
@@ -8551,10 +8652,24 @@ class AppLocalizationsEsEs extends AppLocalizationsEs {
|
||||
String get downloadDeduplicationEnabled =>
|
||||
'Las pistas previamente descargadas se omitirán';
|
||||
|
||||
@override
|
||||
String get downloadDeduplicationWithQualityVariants =>
|
||||
'Existing files at the selected quality will be skipped';
|
||||
|
||||
@override
|
||||
String get downloadDeduplicationDisabled =>
|
||||
'Todas las pistas se descargarán independientemente del historial';
|
||||
|
||||
@override
|
||||
String get downloadQualityVariants => 'Allow different quality versions';
|
||||
|
||||
@override
|
||||
String get downloadQualityVariantsDescription =>
|
||||
'Add the selected quality to the filename and keep each version in download history';
|
||||
|
||||
@override
|
||||
String get trackOptionDownloadQualityVariant => 'Download another quality';
|
||||
|
||||
@override
|
||||
String get downloadFallbackExtensions => 'Reslpado de extensiones';
|
||||
|
||||
@@ -8683,6 +8798,21 @@ class AppLocalizationsEsEs extends AppLocalizationsEs {
|
||||
@override
|
||||
String get queueDownloadStarting => 'Comenzando...';
|
||||
|
||||
@override
|
||||
String get queueCheckingDownloadSession => 'Checking download session...';
|
||||
|
||||
@override
|
||||
String get queueResolvingDownloadMetadata => 'Resolving track metadata...';
|
||||
|
||||
@override
|
||||
String get queueResolvingDownloadStream => 'Preparing audio stream...';
|
||||
|
||||
@override
|
||||
String get queueWaitingForVerification => 'Waiting for verification...';
|
||||
|
||||
@override
|
||||
String get queueResumingAfterVerification => 'Resuming after verification...';
|
||||
|
||||
@override
|
||||
String get a11ySelectTrack => 'Seleccionar pista';
|
||||
|
||||
|
||||
@@ -661,6 +661,12 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
@override
|
||||
String get collectionExportM3uFailed => 'Export failed';
|
||||
|
||||
@override
|
||||
String get trackOpenOn => 'Open on...';
|
||||
|
||||
@override
|
||||
String get trackOpenOnNoLinks => 'No platform links found for this track.';
|
||||
|
||||
@override
|
||||
String snackbarAddedToQueue(String trackName) {
|
||||
return 'Ajout de « $trackName » à la file d\'attente';
|
||||
@@ -917,11 +923,11 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
String get updateNewVersionReady => 'Une nouvelle version est disponible';
|
||||
|
||||
@override
|
||||
String get updateRequiredTitle => 'Update required';
|
||||
String get updateRequiredTitle => 'Mise à jour requise';
|
||||
|
||||
@override
|
||||
String updateRequiredNotice(int count) {
|
||||
return 'This version is $count releases behind and is no longer supported. Update to keep using the app.';
|
||||
return 'Cette version a $count versions de retard et n\'est plus prise en charge. Effectuez la mise à jour pour continuer à utiliser l\'application.';
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -1582,11 +1588,11 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
String get appearanceAmoledDarkSubtitle => 'Fond noir pur';
|
||||
|
||||
@override
|
||||
String get appearanceHeroAnimations => 'Hero animations';
|
||||
String get appearanceHeroAnimations => 'Animations des héros';
|
||||
|
||||
@override
|
||||
String get appearanceHeroAnimationsSubtitle =>
|
||||
'Fly covers between screens, e.g. when opening the player';
|
||||
'Des fenêtres contextuelles apparaissent entre les écrans, par exemple lors de l\'ouverture du lecteur';
|
||||
|
||||
@override
|
||||
String get queueClearAll => 'Tout effacer';
|
||||
@@ -1617,18 +1623,18 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
'Choisissez le réseau à utiliser pour les téléchargements. Si vous sélectionnez « Wi-Fi uniquement », les téléchargements seront interrompus lorsque vous utilisez les données mobiles.';
|
||||
|
||||
@override
|
||||
String get settingsConcurrentDownloads => 'Concurrent downloads';
|
||||
String get settingsConcurrentDownloads => 'Téléchargements simultanés';
|
||||
|
||||
@override
|
||||
String get settingsConcurrentDownloadsSubtitle =>
|
||||
'Downloading several tracks at once is faster, but some providers may rate-limit parallel requests.';
|
||||
'Le téléchargement simultané de plusieurs titres est plus rapide, mais certains fournisseurs peuvent limiter le débit des requêtes parallèles.';
|
||||
|
||||
@override
|
||||
String get concurrentDownloadsOne => '1 track at a time';
|
||||
String get concurrentDownloadsOne => '1 titre à la fois';
|
||||
|
||||
@override
|
||||
String concurrentDownloadsCount(int count) {
|
||||
return 'Up to $count tracks at once';
|
||||
return 'Jusqu\'à $count titres à la fois';
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -2265,18 +2271,18 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
'Pochettes extraites des fichiers musicaux locaux. Elles seront extraites à nouveau lors de la prochaine analyse.';
|
||||
|
||||
@override
|
||||
String get libraryPlaybackNormalization => 'Volume normalization';
|
||||
String get libraryPlaybackNormalization => 'Normalisation du volume';
|
||||
|
||||
@override
|
||||
String get libraryPlaybackNormalizationSubtitle =>
|
||||
'Even out loudness between tracks using their ReplayGain or R128 tags, when present';
|
||||
'Équilibrer le volume entre les morceaux à l\'aide des balises ReplayGain ou R128, lorsqu\'elles sont présentes';
|
||||
|
||||
@override
|
||||
String get cacheAudioAnalysis => 'Audio analysis cache';
|
||||
String get cacheAudioAnalysis => 'Cache d\'analyse audio';
|
||||
|
||||
@override
|
||||
String get cacheAudioAnalysisDesc =>
|
||||
'Saved spectrograms and analysis results. Will re-analyze on next open.';
|
||||
'Spectrogrammes et résultats d\'analyse enregistrés. Réanalyse prévue lors de la prochaine ouverture.';
|
||||
|
||||
@override
|
||||
String get cacheExploreFeed => 'Explorer le cache des flux';
|
||||
@@ -2454,11 +2460,11 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
String get trackConvertBitrate => 'Débit binaire';
|
||||
|
||||
@override
|
||||
String get trackConvertKeepOriginal => 'Keep original file';
|
||||
String get trackConvertKeepOriginal => 'Conserver le fichier d\'origine';
|
||||
|
||||
@override
|
||||
String get trackConvertKeepOriginalDescription =>
|
||||
'Add the converted file as a separate library entry';
|
||||
'Ajoutez le fichier converti en tant qu\'entrée distincte dans la bibliothèque';
|
||||
|
||||
@override
|
||||
String get trackConvertConfirmTitle => 'Confirmer la conversion';
|
||||
@@ -2485,7 +2491,7 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
String sourceFormat,
|
||||
String targetFormat,
|
||||
) {
|
||||
return 'Convert from $sourceFormat to $targetFormat?\n\nThe original file will be kept and the converted file will be added as a separate library entry.';
|
||||
return 'Convertir du format $sourceFormat au format $targetFormat ?\n\nLe fichier d\'origine sera conservé et le fichier converti sera ajouté en tant qu\'entrée distincte dans la bibliothèque.';
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -2780,10 +2786,10 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other: 'tracks',
|
||||
one: 'track',
|
||||
other: 'titres',
|
||||
one: 'titre',
|
||||
);
|
||||
return 'Convert $count $_temp0 to $format?\n\nOriginal files will be kept and converted files will be added as separate library entries.';
|
||||
return 'Convertir $count $_temp0 au format $format ?\n\nLes fichiers d\'origine seront conservés et les fichiers convertis seront ajoutés sous forme d\'entrées distinctes dans la bibliothèque.';
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -3117,22 +3123,23 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
'Choisissez n\'importe quel dossier, y compris la carte SD';
|
||||
|
||||
@override
|
||||
String get downloadFolderAccessLostTitle => 'Download folder access lost';
|
||||
String get downloadFolderAccessLostTitle =>
|
||||
'Accès au dossier de téléchargement perdu';
|
||||
|
||||
@override
|
||||
String get downloadFolderAccessLostSubtitle =>
|
||||
'Downloads will fail until you re-select the folder';
|
||||
'Les téléchargements échoueront tant que vous n\'aurez pas resélectionné le dossier';
|
||||
|
||||
@override
|
||||
String get downloadFolderReselect => 'Re-select folder';
|
||||
String get downloadFolderReselect => 'Sélectionner à nouveau le dossier';
|
||||
|
||||
@override
|
||||
String get downloadErrorSafPermissionLost =>
|
||||
'SAF permission invalid or revoked. Please reconfigure download location in Settings.';
|
||||
'Autorisation SAF non valide ou révoquée. Veuillez reconfigurer l\'emplacement de téléchargement dans les Paramètres.';
|
||||
|
||||
@override
|
||||
String get downloadErrorFolderAccessLost =>
|
||||
'Download folder access lost. Please re-select your download folder in Settings.';
|
||||
'Accès au dossier de téléchargement perdu. Veuillez sélectionner à nouveau votre dossier de téléchargement dans les Paramètres.';
|
||||
|
||||
@override
|
||||
String downloadFilenameDescription(
|
||||
@@ -3656,11 +3663,11 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
}
|
||||
|
||||
@override
|
||||
String get notifVerificationRequiredTitle => 'Verification required';
|
||||
String get notifVerificationRequiredTitle => 'Vérification requise';
|
||||
|
||||
@override
|
||||
String get notifVerificationRequiredBody =>
|
||||
'Open the app to complete verification and resume downloads';
|
||||
'Ouvrez l\'application pour terminer la vérification et reprendre les téléchargements';
|
||||
|
||||
@override
|
||||
String get notifAllDownloadsComplete =>
|
||||
@@ -4052,21 +4059,23 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get downloadDeduplicationWithQualityVariants =>
|
||||
'Existing files at the selected quality will be skipped';
|
||||
'Les fichiers existants correspondant à la qualité sélectionnée seront ignorés';
|
||||
|
||||
@override
|
||||
String get downloadDeduplicationDisabled =>
|
||||
'Tous les morceaux seront téléchargés, quel que soit l\'historique';
|
||||
|
||||
@override
|
||||
String get downloadQualityVariants => 'Allow different quality versions';
|
||||
String get downloadQualityVariants =>
|
||||
'Autoriser différentes versions de qualité';
|
||||
|
||||
@override
|
||||
String get downloadQualityVariantsDescription =>
|
||||
'Add the selected quality to the filename and keep each version in download history';
|
||||
'Ajouter la qualité sélectionnée au nom du fichier et conserver chaque version dans l\'historique des téléchargements';
|
||||
|
||||
@override
|
||||
String get trackOptionDownloadQualityVariant => 'Download another quality';
|
||||
String get trackOptionDownloadQualityVariant =>
|
||||
'Télécharger une autre version de qualité';
|
||||
|
||||
@override
|
||||
String get downloadFallbackExtensions => 'Extensions de secours';
|
||||
@@ -4199,19 +4208,21 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
String get queueDownloadStarting => 'C\'est parti...';
|
||||
|
||||
@override
|
||||
String get queueCheckingDownloadSession => 'Checking download session...';
|
||||
String get queueCheckingDownloadSession =>
|
||||
'Vérification de la session de téléchargement...';
|
||||
|
||||
@override
|
||||
String get queueResolvingDownloadMetadata => 'Resolving track metadata...';
|
||||
String get queueResolvingDownloadMetadata =>
|
||||
'Récupération des métadonnées du morceau...';
|
||||
|
||||
@override
|
||||
String get queueResolvingDownloadStream => 'Preparing audio stream...';
|
||||
String get queueResolvingDownloadStream => 'Préparation du flux audio...';
|
||||
|
||||
@override
|
||||
String get queueWaitingForVerification => 'Waiting for verification...';
|
||||
String get queueWaitingForVerification => 'En attente de vérification...';
|
||||
|
||||
@override
|
||||
String get queueResumingAfterVerification => 'Resuming after verification...';
|
||||
String get queueResumingAfterVerification => 'Reprise après vérification...';
|
||||
|
||||
@override
|
||||
String get a11ySelectTrack => 'Sélectionner une piste';
|
||||
|
||||
@@ -110,7 +110,7 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
'Gunakan warna dari wallpaper Anda';
|
||||
|
||||
@override
|
||||
String get appearanceHistoryView => 'Tampilan Riwayat';
|
||||
String get appearanceHistoryView => 'Gaya Tampilan Histori';
|
||||
|
||||
@override
|
||||
String get appearanceHistoryViewList => 'Daftar';
|
||||
@@ -138,7 +138,7 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
'Pilih tab mana yang terbuka terlebih dahulu untuk hasil pencarian baru.';
|
||||
|
||||
@override
|
||||
String get optionsAutoFallback => 'Cadangan Otomatis';
|
||||
String get optionsAutoFallback => 'Layanan Cadangan';
|
||||
|
||||
@override
|
||||
String get optionsAutoFallbackSubtitle =>
|
||||
@@ -647,6 +647,12 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
@override
|
||||
String get collectionExportM3uFailed => 'Export failed';
|
||||
|
||||
@override
|
||||
String get trackOpenOn => 'Open on...';
|
||||
|
||||
@override
|
||||
String get trackOpenOnNoLinks => 'No platform links found for this track.';
|
||||
|
||||
@override
|
||||
String snackbarAddedToQueue(String trackName) {
|
||||
return 'Menambahkan \"$trackName\" ke antrian';
|
||||
|
||||
@@ -642,6 +642,12 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get collectionExportM3uFailed => 'Export failed';
|
||||
|
||||
@override
|
||||
String get trackOpenOn => 'Open on...';
|
||||
|
||||
@override
|
||||
String get trackOpenOnNoLinks => 'No platform links found for this track.';
|
||||
|
||||
@override
|
||||
String snackbarAddedToQueue(String trackName) {
|
||||
return '「$trackName」をキューに追加しました';
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -645,6 +645,12 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
@override
|
||||
String get collectionExportM3uFailed => 'Export failed';
|
||||
|
||||
@override
|
||||
String get trackOpenOn => 'Open on...';
|
||||
|
||||
@override
|
||||
String get trackOpenOnNoLinks => 'No platform links found for this track.';
|
||||
|
||||
@override
|
||||
String snackbarAddedToQueue(String trackName) {
|
||||
return 'Added \"$trackName\" to queue';
|
||||
@@ -5554,6 +5560,14 @@ class AppLocalizationsPtPt extends AppLocalizationsPt {
|
||||
@override
|
||||
String get updateNewVersionReady => 'Uma nova versão está pronta';
|
||||
|
||||
@override
|
||||
String get updateRequiredTitle => 'Update required';
|
||||
|
||||
@override
|
||||
String updateRequiredNotice(int count) {
|
||||
return 'This version is $count releases behind and is no longer supported. Update to keep using the app.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get updateCurrent => 'Atual';
|
||||
|
||||
@@ -6195,6 +6209,13 @@ class AppLocalizationsPtPt extends AppLocalizationsPt {
|
||||
@override
|
||||
String get appearanceAmoledDarkSubtitle => 'Fundo preto puro';
|
||||
|
||||
@override
|
||||
String get appearanceHeroAnimations => 'Hero animations';
|
||||
|
||||
@override
|
||||
String get appearanceHeroAnimationsSubtitle =>
|
||||
'Fly covers between screens, e.g. when opening the player';
|
||||
|
||||
@override
|
||||
String get queueClearAll => 'Limpar Tudo';
|
||||
|
||||
@@ -6222,6 +6243,21 @@ class AppLocalizationsPtPt extends AppLocalizationsPt {
|
||||
String get settingsDownloadNetworkSubtitle =>
|
||||
'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.';
|
||||
|
||||
@override
|
||||
String get settingsConcurrentDownloads => 'Concurrent downloads';
|
||||
|
||||
@override
|
||||
String get settingsConcurrentDownloadsSubtitle =>
|
||||
'Downloading several tracks at once is faster, but some providers may rate-limit parallel requests.';
|
||||
|
||||
@override
|
||||
String get concurrentDownloadsOne => '1 track at a time';
|
||||
|
||||
@override
|
||||
String concurrentDownloadsCount(int count) {
|
||||
return 'Up to $count tracks at once';
|
||||
}
|
||||
|
||||
@override
|
||||
String get albumFolderArtistAlbum => 'Artista / Álbum';
|
||||
|
||||
@@ -6843,6 +6879,20 @@ class AppLocalizationsPtPt extends AppLocalizationsPt {
|
||||
String get cacheLibraryCoverDesc =>
|
||||
'Cover art extracted from local music files. Will re-extract on next scan.';
|
||||
|
||||
@override
|
||||
String get libraryPlaybackNormalization => 'Volume normalization';
|
||||
|
||||
@override
|
||||
String get libraryPlaybackNormalizationSubtitle =>
|
||||
'Even out loudness between tracks using their ReplayGain or R128 tags, when present';
|
||||
|
||||
@override
|
||||
String get cacheAudioAnalysis => 'Audio analysis cache';
|
||||
|
||||
@override
|
||||
String get cacheAudioAnalysisDesc =>
|
||||
'Saved spectrograms and analysis results. Will re-analyze on next open.';
|
||||
|
||||
@override
|
||||
String get cacheExploreFeed => 'Explore feed cache';
|
||||
|
||||
@@ -7016,6 +7066,13 @@ class AppLocalizationsPtPt extends AppLocalizationsPt {
|
||||
@override
|
||||
String get trackConvertBitrate => 'Bitrate';
|
||||
|
||||
@override
|
||||
String get trackConvertKeepOriginal => 'Keep original file';
|
||||
|
||||
@override
|
||||
String get trackConvertKeepOriginalDescription =>
|
||||
'Add the converted file as a separate library entry';
|
||||
|
||||
@override
|
||||
String get trackConvertConfirmTitle => 'Confirm Conversion';
|
||||
|
||||
@@ -7036,6 +7093,14 @@ class AppLocalizationsPtPt extends AppLocalizationsPt {
|
||||
return 'Convert from $sourceFormat to $targetFormat? (Lossless — no quality loss)\n\nThe original file will be deleted after conversion.';
|
||||
}
|
||||
|
||||
@override
|
||||
String trackConvertConfirmKeepOriginal(
|
||||
String sourceFormat,
|
||||
String targetFormat,
|
||||
) {
|
||||
return 'Convert from $sourceFormat to $targetFormat?\n\nThe original file will be kept and the converted file will be added as a separate library entry.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get trackConvertLosslessHint =>
|
||||
'Lossless conversion — no quality loss';
|
||||
@@ -7192,11 +7257,10 @@ class AppLocalizationsPtPt extends AppLocalizationsPt {
|
||||
'Tap the heart on an artist page to keep them here';
|
||||
|
||||
@override
|
||||
String get collectionPlaylistEmptyTitle => 'Playlist is empty';
|
||||
String get collectionPlaylistEmptyTitle => 'A lista de reprodução está vazia';
|
||||
|
||||
@override
|
||||
String get collectionPlaylistEmptySubtitle =>
|
||||
'Long-press + on any track to add it here';
|
||||
String get collectionPlaylistEmptySubtitle => '';
|
||||
|
||||
@override
|
||||
String get collectionRemoveFromPlaylist => 'Remove from playlist';
|
||||
@@ -7315,6 +7379,17 @@ class AppLocalizationsPtPt extends AppLocalizationsPt {
|
||||
return 'Convert $count $_temp0 to $format? (Lossless — no quality loss)\n\nOriginal files will be deleted after conversion.';
|
||||
}
|
||||
|
||||
@override
|
||||
String selectionBatchConvertConfirmKeepOriginal(int count, String format) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other: 'tracks',
|
||||
one: 'track',
|
||||
);
|
||||
return 'Convert $count $_temp0 to $format?\n\nOriginal files will be kept and converted files will be added as separate library entries.';
|
||||
}
|
||||
|
||||
@override
|
||||
String selectionBatchConvertSuccess(int success, int total, String format) {
|
||||
return 'Converted $success of $total tracks to $format';
|
||||
@@ -7628,10 +7703,29 @@ class AppLocalizationsPtPt extends AppLocalizationsPt {
|
||||
'Saves to Music/SpotiFLAC by default';
|
||||
|
||||
@override
|
||||
String get storageModeSaf => 'Custom Folder (SAF)';
|
||||
String get storageModeSaf => '';
|
||||
|
||||
@override
|
||||
String get storageModeSafSubtitle => 'Pick any folder, including SD card';
|
||||
String get storageModeSafSubtitle =>
|
||||
'Escolha qualquer pasta, incluindo o cartão SD';
|
||||
|
||||
@override
|
||||
String get downloadFolderAccessLostTitle => 'Download folder access lost';
|
||||
|
||||
@override
|
||||
String get downloadFolderAccessLostSubtitle =>
|
||||
'Downloads will fail until you re-select the folder';
|
||||
|
||||
@override
|
||||
String get downloadFolderReselect => 'Re-select folder';
|
||||
|
||||
@override
|
||||
String get downloadErrorSafPermissionLost =>
|
||||
'SAF permission invalid or revoked. Please reconfigure download location in Settings.';
|
||||
|
||||
@override
|
||||
String get downloadErrorFolderAccessLost =>
|
||||
'Download folder access lost. Please re-select your download folder in Settings.';
|
||||
|
||||
@override
|
||||
String downloadFilenameDescription(
|
||||
@@ -8140,6 +8234,13 @@ class AppLocalizationsPtPt extends AppLocalizationsPt {
|
||||
return 'Downloads Finished ($completed done, $failed failed)';
|
||||
}
|
||||
|
||||
@override
|
||||
String get notifVerificationRequiredTitle => 'Verification required';
|
||||
|
||||
@override
|
||||
String get notifVerificationRequiredBody =>
|
||||
'Open the app to complete verification and resume downloads';
|
||||
|
||||
@override
|
||||
String get notifAllDownloadsComplete => 'All Downloads Complete';
|
||||
|
||||
@@ -8224,10 +8325,11 @@ class AppLocalizationsPtPt extends AppLocalizationsPt {
|
||||
String get notifLibraryScanFailed => 'Library scan failed';
|
||||
|
||||
@override
|
||||
String get notifLibraryScanCancelled => 'Library scan cancelled';
|
||||
String get notifLibraryScanCancelled =>
|
||||
'Escaneamento de biblioteca cancelado';
|
||||
|
||||
@override
|
||||
String get notifLibraryScanStopped => 'Scan stopped before completion.';
|
||||
String get notifLibraryScanStopped => '';
|
||||
|
||||
@override
|
||||
String notifDownloadingUpdate(String version) {
|
||||
@@ -8515,10 +8617,24 @@ class AppLocalizationsPtPt extends AppLocalizationsPt {
|
||||
String get downloadDeduplicationEnabled =>
|
||||
'Already-downloaded tracks will be skipped';
|
||||
|
||||
@override
|
||||
String get downloadDeduplicationWithQualityVariants =>
|
||||
'Existing files at the selected quality will be skipped';
|
||||
|
||||
@override
|
||||
String get downloadDeduplicationDisabled =>
|
||||
'All tracks will be downloaded regardless of history';
|
||||
|
||||
@override
|
||||
String get downloadQualityVariants => 'Allow different quality versions';
|
||||
|
||||
@override
|
||||
String get downloadQualityVariantsDescription =>
|
||||
'Add the selected quality to the filename and keep each version in download history';
|
||||
|
||||
@override
|
||||
String get trackOptionDownloadQualityVariant => 'Download another quality';
|
||||
|
||||
@override
|
||||
String get downloadFallbackExtensions => 'Fallback Extensions';
|
||||
|
||||
@@ -8647,6 +8763,21 @@ class AppLocalizationsPtPt extends AppLocalizationsPt {
|
||||
@override
|
||||
String get queueDownloadStarting => 'Starting...';
|
||||
|
||||
@override
|
||||
String get queueCheckingDownloadSession => 'Checking download session...';
|
||||
|
||||
@override
|
||||
String get queueResolvingDownloadMetadata => 'Resolving track metadata...';
|
||||
|
||||
@override
|
||||
String get queueResolvingDownloadStream => 'Preparing audio stream...';
|
||||
|
||||
@override
|
||||
String get queueWaitingForVerification => 'Waiting for verification...';
|
||||
|
||||
@override
|
||||
String get queueResumingAfterVerification => 'Resuming after verification...';
|
||||
|
||||
@override
|
||||
String get a11ySelectTrack => 'Select track';
|
||||
|
||||
|
||||
@@ -649,6 +649,12 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
@override
|
||||
String get collectionExportM3uFailed => 'Export failed';
|
||||
|
||||
@override
|
||||
String get trackOpenOn => 'Open on...';
|
||||
|
||||
@override
|
||||
String get trackOpenOnNoLinks => 'No platform links found for this track.';
|
||||
|
||||
@override
|
||||
String snackbarAddedToQueue(String trackName) {
|
||||
return '\"$trackName\" добавлен в очередь';
|
||||
|
||||
@@ -651,6 +651,12 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
@override
|
||||
String get collectionExportM3uFailed => 'Export failed';
|
||||
|
||||
@override
|
||||
String get trackOpenOn => 'Open on...';
|
||||
|
||||
@override
|
||||
String get trackOpenOnNoLinks => 'No platform links found for this track.';
|
||||
|
||||
@override
|
||||
String snackbarAddedToQueue(String trackName) {
|
||||
return '\"$trackName\" kuyruğa eklendi';
|
||||
|
||||
@@ -652,6 +652,12 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
@override
|
||||
String get collectionExportM3uFailed => 'Export failed';
|
||||
|
||||
@override
|
||||
String get trackOpenOn => 'Open on...';
|
||||
|
||||
@override
|
||||
String get trackOpenOnNoLinks => 'No platform links found for this track.';
|
||||
|
||||
@override
|
||||
String snackbarAddedToQueue(String trackName) {
|
||||
return 'Додано \"$trackName\" до черги';
|
||||
|
||||
+163
-24
@@ -23,7 +23,7 @@
|
||||
"@cacheCleanupUnused": {
|
||||
"description": "Action title for cleaning unused entries"
|
||||
},
|
||||
"trackConvertDitherNone": "None",
|
||||
"trackConvertDitherNone": "Keine",
|
||||
"@trackConvertDitherNone": {
|
||||
"description": "Lossless conversion dither option with no dithering applied"
|
||||
},
|
||||
@@ -143,7 +143,7 @@
|
||||
"description": "Share button tooltip"
|
||||
},
|
||||
"@storeFilterLyrics": {
|
||||
"description": "Store filter - lyrics providers"
|
||||
"description": "Repo filter - lyrics providers"
|
||||
},
|
||||
"extensionsInstallButton": "Erweiterung installieren",
|
||||
"@extensionsInstallButton": {
|
||||
@@ -317,7 +317,7 @@
|
||||
},
|
||||
"optionsExtensionStore": "Erweiterungs-Repo",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide store tab"
|
||||
"description": "Show/hide repo tab"
|
||||
},
|
||||
"libraryDownloadsHistoryExcluded": "{count} aus dem Download-Verlauf (von der Liste ausgeschlossen)",
|
||||
"@libraryDownloadsHistoryExcluded": {
|
||||
@@ -459,7 +459,7 @@
|
||||
},
|
||||
"storeFilterDownload": "Herunterladen",
|
||||
"@storeFilterDownload": {
|
||||
"description": "Store filter - download providers"
|
||||
"description": "Repo filter - download providers"
|
||||
},
|
||||
"@collectionAddToPlaylist": {
|
||||
"description": "Action to add a track to user playlist"
|
||||
@@ -775,7 +775,7 @@
|
||||
"@audioAnalysisRescanning": {
|
||||
"description": "Loading text while audio is being re-analyzed after an explicit refresh"
|
||||
},
|
||||
"logTitle": "Logs",
|
||||
"logTitle": "Protokolle",
|
||||
"@logTitle": {
|
||||
"description": "Logs screen title"
|
||||
},
|
||||
@@ -1151,7 +1151,7 @@
|
||||
},
|
||||
"storeFilterMetadata": "Metadaten",
|
||||
"@storeFilterMetadata": {
|
||||
"description": "Store filter - metadata providers"
|
||||
"description": "Repo filter - metadata providers"
|
||||
},
|
||||
"shareSheetCopyLink": "Copy Link",
|
||||
"errorRateLimitedMessage": "Zu viele Anfragen. Bitte warte einen Moment, bevor du es erneut suchst.",
|
||||
@@ -1732,7 +1732,7 @@
|
||||
},
|
||||
"storeFilterUtility": "Utility",
|
||||
"@storeFilterUtility": {
|
||||
"description": "Store filter - utility extensions"
|
||||
"description": "Repo filter - utility extensions"
|
||||
},
|
||||
"collectionAddedToPlaylist": "Zu \"{playlistName} \" hinzugefügt",
|
||||
"@collectionAddedToPlaylist": {
|
||||
@@ -2919,7 +2919,7 @@
|
||||
"description": "Status label when primary-artist-only folder naming is enabled"
|
||||
},
|
||||
"lyricsProvidersDiscardContent": "Ungespeicherte Änderungen die verloren gehen.",
|
||||
"previewStop": "Stop preview",
|
||||
"previewStop": "Vorschau stoppen",
|
||||
"@previewStop": {
|
||||
"description": "Tooltip for the button that stops the playing track preview snippet"
|
||||
},
|
||||
@@ -3205,7 +3205,7 @@
|
||||
},
|
||||
"trackConvertOriginal": "Original",
|
||||
"sectionLyricsProviderOptions": "Anbieter-Optionen",
|
||||
"nowPlayingTitle": "Now Playing",
|
||||
"nowPlayingTitle": "Jetzt läuft",
|
||||
"@nowPlayingTitle": {
|
||||
"description": "Title for the now playing screen"
|
||||
},
|
||||
@@ -3328,7 +3328,7 @@
|
||||
},
|
||||
"libraryPlayback": "Playback",
|
||||
"@storeFilterAll": {
|
||||
"description": "Store filter - all extensions"
|
||||
"description": "Repo filter - all extensions"
|
||||
},
|
||||
"aboutApp": "App",
|
||||
"@aboutApp": {
|
||||
@@ -3348,7 +3348,7 @@
|
||||
"logIssueIspBlockingLabel": "ISP BLOCKIERUNG ERKANNT",
|
||||
"storeFilterIntegration": "Integration",
|
||||
"@storeFilterIntegration": {
|
||||
"description": "Store filter - integrations"
|
||||
"description": "Repo filter - integrations"
|
||||
},
|
||||
"@lyricsProvidersAtLeastOne": {
|
||||
"description": "Snackbar when user tries to disable the last enabled provider"
|
||||
@@ -3538,7 +3538,7 @@
|
||||
},
|
||||
"storeTitle": "Erweiterungs-Repo",
|
||||
"@storeTitle": {
|
||||
"description": "Store screen title"
|
||||
"description": "Repo screen title"
|
||||
},
|
||||
"libraryCleared": "Bibliothek geleert",
|
||||
"@libraryCleared": {
|
||||
@@ -3586,7 +3586,7 @@
|
||||
"@searchSortTitle": {
|
||||
"description": "Bottom sheet title for search sort options"
|
||||
},
|
||||
"editMetadataSelectNone": "None",
|
||||
"editMetadataSelectNone": "Keine",
|
||||
"@historyFilterSingles": {
|
||||
"description": "Filter chip - show singles only"
|
||||
},
|
||||
@@ -3705,7 +3705,7 @@
|
||||
"description": "Dialog title for default folder"
|
||||
},
|
||||
"optionsArtistTagModeSplitVorbisSubtitle": "Schreibe einen Künstler Tag pro Künstler für FLAC und Opus; MP3 und M4A bleiben beigetreten.",
|
||||
"snackbarPlayingNext": "Playing next",
|
||||
"snackbarPlayingNext": "Als nächstes",
|
||||
"@snackbarPlayingNext": {
|
||||
"description": "Snackbar when a track is inserted as the next queue item"
|
||||
},
|
||||
@@ -3853,7 +3853,7 @@
|
||||
},
|
||||
"lyricsProviderMusixmatchDesc": "Größte Lyrics-Datenbank (mehrsprachig)",
|
||||
"@navStore": {
|
||||
"description": "Bottom navigation - Extension store tab"
|
||||
"description": "Bottom navigation - Extension repo tab"
|
||||
},
|
||||
"extensionPostProcessing": "Post-processing",
|
||||
"@searchTracks": {
|
||||
@@ -4348,7 +4348,7 @@
|
||||
"description": "Snackbar when no selected tracks support conversion"
|
||||
},
|
||||
"extensionHealthDegraded": "Eingeschränkt",
|
||||
"regionCountryKR": "South Korea",
|
||||
"regionCountryKR": "Südkorea",
|
||||
"@regionCountryKR": {
|
||||
"description": "Country name for SongLink region picker"
|
||||
},
|
||||
@@ -4444,7 +4444,7 @@
|
||||
"appName": "SpotiFLAC Mobile",
|
||||
"storeRepoDialogCurrent": "Aktuelles Repository:",
|
||||
"@optionsExtensionStoreSubtitle": {
|
||||
"description": "Subtitle for extension store toggle"
|
||||
"description": "Subtitle for extension repo toggle"
|
||||
},
|
||||
"@trackLyrics": {
|
||||
"description": "Tab title - lyrics"
|
||||
@@ -4557,7 +4557,7 @@
|
||||
"downloadUseAlbumArtistForFoldersTrackSubtitle": "Ordner benannt nach dem Tag des Künstlers",
|
||||
"storeSearch": "Erweiterungen suchen...",
|
||||
"@storeSearch": {
|
||||
"description": "Store search placeholder"
|
||||
"description": "Repo search placeholder"
|
||||
},
|
||||
"aboutTelegramChat": "Telegram Community",
|
||||
"lyricsModeBoth": "Beides",
|
||||
@@ -4792,7 +4792,7 @@
|
||||
}
|
||||
},
|
||||
"dialogRemove": "Entfernen",
|
||||
"extensionVerificationClose": "Close",
|
||||
"extensionVerificationClose": "Schließen",
|
||||
"bulkDownloadPlaylistsButton": "Lade {count} {count, plural, =1{Playlist} other{Playlists}} herunter",
|
||||
"@bulkDownloadPlaylistsButton": {
|
||||
"description": "Button label for bulk downloading selected playlists",
|
||||
@@ -4979,7 +4979,7 @@
|
||||
"description": "Button text to start CUE splitting"
|
||||
},
|
||||
"appearanceHistoryView": "Verlaufsansicht",
|
||||
"audioAnalysisSampleRate": "Sample Rate",
|
||||
"audioAnalysisSampleRate": "Abtastrate",
|
||||
"@settingsCache": {
|
||||
"description": "Settings menu item - cache management"
|
||||
},
|
||||
@@ -5585,7 +5585,7 @@
|
||||
"homeAlbumInfoUnavailable": "Albuminfo nicht verfügbar",
|
||||
"settingsLyrics": "Lyrics",
|
||||
"extensionVerificationBrowserExternal": "External",
|
||||
"regionCountryIN": "India",
|
||||
"regionCountryIN": "Indien",
|
||||
"extensionHealthUnknown": "Unbekannt",
|
||||
"backupContentsWishlist": "{count} wishlist {count, plural, =1{track} other{tracks}}",
|
||||
"settingsAutoExportFailed": "Auto-Export fehlgeschlagener Downloads",
|
||||
@@ -5733,7 +5733,7 @@
|
||||
"@noTracksFoundForAlbum": {
|
||||
"description": "Empty state message when an album has no tracks"
|
||||
},
|
||||
"previewPlay": "Play preview",
|
||||
"previewPlay": "Vorschau abspielen",
|
||||
"setupPermissionRequiredMessage": "{permissionType}-Berechtigung ist erforderlich für\ndie beste Benutzererfahrung. Du kannst dies später in den Einstellungen ändern.",
|
||||
"aboutVersion": "Version",
|
||||
"qualityHiResFlacSubtitle": "24-Bit / bis 96kHz",
|
||||
@@ -5791,7 +5791,7 @@
|
||||
"libraryFilterTitle": "Filter",
|
||||
"cleanupOrphanedDownloadsResult": "Entfernte {count} verwaiste Einträge aus dem Verlauf",
|
||||
"extensionHooksAvailable": "{count} Hook(s) verfügbar",
|
||||
"backupContentsSettings": "App settings",
|
||||
"backupContentsSettings": "Appeinstellungen",
|
||||
"trackLyricsEmbedded": "Lyrics erfolgreich eingebettet",
|
||||
"optionsUpdateChannelPreview": "Vorschau-Versionen erhalten",
|
||||
"collectionAddedToFavoriteArtists": "\"{artistName}\" zu Lieblingskünstlern hinzugefügt",
|
||||
@@ -5883,5 +5883,144 @@
|
||||
"extensionsSearchProviderDescription": "Wähle den Dienst für die Suche von Titel",
|
||||
"albumFolderAlbumOnly": "Nur Alben",
|
||||
"nowPlayingOpenInExternalPlayer": "Open in external player",
|
||||
"cueSplitButton": "In Titel aufteilen"
|
||||
"cueSplitButton": "In Titel aufteilen",
|
||||
"updateRequiredTitle": "Update required",
|
||||
"@updateRequiredTitle": {
|
||||
"description": "Title of the mandatory update dialog shown when the installed version is too old"
|
||||
},
|
||||
"updateRequiredNotice": "This version is {count} releases behind and is no longer supported. Update to keep using the app.",
|
||||
"@updateRequiredNotice": {
|
||||
"description": "Subtitle of the mandatory update dialog; explains why the dialog cannot be dismissed",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appearanceHeroAnimations": "Hero animations",
|
||||
"@appearanceHeroAnimations": {
|
||||
"description": "Toggle for shared-element (Hero) transitions"
|
||||
},
|
||||
"appearanceHeroAnimationsSubtitle": "Fly covers between screens, e.g. when opening the player",
|
||||
"@appearanceHeroAnimationsSubtitle": {
|
||||
"description": "Subtitle for the Hero animations toggle"
|
||||
},
|
||||
"settingsConcurrentDownloads": "Concurrent downloads",
|
||||
"@settingsConcurrentDownloads": {
|
||||
"description": "Setting title - how many tracks download at the same time"
|
||||
},
|
||||
"settingsConcurrentDownloadsSubtitle": "Downloading several tracks at once is faster, but some providers may rate-limit parallel requests.",
|
||||
"@settingsConcurrentDownloadsSubtitle": {
|
||||
"description": "Subtitle explaining the concurrent downloads picker"
|
||||
},
|
||||
"concurrentDownloadsOne": "1 track at a time",
|
||||
"@concurrentDownloadsOne": {
|
||||
"description": "Concurrent downloads option - sequential"
|
||||
},
|
||||
"concurrentDownloadsCount": "Up to {count} tracks at once",
|
||||
"@concurrentDownloadsCount": {
|
||||
"description": "Concurrent downloads option - parallel",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraryPlaybackNormalization": "Volume normalization",
|
||||
"@libraryPlaybackNormalization": {
|
||||
"description": "Toggle title for ReplayGain playback normalization in the built-in player"
|
||||
},
|
||||
"libraryPlaybackNormalizationSubtitle": "Even out loudness between tracks using their ReplayGain or R128 tags, when present",
|
||||
"@libraryPlaybackNormalizationSubtitle": {
|
||||
"description": "Subtitle explaining playback volume normalization"
|
||||
},
|
||||
"cacheAudioAnalysis": "Audio analysis cache",
|
||||
"@cacheAudioAnalysis": {
|
||||
"description": "Cache item title for saved audio analysis results"
|
||||
},
|
||||
"cacheAudioAnalysisDesc": "Saved spectrograms and analysis results. Will re-analyze on next open.",
|
||||
"@cacheAudioAnalysisDesc": {
|
||||
"description": "Description of what audio analysis cache contains"
|
||||
},
|
||||
"trackConvertKeepOriginal": "Keep original file",
|
||||
"@trackConvertKeepOriginal": {
|
||||
"description": "Toggle to preserve the source file during conversion"
|
||||
},
|
||||
"trackConvertKeepOriginalDescription": "Add the converted file as a separate library entry",
|
||||
"@trackConvertKeepOriginalDescription": {
|
||||
"description": "Description for preserving the source file during conversion"
|
||||
},
|
||||
"trackConvertConfirmKeepOriginal": "Convert from {sourceFormat} to {targetFormat}?\n\nThe original file will be kept and the converted file will be added as a separate library entry.",
|
||||
"@trackConvertConfirmKeepOriginal": {
|
||||
"description": "Confirmation message when the source file will be preserved",
|
||||
"placeholders": {
|
||||
"sourceFormat": {
|
||||
"type": "String"
|
||||
},
|
||||
"targetFormat": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionBatchConvertConfirmKeepOriginal": "Convert {count} {count, plural, =1{track} other{tracks}} to {format}?\n\nOriginal files will be kept and converted files will be added as separate library entries.",
|
||||
"@selectionBatchConvertConfirmKeepOriginal": {
|
||||
"description": "Batch conversion confirmation when source files will be preserved",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
},
|
||||
"format": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadFolderAccessLostTitle": "Download folder access lost",
|
||||
"@downloadFolderAccessLostTitle": {
|
||||
"description": "Title of the warning banner shown in Files settings when the saved SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadFolderAccessLostSubtitle": "Downloads will fail until you re-select the folder",
|
||||
"@downloadFolderAccessLostSubtitle": {
|
||||
"description": "Subtitle of the warning banner shown when the saved SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadFolderReselect": "Re-select folder",
|
||||
"@downloadFolderReselect": {
|
||||
"description": "Button that reopens the folder picker to restore download folder access"
|
||||
},
|
||||
"downloadErrorSafPermissionLost": "SAF permission invalid or revoked. Please reconfigure download location in Settings.",
|
||||
"@downloadErrorSafPermissionLost": {
|
||||
"description": "Error shown on downloads that failed because the persisted Android SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadErrorFolderAccessLost": "Download folder access lost. Please re-select your download folder in Settings.",
|
||||
"@downloadErrorFolderAccessLost": {
|
||||
"description": "Error shown on downloads that failed because the iOS download folder bookmark could not be opened"
|
||||
},
|
||||
"notifVerificationRequiredTitle": "Verification required",
|
||||
"@notifVerificationRequiredTitle": {
|
||||
"description": "Notification title shown when a download needs the user to complete a verification challenge but the app is in the background"
|
||||
},
|
||||
"notifVerificationRequiredBody": "Open the app to complete verification and resume downloads",
|
||||
"@notifVerificationRequiredBody": {
|
||||
"description": "Notification body prompting the user to return to the app to solve a verification challenge"
|
||||
},
|
||||
"downloadDeduplicationWithQualityVariants": "Existing files at the selected quality will be skipped",
|
||||
"@downloadDeduplicationWithQualityVariants": {
|
||||
"description": "Deduplication subtitle when separate quality versions are allowed"
|
||||
},
|
||||
"downloadQualityVariants": "Allow different quality versions",
|
||||
"@downloadQualityVariants": {
|
||||
"description": "Setting to retain multiple quality versions of the same track"
|
||||
},
|
||||
"downloadQualityVariantsDescription": "Add the selected quality to the filename and keep each version in download history",
|
||||
"@downloadQualityVariantsDescription": {
|
||||
"description": "Description for retaining multiple quality versions"
|
||||
},
|
||||
"trackOptionDownloadQualityVariant": "Download another quality",
|
||||
"@trackOptionDownloadQualityVariant": {
|
||||
"description": "Track menu action to download another quality version"
|
||||
},
|
||||
"queueCheckingDownloadSession": "Checking download session...",
|
||||
"queueResolvingDownloadMetadata": "Resolving track metadata...",
|
||||
"queueResolvingDownloadStream": "Preparing audio stream...",
|
||||
"queueWaitingForVerification": "Waiting for verification...",
|
||||
"queueResumingAfterVerification": "Resuming after verification..."
|
||||
}
|
||||
|
||||
+151
-12
@@ -19,7 +19,7 @@
|
||||
},
|
||||
"navStore": "Repositorio",
|
||||
"@navStore": {
|
||||
"description": "Bottom navigation - Extension store tab"
|
||||
"description": "Bottom navigation - Extension repo tab"
|
||||
},
|
||||
"homeTitle": "Inicio",
|
||||
"@homeTitle": {
|
||||
@@ -282,11 +282,11 @@
|
||||
},
|
||||
"optionsExtensionStore": "Repositorio de extensiones",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide store tab"
|
||||
"description": "Show/hide repo tab"
|
||||
},
|
||||
"optionsExtensionStoreSubtitle": "Mostrar la pestaña del repositorio en la navegación",
|
||||
"@optionsExtensionStoreSubtitle": {
|
||||
"description": "Subtitle for extension store toggle"
|
||||
"description": "Subtitle for extension repo toggle"
|
||||
},
|
||||
"optionsCheckUpdates": "Buscar actualizaciones",
|
||||
"@optionsCheckUpdates": {
|
||||
@@ -355,11 +355,11 @@
|
||||
},
|
||||
"storeTitle": "Repositorio de extensiones",
|
||||
"@storeTitle": {
|
||||
"description": "Store screen title"
|
||||
"description": "Repo screen title"
|
||||
},
|
||||
"storeSearch": "Buscar extensiones...",
|
||||
"@storeSearch": {
|
||||
"description": "Store search placeholder"
|
||||
"description": "Repo search placeholder"
|
||||
},
|
||||
"storeInstall": "Instalar",
|
||||
"@storeInstall": {
|
||||
@@ -1604,27 +1604,27 @@
|
||||
},
|
||||
"storeFilterAll": "Todo",
|
||||
"@storeFilterAll": {
|
||||
"description": "Store filter - all extensions"
|
||||
"description": "Repo filter - all extensions"
|
||||
},
|
||||
"storeFilterMetadata": "Información",
|
||||
"@storeFilterMetadata": {
|
||||
"description": "Store filter - metadata providers"
|
||||
"description": "Repo filter - metadata providers"
|
||||
},
|
||||
"storeFilterDownload": "Descargar",
|
||||
"@storeFilterDownload": {
|
||||
"description": "Store filter - download providers"
|
||||
"description": "Repo filter - download providers"
|
||||
},
|
||||
"storeFilterUtility": "Utilidad",
|
||||
"@storeFilterUtility": {
|
||||
"description": "Store filter - utility extensions"
|
||||
"description": "Repo filter - utility extensions"
|
||||
},
|
||||
"storeFilterLyrics": "Letras",
|
||||
"@storeFilterLyrics": {
|
||||
"description": "Store filter - lyrics providers"
|
||||
"description": "Repo filter - lyrics providers"
|
||||
},
|
||||
"storeFilterIntegration": "Integración",
|
||||
"@storeFilterIntegration": {
|
||||
"description": "Store filter - integrations"
|
||||
"description": "Repo filter - integrations"
|
||||
},
|
||||
"storeClearFilters": "Limpiar filtros",
|
||||
"@storeClearFilters": {
|
||||
@@ -5883,5 +5883,144 @@
|
||||
"extensionVerificationOpenBrowser": "Open browser",
|
||||
"@extensionVerificationOpenBrowser": {
|
||||
"description": "Button to open the extension verification URL in a browser"
|
||||
}
|
||||
},
|
||||
"updateRequiredTitle": "Update required",
|
||||
"@updateRequiredTitle": {
|
||||
"description": "Title of the mandatory update dialog shown when the installed version is too old"
|
||||
},
|
||||
"updateRequiredNotice": "This version is {count} releases behind and is no longer supported. Update to keep using the app.",
|
||||
"@updateRequiredNotice": {
|
||||
"description": "Subtitle of the mandatory update dialog; explains why the dialog cannot be dismissed",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appearanceHeroAnimations": "Hero animations",
|
||||
"@appearanceHeroAnimations": {
|
||||
"description": "Toggle for shared-element (Hero) transitions"
|
||||
},
|
||||
"appearanceHeroAnimationsSubtitle": "Fly covers between screens, e.g. when opening the player",
|
||||
"@appearanceHeroAnimationsSubtitle": {
|
||||
"description": "Subtitle for the Hero animations toggle"
|
||||
},
|
||||
"settingsConcurrentDownloads": "Concurrent downloads",
|
||||
"@settingsConcurrentDownloads": {
|
||||
"description": "Setting title - how many tracks download at the same time"
|
||||
},
|
||||
"settingsConcurrentDownloadsSubtitle": "Downloading several tracks at once is faster, but some providers may rate-limit parallel requests.",
|
||||
"@settingsConcurrentDownloadsSubtitle": {
|
||||
"description": "Subtitle explaining the concurrent downloads picker"
|
||||
},
|
||||
"concurrentDownloadsOne": "1 track at a time",
|
||||
"@concurrentDownloadsOne": {
|
||||
"description": "Concurrent downloads option - sequential"
|
||||
},
|
||||
"concurrentDownloadsCount": "Up to {count} tracks at once",
|
||||
"@concurrentDownloadsCount": {
|
||||
"description": "Concurrent downloads option - parallel",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraryPlaybackNormalization": "Volume normalization",
|
||||
"@libraryPlaybackNormalization": {
|
||||
"description": "Toggle title for ReplayGain playback normalization in the built-in player"
|
||||
},
|
||||
"libraryPlaybackNormalizationSubtitle": "Even out loudness between tracks using their ReplayGain or R128 tags, when present",
|
||||
"@libraryPlaybackNormalizationSubtitle": {
|
||||
"description": "Subtitle explaining playback volume normalization"
|
||||
},
|
||||
"cacheAudioAnalysis": "Audio analysis cache",
|
||||
"@cacheAudioAnalysis": {
|
||||
"description": "Cache item title for saved audio analysis results"
|
||||
},
|
||||
"cacheAudioAnalysisDesc": "Saved spectrograms and analysis results. Will re-analyze on next open.",
|
||||
"@cacheAudioAnalysisDesc": {
|
||||
"description": "Description of what audio analysis cache contains"
|
||||
},
|
||||
"trackConvertKeepOriginal": "Keep original file",
|
||||
"@trackConvertKeepOriginal": {
|
||||
"description": "Toggle to preserve the source file during conversion"
|
||||
},
|
||||
"trackConvertKeepOriginalDescription": "Add the converted file as a separate library entry",
|
||||
"@trackConvertKeepOriginalDescription": {
|
||||
"description": "Description for preserving the source file during conversion"
|
||||
},
|
||||
"trackConvertConfirmKeepOriginal": "Convert from {sourceFormat} to {targetFormat}?\n\nThe original file will be kept and the converted file will be added as a separate library entry.",
|
||||
"@trackConvertConfirmKeepOriginal": {
|
||||
"description": "Confirmation message when the source file will be preserved",
|
||||
"placeholders": {
|
||||
"sourceFormat": {
|
||||
"type": "String"
|
||||
},
|
||||
"targetFormat": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionBatchConvertConfirmKeepOriginal": "Convert {count} {count, plural, =1{track} other{tracks}} to {format}?\n\nOriginal files will be kept and converted files will be added as separate library entries.",
|
||||
"@selectionBatchConvertConfirmKeepOriginal": {
|
||||
"description": "Batch conversion confirmation when source files will be preserved",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
},
|
||||
"format": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadFolderAccessLostTitle": "Download folder access lost",
|
||||
"@downloadFolderAccessLostTitle": {
|
||||
"description": "Title of the warning banner shown in Files settings when the saved SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadFolderAccessLostSubtitle": "Downloads will fail until you re-select the folder",
|
||||
"@downloadFolderAccessLostSubtitle": {
|
||||
"description": "Subtitle of the warning banner shown when the saved SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadFolderReselect": "Re-select folder",
|
||||
"@downloadFolderReselect": {
|
||||
"description": "Button that reopens the folder picker to restore download folder access"
|
||||
},
|
||||
"downloadErrorSafPermissionLost": "SAF permission invalid or revoked. Please reconfigure download location in Settings.",
|
||||
"@downloadErrorSafPermissionLost": {
|
||||
"description": "Error shown on downloads that failed because the persisted Android SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadErrorFolderAccessLost": "Download folder access lost. Please re-select your download folder in Settings.",
|
||||
"@downloadErrorFolderAccessLost": {
|
||||
"description": "Error shown on downloads that failed because the iOS download folder bookmark could not be opened"
|
||||
},
|
||||
"notifVerificationRequiredTitle": "Verification required",
|
||||
"@notifVerificationRequiredTitle": {
|
||||
"description": "Notification title shown when a download needs the user to complete a verification challenge but the app is in the background"
|
||||
},
|
||||
"notifVerificationRequiredBody": "Open the app to complete verification and resume downloads",
|
||||
"@notifVerificationRequiredBody": {
|
||||
"description": "Notification body prompting the user to return to the app to solve a verification challenge"
|
||||
},
|
||||
"downloadDeduplicationWithQualityVariants": "Existing files at the selected quality will be skipped",
|
||||
"@downloadDeduplicationWithQualityVariants": {
|
||||
"description": "Deduplication subtitle when separate quality versions are allowed"
|
||||
},
|
||||
"downloadQualityVariants": "Allow different quality versions",
|
||||
"@downloadQualityVariants": {
|
||||
"description": "Setting to retain multiple quality versions of the same track"
|
||||
},
|
||||
"downloadQualityVariantsDescription": "Add the selected quality to the filename and keep each version in download history",
|
||||
"@downloadQualityVariantsDescription": {
|
||||
"description": "Description for retaining multiple quality versions"
|
||||
},
|
||||
"trackOptionDownloadQualityVariant": "Download another quality",
|
||||
"@trackOptionDownloadQualityVariant": {
|
||||
"description": "Track menu action to download another quality version"
|
||||
},
|
||||
"queueCheckingDownloadSession": "Checking download session...",
|
||||
"queueResolvingDownloadMetadata": "Resolving track metadata...",
|
||||
"queueResolvingDownloadStream": "Preparing audio stream...",
|
||||
"queueWaitingForVerification": "Waiting for verification...",
|
||||
"queueResumingAfterVerification": "Resuming after verification..."
|
||||
}
|
||||
|
||||
+151
-12
@@ -143,7 +143,7 @@
|
||||
"description": "Share button tooltip"
|
||||
},
|
||||
"@storeFilterLyrics": {
|
||||
"description": "Store filter - lyrics providers"
|
||||
"description": "Repo filter - lyrics providers"
|
||||
},
|
||||
"extensionsInstallButton": "Installer l'extension",
|
||||
"@extensionsInstallButton": {
|
||||
@@ -317,7 +317,7 @@
|
||||
},
|
||||
"optionsExtensionStore": "Référentiel d'extensions",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide store tab"
|
||||
"description": "Show/hide repo tab"
|
||||
},
|
||||
"libraryDownloadsHistoryExcluded": "{count} dans l'historique des téléchargements (exclu de la liste)",
|
||||
"@libraryDownloadsHistoryExcluded": {
|
||||
@@ -459,7 +459,7 @@
|
||||
},
|
||||
"storeFilterDownload": "Télécharger",
|
||||
"@storeFilterDownload": {
|
||||
"description": "Store filter - download providers"
|
||||
"description": "Repo filter - download providers"
|
||||
},
|
||||
"@collectionAddToPlaylist": {
|
||||
"description": "Action to add a track to user playlist"
|
||||
@@ -1151,7 +1151,7 @@
|
||||
},
|
||||
"storeFilterMetadata": "Métadonnées",
|
||||
"@storeFilterMetadata": {
|
||||
"description": "Store filter - metadata providers"
|
||||
"description": "Repo filter - metadata providers"
|
||||
},
|
||||
"shareSheetCopyLink": "Copier le lien",
|
||||
"errorRateLimitedMessage": "Trop de requêtes. Veuillez patienter quelques instants avant de relancer la recherche.",
|
||||
@@ -1732,7 +1732,7 @@
|
||||
},
|
||||
"storeFilterUtility": "Utilitaire",
|
||||
"@storeFilterUtility": {
|
||||
"description": "Store filter - utility extensions"
|
||||
"description": "Repo filter - utility extensions"
|
||||
},
|
||||
"collectionAddedToPlaylist": "Ajouté à « {playlistName} »",
|
||||
"@collectionAddedToPlaylist": {
|
||||
@@ -3328,7 +3328,7 @@
|
||||
},
|
||||
"libraryPlayback": "Lecture",
|
||||
"@storeFilterAll": {
|
||||
"description": "Store filter - all extensions"
|
||||
"description": "Repo filter - all extensions"
|
||||
},
|
||||
"aboutApp": "Application",
|
||||
"@aboutApp": {
|
||||
@@ -3348,7 +3348,7 @@
|
||||
"logIssueIspBlockingLabel": "BLOCAGE PAR LE FAI DÉTECTÉ",
|
||||
"storeFilterIntegration": "Intégration",
|
||||
"@storeFilterIntegration": {
|
||||
"description": "Store filter - integrations"
|
||||
"description": "Repo filter - integrations"
|
||||
},
|
||||
"@lyricsProvidersAtLeastOne": {
|
||||
"description": "Snackbar when user tries to disable the last enabled provider"
|
||||
@@ -3538,7 +3538,7 @@
|
||||
},
|
||||
"storeTitle": "Répertoire des extensions",
|
||||
"@storeTitle": {
|
||||
"description": "Store screen title"
|
||||
"description": "Repo screen title"
|
||||
},
|
||||
"libraryCleared": "Bibliothèque vidée",
|
||||
"@libraryCleared": {
|
||||
@@ -3853,7 +3853,7 @@
|
||||
},
|
||||
"lyricsProviderMusixmatchDesc": "La plus grande base de données de paroles (multilingue)",
|
||||
"@navStore": {
|
||||
"description": "Bottom navigation - Extension store tab"
|
||||
"description": "Bottom navigation - Extension repo tab"
|
||||
},
|
||||
"extensionPostProcessing": "Post-traitement",
|
||||
"@searchTracks": {
|
||||
@@ -4444,7 +4444,7 @@
|
||||
"appName": "SpotiFLAC Mobile",
|
||||
"storeRepoDialogCurrent": "Dépôt actuel :",
|
||||
"@optionsExtensionStoreSubtitle": {
|
||||
"description": "Subtitle for extension store toggle"
|
||||
"description": "Subtitle for extension repo toggle"
|
||||
},
|
||||
"@trackLyrics": {
|
||||
"description": "Tab title - lyrics"
|
||||
@@ -4557,7 +4557,7 @@
|
||||
"downloadUseAlbumArtistForFoldersTrackSubtitle": "Dossier nommé d'après la balise « Artiste » de la piste",
|
||||
"storeSearch": "Recherche d'extensions...",
|
||||
"@storeSearch": {
|
||||
"description": "Store search placeholder"
|
||||
"description": "Repo search placeholder"
|
||||
},
|
||||
"aboutTelegramChat": "Communauté Telegram",
|
||||
"lyricsModeBoth": "Les deux",
|
||||
@@ -5883,5 +5883,144 @@
|
||||
"extensionsSearchProviderDescription": "Choisissez le service que vous souhaitez utiliser pour rechercher des morceaux",
|
||||
"albumFolderAlbumOnly": "Album uniquement",
|
||||
"nowPlayingOpenInExternalPlayer": "Ouvrir dans un lecteur externe",
|
||||
"cueSplitButton": "Diviser en pistes"
|
||||
"cueSplitButton": "Diviser en pistes",
|
||||
"updateRequiredTitle": "Mise à jour requise",
|
||||
"@updateRequiredTitle": {
|
||||
"description": "Title of the mandatory update dialog shown when the installed version is too old"
|
||||
},
|
||||
"updateRequiredNotice": "Cette version a {count} versions de retard et n'est plus prise en charge. Effectuez la mise à jour pour continuer à utiliser l'application.",
|
||||
"@updateRequiredNotice": {
|
||||
"description": "Subtitle of the mandatory update dialog; explains why the dialog cannot be dismissed",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appearanceHeroAnimations": "Animations des héros",
|
||||
"@appearanceHeroAnimations": {
|
||||
"description": "Toggle for shared-element (Hero) transitions"
|
||||
},
|
||||
"appearanceHeroAnimationsSubtitle": "Des fenêtres contextuelles apparaissent entre les écrans, par exemple lors de l'ouverture du lecteur",
|
||||
"@appearanceHeroAnimationsSubtitle": {
|
||||
"description": "Subtitle for the Hero animations toggle"
|
||||
},
|
||||
"settingsConcurrentDownloads": "Téléchargements simultanés",
|
||||
"@settingsConcurrentDownloads": {
|
||||
"description": "Setting title - how many tracks download at the same time"
|
||||
},
|
||||
"settingsConcurrentDownloadsSubtitle": "Le téléchargement simultané de plusieurs titres est plus rapide, mais certains fournisseurs peuvent limiter le débit des requêtes parallèles.",
|
||||
"@settingsConcurrentDownloadsSubtitle": {
|
||||
"description": "Subtitle explaining the concurrent downloads picker"
|
||||
},
|
||||
"concurrentDownloadsOne": "1 titre à la fois",
|
||||
"@concurrentDownloadsOne": {
|
||||
"description": "Concurrent downloads option - sequential"
|
||||
},
|
||||
"concurrentDownloadsCount": "Jusqu'à {count} titres à la fois",
|
||||
"@concurrentDownloadsCount": {
|
||||
"description": "Concurrent downloads option - parallel",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraryPlaybackNormalization": "Normalisation du volume",
|
||||
"@libraryPlaybackNormalization": {
|
||||
"description": "Toggle title for ReplayGain playback normalization in the built-in player"
|
||||
},
|
||||
"libraryPlaybackNormalizationSubtitle": "Équilibrer le volume entre les morceaux à l'aide des balises ReplayGain ou R128, lorsqu'elles sont présentes",
|
||||
"@libraryPlaybackNormalizationSubtitle": {
|
||||
"description": "Subtitle explaining playback volume normalization"
|
||||
},
|
||||
"cacheAudioAnalysis": "Cache d'analyse audio",
|
||||
"@cacheAudioAnalysis": {
|
||||
"description": "Cache item title for saved audio analysis results"
|
||||
},
|
||||
"cacheAudioAnalysisDesc": "Spectrogrammes et résultats d'analyse enregistrés. Réanalyse prévue lors de la prochaine ouverture.",
|
||||
"@cacheAudioAnalysisDesc": {
|
||||
"description": "Description of what audio analysis cache contains"
|
||||
},
|
||||
"trackConvertKeepOriginal": "Conserver le fichier d'origine",
|
||||
"@trackConvertKeepOriginal": {
|
||||
"description": "Toggle to preserve the source file during conversion"
|
||||
},
|
||||
"trackConvertKeepOriginalDescription": "Ajoutez le fichier converti en tant qu'entrée distincte dans la bibliothèque",
|
||||
"@trackConvertKeepOriginalDescription": {
|
||||
"description": "Description for preserving the source file during conversion"
|
||||
},
|
||||
"trackConvertConfirmKeepOriginal": "Convertir du format {sourceFormat} au format {targetFormat} ?\n\nLe fichier d'origine sera conservé et le fichier converti sera ajouté en tant qu'entrée distincte dans la bibliothèque.",
|
||||
"@trackConvertConfirmKeepOriginal": {
|
||||
"description": "Confirmation message when the source file will be preserved",
|
||||
"placeholders": {
|
||||
"sourceFormat": {
|
||||
"type": "String"
|
||||
},
|
||||
"targetFormat": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionBatchConvertConfirmKeepOriginal": "Convertir {count} {count, plural, =1{titre} other{titres}} au format {format} ?\n\nLes fichiers d'origine seront conservés et les fichiers convertis seront ajoutés sous forme d'entrées distinctes dans la bibliothèque.",
|
||||
"@selectionBatchConvertConfirmKeepOriginal": {
|
||||
"description": "Batch conversion confirmation when source files will be preserved",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
},
|
||||
"format": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadFolderAccessLostTitle": "Accès au dossier de téléchargement perdu",
|
||||
"@downloadFolderAccessLostTitle": {
|
||||
"description": "Title of the warning banner shown in Files settings when the saved SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadFolderAccessLostSubtitle": "Les téléchargements échoueront tant que vous n'aurez pas resélectionné le dossier",
|
||||
"@downloadFolderAccessLostSubtitle": {
|
||||
"description": "Subtitle of the warning banner shown when the saved SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadFolderReselect": "Sélectionner à nouveau le dossier",
|
||||
"@downloadFolderReselect": {
|
||||
"description": "Button that reopens the folder picker to restore download folder access"
|
||||
},
|
||||
"downloadErrorSafPermissionLost": "Autorisation SAF non valide ou révoquée. Veuillez reconfigurer l'emplacement de téléchargement dans les Paramètres.",
|
||||
"@downloadErrorSafPermissionLost": {
|
||||
"description": "Error shown on downloads that failed because the persisted Android SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadErrorFolderAccessLost": "Accès au dossier de téléchargement perdu. Veuillez sélectionner à nouveau votre dossier de téléchargement dans les Paramètres.",
|
||||
"@downloadErrorFolderAccessLost": {
|
||||
"description": "Error shown on downloads that failed because the iOS download folder bookmark could not be opened"
|
||||
},
|
||||
"notifVerificationRequiredTitle": "Vérification requise",
|
||||
"@notifVerificationRequiredTitle": {
|
||||
"description": "Notification title shown when a download needs the user to complete a verification challenge but the app is in the background"
|
||||
},
|
||||
"notifVerificationRequiredBody": "Ouvrez l'application pour terminer la vérification et reprendre les téléchargements",
|
||||
"@notifVerificationRequiredBody": {
|
||||
"description": "Notification body prompting the user to return to the app to solve a verification challenge"
|
||||
},
|
||||
"downloadDeduplicationWithQualityVariants": "Les fichiers existants correspondant à la qualité sélectionnée seront ignorés",
|
||||
"@downloadDeduplicationWithQualityVariants": {
|
||||
"description": "Deduplication subtitle when separate quality versions are allowed"
|
||||
},
|
||||
"downloadQualityVariants": "Autoriser différentes versions de qualité",
|
||||
"@downloadQualityVariants": {
|
||||
"description": "Setting to retain multiple quality versions of the same track"
|
||||
},
|
||||
"downloadQualityVariantsDescription": "Ajouter la qualité sélectionnée au nom du fichier et conserver chaque version dans l'historique des téléchargements",
|
||||
"@downloadQualityVariantsDescription": {
|
||||
"description": "Description for retaining multiple quality versions"
|
||||
},
|
||||
"trackOptionDownloadQualityVariant": "Télécharger une autre version de qualité",
|
||||
"@trackOptionDownloadQualityVariant": {
|
||||
"description": "Track menu action to download another quality version"
|
||||
},
|
||||
"queueCheckingDownloadSession": "Vérification de la session de téléchargement...",
|
||||
"queueResolvingDownloadMetadata": "Récupération des métadonnées du morceau...",
|
||||
"queueResolvingDownloadStream": "Préparation du flux audio...",
|
||||
"queueWaitingForVerification": "En attente de vérification...",
|
||||
"queueResumingAfterVerification": "Reprise après vérification..."
|
||||
}
|
||||
|
||||
+99
-13
@@ -143,7 +143,7 @@
|
||||
"description": "Share button tooltip"
|
||||
},
|
||||
"@storeFilterLyrics": {
|
||||
"description": "Store filter - lyrics providers"
|
||||
"description": "Repo filter - lyrics providers"
|
||||
},
|
||||
"extensionsInstallButton": "Pasang Ekstensi",
|
||||
"@extensionsInstallButton": {
|
||||
@@ -317,7 +317,7 @@
|
||||
},
|
||||
"optionsExtensionStore": "Repositori Ekstensi",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide store tab"
|
||||
"description": "Show/hide repo tab"
|
||||
},
|
||||
"libraryDownloadsHistoryExcluded": "{count} from Downloads history (excluded from list)",
|
||||
"@libraryDownloadsHistoryExcluded": {
|
||||
@@ -459,7 +459,7 @@
|
||||
},
|
||||
"storeFilterDownload": "Unduhan",
|
||||
"@storeFilterDownload": {
|
||||
"description": "Store filter - download providers"
|
||||
"description": "Repo filter - download providers"
|
||||
},
|
||||
"@collectionAddToPlaylist": {
|
||||
"description": "Action to add a track to user playlist"
|
||||
@@ -1151,7 +1151,7 @@
|
||||
},
|
||||
"storeFilterMetadata": "Metadata",
|
||||
"@storeFilterMetadata": {
|
||||
"description": "Store filter - metadata providers"
|
||||
"description": "Repo filter - metadata providers"
|
||||
},
|
||||
"shareSheetCopyLink": "Copy Link",
|
||||
"errorRateLimitedMessage": "Terlalu banyak permintaan. Harap tunggu sebentar sebelum mencari lagi.",
|
||||
@@ -1732,7 +1732,7 @@
|
||||
},
|
||||
"storeFilterUtility": "Utilitas",
|
||||
"@storeFilterUtility": {
|
||||
"description": "Store filter - utility extensions"
|
||||
"description": "Repo filter - utility extensions"
|
||||
},
|
||||
"collectionAddedToPlaylist": "Added to \"{playlistName}\"",
|
||||
"@collectionAddedToPlaylist": {
|
||||
@@ -1808,7 +1808,7 @@
|
||||
"@regionCountryDE": {
|
||||
"description": "Country name for SongLink region picker"
|
||||
},
|
||||
"optionsAutoFallback": "Cadangan Otomatis",
|
||||
"optionsAutoFallback": "Layanan Cadangan",
|
||||
"@optionsAutoFallback": {
|
||||
"description": "Auto-retry with other services"
|
||||
},
|
||||
@@ -3328,7 +3328,7 @@
|
||||
},
|
||||
"libraryPlayback": "Playback",
|
||||
"@storeFilterAll": {
|
||||
"description": "Store filter - all extensions"
|
||||
"description": "Repo filter - all extensions"
|
||||
},
|
||||
"aboutApp": "Aplikasi",
|
||||
"@aboutApp": {
|
||||
@@ -3348,7 +3348,7 @@
|
||||
"logIssueIspBlockingLabel": "ISP BLOCKING DETECTED",
|
||||
"storeFilterIntegration": "Integrasi",
|
||||
"@storeFilterIntegration": {
|
||||
"description": "Store filter - integrations"
|
||||
"description": "Repo filter - integrations"
|
||||
},
|
||||
"@lyricsProvidersAtLeastOne": {
|
||||
"description": "Snackbar when user tries to disable the last enabled provider"
|
||||
@@ -3538,7 +3538,7 @@
|
||||
},
|
||||
"storeTitle": "Repositori Ekstensi",
|
||||
"@storeTitle": {
|
||||
"description": "Store screen title"
|
||||
"description": "Repo screen title"
|
||||
},
|
||||
"libraryCleared": "Library cleared",
|
||||
"@libraryCleared": {
|
||||
@@ -3853,7 +3853,7 @@
|
||||
},
|
||||
"lyricsProviderMusixmatchDesc": "Largest lyrics database (multi-language)",
|
||||
"@navStore": {
|
||||
"description": "Bottom navigation - Extension store tab"
|
||||
"description": "Bottom navigation - Extension repo tab"
|
||||
},
|
||||
"extensionPostProcessing": "Pasca-Pemrosesan",
|
||||
"@searchTracks": {
|
||||
@@ -4444,7 +4444,7 @@
|
||||
"appName": "SpotiFLAC Mobile",
|
||||
"storeRepoDialogCurrent": "Repositori saat ini:",
|
||||
"@optionsExtensionStoreSubtitle": {
|
||||
"description": "Subtitle for extension store toggle"
|
||||
"description": "Subtitle for extension repo toggle"
|
||||
},
|
||||
"@trackLyrics": {
|
||||
"description": "Tab title - lyrics"
|
||||
@@ -4557,7 +4557,7 @@
|
||||
"downloadUseAlbumArtistForFoldersTrackSubtitle": "Folder named after Track Artist tag",
|
||||
"storeSearch": "Cari ekstensi...",
|
||||
"@storeSearch": {
|
||||
"description": "Store search placeholder"
|
||||
"description": "Repo search placeholder"
|
||||
},
|
||||
"aboutTelegramChat": "Komunitas Telegram",
|
||||
"lyricsModeBoth": "Keduanya",
|
||||
@@ -4978,7 +4978,7 @@
|
||||
"@cueSplitButton": {
|
||||
"description": "Button text to start CUE splitting"
|
||||
},
|
||||
"appearanceHistoryView": "Tampilan Riwayat",
|
||||
"appearanceHistoryView": "Gaya Tampilan Histori",
|
||||
"audioAnalysisSampleRate": "Sample Rate",
|
||||
"@settingsCache": {
|
||||
"description": "Settings menu item - cache management"
|
||||
@@ -5936,5 +5936,91 @@
|
||||
"downloadDeduplicationWithQualityVariants": "File yang sudah ada pada kualitas yang dipilih akan dilewati",
|
||||
"@downloadDeduplicationWithQualityVariants": {
|
||||
"description": "Subtitle deduplikasi ketika versi kualitas terpisah diizinkan"
|
||||
},
|
||||
"updateRequiredTitle": "Update required",
|
||||
"@updateRequiredTitle": {
|
||||
"description": "Title of the mandatory update dialog shown when the installed version is too old"
|
||||
},
|
||||
"updateRequiredNotice": "This version is {count} releases behind and is no longer supported. Update to keep using the app.",
|
||||
"@updateRequiredNotice": {
|
||||
"description": "Subtitle of the mandatory update dialog; explains why the dialog cannot be dismissed",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appearanceHeroAnimations": "Hero animations",
|
||||
"@appearanceHeroAnimations": {
|
||||
"description": "Toggle for shared-element (Hero) transitions"
|
||||
},
|
||||
"appearanceHeroAnimationsSubtitle": "Fly covers between screens, e.g. when opening the player",
|
||||
"@appearanceHeroAnimationsSubtitle": {
|
||||
"description": "Subtitle for the Hero animations toggle"
|
||||
},
|
||||
"settingsConcurrentDownloads": "Concurrent downloads",
|
||||
"@settingsConcurrentDownloads": {
|
||||
"description": "Setting title - how many tracks download at the same time"
|
||||
},
|
||||
"settingsConcurrentDownloadsSubtitle": "Downloading several tracks at once is faster, but some providers may rate-limit parallel requests.",
|
||||
"@settingsConcurrentDownloadsSubtitle": {
|
||||
"description": "Subtitle explaining the concurrent downloads picker"
|
||||
},
|
||||
"concurrentDownloadsOne": "1 track at a time",
|
||||
"@concurrentDownloadsOne": {
|
||||
"description": "Concurrent downloads option - sequential"
|
||||
},
|
||||
"concurrentDownloadsCount": "Up to {count} tracks at once",
|
||||
"@concurrentDownloadsCount": {
|
||||
"description": "Concurrent downloads option - parallel",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraryPlaybackNormalization": "Volume normalization",
|
||||
"@libraryPlaybackNormalization": {
|
||||
"description": "Toggle title for ReplayGain playback normalization in the built-in player"
|
||||
},
|
||||
"libraryPlaybackNormalizationSubtitle": "Even out loudness between tracks using their ReplayGain or R128 tags, when present",
|
||||
"@libraryPlaybackNormalizationSubtitle": {
|
||||
"description": "Subtitle explaining playback volume normalization"
|
||||
},
|
||||
"cacheAudioAnalysis": "Audio analysis cache",
|
||||
"@cacheAudioAnalysis": {
|
||||
"description": "Cache item title for saved audio analysis results"
|
||||
},
|
||||
"cacheAudioAnalysisDesc": "Saved spectrograms and analysis results. Will re-analyze on next open.",
|
||||
"@cacheAudioAnalysisDesc": {
|
||||
"description": "Description of what audio analysis cache contains"
|
||||
},
|
||||
"downloadFolderAccessLostTitle": "Download folder access lost",
|
||||
"@downloadFolderAccessLostTitle": {
|
||||
"description": "Title of the warning banner shown in Files settings when the saved SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadFolderAccessLostSubtitle": "Downloads will fail until you re-select the folder",
|
||||
"@downloadFolderAccessLostSubtitle": {
|
||||
"description": "Subtitle of the warning banner shown when the saved SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadFolderReselect": "Re-select folder",
|
||||
"@downloadFolderReselect": {
|
||||
"description": "Button that reopens the folder picker to restore download folder access"
|
||||
},
|
||||
"downloadErrorSafPermissionLost": "SAF permission invalid or revoked. Please reconfigure download location in Settings.",
|
||||
"@downloadErrorSafPermissionLost": {
|
||||
"description": "Error shown on downloads that failed because the persisted Android SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadErrorFolderAccessLost": "Download folder access lost. Please re-select your download folder in Settings.",
|
||||
"@downloadErrorFolderAccessLost": {
|
||||
"description": "Error shown on downloads that failed because the iOS download folder bookmark could not be opened"
|
||||
},
|
||||
"notifVerificationRequiredTitle": "Verification required",
|
||||
"@notifVerificationRequiredTitle": {
|
||||
"description": "Notification title shown when a download needs the user to complete a verification challenge but the app is in the background"
|
||||
},
|
||||
"notifVerificationRequiredBody": "Open the app to complete verification and resume downloads",
|
||||
"@notifVerificationRequiredBody": {
|
||||
"description": "Notification body prompting the user to return to the app to solve a verification challenge"
|
||||
}
|
||||
}
|
||||
|
||||
+151
-12
@@ -143,7 +143,7 @@
|
||||
"description": "Share button tooltip"
|
||||
},
|
||||
"@storeFilterLyrics": {
|
||||
"description": "Store filter - lyrics providers"
|
||||
"description": "Repo filter - lyrics providers"
|
||||
},
|
||||
"extensionsInstallButton": "拡張をインストール",
|
||||
"@extensionsInstallButton": {
|
||||
@@ -317,7 +317,7 @@
|
||||
},
|
||||
"optionsExtensionStore": "Extension Repo",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide store tab"
|
||||
"description": "Show/hide repo tab"
|
||||
},
|
||||
"libraryDownloadsHistoryExcluded": "{count} from Downloads history (excluded from list)",
|
||||
"@libraryDownloadsHistoryExcluded": {
|
||||
@@ -459,7 +459,7 @@
|
||||
},
|
||||
"storeFilterDownload": "ダウンロード",
|
||||
"@storeFilterDownload": {
|
||||
"description": "Store filter - download providers"
|
||||
"description": "Repo filter - download providers"
|
||||
},
|
||||
"@collectionAddToPlaylist": {
|
||||
"description": "Action to add a track to user playlist"
|
||||
@@ -1151,7 +1151,7 @@
|
||||
},
|
||||
"storeFilterMetadata": "メタデータ",
|
||||
"@storeFilterMetadata": {
|
||||
"description": "Store filter - metadata providers"
|
||||
"description": "Repo filter - metadata providers"
|
||||
},
|
||||
"shareSheetCopyLink": "Copy Link",
|
||||
"errorRateLimitedMessage": "Too many requests. Please wait a moment before searching again.",
|
||||
@@ -1732,7 +1732,7 @@
|
||||
},
|
||||
"storeFilterUtility": "ユーティリティ",
|
||||
"@storeFilterUtility": {
|
||||
"description": "Store filter - utility extensions"
|
||||
"description": "Repo filter - utility extensions"
|
||||
},
|
||||
"collectionAddedToPlaylist": "Added to \"{playlistName}\"",
|
||||
"@collectionAddedToPlaylist": {
|
||||
@@ -3328,7 +3328,7 @@
|
||||
},
|
||||
"libraryPlayback": "Playback",
|
||||
"@storeFilterAll": {
|
||||
"description": "Store filter - all extensions"
|
||||
"description": "Repo filter - all extensions"
|
||||
},
|
||||
"aboutApp": "アプリ",
|
||||
"@aboutApp": {
|
||||
@@ -3348,7 +3348,7 @@
|
||||
"logIssueIspBlockingLabel": "ISP BLOCKING DETECTED",
|
||||
"storeFilterIntegration": "統合",
|
||||
"@storeFilterIntegration": {
|
||||
"description": "Store filter - integrations"
|
||||
"description": "Repo filter - integrations"
|
||||
},
|
||||
"@lyricsProvidersAtLeastOne": {
|
||||
"description": "Snackbar when user tries to disable the last enabled provider"
|
||||
@@ -3538,7 +3538,7 @@
|
||||
},
|
||||
"storeTitle": "Extension Repo",
|
||||
"@storeTitle": {
|
||||
"description": "Store screen title"
|
||||
"description": "Repo screen title"
|
||||
},
|
||||
"libraryCleared": "Library cleared",
|
||||
"@libraryCleared": {
|
||||
@@ -3853,7 +3853,7 @@
|
||||
},
|
||||
"lyricsProviderMusixmatchDesc": "Largest lyrics database (multi-language)",
|
||||
"@navStore": {
|
||||
"description": "Bottom navigation - Extension store tab"
|
||||
"description": "Bottom navigation - Extension repo tab"
|
||||
},
|
||||
"extensionPostProcessing": "ポストプロセス",
|
||||
"@searchTracks": {
|
||||
@@ -4444,7 +4444,7 @@
|
||||
"appName": "SpotiFLAC Mobile",
|
||||
"storeRepoDialogCurrent": "Current repository:",
|
||||
"@optionsExtensionStoreSubtitle": {
|
||||
"description": "Subtitle for extension store toggle"
|
||||
"description": "Subtitle for extension repo toggle"
|
||||
},
|
||||
"@trackLyrics": {
|
||||
"description": "Tab title - lyrics"
|
||||
@@ -4557,7 +4557,7 @@
|
||||
"downloadUseAlbumArtistForFoldersTrackSubtitle": "Folder named after Track Artist tag",
|
||||
"storeSearch": "拡張を検索...",
|
||||
"@storeSearch": {
|
||||
"description": "Store search placeholder"
|
||||
"description": "Repo search placeholder"
|
||||
},
|
||||
"aboutTelegramChat": "Telegram コミュニティ",
|
||||
"lyricsModeBoth": "両方",
|
||||
@@ -5883,5 +5883,144 @@
|
||||
"extensionsSearchProviderDescription": "トラックの検索に使用するサービスを選択してください",
|
||||
"albumFolderAlbumOnly": "アルバムのみ",
|
||||
"nowPlayingOpenInExternalPlayer": "Open in external player",
|
||||
"cueSplitButton": "Split into Tracks"
|
||||
"cueSplitButton": "Split into Tracks",
|
||||
"updateRequiredTitle": "Update required",
|
||||
"@updateRequiredTitle": {
|
||||
"description": "Title of the mandatory update dialog shown when the installed version is too old"
|
||||
},
|
||||
"updateRequiredNotice": "This version is {count} releases behind and is no longer supported. Update to keep using the app.",
|
||||
"@updateRequiredNotice": {
|
||||
"description": "Subtitle of the mandatory update dialog; explains why the dialog cannot be dismissed",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appearanceHeroAnimations": "Hero animations",
|
||||
"@appearanceHeroAnimations": {
|
||||
"description": "Toggle for shared-element (Hero) transitions"
|
||||
},
|
||||
"appearanceHeroAnimationsSubtitle": "Fly covers between screens, e.g. when opening the player",
|
||||
"@appearanceHeroAnimationsSubtitle": {
|
||||
"description": "Subtitle for the Hero animations toggle"
|
||||
},
|
||||
"settingsConcurrentDownloads": "Concurrent downloads",
|
||||
"@settingsConcurrentDownloads": {
|
||||
"description": "Setting title - how many tracks download at the same time"
|
||||
},
|
||||
"settingsConcurrentDownloadsSubtitle": "Downloading several tracks at once is faster, but some providers may rate-limit parallel requests.",
|
||||
"@settingsConcurrentDownloadsSubtitle": {
|
||||
"description": "Subtitle explaining the concurrent downloads picker"
|
||||
},
|
||||
"concurrentDownloadsOne": "1 track at a time",
|
||||
"@concurrentDownloadsOne": {
|
||||
"description": "Concurrent downloads option - sequential"
|
||||
},
|
||||
"concurrentDownloadsCount": "Up to {count} tracks at once",
|
||||
"@concurrentDownloadsCount": {
|
||||
"description": "Concurrent downloads option - parallel",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraryPlaybackNormalization": "Volume normalization",
|
||||
"@libraryPlaybackNormalization": {
|
||||
"description": "Toggle title for ReplayGain playback normalization in the built-in player"
|
||||
},
|
||||
"libraryPlaybackNormalizationSubtitle": "Even out loudness between tracks using their ReplayGain or R128 tags, when present",
|
||||
"@libraryPlaybackNormalizationSubtitle": {
|
||||
"description": "Subtitle explaining playback volume normalization"
|
||||
},
|
||||
"cacheAudioAnalysis": "Audio analysis cache",
|
||||
"@cacheAudioAnalysis": {
|
||||
"description": "Cache item title for saved audio analysis results"
|
||||
},
|
||||
"cacheAudioAnalysisDesc": "Saved spectrograms and analysis results. Will re-analyze on next open.",
|
||||
"@cacheAudioAnalysisDesc": {
|
||||
"description": "Description of what audio analysis cache contains"
|
||||
},
|
||||
"trackConvertKeepOriginal": "Keep original file",
|
||||
"@trackConvertKeepOriginal": {
|
||||
"description": "Toggle to preserve the source file during conversion"
|
||||
},
|
||||
"trackConvertKeepOriginalDescription": "Add the converted file as a separate library entry",
|
||||
"@trackConvertKeepOriginalDescription": {
|
||||
"description": "Description for preserving the source file during conversion"
|
||||
},
|
||||
"trackConvertConfirmKeepOriginal": "Convert from {sourceFormat} to {targetFormat}?\n\nThe original file will be kept and the converted file will be added as a separate library entry.",
|
||||
"@trackConvertConfirmKeepOriginal": {
|
||||
"description": "Confirmation message when the source file will be preserved",
|
||||
"placeholders": {
|
||||
"sourceFormat": {
|
||||
"type": "String"
|
||||
},
|
||||
"targetFormat": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionBatchConvertConfirmKeepOriginal": "Convert {count} {count, plural, =1{track} other{tracks}} to {format}?\n\nOriginal files will be kept and converted files will be added as separate library entries.",
|
||||
"@selectionBatchConvertConfirmKeepOriginal": {
|
||||
"description": "Batch conversion confirmation when source files will be preserved",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
},
|
||||
"format": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadFolderAccessLostTitle": "Download folder access lost",
|
||||
"@downloadFolderAccessLostTitle": {
|
||||
"description": "Title of the warning banner shown in Files settings when the saved SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadFolderAccessLostSubtitle": "Downloads will fail until you re-select the folder",
|
||||
"@downloadFolderAccessLostSubtitle": {
|
||||
"description": "Subtitle of the warning banner shown when the saved SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadFolderReselect": "Re-select folder",
|
||||
"@downloadFolderReselect": {
|
||||
"description": "Button that reopens the folder picker to restore download folder access"
|
||||
},
|
||||
"downloadErrorSafPermissionLost": "SAF permission invalid or revoked. Please reconfigure download location in Settings.",
|
||||
"@downloadErrorSafPermissionLost": {
|
||||
"description": "Error shown on downloads that failed because the persisted Android SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadErrorFolderAccessLost": "Download folder access lost. Please re-select your download folder in Settings.",
|
||||
"@downloadErrorFolderAccessLost": {
|
||||
"description": "Error shown on downloads that failed because the iOS download folder bookmark could not be opened"
|
||||
},
|
||||
"notifVerificationRequiredTitle": "Verification required",
|
||||
"@notifVerificationRequiredTitle": {
|
||||
"description": "Notification title shown when a download needs the user to complete a verification challenge but the app is in the background"
|
||||
},
|
||||
"notifVerificationRequiredBody": "Open the app to complete verification and resume downloads",
|
||||
"@notifVerificationRequiredBody": {
|
||||
"description": "Notification body prompting the user to return to the app to solve a verification challenge"
|
||||
},
|
||||
"downloadDeduplicationWithQualityVariants": "Existing files at the selected quality will be skipped",
|
||||
"@downloadDeduplicationWithQualityVariants": {
|
||||
"description": "Deduplication subtitle when separate quality versions are allowed"
|
||||
},
|
||||
"downloadQualityVariants": "Allow different quality versions",
|
||||
"@downloadQualityVariants": {
|
||||
"description": "Setting to retain multiple quality versions of the same track"
|
||||
},
|
||||
"downloadQualityVariantsDescription": "Add the selected quality to the filename and keep each version in download history",
|
||||
"@downloadQualityVariantsDescription": {
|
||||
"description": "Description for retaining multiple quality versions"
|
||||
},
|
||||
"trackOptionDownloadQualityVariant": "Download another quality",
|
||||
"@trackOptionDownloadQualityVariant": {
|
||||
"description": "Track menu action to download another quality version"
|
||||
},
|
||||
"queueCheckingDownloadSession": "Checking download session...",
|
||||
"queueResolvingDownloadMetadata": "Resolving track metadata...",
|
||||
"queueResolvingDownloadStream": "Preparing audio stream...",
|
||||
"queueWaitingForVerification": "Waiting for verification...",
|
||||
"queueResumingAfterVerification": "Resuming after verification..."
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+157
-18
@@ -143,7 +143,7 @@
|
||||
"description": "Share button tooltip"
|
||||
},
|
||||
"@storeFilterLyrics": {
|
||||
"description": "Store filter - lyrics providers"
|
||||
"description": "Repo filter - lyrics providers"
|
||||
},
|
||||
"extensionsInstallButton": "Instalar Extensão",
|
||||
"@extensionsInstallButton": {
|
||||
@@ -317,7 +317,7 @@
|
||||
},
|
||||
"optionsExtensionStore": "Repositório de extensões",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide store tab"
|
||||
"description": "Show/hide repo tab"
|
||||
},
|
||||
"libraryDownloadsHistoryExcluded": "{count} from Downloads history (excluded from list)",
|
||||
"@libraryDownloadsHistoryExcluded": {
|
||||
@@ -459,7 +459,7 @@
|
||||
},
|
||||
"storeFilterDownload": "Baixar",
|
||||
"@storeFilterDownload": {
|
||||
"description": "Store filter - download providers"
|
||||
"description": "Repo filter - download providers"
|
||||
},
|
||||
"@collectionAddToPlaylist": {
|
||||
"description": "Action to add a track to user playlist"
|
||||
@@ -613,7 +613,7 @@
|
||||
"@logClearLogsTitle": {
|
||||
"description": "Clear logs dialog title"
|
||||
},
|
||||
"storageModeSafSubtitle": "Pick any folder, including SD card",
|
||||
"storageModeSafSubtitle": "Escolha qualquer pasta, incluindo o cartão SD",
|
||||
"@storageModeSafSubtitle": {
|
||||
"description": "Subtitle for SAF storage mode"
|
||||
},
|
||||
@@ -1151,7 +1151,7 @@
|
||||
},
|
||||
"storeFilterMetadata": "Metadados",
|
||||
"@storeFilterMetadata": {
|
||||
"description": "Store filter - metadata providers"
|
||||
"description": "Repo filter - metadata providers"
|
||||
},
|
||||
"shareSheetCopyLink": "Copy Link",
|
||||
"errorRateLimitedMessage": "Muitas solicitações. Por favor, aguarde um momento antes de pesquisar novamente.",
|
||||
@@ -1575,7 +1575,7 @@
|
||||
"@artistOptionRemoveFromFavorites": {
|
||||
"description": "Action label - remove artist from favorite artists"
|
||||
},
|
||||
"collectionPlaylistEmptyTitle": "Playlist is empty",
|
||||
"collectionPlaylistEmptyTitle": "A lista de reprodução está vazia",
|
||||
"@collectionPlaylistEmptyTitle": {
|
||||
"description": "Playlist empty state title"
|
||||
},
|
||||
@@ -1732,7 +1732,7 @@
|
||||
},
|
||||
"storeFilterUtility": "Utilidade",
|
||||
"@storeFilterUtility": {
|
||||
"description": "Store filter - utility extensions"
|
||||
"description": "Repo filter - utility extensions"
|
||||
},
|
||||
"collectionAddedToPlaylist": "Added to \"{playlistName}\"",
|
||||
"@collectionAddedToPlaylist": {
|
||||
@@ -3328,7 +3328,7 @@
|
||||
},
|
||||
"libraryPlayback": "Playback",
|
||||
"@storeFilterAll": {
|
||||
"description": "Store filter - all extensions"
|
||||
"description": "Repo filter - all extensions"
|
||||
},
|
||||
"aboutApp": "Aplicativo",
|
||||
"@aboutApp": {
|
||||
@@ -3348,7 +3348,7 @@
|
||||
"logIssueIspBlockingLabel": "ISP BLOCKING DETECTED",
|
||||
"storeFilterIntegration": "Integração",
|
||||
"@storeFilterIntegration": {
|
||||
"description": "Store filter - integrations"
|
||||
"description": "Repo filter - integrations"
|
||||
},
|
||||
"@lyricsProvidersAtLeastOne": {
|
||||
"description": "Snackbar when user tries to disable the last enabled provider"
|
||||
@@ -3471,7 +3471,7 @@
|
||||
"@recentTypeArtist": {
|
||||
"description": "Recent access item type - artist"
|
||||
},
|
||||
"collectionPlaylistEmptySubtitle": "Long-press + on any track to add it here",
|
||||
"collectionPlaylistEmptySubtitle": "",
|
||||
"artistCompilations": "Compilações",
|
||||
"@artistCompilations": {
|
||||
"description": "Section header for compilations"
|
||||
@@ -3538,7 +3538,7 @@
|
||||
},
|
||||
"storeTitle": "Repositório de extensões",
|
||||
"@storeTitle": {
|
||||
"description": "Store screen title"
|
||||
"description": "Repo screen title"
|
||||
},
|
||||
"libraryCleared": "Library cleared",
|
||||
"@libraryCleared": {
|
||||
@@ -3853,7 +3853,7 @@
|
||||
},
|
||||
"lyricsProviderMusixmatchDesc": "Largest lyrics database (multi-language)",
|
||||
"@navStore": {
|
||||
"description": "Bottom navigation - Extension store tab"
|
||||
"description": "Bottom navigation - Extension repo tab"
|
||||
},
|
||||
"extensionPostProcessing": "Pós-Processamento",
|
||||
"@searchTracks": {
|
||||
@@ -4167,7 +4167,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"notifLibraryScanCancelled": "Library scan cancelled",
|
||||
"notifLibraryScanCancelled": "Escaneamento de biblioteca cancelado",
|
||||
"@notifLibraryScanCancelled": {
|
||||
"description": "Notification title when library scan is cancelled by the user"
|
||||
},
|
||||
@@ -4444,7 +4444,7 @@
|
||||
"appName": "SpotiFLAC Mobile",
|
||||
"storeRepoDialogCurrent": "Repositório atual:",
|
||||
"@optionsExtensionStoreSubtitle": {
|
||||
"description": "Subtitle for extension store toggle"
|
||||
"description": "Subtitle for extension repo toggle"
|
||||
},
|
||||
"@trackLyrics": {
|
||||
"description": "Tab title - lyrics"
|
||||
@@ -4557,7 +4557,7 @@
|
||||
"downloadUseAlbumArtistForFoldersTrackSubtitle": "Folder named after Track Artist tag",
|
||||
"storeSearch": "Pesquisar extensões...",
|
||||
"@storeSearch": {
|
||||
"description": "Store search placeholder"
|
||||
"description": "Repo search placeholder"
|
||||
},
|
||||
"aboutTelegramChat": "Comunidade do Telegram",
|
||||
"lyricsModeBoth": "Ambos",
|
||||
@@ -5013,7 +5013,7 @@
|
||||
"@cueSplitNoAudioFile": {
|
||||
"description": "Error when CUE audio file is missing"
|
||||
},
|
||||
"notifLibraryScanStopped": "Scan stopped before completion.",
|
||||
"notifLibraryScanStopped": "",
|
||||
"@settingsMetadata": {
|
||||
"description": "Settings menu item - metadata settings"
|
||||
},
|
||||
@@ -5716,7 +5716,7 @@
|
||||
"logIssueTrackNotFoundLabel": "TRACK NOT FOUND",
|
||||
"extensionVerificationHelpTitleManual": "Open verification manually",
|
||||
"dialogDiscard": "Descartar",
|
||||
"storageModeSaf": "Custom Folder (SAF)",
|
||||
"storageModeSaf": "",
|
||||
"errorRateLimited": "Tráfico Limitado (Rate Limited)",
|
||||
"downloadSelectQuality": "Selecionar Qualidade",
|
||||
"dialogDownloadPlaylistsMessage": "Download {trackCount} {trackCount, plural, =1{track} other{tracks}} from {playlistCount} {playlistCount, plural, =1{playlist} other{playlists}}?",
|
||||
@@ -5883,5 +5883,144 @@
|
||||
"extensionsSearchProviderDescription": "Escolha qual serviço utilizar para pesquisar faixas",
|
||||
"albumFolderAlbumOnly": "Somente Álbum",
|
||||
"nowPlayingOpenInExternalPlayer": "Open in external player",
|
||||
"cueSplitButton": "Split into Tracks"
|
||||
"cueSplitButton": "Split into Tracks",
|
||||
"updateRequiredTitle": "Update required",
|
||||
"@updateRequiredTitle": {
|
||||
"description": "Title of the mandatory update dialog shown when the installed version is too old"
|
||||
},
|
||||
"updateRequiredNotice": "This version is {count} releases behind and is no longer supported. Update to keep using the app.",
|
||||
"@updateRequiredNotice": {
|
||||
"description": "Subtitle of the mandatory update dialog; explains why the dialog cannot be dismissed",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appearanceHeroAnimations": "Hero animations",
|
||||
"@appearanceHeroAnimations": {
|
||||
"description": "Toggle for shared-element (Hero) transitions"
|
||||
},
|
||||
"appearanceHeroAnimationsSubtitle": "Fly covers between screens, e.g. when opening the player",
|
||||
"@appearanceHeroAnimationsSubtitle": {
|
||||
"description": "Subtitle for the Hero animations toggle"
|
||||
},
|
||||
"settingsConcurrentDownloads": "Concurrent downloads",
|
||||
"@settingsConcurrentDownloads": {
|
||||
"description": "Setting title - how many tracks download at the same time"
|
||||
},
|
||||
"settingsConcurrentDownloadsSubtitle": "Downloading several tracks at once is faster, but some providers may rate-limit parallel requests.",
|
||||
"@settingsConcurrentDownloadsSubtitle": {
|
||||
"description": "Subtitle explaining the concurrent downloads picker"
|
||||
},
|
||||
"concurrentDownloadsOne": "1 track at a time",
|
||||
"@concurrentDownloadsOne": {
|
||||
"description": "Concurrent downloads option - sequential"
|
||||
},
|
||||
"concurrentDownloadsCount": "Up to {count} tracks at once",
|
||||
"@concurrentDownloadsCount": {
|
||||
"description": "Concurrent downloads option - parallel",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraryPlaybackNormalization": "Volume normalization",
|
||||
"@libraryPlaybackNormalization": {
|
||||
"description": "Toggle title for ReplayGain playback normalization in the built-in player"
|
||||
},
|
||||
"libraryPlaybackNormalizationSubtitle": "Even out loudness between tracks using their ReplayGain or R128 tags, when present",
|
||||
"@libraryPlaybackNormalizationSubtitle": {
|
||||
"description": "Subtitle explaining playback volume normalization"
|
||||
},
|
||||
"cacheAudioAnalysis": "Audio analysis cache",
|
||||
"@cacheAudioAnalysis": {
|
||||
"description": "Cache item title for saved audio analysis results"
|
||||
},
|
||||
"cacheAudioAnalysisDesc": "Saved spectrograms and analysis results. Will re-analyze on next open.",
|
||||
"@cacheAudioAnalysisDesc": {
|
||||
"description": "Description of what audio analysis cache contains"
|
||||
},
|
||||
"trackConvertKeepOriginal": "Keep original file",
|
||||
"@trackConvertKeepOriginal": {
|
||||
"description": "Toggle to preserve the source file during conversion"
|
||||
},
|
||||
"trackConvertKeepOriginalDescription": "Add the converted file as a separate library entry",
|
||||
"@trackConvertKeepOriginalDescription": {
|
||||
"description": "Description for preserving the source file during conversion"
|
||||
},
|
||||
"trackConvertConfirmKeepOriginal": "Convert from {sourceFormat} to {targetFormat}?\n\nThe original file will be kept and the converted file will be added as a separate library entry.",
|
||||
"@trackConvertConfirmKeepOriginal": {
|
||||
"description": "Confirmation message when the source file will be preserved",
|
||||
"placeholders": {
|
||||
"sourceFormat": {
|
||||
"type": "String"
|
||||
},
|
||||
"targetFormat": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionBatchConvertConfirmKeepOriginal": "Convert {count} {count, plural, =1{track} other{tracks}} to {format}?\n\nOriginal files will be kept and converted files will be added as separate library entries.",
|
||||
"@selectionBatchConvertConfirmKeepOriginal": {
|
||||
"description": "Batch conversion confirmation when source files will be preserved",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
},
|
||||
"format": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadFolderAccessLostTitle": "Download folder access lost",
|
||||
"@downloadFolderAccessLostTitle": {
|
||||
"description": "Title of the warning banner shown in Files settings when the saved SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadFolderAccessLostSubtitle": "Downloads will fail until you re-select the folder",
|
||||
"@downloadFolderAccessLostSubtitle": {
|
||||
"description": "Subtitle of the warning banner shown when the saved SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadFolderReselect": "Re-select folder",
|
||||
"@downloadFolderReselect": {
|
||||
"description": "Button that reopens the folder picker to restore download folder access"
|
||||
},
|
||||
"downloadErrorSafPermissionLost": "SAF permission invalid or revoked. Please reconfigure download location in Settings.",
|
||||
"@downloadErrorSafPermissionLost": {
|
||||
"description": "Error shown on downloads that failed because the persisted Android SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadErrorFolderAccessLost": "Download folder access lost. Please re-select your download folder in Settings.",
|
||||
"@downloadErrorFolderAccessLost": {
|
||||
"description": "Error shown on downloads that failed because the iOS download folder bookmark could not be opened"
|
||||
},
|
||||
"notifVerificationRequiredTitle": "Verification required",
|
||||
"@notifVerificationRequiredTitle": {
|
||||
"description": "Notification title shown when a download needs the user to complete a verification challenge but the app is in the background"
|
||||
},
|
||||
"notifVerificationRequiredBody": "Open the app to complete verification and resume downloads",
|
||||
"@notifVerificationRequiredBody": {
|
||||
"description": "Notification body prompting the user to return to the app to solve a verification challenge"
|
||||
},
|
||||
"downloadDeduplicationWithQualityVariants": "Existing files at the selected quality will be skipped",
|
||||
"@downloadDeduplicationWithQualityVariants": {
|
||||
"description": "Deduplication subtitle when separate quality versions are allowed"
|
||||
},
|
||||
"downloadQualityVariants": "Allow different quality versions",
|
||||
"@downloadQualityVariants": {
|
||||
"description": "Setting to retain multiple quality versions of the same track"
|
||||
},
|
||||
"downloadQualityVariantsDescription": "Add the selected quality to the filename and keep each version in download history",
|
||||
"@downloadQualityVariantsDescription": {
|
||||
"description": "Description for retaining multiple quality versions"
|
||||
},
|
||||
"trackOptionDownloadQualityVariant": "Download another quality",
|
||||
"@trackOptionDownloadQualityVariant": {
|
||||
"description": "Track menu action to download another quality version"
|
||||
},
|
||||
"queueCheckingDownloadSession": "Checking download session...",
|
||||
"queueResolvingDownloadMetadata": "Resolving track metadata...",
|
||||
"queueResolvingDownloadStream": "Preparing audio stream...",
|
||||
"queueWaitingForVerification": "Waiting for verification...",
|
||||
"queueResumingAfterVerification": "Resuming after verification..."
|
||||
}
|
||||
|
||||
+151
-12
@@ -143,7 +143,7 @@
|
||||
"description": "Share button tooltip"
|
||||
},
|
||||
"@storeFilterLyrics": {
|
||||
"description": "Store filter - lyrics providers"
|
||||
"description": "Repo filter - lyrics providers"
|
||||
},
|
||||
"extensionsInstallButton": "Установить расширение",
|
||||
"@extensionsInstallButton": {
|
||||
@@ -317,7 +317,7 @@
|
||||
},
|
||||
"optionsExtensionStore": "Репозиторий расширения",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide store tab"
|
||||
"description": "Show/hide repo tab"
|
||||
},
|
||||
"libraryDownloadsHistoryExcluded": "{count} from Downloads history (excluded from list)",
|
||||
"@libraryDownloadsHistoryExcluded": {
|
||||
@@ -459,7 +459,7 @@
|
||||
},
|
||||
"storeFilterDownload": "Скачивание",
|
||||
"@storeFilterDownload": {
|
||||
"description": "Store filter - download providers"
|
||||
"description": "Repo filter - download providers"
|
||||
},
|
||||
"@collectionAddToPlaylist": {
|
||||
"description": "Action to add a track to user playlist"
|
||||
@@ -1151,7 +1151,7 @@
|
||||
},
|
||||
"storeFilterMetadata": "Метаданные",
|
||||
"@storeFilterMetadata": {
|
||||
"description": "Store filter - metadata providers"
|
||||
"description": "Repo filter - metadata providers"
|
||||
},
|
||||
"shareSheetCopyLink": "Copy Link",
|
||||
"errorRateLimitedMessage": "Слишком много запросов. Пожалуйста, подождите минуту перед повторным поиском.",
|
||||
@@ -1732,7 +1732,7 @@
|
||||
},
|
||||
"storeFilterUtility": "Утилиты",
|
||||
"@storeFilterUtility": {
|
||||
"description": "Store filter - utility extensions"
|
||||
"description": "Repo filter - utility extensions"
|
||||
},
|
||||
"collectionAddedToPlaylist": "Добавлено в \"{playlistName}\"",
|
||||
"@collectionAddedToPlaylist": {
|
||||
@@ -3328,7 +3328,7 @@
|
||||
},
|
||||
"libraryPlayback": "Playback",
|
||||
"@storeFilterAll": {
|
||||
"description": "Store filter - all extensions"
|
||||
"description": "Repo filter - all extensions"
|
||||
},
|
||||
"aboutApp": "Приложение",
|
||||
"@aboutApp": {
|
||||
@@ -3348,7 +3348,7 @@
|
||||
"logIssueIspBlockingLabel": "ISP BLOCKING DETECTED",
|
||||
"storeFilterIntegration": "Интеграция",
|
||||
"@storeFilterIntegration": {
|
||||
"description": "Store filter - integrations"
|
||||
"description": "Repo filter - integrations"
|
||||
},
|
||||
"@lyricsProvidersAtLeastOne": {
|
||||
"description": "Snackbar when user tries to disable the last enabled provider"
|
||||
@@ -3538,7 +3538,7 @@
|
||||
},
|
||||
"storeTitle": "Репозиторий расширения",
|
||||
"@storeTitle": {
|
||||
"description": "Store screen title"
|
||||
"description": "Repo screen title"
|
||||
},
|
||||
"libraryCleared": "Библиотека очищена",
|
||||
"@libraryCleared": {
|
||||
@@ -3853,7 +3853,7 @@
|
||||
},
|
||||
"lyricsProviderMusixmatchDesc": "Largest lyrics database (multi-language)",
|
||||
"@navStore": {
|
||||
"description": "Bottom navigation - Extension store tab"
|
||||
"description": "Bottom navigation - Extension repo tab"
|
||||
},
|
||||
"extensionPostProcessing": "Постобработка",
|
||||
"@searchTracks": {
|
||||
@@ -4444,7 +4444,7 @@
|
||||
"appName": "Spotify",
|
||||
"storeRepoDialogCurrent": "Текущий репозиторий:",
|
||||
"@optionsExtensionStoreSubtitle": {
|
||||
"description": "Subtitle for extension store toggle"
|
||||
"description": "Subtitle for extension repo toggle"
|
||||
},
|
||||
"@trackLyrics": {
|
||||
"description": "Tab title - lyrics"
|
||||
@@ -4557,7 +4557,7 @@
|
||||
"downloadUseAlbumArtistForFoldersTrackSubtitle": "Папка названная в честь тега Трека Артиста",
|
||||
"storeSearch": "Поиск расширений...",
|
||||
"@storeSearch": {
|
||||
"description": "Store search placeholder"
|
||||
"description": "Repo search placeholder"
|
||||
},
|
||||
"aboutTelegramChat": "Сообщество в Telegram",
|
||||
"lyricsModeBoth": "Оба варианта",
|
||||
@@ -5883,5 +5883,144 @@
|
||||
"extensionsSearchProviderDescription": "Выберите, какой сервис использовать для поиска треков",
|
||||
"albumFolderAlbumOnly": "Только альбом",
|
||||
"nowPlayingOpenInExternalPlayer": "Open in external player",
|
||||
"cueSplitButton": "Разделить на Треки"
|
||||
"cueSplitButton": "Разделить на Треки",
|
||||
"updateRequiredTitle": "Update required",
|
||||
"@updateRequiredTitle": {
|
||||
"description": "Title of the mandatory update dialog shown when the installed version is too old"
|
||||
},
|
||||
"updateRequiredNotice": "This version is {count} releases behind and is no longer supported. Update to keep using the app.",
|
||||
"@updateRequiredNotice": {
|
||||
"description": "Subtitle of the mandatory update dialog; explains why the dialog cannot be dismissed",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appearanceHeroAnimations": "Hero animations",
|
||||
"@appearanceHeroAnimations": {
|
||||
"description": "Toggle for shared-element (Hero) transitions"
|
||||
},
|
||||
"appearanceHeroAnimationsSubtitle": "Fly covers between screens, e.g. when opening the player",
|
||||
"@appearanceHeroAnimationsSubtitle": {
|
||||
"description": "Subtitle for the Hero animations toggle"
|
||||
},
|
||||
"settingsConcurrentDownloads": "Concurrent downloads",
|
||||
"@settingsConcurrentDownloads": {
|
||||
"description": "Setting title - how many tracks download at the same time"
|
||||
},
|
||||
"settingsConcurrentDownloadsSubtitle": "Downloading several tracks at once is faster, but some providers may rate-limit parallel requests.",
|
||||
"@settingsConcurrentDownloadsSubtitle": {
|
||||
"description": "Subtitle explaining the concurrent downloads picker"
|
||||
},
|
||||
"concurrentDownloadsOne": "1 track at a time",
|
||||
"@concurrentDownloadsOne": {
|
||||
"description": "Concurrent downloads option - sequential"
|
||||
},
|
||||
"concurrentDownloadsCount": "Up to {count} tracks at once",
|
||||
"@concurrentDownloadsCount": {
|
||||
"description": "Concurrent downloads option - parallel",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraryPlaybackNormalization": "Volume normalization",
|
||||
"@libraryPlaybackNormalization": {
|
||||
"description": "Toggle title for ReplayGain playback normalization in the built-in player"
|
||||
},
|
||||
"libraryPlaybackNormalizationSubtitle": "Even out loudness between tracks using their ReplayGain or R128 tags, when present",
|
||||
"@libraryPlaybackNormalizationSubtitle": {
|
||||
"description": "Subtitle explaining playback volume normalization"
|
||||
},
|
||||
"cacheAudioAnalysis": "Audio analysis cache",
|
||||
"@cacheAudioAnalysis": {
|
||||
"description": "Cache item title for saved audio analysis results"
|
||||
},
|
||||
"cacheAudioAnalysisDesc": "Saved spectrograms and analysis results. Will re-analyze on next open.",
|
||||
"@cacheAudioAnalysisDesc": {
|
||||
"description": "Description of what audio analysis cache contains"
|
||||
},
|
||||
"trackConvertKeepOriginal": "Keep original file",
|
||||
"@trackConvertKeepOriginal": {
|
||||
"description": "Toggle to preserve the source file during conversion"
|
||||
},
|
||||
"trackConvertKeepOriginalDescription": "Add the converted file as a separate library entry",
|
||||
"@trackConvertKeepOriginalDescription": {
|
||||
"description": "Description for preserving the source file during conversion"
|
||||
},
|
||||
"trackConvertConfirmKeepOriginal": "Convert from {sourceFormat} to {targetFormat}?\n\nThe original file will be kept and the converted file will be added as a separate library entry.",
|
||||
"@trackConvertConfirmKeepOriginal": {
|
||||
"description": "Confirmation message when the source file will be preserved",
|
||||
"placeholders": {
|
||||
"sourceFormat": {
|
||||
"type": "String"
|
||||
},
|
||||
"targetFormat": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionBatchConvertConfirmKeepOriginal": "Convert {count} {count, plural, =1{track} other{tracks}} to {format}?\n\nOriginal files will be kept and converted files will be added as separate library entries.",
|
||||
"@selectionBatchConvertConfirmKeepOriginal": {
|
||||
"description": "Batch conversion confirmation when source files will be preserved",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
},
|
||||
"format": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadFolderAccessLostTitle": "Download folder access lost",
|
||||
"@downloadFolderAccessLostTitle": {
|
||||
"description": "Title of the warning banner shown in Files settings when the saved SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadFolderAccessLostSubtitle": "Downloads will fail until you re-select the folder",
|
||||
"@downloadFolderAccessLostSubtitle": {
|
||||
"description": "Subtitle of the warning banner shown when the saved SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadFolderReselect": "Re-select folder",
|
||||
"@downloadFolderReselect": {
|
||||
"description": "Button that reopens the folder picker to restore download folder access"
|
||||
},
|
||||
"downloadErrorSafPermissionLost": "SAF permission invalid or revoked. Please reconfigure download location in Settings.",
|
||||
"@downloadErrorSafPermissionLost": {
|
||||
"description": "Error shown on downloads that failed because the persisted Android SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadErrorFolderAccessLost": "Download folder access lost. Please re-select your download folder in Settings.",
|
||||
"@downloadErrorFolderAccessLost": {
|
||||
"description": "Error shown on downloads that failed because the iOS download folder bookmark could not be opened"
|
||||
},
|
||||
"notifVerificationRequiredTitle": "Verification required",
|
||||
"@notifVerificationRequiredTitle": {
|
||||
"description": "Notification title shown when a download needs the user to complete a verification challenge but the app is in the background"
|
||||
},
|
||||
"notifVerificationRequiredBody": "Open the app to complete verification and resume downloads",
|
||||
"@notifVerificationRequiredBody": {
|
||||
"description": "Notification body prompting the user to return to the app to solve a verification challenge"
|
||||
},
|
||||
"downloadDeduplicationWithQualityVariants": "Existing files at the selected quality will be skipped",
|
||||
"@downloadDeduplicationWithQualityVariants": {
|
||||
"description": "Deduplication subtitle when separate quality versions are allowed"
|
||||
},
|
||||
"downloadQualityVariants": "Allow different quality versions",
|
||||
"@downloadQualityVariants": {
|
||||
"description": "Setting to retain multiple quality versions of the same track"
|
||||
},
|
||||
"downloadQualityVariantsDescription": "Add the selected quality to the filename and keep each version in download history",
|
||||
"@downloadQualityVariantsDescription": {
|
||||
"description": "Description for retaining multiple quality versions"
|
||||
},
|
||||
"trackOptionDownloadQualityVariant": "Download another quality",
|
||||
"@trackOptionDownloadQualityVariant": {
|
||||
"description": "Track menu action to download another quality version"
|
||||
},
|
||||
"queueCheckingDownloadSession": "Checking download session...",
|
||||
"queueResolvingDownloadMetadata": "Resolving track metadata...",
|
||||
"queueResolvingDownloadStream": "Preparing audio stream...",
|
||||
"queueWaitingForVerification": "Waiting for verification...",
|
||||
"queueResumingAfterVerification": "Resuming after verification..."
|
||||
}
|
||||
|
||||
+151
-12
@@ -143,7 +143,7 @@
|
||||
"description": "Share button tooltip"
|
||||
},
|
||||
"@storeFilterLyrics": {
|
||||
"description": "Store filter - lyrics providers"
|
||||
"description": "Repo filter - lyrics providers"
|
||||
},
|
||||
"extensionsInstallButton": "Uzantı Yükle",
|
||||
"@extensionsInstallButton": {
|
||||
@@ -317,7 +317,7 @@
|
||||
},
|
||||
"optionsExtensionStore": "Eklenti Deposu",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide store tab"
|
||||
"description": "Show/hide repo tab"
|
||||
},
|
||||
"libraryDownloadsHistoryExcluded": "{count} from Downloads history (excluded from list)",
|
||||
"@libraryDownloadsHistoryExcluded": {
|
||||
@@ -459,7 +459,7 @@
|
||||
},
|
||||
"storeFilterDownload": "İndir",
|
||||
"@storeFilterDownload": {
|
||||
"description": "Store filter - download providers"
|
||||
"description": "Repo filter - download providers"
|
||||
},
|
||||
"@collectionAddToPlaylist": {
|
||||
"description": "Action to add a track to user playlist"
|
||||
@@ -1151,7 +1151,7 @@
|
||||
},
|
||||
"storeFilterMetadata": "Meta Veri",
|
||||
"@storeFilterMetadata": {
|
||||
"description": "Store filter - metadata providers"
|
||||
"description": "Repo filter - metadata providers"
|
||||
},
|
||||
"shareSheetCopyLink": "Copy Link",
|
||||
"errorRateLimitedMessage": "Çok fazla istek. Lütfen arama yapmadan önce biraz bekleyin.",
|
||||
@@ -1732,7 +1732,7 @@
|
||||
},
|
||||
"storeFilterUtility": "Araç",
|
||||
"@storeFilterUtility": {
|
||||
"description": "Store filter - utility extensions"
|
||||
"description": "Repo filter - utility extensions"
|
||||
},
|
||||
"collectionAddedToPlaylist": "\"{playlistName}\"e eklendi",
|
||||
"@collectionAddedToPlaylist": {
|
||||
@@ -3328,7 +3328,7 @@
|
||||
},
|
||||
"libraryPlayback": "Playback",
|
||||
"@storeFilterAll": {
|
||||
"description": "Store filter - all extensions"
|
||||
"description": "Repo filter - all extensions"
|
||||
},
|
||||
"aboutApp": "Uygulama",
|
||||
"@aboutApp": {
|
||||
@@ -3348,7 +3348,7 @@
|
||||
"logIssueIspBlockingLabel": "ISP BLOCKING DETECTED",
|
||||
"storeFilterIntegration": "Entegrasyon",
|
||||
"@storeFilterIntegration": {
|
||||
"description": "Store filter - integrations"
|
||||
"description": "Repo filter - integrations"
|
||||
},
|
||||
"@lyricsProvidersAtLeastOne": {
|
||||
"description": "Snackbar when user tries to disable the last enabled provider"
|
||||
@@ -3538,7 +3538,7 @@
|
||||
},
|
||||
"storeTitle": "Uzantı Deposu",
|
||||
"@storeTitle": {
|
||||
"description": "Store screen title"
|
||||
"description": "Repo screen title"
|
||||
},
|
||||
"libraryCleared": "Kütüphane temizlendi",
|
||||
"@libraryCleared": {
|
||||
@@ -3853,7 +3853,7 @@
|
||||
},
|
||||
"lyricsProviderMusixmatchDesc": "Largest lyrics database (multi-language)",
|
||||
"@navStore": {
|
||||
"description": "Bottom navigation - Extension store tab"
|
||||
"description": "Bottom navigation - Extension repo tab"
|
||||
},
|
||||
"extensionPostProcessing": "Son İşlem",
|
||||
"@searchTracks": {
|
||||
@@ -4444,7 +4444,7 @@
|
||||
"appName": "SpotiFLAC Mobile",
|
||||
"storeRepoDialogCurrent": "Mevcut depo:",
|
||||
"@optionsExtensionStoreSubtitle": {
|
||||
"description": "Subtitle for extension store toggle"
|
||||
"description": "Subtitle for extension repo toggle"
|
||||
},
|
||||
"@trackLyrics": {
|
||||
"description": "Tab title - lyrics"
|
||||
@@ -4557,7 +4557,7 @@
|
||||
"downloadUseAlbumArtistForFoldersTrackSubtitle": "Folder named after Track Artist tag",
|
||||
"storeSearch": "Eklenti ara...",
|
||||
"@storeSearch": {
|
||||
"description": "Store search placeholder"
|
||||
"description": "Repo search placeholder"
|
||||
},
|
||||
"aboutTelegramChat": "Telegram Grubu",
|
||||
"lyricsModeBoth": "Her ikisi de",
|
||||
@@ -5883,5 +5883,144 @@
|
||||
"extensionsSearchProviderDescription": "Parça aramak için hangi servisin kullanılacağını seçin",
|
||||
"albumFolderAlbumOnly": "Yalnızca Albüm",
|
||||
"nowPlayingOpenInExternalPlayer": "Open in external player",
|
||||
"cueSplitButton": "Parçalara Ayrılmış"
|
||||
"cueSplitButton": "Parçalara Ayrılmış",
|
||||
"updateRequiredTitle": "Update required",
|
||||
"@updateRequiredTitle": {
|
||||
"description": "Title of the mandatory update dialog shown when the installed version is too old"
|
||||
},
|
||||
"updateRequiredNotice": "This version is {count} releases behind and is no longer supported. Update to keep using the app.",
|
||||
"@updateRequiredNotice": {
|
||||
"description": "Subtitle of the mandatory update dialog; explains why the dialog cannot be dismissed",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appearanceHeroAnimations": "Hero animations",
|
||||
"@appearanceHeroAnimations": {
|
||||
"description": "Toggle for shared-element (Hero) transitions"
|
||||
},
|
||||
"appearanceHeroAnimationsSubtitle": "Fly covers between screens, e.g. when opening the player",
|
||||
"@appearanceHeroAnimationsSubtitle": {
|
||||
"description": "Subtitle for the Hero animations toggle"
|
||||
},
|
||||
"settingsConcurrentDownloads": "Concurrent downloads",
|
||||
"@settingsConcurrentDownloads": {
|
||||
"description": "Setting title - how many tracks download at the same time"
|
||||
},
|
||||
"settingsConcurrentDownloadsSubtitle": "Downloading several tracks at once is faster, but some providers may rate-limit parallel requests.",
|
||||
"@settingsConcurrentDownloadsSubtitle": {
|
||||
"description": "Subtitle explaining the concurrent downloads picker"
|
||||
},
|
||||
"concurrentDownloadsOne": "1 track at a time",
|
||||
"@concurrentDownloadsOne": {
|
||||
"description": "Concurrent downloads option - sequential"
|
||||
},
|
||||
"concurrentDownloadsCount": "Up to {count} tracks at once",
|
||||
"@concurrentDownloadsCount": {
|
||||
"description": "Concurrent downloads option - parallel",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraryPlaybackNormalization": "Volume normalization",
|
||||
"@libraryPlaybackNormalization": {
|
||||
"description": "Toggle title for ReplayGain playback normalization in the built-in player"
|
||||
},
|
||||
"libraryPlaybackNormalizationSubtitle": "Even out loudness between tracks using their ReplayGain or R128 tags, when present",
|
||||
"@libraryPlaybackNormalizationSubtitle": {
|
||||
"description": "Subtitle explaining playback volume normalization"
|
||||
},
|
||||
"cacheAudioAnalysis": "Audio analysis cache",
|
||||
"@cacheAudioAnalysis": {
|
||||
"description": "Cache item title for saved audio analysis results"
|
||||
},
|
||||
"cacheAudioAnalysisDesc": "Saved spectrograms and analysis results. Will re-analyze on next open.",
|
||||
"@cacheAudioAnalysisDesc": {
|
||||
"description": "Description of what audio analysis cache contains"
|
||||
},
|
||||
"trackConvertKeepOriginal": "Keep original file",
|
||||
"@trackConvertKeepOriginal": {
|
||||
"description": "Toggle to preserve the source file during conversion"
|
||||
},
|
||||
"trackConvertKeepOriginalDescription": "Add the converted file as a separate library entry",
|
||||
"@trackConvertKeepOriginalDescription": {
|
||||
"description": "Description for preserving the source file during conversion"
|
||||
},
|
||||
"trackConvertConfirmKeepOriginal": "Convert from {sourceFormat} to {targetFormat}?\n\nThe original file will be kept and the converted file will be added as a separate library entry.",
|
||||
"@trackConvertConfirmKeepOriginal": {
|
||||
"description": "Confirmation message when the source file will be preserved",
|
||||
"placeholders": {
|
||||
"sourceFormat": {
|
||||
"type": "String"
|
||||
},
|
||||
"targetFormat": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionBatchConvertConfirmKeepOriginal": "Convert {count} {count, plural, =1{track} other{tracks}} to {format}?\n\nOriginal files will be kept and converted files will be added as separate library entries.",
|
||||
"@selectionBatchConvertConfirmKeepOriginal": {
|
||||
"description": "Batch conversion confirmation when source files will be preserved",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
},
|
||||
"format": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadFolderAccessLostTitle": "Download folder access lost",
|
||||
"@downloadFolderAccessLostTitle": {
|
||||
"description": "Title of the warning banner shown in Files settings when the saved SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadFolderAccessLostSubtitle": "Downloads will fail until you re-select the folder",
|
||||
"@downloadFolderAccessLostSubtitle": {
|
||||
"description": "Subtitle of the warning banner shown when the saved SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadFolderReselect": "Re-select folder",
|
||||
"@downloadFolderReselect": {
|
||||
"description": "Button that reopens the folder picker to restore download folder access"
|
||||
},
|
||||
"downloadErrorSafPermissionLost": "SAF permission invalid or revoked. Please reconfigure download location in Settings.",
|
||||
"@downloadErrorSafPermissionLost": {
|
||||
"description": "Error shown on downloads that failed because the persisted Android SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadErrorFolderAccessLost": "Download folder access lost. Please re-select your download folder in Settings.",
|
||||
"@downloadErrorFolderAccessLost": {
|
||||
"description": "Error shown on downloads that failed because the iOS download folder bookmark could not be opened"
|
||||
},
|
||||
"notifVerificationRequiredTitle": "Verification required",
|
||||
"@notifVerificationRequiredTitle": {
|
||||
"description": "Notification title shown when a download needs the user to complete a verification challenge but the app is in the background"
|
||||
},
|
||||
"notifVerificationRequiredBody": "Open the app to complete verification and resume downloads",
|
||||
"@notifVerificationRequiredBody": {
|
||||
"description": "Notification body prompting the user to return to the app to solve a verification challenge"
|
||||
},
|
||||
"downloadDeduplicationWithQualityVariants": "Existing files at the selected quality will be skipped",
|
||||
"@downloadDeduplicationWithQualityVariants": {
|
||||
"description": "Deduplication subtitle when separate quality versions are allowed"
|
||||
},
|
||||
"downloadQualityVariants": "Allow different quality versions",
|
||||
"@downloadQualityVariants": {
|
||||
"description": "Setting to retain multiple quality versions of the same track"
|
||||
},
|
||||
"downloadQualityVariantsDescription": "Add the selected quality to the filename and keep each version in download history",
|
||||
"@downloadQualityVariantsDescription": {
|
||||
"description": "Description for retaining multiple quality versions"
|
||||
},
|
||||
"trackOptionDownloadQualityVariant": "Download another quality",
|
||||
"@trackOptionDownloadQualityVariant": {
|
||||
"description": "Track menu action to download another quality version"
|
||||
},
|
||||
"queueCheckingDownloadSession": "Checking download session...",
|
||||
"queueResolvingDownloadMetadata": "Resolving track metadata...",
|
||||
"queueResolvingDownloadStream": "Preparing audio stream...",
|
||||
"queueWaitingForVerification": "Waiting for verification...",
|
||||
"queueResumingAfterVerification": "Resuming after verification..."
|
||||
}
|
||||
|
||||
+151
-12
@@ -143,7 +143,7 @@
|
||||
"description": "Share button tooltip"
|
||||
},
|
||||
"@storeFilterLyrics": {
|
||||
"description": "Store filter - lyrics providers"
|
||||
"description": "Repo filter - lyrics providers"
|
||||
},
|
||||
"extensionsInstallButton": "Встановити розширення",
|
||||
"@extensionsInstallButton": {
|
||||
@@ -317,7 +317,7 @@
|
||||
},
|
||||
"optionsExtensionStore": "Репозиторій розширень",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide store tab"
|
||||
"description": "Show/hide repo tab"
|
||||
},
|
||||
"libraryDownloadsHistoryExcluded": "{count} from Downloads history (excluded from list)",
|
||||
"@libraryDownloadsHistoryExcluded": {
|
||||
@@ -459,7 +459,7 @@
|
||||
},
|
||||
"storeFilterDownload": "Завантажити",
|
||||
"@storeFilterDownload": {
|
||||
"description": "Store filter - download providers"
|
||||
"description": "Repo filter - download providers"
|
||||
},
|
||||
"@collectionAddToPlaylist": {
|
||||
"description": "Action to add a track to user playlist"
|
||||
@@ -1151,7 +1151,7 @@
|
||||
},
|
||||
"storeFilterMetadata": "Метадані",
|
||||
"@storeFilterMetadata": {
|
||||
"description": "Store filter - metadata providers"
|
||||
"description": "Repo filter - metadata providers"
|
||||
},
|
||||
"shareSheetCopyLink": "Copy Link",
|
||||
"errorRateLimitedMessage": "Забагато запитів. Будь ласка, зачекайте хвилинку, перш ніж шукати знову.",
|
||||
@@ -1732,7 +1732,7 @@
|
||||
},
|
||||
"storeFilterUtility": "Утиліта",
|
||||
"@storeFilterUtility": {
|
||||
"description": "Store filter - utility extensions"
|
||||
"description": "Repo filter - utility extensions"
|
||||
},
|
||||
"collectionAddedToPlaylist": "Додано до \"{playlistName}\"",
|
||||
"@collectionAddedToPlaylist": {
|
||||
@@ -3328,7 +3328,7 @@
|
||||
},
|
||||
"libraryPlayback": "Playback",
|
||||
"@storeFilterAll": {
|
||||
"description": "Store filter - all extensions"
|
||||
"description": "Repo filter - all extensions"
|
||||
},
|
||||
"aboutApp": "Додаток",
|
||||
"@aboutApp": {
|
||||
@@ -3348,7 +3348,7 @@
|
||||
"logIssueIspBlockingLabel": "ISP BLOCKING DETECTED",
|
||||
"storeFilterIntegration": "Інтеграція",
|
||||
"@storeFilterIntegration": {
|
||||
"description": "Store filter - integrations"
|
||||
"description": "Repo filter - integrations"
|
||||
},
|
||||
"@lyricsProvidersAtLeastOne": {
|
||||
"description": "Snackbar when user tries to disable the last enabled provider"
|
||||
@@ -3538,7 +3538,7 @@
|
||||
},
|
||||
"storeTitle": "Репозиторій розширень",
|
||||
"@storeTitle": {
|
||||
"description": "Store screen title"
|
||||
"description": "Repo screen title"
|
||||
},
|
||||
"libraryCleared": "Бібліотека очищена",
|
||||
"@libraryCleared": {
|
||||
@@ -3853,7 +3853,7 @@
|
||||
},
|
||||
"lyricsProviderMusixmatchDesc": "Найбільша база даних текстів пісень (багатомовна)",
|
||||
"@navStore": {
|
||||
"description": "Bottom navigation - Extension store tab"
|
||||
"description": "Bottom navigation - Extension repo tab"
|
||||
},
|
||||
"extensionPostProcessing": "Післяобробка",
|
||||
"@searchTracks": {
|
||||
@@ -4444,7 +4444,7 @@
|
||||
"appName": "SpotiFLAC Mobile",
|
||||
"storeRepoDialogCurrent": "Поточний репозиторій:",
|
||||
"@optionsExtensionStoreSubtitle": {
|
||||
"description": "Subtitle for extension store toggle"
|
||||
"description": "Subtitle for extension repo toggle"
|
||||
},
|
||||
"@trackLyrics": {
|
||||
"description": "Tab title - lyrics"
|
||||
@@ -4557,7 +4557,7 @@
|
||||
"downloadUseAlbumArtistForFoldersTrackSubtitle": "Folder named after Track Artist tag",
|
||||
"storeSearch": "Розширення пошуку...",
|
||||
"@storeSearch": {
|
||||
"description": "Store search placeholder"
|
||||
"description": "Repo search placeholder"
|
||||
},
|
||||
"aboutTelegramChat": "Telegram Спільнота",
|
||||
"lyricsModeBoth": "Обидва",
|
||||
@@ -5883,5 +5883,144 @@
|
||||
"extensionsSearchProviderDescription": "Виберіть, який сервіс використовувати для пошуку треків",
|
||||
"albumFolderAlbumOnly": "Тільки альбом",
|
||||
"nowPlayingOpenInExternalPlayer": "Open in external player",
|
||||
"cueSplitButton": "Розділити на треки"
|
||||
"cueSplitButton": "Розділити на треки",
|
||||
"updateRequiredTitle": "Update required",
|
||||
"@updateRequiredTitle": {
|
||||
"description": "Title of the mandatory update dialog shown when the installed version is too old"
|
||||
},
|
||||
"updateRequiredNotice": "This version is {count} releases behind and is no longer supported. Update to keep using the app.",
|
||||
"@updateRequiredNotice": {
|
||||
"description": "Subtitle of the mandatory update dialog; explains why the dialog cannot be dismissed",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"appearanceHeroAnimations": "Hero animations",
|
||||
"@appearanceHeroAnimations": {
|
||||
"description": "Toggle for shared-element (Hero) transitions"
|
||||
},
|
||||
"appearanceHeroAnimationsSubtitle": "Fly covers between screens, e.g. when opening the player",
|
||||
"@appearanceHeroAnimationsSubtitle": {
|
||||
"description": "Subtitle for the Hero animations toggle"
|
||||
},
|
||||
"settingsConcurrentDownloads": "Concurrent downloads",
|
||||
"@settingsConcurrentDownloads": {
|
||||
"description": "Setting title - how many tracks download at the same time"
|
||||
},
|
||||
"settingsConcurrentDownloadsSubtitle": "Downloading several tracks at once is faster, but some providers may rate-limit parallel requests.",
|
||||
"@settingsConcurrentDownloadsSubtitle": {
|
||||
"description": "Subtitle explaining the concurrent downloads picker"
|
||||
},
|
||||
"concurrentDownloadsOne": "1 track at a time",
|
||||
"@concurrentDownloadsOne": {
|
||||
"description": "Concurrent downloads option - sequential"
|
||||
},
|
||||
"concurrentDownloadsCount": "Up to {count} tracks at once",
|
||||
"@concurrentDownloadsCount": {
|
||||
"description": "Concurrent downloads option - parallel",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraryPlaybackNormalization": "Volume normalization",
|
||||
"@libraryPlaybackNormalization": {
|
||||
"description": "Toggle title for ReplayGain playback normalization in the built-in player"
|
||||
},
|
||||
"libraryPlaybackNormalizationSubtitle": "Even out loudness between tracks using their ReplayGain or R128 tags, when present",
|
||||
"@libraryPlaybackNormalizationSubtitle": {
|
||||
"description": "Subtitle explaining playback volume normalization"
|
||||
},
|
||||
"cacheAudioAnalysis": "Audio analysis cache",
|
||||
"@cacheAudioAnalysis": {
|
||||
"description": "Cache item title for saved audio analysis results"
|
||||
},
|
||||
"cacheAudioAnalysisDesc": "Saved spectrograms and analysis results. Will re-analyze on next open.",
|
||||
"@cacheAudioAnalysisDesc": {
|
||||
"description": "Description of what audio analysis cache contains"
|
||||
},
|
||||
"trackConvertKeepOriginal": "Keep original file",
|
||||
"@trackConvertKeepOriginal": {
|
||||
"description": "Toggle to preserve the source file during conversion"
|
||||
},
|
||||
"trackConvertKeepOriginalDescription": "Add the converted file as a separate library entry",
|
||||
"@trackConvertKeepOriginalDescription": {
|
||||
"description": "Description for preserving the source file during conversion"
|
||||
},
|
||||
"trackConvertConfirmKeepOriginal": "Convert from {sourceFormat} to {targetFormat}?\n\nThe original file will be kept and the converted file will be added as a separate library entry.",
|
||||
"@trackConvertConfirmKeepOriginal": {
|
||||
"description": "Confirmation message when the source file will be preserved",
|
||||
"placeholders": {
|
||||
"sourceFormat": {
|
||||
"type": "String"
|
||||
},
|
||||
"targetFormat": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionBatchConvertConfirmKeepOriginal": "Convert {count} {count, plural, =1{track} other{tracks}} to {format}?\n\nOriginal files will be kept and converted files will be added as separate library entries.",
|
||||
"@selectionBatchConvertConfirmKeepOriginal": {
|
||||
"description": "Batch conversion confirmation when source files will be preserved",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
},
|
||||
"format": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadFolderAccessLostTitle": "Download folder access lost",
|
||||
"@downloadFolderAccessLostTitle": {
|
||||
"description": "Title of the warning banner shown in Files settings when the saved SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadFolderAccessLostSubtitle": "Downloads will fail until you re-select the folder",
|
||||
"@downloadFolderAccessLostSubtitle": {
|
||||
"description": "Subtitle of the warning banner shown when the saved SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadFolderReselect": "Re-select folder",
|
||||
"@downloadFolderReselect": {
|
||||
"description": "Button that reopens the folder picker to restore download folder access"
|
||||
},
|
||||
"downloadErrorSafPermissionLost": "SAF permission invalid or revoked. Please reconfigure download location in Settings.",
|
||||
"@downloadErrorSafPermissionLost": {
|
||||
"description": "Error shown on downloads that failed because the persisted Android SAF folder grant is no longer valid"
|
||||
},
|
||||
"downloadErrorFolderAccessLost": "Download folder access lost. Please re-select your download folder in Settings.",
|
||||
"@downloadErrorFolderAccessLost": {
|
||||
"description": "Error shown on downloads that failed because the iOS download folder bookmark could not be opened"
|
||||
},
|
||||
"notifVerificationRequiredTitle": "Verification required",
|
||||
"@notifVerificationRequiredTitle": {
|
||||
"description": "Notification title shown when a download needs the user to complete a verification challenge but the app is in the background"
|
||||
},
|
||||
"notifVerificationRequiredBody": "Open the app to complete verification and resume downloads",
|
||||
"@notifVerificationRequiredBody": {
|
||||
"description": "Notification body prompting the user to return to the app to solve a verification challenge"
|
||||
},
|
||||
"downloadDeduplicationWithQualityVariants": "Existing files at the selected quality will be skipped",
|
||||
"@downloadDeduplicationWithQualityVariants": {
|
||||
"description": "Deduplication subtitle when separate quality versions are allowed"
|
||||
},
|
||||
"downloadQualityVariants": "Allow different quality versions",
|
||||
"@downloadQualityVariants": {
|
||||
"description": "Setting to retain multiple quality versions of the same track"
|
||||
},
|
||||
"downloadQualityVariantsDescription": "Add the selected quality to the filename and keep each version in download history",
|
||||
"@downloadQualityVariantsDescription": {
|
||||
"description": "Description for retaining multiple quality versions"
|
||||
},
|
||||
"trackOptionDownloadQualityVariant": "Download another quality",
|
||||
"@trackOptionDownloadQualityVariant": {
|
||||
"description": "Track menu action to download another quality version"
|
||||
},
|
||||
"queueCheckingDownloadSession": "Checking download session...",
|
||||
"queueResolvingDownloadMetadata": "Resolving track metadata...",
|
||||
"queueResolvingDownloadStream": "Preparing audio stream...",
|
||||
"queueWaitingForVerification": "Waiting for verification...",
|
||||
"queueResumingAfterVerification": "Resuming after verification..."
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ const int translationThreshold = 70;
|
||||
/// Only these languages will be available in the app.
|
||||
const List<Locale> filteredSupportedLocales = <Locale>[
|
||||
Locale('en'),
|
||||
Locale('ko'),
|
||||
Locale('fr'),
|
||||
Locale('es', 'ES'),
|
||||
Locale('de'),
|
||||
@@ -28,6 +29,7 @@ const List<Locale> filteredSupportedLocales = <Locale>[
|
||||
/// Set of locale codes for quick lookup.
|
||||
const Set<String> filteredLocaleCodes = <String>{
|
||||
'en',
|
||||
'ko',
|
||||
'fr',
|
||||
'es_ES',
|
||||
'de',
|
||||
|
||||
@@ -694,6 +694,7 @@ class _LanguageSelector extends StatelessWidget {
|
||||
('es_ES', 'Español (España)', Icons.language),
|
||||
('fr', 'Français', Icons.language),
|
||||
('ja', '日本語', Icons.language),
|
||||
('ko', '한국어', Icons.language),
|
||||
('pt', 'Português', Icons.language),
|
||||
('pt_PT', 'Português (Brasil)', Icons.language),
|
||||
('ru', 'Русский', Icons.language),
|
||||
|
||||
@@ -710,6 +710,7 @@ class _SetupScreenState extends ConsumerState<SetupScreen> {
|
||||
('es_ES', 'Español (España)', Icons.language),
|
||||
('fr', 'Français', Icons.language),
|
||||
('ja', '日本語', Icons.language),
|
||||
('ko', '한국어', Icons.language),
|
||||
('pt', 'Português', Icons.language),
|
||||
('pt_PT', 'Português (Brasil)', Icons.language),
|
||||
('ru', 'Русский', Icons.language),
|
||||
|
||||
Reference in New Issue
Block a user