mirror of
https://github.com/zarzet/SpotiFLAC-Mobile.git
synced 2026-07-29 15:28:48 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1b4dfa7580 | ||
|
|
9b35c6dc42 | ||
|
|
1c95109b7b | ||
|
|
d4c38b7550 | ||
|
|
c681b891eb | ||
|
|
c19477a4f4 | ||
|
|
a7069a8f91 | ||
|
|
bb127d1cc2 | ||
|
|
927ca6e4ca | ||
|
|
66cf998fb2 | ||
|
|
37db310157 | ||
|
|
13fe8b4593 | ||
|
|
a5f96b57e6 | ||
|
|
f0a7a043ec | ||
|
|
58249d6a13 | ||
|
|
d9dc7ddf3a | ||
|
|
cc1ad1552c | ||
|
|
a3feb39e20 | ||
|
|
7676579659 | ||
|
|
bcb3729fa9 | ||
|
|
49a824c171 | ||
|
|
2a050f113b | ||
|
|
e4b99dd44b | ||
|
|
18584ab81f | ||
|
|
a4f7360336 | ||
|
|
16b44d2d3a | ||
|
|
71c08501e7 | ||
|
|
297cddf31d | ||
|
|
57eef4311f | ||
|
|
b5e5fb5cd2 | ||
|
|
9a9152f7f8 | ||
|
|
d9ceb8ac78 | ||
|
|
d6726f976a | ||
|
|
bbfc724ceb | ||
|
|
7d3a6f9780 | ||
|
|
19fccde3a3 | ||
|
|
2cc2ac6efd | ||
|
|
d1ede223cf |
+146
-328
@@ -19,7 +19,7 @@
|
||||
},
|
||||
"navStore": "المستودع",
|
||||
"@navStore": {
|
||||
"description": "Bottom navigation - Extension store tab"
|
||||
"description": "Bottom navigation - Extension repo tab"
|
||||
},
|
||||
"homeTitle": "الصفحة الرئيسية",
|
||||
"@homeTitle": {
|
||||
@@ -73,10 +73,6 @@
|
||||
"@settingsAppearance": {
|
||||
"description": "Settings section - visual customization"
|
||||
},
|
||||
"settingsOptions": "الخيارات",
|
||||
"@settingsOptions": {
|
||||
"description": "Settings section - app options"
|
||||
},
|
||||
"settingsExtensions": "الإضافات",
|
||||
"@settingsExtensions": {
|
||||
"description": "Settings section - extension management"
|
||||
@@ -145,10 +141,6 @@
|
||||
"@appearanceHistoryViewGrid": {
|
||||
"description": "Grid layout option"
|
||||
},
|
||||
"optionsTitle": "خيارات",
|
||||
"@optionsTitle": {
|
||||
"description": "Options settings page title"
|
||||
},
|
||||
"optionsPrimaryProvider": "المزود الرئيسي",
|
||||
"@optionsPrimaryProvider": {
|
||||
"description": "Main search provider setting"
|
||||
@@ -174,10 +166,6 @@
|
||||
"@optionsDefaultSearchTabSubtitle": {
|
||||
"description": "Subtitle for the preferred default search tab setting"
|
||||
},
|
||||
"optionsSwitchBack": "اختر مزود البحث الافتراضي للتبديل من مكون إضافي",
|
||||
"@optionsSwitchBack": {
|
||||
"description": "Hint to switch back from extension search"
|
||||
},
|
||||
"optionsAutoFallback": "التراجع التلقائي",
|
||||
"@optionsAutoFallback": {
|
||||
"description": "Auto-retry with other services"
|
||||
@@ -186,18 +174,6 @@
|
||||
"@optionsAutoFallbackSubtitle": {
|
||||
"description": "Subtitle for auto fallback"
|
||||
},
|
||||
"optionsUseExtensionProviders": "استخدام مزودي الإضافات",
|
||||
"@optionsUseExtensionProviders": {
|
||||
"description": "Legacy setting label for extension download providers"
|
||||
},
|
||||
"optionsUseExtensionProvidersOn": "مزودي الإضافات مفعلين",
|
||||
"@optionsUseExtensionProvidersOn": {
|
||||
"description": "Status when extension providers enabled"
|
||||
},
|
||||
"optionsUseExtensionProvidersOff": "مزودي الإضافات مطلوبين",
|
||||
"@optionsUseExtensionProvidersOff": {
|
||||
"description": "Legacy status when extension providers would be disabled"
|
||||
},
|
||||
"optionsEmbedLyrics": "تضمين كلمات الأغنية",
|
||||
"@optionsEmbedLyrics": {
|
||||
"description": "Embed lyrics in audio files"
|
||||
@@ -230,10 +206,6 @@
|
||||
"@trackReplayGain": {
|
||||
"description": "Three-dot menu option to scan loudness and write ReplayGain tags"
|
||||
},
|
||||
"trackReplayGainSubtitle": "تحليل ارتفاع الصوت وكتابة وسوم ReplayGain",
|
||||
"@trackReplayGainSubtitle": {
|
||||
"description": "Subtitle for the rescan ReplayGain menu option"
|
||||
},
|
||||
"trackReplayGainScanning": "تحليل الصوت...",
|
||||
"@trackReplayGainScanning": {
|
||||
"description": "Snackbar/progress message while scanning ReplayGain for a single track"
|
||||
@@ -310,11 +282,11 @@
|
||||
},
|
||||
"optionsExtensionStore": "مستودع الإضافات",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide store tab"
|
||||
"description": "Show/hide repo tab"
|
||||
},
|
||||
"optionsExtensionStoreSubtitle": "إظهار صفحة المستودع في شريط التنقل",
|
||||
"@optionsExtensionStoreSubtitle": {
|
||||
"description": "Subtitle for extension store toggle"
|
||||
"description": "Subtitle for extension repo toggle"
|
||||
},
|
||||
"optionsCheckUpdates": "التحقق من وجود تحديثات",
|
||||
"@optionsCheckUpdates": {
|
||||
@@ -360,31 +332,6 @@
|
||||
"@optionsDetailedLoggingOff": {
|
||||
"description": "Status when logging disabled"
|
||||
},
|
||||
"optionsSpotifyCredentials": "بيانات اعتماد Spotify",
|
||||
"@optionsSpotifyCredentials": {
|
||||
"description": "Spotify API credentials setting"
|
||||
},
|
||||
"optionsSpotifyCredentialsConfigured": "معرف العميل: {clientId}...",
|
||||
"@optionsSpotifyCredentialsConfigured": {
|
||||
"description": "Shows configured client ID preview",
|
||||
"placeholders": {
|
||||
"clientId": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsSpotifyCredentialsRequired": "مطلوب - انقر للتهيئة",
|
||||
"@optionsSpotifyCredentialsRequired": {
|
||||
"description": "Prompt to set up credentials"
|
||||
},
|
||||
"optionsSpotifyWarning": "Spotify يتطلب بيانات اعتماد API الخاصة بك. احصل عليها مجاناً من developer.spotify.com",
|
||||
"@optionsSpotifyWarning": {
|
||||
"description": "Info about Spotify API requirement"
|
||||
},
|
||||
"optionsSpotifyDeprecationWarning": "سيتم إلغاء البحث في Spotify في 3 مارس 2026 بسبب تغييرات API Spotify. الرجاء التبديل إلى Deezer.",
|
||||
"@optionsSpotifyDeprecationWarning": {
|
||||
"description": "Warning about Spotify API deprecation"
|
||||
},
|
||||
"extensionsTitle": "الإضافات",
|
||||
"@extensionsTitle": {
|
||||
"description": "Extensions page title"
|
||||
@@ -402,26 +349,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsAuthor": "من قِبل {author}",
|
||||
"@extensionsAuthor": {
|
||||
"description": "Extension author credit",
|
||||
"placeholders": {
|
||||
"author": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsUninstall": "إلغاء التثبيت",
|
||||
"@extensionsUninstall": {
|
||||
"description": "Uninstall extension button"
|
||||
},
|
||||
"storeTitle": "مستودع الإضافات",
|
||||
"@storeTitle": {
|
||||
"description": "Store screen title"
|
||||
"description": "Repo screen title"
|
||||
},
|
||||
"storeSearch": "البحث في الإضافات...",
|
||||
"@storeSearch": {
|
||||
"description": "Store search placeholder"
|
||||
"description": "Repo search placeholder"
|
||||
},
|
||||
"storeInstall": "تثبيت",
|
||||
"@storeInstall": {
|
||||
@@ -912,14 +850,6 @@
|
||||
"@snackbarHistoryCleared": {
|
||||
"description": "Snackbar - history deleted"
|
||||
},
|
||||
"snackbarCredentialsSaved": "تم حفظ بيانات الاعتماد",
|
||||
"@snackbarCredentialsSaved": {
|
||||
"description": "Snackbar - Spotify credentials saved"
|
||||
},
|
||||
"snackbarCredentialsCleared": "تم مسح بيانات الاعتماد",
|
||||
"@snackbarCredentialsCleared": {
|
||||
"description": "Snackbar - Spotify credentials removed"
|
||||
},
|
||||
"snackbarDeletedTracks": "تم حذف {count} {count, plural, zero {} one {أغنيتين} two {أغنيتين} few {أغانٍ} many {أغنية}=1{أغنية} other{أغانٍ}}",
|
||||
"@snackbarDeletedTracks": {
|
||||
"description": "Snackbar - tracks deleted",
|
||||
@@ -938,10 +868,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"snackbarFillAllFields": "من فضلك قم بإدخال جميع البيانات",
|
||||
"@snackbarFillAllFields": {
|
||||
"description": "Snackbar - validation error"
|
||||
},
|
||||
"snackbarViewQueue": "عرض قائمة الانتظار",
|
||||
"@snackbarViewQueue": {
|
||||
"description": "Snackbar action - view download queue"
|
||||
@@ -1055,14 +981,6 @@
|
||||
"@actionDeselect": {
|
||||
"description": "Action button - deselect all"
|
||||
},
|
||||
"actionRemoveCredentials": "إزالة بيانات الاعتماد",
|
||||
"@actionRemoveCredentials": {
|
||||
"description": "Action button - delete Spotify credentials"
|
||||
},
|
||||
"actionSaveCredentials": "حفظ بيانات الاعتماد",
|
||||
"@actionSaveCredentials": {
|
||||
"description": "Action button - save Spotify credentials"
|
||||
},
|
||||
"selectionSelected": "تم تحديد {count}",
|
||||
"@selectionSelected": {
|
||||
"description": "Selection count indicator",
|
||||
@@ -1236,6 +1154,19 @@
|
||||
"@updateNewVersionReady": {
|
||||
"description": "Update subtitle"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"updateCurrent": "الحالي",
|
||||
"@updateCurrent": {
|
||||
"description": "Label for current version"
|
||||
@@ -1272,10 +1203,6 @@
|
||||
"@providerPriorityInfo": {
|
||||
"description": "Info tip about fallback behavior"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsTitle": "المكون الإضافي الاحتياطي",
|
||||
"@providerPriorityFallbackExtensionsTitle": {
|
||||
"description": "Section title for choosing which download extensions can be used as fallback providers"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsDescription": "اختر إضافات التحميل المثبتة التي يمكن استخدامها أثناء الرجوع التلقائي للمزود الاحتياطي.",
|
||||
"@providerPriorityFallbackExtensionsDescription": {
|
||||
"description": "Section description for extension fallback selection"
|
||||
@@ -1284,10 +1211,6 @@
|
||||
"@providerPriorityFallbackExtensionsHint": {
|
||||
"description": "Hint below the extension fallback selection list"
|
||||
},
|
||||
"providerBuiltIn": "قديم",
|
||||
"@providerBuiltIn": {
|
||||
"description": "Legacy label retained for old generated localization compatibility"
|
||||
},
|
||||
"providerExtension": "الإضافة",
|
||||
"@providerExtension": {
|
||||
"description": "Label for extension-provided providers"
|
||||
@@ -1304,14 +1227,6 @@
|
||||
"@metadataProviderPriorityInfo": {
|
||||
"description": "Info tip about rate limits"
|
||||
},
|
||||
"metadataNoRateLimits": "لا حدود للطلبات",
|
||||
"@metadataNoRateLimits": {
|
||||
"description": "Deezer provider description"
|
||||
},
|
||||
"metadataMayRateLimit": "قد يفرض حدودا للطلب",
|
||||
"@metadataMayRateLimit": {
|
||||
"description": "Spotify provider description"
|
||||
},
|
||||
"logTitle": "السجلات",
|
||||
"@logTitle": {
|
||||
"description": "Logs screen title"
|
||||
@@ -1378,30 +1293,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"credentialsTitle": "بيانات اعتماد Spotify",
|
||||
"@credentialsTitle": {
|
||||
"description": "Credentials dialog title"
|
||||
},
|
||||
"credentialsDescription": "أدخل معرف العميل الخاص بك و الكود السري لاستخدام حصة تطبيق Spotify الخاصة بك.",
|
||||
"@credentialsDescription": {
|
||||
"description": "Credentials dialog explanation"
|
||||
},
|
||||
"credentialsClientId": "Client ID",
|
||||
"@credentialsClientId": {
|
||||
"description": "Client ID field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientIdHint": "لصق Client ID",
|
||||
"@credentialsClientIdHint": {
|
||||
"description": "Client ID placeholder"
|
||||
},
|
||||
"credentialsClientSecret": "Client Secret",
|
||||
"@credentialsClientSecret": {
|
||||
"description": "Client Secret field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientSecretHint": "لصق Client Secret",
|
||||
"@credentialsClientSecretHint": {
|
||||
"description": "Client Secret placeholder"
|
||||
},
|
||||
"channelStable": "مستقر",
|
||||
"@channelStable": {
|
||||
"description": "Update channel - stable releases"
|
||||
@@ -1510,10 +1401,6 @@
|
||||
"@settingsDownloadSubtitle": {
|
||||
"description": "Download settings description"
|
||||
},
|
||||
"settingsOptionsSubtitle": "الإحتياطات، البيانات الوصفية (metadata)، كلمات الأغاني، غلاف الأغنية",
|
||||
"@settingsOptionsSubtitle": {
|
||||
"description": "Options settings description"
|
||||
},
|
||||
"settingsExtensionsSubtitle": "إدارة موفري التحميل",
|
||||
"@settingsExtensionsSubtitle": {
|
||||
"description": "Extensions settings description"
|
||||
@@ -1730,27 +1617,27 @@
|
||||
},
|
||||
"storeFilterAll": "الكل",
|
||||
"@storeFilterAll": {
|
||||
"description": "Store filter - all extensions"
|
||||
"description": "Repo filter - all extensions"
|
||||
},
|
||||
"storeFilterMetadata": "البيانات الوصفية (Metadata)",
|
||||
"@storeFilterMetadata": {
|
||||
"description": "Store filter - metadata providers"
|
||||
"description": "Repo filter - metadata providers"
|
||||
},
|
||||
"storeFilterDownload": "التحميل",
|
||||
"@storeFilterDownload": {
|
||||
"description": "Store filter - download providers"
|
||||
"description": "Repo filter - download providers"
|
||||
},
|
||||
"storeFilterUtility": "الأدوات",
|
||||
"@storeFilterUtility": {
|
||||
"description": "Store filter - utility extensions"
|
||||
"description": "Repo filter - utility extensions"
|
||||
},
|
||||
"storeFilterLyrics": "كلمات الأغنية",
|
||||
"@storeFilterLyrics": {
|
||||
"description": "Store filter - lyrics providers"
|
||||
"description": "Repo filter - lyrics providers"
|
||||
},
|
||||
"storeFilterIntegration": "التكامل",
|
||||
"@storeFilterIntegration": {
|
||||
"description": "Store filter - integrations"
|
||||
"description": "Repo filter - integrations"
|
||||
},
|
||||
"storeClearFilters": "حذف الفلاتر",
|
||||
"@storeClearFilters": {
|
||||
@@ -1772,10 +1659,6 @@
|
||||
"@storeRepoUrlHint": {
|
||||
"description": "Hint/placeholder for the repository URL input field"
|
||||
},
|
||||
"storeRepoUrlHelper": "مثال: https://github.com/user/extensions-repo",
|
||||
"@storeRepoUrlHelper": {
|
||||
"description": "Helper text below the repository URL input field"
|
||||
},
|
||||
"storeAddRepoButton": "أضف مستودعًا",
|
||||
"@storeAddRepoButton": {
|
||||
"description": "Button to submit a new repository URL"
|
||||
@@ -1808,18 +1691,6 @@
|
||||
"@storeEmptyNoResults": {
|
||||
"description": "Message when search/filter returns no results"
|
||||
},
|
||||
"extensionDefaultProvider": "البحث الافتراضي",
|
||||
"@extensionDefaultProvider": {
|
||||
"description": "Default search provider option"
|
||||
},
|
||||
"extensionDefaultProviderSubtitle": "استخدام البحث الافتراضي عن البيانات الوصفية",
|
||||
"@extensionDefaultProviderSubtitle": {
|
||||
"description": "Subtitle for default provider"
|
||||
},
|
||||
"extensionAuthor": "المؤلف",
|
||||
"@extensionAuthor": {
|
||||
"description": "Extension detail - author"
|
||||
},
|
||||
"extensionId": "ID",
|
||||
"@extensionId": {
|
||||
"description": "Extension detail - unique ID"
|
||||
@@ -2087,10 +1958,6 @@
|
||||
"@downloadLossyOpus128Subtitle": {
|
||||
"description": "Subtitle for Opus 128kbps lossy option"
|
||||
},
|
||||
"qualityNote": "الجودة الفعلية تعتمد على المسار المتوفر من الخدمة",
|
||||
"@qualityNote": {
|
||||
"description": "Note about quality availability"
|
||||
},
|
||||
"downloadAskBeforeDownload": "اسأل قبل التحميل",
|
||||
"@downloadAskBeforeDownload": {
|
||||
"description": "Setting - show quality picker"
|
||||
@@ -2143,6 +2010,14 @@
|
||||
"@appearanceAmoledDarkSubtitle": {
|
||||
"description": "Subtitle for AMOLED dark"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"queueClearAll": "مسح الكل",
|
||||
"@queueClearAll": {
|
||||
"description": "Button - clear all queue items"
|
||||
@@ -2175,6 +2050,27 @@
|
||||
"@settingsDownloadNetworkSubtitle": {
|
||||
"description": "Subtitle explaining network preference"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"albumFolderArtistAlbum": "ألبوم / الفنان",
|
||||
"@albumFolderArtistAlbum": {
|
||||
"description": "Album folder option"
|
||||
@@ -2245,10 +2141,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadedAlbumAllSelected": "All tracks selected",
|
||||
"@downloadedAlbumAllSelected": {
|
||||
"description": "Status - all items selected"
|
||||
},
|
||||
"downloadedAlbumTapToSelect": "Tap tracks to select",
|
||||
"@downloadedAlbumTapToSelect": {
|
||||
"description": "Selection hint"
|
||||
@@ -2976,6 +2868,22 @@
|
||||
"@cacheLibraryCoverDesc": {
|
||||
"description": "Description of what library cover cache contains"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"cacheExploreFeed": "Explore feed cache",
|
||||
"@cacheExploreFeed": {
|
||||
"description": "Cache item title for explore home feed cache"
|
||||
@@ -3092,18 +3000,10 @@
|
||||
"@trackSaveCoverArt": {
|
||||
"description": "Menu action - save album cover art as file"
|
||||
},
|
||||
"trackSaveCoverArtSubtitle": "Save album art as .jpg file",
|
||||
"@trackSaveCoverArtSubtitle": {
|
||||
"description": "Subtitle for save cover art action"
|
||||
},
|
||||
"trackSaveLyrics": "Save Lyrics (.lrc)",
|
||||
"@trackSaveLyrics": {
|
||||
"description": "Menu action - save lyrics as .lrc file"
|
||||
},
|
||||
"trackSaveLyricsSubtitle": "Fetch and save lyrics as .lrc file",
|
||||
"@trackSaveLyricsSubtitle": {
|
||||
"description": "Subtitle for save lyrics action"
|
||||
},
|
||||
"trackSaveLyricsProgress": "Saving lyrics...",
|
||||
"@trackSaveLyricsProgress": {
|
||||
"description": "Snackbar while saving lyrics to file"
|
||||
@@ -3116,10 +3016,6 @@
|
||||
"@trackReEnrichOnlineSubtitle": {
|
||||
"description": "Subtitle for re-enrich metadata action for local items"
|
||||
},
|
||||
"trackReEnrichFieldsTitle": "Fields to update",
|
||||
"@trackReEnrichFieldsTitle": {
|
||||
"description": "Section title for field selection in re-enrich dialog"
|
||||
},
|
||||
"trackReEnrichFieldCover": "Cover Art",
|
||||
"@trackReEnrichFieldCover": {
|
||||
"description": "Checkbox label for cover art field in re-enrich"
|
||||
@@ -3203,18 +3099,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacFindingProgress": "Finding FLAC matches... ({current}/{total})",
|
||||
"@queueFlacFindingProgress": {
|
||||
"description": "Snackbar while resolving remote matches for local FLAC redownloads",
|
||||
"placeholders": {
|
||||
"current": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacNoReliableMatches": "No reliable online matches found for the selection",
|
||||
"@queueFlacNoReliableMatches": {
|
||||
"description": "Snackbar when no safe FLAC redownload matches were found"
|
||||
@@ -3244,10 +3128,6 @@
|
||||
"@trackConvertFormat": {
|
||||
"description": "Menu item - convert audio format"
|
||||
},
|
||||
"trackConvertFormatSubtitle": "Convert to AAC/M4A, MP3, Opus, ALAC, or FLAC",
|
||||
"@trackConvertFormatSubtitle": {
|
||||
"description": "Subtitle for convert format menu item"
|
||||
},
|
||||
"trackConvertTitle": "Convert Audio",
|
||||
"@trackConvertTitle": {
|
||||
"description": "Title of convert bottom sheet"
|
||||
@@ -3260,6 +3140,14 @@
|
||||
"@trackConvertBitrate": {
|
||||
"description": "Label for bitrate selection"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"trackConvertConfirmTitle": "Confirm Conversion",
|
||||
"@trackConvertConfirmTitle": {
|
||||
"description": "Confirmation dialog title"
|
||||
@@ -3291,6 +3179,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"trackConvertLosslessHint": "Lossless conversion — no quality loss",
|
||||
"@trackConvertLosslessHint": {
|
||||
"description": "Hint shown when converting between lossless formats"
|
||||
@@ -3316,10 +3216,6 @@
|
||||
"@cueSplitTitle": {
|
||||
"description": "Title for CUE split bottom sheet"
|
||||
},
|
||||
"cueSplitSubtitle": "Split CUE+FLAC into individual tracks",
|
||||
"@cueSplitSubtitle": {
|
||||
"description": "Subtitle for CUE split menu item"
|
||||
},
|
||||
"cueSplitAlbum": "Album: {album}",
|
||||
"@cueSplitAlbum": {
|
||||
"description": "Album name in CUE split sheet",
|
||||
@@ -3416,10 +3312,6 @@
|
||||
"@collectionFavoriteArtists": {
|
||||
"description": "Custom folder for favorite artists"
|
||||
},
|
||||
"collectionPlaylists": "Playlists",
|
||||
"@collectionPlaylists": {
|
||||
"description": "Custom user playlists folder"
|
||||
},
|
||||
"collectionPlaylist": "Playlist",
|
||||
"@collectionPlaylist": {
|
||||
"description": "Single playlist label"
|
||||
@@ -3436,10 +3328,6 @@
|
||||
"@collectionNoPlaylistsYet": {
|
||||
"description": "Empty state title when user has no playlists"
|
||||
},
|
||||
"collectionNoPlaylistsSubtitle": "Create a playlist to start categorizing tracks",
|
||||
"@collectionNoPlaylistsSubtitle": {
|
||||
"description": "Empty state subtitle when user has no playlists"
|
||||
},
|
||||
"collectionPlaylistTracks": "{count, plural, =1{1 track} other{{count} tracks}}",
|
||||
"@collectionPlaylistTracks": {
|
||||
"description": "Track count label for custom playlists",
|
||||
@@ -3476,10 +3364,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistCreated": "Playlist created",
|
||||
"@collectionPlaylistCreated": {
|
||||
"description": "Snackbar after creating playlist"
|
||||
},
|
||||
"collectionPlaylistNameHint": "Playlist name",
|
||||
"@collectionPlaylistNameHint": {
|
||||
"description": "Hint text for playlist name input"
|
||||
@@ -3496,19 +3380,6 @@
|
||||
"@collectionDeletePlaylist": {
|
||||
"description": "Action to delete playlist"
|
||||
},
|
||||
"collectionDeletePlaylistMessage": "Delete \"{playlistName}\" and all tracks inside it?",
|
||||
"@collectionDeletePlaylistMessage": {
|
||||
"description": "Confirmation message for deleting playlist",
|
||||
"placeholders": {
|
||||
"playlistName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistDeleted": "Playlist deleted",
|
||||
"@collectionPlaylistDeleted": {
|
||||
"description": "Snackbar after deleting playlist"
|
||||
},
|
||||
"collectionPlaylistRenamed": "Playlist renamed",
|
||||
"@collectionPlaylistRenamed": {
|
||||
"description": "Snackbar after renaming playlist"
|
||||
@@ -3553,15 +3424,6 @@
|
||||
"@collectionRemoveFromFolder": {
|
||||
"description": "Tooltip for removing track from wishlist/loved folder"
|
||||
},
|
||||
"collectionRemoved": "\"{trackName}\" removed",
|
||||
"@collectionRemoved": {
|
||||
"description": "Snackbar after removing a track from a collection",
|
||||
"placeholders": {
|
||||
"trackName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionAddedToLoved": "\"{trackName}\" added to Loved",
|
||||
"@collectionAddedToLoved": {
|
||||
"description": "Snackbar after adding track to loved folder",
|
||||
@@ -3705,15 +3567,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionBatchConvertProgress": "Converting {current} of {total}...",
|
||||
"@selectionBatchConvertProgress": {
|
||||
"description": "Snackbar during batch conversion progress",
|
||||
"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": {
|
||||
"current": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
"format": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3879,10 +3741,6 @@
|
||||
"@backupImportButton": {
|
||||
"description": "Button to pick a backup file to restore"
|
||||
},
|
||||
"backupCreating": "Creating backup...",
|
||||
"@backupCreating": {
|
||||
"description": "Progress text while a backup is being created"
|
||||
},
|
||||
"backupCreated": "Backup created",
|
||||
"@backupCreated": {
|
||||
"description": "Snackbar after a backup file is created"
|
||||
@@ -3891,10 +3749,6 @@
|
||||
"@backupCreateFailed": {
|
||||
"description": "Snackbar when backup creation fails"
|
||||
},
|
||||
"backupEmpty": "There is nothing to back up yet",
|
||||
"@backupEmpty": {
|
||||
"description": "Snackbar when there is no data to back up"
|
||||
},
|
||||
"backupRestoreConfirmTitle": "Restore this backup?",
|
||||
"@backupRestoreConfirmTitle": {
|
||||
"description": "Confirmation dialog title before restoring a backup"
|
||||
@@ -3907,10 +3761,6 @@
|
||||
"@backupRestoreConfirmButton": {
|
||||
"description": "Confirm button to proceed with restore"
|
||||
},
|
||||
"backupRestoring": "Restoring backup...",
|
||||
"@backupRestoring": {
|
||||
"description": "Progress text while restoring a backup"
|
||||
},
|
||||
"backupRestored": "Backup restored successfully",
|
||||
"@backupRestored": {
|
||||
"description": "Snackbar after a successful restore"
|
||||
@@ -3997,7 +3847,7 @@
|
||||
"@backupIncludeSecretsDescription": {
|
||||
"description": "Explanation for the include-credentials toggle"
|
||||
},
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the store.",
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the repo.",
|
||||
"@backupExtensionsRestoreFailed": {
|
||||
"description": "Snackbar/hint when some extensions failed to reinstall during restore",
|
||||
"placeholders": {
|
||||
@@ -4110,6 +3960,26 @@
|
||||
"@storageModeSafSubtitle": {
|
||||
"description": "Subtitle for SAF storage mode"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFilenameDescription": "Use {artist}, {title}, {album}, {track}, {year}, {date}, {disc} as placeholders.",
|
||||
"@downloadFilenameDescription": {
|
||||
"description": "Description shown in filename format editor"
|
||||
@@ -4178,10 +4048,6 @@
|
||||
"@downloadSelectServiceToEnable": {
|
||||
"description": "Subtitle when quality picker is disabled due to extension service"
|
||||
},
|
||||
"downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality",
|
||||
"@downloadSelectTidalQobuz": {
|
||||
"description": "Legacy info shown when a provider does not expose quality options"
|
||||
},
|
||||
"downloadEmbedLyricsDisabled": "Enable metadata embedding first",
|
||||
"@downloadEmbedLyricsDisabled": {
|
||||
"description": "Subtitle when lyrics embedding is blocked by metadata toggle"
|
||||
@@ -4430,10 +4296,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueDownloadedHeader": "Downloaded",
|
||||
"@queueDownloadedHeader": {
|
||||
"description": "Header label for downloaded items section in library"
|
||||
},
|
||||
"queueFilteringIndicator": "Filtering...",
|
||||
"@queueFilteringIndicator": {
|
||||
"description": "Shown while filter results are being computed"
|
||||
@@ -4588,15 +4450,6 @@
|
||||
"@audioAnalysisRescanning": {
|
||||
"description": "Loading text while audio is being re-analyzed after an explicit refresh"
|
||||
},
|
||||
"extensionsSearchWith": "Search with {providerName}",
|
||||
"@extensionsSearchWith": {
|
||||
"description": "Extensions page - subtitle for default metadata search provider option",
|
||||
"placeholders": {
|
||||
"providerName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsHomeFeedProvider": "Home Feed Provider",
|
||||
"@extensionsHomeFeedProvider": {
|
||||
"description": "Extensions page - label for home feed provider selector"
|
||||
@@ -4634,14 +4487,6 @@
|
||||
"@extensionsNoHomeFeedExtensions": {
|
||||
"description": "Extensions page - shown when no installed extension has home feed"
|
||||
},
|
||||
"sortAlphaAsc": "A-Z",
|
||||
"@sortAlphaAsc": {
|
||||
"description": "Sort option - alphabetical ascending"
|
||||
},
|
||||
"sortAlphaDesc": "Z-A",
|
||||
"@sortAlphaDesc": {
|
||||
"description": "Sort option - alphabetical descending"
|
||||
},
|
||||
"cancelDownloadTitle": "Cancel download?",
|
||||
"@cancelDownloadTitle": {
|
||||
"description": "Dialog title when confirming cancellation of an active download"
|
||||
@@ -4676,34 +4521,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorLoadAlbum": "Failed to load album",
|
||||
"@errorLoadAlbum": {
|
||||
"description": "Error state shown when album fails to load"
|
||||
},
|
||||
"errorLoadPlaylist": "Failed to load playlist",
|
||||
"@errorLoadPlaylist": {
|
||||
"description": "Error state shown when playlist fails to load"
|
||||
},
|
||||
"errorLoadArtist": "Failed to load artist",
|
||||
"@errorLoadArtist": {
|
||||
"description": "Error state shown when artist fails to load"
|
||||
},
|
||||
"notifChannelDownloadName": "Download Progress",
|
||||
"@notifChannelDownloadName": {
|
||||
"description": "Android notification channel name for download progress"
|
||||
},
|
||||
"notifChannelDownloadDesc": "Shows download progress for tracks",
|
||||
"@notifChannelDownloadDesc": {
|
||||
"description": "Android notification channel description for download progress"
|
||||
},
|
||||
"notifChannelLibraryScanName": "Library Scan",
|
||||
"@notifChannelLibraryScanName": {
|
||||
"description": "Android notification channel name for library scan"
|
||||
},
|
||||
"notifChannelLibraryScanDesc": "Shows local library scan progress",
|
||||
"@notifChannelLibraryScanDesc": {
|
||||
"description": "Android notification channel description for library scan"
|
||||
},
|
||||
"notifDownloadingTrack": "Downloading {trackName}",
|
||||
"@notifDownloadingTrack": {
|
||||
"description": "Notification title while downloading a track",
|
||||
@@ -4770,6 +4587,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"notifAllDownloadsComplete": "All Downloads Complete",
|
||||
"@notifAllDownloadsComplete": {
|
||||
"description": "Notification title when all downloads finish successfully"
|
||||
@@ -4956,14 +4781,6 @@
|
||||
"@actionPaste": {
|
||||
"description": "Generic action - paste from clipboard"
|
||||
},
|
||||
"searchTracksHint": "Search tracks...",
|
||||
"@searchTracksHint": {
|
||||
"description": "Placeholder for the search screen input"
|
||||
},
|
||||
"searchTracksEmptyPrompt": "Search for tracks",
|
||||
"@searchTracksEmptyPrompt": {
|
||||
"description": "Empty-state prompt on the search screen"
|
||||
},
|
||||
"tutorialSearchHint": "Paste or search...",
|
||||
"@tutorialSearchHint": {
|
||||
"description": "Placeholder shown in the tutorial search demo"
|
||||
@@ -4992,14 +4809,6 @@
|
||||
"@optionsEmbedMetadataSubtitleOff": {
|
||||
"description": "Subtitle when metadata embedding is disabled"
|
||||
},
|
||||
"optionsMaxQualityCoverSubtitleDisabled": "Disabled when metadata embedding is off",
|
||||
"@optionsMaxQualityCoverSubtitleDisabled": {
|
||||
"description": "Subtitle for max quality cover when metadata embedding is disabled"
|
||||
},
|
||||
"downloadFilenameHintExample": "{artist} - {title}",
|
||||
"@downloadFilenameHintExample": {
|
||||
"description": "Example placeholder for the download filename format input"
|
||||
},
|
||||
"trackCoverNoEmbeddedArt": "No embedded album art found",
|
||||
"@trackCoverNoEmbeddedArt": {
|
||||
"description": "Message shown when a track file has no embedded cover art"
|
||||
@@ -5239,14 +5048,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsDefaultSearchTabAlbums": "Albums",
|
||||
"@optionsDefaultSearchTabAlbums": {
|
||||
"description": "Default search tab option - Albums tab"
|
||||
},
|
||||
"optionsDefaultSearchTabTracks": "Tracks",
|
||||
"@optionsDefaultSearchTabTracks": {
|
||||
"description": "Default search tab option - Tracks tab"
|
||||
},
|
||||
"settingsFiles": "Files & Folders",
|
||||
"@settingsFiles": {
|
||||
"description": "Settings menu item - file and folder settings"
|
||||
@@ -5307,10 +5108,26 @@
|
||||
"@downloadDeduplicationEnabled": {
|
||||
"description": "Subtitle when deduplication is on"
|
||||
},
|
||||
"downloadDeduplicationWithQualityVariants": "Existing files at the selected quality will be skipped",
|
||||
"@downloadDeduplicationWithQualityVariants": {
|
||||
"description": "Deduplication subtitle when separate quality versions are allowed"
|
||||
},
|
||||
"downloadDeduplicationDisabled": "All tracks will be downloaded regardless of history",
|
||||
"@downloadDeduplicationDisabled": {
|
||||
"description": "Subtitle when deduplication is off"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFallbackExtensions": "Fallback Extensions",
|
||||
"@downloadFallbackExtensions": {
|
||||
"description": "Settings item for configuring fallback extension providers"
|
||||
@@ -5451,6 +5268,11 @@
|
||||
}
|
||||
},
|
||||
"queueDownloadStarting": "Starting...",
|
||||
"queueCheckingDownloadSession": "Checking download session...",
|
||||
"queueResolvingDownloadMetadata": "Resolving track metadata...",
|
||||
"queueResolvingDownloadStream": "Preparing audio stream...",
|
||||
"queueWaitingForVerification": "Waiting for verification...",
|
||||
"queueResumingAfterVerification": "Resuming after verification...",
|
||||
"@queueDownloadStarting": {
|
||||
"description": "Queue status before download progress is available"
|
||||
},
|
||||
@@ -5539,7 +5361,7 @@
|
||||
"@downloadNativeWorker": {
|
||||
"description": "Setting title for Android native download worker"
|
||||
},
|
||||
"downloadNativeWorkerSubtitle": "Beta Android service worker for extension downloads",
|
||||
"downloadNativeWorkerSubtitle": "Android background service for extension downloads",
|
||||
"@downloadNativeWorkerSubtitle": {
|
||||
"description": "Setting subtitle for Android native download worker"
|
||||
},
|
||||
@@ -5699,10 +5521,6 @@
|
||||
"@errorInvalidFolderSelected": {
|
||||
"description": "Error when the selected folder is invalid"
|
||||
},
|
||||
"errorCouldNotKeepFolderAccess": "Could not keep access to the selected folder",
|
||||
"@errorCouldNotKeepFolderAccess": {
|
||||
"description": "Error when persistent folder access cannot be saved"
|
||||
},
|
||||
"storeAnyVersion": "Any",
|
||||
"@storeAnyVersion": {
|
||||
"description": "Store detail value when any app version is accepted"
|
||||
|
||||
+158
-340
@@ -19,7 +19,7 @@
|
||||
},
|
||||
"navStore": "Repo",
|
||||
"@navStore": {
|
||||
"description": "Bottom navigation - Extension store tab"
|
||||
"description": "Bottom navigation - Extension repo tab"
|
||||
},
|
||||
"homeTitle": "Startseite",
|
||||
"@homeTitle": {
|
||||
@@ -73,10 +73,6 @@
|
||||
"@settingsAppearance": {
|
||||
"description": "Settings section - visual customization"
|
||||
},
|
||||
"settingsOptions": "Optionen",
|
||||
"@settingsOptions": {
|
||||
"description": "Settings section - app options"
|
||||
},
|
||||
"settingsExtensions": "Erweiterungen",
|
||||
"@settingsExtensions": {
|
||||
"description": "Settings section - extension management"
|
||||
@@ -145,10 +141,6 @@
|
||||
"@appearanceHistoryViewGrid": {
|
||||
"description": "Grid layout option"
|
||||
},
|
||||
"optionsTitle": "Optionen",
|
||||
"@optionsTitle": {
|
||||
"description": "Options settings page title"
|
||||
},
|
||||
"optionsPrimaryProvider": "Primärer Anbieter",
|
||||
"@optionsPrimaryProvider": {
|
||||
"description": "Main search provider setting"
|
||||
@@ -174,10 +166,6 @@
|
||||
"@optionsDefaultSearchTabSubtitle": {
|
||||
"description": "Subtitle for the preferred default search tab setting"
|
||||
},
|
||||
"optionsSwitchBack": "Choose the default search provider to switch back from an extension",
|
||||
"@optionsSwitchBack": {
|
||||
"description": "Hint to switch back from extension search"
|
||||
},
|
||||
"optionsAutoFallback": "Automatischer Fallback",
|
||||
"@optionsAutoFallback": {
|
||||
"description": "Auto-retry with other services"
|
||||
@@ -186,18 +174,6 @@
|
||||
"@optionsAutoFallbackSubtitle": {
|
||||
"description": "Subtitle for auto fallback"
|
||||
},
|
||||
"optionsUseExtensionProviders": "Erweiterungsanbieter verwenden",
|
||||
"@optionsUseExtensionProviders": {
|
||||
"description": "Legacy setting label for extension download providers"
|
||||
},
|
||||
"optionsUseExtensionProvidersOn": "Extension providers are enabled",
|
||||
"@optionsUseExtensionProvidersOn": {
|
||||
"description": "Status when extension providers enabled"
|
||||
},
|
||||
"optionsUseExtensionProvidersOff": "Extension providers are required",
|
||||
"@optionsUseExtensionProvidersOff": {
|
||||
"description": "Legacy status when extension providers would be disabled"
|
||||
},
|
||||
"optionsEmbedLyrics": "Liedtexte einbetten",
|
||||
"@optionsEmbedLyrics": {
|
||||
"description": "Embed lyrics in audio files"
|
||||
@@ -230,10 +206,6 @@
|
||||
"@trackReplayGain": {
|
||||
"description": "Three-dot menu option to scan loudness and write ReplayGain tags"
|
||||
},
|
||||
"trackReplayGainSubtitle": "Analyze loudness and write ReplayGain tags",
|
||||
"@trackReplayGainSubtitle": {
|
||||
"description": "Subtitle for the rescan ReplayGain menu option"
|
||||
},
|
||||
"trackReplayGainScanning": "Analyzing loudness...",
|
||||
"@trackReplayGainScanning": {
|
||||
"description": "Snackbar/progress message while scanning ReplayGain for a single track"
|
||||
@@ -310,11 +282,11 @@
|
||||
},
|
||||
"optionsExtensionStore": "Erweiterungs-Repo",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide store tab"
|
||||
"description": "Show/hide repo tab"
|
||||
},
|
||||
"optionsExtensionStoreSubtitle": "Repo-Tab in der Navigation anzeigen",
|
||||
"@optionsExtensionStoreSubtitle": {
|
||||
"description": "Subtitle for extension store toggle"
|
||||
"description": "Subtitle for extension repo toggle"
|
||||
},
|
||||
"optionsCheckUpdates": "Nach Updates suchen",
|
||||
"@optionsCheckUpdates": {
|
||||
@@ -360,31 +332,6 @@
|
||||
"@optionsDetailedLoggingOff": {
|
||||
"description": "Status when logging disabled"
|
||||
},
|
||||
"optionsSpotifyCredentials": "Spotify-Anmeldedaten",
|
||||
"@optionsSpotifyCredentials": {
|
||||
"description": "Spotify API credentials setting"
|
||||
},
|
||||
"optionsSpotifyCredentialsConfigured": "Client-ID: {clientId}...",
|
||||
"@optionsSpotifyCredentialsConfigured": {
|
||||
"description": "Shows configured client ID preview",
|
||||
"placeholders": {
|
||||
"clientId": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsSpotifyCredentialsRequired": "Erforderlich - zum Konfigurieren tippen",
|
||||
"@optionsSpotifyCredentialsRequired": {
|
||||
"description": "Prompt to set up credentials"
|
||||
},
|
||||
"optionsSpotifyWarning": "Spotify erfordert eigene API-Anmeldedaten. Kostenlos erhältlich auf developer.spotify.com",
|
||||
"@optionsSpotifyWarning": {
|
||||
"description": "Info about Spotify API requirement"
|
||||
},
|
||||
"optionsSpotifyDeprecationWarning": "Spotify-Suche wird am 3. März 2026 aufgrund von Änderungen der Spotify-API entfernt. Bitte wechsel vorher zu Deezer.",
|
||||
"@optionsSpotifyDeprecationWarning": {
|
||||
"description": "Warning about Spotify API deprecation"
|
||||
},
|
||||
"extensionsTitle": "Erweiterungen",
|
||||
"@extensionsTitle": {
|
||||
"description": "Extensions page title"
|
||||
@@ -402,26 +349,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsAuthor": "von {author}",
|
||||
"@extensionsAuthor": {
|
||||
"description": "Extension author credit",
|
||||
"placeholders": {
|
||||
"author": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsUninstall": "Deinstallieren",
|
||||
"@extensionsUninstall": {
|
||||
"description": "Uninstall extension button"
|
||||
},
|
||||
"storeTitle": "Erweiterungs-Repo",
|
||||
"@storeTitle": {
|
||||
"description": "Store screen title"
|
||||
"description": "Repo screen title"
|
||||
},
|
||||
"storeSearch": "Erweiterungen suchen...",
|
||||
"@storeSearch": {
|
||||
"description": "Store search placeholder"
|
||||
"description": "Repo search placeholder"
|
||||
},
|
||||
"storeInstall": "Installieren",
|
||||
"@storeInstall": {
|
||||
@@ -772,11 +710,11 @@
|
||||
"@dialogDownload": {
|
||||
"description": "Confirm button in Download All dialog"
|
||||
},
|
||||
"previewPlay": "Play preview",
|
||||
"previewPlay": "Vorschau abspielen",
|
||||
"@previewPlay": {
|
||||
"description": "Tooltip for the button that plays a short track preview snippet"
|
||||
},
|
||||
"previewStop": "Stop preview",
|
||||
"previewStop": "Vorschau stoppen",
|
||||
"@previewStop": {
|
||||
"description": "Tooltip for the button that stops the playing track preview snippet"
|
||||
},
|
||||
@@ -912,14 +850,6 @@
|
||||
"@snackbarHistoryCleared": {
|
||||
"description": "Snackbar - history deleted"
|
||||
},
|
||||
"snackbarCredentialsSaved": "Anmeldedaten gespeichert",
|
||||
"@snackbarCredentialsSaved": {
|
||||
"description": "Snackbar - Spotify credentials saved"
|
||||
},
|
||||
"snackbarCredentialsCleared": "Anmeldedaten gelöscht",
|
||||
"@snackbarCredentialsCleared": {
|
||||
"description": "Snackbar - Spotify credentials removed"
|
||||
},
|
||||
"snackbarDeletedTracks": "{count} {count, plural, =1{Titel} other{Titel}}",
|
||||
"@snackbarDeletedTracks": {
|
||||
"description": "Snackbar - tracks deleted",
|
||||
@@ -938,10 +868,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"snackbarFillAllFields": "Bitte fülle alle Felder aus",
|
||||
"@snackbarFillAllFields": {
|
||||
"description": "Snackbar - validation error"
|
||||
},
|
||||
"snackbarViewQueue": "Warteschlange anzeigen",
|
||||
"@snackbarViewQueue": {
|
||||
"description": "Snackbar action - view download queue"
|
||||
@@ -1055,14 +981,6 @@
|
||||
"@actionDeselect": {
|
||||
"description": "Action button - deselect all"
|
||||
},
|
||||
"actionRemoveCredentials": "Anmeldedaten entfernen",
|
||||
"@actionRemoveCredentials": {
|
||||
"description": "Action button - delete Spotify credentials"
|
||||
},
|
||||
"actionSaveCredentials": "Anmeldedaten speichern",
|
||||
"@actionSaveCredentials": {
|
||||
"description": "Action button - save Spotify credentials"
|
||||
},
|
||||
"selectionSelected": "{count} ausgewählt",
|
||||
"@selectionSelected": {
|
||||
"description": "Selection count indicator",
|
||||
@@ -1236,6 +1154,19 @@
|
||||
"@updateNewVersionReady": {
|
||||
"description": "Update subtitle"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"updateCurrent": "Aktuell",
|
||||
"@updateCurrent": {
|
||||
"description": "Label for current version"
|
||||
@@ -1272,10 +1203,6 @@
|
||||
"@providerPriorityInfo": {
|
||||
"description": "Info tip about fallback behavior"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsTitle": "Erweiterungs-Fallback",
|
||||
"@providerPriorityFallbackExtensionsTitle": {
|
||||
"description": "Section title for choosing which download extensions can be used as fallback providers"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsDescription": "Wähle aus, welche installierten Download-Erweiterungen beim automatischen Fallback verwendet werden sollen.",
|
||||
"@providerPriorityFallbackExtensionsDescription": {
|
||||
"description": "Section description for extension fallback selection"
|
||||
@@ -1284,10 +1211,6 @@
|
||||
"@providerPriorityFallbackExtensionsHint": {
|
||||
"description": "Hint below the extension fallback selection list"
|
||||
},
|
||||
"providerBuiltIn": "Legacy",
|
||||
"@providerBuiltIn": {
|
||||
"description": "Legacy label retained for old generated localization compatibility"
|
||||
},
|
||||
"providerExtension": "Erweiterung",
|
||||
"@providerExtension": {
|
||||
"description": "Label for extension-provided providers"
|
||||
@@ -1304,15 +1227,7 @@
|
||||
"@metadataProviderPriorityInfo": {
|
||||
"description": "Info tip about rate limits"
|
||||
},
|
||||
"metadataNoRateLimits": "Keine Limitierungen",
|
||||
"@metadataNoRateLimits": {
|
||||
"description": "Deezer provider description"
|
||||
},
|
||||
"metadataMayRateLimit": "Hat vielleicht Limitierungen",
|
||||
"@metadataMayRateLimit": {
|
||||
"description": "Spotify provider description"
|
||||
},
|
||||
"logTitle": "Logs",
|
||||
"logTitle": "Protokolle",
|
||||
"@logTitle": {
|
||||
"description": "Logs screen title"
|
||||
},
|
||||
@@ -1378,30 +1293,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"credentialsTitle": "Spotify-Anmeldedaten",
|
||||
"@credentialsTitle": {
|
||||
"description": "Credentials dialog title"
|
||||
},
|
||||
"credentialsDescription": "Gebe deine Client-ID und Secret ein, um dein eigenes Spotify Anwendungs Limit zu haben.",
|
||||
"@credentialsDescription": {
|
||||
"description": "Credentials dialog explanation"
|
||||
},
|
||||
"credentialsClientId": "Client ID",
|
||||
"@credentialsClientId": {
|
||||
"description": "Client ID field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientIdHint": "Client ID einfügen",
|
||||
"@credentialsClientIdHint": {
|
||||
"description": "Client ID placeholder"
|
||||
},
|
||||
"credentialsClientSecret": "Client Secret",
|
||||
"@credentialsClientSecret": {
|
||||
"description": "Client Secret field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientSecretHint": "Client Secret einfügen",
|
||||
"@credentialsClientSecretHint": {
|
||||
"description": "Client Secret placeholder"
|
||||
},
|
||||
"channelStable": "Stabil",
|
||||
"@channelStable": {
|
||||
"description": "Update channel - stable releases"
|
||||
@@ -1510,10 +1401,6 @@
|
||||
"@settingsDownloadSubtitle": {
|
||||
"description": "Download settings description"
|
||||
},
|
||||
"settingsOptionsSubtitle": "Fallback, Metadaten, Lyrics, Cover-Art",
|
||||
"@settingsOptionsSubtitle": {
|
||||
"description": "Options settings description"
|
||||
},
|
||||
"settingsExtensionsSubtitle": "Download-Anbieter verwalten",
|
||||
"@settingsExtensionsSubtitle": {
|
||||
"description": "Extensions settings description"
|
||||
@@ -1730,27 +1617,27 @@
|
||||
},
|
||||
"storeFilterAll": "Alle",
|
||||
"@storeFilterAll": {
|
||||
"description": "Store filter - all extensions"
|
||||
"description": "Repo filter - all extensions"
|
||||
},
|
||||
"storeFilterMetadata": "Metadaten",
|
||||
"@storeFilterMetadata": {
|
||||
"description": "Store filter - metadata providers"
|
||||
"description": "Repo filter - metadata providers"
|
||||
},
|
||||
"storeFilterDownload": "Herunterladen",
|
||||
"@storeFilterDownload": {
|
||||
"description": "Store filter - download providers"
|
||||
"description": "Repo filter - download providers"
|
||||
},
|
||||
"storeFilterUtility": "Utility",
|
||||
"@storeFilterUtility": {
|
||||
"description": "Store filter - utility extensions"
|
||||
"description": "Repo filter - utility extensions"
|
||||
},
|
||||
"storeFilterLyrics": "Lyrics",
|
||||
"@storeFilterLyrics": {
|
||||
"description": "Store filter - lyrics providers"
|
||||
"description": "Repo filter - lyrics providers"
|
||||
},
|
||||
"storeFilterIntegration": "Integration",
|
||||
"@storeFilterIntegration": {
|
||||
"description": "Store filter - integrations"
|
||||
"description": "Repo filter - integrations"
|
||||
},
|
||||
"storeClearFilters": "Filter entfernen",
|
||||
"@storeClearFilters": {
|
||||
@@ -1772,10 +1659,6 @@
|
||||
"@storeRepoUrlHint": {
|
||||
"description": "Hint/placeholder for the repository URL input field"
|
||||
},
|
||||
"storeRepoUrlHelper": "z.B. https://github.com/user/extensions-repo",
|
||||
"@storeRepoUrlHelper": {
|
||||
"description": "Helper text below the repository URL input field"
|
||||
},
|
||||
"storeAddRepoButton": "Repository hinzufügen",
|
||||
"@storeAddRepoButton": {
|
||||
"description": "Button to submit a new repository URL"
|
||||
@@ -1808,18 +1691,6 @@
|
||||
"@storeEmptyNoResults": {
|
||||
"description": "Message when search/filter returns no results"
|
||||
},
|
||||
"extensionDefaultProvider": "Default Search",
|
||||
"@extensionDefaultProvider": {
|
||||
"description": "Default search provider option"
|
||||
},
|
||||
"extensionDefaultProviderSubtitle": "Use the default metadata search",
|
||||
"@extensionDefaultProviderSubtitle": {
|
||||
"description": "Subtitle for default provider"
|
||||
},
|
||||
"extensionAuthor": "Entwickler",
|
||||
"@extensionAuthor": {
|
||||
"description": "Extension detail - author"
|
||||
},
|
||||
"extensionId": "ID",
|
||||
"@extensionId": {
|
||||
"description": "Extension detail - unique ID"
|
||||
@@ -2087,10 +1958,6 @@
|
||||
"@downloadLossyOpus128Subtitle": {
|
||||
"description": "Subtitle for Opus 128kbps lossy option"
|
||||
},
|
||||
"qualityNote": "Die eigentliche Qualität hängt von der Verfügbarkeit des Dienstes ab",
|
||||
"@qualityNote": {
|
||||
"description": "Note about quality availability"
|
||||
},
|
||||
"downloadAskBeforeDownload": "Qualität vor Download fragen",
|
||||
"@downloadAskBeforeDownload": {
|
||||
"description": "Setting - show quality picker"
|
||||
@@ -2143,6 +2010,14 @@
|
||||
"@appearanceAmoledDarkSubtitle": {
|
||||
"description": "Subtitle for AMOLED dark"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"queueClearAll": "Alles löschen",
|
||||
"@queueClearAll": {
|
||||
"description": "Button - clear all queue items"
|
||||
@@ -2175,6 +2050,27 @@
|
||||
"@settingsDownloadNetworkSubtitle": {
|
||||
"description": "Subtitle explaining network preference"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"albumFolderArtistAlbum": "Künstler/Album",
|
||||
"@albumFolderArtistAlbum": {
|
||||
"description": "Album folder option"
|
||||
@@ -2245,10 +2141,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadedAlbumAllSelected": "Alle Titel sind ausgewählt",
|
||||
"@downloadedAlbumAllSelected": {
|
||||
"description": "Status - all items selected"
|
||||
},
|
||||
"downloadedAlbumTapToSelect": "Tippe auf Titel zum Auswählen",
|
||||
"@downloadedAlbumTapToSelect": {
|
||||
"description": "Selection hint"
|
||||
@@ -2976,6 +2868,22 @@
|
||||
"@cacheLibraryCoverDesc": {
|
||||
"description": "Description of what library cover cache contains"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"cacheExploreFeed": "Feed-Cache entdecken",
|
||||
"@cacheExploreFeed": {
|
||||
"description": "Cache item title for explore home feed cache"
|
||||
@@ -3092,18 +3000,10 @@
|
||||
"@trackSaveCoverArt": {
|
||||
"description": "Menu action - save album cover art as file"
|
||||
},
|
||||
"trackSaveCoverArtSubtitle": "Albumcover als .jpg Datei speichern",
|
||||
"@trackSaveCoverArtSubtitle": {
|
||||
"description": "Subtitle for save cover art action"
|
||||
},
|
||||
"trackSaveLyrics": "Lyrics als .lrc speichern",
|
||||
"@trackSaveLyrics": {
|
||||
"description": "Menu action - save lyrics as .lrc file"
|
||||
},
|
||||
"trackSaveLyricsSubtitle": "Lade Lyrics als .lrc Datei",
|
||||
"@trackSaveLyricsSubtitle": {
|
||||
"description": "Subtitle for save lyrics action"
|
||||
},
|
||||
"trackSaveLyricsProgress": "Speichere Lyrics...",
|
||||
"@trackSaveLyricsProgress": {
|
||||
"description": "Snackbar while saving lyrics to file"
|
||||
@@ -3116,10 +3016,6 @@
|
||||
"@trackReEnrichOnlineSubtitle": {
|
||||
"description": "Subtitle for re-enrich metadata action for local items"
|
||||
},
|
||||
"trackReEnrichFieldsTitle": "Felder zum Aktualisieren",
|
||||
"@trackReEnrichFieldsTitle": {
|
||||
"description": "Section title for field selection in re-enrich dialog"
|
||||
},
|
||||
"trackReEnrichFieldCover": "Cover-Art",
|
||||
"@trackReEnrichFieldCover": {
|
||||
"description": "Checkbox label for cover art field in re-enrich"
|
||||
@@ -3203,18 +3099,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacFindingProgress": "Suche nach FLAC-Übereinstimmungen... ({current}/{total})",
|
||||
"@queueFlacFindingProgress": {
|
||||
"description": "Snackbar while resolving remote matches for local FLAC redownloads",
|
||||
"placeholders": {
|
||||
"current": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacNoReliableMatches": "Keine zuverlässigen Online-Übereinstimmungen für die Auswahl gefunden",
|
||||
"@queueFlacNoReliableMatches": {
|
||||
"description": "Snackbar when no safe FLAC redownload matches were found"
|
||||
@@ -3244,10 +3128,6 @@
|
||||
"@trackConvertFormat": {
|
||||
"description": "Menu item - convert audio format"
|
||||
},
|
||||
"trackConvertFormatSubtitle": "Zu AAC/M4A, MP3, Opus, ALAC oder FLAC konvertieren",
|
||||
"@trackConvertFormatSubtitle": {
|
||||
"description": "Subtitle for convert format menu item"
|
||||
},
|
||||
"trackConvertTitle": "Audio konvertieren",
|
||||
"@trackConvertTitle": {
|
||||
"description": "Title of convert bottom sheet"
|
||||
@@ -3260,6 +3140,14 @@
|
||||
"@trackConvertBitrate": {
|
||||
"description": "Label for bitrate selection"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"trackConvertConfirmTitle": "Konvertierung bestätigen",
|
||||
"@trackConvertConfirmTitle": {
|
||||
"description": "Confirmation dialog title"
|
||||
@@ -3291,6 +3179,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"trackConvertLosslessHint": "Verlustfreie Konvertierung kein Qualitätsverlust",
|
||||
"@trackConvertLosslessHint": {
|
||||
"description": "Hint shown when converting between lossless formats"
|
||||
@@ -3316,10 +3216,6 @@
|
||||
"@cueSplitTitle": {
|
||||
"description": "Title for CUE split bottom sheet"
|
||||
},
|
||||
"cueSplitSubtitle": "CUE+FLAC in einzelne Titel aufteilen",
|
||||
"@cueSplitSubtitle": {
|
||||
"description": "Subtitle for CUE split menu item"
|
||||
},
|
||||
"cueSplitAlbum": "Album: {album}",
|
||||
"@cueSplitAlbum": {
|
||||
"description": "Album name in CUE split sheet",
|
||||
@@ -3416,10 +3312,6 @@
|
||||
"@collectionFavoriteArtists": {
|
||||
"description": "Custom folder for favorite artists"
|
||||
},
|
||||
"collectionPlaylists": "Playlists",
|
||||
"@collectionPlaylists": {
|
||||
"description": "Custom user playlists folder"
|
||||
},
|
||||
"collectionPlaylist": "Playlist",
|
||||
"@collectionPlaylist": {
|
||||
"description": "Single playlist label"
|
||||
@@ -3436,10 +3328,6 @@
|
||||
"@collectionNoPlaylistsYet": {
|
||||
"description": "Empty state title when user has no playlists"
|
||||
},
|
||||
"collectionNoPlaylistsSubtitle": "Playlist erstellen, um Titel zu kategorisieren",
|
||||
"@collectionNoPlaylistsSubtitle": {
|
||||
"description": "Empty state subtitle when user has no playlists"
|
||||
},
|
||||
"collectionPlaylistTracks": "{count, plural, =1{1 Titel} other{{count} Titel}}",
|
||||
"@collectionPlaylistTracks": {
|
||||
"description": "Track count label for custom playlists",
|
||||
@@ -3476,10 +3364,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistCreated": "Playlist erstellt",
|
||||
"@collectionPlaylistCreated": {
|
||||
"description": "Snackbar after creating playlist"
|
||||
},
|
||||
"collectionPlaylistNameHint": "Playlist-Name",
|
||||
"@collectionPlaylistNameHint": {
|
||||
"description": "Hint text for playlist name input"
|
||||
@@ -3496,19 +3380,6 @@
|
||||
"@collectionDeletePlaylist": {
|
||||
"description": "Action to delete playlist"
|
||||
},
|
||||
"collectionDeletePlaylistMessage": "Willst du \"{playlistName}\" und alle darin enthaltenen Titel löschen?",
|
||||
"@collectionDeletePlaylistMessage": {
|
||||
"description": "Confirmation message for deleting playlist",
|
||||
"placeholders": {
|
||||
"playlistName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistDeleted": "Playlist gelöscht",
|
||||
"@collectionPlaylistDeleted": {
|
||||
"description": "Snackbar after deleting playlist"
|
||||
},
|
||||
"collectionPlaylistRenamed": "Playlist umbenannt",
|
||||
"@collectionPlaylistRenamed": {
|
||||
"description": "Snackbar after renaming playlist"
|
||||
@@ -3553,15 +3424,6 @@
|
||||
"@collectionRemoveFromFolder": {
|
||||
"description": "Tooltip for removing track from wishlist/loved folder"
|
||||
},
|
||||
"collectionRemoved": "\"{trackName}\" entfernt",
|
||||
"@collectionRemoved": {
|
||||
"description": "Snackbar after removing a track from a collection",
|
||||
"placeholders": {
|
||||
"trackName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionAddedToLoved": "\"{trackName}\" zu Lieblingssongs hinzugefügt",
|
||||
"@collectionAddedToLoved": {
|
||||
"description": "Snackbar after adding track to loved folder",
|
||||
@@ -3705,15 +3567,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionBatchConvertProgress": "Konvertiere {current} von {total}...",
|
||||
"@selectionBatchConvertProgress": {
|
||||
"description": "Snackbar during batch conversion progress",
|
||||
"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": {
|
||||
"current": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
"format": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3879,10 +3741,6 @@
|
||||
"@backupImportButton": {
|
||||
"description": "Button to pick a backup file to restore"
|
||||
},
|
||||
"backupCreating": "Creating backup...",
|
||||
"@backupCreating": {
|
||||
"description": "Progress text while a backup is being created"
|
||||
},
|
||||
"backupCreated": "Backup created",
|
||||
"@backupCreated": {
|
||||
"description": "Snackbar after a backup file is created"
|
||||
@@ -3891,10 +3749,6 @@
|
||||
"@backupCreateFailed": {
|
||||
"description": "Snackbar when backup creation fails"
|
||||
},
|
||||
"backupEmpty": "There is nothing to back up yet",
|
||||
"@backupEmpty": {
|
||||
"description": "Snackbar when there is no data to back up"
|
||||
},
|
||||
"backupRestoreConfirmTitle": "Restore this backup?",
|
||||
"@backupRestoreConfirmTitle": {
|
||||
"description": "Confirmation dialog title before restoring a backup"
|
||||
@@ -3907,10 +3761,6 @@
|
||||
"@backupRestoreConfirmButton": {
|
||||
"description": "Confirm button to proceed with restore"
|
||||
},
|
||||
"backupRestoring": "Restoring backup...",
|
||||
"@backupRestoring": {
|
||||
"description": "Progress text while restoring a backup"
|
||||
},
|
||||
"backupRestored": "Backup restored successfully",
|
||||
"@backupRestored": {
|
||||
"description": "Snackbar after a successful restore"
|
||||
@@ -3931,7 +3781,7 @@
|
||||
"@backupContentsTitle": {
|
||||
"description": "Header above the list summarizing what the backup contains"
|
||||
},
|
||||
"backupContentsSettings": "App settings",
|
||||
"backupContentsSettings": "Appeinstellungen",
|
||||
"@backupContentsSettings": {
|
||||
"description": "Backup contents row label for settings"
|
||||
},
|
||||
@@ -3997,7 +3847,7 @@
|
||||
"@backupIncludeSecretsDescription": {
|
||||
"description": "Explanation for the include-credentials toggle"
|
||||
},
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the store.",
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the repo.",
|
||||
"@backupExtensionsRestoreFailed": {
|
||||
"description": "Snackbar/hint when some extensions failed to reinstall during restore",
|
||||
"placeholders": {
|
||||
@@ -4110,6 +3960,26 @@
|
||||
"@storageModeSafSubtitle": {
|
||||
"description": "Subtitle for SAF storage mode"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFilenameDescription": "Verwende {artist}, {title}, {album}, {track}, {year}, {date}, {disc} als Platzhalter.",
|
||||
"@downloadFilenameDescription": {
|
||||
"description": "Description shown in filename format editor"
|
||||
@@ -4178,10 +4048,6 @@
|
||||
"@downloadSelectServiceToEnable": {
|
||||
"description": "Subtitle when quality picker is disabled due to extension service"
|
||||
},
|
||||
"downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality",
|
||||
"@downloadSelectTidalQobuz": {
|
||||
"description": "Legacy info shown when a provider does not expose quality options"
|
||||
},
|
||||
"downloadEmbedLyricsDisabled": "Metadaten-Einbettung zuerst aktivieren",
|
||||
"@downloadEmbedLyricsDisabled": {
|
||||
"description": "Subtitle when lyrics embedding is blocked by metadata toggle"
|
||||
@@ -4430,10 +4296,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueDownloadedHeader": "Heruntergeladen",
|
||||
"@queueDownloadedHeader": {
|
||||
"description": "Header label for downloaded items section in library"
|
||||
},
|
||||
"queueFilteringIndicator": "Filtere...",
|
||||
"@queueFilteringIndicator": {
|
||||
"description": "Shown while filter results are being computed"
|
||||
@@ -4504,7 +4366,7 @@
|
||||
"@audioAnalysisAnalyzing": {
|
||||
"description": "Loading text while analyzing audio"
|
||||
},
|
||||
"audioAnalysisSampleRate": "Sample Rate",
|
||||
"audioAnalysisSampleRate": "Abtastrate",
|
||||
"@audioAnalysisSampleRate": {
|
||||
"description": "Sample rate metric label"
|
||||
},
|
||||
@@ -4588,15 +4450,6 @@
|
||||
"@audioAnalysisRescanning": {
|
||||
"description": "Loading text while audio is being re-analyzed after an explicit refresh"
|
||||
},
|
||||
"extensionsSearchWith": "Mit {providerName} suchen",
|
||||
"@extensionsSearchWith": {
|
||||
"description": "Extensions page - subtitle for default metadata search provider option",
|
||||
"placeholders": {
|
||||
"providerName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsHomeFeedProvider": "Home Feed Anbieter",
|
||||
"@extensionsHomeFeedProvider": {
|
||||
"description": "Extensions page - label for home feed provider selector"
|
||||
@@ -4634,14 +4487,6 @@
|
||||
"@extensionsNoHomeFeedExtensions": {
|
||||
"description": "Extensions page - shown when no installed extension has home feed"
|
||||
},
|
||||
"sortAlphaAsc": "A-Z",
|
||||
"@sortAlphaAsc": {
|
||||
"description": "Sort option - alphabetical ascending"
|
||||
},
|
||||
"sortAlphaDesc": "Z-A",
|
||||
"@sortAlphaDesc": {
|
||||
"description": "Sort option - alphabetical descending"
|
||||
},
|
||||
"cancelDownloadTitle": "Download abbrechen?",
|
||||
"@cancelDownloadTitle": {
|
||||
"description": "Dialog title when confirming cancellation of an active download"
|
||||
@@ -4676,34 +4521,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorLoadAlbum": "Fehler beim Laden des Albums",
|
||||
"@errorLoadAlbum": {
|
||||
"description": "Error state shown when album fails to load"
|
||||
},
|
||||
"errorLoadPlaylist": "Fehler beim Laden der Playlist",
|
||||
"@errorLoadPlaylist": {
|
||||
"description": "Error state shown when playlist fails to load"
|
||||
},
|
||||
"errorLoadArtist": "Fehler beim Laden des Interpreten",
|
||||
"@errorLoadArtist": {
|
||||
"description": "Error state shown when artist fails to load"
|
||||
},
|
||||
"notifChannelDownloadName": "Download Fortschritt",
|
||||
"@notifChannelDownloadName": {
|
||||
"description": "Android notification channel name for download progress"
|
||||
},
|
||||
"notifChannelDownloadDesc": "Zeigt Download-Fortschritt für Titel an",
|
||||
"@notifChannelDownloadDesc": {
|
||||
"description": "Android notification channel description for download progress"
|
||||
},
|
||||
"notifChannelLibraryScanName": "Bibliotheksscan",
|
||||
"@notifChannelLibraryScanName": {
|
||||
"description": "Android notification channel name for library scan"
|
||||
},
|
||||
"notifChannelLibraryScanDesc": "Zeigt den Fortschritt des lokalen Bibliotheksscans an",
|
||||
"@notifChannelLibraryScanDesc": {
|
||||
"description": "Android notification channel description for library scan"
|
||||
},
|
||||
"notifDownloadingTrack": "{trackName} wird heruntergeladen",
|
||||
"@notifDownloadingTrack": {
|
||||
"description": "Notification title while downloading a track",
|
||||
@@ -4770,6 +4587,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"notifAllDownloadsComplete": "Alle Downloads abgeschlossen",
|
||||
"@notifAllDownloadsComplete": {
|
||||
"description": "Notification title when all downloads finish successfully"
|
||||
@@ -4956,14 +4781,6 @@
|
||||
"@actionPaste": {
|
||||
"description": "Generic action - paste from clipboard"
|
||||
},
|
||||
"searchTracksHint": "Titel suchen...",
|
||||
"@searchTracksHint": {
|
||||
"description": "Placeholder for the search screen input"
|
||||
},
|
||||
"searchTracksEmptyPrompt": "Nach Titel suchen",
|
||||
"@searchTracksEmptyPrompt": {
|
||||
"description": "Empty-state prompt on the search screen"
|
||||
},
|
||||
"tutorialSearchHint": "Einfügen oder suchen...",
|
||||
"@tutorialSearchHint": {
|
||||
"description": "Placeholder shown in the tutorial search demo"
|
||||
@@ -4992,14 +4809,6 @@
|
||||
"@optionsEmbedMetadataSubtitleOff": {
|
||||
"description": "Subtitle when metadata embedding is disabled"
|
||||
},
|
||||
"optionsMaxQualityCoverSubtitleDisabled": "Deaktiviert, wenn Metadateneinbettung aus ist",
|
||||
"@optionsMaxQualityCoverSubtitleDisabled": {
|
||||
"description": "Subtitle for max quality cover when metadata embedding is disabled"
|
||||
},
|
||||
"downloadFilenameHintExample": "{artist} - {title}",
|
||||
"@downloadFilenameHintExample": {
|
||||
"description": "Example placeholder for the download filename format input"
|
||||
},
|
||||
"trackCoverNoEmbeddedArt": "Kein eingebettetes Albumcover gefunden",
|
||||
"@trackCoverNoEmbeddedArt": {
|
||||
"description": "Message shown when a track file has no embedded cover art"
|
||||
@@ -5239,14 +5048,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsDefaultSearchTabAlbums": "Alben",
|
||||
"@optionsDefaultSearchTabAlbums": {
|
||||
"description": "Default search tab option - Albums tab"
|
||||
},
|
||||
"optionsDefaultSearchTabTracks": "Titel",
|
||||
"@optionsDefaultSearchTabTracks": {
|
||||
"description": "Default search tab option - Tracks tab"
|
||||
},
|
||||
"settingsFiles": "Dateien & Ordner",
|
||||
"@settingsFiles": {
|
||||
"description": "Settings menu item - file and folder settings"
|
||||
@@ -5307,10 +5108,26 @@
|
||||
"@downloadDeduplicationEnabled": {
|
||||
"description": "Subtitle when deduplication is on"
|
||||
},
|
||||
"downloadDeduplicationWithQualityVariants": "Existing files at the selected quality will be skipped",
|
||||
"@downloadDeduplicationWithQualityVariants": {
|
||||
"description": "Deduplication subtitle when separate quality versions are allowed"
|
||||
},
|
||||
"downloadDeduplicationDisabled": "Alle Titel werden unabhängig vom Verlauf heruntergeladen",
|
||||
"@downloadDeduplicationDisabled": {
|
||||
"description": "Subtitle when deduplication is off"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFallbackExtensions": "Fallback-Erweiterungen",
|
||||
"@downloadFallbackExtensions": {
|
||||
"description": "Settings item for configuring fallback extension providers"
|
||||
@@ -5451,6 +5268,11 @@
|
||||
}
|
||||
},
|
||||
"queueDownloadStarting": "Starte...",
|
||||
"queueCheckingDownloadSession": "Checking download session...",
|
||||
"queueResolvingDownloadMetadata": "Resolving track metadata...",
|
||||
"queueResolvingDownloadStream": "Preparing audio stream...",
|
||||
"queueWaitingForVerification": "Waiting for verification...",
|
||||
"queueResumingAfterVerification": "Resuming after verification...",
|
||||
"@queueDownloadStarting": {
|
||||
"description": "Queue status before download progress is available"
|
||||
},
|
||||
@@ -5539,7 +5361,7 @@
|
||||
"@downloadNativeWorker": {
|
||||
"description": "Setting title for Android native download worker"
|
||||
},
|
||||
"downloadNativeWorkerSubtitle": "Beta Android Dienst für Downloads von Erweiterungen",
|
||||
"downloadNativeWorkerSubtitle": "Android background service for extension downloads",
|
||||
"@downloadNativeWorkerSubtitle": {
|
||||
"description": "Setting subtitle for Android native download worker"
|
||||
},
|
||||
@@ -5699,10 +5521,6 @@
|
||||
"@errorInvalidFolderSelected": {
|
||||
"description": "Error when the selected folder is invalid"
|
||||
},
|
||||
"errorCouldNotKeepFolderAccess": "Konnte nicht auf den ausgewählten Ordner zugreifen",
|
||||
"@errorCouldNotKeepFolderAccess": {
|
||||
"description": "Error when persistent folder access cannot be saved"
|
||||
},
|
||||
"storeAnyVersion": "Alle",
|
||||
"@storeAnyVersion": {
|
||||
"description": "Store detail value when any app version is accepted"
|
||||
@@ -5731,7 +5549,7 @@
|
||||
"@artistReleases": {
|
||||
"description": "Section header for all artist releases"
|
||||
},
|
||||
"editMetadataSelectNone": "None",
|
||||
"editMetadataSelectNone": "Keine",
|
||||
"@editMetadataSelectNone": {
|
||||
"description": "Button to clear selected fields for auto-fill"
|
||||
},
|
||||
@@ -5811,7 +5629,7 @@
|
||||
"@libraryBuiltInPlayerInfo": {
|
||||
"description": "Info note explaining the built-in player is for previews only"
|
||||
},
|
||||
"nowPlayingTitle": "Now Playing",
|
||||
"nowPlayingTitle": "Jetzt läuft",
|
||||
"@nowPlayingTitle": {
|
||||
"description": "Title for the now playing screen"
|
||||
},
|
||||
@@ -5957,7 +5775,7 @@
|
||||
"@aboutPaxsenixSubtitle": {
|
||||
"description": "Subtitle for Paxsenix special thanks entry on the about page"
|
||||
},
|
||||
"snackbarPlayingNext": "Playing next",
|
||||
"snackbarPlayingNext": "Als nächstes",
|
||||
"@snackbarPlayingNext": {
|
||||
"description": "Snackbar when a track is inserted as the next queue item"
|
||||
},
|
||||
@@ -6014,7 +5832,7 @@
|
||||
"@trackConvertResampler": {
|
||||
"description": "Section label for lossless conversion resampler options"
|
||||
},
|
||||
"trackConvertDitherNone": "None",
|
||||
"trackConvertDitherNone": "Keine",
|
||||
"@trackConvertDitherNone": {
|
||||
"description": "Lossless conversion dither option with no dithering applied"
|
||||
},
|
||||
@@ -6121,11 +5939,11 @@
|
||||
"@regionCountryJP": {
|
||||
"description": "Country name for SongLink region picker"
|
||||
},
|
||||
"regionCountryKR": "South Korea",
|
||||
"regionCountryKR": "Südkorea",
|
||||
"@regionCountryKR": {
|
||||
"description": "Country name for SongLink region picker"
|
||||
},
|
||||
"regionCountryIN": "India",
|
||||
"regionCountryIN": "Indien",
|
||||
"@regionCountryIN": {
|
||||
"description": "Country name for SongLink region picker"
|
||||
},
|
||||
@@ -6189,7 +6007,7 @@
|
||||
"@extensionVerificationHelpMessageWaiting": {
|
||||
"description": "Dialog message when verification may need manual browser help"
|
||||
},
|
||||
"extensionVerificationClose": "Close",
|
||||
"extensionVerificationClose": "Schließen",
|
||||
"@extensionVerificationClose": {
|
||||
"description": "Button to dismiss the extension verification help dialog"
|
||||
},
|
||||
|
||||
+146
-328
@@ -19,7 +19,7 @@
|
||||
},
|
||||
"navStore": "Repositorio",
|
||||
"@navStore": {
|
||||
"description": "Bottom navigation - Extension store tab"
|
||||
"description": "Bottom navigation - Extension repo tab"
|
||||
},
|
||||
"homeTitle": "Inicio",
|
||||
"@homeTitle": {
|
||||
@@ -73,10 +73,6 @@
|
||||
"@settingsAppearance": {
|
||||
"description": "Settings section - visual customization"
|
||||
},
|
||||
"settingsOptions": "Opciones",
|
||||
"@settingsOptions": {
|
||||
"description": "Settings section - app options"
|
||||
},
|
||||
"settingsExtensions": "Extensiones",
|
||||
"@settingsExtensions": {
|
||||
"description": "Settings section - extension management"
|
||||
@@ -145,10 +141,6 @@
|
||||
"@appearanceHistoryViewGrid": {
|
||||
"description": "Grid layout option"
|
||||
},
|
||||
"optionsTitle": "Opciones",
|
||||
"@optionsTitle": {
|
||||
"description": "Options settings page title"
|
||||
},
|
||||
"optionsPrimaryProvider": "Proveedor Principal",
|
||||
"@optionsPrimaryProvider": {
|
||||
"description": "Main search provider setting"
|
||||
@@ -174,10 +166,6 @@
|
||||
"@optionsDefaultSearchTabSubtitle": {
|
||||
"description": "Subtitle for the preferred default search tab setting"
|
||||
},
|
||||
"optionsSwitchBack": "Elija el proveedor de búsqueda por defecto para volver de una extensión",
|
||||
"@optionsSwitchBack": {
|
||||
"description": "Hint to switch back from extension search"
|
||||
},
|
||||
"optionsAutoFallback": "Cambio automático",
|
||||
"@optionsAutoFallback": {
|
||||
"description": "Auto-retry with other services"
|
||||
@@ -186,18 +174,6 @@
|
||||
"@optionsAutoFallbackSubtitle": {
|
||||
"description": "Subtitle for auto fallback"
|
||||
},
|
||||
"optionsUseExtensionProviders": "Usar proveedores de extensiones",
|
||||
"@optionsUseExtensionProviders": {
|
||||
"description": "Legacy setting label for extension download providers"
|
||||
},
|
||||
"optionsUseExtensionProvidersOn": "Proveedores de extensiones habilitados",
|
||||
"@optionsUseExtensionProvidersOn": {
|
||||
"description": "Status when extension providers enabled"
|
||||
},
|
||||
"optionsUseExtensionProvidersOff": "Proveedores de extensiones habilitados",
|
||||
"@optionsUseExtensionProvidersOff": {
|
||||
"description": "Legacy status when extension providers would be disabled"
|
||||
},
|
||||
"optionsEmbedLyrics": "Incrustar letras",
|
||||
"@optionsEmbedLyrics": {
|
||||
"description": "Embed lyrics in audio files"
|
||||
@@ -230,10 +206,6 @@
|
||||
"@trackReplayGain": {
|
||||
"description": "Three-dot menu option to scan loudness and write ReplayGain tags"
|
||||
},
|
||||
"trackReplayGainSubtitle": "Analizar el volumen y guardar las etiquetas ReplayGain",
|
||||
"@trackReplayGainSubtitle": {
|
||||
"description": "Subtitle for the rescan ReplayGain menu option"
|
||||
},
|
||||
"trackReplayGainScanning": "Analizando el nivel de volumen...",
|
||||
"@trackReplayGainScanning": {
|
||||
"description": "Snackbar/progress message while scanning ReplayGain for a single track"
|
||||
@@ -310,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": {
|
||||
@@ -360,31 +332,6 @@
|
||||
"@optionsDetailedLoggingOff": {
|
||||
"description": "Status when logging disabled"
|
||||
},
|
||||
"optionsSpotifyCredentials": "Credenciales de Spotify",
|
||||
"@optionsSpotifyCredentials": {
|
||||
"description": "Spotify API credentials setting"
|
||||
},
|
||||
"optionsSpotifyCredentialsConfigured": "ID de cliente: {clientId}...",
|
||||
"@optionsSpotifyCredentialsConfigured": {
|
||||
"description": "Shows configured client ID preview",
|
||||
"placeholders": {
|
||||
"clientId": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsSpotifyCredentialsRequired": "Requerido: toca para configurar",
|
||||
"@optionsSpotifyCredentialsRequired": {
|
||||
"description": "Prompt to set up credentials"
|
||||
},
|
||||
"optionsSpotifyWarning": "Spotify requiere tus propias credenciales de API. Consíguelas gratis en developer.spotify.com",
|
||||
"@optionsSpotifyWarning": {
|
||||
"description": "Info about Spotify API requirement"
|
||||
},
|
||||
"optionsSpotifyDeprecationWarning": "La búsqueda de Spotify quedará obsoleta el 3 de marzo de 2026 debido a cambios en la API de Spotify. Por favor, cambia a Deezer.",
|
||||
"@optionsSpotifyDeprecationWarning": {
|
||||
"description": "Warning about Spotify API deprecation"
|
||||
},
|
||||
"extensionsTitle": "Extensiones",
|
||||
"@extensionsTitle": {
|
||||
"description": "Extensions page title"
|
||||
@@ -402,26 +349,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsAuthor": "por {author}",
|
||||
"@extensionsAuthor": {
|
||||
"description": "Extension author credit",
|
||||
"placeholders": {
|
||||
"author": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsUninstall": "Desinstalar",
|
||||
"@extensionsUninstall": {
|
||||
"description": "Uninstall extension button"
|
||||
},
|
||||
"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": {
|
||||
@@ -912,14 +850,6 @@
|
||||
"@snackbarHistoryCleared": {
|
||||
"description": "Snackbar - history deleted"
|
||||
},
|
||||
"snackbarCredentialsSaved": "Credenciales guardadas",
|
||||
"@snackbarCredentialsSaved": {
|
||||
"description": "Snackbar - Spotify credentials saved"
|
||||
},
|
||||
"snackbarCredentialsCleared": "Credenciales borradas",
|
||||
"@snackbarCredentialsCleared": {
|
||||
"description": "Snackbar - Spotify credentials removed"
|
||||
},
|
||||
"snackbarDeletedTracks": "Eliminado {count} {count, plural, =1{pista} other{pistas}}",
|
||||
"@snackbarDeletedTracks": {
|
||||
"description": "Snackbar - tracks deleted",
|
||||
@@ -938,10 +868,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"snackbarFillAllFields": "Por favor, completa todos los campos",
|
||||
"@snackbarFillAllFields": {
|
||||
"description": "Snackbar - validation error"
|
||||
},
|
||||
"snackbarViewQueue": "Ver cola",
|
||||
"@snackbarViewQueue": {
|
||||
"description": "Snackbar action - view download queue"
|
||||
@@ -1055,14 +981,6 @@
|
||||
"@actionDeselect": {
|
||||
"description": "Action button - deselect all"
|
||||
},
|
||||
"actionRemoveCredentials": "Eliminar credenciales",
|
||||
"@actionRemoveCredentials": {
|
||||
"description": "Action button - delete Spotify credentials"
|
||||
},
|
||||
"actionSaveCredentials": "Guardar credenciales",
|
||||
"@actionSaveCredentials": {
|
||||
"description": "Action button - save Spotify credentials"
|
||||
},
|
||||
"selectionSelected": "{count} seleccionado",
|
||||
"@selectionSelected": {
|
||||
"description": "Selection count indicator",
|
||||
@@ -1236,6 +1154,19 @@
|
||||
"@updateNewVersionReady": {
|
||||
"description": "Update subtitle"
|
||||
},
|
||||
"updateRequiredTitle": "Actualización Necesaria",
|
||||
"@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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"updateCurrent": "Actual",
|
||||
"@updateCurrent": {
|
||||
"description": "Label for current version"
|
||||
@@ -1272,10 +1203,6 @@
|
||||
"@providerPriorityInfo": {
|
||||
"description": "Info tip about fallback behavior"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsTitle": "Respaldo de extensión",
|
||||
"@providerPriorityFallbackExtensionsTitle": {
|
||||
"description": "Section title for choosing which download extensions can be used as fallback providers"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsDescription": "Elija las extensiones de descarga que se usarán como respaldo automático.",
|
||||
"@providerPriorityFallbackExtensionsDescription": {
|
||||
"description": "Section description for extension fallback selection"
|
||||
@@ -1284,10 +1211,6 @@
|
||||
"@providerPriorityFallbackExtensionsHint": {
|
||||
"description": "Hint below the extension fallback selection list"
|
||||
},
|
||||
"providerBuiltIn": "Heredado",
|
||||
"@providerBuiltIn": {
|
||||
"description": "Legacy label retained for old generated localization compatibility"
|
||||
},
|
||||
"providerExtension": "Extensión",
|
||||
"@providerExtension": {
|
||||
"description": "Label for extension-provided providers"
|
||||
@@ -1304,14 +1227,6 @@
|
||||
"@metadataProviderPriorityInfo": {
|
||||
"description": "Info tip about rate limits"
|
||||
},
|
||||
"metadataNoRateLimits": "Sin límites de tasa",
|
||||
"@metadataNoRateLimits": {
|
||||
"description": "Deezer provider description"
|
||||
},
|
||||
"metadataMayRateLimit": "Sin límites de tasa",
|
||||
"@metadataMayRateLimit": {
|
||||
"description": "Spotify provider description"
|
||||
},
|
||||
"logTitle": "Registros",
|
||||
"@logTitle": {
|
||||
"description": "Logs screen title"
|
||||
@@ -1378,30 +1293,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"credentialsTitle": "Credenciales de Spotify",
|
||||
"@credentialsTitle": {
|
||||
"description": "Credentials dialog title"
|
||||
},
|
||||
"credentialsDescription": "Introduzca su ID de cliente y secreto para utilizar su propia cuota de aplicación de Spotify.",
|
||||
"@credentialsDescription": {
|
||||
"description": "Credentials dialog explanation"
|
||||
},
|
||||
"credentialsClientId": "ID del cliente",
|
||||
"@credentialsClientId": {
|
||||
"description": "Client ID field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientIdHint": "Pegar ID de cliente",
|
||||
"@credentialsClientIdHint": {
|
||||
"description": "Client ID placeholder"
|
||||
},
|
||||
"credentialsClientSecret": "Cliente Secreto",
|
||||
"@credentialsClientSecret": {
|
||||
"description": "Client Secret field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientSecretHint": "Pegar Cliente Secreto",
|
||||
"@credentialsClientSecretHint": {
|
||||
"description": "Client Secret placeholder"
|
||||
},
|
||||
"channelStable": "Estable",
|
||||
"@channelStable": {
|
||||
"description": "Update channel - stable releases"
|
||||
@@ -1510,10 +1401,6 @@
|
||||
"@settingsDownloadSubtitle": {
|
||||
"description": "Download settings description"
|
||||
},
|
||||
"settingsOptionsSubtitle": "Respaldo, meta datos, letras, portada",
|
||||
"@settingsOptionsSubtitle": {
|
||||
"description": "Options settings description"
|
||||
},
|
||||
"settingsExtensionsSubtitle": "Administrar proveedores de descarga",
|
||||
"@settingsExtensionsSubtitle": {
|
||||
"description": "Extensions settings description"
|
||||
@@ -1730,27 +1617,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": {
|
||||
@@ -1772,10 +1659,6 @@
|
||||
"@storeRepoUrlHint": {
|
||||
"description": "Hint/placeholder for the repository URL input field"
|
||||
},
|
||||
"storeRepoUrlHelper": "e.j. https://github.com/user/extensions-repo",
|
||||
"@storeRepoUrlHelper": {
|
||||
"description": "Helper text below the repository URL input field"
|
||||
},
|
||||
"storeAddRepoButton": "Añadir repositorio",
|
||||
"@storeAddRepoButton": {
|
||||
"description": "Button to submit a new repository URL"
|
||||
@@ -1808,18 +1691,6 @@
|
||||
"@storeEmptyNoResults": {
|
||||
"description": "Message when search/filter returns no results"
|
||||
},
|
||||
"extensionDefaultProvider": "Búsqueda predeterminada",
|
||||
"@extensionDefaultProvider": {
|
||||
"description": "Default search provider option"
|
||||
},
|
||||
"extensionDefaultProviderSubtitle": "Usar la búsqueda de metadatos predeterminada",
|
||||
"@extensionDefaultProviderSubtitle": {
|
||||
"description": "Subtitle for default provider"
|
||||
},
|
||||
"extensionAuthor": "Autor/a",
|
||||
"@extensionAuthor": {
|
||||
"description": "Extension detail - author"
|
||||
},
|
||||
"extensionId": "ID",
|
||||
"@extensionId": {
|
||||
"description": "Extension detail - unique ID"
|
||||
@@ -2087,10 +1958,6 @@
|
||||
"@downloadLossyOpus128Subtitle": {
|
||||
"description": "Subtitle for Opus 128kbps lossy option"
|
||||
},
|
||||
"qualityNote": "La calidad real depende de la disponibilidad de la pista del servicio",
|
||||
"@qualityNote": {
|
||||
"description": "Note about quality availability"
|
||||
},
|
||||
"downloadAskBeforeDownload": "Preguntar antes de descargar",
|
||||
"@downloadAskBeforeDownload": {
|
||||
"description": "Setting - show quality picker"
|
||||
@@ -2143,6 +2010,14 @@
|
||||
"@appearanceAmoledDarkSubtitle": {
|
||||
"description": "Subtitle for AMOLED dark"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"queueClearAll": "Eliminar todo",
|
||||
"@queueClearAll": {
|
||||
"description": "Button - clear all queue items"
|
||||
@@ -2175,6 +2050,27 @@
|
||||
"@settingsDownloadNetworkSubtitle": {
|
||||
"description": "Subtitle explaining network preference"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"albumFolderArtistAlbum": "Artista / Álbum",
|
||||
"@albumFolderArtistAlbum": {
|
||||
"description": "Album folder option"
|
||||
@@ -2245,10 +2141,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadedAlbumAllSelected": "Todas las pistas seleccionadas",
|
||||
"@downloadedAlbumAllSelected": {
|
||||
"description": "Status - all items selected"
|
||||
},
|
||||
"downloadedAlbumTapToSelect": "Toca las pistas para seleccionar",
|
||||
"@downloadedAlbumTapToSelect": {
|
||||
"description": "Selection hint"
|
||||
@@ -2976,6 +2868,22 @@
|
||||
"@cacheLibraryCoverDesc": {
|
||||
"description": "Description of what library cover cache contains"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"cacheExploreFeed": "Explorar caché de inicio",
|
||||
"@cacheExploreFeed": {
|
||||
"description": "Cache item title for explore home feed cache"
|
||||
@@ -3092,18 +3000,10 @@
|
||||
"@trackSaveCoverArt": {
|
||||
"description": "Menu action - save album cover art as file"
|
||||
},
|
||||
"trackSaveCoverArtSubtitle": "Guardar imagen del álbum como archivo .jpg",
|
||||
"@trackSaveCoverArtSubtitle": {
|
||||
"description": "Subtitle for save cover art action"
|
||||
},
|
||||
"trackSaveLyrics": "Guardar letra (.lrc)",
|
||||
"@trackSaveLyrics": {
|
||||
"description": "Menu action - save lyrics as .lrc file"
|
||||
},
|
||||
"trackSaveLyricsSubtitle": "Buscar y guardar letras como archivo .lrc",
|
||||
"@trackSaveLyricsSubtitle": {
|
||||
"description": "Subtitle for save lyrics action"
|
||||
},
|
||||
"trackSaveLyricsProgress": "Guardando letra...",
|
||||
"@trackSaveLyricsProgress": {
|
||||
"description": "Snackbar while saving lyrics to file"
|
||||
@@ -3116,10 +3016,6 @@
|
||||
"@trackReEnrichOnlineSubtitle": {
|
||||
"description": "Subtitle for re-enrich metadata action for local items"
|
||||
},
|
||||
"trackReEnrichFieldsTitle": "Campos a actualizar",
|
||||
"@trackReEnrichFieldsTitle": {
|
||||
"description": "Section title for field selection in re-enrich dialog"
|
||||
},
|
||||
"trackReEnrichFieldCover": "Carátula",
|
||||
"@trackReEnrichFieldCover": {
|
||||
"description": "Checkbox label for cover art field in re-enrich"
|
||||
@@ -3203,18 +3099,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacFindingProgress": "Buscando coincidencias FLAC",
|
||||
"@queueFlacFindingProgress": {
|
||||
"description": "Snackbar while resolving remote matches for local FLAC redownloads",
|
||||
"placeholders": {
|
||||
"current": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacNoReliableMatches": "Sin coincidencias en línea de confianza",
|
||||
"@queueFlacNoReliableMatches": {
|
||||
"description": "Snackbar when no safe FLAC redownload matches were found"
|
||||
@@ -3244,10 +3128,6 @@
|
||||
"@trackConvertFormat": {
|
||||
"description": "Menu item - convert audio format"
|
||||
},
|
||||
"trackConvertFormatSubtitle": "Convertir a AAC/M4A, MP3, Opus, ALAC, o FLAC",
|
||||
"@trackConvertFormatSubtitle": {
|
||||
"description": "Subtitle for convert format menu item"
|
||||
},
|
||||
"trackConvertTitle": "Convertir audio",
|
||||
"@trackConvertTitle": {
|
||||
"description": "Title of convert bottom sheet"
|
||||
@@ -3260,6 +3140,14 @@
|
||||
"@trackConvertBitrate": {
|
||||
"description": "Label for bitrate selection"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"trackConvertConfirmTitle": "Confirmar conversión",
|
||||
"@trackConvertConfirmTitle": {
|
||||
"description": "Confirmation dialog title"
|
||||
@@ -3291,6 +3179,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"trackConvertLosslessHint": "Conversión sin pérdidas — sin pérdida de calidad",
|
||||
"@trackConvertLosslessHint": {
|
||||
"description": "Hint shown when converting between lossless formats"
|
||||
@@ -3316,10 +3216,6 @@
|
||||
"@cueSplitTitle": {
|
||||
"description": "Title for CUE split bottom sheet"
|
||||
},
|
||||
"cueSplitSubtitle": "Dividir CUE + FLAC en pistas individuales",
|
||||
"@cueSplitSubtitle": {
|
||||
"description": "Subtitle for CUE split menu item"
|
||||
},
|
||||
"cueSplitAlbum": "Álbum: {album}",
|
||||
"@cueSplitAlbum": {
|
||||
"description": "Album name in CUE split sheet",
|
||||
@@ -3416,10 +3312,6 @@
|
||||
"@collectionFavoriteArtists": {
|
||||
"description": "Custom folder for favorite artists"
|
||||
},
|
||||
"collectionPlaylists": "Listas de reproducción",
|
||||
"@collectionPlaylists": {
|
||||
"description": "Custom user playlists folder"
|
||||
},
|
||||
"collectionPlaylist": "Lista de reproducción",
|
||||
"@collectionPlaylist": {
|
||||
"description": "Single playlist label"
|
||||
@@ -3436,10 +3328,6 @@
|
||||
"@collectionNoPlaylistsYet": {
|
||||
"description": "Empty state title when user has no playlists"
|
||||
},
|
||||
"collectionNoPlaylistsSubtitle": "Crear una lista de reproducción para empezar a categorizar pistas",
|
||||
"@collectionNoPlaylistsSubtitle": {
|
||||
"description": "Empty state subtitle when user has no playlists"
|
||||
},
|
||||
"collectionPlaylistTracks": "{count, plural, =1{1 pista} other{{count} pistas}}",
|
||||
"@collectionPlaylistTracks": {
|
||||
"description": "Track count label for custom playlists",
|
||||
@@ -3476,10 +3364,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistCreated": "Lista de reproducción creada",
|
||||
"@collectionPlaylistCreated": {
|
||||
"description": "Snackbar after creating playlist"
|
||||
},
|
||||
"collectionPlaylistNameHint": "Nombre de la lista de reproducción",
|
||||
"@collectionPlaylistNameHint": {
|
||||
"description": "Hint text for playlist name input"
|
||||
@@ -3496,19 +3380,6 @@
|
||||
"@collectionDeletePlaylist": {
|
||||
"description": "Action to delete playlist"
|
||||
},
|
||||
"collectionDeletePlaylistMessage": "¿Eliminar \"{playlistName}\" y todas las pistas que contiene?",
|
||||
"@collectionDeletePlaylistMessage": {
|
||||
"description": "Confirmation message for deleting playlist",
|
||||
"placeholders": {
|
||||
"playlistName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistDeleted": "Lista de reproducción eliminada",
|
||||
"@collectionPlaylistDeleted": {
|
||||
"description": "Snackbar after deleting playlist"
|
||||
},
|
||||
"collectionPlaylistRenamed": "Lista de reproducción renombrada",
|
||||
"@collectionPlaylistRenamed": {
|
||||
"description": "Snackbar after renaming playlist"
|
||||
@@ -3553,15 +3424,6 @@
|
||||
"@collectionRemoveFromFolder": {
|
||||
"description": "Tooltip for removing track from wishlist/loved folder"
|
||||
},
|
||||
"collectionRemoved": "Se eliminó \"{trackName}\"",
|
||||
"@collectionRemoved": {
|
||||
"description": "Snackbar after removing a track from a collection",
|
||||
"placeholders": {
|
||||
"trackName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionAddedToLoved": "\"{trackName}\" se agregó a «Me gusta»",
|
||||
"@collectionAddedToLoved": {
|
||||
"description": "Snackbar after adding track to loved folder",
|
||||
@@ -3705,15 +3567,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionBatchConvertProgress": "Convirtiendo {current} de {total}...",
|
||||
"@selectionBatchConvertProgress": {
|
||||
"description": "Snackbar during batch conversion progress",
|
||||
"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": {
|
||||
"current": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
"format": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3879,10 +3741,6 @@
|
||||
"@backupImportButton": {
|
||||
"description": "Button to pick a backup file to restore"
|
||||
},
|
||||
"backupCreating": "Creando copia de seguridad...",
|
||||
"@backupCreating": {
|
||||
"description": "Progress text while a backup is being created"
|
||||
},
|
||||
"backupCreated": "Copia de seguridad creada",
|
||||
"@backupCreated": {
|
||||
"description": "Snackbar after a backup file is created"
|
||||
@@ -3891,10 +3749,6 @@
|
||||
"@backupCreateFailed": {
|
||||
"description": "Snackbar when backup creation fails"
|
||||
},
|
||||
"backupEmpty": "Aún no hay nada que respaldar",
|
||||
"@backupEmpty": {
|
||||
"description": "Snackbar when there is no data to back up"
|
||||
},
|
||||
"backupRestoreConfirmTitle": "¿Restaurar esta copia de seguridad?",
|
||||
"@backupRestoreConfirmTitle": {
|
||||
"description": "Confirmation dialog title before restoring a backup"
|
||||
@@ -3907,10 +3761,6 @@
|
||||
"@backupRestoreConfirmButton": {
|
||||
"description": "Confirm button to proceed with restore"
|
||||
},
|
||||
"backupRestoring": "Restaurando copia de seguridad...",
|
||||
"@backupRestoring": {
|
||||
"description": "Progress text while restoring a backup"
|
||||
},
|
||||
"backupRestored": "Copia de seguridad restaurada correctamente",
|
||||
"@backupRestored": {
|
||||
"description": "Snackbar after a successful restore"
|
||||
@@ -3997,7 +3847,7 @@
|
||||
"@backupIncludeSecretsDescription": {
|
||||
"description": "Explanation for the include-credentials toggle"
|
||||
},
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the store.",
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the repo.",
|
||||
"@backupExtensionsRestoreFailed": {
|
||||
"description": "Snackbar/hint when some extensions failed to reinstall during restore",
|
||||
"placeholders": {
|
||||
@@ -4110,6 +3960,26 @@
|
||||
"@storageModeSafSubtitle": {
|
||||
"description": "Subtitle for SAF storage mode"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFilenameDescription": "Usa {artist}, {title}, {album}, {track}, {year}, {date}, {disc} como marcadores de posición.",
|
||||
"@downloadFilenameDescription": {
|
||||
"description": "Description shown in filename format editor"
|
||||
@@ -4178,10 +4048,6 @@
|
||||
"@downloadSelectServiceToEnable": {
|
||||
"description": "Subtitle when quality picker is disabled due to extension service"
|
||||
},
|
||||
"downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality",
|
||||
"@downloadSelectTidalQobuz": {
|
||||
"description": "Legacy info shown when a provider does not expose quality options"
|
||||
},
|
||||
"downloadEmbedLyricsDisabled": "Enable metadata embedding first",
|
||||
"@downloadEmbedLyricsDisabled": {
|
||||
"description": "Subtitle when lyrics embedding is blocked by metadata toggle"
|
||||
@@ -4430,10 +4296,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueDownloadedHeader": "Descargadas",
|
||||
"@queueDownloadedHeader": {
|
||||
"description": "Header label for downloaded items section in library"
|
||||
},
|
||||
"queueFilteringIndicator": "Filtrando...",
|
||||
"@queueFilteringIndicator": {
|
||||
"description": "Shown while filter results are being computed"
|
||||
@@ -4588,15 +4450,6 @@
|
||||
"@audioAnalysisRescanning": {
|
||||
"description": "Loading text while audio is being re-analyzed after an explicit refresh"
|
||||
},
|
||||
"extensionsSearchWith": "Buscar con {providerName}",
|
||||
"@extensionsSearchWith": {
|
||||
"description": "Extensions page - subtitle for default metadata search provider option",
|
||||
"placeholders": {
|
||||
"providerName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsHomeFeedProvider": "Home Feed Provider",
|
||||
"@extensionsHomeFeedProvider": {
|
||||
"description": "Extensions page - label for home feed provider selector"
|
||||
@@ -4634,14 +4487,6 @@
|
||||
"@extensionsNoHomeFeedExtensions": {
|
||||
"description": "Extensions page - shown when no installed extension has home feed"
|
||||
},
|
||||
"sortAlphaAsc": "A-Z",
|
||||
"@sortAlphaAsc": {
|
||||
"description": "Sort option - alphabetical ascending"
|
||||
},
|
||||
"sortAlphaDesc": "Z-A",
|
||||
"@sortAlphaDesc": {
|
||||
"description": "Sort option - alphabetical descending"
|
||||
},
|
||||
"cancelDownloadTitle": "¿Cancelar descarga?",
|
||||
"@cancelDownloadTitle": {
|
||||
"description": "Dialog title when confirming cancellation of an active download"
|
||||
@@ -4676,34 +4521,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorLoadAlbum": "Failed to load album",
|
||||
"@errorLoadAlbum": {
|
||||
"description": "Error state shown when album fails to load"
|
||||
},
|
||||
"errorLoadPlaylist": "Failed to load playlist",
|
||||
"@errorLoadPlaylist": {
|
||||
"description": "Error state shown when playlist fails to load"
|
||||
},
|
||||
"errorLoadArtist": "Failed to load artist",
|
||||
"@errorLoadArtist": {
|
||||
"description": "Error state shown when artist fails to load"
|
||||
},
|
||||
"notifChannelDownloadName": "Download Progress",
|
||||
"@notifChannelDownloadName": {
|
||||
"description": "Android notification channel name for download progress"
|
||||
},
|
||||
"notifChannelDownloadDesc": "Muestra el progreso de la descarga para las pistas",
|
||||
"@notifChannelDownloadDesc": {
|
||||
"description": "Android notification channel description for download progress"
|
||||
},
|
||||
"notifChannelLibraryScanName": "Escaneo de biblioteca",
|
||||
"@notifChannelLibraryScanName": {
|
||||
"description": "Android notification channel name for library scan"
|
||||
},
|
||||
"notifChannelLibraryScanDesc": "Shows local library scan progress",
|
||||
"@notifChannelLibraryScanDesc": {
|
||||
"description": "Android notification channel description for library scan"
|
||||
},
|
||||
"notifDownloadingTrack": "Downloading {trackName}",
|
||||
"@notifDownloadingTrack": {
|
||||
"description": "Notification title while downloading a track",
|
||||
@@ -4770,6 +4587,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"notifAllDownloadsComplete": "Todas las descargas completadas",
|
||||
"@notifAllDownloadsComplete": {
|
||||
"description": "Notification title when all downloads finish successfully"
|
||||
@@ -4956,14 +4781,6 @@
|
||||
"@actionPaste": {
|
||||
"description": "Generic action - paste from clipboard"
|
||||
},
|
||||
"searchTracksHint": "Buscar canciones...",
|
||||
"@searchTracksHint": {
|
||||
"description": "Placeholder for the search screen input"
|
||||
},
|
||||
"searchTracksEmptyPrompt": "Buscar pistas",
|
||||
"@searchTracksEmptyPrompt": {
|
||||
"description": "Empty-state prompt on the search screen"
|
||||
},
|
||||
"tutorialSearchHint": "Pegar o buscar...",
|
||||
"@tutorialSearchHint": {
|
||||
"description": "Placeholder shown in the tutorial search demo"
|
||||
@@ -4992,14 +4809,6 @@
|
||||
"@optionsEmbedMetadataSubtitleOff": {
|
||||
"description": "Subtitle when metadata embedding is disabled"
|
||||
},
|
||||
"optionsMaxQualityCoverSubtitleDisabled": "Disabled when metadata embedding is off",
|
||||
"@optionsMaxQualityCoverSubtitleDisabled": {
|
||||
"description": "Subtitle for max quality cover when metadata embedding is disabled"
|
||||
},
|
||||
"downloadFilenameHintExample": "{artist} - {title}",
|
||||
"@downloadFilenameHintExample": {
|
||||
"description": "Example placeholder for the download filename format input"
|
||||
},
|
||||
"trackCoverNoEmbeddedArt": "No embedded album art found",
|
||||
"@trackCoverNoEmbeddedArt": {
|
||||
"description": "Message shown when a track file has no embedded cover art"
|
||||
@@ -5239,14 +5048,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsDefaultSearchTabAlbums": "Álbumes",
|
||||
"@optionsDefaultSearchTabAlbums": {
|
||||
"description": "Default search tab option - Albums tab"
|
||||
},
|
||||
"optionsDefaultSearchTabTracks": "Pistas",
|
||||
"@optionsDefaultSearchTabTracks": {
|
||||
"description": "Default search tab option - Tracks tab"
|
||||
},
|
||||
"settingsFiles": "Archivos y carpetas",
|
||||
"@settingsFiles": {
|
||||
"description": "Settings menu item - file and folder settings"
|
||||
@@ -5307,10 +5108,26 @@
|
||||
"@downloadDeduplicationEnabled": {
|
||||
"description": "Subtitle when deduplication is on"
|
||||
},
|
||||
"downloadDeduplicationWithQualityVariants": "Existing files at the selected quality will be skipped",
|
||||
"@downloadDeduplicationWithQualityVariants": {
|
||||
"description": "Deduplication subtitle when separate quality versions are allowed"
|
||||
},
|
||||
"downloadDeduplicationDisabled": "Todas las pistas se descargarán independientemente del historial",
|
||||
"@downloadDeduplicationDisabled": {
|
||||
"description": "Subtitle when deduplication is off"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFallbackExtensions": "Reslpado de extensiones",
|
||||
"@downloadFallbackExtensions": {
|
||||
"description": "Settings item for configuring fallback extension providers"
|
||||
@@ -5451,6 +5268,11 @@
|
||||
}
|
||||
},
|
||||
"queueDownloadStarting": "Comenzando...",
|
||||
"queueCheckingDownloadSession": "Checking download session...",
|
||||
"queueResolvingDownloadMetadata": "Resolving track metadata...",
|
||||
"queueResolvingDownloadStream": "Preparing audio stream...",
|
||||
"queueWaitingForVerification": "Waiting for verification...",
|
||||
"queueResumingAfterVerification": "Resuming after verification...",
|
||||
"@queueDownloadStarting": {
|
||||
"description": "Queue status before download progress is available"
|
||||
},
|
||||
@@ -5539,7 +5361,7 @@
|
||||
"@downloadNativeWorker": {
|
||||
"description": "Setting title for Android native download worker"
|
||||
},
|
||||
"downloadNativeWorkerSubtitle": "Operador de servicios beta android para descargas de extensión",
|
||||
"downloadNativeWorkerSubtitle": "Android background service for extension downloads",
|
||||
"@downloadNativeWorkerSubtitle": {
|
||||
"description": "Setting subtitle for Android native download worker"
|
||||
},
|
||||
@@ -5699,10 +5521,6 @@
|
||||
"@errorInvalidFolderSelected": {
|
||||
"description": "Error when the selected folder is invalid"
|
||||
},
|
||||
"errorCouldNotKeepFolderAccess": "No se puede obtener acceso al directorio seleccionado",
|
||||
"@errorCouldNotKeepFolderAccess": {
|
||||
"description": "Error when persistent folder access cannot be saved"
|
||||
},
|
||||
"storeAnyVersion": "Cualquier",
|
||||
"@storeAnyVersion": {
|
||||
"description": "Store detail value when any app version is accepted"
|
||||
|
||||
+146
-328
@@ -19,7 +19,7 @@
|
||||
},
|
||||
"navStore": "Dépôt",
|
||||
"@navStore": {
|
||||
"description": "Bottom navigation - Extension store tab"
|
||||
"description": "Bottom navigation - Extension repo tab"
|
||||
},
|
||||
"homeTitle": "Accueil",
|
||||
"@homeTitle": {
|
||||
@@ -73,10 +73,6 @@
|
||||
"@settingsAppearance": {
|
||||
"description": "Settings section - visual customization"
|
||||
},
|
||||
"settingsOptions": "Options",
|
||||
"@settingsOptions": {
|
||||
"description": "Settings section - app options"
|
||||
},
|
||||
"settingsExtensions": "Extensions",
|
||||
"@settingsExtensions": {
|
||||
"description": "Settings section - extension management"
|
||||
@@ -145,10 +141,6 @@
|
||||
"@appearanceHistoryViewGrid": {
|
||||
"description": "Grid layout option"
|
||||
},
|
||||
"optionsTitle": "Options",
|
||||
"@optionsTitle": {
|
||||
"description": "Options settings page title"
|
||||
},
|
||||
"optionsPrimaryProvider": "Fournisseur principal",
|
||||
"@optionsPrimaryProvider": {
|
||||
"description": "Main search provider setting"
|
||||
@@ -174,10 +166,6 @@
|
||||
"@optionsDefaultSearchTabSubtitle": {
|
||||
"description": "Subtitle for the preferred default search tab setting"
|
||||
},
|
||||
"optionsSwitchBack": "Choisissez le moteur de recherche par défaut pour revenir à la configuration d'origine après avoir utilisé une extension",
|
||||
"@optionsSwitchBack": {
|
||||
"description": "Hint to switch back from extension search"
|
||||
},
|
||||
"optionsAutoFallback": "Récupération automatique",
|
||||
"@optionsAutoFallback": {
|
||||
"description": "Auto-retry with other services"
|
||||
@@ -186,18 +174,6 @@
|
||||
"@optionsAutoFallbackSubtitle": {
|
||||
"description": "Subtitle for auto fallback"
|
||||
},
|
||||
"optionsUseExtensionProviders": "Utiliser des fournisseurs d'extension",
|
||||
"@optionsUseExtensionProviders": {
|
||||
"description": "Legacy setting label for extension download providers"
|
||||
},
|
||||
"optionsUseExtensionProvidersOn": "Les fournisseurs d'extensions sont activés",
|
||||
"@optionsUseExtensionProvidersOn": {
|
||||
"description": "Status when extension providers enabled"
|
||||
},
|
||||
"optionsUseExtensionProvidersOff": "Les fournisseurs d'extensions sont requis",
|
||||
"@optionsUseExtensionProvidersOff": {
|
||||
"description": "Legacy status when extension providers would be disabled"
|
||||
},
|
||||
"optionsEmbedLyrics": "Intégrer les paroles",
|
||||
"@optionsEmbedLyrics": {
|
||||
"description": "Embed lyrics in audio files"
|
||||
@@ -230,10 +206,6 @@
|
||||
"@trackReplayGain": {
|
||||
"description": "Three-dot menu option to scan loudness and write ReplayGain tags"
|
||||
},
|
||||
"trackReplayGainSubtitle": "Analyser le niveau sonore et créer des balises ReplayGain",
|
||||
"@trackReplayGainSubtitle": {
|
||||
"description": "Subtitle for the rescan ReplayGain menu option"
|
||||
},
|
||||
"trackReplayGainScanning": "Analyse du volume sonore...",
|
||||
"@trackReplayGainScanning": {
|
||||
"description": "Snackbar/progress message while scanning ReplayGain for a single track"
|
||||
@@ -310,11 +282,11 @@
|
||||
},
|
||||
"optionsExtensionStore": "Référentiel d'extensions",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide store tab"
|
||||
"description": "Show/hide repo tab"
|
||||
},
|
||||
"optionsExtensionStoreSubtitle": "Afficher l'onglet « Dépôt » dans le menu de navigation",
|
||||
"@optionsExtensionStoreSubtitle": {
|
||||
"description": "Subtitle for extension store toggle"
|
||||
"description": "Subtitle for extension repo toggle"
|
||||
},
|
||||
"optionsCheckUpdates": "Vérifier les mises à jour",
|
||||
"@optionsCheckUpdates": {
|
||||
@@ -360,31 +332,6 @@
|
||||
"@optionsDetailedLoggingOff": {
|
||||
"description": "Status when logging disabled"
|
||||
},
|
||||
"optionsSpotifyCredentials": "Identifiants Spotify",
|
||||
"@optionsSpotifyCredentials": {
|
||||
"description": "Spotify API credentials setting"
|
||||
},
|
||||
"optionsSpotifyCredentialsConfigured": "Identifiant client : {clientId}...",
|
||||
"@optionsSpotifyCredentialsConfigured": {
|
||||
"description": "Shows configured client ID preview",
|
||||
"placeholders": {
|
||||
"clientId": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsSpotifyCredentialsRequired": "Obligatoire - appuyez pour configurer",
|
||||
"@optionsSpotifyCredentialsRequired": {
|
||||
"description": "Prompt to set up credentials"
|
||||
},
|
||||
"optionsSpotifyWarning": "Spotify nécessite vos propres identifiants API. Vous pouvez les obtenir gratuitement sur developer.spotify.com",
|
||||
"@optionsSpotifyWarning": {
|
||||
"description": "Info about Spotify API requirement"
|
||||
},
|
||||
"optionsSpotifyDeprecationWarning": "La fonction de recherche Spotify sera supprimée le 3 mars 2026 en raison de modifications apportées à l'API Spotify. Veuillez passer à Deezer.",
|
||||
"@optionsSpotifyDeprecationWarning": {
|
||||
"description": "Warning about Spotify API deprecation"
|
||||
},
|
||||
"extensionsTitle": "Extensions",
|
||||
"@extensionsTitle": {
|
||||
"description": "Extensions page title"
|
||||
@@ -402,26 +349,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsAuthor": "par {author}",
|
||||
"@extensionsAuthor": {
|
||||
"description": "Extension author credit",
|
||||
"placeholders": {
|
||||
"author": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsUninstall": "Désinstaller",
|
||||
"@extensionsUninstall": {
|
||||
"description": "Uninstall extension button"
|
||||
},
|
||||
"storeTitle": "Répertoire des extensions",
|
||||
"@storeTitle": {
|
||||
"description": "Store screen title"
|
||||
"description": "Repo screen title"
|
||||
},
|
||||
"storeSearch": "Recherche d'extensions...",
|
||||
"@storeSearch": {
|
||||
"description": "Store search placeholder"
|
||||
"description": "Repo search placeholder"
|
||||
},
|
||||
"storeInstall": "Installer",
|
||||
"@storeInstall": {
|
||||
@@ -912,14 +850,6 @@
|
||||
"@snackbarHistoryCleared": {
|
||||
"description": "Snackbar - history deleted"
|
||||
},
|
||||
"snackbarCredentialsSaved": "Identifiants enregistrés",
|
||||
"@snackbarCredentialsSaved": {
|
||||
"description": "Snackbar - Spotify credentials saved"
|
||||
},
|
||||
"snackbarCredentialsCleared": "Identifiants validés",
|
||||
"@snackbarCredentialsCleared": {
|
||||
"description": "Snackbar - Spotify credentials removed"
|
||||
},
|
||||
"snackbarDeletedTracks": "Supprimé {count} {count, plural, =1{titre} other{titres}}",
|
||||
"@snackbarDeletedTracks": {
|
||||
"description": "Snackbar - tracks deleted",
|
||||
@@ -938,10 +868,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"snackbarFillAllFields": "Veuillez remplir tous les champs",
|
||||
"@snackbarFillAllFields": {
|
||||
"description": "Snackbar - validation error"
|
||||
},
|
||||
"snackbarViewQueue": "Afficher la file d'attente",
|
||||
"@snackbarViewQueue": {
|
||||
"description": "Snackbar action - view download queue"
|
||||
@@ -1055,14 +981,6 @@
|
||||
"@actionDeselect": {
|
||||
"description": "Action button - deselect all"
|
||||
},
|
||||
"actionRemoveCredentials": "Supprimer les identifiants",
|
||||
"@actionRemoveCredentials": {
|
||||
"description": "Action button - delete Spotify credentials"
|
||||
},
|
||||
"actionSaveCredentials": "Enregistrer les identifiants",
|
||||
"@actionSaveCredentials": {
|
||||
"description": "Action button - save Spotify credentials"
|
||||
},
|
||||
"selectionSelected": "{count} sélectionnés",
|
||||
"@selectionSelected": {
|
||||
"description": "Selection count indicator",
|
||||
@@ -1236,6 +1154,19 @@
|
||||
"@updateNewVersionReady": {
|
||||
"description": "Update subtitle"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"updateCurrent": "Actuel",
|
||||
"@updateCurrent": {
|
||||
"description": "Label for current version"
|
||||
@@ -1272,10 +1203,6 @@
|
||||
"@providerPriorityInfo": {
|
||||
"description": "Info tip about fallback behavior"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsTitle": "Solution de secours pour les extensions",
|
||||
"@providerPriorityFallbackExtensionsTitle": {
|
||||
"description": "Section title for choosing which download extensions can be used as fallback providers"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsDescription": "Sélectionnez les extensions de téléchargement installées qui peuvent être utilisées lors du basculement automatique.",
|
||||
"@providerPriorityFallbackExtensionsDescription": {
|
||||
"description": "Section description for extension fallback selection"
|
||||
@@ -1284,10 +1211,6 @@
|
||||
"@providerPriorityFallbackExtensionsHint": {
|
||||
"description": "Hint below the extension fallback selection list"
|
||||
},
|
||||
"providerBuiltIn": "Héritage",
|
||||
"@providerBuiltIn": {
|
||||
"description": "Legacy label retained for old generated localization compatibility"
|
||||
},
|
||||
"providerExtension": "Extension",
|
||||
"@providerExtension": {
|
||||
"description": "Label for extension-provided providers"
|
||||
@@ -1304,14 +1227,6 @@
|
||||
"@metadataProviderPriorityInfo": {
|
||||
"description": "Info tip about rate limits"
|
||||
},
|
||||
"metadataNoRateLimits": "Pas de limite de débit",
|
||||
"@metadataNoRateLimits": {
|
||||
"description": "Deezer provider description"
|
||||
},
|
||||
"metadataMayRateLimit": "Limite de taux de métadonnées",
|
||||
"@metadataMayRateLimit": {
|
||||
"description": "Spotify provider description"
|
||||
},
|
||||
"logTitle": "Journaux",
|
||||
"@logTitle": {
|
||||
"description": "Logs screen title"
|
||||
@@ -1378,30 +1293,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"credentialsTitle": "Identifiants Spotify",
|
||||
"@credentialsTitle": {
|
||||
"description": "Credentials dialog title"
|
||||
},
|
||||
"credentialsDescription": "Saisissez votre identifiant client et votre clé secrète pour utiliser votre propre quota d'application Spotify.",
|
||||
"@credentialsDescription": {
|
||||
"description": "Credentials dialog explanation"
|
||||
},
|
||||
"credentialsClientId": "Identifiant client",
|
||||
"@credentialsClientId": {
|
||||
"description": "Client ID field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientIdHint": "Coller l'identifiant client",
|
||||
"@credentialsClientIdHint": {
|
||||
"description": "Client ID placeholder"
|
||||
},
|
||||
"credentialsClientSecret": "Clé secrète du client",
|
||||
"@credentialsClientSecret": {
|
||||
"description": "Client Secret field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientSecretHint": "Coller la clé secrète du client",
|
||||
"@credentialsClientSecretHint": {
|
||||
"description": "Client Secret placeholder"
|
||||
},
|
||||
"channelStable": "Stable",
|
||||
"@channelStable": {
|
||||
"description": "Update channel - stable releases"
|
||||
@@ -1510,10 +1401,6 @@
|
||||
"@settingsDownloadSubtitle": {
|
||||
"description": "Download settings description"
|
||||
},
|
||||
"settingsOptionsSubtitle": "Fichier de secours, métadonnées, paroles, pochette",
|
||||
"@settingsOptionsSubtitle": {
|
||||
"description": "Options settings description"
|
||||
},
|
||||
"settingsExtensionsSubtitle": "Gérez les fournisseurs de téléchargement",
|
||||
"@settingsExtensionsSubtitle": {
|
||||
"description": "Extensions settings description"
|
||||
@@ -1730,27 +1617,27 @@
|
||||
},
|
||||
"storeFilterAll": "Tout",
|
||||
"@storeFilterAll": {
|
||||
"description": "Store filter - all extensions"
|
||||
"description": "Repo filter - all extensions"
|
||||
},
|
||||
"storeFilterMetadata": "Métadonnées",
|
||||
"@storeFilterMetadata": {
|
||||
"description": "Store filter - metadata providers"
|
||||
"description": "Repo filter - metadata providers"
|
||||
},
|
||||
"storeFilterDownload": "Télécharger",
|
||||
"@storeFilterDownload": {
|
||||
"description": "Store filter - download providers"
|
||||
"description": "Repo filter - download providers"
|
||||
},
|
||||
"storeFilterUtility": "Utilitaire",
|
||||
"@storeFilterUtility": {
|
||||
"description": "Store filter - utility extensions"
|
||||
"description": "Repo filter - utility extensions"
|
||||
},
|
||||
"storeFilterLyrics": "Paroles",
|
||||
"@storeFilterLyrics": {
|
||||
"description": "Store filter - lyrics providers"
|
||||
"description": "Repo filter - lyrics providers"
|
||||
},
|
||||
"storeFilterIntegration": "Intégration",
|
||||
"@storeFilterIntegration": {
|
||||
"description": "Store filter - integrations"
|
||||
"description": "Repo filter - integrations"
|
||||
},
|
||||
"storeClearFilters": "Effacer les filtres",
|
||||
"@storeClearFilters": {
|
||||
@@ -1772,10 +1659,6 @@
|
||||
"@storeRepoUrlHint": {
|
||||
"description": "Hint/placeholder for the repository URL input field"
|
||||
},
|
||||
"storeRepoUrlHelper": "par exemple : https://github.com/user/extensions-repo",
|
||||
"@storeRepoUrlHelper": {
|
||||
"description": "Helper text below the repository URL input field"
|
||||
},
|
||||
"storeAddRepoButton": "Ajouter un dépôt",
|
||||
"@storeAddRepoButton": {
|
||||
"description": "Button to submit a new repository URL"
|
||||
@@ -1808,18 +1691,6 @@
|
||||
"@storeEmptyNoResults": {
|
||||
"description": "Message when search/filter returns no results"
|
||||
},
|
||||
"extensionDefaultProvider": "Recherche par défaut",
|
||||
"@extensionDefaultProvider": {
|
||||
"description": "Default search provider option"
|
||||
},
|
||||
"extensionDefaultProviderSubtitle": "Utiliser la recherche par métadonnées par défaut",
|
||||
"@extensionDefaultProviderSubtitle": {
|
||||
"description": "Subtitle for default provider"
|
||||
},
|
||||
"extensionAuthor": "Auteur",
|
||||
"@extensionAuthor": {
|
||||
"description": "Extension detail - author"
|
||||
},
|
||||
"extensionId": "Identifiant",
|
||||
"@extensionId": {
|
||||
"description": "Extension detail - unique ID"
|
||||
@@ -2087,10 +1958,6 @@
|
||||
"@downloadLossyOpus128Subtitle": {
|
||||
"description": "Subtitle for Opus 128kbps lossy option"
|
||||
},
|
||||
"qualityNote": "La qualité réelle dépend de la disponibilité des pistes sur le service",
|
||||
"@qualityNote": {
|
||||
"description": "Note about quality availability"
|
||||
},
|
||||
"downloadAskBeforeDownload": "Demander avant de télécharger",
|
||||
"@downloadAskBeforeDownload": {
|
||||
"description": "Setting - show quality picker"
|
||||
@@ -2143,6 +2010,14 @@
|
||||
"@appearanceAmoledDarkSubtitle": {
|
||||
"description": "Subtitle for AMOLED dark"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"queueClearAll": "Tout effacer",
|
||||
"@queueClearAll": {
|
||||
"description": "Button - clear all queue items"
|
||||
@@ -2175,6 +2050,27 @@
|
||||
"@settingsDownloadNetworkSubtitle": {
|
||||
"description": "Subtitle explaining network preference"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"albumFolderArtistAlbum": "Artiste / Album",
|
||||
"@albumFolderArtistAlbum": {
|
||||
"description": "Album folder option"
|
||||
@@ -2245,10 +2141,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadedAlbumAllSelected": "Tous les titres sélectionnés",
|
||||
"@downloadedAlbumAllSelected": {
|
||||
"description": "Status - all items selected"
|
||||
},
|
||||
"downloadedAlbumTapToSelect": "Appuyez sur les titres pour les sélectionner",
|
||||
"@downloadedAlbumTapToSelect": {
|
||||
"description": "Selection hint"
|
||||
@@ -2976,6 +2868,22 @@
|
||||
"@cacheLibraryCoverDesc": {
|
||||
"description": "Description of what library cover cache contains"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"cacheExploreFeed": "Explorer le cache des flux",
|
||||
"@cacheExploreFeed": {
|
||||
"description": "Cache item title for explore home feed cache"
|
||||
@@ -3092,18 +3000,10 @@
|
||||
"@trackSaveCoverArt": {
|
||||
"description": "Menu action - save album cover art as file"
|
||||
},
|
||||
"trackSaveCoverArtSubtitle": "Enregistrez la pochette de l'album au format .jpg",
|
||||
"@trackSaveCoverArtSubtitle": {
|
||||
"description": "Subtitle for save cover art action"
|
||||
},
|
||||
"trackSaveLyrics": "Enregistrer les paroles (.lrc)",
|
||||
"@trackSaveLyrics": {
|
||||
"description": "Menu action - save lyrics as .lrc file"
|
||||
},
|
||||
"trackSaveLyricsSubtitle": "Récupérez et enregistrez les paroles sous forme de fichier .lrc",
|
||||
"@trackSaveLyricsSubtitle": {
|
||||
"description": "Subtitle for save lyrics action"
|
||||
},
|
||||
"trackSaveLyricsProgress": "Enregistrement des paroles...",
|
||||
"@trackSaveLyricsProgress": {
|
||||
"description": "Snackbar while saving lyrics to file"
|
||||
@@ -3116,10 +3016,6 @@
|
||||
"@trackReEnrichOnlineSubtitle": {
|
||||
"description": "Subtitle for re-enrich metadata action for local items"
|
||||
},
|
||||
"trackReEnrichFieldsTitle": "Champs à mettre à jour",
|
||||
"@trackReEnrichFieldsTitle": {
|
||||
"description": "Section title for field selection in re-enrich dialog"
|
||||
},
|
||||
"trackReEnrichFieldCover": "Illustration de couverture",
|
||||
"@trackReEnrichFieldCover": {
|
||||
"description": "Checkbox label for cover art field in re-enrich"
|
||||
@@ -3203,18 +3099,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacFindingProgress": "Recherche de fichiers FLAC... ({current}/{total})",
|
||||
"@queueFlacFindingProgress": {
|
||||
"description": "Snackbar while resolving remote matches for local FLAC redownloads",
|
||||
"placeholders": {
|
||||
"current": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacNoReliableMatches": "Aucun résultat pertinent n'a été trouvé en ligne pour cette sélection",
|
||||
"@queueFlacNoReliableMatches": {
|
||||
"description": "Snackbar when no safe FLAC redownload matches were found"
|
||||
@@ -3244,10 +3128,6 @@
|
||||
"@trackConvertFormat": {
|
||||
"description": "Menu item - convert audio format"
|
||||
},
|
||||
"trackConvertFormatSubtitle": "Convertir au format AAC/M4A, MP3, Opus, ALAC ou FLAC",
|
||||
"@trackConvertFormatSubtitle": {
|
||||
"description": "Subtitle for convert format menu item"
|
||||
},
|
||||
"trackConvertTitle": "Convertir un fichier audio",
|
||||
"@trackConvertTitle": {
|
||||
"description": "Title of convert bottom sheet"
|
||||
@@ -3260,6 +3140,14 @@
|
||||
"@trackConvertBitrate": {
|
||||
"description": "Label for bitrate selection"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"trackConvertConfirmTitle": "Confirmer la conversion",
|
||||
"@trackConvertConfirmTitle": {
|
||||
"description": "Confirmation dialog title"
|
||||
@@ -3291,6 +3179,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"trackConvertLosslessHint": "Conversion sans perte — aucune perte de qualité",
|
||||
"@trackConvertLosslessHint": {
|
||||
"description": "Hint shown when converting between lossless formats"
|
||||
@@ -3316,10 +3216,6 @@
|
||||
"@cueSplitTitle": {
|
||||
"description": "Title for CUE split bottom sheet"
|
||||
},
|
||||
"cueSplitSubtitle": "Diviser un fichier CUE+FLAC en pistes individuelles",
|
||||
"@cueSplitSubtitle": {
|
||||
"description": "Subtitle for CUE split menu item"
|
||||
},
|
||||
"cueSplitAlbum": "Album : {album}",
|
||||
"@cueSplitAlbum": {
|
||||
"description": "Album name in CUE split sheet",
|
||||
@@ -3416,10 +3312,6 @@
|
||||
"@collectionFavoriteArtists": {
|
||||
"description": "Custom folder for favorite artists"
|
||||
},
|
||||
"collectionPlaylists": "Playlists",
|
||||
"@collectionPlaylists": {
|
||||
"description": "Custom user playlists folder"
|
||||
},
|
||||
"collectionPlaylist": "Playlist",
|
||||
"@collectionPlaylist": {
|
||||
"description": "Single playlist label"
|
||||
@@ -3436,10 +3328,6 @@
|
||||
"@collectionNoPlaylistsYet": {
|
||||
"description": "Empty state title when user has no playlists"
|
||||
},
|
||||
"collectionNoPlaylistsSubtitle": "Créez une playlist pour commencer à classer vos morceaux",
|
||||
"@collectionNoPlaylistsSubtitle": {
|
||||
"description": "Empty state subtitle when user has no playlists"
|
||||
},
|
||||
"collectionPlaylistTracks": "{count, plural, =1{1 titre} other{{count} titres}}",
|
||||
"@collectionPlaylistTracks": {
|
||||
"description": "Track count label for custom playlists",
|
||||
@@ -3476,10 +3364,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistCreated": "Playlist créée",
|
||||
"@collectionPlaylistCreated": {
|
||||
"description": "Snackbar after creating playlist"
|
||||
},
|
||||
"collectionPlaylistNameHint": "Nom de la playlist",
|
||||
"@collectionPlaylistNameHint": {
|
||||
"description": "Hint text for playlist name input"
|
||||
@@ -3496,19 +3380,6 @@
|
||||
"@collectionDeletePlaylist": {
|
||||
"description": "Action to delete playlist"
|
||||
},
|
||||
"collectionDeletePlaylistMessage": "Supprimer « {playlistName} » et tous les morceaux qu'elle contient ?",
|
||||
"@collectionDeletePlaylistMessage": {
|
||||
"description": "Confirmation message for deleting playlist",
|
||||
"placeholders": {
|
||||
"playlistName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistDeleted": "Playlist supprimée",
|
||||
"@collectionPlaylistDeleted": {
|
||||
"description": "Snackbar after deleting playlist"
|
||||
},
|
||||
"collectionPlaylistRenamed": "Playlist renommée",
|
||||
"@collectionPlaylistRenamed": {
|
||||
"description": "Snackbar after renaming playlist"
|
||||
@@ -3553,15 +3424,6 @@
|
||||
"@collectionRemoveFromFolder": {
|
||||
"description": "Tooltip for removing track from wishlist/loved folder"
|
||||
},
|
||||
"collectionRemoved": "« {trackName} » supprimé",
|
||||
"@collectionRemoved": {
|
||||
"description": "Snackbar after removing a track from a collection",
|
||||
"placeholders": {
|
||||
"trackName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionAddedToLoved": "\"{trackName}\" ajouté aux Favoris",
|
||||
"@collectionAddedToLoved": {
|
||||
"description": "Snackbar after adding track to loved folder",
|
||||
@@ -3705,15 +3567,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionBatchConvertProgress": "Conversion de {current} sur {total}...",
|
||||
"@selectionBatchConvertProgress": {
|
||||
"description": "Snackbar during batch conversion progress",
|
||||
"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": {
|
||||
"current": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
"format": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3879,10 +3741,6 @@
|
||||
"@backupImportButton": {
|
||||
"description": "Button to pick a backup file to restore"
|
||||
},
|
||||
"backupCreating": "Création d'une sauvegarde...",
|
||||
"@backupCreating": {
|
||||
"description": "Progress text while a backup is being created"
|
||||
},
|
||||
"backupCreated": "Sauvegarde créée",
|
||||
"@backupCreated": {
|
||||
"description": "Snackbar after a backup file is created"
|
||||
@@ -3891,10 +3749,6 @@
|
||||
"@backupCreateFailed": {
|
||||
"description": "Snackbar when backup creation fails"
|
||||
},
|
||||
"backupEmpty": "Il n'y a encore rien à sauvegarder",
|
||||
"@backupEmpty": {
|
||||
"description": "Snackbar when there is no data to back up"
|
||||
},
|
||||
"backupRestoreConfirmTitle": "Restaurer cette sauvegarde ?",
|
||||
"@backupRestoreConfirmTitle": {
|
||||
"description": "Confirmation dialog title before restoring a backup"
|
||||
@@ -3907,10 +3761,6 @@
|
||||
"@backupRestoreConfirmButton": {
|
||||
"description": "Confirm button to proceed with restore"
|
||||
},
|
||||
"backupRestoring": "Restauration de la sauvegarde...",
|
||||
"@backupRestoring": {
|
||||
"description": "Progress text while restoring a backup"
|
||||
},
|
||||
"backupRestored": "La sauvegarde a été restaurée avec succès",
|
||||
"@backupRestored": {
|
||||
"description": "Snackbar after a successful restore"
|
||||
@@ -3997,7 +3847,7 @@
|
||||
"@backupIncludeSecretsDescription": {
|
||||
"description": "Explanation for the include-credentials toggle"
|
||||
},
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, one {}=1{extension} other{extensions}} n'ont pas pu être réinstallées. Installez-les manuellement depuis la boutique.",
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} n'ont pas pu être réinstallées. Installez-les manuellement à partir du dépôt.",
|
||||
"@backupExtensionsRestoreFailed": {
|
||||
"description": "Snackbar/hint when some extensions failed to reinstall during restore",
|
||||
"placeholders": {
|
||||
@@ -4110,6 +3960,26 @@
|
||||
"@storageModeSafSubtitle": {
|
||||
"description": "Subtitle for SAF storage mode"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFilenameDescription": "Utilisez {artist}, {title}, {album}, {track}, {year}, {date} et {disc} comme variables de remplacement.",
|
||||
"@downloadFilenameDescription": {
|
||||
"description": "Description shown in filename format editor"
|
||||
@@ -4178,10 +4048,6 @@
|
||||
"@downloadSelectServiceToEnable": {
|
||||
"description": "Subtitle when quality picker is disabled due to extension service"
|
||||
},
|
||||
"downloadSelectTidalQobuz": "Choisissez un fournisseur proposant différentes options pour sélectionner la qualité audio",
|
||||
"@downloadSelectTidalQobuz": {
|
||||
"description": "Legacy info shown when a provider does not expose quality options"
|
||||
},
|
||||
"downloadEmbedLyricsDisabled": "Activez d'abord l'intégration des métadonnées",
|
||||
"@downloadEmbedLyricsDisabled": {
|
||||
"description": "Subtitle when lyrics embedding is blocked by metadata toggle"
|
||||
@@ -4430,10 +4296,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueDownloadedHeader": "Téléchargé",
|
||||
"@queueDownloadedHeader": {
|
||||
"description": "Header label for downloaded items section in library"
|
||||
},
|
||||
"queueFilteringIndicator": "Filtrage...",
|
||||
"@queueFilteringIndicator": {
|
||||
"description": "Shown while filter results are being computed"
|
||||
@@ -4588,15 +4450,6 @@
|
||||
"@audioAnalysisRescanning": {
|
||||
"description": "Loading text while audio is being re-analyzed after an explicit refresh"
|
||||
},
|
||||
"extensionsSearchWith": "Rechercher avec {providerName}",
|
||||
"@extensionsSearchWith": {
|
||||
"description": "Extensions page - subtitle for default metadata search provider option",
|
||||
"placeholders": {
|
||||
"providerName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsHomeFeedProvider": "Fournisseur de flux RSS",
|
||||
"@extensionsHomeFeedProvider": {
|
||||
"description": "Extensions page - label for home feed provider selector"
|
||||
@@ -4634,14 +4487,6 @@
|
||||
"@extensionsNoHomeFeedExtensions": {
|
||||
"description": "Extensions page - shown when no installed extension has home feed"
|
||||
},
|
||||
"sortAlphaAsc": "A-Z",
|
||||
"@sortAlphaAsc": {
|
||||
"description": "Sort option - alphabetical ascending"
|
||||
},
|
||||
"sortAlphaDesc": "Z-A",
|
||||
"@sortAlphaDesc": {
|
||||
"description": "Sort option - alphabetical descending"
|
||||
},
|
||||
"cancelDownloadTitle": "Annuler le téléchargement ?",
|
||||
"@cancelDownloadTitle": {
|
||||
"description": "Dialog title when confirming cancellation of an active download"
|
||||
@@ -4676,34 +4521,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorLoadAlbum": "Impossible de charger l'album",
|
||||
"@errorLoadAlbum": {
|
||||
"description": "Error state shown when album fails to load"
|
||||
},
|
||||
"errorLoadPlaylist": "Impossible de charger la playlist",
|
||||
"@errorLoadPlaylist": {
|
||||
"description": "Error state shown when playlist fails to load"
|
||||
},
|
||||
"errorLoadArtist": "Impossible de charger l'artiste",
|
||||
"@errorLoadArtist": {
|
||||
"description": "Error state shown when artist fails to load"
|
||||
},
|
||||
"notifChannelDownloadName": "Progression du téléchargement",
|
||||
"@notifChannelDownloadName": {
|
||||
"description": "Android notification channel name for download progress"
|
||||
},
|
||||
"notifChannelDownloadDesc": "Affiche la progression du téléchargement des morceaux",
|
||||
"@notifChannelDownloadDesc": {
|
||||
"description": "Android notification channel description for download progress"
|
||||
},
|
||||
"notifChannelLibraryScanName": "Analyse de la bibliothèque",
|
||||
"@notifChannelLibraryScanName": {
|
||||
"description": "Android notification channel name for library scan"
|
||||
},
|
||||
"notifChannelLibraryScanDesc": "Affiche la progression de la numérisation dans la bibliothèque locale",
|
||||
"@notifChannelLibraryScanDesc": {
|
||||
"description": "Android notification channel description for library scan"
|
||||
},
|
||||
"notifDownloadingTrack": "Téléchargement de {trackName}",
|
||||
"@notifDownloadingTrack": {
|
||||
"description": "Notification title while downloading a track",
|
||||
@@ -4770,6 +4587,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"notifAllDownloadsComplete": "Tous les téléchargements sont terminés",
|
||||
"@notifAllDownloadsComplete": {
|
||||
"description": "Notification title when all downloads finish successfully"
|
||||
@@ -4956,14 +4781,6 @@
|
||||
"@actionPaste": {
|
||||
"description": "Generic action - paste from clipboard"
|
||||
},
|
||||
"searchTracksHint": "Rechercher des morceaux...",
|
||||
"@searchTracksHint": {
|
||||
"description": "Placeholder for the search screen input"
|
||||
},
|
||||
"searchTracksEmptyPrompt": "Rechercher des morceaux",
|
||||
"@searchTracksEmptyPrompt": {
|
||||
"description": "Empty-state prompt on the search screen"
|
||||
},
|
||||
"tutorialSearchHint": "Collez ou effectuez une recherche...",
|
||||
"@tutorialSearchHint": {
|
||||
"description": "Placeholder shown in the tutorial search demo"
|
||||
@@ -4992,14 +4809,6 @@
|
||||
"@optionsEmbedMetadataSubtitleOff": {
|
||||
"description": "Subtitle when metadata embedding is disabled"
|
||||
},
|
||||
"optionsMaxQualityCoverSubtitleDisabled": "Désactivé lorsque l'intégration des métadonnées est désactivée",
|
||||
"@optionsMaxQualityCoverSubtitleDisabled": {
|
||||
"description": "Subtitle for max quality cover when metadata embedding is disabled"
|
||||
},
|
||||
"downloadFilenameHintExample": "{artist} - {title}",
|
||||
"@downloadFilenameHintExample": {
|
||||
"description": "Example placeholder for the download filename format input"
|
||||
},
|
||||
"trackCoverNoEmbeddedArt": "Aucune pochette d'album n'a été trouvée",
|
||||
"@trackCoverNoEmbeddedArt": {
|
||||
"description": "Message shown when a track file has no embedded cover art"
|
||||
@@ -5239,14 +5048,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsDefaultSearchTabAlbums": "Albums",
|
||||
"@optionsDefaultSearchTabAlbums": {
|
||||
"description": "Default search tab option - Albums tab"
|
||||
},
|
||||
"optionsDefaultSearchTabTracks": "Titres",
|
||||
"@optionsDefaultSearchTabTracks": {
|
||||
"description": "Default search tab option - Tracks tab"
|
||||
},
|
||||
"settingsFiles": "Fichiers & Dossiers",
|
||||
"@settingsFiles": {
|
||||
"description": "Settings menu item - file and folder settings"
|
||||
@@ -5307,10 +5108,26 @@
|
||||
"@downloadDeduplicationEnabled": {
|
||||
"description": "Subtitle when deduplication is on"
|
||||
},
|
||||
"downloadDeduplicationWithQualityVariants": "Les fichiers existants correspondant à la qualité sélectionnée seront ignorés",
|
||||
"@downloadDeduplicationWithQualityVariants": {
|
||||
"description": "Deduplication subtitle when separate quality versions are allowed"
|
||||
},
|
||||
"downloadDeduplicationDisabled": "Tous les morceaux seront téléchargés, quel que soit l'historique",
|
||||
"@downloadDeduplicationDisabled": {
|
||||
"description": "Subtitle when deduplication is off"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFallbackExtensions": "Extensions de secours",
|
||||
"@downloadFallbackExtensions": {
|
||||
"description": "Settings item for configuring fallback extension providers"
|
||||
@@ -5451,6 +5268,11 @@
|
||||
}
|
||||
},
|
||||
"queueDownloadStarting": "C'est parti...",
|
||||
"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...",
|
||||
"@queueDownloadStarting": {
|
||||
"description": "Queue status before download progress is available"
|
||||
},
|
||||
@@ -5539,7 +5361,7 @@
|
||||
"@downloadNativeWorker": {
|
||||
"description": "Setting title for Android native download worker"
|
||||
},
|
||||
"downloadNativeWorkerSubtitle": "Service worker Android en version bêta pour le téléchargement d'extensions",
|
||||
"downloadNativeWorkerSubtitle": "Service d'arrière-plan Android pour le téléchargement d'extensions",
|
||||
"@downloadNativeWorkerSubtitle": {
|
||||
"description": "Setting subtitle for Android native download worker"
|
||||
},
|
||||
@@ -5699,10 +5521,6 @@
|
||||
"@errorInvalidFolderSelected": {
|
||||
"description": "Error when the selected folder is invalid"
|
||||
},
|
||||
"errorCouldNotKeepFolderAccess": "Impossible de conserver l'accès au dossier sélectionné",
|
||||
"@errorCouldNotKeepFolderAccess": {
|
||||
"description": "Error when persistent folder access cannot be saved"
|
||||
},
|
||||
"storeAnyVersion": "N'importe lequel",
|
||||
"@storeAnyVersion": {
|
||||
"description": "Store detail value when any app version is accepted"
|
||||
|
||||
+146
-328
@@ -19,7 +19,7 @@
|
||||
},
|
||||
"navStore": "Repo",
|
||||
"@navStore": {
|
||||
"description": "Bottom navigation - Extension store tab"
|
||||
"description": "Bottom navigation - Extension repo tab"
|
||||
},
|
||||
"homeTitle": "Home",
|
||||
"@homeTitle": {
|
||||
@@ -73,10 +73,6 @@
|
||||
"@settingsAppearance": {
|
||||
"description": "Settings section - visual customization"
|
||||
},
|
||||
"settingsOptions": "Options",
|
||||
"@settingsOptions": {
|
||||
"description": "Settings section - app options"
|
||||
},
|
||||
"settingsExtensions": "Extensions",
|
||||
"@settingsExtensions": {
|
||||
"description": "Settings section - extension management"
|
||||
@@ -145,10 +141,6 @@
|
||||
"@appearanceHistoryViewGrid": {
|
||||
"description": "Grid layout option"
|
||||
},
|
||||
"optionsTitle": "Options",
|
||||
"@optionsTitle": {
|
||||
"description": "Options settings page title"
|
||||
},
|
||||
"optionsPrimaryProvider": "Primary Provider",
|
||||
"@optionsPrimaryProvider": {
|
||||
"description": "Main search provider setting"
|
||||
@@ -174,10 +166,6 @@
|
||||
"@optionsDefaultSearchTabSubtitle": {
|
||||
"description": "Subtitle for the preferred default search tab setting"
|
||||
},
|
||||
"optionsSwitchBack": "Choose the default search provider to switch back from an extension",
|
||||
"@optionsSwitchBack": {
|
||||
"description": "Hint to switch back from extension search"
|
||||
},
|
||||
"optionsAutoFallback": "Auto Fallback",
|
||||
"@optionsAutoFallback": {
|
||||
"description": "Auto-retry with other services"
|
||||
@@ -186,18 +174,6 @@
|
||||
"@optionsAutoFallbackSubtitle": {
|
||||
"description": "Subtitle for auto fallback"
|
||||
},
|
||||
"optionsUseExtensionProviders": "Use Extension Providers",
|
||||
"@optionsUseExtensionProviders": {
|
||||
"description": "Legacy setting label for extension download providers"
|
||||
},
|
||||
"optionsUseExtensionProvidersOn": "Extension providers are enabled",
|
||||
"@optionsUseExtensionProvidersOn": {
|
||||
"description": "Status when extension providers enabled"
|
||||
},
|
||||
"optionsUseExtensionProvidersOff": "Extension providers are required",
|
||||
"@optionsUseExtensionProvidersOff": {
|
||||
"description": "Legacy status when extension providers would be disabled"
|
||||
},
|
||||
"optionsEmbedLyrics": "Embed Lyrics",
|
||||
"@optionsEmbedLyrics": {
|
||||
"description": "Embed lyrics in audio files"
|
||||
@@ -230,10 +206,6 @@
|
||||
"@trackReplayGain": {
|
||||
"description": "Three-dot menu option to scan loudness and write ReplayGain tags"
|
||||
},
|
||||
"trackReplayGainSubtitle": "Analyze loudness and write ReplayGain tags",
|
||||
"@trackReplayGainSubtitle": {
|
||||
"description": "Subtitle for the rescan ReplayGain menu option"
|
||||
},
|
||||
"trackReplayGainScanning": "Analyzing loudness...",
|
||||
"@trackReplayGainScanning": {
|
||||
"description": "Snackbar/progress message while scanning ReplayGain for a single track"
|
||||
@@ -310,11 +282,11 @@
|
||||
},
|
||||
"optionsExtensionStore": "Extension Repo",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide store tab"
|
||||
"description": "Show/hide repo tab"
|
||||
},
|
||||
"optionsExtensionStoreSubtitle": "Show Repo tab in navigation",
|
||||
"@optionsExtensionStoreSubtitle": {
|
||||
"description": "Subtitle for extension store toggle"
|
||||
"description": "Subtitle for extension repo toggle"
|
||||
},
|
||||
"optionsCheckUpdates": "Check for Updates",
|
||||
"@optionsCheckUpdates": {
|
||||
@@ -360,31 +332,6 @@
|
||||
"@optionsDetailedLoggingOff": {
|
||||
"description": "Status when logging disabled"
|
||||
},
|
||||
"optionsSpotifyCredentials": "Spotify Credentials",
|
||||
"@optionsSpotifyCredentials": {
|
||||
"description": "Spotify API credentials setting"
|
||||
},
|
||||
"optionsSpotifyCredentialsConfigured": "Client ID: {clientId}...",
|
||||
"@optionsSpotifyCredentialsConfigured": {
|
||||
"description": "Shows configured client ID preview",
|
||||
"placeholders": {
|
||||
"clientId": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsSpotifyCredentialsRequired": "Required - tap to configure",
|
||||
"@optionsSpotifyCredentialsRequired": {
|
||||
"description": "Prompt to set up credentials"
|
||||
},
|
||||
"optionsSpotifyWarning": "Spotify requires your own API credentials. Get them free from developer.spotify.com",
|
||||
"@optionsSpotifyWarning": {
|
||||
"description": "Info about Spotify API requirement"
|
||||
},
|
||||
"optionsSpotifyDeprecationWarning": "Spotify search will be deprecated on March 3, 2026 due to Spotify API changes. Please switch to Deezer.",
|
||||
"@optionsSpotifyDeprecationWarning": {
|
||||
"description": "Warning about Spotify API deprecation"
|
||||
},
|
||||
"extensionsTitle": "Extensions",
|
||||
"@extensionsTitle": {
|
||||
"description": "Extensions page title"
|
||||
@@ -402,26 +349,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsAuthor": "by {author}",
|
||||
"@extensionsAuthor": {
|
||||
"description": "Extension author credit",
|
||||
"placeholders": {
|
||||
"author": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsUninstall": "Uninstall",
|
||||
"@extensionsUninstall": {
|
||||
"description": "Uninstall extension button"
|
||||
},
|
||||
"storeTitle": "Extension Repo",
|
||||
"@storeTitle": {
|
||||
"description": "Store screen title"
|
||||
"description": "Repo screen title"
|
||||
},
|
||||
"storeSearch": "Search extensions...",
|
||||
"@storeSearch": {
|
||||
"description": "Store search placeholder"
|
||||
"description": "Repo search placeholder"
|
||||
},
|
||||
"storeInstall": "Install",
|
||||
"@storeInstall": {
|
||||
@@ -912,14 +850,6 @@
|
||||
"@snackbarHistoryCleared": {
|
||||
"description": "Snackbar - history deleted"
|
||||
},
|
||||
"snackbarCredentialsSaved": "Credentials saved",
|
||||
"@snackbarCredentialsSaved": {
|
||||
"description": "Snackbar - Spotify credentials saved"
|
||||
},
|
||||
"snackbarCredentialsCleared": "Credentials cleared",
|
||||
"@snackbarCredentialsCleared": {
|
||||
"description": "Snackbar - Spotify credentials removed"
|
||||
},
|
||||
"snackbarDeletedTracks": "Deleted {count} {count, plural, =1{track} other{tracks}}",
|
||||
"@snackbarDeletedTracks": {
|
||||
"description": "Snackbar - tracks deleted",
|
||||
@@ -938,10 +868,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"snackbarFillAllFields": "Please fill all fields",
|
||||
"@snackbarFillAllFields": {
|
||||
"description": "Snackbar - validation error"
|
||||
},
|
||||
"snackbarViewQueue": "View Queue",
|
||||
"@snackbarViewQueue": {
|
||||
"description": "Snackbar action - view download queue"
|
||||
@@ -1055,14 +981,6 @@
|
||||
"@actionDeselect": {
|
||||
"description": "Action button - deselect all"
|
||||
},
|
||||
"actionRemoveCredentials": "Remove Credentials",
|
||||
"@actionRemoveCredentials": {
|
||||
"description": "Action button - delete Spotify credentials"
|
||||
},
|
||||
"actionSaveCredentials": "Save Credentials",
|
||||
"@actionSaveCredentials": {
|
||||
"description": "Action button - save Spotify credentials"
|
||||
},
|
||||
"selectionSelected": "{count} selected",
|
||||
"@selectionSelected": {
|
||||
"description": "Selection count indicator",
|
||||
@@ -1236,6 +1154,19 @@
|
||||
"@updateNewVersionReady": {
|
||||
"description": "Update subtitle"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"updateCurrent": "Current",
|
||||
"@updateCurrent": {
|
||||
"description": "Label for current version"
|
||||
@@ -1272,10 +1203,6 @@
|
||||
"@providerPriorityInfo": {
|
||||
"description": "Info tip about fallback behavior"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsTitle": "Extension Fallback",
|
||||
"@providerPriorityFallbackExtensionsTitle": {
|
||||
"description": "Section title for choosing which download extensions can be used as fallback providers"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsDescription": "Choose which installed download extensions can be used during automatic fallback.",
|
||||
"@providerPriorityFallbackExtensionsDescription": {
|
||||
"description": "Section description for extension fallback selection"
|
||||
@@ -1284,10 +1211,6 @@
|
||||
"@providerPriorityFallbackExtensionsHint": {
|
||||
"description": "Hint below the extension fallback selection list"
|
||||
},
|
||||
"providerBuiltIn": "Legacy",
|
||||
"@providerBuiltIn": {
|
||||
"description": "Legacy label retained for old generated localization compatibility"
|
||||
},
|
||||
"providerExtension": "Extension",
|
||||
"@providerExtension": {
|
||||
"description": "Label for extension-provided providers"
|
||||
@@ -1304,14 +1227,6 @@
|
||||
"@metadataProviderPriorityInfo": {
|
||||
"description": "Info tip about rate limits"
|
||||
},
|
||||
"metadataNoRateLimits": "No rate limits",
|
||||
"@metadataNoRateLimits": {
|
||||
"description": "Deezer provider description"
|
||||
},
|
||||
"metadataMayRateLimit": "May rate limit",
|
||||
"@metadataMayRateLimit": {
|
||||
"description": "Spotify provider description"
|
||||
},
|
||||
"logTitle": "Logs",
|
||||
"@logTitle": {
|
||||
"description": "Logs screen title"
|
||||
@@ -1378,30 +1293,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"credentialsTitle": "Spotify Credentials",
|
||||
"@credentialsTitle": {
|
||||
"description": "Credentials dialog title"
|
||||
},
|
||||
"credentialsDescription": "Enter your Client ID and Secret to use your own Spotify application quota.",
|
||||
"@credentialsDescription": {
|
||||
"description": "Credentials dialog explanation"
|
||||
},
|
||||
"credentialsClientId": "Client ID",
|
||||
"@credentialsClientId": {
|
||||
"description": "Client ID field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientIdHint": "Paste Client ID",
|
||||
"@credentialsClientIdHint": {
|
||||
"description": "Client ID placeholder"
|
||||
},
|
||||
"credentialsClientSecret": "Client Secret",
|
||||
"@credentialsClientSecret": {
|
||||
"description": "Client Secret field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientSecretHint": "Paste Client Secret",
|
||||
"@credentialsClientSecretHint": {
|
||||
"description": "Client Secret placeholder"
|
||||
},
|
||||
"channelStable": "Stable",
|
||||
"@channelStable": {
|
||||
"description": "Update channel - stable releases"
|
||||
@@ -1510,10 +1401,6 @@
|
||||
"@settingsDownloadSubtitle": {
|
||||
"description": "Download settings description"
|
||||
},
|
||||
"settingsOptionsSubtitle": "Fallback, metadata, lyrics, cover art",
|
||||
"@settingsOptionsSubtitle": {
|
||||
"description": "Options settings description"
|
||||
},
|
||||
"settingsExtensionsSubtitle": "Manage download providers",
|
||||
"@settingsExtensionsSubtitle": {
|
||||
"description": "Extensions settings description"
|
||||
@@ -1730,27 +1617,27 @@
|
||||
},
|
||||
"storeFilterAll": "All",
|
||||
"@storeFilterAll": {
|
||||
"description": "Store filter - all extensions"
|
||||
"description": "Repo filter - all extensions"
|
||||
},
|
||||
"storeFilterMetadata": "Metadata",
|
||||
"@storeFilterMetadata": {
|
||||
"description": "Store filter - metadata providers"
|
||||
"description": "Repo filter - metadata providers"
|
||||
},
|
||||
"storeFilterDownload": "Download",
|
||||
"@storeFilterDownload": {
|
||||
"description": "Store filter - download providers"
|
||||
"description": "Repo filter - download providers"
|
||||
},
|
||||
"storeFilterUtility": "Utility",
|
||||
"@storeFilterUtility": {
|
||||
"description": "Store filter - utility extensions"
|
||||
"description": "Repo filter - utility extensions"
|
||||
},
|
||||
"storeFilterLyrics": "Lyrics",
|
||||
"@storeFilterLyrics": {
|
||||
"description": "Store filter - lyrics providers"
|
||||
"description": "Repo filter - lyrics providers"
|
||||
},
|
||||
"storeFilterIntegration": "Integration",
|
||||
"@storeFilterIntegration": {
|
||||
"description": "Store filter - integrations"
|
||||
"description": "Repo filter - integrations"
|
||||
},
|
||||
"storeClearFilters": "Clear filters",
|
||||
"@storeClearFilters": {
|
||||
@@ -1772,10 +1659,6 @@
|
||||
"@storeRepoUrlHint": {
|
||||
"description": "Hint/placeholder for the repository URL input field"
|
||||
},
|
||||
"storeRepoUrlHelper": "e.g. https://github.com/user/extensions-repo",
|
||||
"@storeRepoUrlHelper": {
|
||||
"description": "Helper text below the repository URL input field"
|
||||
},
|
||||
"storeAddRepoButton": "Add Repository",
|
||||
"@storeAddRepoButton": {
|
||||
"description": "Button to submit a new repository URL"
|
||||
@@ -1808,18 +1691,6 @@
|
||||
"@storeEmptyNoResults": {
|
||||
"description": "Message when search/filter returns no results"
|
||||
},
|
||||
"extensionDefaultProvider": "Default Search",
|
||||
"@extensionDefaultProvider": {
|
||||
"description": "Default search provider option"
|
||||
},
|
||||
"extensionDefaultProviderSubtitle": "Use the default metadata search",
|
||||
"@extensionDefaultProviderSubtitle": {
|
||||
"description": "Subtitle for default provider"
|
||||
},
|
||||
"extensionAuthor": "Author",
|
||||
"@extensionAuthor": {
|
||||
"description": "Extension detail - author"
|
||||
},
|
||||
"extensionId": "ID",
|
||||
"@extensionId": {
|
||||
"description": "Extension detail - unique ID"
|
||||
@@ -2087,10 +1958,6 @@
|
||||
"@downloadLossyOpus128Subtitle": {
|
||||
"description": "Subtitle for Opus 128kbps lossy option"
|
||||
},
|
||||
"qualityNote": "Actual quality depends on track availability from the service",
|
||||
"@qualityNote": {
|
||||
"description": "Note about quality availability"
|
||||
},
|
||||
"downloadAskBeforeDownload": "Ask Before Download",
|
||||
"@downloadAskBeforeDownload": {
|
||||
"description": "Setting - show quality picker"
|
||||
@@ -2143,6 +2010,14 @@
|
||||
"@appearanceAmoledDarkSubtitle": {
|
||||
"description": "Subtitle for AMOLED dark"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"queueClearAll": "Clear All",
|
||||
"@queueClearAll": {
|
||||
"description": "Button - clear all queue items"
|
||||
@@ -2175,6 +2050,27 @@
|
||||
"@settingsDownloadNetworkSubtitle": {
|
||||
"description": "Subtitle explaining network preference"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"albumFolderArtistAlbum": "Artist / Album",
|
||||
"@albumFolderArtistAlbum": {
|
||||
"description": "Album folder option"
|
||||
@@ -2245,10 +2141,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadedAlbumAllSelected": "All tracks selected",
|
||||
"@downloadedAlbumAllSelected": {
|
||||
"description": "Status - all items selected"
|
||||
},
|
||||
"downloadedAlbumTapToSelect": "Tap tracks to select",
|
||||
"@downloadedAlbumTapToSelect": {
|
||||
"description": "Selection hint"
|
||||
@@ -2976,6 +2868,22 @@
|
||||
"@cacheLibraryCoverDesc": {
|
||||
"description": "Description of what library cover cache contains"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"cacheExploreFeed": "Explore feed cache",
|
||||
"@cacheExploreFeed": {
|
||||
"description": "Cache item title for explore home feed cache"
|
||||
@@ -3092,18 +3000,10 @@
|
||||
"@trackSaveCoverArt": {
|
||||
"description": "Menu action - save album cover art as file"
|
||||
},
|
||||
"trackSaveCoverArtSubtitle": "Save album art as .jpg file",
|
||||
"@trackSaveCoverArtSubtitle": {
|
||||
"description": "Subtitle for save cover art action"
|
||||
},
|
||||
"trackSaveLyrics": "Save Lyrics (.lrc)",
|
||||
"@trackSaveLyrics": {
|
||||
"description": "Menu action - save lyrics as .lrc file"
|
||||
},
|
||||
"trackSaveLyricsSubtitle": "Fetch and save lyrics as .lrc file",
|
||||
"@trackSaveLyricsSubtitle": {
|
||||
"description": "Subtitle for save lyrics action"
|
||||
},
|
||||
"trackSaveLyricsProgress": "Saving lyrics...",
|
||||
"@trackSaveLyricsProgress": {
|
||||
"description": "Snackbar while saving lyrics to file"
|
||||
@@ -3116,10 +3016,6 @@
|
||||
"@trackReEnrichOnlineSubtitle": {
|
||||
"description": "Subtitle for re-enrich metadata action for local items"
|
||||
},
|
||||
"trackReEnrichFieldsTitle": "Fields to update",
|
||||
"@trackReEnrichFieldsTitle": {
|
||||
"description": "Section title for field selection in re-enrich dialog"
|
||||
},
|
||||
"trackReEnrichFieldCover": "Cover Art",
|
||||
"@trackReEnrichFieldCover": {
|
||||
"description": "Checkbox label for cover art field in re-enrich"
|
||||
@@ -3203,18 +3099,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacFindingProgress": "Finding FLAC matches... ({current}/{total})",
|
||||
"@queueFlacFindingProgress": {
|
||||
"description": "Snackbar while resolving remote matches for local FLAC redownloads",
|
||||
"placeholders": {
|
||||
"current": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacNoReliableMatches": "No reliable online matches found for the selection",
|
||||
"@queueFlacNoReliableMatches": {
|
||||
"description": "Snackbar when no safe FLAC redownload matches were found"
|
||||
@@ -3244,10 +3128,6 @@
|
||||
"@trackConvertFormat": {
|
||||
"description": "Menu item - convert audio format"
|
||||
},
|
||||
"trackConvertFormatSubtitle": "Convert to AAC/M4A, MP3, Opus, ALAC, or FLAC",
|
||||
"@trackConvertFormatSubtitle": {
|
||||
"description": "Subtitle for convert format menu item"
|
||||
},
|
||||
"trackConvertTitle": "Convert Audio",
|
||||
"@trackConvertTitle": {
|
||||
"description": "Title of convert bottom sheet"
|
||||
@@ -3260,6 +3140,14 @@
|
||||
"@trackConvertBitrate": {
|
||||
"description": "Label for bitrate selection"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"trackConvertConfirmTitle": "Confirm Conversion",
|
||||
"@trackConvertConfirmTitle": {
|
||||
"description": "Confirmation dialog title"
|
||||
@@ -3291,6 +3179,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"trackConvertLosslessHint": "Lossless conversion — no quality loss",
|
||||
"@trackConvertLosslessHint": {
|
||||
"description": "Hint shown when converting between lossless formats"
|
||||
@@ -3316,10 +3216,6 @@
|
||||
"@cueSplitTitle": {
|
||||
"description": "Title for CUE split bottom sheet"
|
||||
},
|
||||
"cueSplitSubtitle": "Split CUE+FLAC into individual tracks",
|
||||
"@cueSplitSubtitle": {
|
||||
"description": "Subtitle for CUE split menu item"
|
||||
},
|
||||
"cueSplitAlbum": "Album: {album}",
|
||||
"@cueSplitAlbum": {
|
||||
"description": "Album name in CUE split sheet",
|
||||
@@ -3416,10 +3312,6 @@
|
||||
"@collectionFavoriteArtists": {
|
||||
"description": "Custom folder for favorite artists"
|
||||
},
|
||||
"collectionPlaylists": "Playlists",
|
||||
"@collectionPlaylists": {
|
||||
"description": "Custom user playlists folder"
|
||||
},
|
||||
"collectionPlaylist": "Playlist",
|
||||
"@collectionPlaylist": {
|
||||
"description": "Single playlist label"
|
||||
@@ -3436,10 +3328,6 @@
|
||||
"@collectionNoPlaylistsYet": {
|
||||
"description": "Empty state title when user has no playlists"
|
||||
},
|
||||
"collectionNoPlaylistsSubtitle": "Create a playlist to start categorizing tracks",
|
||||
"@collectionNoPlaylistsSubtitle": {
|
||||
"description": "Empty state subtitle when user has no playlists"
|
||||
},
|
||||
"collectionPlaylistTracks": "{count, plural, =1{1 track} other{{count} tracks}}",
|
||||
"@collectionPlaylistTracks": {
|
||||
"description": "Track count label for custom playlists",
|
||||
@@ -3476,10 +3364,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistCreated": "Playlist created",
|
||||
"@collectionPlaylistCreated": {
|
||||
"description": "Snackbar after creating playlist"
|
||||
},
|
||||
"collectionPlaylistNameHint": "Playlist name",
|
||||
"@collectionPlaylistNameHint": {
|
||||
"description": "Hint text for playlist name input"
|
||||
@@ -3496,19 +3380,6 @@
|
||||
"@collectionDeletePlaylist": {
|
||||
"description": "Action to delete playlist"
|
||||
},
|
||||
"collectionDeletePlaylistMessage": "Delete \"{playlistName}\" and all tracks inside it?",
|
||||
"@collectionDeletePlaylistMessage": {
|
||||
"description": "Confirmation message for deleting playlist",
|
||||
"placeholders": {
|
||||
"playlistName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistDeleted": "Playlist deleted",
|
||||
"@collectionPlaylistDeleted": {
|
||||
"description": "Snackbar after deleting playlist"
|
||||
},
|
||||
"collectionPlaylistRenamed": "Playlist renamed",
|
||||
"@collectionPlaylistRenamed": {
|
||||
"description": "Snackbar after renaming playlist"
|
||||
@@ -3553,15 +3424,6 @@
|
||||
"@collectionRemoveFromFolder": {
|
||||
"description": "Tooltip for removing track from wishlist/loved folder"
|
||||
},
|
||||
"collectionRemoved": "\"{trackName}\" removed",
|
||||
"@collectionRemoved": {
|
||||
"description": "Snackbar after removing a track from a collection",
|
||||
"placeholders": {
|
||||
"trackName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionAddedToLoved": "\"{trackName}\" added to Loved",
|
||||
"@collectionAddedToLoved": {
|
||||
"description": "Snackbar after adding track to loved folder",
|
||||
@@ -3705,15 +3567,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionBatchConvertProgress": "Converting {current} of {total}...",
|
||||
"@selectionBatchConvertProgress": {
|
||||
"description": "Snackbar during batch conversion progress",
|
||||
"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": {
|
||||
"current": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
"format": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3879,10 +3741,6 @@
|
||||
"@backupImportButton": {
|
||||
"description": "Button to pick a backup file to restore"
|
||||
},
|
||||
"backupCreating": "Creating backup...",
|
||||
"@backupCreating": {
|
||||
"description": "Progress text while a backup is being created"
|
||||
},
|
||||
"backupCreated": "Backup created",
|
||||
"@backupCreated": {
|
||||
"description": "Snackbar after a backup file is created"
|
||||
@@ -3891,10 +3749,6 @@
|
||||
"@backupCreateFailed": {
|
||||
"description": "Snackbar when backup creation fails"
|
||||
},
|
||||
"backupEmpty": "There is nothing to back up yet",
|
||||
"@backupEmpty": {
|
||||
"description": "Snackbar when there is no data to back up"
|
||||
},
|
||||
"backupRestoreConfirmTitle": "Restore this backup?",
|
||||
"@backupRestoreConfirmTitle": {
|
||||
"description": "Confirmation dialog title before restoring a backup"
|
||||
@@ -3907,10 +3761,6 @@
|
||||
"@backupRestoreConfirmButton": {
|
||||
"description": "Confirm button to proceed with restore"
|
||||
},
|
||||
"backupRestoring": "Restoring backup...",
|
||||
"@backupRestoring": {
|
||||
"description": "Progress text while restoring a backup"
|
||||
},
|
||||
"backupRestored": "Backup restored successfully",
|
||||
"@backupRestored": {
|
||||
"description": "Snackbar after a successful restore"
|
||||
@@ -3997,7 +3847,7 @@
|
||||
"@backupIncludeSecretsDescription": {
|
||||
"description": "Explanation for the include-credentials toggle"
|
||||
},
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the store.",
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the repo.",
|
||||
"@backupExtensionsRestoreFailed": {
|
||||
"description": "Snackbar/hint when some extensions failed to reinstall during restore",
|
||||
"placeholders": {
|
||||
@@ -4110,6 +3960,26 @@
|
||||
"@storageModeSafSubtitle": {
|
||||
"description": "Subtitle for SAF storage mode"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFilenameDescription": "Use {artist}, {title}, {album}, {track}, {year}, {date}, {disc} as placeholders.",
|
||||
"@downloadFilenameDescription": {
|
||||
"description": "Description shown in filename format editor"
|
||||
@@ -4178,10 +4048,6 @@
|
||||
"@downloadSelectServiceToEnable": {
|
||||
"description": "Subtitle when quality picker is disabled due to extension service"
|
||||
},
|
||||
"downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality",
|
||||
"@downloadSelectTidalQobuz": {
|
||||
"description": "Legacy info shown when a provider does not expose quality options"
|
||||
},
|
||||
"downloadEmbedLyricsDisabled": "Enable metadata embedding first",
|
||||
"@downloadEmbedLyricsDisabled": {
|
||||
"description": "Subtitle when lyrics embedding is blocked by metadata toggle"
|
||||
@@ -4430,10 +4296,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueDownloadedHeader": "Downloaded",
|
||||
"@queueDownloadedHeader": {
|
||||
"description": "Header label for downloaded items section in library"
|
||||
},
|
||||
"queueFilteringIndicator": "Filtering...",
|
||||
"@queueFilteringIndicator": {
|
||||
"description": "Shown while filter results are being computed"
|
||||
@@ -4588,15 +4450,6 @@
|
||||
"@audioAnalysisRescanning": {
|
||||
"description": "Loading text while audio is being re-analyzed after an explicit refresh"
|
||||
},
|
||||
"extensionsSearchWith": "Search with {providerName}",
|
||||
"@extensionsSearchWith": {
|
||||
"description": "Extensions page - subtitle for default metadata search provider option",
|
||||
"placeholders": {
|
||||
"providerName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsHomeFeedProvider": "Home Feed Provider",
|
||||
"@extensionsHomeFeedProvider": {
|
||||
"description": "Extensions page - label for home feed provider selector"
|
||||
@@ -4634,14 +4487,6 @@
|
||||
"@extensionsNoHomeFeedExtensions": {
|
||||
"description": "Extensions page - shown when no installed extension has home feed"
|
||||
},
|
||||
"sortAlphaAsc": "A-Z",
|
||||
"@sortAlphaAsc": {
|
||||
"description": "Sort option - alphabetical ascending"
|
||||
},
|
||||
"sortAlphaDesc": "Z-A",
|
||||
"@sortAlphaDesc": {
|
||||
"description": "Sort option - alphabetical descending"
|
||||
},
|
||||
"cancelDownloadTitle": "Cancel download?",
|
||||
"@cancelDownloadTitle": {
|
||||
"description": "Dialog title when confirming cancellation of an active download"
|
||||
@@ -4676,34 +4521,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorLoadAlbum": "Failed to load album",
|
||||
"@errorLoadAlbum": {
|
||||
"description": "Error state shown when album fails to load"
|
||||
},
|
||||
"errorLoadPlaylist": "Failed to load playlist",
|
||||
"@errorLoadPlaylist": {
|
||||
"description": "Error state shown when playlist fails to load"
|
||||
},
|
||||
"errorLoadArtist": "Failed to load artist",
|
||||
"@errorLoadArtist": {
|
||||
"description": "Error state shown when artist fails to load"
|
||||
},
|
||||
"notifChannelDownloadName": "Download Progress",
|
||||
"@notifChannelDownloadName": {
|
||||
"description": "Android notification channel name for download progress"
|
||||
},
|
||||
"notifChannelDownloadDesc": "Shows download progress for tracks",
|
||||
"@notifChannelDownloadDesc": {
|
||||
"description": "Android notification channel description for download progress"
|
||||
},
|
||||
"notifChannelLibraryScanName": "Library Scan",
|
||||
"@notifChannelLibraryScanName": {
|
||||
"description": "Android notification channel name for library scan"
|
||||
},
|
||||
"notifChannelLibraryScanDesc": "Shows local library scan progress",
|
||||
"@notifChannelLibraryScanDesc": {
|
||||
"description": "Android notification channel description for library scan"
|
||||
},
|
||||
"notifDownloadingTrack": "Downloading {trackName}",
|
||||
"@notifDownloadingTrack": {
|
||||
"description": "Notification title while downloading a track",
|
||||
@@ -4770,6 +4587,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"notifAllDownloadsComplete": "All Downloads Complete",
|
||||
"@notifAllDownloadsComplete": {
|
||||
"description": "Notification title when all downloads finish successfully"
|
||||
@@ -4956,14 +4781,6 @@
|
||||
"@actionPaste": {
|
||||
"description": "Generic action - paste from clipboard"
|
||||
},
|
||||
"searchTracksHint": "Search tracks...",
|
||||
"@searchTracksHint": {
|
||||
"description": "Placeholder for the search screen input"
|
||||
},
|
||||
"searchTracksEmptyPrompt": "Search for tracks",
|
||||
"@searchTracksEmptyPrompt": {
|
||||
"description": "Empty-state prompt on the search screen"
|
||||
},
|
||||
"tutorialSearchHint": "Paste or search...",
|
||||
"@tutorialSearchHint": {
|
||||
"description": "Placeholder shown in the tutorial search demo"
|
||||
@@ -4992,14 +4809,6 @@
|
||||
"@optionsEmbedMetadataSubtitleOff": {
|
||||
"description": "Subtitle when metadata embedding is disabled"
|
||||
},
|
||||
"optionsMaxQualityCoverSubtitleDisabled": "Disabled when metadata embedding is off",
|
||||
"@optionsMaxQualityCoverSubtitleDisabled": {
|
||||
"description": "Subtitle for max quality cover when metadata embedding is disabled"
|
||||
},
|
||||
"downloadFilenameHintExample": "{artist} - {title}",
|
||||
"@downloadFilenameHintExample": {
|
||||
"description": "Example placeholder for the download filename format input"
|
||||
},
|
||||
"trackCoverNoEmbeddedArt": "No embedded album art found",
|
||||
"@trackCoverNoEmbeddedArt": {
|
||||
"description": "Message shown when a track file has no embedded cover art"
|
||||
@@ -5239,14 +5048,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsDefaultSearchTabAlbums": "Albums",
|
||||
"@optionsDefaultSearchTabAlbums": {
|
||||
"description": "Default search tab option - Albums tab"
|
||||
},
|
||||
"optionsDefaultSearchTabTracks": "Tracks",
|
||||
"@optionsDefaultSearchTabTracks": {
|
||||
"description": "Default search tab option - Tracks tab"
|
||||
},
|
||||
"settingsFiles": "Files & Folders",
|
||||
"@settingsFiles": {
|
||||
"description": "Settings menu item - file and folder settings"
|
||||
@@ -5307,10 +5108,26 @@
|
||||
"@downloadDeduplicationEnabled": {
|
||||
"description": "Subtitle when deduplication is on"
|
||||
},
|
||||
"downloadDeduplicationWithQualityVariants": "Existing files at the selected quality will be skipped",
|
||||
"@downloadDeduplicationWithQualityVariants": {
|
||||
"description": "Deduplication subtitle when separate quality versions are allowed"
|
||||
},
|
||||
"downloadDeduplicationDisabled": "All tracks will be downloaded regardless of history",
|
||||
"@downloadDeduplicationDisabled": {
|
||||
"description": "Subtitle when deduplication is off"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFallbackExtensions": "Fallback Extensions",
|
||||
"@downloadFallbackExtensions": {
|
||||
"description": "Settings item for configuring fallback extension providers"
|
||||
@@ -5451,6 +5268,11 @@
|
||||
}
|
||||
},
|
||||
"queueDownloadStarting": "Starting...",
|
||||
"queueCheckingDownloadSession": "Checking download session...",
|
||||
"queueResolvingDownloadMetadata": "Resolving track metadata...",
|
||||
"queueResolvingDownloadStream": "Preparing audio stream...",
|
||||
"queueWaitingForVerification": "Waiting for verification...",
|
||||
"queueResumingAfterVerification": "Resuming after verification...",
|
||||
"@queueDownloadStarting": {
|
||||
"description": "Queue status before download progress is available"
|
||||
},
|
||||
@@ -5539,7 +5361,7 @@
|
||||
"@downloadNativeWorker": {
|
||||
"description": "Setting title for Android native download worker"
|
||||
},
|
||||
"downloadNativeWorkerSubtitle": "Beta Android service worker for extension downloads",
|
||||
"downloadNativeWorkerSubtitle": "Android background service for extension downloads",
|
||||
"@downloadNativeWorkerSubtitle": {
|
||||
"description": "Setting subtitle for Android native download worker"
|
||||
},
|
||||
@@ -5699,10 +5521,6 @@
|
||||
"@errorInvalidFolderSelected": {
|
||||
"description": "Error when the selected folder is invalid"
|
||||
},
|
||||
"errorCouldNotKeepFolderAccess": "Could not keep access to the selected folder",
|
||||
"@errorCouldNotKeepFolderAccess": {
|
||||
"description": "Error when persistent folder access cannot be saved"
|
||||
},
|
||||
"storeAnyVersion": "Any",
|
||||
"@storeAnyVersion": {
|
||||
"description": "Store detail value when any app version is accepted"
|
||||
|
||||
+148
-330
@@ -19,7 +19,7 @@
|
||||
},
|
||||
"navStore": "Repositori",
|
||||
"@navStore": {
|
||||
"description": "Bottom navigation - Extension store tab"
|
||||
"description": "Bottom navigation - Extension repo tab"
|
||||
},
|
||||
"homeTitle": "Beranda",
|
||||
"@homeTitle": {
|
||||
@@ -73,10 +73,6 @@
|
||||
"@settingsAppearance": {
|
||||
"description": "Settings section - visual customization"
|
||||
},
|
||||
"settingsOptions": "Opsi",
|
||||
"@settingsOptions": {
|
||||
"description": "Settings section - app options"
|
||||
},
|
||||
"settingsExtensions": "Ekstensi",
|
||||
"@settingsExtensions": {
|
||||
"description": "Settings section - extension management"
|
||||
@@ -133,7 +129,7 @@
|
||||
"@appearanceDynamicColorSubtitle": {
|
||||
"description": "Subtitle for dynamic color"
|
||||
},
|
||||
"appearanceHistoryView": "Tampilan Riwayat",
|
||||
"appearanceHistoryView": "Gaya Tampilan Histori",
|
||||
"@appearanceHistoryView": {
|
||||
"description": "Layout style for history"
|
||||
},
|
||||
@@ -145,10 +141,6 @@
|
||||
"@appearanceHistoryViewGrid": {
|
||||
"description": "Grid layout option"
|
||||
},
|
||||
"optionsTitle": "Opsi",
|
||||
"@optionsTitle": {
|
||||
"description": "Options settings page title"
|
||||
},
|
||||
"optionsPrimaryProvider": "Provider Utama",
|
||||
"@optionsPrimaryProvider": {
|
||||
"description": "Main search provider setting"
|
||||
@@ -174,11 +166,7 @@
|
||||
"@optionsDefaultSearchTabSubtitle": {
|
||||
"description": "Subtitle for the preferred default search tab setting"
|
||||
},
|
||||
"optionsSwitchBack": "Pilih penyedia pencarian default untuk beralih kembali dari ekstensi",
|
||||
"@optionsSwitchBack": {
|
||||
"description": "Hint to switch back from extension search"
|
||||
},
|
||||
"optionsAutoFallback": "Cadangan Otomatis",
|
||||
"optionsAutoFallback": "Layanan Cadangan",
|
||||
"@optionsAutoFallback": {
|
||||
"description": "Auto-retry with other services"
|
||||
},
|
||||
@@ -186,18 +174,6 @@
|
||||
"@optionsAutoFallbackSubtitle": {
|
||||
"description": "Subtitle for auto fallback"
|
||||
},
|
||||
"optionsUseExtensionProviders": "Gunakan Provider Ekstensi",
|
||||
"@optionsUseExtensionProviders": {
|
||||
"description": "Legacy setting label for extension download providers"
|
||||
},
|
||||
"optionsUseExtensionProvidersOn": "Penyedia ekstensi diaktifkan",
|
||||
"@optionsUseExtensionProvidersOn": {
|
||||
"description": "Status when extension providers enabled"
|
||||
},
|
||||
"optionsUseExtensionProvidersOff": "Penyedia ekstensi diwajibkan",
|
||||
"@optionsUseExtensionProvidersOff": {
|
||||
"description": "Legacy status when extension providers would be disabled"
|
||||
},
|
||||
"optionsEmbedLyrics": "Sematkan Lirik",
|
||||
"@optionsEmbedLyrics": {
|
||||
"description": "Embed lyrics in audio files"
|
||||
@@ -230,10 +206,6 @@
|
||||
"@trackReplayGain": {
|
||||
"description": "Three-dot menu option to scan loudness and write ReplayGain tags"
|
||||
},
|
||||
"trackReplayGainSubtitle": "Analisis kenyaringan dan tulis tag ReplayGain",
|
||||
"@trackReplayGainSubtitle": {
|
||||
"description": "Subtitle for the rescan ReplayGain menu option"
|
||||
},
|
||||
"trackReplayGainScanning": "Menganalisis kenyaringan...",
|
||||
"@trackReplayGainScanning": {
|
||||
"description": "Snackbar/progress message while scanning ReplayGain for a single track"
|
||||
@@ -310,11 +282,11 @@
|
||||
},
|
||||
"optionsExtensionStore": "Repositori Ekstensi",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide store tab"
|
||||
"description": "Show/hide repo tab"
|
||||
},
|
||||
"optionsExtensionStoreSubtitle": "Tampilkan tab Repo di navigasi",
|
||||
"@optionsExtensionStoreSubtitle": {
|
||||
"description": "Subtitle for extension store toggle"
|
||||
"description": "Subtitle for extension repo toggle"
|
||||
},
|
||||
"optionsCheckUpdates": "Periksa Pembaruan",
|
||||
"@optionsCheckUpdates": {
|
||||
@@ -360,31 +332,6 @@
|
||||
"@optionsDetailedLoggingOff": {
|
||||
"description": "Status when logging disabled"
|
||||
},
|
||||
"optionsSpotifyCredentials": "Kredensial Spotify",
|
||||
"@optionsSpotifyCredentials": {
|
||||
"description": "Spotify API credentials setting"
|
||||
},
|
||||
"optionsSpotifyCredentialsConfigured": "ID Klien: {clientId}...",
|
||||
"@optionsSpotifyCredentialsConfigured": {
|
||||
"description": "Shows configured client ID preview",
|
||||
"placeholders": {
|
||||
"clientId": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsSpotifyCredentialsRequired": "Diperlukan - ketuk untuk mengatur",
|
||||
"@optionsSpotifyCredentialsRequired": {
|
||||
"description": "Prompt to set up credentials"
|
||||
},
|
||||
"optionsSpotifyWarning": "Spotify memerlukan kredensial API Anda sendiri. Dapatkan gratis dari developer.spotify.com",
|
||||
"@optionsSpotifyWarning": {
|
||||
"description": "Info about Spotify API requirement"
|
||||
},
|
||||
"optionsSpotifyDeprecationWarning": "Pencarian Spotify akan dihentikan pada 3 Maret 2026 karena perubahan API Spotify. Silakan beralih ke Deezer.",
|
||||
"@optionsSpotifyDeprecationWarning": {
|
||||
"description": "Warning about Spotify API deprecation"
|
||||
},
|
||||
"extensionsTitle": "Ekstensi",
|
||||
"@extensionsTitle": {
|
||||
"description": "Extensions page title"
|
||||
@@ -402,26 +349,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsAuthor": "oleh {author}",
|
||||
"@extensionsAuthor": {
|
||||
"description": "Extension author credit",
|
||||
"placeholders": {
|
||||
"author": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsUninstall": "Copot",
|
||||
"@extensionsUninstall": {
|
||||
"description": "Uninstall extension button"
|
||||
},
|
||||
"storeTitle": "Repositori Ekstensi",
|
||||
"@storeTitle": {
|
||||
"description": "Store screen title"
|
||||
"description": "Repo screen title"
|
||||
},
|
||||
"storeSearch": "Cari ekstensi...",
|
||||
"@storeSearch": {
|
||||
"description": "Store search placeholder"
|
||||
"description": "Repo search placeholder"
|
||||
},
|
||||
"storeInstall": "Pasang",
|
||||
"@storeInstall": {
|
||||
@@ -912,14 +850,6 @@
|
||||
"@snackbarHistoryCleared": {
|
||||
"description": "Snackbar - history deleted"
|
||||
},
|
||||
"snackbarCredentialsSaved": "Kredensial disimpan",
|
||||
"@snackbarCredentialsSaved": {
|
||||
"description": "Snackbar - Spotify credentials saved"
|
||||
},
|
||||
"snackbarCredentialsCleared": "Kredensial dihapus",
|
||||
"@snackbarCredentialsCleared": {
|
||||
"description": "Snackbar - Spotify credentials removed"
|
||||
},
|
||||
"snackbarDeletedTracks": "Menghapus {count} {count, plural, =1{lagu} other{lagu}}",
|
||||
"@snackbarDeletedTracks": {
|
||||
"description": "Snackbar - tracks deleted",
|
||||
@@ -938,10 +868,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"snackbarFillAllFields": "Harap isi semua field",
|
||||
"@snackbarFillAllFields": {
|
||||
"description": "Snackbar - validation error"
|
||||
},
|
||||
"snackbarViewQueue": "Lihat Antrian",
|
||||
"@snackbarViewQueue": {
|
||||
"description": "Snackbar action - view download queue"
|
||||
@@ -1055,14 +981,6 @@
|
||||
"@actionDeselect": {
|
||||
"description": "Action button - deselect all"
|
||||
},
|
||||
"actionRemoveCredentials": "Hapus Kredensial",
|
||||
"@actionRemoveCredentials": {
|
||||
"description": "Action button - delete Spotify credentials"
|
||||
},
|
||||
"actionSaveCredentials": "Simpan Kredensial",
|
||||
"@actionSaveCredentials": {
|
||||
"description": "Action button - save Spotify credentials"
|
||||
},
|
||||
"selectionSelected": "{count} dipilih",
|
||||
"@selectionSelected": {
|
||||
"description": "Selection count indicator",
|
||||
@@ -1236,6 +1154,19 @@
|
||||
"@updateNewVersionReady": {
|
||||
"description": "Update subtitle"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"updateCurrent": "Saat ini",
|
||||
"@updateCurrent": {
|
||||
"description": "Label for current version"
|
||||
@@ -1272,10 +1203,6 @@
|
||||
"@providerPriorityInfo": {
|
||||
"description": "Info tip about fallback behavior"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsTitle": "Ekstensi Cadangan",
|
||||
"@providerPriorityFallbackExtensionsTitle": {
|
||||
"description": "Section title for choosing which download extensions can be used as fallback providers"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsDescription": "Pilih ekstensi unduhan terpasang mana yang dapat digunakan selama fallback otomatis.",
|
||||
"@providerPriorityFallbackExtensionsDescription": {
|
||||
"description": "Section description for extension fallback selection"
|
||||
@@ -1284,10 +1211,6 @@
|
||||
"@providerPriorityFallbackExtensionsHint": {
|
||||
"description": "Hint below the extension fallback selection list"
|
||||
},
|
||||
"providerBuiltIn": "Warisan",
|
||||
"@providerBuiltIn": {
|
||||
"description": "Legacy label retained for old generated localization compatibility"
|
||||
},
|
||||
"providerExtension": "Ekstensi",
|
||||
"@providerExtension": {
|
||||
"description": "Label for extension-provided providers"
|
||||
@@ -1304,14 +1227,6 @@
|
||||
"@metadataProviderPriorityInfo": {
|
||||
"description": "Info tip about rate limits"
|
||||
},
|
||||
"metadataNoRateLimits": "Tidak ada batas rate",
|
||||
"@metadataNoRateLimits": {
|
||||
"description": "Deezer provider description"
|
||||
},
|
||||
"metadataMayRateLimit": "Mungkin dibatasi rate",
|
||||
"@metadataMayRateLimit": {
|
||||
"description": "Spotify provider description"
|
||||
},
|
||||
"logTitle": "Log",
|
||||
"@logTitle": {
|
||||
"description": "Logs screen title"
|
||||
@@ -1378,30 +1293,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"credentialsTitle": "Kredensial Spotify",
|
||||
"@credentialsTitle": {
|
||||
"description": "Credentials dialog title"
|
||||
},
|
||||
"credentialsDescription": "Masukkan Client ID dan Secret Anda untuk menggunakan kuota aplikasi Spotify Anda sendiri.",
|
||||
"@credentialsDescription": {
|
||||
"description": "Credentials dialog explanation"
|
||||
},
|
||||
"credentialsClientId": "ID Klien",
|
||||
"@credentialsClientId": {
|
||||
"description": "Client ID field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientIdHint": "Tempel Client ID",
|
||||
"@credentialsClientIdHint": {
|
||||
"description": "Client ID placeholder"
|
||||
},
|
||||
"credentialsClientSecret": "Rahasia Klien",
|
||||
"@credentialsClientSecret": {
|
||||
"description": "Client Secret field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientSecretHint": "Tempel Client Secret",
|
||||
"@credentialsClientSecretHint": {
|
||||
"description": "Client Secret placeholder"
|
||||
},
|
||||
"channelStable": "Stabil",
|
||||
"@channelStable": {
|
||||
"description": "Update channel - stable releases"
|
||||
@@ -1510,10 +1401,6 @@
|
||||
"@settingsDownloadSubtitle": {
|
||||
"description": "Download settings description"
|
||||
},
|
||||
"settingsOptionsSubtitle": "Cadangan, metadata, lirik, sampul album",
|
||||
"@settingsOptionsSubtitle": {
|
||||
"description": "Options settings description"
|
||||
},
|
||||
"settingsExtensionsSubtitle": "Kelola provider unduhan",
|
||||
"@settingsExtensionsSubtitle": {
|
||||
"description": "Extensions settings description"
|
||||
@@ -1730,27 +1617,27 @@
|
||||
},
|
||||
"storeFilterAll": "Semua",
|
||||
"@storeFilterAll": {
|
||||
"description": "Store filter - all extensions"
|
||||
"description": "Repo filter - all extensions"
|
||||
},
|
||||
"storeFilterMetadata": "Metadata",
|
||||
"@storeFilterMetadata": {
|
||||
"description": "Store filter - metadata providers"
|
||||
"description": "Repo filter - metadata providers"
|
||||
},
|
||||
"storeFilterDownload": "Unduhan",
|
||||
"@storeFilterDownload": {
|
||||
"description": "Store filter - download providers"
|
||||
"description": "Repo filter - download providers"
|
||||
},
|
||||
"storeFilterUtility": "Utilitas",
|
||||
"@storeFilterUtility": {
|
||||
"description": "Store filter - utility extensions"
|
||||
"description": "Repo filter - utility extensions"
|
||||
},
|
||||
"storeFilterLyrics": "Lirik",
|
||||
"@storeFilterLyrics": {
|
||||
"description": "Store filter - lyrics providers"
|
||||
"description": "Repo filter - lyrics providers"
|
||||
},
|
||||
"storeFilterIntegration": "Integrasi",
|
||||
"@storeFilterIntegration": {
|
||||
"description": "Store filter - integrations"
|
||||
"description": "Repo filter - integrations"
|
||||
},
|
||||
"storeClearFilters": "Hapus filter",
|
||||
"@storeClearFilters": {
|
||||
@@ -1772,10 +1659,6 @@
|
||||
"@storeRepoUrlHint": {
|
||||
"description": "Hint/placeholder for the repository URL input field"
|
||||
},
|
||||
"storeRepoUrlHelper": "misalnya https://github.com/user/extensions-repo",
|
||||
"@storeRepoUrlHelper": {
|
||||
"description": "Helper text below the repository URL input field"
|
||||
},
|
||||
"storeAddRepoButton": "Tambahkan Repositori",
|
||||
"@storeAddRepoButton": {
|
||||
"description": "Button to submit a new repository URL"
|
||||
@@ -1808,18 +1691,6 @@
|
||||
"@storeEmptyNoResults": {
|
||||
"description": "Message when search/filter returns no results"
|
||||
},
|
||||
"extensionDefaultProvider": "Pencarian default",
|
||||
"@extensionDefaultProvider": {
|
||||
"description": "Default search provider option"
|
||||
},
|
||||
"extensionDefaultProviderSubtitle": "Gunakan pencarian metadata default",
|
||||
"@extensionDefaultProviderSubtitle": {
|
||||
"description": "Subtitle for default provider"
|
||||
},
|
||||
"extensionAuthor": "Pembuat",
|
||||
"@extensionAuthor": {
|
||||
"description": "Extension detail - author"
|
||||
},
|
||||
"extensionId": "ID",
|
||||
"@extensionId": {
|
||||
"description": "Extension detail - unique ID"
|
||||
@@ -2087,10 +1958,6 @@
|
||||
"@downloadLossyOpus128Subtitle": {
|
||||
"description": "Subtitle for Opus 128kbps lossy option"
|
||||
},
|
||||
"qualityNote": "Kualitas sebenarnya tergantung ketersediaan lagu dari layanan",
|
||||
"@qualityNote": {
|
||||
"description": "Note about quality availability"
|
||||
},
|
||||
"downloadAskBeforeDownload": "Tanya Sebelum Unduh",
|
||||
"@downloadAskBeforeDownload": {
|
||||
"description": "Setting - show quality picker"
|
||||
@@ -2143,6 +2010,14 @@
|
||||
"@appearanceAmoledDarkSubtitle": {
|
||||
"description": "Subtitle for AMOLED dark"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"queueClearAll": "Hapus Semua",
|
||||
"@queueClearAll": {
|
||||
"description": "Button - clear all queue items"
|
||||
@@ -2175,6 +2050,27 @@
|
||||
"@settingsDownloadNetworkSubtitle": {
|
||||
"description": "Subtitle explaining network preference"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"albumFolderArtistAlbum": "Artis / Album",
|
||||
"@albumFolderArtistAlbum": {
|
||||
"description": "Album folder option"
|
||||
@@ -2245,10 +2141,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadedAlbumAllSelected": "Semua lagu dipilih",
|
||||
"@downloadedAlbumAllSelected": {
|
||||
"description": "Status - all items selected"
|
||||
},
|
||||
"downloadedAlbumTapToSelect": "Ketuk lagu untuk memilih",
|
||||
"@downloadedAlbumTapToSelect": {
|
||||
"description": "Selection hint"
|
||||
@@ -2976,6 +2868,22 @@
|
||||
"@cacheLibraryCoverDesc": {
|
||||
"description": "Description of what library cover cache contains"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"cacheExploreFeed": "Explore feed cache",
|
||||
"@cacheExploreFeed": {
|
||||
"description": "Cache item title for explore home feed cache"
|
||||
@@ -3092,18 +3000,10 @@
|
||||
"@trackSaveCoverArt": {
|
||||
"description": "Menu action - save album cover art as file"
|
||||
},
|
||||
"trackSaveCoverArtSubtitle": "Save album art as .jpg file",
|
||||
"@trackSaveCoverArtSubtitle": {
|
||||
"description": "Subtitle for save cover art action"
|
||||
},
|
||||
"trackSaveLyrics": "Save Lyrics (.lrc)",
|
||||
"@trackSaveLyrics": {
|
||||
"description": "Menu action - save lyrics as .lrc file"
|
||||
},
|
||||
"trackSaveLyricsSubtitle": "Fetch and save lyrics as .lrc file",
|
||||
"@trackSaveLyricsSubtitle": {
|
||||
"description": "Subtitle for save lyrics action"
|
||||
},
|
||||
"trackSaveLyricsProgress": "Saving lyrics...",
|
||||
"@trackSaveLyricsProgress": {
|
||||
"description": "Snackbar while saving lyrics to file"
|
||||
@@ -3116,10 +3016,6 @@
|
||||
"@trackReEnrichOnlineSubtitle": {
|
||||
"description": "Subtitle for re-enrich metadata action for local items"
|
||||
},
|
||||
"trackReEnrichFieldsTitle": "Fields to update",
|
||||
"@trackReEnrichFieldsTitle": {
|
||||
"description": "Section title for field selection in re-enrich dialog"
|
||||
},
|
||||
"trackReEnrichFieldCover": "Cover Art",
|
||||
"@trackReEnrichFieldCover": {
|
||||
"description": "Checkbox label for cover art field in re-enrich"
|
||||
@@ -3203,18 +3099,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacFindingProgress": "Finding FLAC matches... ({current}/{total})",
|
||||
"@queueFlacFindingProgress": {
|
||||
"description": "Snackbar while resolving remote matches for local FLAC redownloads",
|
||||
"placeholders": {
|
||||
"current": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacNoReliableMatches": "No reliable online matches found for the selection",
|
||||
"@queueFlacNoReliableMatches": {
|
||||
"description": "Snackbar when no safe FLAC redownload matches were found"
|
||||
@@ -3244,10 +3128,6 @@
|
||||
"@trackConvertFormat": {
|
||||
"description": "Menu item - convert audio format"
|
||||
},
|
||||
"trackConvertFormatSubtitle": "Convert to AAC/M4A, MP3, Opus, ALAC, or FLAC",
|
||||
"@trackConvertFormatSubtitle": {
|
||||
"description": "Subtitle for convert format menu item"
|
||||
},
|
||||
"trackConvertTitle": "Convert Audio",
|
||||
"@trackConvertTitle": {
|
||||
"description": "Title of convert bottom sheet"
|
||||
@@ -3260,6 +3140,14 @@
|
||||
"@trackConvertBitrate": {
|
||||
"description": "Label for bitrate selection"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"trackConvertConfirmTitle": "Confirm Conversion",
|
||||
"@trackConvertConfirmTitle": {
|
||||
"description": "Confirmation dialog title"
|
||||
@@ -3291,6 +3179,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"trackConvertLosslessHint": "Lossless conversion — no quality loss",
|
||||
"@trackConvertLosslessHint": {
|
||||
"description": "Hint shown when converting between lossless formats"
|
||||
@@ -3316,10 +3216,6 @@
|
||||
"@cueSplitTitle": {
|
||||
"description": "Title for CUE split bottom sheet"
|
||||
},
|
||||
"cueSplitSubtitle": "Split CUE+FLAC into individual tracks",
|
||||
"@cueSplitSubtitle": {
|
||||
"description": "Subtitle for CUE split menu item"
|
||||
},
|
||||
"cueSplitAlbum": "Album: {album}",
|
||||
"@cueSplitAlbum": {
|
||||
"description": "Album name in CUE split sheet",
|
||||
@@ -3416,10 +3312,6 @@
|
||||
"@collectionFavoriteArtists": {
|
||||
"description": "Custom folder for favorite artists"
|
||||
},
|
||||
"collectionPlaylists": "Playlists",
|
||||
"@collectionPlaylists": {
|
||||
"description": "Custom user playlists folder"
|
||||
},
|
||||
"collectionPlaylist": "Playlist",
|
||||
"@collectionPlaylist": {
|
||||
"description": "Single playlist label"
|
||||
@@ -3436,10 +3328,6 @@
|
||||
"@collectionNoPlaylistsYet": {
|
||||
"description": "Empty state title when user has no playlists"
|
||||
},
|
||||
"collectionNoPlaylistsSubtitle": "Create a playlist to start categorizing tracks",
|
||||
"@collectionNoPlaylistsSubtitle": {
|
||||
"description": "Empty state subtitle when user has no playlists"
|
||||
},
|
||||
"collectionPlaylistTracks": "{count, plural, =1{1 track} other{{count} tracks}}",
|
||||
"@collectionPlaylistTracks": {
|
||||
"description": "Track count label for custom playlists",
|
||||
@@ -3476,10 +3364,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistCreated": "Playlist created",
|
||||
"@collectionPlaylistCreated": {
|
||||
"description": "Snackbar after creating playlist"
|
||||
},
|
||||
"collectionPlaylistNameHint": "Playlist name",
|
||||
"@collectionPlaylistNameHint": {
|
||||
"description": "Hint text for playlist name input"
|
||||
@@ -3496,19 +3380,6 @@
|
||||
"@collectionDeletePlaylist": {
|
||||
"description": "Action to delete playlist"
|
||||
},
|
||||
"collectionDeletePlaylistMessage": "Delete \"{playlistName}\" and all tracks inside it?",
|
||||
"@collectionDeletePlaylistMessage": {
|
||||
"description": "Confirmation message for deleting playlist",
|
||||
"placeholders": {
|
||||
"playlistName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistDeleted": "Playlist deleted",
|
||||
"@collectionPlaylistDeleted": {
|
||||
"description": "Snackbar after deleting playlist"
|
||||
},
|
||||
"collectionPlaylistRenamed": "Playlist renamed",
|
||||
"@collectionPlaylistRenamed": {
|
||||
"description": "Snackbar after renaming playlist"
|
||||
@@ -3553,15 +3424,6 @@
|
||||
"@collectionRemoveFromFolder": {
|
||||
"description": "Tooltip for removing track from wishlist/loved folder"
|
||||
},
|
||||
"collectionRemoved": "\"{trackName}\" removed",
|
||||
"@collectionRemoved": {
|
||||
"description": "Snackbar after removing a track from a collection",
|
||||
"placeholders": {
|
||||
"trackName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionAddedToLoved": "\"{trackName}\" added to Loved",
|
||||
"@collectionAddedToLoved": {
|
||||
"description": "Snackbar after adding track to loved folder",
|
||||
@@ -3705,15 +3567,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionBatchConvertProgress": "Converting {current} of {total}...",
|
||||
"@selectionBatchConvertProgress": {
|
||||
"description": "Snackbar during batch conversion progress",
|
||||
"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": {
|
||||
"current": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
"format": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3879,10 +3741,6 @@
|
||||
"@backupImportButton": {
|
||||
"description": "Button to pick a backup file to restore"
|
||||
},
|
||||
"backupCreating": "Creating backup...",
|
||||
"@backupCreating": {
|
||||
"description": "Progress text while a backup is being created"
|
||||
},
|
||||
"backupCreated": "Backup created",
|
||||
"@backupCreated": {
|
||||
"description": "Snackbar after a backup file is created"
|
||||
@@ -3891,10 +3749,6 @@
|
||||
"@backupCreateFailed": {
|
||||
"description": "Snackbar when backup creation fails"
|
||||
},
|
||||
"backupEmpty": "There is nothing to back up yet",
|
||||
"@backupEmpty": {
|
||||
"description": "Snackbar when there is no data to back up"
|
||||
},
|
||||
"backupRestoreConfirmTitle": "Restore this backup?",
|
||||
"@backupRestoreConfirmTitle": {
|
||||
"description": "Confirmation dialog title before restoring a backup"
|
||||
@@ -3907,10 +3761,6 @@
|
||||
"@backupRestoreConfirmButton": {
|
||||
"description": "Confirm button to proceed with restore"
|
||||
},
|
||||
"backupRestoring": "Restoring backup...",
|
||||
"@backupRestoring": {
|
||||
"description": "Progress text while restoring a backup"
|
||||
},
|
||||
"backupRestored": "Backup restored successfully",
|
||||
"@backupRestored": {
|
||||
"description": "Snackbar after a successful restore"
|
||||
@@ -3997,7 +3847,7 @@
|
||||
"@backupIncludeSecretsDescription": {
|
||||
"description": "Explanation for the include-credentials toggle"
|
||||
},
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the store.",
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the repo.",
|
||||
"@backupExtensionsRestoreFailed": {
|
||||
"description": "Snackbar/hint when some extensions failed to reinstall during restore",
|
||||
"placeholders": {
|
||||
@@ -4110,6 +3960,26 @@
|
||||
"@storageModeSafSubtitle": {
|
||||
"description": "Subtitle for SAF storage mode"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFilenameDescription": "Use {artist}, {title}, {album}, {track}, {year}, {date}, {disc} as placeholders.",
|
||||
"@downloadFilenameDescription": {
|
||||
"description": "Description shown in filename format editor"
|
||||
@@ -4178,10 +4048,6 @@
|
||||
"@downloadSelectServiceToEnable": {
|
||||
"description": "Subtitle when quality picker is disabled due to extension service"
|
||||
},
|
||||
"downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality",
|
||||
"@downloadSelectTidalQobuz": {
|
||||
"description": "Legacy info shown when a provider does not expose quality options"
|
||||
},
|
||||
"downloadEmbedLyricsDisabled": "Enable metadata embedding first",
|
||||
"@downloadEmbedLyricsDisabled": {
|
||||
"description": "Subtitle when lyrics embedding is blocked by metadata toggle"
|
||||
@@ -4430,10 +4296,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueDownloadedHeader": "Downloaded",
|
||||
"@queueDownloadedHeader": {
|
||||
"description": "Header label for downloaded items section in library"
|
||||
},
|
||||
"queueFilteringIndicator": "Filtering...",
|
||||
"@queueFilteringIndicator": {
|
||||
"description": "Shown while filter results are being computed"
|
||||
@@ -4588,15 +4450,6 @@
|
||||
"@audioAnalysisRescanning": {
|
||||
"description": "Loading text while audio is being re-analyzed after an explicit refresh"
|
||||
},
|
||||
"extensionsSearchWith": "Search with {providerName}",
|
||||
"@extensionsSearchWith": {
|
||||
"description": "Extensions page - subtitle for default metadata search provider option",
|
||||
"placeholders": {
|
||||
"providerName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsHomeFeedProvider": "Home Feed Provider",
|
||||
"@extensionsHomeFeedProvider": {
|
||||
"description": "Extensions page - label for home feed provider selector"
|
||||
@@ -4634,14 +4487,6 @@
|
||||
"@extensionsNoHomeFeedExtensions": {
|
||||
"description": "Extensions page - shown when no installed extension has home feed"
|
||||
},
|
||||
"sortAlphaAsc": "A-Z",
|
||||
"@sortAlphaAsc": {
|
||||
"description": "Sort option - alphabetical ascending"
|
||||
},
|
||||
"sortAlphaDesc": "Z-A",
|
||||
"@sortAlphaDesc": {
|
||||
"description": "Sort option - alphabetical descending"
|
||||
},
|
||||
"cancelDownloadTitle": "Cancel download?",
|
||||
"@cancelDownloadTitle": {
|
||||
"description": "Dialog title when confirming cancellation of an active download"
|
||||
@@ -4676,34 +4521,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorLoadAlbum": "Failed to load album",
|
||||
"@errorLoadAlbum": {
|
||||
"description": "Error state shown when album fails to load"
|
||||
},
|
||||
"errorLoadPlaylist": "Failed to load playlist",
|
||||
"@errorLoadPlaylist": {
|
||||
"description": "Error state shown when playlist fails to load"
|
||||
},
|
||||
"errorLoadArtist": "Failed to load artist",
|
||||
"@errorLoadArtist": {
|
||||
"description": "Error state shown when artist fails to load"
|
||||
},
|
||||
"notifChannelDownloadName": "Download Progress",
|
||||
"@notifChannelDownloadName": {
|
||||
"description": "Android notification channel name for download progress"
|
||||
},
|
||||
"notifChannelDownloadDesc": "Shows download progress for tracks",
|
||||
"@notifChannelDownloadDesc": {
|
||||
"description": "Android notification channel description for download progress"
|
||||
},
|
||||
"notifChannelLibraryScanName": "Library Scan",
|
||||
"@notifChannelLibraryScanName": {
|
||||
"description": "Android notification channel name for library scan"
|
||||
},
|
||||
"notifChannelLibraryScanDesc": "Shows local library scan progress",
|
||||
"@notifChannelLibraryScanDesc": {
|
||||
"description": "Android notification channel description for library scan"
|
||||
},
|
||||
"notifDownloadingTrack": "Downloading {trackName}",
|
||||
"@notifDownloadingTrack": {
|
||||
"description": "Notification title while downloading a track",
|
||||
@@ -4770,6 +4587,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"notifAllDownloadsComplete": "All Downloads Complete",
|
||||
"@notifAllDownloadsComplete": {
|
||||
"description": "Notification title when all downloads finish successfully"
|
||||
@@ -4956,14 +4781,6 @@
|
||||
"@actionPaste": {
|
||||
"description": "Generic action - paste from clipboard"
|
||||
},
|
||||
"searchTracksHint": "Search tracks...",
|
||||
"@searchTracksHint": {
|
||||
"description": "Placeholder for the search screen input"
|
||||
},
|
||||
"searchTracksEmptyPrompt": "Search for tracks",
|
||||
"@searchTracksEmptyPrompt": {
|
||||
"description": "Empty-state prompt on the search screen"
|
||||
},
|
||||
"tutorialSearchHint": "Paste or search...",
|
||||
"@tutorialSearchHint": {
|
||||
"description": "Placeholder shown in the tutorial search demo"
|
||||
@@ -4992,14 +4809,6 @@
|
||||
"@optionsEmbedMetadataSubtitleOff": {
|
||||
"description": "Subtitle when metadata embedding is disabled"
|
||||
},
|
||||
"optionsMaxQualityCoverSubtitleDisabled": "Disabled when metadata embedding is off",
|
||||
"@optionsMaxQualityCoverSubtitleDisabled": {
|
||||
"description": "Subtitle for max quality cover when metadata embedding is disabled"
|
||||
},
|
||||
"downloadFilenameHintExample": "{artist} - {title}",
|
||||
"@downloadFilenameHintExample": {
|
||||
"description": "Example placeholder for the download filename format input"
|
||||
},
|
||||
"trackCoverNoEmbeddedArt": "No embedded album art found",
|
||||
"@trackCoverNoEmbeddedArt": {
|
||||
"description": "Message shown when a track file has no embedded cover art"
|
||||
@@ -5239,14 +5048,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsDefaultSearchTabAlbums": "Albums",
|
||||
"@optionsDefaultSearchTabAlbums": {
|
||||
"description": "Default search tab option - Albums tab"
|
||||
},
|
||||
"optionsDefaultSearchTabTracks": "Tracks",
|
||||
"@optionsDefaultSearchTabTracks": {
|
||||
"description": "Default search tab option - Tracks tab"
|
||||
},
|
||||
"settingsFiles": "Files & Folders",
|
||||
"@settingsFiles": {
|
||||
"description": "Settings menu item - file and folder settings"
|
||||
@@ -5307,10 +5108,26 @@
|
||||
"@downloadDeduplicationEnabled": {
|
||||
"description": "Subtitle when deduplication is on"
|
||||
},
|
||||
"downloadDeduplicationWithQualityVariants": "Existing files at the selected quality will be skipped",
|
||||
"@downloadDeduplicationWithQualityVariants": {
|
||||
"description": "Deduplication subtitle when separate quality versions are allowed"
|
||||
},
|
||||
"downloadDeduplicationDisabled": "All tracks will be downloaded regardless of history",
|
||||
"@downloadDeduplicationDisabled": {
|
||||
"description": "Subtitle when deduplication is off"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFallbackExtensions": "Fallback Extensions",
|
||||
"@downloadFallbackExtensions": {
|
||||
"description": "Settings item for configuring fallback extension providers"
|
||||
@@ -5451,6 +5268,11 @@
|
||||
}
|
||||
},
|
||||
"queueDownloadStarting": "Starting...",
|
||||
"queueCheckingDownloadSession": "Checking download session...",
|
||||
"queueResolvingDownloadMetadata": "Resolving track metadata...",
|
||||
"queueResolvingDownloadStream": "Preparing audio stream...",
|
||||
"queueWaitingForVerification": "Waiting for verification...",
|
||||
"queueResumingAfterVerification": "Resuming after verification...",
|
||||
"@queueDownloadStarting": {
|
||||
"description": "Queue status before download progress is available"
|
||||
},
|
||||
@@ -5539,7 +5361,7 @@
|
||||
"@downloadNativeWorker": {
|
||||
"description": "Setting title for Android native download worker"
|
||||
},
|
||||
"downloadNativeWorkerSubtitle": "Beta Android service worker for extension downloads",
|
||||
"downloadNativeWorkerSubtitle": "Android background service for extension downloads",
|
||||
"@downloadNativeWorkerSubtitle": {
|
||||
"description": "Setting subtitle for Android native download worker"
|
||||
},
|
||||
@@ -5699,10 +5521,6 @@
|
||||
"@errorInvalidFolderSelected": {
|
||||
"description": "Error when the selected folder is invalid"
|
||||
},
|
||||
"errorCouldNotKeepFolderAccess": "Could not keep access to the selected folder",
|
||||
"@errorCouldNotKeepFolderAccess": {
|
||||
"description": "Error when persistent folder access cannot be saved"
|
||||
},
|
||||
"storeAnyVersion": "Any",
|
||||
"@storeAnyVersion": {
|
||||
"description": "Store detail value when any app version is accepted"
|
||||
|
||||
+146
-328
@@ -19,7 +19,7 @@
|
||||
},
|
||||
"navStore": "Repo",
|
||||
"@navStore": {
|
||||
"description": "Bottom navigation - Extension store tab"
|
||||
"description": "Bottom navigation - Extension repo tab"
|
||||
},
|
||||
"homeTitle": "ホーム",
|
||||
"@homeTitle": {
|
||||
@@ -73,10 +73,6 @@
|
||||
"@settingsAppearance": {
|
||||
"description": "Settings section - visual customization"
|
||||
},
|
||||
"settingsOptions": "オプション",
|
||||
"@settingsOptions": {
|
||||
"description": "Settings section - app options"
|
||||
},
|
||||
"settingsExtensions": "拡張",
|
||||
"@settingsExtensions": {
|
||||
"description": "Settings section - extension management"
|
||||
@@ -145,10 +141,6 @@
|
||||
"@appearanceHistoryViewGrid": {
|
||||
"description": "Grid layout option"
|
||||
},
|
||||
"optionsTitle": "オプション",
|
||||
"@optionsTitle": {
|
||||
"description": "Options settings page title"
|
||||
},
|
||||
"optionsPrimaryProvider": "プライマリーのプロバイダー",
|
||||
"@optionsPrimaryProvider": {
|
||||
"description": "Main search provider setting"
|
||||
@@ -174,10 +166,6 @@
|
||||
"@optionsDefaultSearchTabSubtitle": {
|
||||
"description": "Subtitle for the preferred default search tab setting"
|
||||
},
|
||||
"optionsSwitchBack": "Choose the default search provider to switch back from an extension",
|
||||
"@optionsSwitchBack": {
|
||||
"description": "Hint to switch back from extension search"
|
||||
},
|
||||
"optionsAutoFallback": "Auto Fallback",
|
||||
"@optionsAutoFallback": {
|
||||
"description": "Auto-retry with other services"
|
||||
@@ -186,18 +174,6 @@
|
||||
"@optionsAutoFallbackSubtitle": {
|
||||
"description": "Subtitle for auto fallback"
|
||||
},
|
||||
"optionsUseExtensionProviders": "拡張のプロバイダーを使用する",
|
||||
"@optionsUseExtensionProviders": {
|
||||
"description": "Legacy setting label for extension download providers"
|
||||
},
|
||||
"optionsUseExtensionProvidersOn": "Extension providers are enabled",
|
||||
"@optionsUseExtensionProvidersOn": {
|
||||
"description": "Status when extension providers enabled"
|
||||
},
|
||||
"optionsUseExtensionProvidersOff": "Extension providers are required",
|
||||
"@optionsUseExtensionProvidersOff": {
|
||||
"description": "Legacy status when extension providers would be disabled"
|
||||
},
|
||||
"optionsEmbedLyrics": "歌詞を埋め込む",
|
||||
"@optionsEmbedLyrics": {
|
||||
"description": "Embed lyrics in audio files"
|
||||
@@ -230,10 +206,6 @@
|
||||
"@trackReplayGain": {
|
||||
"description": "Three-dot menu option to scan loudness and write ReplayGain tags"
|
||||
},
|
||||
"trackReplayGainSubtitle": "Analyze loudness and write ReplayGain tags",
|
||||
"@trackReplayGainSubtitle": {
|
||||
"description": "Subtitle for the rescan ReplayGain menu option"
|
||||
},
|
||||
"trackReplayGainScanning": "Analyzing loudness...",
|
||||
"@trackReplayGainScanning": {
|
||||
"description": "Snackbar/progress message while scanning ReplayGain for a single track"
|
||||
@@ -310,11 +282,11 @@
|
||||
},
|
||||
"optionsExtensionStore": "Extension Repo",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide store tab"
|
||||
"description": "Show/hide repo tab"
|
||||
},
|
||||
"optionsExtensionStoreSubtitle": "Show Repo tab in navigation",
|
||||
"@optionsExtensionStoreSubtitle": {
|
||||
"description": "Subtitle for extension store toggle"
|
||||
"description": "Subtitle for extension repo toggle"
|
||||
},
|
||||
"optionsCheckUpdates": "更新を確認",
|
||||
"@optionsCheckUpdates": {
|
||||
@@ -360,31 +332,6 @@
|
||||
"@optionsDetailedLoggingOff": {
|
||||
"description": "Status when logging disabled"
|
||||
},
|
||||
"optionsSpotifyCredentials": "Spotify の認証情報",
|
||||
"@optionsSpotifyCredentials": {
|
||||
"description": "Spotify API credentials setting"
|
||||
},
|
||||
"optionsSpotifyCredentialsConfigured": "クライアント ID: {clientId}...",
|
||||
"@optionsSpotifyCredentialsConfigured": {
|
||||
"description": "Shows configured client ID preview",
|
||||
"placeholders": {
|
||||
"clientId": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsSpotifyCredentialsRequired": "必須 - タップで設定",
|
||||
"@optionsSpotifyCredentialsRequired": {
|
||||
"description": "Prompt to set up credentials"
|
||||
},
|
||||
"optionsSpotifyWarning": "Spotify は独自の API 認証情報が必要です。developer.spotify.com から取得できます。",
|
||||
"@optionsSpotifyWarning": {
|
||||
"description": "Info about Spotify API requirement"
|
||||
},
|
||||
"optionsSpotifyDeprecationWarning": "Spotify search will be deprecated on March 3, 2026 due to Spotify API changes. Please switch to Deezer.",
|
||||
"@optionsSpotifyDeprecationWarning": {
|
||||
"description": "Warning about Spotify API deprecation"
|
||||
},
|
||||
"extensionsTitle": "拡張",
|
||||
"@extensionsTitle": {
|
||||
"description": "Extensions page title"
|
||||
@@ -402,26 +349,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsAuthor": "作者 {author}",
|
||||
"@extensionsAuthor": {
|
||||
"description": "Extension author credit",
|
||||
"placeholders": {
|
||||
"author": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsUninstall": "アンインストール",
|
||||
"@extensionsUninstall": {
|
||||
"description": "Uninstall extension button"
|
||||
},
|
||||
"storeTitle": "Extension Repo",
|
||||
"@storeTitle": {
|
||||
"description": "Store screen title"
|
||||
"description": "Repo screen title"
|
||||
},
|
||||
"storeSearch": "拡張を検索...",
|
||||
"@storeSearch": {
|
||||
"description": "Store search placeholder"
|
||||
"description": "Repo search placeholder"
|
||||
},
|
||||
"storeInstall": "インストール",
|
||||
"@storeInstall": {
|
||||
@@ -912,14 +850,6 @@
|
||||
"@snackbarHistoryCleared": {
|
||||
"description": "Snackbar - history deleted"
|
||||
},
|
||||
"snackbarCredentialsSaved": "認証情報を保存しました",
|
||||
"@snackbarCredentialsSaved": {
|
||||
"description": "Snackbar - Spotify credentials saved"
|
||||
},
|
||||
"snackbarCredentialsCleared": "認証情報を消去しました",
|
||||
"@snackbarCredentialsCleared": {
|
||||
"description": "Snackbar - Spotify credentials removed"
|
||||
},
|
||||
"snackbarDeletedTracks": "{count} {count, plural, =1{個のトラック} other{個のトラック}}を削除",
|
||||
"@snackbarDeletedTracks": {
|
||||
"description": "Snackbar - tracks deleted",
|
||||
@@ -938,10 +868,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"snackbarFillAllFields": "すべての項目を入力してください",
|
||||
"@snackbarFillAllFields": {
|
||||
"description": "Snackbar - validation error"
|
||||
},
|
||||
"snackbarViewQueue": "キューを表示",
|
||||
"@snackbarViewQueue": {
|
||||
"description": "Snackbar action - view download queue"
|
||||
@@ -1055,14 +981,6 @@
|
||||
"@actionDeselect": {
|
||||
"description": "Action button - deselect all"
|
||||
},
|
||||
"actionRemoveCredentials": "認証情報を削除",
|
||||
"@actionRemoveCredentials": {
|
||||
"description": "Action button - delete Spotify credentials"
|
||||
},
|
||||
"actionSaveCredentials": "認証情報を保存",
|
||||
"@actionSaveCredentials": {
|
||||
"description": "Action button - save Spotify credentials"
|
||||
},
|
||||
"selectionSelected": "{count} 個を選択済み",
|
||||
"@selectionSelected": {
|
||||
"description": "Selection count indicator",
|
||||
@@ -1236,6 +1154,19 @@
|
||||
"@updateNewVersionReady": {
|
||||
"description": "Update subtitle"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"updateCurrent": "現在",
|
||||
"@updateCurrent": {
|
||||
"description": "Label for current version"
|
||||
@@ -1272,10 +1203,6 @@
|
||||
"@providerPriorityInfo": {
|
||||
"description": "Info tip about fallback behavior"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsTitle": "Extension Fallback",
|
||||
"@providerPriorityFallbackExtensionsTitle": {
|
||||
"description": "Section title for choosing which download extensions can be used as fallback providers"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsDescription": "Choose which installed download extensions can be used during automatic fallback.",
|
||||
"@providerPriorityFallbackExtensionsDescription": {
|
||||
"description": "Section description for extension fallback selection"
|
||||
@@ -1284,10 +1211,6 @@
|
||||
"@providerPriorityFallbackExtensionsHint": {
|
||||
"description": "Hint below the extension fallback selection list"
|
||||
},
|
||||
"providerBuiltIn": "Legacy",
|
||||
"@providerBuiltIn": {
|
||||
"description": "Legacy label retained for old generated localization compatibility"
|
||||
},
|
||||
"providerExtension": "拡張",
|
||||
"@providerExtension": {
|
||||
"description": "Label for extension-provided providers"
|
||||
@@ -1304,14 +1227,6 @@
|
||||
"@metadataProviderPriorityInfo": {
|
||||
"description": "Info tip about rate limits"
|
||||
},
|
||||
"metadataNoRateLimits": "レート制限はありません",
|
||||
"@metadataNoRateLimits": {
|
||||
"description": "Deezer provider description"
|
||||
},
|
||||
"metadataMayRateLimit": "May rate limit",
|
||||
"@metadataMayRateLimit": {
|
||||
"description": "Spotify provider description"
|
||||
},
|
||||
"logTitle": "ログ",
|
||||
"@logTitle": {
|
||||
"description": "Logs screen title"
|
||||
@@ -1378,30 +1293,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"credentialsTitle": "Spotify の認証情報",
|
||||
"@credentialsTitle": {
|
||||
"description": "Credentials dialog title"
|
||||
},
|
||||
"credentialsDescription": "Enter your Client ID and Secret to use your own Spotify application quota.",
|
||||
"@credentialsDescription": {
|
||||
"description": "Credentials dialog explanation"
|
||||
},
|
||||
"credentialsClientId": "クライアント ID",
|
||||
"@credentialsClientId": {
|
||||
"description": "Client ID field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientIdHint": "クライアント ID を貼り付け",
|
||||
"@credentialsClientIdHint": {
|
||||
"description": "Client ID placeholder"
|
||||
},
|
||||
"credentialsClientSecret": "クライアントシークレット",
|
||||
"@credentialsClientSecret": {
|
||||
"description": "Client Secret field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientSecretHint": "クライアントシークレットを貼り付け",
|
||||
"@credentialsClientSecretHint": {
|
||||
"description": "Client Secret placeholder"
|
||||
},
|
||||
"channelStable": "安定版",
|
||||
"@channelStable": {
|
||||
"description": "Update channel - stable releases"
|
||||
@@ -1510,10 +1401,6 @@
|
||||
"@settingsDownloadSubtitle": {
|
||||
"description": "Download settings description"
|
||||
},
|
||||
"settingsOptionsSubtitle": "Fallback, metadata, lyrics, cover art",
|
||||
"@settingsOptionsSubtitle": {
|
||||
"description": "Options settings description"
|
||||
},
|
||||
"settingsExtensionsSubtitle": "ダウンロードプロバイダーを管理",
|
||||
"@settingsExtensionsSubtitle": {
|
||||
"description": "Extensions settings description"
|
||||
@@ -1730,27 +1617,27 @@
|
||||
},
|
||||
"storeFilterAll": "すべて",
|
||||
"@storeFilterAll": {
|
||||
"description": "Store filter - all extensions"
|
||||
"description": "Repo filter - all extensions"
|
||||
},
|
||||
"storeFilterMetadata": "メタデータ",
|
||||
"@storeFilterMetadata": {
|
||||
"description": "Store filter - metadata providers"
|
||||
"description": "Repo filter - metadata providers"
|
||||
},
|
||||
"storeFilterDownload": "ダウンロード",
|
||||
"@storeFilterDownload": {
|
||||
"description": "Store filter - download providers"
|
||||
"description": "Repo filter - download providers"
|
||||
},
|
||||
"storeFilterUtility": "ユーティリティ",
|
||||
"@storeFilterUtility": {
|
||||
"description": "Store filter - utility extensions"
|
||||
"description": "Repo filter - utility extensions"
|
||||
},
|
||||
"storeFilterLyrics": "歌詞",
|
||||
"@storeFilterLyrics": {
|
||||
"description": "Store filter - lyrics providers"
|
||||
"description": "Repo filter - lyrics providers"
|
||||
},
|
||||
"storeFilterIntegration": "統合",
|
||||
"@storeFilterIntegration": {
|
||||
"description": "Store filter - integrations"
|
||||
"description": "Repo filter - integrations"
|
||||
},
|
||||
"storeClearFilters": "フィルターを消去",
|
||||
"@storeClearFilters": {
|
||||
@@ -1772,10 +1659,6 @@
|
||||
"@storeRepoUrlHint": {
|
||||
"description": "Hint/placeholder for the repository URL input field"
|
||||
},
|
||||
"storeRepoUrlHelper": "e.g. https://github.com/user/extensions-repo",
|
||||
"@storeRepoUrlHelper": {
|
||||
"description": "Helper text below the repository URL input field"
|
||||
},
|
||||
"storeAddRepoButton": "Add Repository",
|
||||
"@storeAddRepoButton": {
|
||||
"description": "Button to submit a new repository URL"
|
||||
@@ -1808,18 +1691,6 @@
|
||||
"@storeEmptyNoResults": {
|
||||
"description": "Message when search/filter returns no results"
|
||||
},
|
||||
"extensionDefaultProvider": "Default Search",
|
||||
"@extensionDefaultProvider": {
|
||||
"description": "Default search provider option"
|
||||
},
|
||||
"extensionDefaultProviderSubtitle": "Use the default metadata search",
|
||||
"@extensionDefaultProviderSubtitle": {
|
||||
"description": "Subtitle for default provider"
|
||||
},
|
||||
"extensionAuthor": "作者",
|
||||
"@extensionAuthor": {
|
||||
"description": "Extension detail - author"
|
||||
},
|
||||
"extensionId": "ID",
|
||||
"@extensionId": {
|
||||
"description": "Extension detail - unique ID"
|
||||
@@ -2087,10 +1958,6 @@
|
||||
"@downloadLossyOpus128Subtitle": {
|
||||
"description": "Subtitle for Opus 128kbps lossy option"
|
||||
},
|
||||
"qualityNote": "実際の品質はサービスからのトラックの可用性に依存します",
|
||||
"@qualityNote": {
|
||||
"description": "Note about quality availability"
|
||||
},
|
||||
"downloadAskBeforeDownload": "ダウンロード前に確認する",
|
||||
"@downloadAskBeforeDownload": {
|
||||
"description": "Setting - show quality picker"
|
||||
@@ -2143,6 +2010,14 @@
|
||||
"@appearanceAmoledDarkSubtitle": {
|
||||
"description": "Subtitle for AMOLED dark"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"queueClearAll": "すべて消去",
|
||||
"@queueClearAll": {
|
||||
"description": "Button - clear all queue items"
|
||||
@@ -2175,6 +2050,27 @@
|
||||
"@settingsDownloadNetworkSubtitle": {
|
||||
"description": "Subtitle explaining network preference"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"albumFolderArtistAlbum": "アーティスト / アルバム",
|
||||
"@albumFolderArtistAlbum": {
|
||||
"description": "Album folder option"
|
||||
@@ -2245,10 +2141,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadedAlbumAllSelected": "すべてのトラックを選択済み",
|
||||
"@downloadedAlbumAllSelected": {
|
||||
"description": "Status - all items selected"
|
||||
},
|
||||
"downloadedAlbumTapToSelect": "トラックをタップで選択",
|
||||
"@downloadedAlbumTapToSelect": {
|
||||
"description": "Selection hint"
|
||||
@@ -2976,6 +2868,22 @@
|
||||
"@cacheLibraryCoverDesc": {
|
||||
"description": "Description of what library cover cache contains"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"cacheExploreFeed": "Explore feed cache",
|
||||
"@cacheExploreFeed": {
|
||||
"description": "Cache item title for explore home feed cache"
|
||||
@@ -3092,18 +3000,10 @@
|
||||
"@trackSaveCoverArt": {
|
||||
"description": "Menu action - save album cover art as file"
|
||||
},
|
||||
"trackSaveCoverArtSubtitle": "Save album art as .jpg file",
|
||||
"@trackSaveCoverArtSubtitle": {
|
||||
"description": "Subtitle for save cover art action"
|
||||
},
|
||||
"trackSaveLyrics": "歌詞を保存 (.lrc)",
|
||||
"@trackSaveLyrics": {
|
||||
"description": "Menu action - save lyrics as .lrc file"
|
||||
},
|
||||
"trackSaveLyricsSubtitle": "Fetch and save lyrics as .lrc file",
|
||||
"@trackSaveLyricsSubtitle": {
|
||||
"description": "Subtitle for save lyrics action"
|
||||
},
|
||||
"trackSaveLyricsProgress": "Saving lyrics...",
|
||||
"@trackSaveLyricsProgress": {
|
||||
"description": "Snackbar while saving lyrics to file"
|
||||
@@ -3116,10 +3016,6 @@
|
||||
"@trackReEnrichOnlineSubtitle": {
|
||||
"description": "Subtitle for re-enrich metadata action for local items"
|
||||
},
|
||||
"trackReEnrichFieldsTitle": "Fields to update",
|
||||
"@trackReEnrichFieldsTitle": {
|
||||
"description": "Section title for field selection in re-enrich dialog"
|
||||
},
|
||||
"trackReEnrichFieldCover": "Cover Art",
|
||||
"@trackReEnrichFieldCover": {
|
||||
"description": "Checkbox label for cover art field in re-enrich"
|
||||
@@ -3203,18 +3099,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacFindingProgress": "Finding FLAC matches... ({current}/{total})",
|
||||
"@queueFlacFindingProgress": {
|
||||
"description": "Snackbar while resolving remote matches for local FLAC redownloads",
|
||||
"placeholders": {
|
||||
"current": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacNoReliableMatches": "No reliable online matches found for the selection",
|
||||
"@queueFlacNoReliableMatches": {
|
||||
"description": "Snackbar when no safe FLAC redownload matches were found"
|
||||
@@ -3244,10 +3128,6 @@
|
||||
"@trackConvertFormat": {
|
||||
"description": "Menu item - convert audio format"
|
||||
},
|
||||
"trackConvertFormatSubtitle": "Convert to AAC/M4A, MP3, Opus, ALAC, or FLAC",
|
||||
"@trackConvertFormatSubtitle": {
|
||||
"description": "Subtitle for convert format menu item"
|
||||
},
|
||||
"trackConvertTitle": "オーディオを変換",
|
||||
"@trackConvertTitle": {
|
||||
"description": "Title of convert bottom sheet"
|
||||
@@ -3260,6 +3140,14 @@
|
||||
"@trackConvertBitrate": {
|
||||
"description": "Label for bitrate selection"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"trackConvertConfirmTitle": "変換を確認",
|
||||
"@trackConvertConfirmTitle": {
|
||||
"description": "Confirmation dialog title"
|
||||
@@ -3291,6 +3179,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"trackConvertLosslessHint": "Lossless conversion — no quality loss",
|
||||
"@trackConvertLosslessHint": {
|
||||
"description": "Hint shown when converting between lossless formats"
|
||||
@@ -3316,10 +3216,6 @@
|
||||
"@cueSplitTitle": {
|
||||
"description": "Title for CUE split bottom sheet"
|
||||
},
|
||||
"cueSplitSubtitle": "Split CUE+FLAC into individual tracks",
|
||||
"@cueSplitSubtitle": {
|
||||
"description": "Subtitle for CUE split menu item"
|
||||
},
|
||||
"cueSplitAlbum": "Album: {album}",
|
||||
"@cueSplitAlbum": {
|
||||
"description": "Album name in CUE split sheet",
|
||||
@@ -3416,10 +3312,6 @@
|
||||
"@collectionFavoriteArtists": {
|
||||
"description": "Custom folder for favorite artists"
|
||||
},
|
||||
"collectionPlaylists": "Playlists",
|
||||
"@collectionPlaylists": {
|
||||
"description": "Custom user playlists folder"
|
||||
},
|
||||
"collectionPlaylist": "Playlist",
|
||||
"@collectionPlaylist": {
|
||||
"description": "Single playlist label"
|
||||
@@ -3436,10 +3328,6 @@
|
||||
"@collectionNoPlaylistsYet": {
|
||||
"description": "Empty state title when user has no playlists"
|
||||
},
|
||||
"collectionNoPlaylistsSubtitle": "Create a playlist to start categorizing tracks",
|
||||
"@collectionNoPlaylistsSubtitle": {
|
||||
"description": "Empty state subtitle when user has no playlists"
|
||||
},
|
||||
"collectionPlaylistTracks": "{count, plural, =1{1 track} other{{count} tracks}}",
|
||||
"@collectionPlaylistTracks": {
|
||||
"description": "Track count label for custom playlists",
|
||||
@@ -3476,10 +3364,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistCreated": "Playlist created",
|
||||
"@collectionPlaylistCreated": {
|
||||
"description": "Snackbar after creating playlist"
|
||||
},
|
||||
"collectionPlaylistNameHint": "Playlist name",
|
||||
"@collectionPlaylistNameHint": {
|
||||
"description": "Hint text for playlist name input"
|
||||
@@ -3496,19 +3380,6 @@
|
||||
"@collectionDeletePlaylist": {
|
||||
"description": "Action to delete playlist"
|
||||
},
|
||||
"collectionDeletePlaylistMessage": "Delete \"{playlistName}\" and all tracks inside it?",
|
||||
"@collectionDeletePlaylistMessage": {
|
||||
"description": "Confirmation message for deleting playlist",
|
||||
"placeholders": {
|
||||
"playlistName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistDeleted": "Playlist deleted",
|
||||
"@collectionPlaylistDeleted": {
|
||||
"description": "Snackbar after deleting playlist"
|
||||
},
|
||||
"collectionPlaylistRenamed": "Playlist renamed",
|
||||
"@collectionPlaylistRenamed": {
|
||||
"description": "Snackbar after renaming playlist"
|
||||
@@ -3553,15 +3424,6 @@
|
||||
"@collectionRemoveFromFolder": {
|
||||
"description": "Tooltip for removing track from wishlist/loved folder"
|
||||
},
|
||||
"collectionRemoved": "\"{trackName}\" removed",
|
||||
"@collectionRemoved": {
|
||||
"description": "Snackbar after removing a track from a collection",
|
||||
"placeholders": {
|
||||
"trackName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionAddedToLoved": "\"{trackName}\" added to Loved",
|
||||
"@collectionAddedToLoved": {
|
||||
"description": "Snackbar after adding track to loved folder",
|
||||
@@ -3705,15 +3567,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionBatchConvertProgress": "Converting {current} of {total}...",
|
||||
"@selectionBatchConvertProgress": {
|
||||
"description": "Snackbar during batch conversion progress",
|
||||
"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": {
|
||||
"current": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
"format": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3879,10 +3741,6 @@
|
||||
"@backupImportButton": {
|
||||
"description": "Button to pick a backup file to restore"
|
||||
},
|
||||
"backupCreating": "Creating backup...",
|
||||
"@backupCreating": {
|
||||
"description": "Progress text while a backup is being created"
|
||||
},
|
||||
"backupCreated": "Backup created",
|
||||
"@backupCreated": {
|
||||
"description": "Snackbar after a backup file is created"
|
||||
@@ -3891,10 +3749,6 @@
|
||||
"@backupCreateFailed": {
|
||||
"description": "Snackbar when backup creation fails"
|
||||
},
|
||||
"backupEmpty": "There is nothing to back up yet",
|
||||
"@backupEmpty": {
|
||||
"description": "Snackbar when there is no data to back up"
|
||||
},
|
||||
"backupRestoreConfirmTitle": "Restore this backup?",
|
||||
"@backupRestoreConfirmTitle": {
|
||||
"description": "Confirmation dialog title before restoring a backup"
|
||||
@@ -3907,10 +3761,6 @@
|
||||
"@backupRestoreConfirmButton": {
|
||||
"description": "Confirm button to proceed with restore"
|
||||
},
|
||||
"backupRestoring": "Restoring backup...",
|
||||
"@backupRestoring": {
|
||||
"description": "Progress text while restoring a backup"
|
||||
},
|
||||
"backupRestored": "Backup restored successfully",
|
||||
"@backupRestored": {
|
||||
"description": "Snackbar after a successful restore"
|
||||
@@ -3997,7 +3847,7 @@
|
||||
"@backupIncludeSecretsDescription": {
|
||||
"description": "Explanation for the include-credentials toggle"
|
||||
},
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the store.",
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the repo.",
|
||||
"@backupExtensionsRestoreFailed": {
|
||||
"description": "Snackbar/hint when some extensions failed to reinstall during restore",
|
||||
"placeholders": {
|
||||
@@ -4110,6 +3960,26 @@
|
||||
"@storageModeSafSubtitle": {
|
||||
"description": "Subtitle for SAF storage mode"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFilenameDescription": "Use {artist}, {title}, {album}, {track}, {year}, {date}, {disc} as placeholders.",
|
||||
"@downloadFilenameDescription": {
|
||||
"description": "Description shown in filename format editor"
|
||||
@@ -4178,10 +4048,6 @@
|
||||
"@downloadSelectServiceToEnable": {
|
||||
"description": "Subtitle when quality picker is disabled due to extension service"
|
||||
},
|
||||
"downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality",
|
||||
"@downloadSelectTidalQobuz": {
|
||||
"description": "Legacy info shown when a provider does not expose quality options"
|
||||
},
|
||||
"downloadEmbedLyricsDisabled": "Enable metadata embedding first",
|
||||
"@downloadEmbedLyricsDisabled": {
|
||||
"description": "Subtitle when lyrics embedding is blocked by metadata toggle"
|
||||
@@ -4430,10 +4296,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueDownloadedHeader": "Downloaded",
|
||||
"@queueDownloadedHeader": {
|
||||
"description": "Header label for downloaded items section in library"
|
||||
},
|
||||
"queueFilteringIndicator": "Filtering...",
|
||||
"@queueFilteringIndicator": {
|
||||
"description": "Shown while filter results are being computed"
|
||||
@@ -4588,15 +4450,6 @@
|
||||
"@audioAnalysisRescanning": {
|
||||
"description": "Loading text while audio is being re-analyzed after an explicit refresh"
|
||||
},
|
||||
"extensionsSearchWith": "Search with {providerName}",
|
||||
"@extensionsSearchWith": {
|
||||
"description": "Extensions page - subtitle for default metadata search provider option",
|
||||
"placeholders": {
|
||||
"providerName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsHomeFeedProvider": "Home Feed Provider",
|
||||
"@extensionsHomeFeedProvider": {
|
||||
"description": "Extensions page - label for home feed provider selector"
|
||||
@@ -4634,14 +4487,6 @@
|
||||
"@extensionsNoHomeFeedExtensions": {
|
||||
"description": "Extensions page - shown when no installed extension has home feed"
|
||||
},
|
||||
"sortAlphaAsc": "A-Z",
|
||||
"@sortAlphaAsc": {
|
||||
"description": "Sort option - alphabetical ascending"
|
||||
},
|
||||
"sortAlphaDesc": "Z-A",
|
||||
"@sortAlphaDesc": {
|
||||
"description": "Sort option - alphabetical descending"
|
||||
},
|
||||
"cancelDownloadTitle": "Cancel download?",
|
||||
"@cancelDownloadTitle": {
|
||||
"description": "Dialog title when confirming cancellation of an active download"
|
||||
@@ -4676,34 +4521,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorLoadAlbum": "Failed to load album",
|
||||
"@errorLoadAlbum": {
|
||||
"description": "Error state shown when album fails to load"
|
||||
},
|
||||
"errorLoadPlaylist": "Failed to load playlist",
|
||||
"@errorLoadPlaylist": {
|
||||
"description": "Error state shown when playlist fails to load"
|
||||
},
|
||||
"errorLoadArtist": "Failed to load artist",
|
||||
"@errorLoadArtist": {
|
||||
"description": "Error state shown when artist fails to load"
|
||||
},
|
||||
"notifChannelDownloadName": "Download Progress",
|
||||
"@notifChannelDownloadName": {
|
||||
"description": "Android notification channel name for download progress"
|
||||
},
|
||||
"notifChannelDownloadDesc": "Shows download progress for tracks",
|
||||
"@notifChannelDownloadDesc": {
|
||||
"description": "Android notification channel description for download progress"
|
||||
},
|
||||
"notifChannelLibraryScanName": "Library Scan",
|
||||
"@notifChannelLibraryScanName": {
|
||||
"description": "Android notification channel name for library scan"
|
||||
},
|
||||
"notifChannelLibraryScanDesc": "Shows local library scan progress",
|
||||
"@notifChannelLibraryScanDesc": {
|
||||
"description": "Android notification channel description for library scan"
|
||||
},
|
||||
"notifDownloadingTrack": "Downloading {trackName}",
|
||||
"@notifDownloadingTrack": {
|
||||
"description": "Notification title while downloading a track",
|
||||
@@ -4770,6 +4587,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"notifAllDownloadsComplete": "All Downloads Complete",
|
||||
"@notifAllDownloadsComplete": {
|
||||
"description": "Notification title when all downloads finish successfully"
|
||||
@@ -4956,14 +4781,6 @@
|
||||
"@actionPaste": {
|
||||
"description": "Generic action - paste from clipboard"
|
||||
},
|
||||
"searchTracksHint": "Search tracks...",
|
||||
"@searchTracksHint": {
|
||||
"description": "Placeholder for the search screen input"
|
||||
},
|
||||
"searchTracksEmptyPrompt": "Search for tracks",
|
||||
"@searchTracksEmptyPrompt": {
|
||||
"description": "Empty-state prompt on the search screen"
|
||||
},
|
||||
"tutorialSearchHint": "Paste or search...",
|
||||
"@tutorialSearchHint": {
|
||||
"description": "Placeholder shown in the tutorial search demo"
|
||||
@@ -4992,14 +4809,6 @@
|
||||
"@optionsEmbedMetadataSubtitleOff": {
|
||||
"description": "Subtitle when metadata embedding is disabled"
|
||||
},
|
||||
"optionsMaxQualityCoverSubtitleDisabled": "Disabled when metadata embedding is off",
|
||||
"@optionsMaxQualityCoverSubtitleDisabled": {
|
||||
"description": "Subtitle for max quality cover when metadata embedding is disabled"
|
||||
},
|
||||
"downloadFilenameHintExample": "{artist} - {title}",
|
||||
"@downloadFilenameHintExample": {
|
||||
"description": "Example placeholder for the download filename format input"
|
||||
},
|
||||
"trackCoverNoEmbeddedArt": "No embedded album art found",
|
||||
"@trackCoverNoEmbeddedArt": {
|
||||
"description": "Message shown when a track file has no embedded cover art"
|
||||
@@ -5239,14 +5048,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsDefaultSearchTabAlbums": "Albums",
|
||||
"@optionsDefaultSearchTabAlbums": {
|
||||
"description": "Default search tab option - Albums tab"
|
||||
},
|
||||
"optionsDefaultSearchTabTracks": "Tracks",
|
||||
"@optionsDefaultSearchTabTracks": {
|
||||
"description": "Default search tab option - Tracks tab"
|
||||
},
|
||||
"settingsFiles": "Files & Folders",
|
||||
"@settingsFiles": {
|
||||
"description": "Settings menu item - file and folder settings"
|
||||
@@ -5307,10 +5108,26 @@
|
||||
"@downloadDeduplicationEnabled": {
|
||||
"description": "Subtitle when deduplication is on"
|
||||
},
|
||||
"downloadDeduplicationWithQualityVariants": "Existing files at the selected quality will be skipped",
|
||||
"@downloadDeduplicationWithQualityVariants": {
|
||||
"description": "Deduplication subtitle when separate quality versions are allowed"
|
||||
},
|
||||
"downloadDeduplicationDisabled": "All tracks will be downloaded regardless of history",
|
||||
"@downloadDeduplicationDisabled": {
|
||||
"description": "Subtitle when deduplication is off"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFallbackExtensions": "Fallback Extensions",
|
||||
"@downloadFallbackExtensions": {
|
||||
"description": "Settings item for configuring fallback extension providers"
|
||||
@@ -5451,6 +5268,11 @@
|
||||
}
|
||||
},
|
||||
"queueDownloadStarting": "Starting...",
|
||||
"queueCheckingDownloadSession": "Checking download session...",
|
||||
"queueResolvingDownloadMetadata": "Resolving track metadata...",
|
||||
"queueResolvingDownloadStream": "Preparing audio stream...",
|
||||
"queueWaitingForVerification": "Waiting for verification...",
|
||||
"queueResumingAfterVerification": "Resuming after verification...",
|
||||
"@queueDownloadStarting": {
|
||||
"description": "Queue status before download progress is available"
|
||||
},
|
||||
@@ -5539,7 +5361,7 @@
|
||||
"@downloadNativeWorker": {
|
||||
"description": "Setting title for Android native download worker"
|
||||
},
|
||||
"downloadNativeWorkerSubtitle": "Beta Android service worker for extension downloads",
|
||||
"downloadNativeWorkerSubtitle": "Android background service for extension downloads",
|
||||
"@downloadNativeWorkerSubtitle": {
|
||||
"description": "Setting subtitle for Android native download worker"
|
||||
},
|
||||
@@ -5699,10 +5521,6 @@
|
||||
"@errorInvalidFolderSelected": {
|
||||
"description": "Error when the selected folder is invalid"
|
||||
},
|
||||
"errorCouldNotKeepFolderAccess": "Could not keep access to the selected folder",
|
||||
"@errorCouldNotKeepFolderAccess": {
|
||||
"description": "Error when persistent folder access cannot be saved"
|
||||
},
|
||||
"storeAnyVersion": "Any",
|
||||
"@storeAnyVersion": {
|
||||
"description": "Store detail value when any app version is accepted"
|
||||
|
||||
+232
-414
File diff suppressed because it is too large
Load Diff
+146
-328
@@ -19,7 +19,7 @@
|
||||
},
|
||||
"navStore": "Repo",
|
||||
"@navStore": {
|
||||
"description": "Bottom navigation - Extension store tab"
|
||||
"description": "Bottom navigation - Extension repo tab"
|
||||
},
|
||||
"homeTitle": "Home",
|
||||
"@homeTitle": {
|
||||
@@ -73,10 +73,6 @@
|
||||
"@settingsAppearance": {
|
||||
"description": "Settings section - visual customization"
|
||||
},
|
||||
"settingsOptions": "Options",
|
||||
"@settingsOptions": {
|
||||
"description": "Settings section - app options"
|
||||
},
|
||||
"settingsExtensions": "Extensions",
|
||||
"@settingsExtensions": {
|
||||
"description": "Settings section - extension management"
|
||||
@@ -145,10 +141,6 @@
|
||||
"@appearanceHistoryViewGrid": {
|
||||
"description": "Grid layout option"
|
||||
},
|
||||
"optionsTitle": "Options",
|
||||
"@optionsTitle": {
|
||||
"description": "Options settings page title"
|
||||
},
|
||||
"optionsPrimaryProvider": "Primary Provider",
|
||||
"@optionsPrimaryProvider": {
|
||||
"description": "Main search provider setting"
|
||||
@@ -174,10 +166,6 @@
|
||||
"@optionsDefaultSearchTabSubtitle": {
|
||||
"description": "Subtitle for the preferred default search tab setting"
|
||||
},
|
||||
"optionsSwitchBack": "Choose the default search provider to switch back from an extension",
|
||||
"@optionsSwitchBack": {
|
||||
"description": "Hint to switch back from extension search"
|
||||
},
|
||||
"optionsAutoFallback": "Auto Fallback",
|
||||
"@optionsAutoFallback": {
|
||||
"description": "Auto-retry with other services"
|
||||
@@ -186,18 +174,6 @@
|
||||
"@optionsAutoFallbackSubtitle": {
|
||||
"description": "Subtitle for auto fallback"
|
||||
},
|
||||
"optionsUseExtensionProviders": "Use Extension Providers",
|
||||
"@optionsUseExtensionProviders": {
|
||||
"description": "Legacy setting label for extension download providers"
|
||||
},
|
||||
"optionsUseExtensionProvidersOn": "Extension providers are enabled",
|
||||
"@optionsUseExtensionProvidersOn": {
|
||||
"description": "Status when extension providers enabled"
|
||||
},
|
||||
"optionsUseExtensionProvidersOff": "Extension providers are required",
|
||||
"@optionsUseExtensionProvidersOff": {
|
||||
"description": "Legacy status when extension providers would be disabled"
|
||||
},
|
||||
"optionsEmbedLyrics": "Embed Lyrics",
|
||||
"@optionsEmbedLyrics": {
|
||||
"description": "Embed lyrics in audio files"
|
||||
@@ -230,10 +206,6 @@
|
||||
"@trackReplayGain": {
|
||||
"description": "Three-dot menu option to scan loudness and write ReplayGain tags"
|
||||
},
|
||||
"trackReplayGainSubtitle": "Analyze loudness and write ReplayGain tags",
|
||||
"@trackReplayGainSubtitle": {
|
||||
"description": "Subtitle for the rescan ReplayGain menu option"
|
||||
},
|
||||
"trackReplayGainScanning": "Analyzing loudness...",
|
||||
"@trackReplayGainScanning": {
|
||||
"description": "Snackbar/progress message while scanning ReplayGain for a single track"
|
||||
@@ -310,11 +282,11 @@
|
||||
},
|
||||
"optionsExtensionStore": "Extension Repo",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide store tab"
|
||||
"description": "Show/hide repo tab"
|
||||
},
|
||||
"optionsExtensionStoreSubtitle": "Show Repo tab in navigation",
|
||||
"@optionsExtensionStoreSubtitle": {
|
||||
"description": "Subtitle for extension store toggle"
|
||||
"description": "Subtitle for extension repo toggle"
|
||||
},
|
||||
"optionsCheckUpdates": "Check for Updates",
|
||||
"@optionsCheckUpdates": {
|
||||
@@ -360,31 +332,6 @@
|
||||
"@optionsDetailedLoggingOff": {
|
||||
"description": "Status when logging disabled"
|
||||
},
|
||||
"optionsSpotifyCredentials": "Spotify Credentials",
|
||||
"@optionsSpotifyCredentials": {
|
||||
"description": "Spotify API credentials setting"
|
||||
},
|
||||
"optionsSpotifyCredentialsConfigured": "Client ID: {clientId}...",
|
||||
"@optionsSpotifyCredentialsConfigured": {
|
||||
"description": "Shows configured client ID preview",
|
||||
"placeholders": {
|
||||
"clientId": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsSpotifyCredentialsRequired": "Required - tap to configure",
|
||||
"@optionsSpotifyCredentialsRequired": {
|
||||
"description": "Prompt to set up credentials"
|
||||
},
|
||||
"optionsSpotifyWarning": "Spotify requires your own API credentials. Get them free from developer.spotify.com",
|
||||
"@optionsSpotifyWarning": {
|
||||
"description": "Info about Spotify API requirement"
|
||||
},
|
||||
"optionsSpotifyDeprecationWarning": "Spotify search will be deprecated on March 3, 2026 due to Spotify API changes. Please switch to Deezer.",
|
||||
"@optionsSpotifyDeprecationWarning": {
|
||||
"description": "Warning about Spotify API deprecation"
|
||||
},
|
||||
"extensionsTitle": "Extensions",
|
||||
"@extensionsTitle": {
|
||||
"description": "Extensions page title"
|
||||
@@ -402,26 +349,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsAuthor": "by {author}",
|
||||
"@extensionsAuthor": {
|
||||
"description": "Extension author credit",
|
||||
"placeholders": {
|
||||
"author": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsUninstall": "Uninstall",
|
||||
"@extensionsUninstall": {
|
||||
"description": "Uninstall extension button"
|
||||
},
|
||||
"storeTitle": "Extension Repo",
|
||||
"@storeTitle": {
|
||||
"description": "Store screen title"
|
||||
"description": "Repo screen title"
|
||||
},
|
||||
"storeSearch": "Search extensions...",
|
||||
"@storeSearch": {
|
||||
"description": "Store search placeholder"
|
||||
"description": "Repo search placeholder"
|
||||
},
|
||||
"storeInstall": "Install",
|
||||
"@storeInstall": {
|
||||
@@ -912,14 +850,6 @@
|
||||
"@snackbarHistoryCleared": {
|
||||
"description": "Snackbar - history deleted"
|
||||
},
|
||||
"snackbarCredentialsSaved": "Credentials saved",
|
||||
"@snackbarCredentialsSaved": {
|
||||
"description": "Snackbar - Spotify credentials saved"
|
||||
},
|
||||
"snackbarCredentialsCleared": "Credentials cleared",
|
||||
"@snackbarCredentialsCleared": {
|
||||
"description": "Snackbar - Spotify credentials removed"
|
||||
},
|
||||
"snackbarDeletedTracks": "Deleted {count} {count, plural, =1{track} other{tracks}}",
|
||||
"@snackbarDeletedTracks": {
|
||||
"description": "Snackbar - tracks deleted",
|
||||
@@ -938,10 +868,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"snackbarFillAllFields": "Please fill all fields",
|
||||
"@snackbarFillAllFields": {
|
||||
"description": "Snackbar - validation error"
|
||||
},
|
||||
"snackbarViewQueue": "View Queue",
|
||||
"@snackbarViewQueue": {
|
||||
"description": "Snackbar action - view download queue"
|
||||
@@ -1055,14 +981,6 @@
|
||||
"@actionDeselect": {
|
||||
"description": "Action button - deselect all"
|
||||
},
|
||||
"actionRemoveCredentials": "Remove Credentials",
|
||||
"@actionRemoveCredentials": {
|
||||
"description": "Action button - delete Spotify credentials"
|
||||
},
|
||||
"actionSaveCredentials": "Save Credentials",
|
||||
"@actionSaveCredentials": {
|
||||
"description": "Action button - save Spotify credentials"
|
||||
},
|
||||
"selectionSelected": "{count} selected",
|
||||
"@selectionSelected": {
|
||||
"description": "Selection count indicator",
|
||||
@@ -1236,6 +1154,19 @@
|
||||
"@updateNewVersionReady": {
|
||||
"description": "Update subtitle"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"updateCurrent": "Current",
|
||||
"@updateCurrent": {
|
||||
"description": "Label for current version"
|
||||
@@ -1272,10 +1203,6 @@
|
||||
"@providerPriorityInfo": {
|
||||
"description": "Info tip about fallback behavior"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsTitle": "Extension Fallback",
|
||||
"@providerPriorityFallbackExtensionsTitle": {
|
||||
"description": "Section title for choosing which download extensions can be used as fallback providers"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsDescription": "Choose which installed download extensions can be used during automatic fallback.",
|
||||
"@providerPriorityFallbackExtensionsDescription": {
|
||||
"description": "Section description for extension fallback selection"
|
||||
@@ -1284,10 +1211,6 @@
|
||||
"@providerPriorityFallbackExtensionsHint": {
|
||||
"description": "Hint below the extension fallback selection list"
|
||||
},
|
||||
"providerBuiltIn": "Legacy",
|
||||
"@providerBuiltIn": {
|
||||
"description": "Legacy label retained for old generated localization compatibility"
|
||||
},
|
||||
"providerExtension": "Extension",
|
||||
"@providerExtension": {
|
||||
"description": "Label for extension-provided providers"
|
||||
@@ -1304,14 +1227,6 @@
|
||||
"@metadataProviderPriorityInfo": {
|
||||
"description": "Info tip about rate limits"
|
||||
},
|
||||
"metadataNoRateLimits": "No rate limits",
|
||||
"@metadataNoRateLimits": {
|
||||
"description": "Deezer provider description"
|
||||
},
|
||||
"metadataMayRateLimit": "May rate limit",
|
||||
"@metadataMayRateLimit": {
|
||||
"description": "Spotify provider description"
|
||||
},
|
||||
"logTitle": "Logs",
|
||||
"@logTitle": {
|
||||
"description": "Logs screen title"
|
||||
@@ -1378,30 +1293,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"credentialsTitle": "Spotify Credentials",
|
||||
"@credentialsTitle": {
|
||||
"description": "Credentials dialog title"
|
||||
},
|
||||
"credentialsDescription": "Enter your Client ID and Secret to use your own Spotify application quota.",
|
||||
"@credentialsDescription": {
|
||||
"description": "Credentials dialog explanation"
|
||||
},
|
||||
"credentialsClientId": "Client ID",
|
||||
"@credentialsClientId": {
|
||||
"description": "Client ID field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientIdHint": "Paste Client ID",
|
||||
"@credentialsClientIdHint": {
|
||||
"description": "Client ID placeholder"
|
||||
},
|
||||
"credentialsClientSecret": "Client Secret",
|
||||
"@credentialsClientSecret": {
|
||||
"description": "Client Secret field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientSecretHint": "Paste Client Secret",
|
||||
"@credentialsClientSecretHint": {
|
||||
"description": "Client Secret placeholder"
|
||||
},
|
||||
"channelStable": "Stable",
|
||||
"@channelStable": {
|
||||
"description": "Update channel - stable releases"
|
||||
@@ -1510,10 +1401,6 @@
|
||||
"@settingsDownloadSubtitle": {
|
||||
"description": "Download settings description"
|
||||
},
|
||||
"settingsOptionsSubtitle": "Fallback, metadata, lyrics, cover art",
|
||||
"@settingsOptionsSubtitle": {
|
||||
"description": "Options settings description"
|
||||
},
|
||||
"settingsExtensionsSubtitle": "Manage download providers",
|
||||
"@settingsExtensionsSubtitle": {
|
||||
"description": "Extensions settings description"
|
||||
@@ -1730,27 +1617,27 @@
|
||||
},
|
||||
"storeFilterAll": "All",
|
||||
"@storeFilterAll": {
|
||||
"description": "Store filter - all extensions"
|
||||
"description": "Repo filter - all extensions"
|
||||
},
|
||||
"storeFilterMetadata": "Metadata",
|
||||
"@storeFilterMetadata": {
|
||||
"description": "Store filter - metadata providers"
|
||||
"description": "Repo filter - metadata providers"
|
||||
},
|
||||
"storeFilterDownload": "Download",
|
||||
"@storeFilterDownload": {
|
||||
"description": "Store filter - download providers"
|
||||
"description": "Repo filter - download providers"
|
||||
},
|
||||
"storeFilterUtility": "Utility",
|
||||
"@storeFilterUtility": {
|
||||
"description": "Store filter - utility extensions"
|
||||
"description": "Repo filter - utility extensions"
|
||||
},
|
||||
"storeFilterLyrics": "Lyrics",
|
||||
"@storeFilterLyrics": {
|
||||
"description": "Store filter - lyrics providers"
|
||||
"description": "Repo filter - lyrics providers"
|
||||
},
|
||||
"storeFilterIntegration": "Integration",
|
||||
"@storeFilterIntegration": {
|
||||
"description": "Store filter - integrations"
|
||||
"description": "Repo filter - integrations"
|
||||
},
|
||||
"storeClearFilters": "Clear filters",
|
||||
"@storeClearFilters": {
|
||||
@@ -1772,10 +1659,6 @@
|
||||
"@storeRepoUrlHint": {
|
||||
"description": "Hint/placeholder for the repository URL input field"
|
||||
},
|
||||
"storeRepoUrlHelper": "e.g. https://github.com/user/extensions-repo",
|
||||
"@storeRepoUrlHelper": {
|
||||
"description": "Helper text below the repository URL input field"
|
||||
},
|
||||
"storeAddRepoButton": "Add Repository",
|
||||
"@storeAddRepoButton": {
|
||||
"description": "Button to submit a new repository URL"
|
||||
@@ -1808,18 +1691,6 @@
|
||||
"@storeEmptyNoResults": {
|
||||
"description": "Message when search/filter returns no results"
|
||||
},
|
||||
"extensionDefaultProvider": "Default Search",
|
||||
"@extensionDefaultProvider": {
|
||||
"description": "Default search provider option"
|
||||
},
|
||||
"extensionDefaultProviderSubtitle": "Use the default metadata search",
|
||||
"@extensionDefaultProviderSubtitle": {
|
||||
"description": "Subtitle for default provider"
|
||||
},
|
||||
"extensionAuthor": "Author",
|
||||
"@extensionAuthor": {
|
||||
"description": "Extension detail - author"
|
||||
},
|
||||
"extensionId": "ID",
|
||||
"@extensionId": {
|
||||
"description": "Extension detail - unique ID"
|
||||
@@ -2087,10 +1958,6 @@
|
||||
"@downloadLossyOpus128Subtitle": {
|
||||
"description": "Subtitle for Opus 128kbps lossy option"
|
||||
},
|
||||
"qualityNote": "Actual quality depends on track availability from the service",
|
||||
"@qualityNote": {
|
||||
"description": "Note about quality availability"
|
||||
},
|
||||
"downloadAskBeforeDownload": "Ask Before Download",
|
||||
"@downloadAskBeforeDownload": {
|
||||
"description": "Setting - show quality picker"
|
||||
@@ -2143,6 +2010,14 @@
|
||||
"@appearanceAmoledDarkSubtitle": {
|
||||
"description": "Subtitle for AMOLED dark"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"queueClearAll": "Clear All",
|
||||
"@queueClearAll": {
|
||||
"description": "Button - clear all queue items"
|
||||
@@ -2175,6 +2050,27 @@
|
||||
"@settingsDownloadNetworkSubtitle": {
|
||||
"description": "Subtitle explaining network preference"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"albumFolderArtistAlbum": "Artist / Album",
|
||||
"@albumFolderArtistAlbum": {
|
||||
"description": "Album folder option"
|
||||
@@ -2245,10 +2141,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadedAlbumAllSelected": "All tracks selected",
|
||||
"@downloadedAlbumAllSelected": {
|
||||
"description": "Status - all items selected"
|
||||
},
|
||||
"downloadedAlbumTapToSelect": "Tap tracks to select",
|
||||
"@downloadedAlbumTapToSelect": {
|
||||
"description": "Selection hint"
|
||||
@@ -2976,6 +2868,22 @@
|
||||
"@cacheLibraryCoverDesc": {
|
||||
"description": "Description of what library cover cache contains"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"cacheExploreFeed": "Explore feed cache",
|
||||
"@cacheExploreFeed": {
|
||||
"description": "Cache item title for explore home feed cache"
|
||||
@@ -3092,18 +3000,10 @@
|
||||
"@trackSaveCoverArt": {
|
||||
"description": "Menu action - save album cover art as file"
|
||||
},
|
||||
"trackSaveCoverArtSubtitle": "Save album art as .jpg file",
|
||||
"@trackSaveCoverArtSubtitle": {
|
||||
"description": "Subtitle for save cover art action"
|
||||
},
|
||||
"trackSaveLyrics": "Save Lyrics (.lrc)",
|
||||
"@trackSaveLyrics": {
|
||||
"description": "Menu action - save lyrics as .lrc file"
|
||||
},
|
||||
"trackSaveLyricsSubtitle": "Fetch and save lyrics as .lrc file",
|
||||
"@trackSaveLyricsSubtitle": {
|
||||
"description": "Subtitle for save lyrics action"
|
||||
},
|
||||
"trackSaveLyricsProgress": "Saving lyrics...",
|
||||
"@trackSaveLyricsProgress": {
|
||||
"description": "Snackbar while saving lyrics to file"
|
||||
@@ -3116,10 +3016,6 @@
|
||||
"@trackReEnrichOnlineSubtitle": {
|
||||
"description": "Subtitle for re-enrich metadata action for local items"
|
||||
},
|
||||
"trackReEnrichFieldsTitle": "Fields to update",
|
||||
"@trackReEnrichFieldsTitle": {
|
||||
"description": "Section title for field selection in re-enrich dialog"
|
||||
},
|
||||
"trackReEnrichFieldCover": "Cover Art",
|
||||
"@trackReEnrichFieldCover": {
|
||||
"description": "Checkbox label for cover art field in re-enrich"
|
||||
@@ -3203,18 +3099,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacFindingProgress": "Finding FLAC matches... ({current}/{total})",
|
||||
"@queueFlacFindingProgress": {
|
||||
"description": "Snackbar while resolving remote matches for local FLAC redownloads",
|
||||
"placeholders": {
|
||||
"current": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacNoReliableMatches": "No reliable online matches found for the selection",
|
||||
"@queueFlacNoReliableMatches": {
|
||||
"description": "Snackbar when no safe FLAC redownload matches were found"
|
||||
@@ -3244,10 +3128,6 @@
|
||||
"@trackConvertFormat": {
|
||||
"description": "Menu item - convert audio format"
|
||||
},
|
||||
"trackConvertFormatSubtitle": "Convert to AAC/M4A, MP3, Opus, ALAC, or FLAC",
|
||||
"@trackConvertFormatSubtitle": {
|
||||
"description": "Subtitle for convert format menu item"
|
||||
},
|
||||
"trackConvertTitle": "Convert Audio",
|
||||
"@trackConvertTitle": {
|
||||
"description": "Title of convert bottom sheet"
|
||||
@@ -3260,6 +3140,14 @@
|
||||
"@trackConvertBitrate": {
|
||||
"description": "Label for bitrate selection"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"trackConvertConfirmTitle": "Confirm Conversion",
|
||||
"@trackConvertConfirmTitle": {
|
||||
"description": "Confirmation dialog title"
|
||||
@@ -3291,6 +3179,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"trackConvertLosslessHint": "Lossless conversion — no quality loss",
|
||||
"@trackConvertLosslessHint": {
|
||||
"description": "Hint shown when converting between lossless formats"
|
||||
@@ -3316,10 +3216,6 @@
|
||||
"@cueSplitTitle": {
|
||||
"description": "Title for CUE split bottom sheet"
|
||||
},
|
||||
"cueSplitSubtitle": "Split CUE+FLAC into individual tracks",
|
||||
"@cueSplitSubtitle": {
|
||||
"description": "Subtitle for CUE split menu item"
|
||||
},
|
||||
"cueSplitAlbum": "Album: {album}",
|
||||
"@cueSplitAlbum": {
|
||||
"description": "Album name in CUE split sheet",
|
||||
@@ -3416,10 +3312,6 @@
|
||||
"@collectionFavoriteArtists": {
|
||||
"description": "Custom folder for favorite artists"
|
||||
},
|
||||
"collectionPlaylists": "Playlists",
|
||||
"@collectionPlaylists": {
|
||||
"description": "Custom user playlists folder"
|
||||
},
|
||||
"collectionPlaylist": "Playlist",
|
||||
"@collectionPlaylist": {
|
||||
"description": "Single playlist label"
|
||||
@@ -3436,10 +3328,6 @@
|
||||
"@collectionNoPlaylistsYet": {
|
||||
"description": "Empty state title when user has no playlists"
|
||||
},
|
||||
"collectionNoPlaylistsSubtitle": "Create a playlist to start categorizing tracks",
|
||||
"@collectionNoPlaylistsSubtitle": {
|
||||
"description": "Empty state subtitle when user has no playlists"
|
||||
},
|
||||
"collectionPlaylistTracks": "{count, plural, =1{1 track} other{{count} tracks}}",
|
||||
"@collectionPlaylistTracks": {
|
||||
"description": "Track count label for custom playlists",
|
||||
@@ -3476,10 +3364,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistCreated": "Playlist created",
|
||||
"@collectionPlaylistCreated": {
|
||||
"description": "Snackbar after creating playlist"
|
||||
},
|
||||
"collectionPlaylistNameHint": "Playlist name",
|
||||
"@collectionPlaylistNameHint": {
|
||||
"description": "Hint text for playlist name input"
|
||||
@@ -3496,19 +3380,6 @@
|
||||
"@collectionDeletePlaylist": {
|
||||
"description": "Action to delete playlist"
|
||||
},
|
||||
"collectionDeletePlaylistMessage": "Delete \"{playlistName}\" and all tracks inside it?",
|
||||
"@collectionDeletePlaylistMessage": {
|
||||
"description": "Confirmation message for deleting playlist",
|
||||
"placeholders": {
|
||||
"playlistName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistDeleted": "Playlist deleted",
|
||||
"@collectionPlaylistDeleted": {
|
||||
"description": "Snackbar after deleting playlist"
|
||||
},
|
||||
"collectionPlaylistRenamed": "Playlist renamed",
|
||||
"@collectionPlaylistRenamed": {
|
||||
"description": "Snackbar after renaming playlist"
|
||||
@@ -3553,15 +3424,6 @@
|
||||
"@collectionRemoveFromFolder": {
|
||||
"description": "Tooltip for removing track from wishlist/loved folder"
|
||||
},
|
||||
"collectionRemoved": "\"{trackName}\" removed",
|
||||
"@collectionRemoved": {
|
||||
"description": "Snackbar after removing a track from a collection",
|
||||
"placeholders": {
|
||||
"trackName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionAddedToLoved": "\"{trackName}\" added to Loved",
|
||||
"@collectionAddedToLoved": {
|
||||
"description": "Snackbar after adding track to loved folder",
|
||||
@@ -3705,15 +3567,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionBatchConvertProgress": "Converting {current} of {total}...",
|
||||
"@selectionBatchConvertProgress": {
|
||||
"description": "Snackbar during batch conversion progress",
|
||||
"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": {
|
||||
"current": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
"format": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3879,10 +3741,6 @@
|
||||
"@backupImportButton": {
|
||||
"description": "Button to pick a backup file to restore"
|
||||
},
|
||||
"backupCreating": "Creating backup...",
|
||||
"@backupCreating": {
|
||||
"description": "Progress text while a backup is being created"
|
||||
},
|
||||
"backupCreated": "Backup created",
|
||||
"@backupCreated": {
|
||||
"description": "Snackbar after a backup file is created"
|
||||
@@ -3891,10 +3749,6 @@
|
||||
"@backupCreateFailed": {
|
||||
"description": "Snackbar when backup creation fails"
|
||||
},
|
||||
"backupEmpty": "There is nothing to back up yet",
|
||||
"@backupEmpty": {
|
||||
"description": "Snackbar when there is no data to back up"
|
||||
},
|
||||
"backupRestoreConfirmTitle": "Restore this backup?",
|
||||
"@backupRestoreConfirmTitle": {
|
||||
"description": "Confirmation dialog title before restoring a backup"
|
||||
@@ -3907,10 +3761,6 @@
|
||||
"@backupRestoreConfirmButton": {
|
||||
"description": "Confirm button to proceed with restore"
|
||||
},
|
||||
"backupRestoring": "Restoring backup...",
|
||||
"@backupRestoring": {
|
||||
"description": "Progress text while restoring a backup"
|
||||
},
|
||||
"backupRestored": "Backup restored successfully",
|
||||
"@backupRestored": {
|
||||
"description": "Snackbar after a successful restore"
|
||||
@@ -3997,7 +3847,7 @@
|
||||
"@backupIncludeSecretsDescription": {
|
||||
"description": "Explanation for the include-credentials toggle"
|
||||
},
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the store.",
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the repo.",
|
||||
"@backupExtensionsRestoreFailed": {
|
||||
"description": "Snackbar/hint when some extensions failed to reinstall during restore",
|
||||
"placeholders": {
|
||||
@@ -4110,6 +3960,26 @@
|
||||
"@storageModeSafSubtitle": {
|
||||
"description": "Subtitle for SAF storage mode"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFilenameDescription": "Use {artist}, {title}, {album}, {track}, {year}, {date}, {disc} as placeholders.",
|
||||
"@downloadFilenameDescription": {
|
||||
"description": "Description shown in filename format editor"
|
||||
@@ -4178,10 +4048,6 @@
|
||||
"@downloadSelectServiceToEnable": {
|
||||
"description": "Subtitle when quality picker is disabled due to extension service"
|
||||
},
|
||||
"downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality",
|
||||
"@downloadSelectTidalQobuz": {
|
||||
"description": "Legacy info shown when a provider does not expose quality options"
|
||||
},
|
||||
"downloadEmbedLyricsDisabled": "Enable metadata embedding first",
|
||||
"@downloadEmbedLyricsDisabled": {
|
||||
"description": "Subtitle when lyrics embedding is blocked by metadata toggle"
|
||||
@@ -4430,10 +4296,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueDownloadedHeader": "Downloaded",
|
||||
"@queueDownloadedHeader": {
|
||||
"description": "Header label for downloaded items section in library"
|
||||
},
|
||||
"queueFilteringIndicator": "Filtering...",
|
||||
"@queueFilteringIndicator": {
|
||||
"description": "Shown while filter results are being computed"
|
||||
@@ -4588,15 +4450,6 @@
|
||||
"@audioAnalysisRescanning": {
|
||||
"description": "Loading text while audio is being re-analyzed after an explicit refresh"
|
||||
},
|
||||
"extensionsSearchWith": "Search with {providerName}",
|
||||
"@extensionsSearchWith": {
|
||||
"description": "Extensions page - subtitle for default metadata search provider option",
|
||||
"placeholders": {
|
||||
"providerName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsHomeFeedProvider": "Home Feed Provider",
|
||||
"@extensionsHomeFeedProvider": {
|
||||
"description": "Extensions page - label for home feed provider selector"
|
||||
@@ -4634,14 +4487,6 @@
|
||||
"@extensionsNoHomeFeedExtensions": {
|
||||
"description": "Extensions page - shown when no installed extension has home feed"
|
||||
},
|
||||
"sortAlphaAsc": "A-Z",
|
||||
"@sortAlphaAsc": {
|
||||
"description": "Sort option - alphabetical ascending"
|
||||
},
|
||||
"sortAlphaDesc": "Z-A",
|
||||
"@sortAlphaDesc": {
|
||||
"description": "Sort option - alphabetical descending"
|
||||
},
|
||||
"cancelDownloadTitle": "Cancel download?",
|
||||
"@cancelDownloadTitle": {
|
||||
"description": "Dialog title when confirming cancellation of an active download"
|
||||
@@ -4676,34 +4521,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorLoadAlbum": "Failed to load album",
|
||||
"@errorLoadAlbum": {
|
||||
"description": "Error state shown when album fails to load"
|
||||
},
|
||||
"errorLoadPlaylist": "Failed to load playlist",
|
||||
"@errorLoadPlaylist": {
|
||||
"description": "Error state shown when playlist fails to load"
|
||||
},
|
||||
"errorLoadArtist": "Failed to load artist",
|
||||
"@errorLoadArtist": {
|
||||
"description": "Error state shown when artist fails to load"
|
||||
},
|
||||
"notifChannelDownloadName": "Download Progress",
|
||||
"@notifChannelDownloadName": {
|
||||
"description": "Android notification channel name for download progress"
|
||||
},
|
||||
"notifChannelDownloadDesc": "Shows download progress for tracks",
|
||||
"@notifChannelDownloadDesc": {
|
||||
"description": "Android notification channel description for download progress"
|
||||
},
|
||||
"notifChannelLibraryScanName": "Library Scan",
|
||||
"@notifChannelLibraryScanName": {
|
||||
"description": "Android notification channel name for library scan"
|
||||
},
|
||||
"notifChannelLibraryScanDesc": "Shows local library scan progress",
|
||||
"@notifChannelLibraryScanDesc": {
|
||||
"description": "Android notification channel description for library scan"
|
||||
},
|
||||
"notifDownloadingTrack": "Downloading {trackName}",
|
||||
"@notifDownloadingTrack": {
|
||||
"description": "Notification title while downloading a track",
|
||||
@@ -4770,6 +4587,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"notifAllDownloadsComplete": "All Downloads Complete",
|
||||
"@notifAllDownloadsComplete": {
|
||||
"description": "Notification title when all downloads finish successfully"
|
||||
@@ -4956,14 +4781,6 @@
|
||||
"@actionPaste": {
|
||||
"description": "Generic action - paste from clipboard"
|
||||
},
|
||||
"searchTracksHint": "Search tracks...",
|
||||
"@searchTracksHint": {
|
||||
"description": "Placeholder for the search screen input"
|
||||
},
|
||||
"searchTracksEmptyPrompt": "Search for tracks",
|
||||
"@searchTracksEmptyPrompt": {
|
||||
"description": "Empty-state prompt on the search screen"
|
||||
},
|
||||
"tutorialSearchHint": "Paste or search...",
|
||||
"@tutorialSearchHint": {
|
||||
"description": "Placeholder shown in the tutorial search demo"
|
||||
@@ -4992,14 +4809,6 @@
|
||||
"@optionsEmbedMetadataSubtitleOff": {
|
||||
"description": "Subtitle when metadata embedding is disabled"
|
||||
},
|
||||
"optionsMaxQualityCoverSubtitleDisabled": "Disabled when metadata embedding is off",
|
||||
"@optionsMaxQualityCoverSubtitleDisabled": {
|
||||
"description": "Subtitle for max quality cover when metadata embedding is disabled"
|
||||
},
|
||||
"downloadFilenameHintExample": "{artist} - {title}",
|
||||
"@downloadFilenameHintExample": {
|
||||
"description": "Example placeholder for the download filename format input"
|
||||
},
|
||||
"trackCoverNoEmbeddedArt": "No embedded album art found",
|
||||
"@trackCoverNoEmbeddedArt": {
|
||||
"description": "Message shown when a track file has no embedded cover art"
|
||||
@@ -5239,14 +5048,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsDefaultSearchTabAlbums": "Albums",
|
||||
"@optionsDefaultSearchTabAlbums": {
|
||||
"description": "Default search tab option - Albums tab"
|
||||
},
|
||||
"optionsDefaultSearchTabTracks": "Tracks",
|
||||
"@optionsDefaultSearchTabTracks": {
|
||||
"description": "Default search tab option - Tracks tab"
|
||||
},
|
||||
"settingsFiles": "Files & Folders",
|
||||
"@settingsFiles": {
|
||||
"description": "Settings menu item - file and folder settings"
|
||||
@@ -5307,10 +5108,26 @@
|
||||
"@downloadDeduplicationEnabled": {
|
||||
"description": "Subtitle when deduplication is on"
|
||||
},
|
||||
"downloadDeduplicationWithQualityVariants": "Existing files at the selected quality will be skipped",
|
||||
"@downloadDeduplicationWithQualityVariants": {
|
||||
"description": "Deduplication subtitle when separate quality versions are allowed"
|
||||
},
|
||||
"downloadDeduplicationDisabled": "All tracks will be downloaded regardless of history",
|
||||
"@downloadDeduplicationDisabled": {
|
||||
"description": "Subtitle when deduplication is off"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFallbackExtensions": "Fallback Extensions",
|
||||
"@downloadFallbackExtensions": {
|
||||
"description": "Settings item for configuring fallback extension providers"
|
||||
@@ -5451,6 +5268,11 @@
|
||||
}
|
||||
},
|
||||
"queueDownloadStarting": "Starting...",
|
||||
"queueCheckingDownloadSession": "Checking download session...",
|
||||
"queueResolvingDownloadMetadata": "Resolving track metadata...",
|
||||
"queueResolvingDownloadStream": "Preparing audio stream...",
|
||||
"queueWaitingForVerification": "Waiting for verification...",
|
||||
"queueResumingAfterVerification": "Resuming after verification...",
|
||||
"@queueDownloadStarting": {
|
||||
"description": "Queue status before download progress is available"
|
||||
},
|
||||
@@ -5539,7 +5361,7 @@
|
||||
"@downloadNativeWorker": {
|
||||
"description": "Setting title for Android native download worker"
|
||||
},
|
||||
"downloadNativeWorkerSubtitle": "Beta Android service worker for extension downloads",
|
||||
"downloadNativeWorkerSubtitle": "Android background service for extension downloads",
|
||||
"@downloadNativeWorkerSubtitle": {
|
||||
"description": "Setting subtitle for Android native download worker"
|
||||
},
|
||||
@@ -5699,10 +5521,6 @@
|
||||
"@errorInvalidFolderSelected": {
|
||||
"description": "Error when the selected folder is invalid"
|
||||
},
|
||||
"errorCouldNotKeepFolderAccess": "Could not keep access to the selected folder",
|
||||
"@errorCouldNotKeepFolderAccess": {
|
||||
"description": "Error when persistent folder access cannot be saved"
|
||||
},
|
||||
"storeAnyVersion": "Any",
|
||||
"@storeAnyVersion": {
|
||||
"description": "Store detail value when any app version is accepted"
|
||||
|
||||
+152
-334
@@ -19,7 +19,7 @@
|
||||
},
|
||||
"navStore": "Repo",
|
||||
"@navStore": {
|
||||
"description": "Bottom navigation - Extension store tab"
|
||||
"description": "Bottom navigation - Extension repo tab"
|
||||
},
|
||||
"homeTitle": "Início",
|
||||
"@homeTitle": {
|
||||
@@ -73,10 +73,6 @@
|
||||
"@settingsAppearance": {
|
||||
"description": "Settings section - visual customization"
|
||||
},
|
||||
"settingsOptions": "Opções",
|
||||
"@settingsOptions": {
|
||||
"description": "Settings section - app options"
|
||||
},
|
||||
"settingsExtensions": "Extensões",
|
||||
"@settingsExtensions": {
|
||||
"description": "Settings section - extension management"
|
||||
@@ -145,10 +141,6 @@
|
||||
"@appearanceHistoryViewGrid": {
|
||||
"description": "Grid layout option"
|
||||
},
|
||||
"optionsTitle": "Opções",
|
||||
"@optionsTitle": {
|
||||
"description": "Options settings page title"
|
||||
},
|
||||
"optionsPrimaryProvider": "Provedor Primário",
|
||||
"@optionsPrimaryProvider": {
|
||||
"description": "Main search provider setting"
|
||||
@@ -174,10 +166,6 @@
|
||||
"@optionsDefaultSearchTabSubtitle": {
|
||||
"description": "Subtitle for the preferred default search tab setting"
|
||||
},
|
||||
"optionsSwitchBack": "Escolha o provedor de pesquisa padrão para retornar após sair de uma extensão",
|
||||
"@optionsSwitchBack": {
|
||||
"description": "Hint to switch back from extension search"
|
||||
},
|
||||
"optionsAutoFallback": "Fallback Automático",
|
||||
"@optionsAutoFallback": {
|
||||
"description": "Auto-retry with other services"
|
||||
@@ -186,18 +174,6 @@
|
||||
"@optionsAutoFallbackSubtitle": {
|
||||
"description": "Subtitle for auto fallback"
|
||||
},
|
||||
"optionsUseExtensionProviders": "Usar Provedores de Extensão",
|
||||
"@optionsUseExtensionProviders": {
|
||||
"description": "Legacy setting label for extension download providers"
|
||||
},
|
||||
"optionsUseExtensionProvidersOn": "Provedores de extensão estão habilitados",
|
||||
"@optionsUseExtensionProvidersOn": {
|
||||
"description": "Status when extension providers enabled"
|
||||
},
|
||||
"optionsUseExtensionProvidersOff": "Provedores de extensão são necessários",
|
||||
"@optionsUseExtensionProvidersOff": {
|
||||
"description": "Legacy status when extension providers would be disabled"
|
||||
},
|
||||
"optionsEmbedLyrics": "Incorporar Letras",
|
||||
"@optionsEmbedLyrics": {
|
||||
"description": "Embed lyrics in audio files"
|
||||
@@ -230,10 +206,6 @@
|
||||
"@trackReplayGain": {
|
||||
"description": "Three-dot menu option to scan loudness and write ReplayGain tags"
|
||||
},
|
||||
"trackReplayGainSubtitle": "Analisar o volume e gravar etiquetas ReplayGain",
|
||||
"@trackReplayGainSubtitle": {
|
||||
"description": "Subtitle for the rescan ReplayGain menu option"
|
||||
},
|
||||
"trackReplayGainScanning": "Analisando o volume...",
|
||||
"@trackReplayGainScanning": {
|
||||
"description": "Snackbar/progress message while scanning ReplayGain for a single track"
|
||||
@@ -310,11 +282,11 @@
|
||||
},
|
||||
"optionsExtensionStore": "Repositório de extensões",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide store tab"
|
||||
"description": "Show/hide repo tab"
|
||||
},
|
||||
"optionsExtensionStoreSubtitle": "Mostrar aba de repositório na navegação",
|
||||
"@optionsExtensionStoreSubtitle": {
|
||||
"description": "Subtitle for extension store toggle"
|
||||
"description": "Subtitle for extension repo toggle"
|
||||
},
|
||||
"optionsCheckUpdates": "Procurar Atualizações",
|
||||
"@optionsCheckUpdates": {
|
||||
@@ -360,31 +332,6 @@
|
||||
"@optionsDetailedLoggingOff": {
|
||||
"description": "Status when logging disabled"
|
||||
},
|
||||
"optionsSpotifyCredentials": "Credenciais do Spotify",
|
||||
"@optionsSpotifyCredentials": {
|
||||
"description": "Spotify API credentials setting"
|
||||
},
|
||||
"optionsSpotifyCredentialsConfigured": "ID do cliente: {clientId}...",
|
||||
"@optionsSpotifyCredentialsConfigured": {
|
||||
"description": "Shows configured client ID preview",
|
||||
"placeholders": {
|
||||
"clientId": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsSpotifyCredentialsRequired": "Obrigatório - toque para configurar",
|
||||
"@optionsSpotifyCredentialsRequired": {
|
||||
"description": "Prompt to set up credentials"
|
||||
},
|
||||
"optionsSpotifyWarning": "O Spotify requer as suas próprias credenciais de API. Consiga gratuitamente em developer.spotify.com",
|
||||
"@optionsSpotifyWarning": {
|
||||
"description": "Info about Spotify API requirement"
|
||||
},
|
||||
"optionsSpotifyDeprecationWarning": "A busca do Spotify será descontinuada em 3 de março de 2026 devido a mudanças na API do Spotify. Por favor, mude para o Deezer.",
|
||||
"@optionsSpotifyDeprecationWarning": {
|
||||
"description": "Warning about Spotify API deprecation"
|
||||
},
|
||||
"extensionsTitle": "Extensões",
|
||||
"@extensionsTitle": {
|
||||
"description": "Extensions page title"
|
||||
@@ -402,26 +349,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsAuthor": "por {author}",
|
||||
"@extensionsAuthor": {
|
||||
"description": "Extension author credit",
|
||||
"placeholders": {
|
||||
"author": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsUninstall": "Desinstalar",
|
||||
"@extensionsUninstall": {
|
||||
"description": "Uninstall extension button"
|
||||
},
|
||||
"storeTitle": "Repositório de extensões",
|
||||
"@storeTitle": {
|
||||
"description": "Store screen title"
|
||||
"description": "Repo screen title"
|
||||
},
|
||||
"storeSearch": "Pesquisar extensões...",
|
||||
"@storeSearch": {
|
||||
"description": "Store search placeholder"
|
||||
"description": "Repo search placeholder"
|
||||
},
|
||||
"storeInstall": "Instalar",
|
||||
"@storeInstall": {
|
||||
@@ -912,14 +850,6 @@
|
||||
"@snackbarHistoryCleared": {
|
||||
"description": "Snackbar - history deleted"
|
||||
},
|
||||
"snackbarCredentialsSaved": "Credenciais salvas",
|
||||
"@snackbarCredentialsSaved": {
|
||||
"description": "Snackbar - Spotify credentials saved"
|
||||
},
|
||||
"snackbarCredentialsCleared": "Credenciais limpas",
|
||||
"@snackbarCredentialsCleared": {
|
||||
"description": "Snackbar - Spotify credentials removed"
|
||||
},
|
||||
"snackbarDeletedTracks": "{count} {count, plural, =1{faixa apagada} other{faixas apagadas}}",
|
||||
"@snackbarDeletedTracks": {
|
||||
"description": "Snackbar - tracks deleted",
|
||||
@@ -938,10 +868,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"snackbarFillAllFields": "Por favor, preencha todos os campos",
|
||||
"@snackbarFillAllFields": {
|
||||
"description": "Snackbar - validation error"
|
||||
},
|
||||
"snackbarViewQueue": "Ver Fila",
|
||||
"@snackbarViewQueue": {
|
||||
"description": "Snackbar action - view download queue"
|
||||
@@ -1055,14 +981,6 @@
|
||||
"@actionDeselect": {
|
||||
"description": "Action button - deselect all"
|
||||
},
|
||||
"actionRemoveCredentials": "Remover Credenciais",
|
||||
"@actionRemoveCredentials": {
|
||||
"description": "Action button - delete Spotify credentials"
|
||||
},
|
||||
"actionSaveCredentials": "Salvar Credenciais",
|
||||
"@actionSaveCredentials": {
|
||||
"description": "Action button - save Spotify credentials"
|
||||
},
|
||||
"selectionSelected": "{count} selecionado(s)",
|
||||
"@selectionSelected": {
|
||||
"description": "Selection count indicator",
|
||||
@@ -1236,6 +1154,19 @@
|
||||
"@updateNewVersionReady": {
|
||||
"description": "Update subtitle"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"updateCurrent": "Atual",
|
||||
"@updateCurrent": {
|
||||
"description": "Label for current version"
|
||||
@@ -1272,10 +1203,6 @@
|
||||
"@providerPriorityInfo": {
|
||||
"description": "Info tip about fallback behavior"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsTitle": "Alternativa de extensão",
|
||||
"@providerPriorityFallbackExtensionsTitle": {
|
||||
"description": "Section title for choosing which download extensions can be used as fallback providers"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsDescription": "Escolha quais extensões de download instaladas podem ser usadas durante a alternativa automática.",
|
||||
"@providerPriorityFallbackExtensionsDescription": {
|
||||
"description": "Section description for extension fallback selection"
|
||||
@@ -1284,10 +1211,6 @@
|
||||
"@providerPriorityFallbackExtensionsHint": {
|
||||
"description": "Hint below the extension fallback selection list"
|
||||
},
|
||||
"providerBuiltIn": "Legado",
|
||||
"@providerBuiltIn": {
|
||||
"description": "Legacy label retained for old generated localization compatibility"
|
||||
},
|
||||
"providerExtension": "Extensão",
|
||||
"@providerExtension": {
|
||||
"description": "Label for extension-provided providers"
|
||||
@@ -1304,14 +1227,6 @@
|
||||
"@metadataProviderPriorityInfo": {
|
||||
"description": "Info tip about rate limits"
|
||||
},
|
||||
"metadataNoRateLimits": "Sem limites de taxa",
|
||||
"@metadataNoRateLimits": {
|
||||
"description": "Deezer provider description"
|
||||
},
|
||||
"metadataMayRateLimit": "Pode ter limites de taxa",
|
||||
"@metadataMayRateLimit": {
|
||||
"description": "Spotify provider description"
|
||||
},
|
||||
"logTitle": "Registros",
|
||||
"@logTitle": {
|
||||
"description": "Logs screen title"
|
||||
@@ -1378,30 +1293,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"credentialsTitle": "Credenciais do Spotify",
|
||||
"@credentialsTitle": {
|
||||
"description": "Credentials dialog title"
|
||||
},
|
||||
"credentialsDescription": "Digite a sua Client ID e Secret para usar a sua própria cota de aplicativo do Spotify.",
|
||||
"@credentialsDescription": {
|
||||
"description": "Credentials dialog explanation"
|
||||
},
|
||||
"credentialsClientId": "ID do cliente",
|
||||
"@credentialsClientId": {
|
||||
"description": "Client ID field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientIdHint": "Colar Client ID",
|
||||
"@credentialsClientIdHint": {
|
||||
"description": "Client ID placeholder"
|
||||
},
|
||||
"credentialsClientSecret": "Segredo do cliente",
|
||||
"@credentialsClientSecret": {
|
||||
"description": "Client Secret field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientSecretHint": "Colar Client Secret",
|
||||
"@credentialsClientSecretHint": {
|
||||
"description": "Client Secret placeholder"
|
||||
},
|
||||
"channelStable": "Estável",
|
||||
"@channelStable": {
|
||||
"description": "Update channel - stable releases"
|
||||
@@ -1510,10 +1401,6 @@
|
||||
"@settingsDownloadSubtitle": {
|
||||
"description": "Download settings description"
|
||||
},
|
||||
"settingsOptionsSubtitle": "Alternativa, metadados, letras, capa do álbum",
|
||||
"@settingsOptionsSubtitle": {
|
||||
"description": "Options settings description"
|
||||
},
|
||||
"settingsExtensionsSubtitle": "Gerenciar provedores de download",
|
||||
"@settingsExtensionsSubtitle": {
|
||||
"description": "Extensions settings description"
|
||||
@@ -1730,27 +1617,27 @@
|
||||
},
|
||||
"storeFilterAll": "Tudo",
|
||||
"@storeFilterAll": {
|
||||
"description": "Store filter - all extensions"
|
||||
"description": "Repo filter - all extensions"
|
||||
},
|
||||
"storeFilterMetadata": "Metadados",
|
||||
"@storeFilterMetadata": {
|
||||
"description": "Store filter - metadata providers"
|
||||
"description": "Repo filter - metadata providers"
|
||||
},
|
||||
"storeFilterDownload": "Baixar",
|
||||
"@storeFilterDownload": {
|
||||
"description": "Store filter - download providers"
|
||||
"description": "Repo filter - download providers"
|
||||
},
|
||||
"storeFilterUtility": "Utilidade",
|
||||
"@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": "Integração",
|
||||
"@storeFilterIntegration": {
|
||||
"description": "Store filter - integrations"
|
||||
"description": "Repo filter - integrations"
|
||||
},
|
||||
"storeClearFilters": "Limpar filtros",
|
||||
"@storeClearFilters": {
|
||||
@@ -1772,10 +1659,6 @@
|
||||
"@storeRepoUrlHint": {
|
||||
"description": "Hint/placeholder for the repository URL input field"
|
||||
},
|
||||
"storeRepoUrlHelper": "e.g. https://github.com/usuario/repositorio-extensao",
|
||||
"@storeRepoUrlHelper": {
|
||||
"description": "Helper text below the repository URL input field"
|
||||
},
|
||||
"storeAddRepoButton": "Adicionar repositório",
|
||||
"@storeAddRepoButton": {
|
||||
"description": "Button to submit a new repository URL"
|
||||
@@ -1808,18 +1691,6 @@
|
||||
"@storeEmptyNoResults": {
|
||||
"description": "Message when search/filter returns no results"
|
||||
},
|
||||
"extensionDefaultProvider": "Pesquisa padrão",
|
||||
"@extensionDefaultProvider": {
|
||||
"description": "Default search provider option"
|
||||
},
|
||||
"extensionDefaultProviderSubtitle": "Usar a pesquisa padrão de metadados",
|
||||
"@extensionDefaultProviderSubtitle": {
|
||||
"description": "Subtitle for default provider"
|
||||
},
|
||||
"extensionAuthor": "Autor",
|
||||
"@extensionAuthor": {
|
||||
"description": "Extension detail - author"
|
||||
},
|
||||
"extensionId": "ID",
|
||||
"@extensionId": {
|
||||
"description": "Extension detail - unique ID"
|
||||
@@ -2087,10 +1958,6 @@
|
||||
"@downloadLossyOpus128Subtitle": {
|
||||
"description": "Subtitle for Opus 128kbps lossy option"
|
||||
},
|
||||
"qualityNote": "A qualidade real depende da faixa que estiver disponível no serviço",
|
||||
"@qualityNote": {
|
||||
"description": "Note about quality availability"
|
||||
},
|
||||
"downloadAskBeforeDownload": "Perguntar qualidade antes de baixar",
|
||||
"@downloadAskBeforeDownload": {
|
||||
"description": "Setting - show quality picker"
|
||||
@@ -2143,6 +2010,14 @@
|
||||
"@appearanceAmoledDarkSubtitle": {
|
||||
"description": "Subtitle for AMOLED dark"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"queueClearAll": "Limpar Tudo",
|
||||
"@queueClearAll": {
|
||||
"description": "Button - clear all queue items"
|
||||
@@ -2175,6 +2050,27 @@
|
||||
"@settingsDownloadNetworkSubtitle": {
|
||||
"description": "Subtitle explaining network preference"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"albumFolderArtistAlbum": "Artista / Álbum",
|
||||
"@albumFolderArtistAlbum": {
|
||||
"description": "Album folder option"
|
||||
@@ -2245,10 +2141,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadedAlbumAllSelected": "Todas as faixas selecionadas",
|
||||
"@downloadedAlbumAllSelected": {
|
||||
"description": "Status - all items selected"
|
||||
},
|
||||
"downloadedAlbumTapToSelect": "Toque nas faixas para selecionar",
|
||||
"@downloadedAlbumTapToSelect": {
|
||||
"description": "Selection hint"
|
||||
@@ -2976,6 +2868,22 @@
|
||||
"@cacheLibraryCoverDesc": {
|
||||
"description": "Description of what library cover cache contains"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"cacheExploreFeed": "Explore feed cache",
|
||||
"@cacheExploreFeed": {
|
||||
"description": "Cache item title for explore home feed cache"
|
||||
@@ -3092,18 +3000,10 @@
|
||||
"@trackSaveCoverArt": {
|
||||
"description": "Menu action - save album cover art as file"
|
||||
},
|
||||
"trackSaveCoverArtSubtitle": "Save album art as .jpg file",
|
||||
"@trackSaveCoverArtSubtitle": {
|
||||
"description": "Subtitle for save cover art action"
|
||||
},
|
||||
"trackSaveLyrics": "Save Lyrics (.lrc)",
|
||||
"@trackSaveLyrics": {
|
||||
"description": "Menu action - save lyrics as .lrc file"
|
||||
},
|
||||
"trackSaveLyricsSubtitle": "Fetch and save lyrics as .lrc file",
|
||||
"@trackSaveLyricsSubtitle": {
|
||||
"description": "Subtitle for save lyrics action"
|
||||
},
|
||||
"trackSaveLyricsProgress": "Saving lyrics...",
|
||||
"@trackSaveLyricsProgress": {
|
||||
"description": "Snackbar while saving lyrics to file"
|
||||
@@ -3116,10 +3016,6 @@
|
||||
"@trackReEnrichOnlineSubtitle": {
|
||||
"description": "Subtitle for re-enrich metadata action for local items"
|
||||
},
|
||||
"trackReEnrichFieldsTitle": "Fields to update",
|
||||
"@trackReEnrichFieldsTitle": {
|
||||
"description": "Section title for field selection in re-enrich dialog"
|
||||
},
|
||||
"trackReEnrichFieldCover": "Cover Art",
|
||||
"@trackReEnrichFieldCover": {
|
||||
"description": "Checkbox label for cover art field in re-enrich"
|
||||
@@ -3203,18 +3099,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacFindingProgress": "Finding FLAC matches... ({current}/{total})",
|
||||
"@queueFlacFindingProgress": {
|
||||
"description": "Snackbar while resolving remote matches for local FLAC redownloads",
|
||||
"placeholders": {
|
||||
"current": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacNoReliableMatches": "No reliable online matches found for the selection",
|
||||
"@queueFlacNoReliableMatches": {
|
||||
"description": "Snackbar when no safe FLAC redownload matches were found"
|
||||
@@ -3244,10 +3128,6 @@
|
||||
"@trackConvertFormat": {
|
||||
"description": "Menu item - convert audio format"
|
||||
},
|
||||
"trackConvertFormatSubtitle": "Convert to AAC/M4A, MP3, Opus, ALAC, or FLAC",
|
||||
"@trackConvertFormatSubtitle": {
|
||||
"description": "Subtitle for convert format menu item"
|
||||
},
|
||||
"trackConvertTitle": "Convert Audio",
|
||||
"@trackConvertTitle": {
|
||||
"description": "Title of convert bottom sheet"
|
||||
@@ -3260,6 +3140,14 @@
|
||||
"@trackConvertBitrate": {
|
||||
"description": "Label for bitrate selection"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"trackConvertConfirmTitle": "Confirm Conversion",
|
||||
"@trackConvertConfirmTitle": {
|
||||
"description": "Confirmation dialog title"
|
||||
@@ -3291,6 +3179,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"trackConvertLosslessHint": "Lossless conversion — no quality loss",
|
||||
"@trackConvertLosslessHint": {
|
||||
"description": "Hint shown when converting between lossless formats"
|
||||
@@ -3316,10 +3216,6 @@
|
||||
"@cueSplitTitle": {
|
||||
"description": "Title for CUE split bottom sheet"
|
||||
},
|
||||
"cueSplitSubtitle": "Split CUE+FLAC into individual tracks",
|
||||
"@cueSplitSubtitle": {
|
||||
"description": "Subtitle for CUE split menu item"
|
||||
},
|
||||
"cueSplitAlbum": "Album: {album}",
|
||||
"@cueSplitAlbum": {
|
||||
"description": "Album name in CUE split sheet",
|
||||
@@ -3416,10 +3312,6 @@
|
||||
"@collectionFavoriteArtists": {
|
||||
"description": "Custom folder for favorite artists"
|
||||
},
|
||||
"collectionPlaylists": "Playlists",
|
||||
"@collectionPlaylists": {
|
||||
"description": "Custom user playlists folder"
|
||||
},
|
||||
"collectionPlaylist": "Playlist",
|
||||
"@collectionPlaylist": {
|
||||
"description": "Single playlist label"
|
||||
@@ -3436,10 +3328,6 @@
|
||||
"@collectionNoPlaylistsYet": {
|
||||
"description": "Empty state title when user has no playlists"
|
||||
},
|
||||
"collectionNoPlaylistsSubtitle": "Create a playlist to start categorizing tracks",
|
||||
"@collectionNoPlaylistsSubtitle": {
|
||||
"description": "Empty state subtitle when user has no playlists"
|
||||
},
|
||||
"collectionPlaylistTracks": "{count, plural, =1{1 track} other{{count} tracks}}",
|
||||
"@collectionPlaylistTracks": {
|
||||
"description": "Track count label for custom playlists",
|
||||
@@ -3476,10 +3364,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistCreated": "Playlist created",
|
||||
"@collectionPlaylistCreated": {
|
||||
"description": "Snackbar after creating playlist"
|
||||
},
|
||||
"collectionPlaylistNameHint": "Playlist name",
|
||||
"@collectionPlaylistNameHint": {
|
||||
"description": "Hint text for playlist name input"
|
||||
@@ -3496,19 +3380,6 @@
|
||||
"@collectionDeletePlaylist": {
|
||||
"description": "Action to delete playlist"
|
||||
},
|
||||
"collectionDeletePlaylistMessage": "Delete \"{playlistName}\" and all tracks inside it?",
|
||||
"@collectionDeletePlaylistMessage": {
|
||||
"description": "Confirmation message for deleting playlist",
|
||||
"placeholders": {
|
||||
"playlistName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistDeleted": "Playlist deleted",
|
||||
"@collectionPlaylistDeleted": {
|
||||
"description": "Snackbar after deleting playlist"
|
||||
},
|
||||
"collectionPlaylistRenamed": "Playlist renamed",
|
||||
"@collectionPlaylistRenamed": {
|
||||
"description": "Snackbar after renaming playlist"
|
||||
@@ -3537,11 +3408,11 @@
|
||||
"@collectionFavoriteArtistsEmptySubtitle": {
|
||||
"description": "Favorite artists empty state subtitle"
|
||||
},
|
||||
"collectionPlaylistEmptyTitle": "Playlist is empty",
|
||||
"collectionPlaylistEmptyTitle": "A lista de reprodução está vazia",
|
||||
"@collectionPlaylistEmptyTitle": {
|
||||
"description": "Playlist empty state title"
|
||||
},
|
||||
"collectionPlaylistEmptySubtitle": "Long-press + on any track to add it here",
|
||||
"collectionPlaylistEmptySubtitle": "",
|
||||
"@collectionPlaylistEmptySubtitle": {
|
||||
"description": "Playlist empty state subtitle"
|
||||
},
|
||||
@@ -3553,15 +3424,6 @@
|
||||
"@collectionRemoveFromFolder": {
|
||||
"description": "Tooltip for removing track from wishlist/loved folder"
|
||||
},
|
||||
"collectionRemoved": "\"{trackName}\" removed",
|
||||
"@collectionRemoved": {
|
||||
"description": "Snackbar after removing a track from a collection",
|
||||
"placeholders": {
|
||||
"trackName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionAddedToLoved": "\"{trackName}\" added to Loved",
|
||||
"@collectionAddedToLoved": {
|
||||
"description": "Snackbar after adding track to loved folder",
|
||||
@@ -3705,15 +3567,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionBatchConvertProgress": "Converting {current} of {total}...",
|
||||
"@selectionBatchConvertProgress": {
|
||||
"description": "Snackbar during batch conversion progress",
|
||||
"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": {
|
||||
"current": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
"format": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3879,10 +3741,6 @@
|
||||
"@backupImportButton": {
|
||||
"description": "Button to pick a backup file to restore"
|
||||
},
|
||||
"backupCreating": "Creating backup...",
|
||||
"@backupCreating": {
|
||||
"description": "Progress text while a backup is being created"
|
||||
},
|
||||
"backupCreated": "Backup created",
|
||||
"@backupCreated": {
|
||||
"description": "Snackbar after a backup file is created"
|
||||
@@ -3891,10 +3749,6 @@
|
||||
"@backupCreateFailed": {
|
||||
"description": "Snackbar when backup creation fails"
|
||||
},
|
||||
"backupEmpty": "There is nothing to back up yet",
|
||||
"@backupEmpty": {
|
||||
"description": "Snackbar when there is no data to back up"
|
||||
},
|
||||
"backupRestoreConfirmTitle": "Restore this backup?",
|
||||
"@backupRestoreConfirmTitle": {
|
||||
"description": "Confirmation dialog title before restoring a backup"
|
||||
@@ -3907,10 +3761,6 @@
|
||||
"@backupRestoreConfirmButton": {
|
||||
"description": "Confirm button to proceed with restore"
|
||||
},
|
||||
"backupRestoring": "Restoring backup...",
|
||||
"@backupRestoring": {
|
||||
"description": "Progress text while restoring a backup"
|
||||
},
|
||||
"backupRestored": "Backup restored successfully",
|
||||
"@backupRestored": {
|
||||
"description": "Snackbar after a successful restore"
|
||||
@@ -3997,7 +3847,7 @@
|
||||
"@backupIncludeSecretsDescription": {
|
||||
"description": "Explanation for the include-credentials toggle"
|
||||
},
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the store.",
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the repo.",
|
||||
"@backupExtensionsRestoreFailed": {
|
||||
"description": "Snackbar/hint when some extensions failed to reinstall during restore",
|
||||
"placeholders": {
|
||||
@@ -4102,14 +3952,34 @@
|
||||
"@storageModeAppFolderSubtitle": {
|
||||
"description": "Subtitle for app folder storage mode"
|
||||
},
|
||||
"storageModeSaf": "Custom Folder (SAF)",
|
||||
"storageModeSaf": "",
|
||||
"@storageModeSaf": {
|
||||
"description": "Storage mode option - Storage Access Framework"
|
||||
},
|
||||
"storageModeSafSubtitle": "Pick any folder, including SD card",
|
||||
"storageModeSafSubtitle": "Escolha qualquer pasta, incluindo o cartão SD",
|
||||
"@storageModeSafSubtitle": {
|
||||
"description": "Subtitle for SAF storage mode"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFilenameDescription": "Use {artist}, {title}, {album}, {track}, {year}, {date}, {disc} as placeholders.",
|
||||
"@downloadFilenameDescription": {
|
||||
"description": "Description shown in filename format editor"
|
||||
@@ -4178,10 +4048,6 @@
|
||||
"@downloadSelectServiceToEnable": {
|
||||
"description": "Subtitle when quality picker is disabled due to extension service"
|
||||
},
|
||||
"downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality",
|
||||
"@downloadSelectTidalQobuz": {
|
||||
"description": "Legacy info shown when a provider does not expose quality options"
|
||||
},
|
||||
"downloadEmbedLyricsDisabled": "Enable metadata embedding first",
|
||||
"@downloadEmbedLyricsDisabled": {
|
||||
"description": "Subtitle when lyrics embedding is blocked by metadata toggle"
|
||||
@@ -4430,10 +4296,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueDownloadedHeader": "Downloaded",
|
||||
"@queueDownloadedHeader": {
|
||||
"description": "Header label for downloaded items section in library"
|
||||
},
|
||||
"queueFilteringIndicator": "Filtering...",
|
||||
"@queueFilteringIndicator": {
|
||||
"description": "Shown while filter results are being computed"
|
||||
@@ -4588,15 +4450,6 @@
|
||||
"@audioAnalysisRescanning": {
|
||||
"description": "Loading text while audio is being re-analyzed after an explicit refresh"
|
||||
},
|
||||
"extensionsSearchWith": "Search with {providerName}",
|
||||
"@extensionsSearchWith": {
|
||||
"description": "Extensions page - subtitle for default metadata search provider option",
|
||||
"placeholders": {
|
||||
"providerName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsHomeFeedProvider": "Home Feed Provider",
|
||||
"@extensionsHomeFeedProvider": {
|
||||
"description": "Extensions page - label for home feed provider selector"
|
||||
@@ -4634,14 +4487,6 @@
|
||||
"@extensionsNoHomeFeedExtensions": {
|
||||
"description": "Extensions page - shown when no installed extension has home feed"
|
||||
},
|
||||
"sortAlphaAsc": "A-Z",
|
||||
"@sortAlphaAsc": {
|
||||
"description": "Sort option - alphabetical ascending"
|
||||
},
|
||||
"sortAlphaDesc": "Z-A",
|
||||
"@sortAlphaDesc": {
|
||||
"description": "Sort option - alphabetical descending"
|
||||
},
|
||||
"cancelDownloadTitle": "Cancel download?",
|
||||
"@cancelDownloadTitle": {
|
||||
"description": "Dialog title when confirming cancellation of an active download"
|
||||
@@ -4676,34 +4521,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorLoadAlbum": "Failed to load album",
|
||||
"@errorLoadAlbum": {
|
||||
"description": "Error state shown when album fails to load"
|
||||
},
|
||||
"errorLoadPlaylist": "Failed to load playlist",
|
||||
"@errorLoadPlaylist": {
|
||||
"description": "Error state shown when playlist fails to load"
|
||||
},
|
||||
"errorLoadArtist": "Failed to load artist",
|
||||
"@errorLoadArtist": {
|
||||
"description": "Error state shown when artist fails to load"
|
||||
},
|
||||
"notifChannelDownloadName": "Download Progress",
|
||||
"@notifChannelDownloadName": {
|
||||
"description": "Android notification channel name for download progress"
|
||||
},
|
||||
"notifChannelDownloadDesc": "Shows download progress for tracks",
|
||||
"@notifChannelDownloadDesc": {
|
||||
"description": "Android notification channel description for download progress"
|
||||
},
|
||||
"notifChannelLibraryScanName": "Library Scan",
|
||||
"@notifChannelLibraryScanName": {
|
||||
"description": "Android notification channel name for library scan"
|
||||
},
|
||||
"notifChannelLibraryScanDesc": "Shows local library scan progress",
|
||||
"@notifChannelLibraryScanDesc": {
|
||||
"description": "Android notification channel description for library scan"
|
||||
},
|
||||
"notifDownloadingTrack": "Downloading {trackName}",
|
||||
"@notifDownloadingTrack": {
|
||||
"description": "Notification title while downloading a track",
|
||||
@@ -4770,6 +4587,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"notifAllDownloadsComplete": "All Downloads Complete",
|
||||
"@notifAllDownloadsComplete": {
|
||||
"description": "Notification title when all downloads finish successfully"
|
||||
@@ -4874,11 +4699,11 @@
|
||||
"@notifLibraryScanFailed": {
|
||||
"description": "Notification title when library scan fails"
|
||||
},
|
||||
"notifLibraryScanCancelled": "Library scan cancelled",
|
||||
"notifLibraryScanCancelled": "Escaneamento de biblioteca cancelado",
|
||||
"@notifLibraryScanCancelled": {
|
||||
"description": "Notification title when library scan is cancelled by the user"
|
||||
},
|
||||
"notifLibraryScanStopped": "Scan stopped before completion.",
|
||||
"notifLibraryScanStopped": "",
|
||||
"@notifLibraryScanStopped": {
|
||||
"description": "Notification body when library scan is cancelled"
|
||||
},
|
||||
@@ -4956,14 +4781,6 @@
|
||||
"@actionPaste": {
|
||||
"description": "Generic action - paste from clipboard"
|
||||
},
|
||||
"searchTracksHint": "Search tracks...",
|
||||
"@searchTracksHint": {
|
||||
"description": "Placeholder for the search screen input"
|
||||
},
|
||||
"searchTracksEmptyPrompt": "Search for tracks",
|
||||
"@searchTracksEmptyPrompt": {
|
||||
"description": "Empty-state prompt on the search screen"
|
||||
},
|
||||
"tutorialSearchHint": "Paste or search...",
|
||||
"@tutorialSearchHint": {
|
||||
"description": "Placeholder shown in the tutorial search demo"
|
||||
@@ -4992,14 +4809,6 @@
|
||||
"@optionsEmbedMetadataSubtitleOff": {
|
||||
"description": "Subtitle when metadata embedding is disabled"
|
||||
},
|
||||
"optionsMaxQualityCoverSubtitleDisabled": "Disabled when metadata embedding is off",
|
||||
"@optionsMaxQualityCoverSubtitleDisabled": {
|
||||
"description": "Subtitle for max quality cover when metadata embedding is disabled"
|
||||
},
|
||||
"downloadFilenameHintExample": "{artist} - {title}",
|
||||
"@downloadFilenameHintExample": {
|
||||
"description": "Example placeholder for the download filename format input"
|
||||
},
|
||||
"trackCoverNoEmbeddedArt": "No embedded album art found",
|
||||
"@trackCoverNoEmbeddedArt": {
|
||||
"description": "Message shown when a track file has no embedded cover art"
|
||||
@@ -5239,14 +5048,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsDefaultSearchTabAlbums": "Albums",
|
||||
"@optionsDefaultSearchTabAlbums": {
|
||||
"description": "Default search tab option - Albums tab"
|
||||
},
|
||||
"optionsDefaultSearchTabTracks": "Tracks",
|
||||
"@optionsDefaultSearchTabTracks": {
|
||||
"description": "Default search tab option - Tracks tab"
|
||||
},
|
||||
"settingsFiles": "Files & Folders",
|
||||
"@settingsFiles": {
|
||||
"description": "Settings menu item - file and folder settings"
|
||||
@@ -5307,10 +5108,26 @@
|
||||
"@downloadDeduplicationEnabled": {
|
||||
"description": "Subtitle when deduplication is on"
|
||||
},
|
||||
"downloadDeduplicationWithQualityVariants": "Existing files at the selected quality will be skipped",
|
||||
"@downloadDeduplicationWithQualityVariants": {
|
||||
"description": "Deduplication subtitle when separate quality versions are allowed"
|
||||
},
|
||||
"downloadDeduplicationDisabled": "All tracks will be downloaded regardless of history",
|
||||
"@downloadDeduplicationDisabled": {
|
||||
"description": "Subtitle when deduplication is off"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFallbackExtensions": "Fallback Extensions",
|
||||
"@downloadFallbackExtensions": {
|
||||
"description": "Settings item for configuring fallback extension providers"
|
||||
@@ -5451,6 +5268,11 @@
|
||||
}
|
||||
},
|
||||
"queueDownloadStarting": "Starting...",
|
||||
"queueCheckingDownloadSession": "Checking download session...",
|
||||
"queueResolvingDownloadMetadata": "Resolving track metadata...",
|
||||
"queueResolvingDownloadStream": "Preparing audio stream...",
|
||||
"queueWaitingForVerification": "Waiting for verification...",
|
||||
"queueResumingAfterVerification": "Resuming after verification...",
|
||||
"@queueDownloadStarting": {
|
||||
"description": "Queue status before download progress is available"
|
||||
},
|
||||
@@ -5539,7 +5361,7 @@
|
||||
"@downloadNativeWorker": {
|
||||
"description": "Setting title for Android native download worker"
|
||||
},
|
||||
"downloadNativeWorkerSubtitle": "Beta Android service worker for extension downloads",
|
||||
"downloadNativeWorkerSubtitle": "Android background service for extension downloads",
|
||||
"@downloadNativeWorkerSubtitle": {
|
||||
"description": "Setting subtitle for Android native download worker"
|
||||
},
|
||||
@@ -5699,10 +5521,6 @@
|
||||
"@errorInvalidFolderSelected": {
|
||||
"description": "Error when the selected folder is invalid"
|
||||
},
|
||||
"errorCouldNotKeepFolderAccess": "Could not keep access to the selected folder",
|
||||
"@errorCouldNotKeepFolderAccess": {
|
||||
"description": "Error when persistent folder access cannot be saved"
|
||||
},
|
||||
"storeAnyVersion": "Any",
|
||||
"@storeAnyVersion": {
|
||||
"description": "Store detail value when any app version is accepted"
|
||||
|
||||
+146
-328
@@ -19,7 +19,7 @@
|
||||
},
|
||||
"navStore": "Репозиторий",
|
||||
"@navStore": {
|
||||
"description": "Bottom navigation - Extension store tab"
|
||||
"description": "Bottom navigation - Extension repo tab"
|
||||
},
|
||||
"homeTitle": "Главная",
|
||||
"@homeTitle": {
|
||||
@@ -73,10 +73,6 @@
|
||||
"@settingsAppearance": {
|
||||
"description": "Settings section - visual customization"
|
||||
},
|
||||
"settingsOptions": "Опции",
|
||||
"@settingsOptions": {
|
||||
"description": "Settings section - app options"
|
||||
},
|
||||
"settingsExtensions": "Расширения",
|
||||
"@settingsExtensions": {
|
||||
"description": "Settings section - extension management"
|
||||
@@ -145,10 +141,6 @@
|
||||
"@appearanceHistoryViewGrid": {
|
||||
"description": "Grid layout option"
|
||||
},
|
||||
"optionsTitle": "Опции",
|
||||
"@optionsTitle": {
|
||||
"description": "Options settings page title"
|
||||
},
|
||||
"optionsPrimaryProvider": "Основной провайдер",
|
||||
"@optionsPrimaryProvider": {
|
||||
"description": "Main search provider setting"
|
||||
@@ -174,10 +166,6 @@
|
||||
"@optionsDefaultSearchTabSubtitle": {
|
||||
"description": "Subtitle for the preferred default search tab setting"
|
||||
},
|
||||
"optionsSwitchBack": "Choose the default search provider to switch back from an extension",
|
||||
"@optionsSwitchBack": {
|
||||
"description": "Hint to switch back from extension search"
|
||||
},
|
||||
"optionsAutoFallback": "Автоматический переход",
|
||||
"@optionsAutoFallback": {
|
||||
"description": "Auto-retry with other services"
|
||||
@@ -186,18 +174,6 @@
|
||||
"@optionsAutoFallbackSubtitle": {
|
||||
"description": "Subtitle for auto fallback"
|
||||
},
|
||||
"optionsUseExtensionProviders": "Использовать провайдера расширений",
|
||||
"@optionsUseExtensionProviders": {
|
||||
"description": "Legacy setting label for extension download providers"
|
||||
},
|
||||
"optionsUseExtensionProvidersOn": "Extension providers are enabled",
|
||||
"@optionsUseExtensionProvidersOn": {
|
||||
"description": "Status when extension providers enabled"
|
||||
},
|
||||
"optionsUseExtensionProvidersOff": "Extension providers are required",
|
||||
"@optionsUseExtensionProvidersOff": {
|
||||
"description": "Legacy status when extension providers would be disabled"
|
||||
},
|
||||
"optionsEmbedLyrics": "Вписать текст песни",
|
||||
"@optionsEmbedLyrics": {
|
||||
"description": "Embed lyrics in audio files"
|
||||
@@ -230,10 +206,6 @@
|
||||
"@trackReplayGain": {
|
||||
"description": "Three-dot menu option to scan loudness and write ReplayGain tags"
|
||||
},
|
||||
"trackReplayGainSubtitle": "Analyze loudness and write ReplayGain tags",
|
||||
"@trackReplayGainSubtitle": {
|
||||
"description": "Subtitle for the rescan ReplayGain menu option"
|
||||
},
|
||||
"trackReplayGainScanning": "Analyzing loudness...",
|
||||
"@trackReplayGainScanning": {
|
||||
"description": "Snackbar/progress message while scanning ReplayGain for a single track"
|
||||
@@ -310,11 +282,11 @@
|
||||
},
|
||||
"optionsExtensionStore": "Репозиторий расширения",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide store tab"
|
||||
"description": "Show/hide repo tab"
|
||||
},
|
||||
"optionsExtensionStoreSubtitle": "Show Repo tab in navigation",
|
||||
"@optionsExtensionStoreSubtitle": {
|
||||
"description": "Subtitle for extension store toggle"
|
||||
"description": "Subtitle for extension repo toggle"
|
||||
},
|
||||
"optionsCheckUpdates": "Проверить обновления",
|
||||
"@optionsCheckUpdates": {
|
||||
@@ -360,31 +332,6 @@
|
||||
"@optionsDetailedLoggingOff": {
|
||||
"description": "Status when logging disabled"
|
||||
},
|
||||
"optionsSpotifyCredentials": "Учётные данные Spotify",
|
||||
"@optionsSpotifyCredentials": {
|
||||
"description": "Spotify API credentials setting"
|
||||
},
|
||||
"optionsSpotifyCredentialsConfigured": "Client ID: {clientId}...",
|
||||
"@optionsSpotifyCredentialsConfigured": {
|
||||
"description": "Shows configured client ID preview",
|
||||
"placeholders": {
|
||||
"clientId": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsSpotifyCredentialsRequired": "Необходимо - нажмите для настройки",
|
||||
"@optionsSpotifyCredentialsRequired": {
|
||||
"description": "Prompt to set up credentials"
|
||||
},
|
||||
"optionsSpotifyWarning": "Spotify требует ваши собственные учетные данные API. Получите их бесплатно на сайте developer.spotify.com",
|
||||
"@optionsSpotifyWarning": {
|
||||
"description": "Info about Spotify API requirement"
|
||||
},
|
||||
"optionsSpotifyDeprecationWarning": "Поиск Spotify устареет 3 марта 2026 года из-за изменений Spotify API. Пожалуйста, перейдите на Deezer.",
|
||||
"@optionsSpotifyDeprecationWarning": {
|
||||
"description": "Warning about Spotify API deprecation"
|
||||
},
|
||||
"extensionsTitle": "Расширения",
|
||||
"@extensionsTitle": {
|
||||
"description": "Extensions page title"
|
||||
@@ -402,26 +349,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsAuthor": "от {author}",
|
||||
"@extensionsAuthor": {
|
||||
"description": "Extension author credit",
|
||||
"placeholders": {
|
||||
"author": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsUninstall": "Удалить",
|
||||
"@extensionsUninstall": {
|
||||
"description": "Uninstall extension button"
|
||||
},
|
||||
"storeTitle": "Репозиторий расширения",
|
||||
"@storeTitle": {
|
||||
"description": "Store screen title"
|
||||
"description": "Repo screen title"
|
||||
},
|
||||
"storeSearch": "Поиск расширений...",
|
||||
"@storeSearch": {
|
||||
"description": "Store search placeholder"
|
||||
"description": "Repo search placeholder"
|
||||
},
|
||||
"storeInstall": "Установить",
|
||||
"@storeInstall": {
|
||||
@@ -912,14 +850,6 @@
|
||||
"@snackbarHistoryCleared": {
|
||||
"description": "Snackbar - history deleted"
|
||||
},
|
||||
"snackbarCredentialsSaved": "Учётные данные сохранены",
|
||||
"@snackbarCredentialsSaved": {
|
||||
"description": "Snackbar - Spotify credentials saved"
|
||||
},
|
||||
"snackbarCredentialsCleared": "Учётные данные очищены",
|
||||
"@snackbarCredentialsCleared": {
|
||||
"description": "Snackbar - Spotify credentials removed"
|
||||
},
|
||||
"snackbarDeletedTracks": "Deleted {count} {count, plural, =1{track} other{tracks}}",
|
||||
"@snackbarDeletedTracks": {
|
||||
"description": "Snackbar - tracks deleted",
|
||||
@@ -938,10 +868,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"snackbarFillAllFields": "Пожалуйста, заполните все поля",
|
||||
"@snackbarFillAllFields": {
|
||||
"description": "Snackbar - validation error"
|
||||
},
|
||||
"snackbarViewQueue": "Просмотр очереди",
|
||||
"@snackbarViewQueue": {
|
||||
"description": "Snackbar action - view download queue"
|
||||
@@ -1055,14 +981,6 @@
|
||||
"@actionDeselect": {
|
||||
"description": "Action button - deselect all"
|
||||
},
|
||||
"actionRemoveCredentials": "Удалить учётные данные",
|
||||
"@actionRemoveCredentials": {
|
||||
"description": "Action button - delete Spotify credentials"
|
||||
},
|
||||
"actionSaveCredentials": "Сохранить учётные данные",
|
||||
"@actionSaveCredentials": {
|
||||
"description": "Action button - save Spotify credentials"
|
||||
},
|
||||
"selectionSelected": "{count} выбрано",
|
||||
"@selectionSelected": {
|
||||
"description": "Selection count indicator",
|
||||
@@ -1236,6 +1154,19 @@
|
||||
"@updateNewVersionReady": {
|
||||
"description": "Update subtitle"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"updateCurrent": "Текущая",
|
||||
"@updateCurrent": {
|
||||
"description": "Label for current version"
|
||||
@@ -1272,10 +1203,6 @@
|
||||
"@providerPriorityInfo": {
|
||||
"description": "Info tip about fallback behavior"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsTitle": "Резервное расширение",
|
||||
"@providerPriorityFallbackExtensionsTitle": {
|
||||
"description": "Section title for choosing which download extensions can be used as fallback providers"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsDescription": "Choose which installed download extensions can be used during automatic fallback.",
|
||||
"@providerPriorityFallbackExtensionsDescription": {
|
||||
"description": "Section description for extension fallback selection"
|
||||
@@ -1284,10 +1211,6 @@
|
||||
"@providerPriorityFallbackExtensionsHint": {
|
||||
"description": "Hint below the extension fallback selection list"
|
||||
},
|
||||
"providerBuiltIn": "Legacy",
|
||||
"@providerBuiltIn": {
|
||||
"description": "Legacy label retained for old generated localization compatibility"
|
||||
},
|
||||
"providerExtension": "Расширение",
|
||||
"@providerExtension": {
|
||||
"description": "Label for extension-provided providers"
|
||||
@@ -1304,14 +1227,6 @@
|
||||
"@metadataProviderPriorityInfo": {
|
||||
"description": "Info tip about rate limits"
|
||||
},
|
||||
"metadataNoRateLimits": "Без ограничений по скорости",
|
||||
"@metadataNoRateLimits": {
|
||||
"description": "Deezer provider description"
|
||||
},
|
||||
"metadataMayRateLimit": "Есть ограничения по скорости",
|
||||
"@metadataMayRateLimit": {
|
||||
"description": "Spotify provider description"
|
||||
},
|
||||
"logTitle": "Логи",
|
||||
"@logTitle": {
|
||||
"description": "Logs screen title"
|
||||
@@ -1378,30 +1293,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"credentialsTitle": "Учётные данные Spotify",
|
||||
"@credentialsTitle": {
|
||||
"description": "Credentials dialog title"
|
||||
},
|
||||
"credentialsDescription": "Введите свой Client ID и Secret, чтобы использовать собственные квоты в Spotify.",
|
||||
"@credentialsDescription": {
|
||||
"description": "Credentials dialog explanation"
|
||||
},
|
||||
"credentialsClientId": "Client ID",
|
||||
"@credentialsClientId": {
|
||||
"description": "Client ID field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientIdHint": "Вставьте Client ID",
|
||||
"@credentialsClientIdHint": {
|
||||
"description": "Client ID placeholder"
|
||||
},
|
||||
"credentialsClientSecret": "Секретный код клиента",
|
||||
"@credentialsClientSecret": {
|
||||
"description": "Client Secret field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientSecretHint": "Вставьте Client Secret",
|
||||
"@credentialsClientSecretHint": {
|
||||
"description": "Client Secret placeholder"
|
||||
},
|
||||
"channelStable": "Стабильный",
|
||||
"@channelStable": {
|
||||
"description": "Update channel - stable releases"
|
||||
@@ -1510,10 +1401,6 @@
|
||||
"@settingsDownloadSubtitle": {
|
||||
"description": "Download settings description"
|
||||
},
|
||||
"settingsOptionsSubtitle": "Fallback, metadata, lyrics, cover art",
|
||||
"@settingsOptionsSubtitle": {
|
||||
"description": "Options settings description"
|
||||
},
|
||||
"settingsExtensionsSubtitle": "Управление провайдерами скачивания",
|
||||
"@settingsExtensionsSubtitle": {
|
||||
"description": "Extensions settings description"
|
||||
@@ -1730,27 +1617,27 @@
|
||||
},
|
||||
"storeFilterAll": "Все",
|
||||
"@storeFilterAll": {
|
||||
"description": "Store filter - all extensions"
|
||||
"description": "Repo filter - all extensions"
|
||||
},
|
||||
"storeFilterMetadata": "Метаданные",
|
||||
"@storeFilterMetadata": {
|
||||
"description": "Store filter - metadata providers"
|
||||
"description": "Repo filter - metadata providers"
|
||||
},
|
||||
"storeFilterDownload": "Скачивание",
|
||||
"@storeFilterDownload": {
|
||||
"description": "Store filter - download providers"
|
||||
"description": "Repo filter - download providers"
|
||||
},
|
||||
"storeFilterUtility": "Утилиты",
|
||||
"@storeFilterUtility": {
|
||||
"description": "Store filter - utility extensions"
|
||||
"description": "Repo filter - utility extensions"
|
||||
},
|
||||
"storeFilterLyrics": "Тексты песен",
|
||||
"@storeFilterLyrics": {
|
||||
"description": "Store filter - lyrics providers"
|
||||
"description": "Repo filter - lyrics providers"
|
||||
},
|
||||
"storeFilterIntegration": "Интеграция",
|
||||
"@storeFilterIntegration": {
|
||||
"description": "Store filter - integrations"
|
||||
"description": "Repo filter - integrations"
|
||||
},
|
||||
"storeClearFilters": "Очистить фильтры",
|
||||
"@storeClearFilters": {
|
||||
@@ -1772,10 +1659,6 @@
|
||||
"@storeRepoUrlHint": {
|
||||
"description": "Hint/placeholder for the repository URL input field"
|
||||
},
|
||||
"storeRepoUrlHelper": "например, https://github.com/user/extensions-repo",
|
||||
"@storeRepoUrlHelper": {
|
||||
"description": "Helper text below the repository URL input field"
|
||||
},
|
||||
"storeAddRepoButton": "Добавить репозиторий",
|
||||
"@storeAddRepoButton": {
|
||||
"description": "Button to submit a new repository URL"
|
||||
@@ -1808,18 +1691,6 @@
|
||||
"@storeEmptyNoResults": {
|
||||
"description": "Message when search/filter returns no results"
|
||||
},
|
||||
"extensionDefaultProvider": "Default Search",
|
||||
"@extensionDefaultProvider": {
|
||||
"description": "Default search provider option"
|
||||
},
|
||||
"extensionDefaultProviderSubtitle": "Use the default metadata search",
|
||||
"@extensionDefaultProviderSubtitle": {
|
||||
"description": "Subtitle for default provider"
|
||||
},
|
||||
"extensionAuthor": "Автор",
|
||||
"@extensionAuthor": {
|
||||
"description": "Extension detail - author"
|
||||
},
|
||||
"extensionId": "ID",
|
||||
"@extensionId": {
|
||||
"description": "Extension detail - unique ID"
|
||||
@@ -2087,10 +1958,6 @@
|
||||
"@downloadLossyOpus128Subtitle": {
|
||||
"description": "Subtitle for Opus 128kbps lossy option"
|
||||
},
|
||||
"qualityNote": "Фактическое качество зависит от доступности треков в сервисе",
|
||||
"@qualityNote": {
|
||||
"description": "Note about quality availability"
|
||||
},
|
||||
"downloadAskBeforeDownload": "Спрашивать перед скачиванием",
|
||||
"@downloadAskBeforeDownload": {
|
||||
"description": "Setting - show quality picker"
|
||||
@@ -2143,6 +2010,14 @@
|
||||
"@appearanceAmoledDarkSubtitle": {
|
||||
"description": "Subtitle for AMOLED dark"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"queueClearAll": "Очистить всё",
|
||||
"@queueClearAll": {
|
||||
"description": "Button - clear all queue items"
|
||||
@@ -2175,6 +2050,27 @@
|
||||
"@settingsDownloadNetworkSubtitle": {
|
||||
"description": "Subtitle explaining network preference"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"albumFolderArtistAlbum": "Исполнитель / Альбом",
|
||||
"@albumFolderArtistAlbum": {
|
||||
"description": "Album folder option"
|
||||
@@ -2245,10 +2141,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadedAlbumAllSelected": "Все треки выбраны",
|
||||
"@downloadedAlbumAllSelected": {
|
||||
"description": "Status - all items selected"
|
||||
},
|
||||
"downloadedAlbumTapToSelect": "Нажмите на треки для выбора",
|
||||
"@downloadedAlbumTapToSelect": {
|
||||
"description": "Selection hint"
|
||||
@@ -2976,6 +2868,22 @@
|
||||
"@cacheLibraryCoverDesc": {
|
||||
"description": "Description of what library cover cache contains"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"cacheExploreFeed": "Просмотреть кэш ленты",
|
||||
"@cacheExploreFeed": {
|
||||
"description": "Cache item title for explore home feed cache"
|
||||
@@ -3092,18 +3000,10 @@
|
||||
"@trackSaveCoverArt": {
|
||||
"description": "Menu action - save album cover art as file"
|
||||
},
|
||||
"trackSaveCoverArtSubtitle": "Сохранить обложку как файл .jpg",
|
||||
"@trackSaveCoverArtSubtitle": {
|
||||
"description": "Subtitle for save cover art action"
|
||||
},
|
||||
"trackSaveLyrics": "Сохранить текст (.lrc)",
|
||||
"@trackSaveLyrics": {
|
||||
"description": "Menu action - save lyrics as .lrc file"
|
||||
},
|
||||
"trackSaveLyricsSubtitle": "Получить и сохранить текст песни в формате .lrc",
|
||||
"@trackSaveLyricsSubtitle": {
|
||||
"description": "Subtitle for save lyrics action"
|
||||
},
|
||||
"trackSaveLyricsProgress": "Сохранение текста...",
|
||||
"@trackSaveLyricsProgress": {
|
||||
"description": "Snackbar while saving lyrics to file"
|
||||
@@ -3116,10 +3016,6 @@
|
||||
"@trackReEnrichOnlineSubtitle": {
|
||||
"description": "Subtitle for re-enrich metadata action for local items"
|
||||
},
|
||||
"trackReEnrichFieldsTitle": "Поля для обновления",
|
||||
"@trackReEnrichFieldsTitle": {
|
||||
"description": "Section title for field selection in re-enrich dialog"
|
||||
},
|
||||
"trackReEnrichFieldCover": "Обложка",
|
||||
"@trackReEnrichFieldCover": {
|
||||
"description": "Checkbox label for cover art field in re-enrich"
|
||||
@@ -3203,18 +3099,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacFindingProgress": "Поиск совпадений FLAC... ({current}/{total})",
|
||||
"@queueFlacFindingProgress": {
|
||||
"description": "Snackbar while resolving remote matches for local FLAC redownloads",
|
||||
"placeholders": {
|
||||
"current": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacNoReliableMatches": "No reliable online matches found for the selection",
|
||||
"@queueFlacNoReliableMatches": {
|
||||
"description": "Snackbar when no safe FLAC redownload matches were found"
|
||||
@@ -3244,10 +3128,6 @@
|
||||
"@trackConvertFormat": {
|
||||
"description": "Menu item - convert audio format"
|
||||
},
|
||||
"trackConvertFormatSubtitle": "Convert to AAC/M4A, MP3, Opus, ALAC, or FLAC",
|
||||
"@trackConvertFormatSubtitle": {
|
||||
"description": "Subtitle for convert format menu item"
|
||||
},
|
||||
"trackConvertTitle": "Конвертировать аудио",
|
||||
"@trackConvertTitle": {
|
||||
"description": "Title of convert bottom sheet"
|
||||
@@ -3260,6 +3140,14 @@
|
||||
"@trackConvertBitrate": {
|
||||
"description": "Label for bitrate selection"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"trackConvertConfirmTitle": "Подтвердить конвертацию",
|
||||
"@trackConvertConfirmTitle": {
|
||||
"description": "Confirmation dialog title"
|
||||
@@ -3291,6 +3179,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"trackConvertLosslessHint": "Конвертация без потери качества",
|
||||
"@trackConvertLosslessHint": {
|
||||
"description": "Hint shown when converting between lossless formats"
|
||||
@@ -3316,10 +3216,6 @@
|
||||
"@cueSplitTitle": {
|
||||
"description": "Title for CUE split bottom sheet"
|
||||
},
|
||||
"cueSplitSubtitle": "Разделить файл CUE+FLAC на отдельные треки",
|
||||
"@cueSplitSubtitle": {
|
||||
"description": "Subtitle for CUE split menu item"
|
||||
},
|
||||
"cueSplitAlbum": "Альбом: {album}",
|
||||
"@cueSplitAlbum": {
|
||||
"description": "Album name in CUE split sheet",
|
||||
@@ -3416,10 +3312,6 @@
|
||||
"@collectionFavoriteArtists": {
|
||||
"description": "Custom folder for favorite artists"
|
||||
},
|
||||
"collectionPlaylists": "Плейлисты",
|
||||
"@collectionPlaylists": {
|
||||
"description": "Custom user playlists folder"
|
||||
},
|
||||
"collectionPlaylist": "Плейлист",
|
||||
"@collectionPlaylist": {
|
||||
"description": "Single playlist label"
|
||||
@@ -3436,10 +3328,6 @@
|
||||
"@collectionNoPlaylistsYet": {
|
||||
"description": "Empty state title when user has no playlists"
|
||||
},
|
||||
"collectionNoPlaylistsSubtitle": "Создайте плейлист, чтобы начать классифицировать треки",
|
||||
"@collectionNoPlaylistsSubtitle": {
|
||||
"description": "Empty state subtitle when user has no playlists"
|
||||
},
|
||||
"collectionPlaylistTracks": "{count, plural, =1{1 track} other{{count} tracks}}",
|
||||
"@collectionPlaylistTracks": {
|
||||
"description": "Track count label for custom playlists",
|
||||
@@ -3476,10 +3364,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistCreated": "Плейлист создан",
|
||||
"@collectionPlaylistCreated": {
|
||||
"description": "Snackbar after creating playlist"
|
||||
},
|
||||
"collectionPlaylistNameHint": "Название плейлиста",
|
||||
"@collectionPlaylistNameHint": {
|
||||
"description": "Hint text for playlist name input"
|
||||
@@ -3496,19 +3380,6 @@
|
||||
"@collectionDeletePlaylist": {
|
||||
"description": "Action to delete playlist"
|
||||
},
|
||||
"collectionDeletePlaylistMessage": "Удалить \"{playlistName}\" и все треки внутри него?",
|
||||
"@collectionDeletePlaylistMessage": {
|
||||
"description": "Confirmation message for deleting playlist",
|
||||
"placeholders": {
|
||||
"playlistName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistDeleted": "Плейлист удалён",
|
||||
"@collectionPlaylistDeleted": {
|
||||
"description": "Snackbar after deleting playlist"
|
||||
},
|
||||
"collectionPlaylistRenamed": "Плейлист переименован",
|
||||
"@collectionPlaylistRenamed": {
|
||||
"description": "Snackbar after renaming playlist"
|
||||
@@ -3553,15 +3424,6 @@
|
||||
"@collectionRemoveFromFolder": {
|
||||
"description": "Tooltip for removing track from wishlist/loved folder"
|
||||
},
|
||||
"collectionRemoved": "\"{trackName}\" удалён",
|
||||
"@collectionRemoved": {
|
||||
"description": "Snackbar after removing a track from a collection",
|
||||
"placeholders": {
|
||||
"trackName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionAddedToLoved": "\"{trackName}\" добавлен в Любимые",
|
||||
"@collectionAddedToLoved": {
|
||||
"description": "Snackbar after adding track to loved folder",
|
||||
@@ -3705,15 +3567,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionBatchConvertProgress": "Конвертация {current} из {total}...",
|
||||
"@selectionBatchConvertProgress": {
|
||||
"description": "Snackbar during batch conversion progress",
|
||||
"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": {
|
||||
"current": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
"format": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3879,10 +3741,6 @@
|
||||
"@backupImportButton": {
|
||||
"description": "Button to pick a backup file to restore"
|
||||
},
|
||||
"backupCreating": "Creating backup...",
|
||||
"@backupCreating": {
|
||||
"description": "Progress text while a backup is being created"
|
||||
},
|
||||
"backupCreated": "Backup created",
|
||||
"@backupCreated": {
|
||||
"description": "Snackbar after a backup file is created"
|
||||
@@ -3891,10 +3749,6 @@
|
||||
"@backupCreateFailed": {
|
||||
"description": "Snackbar when backup creation fails"
|
||||
},
|
||||
"backupEmpty": "There is nothing to back up yet",
|
||||
"@backupEmpty": {
|
||||
"description": "Snackbar when there is no data to back up"
|
||||
},
|
||||
"backupRestoreConfirmTitle": "Restore this backup?",
|
||||
"@backupRestoreConfirmTitle": {
|
||||
"description": "Confirmation dialog title before restoring a backup"
|
||||
@@ -3907,10 +3761,6 @@
|
||||
"@backupRestoreConfirmButton": {
|
||||
"description": "Confirm button to proceed with restore"
|
||||
},
|
||||
"backupRestoring": "Restoring backup...",
|
||||
"@backupRestoring": {
|
||||
"description": "Progress text while restoring a backup"
|
||||
},
|
||||
"backupRestored": "Backup restored successfully",
|
||||
"@backupRestored": {
|
||||
"description": "Snackbar after a successful restore"
|
||||
@@ -3997,7 +3847,7 @@
|
||||
"@backupIncludeSecretsDescription": {
|
||||
"description": "Explanation for the include-credentials toggle"
|
||||
},
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the store.",
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the repo.",
|
||||
"@backupExtensionsRestoreFailed": {
|
||||
"description": "Snackbar/hint when some extensions failed to reinstall during restore",
|
||||
"placeholders": {
|
||||
@@ -4110,6 +3960,26 @@
|
||||
"@storageModeSafSubtitle": {
|
||||
"description": "Subtitle for SAF storage mode"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFilenameDescription": "Use {artist}, {title}, {album}, {track}, {year}, {date}, {disc} as placeholders.",
|
||||
"@downloadFilenameDescription": {
|
||||
"description": "Description shown in filename format editor"
|
||||
@@ -4178,10 +4048,6 @@
|
||||
"@downloadSelectServiceToEnable": {
|
||||
"description": "Subtitle when quality picker is disabled due to extension service"
|
||||
},
|
||||
"downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality",
|
||||
"@downloadSelectTidalQobuz": {
|
||||
"description": "Legacy info shown when a provider does not expose quality options"
|
||||
},
|
||||
"downloadEmbedLyricsDisabled": "Enable metadata embedding first",
|
||||
"@downloadEmbedLyricsDisabled": {
|
||||
"description": "Subtitle when lyrics embedding is blocked by metadata toggle"
|
||||
@@ -4430,10 +4296,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueDownloadedHeader": "Скачано",
|
||||
"@queueDownloadedHeader": {
|
||||
"description": "Header label for downloaded items section in library"
|
||||
},
|
||||
"queueFilteringIndicator": "Фильтрация...",
|
||||
"@queueFilteringIndicator": {
|
||||
"description": "Shown while filter results are being computed"
|
||||
@@ -4588,15 +4450,6 @@
|
||||
"@audioAnalysisRescanning": {
|
||||
"description": "Loading text while audio is being re-analyzed after an explicit refresh"
|
||||
},
|
||||
"extensionsSearchWith": "Искать с помощью {providerName}",
|
||||
"@extensionsSearchWith": {
|
||||
"description": "Extensions page - subtitle for default metadata search provider option",
|
||||
"placeholders": {
|
||||
"providerName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsHomeFeedProvider": "Home Feed Provider",
|
||||
"@extensionsHomeFeedProvider": {
|
||||
"description": "Extensions page - label for home feed provider selector"
|
||||
@@ -4634,14 +4487,6 @@
|
||||
"@extensionsNoHomeFeedExtensions": {
|
||||
"description": "Extensions page - shown when no installed extension has home feed"
|
||||
},
|
||||
"sortAlphaAsc": "А-Я",
|
||||
"@sortAlphaAsc": {
|
||||
"description": "Sort option - alphabetical ascending"
|
||||
},
|
||||
"sortAlphaDesc": "Я-А",
|
||||
"@sortAlphaDesc": {
|
||||
"description": "Sort option - alphabetical descending"
|
||||
},
|
||||
"cancelDownloadTitle": "Отменить скачивание?",
|
||||
"@cancelDownloadTitle": {
|
||||
"description": "Dialog title when confirming cancellation of an active download"
|
||||
@@ -4676,34 +4521,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorLoadAlbum": "Не удалось загрузить альбом",
|
||||
"@errorLoadAlbum": {
|
||||
"description": "Error state shown when album fails to load"
|
||||
},
|
||||
"errorLoadPlaylist": "Не удалось загрузить плейлист",
|
||||
"@errorLoadPlaylist": {
|
||||
"description": "Error state shown when playlist fails to load"
|
||||
},
|
||||
"errorLoadArtist": "Не удалось загрузить исполнителя",
|
||||
"@errorLoadArtist": {
|
||||
"description": "Error state shown when artist fails to load"
|
||||
},
|
||||
"notifChannelDownloadName": "Прогресс скачивания",
|
||||
"@notifChannelDownloadName": {
|
||||
"description": "Android notification channel name for download progress"
|
||||
},
|
||||
"notifChannelDownloadDesc": "Shows download progress for tracks",
|
||||
"@notifChannelDownloadDesc": {
|
||||
"description": "Android notification channel description for download progress"
|
||||
},
|
||||
"notifChannelLibraryScanName": "Сканирование библиотеки",
|
||||
"@notifChannelLibraryScanName": {
|
||||
"description": "Android notification channel name for library scan"
|
||||
},
|
||||
"notifChannelLibraryScanDesc": "Shows local library scan progress",
|
||||
"@notifChannelLibraryScanDesc": {
|
||||
"description": "Android notification channel description for library scan"
|
||||
},
|
||||
"notifDownloadingTrack": "Downloading {trackName}",
|
||||
"@notifDownloadingTrack": {
|
||||
"description": "Notification title while downloading a track",
|
||||
@@ -4770,6 +4587,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"notifAllDownloadsComplete": "Все загрузки завершены",
|
||||
"@notifAllDownloadsComplete": {
|
||||
"description": "Notification title when all downloads finish successfully"
|
||||
@@ -4956,14 +4781,6 @@
|
||||
"@actionPaste": {
|
||||
"description": "Generic action - paste from clipboard"
|
||||
},
|
||||
"searchTracksHint": "Search tracks...",
|
||||
"@searchTracksHint": {
|
||||
"description": "Placeholder for the search screen input"
|
||||
},
|
||||
"searchTracksEmptyPrompt": "Search for tracks",
|
||||
"@searchTracksEmptyPrompt": {
|
||||
"description": "Empty-state prompt on the search screen"
|
||||
},
|
||||
"tutorialSearchHint": "Paste or search...",
|
||||
"@tutorialSearchHint": {
|
||||
"description": "Placeholder shown in the tutorial search demo"
|
||||
@@ -4992,14 +4809,6 @@
|
||||
"@optionsEmbedMetadataSubtitleOff": {
|
||||
"description": "Subtitle when metadata embedding is disabled"
|
||||
},
|
||||
"optionsMaxQualityCoverSubtitleDisabled": "Disabled when metadata embedding is off",
|
||||
"@optionsMaxQualityCoverSubtitleDisabled": {
|
||||
"description": "Subtitle for max quality cover when metadata embedding is disabled"
|
||||
},
|
||||
"downloadFilenameHintExample": "{artist} - {title}",
|
||||
"@downloadFilenameHintExample": {
|
||||
"description": "Example placeholder for the download filename format input"
|
||||
},
|
||||
"trackCoverNoEmbeddedArt": "No embedded album art found",
|
||||
"@trackCoverNoEmbeddedArt": {
|
||||
"description": "Message shown when a track file has no embedded cover art"
|
||||
@@ -5239,14 +5048,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsDefaultSearchTabAlbums": "Альбомы",
|
||||
"@optionsDefaultSearchTabAlbums": {
|
||||
"description": "Default search tab option - Albums tab"
|
||||
},
|
||||
"optionsDefaultSearchTabTracks": "Треки",
|
||||
"@optionsDefaultSearchTabTracks": {
|
||||
"description": "Default search tab option - Tracks tab"
|
||||
},
|
||||
"settingsFiles": "Files & Folders",
|
||||
"@settingsFiles": {
|
||||
"description": "Settings menu item - file and folder settings"
|
||||
@@ -5307,10 +5108,26 @@
|
||||
"@downloadDeduplicationEnabled": {
|
||||
"description": "Subtitle when deduplication is on"
|
||||
},
|
||||
"downloadDeduplicationWithQualityVariants": "Existing files at the selected quality will be skipped",
|
||||
"@downloadDeduplicationWithQualityVariants": {
|
||||
"description": "Deduplication subtitle when separate quality versions are allowed"
|
||||
},
|
||||
"downloadDeduplicationDisabled": "All tracks will be downloaded regardless of history",
|
||||
"@downloadDeduplicationDisabled": {
|
||||
"description": "Subtitle when deduplication is off"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFallbackExtensions": "Fallback Extensions",
|
||||
"@downloadFallbackExtensions": {
|
||||
"description": "Settings item for configuring fallback extension providers"
|
||||
@@ -5451,6 +5268,11 @@
|
||||
}
|
||||
},
|
||||
"queueDownloadStarting": "Starting...",
|
||||
"queueCheckingDownloadSession": "Checking download session...",
|
||||
"queueResolvingDownloadMetadata": "Resolving track metadata...",
|
||||
"queueResolvingDownloadStream": "Preparing audio stream...",
|
||||
"queueWaitingForVerification": "Waiting for verification...",
|
||||
"queueResumingAfterVerification": "Resuming after verification...",
|
||||
"@queueDownloadStarting": {
|
||||
"description": "Queue status before download progress is available"
|
||||
},
|
||||
@@ -5539,7 +5361,7 @@
|
||||
"@downloadNativeWorker": {
|
||||
"description": "Setting title for Android native download worker"
|
||||
},
|
||||
"downloadNativeWorkerSubtitle": "Beta Android service worker for extension downloads",
|
||||
"downloadNativeWorkerSubtitle": "Android background service for extension downloads",
|
||||
"@downloadNativeWorkerSubtitle": {
|
||||
"description": "Setting subtitle for Android native download worker"
|
||||
},
|
||||
@@ -5699,10 +5521,6 @@
|
||||
"@errorInvalidFolderSelected": {
|
||||
"description": "Error when the selected folder is invalid"
|
||||
},
|
||||
"errorCouldNotKeepFolderAccess": "Could not keep access to the selected folder",
|
||||
"@errorCouldNotKeepFolderAccess": {
|
||||
"description": "Error when persistent folder access cannot be saved"
|
||||
},
|
||||
"storeAnyVersion": "Any",
|
||||
"@storeAnyVersion": {
|
||||
"description": "Store detail value when any app version is accepted"
|
||||
|
||||
+146
-328
@@ -19,7 +19,7 @@
|
||||
},
|
||||
"navStore": "Depo",
|
||||
"@navStore": {
|
||||
"description": "Bottom navigation - Extension store tab"
|
||||
"description": "Bottom navigation - Extension repo tab"
|
||||
},
|
||||
"homeTitle": "Ana sayfa",
|
||||
"@homeTitle": {
|
||||
@@ -73,10 +73,6 @@
|
||||
"@settingsAppearance": {
|
||||
"description": "Settings section - visual customization"
|
||||
},
|
||||
"settingsOptions": "Seçenekler",
|
||||
"@settingsOptions": {
|
||||
"description": "Settings section - app options"
|
||||
},
|
||||
"settingsExtensions": "Eklentiler",
|
||||
"@settingsExtensions": {
|
||||
"description": "Settings section - extension management"
|
||||
@@ -145,10 +141,6 @@
|
||||
"@appearanceHistoryViewGrid": {
|
||||
"description": "Grid layout option"
|
||||
},
|
||||
"optionsTitle": "Seçenekler",
|
||||
"@optionsTitle": {
|
||||
"description": "Options settings page title"
|
||||
},
|
||||
"optionsPrimaryProvider": "Ana Kaynek",
|
||||
"@optionsPrimaryProvider": {
|
||||
"description": "Main search provider setting"
|
||||
@@ -174,10 +166,6 @@
|
||||
"@optionsDefaultSearchTabSubtitle": {
|
||||
"description": "Subtitle for the preferred default search tab setting"
|
||||
},
|
||||
"optionsSwitchBack": "Choose the default search provider to switch back from an extension",
|
||||
"@optionsSwitchBack": {
|
||||
"description": "Hint to switch back from extension search"
|
||||
},
|
||||
"optionsAutoFallback": "Diğerlerini dene",
|
||||
"@optionsAutoFallback": {
|
||||
"description": "Auto-retry with other services"
|
||||
@@ -186,18 +174,6 @@
|
||||
"@optionsAutoFallbackSubtitle": {
|
||||
"description": "Subtitle for auto fallback"
|
||||
},
|
||||
"optionsUseExtensionProviders": "Eklenti sağlayıcılarını kullan",
|
||||
"@optionsUseExtensionProviders": {
|
||||
"description": "Legacy setting label for extension download providers"
|
||||
},
|
||||
"optionsUseExtensionProvidersOn": "Extension providers are enabled",
|
||||
"@optionsUseExtensionProvidersOn": {
|
||||
"description": "Status when extension providers enabled"
|
||||
},
|
||||
"optionsUseExtensionProvidersOff": "Extension providers are required",
|
||||
"@optionsUseExtensionProvidersOff": {
|
||||
"description": "Legacy status when extension providers would be disabled"
|
||||
},
|
||||
"optionsEmbedLyrics": "Şarkı Sözlerini Göm",
|
||||
"@optionsEmbedLyrics": {
|
||||
"description": "Embed lyrics in audio files"
|
||||
@@ -230,10 +206,6 @@
|
||||
"@trackReplayGain": {
|
||||
"description": "Three-dot menu option to scan loudness and write ReplayGain tags"
|
||||
},
|
||||
"trackReplayGainSubtitle": "Analyze loudness and write ReplayGain tags",
|
||||
"@trackReplayGainSubtitle": {
|
||||
"description": "Subtitle for the rescan ReplayGain menu option"
|
||||
},
|
||||
"trackReplayGainScanning": "Analyzing loudness...",
|
||||
"@trackReplayGainScanning": {
|
||||
"description": "Snackbar/progress message while scanning ReplayGain for a single track"
|
||||
@@ -310,11 +282,11 @@
|
||||
},
|
||||
"optionsExtensionStore": "Eklenti Deposu",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide store tab"
|
||||
"description": "Show/hide repo tab"
|
||||
},
|
||||
"optionsExtensionStoreSubtitle": "Gezinme menüsünde Depo sekmesini göster",
|
||||
"@optionsExtensionStoreSubtitle": {
|
||||
"description": "Subtitle for extension store toggle"
|
||||
"description": "Subtitle for extension repo toggle"
|
||||
},
|
||||
"optionsCheckUpdates": "Güncelleştirmeleri Denetle",
|
||||
"@optionsCheckUpdates": {
|
||||
@@ -360,31 +332,6 @@
|
||||
"@optionsDetailedLoggingOff": {
|
||||
"description": "Status when logging disabled"
|
||||
},
|
||||
"optionsSpotifyCredentials": "Spotify Kimlik Bilgileri",
|
||||
"@optionsSpotifyCredentials": {
|
||||
"description": "Spotify API credentials setting"
|
||||
},
|
||||
"optionsSpotifyCredentialsConfigured": "Müşteri Kimliği: {clientId}...",
|
||||
"@optionsSpotifyCredentialsConfigured": {
|
||||
"description": "Shows configured client ID preview",
|
||||
"placeholders": {
|
||||
"clientId": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsSpotifyCredentialsRequired": "Zorunlu - değiştirmek için tıkla",
|
||||
"@optionsSpotifyCredentialsRequired": {
|
||||
"description": "Prompt to set up credentials"
|
||||
},
|
||||
"optionsSpotifyWarning": "Spotify'ın senin API kimlik bilgilerine ihtiyacı var. Onları developer.spotify.com'dan alabilirsin",
|
||||
"@optionsSpotifyWarning": {
|
||||
"description": "Info about Spotify API requirement"
|
||||
},
|
||||
"optionsSpotifyDeprecationWarning": "Spotify API değişiklikleri nedeniyle Spotify araması 3 Mart 2026 tarihinde kullanımdan kaldırılacaktır. Lütfen Deezer'a geçiş yapın.",
|
||||
"@optionsSpotifyDeprecationWarning": {
|
||||
"description": "Warning about Spotify API deprecation"
|
||||
},
|
||||
"extensionsTitle": "Eklentiler",
|
||||
"@extensionsTitle": {
|
||||
"description": "Extensions page title"
|
||||
@@ -402,26 +349,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsAuthor": "{author} tarafından",
|
||||
"@extensionsAuthor": {
|
||||
"description": "Extension author credit",
|
||||
"placeholders": {
|
||||
"author": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsUninstall": "Kaldır",
|
||||
"@extensionsUninstall": {
|
||||
"description": "Uninstall extension button"
|
||||
},
|
||||
"storeTitle": "Uzantı Deposu",
|
||||
"@storeTitle": {
|
||||
"description": "Store screen title"
|
||||
"description": "Repo screen title"
|
||||
},
|
||||
"storeSearch": "Eklenti ara...",
|
||||
"@storeSearch": {
|
||||
"description": "Store search placeholder"
|
||||
"description": "Repo search placeholder"
|
||||
},
|
||||
"storeInstall": "Kur",
|
||||
"@storeInstall": {
|
||||
@@ -912,14 +850,6 @@
|
||||
"@snackbarHistoryCleared": {
|
||||
"description": "Snackbar - history deleted"
|
||||
},
|
||||
"snackbarCredentialsSaved": "Kimlik bilgileri kaydedildi",
|
||||
"@snackbarCredentialsSaved": {
|
||||
"description": "Snackbar - Spotify credentials saved"
|
||||
},
|
||||
"snackbarCredentialsCleared": "Kimlik bilgileri temizlendi",
|
||||
"@snackbarCredentialsCleared": {
|
||||
"description": "Snackbar - Spotify credentials removed"
|
||||
},
|
||||
"snackbarDeletedTracks": "{count} {count, plural, =1{şarkı} other{şarkı}} silindi",
|
||||
"@snackbarDeletedTracks": {
|
||||
"description": "Snackbar - tracks deleted",
|
||||
@@ -938,10 +868,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"snackbarFillAllFields": "Lütfen tüm alanları doldurun",
|
||||
"@snackbarFillAllFields": {
|
||||
"description": "Snackbar - validation error"
|
||||
},
|
||||
"snackbarViewQueue": "Kuyruğu Görüntüle",
|
||||
"@snackbarViewQueue": {
|
||||
"description": "Snackbar action - view download queue"
|
||||
@@ -1055,14 +981,6 @@
|
||||
"@actionDeselect": {
|
||||
"description": "Action button - deselect all"
|
||||
},
|
||||
"actionRemoveCredentials": "Özellikleri kaldır",
|
||||
"@actionRemoveCredentials": {
|
||||
"description": "Action button - delete Spotify credentials"
|
||||
},
|
||||
"actionSaveCredentials": "Özellikleri kaydet",
|
||||
"@actionSaveCredentials": {
|
||||
"description": "Action button - save Spotify credentials"
|
||||
},
|
||||
"selectionSelected": "{count} seçildi",
|
||||
"@selectionSelected": {
|
||||
"description": "Selection count indicator",
|
||||
@@ -1236,6 +1154,19 @@
|
||||
"@updateNewVersionReady": {
|
||||
"description": "Update subtitle"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"updateCurrent": "Şimdiki",
|
||||
"@updateCurrent": {
|
||||
"description": "Label for current version"
|
||||
@@ -1272,10 +1203,6 @@
|
||||
"@providerPriorityInfo": {
|
||||
"description": "Info tip about fallback behavior"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsTitle": "Uzantı Yedeği",
|
||||
"@providerPriorityFallbackExtensionsTitle": {
|
||||
"description": "Section title for choosing which download extensions can be used as fallback providers"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsDescription": "Otomatik geri dönüş sırasında hangi yüklü indirme uzantılarının kullanılabileceğini seçin.",
|
||||
"@providerPriorityFallbackExtensionsDescription": {
|
||||
"description": "Section description for extension fallback selection"
|
||||
@@ -1284,10 +1211,6 @@
|
||||
"@providerPriorityFallbackExtensionsHint": {
|
||||
"description": "Hint below the extension fallback selection list"
|
||||
},
|
||||
"providerBuiltIn": "Legacy",
|
||||
"@providerBuiltIn": {
|
||||
"description": "Legacy label retained for old generated localization compatibility"
|
||||
},
|
||||
"providerExtension": "Eklenti",
|
||||
"@providerExtension": {
|
||||
"description": "Label for extension-provided providers"
|
||||
@@ -1304,14 +1227,6 @@
|
||||
"@metadataProviderPriorityInfo": {
|
||||
"description": "Info tip about rate limits"
|
||||
},
|
||||
"metadataNoRateLimits": "İstek sınırı yok",
|
||||
"@metadataNoRateLimits": {
|
||||
"description": "Deezer provider description"
|
||||
},
|
||||
"metadataMayRateLimit": "Hız sınırlaması uygulanabilir",
|
||||
"@metadataMayRateLimit": {
|
||||
"description": "Spotify provider description"
|
||||
},
|
||||
"logTitle": "Kayıtlar",
|
||||
"@logTitle": {
|
||||
"description": "Logs screen title"
|
||||
@@ -1378,30 +1293,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"credentialsTitle": "Spotify Kimlik Bilgileri",
|
||||
"@credentialsTitle": {
|
||||
"description": "Credentials dialog title"
|
||||
},
|
||||
"credentialsDescription": "Kendi Spotify uygulama kotanızı kullanmak için Client ID ve Secret girin.",
|
||||
"@credentialsDescription": {
|
||||
"description": "Credentials dialog explanation"
|
||||
},
|
||||
"credentialsClientId": "Müşteri Kimliği",
|
||||
"@credentialsClientId": {
|
||||
"description": "Client ID field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientIdHint": "Client ID yapıştır",
|
||||
"@credentialsClientIdHint": {
|
||||
"description": "Client ID placeholder"
|
||||
},
|
||||
"credentialsClientSecret": "Müşteri Sırrı",
|
||||
"@credentialsClientSecret": {
|
||||
"description": "Client Secret field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientSecretHint": "Client Secret yapıştır",
|
||||
"@credentialsClientSecretHint": {
|
||||
"description": "Client Secret placeholder"
|
||||
},
|
||||
"channelStable": "Kararlı",
|
||||
"@channelStable": {
|
||||
"description": "Update channel - stable releases"
|
||||
@@ -1510,10 +1401,6 @@
|
||||
"@settingsDownloadSubtitle": {
|
||||
"description": "Download settings description"
|
||||
},
|
||||
"settingsOptionsSubtitle": "Yedek plan, meta veriler, şarkı sözleri, kapak resmi",
|
||||
"@settingsOptionsSubtitle": {
|
||||
"description": "Options settings description"
|
||||
},
|
||||
"settingsExtensionsSubtitle": "İndirme sağlayıcılarını yönet",
|
||||
"@settingsExtensionsSubtitle": {
|
||||
"description": "Extensions settings description"
|
||||
@@ -1730,27 +1617,27 @@
|
||||
},
|
||||
"storeFilterAll": "Tümü",
|
||||
"@storeFilterAll": {
|
||||
"description": "Store filter - all extensions"
|
||||
"description": "Repo filter - all extensions"
|
||||
},
|
||||
"storeFilterMetadata": "Meta Veri",
|
||||
"@storeFilterMetadata": {
|
||||
"description": "Store filter - metadata providers"
|
||||
"description": "Repo filter - metadata providers"
|
||||
},
|
||||
"storeFilterDownload": "İndir",
|
||||
"@storeFilterDownload": {
|
||||
"description": "Store filter - download providers"
|
||||
"description": "Repo filter - download providers"
|
||||
},
|
||||
"storeFilterUtility": "Araç",
|
||||
"@storeFilterUtility": {
|
||||
"description": "Store filter - utility extensions"
|
||||
"description": "Repo filter - utility extensions"
|
||||
},
|
||||
"storeFilterLyrics": "Şarkı Sözleri",
|
||||
"@storeFilterLyrics": {
|
||||
"description": "Store filter - lyrics providers"
|
||||
"description": "Repo filter - lyrics providers"
|
||||
},
|
||||
"storeFilterIntegration": "Entegrasyon",
|
||||
"@storeFilterIntegration": {
|
||||
"description": "Store filter - integrations"
|
||||
"description": "Repo filter - integrations"
|
||||
},
|
||||
"storeClearFilters": "Filtreleri temizle",
|
||||
"@storeClearFilters": {
|
||||
@@ -1772,10 +1659,6 @@
|
||||
"@storeRepoUrlHint": {
|
||||
"description": "Hint/placeholder for the repository URL input field"
|
||||
},
|
||||
"storeRepoUrlHelper": "örn. https://github.com/user/extensions-repo",
|
||||
"@storeRepoUrlHelper": {
|
||||
"description": "Helper text below the repository URL input field"
|
||||
},
|
||||
"storeAddRepoButton": "Depo Ekle",
|
||||
"@storeAddRepoButton": {
|
||||
"description": "Button to submit a new repository URL"
|
||||
@@ -1808,18 +1691,6 @@
|
||||
"@storeEmptyNoResults": {
|
||||
"description": "Message when search/filter returns no results"
|
||||
},
|
||||
"extensionDefaultProvider": "Default Search",
|
||||
"@extensionDefaultProvider": {
|
||||
"description": "Default search provider option"
|
||||
},
|
||||
"extensionDefaultProviderSubtitle": "Use the default metadata search",
|
||||
"@extensionDefaultProviderSubtitle": {
|
||||
"description": "Subtitle for default provider"
|
||||
},
|
||||
"extensionAuthor": "Oluşturan",
|
||||
"@extensionAuthor": {
|
||||
"description": "Extension detail - author"
|
||||
},
|
||||
"extensionId": "Kimlik",
|
||||
"@extensionId": {
|
||||
"description": "Extension detail - unique ID"
|
||||
@@ -2087,10 +1958,6 @@
|
||||
"@downloadLossyOpus128Subtitle": {
|
||||
"description": "Subtitle for Opus 128kbps lossy option"
|
||||
},
|
||||
"qualityNote": "Gerçek kalite, parçanın servisteki uygunluğuna bağlıdır",
|
||||
"@qualityNote": {
|
||||
"description": "Note about quality availability"
|
||||
},
|
||||
"downloadAskBeforeDownload": "İndirmeden Önce Sor",
|
||||
"@downloadAskBeforeDownload": {
|
||||
"description": "Setting - show quality picker"
|
||||
@@ -2143,6 +2010,14 @@
|
||||
"@appearanceAmoledDarkSubtitle": {
|
||||
"description": "Subtitle for AMOLED dark"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"queueClearAll": "Tümünü Temizle",
|
||||
"@queueClearAll": {
|
||||
"description": "Button - clear all queue items"
|
||||
@@ -2175,6 +2050,27 @@
|
||||
"@settingsDownloadNetworkSubtitle": {
|
||||
"description": "Subtitle explaining network preference"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"albumFolderArtistAlbum": "Sanatçı / Albüm",
|
||||
"@albumFolderArtistAlbum": {
|
||||
"description": "Album folder option"
|
||||
@@ -2245,10 +2141,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadedAlbumAllSelected": "Tüm parçalar seçildi",
|
||||
"@downloadedAlbumAllSelected": {
|
||||
"description": "Status - all items selected"
|
||||
},
|
||||
"downloadedAlbumTapToSelect": "Seçmek için parçalara dokunun",
|
||||
"@downloadedAlbumTapToSelect": {
|
||||
"description": "Selection hint"
|
||||
@@ -2976,6 +2868,22 @@
|
||||
"@cacheLibraryCoverDesc": {
|
||||
"description": "Description of what library cover cache contains"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"cacheExploreFeed": "Besleme önbelleğini keşfedin",
|
||||
"@cacheExploreFeed": {
|
||||
"description": "Cache item title for explore home feed cache"
|
||||
@@ -3092,18 +3000,10 @@
|
||||
"@trackSaveCoverArt": {
|
||||
"description": "Menu action - save album cover art as file"
|
||||
},
|
||||
"trackSaveCoverArtSubtitle": "Save album art as .jpg file",
|
||||
"@trackSaveCoverArtSubtitle": {
|
||||
"description": "Subtitle for save cover art action"
|
||||
},
|
||||
"trackSaveLyrics": "Save Lyrics (.lrc)",
|
||||
"@trackSaveLyrics": {
|
||||
"description": "Menu action - save lyrics as .lrc file"
|
||||
},
|
||||
"trackSaveLyricsSubtitle": "Fetch and save lyrics as .lrc file",
|
||||
"@trackSaveLyricsSubtitle": {
|
||||
"description": "Subtitle for save lyrics action"
|
||||
},
|
||||
"trackSaveLyricsProgress": "Saving lyrics...",
|
||||
"@trackSaveLyricsProgress": {
|
||||
"description": "Snackbar while saving lyrics to file"
|
||||
@@ -3116,10 +3016,6 @@
|
||||
"@trackReEnrichOnlineSubtitle": {
|
||||
"description": "Subtitle for re-enrich metadata action for local items"
|
||||
},
|
||||
"trackReEnrichFieldsTitle": "Fields to update",
|
||||
"@trackReEnrichFieldsTitle": {
|
||||
"description": "Section title for field selection in re-enrich dialog"
|
||||
},
|
||||
"trackReEnrichFieldCover": "Cover Art",
|
||||
"@trackReEnrichFieldCover": {
|
||||
"description": "Checkbox label for cover art field in re-enrich"
|
||||
@@ -3203,18 +3099,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacFindingProgress": "Finding FLAC matches... ({current}/{total})",
|
||||
"@queueFlacFindingProgress": {
|
||||
"description": "Snackbar while resolving remote matches for local FLAC redownloads",
|
||||
"placeholders": {
|
||||
"current": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacNoReliableMatches": "No reliable online matches found for the selection",
|
||||
"@queueFlacNoReliableMatches": {
|
||||
"description": "Snackbar when no safe FLAC redownload matches were found"
|
||||
@@ -3244,10 +3128,6 @@
|
||||
"@trackConvertFormat": {
|
||||
"description": "Menu item - convert audio format"
|
||||
},
|
||||
"trackConvertFormatSubtitle": "Convert to AAC/M4A, MP3, Opus, ALAC, or FLAC",
|
||||
"@trackConvertFormatSubtitle": {
|
||||
"description": "Subtitle for convert format menu item"
|
||||
},
|
||||
"trackConvertTitle": "Convert Audio",
|
||||
"@trackConvertTitle": {
|
||||
"description": "Title of convert bottom sheet"
|
||||
@@ -3260,6 +3140,14 @@
|
||||
"@trackConvertBitrate": {
|
||||
"description": "Label for bitrate selection"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"trackConvertConfirmTitle": "Dönüştürmeyi Onayla",
|
||||
"@trackConvertConfirmTitle": {
|
||||
"description": "Confirmation dialog title"
|
||||
@@ -3291,6 +3179,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"trackConvertLosslessHint": "Kayıpsız dönüştürme — kalite kaybı yok",
|
||||
"@trackConvertLosslessHint": {
|
||||
"description": "Hint shown when converting between lossless formats"
|
||||
@@ -3316,10 +3216,6 @@
|
||||
"@cueSplitTitle": {
|
||||
"description": "Title for CUE split bottom sheet"
|
||||
},
|
||||
"cueSplitSubtitle": "CUE+FLAC dosyalarını ayrı parçalara bölün",
|
||||
"@cueSplitSubtitle": {
|
||||
"description": "Subtitle for CUE split menu item"
|
||||
},
|
||||
"cueSplitAlbum": "Album: {album}",
|
||||
"@cueSplitAlbum": {
|
||||
"description": "Album name in CUE split sheet",
|
||||
@@ -3416,10 +3312,6 @@
|
||||
"@collectionFavoriteArtists": {
|
||||
"description": "Custom folder for favorite artists"
|
||||
},
|
||||
"collectionPlaylists": "Çalma listeleri",
|
||||
"@collectionPlaylists": {
|
||||
"description": "Custom user playlists folder"
|
||||
},
|
||||
"collectionPlaylist": "Çalma listesi",
|
||||
"@collectionPlaylist": {
|
||||
"description": "Single playlist label"
|
||||
@@ -3436,10 +3328,6 @@
|
||||
"@collectionNoPlaylistsYet": {
|
||||
"description": "Empty state title when user has no playlists"
|
||||
},
|
||||
"collectionNoPlaylistsSubtitle": "Parçaları kategorize etmeye başlamak için bir çalma listesi oluşturun",
|
||||
"@collectionNoPlaylistsSubtitle": {
|
||||
"description": "Empty state subtitle when user has no playlists"
|
||||
},
|
||||
"collectionPlaylistTracks": "{count, plural, =1{1 parça} other{{count} parça}}",
|
||||
"@collectionPlaylistTracks": {
|
||||
"description": "Track count label for custom playlists",
|
||||
@@ -3476,10 +3364,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistCreated": "Playlist created",
|
||||
"@collectionPlaylistCreated": {
|
||||
"description": "Snackbar after creating playlist"
|
||||
},
|
||||
"collectionPlaylistNameHint": "Playlist name",
|
||||
"@collectionPlaylistNameHint": {
|
||||
"description": "Hint text for playlist name input"
|
||||
@@ -3496,19 +3380,6 @@
|
||||
"@collectionDeletePlaylist": {
|
||||
"description": "Action to delete playlist"
|
||||
},
|
||||
"collectionDeletePlaylistMessage": "\"{playlistName}\" ve içindeki tüm parçaları silmek mi istiyorsunuz?",
|
||||
"@collectionDeletePlaylistMessage": {
|
||||
"description": "Confirmation message for deleting playlist",
|
||||
"placeholders": {
|
||||
"playlistName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistDeleted": "Playlist deleted",
|
||||
"@collectionPlaylistDeleted": {
|
||||
"description": "Snackbar after deleting playlist"
|
||||
},
|
||||
"collectionPlaylistRenamed": "Çalma listesinin adı değiştirildi",
|
||||
"@collectionPlaylistRenamed": {
|
||||
"description": "Snackbar after renaming playlist"
|
||||
@@ -3553,15 +3424,6 @@
|
||||
"@collectionRemoveFromFolder": {
|
||||
"description": "Tooltip for removing track from wishlist/loved folder"
|
||||
},
|
||||
"collectionRemoved": "\"{trackName}\" removed",
|
||||
"@collectionRemoved": {
|
||||
"description": "Snackbar after removing a track from a collection",
|
||||
"placeholders": {
|
||||
"trackName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionAddedToLoved": "\"{trackName}\" added to Loved",
|
||||
"@collectionAddedToLoved": {
|
||||
"description": "Snackbar after adding track to loved folder",
|
||||
@@ -3705,15 +3567,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionBatchConvertProgress": "Converting {current} of {total}...",
|
||||
"@selectionBatchConvertProgress": {
|
||||
"description": "Snackbar during batch conversion progress",
|
||||
"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": {
|
||||
"current": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
"format": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3879,10 +3741,6 @@
|
||||
"@backupImportButton": {
|
||||
"description": "Button to pick a backup file to restore"
|
||||
},
|
||||
"backupCreating": "Creating backup...",
|
||||
"@backupCreating": {
|
||||
"description": "Progress text while a backup is being created"
|
||||
},
|
||||
"backupCreated": "Backup created",
|
||||
"@backupCreated": {
|
||||
"description": "Snackbar after a backup file is created"
|
||||
@@ -3891,10 +3749,6 @@
|
||||
"@backupCreateFailed": {
|
||||
"description": "Snackbar when backup creation fails"
|
||||
},
|
||||
"backupEmpty": "There is nothing to back up yet",
|
||||
"@backupEmpty": {
|
||||
"description": "Snackbar when there is no data to back up"
|
||||
},
|
||||
"backupRestoreConfirmTitle": "Restore this backup?",
|
||||
"@backupRestoreConfirmTitle": {
|
||||
"description": "Confirmation dialog title before restoring a backup"
|
||||
@@ -3907,10 +3761,6 @@
|
||||
"@backupRestoreConfirmButton": {
|
||||
"description": "Confirm button to proceed with restore"
|
||||
},
|
||||
"backupRestoring": "Restoring backup...",
|
||||
"@backupRestoring": {
|
||||
"description": "Progress text while restoring a backup"
|
||||
},
|
||||
"backupRestored": "Backup restored successfully",
|
||||
"@backupRestored": {
|
||||
"description": "Snackbar after a successful restore"
|
||||
@@ -3997,7 +3847,7 @@
|
||||
"@backupIncludeSecretsDescription": {
|
||||
"description": "Explanation for the include-credentials toggle"
|
||||
},
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the store.",
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the repo.",
|
||||
"@backupExtensionsRestoreFailed": {
|
||||
"description": "Snackbar/hint when some extensions failed to reinstall during restore",
|
||||
"placeholders": {
|
||||
@@ -4110,6 +3960,26 @@
|
||||
"@storageModeSafSubtitle": {
|
||||
"description": "Subtitle for SAF storage mode"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFilenameDescription": "Yer tutucu olarak {artist}, {title}, {album}, {track}, {year}, {date}, {disc} ifadelerini kullanın.",
|
||||
"@downloadFilenameDescription": {
|
||||
"description": "Description shown in filename format editor"
|
||||
@@ -4178,10 +4048,6 @@
|
||||
"@downloadSelectServiceToEnable": {
|
||||
"description": "Subtitle when quality picker is disabled due to extension service"
|
||||
},
|
||||
"downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality",
|
||||
"@downloadSelectTidalQobuz": {
|
||||
"description": "Legacy info shown when a provider does not expose quality options"
|
||||
},
|
||||
"downloadEmbedLyricsDisabled": "Enable metadata embedding first",
|
||||
"@downloadEmbedLyricsDisabled": {
|
||||
"description": "Subtitle when lyrics embedding is blocked by metadata toggle"
|
||||
@@ -4430,10 +4296,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueDownloadedHeader": "Downloaded",
|
||||
"@queueDownloadedHeader": {
|
||||
"description": "Header label for downloaded items section in library"
|
||||
},
|
||||
"queueFilteringIndicator": "Filtering...",
|
||||
"@queueFilteringIndicator": {
|
||||
"description": "Shown while filter results are being computed"
|
||||
@@ -4588,15 +4450,6 @@
|
||||
"@audioAnalysisRescanning": {
|
||||
"description": "Loading text while audio is being re-analyzed after an explicit refresh"
|
||||
},
|
||||
"extensionsSearchWith": "Search with {providerName}",
|
||||
"@extensionsSearchWith": {
|
||||
"description": "Extensions page - subtitle for default metadata search provider option",
|
||||
"placeholders": {
|
||||
"providerName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsHomeFeedProvider": "Home Feed Provider",
|
||||
"@extensionsHomeFeedProvider": {
|
||||
"description": "Extensions page - label for home feed provider selector"
|
||||
@@ -4634,14 +4487,6 @@
|
||||
"@extensionsNoHomeFeedExtensions": {
|
||||
"description": "Extensions page - shown when no installed extension has home feed"
|
||||
},
|
||||
"sortAlphaAsc": "A-Z",
|
||||
"@sortAlphaAsc": {
|
||||
"description": "Sort option - alphabetical ascending"
|
||||
},
|
||||
"sortAlphaDesc": "Z-A",
|
||||
"@sortAlphaDesc": {
|
||||
"description": "Sort option - alphabetical descending"
|
||||
},
|
||||
"cancelDownloadTitle": "Cancel download?",
|
||||
"@cancelDownloadTitle": {
|
||||
"description": "Dialog title when confirming cancellation of an active download"
|
||||
@@ -4676,34 +4521,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorLoadAlbum": "Failed to load album",
|
||||
"@errorLoadAlbum": {
|
||||
"description": "Error state shown when album fails to load"
|
||||
},
|
||||
"errorLoadPlaylist": "Failed to load playlist",
|
||||
"@errorLoadPlaylist": {
|
||||
"description": "Error state shown when playlist fails to load"
|
||||
},
|
||||
"errorLoadArtist": "Failed to load artist",
|
||||
"@errorLoadArtist": {
|
||||
"description": "Error state shown when artist fails to load"
|
||||
},
|
||||
"notifChannelDownloadName": "Download Progress",
|
||||
"@notifChannelDownloadName": {
|
||||
"description": "Android notification channel name for download progress"
|
||||
},
|
||||
"notifChannelDownloadDesc": "Shows download progress for tracks",
|
||||
"@notifChannelDownloadDesc": {
|
||||
"description": "Android notification channel description for download progress"
|
||||
},
|
||||
"notifChannelLibraryScanName": "Library Scan",
|
||||
"@notifChannelLibraryScanName": {
|
||||
"description": "Android notification channel name for library scan"
|
||||
},
|
||||
"notifChannelLibraryScanDesc": "Shows local library scan progress",
|
||||
"@notifChannelLibraryScanDesc": {
|
||||
"description": "Android notification channel description for library scan"
|
||||
},
|
||||
"notifDownloadingTrack": "Downloading {trackName}",
|
||||
"@notifDownloadingTrack": {
|
||||
"description": "Notification title while downloading a track",
|
||||
@@ -4770,6 +4587,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"notifAllDownloadsComplete": "All Downloads Complete",
|
||||
"@notifAllDownloadsComplete": {
|
||||
"description": "Notification title when all downloads finish successfully"
|
||||
@@ -4956,14 +4781,6 @@
|
||||
"@actionPaste": {
|
||||
"description": "Generic action - paste from clipboard"
|
||||
},
|
||||
"searchTracksHint": "Search tracks...",
|
||||
"@searchTracksHint": {
|
||||
"description": "Placeholder for the search screen input"
|
||||
},
|
||||
"searchTracksEmptyPrompt": "Search for tracks",
|
||||
"@searchTracksEmptyPrompt": {
|
||||
"description": "Empty-state prompt on the search screen"
|
||||
},
|
||||
"tutorialSearchHint": "Paste or search...",
|
||||
"@tutorialSearchHint": {
|
||||
"description": "Placeholder shown in the tutorial search demo"
|
||||
@@ -4992,14 +4809,6 @@
|
||||
"@optionsEmbedMetadataSubtitleOff": {
|
||||
"description": "Subtitle when metadata embedding is disabled"
|
||||
},
|
||||
"optionsMaxQualityCoverSubtitleDisabled": "Disabled when metadata embedding is off",
|
||||
"@optionsMaxQualityCoverSubtitleDisabled": {
|
||||
"description": "Subtitle for max quality cover when metadata embedding is disabled"
|
||||
},
|
||||
"downloadFilenameHintExample": "{artist} - {title}",
|
||||
"@downloadFilenameHintExample": {
|
||||
"description": "Example placeholder for the download filename format input"
|
||||
},
|
||||
"trackCoverNoEmbeddedArt": "No embedded album art found",
|
||||
"@trackCoverNoEmbeddedArt": {
|
||||
"description": "Message shown when a track file has no embedded cover art"
|
||||
@@ -5239,14 +5048,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsDefaultSearchTabAlbums": "Albümler",
|
||||
"@optionsDefaultSearchTabAlbums": {
|
||||
"description": "Default search tab option - Albums tab"
|
||||
},
|
||||
"optionsDefaultSearchTabTracks": "Tracks",
|
||||
"@optionsDefaultSearchTabTracks": {
|
||||
"description": "Default search tab option - Tracks tab"
|
||||
},
|
||||
"settingsFiles": "Files & Folders",
|
||||
"@settingsFiles": {
|
||||
"description": "Settings menu item - file and folder settings"
|
||||
@@ -5307,10 +5108,26 @@
|
||||
"@downloadDeduplicationEnabled": {
|
||||
"description": "Subtitle when deduplication is on"
|
||||
},
|
||||
"downloadDeduplicationWithQualityVariants": "Existing files at the selected quality will be skipped",
|
||||
"@downloadDeduplicationWithQualityVariants": {
|
||||
"description": "Deduplication subtitle when separate quality versions are allowed"
|
||||
},
|
||||
"downloadDeduplicationDisabled": "All tracks will be downloaded regardless of history",
|
||||
"@downloadDeduplicationDisabled": {
|
||||
"description": "Subtitle when deduplication is off"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFallbackExtensions": "Fallback Extensions",
|
||||
"@downloadFallbackExtensions": {
|
||||
"description": "Settings item for configuring fallback extension providers"
|
||||
@@ -5451,6 +5268,11 @@
|
||||
}
|
||||
},
|
||||
"queueDownloadStarting": "Starting...",
|
||||
"queueCheckingDownloadSession": "Checking download session...",
|
||||
"queueResolvingDownloadMetadata": "Resolving track metadata...",
|
||||
"queueResolvingDownloadStream": "Preparing audio stream...",
|
||||
"queueWaitingForVerification": "Waiting for verification...",
|
||||
"queueResumingAfterVerification": "Resuming after verification...",
|
||||
"@queueDownloadStarting": {
|
||||
"description": "Queue status before download progress is available"
|
||||
},
|
||||
@@ -5539,7 +5361,7 @@
|
||||
"@downloadNativeWorker": {
|
||||
"description": "Setting title for Android native download worker"
|
||||
},
|
||||
"downloadNativeWorkerSubtitle": "Beta Android service worker for extension downloads",
|
||||
"downloadNativeWorkerSubtitle": "Android background service for extension downloads",
|
||||
"@downloadNativeWorkerSubtitle": {
|
||||
"description": "Setting subtitle for Android native download worker"
|
||||
},
|
||||
@@ -5699,10 +5521,6 @@
|
||||
"@errorInvalidFolderSelected": {
|
||||
"description": "Error when the selected folder is invalid"
|
||||
},
|
||||
"errorCouldNotKeepFolderAccess": "Could not keep access to the selected folder",
|
||||
"@errorCouldNotKeepFolderAccess": {
|
||||
"description": "Error when persistent folder access cannot be saved"
|
||||
},
|
||||
"storeAnyVersion": "Any",
|
||||
"@storeAnyVersion": {
|
||||
"description": "Store detail value when any app version is accepted"
|
||||
|
||||
+146
-328
@@ -19,7 +19,7 @@
|
||||
},
|
||||
"navStore": "Репозиторій",
|
||||
"@navStore": {
|
||||
"description": "Bottom navigation - Extension store tab"
|
||||
"description": "Bottom navigation - Extension repo tab"
|
||||
},
|
||||
"homeTitle": "Головна",
|
||||
"@homeTitle": {
|
||||
@@ -73,10 +73,6 @@
|
||||
"@settingsAppearance": {
|
||||
"description": "Settings section - visual customization"
|
||||
},
|
||||
"settingsOptions": "Опції",
|
||||
"@settingsOptions": {
|
||||
"description": "Settings section - app options"
|
||||
},
|
||||
"settingsExtensions": "Розширення",
|
||||
"@settingsExtensions": {
|
||||
"description": "Settings section - extension management"
|
||||
@@ -145,10 +141,6 @@
|
||||
"@appearanceHistoryViewGrid": {
|
||||
"description": "Grid layout option"
|
||||
},
|
||||
"optionsTitle": "Опції",
|
||||
"@optionsTitle": {
|
||||
"description": "Options settings page title"
|
||||
},
|
||||
"optionsPrimaryProvider": "Основний постачальник",
|
||||
"@optionsPrimaryProvider": {
|
||||
"description": "Main search provider setting"
|
||||
@@ -174,10 +166,6 @@
|
||||
"@optionsDefaultSearchTabSubtitle": {
|
||||
"description": "Subtitle for the preferred default search tab setting"
|
||||
},
|
||||
"optionsSwitchBack": "Choose the default search provider to switch back from an extension",
|
||||
"@optionsSwitchBack": {
|
||||
"description": "Hint to switch back from extension search"
|
||||
},
|
||||
"optionsAutoFallback": "Автоматичний резервний варіант",
|
||||
"@optionsAutoFallback": {
|
||||
"description": "Auto-retry with other services"
|
||||
@@ -186,18 +174,6 @@
|
||||
"@optionsAutoFallbackSubtitle": {
|
||||
"description": "Subtitle for auto fallback"
|
||||
},
|
||||
"optionsUseExtensionProviders": "Використати постачальників розширень",
|
||||
"@optionsUseExtensionProviders": {
|
||||
"description": "Legacy setting label for extension download providers"
|
||||
},
|
||||
"optionsUseExtensionProvidersOn": "Extension providers are enabled",
|
||||
"@optionsUseExtensionProvidersOn": {
|
||||
"description": "Status when extension providers enabled"
|
||||
},
|
||||
"optionsUseExtensionProvidersOff": "Extension providers are required",
|
||||
"@optionsUseExtensionProvidersOff": {
|
||||
"description": "Legacy status when extension providers would be disabled"
|
||||
},
|
||||
"optionsEmbedLyrics": "Вбудований текст пісні",
|
||||
"@optionsEmbedLyrics": {
|
||||
"description": "Embed lyrics in audio files"
|
||||
@@ -230,10 +206,6 @@
|
||||
"@trackReplayGain": {
|
||||
"description": "Three-dot menu option to scan loudness and write ReplayGain tags"
|
||||
},
|
||||
"trackReplayGainSubtitle": "Analyze loudness and write ReplayGain tags",
|
||||
"@trackReplayGainSubtitle": {
|
||||
"description": "Subtitle for the rescan ReplayGain menu option"
|
||||
},
|
||||
"trackReplayGainScanning": "Analyzing loudness...",
|
||||
"@trackReplayGainScanning": {
|
||||
"description": "Snackbar/progress message while scanning ReplayGain for a single track"
|
||||
@@ -310,11 +282,11 @@
|
||||
},
|
||||
"optionsExtensionStore": "Репозиторій розширень",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide store tab"
|
||||
"description": "Show/hide repo tab"
|
||||
},
|
||||
"optionsExtensionStoreSubtitle": "Показати вкладку «Репозиторій» у навігації",
|
||||
"@optionsExtensionStoreSubtitle": {
|
||||
"description": "Subtitle for extension store toggle"
|
||||
"description": "Subtitle for extension repo toggle"
|
||||
},
|
||||
"optionsCheckUpdates": "Перевірити наявність оновлень",
|
||||
"@optionsCheckUpdates": {
|
||||
@@ -360,31 +332,6 @@
|
||||
"@optionsDetailedLoggingOff": {
|
||||
"description": "Status when logging disabled"
|
||||
},
|
||||
"optionsSpotifyCredentials": "Облікові дані Spotify",
|
||||
"@optionsSpotifyCredentials": {
|
||||
"description": "Spotify API credentials setting"
|
||||
},
|
||||
"optionsSpotifyCredentialsConfigured": "Ідентифікатор клієнта: {clientId}...",
|
||||
"@optionsSpotifyCredentialsConfigured": {
|
||||
"description": "Shows configured client ID preview",
|
||||
"placeholders": {
|
||||
"clientId": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsSpotifyCredentialsRequired": "Обов'язковий – торкніться, щоб налаштувати",
|
||||
"@optionsSpotifyCredentialsRequired": {
|
||||
"description": "Prompt to set up credentials"
|
||||
},
|
||||
"optionsSpotifyWarning": "Spotify вимагає ваших власних облікових даних API. Отримайте їх безкоштовно на сайті developer.spotify.com",
|
||||
"@optionsSpotifyWarning": {
|
||||
"description": "Info about Spotify API requirement"
|
||||
},
|
||||
"optionsSpotifyDeprecationWarning": "Пошук Spotify буде припинено 3 березня 2026 року через зміни в API Spotify. Будь ласка, перейдіть на Deezer.",
|
||||
"@optionsSpotifyDeprecationWarning": {
|
||||
"description": "Warning about Spotify API deprecation"
|
||||
},
|
||||
"extensionsTitle": "Розширення",
|
||||
"@extensionsTitle": {
|
||||
"description": "Extensions page title"
|
||||
@@ -402,26 +349,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsAuthor": "від {author}",
|
||||
"@extensionsAuthor": {
|
||||
"description": "Extension author credit",
|
||||
"placeholders": {
|
||||
"author": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsUninstall": "Видалити",
|
||||
"@extensionsUninstall": {
|
||||
"description": "Uninstall extension button"
|
||||
},
|
||||
"storeTitle": "Репозиторій розширень",
|
||||
"@storeTitle": {
|
||||
"description": "Store screen title"
|
||||
"description": "Repo screen title"
|
||||
},
|
||||
"storeSearch": "Розширення пошуку...",
|
||||
"@storeSearch": {
|
||||
"description": "Store search placeholder"
|
||||
"description": "Repo search placeholder"
|
||||
},
|
||||
"storeInstall": "Встановити",
|
||||
"@storeInstall": {
|
||||
@@ -912,14 +850,6 @@
|
||||
"@snackbarHistoryCleared": {
|
||||
"description": "Snackbar - history deleted"
|
||||
},
|
||||
"snackbarCredentialsSaved": "Облікові дані збережено",
|
||||
"@snackbarCredentialsSaved": {
|
||||
"description": "Snackbar - Spotify credentials saved"
|
||||
},
|
||||
"snackbarCredentialsCleared": "Облікові дані очищено",
|
||||
"@snackbarCredentialsCleared": {
|
||||
"description": "Snackbar - Spotify credentials removed"
|
||||
},
|
||||
"snackbarDeletedTracks": "Видалено {count} {count, plural, =1{трек} other{треків}}",
|
||||
"@snackbarDeletedTracks": {
|
||||
"description": "Snackbar - tracks deleted",
|
||||
@@ -938,10 +868,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"snackbarFillAllFields": "Будь ласка, заповніть усі поля",
|
||||
"@snackbarFillAllFields": {
|
||||
"description": "Snackbar - validation error"
|
||||
},
|
||||
"snackbarViewQueue": "Переглянути чергу",
|
||||
"@snackbarViewQueue": {
|
||||
"description": "Snackbar action - view download queue"
|
||||
@@ -1055,14 +981,6 @@
|
||||
"@actionDeselect": {
|
||||
"description": "Action button - deselect all"
|
||||
},
|
||||
"actionRemoveCredentials": "Видалити облікові дані",
|
||||
"@actionRemoveCredentials": {
|
||||
"description": "Action button - delete Spotify credentials"
|
||||
},
|
||||
"actionSaveCredentials": "Зберегти облікові дані",
|
||||
"@actionSaveCredentials": {
|
||||
"description": "Action button - save Spotify credentials"
|
||||
},
|
||||
"selectionSelected": "Вибрано {count}",
|
||||
"@selectionSelected": {
|
||||
"description": "Selection count indicator",
|
||||
@@ -1236,6 +1154,19 @@
|
||||
"@updateNewVersionReady": {
|
||||
"description": "Update subtitle"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"updateCurrent": "Поточна",
|
||||
"@updateCurrent": {
|
||||
"description": "Label for current version"
|
||||
@@ -1272,10 +1203,6 @@
|
||||
"@providerPriorityInfo": {
|
||||
"description": "Info tip about fallback behavior"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsTitle": "Резервне розширення",
|
||||
"@providerPriorityFallbackExtensionsTitle": {
|
||||
"description": "Section title for choosing which download extensions can be used as fallback providers"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsDescription": "Choose which installed download extensions can be used during automatic fallback.",
|
||||
"@providerPriorityFallbackExtensionsDescription": {
|
||||
"description": "Section description for extension fallback selection"
|
||||
@@ -1284,10 +1211,6 @@
|
||||
"@providerPriorityFallbackExtensionsHint": {
|
||||
"description": "Hint below the extension fallback selection list"
|
||||
},
|
||||
"providerBuiltIn": "Legacy",
|
||||
"@providerBuiltIn": {
|
||||
"description": "Legacy label retained for old generated localization compatibility"
|
||||
},
|
||||
"providerExtension": "Розширення",
|
||||
"@providerExtension": {
|
||||
"description": "Label for extension-provided providers"
|
||||
@@ -1304,14 +1227,6 @@
|
||||
"@metadataProviderPriorityInfo": {
|
||||
"description": "Info tip about rate limits"
|
||||
},
|
||||
"metadataNoRateLimits": "Без обмежень щодо швидкості",
|
||||
"@metadataNoRateLimits": {
|
||||
"description": "Deezer provider description"
|
||||
},
|
||||
"metadataMayRateLimit": "Травневе обмеження ставок",
|
||||
"@metadataMayRateLimit": {
|
||||
"description": "Spotify provider description"
|
||||
},
|
||||
"logTitle": "Журнали",
|
||||
"@logTitle": {
|
||||
"description": "Logs screen title"
|
||||
@@ -1378,30 +1293,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"credentialsTitle": "Облікові дані Spotify",
|
||||
"@credentialsTitle": {
|
||||
"description": "Credentials dialog title"
|
||||
},
|
||||
"credentialsDescription": "Введіть свій ідентифікатор клієнта та секретний код, щоб використовувати власну квоту програми Spotify.",
|
||||
"@credentialsDescription": {
|
||||
"description": "Credentials dialog explanation"
|
||||
},
|
||||
"credentialsClientId": "Ідентифікатор клієнта",
|
||||
"@credentialsClientId": {
|
||||
"description": "Client ID field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientIdHint": "Вставити ідентифікатор клієнта",
|
||||
"@credentialsClientIdHint": {
|
||||
"description": "Client ID placeholder"
|
||||
},
|
||||
"credentialsClientSecret": "Секретний код клієнта",
|
||||
"@credentialsClientSecret": {
|
||||
"description": "Client Secret field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientSecretHint": "Вставити секретний код клієнта",
|
||||
"@credentialsClientSecretHint": {
|
||||
"description": "Client Secret placeholder"
|
||||
},
|
||||
"channelStable": "Стабільний",
|
||||
"@channelStable": {
|
||||
"description": "Update channel - stable releases"
|
||||
@@ -1510,10 +1401,6 @@
|
||||
"@settingsDownloadSubtitle": {
|
||||
"description": "Download settings description"
|
||||
},
|
||||
"settingsOptionsSubtitle": "Fallback, metadata, lyrics, cover art",
|
||||
"@settingsOptionsSubtitle": {
|
||||
"description": "Options settings description"
|
||||
},
|
||||
"settingsExtensionsSubtitle": "Керування постачальниками послуг завантаження",
|
||||
"@settingsExtensionsSubtitle": {
|
||||
"description": "Extensions settings description"
|
||||
@@ -1730,27 +1617,27 @@
|
||||
},
|
||||
"storeFilterAll": "Усі",
|
||||
"@storeFilterAll": {
|
||||
"description": "Store filter - all extensions"
|
||||
"description": "Repo filter - all extensions"
|
||||
},
|
||||
"storeFilterMetadata": "Метадані",
|
||||
"@storeFilterMetadata": {
|
||||
"description": "Store filter - metadata providers"
|
||||
"description": "Repo filter - metadata providers"
|
||||
},
|
||||
"storeFilterDownload": "Завантажити",
|
||||
"@storeFilterDownload": {
|
||||
"description": "Store filter - download providers"
|
||||
"description": "Repo filter - download providers"
|
||||
},
|
||||
"storeFilterUtility": "Утиліта",
|
||||
"@storeFilterUtility": {
|
||||
"description": "Store filter - utility extensions"
|
||||
"description": "Repo filter - utility extensions"
|
||||
},
|
||||
"storeFilterLyrics": "Тексти пісень",
|
||||
"@storeFilterLyrics": {
|
||||
"description": "Store filter - lyrics providers"
|
||||
"description": "Repo filter - lyrics providers"
|
||||
},
|
||||
"storeFilterIntegration": "Інтеграція",
|
||||
"@storeFilterIntegration": {
|
||||
"description": "Store filter - integrations"
|
||||
"description": "Repo filter - integrations"
|
||||
},
|
||||
"storeClearFilters": "Очистити фільтри",
|
||||
"@storeClearFilters": {
|
||||
@@ -1772,10 +1659,6 @@
|
||||
"@storeRepoUrlHint": {
|
||||
"description": "Hint/placeholder for the repository URL input field"
|
||||
},
|
||||
"storeRepoUrlHelper": "наприклад https://github.com/user/extensions-repo",
|
||||
"@storeRepoUrlHelper": {
|
||||
"description": "Helper text below the repository URL input field"
|
||||
},
|
||||
"storeAddRepoButton": "Додати репозиторій",
|
||||
"@storeAddRepoButton": {
|
||||
"description": "Button to submit a new repository URL"
|
||||
@@ -1808,18 +1691,6 @@
|
||||
"@storeEmptyNoResults": {
|
||||
"description": "Message when search/filter returns no results"
|
||||
},
|
||||
"extensionDefaultProvider": "Default Search",
|
||||
"@extensionDefaultProvider": {
|
||||
"description": "Default search provider option"
|
||||
},
|
||||
"extensionDefaultProviderSubtitle": "Use the default metadata search",
|
||||
"@extensionDefaultProviderSubtitle": {
|
||||
"description": "Subtitle for default provider"
|
||||
},
|
||||
"extensionAuthor": "Автор",
|
||||
"@extensionAuthor": {
|
||||
"description": "Extension detail - author"
|
||||
},
|
||||
"extensionId": "Ідентифікатор",
|
||||
"@extensionId": {
|
||||
"description": "Extension detail - unique ID"
|
||||
@@ -2087,10 +1958,6 @@
|
||||
"@downloadLossyOpus128Subtitle": {
|
||||
"description": "Subtitle for Opus 128kbps lossy option"
|
||||
},
|
||||
"qualityNote": "Фактична якість залежить від наявності треку в сервісі",
|
||||
"@qualityNote": {
|
||||
"description": "Note about quality availability"
|
||||
},
|
||||
"downloadAskBeforeDownload": "Запитувати перед завантаженням",
|
||||
"@downloadAskBeforeDownload": {
|
||||
"description": "Setting - show quality picker"
|
||||
@@ -2143,6 +2010,14 @@
|
||||
"@appearanceAmoledDarkSubtitle": {
|
||||
"description": "Subtitle for AMOLED dark"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"queueClearAll": "Усі",
|
||||
"@queueClearAll": {
|
||||
"description": "Button - clear all queue items"
|
||||
@@ -2175,6 +2050,27 @@
|
||||
"@settingsDownloadNetworkSubtitle": {
|
||||
"description": "Subtitle explaining network preference"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"albumFolderArtistAlbum": "Артист / Альбом",
|
||||
"@albumFolderArtistAlbum": {
|
||||
"description": "Album folder option"
|
||||
@@ -2245,10 +2141,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadedAlbumAllSelected": "Усі треки вибрано",
|
||||
"@downloadedAlbumAllSelected": {
|
||||
"description": "Status - all items selected"
|
||||
},
|
||||
"downloadedAlbumTapToSelect": "Натисніть на треки, щоб вибрати",
|
||||
"@downloadedAlbumTapToSelect": {
|
||||
"description": "Selection hint"
|
||||
@@ -2976,6 +2868,22 @@
|
||||
"@cacheLibraryCoverDesc": {
|
||||
"description": "Description of what library cover cache contains"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"cacheExploreFeed": "Огляд кешу стрічки",
|
||||
"@cacheExploreFeed": {
|
||||
"description": "Cache item title for explore home feed cache"
|
||||
@@ -3092,18 +3000,10 @@
|
||||
"@trackSaveCoverArt": {
|
||||
"description": "Menu action - save album cover art as file"
|
||||
},
|
||||
"trackSaveCoverArtSubtitle": "Зберегти обкладинку альбому як файл .jpg",
|
||||
"@trackSaveCoverArtSubtitle": {
|
||||
"description": "Subtitle for save cover art action"
|
||||
},
|
||||
"trackSaveLyrics": "Зберегти текст пісні (.lrc)",
|
||||
"@trackSaveLyrics": {
|
||||
"description": "Menu action - save lyrics as .lrc file"
|
||||
},
|
||||
"trackSaveLyricsSubtitle": "Отримати та зберегти текст пісні у форматі .lrc",
|
||||
"@trackSaveLyricsSubtitle": {
|
||||
"description": "Subtitle for save lyrics action"
|
||||
},
|
||||
"trackSaveLyricsProgress": "Збереження тексту пісні...",
|
||||
"@trackSaveLyricsProgress": {
|
||||
"description": "Snackbar while saving lyrics to file"
|
||||
@@ -3116,10 +3016,6 @@
|
||||
"@trackReEnrichOnlineSubtitle": {
|
||||
"description": "Subtitle for re-enrich metadata action for local items"
|
||||
},
|
||||
"trackReEnrichFieldsTitle": "Поля для оновлення",
|
||||
"@trackReEnrichFieldsTitle": {
|
||||
"description": "Section title for field selection in re-enrich dialog"
|
||||
},
|
||||
"trackReEnrichFieldCover": "Обкладинка",
|
||||
"@trackReEnrichFieldCover": {
|
||||
"description": "Checkbox label for cover art field in re-enrich"
|
||||
@@ -3203,18 +3099,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacFindingProgress": "Пошук FLAC-збігів... ({current}/{total})",
|
||||
"@queueFlacFindingProgress": {
|
||||
"description": "Snackbar while resolving remote matches for local FLAC redownloads",
|
||||
"placeholders": {
|
||||
"current": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacNoReliableMatches": "Не знайдено надійних онлайн-відповідей для вибраного запиту",
|
||||
"@queueFlacNoReliableMatches": {
|
||||
"description": "Snackbar when no safe FLAC redownload matches were found"
|
||||
@@ -3244,10 +3128,6 @@
|
||||
"@trackConvertFormat": {
|
||||
"description": "Menu item - convert audio format"
|
||||
},
|
||||
"trackConvertFormatSubtitle": "Convert to AAC/M4A, MP3, Opus, ALAC, or FLAC",
|
||||
"@trackConvertFormatSubtitle": {
|
||||
"description": "Subtitle for convert format menu item"
|
||||
},
|
||||
"trackConvertTitle": "Конвертувати аудіо",
|
||||
"@trackConvertTitle": {
|
||||
"description": "Title of convert bottom sheet"
|
||||
@@ -3260,6 +3140,14 @@
|
||||
"@trackConvertBitrate": {
|
||||
"description": "Label for bitrate selection"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"trackConvertConfirmTitle": "Підтвердити конверсію",
|
||||
"@trackConvertConfirmTitle": {
|
||||
"description": "Confirmation dialog title"
|
||||
@@ -3291,6 +3179,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"trackConvertLosslessHint": "Lossless конвертація — без втрати якості",
|
||||
"@trackConvertLosslessHint": {
|
||||
"description": "Hint shown when converting between lossless formats"
|
||||
@@ -3316,10 +3216,6 @@
|
||||
"@cueSplitTitle": {
|
||||
"description": "Title for CUE split bottom sheet"
|
||||
},
|
||||
"cueSplitSubtitle": "Розділення CUE+FLAC на окремі треки",
|
||||
"@cueSplitSubtitle": {
|
||||
"description": "Subtitle for CUE split menu item"
|
||||
},
|
||||
"cueSplitAlbum": "Альбом: {album}",
|
||||
"@cueSplitAlbum": {
|
||||
"description": "Album name in CUE split sheet",
|
||||
@@ -3416,10 +3312,6 @@
|
||||
"@collectionFavoriteArtists": {
|
||||
"description": "Custom folder for favorite artists"
|
||||
},
|
||||
"collectionPlaylists": "Списки відтворення",
|
||||
"@collectionPlaylists": {
|
||||
"description": "Custom user playlists folder"
|
||||
},
|
||||
"collectionPlaylist": "Список відтворення",
|
||||
"@collectionPlaylist": {
|
||||
"description": "Single playlist label"
|
||||
@@ -3436,10 +3328,6 @@
|
||||
"@collectionNoPlaylistsYet": {
|
||||
"description": "Empty state title when user has no playlists"
|
||||
},
|
||||
"collectionNoPlaylistsSubtitle": "Створіть список відтворення, щоб розпочати категоризацію треків",
|
||||
"@collectionNoPlaylistsSubtitle": {
|
||||
"description": "Empty state subtitle when user has no playlists"
|
||||
},
|
||||
"collectionPlaylistTracks": "{count, plural, =1{1 трек} other{{count} треків}}",
|
||||
"@collectionPlaylistTracks": {
|
||||
"description": "Track count label for custom playlists",
|
||||
@@ -3476,10 +3364,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistCreated": "Список відтворення створено",
|
||||
"@collectionPlaylistCreated": {
|
||||
"description": "Snackbar after creating playlist"
|
||||
},
|
||||
"collectionPlaylistNameHint": "Назва списку відтворення",
|
||||
"@collectionPlaylistNameHint": {
|
||||
"description": "Hint text for playlist name input"
|
||||
@@ -3496,19 +3380,6 @@
|
||||
"@collectionDeletePlaylist": {
|
||||
"description": "Action to delete playlist"
|
||||
},
|
||||
"collectionDeletePlaylistMessage": "Видалити \"{playlistName}\" та всі треки в ньому?",
|
||||
"@collectionDeletePlaylistMessage": {
|
||||
"description": "Confirmation message for deleting playlist",
|
||||
"placeholders": {
|
||||
"playlistName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistDeleted": "Список відтворення видалено",
|
||||
"@collectionPlaylistDeleted": {
|
||||
"description": "Snackbar after deleting playlist"
|
||||
},
|
||||
"collectionPlaylistRenamed": "Список відтворення перейменовано",
|
||||
"@collectionPlaylistRenamed": {
|
||||
"description": "Snackbar after renaming playlist"
|
||||
@@ -3553,15 +3424,6 @@
|
||||
"@collectionRemoveFromFolder": {
|
||||
"description": "Tooltip for removing track from wishlist/loved folder"
|
||||
},
|
||||
"collectionRemoved": "\"{trackName}\" видалено",
|
||||
"@collectionRemoved": {
|
||||
"description": "Snackbar after removing a track from a collection",
|
||||
"placeholders": {
|
||||
"trackName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionAddedToLoved": "\"{trackName}\" додано до списку улюблених",
|
||||
"@collectionAddedToLoved": {
|
||||
"description": "Snackbar after adding track to loved folder",
|
||||
@@ -3705,15 +3567,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionBatchConvertProgress": "Конвертування {current} з {total}...",
|
||||
"@selectionBatchConvertProgress": {
|
||||
"description": "Snackbar during batch conversion progress",
|
||||
"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": {
|
||||
"current": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
"format": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3879,10 +3741,6 @@
|
||||
"@backupImportButton": {
|
||||
"description": "Button to pick a backup file to restore"
|
||||
},
|
||||
"backupCreating": "Creating backup...",
|
||||
"@backupCreating": {
|
||||
"description": "Progress text while a backup is being created"
|
||||
},
|
||||
"backupCreated": "Backup created",
|
||||
"@backupCreated": {
|
||||
"description": "Snackbar after a backup file is created"
|
||||
@@ -3891,10 +3749,6 @@
|
||||
"@backupCreateFailed": {
|
||||
"description": "Snackbar when backup creation fails"
|
||||
},
|
||||
"backupEmpty": "There is nothing to back up yet",
|
||||
"@backupEmpty": {
|
||||
"description": "Snackbar when there is no data to back up"
|
||||
},
|
||||
"backupRestoreConfirmTitle": "Restore this backup?",
|
||||
"@backupRestoreConfirmTitle": {
|
||||
"description": "Confirmation dialog title before restoring a backup"
|
||||
@@ -3907,10 +3761,6 @@
|
||||
"@backupRestoreConfirmButton": {
|
||||
"description": "Confirm button to proceed with restore"
|
||||
},
|
||||
"backupRestoring": "Restoring backup...",
|
||||
"@backupRestoring": {
|
||||
"description": "Progress text while restoring a backup"
|
||||
},
|
||||
"backupRestored": "Backup restored successfully",
|
||||
"@backupRestored": {
|
||||
"description": "Snackbar after a successful restore"
|
||||
@@ -3997,7 +3847,7 @@
|
||||
"@backupIncludeSecretsDescription": {
|
||||
"description": "Explanation for the include-credentials toggle"
|
||||
},
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the store.",
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the repo.",
|
||||
"@backupExtensionsRestoreFailed": {
|
||||
"description": "Snackbar/hint when some extensions failed to reinstall during restore",
|
||||
"placeholders": {
|
||||
@@ -4110,6 +3960,26 @@
|
||||
"@storageModeSafSubtitle": {
|
||||
"description": "Subtitle for SAF storage mode"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFilenameDescription": "Use {artist}, {title}, {album}, {track}, {year}, {date}, {disc} as placeholders.",
|
||||
"@downloadFilenameDescription": {
|
||||
"description": "Description shown in filename format editor"
|
||||
@@ -4178,10 +4048,6 @@
|
||||
"@downloadSelectServiceToEnable": {
|
||||
"description": "Subtitle when quality picker is disabled due to extension service"
|
||||
},
|
||||
"downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality",
|
||||
"@downloadSelectTidalQobuz": {
|
||||
"description": "Legacy info shown when a provider does not expose quality options"
|
||||
},
|
||||
"downloadEmbedLyricsDisabled": "Enable metadata embedding first",
|
||||
"@downloadEmbedLyricsDisabled": {
|
||||
"description": "Subtitle when lyrics embedding is blocked by metadata toggle"
|
||||
@@ -4430,10 +4296,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueDownloadedHeader": "Завантажено",
|
||||
"@queueDownloadedHeader": {
|
||||
"description": "Header label for downloaded items section in library"
|
||||
},
|
||||
"queueFilteringIndicator": "Фільтрування...",
|
||||
"@queueFilteringIndicator": {
|
||||
"description": "Shown while filter results are being computed"
|
||||
@@ -4588,15 +4450,6 @@
|
||||
"@audioAnalysisRescanning": {
|
||||
"description": "Loading text while audio is being re-analyzed after an explicit refresh"
|
||||
},
|
||||
"extensionsSearchWith": "Пошук за допомогою{providerName}",
|
||||
"@extensionsSearchWith": {
|
||||
"description": "Extensions page - subtitle for default metadata search provider option",
|
||||
"placeholders": {
|
||||
"providerName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsHomeFeedProvider": "Постачальник оновлень домашньої стрічки",
|
||||
"@extensionsHomeFeedProvider": {
|
||||
"description": "Extensions page - label for home feed provider selector"
|
||||
@@ -4634,14 +4487,6 @@
|
||||
"@extensionsNoHomeFeedExtensions": {
|
||||
"description": "Extensions page - shown when no installed extension has home feed"
|
||||
},
|
||||
"sortAlphaAsc": "А-Я",
|
||||
"@sortAlphaAsc": {
|
||||
"description": "Sort option - alphabetical ascending"
|
||||
},
|
||||
"sortAlphaDesc": "Я-А",
|
||||
"@sortAlphaDesc": {
|
||||
"description": "Sort option - alphabetical descending"
|
||||
},
|
||||
"cancelDownloadTitle": "Скасувати завантаження?",
|
||||
"@cancelDownloadTitle": {
|
||||
"description": "Dialog title when confirming cancellation of an active download"
|
||||
@@ -4676,34 +4521,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorLoadAlbum": "Не вдалося завантажити альбом",
|
||||
"@errorLoadAlbum": {
|
||||
"description": "Error state shown when album fails to load"
|
||||
},
|
||||
"errorLoadPlaylist": "Не вдалося завантажити список відтворення",
|
||||
"@errorLoadPlaylist": {
|
||||
"description": "Error state shown when playlist fails to load"
|
||||
},
|
||||
"errorLoadArtist": "Не вдалося завантажити артиста",
|
||||
"@errorLoadArtist": {
|
||||
"description": "Error state shown when artist fails to load"
|
||||
},
|
||||
"notifChannelDownloadName": "Прогрес завантаження",
|
||||
"@notifChannelDownloadName": {
|
||||
"description": "Android notification channel name for download progress"
|
||||
},
|
||||
"notifChannelDownloadDesc": "Показує прогрес завантаження треків",
|
||||
"@notifChannelDownloadDesc": {
|
||||
"description": "Android notification channel description for download progress"
|
||||
},
|
||||
"notifChannelLibraryScanName": "Сканування бібліотеки",
|
||||
"@notifChannelLibraryScanName": {
|
||||
"description": "Android notification channel name for library scan"
|
||||
},
|
||||
"notifChannelLibraryScanDesc": "Показує перебіг сканування локальної бібліотеки",
|
||||
"@notifChannelLibraryScanDesc": {
|
||||
"description": "Android notification channel description for library scan"
|
||||
},
|
||||
"notifDownloadingTrack": "Завантаження {trackName}",
|
||||
"@notifDownloadingTrack": {
|
||||
"description": "Notification title while downloading a track",
|
||||
@@ -4770,6 +4587,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"notifAllDownloadsComplete": "Усі завантаження завершено",
|
||||
"@notifAllDownloadsComplete": {
|
||||
"description": "Notification title when all downloads finish successfully"
|
||||
@@ -4956,14 +4781,6 @@
|
||||
"@actionPaste": {
|
||||
"description": "Generic action - paste from clipboard"
|
||||
},
|
||||
"searchTracksHint": "Search tracks...",
|
||||
"@searchTracksHint": {
|
||||
"description": "Placeholder for the search screen input"
|
||||
},
|
||||
"searchTracksEmptyPrompt": "Search for tracks",
|
||||
"@searchTracksEmptyPrompt": {
|
||||
"description": "Empty-state prompt on the search screen"
|
||||
},
|
||||
"tutorialSearchHint": "Paste or search...",
|
||||
"@tutorialSearchHint": {
|
||||
"description": "Placeholder shown in the tutorial search demo"
|
||||
@@ -4992,14 +4809,6 @@
|
||||
"@optionsEmbedMetadataSubtitleOff": {
|
||||
"description": "Subtitle when metadata embedding is disabled"
|
||||
},
|
||||
"optionsMaxQualityCoverSubtitleDisabled": "Disabled when metadata embedding is off",
|
||||
"@optionsMaxQualityCoverSubtitleDisabled": {
|
||||
"description": "Subtitle for max quality cover when metadata embedding is disabled"
|
||||
},
|
||||
"downloadFilenameHintExample": "{artist} - {title}",
|
||||
"@downloadFilenameHintExample": {
|
||||
"description": "Example placeholder for the download filename format input"
|
||||
},
|
||||
"trackCoverNoEmbeddedArt": "No embedded album art found",
|
||||
"@trackCoverNoEmbeddedArt": {
|
||||
"description": "Message shown when a track file has no embedded cover art"
|
||||
@@ -5239,14 +5048,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsDefaultSearchTabAlbums": "Albums",
|
||||
"@optionsDefaultSearchTabAlbums": {
|
||||
"description": "Default search tab option - Albums tab"
|
||||
},
|
||||
"optionsDefaultSearchTabTracks": "Tracks",
|
||||
"@optionsDefaultSearchTabTracks": {
|
||||
"description": "Default search tab option - Tracks tab"
|
||||
},
|
||||
"settingsFiles": "Files & Folders",
|
||||
"@settingsFiles": {
|
||||
"description": "Settings menu item - file and folder settings"
|
||||
@@ -5307,10 +5108,26 @@
|
||||
"@downloadDeduplicationEnabled": {
|
||||
"description": "Subtitle when deduplication is on"
|
||||
},
|
||||
"downloadDeduplicationWithQualityVariants": "Existing files at the selected quality will be skipped",
|
||||
"@downloadDeduplicationWithQualityVariants": {
|
||||
"description": "Deduplication subtitle when separate quality versions are allowed"
|
||||
},
|
||||
"downloadDeduplicationDisabled": "All tracks will be downloaded regardless of history",
|
||||
"@downloadDeduplicationDisabled": {
|
||||
"description": "Subtitle when deduplication is off"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFallbackExtensions": "Fallback Extensions",
|
||||
"@downloadFallbackExtensions": {
|
||||
"description": "Settings item for configuring fallback extension providers"
|
||||
@@ -5451,6 +5268,11 @@
|
||||
}
|
||||
},
|
||||
"queueDownloadStarting": "Starting...",
|
||||
"queueCheckingDownloadSession": "Checking download session...",
|
||||
"queueResolvingDownloadMetadata": "Resolving track metadata...",
|
||||
"queueResolvingDownloadStream": "Preparing audio stream...",
|
||||
"queueWaitingForVerification": "Waiting for verification...",
|
||||
"queueResumingAfterVerification": "Resuming after verification...",
|
||||
"@queueDownloadStarting": {
|
||||
"description": "Queue status before download progress is available"
|
||||
},
|
||||
@@ -5539,7 +5361,7 @@
|
||||
"@downloadNativeWorker": {
|
||||
"description": "Setting title for Android native download worker"
|
||||
},
|
||||
"downloadNativeWorkerSubtitle": "Beta Android service worker for extension downloads",
|
||||
"downloadNativeWorkerSubtitle": "Android background service for extension downloads",
|
||||
"@downloadNativeWorkerSubtitle": {
|
||||
"description": "Setting subtitle for Android native download worker"
|
||||
},
|
||||
@@ -5699,10 +5521,6 @@
|
||||
"@errorInvalidFolderSelected": {
|
||||
"description": "Error when the selected folder is invalid"
|
||||
},
|
||||
"errorCouldNotKeepFolderAccess": "Could not keep access to the selected folder",
|
||||
"@errorCouldNotKeepFolderAccess": {
|
||||
"description": "Error when persistent folder access cannot be saved"
|
||||
},
|
||||
"storeAnyVersion": "Any",
|
||||
"@storeAnyVersion": {
|
||||
"description": "Store detail value when any app version is accepted"
|
||||
|
||||
+146
-328
@@ -19,7 +19,7 @@
|
||||
},
|
||||
"navStore": "仓库",
|
||||
"@navStore": {
|
||||
"description": "Bottom navigation - Extension store tab"
|
||||
"description": "Bottom navigation - Extension repo tab"
|
||||
},
|
||||
"homeTitle": "主页",
|
||||
"@homeTitle": {
|
||||
@@ -73,10 +73,6 @@
|
||||
"@settingsAppearance": {
|
||||
"description": "Settings section - visual customization"
|
||||
},
|
||||
"settingsOptions": "选项",
|
||||
"@settingsOptions": {
|
||||
"description": "Settings section - app options"
|
||||
},
|
||||
"settingsExtensions": "扩展",
|
||||
"@settingsExtensions": {
|
||||
"description": "Settings section - extension management"
|
||||
@@ -145,10 +141,6 @@
|
||||
"@appearanceHistoryViewGrid": {
|
||||
"description": "Grid layout option"
|
||||
},
|
||||
"optionsTitle": "选项",
|
||||
"@optionsTitle": {
|
||||
"description": "Options settings page title"
|
||||
},
|
||||
"optionsPrimaryProvider": "主要提供者",
|
||||
"@optionsPrimaryProvider": {
|
||||
"description": "Main search provider setting"
|
||||
@@ -174,10 +166,6 @@
|
||||
"@optionsDefaultSearchTabSubtitle": {
|
||||
"description": "Subtitle for the preferred default search tab setting"
|
||||
},
|
||||
"optionsSwitchBack": "选择要从扩展中返回的默认搜索服务器",
|
||||
"@optionsSwitchBack": {
|
||||
"description": "Hint to switch back from extension search"
|
||||
},
|
||||
"optionsAutoFallback": "自动回退",
|
||||
"@optionsAutoFallback": {
|
||||
"description": "Auto-retry with other services"
|
||||
@@ -186,18 +174,6 @@
|
||||
"@optionsAutoFallbackSubtitle": {
|
||||
"description": "Subtitle for auto fallback"
|
||||
},
|
||||
"optionsUseExtensionProviders": "使用扩展提供商",
|
||||
"@optionsUseExtensionProviders": {
|
||||
"description": "Legacy setting label for extension download providers"
|
||||
},
|
||||
"optionsUseExtensionProvidersOn": "扩展提供商已启用",
|
||||
"@optionsUseExtensionProvidersOn": {
|
||||
"description": "Status when extension providers enabled"
|
||||
},
|
||||
"optionsUseExtensionProvidersOff": "需要扩展提供商",
|
||||
"@optionsUseExtensionProvidersOff": {
|
||||
"description": "Legacy status when extension providers would be disabled"
|
||||
},
|
||||
"optionsEmbedLyrics": "内嵌歌词",
|
||||
"@optionsEmbedLyrics": {
|
||||
"description": "Embed lyrics in audio files"
|
||||
@@ -230,10 +206,6 @@
|
||||
"@trackReplayGain": {
|
||||
"description": "Three-dot menu option to scan loudness and write ReplayGain tags"
|
||||
},
|
||||
"trackReplayGainSubtitle": "分析响度并写入ReplayGain标签",
|
||||
"@trackReplayGainSubtitle": {
|
||||
"description": "Subtitle for the rescan ReplayGain menu option"
|
||||
},
|
||||
"trackReplayGainScanning": "正在分析声音……",
|
||||
"@trackReplayGainScanning": {
|
||||
"description": "Snackbar/progress message while scanning ReplayGain for a single track"
|
||||
@@ -310,11 +282,11 @@
|
||||
},
|
||||
"optionsExtensionStore": "扩展仓库",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide store tab"
|
||||
"description": "Show/hide repo tab"
|
||||
},
|
||||
"optionsExtensionStoreSubtitle": "在导航中显示仓库标签页",
|
||||
"@optionsExtensionStoreSubtitle": {
|
||||
"description": "Subtitle for extension store toggle"
|
||||
"description": "Subtitle for extension repo toggle"
|
||||
},
|
||||
"optionsCheckUpdates": "检查更新",
|
||||
"@optionsCheckUpdates": {
|
||||
@@ -360,31 +332,6 @@
|
||||
"@optionsDetailedLoggingOff": {
|
||||
"description": "Status when logging disabled"
|
||||
},
|
||||
"optionsSpotifyCredentials": "Spotify 凭据",
|
||||
"@optionsSpotifyCredentials": {
|
||||
"description": "Spotify API credentials setting"
|
||||
},
|
||||
"optionsSpotifyCredentialsConfigured": "客户端 ID:{clientId}……",
|
||||
"@optionsSpotifyCredentialsConfigured": {
|
||||
"description": "Shows configured client ID preview",
|
||||
"placeholders": {
|
||||
"clientId": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsSpotifyCredentialsRequired": "必填 - 点击配置",
|
||||
"@optionsSpotifyCredentialsRequired": {
|
||||
"description": "Prompt to set up credentials"
|
||||
},
|
||||
"optionsSpotifyWarning": "Spotify 需要您自己的 API 凭据。在 developer.spotify.com 免费获取",
|
||||
"@optionsSpotifyWarning": {
|
||||
"description": "Info about Spotify API requirement"
|
||||
},
|
||||
"optionsSpotifyDeprecationWarning": "Spotify 搜索将在 2026 年 3 月 3 日因 Spotify API 更改而被废弃。请切换到 Deezer。",
|
||||
"@optionsSpotifyDeprecationWarning": {
|
||||
"description": "Warning about Spotify API deprecation"
|
||||
},
|
||||
"extensionsTitle": "扩展",
|
||||
"@extensionsTitle": {
|
||||
"description": "Extensions page title"
|
||||
@@ -402,26 +349,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsAuthor": "来自 {author}",
|
||||
"@extensionsAuthor": {
|
||||
"description": "Extension author credit",
|
||||
"placeholders": {
|
||||
"author": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsUninstall": "卸载",
|
||||
"@extensionsUninstall": {
|
||||
"description": "Uninstall extension button"
|
||||
},
|
||||
"storeTitle": "扩展仓库地址",
|
||||
"@storeTitle": {
|
||||
"description": "Store screen title"
|
||||
"description": "Repo screen title"
|
||||
},
|
||||
"storeSearch": "搜索扩展……",
|
||||
"@storeSearch": {
|
||||
"description": "Store search placeholder"
|
||||
"description": "Repo search placeholder"
|
||||
},
|
||||
"storeInstall": "安装",
|
||||
"@storeInstall": {
|
||||
@@ -912,14 +850,6 @@
|
||||
"@snackbarHistoryCleared": {
|
||||
"description": "Snackbar - history deleted"
|
||||
},
|
||||
"snackbarCredentialsSaved": "凭据已保存",
|
||||
"@snackbarCredentialsSaved": {
|
||||
"description": "Snackbar - Spotify credentials saved"
|
||||
},
|
||||
"snackbarCredentialsCleared": "凭据已清除",
|
||||
"@snackbarCredentialsCleared": {
|
||||
"description": "Snackbar - Spotify credentials removed"
|
||||
},
|
||||
"snackbarDeletedTracks": "已删除 {count} {count, plural, =1{首歌曲} other{首歌曲}}",
|
||||
"@snackbarDeletedTracks": {
|
||||
"description": "Snackbar - tracks deleted",
|
||||
@@ -938,10 +868,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"snackbarFillAllFields": "请填写所有字段",
|
||||
"@snackbarFillAllFields": {
|
||||
"description": "Snackbar - validation error"
|
||||
},
|
||||
"snackbarViewQueue": "查看队列",
|
||||
"@snackbarViewQueue": {
|
||||
"description": "Snackbar action - view download queue"
|
||||
@@ -1055,14 +981,6 @@
|
||||
"@actionDeselect": {
|
||||
"description": "Action button - deselect all"
|
||||
},
|
||||
"actionRemoveCredentials": "Remove Credentials",
|
||||
"@actionRemoveCredentials": {
|
||||
"description": "Action button - delete Spotify credentials"
|
||||
},
|
||||
"actionSaveCredentials": "Save Credentials",
|
||||
"@actionSaveCredentials": {
|
||||
"description": "Action button - save Spotify credentials"
|
||||
},
|
||||
"selectionSelected": "{count} selected",
|
||||
"@selectionSelected": {
|
||||
"description": "Selection count indicator",
|
||||
@@ -1236,6 +1154,19 @@
|
||||
"@updateNewVersionReady": {
|
||||
"description": "Update subtitle"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"updateCurrent": "Current",
|
||||
"@updateCurrent": {
|
||||
"description": "Label for current version"
|
||||
@@ -1272,10 +1203,6 @@
|
||||
"@providerPriorityInfo": {
|
||||
"description": "Info tip about fallback behavior"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsTitle": "Extension Fallback",
|
||||
"@providerPriorityFallbackExtensionsTitle": {
|
||||
"description": "Section title for choosing which download extensions can be used as fallback providers"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsDescription": "Choose which installed download extensions can be used during automatic fallback.",
|
||||
"@providerPriorityFallbackExtensionsDescription": {
|
||||
"description": "Section description for extension fallback selection"
|
||||
@@ -1284,10 +1211,6 @@
|
||||
"@providerPriorityFallbackExtensionsHint": {
|
||||
"description": "Hint below the extension fallback selection list"
|
||||
},
|
||||
"providerBuiltIn": "Legacy",
|
||||
"@providerBuiltIn": {
|
||||
"description": "Legacy label retained for old generated localization compatibility"
|
||||
},
|
||||
"providerExtension": "Extension",
|
||||
"@providerExtension": {
|
||||
"description": "Label for extension-provided providers"
|
||||
@@ -1304,14 +1227,6 @@
|
||||
"@metadataProviderPriorityInfo": {
|
||||
"description": "Info tip about rate limits"
|
||||
},
|
||||
"metadataNoRateLimits": "No rate limits",
|
||||
"@metadataNoRateLimits": {
|
||||
"description": "Deezer provider description"
|
||||
},
|
||||
"metadataMayRateLimit": "May rate limit",
|
||||
"@metadataMayRateLimit": {
|
||||
"description": "Spotify provider description"
|
||||
},
|
||||
"logTitle": "Logs",
|
||||
"@logTitle": {
|
||||
"description": "Logs screen title"
|
||||
@@ -1378,30 +1293,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"credentialsTitle": "Spotify Credentials",
|
||||
"@credentialsTitle": {
|
||||
"description": "Credentials dialog title"
|
||||
},
|
||||
"credentialsDescription": "Enter your Client ID and Secret to use your own Spotify application quota.",
|
||||
"@credentialsDescription": {
|
||||
"description": "Credentials dialog explanation"
|
||||
},
|
||||
"credentialsClientId": "Client ID",
|
||||
"@credentialsClientId": {
|
||||
"description": "Client ID field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientIdHint": "Paste Client ID",
|
||||
"@credentialsClientIdHint": {
|
||||
"description": "Client ID placeholder"
|
||||
},
|
||||
"credentialsClientSecret": "Client Secret",
|
||||
"@credentialsClientSecret": {
|
||||
"description": "Client Secret field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientSecretHint": "Paste Client Secret",
|
||||
"@credentialsClientSecretHint": {
|
||||
"description": "Client Secret placeholder"
|
||||
},
|
||||
"channelStable": "Stable",
|
||||
"@channelStable": {
|
||||
"description": "Update channel - stable releases"
|
||||
@@ -1510,10 +1401,6 @@
|
||||
"@settingsDownloadSubtitle": {
|
||||
"description": "Download settings description"
|
||||
},
|
||||
"settingsOptionsSubtitle": "Fallback, metadata, lyrics, cover art",
|
||||
"@settingsOptionsSubtitle": {
|
||||
"description": "Options settings description"
|
||||
},
|
||||
"settingsExtensionsSubtitle": "Manage download providers",
|
||||
"@settingsExtensionsSubtitle": {
|
||||
"description": "Extensions settings description"
|
||||
@@ -1730,27 +1617,27 @@
|
||||
},
|
||||
"storeFilterAll": "All",
|
||||
"@storeFilterAll": {
|
||||
"description": "Store filter - all extensions"
|
||||
"description": "Repo filter - all extensions"
|
||||
},
|
||||
"storeFilterMetadata": "Metadata",
|
||||
"@storeFilterMetadata": {
|
||||
"description": "Store filter - metadata providers"
|
||||
"description": "Repo filter - metadata providers"
|
||||
},
|
||||
"storeFilterDownload": "Download",
|
||||
"@storeFilterDownload": {
|
||||
"description": "Store filter - download providers"
|
||||
"description": "Repo filter - download providers"
|
||||
},
|
||||
"storeFilterUtility": "Utility",
|
||||
"@storeFilterUtility": {
|
||||
"description": "Store filter - utility extensions"
|
||||
"description": "Repo filter - utility extensions"
|
||||
},
|
||||
"storeFilterLyrics": "Lyrics",
|
||||
"@storeFilterLyrics": {
|
||||
"description": "Store filter - lyrics providers"
|
||||
"description": "Repo filter - lyrics providers"
|
||||
},
|
||||
"storeFilterIntegration": "Integration",
|
||||
"@storeFilterIntegration": {
|
||||
"description": "Store filter - integrations"
|
||||
"description": "Repo filter - integrations"
|
||||
},
|
||||
"storeClearFilters": "Clear filters",
|
||||
"@storeClearFilters": {
|
||||
@@ -1772,10 +1659,6 @@
|
||||
"@storeRepoUrlHint": {
|
||||
"description": "Hint/placeholder for the repository URL input field"
|
||||
},
|
||||
"storeRepoUrlHelper": "e.g. https://github.com/user/extensions-repo",
|
||||
"@storeRepoUrlHelper": {
|
||||
"description": "Helper text below the repository URL input field"
|
||||
},
|
||||
"storeAddRepoButton": "Add Repository",
|
||||
"@storeAddRepoButton": {
|
||||
"description": "Button to submit a new repository URL"
|
||||
@@ -1808,18 +1691,6 @@
|
||||
"@storeEmptyNoResults": {
|
||||
"description": "Message when search/filter returns no results"
|
||||
},
|
||||
"extensionDefaultProvider": "Default Search",
|
||||
"@extensionDefaultProvider": {
|
||||
"description": "Default search provider option"
|
||||
},
|
||||
"extensionDefaultProviderSubtitle": "Use the default metadata search",
|
||||
"@extensionDefaultProviderSubtitle": {
|
||||
"description": "Subtitle for default provider"
|
||||
},
|
||||
"extensionAuthor": "Author",
|
||||
"@extensionAuthor": {
|
||||
"description": "Extension detail - author"
|
||||
},
|
||||
"extensionId": "ID",
|
||||
"@extensionId": {
|
||||
"description": "Extension detail - unique ID"
|
||||
@@ -2087,10 +1958,6 @@
|
||||
"@downloadLossyOpus128Subtitle": {
|
||||
"description": "Subtitle for Opus 128kbps lossy option"
|
||||
},
|
||||
"qualityNote": "Actual quality depends on track availability from the service",
|
||||
"@qualityNote": {
|
||||
"description": "Note about quality availability"
|
||||
},
|
||||
"downloadAskBeforeDownload": "Ask Before Download",
|
||||
"@downloadAskBeforeDownload": {
|
||||
"description": "Setting - show quality picker"
|
||||
@@ -2143,6 +2010,14 @@
|
||||
"@appearanceAmoledDarkSubtitle": {
|
||||
"description": "Subtitle for AMOLED dark"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"queueClearAll": "Clear All",
|
||||
"@queueClearAll": {
|
||||
"description": "Button - clear all queue items"
|
||||
@@ -2175,6 +2050,27 @@
|
||||
"@settingsDownloadNetworkSubtitle": {
|
||||
"description": "Subtitle explaining network preference"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"albumFolderArtistAlbum": "Artist / Album",
|
||||
"@albumFolderArtistAlbum": {
|
||||
"description": "Album folder option"
|
||||
@@ -2245,10 +2141,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadedAlbumAllSelected": "All tracks selected",
|
||||
"@downloadedAlbumAllSelected": {
|
||||
"description": "Status - all items selected"
|
||||
},
|
||||
"downloadedAlbumTapToSelect": "Tap tracks to select",
|
||||
"@downloadedAlbumTapToSelect": {
|
||||
"description": "Selection hint"
|
||||
@@ -2976,6 +2868,22 @@
|
||||
"@cacheLibraryCoverDesc": {
|
||||
"description": "Description of what library cover cache contains"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"cacheExploreFeed": "Explore feed cache",
|
||||
"@cacheExploreFeed": {
|
||||
"description": "Cache item title for explore home feed cache"
|
||||
@@ -3092,18 +3000,10 @@
|
||||
"@trackSaveCoverArt": {
|
||||
"description": "Menu action - save album cover art as file"
|
||||
},
|
||||
"trackSaveCoverArtSubtitle": "Save album art as .jpg file",
|
||||
"@trackSaveCoverArtSubtitle": {
|
||||
"description": "Subtitle for save cover art action"
|
||||
},
|
||||
"trackSaveLyrics": "Save Lyrics (.lrc)",
|
||||
"@trackSaveLyrics": {
|
||||
"description": "Menu action - save lyrics as .lrc file"
|
||||
},
|
||||
"trackSaveLyricsSubtitle": "Fetch and save lyrics as .lrc file",
|
||||
"@trackSaveLyricsSubtitle": {
|
||||
"description": "Subtitle for save lyrics action"
|
||||
},
|
||||
"trackSaveLyricsProgress": "Saving lyrics...",
|
||||
"@trackSaveLyricsProgress": {
|
||||
"description": "Snackbar while saving lyrics to file"
|
||||
@@ -3116,10 +3016,6 @@
|
||||
"@trackReEnrichOnlineSubtitle": {
|
||||
"description": "Subtitle for re-enrich metadata action for local items"
|
||||
},
|
||||
"trackReEnrichFieldsTitle": "Fields to update",
|
||||
"@trackReEnrichFieldsTitle": {
|
||||
"description": "Section title for field selection in re-enrich dialog"
|
||||
},
|
||||
"trackReEnrichFieldCover": "Cover Art",
|
||||
"@trackReEnrichFieldCover": {
|
||||
"description": "Checkbox label for cover art field in re-enrich"
|
||||
@@ -3203,18 +3099,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacFindingProgress": "Finding FLAC matches... ({current}/{total})",
|
||||
"@queueFlacFindingProgress": {
|
||||
"description": "Snackbar while resolving remote matches for local FLAC redownloads",
|
||||
"placeholders": {
|
||||
"current": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacNoReliableMatches": "No reliable online matches found for the selection",
|
||||
"@queueFlacNoReliableMatches": {
|
||||
"description": "Snackbar when no safe FLAC redownload matches were found"
|
||||
@@ -3244,10 +3128,6 @@
|
||||
"@trackConvertFormat": {
|
||||
"description": "Menu item - convert audio format"
|
||||
},
|
||||
"trackConvertFormatSubtitle": "Convert to AAC/M4A, MP3, Opus, ALAC, or FLAC",
|
||||
"@trackConvertFormatSubtitle": {
|
||||
"description": "Subtitle for convert format menu item"
|
||||
},
|
||||
"trackConvertTitle": "Convert Audio",
|
||||
"@trackConvertTitle": {
|
||||
"description": "Title of convert bottom sheet"
|
||||
@@ -3260,6 +3140,14 @@
|
||||
"@trackConvertBitrate": {
|
||||
"description": "Label for bitrate selection"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"trackConvertConfirmTitle": "Confirm Conversion",
|
||||
"@trackConvertConfirmTitle": {
|
||||
"description": "Confirmation dialog title"
|
||||
@@ -3291,6 +3179,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"trackConvertLosslessHint": "Lossless conversion — no quality loss",
|
||||
"@trackConvertLosslessHint": {
|
||||
"description": "Hint shown when converting between lossless formats"
|
||||
@@ -3316,10 +3216,6 @@
|
||||
"@cueSplitTitle": {
|
||||
"description": "Title for CUE split bottom sheet"
|
||||
},
|
||||
"cueSplitSubtitle": "Split CUE+FLAC into individual tracks",
|
||||
"@cueSplitSubtitle": {
|
||||
"description": "Subtitle for CUE split menu item"
|
||||
},
|
||||
"cueSplitAlbum": "Album: {album}",
|
||||
"@cueSplitAlbum": {
|
||||
"description": "Album name in CUE split sheet",
|
||||
@@ -3416,10 +3312,6 @@
|
||||
"@collectionFavoriteArtists": {
|
||||
"description": "Custom folder for favorite artists"
|
||||
},
|
||||
"collectionPlaylists": "Playlists",
|
||||
"@collectionPlaylists": {
|
||||
"description": "Custom user playlists folder"
|
||||
},
|
||||
"collectionPlaylist": "Playlist",
|
||||
"@collectionPlaylist": {
|
||||
"description": "Single playlist label"
|
||||
@@ -3436,10 +3328,6 @@
|
||||
"@collectionNoPlaylistsYet": {
|
||||
"description": "Empty state title when user has no playlists"
|
||||
},
|
||||
"collectionNoPlaylistsSubtitle": "Create a playlist to start categorizing tracks",
|
||||
"@collectionNoPlaylistsSubtitle": {
|
||||
"description": "Empty state subtitle when user has no playlists"
|
||||
},
|
||||
"collectionPlaylistTracks": "{count, plural, =1{1 track} other{{count} tracks}}",
|
||||
"@collectionPlaylistTracks": {
|
||||
"description": "Track count label for custom playlists",
|
||||
@@ -3476,10 +3364,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistCreated": "Playlist created",
|
||||
"@collectionPlaylistCreated": {
|
||||
"description": "Snackbar after creating playlist"
|
||||
},
|
||||
"collectionPlaylistNameHint": "Playlist name",
|
||||
"@collectionPlaylistNameHint": {
|
||||
"description": "Hint text for playlist name input"
|
||||
@@ -3496,19 +3380,6 @@
|
||||
"@collectionDeletePlaylist": {
|
||||
"description": "Action to delete playlist"
|
||||
},
|
||||
"collectionDeletePlaylistMessage": "Delete \"{playlistName}\" and all tracks inside it?",
|
||||
"@collectionDeletePlaylistMessage": {
|
||||
"description": "Confirmation message for deleting playlist",
|
||||
"placeholders": {
|
||||
"playlistName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistDeleted": "Playlist deleted",
|
||||
"@collectionPlaylistDeleted": {
|
||||
"description": "Snackbar after deleting playlist"
|
||||
},
|
||||
"collectionPlaylistRenamed": "Playlist renamed",
|
||||
"@collectionPlaylistRenamed": {
|
||||
"description": "Snackbar after renaming playlist"
|
||||
@@ -3553,15 +3424,6 @@
|
||||
"@collectionRemoveFromFolder": {
|
||||
"description": "Tooltip for removing track from wishlist/loved folder"
|
||||
},
|
||||
"collectionRemoved": "\"{trackName}\" removed",
|
||||
"@collectionRemoved": {
|
||||
"description": "Snackbar after removing a track from a collection",
|
||||
"placeholders": {
|
||||
"trackName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionAddedToLoved": "\"{trackName}\" added to Loved",
|
||||
"@collectionAddedToLoved": {
|
||||
"description": "Snackbar after adding track to loved folder",
|
||||
@@ -3705,15 +3567,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionBatchConvertProgress": "Converting {current} of {total}...",
|
||||
"@selectionBatchConvertProgress": {
|
||||
"description": "Snackbar during batch conversion progress",
|
||||
"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": {
|
||||
"current": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
"format": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3879,10 +3741,6 @@
|
||||
"@backupImportButton": {
|
||||
"description": "Button to pick a backup file to restore"
|
||||
},
|
||||
"backupCreating": "Creating backup...",
|
||||
"@backupCreating": {
|
||||
"description": "Progress text while a backup is being created"
|
||||
},
|
||||
"backupCreated": "Backup created",
|
||||
"@backupCreated": {
|
||||
"description": "Snackbar after a backup file is created"
|
||||
@@ -3891,10 +3749,6 @@
|
||||
"@backupCreateFailed": {
|
||||
"description": "Snackbar when backup creation fails"
|
||||
},
|
||||
"backupEmpty": "There is nothing to back up yet",
|
||||
"@backupEmpty": {
|
||||
"description": "Snackbar when there is no data to back up"
|
||||
},
|
||||
"backupRestoreConfirmTitle": "Restore this backup?",
|
||||
"@backupRestoreConfirmTitle": {
|
||||
"description": "Confirmation dialog title before restoring a backup"
|
||||
@@ -3907,10 +3761,6 @@
|
||||
"@backupRestoreConfirmButton": {
|
||||
"description": "Confirm button to proceed with restore"
|
||||
},
|
||||
"backupRestoring": "Restoring backup...",
|
||||
"@backupRestoring": {
|
||||
"description": "Progress text while restoring a backup"
|
||||
},
|
||||
"backupRestored": "Backup restored successfully",
|
||||
"@backupRestored": {
|
||||
"description": "Snackbar after a successful restore"
|
||||
@@ -3997,7 +3847,7 @@
|
||||
"@backupIncludeSecretsDescription": {
|
||||
"description": "Explanation for the include-credentials toggle"
|
||||
},
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the store.",
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the repo.",
|
||||
"@backupExtensionsRestoreFailed": {
|
||||
"description": "Snackbar/hint when some extensions failed to reinstall during restore",
|
||||
"placeholders": {
|
||||
@@ -4110,6 +3960,26 @@
|
||||
"@storageModeSafSubtitle": {
|
||||
"description": "Subtitle for SAF storage mode"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFilenameDescription": "Use {artist}, {title}, {album}, {track}, {year}, {date}, {disc} as placeholders.",
|
||||
"@downloadFilenameDescription": {
|
||||
"description": "Description shown in filename format editor"
|
||||
@@ -4178,10 +4048,6 @@
|
||||
"@downloadSelectServiceToEnable": {
|
||||
"description": "Subtitle when quality picker is disabled due to extension service"
|
||||
},
|
||||
"downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality",
|
||||
"@downloadSelectTidalQobuz": {
|
||||
"description": "Legacy info shown when a provider does not expose quality options"
|
||||
},
|
||||
"downloadEmbedLyricsDisabled": "Enable metadata embedding first",
|
||||
"@downloadEmbedLyricsDisabled": {
|
||||
"description": "Subtitle when lyrics embedding is blocked by metadata toggle"
|
||||
@@ -4430,10 +4296,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueDownloadedHeader": "Downloaded",
|
||||
"@queueDownloadedHeader": {
|
||||
"description": "Header label for downloaded items section in library"
|
||||
},
|
||||
"queueFilteringIndicator": "Filtering...",
|
||||
"@queueFilteringIndicator": {
|
||||
"description": "Shown while filter results are being computed"
|
||||
@@ -4588,15 +4450,6 @@
|
||||
"@audioAnalysisRescanning": {
|
||||
"description": "Loading text while audio is being re-analyzed after an explicit refresh"
|
||||
},
|
||||
"extensionsSearchWith": "Search with {providerName}",
|
||||
"@extensionsSearchWith": {
|
||||
"description": "Extensions page - subtitle for default metadata search provider option",
|
||||
"placeholders": {
|
||||
"providerName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsHomeFeedProvider": "Home Feed Provider",
|
||||
"@extensionsHomeFeedProvider": {
|
||||
"description": "Extensions page - label for home feed provider selector"
|
||||
@@ -4634,14 +4487,6 @@
|
||||
"@extensionsNoHomeFeedExtensions": {
|
||||
"description": "Extensions page - shown when no installed extension has home feed"
|
||||
},
|
||||
"sortAlphaAsc": "A-Z",
|
||||
"@sortAlphaAsc": {
|
||||
"description": "Sort option - alphabetical ascending"
|
||||
},
|
||||
"sortAlphaDesc": "Z-A",
|
||||
"@sortAlphaDesc": {
|
||||
"description": "Sort option - alphabetical descending"
|
||||
},
|
||||
"cancelDownloadTitle": "Cancel download?",
|
||||
"@cancelDownloadTitle": {
|
||||
"description": "Dialog title when confirming cancellation of an active download"
|
||||
@@ -4676,34 +4521,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorLoadAlbum": "Failed to load album",
|
||||
"@errorLoadAlbum": {
|
||||
"description": "Error state shown when album fails to load"
|
||||
},
|
||||
"errorLoadPlaylist": "Failed to load playlist",
|
||||
"@errorLoadPlaylist": {
|
||||
"description": "Error state shown when playlist fails to load"
|
||||
},
|
||||
"errorLoadArtist": "Failed to load artist",
|
||||
"@errorLoadArtist": {
|
||||
"description": "Error state shown when artist fails to load"
|
||||
},
|
||||
"notifChannelDownloadName": "Download Progress",
|
||||
"@notifChannelDownloadName": {
|
||||
"description": "Android notification channel name for download progress"
|
||||
},
|
||||
"notifChannelDownloadDesc": "Shows download progress for tracks",
|
||||
"@notifChannelDownloadDesc": {
|
||||
"description": "Android notification channel description for download progress"
|
||||
},
|
||||
"notifChannelLibraryScanName": "Library Scan",
|
||||
"@notifChannelLibraryScanName": {
|
||||
"description": "Android notification channel name for library scan"
|
||||
},
|
||||
"notifChannelLibraryScanDesc": "Shows local library scan progress",
|
||||
"@notifChannelLibraryScanDesc": {
|
||||
"description": "Android notification channel description for library scan"
|
||||
},
|
||||
"notifDownloadingTrack": "Downloading {trackName}",
|
||||
"@notifDownloadingTrack": {
|
||||
"description": "Notification title while downloading a track",
|
||||
@@ -4770,6 +4587,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"notifAllDownloadsComplete": "All Downloads Complete",
|
||||
"@notifAllDownloadsComplete": {
|
||||
"description": "Notification title when all downloads finish successfully"
|
||||
@@ -4956,14 +4781,6 @@
|
||||
"@actionPaste": {
|
||||
"description": "Generic action - paste from clipboard"
|
||||
},
|
||||
"searchTracksHint": "Search tracks...",
|
||||
"@searchTracksHint": {
|
||||
"description": "Placeholder for the search screen input"
|
||||
},
|
||||
"searchTracksEmptyPrompt": "Search for tracks",
|
||||
"@searchTracksEmptyPrompt": {
|
||||
"description": "Empty-state prompt on the search screen"
|
||||
},
|
||||
"tutorialSearchHint": "Paste or search...",
|
||||
"@tutorialSearchHint": {
|
||||
"description": "Placeholder shown in the tutorial search demo"
|
||||
@@ -4992,14 +4809,6 @@
|
||||
"@optionsEmbedMetadataSubtitleOff": {
|
||||
"description": "Subtitle when metadata embedding is disabled"
|
||||
},
|
||||
"optionsMaxQualityCoverSubtitleDisabled": "Disabled when metadata embedding is off",
|
||||
"@optionsMaxQualityCoverSubtitleDisabled": {
|
||||
"description": "Subtitle for max quality cover when metadata embedding is disabled"
|
||||
},
|
||||
"downloadFilenameHintExample": "{artist} - {title}",
|
||||
"@downloadFilenameHintExample": {
|
||||
"description": "Example placeholder for the download filename format input"
|
||||
},
|
||||
"trackCoverNoEmbeddedArt": "No embedded album art found",
|
||||
"@trackCoverNoEmbeddedArt": {
|
||||
"description": "Message shown when a track file has no embedded cover art"
|
||||
@@ -5239,14 +5048,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsDefaultSearchTabAlbums": "Albums",
|
||||
"@optionsDefaultSearchTabAlbums": {
|
||||
"description": "Default search tab option - Albums tab"
|
||||
},
|
||||
"optionsDefaultSearchTabTracks": "Tracks",
|
||||
"@optionsDefaultSearchTabTracks": {
|
||||
"description": "Default search tab option - Tracks tab"
|
||||
},
|
||||
"settingsFiles": "Files & Folders",
|
||||
"@settingsFiles": {
|
||||
"description": "Settings menu item - file and folder settings"
|
||||
@@ -5307,10 +5108,26 @@
|
||||
"@downloadDeduplicationEnabled": {
|
||||
"description": "Subtitle when deduplication is on"
|
||||
},
|
||||
"downloadDeduplicationWithQualityVariants": "Existing files at the selected quality will be skipped",
|
||||
"@downloadDeduplicationWithQualityVariants": {
|
||||
"description": "Deduplication subtitle when separate quality versions are allowed"
|
||||
},
|
||||
"downloadDeduplicationDisabled": "All tracks will be downloaded regardless of history",
|
||||
"@downloadDeduplicationDisabled": {
|
||||
"description": "Subtitle when deduplication is off"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFallbackExtensions": "Fallback Extensions",
|
||||
"@downloadFallbackExtensions": {
|
||||
"description": "Settings item for configuring fallback extension providers"
|
||||
@@ -5451,6 +5268,11 @@
|
||||
}
|
||||
},
|
||||
"queueDownloadStarting": "Starting...",
|
||||
"queueCheckingDownloadSession": "Checking download session...",
|
||||
"queueResolvingDownloadMetadata": "Resolving track metadata...",
|
||||
"queueResolvingDownloadStream": "Preparing audio stream...",
|
||||
"queueWaitingForVerification": "Waiting for verification...",
|
||||
"queueResumingAfterVerification": "Resuming after verification...",
|
||||
"@queueDownloadStarting": {
|
||||
"description": "Queue status before download progress is available"
|
||||
},
|
||||
@@ -5539,7 +5361,7 @@
|
||||
"@downloadNativeWorker": {
|
||||
"description": "Setting title for Android native download worker"
|
||||
},
|
||||
"downloadNativeWorkerSubtitle": "Beta Android service worker for extension downloads",
|
||||
"downloadNativeWorkerSubtitle": "Android background service for extension downloads",
|
||||
"@downloadNativeWorkerSubtitle": {
|
||||
"description": "Setting subtitle for Android native download worker"
|
||||
},
|
||||
@@ -5699,10 +5521,6 @@
|
||||
"@errorInvalidFolderSelected": {
|
||||
"description": "Error when the selected folder is invalid"
|
||||
},
|
||||
"errorCouldNotKeepFolderAccess": "Could not keep access to the selected folder",
|
||||
"@errorCouldNotKeepFolderAccess": {
|
||||
"description": "Error when persistent folder access cannot be saved"
|
||||
},
|
||||
"storeAnyVersion": "Any",
|
||||
"@storeAnyVersion": {
|
||||
"description": "Store detail value when any app version is accepted"
|
||||
|
||||
+146
-328
@@ -19,7 +19,7 @@
|
||||
},
|
||||
"navStore": "Repo",
|
||||
"@navStore": {
|
||||
"description": "Bottom navigation - Extension store tab"
|
||||
"description": "Bottom navigation - Extension repo tab"
|
||||
},
|
||||
"homeTitle": "Home",
|
||||
"@homeTitle": {
|
||||
@@ -73,10 +73,6 @@
|
||||
"@settingsAppearance": {
|
||||
"description": "Settings section - visual customization"
|
||||
},
|
||||
"settingsOptions": "Options",
|
||||
"@settingsOptions": {
|
||||
"description": "Settings section - app options"
|
||||
},
|
||||
"settingsExtensions": "Extensions",
|
||||
"@settingsExtensions": {
|
||||
"description": "Settings section - extension management"
|
||||
@@ -145,10 +141,6 @@
|
||||
"@appearanceHistoryViewGrid": {
|
||||
"description": "Grid layout option"
|
||||
},
|
||||
"optionsTitle": "Options",
|
||||
"@optionsTitle": {
|
||||
"description": "Options settings page title"
|
||||
},
|
||||
"optionsPrimaryProvider": "Primary Provider",
|
||||
"@optionsPrimaryProvider": {
|
||||
"description": "Main search provider setting"
|
||||
@@ -174,10 +166,6 @@
|
||||
"@optionsDefaultSearchTabSubtitle": {
|
||||
"description": "Subtitle for the preferred default search tab setting"
|
||||
},
|
||||
"optionsSwitchBack": "Choose the default search provider to switch back from an extension",
|
||||
"@optionsSwitchBack": {
|
||||
"description": "Hint to switch back from extension search"
|
||||
},
|
||||
"optionsAutoFallback": "Auto Fallback",
|
||||
"@optionsAutoFallback": {
|
||||
"description": "Auto-retry with other services"
|
||||
@@ -186,18 +174,6 @@
|
||||
"@optionsAutoFallbackSubtitle": {
|
||||
"description": "Subtitle for auto fallback"
|
||||
},
|
||||
"optionsUseExtensionProviders": "Use Extension Providers",
|
||||
"@optionsUseExtensionProviders": {
|
||||
"description": "Legacy setting label for extension download providers"
|
||||
},
|
||||
"optionsUseExtensionProvidersOn": "Extension providers are enabled",
|
||||
"@optionsUseExtensionProvidersOn": {
|
||||
"description": "Status when extension providers enabled"
|
||||
},
|
||||
"optionsUseExtensionProvidersOff": "Extension providers are required",
|
||||
"@optionsUseExtensionProvidersOff": {
|
||||
"description": "Legacy status when extension providers would be disabled"
|
||||
},
|
||||
"optionsEmbedLyrics": "Embed Lyrics",
|
||||
"@optionsEmbedLyrics": {
|
||||
"description": "Embed lyrics in audio files"
|
||||
@@ -230,10 +206,6 @@
|
||||
"@trackReplayGain": {
|
||||
"description": "Three-dot menu option to scan loudness and write ReplayGain tags"
|
||||
},
|
||||
"trackReplayGainSubtitle": "Analyze loudness and write ReplayGain tags",
|
||||
"@trackReplayGainSubtitle": {
|
||||
"description": "Subtitle for the rescan ReplayGain menu option"
|
||||
},
|
||||
"trackReplayGainScanning": "Analyzing loudness...",
|
||||
"@trackReplayGainScanning": {
|
||||
"description": "Snackbar/progress message while scanning ReplayGain for a single track"
|
||||
@@ -310,11 +282,11 @@
|
||||
},
|
||||
"optionsExtensionStore": "Extension Repo",
|
||||
"@optionsExtensionStore": {
|
||||
"description": "Show/hide store tab"
|
||||
"description": "Show/hide repo tab"
|
||||
},
|
||||
"optionsExtensionStoreSubtitle": "Show Repo tab in navigation",
|
||||
"@optionsExtensionStoreSubtitle": {
|
||||
"description": "Subtitle for extension store toggle"
|
||||
"description": "Subtitle for extension repo toggle"
|
||||
},
|
||||
"optionsCheckUpdates": "Check for Updates",
|
||||
"@optionsCheckUpdates": {
|
||||
@@ -360,31 +332,6 @@
|
||||
"@optionsDetailedLoggingOff": {
|
||||
"description": "Status when logging disabled"
|
||||
},
|
||||
"optionsSpotifyCredentials": "Spotify Credentials",
|
||||
"@optionsSpotifyCredentials": {
|
||||
"description": "Spotify API credentials setting"
|
||||
},
|
||||
"optionsSpotifyCredentialsConfigured": "Client ID: {clientId}...",
|
||||
"@optionsSpotifyCredentialsConfigured": {
|
||||
"description": "Shows configured client ID preview",
|
||||
"placeholders": {
|
||||
"clientId": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsSpotifyCredentialsRequired": "Required - tap to configure",
|
||||
"@optionsSpotifyCredentialsRequired": {
|
||||
"description": "Prompt to set up credentials"
|
||||
},
|
||||
"optionsSpotifyWarning": "Spotify requires your own API credentials. Get them free from developer.spotify.com",
|
||||
"@optionsSpotifyWarning": {
|
||||
"description": "Info about Spotify API requirement"
|
||||
},
|
||||
"optionsSpotifyDeprecationWarning": "Spotify search will be deprecated on March 3, 2026 due to Spotify API changes. Please switch to Deezer.",
|
||||
"@optionsSpotifyDeprecationWarning": {
|
||||
"description": "Warning about Spotify API deprecation"
|
||||
},
|
||||
"extensionsTitle": "Extensions",
|
||||
"@extensionsTitle": {
|
||||
"description": "Extensions page title"
|
||||
@@ -402,26 +349,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsAuthor": "by {author}",
|
||||
"@extensionsAuthor": {
|
||||
"description": "Extension author credit",
|
||||
"placeholders": {
|
||||
"author": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsUninstall": "Uninstall",
|
||||
"@extensionsUninstall": {
|
||||
"description": "Uninstall extension button"
|
||||
},
|
||||
"storeTitle": "Extension Repo",
|
||||
"@storeTitle": {
|
||||
"description": "Store screen title"
|
||||
"description": "Repo screen title"
|
||||
},
|
||||
"storeSearch": "Search extensions...",
|
||||
"@storeSearch": {
|
||||
"description": "Store search placeholder"
|
||||
"description": "Repo search placeholder"
|
||||
},
|
||||
"storeInstall": "Install",
|
||||
"@storeInstall": {
|
||||
@@ -912,14 +850,6 @@
|
||||
"@snackbarHistoryCleared": {
|
||||
"description": "Snackbar - history deleted"
|
||||
},
|
||||
"snackbarCredentialsSaved": "Credentials saved",
|
||||
"@snackbarCredentialsSaved": {
|
||||
"description": "Snackbar - Spotify credentials saved"
|
||||
},
|
||||
"snackbarCredentialsCleared": "Credentials cleared",
|
||||
"@snackbarCredentialsCleared": {
|
||||
"description": "Snackbar - Spotify credentials removed"
|
||||
},
|
||||
"snackbarDeletedTracks": "Deleted {count} {count, plural, =1{track} other{tracks}}",
|
||||
"@snackbarDeletedTracks": {
|
||||
"description": "Snackbar - tracks deleted",
|
||||
@@ -938,10 +868,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"snackbarFillAllFields": "Please fill all fields",
|
||||
"@snackbarFillAllFields": {
|
||||
"description": "Snackbar - validation error"
|
||||
},
|
||||
"snackbarViewQueue": "View Queue",
|
||||
"@snackbarViewQueue": {
|
||||
"description": "Snackbar action - view download queue"
|
||||
@@ -1055,14 +981,6 @@
|
||||
"@actionDeselect": {
|
||||
"description": "Action button - deselect all"
|
||||
},
|
||||
"actionRemoveCredentials": "Remove Credentials",
|
||||
"@actionRemoveCredentials": {
|
||||
"description": "Action button - delete Spotify credentials"
|
||||
},
|
||||
"actionSaveCredentials": "Save Credentials",
|
||||
"@actionSaveCredentials": {
|
||||
"description": "Action button - save Spotify credentials"
|
||||
},
|
||||
"selectionSelected": "{count} selected",
|
||||
"@selectionSelected": {
|
||||
"description": "Selection count indicator",
|
||||
@@ -1236,6 +1154,19 @@
|
||||
"@updateNewVersionReady": {
|
||||
"description": "Update subtitle"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"updateCurrent": "Current",
|
||||
"@updateCurrent": {
|
||||
"description": "Label for current version"
|
||||
@@ -1272,10 +1203,6 @@
|
||||
"@providerPriorityInfo": {
|
||||
"description": "Info tip about fallback behavior"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsTitle": "Extension Fallback",
|
||||
"@providerPriorityFallbackExtensionsTitle": {
|
||||
"description": "Section title for choosing which download extensions can be used as fallback providers"
|
||||
},
|
||||
"providerPriorityFallbackExtensionsDescription": "Choose which installed download extensions can be used during automatic fallback.",
|
||||
"@providerPriorityFallbackExtensionsDescription": {
|
||||
"description": "Section description for extension fallback selection"
|
||||
@@ -1284,10 +1211,6 @@
|
||||
"@providerPriorityFallbackExtensionsHint": {
|
||||
"description": "Hint below the extension fallback selection list"
|
||||
},
|
||||
"providerBuiltIn": "Legacy",
|
||||
"@providerBuiltIn": {
|
||||
"description": "Legacy label retained for old generated localization compatibility"
|
||||
},
|
||||
"providerExtension": "Extension",
|
||||
"@providerExtension": {
|
||||
"description": "Label for extension-provided providers"
|
||||
@@ -1304,14 +1227,6 @@
|
||||
"@metadataProviderPriorityInfo": {
|
||||
"description": "Info tip about rate limits"
|
||||
},
|
||||
"metadataNoRateLimits": "No rate limits",
|
||||
"@metadataNoRateLimits": {
|
||||
"description": "Deezer provider description"
|
||||
},
|
||||
"metadataMayRateLimit": "May rate limit",
|
||||
"@metadataMayRateLimit": {
|
||||
"description": "Spotify provider description"
|
||||
},
|
||||
"logTitle": "Logs",
|
||||
"@logTitle": {
|
||||
"description": "Logs screen title"
|
||||
@@ -1378,30 +1293,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"credentialsTitle": "Spotify Credentials",
|
||||
"@credentialsTitle": {
|
||||
"description": "Credentials dialog title"
|
||||
},
|
||||
"credentialsDescription": "Enter your Client ID and Secret to use your own Spotify application quota.",
|
||||
"@credentialsDescription": {
|
||||
"description": "Credentials dialog explanation"
|
||||
},
|
||||
"credentialsClientId": "Client ID",
|
||||
"@credentialsClientId": {
|
||||
"description": "Client ID field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientIdHint": "Paste Client ID",
|
||||
"@credentialsClientIdHint": {
|
||||
"description": "Client ID placeholder"
|
||||
},
|
||||
"credentialsClientSecret": "Client Secret",
|
||||
"@credentialsClientSecret": {
|
||||
"description": "Client Secret field label - DO NOT TRANSLATE"
|
||||
},
|
||||
"credentialsClientSecretHint": "Paste Client Secret",
|
||||
"@credentialsClientSecretHint": {
|
||||
"description": "Client Secret placeholder"
|
||||
},
|
||||
"channelStable": "Stable",
|
||||
"@channelStable": {
|
||||
"description": "Update channel - stable releases"
|
||||
@@ -1510,10 +1401,6 @@
|
||||
"@settingsDownloadSubtitle": {
|
||||
"description": "Download settings description"
|
||||
},
|
||||
"settingsOptionsSubtitle": "Fallback, metadata, lyrics, cover art",
|
||||
"@settingsOptionsSubtitle": {
|
||||
"description": "Options settings description"
|
||||
},
|
||||
"settingsExtensionsSubtitle": "Manage download providers",
|
||||
"@settingsExtensionsSubtitle": {
|
||||
"description": "Extensions settings description"
|
||||
@@ -1730,27 +1617,27 @@
|
||||
},
|
||||
"storeFilterAll": "All",
|
||||
"@storeFilterAll": {
|
||||
"description": "Store filter - all extensions"
|
||||
"description": "Repo filter - all extensions"
|
||||
},
|
||||
"storeFilterMetadata": "Metadata",
|
||||
"@storeFilterMetadata": {
|
||||
"description": "Store filter - metadata providers"
|
||||
"description": "Repo filter - metadata providers"
|
||||
},
|
||||
"storeFilterDownload": "Download",
|
||||
"@storeFilterDownload": {
|
||||
"description": "Store filter - download providers"
|
||||
"description": "Repo filter - download providers"
|
||||
},
|
||||
"storeFilterUtility": "Utility",
|
||||
"@storeFilterUtility": {
|
||||
"description": "Store filter - utility extensions"
|
||||
"description": "Repo filter - utility extensions"
|
||||
},
|
||||
"storeFilterLyrics": "Lyrics",
|
||||
"@storeFilterLyrics": {
|
||||
"description": "Store filter - lyrics providers"
|
||||
"description": "Repo filter - lyrics providers"
|
||||
},
|
||||
"storeFilterIntegration": "Integration",
|
||||
"@storeFilterIntegration": {
|
||||
"description": "Store filter - integrations"
|
||||
"description": "Repo filter - integrations"
|
||||
},
|
||||
"storeClearFilters": "Clear filters",
|
||||
"@storeClearFilters": {
|
||||
@@ -1772,10 +1659,6 @@
|
||||
"@storeRepoUrlHint": {
|
||||
"description": "Hint/placeholder for the repository URL input field"
|
||||
},
|
||||
"storeRepoUrlHelper": "e.g. https://github.com/user/extensions-repo",
|
||||
"@storeRepoUrlHelper": {
|
||||
"description": "Helper text below the repository URL input field"
|
||||
},
|
||||
"storeAddRepoButton": "Add Repository",
|
||||
"@storeAddRepoButton": {
|
||||
"description": "Button to submit a new repository URL"
|
||||
@@ -1808,18 +1691,6 @@
|
||||
"@storeEmptyNoResults": {
|
||||
"description": "Message when search/filter returns no results"
|
||||
},
|
||||
"extensionDefaultProvider": "Default Search",
|
||||
"@extensionDefaultProvider": {
|
||||
"description": "Default search provider option"
|
||||
},
|
||||
"extensionDefaultProviderSubtitle": "Use the default metadata search",
|
||||
"@extensionDefaultProviderSubtitle": {
|
||||
"description": "Subtitle for default provider"
|
||||
},
|
||||
"extensionAuthor": "Author",
|
||||
"@extensionAuthor": {
|
||||
"description": "Extension detail - author"
|
||||
},
|
||||
"extensionId": "ID",
|
||||
"@extensionId": {
|
||||
"description": "Extension detail - unique ID"
|
||||
@@ -2087,10 +1958,6 @@
|
||||
"@downloadLossyOpus128Subtitle": {
|
||||
"description": "Subtitle for Opus 128kbps lossy option"
|
||||
},
|
||||
"qualityNote": "Actual quality depends on track availability from the service",
|
||||
"@qualityNote": {
|
||||
"description": "Note about quality availability"
|
||||
},
|
||||
"downloadAskBeforeDownload": "Ask Before Download",
|
||||
"@downloadAskBeforeDownload": {
|
||||
"description": "Setting - show quality picker"
|
||||
@@ -2143,6 +2010,14 @@
|
||||
"@appearanceAmoledDarkSubtitle": {
|
||||
"description": "Subtitle for AMOLED dark"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"queueClearAll": "Clear All",
|
||||
"@queueClearAll": {
|
||||
"description": "Button - clear all queue items"
|
||||
@@ -2175,6 +2050,27 @@
|
||||
"@settingsDownloadNetworkSubtitle": {
|
||||
"description": "Subtitle explaining network preference"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"albumFolderArtistAlbum": "Artist / Album",
|
||||
"@albumFolderArtistAlbum": {
|
||||
"description": "Album folder option"
|
||||
@@ -2245,10 +2141,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadedAlbumAllSelected": "All tracks selected",
|
||||
"@downloadedAlbumAllSelected": {
|
||||
"description": "Status - all items selected"
|
||||
},
|
||||
"downloadedAlbumTapToSelect": "Tap tracks to select",
|
||||
"@downloadedAlbumTapToSelect": {
|
||||
"description": "Selection hint"
|
||||
@@ -2976,6 +2868,22 @@
|
||||
"@cacheLibraryCoverDesc": {
|
||||
"description": "Description of what library cover cache contains"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"cacheExploreFeed": "Explore feed cache",
|
||||
"@cacheExploreFeed": {
|
||||
"description": "Cache item title for explore home feed cache"
|
||||
@@ -3092,18 +3000,10 @@
|
||||
"@trackSaveCoverArt": {
|
||||
"description": "Menu action - save album cover art as file"
|
||||
},
|
||||
"trackSaveCoverArtSubtitle": "Save album art as .jpg file",
|
||||
"@trackSaveCoverArtSubtitle": {
|
||||
"description": "Subtitle for save cover art action"
|
||||
},
|
||||
"trackSaveLyrics": "Save Lyrics (.lrc)",
|
||||
"@trackSaveLyrics": {
|
||||
"description": "Menu action - save lyrics as .lrc file"
|
||||
},
|
||||
"trackSaveLyricsSubtitle": "Fetch and save lyrics as .lrc file",
|
||||
"@trackSaveLyricsSubtitle": {
|
||||
"description": "Subtitle for save lyrics action"
|
||||
},
|
||||
"trackSaveLyricsProgress": "Saving lyrics...",
|
||||
"@trackSaveLyricsProgress": {
|
||||
"description": "Snackbar while saving lyrics to file"
|
||||
@@ -3116,10 +3016,6 @@
|
||||
"@trackReEnrichOnlineSubtitle": {
|
||||
"description": "Subtitle for re-enrich metadata action for local items"
|
||||
},
|
||||
"trackReEnrichFieldsTitle": "Fields to update",
|
||||
"@trackReEnrichFieldsTitle": {
|
||||
"description": "Section title for field selection in re-enrich dialog"
|
||||
},
|
||||
"trackReEnrichFieldCover": "Cover Art",
|
||||
"@trackReEnrichFieldCover": {
|
||||
"description": "Checkbox label for cover art field in re-enrich"
|
||||
@@ -3203,18 +3099,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacFindingProgress": "Finding FLAC matches... ({current}/{total})",
|
||||
"@queueFlacFindingProgress": {
|
||||
"description": "Snackbar while resolving remote matches for local FLAC redownloads",
|
||||
"placeholders": {
|
||||
"current": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueFlacNoReliableMatches": "No reliable online matches found for the selection",
|
||||
"@queueFlacNoReliableMatches": {
|
||||
"description": "Snackbar when no safe FLAC redownload matches were found"
|
||||
@@ -3244,10 +3128,6 @@
|
||||
"@trackConvertFormat": {
|
||||
"description": "Menu item - convert audio format"
|
||||
},
|
||||
"trackConvertFormatSubtitle": "Convert to AAC/M4A, MP3, Opus, ALAC, or FLAC",
|
||||
"@trackConvertFormatSubtitle": {
|
||||
"description": "Subtitle for convert format menu item"
|
||||
},
|
||||
"trackConvertTitle": "Convert Audio",
|
||||
"@trackConvertTitle": {
|
||||
"description": "Title of convert bottom sheet"
|
||||
@@ -3260,6 +3140,14 @@
|
||||
"@trackConvertBitrate": {
|
||||
"description": "Label for bitrate selection"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"trackConvertConfirmTitle": "Confirm Conversion",
|
||||
"@trackConvertConfirmTitle": {
|
||||
"description": "Confirmation dialog title"
|
||||
@@ -3291,6 +3179,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"trackConvertLosslessHint": "Lossless conversion — no quality loss",
|
||||
"@trackConvertLosslessHint": {
|
||||
"description": "Hint shown when converting between lossless formats"
|
||||
@@ -3316,10 +3216,6 @@
|
||||
"@cueSplitTitle": {
|
||||
"description": "Title for CUE split bottom sheet"
|
||||
},
|
||||
"cueSplitSubtitle": "Split CUE+FLAC into individual tracks",
|
||||
"@cueSplitSubtitle": {
|
||||
"description": "Subtitle for CUE split menu item"
|
||||
},
|
||||
"cueSplitAlbum": "Album: {album}",
|
||||
"@cueSplitAlbum": {
|
||||
"description": "Album name in CUE split sheet",
|
||||
@@ -3416,10 +3312,6 @@
|
||||
"@collectionFavoriteArtists": {
|
||||
"description": "Custom folder for favorite artists"
|
||||
},
|
||||
"collectionPlaylists": "Playlists",
|
||||
"@collectionPlaylists": {
|
||||
"description": "Custom user playlists folder"
|
||||
},
|
||||
"collectionPlaylist": "Playlist",
|
||||
"@collectionPlaylist": {
|
||||
"description": "Single playlist label"
|
||||
@@ -3436,10 +3328,6 @@
|
||||
"@collectionNoPlaylistsYet": {
|
||||
"description": "Empty state title when user has no playlists"
|
||||
},
|
||||
"collectionNoPlaylistsSubtitle": "Create a playlist to start categorizing tracks",
|
||||
"@collectionNoPlaylistsSubtitle": {
|
||||
"description": "Empty state subtitle when user has no playlists"
|
||||
},
|
||||
"collectionPlaylistTracks": "{count, plural, =1{1 track} other{{count} tracks}}",
|
||||
"@collectionPlaylistTracks": {
|
||||
"description": "Track count label for custom playlists",
|
||||
@@ -3476,10 +3364,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistCreated": "Playlist created",
|
||||
"@collectionPlaylistCreated": {
|
||||
"description": "Snackbar after creating playlist"
|
||||
},
|
||||
"collectionPlaylistNameHint": "Playlist name",
|
||||
"@collectionPlaylistNameHint": {
|
||||
"description": "Hint text for playlist name input"
|
||||
@@ -3496,19 +3380,6 @@
|
||||
"@collectionDeletePlaylist": {
|
||||
"description": "Action to delete playlist"
|
||||
},
|
||||
"collectionDeletePlaylistMessage": "Delete \"{playlistName}\" and all tracks inside it?",
|
||||
"@collectionDeletePlaylistMessage": {
|
||||
"description": "Confirmation message for deleting playlist",
|
||||
"placeholders": {
|
||||
"playlistName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionPlaylistDeleted": "Playlist deleted",
|
||||
"@collectionPlaylistDeleted": {
|
||||
"description": "Snackbar after deleting playlist"
|
||||
},
|
||||
"collectionPlaylistRenamed": "Playlist renamed",
|
||||
"@collectionPlaylistRenamed": {
|
||||
"description": "Snackbar after renaming playlist"
|
||||
@@ -3553,15 +3424,6 @@
|
||||
"@collectionRemoveFromFolder": {
|
||||
"description": "Tooltip for removing track from wishlist/loved folder"
|
||||
},
|
||||
"collectionRemoved": "\"{trackName}\" removed",
|
||||
"@collectionRemoved": {
|
||||
"description": "Snackbar after removing a track from a collection",
|
||||
"placeholders": {
|
||||
"trackName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"collectionAddedToLoved": "\"{trackName}\" added to Loved",
|
||||
"@collectionAddedToLoved": {
|
||||
"description": "Snackbar after adding track to loved folder",
|
||||
@@ -3705,15 +3567,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"selectionBatchConvertProgress": "Converting {current} of {total}...",
|
||||
"@selectionBatchConvertProgress": {
|
||||
"description": "Snackbar during batch conversion progress",
|
||||
"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": {
|
||||
"current": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
},
|
||||
"total": {
|
||||
"type": "int"
|
||||
"format": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3879,10 +3741,6 @@
|
||||
"@backupImportButton": {
|
||||
"description": "Button to pick a backup file to restore"
|
||||
},
|
||||
"backupCreating": "Creating backup...",
|
||||
"@backupCreating": {
|
||||
"description": "Progress text while a backup is being created"
|
||||
},
|
||||
"backupCreated": "Backup created",
|
||||
"@backupCreated": {
|
||||
"description": "Snackbar after a backup file is created"
|
||||
@@ -3891,10 +3749,6 @@
|
||||
"@backupCreateFailed": {
|
||||
"description": "Snackbar when backup creation fails"
|
||||
},
|
||||
"backupEmpty": "There is nothing to back up yet",
|
||||
"@backupEmpty": {
|
||||
"description": "Snackbar when there is no data to back up"
|
||||
},
|
||||
"backupRestoreConfirmTitle": "Restore this backup?",
|
||||
"@backupRestoreConfirmTitle": {
|
||||
"description": "Confirmation dialog title before restoring a backup"
|
||||
@@ -3907,10 +3761,6 @@
|
||||
"@backupRestoreConfirmButton": {
|
||||
"description": "Confirm button to proceed with restore"
|
||||
},
|
||||
"backupRestoring": "Restoring backup...",
|
||||
"@backupRestoring": {
|
||||
"description": "Progress text while restoring a backup"
|
||||
},
|
||||
"backupRestored": "Backup restored successfully",
|
||||
"@backupRestored": {
|
||||
"description": "Snackbar after a successful restore"
|
||||
@@ -3997,7 +3847,7 @@
|
||||
"@backupIncludeSecretsDescription": {
|
||||
"description": "Explanation for the include-credentials toggle"
|
||||
},
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the store.",
|
||||
"backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the repo.",
|
||||
"@backupExtensionsRestoreFailed": {
|
||||
"description": "Snackbar/hint when some extensions failed to reinstall during restore",
|
||||
"placeholders": {
|
||||
@@ -4110,6 +3960,26 @@
|
||||
"@storageModeSafSubtitle": {
|
||||
"description": "Subtitle for SAF storage mode"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFilenameDescription": "Use {artist}, {title}, {album}, {track}, {year}, {date}, {disc} as placeholders.",
|
||||
"@downloadFilenameDescription": {
|
||||
"description": "Description shown in filename format editor"
|
||||
@@ -4178,10 +4048,6 @@
|
||||
"@downloadSelectServiceToEnable": {
|
||||
"description": "Subtitle when quality picker is disabled due to extension service"
|
||||
},
|
||||
"downloadSelectTidalQobuz": "Select a provider with quality options to choose audio quality",
|
||||
"@downloadSelectTidalQobuz": {
|
||||
"description": "Legacy info shown when a provider does not expose quality options"
|
||||
},
|
||||
"downloadEmbedLyricsDisabled": "Enable metadata embedding first",
|
||||
"@downloadEmbedLyricsDisabled": {
|
||||
"description": "Subtitle when lyrics embedding is blocked by metadata toggle"
|
||||
@@ -4430,10 +4296,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueDownloadedHeader": "Downloaded",
|
||||
"@queueDownloadedHeader": {
|
||||
"description": "Header label for downloaded items section in library"
|
||||
},
|
||||
"queueFilteringIndicator": "Filtering...",
|
||||
"@queueFilteringIndicator": {
|
||||
"description": "Shown while filter results are being computed"
|
||||
@@ -4588,15 +4450,6 @@
|
||||
"@audioAnalysisRescanning": {
|
||||
"description": "Loading text while audio is being re-analyzed after an explicit refresh"
|
||||
},
|
||||
"extensionsSearchWith": "Search with {providerName}",
|
||||
"@extensionsSearchWith": {
|
||||
"description": "Extensions page - subtitle for default metadata search provider option",
|
||||
"placeholders": {
|
||||
"providerName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extensionsHomeFeedProvider": "Home Feed Provider",
|
||||
"@extensionsHomeFeedProvider": {
|
||||
"description": "Extensions page - label for home feed provider selector"
|
||||
@@ -4634,14 +4487,6 @@
|
||||
"@extensionsNoHomeFeedExtensions": {
|
||||
"description": "Extensions page - shown when no installed extension has home feed"
|
||||
},
|
||||
"sortAlphaAsc": "A-Z",
|
||||
"@sortAlphaAsc": {
|
||||
"description": "Sort option - alphabetical ascending"
|
||||
},
|
||||
"sortAlphaDesc": "Z-A",
|
||||
"@sortAlphaDesc": {
|
||||
"description": "Sort option - alphabetical descending"
|
||||
},
|
||||
"cancelDownloadTitle": "Cancel download?",
|
||||
"@cancelDownloadTitle": {
|
||||
"description": "Dialog title when confirming cancellation of an active download"
|
||||
@@ -4676,34 +4521,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorLoadAlbum": "Failed to load album",
|
||||
"@errorLoadAlbum": {
|
||||
"description": "Error state shown when album fails to load"
|
||||
},
|
||||
"errorLoadPlaylist": "Failed to load playlist",
|
||||
"@errorLoadPlaylist": {
|
||||
"description": "Error state shown when playlist fails to load"
|
||||
},
|
||||
"errorLoadArtist": "Failed to load artist",
|
||||
"@errorLoadArtist": {
|
||||
"description": "Error state shown when artist fails to load"
|
||||
},
|
||||
"notifChannelDownloadName": "Download Progress",
|
||||
"@notifChannelDownloadName": {
|
||||
"description": "Android notification channel name for download progress"
|
||||
},
|
||||
"notifChannelDownloadDesc": "Shows download progress for tracks",
|
||||
"@notifChannelDownloadDesc": {
|
||||
"description": "Android notification channel description for download progress"
|
||||
},
|
||||
"notifChannelLibraryScanName": "Library Scan",
|
||||
"@notifChannelLibraryScanName": {
|
||||
"description": "Android notification channel name for library scan"
|
||||
},
|
||||
"notifChannelLibraryScanDesc": "Shows local library scan progress",
|
||||
"@notifChannelLibraryScanDesc": {
|
||||
"description": "Android notification channel description for library scan"
|
||||
},
|
||||
"notifDownloadingTrack": "Downloading {trackName}",
|
||||
"@notifDownloadingTrack": {
|
||||
"description": "Notification title while downloading a track",
|
||||
@@ -4770,6 +4587,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"notifAllDownloadsComplete": "All Downloads Complete",
|
||||
"@notifAllDownloadsComplete": {
|
||||
"description": "Notification title when all downloads finish successfully"
|
||||
@@ -4956,14 +4781,6 @@
|
||||
"@actionPaste": {
|
||||
"description": "Generic action - paste from clipboard"
|
||||
},
|
||||
"searchTracksHint": "Search tracks...",
|
||||
"@searchTracksHint": {
|
||||
"description": "Placeholder for the search screen input"
|
||||
},
|
||||
"searchTracksEmptyPrompt": "Search for tracks",
|
||||
"@searchTracksEmptyPrompt": {
|
||||
"description": "Empty-state prompt on the search screen"
|
||||
},
|
||||
"tutorialSearchHint": "Paste or search...",
|
||||
"@tutorialSearchHint": {
|
||||
"description": "Placeholder shown in the tutorial search demo"
|
||||
@@ -4992,14 +4809,6 @@
|
||||
"@optionsEmbedMetadataSubtitleOff": {
|
||||
"description": "Subtitle when metadata embedding is disabled"
|
||||
},
|
||||
"optionsMaxQualityCoverSubtitleDisabled": "Disabled when metadata embedding is off",
|
||||
"@optionsMaxQualityCoverSubtitleDisabled": {
|
||||
"description": "Subtitle for max quality cover when metadata embedding is disabled"
|
||||
},
|
||||
"downloadFilenameHintExample": "{artist} - {title}",
|
||||
"@downloadFilenameHintExample": {
|
||||
"description": "Example placeholder for the download filename format input"
|
||||
},
|
||||
"trackCoverNoEmbeddedArt": "No embedded album art found",
|
||||
"@trackCoverNoEmbeddedArt": {
|
||||
"description": "Message shown when a track file has no embedded cover art"
|
||||
@@ -5239,14 +5048,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionsDefaultSearchTabAlbums": "Albums",
|
||||
"@optionsDefaultSearchTabAlbums": {
|
||||
"description": "Default search tab option - Albums tab"
|
||||
},
|
||||
"optionsDefaultSearchTabTracks": "Tracks",
|
||||
"@optionsDefaultSearchTabTracks": {
|
||||
"description": "Default search tab option - Tracks tab"
|
||||
},
|
||||
"settingsFiles": "Files & Folders",
|
||||
"@settingsFiles": {
|
||||
"description": "Settings menu item - file and folder settings"
|
||||
@@ -5307,10 +5108,26 @@
|
||||
"@downloadDeduplicationEnabled": {
|
||||
"description": "Subtitle when deduplication is on"
|
||||
},
|
||||
"downloadDeduplicationWithQualityVariants": "Existing files at the selected quality will be skipped",
|
||||
"@downloadDeduplicationWithQualityVariants": {
|
||||
"description": "Deduplication subtitle when separate quality versions are allowed"
|
||||
},
|
||||
"downloadDeduplicationDisabled": "All tracks will be downloaded regardless of history",
|
||||
"@downloadDeduplicationDisabled": {
|
||||
"description": "Subtitle when deduplication is off"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"downloadFallbackExtensions": "Fallback Extensions",
|
||||
"@downloadFallbackExtensions": {
|
||||
"description": "Settings item for configuring fallback extension providers"
|
||||
@@ -5451,6 +5268,11 @@
|
||||
}
|
||||
},
|
||||
"queueDownloadStarting": "Starting...",
|
||||
"queueCheckingDownloadSession": "Checking download session...",
|
||||
"queueResolvingDownloadMetadata": "Resolving track metadata...",
|
||||
"queueResolvingDownloadStream": "Preparing audio stream...",
|
||||
"queueWaitingForVerification": "Waiting for verification...",
|
||||
"queueResumingAfterVerification": "Resuming after verification...",
|
||||
"@queueDownloadStarting": {
|
||||
"description": "Queue status before download progress is available"
|
||||
},
|
||||
@@ -5539,7 +5361,7 @@
|
||||
"@downloadNativeWorker": {
|
||||
"description": "Setting title for Android native download worker"
|
||||
},
|
||||
"downloadNativeWorkerSubtitle": "Beta Android service worker for extension downloads",
|
||||
"downloadNativeWorkerSubtitle": "Android background service for extension downloads",
|
||||
"@downloadNativeWorkerSubtitle": {
|
||||
"description": "Setting subtitle for Android native download worker"
|
||||
},
|
||||
@@ -5699,10 +5521,6 @@
|
||||
"@errorInvalidFolderSelected": {
|
||||
"description": "Error when the selected folder is invalid"
|
||||
},
|
||||
"errorCouldNotKeepFolderAccess": "Could not keep access to the selected folder",
|
||||
"@errorCouldNotKeepFolderAccess": {
|
||||
"description": "Error when persistent folder access cannot be saved"
|
||||
},
|
||||
"storeAnyVersion": "Any",
|
||||
"@storeAnyVersion": {
|
||||
"description": "Store detail value when any app version is accepted"
|
||||
|
||||
Reference in New Issue
Block a user