From 8c201b5b4abe40a0a8daed9e6dcaf387aa08e7b7 Mon Sep 17 00:00:00 2001 From: zarzet Date: Mon, 2 Feb 2026 07:20:15 +0700 Subject: [PATCH] feat: add Cloud Save settings page (UI only) - Add cloud upload settings to settings model (provider, URL, credentials, path) - Create CloudSettingsPage with WebDAV and SFTP provider options - Add Cloud Save menu item in main settings - Add localization strings for cloud settings - Actual upload implementation will come in v3.4.0 Settings fields added: - cloudUploadEnabled: toggle auto-upload - cloudProvider: 'webdav', 'sftp', or 'none' - cloudServerUrl: server URL - cloudUsername/cloudPassword: credentials - cloudRemotePath: destination folder path --- CHANGELOG.md | 6 + lib/l10n/app_localizations.dart | 223 ++++-- lib/l10n/app_localizations_de.dart | 342 ++++---- lib/l10n/app_localizations_en.dart | 297 ++++--- lib/l10n/app_localizations_es.dart | 599 ++++++-------- lib/l10n/app_localizations_fr.dart | 297 ++++--- lib/l10n/app_localizations_hi.dart | 297 ++++--- lib/l10n/app_localizations_id.dart | 336 ++++---- lib/l10n/app_localizations_ja.dart | 255 +++--- lib/l10n/app_localizations_ko.dart | 297 ++++--- lib/l10n/app_localizations_nl.dart | 297 ++++--- lib/l10n/app_localizations_pt.dart | 590 ++++++-------- lib/l10n/app_localizations_ru.dart | 375 ++++----- lib/l10n/app_localizations_tr.dart | 342 ++++---- lib/l10n/app_localizations_zh.dart | 739 +++++++----------- lib/l10n/arb/app_en.arb | 34 + lib/models/settings.dart | 29 + lib/models/settings.g.dart | 12 + lib/providers/settings_provider.dart | 50 ++ lib/screens/settings/cloud_settings_page.dart | 409 ++++++++++ lib/screens/settings/settings_tab.dart | 7 + 21 files changed, 2793 insertions(+), 3040 deletions(-) create mode 100644 lib/screens/settings/cloud_settings_page.dart diff --git a/CHANGELOG.md b/CHANGELOG.md index d392bb00..011557b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,12 @@ - Choose between "WiFi + Mobile Data" or "WiFi Only" - Downloads automatically pause on mobile data and resume on WiFi +- **Cloud Save Settings (UI Only)**: New settings page for cloud/NAS upload configuration + - Settings > Cloud Save - configure auto-upload to NAS or cloud storage + - Support for WebDAV (Synology, Nextcloud, QNAP) and SFTP providers + - Server URL, username, password, and remote path configuration + - Test connection button (actual upload implementation coming in v3.4.0) + ### Dependencies - Added `connectivity_plus: ^6.0.3` for network state detection diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index 7f3e5315..f44bf75b 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -73,8 +73,7 @@ import 'app_localizations_zh.dart'; /// be consistent with the languages listed in the AppLocalizations.supportedLocales /// property. abstract class AppLocalizations { - AppLocalizations(String locale) - : localeName = intl.Intl.canonicalizedLocale(locale.toString()); + AppLocalizations(String locale) : localeName = intl.Intl.canonicalizedLocale(locale.toString()); final String localeName; @@ -82,8 +81,7 @@ abstract class AppLocalizations { return Localizations.of(context, AppLocalizations)!; } - static const LocalizationsDelegate delegate = - _AppLocalizationsDelegate(); + static const LocalizationsDelegate delegate = _AppLocalizationsDelegate(); /// A list of this localizations delegate along with the default localizations /// delegates. @@ -95,13 +93,12 @@ abstract class AppLocalizations { /// Additional delegates can be added by appending to this list in /// MaterialApp. This list does not have to be used at all if a custom list /// of delegates is preferred or required. - static const List> localizationsDelegates = - >[ - delegate, - GlobalMaterialLocalizations.delegate, - GlobalCupertinoLocalizations.delegate, - GlobalWidgetsLocalizations.delegate, - ]; + static const List> localizationsDelegates = >[ + delegate, + GlobalMaterialLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + ]; /// A list of this localizations delegate's supported locales. static const List supportedLocales = [ @@ -121,7 +118,7 @@ abstract class AppLocalizations { Locale('tr'), Locale('zh'), Locale('zh', 'CN'), - Locale('zh', 'TW'), + Locale('zh', 'TW') ]; /// App name - DO NOT TRANSLATE @@ -3712,6 +3709,102 @@ abstract class AppLocalizations { /// **'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'** String get settingsDownloadNetworkSubtitle; + /// Settings menu item for cloud upload + /// + /// In en, this message translates to: + /// **'Cloud Save'** + String get settingsCloudSave; + + /// Subtitle for cloud save menu item + /// + /// In en, this message translates to: + /// **'Auto-upload to NAS or cloud storage'** + String get settingsCloudSaveSubtitle; + + /// Cloud settings page title + /// + /// In en, this message translates to: + /// **'Cloud Save'** + String get cloudSettingsTitle; + + /// General section header + /// + /// In en, this message translates to: + /// **'General'** + String get cloudSettingsSectionGeneral; + + /// Toggle to enable cloud upload + /// + /// In en, this message translates to: + /// **'Enable Cloud Upload'** + String get cloudSettingsEnable; + + /// Subtitle for enable toggle + /// + /// In en, this message translates to: + /// **'Automatically upload files after download completes'** + String get cloudSettingsEnableSubtitle; + + /// Provider section header + /// + /// In en, this message translates to: + /// **'Cloud Provider'** + String get cloudSettingsSectionProvider; + + /// Provider selection setting + /// + /// In en, this message translates to: + /// **'Provider'** + String get cloudSettingsProvider; + + /// Provider picker description + /// + /// In en, this message translates to: + /// **'Select where to upload your downloaded files'** + String get cloudSettingsProviderDescription; + + /// Server config section header + /// + /// In en, this message translates to: + /// **'Server Configuration'** + String get cloudSettingsSectionServer; + + /// Server URL field label + /// + /// In en, this message translates to: + /// **'Server URL'** + String get cloudSettingsServerUrl; + + /// Username field label + /// + /// In en, this message translates to: + /// **'Username'** + String get cloudSettingsUsername; + + /// Password field label + /// + /// In en, this message translates to: + /// **'Password'** + String get cloudSettingsPassword; + + /// Remote path field label + /// + /// In en, this message translates to: + /// **'Remote Folder Path'** + String get cloudSettingsRemotePath; + + /// Test connection button + /// + /// In en, this message translates to: + /// **'Test Connection'** + String get cloudSettingsTestConnection; + + /// Info card explaining the feature + /// + /// In en, this message translates to: + /// **'Downloaded files will be automatically uploaded to your cloud storage after download completes. Original files are kept on your device.'** + String get cloudSettingsInfo; + /// Empty queue state title /// /// In en, this message translates to: @@ -4067,8 +4160,7 @@ abstract class AppLocalizations { String get allFilesAccessDisabledMessage; } -class _AppLocalizationsDelegate - extends LocalizationsDelegate { +class _AppLocalizationsDelegate extends LocalizationsDelegate { const _AppLocalizationsDelegate(); @override @@ -4077,91 +4169,58 @@ class _AppLocalizationsDelegate } @override - bool isSupported(Locale locale) => [ - 'de', - 'en', - 'es', - 'fr', - 'hi', - 'id', - 'ja', - 'ko', - 'nl', - 'pt', - 'ru', - 'tr', - 'zh', - ].contains(locale.languageCode); + bool isSupported(Locale locale) => ['de', 'en', 'es', 'fr', 'hi', 'id', 'ja', 'ko', 'nl', 'pt', 'ru', 'tr', 'zh'].contains(locale.languageCode); @override bool shouldReload(_AppLocalizationsDelegate old) => false; } AppLocalizations lookupAppLocalizations(Locale locale) { + // Lookup logic when language+country codes are specified. switch (locale.languageCode) { - case 'es': - { - switch (locale.countryCode) { - case 'ES': - return AppLocalizationsEsEs(); - } - break; - } - case 'pt': - { - switch (locale.countryCode) { - case 'PT': - return AppLocalizationsPtPt(); - } - break; - } - case 'zh': - { - switch (locale.countryCode) { - case 'CN': - return AppLocalizationsZhCn(); - case 'TW': - return AppLocalizationsZhTw(); - } - break; - } + case 'es': { + switch (locale.countryCode) { + case 'ES': return AppLocalizationsEsEs(); + } + break; + } + case 'pt': { + switch (locale.countryCode) { + case 'PT': return AppLocalizationsPtPt(); + } + break; + } + case 'zh': { + switch (locale.countryCode) { + case 'CN': return AppLocalizationsZhCn(); +case 'TW': return AppLocalizationsZhTw(); + } + break; + } } // Lookup logic when only language code is specified. switch (locale.languageCode) { - case 'de': - return AppLocalizationsDe(); - case 'en': - return AppLocalizationsEn(); - case 'es': - return AppLocalizationsEs(); - case 'fr': - return AppLocalizationsFr(); - case 'hi': - return AppLocalizationsHi(); - case 'id': - return AppLocalizationsId(); - case 'ja': - return AppLocalizationsJa(); - case 'ko': - return AppLocalizationsKo(); - case 'nl': - return AppLocalizationsNl(); - case 'pt': - return AppLocalizationsPt(); - case 'ru': - return AppLocalizationsRu(); - case 'tr': - return AppLocalizationsTr(); - case 'zh': - return AppLocalizationsZh(); + case 'de': return AppLocalizationsDe(); + case 'en': return AppLocalizationsEn(); + case 'es': return AppLocalizationsEs(); + case 'fr': return AppLocalizationsFr(); + case 'hi': return AppLocalizationsHi(); + case 'id': return AppLocalizationsId(); + case 'ja': return AppLocalizationsJa(); + case 'ko': return AppLocalizationsKo(); + case 'nl': return AppLocalizationsNl(); + case 'pt': return AppLocalizationsPt(); + case 'ru': return AppLocalizationsRu(); + case 'tr': return AppLocalizationsTr(); + case 'zh': return AppLocalizationsZh(); } throw FlutterError( 'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely ' 'an issue with the localizations generation tool. Please file an issue ' 'on GitHub with a reproducible sample app and the gen-l10n configuration ' - 'that was used.', + 'that was used.' ); } diff --git a/lib/l10n/app_localizations_de.dart b/lib/l10n/app_localizations_de.dart index c9eccb74..7c303009 100644 --- a/lib/l10n/app_localizations_de.dart +++ b/lib/l10n/app_localizations_de.dart @@ -12,8 +12,7 @@ class AppLocalizationsDe extends AppLocalizations { String get appName => 'SpotiFLAC'; @override - String get appDescription => - 'Laden Sie Spotify-Titel in verlustfreier Qualität von Tidal, Qobuz und Amazon Music herunter.'; + String get appDescription => 'Laden Sie Spotify-Titel in verlustfreier Qualität von Tidal, Qobuz und Amazon Music herunter.'; @override String get navHome => 'Startseite'; @@ -42,8 +41,7 @@ class AppLocalizationsDe extends AppLocalizations { String get homeSubtitle => 'Spotify-Link einfügen oder nach Namen suchen'; @override - String get homeSupports => - 'Unterstützt: Titel, Album, Playlist, Künstler-URLs'; + String get homeSupports => 'Unterstützt: Titel, Album, Playlist, Künstler-URLs'; @override String get homeRecent => 'Zuletzt'; @@ -94,22 +92,19 @@ class AppLocalizationsDe extends AppLocalizations { String get historyNoDownloads => 'Kein Download-Verlauf'; @override - String get historyNoDownloadsSubtitle => - 'Heruntergeladene Titel werden hier angezeigt'; + String get historyNoDownloadsSubtitle => 'Heruntergeladene Titel werden hier angezeigt'; @override String get historyNoAlbums => 'Keine Album-Downloads'; @override - String get historyNoAlbumsSubtitle => - 'Laden Sie mehrere Titel eines Albums herunter, um sie hier zu sehen'; + String get historyNoAlbumsSubtitle => 'Laden Sie mehrere Titel eines Albums herunter, um sie hier zu sehen'; @override String get historyNoSingles => 'Keine Einzel-Downloads'; @override - String get historyNoSinglesSubtitle => - 'Einzelne Titel-Downloads werden hier angezeigt'; + String get historyNoSinglesSubtitle => 'Einzelne Titel-Downloads werden hier angezeigt'; @override String get historySearchHint => 'Suchverlauf...'; @@ -139,8 +134,7 @@ class AppLocalizationsDe extends AppLocalizations { String get downloadLocation => 'Download-Speicherort'; @override - String get downloadLocationSubtitle => - 'Wählen Sie den Speicherort für Dateien'; + String get downloadLocationSubtitle => 'Wählen Sie den Speicherort für Dateien'; @override String get downloadLocationDefault => 'Standard-Speicherort'; @@ -158,8 +152,7 @@ class AppLocalizationsDe extends AppLocalizations { String get downloadAskQuality => 'Qualität vor Download abfragen'; @override - String get downloadAskQualitySubtitle => - 'Qualitätsauswahl für jeden Download anzeigen'; + String get downloadAskQualitySubtitle => 'Qualitätsauswahl für jeden Download anzeigen'; @override String get downloadFilenameFormat => 'Dateinamenformat'; @@ -171,8 +164,7 @@ class AppLocalizationsDe extends AppLocalizations { String get downloadSeparateSingles => 'Singles trennen'; @override - String get downloadSeparateSinglesSubtitle => - 'Einzelne Titel in separatem Ordner speichern'; + String get downloadSeparateSinglesSubtitle => 'Einzelne Titel in separatem Ordner speichern'; @override String get qualityBest => 'Beste Qualität'; @@ -205,8 +197,7 @@ class AppLocalizationsDe extends AppLocalizations { String get appearanceDynamicColor => 'Dynamische Farben'; @override - String get appearanceDynamicColorSubtitle => - 'Farben von Ihrem Hintergrundbild verwenden'; + String get appearanceDynamicColorSubtitle => 'Farben von Ihrem Hintergrundbild verwenden'; @override String get appearanceAccentColor => 'Akzentfarbe'; @@ -230,8 +221,7 @@ class AppLocalizationsDe extends AppLocalizations { String get optionsPrimaryProvider => 'Primärer Anbieter'; @override - String get optionsPrimaryProviderSubtitle => - 'Dienst für die Suche nach Titelnamen.'; + String get optionsPrimaryProviderSubtitle => 'Dienst für die Suche nach Titelnamen.'; @override String optionsUsingExtension(String extensionName) { @@ -239,40 +229,34 @@ class AppLocalizationsDe extends AppLocalizations { } @override - String get optionsSwitchBack => - 'Tippen Sie auf Deezer oder Spotify, um von der Erweiterung zurückzuwechseln'; + String get optionsSwitchBack => 'Tippen Sie auf Deezer oder Spotify, um von der Erweiterung zurückzuwechseln'; @override String get optionsAutoFallback => 'Automatischer Fallback'; @override - String get optionsAutoFallbackSubtitle => - 'Andere Dienste versuchen, wenn Download fehlschlägt'; + String get optionsAutoFallbackSubtitle => 'Andere Dienste versuchen, wenn Download fehlschlägt'; @override String get optionsUseExtensionProviders => 'Erweiterungs-Anbieter verwenden'; @override - String get optionsUseExtensionProvidersOn => - 'Erweiterungen werden zuerst versucht'; + String get optionsUseExtensionProvidersOn => 'Erweiterungen werden zuerst versucht'; @override - String get optionsUseExtensionProvidersOff => - 'Nur integrierte Anbieter verwenden'; + String get optionsUseExtensionProvidersOff => 'Nur integrierte Anbieter verwenden'; @override String get optionsEmbedLyrics => 'Liedtexte einbetten'; @override - String get optionsEmbedLyricsSubtitle => - 'Synchronisierte Liedtexte in FLAC-Dateien einbetten'; + String get optionsEmbedLyricsSubtitle => 'Synchronisierte Liedtexte in FLAC-Dateien einbetten'; @override String get optionsMaxQualityCover => 'Maximale Cover-Qualität'; @override - String get optionsMaxQualityCoverSubtitle => - 'Cover in höchster Auflösung herunterladen'; + String get optionsMaxQualityCoverSubtitle => 'Cover in höchster Auflösung herunterladen'; @override String get optionsConcurrentDownloads => 'Parallele Downloads'; @@ -286,22 +270,19 @@ class AppLocalizationsDe extends AppLocalizations { } @override - String get optionsConcurrentWarning => - 'Parallele Downloads können Ratenlimitierung auslösen'; + String get optionsConcurrentWarning => 'Parallele Downloads können Ratenlimitierung auslösen'; @override String get optionsExtensionStore => 'Erweiterungs-Store'; @override - String get optionsExtensionStoreSubtitle => - 'Store-Tab in Navigation anzeigen'; + String get optionsExtensionStoreSubtitle => 'Store-Tab in Navigation anzeigen'; @override String get optionsCheckUpdates => 'Nach Updates suchen'; @override - String get optionsCheckUpdatesSubtitle => - 'Benachrichtigen, wenn neue Version verfügbar'; + String get optionsCheckUpdatesSubtitle => 'Benachrichtigen, wenn neue Version verfügbar'; @override String get optionsUpdateChannel => 'Update-Kanal'; @@ -313,22 +294,19 @@ class AppLocalizationsDe extends AppLocalizations { String get optionsUpdateChannelPreview => 'Vorschau-Versionen erhalten'; @override - String get optionsUpdateChannelWarning => - 'Vorschau kann Fehler oder unvollständige Funktionen enthalten'; + String get optionsUpdateChannelWarning => 'Vorschau kann Fehler oder unvollständige Funktionen enthalten'; @override String get optionsClearHistory => 'Download-Verlauf löschen'; @override - String get optionsClearHistorySubtitle => - 'Alle heruntergeladenen Titel aus dem Verlauf entfernen'; + String get optionsClearHistorySubtitle => 'Alle heruntergeladenen Titel aus dem Verlauf entfernen'; @override String get optionsDetailedLogging => 'Detaillierte Protokollierung'; @override - String get optionsDetailedLoggingOn => - 'Detaillierte Protokolle werden aufgezeichnet'; + String get optionsDetailedLoggingOn => 'Detaillierte Protokolle werden aufgezeichnet'; @override String get optionsDetailedLoggingOff => 'Für Fehlerberichte aktivieren'; @@ -342,12 +320,10 @@ class AppLocalizationsDe extends AppLocalizations { } @override - String get optionsSpotifyCredentialsRequired => - 'Erforderlich - zum Konfigurieren tippen'; + String get optionsSpotifyCredentialsRequired => 'Erforderlich - zum Konfigurieren tippen'; @override - String get optionsSpotifyWarning => - 'Spotify erfordert eigene API-Anmeldedaten. Kostenlos erhältlich auf developer.spotify.com'; + String get optionsSpotifyWarning => 'Spotify erfordert eigene API-Anmeldedaten. Kostenlos erhältlich auf developer.spotify.com'; @override String get extensionsTitle => 'Erweiterungen'; @@ -359,8 +335,7 @@ class AppLocalizationsDe extends AppLocalizations { String get extensionsNone => 'Keine Erweiterungen installiert'; @override - String get extensionsNoneSubtitle => - 'Erweiterungen aus dem Store-Tab installieren'; + String get extensionsNoneSubtitle => 'Erweiterungen aus dem Store-Tab installieren'; @override String get extensionsEnabled => 'Aktiviert'; @@ -412,8 +387,7 @@ class AppLocalizationsDe extends AppLocalizations { String get aboutOriginalCreator => 'Schöpfer des ursprünglichen SpotiFLAC'; @override - String get aboutLogoArtist => - 'Der talentierte Künstler, der unser wunderschönes App-Logo entworfen hat!'; + String get aboutLogoArtist => 'Der talentierte Künstler, der unser wunderschönes App-Logo entworfen hat!'; @override String get aboutTranslators => 'Übersetzer'; @@ -434,15 +408,13 @@ class AppLocalizationsDe extends AppLocalizations { String get aboutReportIssue => 'Problem melden'; @override - String get aboutReportIssueSubtitle => - 'Melde jedes Problem, die dir auftreten'; + String get aboutReportIssueSubtitle => 'Melde jedes Problem, die dir auftreten'; @override String get aboutFeatureRequest => 'Feature vorschlagen'; @override - String get aboutFeatureRequestSubtitle => - 'Schlage neue Funktionen für die App vor'; + String get aboutFeatureRequestSubtitle => 'Schlage neue Funktionen für die App vor'; @override String get aboutTelegramChannel => 'Telegram Kanal'; @@ -466,8 +438,7 @@ class AppLocalizationsDe extends AppLocalizations { String get aboutBuyMeCoffee => 'Spendiere mir einen Kaffee'; @override - String get aboutBuyMeCoffeeSubtitle => - 'Unterstütze die Entwicklung auf Ko-fi'; + String get aboutBuyMeCoffeeSubtitle => 'Unterstütze die Entwicklung auf Ko-fi'; @override String get aboutApp => 'App'; @@ -476,34 +447,28 @@ class AppLocalizationsDe extends AppLocalizations { String get aboutVersion => 'Version'; @override - String get aboutBinimumDesc => - 'Der Schöpfer der QQDL & HiFi API. Ohne diese API gäbe es keine Tidal-Downloads!'; + String get aboutBinimumDesc => 'Der Schöpfer der QQDL & HiFi API. Ohne diese API gäbe es keine Tidal-Downloads!'; @override - String get aboutSachinsenalDesc => - 'Der ursprüngliche Entwickler des HiFi-Projekts. Die Grundlage der Tidal-Integration!'; + String get aboutSachinsenalDesc => 'Der ursprüngliche Entwickler des HiFi-Projekts. Die Grundlage der Tidal-Integration!'; @override - String get aboutSjdonadoDesc => - 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; + String get aboutSjdonadoDesc => 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; @override String get aboutDoubleDouble => 'DoubleDouble'; @override - String get aboutDoubleDoubleDesc => - 'Wundervolle API für Amazon Music Downloads.\nVielen Dank, dass Sie sie kostenlos zur Verfügung stellen!'; + String get aboutDoubleDoubleDesc => 'Wundervolle API für Amazon Music Downloads.\nVielen Dank, dass Sie sie kostenlos zur Verfügung stellen!'; @override String get aboutDabMusic => 'DAB Music'; @override - String get aboutDabMusicDesc => - 'Die beste Qobuz-Streaming-API. Hi-Res-Downloads wären ohne diese nicht möglich!'; + String get aboutDabMusicDesc => 'Die beste Qobuz-Streaming-API. Hi-Res-Downloads wären ohne diese nicht möglich!'; @override - String get aboutAppDescription => - 'Lade Spotify-Titel in verlustfreier Qualität von Tidal, Qobuz und Amazon Music herunter.'; + String get aboutAppDescription => 'Lade Spotify-Titel in verlustfreier Qualität von Tidal, Qobuz und Amazon Music herunter.'; @override String get albumTitle => 'Album'; @@ -608,8 +573,7 @@ class AppLocalizationsDe extends AppLocalizations { String get setupStoragePermission => 'Speicherberechtigung'; @override - String get setupStoragePermissionSubtitle => - 'Benötigt um heruntergeladene Dateien zu Speichern'; + String get setupStoragePermissionSubtitle => 'Benötigt um heruntergeladene Dateien zu Speichern'; @override String get setupStoragePermissionGranted => 'Berechtigung erteilt'; @@ -636,19 +600,16 @@ class AppLocalizationsDe extends AppLocalizations { String get setupStorageAccessRequired => 'Speicherzugriff erforderlich'; @override - String get setupStorageAccessMessage => - 'SpotiFLAC benötigt die Berechtigung \"Auf alle Dateien zugreifen\", um Musikdateien in deinen gewählten Ordner zu speichern.'; + String get setupStorageAccessMessage => 'SpotiFLAC benötigt die Berechtigung \"Auf alle Dateien zugreifen\", um Musikdateien in deinen gewählten Ordner zu speichern.'; @override - String get setupStorageAccessMessageAndroid11 => - 'Android 11+ benötigt die Berechtigung „Auf alle Dateien“, um Dateien im ausgewählten Download-Ordner zu speichern.'; + String get setupStorageAccessMessageAndroid11 => 'Android 11+ benötigt die Berechtigung „Auf alle Dateien“, um Dateien im ausgewählten Download-Ordner zu speichern.'; @override String get setupOpenSettings => 'Einstellungen öffnen'; @override - String get setupPermissionDeniedMessage => - 'Berechtigung verweigert. Bitte erteilen Sie alle Berechtigungen um fortzufahren.'; + String get setupPermissionDeniedMessage => 'Berechtigung verweigert. Bitte erteilen Sie alle Berechtigungen um fortzufahren.'; @override String setupPermissionRequired(String permissionType) { @@ -667,8 +628,7 @@ class AppLocalizationsDe extends AppLocalizations { String get setupUseDefaultFolder => 'Als Standardordner verwenden?'; @override - String get setupNoFolderSelected => - 'Kein Ordner ausgewählt. Soll der Standard-Musikordner verwendet werden?'; + String get setupNoFolderSelected => 'Kein Ordner ausgewählt. Soll der Standard-Musikordner verwendet werden?'; @override String get setupUseDefault => 'Standart benutzen'; @@ -677,30 +637,25 @@ class AppLocalizationsDe extends AppLocalizations { String get setupDownloadLocationTitle => 'Speicherort'; @override - String get setupDownloadLocationIosMessage => - 'Auf iOS werden Downloads im Dokumentenverzeichnis der App gespeichert. Sie können sie über die Datei-App aufrufen.'; + String get setupDownloadLocationIosMessage => 'Auf iOS werden Downloads im Dokumentenverzeichnis der App gespeichert. Sie können sie über die Datei-App aufrufen.'; @override String get setupAppDocumentsFolder => 'App-Dokumentenordner'; @override - String get setupAppDocumentsFolderSubtitle => - 'Empfohlen - zugänglich über die Datei-App'; + String get setupAppDocumentsFolderSubtitle => 'Empfohlen - zugänglich über die Datei-App'; @override String get setupChooseFromFiles => 'Aus Dateien auswählen'; @override - String get setupChooseFromFilesSubtitle => - 'Wählen Sie iCloud oder einen anderen Ort'; + String get setupChooseFromFilesSubtitle => 'Wählen Sie iCloud oder einen anderen Ort'; @override - String get setupIosEmptyFolderWarning => - 'iOS-Einschränkung: Leere Ordner können nicht ausgewählt werden. Wählen Sie einen Ordner mit mindestens einer Datei.'; + String get setupIosEmptyFolderWarning => 'iOS-Einschränkung: Leere Ordner können nicht ausgewählt werden. Wählen Sie einen Ordner mit mindestens einer Datei.'; @override - String get setupIcloudNotSupported => - 'iCloud Drive is not supported. Please use the app Documents folder.'; + String get setupIcloudNotSupported => 'iCloud Drive is not supported. Please use the app Documents folder.'; @override String get setupDownloadInFlac => 'Spotify Titel in FLAC herunterladen'; @@ -727,19 +682,16 @@ class AppLocalizationsDe extends AppLocalizations { String get setupStorageRequired => 'Speicherzugriff erforderlich'; @override - String get setupStorageDescription => - 'SpotiFLAC benötigt Speicherrechte, um die heruntergeladenen Musikdateien zu speichern.'; + String get setupStorageDescription => 'SpotiFLAC benötigt Speicherrechte, um die heruntergeladenen Musikdateien zu speichern.'; @override - String get setupNotificationGranted => - 'Benachrichtigungs-Berechtigung erteilt'; + String get setupNotificationGranted => 'Benachrichtigungs-Berechtigung erteilt'; @override String get setupNotificationEnable => 'Benachrichtigungen aktivieren'; @override - String get setupNotificationDescription => - 'Benachrichtigt werden, wenn Downloads abgeschlossen sind.'; + String get setupNotificationDescription => 'Benachrichtigt werden, wenn Downloads abgeschlossen sind.'; @override String get setupFolderSelected => 'Download Ordner ausgewählt!'; @@ -748,8 +700,7 @@ class AppLocalizationsDe extends AppLocalizations { String get setupFolderChoose => 'Speicherort auwählen'; @override - String get setupFolderDescription => - 'Wählen Sie einen Ordner, in dem Ihre heruntergeladene Musik gespeichert wird.'; + String get setupFolderDescription => 'Wählen Sie einen Ordner, in dem Ihre heruntergeladene Musik gespeichert wird.'; @override String get setupChangeFolder => 'Ordner ändern'; @@ -761,8 +712,7 @@ class AppLocalizationsDe extends AppLocalizations { String get setupSpotifyApiOptional => 'Spotify-API (optional)'; @override - String get setupSpotifyApiDescription => - 'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.'; + String get setupSpotifyApiDescription => 'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.'; @override String get setupUseSpotifyApi => 'Use Spotify API'; @@ -780,8 +730,7 @@ class AppLocalizationsDe extends AppLocalizations { String get setupEnterClientSecret => 'Enter Spotify Client Secret'; @override - String get setupGetFreeCredentials => - 'Get your free API credentials from the Spotify Developer Dashboard.'; + String get setupGetFreeCredentials => 'Get your free API credentials from the Spotify Developer Dashboard.'; @override String get setupEnableNotifications => 'Enable Notifications'; @@ -790,12 +739,10 @@ class AppLocalizationsDe extends AppLocalizations { String get setupProceedToNextStep => 'You can now proceed to the next step.'; @override - String get setupNotificationProgressDescription => - 'You will receive download progress notifications.'; + String get setupNotificationProgressDescription => 'You will receive download progress notifications.'; @override - String get setupNotificationBackgroundDescription => - 'Get notified about download progress and completion. This helps you track downloads when the app is in background.'; + String get setupNotificationBackgroundDescription => 'Get notified about download progress and completion. This helps you track downloads when the app is in background.'; @override String get setupSkipForNow => 'Skip for now'; @@ -813,12 +760,10 @@ class AppLocalizationsDe extends AppLocalizations { String get setupSkipAndStart => 'Skip & Start'; @override - String get setupAllowAccessToManageFiles => - 'Please enable \"Allow access to manage all files\" in the next screen.'; + String get setupAllowAccessToManageFiles => 'Please enable \"Allow access to manage all files\" in the next screen.'; @override - String get setupGetCredentialsFromSpotify => - 'Get credentials from developer.spotify.com'; + String get setupGetCredentialsFromSpotify => 'Get credentials from developer.spotify.com'; @override String get dialogCancel => 'Cancel'; @@ -869,8 +814,7 @@ class AppLocalizationsDe extends AppLocalizations { String get dialogDiscardChanges => 'Discard Changes?'; @override - String get dialogUnsavedChanges => - 'You have unsaved changes. Do you want to discard them?'; + String get dialogUnsavedChanges => 'You have unsaved changes. Do you want to discard them?'; @override String get dialogDownloadFailed => 'Download Failed'; @@ -888,8 +832,7 @@ class AppLocalizationsDe extends AppLocalizations { String get dialogClearAll => 'Clear All'; @override - String get dialogClearAllDownloads => - 'Are you sure you want to clear all downloads?'; + String get dialogClearAllDownloads => 'Are you sure you want to clear all downloads?'; @override String get dialogRemoveFromDevice => 'Remove from device?'; @@ -898,8 +841,7 @@ class AppLocalizationsDe extends AppLocalizations { String get dialogRemoveExtension => 'Remove Extension'; @override - String get dialogRemoveExtensionMessage => - 'Are you sure you want to remove this extension? This cannot be undone.'; + String get dialogRemoveExtensionMessage => 'Are you sure you want to remove this extension? This cannot be undone.'; @override String get dialogUninstallExtension => 'Uninstall Extension?'; @@ -913,8 +855,7 @@ class AppLocalizationsDe extends AppLocalizations { String get dialogClearHistoryTitle => 'Clear History'; @override - String get dialogClearHistoryMessage => - 'Are you sure you want to clear all download history? This cannot be undone.'; + String get dialogClearHistoryMessage => 'Are you sure you want to clear all download history? This cannot be undone.'; @override String get dialogDeleteSelectedTitle => 'Delete Selected'; @@ -1009,8 +950,7 @@ class AppLocalizationsDe extends AppLocalizations { String get snackbarProviderPrioritySaved => 'Provider priority saved'; @override - String get snackbarMetadataProviderSaved => - 'Metadata provider priority saved'; + String get snackbarMetadataProviderSaved => 'Metadata provider priority saved'; @override String snackbarExtensionInstalled(String extensionName) { @@ -1032,8 +972,7 @@ class AppLocalizationsDe extends AppLocalizations { String get errorRateLimited => 'Rate Limited'; @override - String get errorRateLimitedMessage => - 'Too many requests. Please wait a moment before searching again.'; + String get errorRateLimitedMessage => 'Too many requests. Please wait a moment before searching again.'; @override String errorFailedToLoad(String item) { @@ -1200,23 +1139,19 @@ class AppLocalizationsDe extends AppLocalizations { String get folderOrganizationByArtistAlbum => 'Artist/Album'; @override - String get folderOrganizationDescription => - 'Organize downloaded files into folders'; + String get folderOrganizationDescription => 'Organize downloaded files into folders'; @override String get folderOrganizationNoneSubtitle => 'All files in download folder'; @override - String get folderOrganizationByArtistSubtitle => - 'Separate folder for each artist'; + String get folderOrganizationByArtistSubtitle => 'Separate folder for each artist'; @override - String get folderOrganizationByAlbumSubtitle => - 'Separate folder for each album'; + String get folderOrganizationByAlbumSubtitle => 'Separate folder for each album'; @override - String get folderOrganizationByArtistAlbumSubtitle => - 'Nested folders for artist and album'; + String get folderOrganizationByArtistAlbumSubtitle => 'Nested folders for artist and album'; @override String get updateAvailable => 'Update Available'; @@ -1275,12 +1210,10 @@ class AppLocalizationsDe extends AppLocalizations { String get providerPriorityTitle => 'Provider Priority'; @override - String get providerPriorityDescription => - 'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.'; + String get providerPriorityDescription => 'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.'; @override - String get providerPriorityInfo => - 'If a track is not available on the first provider, the app will automatically try the next one.'; + String get providerPriorityInfo => 'If a track is not available on the first provider, the app will automatically try the next one.'; @override String get providerBuiltIn => 'Built-in'; @@ -1292,19 +1225,16 @@ class AppLocalizationsDe extends AppLocalizations { String get metadataProviderPriority => 'Metadata Provider Priority'; @override - String get metadataProviderPrioritySubtitle => - 'Order used when fetching track metadata'; + String get metadataProviderPrioritySubtitle => 'Order used when fetching track metadata'; @override String get metadataProviderPriorityTitle => 'Metadata Priority'; @override - String get metadataProviderPriorityDescription => - 'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.'; + String get metadataProviderPriorityDescription => 'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.'; @override - String get metadataProviderPriorityInfo => - 'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.'; + String get metadataProviderPriorityInfo => 'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.'; @override String get metadataNoRateLimits => 'No rate limits'; @@ -1376,19 +1306,16 @@ class AppLocalizationsDe extends AppLocalizations { String get logIssueSummary => 'Issue Summary'; @override - String get logIspBlockingDescription => - 'Your ISP may be blocking access to download services'; + String get logIspBlockingDescription => 'Your ISP may be blocking access to download services'; @override - String get logIspBlockingSuggestion => - 'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8'; + String get logIspBlockingSuggestion => 'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8'; @override String get logRateLimitedDescription => 'Too many requests to the service'; @override - String get logRateLimitedSuggestion => - 'Wait a few minutes before trying again'; + String get logRateLimitedSuggestion => 'Wait a few minutes before trying again'; @override String get logNetworkErrorDescription => 'Connection issues detected'; @@ -1397,12 +1324,10 @@ class AppLocalizationsDe extends AppLocalizations { String get logNetworkErrorSuggestion => 'Check your internet connection'; @override - String get logTrackNotFoundDescription => - 'Some tracks could not be found on download services'; + String get logTrackNotFoundDescription => 'Some tracks could not be found on download services'; @override - String get logTrackNotFoundSuggestion => - 'The track may not be available in lossless quality'; + String get logTrackNotFoundSuggestion => 'The track may not be available in lossless quality'; @override String logTotalErrors(int count) { @@ -1428,8 +1353,7 @@ class AppLocalizationsDe extends AppLocalizations { String get credentialsTitle => 'Spotify Credentials'; @override - String get credentialsDescription => - 'Enter your Client ID and Secret to use your own Spotify application quota.'; + String get credentialsDescription => 'Enter your Client ID and Secret to use your own Spotify application quota.'; @override String get credentialsClientId => 'Client ID'; @@ -1483,8 +1407,7 @@ class AppLocalizationsDe extends AppLocalizations { String get lyricsMode => 'Lyrics Mode'; @override - String get lyricsModeDescription => - 'Choose how lyrics are saved with your downloads'; + String get lyricsModeDescription => 'Choose how lyrics are saved with your downloads'; @override String get lyricsModeEmbed => 'Embed in file'; @@ -1496,8 +1419,7 @@ class AppLocalizationsDe extends AppLocalizations { String get lyricsModeExternal => 'External .lrc file'; @override - String get lyricsModeExternalSubtitle => - 'Separate .lrc file for players like Samsung Music'; + String get lyricsModeExternalSubtitle => 'Separate .lrc file for players like Samsung Music'; @override String get lyricsModeBoth => 'Both'; @@ -1657,8 +1579,7 @@ class AppLocalizationsDe extends AppLocalizations { String get trackDeleteConfirmTitle => 'Remove from device?'; @override - String get trackDeleteConfirmMessage => - 'This will permanently delete the downloaded file and remove it from your history.'; + String get trackDeleteConfirmMessage => 'This will permanently delete the downloaded file and remove it from your history.'; @override String trackCannotOpen(String message) { @@ -1810,15 +1731,13 @@ class AppLocalizationsDe extends AppLocalizations { String get extensionsNoExtensions => 'No extensions installed'; @override - String get extensionsNoExtensionsSubtitle => - 'Install .spotiflac-ext files to add new providers'; + String get extensionsNoExtensionsSubtitle => 'Install .spotiflac-ext files to add new providers'; @override String get extensionsInstallButton => 'Install Extension'; @override - String get extensionsInfoTip => - 'Extensions can add new metadata and download providers. Only install extensions from trusted sources.'; + String get extensionsInfoTip => 'Extensions can add new metadata and download providers. Only install extensions from trusted sources.'; @override String get extensionsInstalledSuccess => 'Extension installed successfully'; @@ -1830,19 +1749,16 @@ class AppLocalizationsDe extends AppLocalizations { String get extensionsDownloadPrioritySubtitle => 'Set download service order'; @override - String get extensionsNoDownloadProvider => - 'No extensions with download provider'; + String get extensionsNoDownloadProvider => 'No extensions with download provider'; @override String get extensionsMetadataPriority => 'Metadata Priority'; @override - String get extensionsMetadataPrioritySubtitle => - 'Set search & metadata source order'; + String get extensionsMetadataPrioritySubtitle => 'Set search & metadata source order'; @override - String get extensionsNoMetadataProvider => - 'No extensions with metadata provider'; + String get extensionsNoMetadataProvider => 'No extensions with metadata provider'; @override String get extensionsSearchProvider => 'Search Provider'; @@ -1851,8 +1767,7 @@ class AppLocalizationsDe extends AppLocalizations { String get extensionsNoCustomSearch => 'No extensions with custom search'; @override - String get extensionsSearchProviderDescription => - 'Choose which service to use for searching tracks'; + String get extensionsSearchProviderDescription => 'Choose which service to use for searching tracks'; @override String get extensionsCustomSearch => 'Custom search'; @@ -1894,8 +1809,7 @@ class AppLocalizationsDe extends AppLocalizations { String get enableLossyOptionSubtitleOn => 'Lossy quality option is available'; @override - String get enableLossyOptionSubtitleOff => - 'Downloads FLAC then converts to lossy format'; + String get enableLossyOptionSubtitleOff => 'Downloads FLAC then converts to lossy format'; @override String get lossyFormat => 'Lossy Format'; @@ -1907,12 +1821,10 @@ class AppLocalizationsDe extends AppLocalizations { String get lossyFormatMp3Subtitle => '320kbps, best compatibility'; @override - String get lossyFormatOpusSubtitle => - '128kbps, better quality at smaller size'; + String get lossyFormatOpusSubtitle => '128kbps, better quality at smaller size'; @override - String get qualityNote => - 'Actual quality depends on track availability from the service'; + String get qualityNote => 'Actual quality depends on track availability from the service'; @override String get downloadAskBeforeDownload => 'Ask Before Download'; @@ -2002,15 +1914,13 @@ class AppLocalizationsDe extends AppLocalizations { String get queueClearAll => 'Clear All'; @override - String get queueClearAllMessage => - 'Are you sure you want to clear all downloads?'; + String get queueClearAllMessage => 'Are you sure you want to clear all downloads?'; @override String get queueExportFailed => 'Export'; @override - String get queueExportFailedSuccess => - 'Failed downloads exported to TXT file'; + String get queueExportFailedSuccess => 'Failed downloads exported to TXT file'; @override String get queueExportFailedClear => 'Clear Failed'; @@ -2022,8 +1932,7 @@ class AppLocalizationsDe extends AppLocalizations { String get settingsAutoExportFailed => 'Auto-export failed downloads'; @override - String get settingsAutoExportFailedSubtitle => - 'Save failed downloads to TXT file automatically'; + String get settingsAutoExportFailedSubtitle => 'Save failed downloads to TXT file automatically'; @override String get settingsDownloadNetwork => 'Download Network'; @@ -2035,8 +1944,55 @@ class AppLocalizationsDe extends AppLocalizations { String get settingsDownloadNetworkWifiOnly => 'WiFi Only'; @override - String get settingsDownloadNetworkSubtitle => - 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + String get settingsDownloadNetworkSubtitle => 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + + @override + String get settingsCloudSave => 'Cloud Save'; + + @override + String get settingsCloudSaveSubtitle => 'Auto-upload to NAS or cloud storage'; + + @override + String get cloudSettingsTitle => 'Cloud Save'; + + @override + String get cloudSettingsSectionGeneral => 'General'; + + @override + String get cloudSettingsEnable => 'Enable Cloud Upload'; + + @override + String get cloudSettingsEnableSubtitle => 'Automatically upload files after download completes'; + + @override + String get cloudSettingsSectionProvider => 'Cloud Provider'; + + @override + String get cloudSettingsProvider => 'Provider'; + + @override + String get cloudSettingsProviderDescription => 'Select where to upload your downloaded files'; + + @override + String get cloudSettingsSectionServer => 'Server Configuration'; + + @override + String get cloudSettingsServerUrl => 'Server URL'; + + @override + String get cloudSettingsUsername => 'Username'; + + @override + String get cloudSettingsPassword => 'Password'; + + @override + String get cloudSettingsRemotePath => 'Remote Folder Path'; + + @override + String get cloudSettingsTestConnection => 'Test Connection'; + + @override + String get cloudSettingsInfo => 'Downloaded files will be automatically uploaded to your cloud storage after download completes. Original files are kept on your device.'; @override String get queueEmpty => 'No downloads in queue'; @@ -2072,8 +2028,7 @@ class AppLocalizationsDe extends AppLocalizations { String get albumFolderArtistYearAlbum => 'Artist / [Year] Album'; @override - String get albumFolderArtistYearAlbumSubtitle => - 'Albums/Artist Name/[2005] Album Name/'; + String get albumFolderArtistYearAlbumSubtitle => 'Albums/Artist Name/[2005] Album Name/'; @override String get albumFolderAlbumOnly => 'Album Only'; @@ -2091,8 +2046,7 @@ class AppLocalizationsDe extends AppLocalizations { String get albumFolderArtistAlbumSingles => 'Artist / Album + Singles'; @override - String get albumFolderArtistAlbumSinglesSubtitle => - 'Artist/Album/ and Artist/Singles/'; + String get albumFolderArtistAlbumSinglesSubtitle => 'Artist/Album/ and Artist/Singles/'; @override String get downloadedAlbumDeleteSelected => 'Delete Selected'; @@ -2202,8 +2156,7 @@ class AppLocalizationsDe extends AppLocalizations { String get discographySelectAlbums => 'Select Albums...'; @override - String get discographySelectAlbumsSubtitle => - 'Choose specific albums or singles'; + String get discographySelectAlbumsSubtitle => 'Choose specific albums or singles'; @override String get discographyFetchingTracks => 'Fetching tracks...'; @@ -2250,14 +2203,11 @@ class AppLocalizationsDe extends AppLocalizations { String get allFilesAccessDisabledSubtitle => 'Limited to media folders only'; @override - String get allFilesAccessDescription => - 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; + String get allFilesAccessDescription => 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; @override - String get allFilesAccessDeniedMessage => - 'Permission was denied. Please enable \'All files access\' manually in system settings.'; + String get allFilesAccessDeniedMessage => 'Permission was denied. Please enable \'All files access\' manually in system settings.'; @override - String get allFilesAccessDisabledMessage => - 'All Files Access disabled. The app will use limited storage access.'; + String get allFilesAccessDisabledMessage => 'All Files Access disabled. The app will use limited storage access.'; } diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart index 112afdcd..efd25ca6 100644 --- a/lib/l10n/app_localizations_en.dart +++ b/lib/l10n/app_localizations_en.dart @@ -12,8 +12,7 @@ class AppLocalizationsEn extends AppLocalizations { String get appName => 'SpotiFLAC'; @override - String get appDescription => - 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; + String get appDescription => 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; @override String get navHome => 'Home'; @@ -99,15 +98,13 @@ class AppLocalizationsEn extends AppLocalizations { String get historyNoAlbums => 'No album downloads'; @override - String get historyNoAlbumsSubtitle => - 'Download multiple tracks from an album to see them here'; + String get historyNoAlbumsSubtitle => 'Download multiple tracks from an album to see them here'; @override String get historyNoSingles => 'No single downloads'; @override - String get historyNoSinglesSubtitle => - 'Single track downloads will appear here'; + String get historyNoSinglesSubtitle => 'Single track downloads will appear here'; @override String get historySearchHint => 'Search history...'; @@ -155,8 +152,7 @@ class AppLocalizationsEn extends AppLocalizations { String get downloadAskQuality => 'Ask Quality Before Download'; @override - String get downloadAskQualitySubtitle => - 'Show quality picker for each download'; + String get downloadAskQualitySubtitle => 'Show quality picker for each download'; @override String get downloadFilenameFormat => 'Filename Format'; @@ -168,8 +164,7 @@ class AppLocalizationsEn extends AppLocalizations { String get downloadSeparateSingles => 'Separate Singles'; @override - String get downloadSeparateSinglesSubtitle => - 'Put single tracks in a separate folder'; + String get downloadSeparateSinglesSubtitle => 'Put single tracks in a separate folder'; @override String get qualityBest => 'Best Available'; @@ -226,8 +221,7 @@ class AppLocalizationsEn extends AppLocalizations { String get optionsPrimaryProvider => 'Primary Provider'; @override - String get optionsPrimaryProviderSubtitle => - 'Service used when searching by track name.'; + String get optionsPrimaryProviderSubtitle => 'Service used when searching by track name.'; @override String optionsUsingExtension(String extensionName) { @@ -235,15 +229,13 @@ class AppLocalizationsEn extends AppLocalizations { } @override - String get optionsSwitchBack => - 'Tap Deezer or Spotify to switch back from extension'; + String get optionsSwitchBack => 'Tap Deezer or Spotify to switch back from extension'; @override String get optionsAutoFallback => 'Auto Fallback'; @override - String get optionsAutoFallbackSubtitle => - 'Try other services if download fails'; + String get optionsAutoFallbackSubtitle => 'Try other services if download fails'; @override String get optionsUseExtensionProviders => 'Use Extension Providers'; @@ -258,15 +250,13 @@ class AppLocalizationsEn extends AppLocalizations { String get optionsEmbedLyrics => 'Embed Lyrics'; @override - String get optionsEmbedLyricsSubtitle => - 'Embed synced lyrics into FLAC files'; + String get optionsEmbedLyricsSubtitle => 'Embed synced lyrics into FLAC files'; @override String get optionsMaxQualityCover => 'Max Quality Cover'; @override - String get optionsMaxQualityCoverSubtitle => - 'Download highest resolution cover art'; + String get optionsMaxQualityCoverSubtitle => 'Download highest resolution cover art'; @override String get optionsConcurrentDownloads => 'Concurrent Downloads'; @@ -280,8 +270,7 @@ class AppLocalizationsEn extends AppLocalizations { } @override - String get optionsConcurrentWarning => - 'Parallel downloads may trigger rate limiting'; + String get optionsConcurrentWarning => 'Parallel downloads may trigger rate limiting'; @override String get optionsExtensionStore => 'Extension Store'; @@ -293,8 +282,7 @@ class AppLocalizationsEn extends AppLocalizations { String get optionsCheckUpdates => 'Check for Updates'; @override - String get optionsCheckUpdatesSubtitle => - 'Notify when new version is available'; + String get optionsCheckUpdatesSubtitle => 'Notify when new version is available'; @override String get optionsUpdateChannel => 'Update Channel'; @@ -306,15 +294,13 @@ class AppLocalizationsEn extends AppLocalizations { String get optionsUpdateChannelPreview => 'Get preview releases'; @override - String get optionsUpdateChannelWarning => - 'Preview may contain bugs or incomplete features'; + String get optionsUpdateChannelWarning => 'Preview may contain bugs or incomplete features'; @override String get optionsClearHistory => 'Clear Download History'; @override - String get optionsClearHistorySubtitle => - 'Remove all downloaded tracks from history'; + String get optionsClearHistorySubtitle => 'Remove all downloaded tracks from history'; @override String get optionsDetailedLogging => 'Detailed Logging'; @@ -337,8 +323,7 @@ class AppLocalizationsEn extends AppLocalizations { String get optionsSpotifyCredentialsRequired => 'Required - tap to configure'; @override - String get optionsSpotifyWarning => - 'Spotify requires your own API credentials. Get them free from developer.spotify.com'; + String get optionsSpotifyWarning => 'Spotify requires your own API credentials. Get them free from developer.spotify.com'; @override String get extensionsTitle => 'Extensions'; @@ -402,8 +387,7 @@ class AppLocalizationsEn extends AppLocalizations { String get aboutOriginalCreator => 'Creator of the original SpotiFLAC'; @override - String get aboutLogoArtist => - 'The talented artist who created our beautiful app logo!'; + String get aboutLogoArtist => 'The talented artist who created our beautiful app logo!'; @override String get aboutTranslators => 'Translators'; @@ -463,34 +447,28 @@ class AppLocalizationsEn extends AppLocalizations { String get aboutVersion => 'Version'; @override - String get aboutBinimumDesc => - 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; + String get aboutBinimumDesc => 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; @override - String get aboutSachinsenalDesc => - 'The original HiFi project creator. The foundation of Tidal integration!'; + String get aboutSachinsenalDesc => 'The original HiFi project creator. The foundation of Tidal integration!'; @override - String get aboutSjdonadoDesc => - 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; + String get aboutSjdonadoDesc => 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; @override String get aboutDoubleDouble => 'DoubleDouble'; @override - String get aboutDoubleDoubleDesc => - 'Amazing API for Amazon Music downloads. Thank you for making it free!'; + String get aboutDoubleDoubleDesc => 'Amazing API for Amazon Music downloads. Thank you for making it free!'; @override String get aboutDabMusic => 'DAB Music'; @override - String get aboutDabMusicDesc => - 'The best Qobuz streaming API. Hi-Res downloads wouldn\'t be possible without this!'; + String get aboutDabMusicDesc => 'The best Qobuz streaming API. Hi-Res downloads wouldn\'t be possible without this!'; @override - String get aboutAppDescription => - 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; + String get aboutAppDescription => 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; @override String get albumTitle => 'Album'; @@ -595,8 +573,7 @@ class AppLocalizationsEn extends AppLocalizations { String get setupStoragePermission => 'Storage Permission'; @override - String get setupStoragePermissionSubtitle => - 'Required to save downloaded files'; + String get setupStoragePermissionSubtitle => 'Required to save downloaded files'; @override String get setupStoragePermissionGranted => 'Permission granted'; @@ -623,19 +600,16 @@ class AppLocalizationsEn extends AppLocalizations { String get setupStorageAccessRequired => 'Storage Access Required'; @override - String get setupStorageAccessMessage => - 'SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.'; + String get setupStorageAccessMessage => 'SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.'; @override - String get setupStorageAccessMessageAndroid11 => - 'Android 11+ requires \"All files access\" permission to save files to your chosen download folder.'; + String get setupStorageAccessMessageAndroid11 => 'Android 11+ requires \"All files access\" permission to save files to your chosen download folder.'; @override String get setupOpenSettings => 'Open Settings'; @override - String get setupPermissionDeniedMessage => - 'Permission denied. Please grant all permissions to continue.'; + String get setupPermissionDeniedMessage => 'Permission denied. Please grant all permissions to continue.'; @override String setupPermissionRequired(String permissionType) { @@ -654,8 +628,7 @@ class AppLocalizationsEn extends AppLocalizations { String get setupUseDefaultFolder => 'Use Default Folder?'; @override - String get setupNoFolderSelected => - 'No folder selected. Would you like to use the default Music folder?'; + String get setupNoFolderSelected => 'No folder selected. Would you like to use the default Music folder?'; @override String get setupUseDefault => 'Use Default'; @@ -664,15 +637,13 @@ class AppLocalizationsEn extends AppLocalizations { String get setupDownloadLocationTitle => 'Download Location'; @override - String get setupDownloadLocationIosMessage => - 'On iOS, downloads are saved to the app\'s Documents folder. You can access them via the Files app.'; + String get setupDownloadLocationIosMessage => 'On iOS, downloads are saved to the app\'s Documents folder. You can access them via the Files app.'; @override String get setupAppDocumentsFolder => 'App Documents Folder'; @override - String get setupAppDocumentsFolderSubtitle => - 'Recommended - accessible via Files app'; + String get setupAppDocumentsFolderSubtitle => 'Recommended - accessible via Files app'; @override String get setupChooseFromFiles => 'Choose from Files'; @@ -681,12 +652,10 @@ class AppLocalizationsEn extends AppLocalizations { String get setupChooseFromFilesSubtitle => 'Select iCloud or other location'; @override - String get setupIosEmptyFolderWarning => - 'iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.'; + String get setupIosEmptyFolderWarning => 'iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.'; @override - String get setupIcloudNotSupported => - 'iCloud Drive is not supported. Please use the app Documents folder.'; + String get setupIcloudNotSupported => 'iCloud Drive is not supported. Please use the app Documents folder.'; @override String get setupDownloadInFlac => 'Download Spotify tracks in FLAC'; @@ -713,8 +682,7 @@ class AppLocalizationsEn extends AppLocalizations { String get setupStorageRequired => 'Storage Permission Required'; @override - String get setupStorageDescription => - 'SpotiFLAC needs storage permission to save your downloaded music files.'; + String get setupStorageDescription => 'SpotiFLAC needs storage permission to save your downloaded music files.'; @override String get setupNotificationGranted => 'Notification Permission Granted!'; @@ -723,8 +691,7 @@ class AppLocalizationsEn extends AppLocalizations { String get setupNotificationEnable => 'Enable Notifications'; @override - String get setupNotificationDescription => - 'Get notified when downloads complete or require attention.'; + String get setupNotificationDescription => 'Get notified when downloads complete or require attention.'; @override String get setupFolderSelected => 'Download Folder Selected!'; @@ -733,8 +700,7 @@ class AppLocalizationsEn extends AppLocalizations { String get setupFolderChoose => 'Choose Download Folder'; @override - String get setupFolderDescription => - 'Select a folder where your downloaded music will be saved.'; + String get setupFolderDescription => 'Select a folder where your downloaded music will be saved.'; @override String get setupChangeFolder => 'Change Folder'; @@ -746,8 +712,7 @@ class AppLocalizationsEn extends AppLocalizations { String get setupSpotifyApiOptional => 'Spotify API (Optional)'; @override - String get setupSpotifyApiDescription => - 'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.'; + String get setupSpotifyApiDescription => 'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.'; @override String get setupUseSpotifyApi => 'Use Spotify API'; @@ -765,8 +730,7 @@ class AppLocalizationsEn extends AppLocalizations { String get setupEnterClientSecret => 'Enter Spotify Client Secret'; @override - String get setupGetFreeCredentials => - 'Get your free API credentials from the Spotify Developer Dashboard.'; + String get setupGetFreeCredentials => 'Get your free API credentials from the Spotify Developer Dashboard.'; @override String get setupEnableNotifications => 'Enable Notifications'; @@ -775,12 +739,10 @@ class AppLocalizationsEn extends AppLocalizations { String get setupProceedToNextStep => 'You can now proceed to the next step.'; @override - String get setupNotificationProgressDescription => - 'You will receive download progress notifications.'; + String get setupNotificationProgressDescription => 'You will receive download progress notifications.'; @override - String get setupNotificationBackgroundDescription => - 'Get notified about download progress and completion. This helps you track downloads when the app is in background.'; + String get setupNotificationBackgroundDescription => 'Get notified about download progress and completion. This helps you track downloads when the app is in background.'; @override String get setupSkipForNow => 'Skip for now'; @@ -798,12 +760,10 @@ class AppLocalizationsEn extends AppLocalizations { String get setupSkipAndStart => 'Skip & Start'; @override - String get setupAllowAccessToManageFiles => - 'Please enable \"Allow access to manage all files\" in the next screen.'; + String get setupAllowAccessToManageFiles => 'Please enable \"Allow access to manage all files\" in the next screen.'; @override - String get setupGetCredentialsFromSpotify => - 'Get credentials from developer.spotify.com'; + String get setupGetCredentialsFromSpotify => 'Get credentials from developer.spotify.com'; @override String get dialogCancel => 'Cancel'; @@ -854,8 +814,7 @@ class AppLocalizationsEn extends AppLocalizations { String get dialogDiscardChanges => 'Discard Changes?'; @override - String get dialogUnsavedChanges => - 'You have unsaved changes. Do you want to discard them?'; + String get dialogUnsavedChanges => 'You have unsaved changes. Do you want to discard them?'; @override String get dialogDownloadFailed => 'Download Failed'; @@ -873,8 +832,7 @@ class AppLocalizationsEn extends AppLocalizations { String get dialogClearAll => 'Clear All'; @override - String get dialogClearAllDownloads => - 'Are you sure you want to clear all downloads?'; + String get dialogClearAllDownloads => 'Are you sure you want to clear all downloads?'; @override String get dialogRemoveFromDevice => 'Remove from device?'; @@ -883,8 +841,7 @@ class AppLocalizationsEn extends AppLocalizations { String get dialogRemoveExtension => 'Remove Extension'; @override - String get dialogRemoveExtensionMessage => - 'Are you sure you want to remove this extension? This cannot be undone.'; + String get dialogRemoveExtensionMessage => 'Are you sure you want to remove this extension? This cannot be undone.'; @override String get dialogUninstallExtension => 'Uninstall Extension?'; @@ -898,8 +855,7 @@ class AppLocalizationsEn extends AppLocalizations { String get dialogClearHistoryTitle => 'Clear History'; @override - String get dialogClearHistoryMessage => - 'Are you sure you want to clear all download history? This cannot be undone.'; + String get dialogClearHistoryMessage => 'Are you sure you want to clear all download history? This cannot be undone.'; @override String get dialogDeleteSelectedTitle => 'Delete Selected'; @@ -994,8 +950,7 @@ class AppLocalizationsEn extends AppLocalizations { String get snackbarProviderPrioritySaved => 'Provider priority saved'; @override - String get snackbarMetadataProviderSaved => - 'Metadata provider priority saved'; + String get snackbarMetadataProviderSaved => 'Metadata provider priority saved'; @override String snackbarExtensionInstalled(String extensionName) { @@ -1017,8 +972,7 @@ class AppLocalizationsEn extends AppLocalizations { String get errorRateLimited => 'Rate Limited'; @override - String get errorRateLimitedMessage => - 'Too many requests. Please wait a moment before searching again.'; + String get errorRateLimitedMessage => 'Too many requests. Please wait a moment before searching again.'; @override String errorFailedToLoad(String item) { @@ -1185,23 +1139,19 @@ class AppLocalizationsEn extends AppLocalizations { String get folderOrganizationByArtistAlbum => 'Artist/Album'; @override - String get folderOrganizationDescription => - 'Organize downloaded files into folders'; + String get folderOrganizationDescription => 'Organize downloaded files into folders'; @override String get folderOrganizationNoneSubtitle => 'All files in download folder'; @override - String get folderOrganizationByArtistSubtitle => - 'Separate folder for each artist'; + String get folderOrganizationByArtistSubtitle => 'Separate folder for each artist'; @override - String get folderOrganizationByAlbumSubtitle => - 'Separate folder for each album'; + String get folderOrganizationByAlbumSubtitle => 'Separate folder for each album'; @override - String get folderOrganizationByArtistAlbumSubtitle => - 'Nested folders for artist and album'; + String get folderOrganizationByArtistAlbumSubtitle => 'Nested folders for artist and album'; @override String get updateAvailable => 'Update Available'; @@ -1260,12 +1210,10 @@ class AppLocalizationsEn extends AppLocalizations { String get providerPriorityTitle => 'Provider Priority'; @override - String get providerPriorityDescription => - 'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.'; + String get providerPriorityDescription => 'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.'; @override - String get providerPriorityInfo => - 'If a track is not available on the first provider, the app will automatically try the next one.'; + String get providerPriorityInfo => 'If a track is not available on the first provider, the app will automatically try the next one.'; @override String get providerBuiltIn => 'Built-in'; @@ -1277,19 +1225,16 @@ class AppLocalizationsEn extends AppLocalizations { String get metadataProviderPriority => 'Metadata Provider Priority'; @override - String get metadataProviderPrioritySubtitle => - 'Order used when fetching track metadata'; + String get metadataProviderPrioritySubtitle => 'Order used when fetching track metadata'; @override String get metadataProviderPriorityTitle => 'Metadata Priority'; @override - String get metadataProviderPriorityDescription => - 'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.'; + String get metadataProviderPriorityDescription => 'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.'; @override - String get metadataProviderPriorityInfo => - 'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.'; + String get metadataProviderPriorityInfo => 'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.'; @override String get metadataNoRateLimits => 'No rate limits'; @@ -1361,19 +1306,16 @@ class AppLocalizationsEn extends AppLocalizations { String get logIssueSummary => 'Issue Summary'; @override - String get logIspBlockingDescription => - 'Your ISP may be blocking access to download services'; + String get logIspBlockingDescription => 'Your ISP may be blocking access to download services'; @override - String get logIspBlockingSuggestion => - 'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8'; + String get logIspBlockingSuggestion => 'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8'; @override String get logRateLimitedDescription => 'Too many requests to the service'; @override - String get logRateLimitedSuggestion => - 'Wait a few minutes before trying again'; + String get logRateLimitedSuggestion => 'Wait a few minutes before trying again'; @override String get logNetworkErrorDescription => 'Connection issues detected'; @@ -1382,12 +1324,10 @@ class AppLocalizationsEn extends AppLocalizations { String get logNetworkErrorSuggestion => 'Check your internet connection'; @override - String get logTrackNotFoundDescription => - 'Some tracks could not be found on download services'; + String get logTrackNotFoundDescription => 'Some tracks could not be found on download services'; @override - String get logTrackNotFoundSuggestion => - 'The track may not be available in lossless quality'; + String get logTrackNotFoundSuggestion => 'The track may not be available in lossless quality'; @override String logTotalErrors(int count) { @@ -1413,8 +1353,7 @@ class AppLocalizationsEn extends AppLocalizations { String get credentialsTitle => 'Spotify Credentials'; @override - String get credentialsDescription => - 'Enter your Client ID and Secret to use your own Spotify application quota.'; + String get credentialsDescription => 'Enter your Client ID and Secret to use your own Spotify application quota.'; @override String get credentialsClientId => 'Client ID'; @@ -1468,8 +1407,7 @@ class AppLocalizationsEn extends AppLocalizations { String get lyricsMode => 'Lyrics Mode'; @override - String get lyricsModeDescription => - 'Choose how lyrics are saved with your downloads'; + String get lyricsModeDescription => 'Choose how lyrics are saved with your downloads'; @override String get lyricsModeEmbed => 'Embed in file'; @@ -1481,8 +1419,7 @@ class AppLocalizationsEn extends AppLocalizations { String get lyricsModeExternal => 'External .lrc file'; @override - String get lyricsModeExternalSubtitle => - 'Separate .lrc file for players like Samsung Music'; + String get lyricsModeExternalSubtitle => 'Separate .lrc file for players like Samsung Music'; @override String get lyricsModeBoth => 'Both'; @@ -1642,8 +1579,7 @@ class AppLocalizationsEn extends AppLocalizations { String get trackDeleteConfirmTitle => 'Remove from device?'; @override - String get trackDeleteConfirmMessage => - 'This will permanently delete the downloaded file and remove it from your history.'; + String get trackDeleteConfirmMessage => 'This will permanently delete the downloaded file and remove it from your history.'; @override String trackCannotOpen(String message) { @@ -1795,15 +1731,13 @@ class AppLocalizationsEn extends AppLocalizations { String get extensionsNoExtensions => 'No extensions installed'; @override - String get extensionsNoExtensionsSubtitle => - 'Install .spotiflac-ext files to add new providers'; + String get extensionsNoExtensionsSubtitle => 'Install .spotiflac-ext files to add new providers'; @override String get extensionsInstallButton => 'Install Extension'; @override - String get extensionsInfoTip => - 'Extensions can add new metadata and download providers. Only install extensions from trusted sources.'; + String get extensionsInfoTip => 'Extensions can add new metadata and download providers. Only install extensions from trusted sources.'; @override String get extensionsInstalledSuccess => 'Extension installed successfully'; @@ -1815,19 +1749,16 @@ class AppLocalizationsEn extends AppLocalizations { String get extensionsDownloadPrioritySubtitle => 'Set download service order'; @override - String get extensionsNoDownloadProvider => - 'No extensions with download provider'; + String get extensionsNoDownloadProvider => 'No extensions with download provider'; @override String get extensionsMetadataPriority => 'Metadata Priority'; @override - String get extensionsMetadataPrioritySubtitle => - 'Set search & metadata source order'; + String get extensionsMetadataPrioritySubtitle => 'Set search & metadata source order'; @override - String get extensionsNoMetadataProvider => - 'No extensions with metadata provider'; + String get extensionsNoMetadataProvider => 'No extensions with metadata provider'; @override String get extensionsSearchProvider => 'Search Provider'; @@ -1836,8 +1767,7 @@ class AppLocalizationsEn extends AppLocalizations { String get extensionsNoCustomSearch => 'No extensions with custom search'; @override - String get extensionsSearchProviderDescription => - 'Choose which service to use for searching tracks'; + String get extensionsSearchProviderDescription => 'Choose which service to use for searching tracks'; @override String get extensionsCustomSearch => 'Custom search'; @@ -1879,8 +1809,7 @@ class AppLocalizationsEn extends AppLocalizations { String get enableLossyOptionSubtitleOn => 'Lossy quality option is available'; @override - String get enableLossyOptionSubtitleOff => - 'Downloads FLAC then converts to lossy format'; + String get enableLossyOptionSubtitleOff => 'Downloads FLAC then converts to lossy format'; @override String get lossyFormat => 'Lossy Format'; @@ -1892,12 +1821,10 @@ class AppLocalizationsEn extends AppLocalizations { String get lossyFormatMp3Subtitle => '320kbps, best compatibility'; @override - String get lossyFormatOpusSubtitle => - '128kbps, better quality at smaller size'; + String get lossyFormatOpusSubtitle => '128kbps, better quality at smaller size'; @override - String get qualityNote => - 'Actual quality depends on track availability from the service'; + String get qualityNote => 'Actual quality depends on track availability from the service'; @override String get downloadAskBeforeDownload => 'Ask Before Download'; @@ -1987,15 +1914,13 @@ class AppLocalizationsEn extends AppLocalizations { String get queueClearAll => 'Clear All'; @override - String get queueClearAllMessage => - 'Are you sure you want to clear all downloads?'; + String get queueClearAllMessage => 'Are you sure you want to clear all downloads?'; @override String get queueExportFailed => 'Export'; @override - String get queueExportFailedSuccess => - 'Failed downloads exported to TXT file'; + String get queueExportFailedSuccess => 'Failed downloads exported to TXT file'; @override String get queueExportFailedClear => 'Clear Failed'; @@ -2007,8 +1932,7 @@ class AppLocalizationsEn extends AppLocalizations { String get settingsAutoExportFailed => 'Auto-export failed downloads'; @override - String get settingsAutoExportFailedSubtitle => - 'Save failed downloads to TXT file automatically'; + String get settingsAutoExportFailedSubtitle => 'Save failed downloads to TXT file automatically'; @override String get settingsDownloadNetwork => 'Download Network'; @@ -2020,8 +1944,55 @@ class AppLocalizationsEn extends AppLocalizations { String get settingsDownloadNetworkWifiOnly => 'WiFi Only'; @override - String get settingsDownloadNetworkSubtitle => - 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + String get settingsDownloadNetworkSubtitle => 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + + @override + String get settingsCloudSave => 'Cloud Save'; + + @override + String get settingsCloudSaveSubtitle => 'Auto-upload to NAS or cloud storage'; + + @override + String get cloudSettingsTitle => 'Cloud Save'; + + @override + String get cloudSettingsSectionGeneral => 'General'; + + @override + String get cloudSettingsEnable => 'Enable Cloud Upload'; + + @override + String get cloudSettingsEnableSubtitle => 'Automatically upload files after download completes'; + + @override + String get cloudSettingsSectionProvider => 'Cloud Provider'; + + @override + String get cloudSettingsProvider => 'Provider'; + + @override + String get cloudSettingsProviderDescription => 'Select where to upload your downloaded files'; + + @override + String get cloudSettingsSectionServer => 'Server Configuration'; + + @override + String get cloudSettingsServerUrl => 'Server URL'; + + @override + String get cloudSettingsUsername => 'Username'; + + @override + String get cloudSettingsPassword => 'Password'; + + @override + String get cloudSettingsRemotePath => 'Remote Folder Path'; + + @override + String get cloudSettingsTestConnection => 'Test Connection'; + + @override + String get cloudSettingsInfo => 'Downloaded files will be automatically uploaded to your cloud storage after download completes. Original files are kept on your device.'; @override String get queueEmpty => 'No downloads in queue'; @@ -2057,8 +2028,7 @@ class AppLocalizationsEn extends AppLocalizations { String get albumFolderArtistYearAlbum => 'Artist / [Year] Album'; @override - String get albumFolderArtistYearAlbumSubtitle => - 'Albums/Artist Name/[2005] Album Name/'; + String get albumFolderArtistYearAlbumSubtitle => 'Albums/Artist Name/[2005] Album Name/'; @override String get albumFolderAlbumOnly => 'Album Only'; @@ -2076,8 +2046,7 @@ class AppLocalizationsEn extends AppLocalizations { String get albumFolderArtistAlbumSingles => 'Artist / Album + Singles'; @override - String get albumFolderArtistAlbumSinglesSubtitle => - 'Artist/Album/ and Artist/Singles/'; + String get albumFolderArtistAlbumSinglesSubtitle => 'Artist/Album/ and Artist/Singles/'; @override String get downloadedAlbumDeleteSelected => 'Delete Selected'; @@ -2187,8 +2156,7 @@ class AppLocalizationsEn extends AppLocalizations { String get discographySelectAlbums => 'Select Albums...'; @override - String get discographySelectAlbumsSubtitle => - 'Choose specific albums or singles'; + String get discographySelectAlbumsSubtitle => 'Choose specific albums or singles'; @override String get discographyFetchingTracks => 'Fetching tracks...'; @@ -2235,14 +2203,11 @@ class AppLocalizationsEn extends AppLocalizations { String get allFilesAccessDisabledSubtitle => 'Limited to media folders only'; @override - String get allFilesAccessDescription => - 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; + String get allFilesAccessDescription => 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; @override - String get allFilesAccessDeniedMessage => - 'Permission was denied. Please enable \'All files access\' manually in system settings.'; + String get allFilesAccessDeniedMessage => 'Permission was denied. Please enable \'All files access\' manually in system settings.'; @override - String get allFilesAccessDisabledMessage => - 'All Files Access disabled. The app will use limited storage access.'; + String get allFilesAccessDisabledMessage => 'All Files Access disabled. The app will use limited storage access.'; } diff --git a/lib/l10n/app_localizations_es.dart b/lib/l10n/app_localizations_es.dart index 48e4537c..0e487fdc 100644 --- a/lib/l10n/app_localizations_es.dart +++ b/lib/l10n/app_localizations_es.dart @@ -12,8 +12,7 @@ class AppLocalizationsEs extends AppLocalizations { String get appName => 'SpotiFLAC'; @override - String get appDescription => - 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; + String get appDescription => 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; @override String get navHome => 'Home'; @@ -99,15 +98,13 @@ class AppLocalizationsEs extends AppLocalizations { String get historyNoAlbums => 'No album downloads'; @override - String get historyNoAlbumsSubtitle => - 'Download multiple tracks from an album to see them here'; + String get historyNoAlbumsSubtitle => 'Download multiple tracks from an album to see them here'; @override String get historyNoSingles => 'No single downloads'; @override - String get historyNoSinglesSubtitle => - 'Single track downloads will appear here'; + String get historyNoSinglesSubtitle => 'Single track downloads will appear here'; @override String get historySearchHint => 'Search history...'; @@ -155,8 +152,7 @@ class AppLocalizationsEs extends AppLocalizations { String get downloadAskQuality => 'Ask Quality Before Download'; @override - String get downloadAskQualitySubtitle => - 'Show quality picker for each download'; + String get downloadAskQualitySubtitle => 'Show quality picker for each download'; @override String get downloadFilenameFormat => 'Filename Format'; @@ -168,8 +164,7 @@ class AppLocalizationsEs extends AppLocalizations { String get downloadSeparateSingles => 'Separate Singles'; @override - String get downloadSeparateSinglesSubtitle => - 'Put single tracks in a separate folder'; + String get downloadSeparateSinglesSubtitle => 'Put single tracks in a separate folder'; @override String get qualityBest => 'Best Available'; @@ -226,8 +221,7 @@ class AppLocalizationsEs extends AppLocalizations { String get optionsPrimaryProvider => 'Primary Provider'; @override - String get optionsPrimaryProviderSubtitle => - 'Service used when searching by track name.'; + String get optionsPrimaryProviderSubtitle => 'Service used when searching by track name.'; @override String optionsUsingExtension(String extensionName) { @@ -235,15 +229,13 @@ class AppLocalizationsEs extends AppLocalizations { } @override - String get optionsSwitchBack => - 'Tap Deezer or Spotify to switch back from extension'; + String get optionsSwitchBack => 'Tap Deezer or Spotify to switch back from extension'; @override String get optionsAutoFallback => 'Auto Fallback'; @override - String get optionsAutoFallbackSubtitle => - 'Try other services if download fails'; + String get optionsAutoFallbackSubtitle => 'Try other services if download fails'; @override String get optionsUseExtensionProviders => 'Use Extension Providers'; @@ -258,15 +250,13 @@ class AppLocalizationsEs extends AppLocalizations { String get optionsEmbedLyrics => 'Embed Lyrics'; @override - String get optionsEmbedLyricsSubtitle => - 'Embed synced lyrics into FLAC files'; + String get optionsEmbedLyricsSubtitle => 'Embed synced lyrics into FLAC files'; @override String get optionsMaxQualityCover => 'Max Quality Cover'; @override - String get optionsMaxQualityCoverSubtitle => - 'Download highest resolution cover art'; + String get optionsMaxQualityCoverSubtitle => 'Download highest resolution cover art'; @override String get optionsConcurrentDownloads => 'Concurrent Downloads'; @@ -280,8 +270,7 @@ class AppLocalizationsEs extends AppLocalizations { } @override - String get optionsConcurrentWarning => - 'Parallel downloads may trigger rate limiting'; + String get optionsConcurrentWarning => 'Parallel downloads may trigger rate limiting'; @override String get optionsExtensionStore => 'Extension Store'; @@ -293,8 +282,7 @@ class AppLocalizationsEs extends AppLocalizations { String get optionsCheckUpdates => 'Check for Updates'; @override - String get optionsCheckUpdatesSubtitle => - 'Notify when new version is available'; + String get optionsCheckUpdatesSubtitle => 'Notify when new version is available'; @override String get optionsUpdateChannel => 'Update Channel'; @@ -306,15 +294,13 @@ class AppLocalizationsEs extends AppLocalizations { String get optionsUpdateChannelPreview => 'Get preview releases'; @override - String get optionsUpdateChannelWarning => - 'Preview may contain bugs or incomplete features'; + String get optionsUpdateChannelWarning => 'Preview may contain bugs or incomplete features'; @override String get optionsClearHistory => 'Clear Download History'; @override - String get optionsClearHistorySubtitle => - 'Remove all downloaded tracks from history'; + String get optionsClearHistorySubtitle => 'Remove all downloaded tracks from history'; @override String get optionsDetailedLogging => 'Detailed Logging'; @@ -337,8 +323,7 @@ class AppLocalizationsEs extends AppLocalizations { String get optionsSpotifyCredentialsRequired => 'Required - tap to configure'; @override - String get optionsSpotifyWarning => - 'Spotify requires your own API credentials. Get them free from developer.spotify.com'; + String get optionsSpotifyWarning => 'Spotify requires your own API credentials. Get them free from developer.spotify.com'; @override String get extensionsTitle => 'Extensions'; @@ -402,8 +387,7 @@ class AppLocalizationsEs extends AppLocalizations { String get aboutOriginalCreator => 'Creator of the original SpotiFLAC'; @override - String get aboutLogoArtist => - 'The talented artist who created our beautiful app logo!'; + String get aboutLogoArtist => 'The talented artist who created our beautiful app logo!'; @override String get aboutTranslators => 'Translators'; @@ -463,34 +447,28 @@ class AppLocalizationsEs extends AppLocalizations { String get aboutVersion => 'Version'; @override - String get aboutBinimumDesc => - 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; + String get aboutBinimumDesc => 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; @override - String get aboutSachinsenalDesc => - 'The original HiFi project creator. The foundation of Tidal integration!'; + String get aboutSachinsenalDesc => 'The original HiFi project creator. The foundation of Tidal integration!'; @override - String get aboutSjdonadoDesc => - 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; + String get aboutSjdonadoDesc => 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; @override String get aboutDoubleDouble => 'DoubleDouble'; @override - String get aboutDoubleDoubleDesc => - 'Amazing API for Amazon Music downloads. Thank you for making it free!'; + String get aboutDoubleDoubleDesc => 'Amazing API for Amazon Music downloads. Thank you for making it free!'; @override String get aboutDabMusic => 'DAB Music'; @override - String get aboutDabMusicDesc => - 'The best Qobuz streaming API. Hi-Res downloads wouldn\'t be possible without this!'; + String get aboutDabMusicDesc => 'The best Qobuz streaming API. Hi-Res downloads wouldn\'t be possible without this!'; @override - String get aboutAppDescription => - 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; + String get aboutAppDescription => 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; @override String get albumTitle => 'Album'; @@ -595,8 +573,7 @@ class AppLocalizationsEs extends AppLocalizations { String get setupStoragePermission => 'Storage Permission'; @override - String get setupStoragePermissionSubtitle => - 'Required to save downloaded files'; + String get setupStoragePermissionSubtitle => 'Required to save downloaded files'; @override String get setupStoragePermissionGranted => 'Permission granted'; @@ -623,19 +600,16 @@ class AppLocalizationsEs extends AppLocalizations { String get setupStorageAccessRequired => 'Storage Access Required'; @override - String get setupStorageAccessMessage => - 'SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.'; + String get setupStorageAccessMessage => 'SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.'; @override - String get setupStorageAccessMessageAndroid11 => - 'Android 11+ requires \"All files access\" permission to save files to your chosen download folder.'; + String get setupStorageAccessMessageAndroid11 => 'Android 11+ requires \"All files access\" permission to save files to your chosen download folder.'; @override String get setupOpenSettings => 'Open Settings'; @override - String get setupPermissionDeniedMessage => - 'Permission denied. Please grant all permissions to continue.'; + String get setupPermissionDeniedMessage => 'Permission denied. Please grant all permissions to continue.'; @override String setupPermissionRequired(String permissionType) { @@ -654,8 +628,7 @@ class AppLocalizationsEs extends AppLocalizations { String get setupUseDefaultFolder => 'Use Default Folder?'; @override - String get setupNoFolderSelected => - 'No folder selected. Would you like to use the default Music folder?'; + String get setupNoFolderSelected => 'No folder selected. Would you like to use the default Music folder?'; @override String get setupUseDefault => 'Use Default'; @@ -664,15 +637,13 @@ class AppLocalizationsEs extends AppLocalizations { String get setupDownloadLocationTitle => 'Download Location'; @override - String get setupDownloadLocationIosMessage => - 'On iOS, downloads are saved to the app\'s Documents folder. You can access them via the Files app.'; + String get setupDownloadLocationIosMessage => 'On iOS, downloads are saved to the app\'s Documents folder. You can access them via the Files app.'; @override String get setupAppDocumentsFolder => 'App Documents Folder'; @override - String get setupAppDocumentsFolderSubtitle => - 'Recommended - accessible via Files app'; + String get setupAppDocumentsFolderSubtitle => 'Recommended - accessible via Files app'; @override String get setupChooseFromFiles => 'Choose from Files'; @@ -681,12 +652,10 @@ class AppLocalizationsEs extends AppLocalizations { String get setupChooseFromFilesSubtitle => 'Select iCloud or other location'; @override - String get setupIosEmptyFolderWarning => - 'iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.'; + String get setupIosEmptyFolderWarning => 'iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.'; @override - String get setupIcloudNotSupported => - 'iCloud Drive is not supported. Please use the app Documents folder.'; + String get setupIcloudNotSupported => 'iCloud Drive is not supported. Please use the app Documents folder.'; @override String get setupDownloadInFlac => 'Download Spotify tracks in FLAC'; @@ -713,8 +682,7 @@ class AppLocalizationsEs extends AppLocalizations { String get setupStorageRequired => 'Storage Permission Required'; @override - String get setupStorageDescription => - 'SpotiFLAC needs storage permission to save your downloaded music files.'; + String get setupStorageDescription => 'SpotiFLAC needs storage permission to save your downloaded music files.'; @override String get setupNotificationGranted => 'Notification Permission Granted!'; @@ -723,8 +691,7 @@ class AppLocalizationsEs extends AppLocalizations { String get setupNotificationEnable => 'Enable Notifications'; @override - String get setupNotificationDescription => - 'Get notified when downloads complete or require attention.'; + String get setupNotificationDescription => 'Get notified when downloads complete or require attention.'; @override String get setupFolderSelected => 'Download Folder Selected!'; @@ -733,8 +700,7 @@ class AppLocalizationsEs extends AppLocalizations { String get setupFolderChoose => 'Choose Download Folder'; @override - String get setupFolderDescription => - 'Select a folder where your downloaded music will be saved.'; + String get setupFolderDescription => 'Select a folder where your downloaded music will be saved.'; @override String get setupChangeFolder => 'Change Folder'; @@ -746,8 +712,7 @@ class AppLocalizationsEs extends AppLocalizations { String get setupSpotifyApiOptional => 'Spotify API (Optional)'; @override - String get setupSpotifyApiDescription => - 'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.'; + String get setupSpotifyApiDescription => 'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.'; @override String get setupUseSpotifyApi => 'Use Spotify API'; @@ -765,8 +730,7 @@ class AppLocalizationsEs extends AppLocalizations { String get setupEnterClientSecret => 'Enter Spotify Client Secret'; @override - String get setupGetFreeCredentials => - 'Get your free API credentials from the Spotify Developer Dashboard.'; + String get setupGetFreeCredentials => 'Get your free API credentials from the Spotify Developer Dashboard.'; @override String get setupEnableNotifications => 'Enable Notifications'; @@ -775,12 +739,10 @@ class AppLocalizationsEs extends AppLocalizations { String get setupProceedToNextStep => 'You can now proceed to the next step.'; @override - String get setupNotificationProgressDescription => - 'You will receive download progress notifications.'; + String get setupNotificationProgressDescription => 'You will receive download progress notifications.'; @override - String get setupNotificationBackgroundDescription => - 'Get notified about download progress and completion. This helps you track downloads when the app is in background.'; + String get setupNotificationBackgroundDescription => 'Get notified about download progress and completion. This helps you track downloads when the app is in background.'; @override String get setupSkipForNow => 'Skip for now'; @@ -798,12 +760,10 @@ class AppLocalizationsEs extends AppLocalizations { String get setupSkipAndStart => 'Skip & Start'; @override - String get setupAllowAccessToManageFiles => - 'Please enable \"Allow access to manage all files\" in the next screen.'; + String get setupAllowAccessToManageFiles => 'Please enable \"Allow access to manage all files\" in the next screen.'; @override - String get setupGetCredentialsFromSpotify => - 'Get credentials from developer.spotify.com'; + String get setupGetCredentialsFromSpotify => 'Get credentials from developer.spotify.com'; @override String get dialogCancel => 'Cancel'; @@ -854,8 +814,7 @@ class AppLocalizationsEs extends AppLocalizations { String get dialogDiscardChanges => 'Discard Changes?'; @override - String get dialogUnsavedChanges => - 'You have unsaved changes. Do you want to discard them?'; + String get dialogUnsavedChanges => 'You have unsaved changes. Do you want to discard them?'; @override String get dialogDownloadFailed => 'Download Failed'; @@ -873,8 +832,7 @@ class AppLocalizationsEs extends AppLocalizations { String get dialogClearAll => 'Clear All'; @override - String get dialogClearAllDownloads => - 'Are you sure you want to clear all downloads?'; + String get dialogClearAllDownloads => 'Are you sure you want to clear all downloads?'; @override String get dialogRemoveFromDevice => 'Remove from device?'; @@ -883,8 +841,7 @@ class AppLocalizationsEs extends AppLocalizations { String get dialogRemoveExtension => 'Remove Extension'; @override - String get dialogRemoveExtensionMessage => - 'Are you sure you want to remove this extension? This cannot be undone.'; + String get dialogRemoveExtensionMessage => 'Are you sure you want to remove this extension? This cannot be undone.'; @override String get dialogUninstallExtension => 'Uninstall Extension?'; @@ -898,8 +855,7 @@ class AppLocalizationsEs extends AppLocalizations { String get dialogClearHistoryTitle => 'Clear History'; @override - String get dialogClearHistoryMessage => - 'Are you sure you want to clear all download history? This cannot be undone.'; + String get dialogClearHistoryMessage => 'Are you sure you want to clear all download history? This cannot be undone.'; @override String get dialogDeleteSelectedTitle => 'Delete Selected'; @@ -994,8 +950,7 @@ class AppLocalizationsEs extends AppLocalizations { String get snackbarProviderPrioritySaved => 'Provider priority saved'; @override - String get snackbarMetadataProviderSaved => - 'Metadata provider priority saved'; + String get snackbarMetadataProviderSaved => 'Metadata provider priority saved'; @override String snackbarExtensionInstalled(String extensionName) { @@ -1017,8 +972,7 @@ class AppLocalizationsEs extends AppLocalizations { String get errorRateLimited => 'Rate Limited'; @override - String get errorRateLimitedMessage => - 'Too many requests. Please wait a moment before searching again.'; + String get errorRateLimitedMessage => 'Too many requests. Please wait a moment before searching again.'; @override String errorFailedToLoad(String item) { @@ -1185,23 +1139,19 @@ class AppLocalizationsEs extends AppLocalizations { String get folderOrganizationByArtistAlbum => 'Artist/Album'; @override - String get folderOrganizationDescription => - 'Organize downloaded files into folders'; + String get folderOrganizationDescription => 'Organize downloaded files into folders'; @override String get folderOrganizationNoneSubtitle => 'All files in download folder'; @override - String get folderOrganizationByArtistSubtitle => - 'Separate folder for each artist'; + String get folderOrganizationByArtistSubtitle => 'Separate folder for each artist'; @override - String get folderOrganizationByAlbumSubtitle => - 'Separate folder for each album'; + String get folderOrganizationByAlbumSubtitle => 'Separate folder for each album'; @override - String get folderOrganizationByArtistAlbumSubtitle => - 'Nested folders for artist and album'; + String get folderOrganizationByArtistAlbumSubtitle => 'Nested folders for artist and album'; @override String get updateAvailable => 'Update Available'; @@ -1260,12 +1210,10 @@ class AppLocalizationsEs extends AppLocalizations { String get providerPriorityTitle => 'Provider Priority'; @override - String get providerPriorityDescription => - 'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.'; + String get providerPriorityDescription => 'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.'; @override - String get providerPriorityInfo => - 'If a track is not available on the first provider, the app will automatically try the next one.'; + String get providerPriorityInfo => 'If a track is not available on the first provider, the app will automatically try the next one.'; @override String get providerBuiltIn => 'Built-in'; @@ -1277,19 +1225,16 @@ class AppLocalizationsEs extends AppLocalizations { String get metadataProviderPriority => 'Metadata Provider Priority'; @override - String get metadataProviderPrioritySubtitle => - 'Order used when fetching track metadata'; + String get metadataProviderPrioritySubtitle => 'Order used when fetching track metadata'; @override String get metadataProviderPriorityTitle => 'Metadata Priority'; @override - String get metadataProviderPriorityDescription => - 'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.'; + String get metadataProviderPriorityDescription => 'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.'; @override - String get metadataProviderPriorityInfo => - 'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.'; + String get metadataProviderPriorityInfo => 'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.'; @override String get metadataNoRateLimits => 'No rate limits'; @@ -1361,19 +1306,16 @@ class AppLocalizationsEs extends AppLocalizations { String get logIssueSummary => 'Issue Summary'; @override - String get logIspBlockingDescription => - 'Your ISP may be blocking access to download services'; + String get logIspBlockingDescription => 'Your ISP may be blocking access to download services'; @override - String get logIspBlockingSuggestion => - 'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8'; + String get logIspBlockingSuggestion => 'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8'; @override String get logRateLimitedDescription => 'Too many requests to the service'; @override - String get logRateLimitedSuggestion => - 'Wait a few minutes before trying again'; + String get logRateLimitedSuggestion => 'Wait a few minutes before trying again'; @override String get logNetworkErrorDescription => 'Connection issues detected'; @@ -1382,12 +1324,10 @@ class AppLocalizationsEs extends AppLocalizations { String get logNetworkErrorSuggestion => 'Check your internet connection'; @override - String get logTrackNotFoundDescription => - 'Some tracks could not be found on download services'; + String get logTrackNotFoundDescription => 'Some tracks could not be found on download services'; @override - String get logTrackNotFoundSuggestion => - 'The track may not be available in lossless quality'; + String get logTrackNotFoundSuggestion => 'The track may not be available in lossless quality'; @override String logTotalErrors(int count) { @@ -1413,8 +1353,7 @@ class AppLocalizationsEs extends AppLocalizations { String get credentialsTitle => 'Spotify Credentials'; @override - String get credentialsDescription => - 'Enter your Client ID and Secret to use your own Spotify application quota.'; + String get credentialsDescription => 'Enter your Client ID and Secret to use your own Spotify application quota.'; @override String get credentialsClientId => 'Client ID'; @@ -1468,8 +1407,7 @@ class AppLocalizationsEs extends AppLocalizations { String get lyricsMode => 'Lyrics Mode'; @override - String get lyricsModeDescription => - 'Choose how lyrics are saved with your downloads'; + String get lyricsModeDescription => 'Choose how lyrics are saved with your downloads'; @override String get lyricsModeEmbed => 'Embed in file'; @@ -1481,8 +1419,7 @@ class AppLocalizationsEs extends AppLocalizations { String get lyricsModeExternal => 'External .lrc file'; @override - String get lyricsModeExternalSubtitle => - 'Separate .lrc file for players like Samsung Music'; + String get lyricsModeExternalSubtitle => 'Separate .lrc file for players like Samsung Music'; @override String get lyricsModeBoth => 'Both'; @@ -1642,8 +1579,7 @@ class AppLocalizationsEs extends AppLocalizations { String get trackDeleteConfirmTitle => 'Remove from device?'; @override - String get trackDeleteConfirmMessage => - 'This will permanently delete the downloaded file and remove it from your history.'; + String get trackDeleteConfirmMessage => 'This will permanently delete the downloaded file and remove it from your history.'; @override String trackCannotOpen(String message) { @@ -1795,15 +1731,13 @@ class AppLocalizationsEs extends AppLocalizations { String get extensionsNoExtensions => 'No extensions installed'; @override - String get extensionsNoExtensionsSubtitle => - 'Install .spotiflac-ext files to add new providers'; + String get extensionsNoExtensionsSubtitle => 'Install .spotiflac-ext files to add new providers'; @override String get extensionsInstallButton => 'Install Extension'; @override - String get extensionsInfoTip => - 'Extensions can add new metadata and download providers. Only install extensions from trusted sources.'; + String get extensionsInfoTip => 'Extensions can add new metadata and download providers. Only install extensions from trusted sources.'; @override String get extensionsInstalledSuccess => 'Extension installed successfully'; @@ -1815,19 +1749,16 @@ class AppLocalizationsEs extends AppLocalizations { String get extensionsDownloadPrioritySubtitle => 'Set download service order'; @override - String get extensionsNoDownloadProvider => - 'No extensions with download provider'; + String get extensionsNoDownloadProvider => 'No extensions with download provider'; @override String get extensionsMetadataPriority => 'Metadata Priority'; @override - String get extensionsMetadataPrioritySubtitle => - 'Set search & metadata source order'; + String get extensionsMetadataPrioritySubtitle => 'Set search & metadata source order'; @override - String get extensionsNoMetadataProvider => - 'No extensions with metadata provider'; + String get extensionsNoMetadataProvider => 'No extensions with metadata provider'; @override String get extensionsSearchProvider => 'Search Provider'; @@ -1836,8 +1767,7 @@ class AppLocalizationsEs extends AppLocalizations { String get extensionsNoCustomSearch => 'No extensions with custom search'; @override - String get extensionsSearchProviderDescription => - 'Choose which service to use for searching tracks'; + String get extensionsSearchProviderDescription => 'Choose which service to use for searching tracks'; @override String get extensionsCustomSearch => 'Custom search'; @@ -1879,8 +1809,7 @@ class AppLocalizationsEs extends AppLocalizations { String get enableLossyOptionSubtitleOn => 'Lossy quality option is available'; @override - String get enableLossyOptionSubtitleOff => - 'Downloads FLAC then converts to lossy format'; + String get enableLossyOptionSubtitleOff => 'Downloads FLAC then converts to lossy format'; @override String get lossyFormat => 'Lossy Format'; @@ -1892,12 +1821,10 @@ class AppLocalizationsEs extends AppLocalizations { String get lossyFormatMp3Subtitle => '320kbps, best compatibility'; @override - String get lossyFormatOpusSubtitle => - '128kbps, better quality at smaller size'; + String get lossyFormatOpusSubtitle => '128kbps, better quality at smaller size'; @override - String get qualityNote => - 'Actual quality depends on track availability from the service'; + String get qualityNote => 'Actual quality depends on track availability from the service'; @override String get downloadAskBeforeDownload => 'Ask Before Download'; @@ -1987,15 +1914,13 @@ class AppLocalizationsEs extends AppLocalizations { String get queueClearAll => 'Clear All'; @override - String get queueClearAllMessage => - 'Are you sure you want to clear all downloads?'; + String get queueClearAllMessage => 'Are you sure you want to clear all downloads?'; @override String get queueExportFailed => 'Export'; @override - String get queueExportFailedSuccess => - 'Failed downloads exported to TXT file'; + String get queueExportFailedSuccess => 'Failed downloads exported to TXT file'; @override String get queueExportFailedClear => 'Clear Failed'; @@ -2007,8 +1932,7 @@ class AppLocalizationsEs extends AppLocalizations { String get settingsAutoExportFailed => 'Auto-export failed downloads'; @override - String get settingsAutoExportFailedSubtitle => - 'Save failed downloads to TXT file automatically'; + String get settingsAutoExportFailedSubtitle => 'Save failed downloads to TXT file automatically'; @override String get settingsDownloadNetwork => 'Download Network'; @@ -2020,8 +1944,55 @@ class AppLocalizationsEs extends AppLocalizations { String get settingsDownloadNetworkWifiOnly => 'WiFi Only'; @override - String get settingsDownloadNetworkSubtitle => - 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + String get settingsDownloadNetworkSubtitle => 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + + @override + String get settingsCloudSave => 'Cloud Save'; + + @override + String get settingsCloudSaveSubtitle => 'Auto-upload to NAS or cloud storage'; + + @override + String get cloudSettingsTitle => 'Cloud Save'; + + @override + String get cloudSettingsSectionGeneral => 'General'; + + @override + String get cloudSettingsEnable => 'Enable Cloud Upload'; + + @override + String get cloudSettingsEnableSubtitle => 'Automatically upload files after download completes'; + + @override + String get cloudSettingsSectionProvider => 'Cloud Provider'; + + @override + String get cloudSettingsProvider => 'Provider'; + + @override + String get cloudSettingsProviderDescription => 'Select where to upload your downloaded files'; + + @override + String get cloudSettingsSectionServer => 'Server Configuration'; + + @override + String get cloudSettingsServerUrl => 'Server URL'; + + @override + String get cloudSettingsUsername => 'Username'; + + @override + String get cloudSettingsPassword => 'Password'; + + @override + String get cloudSettingsRemotePath => 'Remote Folder Path'; + + @override + String get cloudSettingsTestConnection => 'Test Connection'; + + @override + String get cloudSettingsInfo => 'Downloaded files will be automatically uploaded to your cloud storage after download completes. Original files are kept on your device.'; @override String get queueEmpty => 'No downloads in queue'; @@ -2057,8 +2028,7 @@ class AppLocalizationsEs extends AppLocalizations { String get albumFolderArtistYearAlbum => 'Artist / [Year] Album'; @override - String get albumFolderArtistYearAlbumSubtitle => - 'Albums/Artist Name/[2005] Album Name/'; + String get albumFolderArtistYearAlbumSubtitle => 'Albums/Artist Name/[2005] Album Name/'; @override String get albumFolderAlbumOnly => 'Album Only'; @@ -2076,8 +2046,7 @@ class AppLocalizationsEs extends AppLocalizations { String get albumFolderArtistAlbumSingles => 'Artist / Album + Singles'; @override - String get albumFolderArtistAlbumSinglesSubtitle => - 'Artist/Album/ and Artist/Singles/'; + String get albumFolderArtistAlbumSinglesSubtitle => 'Artist/Album/ and Artist/Singles/'; @override String get downloadedAlbumDeleteSelected => 'Delete Selected'; @@ -2187,8 +2156,7 @@ class AppLocalizationsEs extends AppLocalizations { String get discographySelectAlbums => 'Select Albums...'; @override - String get discographySelectAlbumsSubtitle => - 'Choose specific albums or singles'; + String get discographySelectAlbumsSubtitle => 'Choose specific albums or singles'; @override String get discographyFetchingTracks => 'Fetching tracks...'; @@ -2235,28 +2203,24 @@ class AppLocalizationsEs extends AppLocalizations { String get allFilesAccessDisabledSubtitle => 'Limited to media folders only'; @override - String get allFilesAccessDescription => - 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; + String get allFilesAccessDescription => 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; @override - String get allFilesAccessDeniedMessage => - 'Permission was denied. Please enable \'All files access\' manually in system settings.'; + String get allFilesAccessDeniedMessage => 'Permission was denied. Please enable \'All files access\' manually in system settings.'; @override - String get allFilesAccessDisabledMessage => - 'All Files Access disabled. The app will use limited storage access.'; + String get allFilesAccessDisabledMessage => 'All Files Access disabled. The app will use limited storage access.'; } /// The translations for Spanish Castilian, as used in Spain (`es_ES`). class AppLocalizationsEsEs extends AppLocalizationsEs { - AppLocalizationsEsEs() : super('es_ES'); + AppLocalizationsEsEs(): super('es_ES'); @override String get appName => 'SpotiFLAC'; @override - String get appDescription => - 'Descargue pistas de Spotify con calidad sin pérdida de Tidal, Qobuz y Amazon Music.'; + String get appDescription => 'Descargue pistas de Spotify con calidad sin pérdida de Tidal, Qobuz y Amazon Music.'; @override String get navHome => 'Inicio'; @@ -2285,8 +2249,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get homeSubtitle => 'Pegar enlace de Spotify o buscar por nombre'; @override - String get homeSupports => - 'Soportes: Pista, Álbum, Lista de reproducción, URLs de Artistas'; + String get homeSupports => 'Soportes: Pista, Álbum, Lista de reproducción, URLs de Artistas'; @override String get homeRecent => 'Recientes'; @@ -2337,22 +2300,19 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get historyNoDownloads => 'No hay historial de descargas'; @override - String get historyNoDownloadsSubtitle => - 'Las pistas descargadas aparecerán aquí'; + String get historyNoDownloadsSubtitle => 'Las pistas descargadas aparecerán aquí'; @override String get historyNoAlbums => 'No hay descargas de álbum'; @override - String get historyNoAlbumsSubtitle => - 'Descargar múltiples pistas de un álbum para verlas aquí'; + String get historyNoAlbumsSubtitle => 'Descargar múltiples pistas de un álbum para verlas aquí'; @override String get historyNoSingles => 'No hay descargas'; @override - String get historyNoSinglesSubtitle => - 'Las descargas de una sola pista aparecerán aquí'; + String get historyNoSinglesSubtitle => 'Las descargas de una sola pista aparecerán aquí'; @override String get settingsTitle => 'Ajustes'; @@ -2397,8 +2357,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get downloadAskQuality => 'Preguntar calidad antes de descargar'; @override - String get downloadAskQualitySubtitle => - 'Mostrar selector de calidad para cada descarga'; + String get downloadAskQualitySubtitle => 'Mostrar selector de calidad para cada descarga'; @override String get downloadFilenameFormat => 'Formato del nombre del archivo'; @@ -2410,8 +2369,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get downloadSeparateSingles => 'Separar Pistas'; @override - String get downloadSeparateSinglesSubtitle => - 'Colocar pistas individuales en una carpeta separada'; + String get downloadSeparateSinglesSubtitle => 'Colocar pistas individuales en una carpeta separada'; @override String get qualityBest => 'Mejor disponible'; @@ -2444,8 +2402,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get appearanceDynamicColor => 'Color dinámico'; @override - String get appearanceDynamicColorSubtitle => - 'Usar colores de tu fondo de pantalla'; + String get appearanceDynamicColorSubtitle => 'Usar colores de tu fondo de pantalla'; @override String get appearanceAccentColor => 'Color Secundario'; @@ -2469,8 +2426,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get optionsPrimaryProvider => 'Proveedor Principal'; @override - String get optionsPrimaryProviderSubtitle => - 'Servicio usado al buscar por nombre de la pista.'; + String get optionsPrimaryProviderSubtitle => 'Servicio usado al buscar por nombre de la pista.'; @override String optionsUsingExtension(String extensionName) { @@ -2478,40 +2434,34 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { } @override - String get optionsSwitchBack => - 'Toque Deezer o Spotify para volver desde la extensión'; + String get optionsSwitchBack => 'Toque Deezer o Spotify para volver desde la extensión'; @override String get optionsAutoFallback => 'Alternativa automática'; @override - String get optionsAutoFallbackSubtitle => - 'Pruebe otros servicios si falla la descarga'; + String get optionsAutoFallbackSubtitle => 'Pruebe otros servicios si falla la descarga'; @override String get optionsUseExtensionProviders => 'Usar proveedores de extensiones'; @override - String get optionsUseExtensionProvidersOn => - 'Las extensiones serán probadas primero'; + String get optionsUseExtensionProvidersOn => 'Las extensiones serán probadas primero'; @override - String get optionsUseExtensionProvidersOff => - 'Utilizando sólo proveedores integrados'; + String get optionsUseExtensionProvidersOff => 'Utilizando sólo proveedores integrados'; @override String get optionsEmbedLyrics => 'Incrustar Letras'; @override - String get optionsEmbedLyricsSubtitle => - 'Insertar letras sincronizadas en archivos FLAC'; + String get optionsEmbedLyricsSubtitle => 'Insertar letras sincronizadas en archivos FLAC'; @override String get optionsMaxQualityCover => 'Carátula de calidad máxima'; @override - String get optionsMaxQualityCoverSubtitle => - 'Descargar carátula de resolución máxima'; + String get optionsMaxQualityCoverSubtitle => 'Descargar carátula de resolución máxima'; @override String get optionsConcurrentDownloads => 'Descargas Simultáneas'; @@ -2525,22 +2475,19 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { } @override - String get optionsConcurrentWarning => - 'Las descargas paralelas pueden activar la limitación de velocidad'; + String get optionsConcurrentWarning => 'Las descargas paralelas pueden activar la limitación de velocidad'; @override String get optionsExtensionStore => 'Tienda de extensiones'; @override - String get optionsExtensionStoreSubtitle => - 'Mostrar pestaña de tienda en la navegación'; + String get optionsExtensionStoreSubtitle => 'Mostrar pestaña de tienda en la navegación'; @override String get optionsCheckUpdates => 'Comprobar actualizaciones'; @override - String get optionsCheckUpdatesSubtitle => - 'Notificar cuando una nueva versión esté disponible'; + String get optionsCheckUpdatesSubtitle => 'Notificar cuando una nueva versión esté disponible'; @override String get optionsUpdateChannel => 'Tipo de actualizaciones'; @@ -2552,22 +2499,19 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get optionsUpdateChannelPreview => 'Versión preliminar'; @override - String get optionsUpdateChannelWarning => - 'La Versión preliminar puede contener errores o características incompletas'; + String get optionsUpdateChannelWarning => 'La Versión preliminar puede contener errores o características incompletas'; @override String get optionsClearHistory => 'Borrar el historial de descargas'; @override - String get optionsClearHistorySubtitle => - 'Eliminar todas las pistas descargadas del historial'; + String get optionsClearHistorySubtitle => 'Eliminar todas las pistas descargadas del historial'; @override String get optionsDetailedLogging => 'Registro detallado'; @override - String get optionsDetailedLoggingOn => - 'Registros detallados están siendo registrados'; + String get optionsDetailedLoggingOn => 'Registros detallados están siendo registrados'; @override String get optionsDetailedLoggingOff => 'Habilitar para informes de errores'; @@ -2581,12 +2525,10 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { } @override - String get optionsSpotifyCredentialsRequired => - 'Requerido - toque para configurar'; + String get optionsSpotifyCredentialsRequired => 'Requerido - toque para configurar'; @override - String get optionsSpotifyWarning => - 'Spotify requiere tus propias credenciales API. Obténgalas gratis de developer.spotify.com'; + String get optionsSpotifyWarning => 'Spotify requiere tus propias credenciales API. Obténgalas gratis de developer.spotify.com'; @override String get extensionsTitle => 'Extensiones'; @@ -2598,8 +2540,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get extensionsNone => 'No hay extensiones instaladas'; @override - String get extensionsNoneSubtitle => - 'Instalar extensiones desde la pestaña Tienda'; + String get extensionsNoneSubtitle => 'Instalar extensiones desde la pestaña Tienda'; @override String get extensionsEnabled => 'Habilitado'; @@ -2651,8 +2592,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get aboutOriginalCreator => 'Creador original de SpotiFLAC'; @override - String get aboutLogoArtist => - '¡El talentoso artista que creó nuestro hermoso logo!'; + String get aboutLogoArtist => '¡El talentoso artista que creó nuestro hermoso logo!'; @override String get aboutSpecialThanks => 'Agradecimientos especiales'; @@ -2670,15 +2610,13 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get aboutReportIssue => 'Reportar un problema'; @override - String get aboutReportIssueSubtitle => - 'Reporta cualquier problema que encuentres'; + String get aboutReportIssueSubtitle => 'Reporta cualquier problema que encuentres'; @override String get aboutFeatureRequest => 'Sugerir una función'; @override - String get aboutFeatureRequestSubtitle => - 'Sugerir nuevas funciones para la aplicación'; + String get aboutFeatureRequestSubtitle => 'Sugerir nuevas funciones para la aplicación'; @override String get aboutSupport => 'Soporte'; @@ -2696,30 +2634,25 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get aboutVersion => 'Versión'; @override - String get aboutBinimumDesc => - 'El creador de la API QQDL & Hi-Fi. ¡Sin esta API, las descargas de Tidal no existiría!'; + String get aboutBinimumDesc => 'El creador de la API QQDL & Hi-Fi. ¡Sin esta API, las descargas de Tidal no existiría!'; @override - String get aboutSachinsenalDesc => - 'El creador original del proyecto Hi-Fi. ¡La base de la integración de Tidal!'; + String get aboutSachinsenalDesc => 'El creador original del proyecto Hi-Fi. ¡La base de la integración de Tidal!'; @override String get aboutDoubleDouble => 'DoubleDouble'; @override - String get aboutDoubleDoubleDesc => - 'API increible para descargas de Amazon Music. ¡Gracias por hacerla gratis!'; + String get aboutDoubleDoubleDesc => 'API increible para descargas de Amazon Music. ¡Gracias por hacerla gratis!'; @override String get aboutDabMusic => 'Música DAB'; @override - String get aboutDabMusicDesc => - 'La mejor API de streaming de Qobuz. ¡Las descargas de Hi-Res no serían posibles sin esto!'; + String get aboutDabMusicDesc => 'La mejor API de streaming de Qobuz. ¡Las descargas de Hi-Res no serían posibles sin esto!'; @override - String get aboutAppDescription => - 'Descarga pistas de Spotify con calidad sin pérdida de Tidal, Qobuz y Amazon Music.'; + String get aboutAppDescription => 'Descarga pistas de Spotify con calidad sin pérdida de Tidal, Qobuz y Amazon Music.'; @override String get albumTitle => 'Álbum'; @@ -2824,8 +2757,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get setupStoragePermission => 'Permiso de almacenamiento'; @override - String get setupStoragePermissionSubtitle => - 'Necesario para guardar los archivos descargados'; + String get setupStoragePermissionSubtitle => 'Necesario para guardar los archivos descargados'; @override String get setupStoragePermissionGranted => 'Permiso aprobado'; @@ -2852,19 +2784,16 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get setupStorageAccessRequired => 'Acceso al almacenamiento requerido'; @override - String get setupStorageAccessMessage => - 'SpotiFLAC necesita permiso de \"Todos los archivos de acceso\" para guardar los archivos de música en la carpeta elegida.'; + String get setupStorageAccessMessage => 'SpotiFLAC necesita permiso de \"Todos los archivos de acceso\" para guardar los archivos de música en la carpeta elegida.'; @override - String get setupStorageAccessMessageAndroid11 => - 'Android 11+ requiere permiso \"Todos los archivos de acceso\" para guardar los archivos en la carpeta de descargas elegida.'; + String get setupStorageAccessMessageAndroid11 => 'Android 11+ requiere permiso \"Todos los archivos de acceso\" para guardar los archivos en la carpeta de descargas elegida.'; @override String get setupOpenSettings => 'Abrir ajustes'; @override - String get setupPermissionDeniedMessage => - 'Permiso denegado. Por favor, conceda todos los permisos para continuar.'; + String get setupPermissionDeniedMessage => 'Permiso denegado. Por favor, conceda todos los permisos para continuar.'; @override String setupPermissionRequired(String permissionType) { @@ -2883,8 +2812,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get setupUseDefaultFolder => '¿Usar carpeta por defecto?'; @override - String get setupNoFolderSelected => - 'No se ha seleccionado ninguna carpeta. ¿Desea utilizar la carpeta por defecto?'; + String get setupNoFolderSelected => 'No se ha seleccionado ninguna carpeta. ¿Desea utilizar la carpeta por defecto?'; @override String get setupUseDefault => 'Usar por defecto'; @@ -2893,26 +2821,22 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get setupDownloadLocationTitle => 'Ubicación de descarga'; @override - String get setupDownloadLocationIosMessage => - 'En iOS, las descargas se guardan en la carpeta de documentos de la aplicación. Puede acceder a ellas desde la aplicación Archivos.'; + String get setupDownloadLocationIosMessage => 'En iOS, las descargas se guardan en la carpeta de documentos de la aplicación. Puede acceder a ellas desde la aplicación Archivos.'; @override String get setupAppDocumentsFolder => 'Carpeta de documentos de App'; @override - String get setupAppDocumentsFolderSubtitle => - 'Recomendado - accesible desde la aplicación Archivos'; + String get setupAppDocumentsFolderSubtitle => 'Recomendado - accesible desde la aplicación Archivos'; @override String get setupChooseFromFiles => 'Elegir de archivos'; @override - String get setupChooseFromFilesSubtitle => - 'Seleccione iCloud u otra ubicación'; + String get setupChooseFromFilesSubtitle => 'Seleccione iCloud u otra ubicación'; @override - String get setupIosEmptyFolderWarning => - 'Limitación de iOS: No se pueden seleccionar carpetas vacías. Elige una carpeta con al menos un archivo.'; + String get setupIosEmptyFolderWarning => 'Limitación de iOS: No se pueden seleccionar carpetas vacías. Elige una carpeta con al menos un archivo.'; @override String get setupDownloadInFlac => 'Descargar pistas de Spotify en FLAC'; @@ -2939,19 +2863,16 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get setupStorageRequired => 'Permiso de almacenamiento requerido'; @override - String get setupStorageDescription => - 'SpotiFLAC necesita permiso de almacenamiento para guardar sus archivos de música descargados.'; + String get setupStorageDescription => 'SpotiFLAC necesita permiso de almacenamiento para guardar sus archivos de música descargados.'; @override - String get setupNotificationGranted => - '¡Acceso a las notificaciones permitido!'; + String get setupNotificationGranted => '¡Acceso a las notificaciones permitido!'; @override String get setupNotificationEnable => 'Activar notificaciones'; @override - String get setupNotificationDescription => - 'Recibe notificaciones cuando las descargas completen o requieran atención.'; + String get setupNotificationDescription => 'Recibe notificaciones cuando las descargas completen o requieran atención.'; @override String get setupFolderSelected => '¡Carpeta de descarga seleccionada!'; @@ -2960,8 +2881,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get setupFolderChoose => 'Cambiar carpeta de descargas'; @override - String get setupFolderDescription => - 'Seleccione una carpeta donde se guardará la música descargada.'; + String get setupFolderDescription => 'Seleccione una carpeta donde se guardará la música descargada.'; @override String get setupChangeFolder => 'Cambiar carpeta'; @@ -2973,15 +2893,13 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get setupSpotifyApiOptional => 'API de Spotify (opcional)'; @override - String get setupSpotifyApiDescription => - 'Añade tus credenciales de la API de Spotify para mejores resultados de búsqueda y acceso al contenido exclusivo de Spotify.'; + String get setupSpotifyApiDescription => 'Añade tus credenciales de la API de Spotify para mejores resultados de búsqueda y acceso al contenido exclusivo de Spotify.'; @override String get setupUseSpotifyApi => 'Usar API de Spotify'; @override - String get setupEnterCredentialsBelow => - 'Ingresa tus credenciales a continuación'; + String get setupEnterCredentialsBelow => 'Ingresa tus credenciales a continuación'; @override String get setupUsingDeezer => 'Usando Deezer (no se necesita cuenta)'; @@ -2993,23 +2911,19 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get setupEnterClientSecret => 'Ingresa el Client Secret de Spotify'; @override - String get setupGetFreeCredentials => - 'Obtén tus credenciales gratuitas de la API desde el Spotify Developer Dashboard.'; + String get setupGetFreeCredentials => 'Obtén tus credenciales gratuitas de la API desde el Spotify Developer Dashboard.'; @override String get setupEnableNotifications => 'Activar notificaciones'; @override - String get setupProceedToNextStep => - 'Ahora puedes continuar con el siguiente paso.'; + String get setupProceedToNextStep => 'Ahora puedes continuar con el siguiente paso.'; @override - String get setupNotificationProgressDescription => - 'Recibirás notificaciones de progreso de descargas.'; + String get setupNotificationProgressDescription => 'Recibirás notificaciones de progreso de descargas.'; @override - String get setupNotificationBackgroundDescription => - 'Recibe notificaciones sobre el progreso de la descarga y la finalización. Esto te ayuda a rastrear las descargas cuando la aplicación está en segundo plano.'; + String get setupNotificationBackgroundDescription => 'Recibe notificaciones sobre el progreso de la descarga y la finalización. Esto te ayuda a rastrear las descargas cuando la aplicación está en segundo plano.'; @override String get setupSkipForNow => 'Omitir por ahora'; @@ -3027,12 +2941,10 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get setupSkipAndStart => 'Saltar y empezar'; @override - String get setupAllowAccessToManageFiles => - 'Por favor, activa \"Permitir el acceso para gestionar todos los archivos\" en la siguiente pantalla.'; + String get setupAllowAccessToManageFiles => 'Por favor, activa \"Permitir el acceso para gestionar todos los archivos\" en la siguiente pantalla.'; @override - String get setupGetCredentialsFromSpotify => - 'Obtener credenciales de developer.spotify.com'; + String get setupGetCredentialsFromSpotify => 'Obtener credenciales de developer.spotify.com'; @override String get dialogCancel => 'Cancelar'; @@ -3083,8 +2995,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get dialogDiscardChanges => '¿Descartar cambios?'; @override - String get dialogUnsavedChanges => - 'Tienes cambios sin guardar. ¿Quieres descartarlos?'; + String get dialogUnsavedChanges => 'Tienes cambios sin guardar. ¿Quieres descartarlos?'; @override String get dialogDownloadFailed => 'Descarga fallida'; @@ -3102,8 +3013,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get dialogClearAll => 'Eliminar todo'; @override - String get dialogClearAllDownloads => - '¿Estás seguro de que quieres borrar todas las descargas?'; + String get dialogClearAllDownloads => '¿Estás seguro de que quieres borrar todas las descargas?'; @override String get dialogRemoveFromDevice => '¿Eliminar del dispositivo?'; @@ -3112,8 +3022,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get dialogRemoveExtension => 'Eliminar extensión'; @override - String get dialogRemoveExtensionMessage => - '¿Estás seguro de que quieres eliminar esta extensión? Esto no se puede deshacer.'; + String get dialogRemoveExtensionMessage => '¿Estás seguro de que quieres eliminar esta extensión? Esto no se puede deshacer.'; @override String get dialogUninstallExtension => '¿Desinstalar extensión?'; @@ -3127,8 +3036,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get dialogClearHistoryTitle => 'Borrar historial'; @override - String get dialogClearHistoryMessage => - '¿Estás seguro de que quieres borrar todo el historial de descargas? Esta acción no se puede deshacer.'; + String get dialogClearHistoryMessage => '¿Estás seguro de que quieres borrar todo el historial de descargas? Esta acción no se puede deshacer.'; @override String get dialogDeleteSelectedTitle => 'Borrar Seleccionados'; @@ -3212,15 +3120,13 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get snackbarFileNotFound => 'Archivo no encontrado'; @override - String get snackbarSelectExtFile => - 'Por favor, seleccione un archivo .spotiflac-ext'; + String get snackbarSelectExtFile => 'Por favor, seleccione un archivo .spotiflac-ext'; @override String get snackbarProviderPrioritySaved => 'Prioridad de proveedor guardada'; @override - String get snackbarMetadataProviderSaved => - 'Prioridad de proveedor de metadatos guardada'; + String get snackbarMetadataProviderSaved => 'Prioridad de proveedor de metadatos guardada'; @override String snackbarExtensionInstalled(String extensionName) { @@ -3242,8 +3148,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get errorRateLimited => 'Límite Excedido'; @override - String get errorRateLimitedMessage => - 'Demasiadas solicitudes. Por favor, espere un momento antes de buscar de nuevo.'; + String get errorRateLimitedMessage => 'Demasiadas solicitudes. Por favor, espere un momento antes de buscar de nuevo.'; @override String errorFailedToLoad(String item) { @@ -3410,24 +3315,19 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get folderOrganizationByArtistAlbum => 'Artista/Álbum'; @override - String get folderOrganizationDescription => - 'Organizar los archivos descargados en carpetas'; + String get folderOrganizationDescription => 'Organizar los archivos descargados en carpetas'; @override - String get folderOrganizationNoneSubtitle => - 'Todos los archivos de la carpeta de descargas'; + String get folderOrganizationNoneSubtitle => 'Todos los archivos de la carpeta de descargas'; @override - String get folderOrganizationByArtistSubtitle => - 'Carpeta separada para cada artista'; + String get folderOrganizationByArtistSubtitle => 'Carpeta separada para cada artista'; @override - String get folderOrganizationByAlbumSubtitle => - 'Carpeta separada para cada artista'; + String get folderOrganizationByAlbumSubtitle => 'Carpeta separada para cada artista'; @override - String get folderOrganizationByArtistAlbumSubtitle => - 'Carpetas organizadas por artista y álbum'; + String get folderOrganizationByArtistAlbumSubtitle => 'Carpetas organizadas por artista y álbum'; @override String get updateAvailable => 'Actualización Disponible'; @@ -3480,19 +3380,16 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get providerPriority => 'Prioridad del proveedor'; @override - String get providerPrioritySubtitle => - 'Arrastre para reordenar los proveedores de descarga'; + String get providerPrioritySubtitle => 'Arrastre para reordenar los proveedores de descarga'; @override String get providerPriorityTitle => 'Prioridad del proveedor'; @override - String get providerPriorityDescription => - 'Arrastra para reordenar los proveedores de descarga. La aplicación intentará usar los proveedores de arriba hacia abajo al descargar las pistas.'; + String get providerPriorityDescription => 'Arrastra para reordenar los proveedores de descarga. La aplicación intentará usar los proveedores de arriba hacia abajo al descargar las pistas.'; @override - String get providerPriorityInfo => - 'Si una pista no está disponible en el primer proveedor, la aplicación intentará automáticamente el siguiente.'; + String get providerPriorityInfo => 'Si una pista no está disponible en el primer proveedor, la aplicación intentará automáticamente el siguiente.'; @override String get providerBuiltIn => 'Integrado'; @@ -3504,19 +3401,16 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get metadataProviderPriority => 'Prioridad del proveedor de metadatos'; @override - String get metadataProviderPrioritySubtitle => - 'Orden usado al recuperar metadatos de la pista'; + String get metadataProviderPrioritySubtitle => 'Orden usado al recuperar metadatos de la pista'; @override String get metadataProviderPriorityTitle => 'Prioridad de los metadatos'; @override - String get metadataProviderPriorityDescription => - 'Arrastra para reordenar los proveedores de metadatos. La aplicación probará los proveedores de arriba hacia abajo al buscar pistas y obtener los metadatos.'; + String get metadataProviderPriorityDescription => 'Arrastra para reordenar los proveedores de metadatos. La aplicación probará los proveedores de arriba hacia abajo al buscar pistas y obtener los metadatos.'; @override - String get metadataProviderPriorityInfo => - 'Deezer no tiene límites de tasa y se recomienda como principal. Spotify puede valorar el límite después de muchas solicitudes.'; + String get metadataProviderPriorityInfo => 'Deezer no tiene límites de tasa y se recomienda como principal. Spotify puede valorar el límite después de muchas solicitudes.'; @override String get metadataNoRateLimits => 'Sin límites de tasa'; @@ -3561,8 +3455,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get logClearLogsTitle => 'Limpiar registros'; @override - String get logClearLogsMessage => - '¿Estás seguro que deseas limpiar todos los registros?'; + String get logClearLogsMessage => '¿Estás seguro que deseas limpiar todos los registros?'; @override String get logIspBlocking => 'BLOQUEO POR EL ISP DETECTADO'; @@ -3583,26 +3476,22 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get logNoLogsYet => 'No hay registros aún'; @override - String get logNoLogsYetSubtitle => - 'Los registros aparecerán aquí mientras usas la aplicación'; + String get logNoLogsYetSubtitle => 'Los registros aparecerán aquí mientras usas la aplicación'; @override String get logIssueSummary => 'Resumen de Incidencias'; @override - String get logIspBlockingDescription => - 'Tu ISP puede estar bloqueando el acceso a los servicios de descarga'; + String get logIspBlockingDescription => 'Tu ISP puede estar bloqueando el acceso a los servicios de descarga'; @override - String get logIspBlockingSuggestion => - 'Intente usar una VPN o cambie el DNS a 1.1.1.1 o 8.8.8.8'; + String get logIspBlockingSuggestion => 'Intente usar una VPN o cambie el DNS a 1.1.1.1 o 8.8.8.8'; @override String get logRateLimitedDescription => 'Demasiadas solicitudes al servicio'; @override - String get logRateLimitedSuggestion => - 'Espere unos minutos antes de volver a intentarlo'; + String get logRateLimitedSuggestion => 'Espere unos minutos antes de volver a intentarlo'; @override String get logNetworkErrorDescription => 'Problemas de conexión detectados'; @@ -3611,12 +3500,10 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get logNetworkErrorSuggestion => 'Comprueba tu conexión a internet'; @override - String get logTrackNotFoundDescription => - 'No se pudieron encontrar algunas pistas en los servicios de descarga'; + String get logTrackNotFoundDescription => 'No se pudieron encontrar algunas pistas en los servicios de descarga'; @override - String get logTrackNotFoundSuggestion => - 'La pista puede no estar disponible en calidad sin pérdida'; + String get logTrackNotFoundSuggestion => 'La pista puede no estar disponible en calidad sin pérdida'; @override String logTotalErrors(int count) { @@ -3642,8 +3529,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get credentialsTitle => 'Credenciales de Spotify'; @override - String get credentialsDescription => - 'Introduzca su ID de cliente y secreto para utilizar su propia cuota de aplicación de Spotify.'; + String get credentialsDescription => 'Introduzca su ID de cliente y secreto para utilizar su propia cuota de aplicación de Spotify.'; @override String get credentialsClientId => 'ID del cliente'; @@ -3712,20 +3598,16 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get settingsAppearanceSubtitle => 'Tema, colores, pantalla'; @override - String get settingsDownloadSubtitle => - 'Servicio, calidad, formato del nombre del archivo'; + String get settingsDownloadSubtitle => 'Servicio, calidad, formato del nombre del archivo'; @override - String get settingsOptionsSubtitle => - 'Alternativa, letras, carátula, actualizaciones'; + String get settingsOptionsSubtitle => 'Alternativa, letras, carátula, actualizaciones'; @override - String get settingsExtensionsSubtitle => - 'Administrar proveedores de descarga'; + String get settingsExtensionsSubtitle => 'Administrar proveedores de descarga'; @override - String get settingsLogsSubtitle => - 'Ver registros de aplicaciones para depuración'; + String get settingsLogsSubtitle => 'Ver registros de aplicaciones para depuración'; @override String get loadingSharedLink => 'Cargando enlace compartido...'; @@ -3816,8 +3698,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get trackLyricsNotAvailable => 'Letras no disponibles para este tema'; @override - String get trackLyricsTimeout => - 'Tiempo de espera agotado. Inténtalo de nuevo más tarde.'; + String get trackLyricsTimeout => 'Tiempo de espera agotado. Inténtalo de nuevo más tarde.'; @override String get trackLyricsLoadFailed => 'Error al cargar la letra'; @@ -3829,8 +3710,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get trackDeleteConfirmTitle => '¿Eliminar del dispositivo?'; @override - String get trackDeleteConfirmMessage => - 'Esto eliminará permanentemente el archivo descargado y lo eliminará de tu historial.'; + String get trackDeleteConfirmMessage => 'Esto eliminará permanentemente el archivo descargado y lo eliminará de tu historial.'; @override String trackCannotOpen(String message) { @@ -3952,8 +3832,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get extensionMinAppVersion => 'Versión Mínima de la aplicación'; @override - String get extensionCustomTrackMatching => - 'Coincidencia de pista personalizada'; + String get extensionCustomTrackMatching => 'Coincidencia de pista personalizada'; @override String get extensionPostProcessing => 'Post-Procesamiento'; @@ -3983,15 +3862,13 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get extensionsNoExtensions => 'No hay extensiones instaladas'; @override - String get extensionsNoExtensionsSubtitle => - 'Instalar archivos .spotiflac-ext para añadir nuevos proveedores'; + String get extensionsNoExtensionsSubtitle => 'Instalar archivos .spotiflac-ext para añadir nuevos proveedores'; @override String get extensionsInstallButton => 'Instalar extensión'; @override - String get extensionsInfoTip => - 'Las extensiones pueden añadir nuevos metadatos y proveedores de descargas. Sólo instalar extensiones desde fuentes confiables.'; + String get extensionsInfoTip => 'Las extensiones pueden añadir nuevos metadatos y proveedores de descargas. Sólo instalar extensiones desde fuentes confiables.'; @override String get extensionsInstalledSuccess => 'Extensión instalada correctamente'; @@ -4000,34 +3877,28 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get extensionsDownloadPriority => 'Prioridad de descarga'; @override - String get extensionsDownloadPrioritySubtitle => - 'Establecer orden de servicio de descarga'; + String get extensionsDownloadPrioritySubtitle => 'Establecer orden de servicio de descarga'; @override - String get extensionsNoDownloadProvider => - 'No hay extensiones con proveedor de descargas'; + String get extensionsNoDownloadProvider => 'No hay extensiones con proveedor de descargas'; @override String get extensionsMetadataPriority => 'Prioridad de los metadatos'; @override - String get extensionsMetadataPrioritySubtitle => - 'Establecer orden de búsqueda y metadatos'; + String get extensionsMetadataPrioritySubtitle => 'Establecer orden de búsqueda y metadatos'; @override - String get extensionsNoMetadataProvider => - 'No hay extensiones con el proveedor de metadatos'; + String get extensionsNoMetadataProvider => 'No hay extensiones con el proveedor de metadatos'; @override String get extensionsSearchProvider => 'Proveedor de búsqueda'; @override - String get extensionsNoCustomSearch => - 'No hay extensiones con búsqueda personalizada'; + String get extensionsNoCustomSearch => 'No hay extensiones con búsqueda personalizada'; @override - String get extensionsSearchProviderDescription => - 'Elegir qué servicio usar para buscar pistas'; + String get extensionsSearchProviderDescription => 'Elegir qué servicio usar para buscar pistas'; @override String get extensionsCustomSearch => 'Búsqueda personalizada'; @@ -4054,8 +3925,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get qualityHiResFlacMaxSubtitle => '24 bits / hasta 192kHz'; @override - String get qualityNote => - 'La calidad real depende de la disponibilidad de la pista del servicio'; + String get qualityNote => 'La calidad real depende de la disponibilidad de la pista del servicio'; @override String get downloadAskBeforeDownload => 'Preguntar antes de descargar'; @@ -4091,8 +3961,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get folderNone => 'Ninguna'; @override - String get folderNoneSubtitle => - 'Guardar todos los archivos directamente para descargar la carpeta'; + String get folderNoneSubtitle => 'Guardar todos los archivos directamente para descargar la carpeta'; @override String get folderArtist => 'Artista'; @@ -4110,8 +3979,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get folderArtistAlbum => 'Artista/Álbum'; @override - String get folderArtistAlbumSubtitle => - 'Nombre del Artista/Nombre del Álbum/Nombre del Archivo'; + String get folderArtistAlbumSubtitle => 'Nombre del Artista/Nombre del Álbum/Nombre del Archivo'; @override String get serviceTidal => 'Tidal'; @@ -4147,8 +4015,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get queueClearAll => 'Eliminar todo'; @override - String get queueClearAllMessage => - '¿Estás seguro de que quieres borrar todas las descargas?'; + String get queueClearAllMessage => '¿Estás seguro de que quieres borrar todas las descargas?'; @override String get queueEmpty => 'No hay descargas en cola'; @@ -4178,15 +4045,13 @@ class AppLocalizationsEsEs extends AppLocalizationsEs { String get albumFolderArtistAlbum => 'Artista / Álbum'; @override - String get albumFolderArtistAlbumSubtitle => - 'Álbumes/Nombre del Artista/Nombre del Álbum/'; + String get albumFolderArtistAlbumSubtitle => 'Álbumes/Nombre del Artista/Nombre del Álbum/'; @override String get albumFolderArtistYearAlbum => 'Artista / [Año] Álbum'; @override - String get albumFolderArtistYearAlbumSubtitle => - 'Álbumes/Nombre del Artista /[2005] Nombre del Álbum/'; + String get albumFolderArtistYearAlbumSubtitle => 'Álbumes/Nombre del Artista /[2005] Nombre del Álbum/'; @override String get albumFolderAlbumOnly => 'Sólo álbum'; diff --git a/lib/l10n/app_localizations_fr.dart b/lib/l10n/app_localizations_fr.dart index d7b052bc..38379f9f 100644 --- a/lib/l10n/app_localizations_fr.dart +++ b/lib/l10n/app_localizations_fr.dart @@ -12,8 +12,7 @@ class AppLocalizationsFr extends AppLocalizations { String get appName => 'SpotiFLAC'; @override - String get appDescription => - 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; + String get appDescription => 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; @override String get navHome => 'Home'; @@ -99,15 +98,13 @@ class AppLocalizationsFr extends AppLocalizations { String get historyNoAlbums => 'No album downloads'; @override - String get historyNoAlbumsSubtitle => - 'Download multiple tracks from an album to see them here'; + String get historyNoAlbumsSubtitle => 'Download multiple tracks from an album to see them here'; @override String get historyNoSingles => 'No single downloads'; @override - String get historyNoSinglesSubtitle => - 'Single track downloads will appear here'; + String get historyNoSinglesSubtitle => 'Single track downloads will appear here'; @override String get historySearchHint => 'Search history...'; @@ -155,8 +152,7 @@ class AppLocalizationsFr extends AppLocalizations { String get downloadAskQuality => 'Ask Quality Before Download'; @override - String get downloadAskQualitySubtitle => - 'Show quality picker for each download'; + String get downloadAskQualitySubtitle => 'Show quality picker for each download'; @override String get downloadFilenameFormat => 'Filename Format'; @@ -168,8 +164,7 @@ class AppLocalizationsFr extends AppLocalizations { String get downloadSeparateSingles => 'Separate Singles'; @override - String get downloadSeparateSinglesSubtitle => - 'Put single tracks in a separate folder'; + String get downloadSeparateSinglesSubtitle => 'Put single tracks in a separate folder'; @override String get qualityBest => 'Best Available'; @@ -226,8 +221,7 @@ class AppLocalizationsFr extends AppLocalizations { String get optionsPrimaryProvider => 'Primary Provider'; @override - String get optionsPrimaryProviderSubtitle => - 'Service used when searching by track name.'; + String get optionsPrimaryProviderSubtitle => 'Service used when searching by track name.'; @override String optionsUsingExtension(String extensionName) { @@ -235,15 +229,13 @@ class AppLocalizationsFr extends AppLocalizations { } @override - String get optionsSwitchBack => - 'Tap Deezer or Spotify to switch back from extension'; + String get optionsSwitchBack => 'Tap Deezer or Spotify to switch back from extension'; @override String get optionsAutoFallback => 'Auto Fallback'; @override - String get optionsAutoFallbackSubtitle => - 'Try other services if download fails'; + String get optionsAutoFallbackSubtitle => 'Try other services if download fails'; @override String get optionsUseExtensionProviders => 'Use Extension Providers'; @@ -258,15 +250,13 @@ class AppLocalizationsFr extends AppLocalizations { String get optionsEmbedLyrics => 'Embed Lyrics'; @override - String get optionsEmbedLyricsSubtitle => - 'Embed synced lyrics into FLAC files'; + String get optionsEmbedLyricsSubtitle => 'Embed synced lyrics into FLAC files'; @override String get optionsMaxQualityCover => 'Max Quality Cover'; @override - String get optionsMaxQualityCoverSubtitle => - 'Download highest resolution cover art'; + String get optionsMaxQualityCoverSubtitle => 'Download highest resolution cover art'; @override String get optionsConcurrentDownloads => 'Concurrent Downloads'; @@ -280,8 +270,7 @@ class AppLocalizationsFr extends AppLocalizations { } @override - String get optionsConcurrentWarning => - 'Parallel downloads may trigger rate limiting'; + String get optionsConcurrentWarning => 'Parallel downloads may trigger rate limiting'; @override String get optionsExtensionStore => 'Extension Store'; @@ -293,8 +282,7 @@ class AppLocalizationsFr extends AppLocalizations { String get optionsCheckUpdates => 'Check for Updates'; @override - String get optionsCheckUpdatesSubtitle => - 'Notify when new version is available'; + String get optionsCheckUpdatesSubtitle => 'Notify when new version is available'; @override String get optionsUpdateChannel => 'Update Channel'; @@ -306,15 +294,13 @@ class AppLocalizationsFr extends AppLocalizations { String get optionsUpdateChannelPreview => 'Get preview releases'; @override - String get optionsUpdateChannelWarning => - 'Preview may contain bugs or incomplete features'; + String get optionsUpdateChannelWarning => 'Preview may contain bugs or incomplete features'; @override String get optionsClearHistory => 'Clear Download History'; @override - String get optionsClearHistorySubtitle => - 'Remove all downloaded tracks from history'; + String get optionsClearHistorySubtitle => 'Remove all downloaded tracks from history'; @override String get optionsDetailedLogging => 'Detailed Logging'; @@ -337,8 +323,7 @@ class AppLocalizationsFr extends AppLocalizations { String get optionsSpotifyCredentialsRequired => 'Required - tap to configure'; @override - String get optionsSpotifyWarning => - 'Spotify requires your own API credentials. Get them free from developer.spotify.com'; + String get optionsSpotifyWarning => 'Spotify requires your own API credentials. Get them free from developer.spotify.com'; @override String get extensionsTitle => 'Extensions'; @@ -402,8 +387,7 @@ class AppLocalizationsFr extends AppLocalizations { String get aboutOriginalCreator => 'Creator of the original SpotiFLAC'; @override - String get aboutLogoArtist => - 'The talented artist who created our beautiful app logo!'; + String get aboutLogoArtist => 'The talented artist who created our beautiful app logo!'; @override String get aboutTranslators => 'Translators'; @@ -463,34 +447,28 @@ class AppLocalizationsFr extends AppLocalizations { String get aboutVersion => 'Version'; @override - String get aboutBinimumDesc => - 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; + String get aboutBinimumDesc => 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; @override - String get aboutSachinsenalDesc => - 'The original HiFi project creator. The foundation of Tidal integration!'; + String get aboutSachinsenalDesc => 'The original HiFi project creator. The foundation of Tidal integration!'; @override - String get aboutSjdonadoDesc => - 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; + String get aboutSjdonadoDesc => 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; @override String get aboutDoubleDouble => 'DoubleDouble'; @override - String get aboutDoubleDoubleDesc => - 'Amazing API for Amazon Music downloads. Thank you for making it free!'; + String get aboutDoubleDoubleDesc => 'Amazing API for Amazon Music downloads. Thank you for making it free!'; @override String get aboutDabMusic => 'DAB Music'; @override - String get aboutDabMusicDesc => - 'The best Qobuz streaming API. Hi-Res downloads wouldn\'t be possible without this!'; + String get aboutDabMusicDesc => 'The best Qobuz streaming API. Hi-Res downloads wouldn\'t be possible without this!'; @override - String get aboutAppDescription => - 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; + String get aboutAppDescription => 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; @override String get albumTitle => 'Album'; @@ -595,8 +573,7 @@ class AppLocalizationsFr extends AppLocalizations { String get setupStoragePermission => 'Storage Permission'; @override - String get setupStoragePermissionSubtitle => - 'Required to save downloaded files'; + String get setupStoragePermissionSubtitle => 'Required to save downloaded files'; @override String get setupStoragePermissionGranted => 'Permission granted'; @@ -623,19 +600,16 @@ class AppLocalizationsFr extends AppLocalizations { String get setupStorageAccessRequired => 'Storage Access Required'; @override - String get setupStorageAccessMessage => - 'SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.'; + String get setupStorageAccessMessage => 'SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.'; @override - String get setupStorageAccessMessageAndroid11 => - 'Android 11+ requires \"All files access\" permission to save files to your chosen download folder.'; + String get setupStorageAccessMessageAndroid11 => 'Android 11+ requires \"All files access\" permission to save files to your chosen download folder.'; @override String get setupOpenSettings => 'Open Settings'; @override - String get setupPermissionDeniedMessage => - 'Permission denied. Please grant all permissions to continue.'; + String get setupPermissionDeniedMessage => 'Permission denied. Please grant all permissions to continue.'; @override String setupPermissionRequired(String permissionType) { @@ -654,8 +628,7 @@ class AppLocalizationsFr extends AppLocalizations { String get setupUseDefaultFolder => 'Use Default Folder?'; @override - String get setupNoFolderSelected => - 'No folder selected. Would you like to use the default Music folder?'; + String get setupNoFolderSelected => 'No folder selected. Would you like to use the default Music folder?'; @override String get setupUseDefault => 'Use Default'; @@ -664,15 +637,13 @@ class AppLocalizationsFr extends AppLocalizations { String get setupDownloadLocationTitle => 'Download Location'; @override - String get setupDownloadLocationIosMessage => - 'On iOS, downloads are saved to the app\'s Documents folder. You can access them via the Files app.'; + String get setupDownloadLocationIosMessage => 'On iOS, downloads are saved to the app\'s Documents folder. You can access them via the Files app.'; @override String get setupAppDocumentsFolder => 'App Documents Folder'; @override - String get setupAppDocumentsFolderSubtitle => - 'Recommended - accessible via Files app'; + String get setupAppDocumentsFolderSubtitle => 'Recommended - accessible via Files app'; @override String get setupChooseFromFiles => 'Choose from Files'; @@ -681,12 +652,10 @@ class AppLocalizationsFr extends AppLocalizations { String get setupChooseFromFilesSubtitle => 'Select iCloud or other location'; @override - String get setupIosEmptyFolderWarning => - 'iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.'; + String get setupIosEmptyFolderWarning => 'iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.'; @override - String get setupIcloudNotSupported => - 'iCloud Drive is not supported. Please use the app Documents folder.'; + String get setupIcloudNotSupported => 'iCloud Drive is not supported. Please use the app Documents folder.'; @override String get setupDownloadInFlac => 'Download Spotify tracks in FLAC'; @@ -713,8 +682,7 @@ class AppLocalizationsFr extends AppLocalizations { String get setupStorageRequired => 'Storage Permission Required'; @override - String get setupStorageDescription => - 'SpotiFLAC needs storage permission to save your downloaded music files.'; + String get setupStorageDescription => 'SpotiFLAC needs storage permission to save your downloaded music files.'; @override String get setupNotificationGranted => 'Notification Permission Granted!'; @@ -723,8 +691,7 @@ class AppLocalizationsFr extends AppLocalizations { String get setupNotificationEnable => 'Enable Notifications'; @override - String get setupNotificationDescription => - 'Get notified when downloads complete or require attention.'; + String get setupNotificationDescription => 'Get notified when downloads complete or require attention.'; @override String get setupFolderSelected => 'Download Folder Selected!'; @@ -733,8 +700,7 @@ class AppLocalizationsFr extends AppLocalizations { String get setupFolderChoose => 'Choose Download Folder'; @override - String get setupFolderDescription => - 'Select a folder where your downloaded music will be saved.'; + String get setupFolderDescription => 'Select a folder where your downloaded music will be saved.'; @override String get setupChangeFolder => 'Change Folder'; @@ -746,8 +712,7 @@ class AppLocalizationsFr extends AppLocalizations { String get setupSpotifyApiOptional => 'Spotify API (Optional)'; @override - String get setupSpotifyApiDescription => - 'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.'; + String get setupSpotifyApiDescription => 'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.'; @override String get setupUseSpotifyApi => 'Use Spotify API'; @@ -765,8 +730,7 @@ class AppLocalizationsFr extends AppLocalizations { String get setupEnterClientSecret => 'Enter Spotify Client Secret'; @override - String get setupGetFreeCredentials => - 'Get your free API credentials from the Spotify Developer Dashboard.'; + String get setupGetFreeCredentials => 'Get your free API credentials from the Spotify Developer Dashboard.'; @override String get setupEnableNotifications => 'Enable Notifications'; @@ -775,12 +739,10 @@ class AppLocalizationsFr extends AppLocalizations { String get setupProceedToNextStep => 'You can now proceed to the next step.'; @override - String get setupNotificationProgressDescription => - 'You will receive download progress notifications.'; + String get setupNotificationProgressDescription => 'You will receive download progress notifications.'; @override - String get setupNotificationBackgroundDescription => - 'Get notified about download progress and completion. This helps you track downloads when the app is in background.'; + String get setupNotificationBackgroundDescription => 'Get notified about download progress and completion. This helps you track downloads when the app is in background.'; @override String get setupSkipForNow => 'Skip for now'; @@ -798,12 +760,10 @@ class AppLocalizationsFr extends AppLocalizations { String get setupSkipAndStart => 'Skip & Start'; @override - String get setupAllowAccessToManageFiles => - 'Please enable \"Allow access to manage all files\" in the next screen.'; + String get setupAllowAccessToManageFiles => 'Please enable \"Allow access to manage all files\" in the next screen.'; @override - String get setupGetCredentialsFromSpotify => - 'Get credentials from developer.spotify.com'; + String get setupGetCredentialsFromSpotify => 'Get credentials from developer.spotify.com'; @override String get dialogCancel => 'Cancel'; @@ -854,8 +814,7 @@ class AppLocalizationsFr extends AppLocalizations { String get dialogDiscardChanges => 'Discard Changes?'; @override - String get dialogUnsavedChanges => - 'You have unsaved changes. Do you want to discard them?'; + String get dialogUnsavedChanges => 'You have unsaved changes. Do you want to discard them?'; @override String get dialogDownloadFailed => 'Download Failed'; @@ -873,8 +832,7 @@ class AppLocalizationsFr extends AppLocalizations { String get dialogClearAll => 'Clear All'; @override - String get dialogClearAllDownloads => - 'Are you sure you want to clear all downloads?'; + String get dialogClearAllDownloads => 'Are you sure you want to clear all downloads?'; @override String get dialogRemoveFromDevice => 'Remove from device?'; @@ -883,8 +841,7 @@ class AppLocalizationsFr extends AppLocalizations { String get dialogRemoveExtension => 'Remove Extension'; @override - String get dialogRemoveExtensionMessage => - 'Are you sure you want to remove this extension? This cannot be undone.'; + String get dialogRemoveExtensionMessage => 'Are you sure you want to remove this extension? This cannot be undone.'; @override String get dialogUninstallExtension => 'Uninstall Extension?'; @@ -898,8 +855,7 @@ class AppLocalizationsFr extends AppLocalizations { String get dialogClearHistoryTitle => 'Clear History'; @override - String get dialogClearHistoryMessage => - 'Are you sure you want to clear all download history? This cannot be undone.'; + String get dialogClearHistoryMessage => 'Are you sure you want to clear all download history? This cannot be undone.'; @override String get dialogDeleteSelectedTitle => 'Delete Selected'; @@ -994,8 +950,7 @@ class AppLocalizationsFr extends AppLocalizations { String get snackbarProviderPrioritySaved => 'Provider priority saved'; @override - String get snackbarMetadataProviderSaved => - 'Metadata provider priority saved'; + String get snackbarMetadataProviderSaved => 'Metadata provider priority saved'; @override String snackbarExtensionInstalled(String extensionName) { @@ -1017,8 +972,7 @@ class AppLocalizationsFr extends AppLocalizations { String get errorRateLimited => 'Rate Limited'; @override - String get errorRateLimitedMessage => - 'Too many requests. Please wait a moment before searching again.'; + String get errorRateLimitedMessage => 'Too many requests. Please wait a moment before searching again.'; @override String errorFailedToLoad(String item) { @@ -1185,23 +1139,19 @@ class AppLocalizationsFr extends AppLocalizations { String get folderOrganizationByArtistAlbum => 'Artist/Album'; @override - String get folderOrganizationDescription => - 'Organize downloaded files into folders'; + String get folderOrganizationDescription => 'Organize downloaded files into folders'; @override String get folderOrganizationNoneSubtitle => 'All files in download folder'; @override - String get folderOrganizationByArtistSubtitle => - 'Separate folder for each artist'; + String get folderOrganizationByArtistSubtitle => 'Separate folder for each artist'; @override - String get folderOrganizationByAlbumSubtitle => - 'Separate folder for each album'; + String get folderOrganizationByAlbumSubtitle => 'Separate folder for each album'; @override - String get folderOrganizationByArtistAlbumSubtitle => - 'Nested folders for artist and album'; + String get folderOrganizationByArtistAlbumSubtitle => 'Nested folders for artist and album'; @override String get updateAvailable => 'Update Available'; @@ -1260,12 +1210,10 @@ class AppLocalizationsFr extends AppLocalizations { String get providerPriorityTitle => 'Provider Priority'; @override - String get providerPriorityDescription => - 'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.'; + String get providerPriorityDescription => 'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.'; @override - String get providerPriorityInfo => - 'If a track is not available on the first provider, the app will automatically try the next one.'; + String get providerPriorityInfo => 'If a track is not available on the first provider, the app will automatically try the next one.'; @override String get providerBuiltIn => 'Built-in'; @@ -1277,19 +1225,16 @@ class AppLocalizationsFr extends AppLocalizations { String get metadataProviderPriority => 'Metadata Provider Priority'; @override - String get metadataProviderPrioritySubtitle => - 'Order used when fetching track metadata'; + String get metadataProviderPrioritySubtitle => 'Order used when fetching track metadata'; @override String get metadataProviderPriorityTitle => 'Metadata Priority'; @override - String get metadataProviderPriorityDescription => - 'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.'; + String get metadataProviderPriorityDescription => 'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.'; @override - String get metadataProviderPriorityInfo => - 'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.'; + String get metadataProviderPriorityInfo => 'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.'; @override String get metadataNoRateLimits => 'No rate limits'; @@ -1361,19 +1306,16 @@ class AppLocalizationsFr extends AppLocalizations { String get logIssueSummary => 'Issue Summary'; @override - String get logIspBlockingDescription => - 'Your ISP may be blocking access to download services'; + String get logIspBlockingDescription => 'Your ISP may be blocking access to download services'; @override - String get logIspBlockingSuggestion => - 'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8'; + String get logIspBlockingSuggestion => 'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8'; @override String get logRateLimitedDescription => 'Too many requests to the service'; @override - String get logRateLimitedSuggestion => - 'Wait a few minutes before trying again'; + String get logRateLimitedSuggestion => 'Wait a few minutes before trying again'; @override String get logNetworkErrorDescription => 'Connection issues detected'; @@ -1382,12 +1324,10 @@ class AppLocalizationsFr extends AppLocalizations { String get logNetworkErrorSuggestion => 'Check your internet connection'; @override - String get logTrackNotFoundDescription => - 'Some tracks could not be found on download services'; + String get logTrackNotFoundDescription => 'Some tracks could not be found on download services'; @override - String get logTrackNotFoundSuggestion => - 'The track may not be available in lossless quality'; + String get logTrackNotFoundSuggestion => 'The track may not be available in lossless quality'; @override String logTotalErrors(int count) { @@ -1413,8 +1353,7 @@ class AppLocalizationsFr extends AppLocalizations { String get credentialsTitle => 'Spotify Credentials'; @override - String get credentialsDescription => - 'Enter your Client ID and Secret to use your own Spotify application quota.'; + String get credentialsDescription => 'Enter your Client ID and Secret to use your own Spotify application quota.'; @override String get credentialsClientId => 'Client ID'; @@ -1468,8 +1407,7 @@ class AppLocalizationsFr extends AppLocalizations { String get lyricsMode => 'Lyrics Mode'; @override - String get lyricsModeDescription => - 'Choose how lyrics are saved with your downloads'; + String get lyricsModeDescription => 'Choose how lyrics are saved with your downloads'; @override String get lyricsModeEmbed => 'Embed in file'; @@ -1481,8 +1419,7 @@ class AppLocalizationsFr extends AppLocalizations { String get lyricsModeExternal => 'External .lrc file'; @override - String get lyricsModeExternalSubtitle => - 'Separate .lrc file for players like Samsung Music'; + String get lyricsModeExternalSubtitle => 'Separate .lrc file for players like Samsung Music'; @override String get lyricsModeBoth => 'Both'; @@ -1642,8 +1579,7 @@ class AppLocalizationsFr extends AppLocalizations { String get trackDeleteConfirmTitle => 'Remove from device?'; @override - String get trackDeleteConfirmMessage => - 'This will permanently delete the downloaded file and remove it from your history.'; + String get trackDeleteConfirmMessage => 'This will permanently delete the downloaded file and remove it from your history.'; @override String trackCannotOpen(String message) { @@ -1795,15 +1731,13 @@ class AppLocalizationsFr extends AppLocalizations { String get extensionsNoExtensions => 'No extensions installed'; @override - String get extensionsNoExtensionsSubtitle => - 'Install .spotiflac-ext files to add new providers'; + String get extensionsNoExtensionsSubtitle => 'Install .spotiflac-ext files to add new providers'; @override String get extensionsInstallButton => 'Install Extension'; @override - String get extensionsInfoTip => - 'Extensions can add new metadata and download providers. Only install extensions from trusted sources.'; + String get extensionsInfoTip => 'Extensions can add new metadata and download providers. Only install extensions from trusted sources.'; @override String get extensionsInstalledSuccess => 'Extension installed successfully'; @@ -1815,19 +1749,16 @@ class AppLocalizationsFr extends AppLocalizations { String get extensionsDownloadPrioritySubtitle => 'Set download service order'; @override - String get extensionsNoDownloadProvider => - 'No extensions with download provider'; + String get extensionsNoDownloadProvider => 'No extensions with download provider'; @override String get extensionsMetadataPriority => 'Metadata Priority'; @override - String get extensionsMetadataPrioritySubtitle => - 'Set search & metadata source order'; + String get extensionsMetadataPrioritySubtitle => 'Set search & metadata source order'; @override - String get extensionsNoMetadataProvider => - 'No extensions with metadata provider'; + String get extensionsNoMetadataProvider => 'No extensions with metadata provider'; @override String get extensionsSearchProvider => 'Search Provider'; @@ -1836,8 +1767,7 @@ class AppLocalizationsFr extends AppLocalizations { String get extensionsNoCustomSearch => 'No extensions with custom search'; @override - String get extensionsSearchProviderDescription => - 'Choose which service to use for searching tracks'; + String get extensionsSearchProviderDescription => 'Choose which service to use for searching tracks'; @override String get extensionsCustomSearch => 'Custom search'; @@ -1879,8 +1809,7 @@ class AppLocalizationsFr extends AppLocalizations { String get enableLossyOptionSubtitleOn => 'Lossy quality option is available'; @override - String get enableLossyOptionSubtitleOff => - 'Downloads FLAC then converts to lossy format'; + String get enableLossyOptionSubtitleOff => 'Downloads FLAC then converts to lossy format'; @override String get lossyFormat => 'Lossy Format'; @@ -1892,12 +1821,10 @@ class AppLocalizationsFr extends AppLocalizations { String get lossyFormatMp3Subtitle => '320kbps, best compatibility'; @override - String get lossyFormatOpusSubtitle => - '128kbps, better quality at smaller size'; + String get lossyFormatOpusSubtitle => '128kbps, better quality at smaller size'; @override - String get qualityNote => - 'Actual quality depends on track availability from the service'; + String get qualityNote => 'Actual quality depends on track availability from the service'; @override String get downloadAskBeforeDownload => 'Ask Before Download'; @@ -1987,15 +1914,13 @@ class AppLocalizationsFr extends AppLocalizations { String get queueClearAll => 'Clear All'; @override - String get queueClearAllMessage => - 'Are you sure you want to clear all downloads?'; + String get queueClearAllMessage => 'Are you sure you want to clear all downloads?'; @override String get queueExportFailed => 'Export'; @override - String get queueExportFailedSuccess => - 'Failed downloads exported to TXT file'; + String get queueExportFailedSuccess => 'Failed downloads exported to TXT file'; @override String get queueExportFailedClear => 'Clear Failed'; @@ -2007,8 +1932,7 @@ class AppLocalizationsFr extends AppLocalizations { String get settingsAutoExportFailed => 'Auto-export failed downloads'; @override - String get settingsAutoExportFailedSubtitle => - 'Save failed downloads to TXT file automatically'; + String get settingsAutoExportFailedSubtitle => 'Save failed downloads to TXT file automatically'; @override String get settingsDownloadNetwork => 'Download Network'; @@ -2020,8 +1944,55 @@ class AppLocalizationsFr extends AppLocalizations { String get settingsDownloadNetworkWifiOnly => 'WiFi Only'; @override - String get settingsDownloadNetworkSubtitle => - 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + String get settingsDownloadNetworkSubtitle => 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + + @override + String get settingsCloudSave => 'Cloud Save'; + + @override + String get settingsCloudSaveSubtitle => 'Auto-upload to NAS or cloud storage'; + + @override + String get cloudSettingsTitle => 'Cloud Save'; + + @override + String get cloudSettingsSectionGeneral => 'General'; + + @override + String get cloudSettingsEnable => 'Enable Cloud Upload'; + + @override + String get cloudSettingsEnableSubtitle => 'Automatically upload files after download completes'; + + @override + String get cloudSettingsSectionProvider => 'Cloud Provider'; + + @override + String get cloudSettingsProvider => 'Provider'; + + @override + String get cloudSettingsProviderDescription => 'Select where to upload your downloaded files'; + + @override + String get cloudSettingsSectionServer => 'Server Configuration'; + + @override + String get cloudSettingsServerUrl => 'Server URL'; + + @override + String get cloudSettingsUsername => 'Username'; + + @override + String get cloudSettingsPassword => 'Password'; + + @override + String get cloudSettingsRemotePath => 'Remote Folder Path'; + + @override + String get cloudSettingsTestConnection => 'Test Connection'; + + @override + String get cloudSettingsInfo => 'Downloaded files will be automatically uploaded to your cloud storage after download completes. Original files are kept on your device.'; @override String get queueEmpty => 'No downloads in queue'; @@ -2057,8 +2028,7 @@ class AppLocalizationsFr extends AppLocalizations { String get albumFolderArtistYearAlbum => 'Artist / [Year] Album'; @override - String get albumFolderArtistYearAlbumSubtitle => - 'Albums/Artist Name/[2005] Album Name/'; + String get albumFolderArtistYearAlbumSubtitle => 'Albums/Artist Name/[2005] Album Name/'; @override String get albumFolderAlbumOnly => 'Album Only'; @@ -2076,8 +2046,7 @@ class AppLocalizationsFr extends AppLocalizations { String get albumFolderArtistAlbumSingles => 'Artist / Album + Singles'; @override - String get albumFolderArtistAlbumSinglesSubtitle => - 'Artist/Album/ and Artist/Singles/'; + String get albumFolderArtistAlbumSinglesSubtitle => 'Artist/Album/ and Artist/Singles/'; @override String get downloadedAlbumDeleteSelected => 'Delete Selected'; @@ -2187,8 +2156,7 @@ class AppLocalizationsFr extends AppLocalizations { String get discographySelectAlbums => 'Select Albums...'; @override - String get discographySelectAlbumsSubtitle => - 'Choose specific albums or singles'; + String get discographySelectAlbumsSubtitle => 'Choose specific albums or singles'; @override String get discographyFetchingTracks => 'Fetching tracks...'; @@ -2235,14 +2203,11 @@ class AppLocalizationsFr extends AppLocalizations { String get allFilesAccessDisabledSubtitle => 'Limited to media folders only'; @override - String get allFilesAccessDescription => - 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; + String get allFilesAccessDescription => 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; @override - String get allFilesAccessDeniedMessage => - 'Permission was denied. Please enable \'All files access\' manually in system settings.'; + String get allFilesAccessDeniedMessage => 'Permission was denied. Please enable \'All files access\' manually in system settings.'; @override - String get allFilesAccessDisabledMessage => - 'All Files Access disabled. The app will use limited storage access.'; + String get allFilesAccessDisabledMessage => 'All Files Access disabled. The app will use limited storage access.'; } diff --git a/lib/l10n/app_localizations_hi.dart b/lib/l10n/app_localizations_hi.dart index 18d197f1..e3ab9e49 100644 --- a/lib/l10n/app_localizations_hi.dart +++ b/lib/l10n/app_localizations_hi.dart @@ -12,8 +12,7 @@ class AppLocalizationsHi extends AppLocalizations { String get appName => 'SpotiFlac'; @override - String get appDescription => - 'स्पॉटीफाई ट्रैक डाउनलोड करें टाइडल, क्वाबज एवं एवं अमेजन म्यूजिक से उच्चतम क्वालिटी में।'; + String get appDescription => 'स्पॉटीफाई ट्रैक डाउनलोड करें टाइडल, क्वाबज एवं एवं अमेजन म्यूजिक से उच्चतम क्वालिटी में।'; @override String get navHome => 'होम'; @@ -99,15 +98,13 @@ class AppLocalizationsHi extends AppLocalizations { String get historyNoAlbums => 'No album downloads'; @override - String get historyNoAlbumsSubtitle => - 'Download multiple tracks from an album to see them here'; + String get historyNoAlbumsSubtitle => 'Download multiple tracks from an album to see them here'; @override String get historyNoSingles => 'No single downloads'; @override - String get historyNoSinglesSubtitle => - 'Single track downloads will appear here'; + String get historyNoSinglesSubtitle => 'Single track downloads will appear here'; @override String get historySearchHint => 'Search history...'; @@ -155,8 +152,7 @@ class AppLocalizationsHi extends AppLocalizations { String get downloadAskQuality => 'Ask Quality Before Download'; @override - String get downloadAskQualitySubtitle => - 'Show quality picker for each download'; + String get downloadAskQualitySubtitle => 'Show quality picker for each download'; @override String get downloadFilenameFormat => 'Filename Format'; @@ -168,8 +164,7 @@ class AppLocalizationsHi extends AppLocalizations { String get downloadSeparateSingles => 'Separate Singles'; @override - String get downloadSeparateSinglesSubtitle => - 'Put single tracks in a separate folder'; + String get downloadSeparateSinglesSubtitle => 'Put single tracks in a separate folder'; @override String get qualityBest => 'Best Available'; @@ -226,8 +221,7 @@ class AppLocalizationsHi extends AppLocalizations { String get optionsPrimaryProvider => 'Primary Provider'; @override - String get optionsPrimaryProviderSubtitle => - 'Service used when searching by track name.'; + String get optionsPrimaryProviderSubtitle => 'Service used when searching by track name.'; @override String optionsUsingExtension(String extensionName) { @@ -235,15 +229,13 @@ class AppLocalizationsHi extends AppLocalizations { } @override - String get optionsSwitchBack => - 'Tap Deezer or Spotify to switch back from extension'; + String get optionsSwitchBack => 'Tap Deezer or Spotify to switch back from extension'; @override String get optionsAutoFallback => 'Auto Fallback'; @override - String get optionsAutoFallbackSubtitle => - 'Try other services if download fails'; + String get optionsAutoFallbackSubtitle => 'Try other services if download fails'; @override String get optionsUseExtensionProviders => 'Use Extension Providers'; @@ -258,15 +250,13 @@ class AppLocalizationsHi extends AppLocalizations { String get optionsEmbedLyrics => 'Embed Lyrics'; @override - String get optionsEmbedLyricsSubtitle => - 'Embed synced lyrics into FLAC files'; + String get optionsEmbedLyricsSubtitle => 'Embed synced lyrics into FLAC files'; @override String get optionsMaxQualityCover => 'Max Quality Cover'; @override - String get optionsMaxQualityCoverSubtitle => - 'Download highest resolution cover art'; + String get optionsMaxQualityCoverSubtitle => 'Download highest resolution cover art'; @override String get optionsConcurrentDownloads => 'Concurrent Downloads'; @@ -280,8 +270,7 @@ class AppLocalizationsHi extends AppLocalizations { } @override - String get optionsConcurrentWarning => - 'Parallel downloads may trigger rate limiting'; + String get optionsConcurrentWarning => 'Parallel downloads may trigger rate limiting'; @override String get optionsExtensionStore => 'Extension Store'; @@ -293,8 +282,7 @@ class AppLocalizationsHi extends AppLocalizations { String get optionsCheckUpdates => 'Check for Updates'; @override - String get optionsCheckUpdatesSubtitle => - 'Notify when new version is available'; + String get optionsCheckUpdatesSubtitle => 'Notify when new version is available'; @override String get optionsUpdateChannel => 'Update Channel'; @@ -306,15 +294,13 @@ class AppLocalizationsHi extends AppLocalizations { String get optionsUpdateChannelPreview => 'Get preview releases'; @override - String get optionsUpdateChannelWarning => - 'Preview may contain bugs or incomplete features'; + String get optionsUpdateChannelWarning => 'Preview may contain bugs or incomplete features'; @override String get optionsClearHistory => 'Clear Download History'; @override - String get optionsClearHistorySubtitle => - 'Remove all downloaded tracks from history'; + String get optionsClearHistorySubtitle => 'Remove all downloaded tracks from history'; @override String get optionsDetailedLogging => 'Detailed Logging'; @@ -337,8 +323,7 @@ class AppLocalizationsHi extends AppLocalizations { String get optionsSpotifyCredentialsRequired => 'Required - tap to configure'; @override - String get optionsSpotifyWarning => - 'Spotify requires your own API credentials. Get them free from developer.spotify.com'; + String get optionsSpotifyWarning => 'Spotify requires your own API credentials. Get them free from developer.spotify.com'; @override String get extensionsTitle => 'Extensions'; @@ -402,8 +387,7 @@ class AppLocalizationsHi extends AppLocalizations { String get aboutOriginalCreator => 'Creator of the original SpotiFLAC'; @override - String get aboutLogoArtist => - 'The talented artist who created our beautiful app logo!'; + String get aboutLogoArtist => 'The talented artist who created our beautiful app logo!'; @override String get aboutTranslators => 'Translators'; @@ -463,34 +447,28 @@ class AppLocalizationsHi extends AppLocalizations { String get aboutVersion => 'Version'; @override - String get aboutBinimumDesc => - 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; + String get aboutBinimumDesc => 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; @override - String get aboutSachinsenalDesc => - 'The original HiFi project creator. The foundation of Tidal integration!'; + String get aboutSachinsenalDesc => 'The original HiFi project creator. The foundation of Tidal integration!'; @override - String get aboutSjdonadoDesc => - 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; + String get aboutSjdonadoDesc => 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; @override String get aboutDoubleDouble => 'DoubleDouble'; @override - String get aboutDoubleDoubleDesc => - 'Amazing API for Amazon Music downloads. Thank you for making it free!'; + String get aboutDoubleDoubleDesc => 'Amazing API for Amazon Music downloads. Thank you for making it free!'; @override String get aboutDabMusic => 'DAB Music'; @override - String get aboutDabMusicDesc => - 'The best Qobuz streaming API. Hi-Res downloads wouldn\'t be possible without this!'; + String get aboutDabMusicDesc => 'The best Qobuz streaming API. Hi-Res downloads wouldn\'t be possible without this!'; @override - String get aboutAppDescription => - 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; + String get aboutAppDescription => 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; @override String get albumTitle => 'Album'; @@ -595,8 +573,7 @@ class AppLocalizationsHi extends AppLocalizations { String get setupStoragePermission => 'Storage Permission'; @override - String get setupStoragePermissionSubtitle => - 'Required to save downloaded files'; + String get setupStoragePermissionSubtitle => 'Required to save downloaded files'; @override String get setupStoragePermissionGranted => 'Permission granted'; @@ -623,19 +600,16 @@ class AppLocalizationsHi extends AppLocalizations { String get setupStorageAccessRequired => 'Storage Access Required'; @override - String get setupStorageAccessMessage => - 'SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.'; + String get setupStorageAccessMessage => 'SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.'; @override - String get setupStorageAccessMessageAndroid11 => - 'Android 11+ requires \"All files access\" permission to save files to your chosen download folder.'; + String get setupStorageAccessMessageAndroid11 => 'Android 11+ requires \"All files access\" permission to save files to your chosen download folder.'; @override String get setupOpenSettings => 'Open Settings'; @override - String get setupPermissionDeniedMessage => - 'Permission denied. Please grant all permissions to continue.'; + String get setupPermissionDeniedMessage => 'Permission denied. Please grant all permissions to continue.'; @override String setupPermissionRequired(String permissionType) { @@ -654,8 +628,7 @@ class AppLocalizationsHi extends AppLocalizations { String get setupUseDefaultFolder => 'Use Default Folder?'; @override - String get setupNoFolderSelected => - 'No folder selected. Would you like to use the default Music folder?'; + String get setupNoFolderSelected => 'No folder selected. Would you like to use the default Music folder?'; @override String get setupUseDefault => 'Use Default'; @@ -664,15 +637,13 @@ class AppLocalizationsHi extends AppLocalizations { String get setupDownloadLocationTitle => 'Download Location'; @override - String get setupDownloadLocationIosMessage => - 'On iOS, downloads are saved to the app\'s Documents folder. You can access them via the Files app.'; + String get setupDownloadLocationIosMessage => 'On iOS, downloads are saved to the app\'s Documents folder. You can access them via the Files app.'; @override String get setupAppDocumentsFolder => 'App Documents Folder'; @override - String get setupAppDocumentsFolderSubtitle => - 'Recommended - accessible via Files app'; + String get setupAppDocumentsFolderSubtitle => 'Recommended - accessible via Files app'; @override String get setupChooseFromFiles => 'Choose from Files'; @@ -681,12 +652,10 @@ class AppLocalizationsHi extends AppLocalizations { String get setupChooseFromFilesSubtitle => 'Select iCloud or other location'; @override - String get setupIosEmptyFolderWarning => - 'iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.'; + String get setupIosEmptyFolderWarning => 'iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.'; @override - String get setupIcloudNotSupported => - 'iCloud Drive is not supported. Please use the app Documents folder.'; + String get setupIcloudNotSupported => 'iCloud Drive is not supported. Please use the app Documents folder.'; @override String get setupDownloadInFlac => 'Download Spotify tracks in FLAC'; @@ -713,8 +682,7 @@ class AppLocalizationsHi extends AppLocalizations { String get setupStorageRequired => 'Storage Permission Required'; @override - String get setupStorageDescription => - 'SpotiFLAC needs storage permission to save your downloaded music files.'; + String get setupStorageDescription => 'SpotiFLAC needs storage permission to save your downloaded music files.'; @override String get setupNotificationGranted => 'Notification Permission Granted!'; @@ -723,8 +691,7 @@ class AppLocalizationsHi extends AppLocalizations { String get setupNotificationEnable => 'Enable Notifications'; @override - String get setupNotificationDescription => - 'Get notified when downloads complete or require attention.'; + String get setupNotificationDescription => 'Get notified when downloads complete or require attention.'; @override String get setupFolderSelected => 'Download Folder Selected!'; @@ -733,8 +700,7 @@ class AppLocalizationsHi extends AppLocalizations { String get setupFolderChoose => 'Choose Download Folder'; @override - String get setupFolderDescription => - 'Select a folder where your downloaded music will be saved.'; + String get setupFolderDescription => 'Select a folder where your downloaded music will be saved.'; @override String get setupChangeFolder => 'Change Folder'; @@ -746,8 +712,7 @@ class AppLocalizationsHi extends AppLocalizations { String get setupSpotifyApiOptional => 'Spotify API (Optional)'; @override - String get setupSpotifyApiDescription => - 'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.'; + String get setupSpotifyApiDescription => 'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.'; @override String get setupUseSpotifyApi => 'Use Spotify API'; @@ -765,8 +730,7 @@ class AppLocalizationsHi extends AppLocalizations { String get setupEnterClientSecret => 'Enter Spotify Client Secret'; @override - String get setupGetFreeCredentials => - 'Get your free API credentials from the Spotify Developer Dashboard.'; + String get setupGetFreeCredentials => 'Get your free API credentials from the Spotify Developer Dashboard.'; @override String get setupEnableNotifications => 'Enable Notifications'; @@ -775,12 +739,10 @@ class AppLocalizationsHi extends AppLocalizations { String get setupProceedToNextStep => 'You can now proceed to the next step.'; @override - String get setupNotificationProgressDescription => - 'You will receive download progress notifications.'; + String get setupNotificationProgressDescription => 'You will receive download progress notifications.'; @override - String get setupNotificationBackgroundDescription => - 'Get notified about download progress and completion. This helps you track downloads when the app is in background.'; + String get setupNotificationBackgroundDescription => 'Get notified about download progress and completion. This helps you track downloads when the app is in background.'; @override String get setupSkipForNow => 'Skip for now'; @@ -798,12 +760,10 @@ class AppLocalizationsHi extends AppLocalizations { String get setupSkipAndStart => 'Skip & Start'; @override - String get setupAllowAccessToManageFiles => - 'Please enable \"Allow access to manage all files\" in the next screen.'; + String get setupAllowAccessToManageFiles => 'Please enable \"Allow access to manage all files\" in the next screen.'; @override - String get setupGetCredentialsFromSpotify => - 'Get credentials from developer.spotify.com'; + String get setupGetCredentialsFromSpotify => 'Get credentials from developer.spotify.com'; @override String get dialogCancel => 'Cancel'; @@ -854,8 +814,7 @@ class AppLocalizationsHi extends AppLocalizations { String get dialogDiscardChanges => 'Discard Changes?'; @override - String get dialogUnsavedChanges => - 'You have unsaved changes. Do you want to discard them?'; + String get dialogUnsavedChanges => 'You have unsaved changes. Do you want to discard them?'; @override String get dialogDownloadFailed => 'Download Failed'; @@ -873,8 +832,7 @@ class AppLocalizationsHi extends AppLocalizations { String get dialogClearAll => 'Clear All'; @override - String get dialogClearAllDownloads => - 'Are you sure you want to clear all downloads?'; + String get dialogClearAllDownloads => 'Are you sure you want to clear all downloads?'; @override String get dialogRemoveFromDevice => 'Remove from device?'; @@ -883,8 +841,7 @@ class AppLocalizationsHi extends AppLocalizations { String get dialogRemoveExtension => 'Remove Extension'; @override - String get dialogRemoveExtensionMessage => - 'Are you sure you want to remove this extension? This cannot be undone.'; + String get dialogRemoveExtensionMessage => 'Are you sure you want to remove this extension? This cannot be undone.'; @override String get dialogUninstallExtension => 'Uninstall Extension?'; @@ -898,8 +855,7 @@ class AppLocalizationsHi extends AppLocalizations { String get dialogClearHistoryTitle => 'Clear History'; @override - String get dialogClearHistoryMessage => - 'Are you sure you want to clear all download history? This cannot be undone.'; + String get dialogClearHistoryMessage => 'Are you sure you want to clear all download history? This cannot be undone.'; @override String get dialogDeleteSelectedTitle => 'Delete Selected'; @@ -994,8 +950,7 @@ class AppLocalizationsHi extends AppLocalizations { String get snackbarProviderPrioritySaved => 'Provider priority saved'; @override - String get snackbarMetadataProviderSaved => - 'Metadata provider priority saved'; + String get snackbarMetadataProviderSaved => 'Metadata provider priority saved'; @override String snackbarExtensionInstalled(String extensionName) { @@ -1017,8 +972,7 @@ class AppLocalizationsHi extends AppLocalizations { String get errorRateLimited => 'Rate Limited'; @override - String get errorRateLimitedMessage => - 'Too many requests. Please wait a moment before searching again.'; + String get errorRateLimitedMessage => 'Too many requests. Please wait a moment before searching again.'; @override String errorFailedToLoad(String item) { @@ -1185,23 +1139,19 @@ class AppLocalizationsHi extends AppLocalizations { String get folderOrganizationByArtistAlbum => 'Artist/Album'; @override - String get folderOrganizationDescription => - 'Organize downloaded files into folders'; + String get folderOrganizationDescription => 'Organize downloaded files into folders'; @override String get folderOrganizationNoneSubtitle => 'All files in download folder'; @override - String get folderOrganizationByArtistSubtitle => - 'Separate folder for each artist'; + String get folderOrganizationByArtistSubtitle => 'Separate folder for each artist'; @override - String get folderOrganizationByAlbumSubtitle => - 'Separate folder for each album'; + String get folderOrganizationByAlbumSubtitle => 'Separate folder for each album'; @override - String get folderOrganizationByArtistAlbumSubtitle => - 'Nested folders for artist and album'; + String get folderOrganizationByArtistAlbumSubtitle => 'Nested folders for artist and album'; @override String get updateAvailable => 'Update Available'; @@ -1260,12 +1210,10 @@ class AppLocalizationsHi extends AppLocalizations { String get providerPriorityTitle => 'Provider Priority'; @override - String get providerPriorityDescription => - 'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.'; + String get providerPriorityDescription => 'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.'; @override - String get providerPriorityInfo => - 'If a track is not available on the first provider, the app will automatically try the next one.'; + String get providerPriorityInfo => 'If a track is not available on the first provider, the app will automatically try the next one.'; @override String get providerBuiltIn => 'Built-in'; @@ -1277,19 +1225,16 @@ class AppLocalizationsHi extends AppLocalizations { String get metadataProviderPriority => 'Metadata Provider Priority'; @override - String get metadataProviderPrioritySubtitle => - 'Order used when fetching track metadata'; + String get metadataProviderPrioritySubtitle => 'Order used when fetching track metadata'; @override String get metadataProviderPriorityTitle => 'Metadata Priority'; @override - String get metadataProviderPriorityDescription => - 'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.'; + String get metadataProviderPriorityDescription => 'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.'; @override - String get metadataProviderPriorityInfo => - 'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.'; + String get metadataProviderPriorityInfo => 'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.'; @override String get metadataNoRateLimits => 'No rate limits'; @@ -1361,19 +1306,16 @@ class AppLocalizationsHi extends AppLocalizations { String get logIssueSummary => 'Issue Summary'; @override - String get logIspBlockingDescription => - 'Your ISP may be blocking access to download services'; + String get logIspBlockingDescription => 'Your ISP may be blocking access to download services'; @override - String get logIspBlockingSuggestion => - 'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8'; + String get logIspBlockingSuggestion => 'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8'; @override String get logRateLimitedDescription => 'Too many requests to the service'; @override - String get logRateLimitedSuggestion => - 'Wait a few minutes before trying again'; + String get logRateLimitedSuggestion => 'Wait a few minutes before trying again'; @override String get logNetworkErrorDescription => 'Connection issues detected'; @@ -1382,12 +1324,10 @@ class AppLocalizationsHi extends AppLocalizations { String get logNetworkErrorSuggestion => 'Check your internet connection'; @override - String get logTrackNotFoundDescription => - 'Some tracks could not be found on download services'; + String get logTrackNotFoundDescription => 'Some tracks could not be found on download services'; @override - String get logTrackNotFoundSuggestion => - 'The track may not be available in lossless quality'; + String get logTrackNotFoundSuggestion => 'The track may not be available in lossless quality'; @override String logTotalErrors(int count) { @@ -1413,8 +1353,7 @@ class AppLocalizationsHi extends AppLocalizations { String get credentialsTitle => 'Spotify Credentials'; @override - String get credentialsDescription => - 'Enter your Client ID and Secret to use your own Spotify application quota.'; + String get credentialsDescription => 'Enter your Client ID and Secret to use your own Spotify application quota.'; @override String get credentialsClientId => 'Client ID'; @@ -1468,8 +1407,7 @@ class AppLocalizationsHi extends AppLocalizations { String get lyricsMode => 'Lyrics Mode'; @override - String get lyricsModeDescription => - 'Choose how lyrics are saved with your downloads'; + String get lyricsModeDescription => 'Choose how lyrics are saved with your downloads'; @override String get lyricsModeEmbed => 'Embed in file'; @@ -1481,8 +1419,7 @@ class AppLocalizationsHi extends AppLocalizations { String get lyricsModeExternal => 'External .lrc file'; @override - String get lyricsModeExternalSubtitle => - 'Separate .lrc file for players like Samsung Music'; + String get lyricsModeExternalSubtitle => 'Separate .lrc file for players like Samsung Music'; @override String get lyricsModeBoth => 'Both'; @@ -1642,8 +1579,7 @@ class AppLocalizationsHi extends AppLocalizations { String get trackDeleteConfirmTitle => 'Remove from device?'; @override - String get trackDeleteConfirmMessage => - 'This will permanently delete the downloaded file and remove it from your history.'; + String get trackDeleteConfirmMessage => 'This will permanently delete the downloaded file and remove it from your history.'; @override String trackCannotOpen(String message) { @@ -1795,15 +1731,13 @@ class AppLocalizationsHi extends AppLocalizations { String get extensionsNoExtensions => 'No extensions installed'; @override - String get extensionsNoExtensionsSubtitle => - 'Install .spotiflac-ext files to add new providers'; + String get extensionsNoExtensionsSubtitle => 'Install .spotiflac-ext files to add new providers'; @override String get extensionsInstallButton => 'Install Extension'; @override - String get extensionsInfoTip => - 'Extensions can add new metadata and download providers. Only install extensions from trusted sources.'; + String get extensionsInfoTip => 'Extensions can add new metadata and download providers. Only install extensions from trusted sources.'; @override String get extensionsInstalledSuccess => 'Extension installed successfully'; @@ -1815,19 +1749,16 @@ class AppLocalizationsHi extends AppLocalizations { String get extensionsDownloadPrioritySubtitle => 'Set download service order'; @override - String get extensionsNoDownloadProvider => - 'No extensions with download provider'; + String get extensionsNoDownloadProvider => 'No extensions with download provider'; @override String get extensionsMetadataPriority => 'Metadata Priority'; @override - String get extensionsMetadataPrioritySubtitle => - 'Set search & metadata source order'; + String get extensionsMetadataPrioritySubtitle => 'Set search & metadata source order'; @override - String get extensionsNoMetadataProvider => - 'No extensions with metadata provider'; + String get extensionsNoMetadataProvider => 'No extensions with metadata provider'; @override String get extensionsSearchProvider => 'Search Provider'; @@ -1836,8 +1767,7 @@ class AppLocalizationsHi extends AppLocalizations { String get extensionsNoCustomSearch => 'No extensions with custom search'; @override - String get extensionsSearchProviderDescription => - 'Choose which service to use for searching tracks'; + String get extensionsSearchProviderDescription => 'Choose which service to use for searching tracks'; @override String get extensionsCustomSearch => 'Custom search'; @@ -1879,8 +1809,7 @@ class AppLocalizationsHi extends AppLocalizations { String get enableLossyOptionSubtitleOn => 'Lossy quality option is available'; @override - String get enableLossyOptionSubtitleOff => - 'Downloads FLAC then converts to lossy format'; + String get enableLossyOptionSubtitleOff => 'Downloads FLAC then converts to lossy format'; @override String get lossyFormat => 'Lossy Format'; @@ -1892,12 +1821,10 @@ class AppLocalizationsHi extends AppLocalizations { String get lossyFormatMp3Subtitle => '320kbps, best compatibility'; @override - String get lossyFormatOpusSubtitle => - '128kbps, better quality at smaller size'; + String get lossyFormatOpusSubtitle => '128kbps, better quality at smaller size'; @override - String get qualityNote => - 'Actual quality depends on track availability from the service'; + String get qualityNote => 'Actual quality depends on track availability from the service'; @override String get downloadAskBeforeDownload => 'Ask Before Download'; @@ -1987,15 +1914,13 @@ class AppLocalizationsHi extends AppLocalizations { String get queueClearAll => 'Clear All'; @override - String get queueClearAllMessage => - 'Are you sure you want to clear all downloads?'; + String get queueClearAllMessage => 'Are you sure you want to clear all downloads?'; @override String get queueExportFailed => 'Export'; @override - String get queueExportFailedSuccess => - 'Failed downloads exported to TXT file'; + String get queueExportFailedSuccess => 'Failed downloads exported to TXT file'; @override String get queueExportFailedClear => 'Clear Failed'; @@ -2007,8 +1932,7 @@ class AppLocalizationsHi extends AppLocalizations { String get settingsAutoExportFailed => 'Auto-export failed downloads'; @override - String get settingsAutoExportFailedSubtitle => - 'Save failed downloads to TXT file automatically'; + String get settingsAutoExportFailedSubtitle => 'Save failed downloads to TXT file automatically'; @override String get settingsDownloadNetwork => 'Download Network'; @@ -2020,8 +1944,55 @@ class AppLocalizationsHi extends AppLocalizations { String get settingsDownloadNetworkWifiOnly => 'WiFi Only'; @override - String get settingsDownloadNetworkSubtitle => - 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + String get settingsDownloadNetworkSubtitle => 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + + @override + String get settingsCloudSave => 'Cloud Save'; + + @override + String get settingsCloudSaveSubtitle => 'Auto-upload to NAS or cloud storage'; + + @override + String get cloudSettingsTitle => 'Cloud Save'; + + @override + String get cloudSettingsSectionGeneral => 'General'; + + @override + String get cloudSettingsEnable => 'Enable Cloud Upload'; + + @override + String get cloudSettingsEnableSubtitle => 'Automatically upload files after download completes'; + + @override + String get cloudSettingsSectionProvider => 'Cloud Provider'; + + @override + String get cloudSettingsProvider => 'Provider'; + + @override + String get cloudSettingsProviderDescription => 'Select where to upload your downloaded files'; + + @override + String get cloudSettingsSectionServer => 'Server Configuration'; + + @override + String get cloudSettingsServerUrl => 'Server URL'; + + @override + String get cloudSettingsUsername => 'Username'; + + @override + String get cloudSettingsPassword => 'Password'; + + @override + String get cloudSettingsRemotePath => 'Remote Folder Path'; + + @override + String get cloudSettingsTestConnection => 'Test Connection'; + + @override + String get cloudSettingsInfo => 'Downloaded files will be automatically uploaded to your cloud storage after download completes. Original files are kept on your device.'; @override String get queueEmpty => 'No downloads in queue'; @@ -2057,8 +2028,7 @@ class AppLocalizationsHi extends AppLocalizations { String get albumFolderArtistYearAlbum => 'Artist / [Year] Album'; @override - String get albumFolderArtistYearAlbumSubtitle => - 'Albums/Artist Name/[2005] Album Name/'; + String get albumFolderArtistYearAlbumSubtitle => 'Albums/Artist Name/[2005] Album Name/'; @override String get albumFolderAlbumOnly => 'Album Only'; @@ -2076,8 +2046,7 @@ class AppLocalizationsHi extends AppLocalizations { String get albumFolderArtistAlbumSingles => 'Artist / Album + Singles'; @override - String get albumFolderArtistAlbumSinglesSubtitle => - 'Artist/Album/ and Artist/Singles/'; + String get albumFolderArtistAlbumSinglesSubtitle => 'Artist/Album/ and Artist/Singles/'; @override String get downloadedAlbumDeleteSelected => 'Delete Selected'; @@ -2187,8 +2156,7 @@ class AppLocalizationsHi extends AppLocalizations { String get discographySelectAlbums => 'Select Albums...'; @override - String get discographySelectAlbumsSubtitle => - 'Choose specific albums or singles'; + String get discographySelectAlbumsSubtitle => 'Choose specific albums or singles'; @override String get discographyFetchingTracks => 'Fetching tracks...'; @@ -2235,14 +2203,11 @@ class AppLocalizationsHi extends AppLocalizations { String get allFilesAccessDisabledSubtitle => 'Limited to media folders only'; @override - String get allFilesAccessDescription => - 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; + String get allFilesAccessDescription => 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; @override - String get allFilesAccessDeniedMessage => - 'Permission was denied. Please enable \'All files access\' manually in system settings.'; + String get allFilesAccessDeniedMessage => 'Permission was denied. Please enable \'All files access\' manually in system settings.'; @override - String get allFilesAccessDisabledMessage => - 'All Files Access disabled. The app will use limited storage access.'; + String get allFilesAccessDisabledMessage => 'All Files Access disabled. The app will use limited storage access.'; } diff --git a/lib/l10n/app_localizations_id.dart b/lib/l10n/app_localizations_id.dart index 07c320b4..ffd3490d 100644 --- a/lib/l10n/app_localizations_id.dart +++ b/lib/l10n/app_localizations_id.dart @@ -12,8 +12,7 @@ class AppLocalizationsId extends AppLocalizations { String get appName => 'SpotiFLAC'; @override - String get appDescription => - 'Unduh lagu Spotify dalam kualitas lossless dari Tidal, Qobuz, dan Amazon Music.'; + String get appDescription => 'Unduh lagu Spotify dalam kualitas lossless dari Tidal, Qobuz, dan Amazon Music.'; @override String get navHome => 'Beranda'; @@ -93,22 +92,19 @@ class AppLocalizationsId extends AppLocalizations { String get historyNoDownloads => 'Tidak ada riwayat unduhan'; @override - String get historyNoDownloadsSubtitle => - 'Lagu yang diunduh akan muncul di sini'; + String get historyNoDownloadsSubtitle => 'Lagu yang diunduh akan muncul di sini'; @override String get historyNoAlbums => 'Tidak ada unduhan album'; @override - String get historyNoAlbumsSubtitle => - 'Unduh beberapa lagu dari album untuk melihatnya di sini'; + String get historyNoAlbumsSubtitle => 'Unduh beberapa lagu dari album untuk melihatnya di sini'; @override String get historyNoSingles => 'Tidak ada unduhan single'; @override - String get historyNoSinglesSubtitle => - 'Unduhan lagu satuan akan muncul di sini'; + String get historyNoSinglesSubtitle => 'Unduhan lagu satuan akan muncul di sini'; @override String get historySearchHint => 'Search history...'; @@ -147,8 +143,7 @@ class AppLocalizationsId extends AppLocalizations { String get downloadDefaultService => 'Layanan Default'; @override - String get downloadDefaultServiceSubtitle => - 'Layanan yang digunakan untuk unduhan'; + String get downloadDefaultServiceSubtitle => 'Layanan yang digunakan untuk unduhan'; @override String get downloadDefaultQuality => 'Kualitas Default'; @@ -157,8 +152,7 @@ class AppLocalizationsId extends AppLocalizations { String get downloadAskQuality => 'Tanya Kualitas Sebelum Unduh'; @override - String get downloadAskQualitySubtitle => - 'Tampilkan pemilih kualitas untuk setiap unduhan'; + String get downloadAskQualitySubtitle => 'Tampilkan pemilih kualitas untuk setiap unduhan'; @override String get downloadFilenameFormat => 'Format Nama File'; @@ -170,8 +164,7 @@ class AppLocalizationsId extends AppLocalizations { String get downloadSeparateSingles => 'Pisahkan Single'; @override - String get downloadSeparateSinglesSubtitle => - 'Letakkan lagu satuan di folder terpisah'; + String get downloadSeparateSinglesSubtitle => 'Letakkan lagu satuan di folder terpisah'; @override String get qualityBest => 'Terbaik'; @@ -204,8 +197,7 @@ class AppLocalizationsId extends AppLocalizations { String get appearanceDynamicColor => 'Warna Dinamis'; @override - String get appearanceDynamicColorSubtitle => - 'Gunakan warna dari wallpaper Anda'; + String get appearanceDynamicColorSubtitle => 'Gunakan warna dari wallpaper Anda'; @override String get appearanceAccentColor => 'Warna Aksen'; @@ -229,8 +221,7 @@ class AppLocalizationsId extends AppLocalizations { String get optionsPrimaryProvider => 'Provider Utama'; @override - String get optionsPrimaryProviderSubtitle => - 'Layanan yang digunakan saat mencari berdasarkan nama lagu.'; + String get optionsPrimaryProviderSubtitle => 'Layanan yang digunakan saat mencari berdasarkan nama lagu.'; @override String optionsUsingExtension(String extensionName) { @@ -238,40 +229,34 @@ class AppLocalizationsId extends AppLocalizations { } @override - String get optionsSwitchBack => - 'Ketuk Deezer atau Spotify untuk beralih dari ekstensi'; + String get optionsSwitchBack => 'Ketuk Deezer atau Spotify untuk beralih dari ekstensi'; @override String get optionsAutoFallback => 'Auto Fallback'; @override - String get optionsAutoFallbackSubtitle => - 'Coba layanan lain jika unduhan gagal'; + String get optionsAutoFallbackSubtitle => 'Coba layanan lain jika unduhan gagal'; @override String get optionsUseExtensionProviders => 'Gunakan Provider Ekstensi'; @override - String get optionsUseExtensionProvidersOn => - 'Ekstensi akan dicoba terlebih dahulu'; + String get optionsUseExtensionProvidersOn => 'Ekstensi akan dicoba terlebih dahulu'; @override - String get optionsUseExtensionProvidersOff => - 'Hanya menggunakan provider bawaan'; + String get optionsUseExtensionProvidersOff => 'Hanya menggunakan provider bawaan'; @override String get optionsEmbedLyrics => 'Sematkan Lirik'; @override - String get optionsEmbedLyricsSubtitle => - 'Sematkan lirik sinkron ke file FLAC'; + String get optionsEmbedLyricsSubtitle => 'Sematkan lirik sinkron ke file FLAC'; @override String get optionsMaxQualityCover => 'Cover Kualitas Maksimal'; @override - String get optionsMaxQualityCoverSubtitle => - 'Unduh cover art resolusi tertinggi'; + String get optionsMaxQualityCoverSubtitle => 'Unduh cover art resolusi tertinggi'; @override String get optionsConcurrentDownloads => 'Unduhan Bersamaan'; @@ -285,8 +270,7 @@ class AppLocalizationsId extends AppLocalizations { } @override - String get optionsConcurrentWarning => - 'Unduhan paralel dapat memicu pembatasan rate'; + String get optionsConcurrentWarning => 'Unduhan paralel dapat memicu pembatasan rate'; @override String get optionsExtensionStore => 'Toko Ekstensi'; @@ -310,8 +294,7 @@ class AppLocalizationsId extends AppLocalizations { String get optionsUpdateChannelPreview => 'Dapatkan rilis preview'; @override - String get optionsUpdateChannelWarning => - 'Preview mungkin mengandung bug atau fitur belum lengkap'; + String get optionsUpdateChannelWarning => 'Preview mungkin mengandung bug atau fitur belum lengkap'; @override String get optionsClearHistory => 'Hapus Riwayat Unduhan'; @@ -337,12 +320,10 @@ class AppLocalizationsId extends AppLocalizations { } @override - String get optionsSpotifyCredentialsRequired => - 'Diperlukan - ketuk untuk mengatur'; + String get optionsSpotifyCredentialsRequired => 'Diperlukan - ketuk untuk mengatur'; @override - String get optionsSpotifyWarning => - 'Spotify memerlukan kredensial API Anda sendiri. Dapatkan gratis dari developer.spotify.com'; + String get optionsSpotifyWarning => 'Spotify memerlukan kredensial API Anda sendiri. Dapatkan gratis dari developer.spotify.com'; @override String get extensionsTitle => 'Ekstensi'; @@ -406,8 +387,7 @@ class AppLocalizationsId extends AppLocalizations { String get aboutOriginalCreator => 'Pembuat SpotiFLAC asli'; @override - String get aboutLogoArtist => - 'Seniman berbakat yang membuat logo aplikasi kita yang indah!'; + String get aboutLogoArtist => 'Seniman berbakat yang membuat logo aplikasi kita yang indah!'; @override String get aboutTranslators => 'Translators'; @@ -434,8 +414,7 @@ class AppLocalizationsId extends AppLocalizations { String get aboutFeatureRequest => 'Permintaan fitur'; @override - String get aboutFeatureRequestSubtitle => - 'Sarankan fitur baru untuk aplikasi'; + String get aboutFeatureRequestSubtitle => 'Sarankan fitur baru untuk aplikasi'; @override String get aboutTelegramChannel => 'Telegram Channel'; @@ -468,34 +447,28 @@ class AppLocalizationsId extends AppLocalizations { String get aboutVersion => 'Versi'; @override - String get aboutBinimumDesc => - 'Pembuat QQDL & HiFi API. Tanpa API ini, unduhan Tidal tidak akan ada!'; + String get aboutBinimumDesc => 'Pembuat QQDL & HiFi API. Tanpa API ini, unduhan Tidal tidak akan ada!'; @override - String get aboutSachinsenalDesc => - 'Pembuat proyek HiFi asli. Fondasi dari integrasi Tidal!'; + String get aboutSachinsenalDesc => 'Pembuat proyek HiFi asli. Fondasi dari integrasi Tidal!'; @override - String get aboutSjdonadoDesc => - 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; + String get aboutSjdonadoDesc => 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; @override String get aboutDoubleDouble => 'DoubleDouble'; @override - String get aboutDoubleDoubleDesc => - 'API luar biasa untuk unduhan Amazon Music. Terima kasih sudah membuatnya gratis!'; + String get aboutDoubleDoubleDesc => 'API luar biasa untuk unduhan Amazon Music. Terima kasih sudah membuatnya gratis!'; @override String get aboutDabMusic => 'DAB Music'; @override - String get aboutDabMusicDesc => - 'API streaming Qobuz terbaik. Unduhan Hi-Res tidak akan mungkin tanpa ini!'; + String get aboutDabMusicDesc => 'API streaming Qobuz terbaik. Unduhan Hi-Res tidak akan mungkin tanpa ini!'; @override - String get aboutAppDescription => - 'Unduh lagu Spotify dalam kualitas lossless dari Tidal, Qobuz, dan Amazon Music.'; + String get aboutAppDescription => 'Unduh lagu Spotify dalam kualitas lossless dari Tidal, Qobuz, dan Amazon Music.'; @override String get albumTitle => 'Album'; @@ -600,8 +573,7 @@ class AppLocalizationsId extends AppLocalizations { String get setupStoragePermission => 'Izin Penyimpanan'; @override - String get setupStoragePermissionSubtitle => - 'Diperlukan untuk menyimpan file unduhan'; + String get setupStoragePermissionSubtitle => 'Diperlukan untuk menyimpan file unduhan'; @override String get setupStoragePermissionGranted => 'Izin diberikan'; @@ -628,19 +600,16 @@ class AppLocalizationsId extends AppLocalizations { String get setupStorageAccessRequired => 'Akses Penyimpanan Diperlukan'; @override - String get setupStorageAccessMessage => - 'SpotiFLAC membutuhkan izin \"Akses semua file\" untuk menyimpan file musik ke folder pilihan Anda.'; + String get setupStorageAccessMessage => 'SpotiFLAC membutuhkan izin \"Akses semua file\" untuk menyimpan file musik ke folder pilihan Anda.'; @override - String get setupStorageAccessMessageAndroid11 => - 'Android 11+ memerlukan izin \"Akses semua file\" untuk menyimpan file ke folder unduhan pilihan Anda.'; + String get setupStorageAccessMessageAndroid11 => 'Android 11+ memerlukan izin \"Akses semua file\" untuk menyimpan file ke folder unduhan pilihan Anda.'; @override String get setupOpenSettings => 'Buka Pengaturan'; @override - String get setupPermissionDeniedMessage => - 'Izin ditolak. Harap berikan semua izin untuk melanjutkan.'; + String get setupPermissionDeniedMessage => 'Izin ditolak. Harap berikan semua izin untuk melanjutkan.'; @override String setupPermissionRequired(String permissionType) { @@ -659,8 +628,7 @@ class AppLocalizationsId extends AppLocalizations { String get setupUseDefaultFolder => 'Gunakan Folder Default?'; @override - String get setupNoFolderSelected => - 'Tidak ada folder dipilih. Apakah Anda ingin menggunakan folder Musik default?'; + String get setupNoFolderSelected => 'Tidak ada folder dipilih. Apakah Anda ingin menggunakan folder Musik default?'; @override String get setupUseDefault => 'Gunakan Default'; @@ -669,15 +637,13 @@ class AppLocalizationsId extends AppLocalizations { String get setupDownloadLocationTitle => 'Lokasi Unduhan'; @override - String get setupDownloadLocationIosMessage => - 'Di iOS, unduhan disimpan ke folder Documents aplikasi. Anda dapat mengaksesnya melalui aplikasi Files.'; + String get setupDownloadLocationIosMessage => 'Di iOS, unduhan disimpan ke folder Documents aplikasi. Anda dapat mengaksesnya melalui aplikasi Files.'; @override String get setupAppDocumentsFolder => 'Folder Documents Aplikasi'; @override - String get setupAppDocumentsFolderSubtitle => - 'Direkomendasikan - dapat diakses via aplikasi Files'; + String get setupAppDocumentsFolderSubtitle => 'Direkomendasikan - dapat diakses via aplikasi Files'; @override String get setupChooseFromFiles => 'Pilih dari Files'; @@ -686,12 +652,10 @@ class AppLocalizationsId extends AppLocalizations { String get setupChooseFromFilesSubtitle => 'Pilih lokasi iCloud atau lainnya'; @override - String get setupIosEmptyFolderWarning => - 'Batasan iOS: Folder kosong tidak dapat dipilih. Pilih folder dengan minimal satu file.'; + String get setupIosEmptyFolderWarning => 'Batasan iOS: Folder kosong tidak dapat dipilih. Pilih folder dengan minimal satu file.'; @override - String get setupIcloudNotSupported => - 'iCloud Drive is not supported. Please use the app Documents folder.'; + String get setupIcloudNotSupported => 'iCloud Drive is not supported. Please use the app Documents folder.'; @override String get setupDownloadInFlac => 'Unduh lagu Spotify dalam format FLAC'; @@ -718,8 +682,7 @@ class AppLocalizationsId extends AppLocalizations { String get setupStorageRequired => 'Izin Penyimpanan Diperlukan'; @override - String get setupStorageDescription => - 'SpotiFLAC membutuhkan izin penyimpanan untuk menyimpan file musik yang diunduh.'; + String get setupStorageDescription => 'SpotiFLAC membutuhkan izin penyimpanan untuk menyimpan file musik yang diunduh.'; @override String get setupNotificationGranted => 'Izin Notifikasi Diberikan!'; @@ -728,8 +691,7 @@ class AppLocalizationsId extends AppLocalizations { String get setupNotificationEnable => 'Aktifkan Notifikasi'; @override - String get setupNotificationDescription => - 'Dapatkan pemberitahuan saat unduhan selesai atau membutuhkan perhatian.'; + String get setupNotificationDescription => 'Dapatkan pemberitahuan saat unduhan selesai atau membutuhkan perhatian.'; @override String get setupFolderSelected => 'Folder Unduhan Dipilih!'; @@ -738,8 +700,7 @@ class AppLocalizationsId extends AppLocalizations { String get setupFolderChoose => 'Pilih Folder Unduhan'; @override - String get setupFolderDescription => - 'Pilih folder tempat musik yang diunduh akan disimpan.'; + String get setupFolderDescription => 'Pilih folder tempat musik yang diunduh akan disimpan.'; @override String get setupChangeFolder => 'Ubah Folder'; @@ -751,8 +712,7 @@ class AppLocalizationsId extends AppLocalizations { String get setupSpotifyApiOptional => 'Spotify API (Opsional)'; @override - String get setupSpotifyApiDescription => - 'Tambahkan kredensial Spotify API untuk hasil pencarian lebih baik dan akses ke konten eksklusif Spotify.'; + String get setupSpotifyApiDescription => 'Tambahkan kredensial Spotify API untuk hasil pencarian lebih baik dan akses ke konten eksklusif Spotify.'; @override String get setupUseSpotifyApi => 'Gunakan Spotify API'; @@ -770,23 +730,19 @@ class AppLocalizationsId extends AppLocalizations { String get setupEnterClientSecret => 'Masukkan Spotify Client Secret'; @override - String get setupGetFreeCredentials => - 'Dapatkan kredensial API gratis dari Spotify Developer Dashboard.'; + String get setupGetFreeCredentials => 'Dapatkan kredensial API gratis dari Spotify Developer Dashboard.'; @override String get setupEnableNotifications => 'Aktifkan Notifikasi'; @override - String get setupProceedToNextStep => - 'Anda dapat melanjutkan ke langkah berikutnya.'; + String get setupProceedToNextStep => 'Anda dapat melanjutkan ke langkah berikutnya.'; @override - String get setupNotificationProgressDescription => - 'Anda akan menerima notifikasi progres unduhan.'; + String get setupNotificationProgressDescription => 'Anda akan menerima notifikasi progres unduhan.'; @override - String get setupNotificationBackgroundDescription => - 'Dapatkan notifikasi tentang progres dan penyelesaian unduhan. Ini membantu Anda melacak unduhan saat aplikasi di latar belakang.'; + String get setupNotificationBackgroundDescription => 'Dapatkan notifikasi tentang progres dan penyelesaian unduhan. Ini membantu Anda melacak unduhan saat aplikasi di latar belakang.'; @override String get setupSkipForNow => 'Lewati untuk sekarang'; @@ -804,12 +760,10 @@ class AppLocalizationsId extends AppLocalizations { String get setupSkipAndStart => 'Lewati & Mulai'; @override - String get setupAllowAccessToManageFiles => - 'Harap aktifkan \"Izinkan akses untuk mengelola semua file\" di layar berikutnya.'; + String get setupAllowAccessToManageFiles => 'Harap aktifkan \"Izinkan akses untuk mengelola semua file\" di layar berikutnya.'; @override - String get setupGetCredentialsFromSpotify => - 'Dapatkan kredensial dari developer.spotify.com'; + String get setupGetCredentialsFromSpotify => 'Dapatkan kredensial dari developer.spotify.com'; @override String get dialogCancel => 'Batal'; @@ -860,8 +814,7 @@ class AppLocalizationsId extends AppLocalizations { String get dialogDiscardChanges => 'Buang Perubahan?'; @override - String get dialogUnsavedChanges => - 'Anda memiliki perubahan yang belum disimpan. Apakah Anda ingin membuangnya?'; + String get dialogUnsavedChanges => 'Anda memiliki perubahan yang belum disimpan. Apakah Anda ingin membuangnya?'; @override String get dialogDownloadFailed => 'Unduhan Gagal'; @@ -879,8 +832,7 @@ class AppLocalizationsId extends AppLocalizations { String get dialogClearAll => 'Hapus Semua'; @override - String get dialogClearAllDownloads => - 'Apakah Anda yakin ingin menghapus semua unduhan?'; + String get dialogClearAllDownloads => 'Apakah Anda yakin ingin menghapus semua unduhan?'; @override String get dialogRemoveFromDevice => 'Hapus dari perangkat?'; @@ -889,8 +841,7 @@ class AppLocalizationsId extends AppLocalizations { String get dialogRemoveExtension => 'Hapus Ekstensi'; @override - String get dialogRemoveExtensionMessage => - 'Apakah Anda yakin ingin menghapus ekstensi ini? Tindakan ini tidak dapat dibatalkan.'; + String get dialogRemoveExtensionMessage => 'Apakah Anda yakin ingin menghapus ekstensi ini? Tindakan ini tidak dapat dibatalkan.'; @override String get dialogUninstallExtension => 'Copot Ekstensi?'; @@ -904,8 +855,7 @@ class AppLocalizationsId extends AppLocalizations { String get dialogClearHistoryTitle => 'Hapus Riwayat'; @override - String get dialogClearHistoryMessage => - 'Apakah Anda yakin ingin menghapus semua riwayat unduhan? Ini tidak dapat dibatalkan.'; + String get dialogClearHistoryMessage => 'Apakah Anda yakin ingin menghapus semua riwayat unduhan? Ini tidak dapat dibatalkan.'; @override String get dialogDeleteSelectedTitle => 'Hapus yang Dipilih'; @@ -1000,8 +950,7 @@ class AppLocalizationsId extends AppLocalizations { String get snackbarProviderPrioritySaved => 'Prioritas provider disimpan'; @override - String get snackbarMetadataProviderSaved => - 'Prioritas provider metadata disimpan'; + String get snackbarMetadataProviderSaved => 'Prioritas provider metadata disimpan'; @override String snackbarExtensionInstalled(String extensionName) { @@ -1023,8 +972,7 @@ class AppLocalizationsId extends AppLocalizations { String get errorRateLimited => 'Dibatasi'; @override - String get errorRateLimitedMessage => - 'Terlalu banyak permintaan. Harap tunggu sebentar sebelum mencari lagi.'; + String get errorRateLimitedMessage => 'Terlalu banyak permintaan. Harap tunggu sebentar sebelum mencari lagi.'; @override String errorFailedToLoad(String item) { @@ -1191,23 +1139,19 @@ class AppLocalizationsId extends AppLocalizations { String get folderOrganizationByArtistAlbum => 'Berdasarkan Artis & Album'; @override - String get folderOrganizationDescription => - 'Atur file yang diunduh ke dalam folder'; + String get folderOrganizationDescription => 'Atur file yang diunduh ke dalam folder'; @override String get folderOrganizationNoneSubtitle => 'Semua file di folder unduhan'; @override - String get folderOrganizationByArtistSubtitle => - 'Folder terpisah untuk setiap artis'; + String get folderOrganizationByArtistSubtitle => 'Folder terpisah untuk setiap artis'; @override - String get folderOrganizationByAlbumSubtitle => - 'Folder terpisah untuk setiap album'; + String get folderOrganizationByAlbumSubtitle => 'Folder terpisah untuk setiap album'; @override - String get folderOrganizationByArtistAlbumSubtitle => - 'Folder bersarang untuk artis dan album'; + String get folderOrganizationByArtistAlbumSubtitle => 'Folder bersarang untuk artis dan album'; @override String get updateAvailable => 'Pembaruan Tersedia'; @@ -1260,19 +1204,16 @@ class AppLocalizationsId extends AppLocalizations { String get providerPriority => 'Prioritas Provider'; @override - String get providerPrioritySubtitle => - 'Seret untuk mengatur ulang provider unduhan'; + String get providerPrioritySubtitle => 'Seret untuk mengatur ulang provider unduhan'; @override String get providerPriorityTitle => 'Prioritas Provider'; @override - String get providerPriorityDescription => - 'Seret untuk mengatur ulang urutan provider unduhan. Aplikasi akan mencoba provider dari atas ke bawah saat mengunduh lagu.'; + String get providerPriorityDescription => 'Seret untuk mengatur ulang urutan provider unduhan. Aplikasi akan mencoba provider dari atas ke bawah saat mengunduh lagu.'; @override - String get providerPriorityInfo => - 'Jika lagu tidak tersedia di provider pertama, aplikasi akan otomatis mencoba yang berikutnya.'; + String get providerPriorityInfo => 'Jika lagu tidak tersedia di provider pertama, aplikasi akan otomatis mencoba yang berikutnya.'; @override String get providerBuiltIn => 'Bawaan'; @@ -1284,19 +1225,16 @@ class AppLocalizationsId extends AppLocalizations { String get metadataProviderPriority => 'Prioritas Provider Metadata'; @override - String get metadataProviderPrioritySubtitle => - 'Urutan yang digunakan saat mengambil metadata lagu'; + String get metadataProviderPrioritySubtitle => 'Urutan yang digunakan saat mengambil metadata lagu'; @override String get metadataProviderPriorityTitle => 'Prioritas Metadata'; @override - String get metadataProviderPriorityDescription => - 'Seret untuk mengatur ulang urutan provider metadata. Aplikasi akan mencoba provider dari atas ke bawah saat mencari lagu dan mengambil metadata.'; + String get metadataProviderPriorityDescription => 'Seret untuk mengatur ulang urutan provider metadata. Aplikasi akan mencoba provider dari atas ke bawah saat mencari lagu dan mengambil metadata.'; @override - String get metadataProviderPriorityInfo => - 'Deezer tidak memiliki batas rate dan direkomendasikan sebagai utama. Spotify mungkin membatasi rate setelah banyak permintaan.'; + String get metadataProviderPriorityInfo => 'Deezer tidak memiliki batas rate dan direkomendasikan sebagai utama. Spotify mungkin membatasi rate setelah banyak permintaan.'; @override String get metadataNoRateLimits => 'Tidak ada batas rate'; @@ -1341,8 +1279,7 @@ class AppLocalizationsId extends AppLocalizations { String get logClearLogsTitle => 'Hapus Log'; @override - String get logClearLogsMessage => - 'Apakah Anda yakin ingin menghapus semua log?'; + String get logClearLogsMessage => 'Apakah Anda yakin ingin menghapus semua log?'; @override String get logIspBlocking => 'PEMBLOKIRAN ISP TERDETEKSI'; @@ -1363,27 +1300,22 @@ class AppLocalizationsId extends AppLocalizations { String get logNoLogsYet => 'Belum ada log'; @override - String get logNoLogsYetSubtitle => - 'Log akan muncul di sini saat Anda menggunakan aplikasi'; + String get logNoLogsYetSubtitle => 'Log akan muncul di sini saat Anda menggunakan aplikasi'; @override String get logIssueSummary => 'Ringkasan Masalah'; @override - String get logIspBlockingDescription => - 'ISP Anda mungkin memblokir akses ke layanan unduhan'; + String get logIspBlockingDescription => 'ISP Anda mungkin memblokir akses ke layanan unduhan'; @override - String get logIspBlockingSuggestion => - 'Coba gunakan VPN atau ubah DNS ke 1.1.1.1 atau 8.8.8.8'; + String get logIspBlockingSuggestion => 'Coba gunakan VPN atau ubah DNS ke 1.1.1.1 atau 8.8.8.8'; @override - String get logRateLimitedDescription => - 'Terlalu banyak permintaan ke layanan'; + String get logRateLimitedDescription => 'Terlalu banyak permintaan ke layanan'; @override - String get logRateLimitedSuggestion => - 'Tunggu beberapa menit sebelum mencoba lagi'; + String get logRateLimitedSuggestion => 'Tunggu beberapa menit sebelum mencoba lagi'; @override String get logNetworkErrorDescription => 'Masalah koneksi terdeteksi'; @@ -1392,12 +1324,10 @@ class AppLocalizationsId extends AppLocalizations { String get logNetworkErrorSuggestion => 'Periksa koneksi internet Anda'; @override - String get logTrackNotFoundDescription => - 'Beberapa lagu tidak dapat ditemukan di layanan unduhan'; + String get logTrackNotFoundDescription => 'Beberapa lagu tidak dapat ditemukan di layanan unduhan'; @override - String get logTrackNotFoundSuggestion => - 'Lagu mungkin tidak tersedia dalam kualitas lossless'; + String get logTrackNotFoundSuggestion => 'Lagu mungkin tidak tersedia dalam kualitas lossless'; @override String logTotalErrors(int count) { @@ -1423,8 +1353,7 @@ class AppLocalizationsId extends AppLocalizations { String get credentialsTitle => 'Kredensial Spotify'; @override - String get credentialsDescription => - 'Masukkan Client ID dan Secret Anda untuk menggunakan kuota aplikasi Spotify Anda sendiri.'; + String get credentialsDescription => 'Masukkan Client ID dan Secret Anda untuk menggunakan kuota aplikasi Spotify Anda sendiri.'; @override String get credentialsClientId => 'Client ID'; @@ -1478,8 +1407,7 @@ class AppLocalizationsId extends AppLocalizations { String get lyricsMode => 'Lyrics Mode'; @override - String get lyricsModeDescription => - 'Choose how lyrics are saved with your downloads'; + String get lyricsModeDescription => 'Choose how lyrics are saved with your downloads'; @override String get lyricsModeEmbed => 'Embed in file'; @@ -1491,8 +1419,7 @@ class AppLocalizationsId extends AppLocalizations { String get lyricsModeExternal => 'External .lrc file'; @override - String get lyricsModeExternalSubtitle => - 'Separate .lrc file for players like Samsung Music'; + String get lyricsModeExternalSubtitle => 'Separate .lrc file for players like Samsung Music'; @override String get lyricsModeBoth => 'Both'; @@ -1652,8 +1579,7 @@ class AppLocalizationsId extends AppLocalizations { String get trackDeleteConfirmTitle => 'Hapus dari perangkat?'; @override - String get trackDeleteConfirmMessage => - 'Ini akan menghapus file unduhan secara permanen dan menghapusnya dari riwayat Anda.'; + String get trackDeleteConfirmMessage => 'Ini akan menghapus file unduhan secara permanen dan menghapusnya dari riwayat Anda.'; @override String trackCannotOpen(String message) { @@ -1805,15 +1731,13 @@ class AppLocalizationsId extends AppLocalizations { String get extensionsNoExtensions => 'Tidak ada ekstensi terpasang'; @override - String get extensionsNoExtensionsSubtitle => - 'Pasang file .spotiflac-ext untuk menambahkan provider baru'; + String get extensionsNoExtensionsSubtitle => 'Pasang file .spotiflac-ext untuk menambahkan provider baru'; @override String get extensionsInstallButton => 'Pasang Ekstensi'; @override - String get extensionsInfoTip => - 'Ekstensi dapat menambahkan provider metadata dan unduhan baru. Hanya pasang ekstensi dari sumber terpercaya.'; + String get extensionsInfoTip => 'Ekstensi dapat menambahkan provider metadata dan unduhan baru. Hanya pasang ekstensi dari sumber terpercaya.'; @override String get extensionsInstalledSuccess => 'Ekstensi berhasil dipasang'; @@ -1822,34 +1746,28 @@ class AppLocalizationsId extends AppLocalizations { String get extensionsDownloadPriority => 'Prioritas Unduhan'; @override - String get extensionsDownloadPrioritySubtitle => - 'Atur urutan layanan unduhan'; + String get extensionsDownloadPrioritySubtitle => 'Atur urutan layanan unduhan'; @override - String get extensionsNoDownloadProvider => - 'Tidak ada ekstensi dengan provider unduhan'; + String get extensionsNoDownloadProvider => 'Tidak ada ekstensi dengan provider unduhan'; @override String get extensionsMetadataPriority => 'Prioritas Metadata'; @override - String get extensionsMetadataPrioritySubtitle => - 'Atur urutan sumber pencarian & metadata'; + String get extensionsMetadataPrioritySubtitle => 'Atur urutan sumber pencarian & metadata'; @override - String get extensionsNoMetadataProvider => - 'Tidak ada ekstensi dengan provider metadata'; + String get extensionsNoMetadataProvider => 'Tidak ada ekstensi dengan provider metadata'; @override String get extensionsSearchProvider => 'Provider Pencarian'; @override - String get extensionsNoCustomSearch => - 'Tidak ada ekstensi dengan pencarian kustom'; + String get extensionsNoCustomSearch => 'Tidak ada ekstensi dengan pencarian kustom'; @override - String get extensionsSearchProviderDescription => - 'Pilih layanan yang digunakan untuk mencari lagu'; + String get extensionsSearchProviderDescription => 'Pilih layanan yang digunakan untuk mencari lagu'; @override String get extensionsCustomSearch => 'Pencarian kustom'; @@ -1891,8 +1809,7 @@ class AppLocalizationsId extends AppLocalizations { String get enableLossyOptionSubtitleOn => 'Lossy quality option is available'; @override - String get enableLossyOptionSubtitleOff => - 'Downloads FLAC then converts to lossy format'; + String get enableLossyOptionSubtitleOff => 'Downloads FLAC then converts to lossy format'; @override String get lossyFormat => 'Lossy Format'; @@ -1904,12 +1821,10 @@ class AppLocalizationsId extends AppLocalizations { String get lossyFormatMp3Subtitle => '320kbps, best compatibility'; @override - String get lossyFormatOpusSubtitle => - '128kbps, better quality at smaller size'; + String get lossyFormatOpusSubtitle => '128kbps, better quality at smaller size'; @override - String get qualityNote => - 'Kualitas sebenarnya tergantung ketersediaan lagu dari layanan'; + String get qualityNote => 'Kualitas sebenarnya tergantung ketersediaan lagu dari layanan'; @override String get downloadAskBeforeDownload => 'Tanya Sebelum Unduh'; @@ -1945,8 +1860,7 @@ class AppLocalizationsId extends AppLocalizations { String get folderNone => 'Tidak ada'; @override - String get folderNoneSubtitle => - 'Simpan semua file langsung ke folder unduhan'; + String get folderNoneSubtitle => 'Simpan semua file langsung ke folder unduhan'; @override String get folderArtist => 'Artis'; @@ -2000,15 +1914,13 @@ class AppLocalizationsId extends AppLocalizations { String get queueClearAll => 'Hapus Semua'; @override - String get queueClearAllMessage => - 'Apakah Anda yakin ingin menghapus semua unduhan?'; + String get queueClearAllMessage => 'Apakah Anda yakin ingin menghapus semua unduhan?'; @override String get queueExportFailed => 'Export'; @override - String get queueExportFailedSuccess => - 'Failed downloads exported to TXT file'; + String get queueExportFailedSuccess => 'Failed downloads exported to TXT file'; @override String get queueExportFailedClear => 'Clear Failed'; @@ -2020,8 +1932,7 @@ class AppLocalizationsId extends AppLocalizations { String get settingsAutoExportFailed => 'Auto-export failed downloads'; @override - String get settingsAutoExportFailedSubtitle => - 'Save failed downloads to TXT file automatically'; + String get settingsAutoExportFailedSubtitle => 'Save failed downloads to TXT file automatically'; @override String get settingsDownloadNetwork => 'Download Network'; @@ -2033,8 +1944,55 @@ class AppLocalizationsId extends AppLocalizations { String get settingsDownloadNetworkWifiOnly => 'WiFi Only'; @override - String get settingsDownloadNetworkSubtitle => - 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + String get settingsDownloadNetworkSubtitle => 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + + @override + String get settingsCloudSave => 'Cloud Save'; + + @override + String get settingsCloudSaveSubtitle => 'Auto-upload to NAS or cloud storage'; + + @override + String get cloudSettingsTitle => 'Cloud Save'; + + @override + String get cloudSettingsSectionGeneral => 'General'; + + @override + String get cloudSettingsEnable => 'Enable Cloud Upload'; + + @override + String get cloudSettingsEnableSubtitle => 'Automatically upload files after download completes'; + + @override + String get cloudSettingsSectionProvider => 'Cloud Provider'; + + @override + String get cloudSettingsProvider => 'Provider'; + + @override + String get cloudSettingsProviderDescription => 'Select where to upload your downloaded files'; + + @override + String get cloudSettingsSectionServer => 'Server Configuration'; + + @override + String get cloudSettingsServerUrl => 'Server URL'; + + @override + String get cloudSettingsUsername => 'Username'; + + @override + String get cloudSettingsPassword => 'Password'; + + @override + String get cloudSettingsRemotePath => 'Remote Folder Path'; + + @override + String get cloudSettingsTestConnection => 'Test Connection'; + + @override + String get cloudSettingsInfo => 'Downloaded files will be automatically uploaded to your cloud storage after download completes. Original files are kept on your device.'; @override String get queueEmpty => 'Tidak ada unduhan dalam antrian'; @@ -2070,8 +2028,7 @@ class AppLocalizationsId extends AppLocalizations { String get albumFolderArtistYearAlbum => 'Artis / [Tahun] Album'; @override - String get albumFolderArtistYearAlbumSubtitle => - 'Albums/Nama Artis/[2005] Nama Album/'; + String get albumFolderArtistYearAlbumSubtitle => 'Albums/Nama Artis/[2005] Nama Album/'; @override String get albumFolderAlbumOnly => 'Album Saja'; @@ -2089,8 +2046,7 @@ class AppLocalizationsId extends AppLocalizations { String get albumFolderArtistAlbumSingles => 'Artist / Album + Singles'; @override - String get albumFolderArtistAlbumSinglesSubtitle => - 'Artist/Album/ and Artist/Singles/'; + String get albumFolderArtistAlbumSinglesSubtitle => 'Artist/Album/ and Artist/Singles/'; @override String get downloadedAlbumDeleteSelected => 'Hapus yang Dipilih'; @@ -2200,8 +2156,7 @@ class AppLocalizationsId extends AppLocalizations { String get discographySelectAlbums => 'Select Albums...'; @override - String get discographySelectAlbumsSubtitle => - 'Choose specific albums or singles'; + String get discographySelectAlbumsSubtitle => 'Choose specific albums or singles'; @override String get discographyFetchingTracks => 'Fetching tracks...'; @@ -2248,14 +2203,11 @@ class AppLocalizationsId extends AppLocalizations { String get allFilesAccessDisabledSubtitle => 'Limited to media folders only'; @override - String get allFilesAccessDescription => - 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; + String get allFilesAccessDescription => 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; @override - String get allFilesAccessDeniedMessage => - 'Permission was denied. Please enable \'All files access\' manually in system settings.'; + String get allFilesAccessDeniedMessage => 'Permission was denied. Please enable \'All files access\' manually in system settings.'; @override - String get allFilesAccessDisabledMessage => - 'All Files Access disabled. The app will use limited storage access.'; + String get allFilesAccessDisabledMessage => 'All Files Access disabled. The app will use limited storage access.'; } diff --git a/lib/l10n/app_localizations_ja.dart b/lib/l10n/app_localizations_ja.dart index 329dd155..cb47a9d4 100644 --- a/lib/l10n/app_localizations_ja.dart +++ b/lib/l10n/app_localizations_ja.dart @@ -12,8 +12,7 @@ class AppLocalizationsJa extends AppLocalizations { String get appName => 'SpotiFLAC'; @override - String get appDescription => - 'Tidal、Qobuz、Amazon Music から Spotify のトラックをロスレス品質でダウンロードします。'; + String get appDescription => 'Tidal、Qobuz、Amazon Music から Spotify のトラックをロスレス品質でダウンロードします。'; @override String get navHome => 'ホーム'; @@ -99,15 +98,13 @@ class AppLocalizationsJa extends AppLocalizations { String get historyNoAlbums => 'アルバムのダウンロードはありません'; @override - String get historyNoAlbumsSubtitle => - 'Download multiple tracks from an album to see them here'; + String get historyNoAlbumsSubtitle => 'Download multiple tracks from an album to see them here'; @override String get historyNoSingles => 'シングルのダウンロードはありません'; @override - String get historyNoSinglesSubtitle => - 'Single track downloads will appear here'; + String get historyNoSinglesSubtitle => 'Single track downloads will appear here'; @override String get historySearchHint => '検索履歴...'; @@ -155,8 +152,7 @@ class AppLocalizationsJa extends AppLocalizations { String get downloadAskQuality => 'ダウンロード前に品質を確認する'; @override - String get downloadAskQualitySubtitle => - 'Show quality picker for each download'; + String get downloadAskQualitySubtitle => 'Show quality picker for each download'; @override String get downloadFilenameFormat => 'ファイル名の形式'; @@ -168,8 +164,7 @@ class AppLocalizationsJa extends AppLocalizations { String get downloadSeparateSingles => 'シングルを分割'; @override - String get downloadSeparateSinglesSubtitle => - 'Put single tracks in a separate folder'; + String get downloadSeparateSinglesSubtitle => 'Put single tracks in a separate folder'; @override String get qualityBest => 'おすすめ'; @@ -226,8 +221,7 @@ class AppLocalizationsJa extends AppLocalizations { String get optionsPrimaryProvider => 'プライマリーのプロバイダー'; @override - String get optionsPrimaryProviderSubtitle => - 'Service used when searching by track name.'; + String get optionsPrimaryProviderSubtitle => 'Service used when searching by track name.'; @override String optionsUsingExtension(String extensionName) { @@ -235,15 +229,13 @@ class AppLocalizationsJa extends AppLocalizations { } @override - String get optionsSwitchBack => - 'Tap Deezer or Spotify to switch back from extension'; + String get optionsSwitchBack => 'Tap Deezer or Spotify to switch back from extension'; @override String get optionsAutoFallback => 'Auto Fallback'; @override - String get optionsAutoFallbackSubtitle => - 'Try other services if download fails'; + String get optionsAutoFallbackSubtitle => 'Try other services if download fails'; @override String get optionsUseExtensionProviders => '拡張のプロバイダーを使用する'; @@ -278,8 +270,7 @@ class AppLocalizationsJa extends AppLocalizations { } @override - String get optionsConcurrentWarning => - 'Parallel downloads may trigger rate limiting'; + String get optionsConcurrentWarning => 'Parallel downloads may trigger rate limiting'; @override String get optionsExtensionStore => '拡張ストア'; @@ -291,8 +282,7 @@ class AppLocalizationsJa extends AppLocalizations { String get optionsCheckUpdates => '更新を確認'; @override - String get optionsCheckUpdatesSubtitle => - 'Notify when new version is available'; + String get optionsCheckUpdatesSubtitle => 'Notify when new version is available'; @override String get optionsUpdateChannel => '更新チャンネル'; @@ -304,8 +294,7 @@ class AppLocalizationsJa extends AppLocalizations { String get optionsUpdateChannelPreview => 'プレビューリリースを入手'; @override - String get optionsUpdateChannelWarning => - 'Preview may contain bugs or incomplete features'; + String get optionsUpdateChannelWarning => 'Preview may contain bugs or incomplete features'; @override String get optionsClearHistory => 'ダウンロード履歴を消去'; @@ -334,8 +323,7 @@ class AppLocalizationsJa extends AppLocalizations { String get optionsSpotifyCredentialsRequired => '必須 - タップで設定'; @override - String get optionsSpotifyWarning => - 'Spotify は独自の API 認証情報が必要です。developer.spotify.com から取得できます。'; + String get optionsSpotifyWarning => 'Spotify は独自の API 認証情報が必要です。developer.spotify.com から取得できます。'; @override String get extensionsTitle => '拡張'; @@ -459,34 +447,28 @@ class AppLocalizationsJa extends AppLocalizations { String get aboutVersion => 'バージョン'; @override - String get aboutBinimumDesc => - 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; + String get aboutBinimumDesc => 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; @override - String get aboutSachinsenalDesc => - 'The original HiFi project creator. The foundation of Tidal integration!'; + String get aboutSachinsenalDesc => 'The original HiFi project creator. The foundation of Tidal integration!'; @override - String get aboutSjdonadoDesc => - 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; + String get aboutSjdonadoDesc => 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; @override String get aboutDoubleDouble => 'DoubleDouble'; @override - String get aboutDoubleDoubleDesc => - 'Amazing API for Amazon Music downloads. Thank you for making it free!'; + String get aboutDoubleDoubleDesc => 'Amazing API for Amazon Music downloads. Thank you for making it free!'; @override String get aboutDabMusic => 'DAB Music'; @override - String get aboutDabMusicDesc => - 'The best Qobuz streaming API. Hi-Res downloads wouldn\'t be possible without this!'; + String get aboutDabMusicDesc => 'The best Qobuz streaming API. Hi-Res downloads wouldn\'t be possible without this!'; @override - String get aboutAppDescription => - 'Tidal、Qobuz、Amazon Music から Spotify のトラックをロスレス品質でダウンロードします。'; + String get aboutAppDescription => 'Tidal、Qobuz、Amazon Music から Spotify のトラックをロスレス品質でダウンロードします。'; @override String get albumTitle => 'アルバム'; @@ -618,19 +600,16 @@ class AppLocalizationsJa extends AppLocalizations { String get setupStorageAccessRequired => 'ストレージアクセスが必要です'; @override - String get setupStorageAccessMessage => - 'SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.'; + String get setupStorageAccessMessage => 'SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.'; @override - String get setupStorageAccessMessageAndroid11 => - 'Android 11+ requires \"All files access\" permission to save files to your chosen download folder.'; + String get setupStorageAccessMessageAndroid11 => 'Android 11+ requires \"All files access\" permission to save files to your chosen download folder.'; @override String get setupOpenSettings => '設定を開く'; @override - String get setupPermissionDeniedMessage => - 'Permission denied. Please grant all permissions to continue.'; + String get setupPermissionDeniedMessage => 'Permission denied. Please grant all permissions to continue.'; @override String setupPermissionRequired(String permissionType) { @@ -649,8 +628,7 @@ class AppLocalizationsJa extends AppLocalizations { String get setupUseDefaultFolder => 'デフォルトのフォルダを使用しますか?'; @override - String get setupNoFolderSelected => - 'No folder selected. Would you like to use the default Music folder?'; + String get setupNoFolderSelected => 'No folder selected. Would you like to use the default Music folder?'; @override String get setupUseDefault => 'デフォルトを使用する'; @@ -659,15 +637,13 @@ class AppLocalizationsJa extends AppLocalizations { String get setupDownloadLocationTitle => 'ダウンロード先'; @override - String get setupDownloadLocationIosMessage => - 'On iOS, downloads are saved to the app\'s Documents folder. You can access them via the Files app.'; + String get setupDownloadLocationIosMessage => 'On iOS, downloads are saved to the app\'s Documents folder. You can access them via the Files app.'; @override String get setupAppDocumentsFolder => 'アプリのドキュメントフォルダ'; @override - String get setupAppDocumentsFolderSubtitle => - 'Recommended - accessible via Files app'; + String get setupAppDocumentsFolderSubtitle => 'Recommended - accessible via Files app'; @override String get setupChooseFromFiles => 'ファイルから選択'; @@ -676,12 +652,10 @@ class AppLocalizationsJa extends AppLocalizations { String get setupChooseFromFilesSubtitle => 'iCloud またはその他の場所を選択'; @override - String get setupIosEmptyFolderWarning => - 'iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.'; + String get setupIosEmptyFolderWarning => 'iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.'; @override - String get setupIcloudNotSupported => - 'iCloud Drive is not supported. Please use the app Documents folder.'; + String get setupIcloudNotSupported => 'iCloud Drive is not supported. Please use the app Documents folder.'; @override String get setupDownloadInFlac => 'Spotify のトラックを FLAC でダウンロード'; @@ -708,8 +682,7 @@ class AppLocalizationsJa extends AppLocalizations { String get setupStorageRequired => 'ストレージの権限が必要です'; @override - String get setupStorageDescription => - 'SpotiFLAC はダウンロードした音楽ファイルを保存するためにストレージの権限が必要です。'; + String get setupStorageDescription => 'SpotiFLAC はダウンロードした音楽ファイルを保存するためにストレージの権限が必要です。'; @override String get setupNotificationGranted => '通知の権限が許可されました!'; @@ -718,8 +691,7 @@ class AppLocalizationsJa extends AppLocalizations { String get setupNotificationEnable => '通知を有効化する'; @override - String get setupNotificationDescription => - 'Get notified when downloads complete or require attention.'; + String get setupNotificationDescription => 'Get notified when downloads complete or require attention.'; @override String get setupFolderSelected => 'ダウンロードフォルダが選択済みです!'; @@ -728,8 +700,7 @@ class AppLocalizationsJa extends AppLocalizations { String get setupFolderChoose => 'ダウンロードフォルダを選択'; @override - String get setupFolderDescription => - 'Select a folder where your downloaded music will be saved.'; + String get setupFolderDescription => 'Select a folder where your downloaded music will be saved.'; @override String get setupChangeFolder => 'フォルダを変更'; @@ -741,8 +712,7 @@ class AppLocalizationsJa extends AppLocalizations { String get setupSpotifyApiOptional => 'Spotify API (任意)'; @override - String get setupSpotifyApiDescription => - 'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.'; + String get setupSpotifyApiDescription => 'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.'; @override String get setupUseSpotifyApi => 'Spotify API を使用する'; @@ -760,8 +730,7 @@ class AppLocalizationsJa extends AppLocalizations { String get setupEnterClientSecret => 'Spotify クライアントシークレットを入力'; @override - String get setupGetFreeCredentials => - 'Spotify 開発者ダッシュボードから無料の API 認証情報を取得します。'; + String get setupGetFreeCredentials => 'Spotify 開発者ダッシュボードから無料の API 認証情報を取得します。'; @override String get setupEnableNotifications => '通知を有効化する'; @@ -770,12 +739,10 @@ class AppLocalizationsJa extends AppLocalizations { String get setupProceedToNextStep => 'You can now proceed to the next step.'; @override - String get setupNotificationProgressDescription => - 'You will receive download progress notifications.'; + String get setupNotificationProgressDescription => 'You will receive download progress notifications.'; @override - String get setupNotificationBackgroundDescription => - 'Get notified about download progress and completion. This helps you track downloads when the app is in background.'; + String get setupNotificationBackgroundDescription => 'Get notified about download progress and completion. This helps you track downloads when the app is in background.'; @override String get setupSkipForNow => '今はスキップ'; @@ -793,12 +760,10 @@ class AppLocalizationsJa extends AppLocalizations { String get setupSkipAndStart => 'スキップと開始'; @override - String get setupAllowAccessToManageFiles => - 'Please enable \"Allow access to manage all files\" in the next screen.'; + String get setupAllowAccessToManageFiles => 'Please enable \"Allow access to manage all files\" in the next screen.'; @override - String get setupGetCredentialsFromSpotify => - 'developer.spotify.com から認証情報を取得します'; + String get setupGetCredentialsFromSpotify => 'developer.spotify.com から認証情報を取得します'; @override String get dialogCancel => 'キャンセル'; @@ -849,8 +814,7 @@ class AppLocalizationsJa extends AppLocalizations { String get dialogDiscardChanges => '変更を破棄しますか?'; @override - String get dialogUnsavedChanges => - 'You have unsaved changes. Do you want to discard them?'; + String get dialogUnsavedChanges => 'You have unsaved changes. Do you want to discard them?'; @override String get dialogDownloadFailed => 'ダウンロードに失敗しました'; @@ -868,8 +832,7 @@ class AppLocalizationsJa extends AppLocalizations { String get dialogClearAll => 'すべて消去'; @override - String get dialogClearAllDownloads => - 'Are you sure you want to clear all downloads?'; + String get dialogClearAllDownloads => 'Are you sure you want to clear all downloads?'; @override String get dialogRemoveFromDevice => 'デバイスから削除しますか?'; @@ -878,8 +841,7 @@ class AppLocalizationsJa extends AppLocalizations { String get dialogRemoveExtension => '拡張を削除'; @override - String get dialogRemoveExtensionMessage => - 'Are you sure you want to remove this extension? This cannot be undone.'; + String get dialogRemoveExtensionMessage => 'Are you sure you want to remove this extension? This cannot be undone.'; @override String get dialogUninstallExtension => '拡張をアンインストールしますか?'; @@ -893,8 +855,7 @@ class AppLocalizationsJa extends AppLocalizations { String get dialogClearHistoryTitle => '履歴を消去'; @override - String get dialogClearHistoryMessage => - 'Are you sure you want to clear all download history? This cannot be undone.'; + String get dialogClearHistoryMessage => 'Are you sure you want to clear all download history? This cannot be undone.'; @override String get dialogDeleteSelectedTitle => '選択済みを削除'; @@ -1011,8 +972,7 @@ class AppLocalizationsJa extends AppLocalizations { String get errorRateLimited => 'レート制限'; @override - String get errorRateLimitedMessage => - 'Too many requests. Please wait a moment before searching again.'; + String get errorRateLimitedMessage => 'Too many requests. Please wait a moment before searching again.'; @override String errorFailedToLoad(String item) { @@ -1185,16 +1145,13 @@ class AppLocalizationsJa extends AppLocalizations { String get folderOrganizationNoneSubtitle => 'ダウンロードフォルダ内のすべてのファイル'; @override - String get folderOrganizationByArtistSubtitle => - 'Separate folder for each artist'; + String get folderOrganizationByArtistSubtitle => 'Separate folder for each artist'; @override - String get folderOrganizationByAlbumSubtitle => - 'Separate folder for each album'; + String get folderOrganizationByAlbumSubtitle => 'Separate folder for each album'; @override - String get folderOrganizationByArtistAlbumSubtitle => - 'Nested folders for artist and album'; + String get folderOrganizationByArtistAlbumSubtitle => 'Nested folders for artist and album'; @override String get updateAvailable => '更新が利用可能です'; @@ -1253,12 +1210,10 @@ class AppLocalizationsJa extends AppLocalizations { String get providerPriorityTitle => 'プロバイダーの優先度'; @override - String get providerPriorityDescription => - 'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.'; + String get providerPriorityDescription => 'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.'; @override - String get providerPriorityInfo => - 'If a track is not available on the first provider, the app will automatically try the next one.'; + String get providerPriorityInfo => 'If a track is not available on the first provider, the app will automatically try the next one.'; @override String get providerBuiltIn => '内蔵'; @@ -1270,19 +1225,16 @@ class AppLocalizationsJa extends AppLocalizations { String get metadataProviderPriority => 'メタデータプロバイダーの優先度'; @override - String get metadataProviderPrioritySubtitle => - 'Order used when fetching track metadata'; + String get metadataProviderPrioritySubtitle => 'Order used when fetching track metadata'; @override String get metadataProviderPriorityTitle => 'メタデータの優先度'; @override - String get metadataProviderPriorityDescription => - 'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.'; + String get metadataProviderPriorityDescription => 'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.'; @override - String get metadataProviderPriorityInfo => - 'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.'; + String get metadataProviderPriorityInfo => 'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.'; @override String get metadataNoRateLimits => 'レート制限はありません'; @@ -1354,19 +1306,16 @@ class AppLocalizationsJa extends AppLocalizations { String get logIssueSummary => '問題の概要'; @override - String get logIspBlockingDescription => - 'ISP がダウンロードサービスのアクセスをブロックしている可能性があります'; + String get logIspBlockingDescription => 'ISP がダウンロードサービスのアクセスをブロックしている可能性があります'; @override - String get logIspBlockingSuggestion => - 'VPN を使用するか DNS を 1.1.1.1 または 8.8.8.8 に変更をお試しください'; + String get logIspBlockingSuggestion => 'VPN を使用するか DNS を 1.1.1.1 または 8.8.8.8 に変更をお試しください'; @override String get logRateLimitedDescription => 'サービスへのリクエストが多すぎます'; @override - String get logRateLimitedSuggestion => - 'Wait a few minutes before trying again'; + String get logRateLimitedSuggestion => 'Wait a few minutes before trying again'; @override String get logNetworkErrorDescription => '接続の問題が検出されました'; @@ -1375,12 +1324,10 @@ class AppLocalizationsJa extends AppLocalizations { String get logNetworkErrorSuggestion => 'インターネット接続を確認してください'; @override - String get logTrackNotFoundDescription => - 'Some tracks could not be found on download services'; + String get logTrackNotFoundDescription => 'Some tracks could not be found on download services'; @override - String get logTrackNotFoundSuggestion => - 'The track may not be available in lossless quality'; + String get logTrackNotFoundSuggestion => 'The track may not be available in lossless quality'; @override String logTotalErrors(int count) { @@ -1406,8 +1353,7 @@ class AppLocalizationsJa extends AppLocalizations { String get credentialsTitle => 'Spotify の認証情報'; @override - String get credentialsDescription => - 'Enter your Client ID and Secret to use your own Spotify application quota.'; + String get credentialsDescription => 'Enter your Client ID and Secret to use your own Spotify application quota.'; @override String get credentialsClientId => 'クライアント ID'; @@ -1461,8 +1407,7 @@ class AppLocalizationsJa extends AppLocalizations { String get lyricsMode => '歌詞モード'; @override - String get lyricsModeDescription => - 'Choose how lyrics are saved with your downloads'; + String get lyricsModeDescription => 'Choose how lyrics are saved with your downloads'; @override String get lyricsModeEmbed => 'Embed in file'; @@ -1474,8 +1419,7 @@ class AppLocalizationsJa extends AppLocalizations { String get lyricsModeExternal => '外部 .lrc ファイル'; @override - String get lyricsModeExternalSubtitle => - 'Separate .lrc file for players like Samsung Music'; + String get lyricsModeExternalSubtitle => 'Separate .lrc file for players like Samsung Music'; @override String get lyricsModeBoth => '両方'; @@ -1635,8 +1579,7 @@ class AppLocalizationsJa extends AppLocalizations { String get trackDeleteConfirmTitle => 'デバイスから削除しますか?'; @override - String get trackDeleteConfirmMessage => - 'This will permanently delete the downloaded file and remove it from your history.'; + String get trackDeleteConfirmMessage => 'This will permanently delete the downloaded file and remove it from your history.'; @override String trackCannotOpen(String message) { @@ -1788,15 +1731,13 @@ class AppLocalizationsJa extends AppLocalizations { String get extensionsNoExtensions => '拡張はインストールされていません'; @override - String get extensionsNoExtensionsSubtitle => - '新しいプロバイダーを追加するには .spotiflac-ext ファイルをインストールします'; + String get extensionsNoExtensionsSubtitle => '新しいプロバイダーを追加するには .spotiflac-ext ファイルをインストールします'; @override String get extensionsInstallButton => '拡張をインストール'; @override - String get extensionsInfoTip => - '拡張は新しいメタデータとダウンロードプロバイダーを追加することがあります。信頼できるソースからの拡張のみをインストールしてください。'; + String get extensionsInfoTip => '拡張は新しいメタデータとダウンロードプロバイダーを追加することがあります。信頼できるソースからの拡張のみをインストールしてください。'; @override String get extensionsInstalledSuccess => '拡張のインストールが成功しました'; @@ -1868,8 +1809,7 @@ class AppLocalizationsJa extends AppLocalizations { String get enableLossyOptionSubtitleOn => 'Lossy quality option is available'; @override - String get enableLossyOptionSubtitleOff => - 'Downloads FLAC then converts to lossy format'; + String get enableLossyOptionSubtitleOff => 'Downloads FLAC then converts to lossy format'; @override String get lossyFormat => 'Lossy Format'; @@ -1881,8 +1821,7 @@ class AppLocalizationsJa extends AppLocalizations { String get lossyFormatMp3Subtitle => '320kbps, best compatibility'; @override - String get lossyFormatOpusSubtitle => - '128kbps, better quality at smaller size'; + String get lossyFormatOpusSubtitle => '128kbps, better quality at smaller size'; @override String get qualityNote => '実際の品質はサービスからのトラックの可用性に依存します'; @@ -1981,8 +1920,7 @@ class AppLocalizationsJa extends AppLocalizations { String get queueExportFailed => 'Export'; @override - String get queueExportFailedSuccess => - 'Failed downloads exported to TXT file'; + String get queueExportFailedSuccess => 'Failed downloads exported to TXT file'; @override String get queueExportFailedClear => 'Clear Failed'; @@ -1994,8 +1932,7 @@ class AppLocalizationsJa extends AppLocalizations { String get settingsAutoExportFailed => 'Auto-export failed downloads'; @override - String get settingsAutoExportFailedSubtitle => - 'Save failed downloads to TXT file automatically'; + String get settingsAutoExportFailedSubtitle => 'Save failed downloads to TXT file automatically'; @override String get settingsDownloadNetwork => 'Download Network'; @@ -2007,8 +1944,55 @@ class AppLocalizationsJa extends AppLocalizations { String get settingsDownloadNetworkWifiOnly => 'WiFi Only'; @override - String get settingsDownloadNetworkSubtitle => - 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + String get settingsDownloadNetworkSubtitle => 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + + @override + String get settingsCloudSave => 'Cloud Save'; + + @override + String get settingsCloudSaveSubtitle => 'Auto-upload to NAS or cloud storage'; + + @override + String get cloudSettingsTitle => 'Cloud Save'; + + @override + String get cloudSettingsSectionGeneral => 'General'; + + @override + String get cloudSettingsEnable => 'Enable Cloud Upload'; + + @override + String get cloudSettingsEnableSubtitle => 'Automatically upload files after download completes'; + + @override + String get cloudSettingsSectionProvider => 'Cloud Provider'; + + @override + String get cloudSettingsProvider => 'Provider'; + + @override + String get cloudSettingsProviderDescription => 'Select where to upload your downloaded files'; + + @override + String get cloudSettingsSectionServer => 'Server Configuration'; + + @override + String get cloudSettingsServerUrl => 'Server URL'; + + @override + String get cloudSettingsUsername => 'Username'; + + @override + String get cloudSettingsPassword => 'Password'; + + @override + String get cloudSettingsRemotePath => 'Remote Folder Path'; + + @override + String get cloudSettingsTestConnection => 'Test Connection'; + + @override + String get cloudSettingsInfo => 'Downloaded files will be automatically uploaded to your cloud storage after download completes. Original files are kept on your device.'; @override String get queueEmpty => 'キューにダウンロードがありません'; @@ -2062,8 +2046,7 @@ class AppLocalizationsJa extends AppLocalizations { String get albumFolderArtistAlbumSingles => 'Artist / Album + Singles'; @override - String get albumFolderArtistAlbumSinglesSubtitle => - 'Artist/Album/ and Artist/Singles/'; + String get albumFolderArtistAlbumSinglesSubtitle => 'Artist/Album/ and Artist/Singles/'; @override String get downloadedAlbumDeleteSelected => '選択済みを削除'; @@ -2173,8 +2156,7 @@ class AppLocalizationsJa extends AppLocalizations { String get discographySelectAlbums => 'アルバムを選択...'; @override - String get discographySelectAlbumsSubtitle => - 'Choose specific albums or singles'; + String get discographySelectAlbumsSubtitle => 'Choose specific albums or singles'; @override String get discographyFetchingTracks => 'トラックを取得中です...'; @@ -2221,14 +2203,11 @@ class AppLocalizationsJa extends AppLocalizations { String get allFilesAccessDisabledSubtitle => 'Limited to media folders only'; @override - String get allFilesAccessDescription => - 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; + String get allFilesAccessDescription => 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; @override - String get allFilesAccessDeniedMessage => - 'Permission was denied. Please enable \'All files access\' manually in system settings.'; + String get allFilesAccessDeniedMessage => 'Permission was denied. Please enable \'All files access\' manually in system settings.'; @override - String get allFilesAccessDisabledMessage => - 'All Files Access disabled. The app will use limited storage access.'; + String get allFilesAccessDisabledMessage => 'All Files Access disabled. The app will use limited storage access.'; } diff --git a/lib/l10n/app_localizations_ko.dart b/lib/l10n/app_localizations_ko.dart index 28ac404a..9dbfb52f 100644 --- a/lib/l10n/app_localizations_ko.dart +++ b/lib/l10n/app_localizations_ko.dart @@ -12,8 +12,7 @@ class AppLocalizationsKo extends AppLocalizations { String get appName => 'SpotiFLAC'; @override - String get appDescription => - 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; + String get appDescription => 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; @override String get navHome => 'Home'; @@ -99,15 +98,13 @@ class AppLocalizationsKo extends AppLocalizations { String get historyNoAlbums => 'No album downloads'; @override - String get historyNoAlbumsSubtitle => - 'Download multiple tracks from an album to see them here'; + String get historyNoAlbumsSubtitle => 'Download multiple tracks from an album to see them here'; @override String get historyNoSingles => 'No single downloads'; @override - String get historyNoSinglesSubtitle => - 'Single track downloads will appear here'; + String get historyNoSinglesSubtitle => 'Single track downloads will appear here'; @override String get historySearchHint => 'Search history...'; @@ -155,8 +152,7 @@ class AppLocalizationsKo extends AppLocalizations { String get downloadAskQuality => 'Ask Quality Before Download'; @override - String get downloadAskQualitySubtitle => - 'Show quality picker for each download'; + String get downloadAskQualitySubtitle => 'Show quality picker for each download'; @override String get downloadFilenameFormat => 'Filename Format'; @@ -168,8 +164,7 @@ class AppLocalizationsKo extends AppLocalizations { String get downloadSeparateSingles => 'Separate Singles'; @override - String get downloadSeparateSinglesSubtitle => - 'Put single tracks in a separate folder'; + String get downloadSeparateSinglesSubtitle => 'Put single tracks in a separate folder'; @override String get qualityBest => 'Best Available'; @@ -226,8 +221,7 @@ class AppLocalizationsKo extends AppLocalizations { String get optionsPrimaryProvider => 'Primary Provider'; @override - String get optionsPrimaryProviderSubtitle => - 'Service used when searching by track name.'; + String get optionsPrimaryProviderSubtitle => 'Service used when searching by track name.'; @override String optionsUsingExtension(String extensionName) { @@ -235,15 +229,13 @@ class AppLocalizationsKo extends AppLocalizations { } @override - String get optionsSwitchBack => - 'Tap Deezer or Spotify to switch back from extension'; + String get optionsSwitchBack => 'Tap Deezer or Spotify to switch back from extension'; @override String get optionsAutoFallback => 'Auto Fallback'; @override - String get optionsAutoFallbackSubtitle => - 'Try other services if download fails'; + String get optionsAutoFallbackSubtitle => 'Try other services if download fails'; @override String get optionsUseExtensionProviders => 'Use Extension Providers'; @@ -258,15 +250,13 @@ class AppLocalizationsKo extends AppLocalizations { String get optionsEmbedLyrics => 'Embed Lyrics'; @override - String get optionsEmbedLyricsSubtitle => - 'Embed synced lyrics into FLAC files'; + String get optionsEmbedLyricsSubtitle => 'Embed synced lyrics into FLAC files'; @override String get optionsMaxQualityCover => 'Max Quality Cover'; @override - String get optionsMaxQualityCoverSubtitle => - 'Download highest resolution cover art'; + String get optionsMaxQualityCoverSubtitle => 'Download highest resolution cover art'; @override String get optionsConcurrentDownloads => 'Concurrent Downloads'; @@ -280,8 +270,7 @@ class AppLocalizationsKo extends AppLocalizations { } @override - String get optionsConcurrentWarning => - 'Parallel downloads may trigger rate limiting'; + String get optionsConcurrentWarning => 'Parallel downloads may trigger rate limiting'; @override String get optionsExtensionStore => 'Extension Store'; @@ -293,8 +282,7 @@ class AppLocalizationsKo extends AppLocalizations { String get optionsCheckUpdates => 'Check for Updates'; @override - String get optionsCheckUpdatesSubtitle => - 'Notify when new version is available'; + String get optionsCheckUpdatesSubtitle => 'Notify when new version is available'; @override String get optionsUpdateChannel => 'Update Channel'; @@ -306,15 +294,13 @@ class AppLocalizationsKo extends AppLocalizations { String get optionsUpdateChannelPreview => 'Get preview releases'; @override - String get optionsUpdateChannelWarning => - 'Preview may contain bugs or incomplete features'; + String get optionsUpdateChannelWarning => 'Preview may contain bugs or incomplete features'; @override String get optionsClearHistory => 'Clear Download History'; @override - String get optionsClearHistorySubtitle => - 'Remove all downloaded tracks from history'; + String get optionsClearHistorySubtitle => 'Remove all downloaded tracks from history'; @override String get optionsDetailedLogging => 'Detailed Logging'; @@ -337,8 +323,7 @@ class AppLocalizationsKo extends AppLocalizations { String get optionsSpotifyCredentialsRequired => 'Required - tap to configure'; @override - String get optionsSpotifyWarning => - 'Spotify requires your own API credentials. Get them free from developer.spotify.com'; + String get optionsSpotifyWarning => 'Spotify requires your own API credentials. Get them free from developer.spotify.com'; @override String get extensionsTitle => 'Extensions'; @@ -402,8 +387,7 @@ class AppLocalizationsKo extends AppLocalizations { String get aboutOriginalCreator => 'Creator of the original SpotiFLAC'; @override - String get aboutLogoArtist => - 'The talented artist who created our beautiful app logo!'; + String get aboutLogoArtist => 'The talented artist who created our beautiful app logo!'; @override String get aboutTranslators => 'Translators'; @@ -463,34 +447,28 @@ class AppLocalizationsKo extends AppLocalizations { String get aboutVersion => 'Version'; @override - String get aboutBinimumDesc => - 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; + String get aboutBinimumDesc => 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; @override - String get aboutSachinsenalDesc => - 'The original HiFi project creator. The foundation of Tidal integration!'; + String get aboutSachinsenalDesc => 'The original HiFi project creator. The foundation of Tidal integration!'; @override - String get aboutSjdonadoDesc => - 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; + String get aboutSjdonadoDesc => 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; @override String get aboutDoubleDouble => 'DoubleDouble'; @override - String get aboutDoubleDoubleDesc => - 'Amazing API for Amazon Music downloads. Thank you for making it free!'; + String get aboutDoubleDoubleDesc => 'Amazing API for Amazon Music downloads. Thank you for making it free!'; @override String get aboutDabMusic => 'DAB Music'; @override - String get aboutDabMusicDesc => - 'The best Qobuz streaming API. Hi-Res downloads wouldn\'t be possible without this!'; + String get aboutDabMusicDesc => 'The best Qobuz streaming API. Hi-Res downloads wouldn\'t be possible without this!'; @override - String get aboutAppDescription => - 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; + String get aboutAppDescription => 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; @override String get albumTitle => 'Album'; @@ -595,8 +573,7 @@ class AppLocalizationsKo extends AppLocalizations { String get setupStoragePermission => 'Storage Permission'; @override - String get setupStoragePermissionSubtitle => - 'Required to save downloaded files'; + String get setupStoragePermissionSubtitle => 'Required to save downloaded files'; @override String get setupStoragePermissionGranted => 'Permission granted'; @@ -623,19 +600,16 @@ class AppLocalizationsKo extends AppLocalizations { String get setupStorageAccessRequired => 'Storage Access Required'; @override - String get setupStorageAccessMessage => - 'SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.'; + String get setupStorageAccessMessage => 'SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.'; @override - String get setupStorageAccessMessageAndroid11 => - 'Android 11+ requires \"All files access\" permission to save files to your chosen download folder.'; + String get setupStorageAccessMessageAndroid11 => 'Android 11+ requires \"All files access\" permission to save files to your chosen download folder.'; @override String get setupOpenSettings => 'Open Settings'; @override - String get setupPermissionDeniedMessage => - 'Permission denied. Please grant all permissions to continue.'; + String get setupPermissionDeniedMessage => 'Permission denied. Please grant all permissions to continue.'; @override String setupPermissionRequired(String permissionType) { @@ -654,8 +628,7 @@ class AppLocalizationsKo extends AppLocalizations { String get setupUseDefaultFolder => 'Use Default Folder?'; @override - String get setupNoFolderSelected => - 'No folder selected. Would you like to use the default Music folder?'; + String get setupNoFolderSelected => 'No folder selected. Would you like to use the default Music folder?'; @override String get setupUseDefault => 'Use Default'; @@ -664,15 +637,13 @@ class AppLocalizationsKo extends AppLocalizations { String get setupDownloadLocationTitle => 'Download Location'; @override - String get setupDownloadLocationIosMessage => - 'On iOS, downloads are saved to the app\'s Documents folder. You can access them via the Files app.'; + String get setupDownloadLocationIosMessage => 'On iOS, downloads are saved to the app\'s Documents folder. You can access them via the Files app.'; @override String get setupAppDocumentsFolder => 'App Documents Folder'; @override - String get setupAppDocumentsFolderSubtitle => - 'Recommended - accessible via Files app'; + String get setupAppDocumentsFolderSubtitle => 'Recommended - accessible via Files app'; @override String get setupChooseFromFiles => 'Choose from Files'; @@ -681,12 +652,10 @@ class AppLocalizationsKo extends AppLocalizations { String get setupChooseFromFilesSubtitle => 'Select iCloud or other location'; @override - String get setupIosEmptyFolderWarning => - 'iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.'; + String get setupIosEmptyFolderWarning => 'iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.'; @override - String get setupIcloudNotSupported => - 'iCloud Drive is not supported. Please use the app Documents folder.'; + String get setupIcloudNotSupported => 'iCloud Drive is not supported. Please use the app Documents folder.'; @override String get setupDownloadInFlac => 'Download Spotify tracks in FLAC'; @@ -713,8 +682,7 @@ class AppLocalizationsKo extends AppLocalizations { String get setupStorageRequired => 'Storage Permission Required'; @override - String get setupStorageDescription => - 'SpotiFLAC needs storage permission to save your downloaded music files.'; + String get setupStorageDescription => 'SpotiFLAC needs storage permission to save your downloaded music files.'; @override String get setupNotificationGranted => 'Notification Permission Granted!'; @@ -723,8 +691,7 @@ class AppLocalizationsKo extends AppLocalizations { String get setupNotificationEnable => 'Enable Notifications'; @override - String get setupNotificationDescription => - 'Get notified when downloads complete or require attention.'; + String get setupNotificationDescription => 'Get notified when downloads complete or require attention.'; @override String get setupFolderSelected => 'Download Folder Selected!'; @@ -733,8 +700,7 @@ class AppLocalizationsKo extends AppLocalizations { String get setupFolderChoose => 'Choose Download Folder'; @override - String get setupFolderDescription => - 'Select a folder where your downloaded music will be saved.'; + String get setupFolderDescription => 'Select a folder where your downloaded music will be saved.'; @override String get setupChangeFolder => 'Change Folder'; @@ -746,8 +712,7 @@ class AppLocalizationsKo extends AppLocalizations { String get setupSpotifyApiOptional => 'Spotify API (Optional)'; @override - String get setupSpotifyApiDescription => - 'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.'; + String get setupSpotifyApiDescription => 'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.'; @override String get setupUseSpotifyApi => 'Use Spotify API'; @@ -765,8 +730,7 @@ class AppLocalizationsKo extends AppLocalizations { String get setupEnterClientSecret => 'Enter Spotify Client Secret'; @override - String get setupGetFreeCredentials => - 'Get your free API credentials from the Spotify Developer Dashboard.'; + String get setupGetFreeCredentials => 'Get your free API credentials from the Spotify Developer Dashboard.'; @override String get setupEnableNotifications => 'Enable Notifications'; @@ -775,12 +739,10 @@ class AppLocalizationsKo extends AppLocalizations { String get setupProceedToNextStep => 'You can now proceed to the next step.'; @override - String get setupNotificationProgressDescription => - 'You will receive download progress notifications.'; + String get setupNotificationProgressDescription => 'You will receive download progress notifications.'; @override - String get setupNotificationBackgroundDescription => - 'Get notified about download progress and completion. This helps you track downloads when the app is in background.'; + String get setupNotificationBackgroundDescription => 'Get notified about download progress and completion. This helps you track downloads when the app is in background.'; @override String get setupSkipForNow => 'Skip for now'; @@ -798,12 +760,10 @@ class AppLocalizationsKo extends AppLocalizations { String get setupSkipAndStart => 'Skip & Start'; @override - String get setupAllowAccessToManageFiles => - 'Please enable \"Allow access to manage all files\" in the next screen.'; + String get setupAllowAccessToManageFiles => 'Please enable \"Allow access to manage all files\" in the next screen.'; @override - String get setupGetCredentialsFromSpotify => - 'Get credentials from developer.spotify.com'; + String get setupGetCredentialsFromSpotify => 'Get credentials from developer.spotify.com'; @override String get dialogCancel => 'Cancel'; @@ -854,8 +814,7 @@ class AppLocalizationsKo extends AppLocalizations { String get dialogDiscardChanges => 'Discard Changes?'; @override - String get dialogUnsavedChanges => - 'You have unsaved changes. Do you want to discard them?'; + String get dialogUnsavedChanges => 'You have unsaved changes. Do you want to discard them?'; @override String get dialogDownloadFailed => 'Download Failed'; @@ -873,8 +832,7 @@ class AppLocalizationsKo extends AppLocalizations { String get dialogClearAll => 'Clear All'; @override - String get dialogClearAllDownloads => - 'Are you sure you want to clear all downloads?'; + String get dialogClearAllDownloads => 'Are you sure you want to clear all downloads?'; @override String get dialogRemoveFromDevice => 'Remove from device?'; @@ -883,8 +841,7 @@ class AppLocalizationsKo extends AppLocalizations { String get dialogRemoveExtension => 'Remove Extension'; @override - String get dialogRemoveExtensionMessage => - 'Are you sure you want to remove this extension? This cannot be undone.'; + String get dialogRemoveExtensionMessage => 'Are you sure you want to remove this extension? This cannot be undone.'; @override String get dialogUninstallExtension => 'Uninstall Extension?'; @@ -898,8 +855,7 @@ class AppLocalizationsKo extends AppLocalizations { String get dialogClearHistoryTitle => 'Clear History'; @override - String get dialogClearHistoryMessage => - 'Are you sure you want to clear all download history? This cannot be undone.'; + String get dialogClearHistoryMessage => 'Are you sure you want to clear all download history? This cannot be undone.'; @override String get dialogDeleteSelectedTitle => 'Delete Selected'; @@ -994,8 +950,7 @@ class AppLocalizationsKo extends AppLocalizations { String get snackbarProviderPrioritySaved => 'Provider priority saved'; @override - String get snackbarMetadataProviderSaved => - 'Metadata provider priority saved'; + String get snackbarMetadataProviderSaved => 'Metadata provider priority saved'; @override String snackbarExtensionInstalled(String extensionName) { @@ -1017,8 +972,7 @@ class AppLocalizationsKo extends AppLocalizations { String get errorRateLimited => 'Rate Limited'; @override - String get errorRateLimitedMessage => - 'Too many requests. Please wait a moment before searching again.'; + String get errorRateLimitedMessage => 'Too many requests. Please wait a moment before searching again.'; @override String errorFailedToLoad(String item) { @@ -1185,23 +1139,19 @@ class AppLocalizationsKo extends AppLocalizations { String get folderOrganizationByArtistAlbum => 'Artist/Album'; @override - String get folderOrganizationDescription => - 'Organize downloaded files into folders'; + String get folderOrganizationDescription => 'Organize downloaded files into folders'; @override String get folderOrganizationNoneSubtitle => 'All files in download folder'; @override - String get folderOrganizationByArtistSubtitle => - 'Separate folder for each artist'; + String get folderOrganizationByArtistSubtitle => 'Separate folder for each artist'; @override - String get folderOrganizationByAlbumSubtitle => - 'Separate folder for each album'; + String get folderOrganizationByAlbumSubtitle => 'Separate folder for each album'; @override - String get folderOrganizationByArtistAlbumSubtitle => - 'Nested folders for artist and album'; + String get folderOrganizationByArtistAlbumSubtitle => 'Nested folders for artist and album'; @override String get updateAvailable => 'Update Available'; @@ -1260,12 +1210,10 @@ class AppLocalizationsKo extends AppLocalizations { String get providerPriorityTitle => 'Provider Priority'; @override - String get providerPriorityDescription => - 'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.'; + String get providerPriorityDescription => 'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.'; @override - String get providerPriorityInfo => - 'If a track is not available on the first provider, the app will automatically try the next one.'; + String get providerPriorityInfo => 'If a track is not available on the first provider, the app will automatically try the next one.'; @override String get providerBuiltIn => 'Built-in'; @@ -1277,19 +1225,16 @@ class AppLocalizationsKo extends AppLocalizations { String get metadataProviderPriority => 'Metadata Provider Priority'; @override - String get metadataProviderPrioritySubtitle => - 'Order used when fetching track metadata'; + String get metadataProviderPrioritySubtitle => 'Order used when fetching track metadata'; @override String get metadataProviderPriorityTitle => 'Metadata Priority'; @override - String get metadataProviderPriorityDescription => - 'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.'; + String get metadataProviderPriorityDescription => 'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.'; @override - String get metadataProviderPriorityInfo => - 'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.'; + String get metadataProviderPriorityInfo => 'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.'; @override String get metadataNoRateLimits => 'No rate limits'; @@ -1361,19 +1306,16 @@ class AppLocalizationsKo extends AppLocalizations { String get logIssueSummary => 'Issue Summary'; @override - String get logIspBlockingDescription => - 'Your ISP may be blocking access to download services'; + String get logIspBlockingDescription => 'Your ISP may be blocking access to download services'; @override - String get logIspBlockingSuggestion => - 'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8'; + String get logIspBlockingSuggestion => 'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8'; @override String get logRateLimitedDescription => 'Too many requests to the service'; @override - String get logRateLimitedSuggestion => - 'Wait a few minutes before trying again'; + String get logRateLimitedSuggestion => 'Wait a few minutes before trying again'; @override String get logNetworkErrorDescription => 'Connection issues detected'; @@ -1382,12 +1324,10 @@ class AppLocalizationsKo extends AppLocalizations { String get logNetworkErrorSuggestion => 'Check your internet connection'; @override - String get logTrackNotFoundDescription => - 'Some tracks could not be found on download services'; + String get logTrackNotFoundDescription => 'Some tracks could not be found on download services'; @override - String get logTrackNotFoundSuggestion => - 'The track may not be available in lossless quality'; + String get logTrackNotFoundSuggestion => 'The track may not be available in lossless quality'; @override String logTotalErrors(int count) { @@ -1413,8 +1353,7 @@ class AppLocalizationsKo extends AppLocalizations { String get credentialsTitle => 'Spotify Credentials'; @override - String get credentialsDescription => - 'Enter your Client ID and Secret to use your own Spotify application quota.'; + String get credentialsDescription => 'Enter your Client ID and Secret to use your own Spotify application quota.'; @override String get credentialsClientId => 'Client ID'; @@ -1468,8 +1407,7 @@ class AppLocalizationsKo extends AppLocalizations { String get lyricsMode => 'Lyrics Mode'; @override - String get lyricsModeDescription => - 'Choose how lyrics are saved with your downloads'; + String get lyricsModeDescription => 'Choose how lyrics are saved with your downloads'; @override String get lyricsModeEmbed => 'Embed in file'; @@ -1481,8 +1419,7 @@ class AppLocalizationsKo extends AppLocalizations { String get lyricsModeExternal => 'External .lrc file'; @override - String get lyricsModeExternalSubtitle => - 'Separate .lrc file for players like Samsung Music'; + String get lyricsModeExternalSubtitle => 'Separate .lrc file for players like Samsung Music'; @override String get lyricsModeBoth => 'Both'; @@ -1642,8 +1579,7 @@ class AppLocalizationsKo extends AppLocalizations { String get trackDeleteConfirmTitle => 'Remove from device?'; @override - String get trackDeleteConfirmMessage => - 'This will permanently delete the downloaded file and remove it from your history.'; + String get trackDeleteConfirmMessage => 'This will permanently delete the downloaded file and remove it from your history.'; @override String trackCannotOpen(String message) { @@ -1795,15 +1731,13 @@ class AppLocalizationsKo extends AppLocalizations { String get extensionsNoExtensions => 'No extensions installed'; @override - String get extensionsNoExtensionsSubtitle => - 'Install .spotiflac-ext files to add new providers'; + String get extensionsNoExtensionsSubtitle => 'Install .spotiflac-ext files to add new providers'; @override String get extensionsInstallButton => 'Install Extension'; @override - String get extensionsInfoTip => - 'Extensions can add new metadata and download providers. Only install extensions from trusted sources.'; + String get extensionsInfoTip => 'Extensions can add new metadata and download providers. Only install extensions from trusted sources.'; @override String get extensionsInstalledSuccess => 'Extension installed successfully'; @@ -1815,19 +1749,16 @@ class AppLocalizationsKo extends AppLocalizations { String get extensionsDownloadPrioritySubtitle => 'Set download service order'; @override - String get extensionsNoDownloadProvider => - 'No extensions with download provider'; + String get extensionsNoDownloadProvider => 'No extensions with download provider'; @override String get extensionsMetadataPriority => 'Metadata Priority'; @override - String get extensionsMetadataPrioritySubtitle => - 'Set search & metadata source order'; + String get extensionsMetadataPrioritySubtitle => 'Set search & metadata source order'; @override - String get extensionsNoMetadataProvider => - 'No extensions with metadata provider'; + String get extensionsNoMetadataProvider => 'No extensions with metadata provider'; @override String get extensionsSearchProvider => 'Search Provider'; @@ -1836,8 +1767,7 @@ class AppLocalizationsKo extends AppLocalizations { String get extensionsNoCustomSearch => 'No extensions with custom search'; @override - String get extensionsSearchProviderDescription => - 'Choose which service to use for searching tracks'; + String get extensionsSearchProviderDescription => 'Choose which service to use for searching tracks'; @override String get extensionsCustomSearch => 'Custom search'; @@ -1879,8 +1809,7 @@ class AppLocalizationsKo extends AppLocalizations { String get enableLossyOptionSubtitleOn => 'Lossy quality option is available'; @override - String get enableLossyOptionSubtitleOff => - 'Downloads FLAC then converts to lossy format'; + String get enableLossyOptionSubtitleOff => 'Downloads FLAC then converts to lossy format'; @override String get lossyFormat => 'Lossy Format'; @@ -1892,12 +1821,10 @@ class AppLocalizationsKo extends AppLocalizations { String get lossyFormatMp3Subtitle => '320kbps, best compatibility'; @override - String get lossyFormatOpusSubtitle => - '128kbps, better quality at smaller size'; + String get lossyFormatOpusSubtitle => '128kbps, better quality at smaller size'; @override - String get qualityNote => - 'Actual quality depends on track availability from the service'; + String get qualityNote => 'Actual quality depends on track availability from the service'; @override String get downloadAskBeforeDownload => 'Ask Before Download'; @@ -1987,15 +1914,13 @@ class AppLocalizationsKo extends AppLocalizations { String get queueClearAll => 'Clear All'; @override - String get queueClearAllMessage => - 'Are you sure you want to clear all downloads?'; + String get queueClearAllMessage => 'Are you sure you want to clear all downloads?'; @override String get queueExportFailed => 'Export'; @override - String get queueExportFailedSuccess => - 'Failed downloads exported to TXT file'; + String get queueExportFailedSuccess => 'Failed downloads exported to TXT file'; @override String get queueExportFailedClear => 'Clear Failed'; @@ -2007,8 +1932,7 @@ class AppLocalizationsKo extends AppLocalizations { String get settingsAutoExportFailed => 'Auto-export failed downloads'; @override - String get settingsAutoExportFailedSubtitle => - 'Save failed downloads to TXT file automatically'; + String get settingsAutoExportFailedSubtitle => 'Save failed downloads to TXT file automatically'; @override String get settingsDownloadNetwork => 'Download Network'; @@ -2020,8 +1944,55 @@ class AppLocalizationsKo extends AppLocalizations { String get settingsDownloadNetworkWifiOnly => 'WiFi Only'; @override - String get settingsDownloadNetworkSubtitle => - 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + String get settingsDownloadNetworkSubtitle => 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + + @override + String get settingsCloudSave => 'Cloud Save'; + + @override + String get settingsCloudSaveSubtitle => 'Auto-upload to NAS or cloud storage'; + + @override + String get cloudSettingsTitle => 'Cloud Save'; + + @override + String get cloudSettingsSectionGeneral => 'General'; + + @override + String get cloudSettingsEnable => 'Enable Cloud Upload'; + + @override + String get cloudSettingsEnableSubtitle => 'Automatically upload files after download completes'; + + @override + String get cloudSettingsSectionProvider => 'Cloud Provider'; + + @override + String get cloudSettingsProvider => 'Provider'; + + @override + String get cloudSettingsProviderDescription => 'Select where to upload your downloaded files'; + + @override + String get cloudSettingsSectionServer => 'Server Configuration'; + + @override + String get cloudSettingsServerUrl => 'Server URL'; + + @override + String get cloudSettingsUsername => 'Username'; + + @override + String get cloudSettingsPassword => 'Password'; + + @override + String get cloudSettingsRemotePath => 'Remote Folder Path'; + + @override + String get cloudSettingsTestConnection => 'Test Connection'; + + @override + String get cloudSettingsInfo => 'Downloaded files will be automatically uploaded to your cloud storage after download completes. Original files are kept on your device.'; @override String get queueEmpty => 'No downloads in queue'; @@ -2057,8 +2028,7 @@ class AppLocalizationsKo extends AppLocalizations { String get albumFolderArtistYearAlbum => 'Artist / [Year] Album'; @override - String get albumFolderArtistYearAlbumSubtitle => - 'Albums/Artist Name/[2005] Album Name/'; + String get albumFolderArtistYearAlbumSubtitle => 'Albums/Artist Name/[2005] Album Name/'; @override String get albumFolderAlbumOnly => 'Album Only'; @@ -2076,8 +2046,7 @@ class AppLocalizationsKo extends AppLocalizations { String get albumFolderArtistAlbumSingles => 'Artist / Album + Singles'; @override - String get albumFolderArtistAlbumSinglesSubtitle => - 'Artist/Album/ and Artist/Singles/'; + String get albumFolderArtistAlbumSinglesSubtitle => 'Artist/Album/ and Artist/Singles/'; @override String get downloadedAlbumDeleteSelected => 'Delete Selected'; @@ -2187,8 +2156,7 @@ class AppLocalizationsKo extends AppLocalizations { String get discographySelectAlbums => 'Select Albums...'; @override - String get discographySelectAlbumsSubtitle => - 'Choose specific albums or singles'; + String get discographySelectAlbumsSubtitle => 'Choose specific albums or singles'; @override String get discographyFetchingTracks => 'Fetching tracks...'; @@ -2235,14 +2203,11 @@ class AppLocalizationsKo extends AppLocalizations { String get allFilesAccessDisabledSubtitle => 'Limited to media folders only'; @override - String get allFilesAccessDescription => - 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; + String get allFilesAccessDescription => 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; @override - String get allFilesAccessDeniedMessage => - 'Permission was denied. Please enable \'All files access\' manually in system settings.'; + String get allFilesAccessDeniedMessage => 'Permission was denied. Please enable \'All files access\' manually in system settings.'; @override - String get allFilesAccessDisabledMessage => - 'All Files Access disabled. The app will use limited storage access.'; + String get allFilesAccessDisabledMessage => 'All Files Access disabled. The app will use limited storage access.'; } diff --git a/lib/l10n/app_localizations_nl.dart b/lib/l10n/app_localizations_nl.dart index c49a41c8..e374693f 100644 --- a/lib/l10n/app_localizations_nl.dart +++ b/lib/l10n/app_localizations_nl.dart @@ -12,8 +12,7 @@ class AppLocalizationsNl extends AppLocalizations { String get appName => 'SpotiFLAC'; @override - String get appDescription => - 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; + String get appDescription => 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; @override String get navHome => 'Home'; @@ -99,15 +98,13 @@ class AppLocalizationsNl extends AppLocalizations { String get historyNoAlbums => 'No album downloads'; @override - String get historyNoAlbumsSubtitle => - 'Download multiple tracks from an album to see them here'; + String get historyNoAlbumsSubtitle => 'Download multiple tracks from an album to see them here'; @override String get historyNoSingles => 'No single downloads'; @override - String get historyNoSinglesSubtitle => - 'Single track downloads will appear here'; + String get historyNoSinglesSubtitle => 'Single track downloads will appear here'; @override String get historySearchHint => 'Search history...'; @@ -155,8 +152,7 @@ class AppLocalizationsNl extends AppLocalizations { String get downloadAskQuality => 'Ask Quality Before Download'; @override - String get downloadAskQualitySubtitle => - 'Show quality picker for each download'; + String get downloadAskQualitySubtitle => 'Show quality picker for each download'; @override String get downloadFilenameFormat => 'Filename Format'; @@ -168,8 +164,7 @@ class AppLocalizationsNl extends AppLocalizations { String get downloadSeparateSingles => 'Separate Singles'; @override - String get downloadSeparateSinglesSubtitle => - 'Put single tracks in a separate folder'; + String get downloadSeparateSinglesSubtitle => 'Put single tracks in a separate folder'; @override String get qualityBest => 'Best Available'; @@ -226,8 +221,7 @@ class AppLocalizationsNl extends AppLocalizations { String get optionsPrimaryProvider => 'Primary Provider'; @override - String get optionsPrimaryProviderSubtitle => - 'Service used when searching by track name.'; + String get optionsPrimaryProviderSubtitle => 'Service used when searching by track name.'; @override String optionsUsingExtension(String extensionName) { @@ -235,15 +229,13 @@ class AppLocalizationsNl extends AppLocalizations { } @override - String get optionsSwitchBack => - 'Tap Deezer or Spotify to switch back from extension'; + String get optionsSwitchBack => 'Tap Deezer or Spotify to switch back from extension'; @override String get optionsAutoFallback => 'Auto Fallback'; @override - String get optionsAutoFallbackSubtitle => - 'Try other services if download fails'; + String get optionsAutoFallbackSubtitle => 'Try other services if download fails'; @override String get optionsUseExtensionProviders => 'Use Extension Providers'; @@ -258,15 +250,13 @@ class AppLocalizationsNl extends AppLocalizations { String get optionsEmbedLyrics => 'Embed Lyrics'; @override - String get optionsEmbedLyricsSubtitle => - 'Embed synced lyrics into FLAC files'; + String get optionsEmbedLyricsSubtitle => 'Embed synced lyrics into FLAC files'; @override String get optionsMaxQualityCover => 'Max Quality Cover'; @override - String get optionsMaxQualityCoverSubtitle => - 'Download highest resolution cover art'; + String get optionsMaxQualityCoverSubtitle => 'Download highest resolution cover art'; @override String get optionsConcurrentDownloads => 'Concurrent Downloads'; @@ -280,8 +270,7 @@ class AppLocalizationsNl extends AppLocalizations { } @override - String get optionsConcurrentWarning => - 'Parallel downloads may trigger rate limiting'; + String get optionsConcurrentWarning => 'Parallel downloads may trigger rate limiting'; @override String get optionsExtensionStore => 'Extension Store'; @@ -293,8 +282,7 @@ class AppLocalizationsNl extends AppLocalizations { String get optionsCheckUpdates => 'Check for Updates'; @override - String get optionsCheckUpdatesSubtitle => - 'Notify when new version is available'; + String get optionsCheckUpdatesSubtitle => 'Notify when new version is available'; @override String get optionsUpdateChannel => 'Update Channel'; @@ -306,15 +294,13 @@ class AppLocalizationsNl extends AppLocalizations { String get optionsUpdateChannelPreview => 'Get preview releases'; @override - String get optionsUpdateChannelWarning => - 'Preview may contain bugs or incomplete features'; + String get optionsUpdateChannelWarning => 'Preview may contain bugs or incomplete features'; @override String get optionsClearHistory => 'Clear Download History'; @override - String get optionsClearHistorySubtitle => - 'Remove all downloaded tracks from history'; + String get optionsClearHistorySubtitle => 'Remove all downloaded tracks from history'; @override String get optionsDetailedLogging => 'Detailed Logging'; @@ -337,8 +323,7 @@ class AppLocalizationsNl extends AppLocalizations { String get optionsSpotifyCredentialsRequired => 'Required - tap to configure'; @override - String get optionsSpotifyWarning => - 'Spotify requires your own API credentials. Get them free from developer.spotify.com'; + String get optionsSpotifyWarning => 'Spotify requires your own API credentials. Get them free from developer.spotify.com'; @override String get extensionsTitle => 'Extensions'; @@ -402,8 +387,7 @@ class AppLocalizationsNl extends AppLocalizations { String get aboutOriginalCreator => 'Creator of the original SpotiFLAC'; @override - String get aboutLogoArtist => - 'The talented artist who created our beautiful app logo!'; + String get aboutLogoArtist => 'The talented artist who created our beautiful app logo!'; @override String get aboutTranslators => 'Translators'; @@ -463,34 +447,28 @@ class AppLocalizationsNl extends AppLocalizations { String get aboutVersion => 'Version'; @override - String get aboutBinimumDesc => - 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; + String get aboutBinimumDesc => 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; @override - String get aboutSachinsenalDesc => - 'The original HiFi project creator. The foundation of Tidal integration!'; + String get aboutSachinsenalDesc => 'The original HiFi project creator. The foundation of Tidal integration!'; @override - String get aboutSjdonadoDesc => - 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; + String get aboutSjdonadoDesc => 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; @override String get aboutDoubleDouble => 'DoubleDouble'; @override - String get aboutDoubleDoubleDesc => - 'Amazing API for Amazon Music downloads. Thank you for making it free!'; + String get aboutDoubleDoubleDesc => 'Amazing API for Amazon Music downloads. Thank you for making it free!'; @override String get aboutDabMusic => 'DAB Music'; @override - String get aboutDabMusicDesc => - 'The best Qobuz streaming API. Hi-Res downloads wouldn\'t be possible without this!'; + String get aboutDabMusicDesc => 'The best Qobuz streaming API. Hi-Res downloads wouldn\'t be possible without this!'; @override - String get aboutAppDescription => - 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; + String get aboutAppDescription => 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; @override String get albumTitle => 'Album'; @@ -595,8 +573,7 @@ class AppLocalizationsNl extends AppLocalizations { String get setupStoragePermission => 'Storage Permission'; @override - String get setupStoragePermissionSubtitle => - 'Required to save downloaded files'; + String get setupStoragePermissionSubtitle => 'Required to save downloaded files'; @override String get setupStoragePermissionGranted => 'Permission granted'; @@ -623,19 +600,16 @@ class AppLocalizationsNl extends AppLocalizations { String get setupStorageAccessRequired => 'Storage Access Required'; @override - String get setupStorageAccessMessage => - 'SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.'; + String get setupStorageAccessMessage => 'SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.'; @override - String get setupStorageAccessMessageAndroid11 => - 'Android 11+ requires \"All files access\" permission to save files to your chosen download folder.'; + String get setupStorageAccessMessageAndroid11 => 'Android 11+ requires \"All files access\" permission to save files to your chosen download folder.'; @override String get setupOpenSettings => 'Open Settings'; @override - String get setupPermissionDeniedMessage => - 'Permission denied. Please grant all permissions to continue.'; + String get setupPermissionDeniedMessage => 'Permission denied. Please grant all permissions to continue.'; @override String setupPermissionRequired(String permissionType) { @@ -654,8 +628,7 @@ class AppLocalizationsNl extends AppLocalizations { String get setupUseDefaultFolder => 'Use Default Folder?'; @override - String get setupNoFolderSelected => - 'No folder selected. Would you like to use the default Music folder?'; + String get setupNoFolderSelected => 'No folder selected. Would you like to use the default Music folder?'; @override String get setupUseDefault => 'Use Default'; @@ -664,15 +637,13 @@ class AppLocalizationsNl extends AppLocalizations { String get setupDownloadLocationTitle => 'Download Location'; @override - String get setupDownloadLocationIosMessage => - 'On iOS, downloads are saved to the app\'s Documents folder. You can access them via the Files app.'; + String get setupDownloadLocationIosMessage => 'On iOS, downloads are saved to the app\'s Documents folder. You can access them via the Files app.'; @override String get setupAppDocumentsFolder => 'App Documents Folder'; @override - String get setupAppDocumentsFolderSubtitle => - 'Recommended - accessible via Files app'; + String get setupAppDocumentsFolderSubtitle => 'Recommended - accessible via Files app'; @override String get setupChooseFromFiles => 'Choose from Files'; @@ -681,12 +652,10 @@ class AppLocalizationsNl extends AppLocalizations { String get setupChooseFromFilesSubtitle => 'Select iCloud or other location'; @override - String get setupIosEmptyFolderWarning => - 'iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.'; + String get setupIosEmptyFolderWarning => 'iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.'; @override - String get setupIcloudNotSupported => - 'iCloud Drive is not supported. Please use the app Documents folder.'; + String get setupIcloudNotSupported => 'iCloud Drive is not supported. Please use the app Documents folder.'; @override String get setupDownloadInFlac => 'Download Spotify tracks in FLAC'; @@ -713,8 +682,7 @@ class AppLocalizationsNl extends AppLocalizations { String get setupStorageRequired => 'Storage Permission Required'; @override - String get setupStorageDescription => - 'SpotiFLAC needs storage permission to save your downloaded music files.'; + String get setupStorageDescription => 'SpotiFLAC needs storage permission to save your downloaded music files.'; @override String get setupNotificationGranted => 'Notification Permission Granted!'; @@ -723,8 +691,7 @@ class AppLocalizationsNl extends AppLocalizations { String get setupNotificationEnable => 'Enable Notifications'; @override - String get setupNotificationDescription => - 'Get notified when downloads complete or require attention.'; + String get setupNotificationDescription => 'Get notified when downloads complete or require attention.'; @override String get setupFolderSelected => 'Download Folder Selected!'; @@ -733,8 +700,7 @@ class AppLocalizationsNl extends AppLocalizations { String get setupFolderChoose => 'Choose Download Folder'; @override - String get setupFolderDescription => - 'Select a folder where your downloaded music will be saved.'; + String get setupFolderDescription => 'Select a folder where your downloaded music will be saved.'; @override String get setupChangeFolder => 'Change Folder'; @@ -746,8 +712,7 @@ class AppLocalizationsNl extends AppLocalizations { String get setupSpotifyApiOptional => 'Spotify API (Optional)'; @override - String get setupSpotifyApiDescription => - 'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.'; + String get setupSpotifyApiDescription => 'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.'; @override String get setupUseSpotifyApi => 'Use Spotify API'; @@ -765,8 +730,7 @@ class AppLocalizationsNl extends AppLocalizations { String get setupEnterClientSecret => 'Enter Spotify Client Secret'; @override - String get setupGetFreeCredentials => - 'Get your free API credentials from the Spotify Developer Dashboard.'; + String get setupGetFreeCredentials => 'Get your free API credentials from the Spotify Developer Dashboard.'; @override String get setupEnableNotifications => 'Enable Notifications'; @@ -775,12 +739,10 @@ class AppLocalizationsNl extends AppLocalizations { String get setupProceedToNextStep => 'You can now proceed to the next step.'; @override - String get setupNotificationProgressDescription => - 'You will receive download progress notifications.'; + String get setupNotificationProgressDescription => 'You will receive download progress notifications.'; @override - String get setupNotificationBackgroundDescription => - 'Get notified about download progress and completion. This helps you track downloads when the app is in background.'; + String get setupNotificationBackgroundDescription => 'Get notified about download progress and completion. This helps you track downloads when the app is in background.'; @override String get setupSkipForNow => 'Skip for now'; @@ -798,12 +760,10 @@ class AppLocalizationsNl extends AppLocalizations { String get setupSkipAndStart => 'Skip & Start'; @override - String get setupAllowAccessToManageFiles => - 'Please enable \"Allow access to manage all files\" in the next screen.'; + String get setupAllowAccessToManageFiles => 'Please enable \"Allow access to manage all files\" in the next screen.'; @override - String get setupGetCredentialsFromSpotify => - 'Get credentials from developer.spotify.com'; + String get setupGetCredentialsFromSpotify => 'Get credentials from developer.spotify.com'; @override String get dialogCancel => 'Cancel'; @@ -854,8 +814,7 @@ class AppLocalizationsNl extends AppLocalizations { String get dialogDiscardChanges => 'Discard Changes?'; @override - String get dialogUnsavedChanges => - 'You have unsaved changes. Do you want to discard them?'; + String get dialogUnsavedChanges => 'You have unsaved changes. Do you want to discard them?'; @override String get dialogDownloadFailed => 'Download Failed'; @@ -873,8 +832,7 @@ class AppLocalizationsNl extends AppLocalizations { String get dialogClearAll => 'Clear All'; @override - String get dialogClearAllDownloads => - 'Are you sure you want to clear all downloads?'; + String get dialogClearAllDownloads => 'Are you sure you want to clear all downloads?'; @override String get dialogRemoveFromDevice => 'Remove from device?'; @@ -883,8 +841,7 @@ class AppLocalizationsNl extends AppLocalizations { String get dialogRemoveExtension => 'Remove Extension'; @override - String get dialogRemoveExtensionMessage => - 'Are you sure you want to remove this extension? This cannot be undone.'; + String get dialogRemoveExtensionMessage => 'Are you sure you want to remove this extension? This cannot be undone.'; @override String get dialogUninstallExtension => 'Uninstall Extension?'; @@ -898,8 +855,7 @@ class AppLocalizationsNl extends AppLocalizations { String get dialogClearHistoryTitle => 'Clear History'; @override - String get dialogClearHistoryMessage => - 'Are you sure you want to clear all download history? This cannot be undone.'; + String get dialogClearHistoryMessage => 'Are you sure you want to clear all download history? This cannot be undone.'; @override String get dialogDeleteSelectedTitle => 'Delete Selected'; @@ -994,8 +950,7 @@ class AppLocalizationsNl extends AppLocalizations { String get snackbarProviderPrioritySaved => 'Provider priority saved'; @override - String get snackbarMetadataProviderSaved => - 'Metadata provider priority saved'; + String get snackbarMetadataProviderSaved => 'Metadata provider priority saved'; @override String snackbarExtensionInstalled(String extensionName) { @@ -1017,8 +972,7 @@ class AppLocalizationsNl extends AppLocalizations { String get errorRateLimited => 'Rate Limited'; @override - String get errorRateLimitedMessage => - 'Too many requests. Please wait a moment before searching again.'; + String get errorRateLimitedMessage => 'Too many requests. Please wait a moment before searching again.'; @override String errorFailedToLoad(String item) { @@ -1185,23 +1139,19 @@ class AppLocalizationsNl extends AppLocalizations { String get folderOrganizationByArtistAlbum => 'Artist/Album'; @override - String get folderOrganizationDescription => - 'Organize downloaded files into folders'; + String get folderOrganizationDescription => 'Organize downloaded files into folders'; @override String get folderOrganizationNoneSubtitle => 'All files in download folder'; @override - String get folderOrganizationByArtistSubtitle => - 'Separate folder for each artist'; + String get folderOrganizationByArtistSubtitle => 'Separate folder for each artist'; @override - String get folderOrganizationByAlbumSubtitle => - 'Separate folder for each album'; + String get folderOrganizationByAlbumSubtitle => 'Separate folder for each album'; @override - String get folderOrganizationByArtistAlbumSubtitle => - 'Nested folders for artist and album'; + String get folderOrganizationByArtistAlbumSubtitle => 'Nested folders for artist and album'; @override String get updateAvailable => 'Update Available'; @@ -1260,12 +1210,10 @@ class AppLocalizationsNl extends AppLocalizations { String get providerPriorityTitle => 'Provider Priority'; @override - String get providerPriorityDescription => - 'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.'; + String get providerPriorityDescription => 'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.'; @override - String get providerPriorityInfo => - 'If a track is not available on the first provider, the app will automatically try the next one.'; + String get providerPriorityInfo => 'If a track is not available on the first provider, the app will automatically try the next one.'; @override String get providerBuiltIn => 'Built-in'; @@ -1277,19 +1225,16 @@ class AppLocalizationsNl extends AppLocalizations { String get metadataProviderPriority => 'Metadata Provider Priority'; @override - String get metadataProviderPrioritySubtitle => - 'Order used when fetching track metadata'; + String get metadataProviderPrioritySubtitle => 'Order used when fetching track metadata'; @override String get metadataProviderPriorityTitle => 'Metadata Priority'; @override - String get metadataProviderPriorityDescription => - 'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.'; + String get metadataProviderPriorityDescription => 'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.'; @override - String get metadataProviderPriorityInfo => - 'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.'; + String get metadataProviderPriorityInfo => 'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.'; @override String get metadataNoRateLimits => 'No rate limits'; @@ -1361,19 +1306,16 @@ class AppLocalizationsNl extends AppLocalizations { String get logIssueSummary => 'Issue Summary'; @override - String get logIspBlockingDescription => - 'Your ISP may be blocking access to download services'; + String get logIspBlockingDescription => 'Your ISP may be blocking access to download services'; @override - String get logIspBlockingSuggestion => - 'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8'; + String get logIspBlockingSuggestion => 'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8'; @override String get logRateLimitedDescription => 'Too many requests to the service'; @override - String get logRateLimitedSuggestion => - 'Wait a few minutes before trying again'; + String get logRateLimitedSuggestion => 'Wait a few minutes before trying again'; @override String get logNetworkErrorDescription => 'Connection issues detected'; @@ -1382,12 +1324,10 @@ class AppLocalizationsNl extends AppLocalizations { String get logNetworkErrorSuggestion => 'Check your internet connection'; @override - String get logTrackNotFoundDescription => - 'Some tracks could not be found on download services'; + String get logTrackNotFoundDescription => 'Some tracks could not be found on download services'; @override - String get logTrackNotFoundSuggestion => - 'The track may not be available in lossless quality'; + String get logTrackNotFoundSuggestion => 'The track may not be available in lossless quality'; @override String logTotalErrors(int count) { @@ -1413,8 +1353,7 @@ class AppLocalizationsNl extends AppLocalizations { String get credentialsTitle => 'Spotify Credentials'; @override - String get credentialsDescription => - 'Enter your Client ID and Secret to use your own Spotify application quota.'; + String get credentialsDescription => 'Enter your Client ID and Secret to use your own Spotify application quota.'; @override String get credentialsClientId => 'Client ID'; @@ -1468,8 +1407,7 @@ class AppLocalizationsNl extends AppLocalizations { String get lyricsMode => 'Lyrics Mode'; @override - String get lyricsModeDescription => - 'Choose how lyrics are saved with your downloads'; + String get lyricsModeDescription => 'Choose how lyrics are saved with your downloads'; @override String get lyricsModeEmbed => 'Embed in file'; @@ -1481,8 +1419,7 @@ class AppLocalizationsNl extends AppLocalizations { String get lyricsModeExternal => 'External .lrc file'; @override - String get lyricsModeExternalSubtitle => - 'Separate .lrc file for players like Samsung Music'; + String get lyricsModeExternalSubtitle => 'Separate .lrc file for players like Samsung Music'; @override String get lyricsModeBoth => 'Both'; @@ -1642,8 +1579,7 @@ class AppLocalizationsNl extends AppLocalizations { String get trackDeleteConfirmTitle => 'Remove from device?'; @override - String get trackDeleteConfirmMessage => - 'This will permanently delete the downloaded file and remove it from your history.'; + String get trackDeleteConfirmMessage => 'This will permanently delete the downloaded file and remove it from your history.'; @override String trackCannotOpen(String message) { @@ -1795,15 +1731,13 @@ class AppLocalizationsNl extends AppLocalizations { String get extensionsNoExtensions => 'No extensions installed'; @override - String get extensionsNoExtensionsSubtitle => - 'Install .spotiflac-ext files to add new providers'; + String get extensionsNoExtensionsSubtitle => 'Install .spotiflac-ext files to add new providers'; @override String get extensionsInstallButton => 'Install Extension'; @override - String get extensionsInfoTip => - 'Extensions can add new metadata and download providers. Only install extensions from trusted sources.'; + String get extensionsInfoTip => 'Extensions can add new metadata and download providers. Only install extensions from trusted sources.'; @override String get extensionsInstalledSuccess => 'Extension installed successfully'; @@ -1815,19 +1749,16 @@ class AppLocalizationsNl extends AppLocalizations { String get extensionsDownloadPrioritySubtitle => 'Set download service order'; @override - String get extensionsNoDownloadProvider => - 'No extensions with download provider'; + String get extensionsNoDownloadProvider => 'No extensions with download provider'; @override String get extensionsMetadataPriority => 'Metadata Priority'; @override - String get extensionsMetadataPrioritySubtitle => - 'Set search & metadata source order'; + String get extensionsMetadataPrioritySubtitle => 'Set search & metadata source order'; @override - String get extensionsNoMetadataProvider => - 'No extensions with metadata provider'; + String get extensionsNoMetadataProvider => 'No extensions with metadata provider'; @override String get extensionsSearchProvider => 'Search Provider'; @@ -1836,8 +1767,7 @@ class AppLocalizationsNl extends AppLocalizations { String get extensionsNoCustomSearch => 'No extensions with custom search'; @override - String get extensionsSearchProviderDescription => - 'Choose which service to use for searching tracks'; + String get extensionsSearchProviderDescription => 'Choose which service to use for searching tracks'; @override String get extensionsCustomSearch => 'Custom search'; @@ -1879,8 +1809,7 @@ class AppLocalizationsNl extends AppLocalizations { String get enableLossyOptionSubtitleOn => 'Lossy quality option is available'; @override - String get enableLossyOptionSubtitleOff => - 'Downloads FLAC then converts to lossy format'; + String get enableLossyOptionSubtitleOff => 'Downloads FLAC then converts to lossy format'; @override String get lossyFormat => 'Lossy Format'; @@ -1892,12 +1821,10 @@ class AppLocalizationsNl extends AppLocalizations { String get lossyFormatMp3Subtitle => '320kbps, best compatibility'; @override - String get lossyFormatOpusSubtitle => - '128kbps, better quality at smaller size'; + String get lossyFormatOpusSubtitle => '128kbps, better quality at smaller size'; @override - String get qualityNote => - 'Actual quality depends on track availability from the service'; + String get qualityNote => 'Actual quality depends on track availability from the service'; @override String get downloadAskBeforeDownload => 'Ask Before Download'; @@ -1987,15 +1914,13 @@ class AppLocalizationsNl extends AppLocalizations { String get queueClearAll => 'Clear All'; @override - String get queueClearAllMessage => - 'Are you sure you want to clear all downloads?'; + String get queueClearAllMessage => 'Are you sure you want to clear all downloads?'; @override String get queueExportFailed => 'Export'; @override - String get queueExportFailedSuccess => - 'Failed downloads exported to TXT file'; + String get queueExportFailedSuccess => 'Failed downloads exported to TXT file'; @override String get queueExportFailedClear => 'Clear Failed'; @@ -2007,8 +1932,7 @@ class AppLocalizationsNl extends AppLocalizations { String get settingsAutoExportFailed => 'Auto-export failed downloads'; @override - String get settingsAutoExportFailedSubtitle => - 'Save failed downloads to TXT file automatically'; + String get settingsAutoExportFailedSubtitle => 'Save failed downloads to TXT file automatically'; @override String get settingsDownloadNetwork => 'Download Network'; @@ -2020,8 +1944,55 @@ class AppLocalizationsNl extends AppLocalizations { String get settingsDownloadNetworkWifiOnly => 'WiFi Only'; @override - String get settingsDownloadNetworkSubtitle => - 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + String get settingsDownloadNetworkSubtitle => 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + + @override + String get settingsCloudSave => 'Cloud Save'; + + @override + String get settingsCloudSaveSubtitle => 'Auto-upload to NAS or cloud storage'; + + @override + String get cloudSettingsTitle => 'Cloud Save'; + + @override + String get cloudSettingsSectionGeneral => 'General'; + + @override + String get cloudSettingsEnable => 'Enable Cloud Upload'; + + @override + String get cloudSettingsEnableSubtitle => 'Automatically upload files after download completes'; + + @override + String get cloudSettingsSectionProvider => 'Cloud Provider'; + + @override + String get cloudSettingsProvider => 'Provider'; + + @override + String get cloudSettingsProviderDescription => 'Select where to upload your downloaded files'; + + @override + String get cloudSettingsSectionServer => 'Server Configuration'; + + @override + String get cloudSettingsServerUrl => 'Server URL'; + + @override + String get cloudSettingsUsername => 'Username'; + + @override + String get cloudSettingsPassword => 'Password'; + + @override + String get cloudSettingsRemotePath => 'Remote Folder Path'; + + @override + String get cloudSettingsTestConnection => 'Test Connection'; + + @override + String get cloudSettingsInfo => 'Downloaded files will be automatically uploaded to your cloud storage after download completes. Original files are kept on your device.'; @override String get queueEmpty => 'No downloads in queue'; @@ -2057,8 +2028,7 @@ class AppLocalizationsNl extends AppLocalizations { String get albumFolderArtistYearAlbum => 'Artist / [Year] Album'; @override - String get albumFolderArtistYearAlbumSubtitle => - 'Albums/Artist Name/[2005] Album Name/'; + String get albumFolderArtistYearAlbumSubtitle => 'Albums/Artist Name/[2005] Album Name/'; @override String get albumFolderAlbumOnly => 'Album Only'; @@ -2076,8 +2046,7 @@ class AppLocalizationsNl extends AppLocalizations { String get albumFolderArtistAlbumSingles => 'Artist / Album + Singles'; @override - String get albumFolderArtistAlbumSinglesSubtitle => - 'Artist/Album/ and Artist/Singles/'; + String get albumFolderArtistAlbumSinglesSubtitle => 'Artist/Album/ and Artist/Singles/'; @override String get downloadedAlbumDeleteSelected => 'Delete Selected'; @@ -2187,8 +2156,7 @@ class AppLocalizationsNl extends AppLocalizations { String get discographySelectAlbums => 'Select Albums...'; @override - String get discographySelectAlbumsSubtitle => - 'Choose specific albums or singles'; + String get discographySelectAlbumsSubtitle => 'Choose specific albums or singles'; @override String get discographyFetchingTracks => 'Fetching tracks...'; @@ -2235,14 +2203,11 @@ class AppLocalizationsNl extends AppLocalizations { String get allFilesAccessDisabledSubtitle => 'Limited to media folders only'; @override - String get allFilesAccessDescription => - 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; + String get allFilesAccessDescription => 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; @override - String get allFilesAccessDeniedMessage => - 'Permission was denied. Please enable \'All files access\' manually in system settings.'; + String get allFilesAccessDeniedMessage => 'Permission was denied. Please enable \'All files access\' manually in system settings.'; @override - String get allFilesAccessDisabledMessage => - 'All Files Access disabled. The app will use limited storage access.'; + String get allFilesAccessDisabledMessage => 'All Files Access disabled. The app will use limited storage access.'; } diff --git a/lib/l10n/app_localizations_pt.dart b/lib/l10n/app_localizations_pt.dart index e5af1901..17ac0e66 100644 --- a/lib/l10n/app_localizations_pt.dart +++ b/lib/l10n/app_localizations_pt.dart @@ -12,8 +12,7 @@ class AppLocalizationsPt extends AppLocalizations { String get appName => 'SpotiFLAC'; @override - String get appDescription => - 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; + String get appDescription => 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; @override String get navHome => 'Home'; @@ -99,15 +98,13 @@ class AppLocalizationsPt extends AppLocalizations { String get historyNoAlbums => 'No album downloads'; @override - String get historyNoAlbumsSubtitle => - 'Download multiple tracks from an album to see them here'; + String get historyNoAlbumsSubtitle => 'Download multiple tracks from an album to see them here'; @override String get historyNoSingles => 'No single downloads'; @override - String get historyNoSinglesSubtitle => - 'Single track downloads will appear here'; + String get historyNoSinglesSubtitle => 'Single track downloads will appear here'; @override String get historySearchHint => 'Search history...'; @@ -155,8 +152,7 @@ class AppLocalizationsPt extends AppLocalizations { String get downloadAskQuality => 'Ask Quality Before Download'; @override - String get downloadAskQualitySubtitle => - 'Show quality picker for each download'; + String get downloadAskQualitySubtitle => 'Show quality picker for each download'; @override String get downloadFilenameFormat => 'Filename Format'; @@ -168,8 +164,7 @@ class AppLocalizationsPt extends AppLocalizations { String get downloadSeparateSingles => 'Separate Singles'; @override - String get downloadSeparateSinglesSubtitle => - 'Put single tracks in a separate folder'; + String get downloadSeparateSinglesSubtitle => 'Put single tracks in a separate folder'; @override String get qualityBest => 'Best Available'; @@ -226,8 +221,7 @@ class AppLocalizationsPt extends AppLocalizations { String get optionsPrimaryProvider => 'Primary Provider'; @override - String get optionsPrimaryProviderSubtitle => - 'Service used when searching by track name.'; + String get optionsPrimaryProviderSubtitle => 'Service used when searching by track name.'; @override String optionsUsingExtension(String extensionName) { @@ -235,15 +229,13 @@ class AppLocalizationsPt extends AppLocalizations { } @override - String get optionsSwitchBack => - 'Tap Deezer or Spotify to switch back from extension'; + String get optionsSwitchBack => 'Tap Deezer or Spotify to switch back from extension'; @override String get optionsAutoFallback => 'Auto Fallback'; @override - String get optionsAutoFallbackSubtitle => - 'Try other services if download fails'; + String get optionsAutoFallbackSubtitle => 'Try other services if download fails'; @override String get optionsUseExtensionProviders => 'Use Extension Providers'; @@ -258,15 +250,13 @@ class AppLocalizationsPt extends AppLocalizations { String get optionsEmbedLyrics => 'Embed Lyrics'; @override - String get optionsEmbedLyricsSubtitle => - 'Embed synced lyrics into FLAC files'; + String get optionsEmbedLyricsSubtitle => 'Embed synced lyrics into FLAC files'; @override String get optionsMaxQualityCover => 'Max Quality Cover'; @override - String get optionsMaxQualityCoverSubtitle => - 'Download highest resolution cover art'; + String get optionsMaxQualityCoverSubtitle => 'Download highest resolution cover art'; @override String get optionsConcurrentDownloads => 'Concurrent Downloads'; @@ -280,8 +270,7 @@ class AppLocalizationsPt extends AppLocalizations { } @override - String get optionsConcurrentWarning => - 'Parallel downloads may trigger rate limiting'; + String get optionsConcurrentWarning => 'Parallel downloads may trigger rate limiting'; @override String get optionsExtensionStore => 'Extension Store'; @@ -293,8 +282,7 @@ class AppLocalizationsPt extends AppLocalizations { String get optionsCheckUpdates => 'Check for Updates'; @override - String get optionsCheckUpdatesSubtitle => - 'Notify when new version is available'; + String get optionsCheckUpdatesSubtitle => 'Notify when new version is available'; @override String get optionsUpdateChannel => 'Update Channel'; @@ -306,15 +294,13 @@ class AppLocalizationsPt extends AppLocalizations { String get optionsUpdateChannelPreview => 'Get preview releases'; @override - String get optionsUpdateChannelWarning => - 'Preview may contain bugs or incomplete features'; + String get optionsUpdateChannelWarning => 'Preview may contain bugs or incomplete features'; @override String get optionsClearHistory => 'Clear Download History'; @override - String get optionsClearHistorySubtitle => - 'Remove all downloaded tracks from history'; + String get optionsClearHistorySubtitle => 'Remove all downloaded tracks from history'; @override String get optionsDetailedLogging => 'Detailed Logging'; @@ -337,8 +323,7 @@ class AppLocalizationsPt extends AppLocalizations { String get optionsSpotifyCredentialsRequired => 'Required - tap to configure'; @override - String get optionsSpotifyWarning => - 'Spotify requires your own API credentials. Get them free from developer.spotify.com'; + String get optionsSpotifyWarning => 'Spotify requires your own API credentials. Get them free from developer.spotify.com'; @override String get extensionsTitle => 'Extensions'; @@ -402,8 +387,7 @@ class AppLocalizationsPt extends AppLocalizations { String get aboutOriginalCreator => 'Creator of the original SpotiFLAC'; @override - String get aboutLogoArtist => - 'The talented artist who created our beautiful app logo!'; + String get aboutLogoArtist => 'The talented artist who created our beautiful app logo!'; @override String get aboutTranslators => 'Translators'; @@ -463,34 +447,28 @@ class AppLocalizationsPt extends AppLocalizations { String get aboutVersion => 'Version'; @override - String get aboutBinimumDesc => - 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; + String get aboutBinimumDesc => 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; @override - String get aboutSachinsenalDesc => - 'The original HiFi project creator. The foundation of Tidal integration!'; + String get aboutSachinsenalDesc => 'The original HiFi project creator. The foundation of Tidal integration!'; @override - String get aboutSjdonadoDesc => - 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; + String get aboutSjdonadoDesc => 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; @override String get aboutDoubleDouble => 'DoubleDouble'; @override - String get aboutDoubleDoubleDesc => - 'Amazing API for Amazon Music downloads. Thank you for making it free!'; + String get aboutDoubleDoubleDesc => 'Amazing API for Amazon Music downloads. Thank you for making it free!'; @override String get aboutDabMusic => 'DAB Music'; @override - String get aboutDabMusicDesc => - 'The best Qobuz streaming API. Hi-Res downloads wouldn\'t be possible without this!'; + String get aboutDabMusicDesc => 'The best Qobuz streaming API. Hi-Res downloads wouldn\'t be possible without this!'; @override - String get aboutAppDescription => - 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; + String get aboutAppDescription => 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; @override String get albumTitle => 'Album'; @@ -595,8 +573,7 @@ class AppLocalizationsPt extends AppLocalizations { String get setupStoragePermission => 'Storage Permission'; @override - String get setupStoragePermissionSubtitle => - 'Required to save downloaded files'; + String get setupStoragePermissionSubtitle => 'Required to save downloaded files'; @override String get setupStoragePermissionGranted => 'Permission granted'; @@ -623,19 +600,16 @@ class AppLocalizationsPt extends AppLocalizations { String get setupStorageAccessRequired => 'Storage Access Required'; @override - String get setupStorageAccessMessage => - 'SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.'; + String get setupStorageAccessMessage => 'SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.'; @override - String get setupStorageAccessMessageAndroid11 => - 'Android 11+ requires \"All files access\" permission to save files to your chosen download folder.'; + String get setupStorageAccessMessageAndroid11 => 'Android 11+ requires \"All files access\" permission to save files to your chosen download folder.'; @override String get setupOpenSettings => 'Open Settings'; @override - String get setupPermissionDeniedMessage => - 'Permission denied. Please grant all permissions to continue.'; + String get setupPermissionDeniedMessage => 'Permission denied. Please grant all permissions to continue.'; @override String setupPermissionRequired(String permissionType) { @@ -654,8 +628,7 @@ class AppLocalizationsPt extends AppLocalizations { String get setupUseDefaultFolder => 'Use Default Folder?'; @override - String get setupNoFolderSelected => - 'No folder selected. Would you like to use the default Music folder?'; + String get setupNoFolderSelected => 'No folder selected. Would you like to use the default Music folder?'; @override String get setupUseDefault => 'Use Default'; @@ -664,15 +637,13 @@ class AppLocalizationsPt extends AppLocalizations { String get setupDownloadLocationTitle => 'Download Location'; @override - String get setupDownloadLocationIosMessage => - 'On iOS, downloads are saved to the app\'s Documents folder. You can access them via the Files app.'; + String get setupDownloadLocationIosMessage => 'On iOS, downloads are saved to the app\'s Documents folder. You can access them via the Files app.'; @override String get setupAppDocumentsFolder => 'App Documents Folder'; @override - String get setupAppDocumentsFolderSubtitle => - 'Recommended - accessible via Files app'; + String get setupAppDocumentsFolderSubtitle => 'Recommended - accessible via Files app'; @override String get setupChooseFromFiles => 'Choose from Files'; @@ -681,12 +652,10 @@ class AppLocalizationsPt extends AppLocalizations { String get setupChooseFromFilesSubtitle => 'Select iCloud or other location'; @override - String get setupIosEmptyFolderWarning => - 'iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.'; + String get setupIosEmptyFolderWarning => 'iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.'; @override - String get setupIcloudNotSupported => - 'iCloud Drive is not supported. Please use the app Documents folder.'; + String get setupIcloudNotSupported => 'iCloud Drive is not supported. Please use the app Documents folder.'; @override String get setupDownloadInFlac => 'Download Spotify tracks in FLAC'; @@ -713,8 +682,7 @@ class AppLocalizationsPt extends AppLocalizations { String get setupStorageRequired => 'Storage Permission Required'; @override - String get setupStorageDescription => - 'SpotiFLAC needs storage permission to save your downloaded music files.'; + String get setupStorageDescription => 'SpotiFLAC needs storage permission to save your downloaded music files.'; @override String get setupNotificationGranted => 'Notification Permission Granted!'; @@ -723,8 +691,7 @@ class AppLocalizationsPt extends AppLocalizations { String get setupNotificationEnable => 'Enable Notifications'; @override - String get setupNotificationDescription => - 'Get notified when downloads complete or require attention.'; + String get setupNotificationDescription => 'Get notified when downloads complete or require attention.'; @override String get setupFolderSelected => 'Download Folder Selected!'; @@ -733,8 +700,7 @@ class AppLocalizationsPt extends AppLocalizations { String get setupFolderChoose => 'Choose Download Folder'; @override - String get setupFolderDescription => - 'Select a folder where your downloaded music will be saved.'; + String get setupFolderDescription => 'Select a folder where your downloaded music will be saved.'; @override String get setupChangeFolder => 'Change Folder'; @@ -746,8 +712,7 @@ class AppLocalizationsPt extends AppLocalizations { String get setupSpotifyApiOptional => 'Spotify API (Optional)'; @override - String get setupSpotifyApiDescription => - 'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.'; + String get setupSpotifyApiDescription => 'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.'; @override String get setupUseSpotifyApi => 'Use Spotify API'; @@ -765,8 +730,7 @@ class AppLocalizationsPt extends AppLocalizations { String get setupEnterClientSecret => 'Enter Spotify Client Secret'; @override - String get setupGetFreeCredentials => - 'Get your free API credentials from the Spotify Developer Dashboard.'; + String get setupGetFreeCredentials => 'Get your free API credentials from the Spotify Developer Dashboard.'; @override String get setupEnableNotifications => 'Enable Notifications'; @@ -775,12 +739,10 @@ class AppLocalizationsPt extends AppLocalizations { String get setupProceedToNextStep => 'You can now proceed to the next step.'; @override - String get setupNotificationProgressDescription => - 'You will receive download progress notifications.'; + String get setupNotificationProgressDescription => 'You will receive download progress notifications.'; @override - String get setupNotificationBackgroundDescription => - 'Get notified about download progress and completion. This helps you track downloads when the app is in background.'; + String get setupNotificationBackgroundDescription => 'Get notified about download progress and completion. This helps you track downloads when the app is in background.'; @override String get setupSkipForNow => 'Skip for now'; @@ -798,12 +760,10 @@ class AppLocalizationsPt extends AppLocalizations { String get setupSkipAndStart => 'Skip & Start'; @override - String get setupAllowAccessToManageFiles => - 'Please enable \"Allow access to manage all files\" in the next screen.'; + String get setupAllowAccessToManageFiles => 'Please enable \"Allow access to manage all files\" in the next screen.'; @override - String get setupGetCredentialsFromSpotify => - 'Get credentials from developer.spotify.com'; + String get setupGetCredentialsFromSpotify => 'Get credentials from developer.spotify.com'; @override String get dialogCancel => 'Cancel'; @@ -854,8 +814,7 @@ class AppLocalizationsPt extends AppLocalizations { String get dialogDiscardChanges => 'Discard Changes?'; @override - String get dialogUnsavedChanges => - 'You have unsaved changes. Do you want to discard them?'; + String get dialogUnsavedChanges => 'You have unsaved changes. Do you want to discard them?'; @override String get dialogDownloadFailed => 'Download Failed'; @@ -873,8 +832,7 @@ class AppLocalizationsPt extends AppLocalizations { String get dialogClearAll => 'Clear All'; @override - String get dialogClearAllDownloads => - 'Are you sure you want to clear all downloads?'; + String get dialogClearAllDownloads => 'Are you sure you want to clear all downloads?'; @override String get dialogRemoveFromDevice => 'Remove from device?'; @@ -883,8 +841,7 @@ class AppLocalizationsPt extends AppLocalizations { String get dialogRemoveExtension => 'Remove Extension'; @override - String get dialogRemoveExtensionMessage => - 'Are you sure you want to remove this extension? This cannot be undone.'; + String get dialogRemoveExtensionMessage => 'Are you sure you want to remove this extension? This cannot be undone.'; @override String get dialogUninstallExtension => 'Uninstall Extension?'; @@ -898,8 +855,7 @@ class AppLocalizationsPt extends AppLocalizations { String get dialogClearHistoryTitle => 'Clear History'; @override - String get dialogClearHistoryMessage => - 'Are you sure you want to clear all download history? This cannot be undone.'; + String get dialogClearHistoryMessage => 'Are you sure you want to clear all download history? This cannot be undone.'; @override String get dialogDeleteSelectedTitle => 'Delete Selected'; @@ -994,8 +950,7 @@ class AppLocalizationsPt extends AppLocalizations { String get snackbarProviderPrioritySaved => 'Provider priority saved'; @override - String get snackbarMetadataProviderSaved => - 'Metadata provider priority saved'; + String get snackbarMetadataProviderSaved => 'Metadata provider priority saved'; @override String snackbarExtensionInstalled(String extensionName) { @@ -1017,8 +972,7 @@ class AppLocalizationsPt extends AppLocalizations { String get errorRateLimited => 'Rate Limited'; @override - String get errorRateLimitedMessage => - 'Too many requests. Please wait a moment before searching again.'; + String get errorRateLimitedMessage => 'Too many requests. Please wait a moment before searching again.'; @override String errorFailedToLoad(String item) { @@ -1185,23 +1139,19 @@ class AppLocalizationsPt extends AppLocalizations { String get folderOrganizationByArtistAlbum => 'Artist/Album'; @override - String get folderOrganizationDescription => - 'Organize downloaded files into folders'; + String get folderOrganizationDescription => 'Organize downloaded files into folders'; @override String get folderOrganizationNoneSubtitle => 'All files in download folder'; @override - String get folderOrganizationByArtistSubtitle => - 'Separate folder for each artist'; + String get folderOrganizationByArtistSubtitle => 'Separate folder for each artist'; @override - String get folderOrganizationByAlbumSubtitle => - 'Separate folder for each album'; + String get folderOrganizationByAlbumSubtitle => 'Separate folder for each album'; @override - String get folderOrganizationByArtistAlbumSubtitle => - 'Nested folders for artist and album'; + String get folderOrganizationByArtistAlbumSubtitle => 'Nested folders for artist and album'; @override String get updateAvailable => 'Update Available'; @@ -1260,12 +1210,10 @@ class AppLocalizationsPt extends AppLocalizations { String get providerPriorityTitle => 'Provider Priority'; @override - String get providerPriorityDescription => - 'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.'; + String get providerPriorityDescription => 'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.'; @override - String get providerPriorityInfo => - 'If a track is not available on the first provider, the app will automatically try the next one.'; + String get providerPriorityInfo => 'If a track is not available on the first provider, the app will automatically try the next one.'; @override String get providerBuiltIn => 'Built-in'; @@ -1277,19 +1225,16 @@ class AppLocalizationsPt extends AppLocalizations { String get metadataProviderPriority => 'Metadata Provider Priority'; @override - String get metadataProviderPrioritySubtitle => - 'Order used when fetching track metadata'; + String get metadataProviderPrioritySubtitle => 'Order used when fetching track metadata'; @override String get metadataProviderPriorityTitle => 'Metadata Priority'; @override - String get metadataProviderPriorityDescription => - 'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.'; + String get metadataProviderPriorityDescription => 'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.'; @override - String get metadataProviderPriorityInfo => - 'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.'; + String get metadataProviderPriorityInfo => 'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.'; @override String get metadataNoRateLimits => 'No rate limits'; @@ -1361,19 +1306,16 @@ class AppLocalizationsPt extends AppLocalizations { String get logIssueSummary => 'Issue Summary'; @override - String get logIspBlockingDescription => - 'Your ISP may be blocking access to download services'; + String get logIspBlockingDescription => 'Your ISP may be blocking access to download services'; @override - String get logIspBlockingSuggestion => - 'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8'; + String get logIspBlockingSuggestion => 'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8'; @override String get logRateLimitedDescription => 'Too many requests to the service'; @override - String get logRateLimitedSuggestion => - 'Wait a few minutes before trying again'; + String get logRateLimitedSuggestion => 'Wait a few minutes before trying again'; @override String get logNetworkErrorDescription => 'Connection issues detected'; @@ -1382,12 +1324,10 @@ class AppLocalizationsPt extends AppLocalizations { String get logNetworkErrorSuggestion => 'Check your internet connection'; @override - String get logTrackNotFoundDescription => - 'Some tracks could not be found on download services'; + String get logTrackNotFoundDescription => 'Some tracks could not be found on download services'; @override - String get logTrackNotFoundSuggestion => - 'The track may not be available in lossless quality'; + String get logTrackNotFoundSuggestion => 'The track may not be available in lossless quality'; @override String logTotalErrors(int count) { @@ -1413,8 +1353,7 @@ class AppLocalizationsPt extends AppLocalizations { String get credentialsTitle => 'Spotify Credentials'; @override - String get credentialsDescription => - 'Enter your Client ID and Secret to use your own Spotify application quota.'; + String get credentialsDescription => 'Enter your Client ID and Secret to use your own Spotify application quota.'; @override String get credentialsClientId => 'Client ID'; @@ -1468,8 +1407,7 @@ class AppLocalizationsPt extends AppLocalizations { String get lyricsMode => 'Lyrics Mode'; @override - String get lyricsModeDescription => - 'Choose how lyrics are saved with your downloads'; + String get lyricsModeDescription => 'Choose how lyrics are saved with your downloads'; @override String get lyricsModeEmbed => 'Embed in file'; @@ -1481,8 +1419,7 @@ class AppLocalizationsPt extends AppLocalizations { String get lyricsModeExternal => 'External .lrc file'; @override - String get lyricsModeExternalSubtitle => - 'Separate .lrc file for players like Samsung Music'; + String get lyricsModeExternalSubtitle => 'Separate .lrc file for players like Samsung Music'; @override String get lyricsModeBoth => 'Both'; @@ -1642,8 +1579,7 @@ class AppLocalizationsPt extends AppLocalizations { String get trackDeleteConfirmTitle => 'Remove from device?'; @override - String get trackDeleteConfirmMessage => - 'This will permanently delete the downloaded file and remove it from your history.'; + String get trackDeleteConfirmMessage => 'This will permanently delete the downloaded file and remove it from your history.'; @override String trackCannotOpen(String message) { @@ -1795,15 +1731,13 @@ class AppLocalizationsPt extends AppLocalizations { String get extensionsNoExtensions => 'No extensions installed'; @override - String get extensionsNoExtensionsSubtitle => - 'Install .spotiflac-ext files to add new providers'; + String get extensionsNoExtensionsSubtitle => 'Install .spotiflac-ext files to add new providers'; @override String get extensionsInstallButton => 'Install Extension'; @override - String get extensionsInfoTip => - 'Extensions can add new metadata and download providers. Only install extensions from trusted sources.'; + String get extensionsInfoTip => 'Extensions can add new metadata and download providers. Only install extensions from trusted sources.'; @override String get extensionsInstalledSuccess => 'Extension installed successfully'; @@ -1815,19 +1749,16 @@ class AppLocalizationsPt extends AppLocalizations { String get extensionsDownloadPrioritySubtitle => 'Set download service order'; @override - String get extensionsNoDownloadProvider => - 'No extensions with download provider'; + String get extensionsNoDownloadProvider => 'No extensions with download provider'; @override String get extensionsMetadataPriority => 'Metadata Priority'; @override - String get extensionsMetadataPrioritySubtitle => - 'Set search & metadata source order'; + String get extensionsMetadataPrioritySubtitle => 'Set search & metadata source order'; @override - String get extensionsNoMetadataProvider => - 'No extensions with metadata provider'; + String get extensionsNoMetadataProvider => 'No extensions with metadata provider'; @override String get extensionsSearchProvider => 'Search Provider'; @@ -1836,8 +1767,7 @@ class AppLocalizationsPt extends AppLocalizations { String get extensionsNoCustomSearch => 'No extensions with custom search'; @override - String get extensionsSearchProviderDescription => - 'Choose which service to use for searching tracks'; + String get extensionsSearchProviderDescription => 'Choose which service to use for searching tracks'; @override String get extensionsCustomSearch => 'Custom search'; @@ -1879,8 +1809,7 @@ class AppLocalizationsPt extends AppLocalizations { String get enableLossyOptionSubtitleOn => 'Lossy quality option is available'; @override - String get enableLossyOptionSubtitleOff => - 'Downloads FLAC then converts to lossy format'; + String get enableLossyOptionSubtitleOff => 'Downloads FLAC then converts to lossy format'; @override String get lossyFormat => 'Lossy Format'; @@ -1892,12 +1821,10 @@ class AppLocalizationsPt extends AppLocalizations { String get lossyFormatMp3Subtitle => '320kbps, best compatibility'; @override - String get lossyFormatOpusSubtitle => - '128kbps, better quality at smaller size'; + String get lossyFormatOpusSubtitle => '128kbps, better quality at smaller size'; @override - String get qualityNote => - 'Actual quality depends on track availability from the service'; + String get qualityNote => 'Actual quality depends on track availability from the service'; @override String get downloadAskBeforeDownload => 'Ask Before Download'; @@ -1987,15 +1914,13 @@ class AppLocalizationsPt extends AppLocalizations { String get queueClearAll => 'Clear All'; @override - String get queueClearAllMessage => - 'Are you sure you want to clear all downloads?'; + String get queueClearAllMessage => 'Are you sure you want to clear all downloads?'; @override String get queueExportFailed => 'Export'; @override - String get queueExportFailedSuccess => - 'Failed downloads exported to TXT file'; + String get queueExportFailedSuccess => 'Failed downloads exported to TXT file'; @override String get queueExportFailedClear => 'Clear Failed'; @@ -2007,8 +1932,7 @@ class AppLocalizationsPt extends AppLocalizations { String get settingsAutoExportFailed => 'Auto-export failed downloads'; @override - String get settingsAutoExportFailedSubtitle => - 'Save failed downloads to TXT file automatically'; + String get settingsAutoExportFailedSubtitle => 'Save failed downloads to TXT file automatically'; @override String get settingsDownloadNetwork => 'Download Network'; @@ -2020,8 +1944,55 @@ class AppLocalizationsPt extends AppLocalizations { String get settingsDownloadNetworkWifiOnly => 'WiFi Only'; @override - String get settingsDownloadNetworkSubtitle => - 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + String get settingsDownloadNetworkSubtitle => 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + + @override + String get settingsCloudSave => 'Cloud Save'; + + @override + String get settingsCloudSaveSubtitle => 'Auto-upload to NAS or cloud storage'; + + @override + String get cloudSettingsTitle => 'Cloud Save'; + + @override + String get cloudSettingsSectionGeneral => 'General'; + + @override + String get cloudSettingsEnable => 'Enable Cloud Upload'; + + @override + String get cloudSettingsEnableSubtitle => 'Automatically upload files after download completes'; + + @override + String get cloudSettingsSectionProvider => 'Cloud Provider'; + + @override + String get cloudSettingsProvider => 'Provider'; + + @override + String get cloudSettingsProviderDescription => 'Select where to upload your downloaded files'; + + @override + String get cloudSettingsSectionServer => 'Server Configuration'; + + @override + String get cloudSettingsServerUrl => 'Server URL'; + + @override + String get cloudSettingsUsername => 'Username'; + + @override + String get cloudSettingsPassword => 'Password'; + + @override + String get cloudSettingsRemotePath => 'Remote Folder Path'; + + @override + String get cloudSettingsTestConnection => 'Test Connection'; + + @override + String get cloudSettingsInfo => 'Downloaded files will be automatically uploaded to your cloud storage after download completes. Original files are kept on your device.'; @override String get queueEmpty => 'No downloads in queue'; @@ -2057,8 +2028,7 @@ class AppLocalizationsPt extends AppLocalizations { String get albumFolderArtistYearAlbum => 'Artist / [Year] Album'; @override - String get albumFolderArtistYearAlbumSubtitle => - 'Albums/Artist Name/[2005] Album Name/'; + String get albumFolderArtistYearAlbumSubtitle => 'Albums/Artist Name/[2005] Album Name/'; @override String get albumFolderAlbumOnly => 'Album Only'; @@ -2076,8 +2046,7 @@ class AppLocalizationsPt extends AppLocalizations { String get albumFolderArtistAlbumSingles => 'Artist / Album + Singles'; @override - String get albumFolderArtistAlbumSinglesSubtitle => - 'Artist/Album/ and Artist/Singles/'; + String get albumFolderArtistAlbumSinglesSubtitle => 'Artist/Album/ and Artist/Singles/'; @override String get downloadedAlbumDeleteSelected => 'Delete Selected'; @@ -2187,8 +2156,7 @@ class AppLocalizationsPt extends AppLocalizations { String get discographySelectAlbums => 'Select Albums...'; @override - String get discographySelectAlbumsSubtitle => - 'Choose specific albums or singles'; + String get discographySelectAlbumsSubtitle => 'Choose specific albums or singles'; @override String get discographyFetchingTracks => 'Fetching tracks...'; @@ -2235,28 +2203,24 @@ class AppLocalizationsPt extends AppLocalizations { String get allFilesAccessDisabledSubtitle => 'Limited to media folders only'; @override - String get allFilesAccessDescription => - 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; + String get allFilesAccessDescription => 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; @override - String get allFilesAccessDeniedMessage => - 'Permission was denied. Please enable \'All files access\' manually in system settings.'; + String get allFilesAccessDeniedMessage => 'Permission was denied. Please enable \'All files access\' manually in system settings.'; @override - String get allFilesAccessDisabledMessage => - 'All Files Access disabled. The app will use limited storage access.'; + String get allFilesAccessDisabledMessage => 'All Files Access disabled. The app will use limited storage access.'; } /// The translations for Portuguese, as used in Portugal (`pt_PT`). class AppLocalizationsPtPt extends AppLocalizationsPt { - AppLocalizationsPtPt() : super('pt_PT'); + AppLocalizationsPtPt(): super('pt_PT'); @override String get appName => 'SpotiFLAC'; @override - String get appDescription => - 'Baixe faixas do Spotify em qualidade sem perdas de Tidal, Qobuz e Amazon Music.'; + String get appDescription => 'Baixe faixas do Spotify em qualidade sem perdas de Tidal, Qobuz e Amazon Music.'; @override String get navHome => 'Início'; @@ -2285,8 +2249,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get homeSubtitle => 'Cole um link do Spotify ou procure por nome'; @override - String get homeSupports => - 'Suporte: Faixas, Álbuns, Playlists, URLs de Artista'; + String get homeSupports => 'Suporte: Faixas, Álbuns, Playlists, URLs de Artista'; @override String get homeRecent => 'Recentes'; @@ -2343,15 +2306,13 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get historyNoAlbums => 'Sem álbuns baixados'; @override - String get historyNoAlbumsSubtitle => - 'Baixe várias faixas de um álbum para vê-las aqui'; + String get historyNoAlbumsSubtitle => 'Baixe várias faixas de um álbum para vê-las aqui'; @override String get historyNoSingles => 'Sem singles baixados'; @override - String get historyNoSinglesSubtitle => - 'Os downloads de faixa individuais aparecerão aqui'; + String get historyNoSinglesSubtitle => 'Os downloads de faixa individuais aparecerão aqui'; @override String get settingsTitle => 'Configurações'; @@ -2396,8 +2357,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get downloadAskQuality => 'Perguntar qualidade antes de baixar'; @override - String get downloadAskQualitySubtitle => - 'Mostrar seletor de qualidade para cada download'; + String get downloadAskQualitySubtitle => 'Mostrar seletor de qualidade para cada download'; @override String get downloadFilenameFormat => 'Formato do Nome do Arquivo'; @@ -2409,8 +2369,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get downloadSeparateSingles => 'Separar Singles'; @override - String get downloadSeparateSinglesSubtitle => - 'Colocar singles numa pasta separada'; + String get downloadSeparateSinglesSubtitle => 'Colocar singles numa pasta separada'; @override String get qualityBest => 'Melhor Disponível'; @@ -2443,8 +2402,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get appearanceDynamicColor => 'Cores Dinâmicas'; @override - String get appearanceDynamicColorSubtitle => - 'Usar cores do seu papel de parede'; + String get appearanceDynamicColorSubtitle => 'Usar cores do seu papel de parede'; @override String get appearanceAccentColor => 'Cor de Destaque'; @@ -2468,8 +2426,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get optionsPrimaryProvider => 'Provedor Primário'; @override - String get optionsPrimaryProviderSubtitle => - 'Serviço usado ao pesquisar por nome da faixa.'; + String get optionsPrimaryProviderSubtitle => 'Serviço usado ao pesquisar por nome da faixa.'; @override String optionsUsingExtension(String extensionName) { @@ -2477,40 +2434,34 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { } @override - String get optionsSwitchBack => - 'Toque no Deezer ou Spotify para alternar de volta da extensão'; + String get optionsSwitchBack => 'Toque no Deezer ou Spotify para alternar de volta da extensão'; @override String get optionsAutoFallback => 'Fallback Automático'; @override - String get optionsAutoFallbackSubtitle => - 'Tentar outros serviços se o download falhar'; + String get optionsAutoFallbackSubtitle => 'Tentar outros serviços se o download falhar'; @override String get optionsUseExtensionProviders => 'Usar Provedores de Extensão'; @override - String get optionsUseExtensionProvidersOn => - 'Extensões serão tentadas primeiro'; + String get optionsUseExtensionProvidersOn => 'Extensões serão tentadas primeiro'; @override - String get optionsUseExtensionProvidersOff => - 'Usando apenas provedores integrados'; + String get optionsUseExtensionProvidersOff => 'Usando apenas provedores integrados'; @override String get optionsEmbedLyrics => 'Incorporar Letras'; @override - String get optionsEmbedLyricsSubtitle => - 'Incorporar letras sincronizadas aos arquivos FLAC'; + String get optionsEmbedLyricsSubtitle => 'Incorporar letras sincronizadas aos arquivos FLAC'; @override String get optionsMaxQualityCover => 'Capa de Qualidade Máxima'; @override - String get optionsMaxQualityCoverSubtitle => - 'Baixar capa do álbum com a mais alta resolução'; + String get optionsMaxQualityCoverSubtitle => 'Baixar capa do álbum com a mais alta resolução'; @override String get optionsConcurrentDownloads => 'Downloads Simultâneos'; @@ -2524,22 +2475,19 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { } @override - String get optionsConcurrentWarning => - 'Downloads simultâneos podem causar um limite da taxa (ratelimit)'; + String get optionsConcurrentWarning => 'Downloads simultâneos podem causar um limite da taxa (ratelimit)'; @override String get optionsExtensionStore => 'Loja de Extensões'; @override - String get optionsExtensionStoreSubtitle => - 'Mostrar aba da Loja na navegação'; + String get optionsExtensionStoreSubtitle => 'Mostrar aba da Loja na navegação'; @override String get optionsCheckUpdates => 'Procurar Atualizações'; @override - String get optionsCheckUpdatesSubtitle => - 'Notificar quando uma nova versão estiver disponível'; + String get optionsCheckUpdatesSubtitle => 'Notificar quando uma nova versão estiver disponível'; @override String get optionsUpdateChannel => 'Canal de Atualização'; @@ -2551,22 +2499,19 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get optionsUpdateChannelPreview => 'Obter versões de prévia'; @override - String get optionsUpdateChannelWarning => - 'A prévia pode conter erros ou recursos incompletos'; + String get optionsUpdateChannelWarning => 'A prévia pode conter erros ou recursos incompletos'; @override String get optionsClearHistory => 'Limpar Histórico de Download'; @override - String get optionsClearHistorySubtitle => - 'Remover todas as faixas baixadas do histórico'; + String get optionsClearHistorySubtitle => 'Remover todas as faixas baixadas do histórico'; @override String get optionsDetailedLogging => 'Registro detalhado'; @override - String get optionsDetailedLoggingOn => - 'Registros detalhados estão sendo gravados'; + String get optionsDetailedLoggingOn => 'Registros detalhados estão sendo gravados'; @override String get optionsDetailedLoggingOff => 'Habilitar para relatórios de erros'; @@ -2580,12 +2525,10 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { } @override - String get optionsSpotifyCredentialsRequired => - 'Obrigatório - toque para configurar'; + String get optionsSpotifyCredentialsRequired => 'Obrigatório - toque para configurar'; @override - String get optionsSpotifyWarning => - 'O Spotify requer as suas próprias credenciais de API. Consiga gratuitamente em developer.spotify.com'; + String get optionsSpotifyWarning => 'O Spotify requer as suas próprias credenciais de API. Consiga gratuitamente em developer.spotify.com'; @override String get extensionsTitle => 'Extensões'; @@ -2597,8 +2540,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get extensionsNone => 'Nenhuma extensão instalada'; @override - String get extensionsNoneSubtitle => - 'Instalar extensões a partir da aba Loja'; + String get extensionsNoneSubtitle => 'Instalar extensões a partir da aba Loja'; @override String get extensionsEnabled => 'Habilitado'; @@ -2650,8 +2592,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get aboutOriginalCreator => 'Criador do SpotiFLAC original'; @override - String get aboutLogoArtist => - 'O artista talentoso que criou o nosso lindo logotipo do aplicativo!'; + String get aboutLogoArtist => 'O artista talentoso que criou o nosso lindo logotipo do aplicativo!'; @override String get aboutSpecialThanks => 'Agradecimentos Especiais'; @@ -2669,15 +2610,13 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get aboutReportIssue => 'Reportar um problema'; @override - String get aboutReportIssueSubtitle => - 'Reporte qualquer problema que encontrar'; + String get aboutReportIssueSubtitle => 'Reporte qualquer problema que encontrar'; @override String get aboutFeatureRequest => 'Solicitação de recurso'; @override - String get aboutFeatureRequestSubtitle => - 'Sugira novos recursos para o aplicativo'; + String get aboutFeatureRequestSubtitle => 'Sugira novos recursos para o aplicativo'; @override String get aboutSupport => 'Apoiar'; @@ -2695,30 +2634,25 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get aboutVersion => 'Versão'; @override - String get aboutBinimumDesc => - 'O criador da API QQDL e HiFi. Sem esta API, os downloads Tidal não existiriam!'; + String get aboutBinimumDesc => 'O criador da API QQDL e HiFi. Sem esta API, os downloads Tidal não existiriam!'; @override - String get aboutSachinsenalDesc => - 'O criador original do projeto HiFi. A base da integração do Tidal!'; + String get aboutSachinsenalDesc => 'O criador original do projeto HiFi. A base da integração do Tidal!'; @override String get aboutDoubleDouble => 'DoubleDouble'; @override - String get aboutDoubleDoubleDesc => - 'API incrível para downloads do Amazon Music. Obrigado por fazê-lo gratuitamente!'; + String get aboutDoubleDoubleDesc => 'API incrível para downloads do Amazon Music. Obrigado por fazê-lo gratuitamente!'; @override String get aboutDabMusic => 'DAB Music'; @override - String get aboutDabMusicDesc => - 'A melhor API de streaming do Qobuz. Downloads de alta resolução não seriam possíveis sem isso!'; + String get aboutDabMusicDesc => 'A melhor API de streaming do Qobuz. Downloads de alta resolução não seriam possíveis sem isso!'; @override - String get aboutAppDescription => - 'Baixe faixas do Spotify em qualidade sem perdas do Tidal, Qobuz e Amazon Music.'; + String get aboutAppDescription => 'Baixe faixas do Spotify em qualidade sem perdas do Tidal, Qobuz e Amazon Music.'; @override String get albumTitle => 'Álbum'; @@ -2823,8 +2757,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get setupStoragePermission => 'Permissão de Armazenamento'; @override - String get setupStoragePermissionSubtitle => - 'Necessária para salvar arquivos baixados'; + String get setupStoragePermissionSubtitle => 'Necessária para salvar arquivos baixados'; @override String get setupStoragePermissionGranted => 'Permissão concedida'; @@ -2851,19 +2784,16 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get setupStorageAccessRequired => 'Acesso ao Armazenamento Necessário'; @override - String get setupStorageAccessMessage => - 'O SpotiFLAC precisa da permissão \"Acesso a todos os arquivos\" para salvar arquivos de música na sua pasta escolhida.'; + String get setupStorageAccessMessage => 'O SpotiFLAC precisa da permissão \"Acesso a todos os arquivos\" para salvar arquivos de música na sua pasta escolhida.'; @override - String get setupStorageAccessMessageAndroid11 => - 'O Android 11+ requer a permissão \"Acesso a Todos os Arquivos\" para salvar arquivos na pasta de download escolhida.'; + String get setupStorageAccessMessageAndroid11 => 'O Android 11+ requer a permissão \"Acesso a Todos os Arquivos\" para salvar arquivos na pasta de download escolhida.'; @override String get setupOpenSettings => 'Abrir Configurações'; @override - String get setupPermissionDeniedMessage => - 'Permissão negada. Por favor, conceda todas as permissões para continuar.'; + String get setupPermissionDeniedMessage => 'Permissão negada. Por favor, conceda todas as permissões para continuar.'; @override String setupPermissionRequired(String permissionType) { @@ -2882,8 +2812,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get setupUseDefaultFolder => 'Usar Pasta Padrão?'; @override - String get setupNoFolderSelected => - 'Nenhuma pasta selecionada. Você gostaria de usar a pasta padrão de música?'; + String get setupNoFolderSelected => 'Nenhuma pasta selecionada. Você gostaria de usar a pasta padrão de música?'; @override String get setupUseDefault => 'Usar Padrão'; @@ -2892,26 +2821,22 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get setupDownloadLocationTitle => 'Local do Download'; @override - String get setupDownloadLocationIosMessage => - 'No iOS, downloads são salvos na pasta Documentos do aplicativo. Você pode acessá-los através do app Arquivos.'; + String get setupDownloadLocationIosMessage => 'No iOS, downloads são salvos na pasta Documentos do aplicativo. Você pode acessá-los através do app Arquivos.'; @override String get setupAppDocumentsFolder => 'Pasta Documentos do App'; @override - String get setupAppDocumentsFolderSubtitle => - 'Recomendado - acessível através do aplicativo Arquivos'; + String get setupAppDocumentsFolderSubtitle => 'Recomendado - acessível através do aplicativo Arquivos'; @override String get setupChooseFromFiles => 'Escolher dos Arquivos'; @override - String get setupChooseFromFilesSubtitle => - 'Selecione o iCloud ou outro local'; + String get setupChooseFromFilesSubtitle => 'Selecione o iCloud ou outro local'; @override - String get setupIosEmptyFolderWarning => - 'Limitação do iOS: Pastas vazias não podem ser selecionadas. Escolha uma pasta com pelo menos um arquivo.'; + String get setupIosEmptyFolderWarning => 'Limitação do iOS: Pastas vazias não podem ser selecionadas. Escolha uma pasta com pelo menos um arquivo.'; @override String get setupDownloadInFlac => 'Baixe faixas do Spotify em FLAC'; @@ -2938,8 +2863,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get setupStorageRequired => 'Permissão de Armazenamento Necessária'; @override - String get setupStorageDescription => - 'O SpotiFLAC precisa de permissão de armazenamento para salvar os seus arquivos de música baixados.'; + String get setupStorageDescription => 'O SpotiFLAC precisa de permissão de armazenamento para salvar os seus arquivos de música baixados.'; @override String get setupNotificationGranted => 'Permissão de Notificações Concedida!'; @@ -2948,8 +2872,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get setupNotificationEnable => 'Habilitar Notificações'; @override - String get setupNotificationDescription => - 'Seja notificado quando os downloads completarem ou exigirem atenção.'; + String get setupNotificationDescription => 'Seja notificado quando os downloads completarem ou exigirem atenção.'; @override String get setupFolderSelected => 'Pasta para Download Selecionada!'; @@ -2958,8 +2881,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get setupFolderChoose => 'Escolher Pasta de Download'; @override - String get setupFolderDescription => - 'Selecione uma pasta onde as suas músicas baixadas serão salvas.'; + String get setupFolderDescription => 'Selecione uma pasta onde as suas músicas baixadas serão salvas.'; @override String get setupChangeFolder => 'Alterar Pasta'; @@ -2971,8 +2893,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get setupSpotifyApiOptional => 'API do Spotify (opcional)'; @override - String get setupSpotifyApiDescription => - 'Adicione as suas credenciais da API do Spotify para obter melhores resultados de busca e acesso a conteúdo exclusivo do Spotify.'; + String get setupSpotifyApiDescription => 'Adicione as suas credenciais da API do Spotify para obter melhores resultados de busca e acesso a conteúdo exclusivo do Spotify.'; @override String get setupUseSpotifyApi => 'Usar API do Spotify'; @@ -2990,23 +2911,19 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get setupEnterClientSecret => 'Insira o Spotify Client Secret'; @override - String get setupGetFreeCredentials => - 'Receba as suas credenciais de API gratuitas na Spotify Developer Dashboard.'; + String get setupGetFreeCredentials => 'Receba as suas credenciais de API gratuitas na Spotify Developer Dashboard.'; @override String get setupEnableNotifications => 'Habilitar Notificações'; @override - String get setupProceedToNextStep => - 'Você já pode prosseguir para o próximo passo.'; + String get setupProceedToNextStep => 'Você já pode prosseguir para o próximo passo.'; @override - String get setupNotificationProgressDescription => - 'Você receberá notificações de progresso dos downloads.'; + String get setupNotificationProgressDescription => 'Você receberá notificações de progresso dos downloads.'; @override - String get setupNotificationBackgroundDescription => - 'Seja notificado sobre o progresso e conclusão do download. Isso ajuda você a acompanhar os downloads quando o app estiver em segundo plano.'; + String get setupNotificationBackgroundDescription => 'Seja notificado sobre o progresso e conclusão do download. Isso ajuda você a acompanhar os downloads quando o app estiver em segundo plano.'; @override String get setupSkipForNow => 'Ignorar por enquanto'; @@ -3024,12 +2941,10 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get setupSkipAndStart => 'Ignorar e Iniciar'; @override - String get setupAllowAccessToManageFiles => - 'Por favor, habilite \"Permitir acesso para gerenciar todos os arquivos\" na próxima tela.'; + String get setupAllowAccessToManageFiles => 'Por favor, habilite \"Permitir acesso para gerenciar todos os arquivos\" na próxima tela.'; @override - String get setupGetCredentialsFromSpotify => - 'Obter credenciais do developer.spotify.com'; + String get setupGetCredentialsFromSpotify => 'Obter credenciais do developer.spotify.com'; @override String get dialogCancel => 'Cancelar'; @@ -3080,8 +2995,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get dialogDiscardChanges => 'Descartar Alterações?'; @override - String get dialogUnsavedChanges => - 'Você tem alterações não salvas. Deseja descartá-las?'; + String get dialogUnsavedChanges => 'Você tem alterações não salvas. Deseja descartá-las?'; @override String get dialogDownloadFailed => 'Download Falhou'; @@ -3099,8 +3013,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get dialogClearAll => 'Limpar Tudo'; @override - String get dialogClearAllDownloads => - 'Você tem certeza que deseja limpar todos os downloads?'; + String get dialogClearAllDownloads => 'Você tem certeza que deseja limpar todos os downloads?'; @override String get dialogRemoveFromDevice => 'Remover do dispositivo?'; @@ -3109,8 +3022,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get dialogRemoveExtension => 'Remover Extensão'; @override - String get dialogRemoveExtensionMessage => - 'Tem certeza de que deseja remover esta extensão? Isso não pode ser desfeito.'; + String get dialogRemoveExtensionMessage => 'Tem certeza de que deseja remover esta extensão? Isso não pode ser desfeito.'; @override String get dialogUninstallExtension => 'Desinstalar Extensão?'; @@ -3124,8 +3036,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get dialogClearHistoryTitle => 'Limpar Histórico'; @override - String get dialogClearHistoryMessage => - 'Tem certeza de que deseja limpar todo o histórico de downloads? Isso não pode ser desfeito.'; + String get dialogClearHistoryMessage => 'Tem certeza de que deseja limpar todo o histórico de downloads? Isso não pode ser desfeito.'; @override String get dialogDeleteSelectedTitle => 'Apagar Selecionados'; @@ -3209,15 +3120,13 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get snackbarFileNotFound => 'Arquivo não encontrado'; @override - String get snackbarSelectExtFile => - 'Por favor, selecione um arquivo .spotiflac-ext'; + String get snackbarSelectExtFile => 'Por favor, selecione um arquivo .spotiflac-ext'; @override String get snackbarProviderPrioritySaved => 'Prioridade de provedor salva'; @override - String get snackbarMetadataProviderSaved => - 'Prioridade de provedor de metadados salva'; + String get snackbarMetadataProviderSaved => 'Prioridade de provedor de metadados salva'; @override String snackbarExtensionInstalled(String extensionName) { @@ -3239,8 +3148,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get errorRateLimited => 'Taxa Limitada'; @override - String get errorRateLimitedMessage => - 'Muitas solicitações. Por favor, aguarde um momento antes de pesquisar novamente.'; + String get errorRateLimitedMessage => 'Muitas solicitações. Por favor, aguarde um momento antes de pesquisar novamente.'; @override String errorFailedToLoad(String item) { @@ -3407,24 +3315,19 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get folderOrganizationByArtistAlbum => 'Artista/Álbum'; @override - String get folderOrganizationDescription => - 'Organizar arquivos baixados em pastas'; + String get folderOrganizationDescription => 'Organizar arquivos baixados em pastas'; @override - String get folderOrganizationNoneSubtitle => - 'Todos os arquivos na pasta de download'; + String get folderOrganizationNoneSubtitle => 'Todos os arquivos na pasta de download'; @override - String get folderOrganizationByArtistSubtitle => - 'Pasta separada para cada artista'; + String get folderOrganizationByArtistSubtitle => 'Pasta separada para cada artista'; @override - String get folderOrganizationByAlbumSubtitle => - 'Pasta separada para cada álbum'; + String get folderOrganizationByAlbumSubtitle => 'Pasta separada para cada álbum'; @override - String get folderOrganizationByArtistAlbumSubtitle => - 'Pastas aninhadas para artista e álbum'; + String get folderOrganizationByArtistAlbumSubtitle => 'Pastas aninhadas para artista e álbum'; @override String get updateAvailable => 'Atualização Disponível'; @@ -3477,19 +3380,16 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get providerPriority => 'Prioridade de Provedor'; @override - String get providerPrioritySubtitle => - 'Arraste para reordenar os provedores de download'; + String get providerPrioritySubtitle => 'Arraste para reordenar os provedores de download'; @override String get providerPriorityTitle => 'Prioridade de Provedor'; @override - String get providerPriorityDescription => - 'Arraste para reordenar provedores de download. O aplicativo irá tentar provedores de cima para baixo ao baixar as faixas.'; + String get providerPriorityDescription => 'Arraste para reordenar provedores de download. O aplicativo irá tentar provedores de cima para baixo ao baixar as faixas.'; @override - String get providerPriorityInfo => - 'Se uma faixa não estiver disponível no primeiro provedor, o aplicativo irá tentar automaticamente a próxima.'; + String get providerPriorityInfo => 'Se uma faixa não estiver disponível no primeiro provedor, o aplicativo irá tentar automaticamente a próxima.'; @override String get providerBuiltIn => 'Embutido'; @@ -3501,19 +3401,16 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get metadataProviderPriority => 'Prioridade de Provedor de Metadados'; @override - String get metadataProviderPrioritySubtitle => - 'Ordem usada para obter metadados de faixa'; + String get metadataProviderPrioritySubtitle => 'Ordem usada para obter metadados de faixa'; @override String get metadataProviderPriorityTitle => 'Prioridade de Metadados'; @override - String get metadataProviderPriorityDescription => - 'Arraste para reordenar provedores de metadados. O aplicativo tentará provedores de cima para baixo ao procurar por faixas e buscar metadados.'; + String get metadataProviderPriorityDescription => 'Arraste para reordenar provedores de metadados. O aplicativo tentará provedores de cima para baixo ao procurar por faixas e buscar metadados.'; @override - String get metadataProviderPriorityInfo => - 'O Deezer não tem limites de taxa e é recomendado como principal. O Spotify pode limitar a taxa após muitas solicitações.'; + String get metadataProviderPriorityInfo => 'O Deezer não tem limites de taxa e é recomendado como principal. O Spotify pode limitar a taxa após muitas solicitações.'; @override String get metadataNoRateLimits => 'Sem limites de taxa'; @@ -3558,8 +3455,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get logClearLogsTitle => 'Limpar Registros'; @override - String get logClearLogsMessage => - 'Tem certeza de que deseja limpar todos os registros?'; + String get logClearLogsMessage => 'Tem certeza de que deseja limpar todos os registros?'; @override String get logIspBlocking => 'BLOQUEIO DE ISP DETECTADO'; @@ -3580,41 +3476,34 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get logNoLogsYet => 'Ainda não há registros'; @override - String get logNoLogsYetSubtitle => - 'Os registros aparecerão aqui enquanto você usa o aplicativo'; + String get logNoLogsYetSubtitle => 'Os registros aparecerão aqui enquanto você usa o aplicativo'; @override String get logIssueSummary => 'Resumo do Problemas'; @override - String get logIspBlockingDescription => - 'O seu provedor pode estar bloqueando o acesso aos serviços de download'; + String get logIspBlockingDescription => 'O seu provedor pode estar bloqueando o acesso aos serviços de download'; @override - String get logIspBlockingSuggestion => - 'Tente usar uma VPN ou altere o DNS para 1.1.1 ou 8.8.8.8'; + String get logIspBlockingSuggestion => 'Tente usar uma VPN ou altere o DNS para 1.1.1 ou 8.8.8.8'; @override String get logRateLimitedDescription => 'Muitas solicitações ao serviço'; @override - String get logRateLimitedSuggestion => - 'Aguarde alguns minutos antes de tentar novamente'; + String get logRateLimitedSuggestion => 'Aguarde alguns minutos antes de tentar novamente'; @override String get logNetworkErrorDescription => 'Problemas de conexão detectados'; @override - String get logNetworkErrorSuggestion => - 'Verifique a sua conexão com a internet'; + String get logNetworkErrorSuggestion => 'Verifique a sua conexão com a internet'; @override - String get logTrackNotFoundDescription => - 'Algumas faixas não foram encontradas nos serviços de download'; + String get logTrackNotFoundDescription => 'Algumas faixas não foram encontradas nos serviços de download'; @override - String get logTrackNotFoundSuggestion => - 'A faixa pode não estar disponível em qualidade lossless'; + String get logTrackNotFoundSuggestion => 'A faixa pode não estar disponível em qualidade lossless'; @override String logTotalErrors(int count) { @@ -3640,8 +3529,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get credentialsTitle => 'Credenciais do Spotify'; @override - String get credentialsDescription => - 'Insira o seu Client ID e Secret para usar a sua própria cota de aplicativo do Spotify.'; + String get credentialsDescription => 'Insira o seu Client ID e Secret para usar a sua própria cota de aplicativo do Spotify.'; @override String get credentialsClientId => 'Client ID'; @@ -3710,12 +3598,10 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get settingsAppearanceSubtitle => 'Tema, cores, exibição'; @override - String get settingsDownloadSubtitle => - 'Serviço, qualidade, formato de nome de arquivo'; + String get settingsDownloadSubtitle => 'Serviço, qualidade, formato de nome de arquivo'; @override - String get settingsOptionsSubtitle => - 'Fallback, letras, arte de capa, atualizações'; + String get settingsOptionsSubtitle => 'Fallback, letras, arte de capa, atualizações'; @override String get settingsExtensionsSubtitle => 'Gerenciar provedores de download'; @@ -3809,12 +3695,10 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get trackCopyLyrics => 'Copiar letras'; @override - String get trackLyricsNotAvailable => - 'Letras não disponíveis para esta faixa'; + String get trackLyricsNotAvailable => 'Letras não disponíveis para esta faixa'; @override - String get trackLyricsTimeout => - 'A solicitação expirou. Tente novamente mais tarde.'; + String get trackLyricsTimeout => 'A solicitação expirou. Tente novamente mais tarde.'; @override String get trackLyricsLoadFailed => 'Falha ao carregar letras'; @@ -3826,8 +3710,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get trackDeleteConfirmTitle => 'Remover do dispositivo?'; @override - String get trackDeleteConfirmMessage => - 'Isso apagará permanentemente o arquivo baixado e o removerá do seu histórico.'; + String get trackDeleteConfirmMessage => 'Isso apagará permanentemente o arquivo baixado e o removerá do seu histórico.'; @override String trackCannotOpen(String message) { @@ -3949,8 +3832,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get extensionMinAppVersion => 'Versão Mínima do App'; @override - String get extensionCustomTrackMatching => - 'Correspondência de Faixa Personalizada'; + String get extensionCustomTrackMatching => 'Correspondência de Faixa Personalizada'; @override String get extensionPostProcessing => 'Pós-Processamento'; @@ -3980,15 +3862,13 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get extensionsNoExtensions => 'Nenhuma extensão instalada'; @override - String get extensionsNoExtensionsSubtitle => - 'Instale arquivos .spotiflac-ext para adicionar novos provedores'; + String get extensionsNoExtensionsSubtitle => 'Instale arquivos .spotiflac-ext para adicionar novos provedores'; @override String get extensionsInstallButton => 'Instalar Extensão'; @override - String get extensionsInfoTip => - 'Extensões podem adicionar novos metadados e baixar provedores. Somente instale extensões a partir de fontes confiáveis.'; + String get extensionsInfoTip => 'Extensões podem adicionar novos metadados e baixar provedores. Somente instale extensões a partir de fontes confiáveis.'; @override String get extensionsInstalledSuccess => 'Extensão instalada com sucesso'; @@ -3997,34 +3877,28 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get extensionsDownloadPriority => 'Prioridade de Download'; @override - String get extensionsDownloadPrioritySubtitle => - 'Definir ordem do serviço de download'; + String get extensionsDownloadPrioritySubtitle => 'Definir ordem do serviço de download'; @override - String get extensionsNoDownloadProvider => - 'Nenhuma extensão com provedor de download'; + String get extensionsNoDownloadProvider => 'Nenhuma extensão com provedor de download'; @override String get extensionsMetadataPriority => 'Prioridade de Metadados'; @override - String get extensionsMetadataPrioritySubtitle => - 'Definir ordem de origem de pesquisa e metadados'; + String get extensionsMetadataPrioritySubtitle => 'Definir ordem de origem de pesquisa e metadados'; @override - String get extensionsNoMetadataProvider => - 'Nenhuma extensão com provedor de metadados'; + String get extensionsNoMetadataProvider => 'Nenhuma extensão com provedor de metadados'; @override String get extensionsSearchProvider => 'Provedor de Pesquisa'; @override - String get extensionsNoCustomSearch => - 'Nenhuma extensão com pesquisa personalizada'; + String get extensionsNoCustomSearch => 'Nenhuma extensão com pesquisa personalizada'; @override - String get extensionsSearchProviderDescription => - 'Escolha qual serviço utilizar para pesquisar faixas'; + String get extensionsSearchProviderDescription => 'Escolha qual serviço utilizar para pesquisar faixas'; @override String get extensionsCustomSearch => 'Busca personalizada'; @@ -4051,8 +3925,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get qualityHiResFlacMaxSubtitle => '24-bit / até 192kHz'; @override - String get qualityNote => - 'A qualidade real depende da faixa que estiver disponível no serviço'; + String get qualityNote => 'A qualidade real depende da faixa que estiver disponível no serviço'; @override String get downloadAskBeforeDownload => 'Perguntar qualidade antes de baixar'; @@ -4088,8 +3961,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get folderNone => 'Nenhum'; @override - String get folderNoneSubtitle => - 'Salvar todos os arquivos diretamente na pasta de download'; + String get folderNoneSubtitle => 'Salvar todos os arquivos diretamente na pasta de download'; @override String get folderArtist => 'Artista'; @@ -4107,8 +3979,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get folderArtistAlbum => 'Artista/Álbum'; @override - String get folderArtistAlbumSubtitle => - 'Nome do Artista/Nome do Álbum/nome do arquivo'; + String get folderArtistAlbumSubtitle => 'Nome do Artista/Nome do Álbum/nome do arquivo'; @override String get serviceTidal => 'Tidal'; @@ -4144,8 +4015,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get queueClearAll => 'Limpar Tudo'; @override - String get queueClearAllMessage => - 'Tem certeza de que deseja limpar todos os downloads?'; + String get queueClearAllMessage => 'Tem certeza de que deseja limpar todos os downloads?'; @override String get queueEmpty => 'Nenhum download na fila'; @@ -4175,15 +4045,13 @@ class AppLocalizationsPtPt extends AppLocalizationsPt { String get albumFolderArtistAlbum => 'Artista / Álbum'; @override - String get albumFolderArtistAlbumSubtitle => - 'Álbuns/Nome do Artista/Nome do Álbum/'; + String get albumFolderArtistAlbumSubtitle => 'Álbuns/Nome do Artista/Nome do Álbum/'; @override String get albumFolderArtistYearAlbum => 'Artista / [Ano] Álbum'; @override - String get albumFolderArtistYearAlbumSubtitle => - 'Álbuns/Nome do Artista/[2005] Nome do Álbum/'; + String get albumFolderArtistYearAlbumSubtitle => 'Álbuns/Nome do Artista/[2005] Nome do Álbum/'; @override String get albumFolderAlbumOnly => 'Apenas Álbum'; diff --git a/lib/l10n/app_localizations_ru.dart b/lib/l10n/app_localizations_ru.dart index 2ce3cb22..68c85b8b 100644 --- a/lib/l10n/app_localizations_ru.dart +++ b/lib/l10n/app_localizations_ru.dart @@ -12,8 +12,7 @@ class AppLocalizationsRu extends AppLocalizations { String get appName => 'SpotiFLAC'; @override - String get appDescription => - 'Скачайте треки Spotify в Lossless качестве из Tidal, Qobuz и Amazon Music.'; + String get appDescription => 'Скачайте треки Spotify в Lossless качестве из Tidal, Qobuz и Amazon Music.'; @override String get navHome => 'Главная'; @@ -42,8 +41,7 @@ class AppLocalizationsRu extends AppLocalizations { String get homeSubtitle => 'Вставьте ссылку Spotify или ищите по названию'; @override - String get homeSupports => - 'Поддерживается: Трек, Альбом, Плейлист, URL исполнителя'; + String get homeSupports => 'Поддерживается: Трек, Альбом, Плейлист, URL исполнителя'; @override String get homeRecent => 'Недавние'; @@ -104,15 +102,13 @@ class AppLocalizationsRu extends AppLocalizations { String get historyNoAlbums => 'Нет скачанных альбомов'; @override - String get historyNoAlbumsSubtitle => - 'Скачайте несколько треков из альбома, чтобы увидеть их здесь'; + String get historyNoAlbumsSubtitle => 'Скачайте несколько треков из альбома, чтобы увидеть их здесь'; @override String get historyNoSingles => 'Нет скачанных синглов'; @override - String get historyNoSinglesSubtitle => - 'Здесь будут отображаться загрузки синглов'; + String get historyNoSinglesSubtitle => 'Здесь будут отображаться загрузки синглов'; @override String get historySearchHint => 'Поиск в истории...'; @@ -151,8 +147,7 @@ class AppLocalizationsRu extends AppLocalizations { String get downloadDefaultService => 'Сервис по умолчанию'; @override - String get downloadDefaultServiceSubtitle => - 'Сервис, используемый для скачивания'; + String get downloadDefaultServiceSubtitle => 'Сервис, используемый для скачивания'; @override String get downloadDefaultQuality => 'Качество по умолчанию'; @@ -161,8 +156,7 @@ class AppLocalizationsRu extends AppLocalizations { String get downloadAskQuality => 'Спрашивать качество перед скачиванием'; @override - String get downloadAskQualitySubtitle => - 'Показывать выбор качества для каждого скачивания'; + String get downloadAskQualitySubtitle => 'Показывать выбор качества для каждого скачивания'; @override String get downloadFilenameFormat => 'Формат имени файла'; @@ -174,8 +168,7 @@ class AppLocalizationsRu extends AppLocalizations { String get downloadSeparateSingles => 'Разделять синглы'; @override - String get downloadSeparateSinglesSubtitle => - 'Помещать синглы в отдельную папку'; + String get downloadSeparateSinglesSubtitle => 'Помещать синглы в отдельную папку'; @override String get qualityBest => 'Лучшее из доступных'; @@ -208,8 +201,7 @@ class AppLocalizationsRu extends AppLocalizations { String get appearanceDynamicColor => 'Динамический цвет'; @override - String get appearanceDynamicColorSubtitle => - 'Использовать цвета из ваших обоев'; + String get appearanceDynamicColorSubtitle => 'Использовать цвета из ваших обоев'; @override String get appearanceAccentColor => 'Акцентный цвет'; @@ -233,8 +225,7 @@ class AppLocalizationsRu extends AppLocalizations { String get optionsPrimaryProvider => 'Основной провайдер'; @override - String get optionsPrimaryProviderSubtitle => - 'Сервис, используемый при поиске по названию трека.'; + String get optionsPrimaryProviderSubtitle => 'Сервис, используемый при поиске по названию трека.'; @override String optionsUsingExtension(String extensionName) { @@ -242,41 +233,34 @@ class AppLocalizationsRu extends AppLocalizations { } @override - String get optionsSwitchBack => - 'Нажмите Deezer или Spotify для возврата с расширения'; + String get optionsSwitchBack => 'Нажмите Deezer или Spotify для возврата с расширения'; @override String get optionsAutoFallback => 'Автоматический переход'; @override - String get optionsAutoFallbackSubtitle => - 'Попробовать другие сервисы при сбое загрузки'; + String get optionsAutoFallbackSubtitle => 'Попробовать другие сервисы при сбое загрузки'; @override - String get optionsUseExtensionProviders => - 'Использовать провайдера расширений'; + String get optionsUseExtensionProviders => 'Использовать провайдера расширений'; @override - String get optionsUseExtensionProvidersOn => - 'Сначала будут опробованы расширения'; + String get optionsUseExtensionProvidersOn => 'Сначала будут опробованы расширения'; @override - String get optionsUseExtensionProvidersOff => - 'Использование только встроенных провайдеров'; + String get optionsUseExtensionProvidersOff => 'Использование только встроенных провайдеров'; @override String get optionsEmbedLyrics => 'Вставить текст песни'; @override - String get optionsEmbedLyricsSubtitle => - 'Вставить синхронизированные тексты в FLAC файлы'; + String get optionsEmbedLyricsSubtitle => 'Вставить синхронизированные тексты в FLAC файлы'; @override String get optionsMaxQualityCover => 'Максимальное качество обложки'; @override - String get optionsMaxQualityCoverSubtitle => - 'Скачивать обложку в макс. разрешении'; + String get optionsMaxQualityCoverSubtitle => 'Скачивать обложку в макс. разрешении'; @override String get optionsConcurrentDownloads => 'Одновременные загрузки'; @@ -290,15 +274,13 @@ class AppLocalizationsRu extends AppLocalizations { } @override - String get optionsConcurrentWarning => - 'Параллельные загрузки могут вызвать ограничение скорости'; + String get optionsConcurrentWarning => 'Параллельные загрузки могут вызвать ограничение скорости'; @override String get optionsExtensionStore => 'Магазин расширений'; @override - String get optionsExtensionStoreSubtitle => - 'Показывать вкладку Магазин в гл. меню'; + String get optionsExtensionStoreSubtitle => 'Показывать вкладку Магазин в гл. меню'; @override String get optionsCheckUpdates => 'Проверить обновления'; @@ -316,15 +298,13 @@ class AppLocalizationsRu extends AppLocalizations { String get optionsUpdateChannelPreview => 'Предварительные версии'; @override - String get optionsUpdateChannelWarning => - 'Предварительная версия может содержать ошибки или неполные функции'; + String get optionsUpdateChannelWarning => 'Предварительная версия может содержать ошибки или неполные функции'; @override String get optionsClearHistory => 'Очистить историю загрузок'; @override - String get optionsClearHistorySubtitle => - 'Удалить все скачанные треки из истории'; + String get optionsClearHistorySubtitle => 'Удалить все скачанные треки из истории'; @override String get optionsDetailedLogging => 'Подробный лог'; @@ -344,12 +324,10 @@ class AppLocalizationsRu extends AppLocalizations { } @override - String get optionsSpotifyCredentialsRequired => - 'Необходимо - нажмите для настройки'; + String get optionsSpotifyCredentialsRequired => 'Необходимо - нажмите для настройки'; @override - String get optionsSpotifyWarning => - 'Spotify требует ваши собственные учетные данные API. Получите их бесплатно на сайте developer.spotify.com'; + String get optionsSpotifyWarning => 'Spotify требует ваши собственные учетные данные API. Получите их бесплатно на сайте developer.spotify.com'; @override String get extensionsTitle => 'Расширения'; @@ -361,8 +339,7 @@ class AppLocalizationsRu extends AppLocalizations { String get extensionsNone => 'Нет установленных расширений'; @override - String get extensionsNoneSubtitle => - 'Установка расширений из вкладки Магазин'; + String get extensionsNoneSubtitle => 'Установка расширений из вкладки Магазин'; @override String get extensionsEnabled => 'Включено'; @@ -414,8 +391,7 @@ class AppLocalizationsRu extends AppLocalizations { String get aboutOriginalCreator => 'Создатель оригинального SpotiFLAC'; @override - String get aboutLogoArtist => - 'Талантливый художник, который создал наш красивый логотип приложения!'; + String get aboutLogoArtist => 'Талантливый художник, который создал наш красивый логотип приложения!'; @override String get aboutTranslators => 'Переводчики'; @@ -442,8 +418,7 @@ class AppLocalizationsRu extends AppLocalizations { String get aboutFeatureRequest => 'Предложить новую функцию'; @override - String get aboutFeatureRequestSubtitle => - 'Предложить новые функции для приложения'; + String get aboutFeatureRequestSubtitle => 'Предложить новые функции для приложения'; @override String get aboutTelegramChannel => 'Telegram канал'; @@ -476,34 +451,28 @@ class AppLocalizationsRu extends AppLocalizations { String get aboutVersion => 'Версия'; @override - String get aboutBinimumDesc => - 'Создатель QQDL & HiFi API. Без этого API загрузки Tidal не существовали бы!'; + String get aboutBinimumDesc => 'Создатель QQDL & HiFi API. Без этого API загрузки Tidal не существовали бы!'; @override - String get aboutSachinsenalDesc => - 'Оригинальный создатель проекта HiFi. Основатель Tidal интеграции!'; + String get aboutSachinsenalDesc => 'Оригинальный создатель проекта HiFi. Основатель Tidal интеграции!'; @override - String get aboutSjdonadoDesc => - 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; + String get aboutSjdonadoDesc => 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; @override String get aboutDoubleDouble => 'DoubleDouble'; @override - String get aboutDoubleDoubleDesc => - 'Удивительный API для загрузок Amazon Music. Спасибо за то, что сделали это бесплатно!'; + String get aboutDoubleDoubleDesc => 'Удивительный API для загрузок Amazon Music. Спасибо за то, что сделали это бесплатно!'; @override String get aboutDabMusic => 'DAB Music'; @override - String get aboutDabMusicDesc => - 'Лучший API для стриминга Qobuz. Без него загрузка файлов в высоком разрешении была бы невозможна!'; + String get aboutDabMusicDesc => 'Лучший API для стриминга Qobuz. Без него загрузка файлов в высоком разрешении была бы невозможна!'; @override - String get aboutAppDescription => - 'Скачайте треки Spotify в Lossless качестве из Tidal, Qobuz и Amazon Music.'; + String get aboutAppDescription => 'Скачайте треки Spotify в Lossless качестве из Tidal, Qobuz и Amazon Music.'; @override String get albumTitle => 'Альбом'; @@ -612,8 +581,7 @@ class AppLocalizationsRu extends AppLocalizations { String get setupStoragePermission => 'Доступ к хранилищу'; @override - String get setupStoragePermissionSubtitle => - 'Необходимо для сохранения загруженных файлов'; + String get setupStoragePermissionSubtitle => 'Необходимо для сохранения загруженных файлов'; @override String get setupStoragePermissionGranted => 'Разрешение предоставлено'; @@ -640,19 +608,16 @@ class AppLocalizationsRu extends AppLocalizations { String get setupStorageAccessRequired => 'Требуется доступ к хранилищу'; @override - String get setupStorageAccessMessage => - 'SpotiFLAC требуется разрешение \"Доступ ко всем файлам\" для сохранения музыкальных файлов в выбранную папку.'; + String get setupStorageAccessMessage => 'SpotiFLAC требуется разрешение \"Доступ ко всем файлам\" для сохранения музыкальных файлов в выбранную папку.'; @override - String get setupStorageAccessMessageAndroid11 => - 'Для Android 11+ требуется разрешение \"Доступ ко всем файлам\" для сохранения файлов в выбранную вами папку загрузки.'; + String get setupStorageAccessMessageAndroid11 => 'Для Android 11+ требуется разрешение \"Доступ ко всем файлам\" для сохранения файлов в выбранную вами папку загрузки.'; @override String get setupOpenSettings => 'Открыть настройки'; @override - String get setupPermissionDeniedMessage => - 'В разрешении отказано. Пожалуйста, предоставьте все разрешения для продолжения.'; + String get setupPermissionDeniedMessage => 'В разрешении отказано. Пожалуйста, предоставьте все разрешения для продолжения.'; @override String setupPermissionRequired(String permissionType) { @@ -671,8 +636,7 @@ class AppLocalizationsRu extends AppLocalizations { String get setupUseDefaultFolder => 'Использовать папку по умолчанию?'; @override - String get setupNoFolderSelected => - 'Папка не выбрана. Хотите использовать папку Музыка по умолчанию?'; + String get setupNoFolderSelected => 'Папка не выбрана. Хотите использовать папку Музыка по умолчанию?'; @override String get setupUseDefault => 'По умолчанию'; @@ -681,30 +645,25 @@ class AppLocalizationsRu extends AppLocalizations { String get setupDownloadLocationTitle => 'Папка для скачивания'; @override - String get setupDownloadLocationIosMessage => - 'В iOS загрузки сохраняются в папке Документы приложения. Вы можете получить к ним доступ через приложение Файлы.'; + String get setupDownloadLocationIosMessage => 'В iOS загрузки сохраняются в папке Документы приложения. Вы можете получить к ним доступ через приложение Файлы.'; @override String get setupAppDocumentsFolder => 'Папка Документы приложения'; @override - String get setupAppDocumentsFolderSubtitle => - 'Рекомендуется - доступ через Файлы'; + String get setupAppDocumentsFolderSubtitle => 'Рекомендуется - доступ через Файлы'; @override String get setupChooseFromFiles => 'Выбрать из файлов'; @override - String get setupChooseFromFilesSubtitle => - 'Выберите iCloud или другое местоположение'; + String get setupChooseFromFilesSubtitle => 'Выберите iCloud или другое местоположение'; @override - String get setupIosEmptyFolderWarning => - 'Ограничение iOS: пустые папки не могут быть выбраны. Выберите папку, содержащую хотя бы один файл.'; + String get setupIosEmptyFolderWarning => 'Ограничение iOS: пустые папки не могут быть выбраны. Выберите папку, содержащую хотя бы один файл.'; @override - String get setupIcloudNotSupported => - 'iCloud Drive is not supported. Please use the app Documents folder.'; + String get setupIcloudNotSupported => 'iCloud Drive is not supported. Please use the app Documents folder.'; @override String get setupDownloadInFlac => 'Скачать Spotify треки во FLAC'; @@ -731,19 +690,16 @@ class AppLocalizationsRu extends AppLocalizations { String get setupStorageRequired => 'Требуется доступ к хранилищу'; @override - String get setupStorageDescription => - 'SpotiFLAC требуется разрешение на хранение для сохранения скачанных файлов.'; + String get setupStorageDescription => 'SpotiFLAC требуется разрешение на хранение для сохранения скачанных файлов.'; @override - String get setupNotificationGranted => - 'Разрешение на уведомление предоставлено!'; + String get setupNotificationGranted => 'Разрешение на уведомление предоставлено!'; @override String get setupNotificationEnable => 'Включить уведомления'; @override - String get setupNotificationDescription => - 'Получайте уведомления о завершении загрузки или о необходимости привлечения внимания.'; + String get setupNotificationDescription => 'Получайте уведомления о завершении загрузки или о необходимости привлечения внимания.'; @override String get setupFolderSelected => 'Папка для загрузки выбрана!'; @@ -752,8 +708,7 @@ class AppLocalizationsRu extends AppLocalizations { String get setupFolderChoose => 'Выбрать папку для скачивания'; @override - String get setupFolderDescription => - 'Выберите папку, в которой будет сохраняться скачанная музыка.'; + String get setupFolderDescription => 'Выберите папку, в которой будет сохраняться скачанная музыка.'; @override String get setupChangeFolder => 'Сменить папку'; @@ -765,8 +720,7 @@ class AppLocalizationsRu extends AppLocalizations { String get setupSpotifyApiOptional => 'Spotify API (необязательно)'; @override - String get setupSpotifyApiDescription => - 'Добавьте свои учётные данные Spotify для улучшения результатов поиска и доступа к эксклюзивному контенту Spotify.'; + String get setupSpotifyApiDescription => 'Добавьте свои учётные данные Spotify для улучшения результатов поиска и доступа к эксклюзивному контенту Spotify.'; @override String get setupUseSpotifyApi => 'Использовать Spotify API'; @@ -784,23 +738,19 @@ class AppLocalizationsRu extends AppLocalizations { String get setupEnterClientSecret => 'Введите Spotify Client Secret'; @override - String get setupGetFreeCredentials => - 'Получите бесплатный API учётной записи на панели разработчика Spotify.'; + String get setupGetFreeCredentials => 'Получите бесплатный API учётной записи на панели разработчика Spotify.'; @override String get setupEnableNotifications => 'Включить уведомления'; @override - String get setupProceedToNextStep => - 'Теперь вы можете перейти к следующему шагу.'; + String get setupProceedToNextStep => 'Теперь вы можете перейти к следующему шагу.'; @override - String get setupNotificationProgressDescription => - 'Вы будете получать уведомления о ходе загрузки.'; + String get setupNotificationProgressDescription => 'Вы будете получать уведомления о ходе загрузки.'; @override - String get setupNotificationBackgroundDescription => - 'Получайте уведомления о ходе и завершении загрузки. Это поможет вам отслеживать загрузки, когда приложение находится в фоновом режиме.'; + String get setupNotificationBackgroundDescription => 'Получайте уведомления о ходе и завершении загрузки. Это поможет вам отслеживать загрузки, когда приложение находится в фоновом режиме.'; @override String get setupSkipForNow => 'Пропустить'; @@ -818,12 +768,10 @@ class AppLocalizationsRu extends AppLocalizations { String get setupSkipAndStart => 'Пропустить и начать'; @override - String get setupAllowAccessToManageFiles => - 'Пожалуйста, включите \"Разрешить доступ для управления всеми файлами\" на следующем экране.'; + String get setupAllowAccessToManageFiles => 'Пожалуйста, включите \"Разрешить доступ для управления всеми файлами\" на следующем экране.'; @override - String get setupGetCredentialsFromSpotify => - 'Получить учётные данные с developer.spotify.com'; + String get setupGetCredentialsFromSpotify => 'Получить учётные данные с developer.spotify.com'; @override String get dialogCancel => 'Отмена'; @@ -874,8 +822,7 @@ class AppLocalizationsRu extends AppLocalizations { String get dialogDiscardChanges => 'Отменить изменения?'; @override - String get dialogUnsavedChanges => - 'Есть несохраненные изменения. Отменить их?'; + String get dialogUnsavedChanges => 'Есть несохраненные изменения. Отменить их?'; @override String get dialogDownloadFailed => 'Ошибка скачивания'; @@ -893,8 +840,7 @@ class AppLocalizationsRu extends AppLocalizations { String get dialogClearAll => 'Очистить всё'; @override - String get dialogClearAllDownloads => - 'Вы уверены, что хотите очистить все загрузки?'; + String get dialogClearAllDownloads => 'Вы уверены, что хотите очистить все загрузки?'; @override String get dialogRemoveFromDevice => 'Удалить с устройства?'; @@ -903,8 +849,7 @@ class AppLocalizationsRu extends AppLocalizations { String get dialogRemoveExtension => 'Удалить расширение'; @override - String get dialogRemoveExtensionMessage => - 'Вы уверены, что хотите удалить это расширение? Это действие не может быть отменено.'; + String get dialogRemoveExtensionMessage => 'Вы уверены, что хотите удалить это расширение? Это действие не может быть отменено.'; @override String get dialogUninstallExtension => 'Удалить расширение?'; @@ -918,8 +863,7 @@ class AppLocalizationsRu extends AppLocalizations { String get dialogClearHistoryTitle => 'Очистить историю'; @override - String get dialogClearHistoryMessage => - 'Вы уверены, что хотите удалить всю историю загрузок? Это действие необратимо.'; + String get dialogClearHistoryMessage => 'Вы уверены, что хотите удалить всю историю загрузок? Это действие необратимо.'; @override String get dialogDeleteSelectedTitle => 'Удалить выбранные'; @@ -1012,15 +956,13 @@ class AppLocalizationsRu extends AppLocalizations { String get snackbarFileNotFound => 'Файл не найден'; @override - String get snackbarSelectExtFile => - 'Пожалуйста, выберите .spotiflac-ext-файл'; + String get snackbarSelectExtFile => 'Пожалуйста, выберите .spotiflac-ext-файл'; @override String get snackbarProviderPrioritySaved => 'Приоритет провайдера сохранён'; @override - String get snackbarMetadataProviderSaved => - 'Приоритет провайдера метаданных сохранён'; + String get snackbarMetadataProviderSaved => 'Приоритет провайдера метаданных сохранён'; @override String snackbarExtensionInstalled(String extensionName) { @@ -1042,8 +984,7 @@ class AppLocalizationsRu extends AppLocalizations { String get errorRateLimited => 'Слишком много запросов'; @override - String get errorRateLimitedMessage => - 'Слишком много запросов. Пожалуйста, подождите минуту перед повторным поиском.'; + String get errorRateLimitedMessage => 'Слишком много запросов. Пожалуйста, подождите минуту перед повторным поиском.'; @override String errorFailedToLoad(String item) { @@ -1212,23 +1153,19 @@ class AppLocalizationsRu extends AppLocalizations { String get folderOrganizationByArtistAlbum => 'Исполнитель/Альбом'; @override - String get folderOrganizationDescription => - 'Сортировать скачанные файлы по папкам'; + String get folderOrganizationDescription => 'Сортировать скачанные файлы по папкам'; @override String get folderOrganizationNoneSubtitle => 'Все файлы в папке загрузок'; @override - String get folderOrganizationByArtistSubtitle => - 'Отдельная папка для каждого исполнителя'; + String get folderOrganizationByArtistSubtitle => 'Отдельная папка для каждого исполнителя'; @override - String get folderOrganizationByAlbumSubtitle => - 'Отдельная папка для каждого альбома'; + String get folderOrganizationByAlbumSubtitle => 'Отдельная папка для каждого альбома'; @override - String get folderOrganizationByArtistAlbumSubtitle => - 'Вложенные папки для исполнителей и альбомов'; + String get folderOrganizationByArtistAlbumSubtitle => 'Вложенные папки для исполнителей и альбомов'; @override String get updateAvailable => 'Доступно обновление'; @@ -1287,12 +1224,10 @@ class AppLocalizationsRu extends AppLocalizations { String get providerPriorityTitle => 'Приоритет провайдера'; @override - String get providerPriorityDescription => - 'Перетаскивайте, чтобы изменить порядок провайдеров загрузки. Приложение будет пробовать провайдеров сверху вниз при загрузке треков.'; + String get providerPriorityDescription => 'Перетаскивайте, чтобы изменить порядок провайдеров загрузки. Приложение будет пробовать провайдеров сверху вниз при загрузке треков.'; @override - String get providerPriorityInfo => - 'Если трек не доступен у первого провайдера, приложение автоматически попробует следующий.'; + String get providerPriorityInfo => 'Если трек не доступен у первого провайдера, приложение автоматически попробует следующий.'; @override String get providerBuiltIn => 'Встроенные'; @@ -1304,19 +1239,16 @@ class AppLocalizationsRu extends AppLocalizations { String get metadataProviderPriority => 'Приоритет провайдера метаданных'; @override - String get metadataProviderPrioritySubtitle => - 'Порядок, используемый при получении метаданных'; + String get metadataProviderPrioritySubtitle => 'Порядок, используемый при получении метаданных'; @override String get metadataProviderPriorityTitle => 'Приоритет метаданных'; @override - String get metadataProviderPriorityDescription => - 'Перетаскивайте, чтобы изменить порядок провайдеров метаданных. Приложение будет пробовать провайдеров сверху вниз при поиске треков и извлечении метаданных.'; + String get metadataProviderPriorityDescription => 'Перетаскивайте, чтобы изменить порядок провайдеров метаданных. Приложение будет пробовать провайдеров сверху вниз при поиске треков и извлечении метаданных.'; @override - String get metadataProviderPriorityInfo => - 'Deezer не имеет ограничений по скорости и рекомендуется в качестве основного. Spotify может ограничивать скорость после большого количества запросов.'; + String get metadataProviderPriorityInfo => 'Deezer не имеет ограничений по скорости и рекомендуется в качестве основного. Spotify может ограничивать скорость после большого количества запросов.'; @override String get metadataNoRateLimits => 'Без ограничений по скорости'; @@ -1382,26 +1314,22 @@ class AppLocalizationsRu extends AppLocalizations { String get logNoLogsYet => 'Логов нет'; @override - String get logNoLogsYetSubtitle => - 'Логи появятся здесь по мере использования приложения'; + String get logNoLogsYetSubtitle => 'Логи появятся здесь по мере использования приложения'; @override String get logIssueSummary => 'Краткое описание проблемы'; @override - String get logIspBlockingDescription => - 'Ваш провайдер может блокировать доступ к сервисам скачивания'; + String get logIspBlockingDescription => 'Ваш провайдер может блокировать доступ к сервисам скачивания'; @override - String get logIspBlockingSuggestion => - 'Попробуйте использовать VPN или измените DNS на 1.1.1.1 или 8.8.8.8'; + String get logIspBlockingSuggestion => 'Попробуйте использовать VPN или измените DNS на 1.1.1.1 или 8.8.8.8'; @override String get logRateLimitedDescription => 'Слишком много запросов к сервису'; @override - String get logRateLimitedSuggestion => - 'Подождите несколько минут, прежде чем повторить попытку'; + String get logRateLimitedSuggestion => 'Подождите несколько минут, прежде чем повторить попытку'; @override String get logNetworkErrorDescription => 'Обнаружены проблемы с подключением'; @@ -1410,12 +1338,10 @@ class AppLocalizationsRu extends AppLocalizations { String get logNetworkErrorSuggestion => 'Проверьте подключение к Интернету'; @override - String get logTrackNotFoundDescription => - 'Некоторые треки не найдены в сервисах загрузки'; + String get logTrackNotFoundDescription => 'Некоторые треки не найдены в сервисах загрузки'; @override - String get logTrackNotFoundSuggestion => - 'Трек может быть недоступен в lossless формате'; + String get logTrackNotFoundSuggestion => 'Трек может быть недоступен в lossless формате'; @override String logTotalErrors(int count) { @@ -1441,8 +1367,7 @@ class AppLocalizationsRu extends AppLocalizations { String get credentialsTitle => 'Учётные данные Spotify'; @override - String get credentialsDescription => - 'Введите свой Client ID и Secret, чтобы использовать собственные квоты в Spotify.'; + String get credentialsDescription => 'Введите свой Client ID и Secret, чтобы использовать собственные квоты в Spotify.'; @override String get credentialsClientId => 'Client ID'; @@ -1496,8 +1421,7 @@ class AppLocalizationsRu extends AppLocalizations { String get lyricsMode => 'Режим текстов песен'; @override - String get lyricsModeDescription => - 'Выберите как сохранить тексты песен при скачивании'; + String get lyricsModeDescription => 'Выберите как сохранить тексты песен при скачивании'; @override String get lyricsModeEmbed => 'Вставить в файл'; @@ -1509,8 +1433,7 @@ class AppLocalizationsRu extends AppLocalizations { String get lyricsModeExternal => 'Внешний файл .lrc'; @override - String get lyricsModeExternalSubtitle => - 'Отдельный файл .lrc для плееров, таких, как Samsung Music'; + String get lyricsModeExternalSubtitle => 'Отдельный файл .lrc для плееров, таких, как Samsung Music'; @override String get lyricsModeBoth => 'Оба варианта'; @@ -1540,12 +1463,10 @@ class AppLocalizationsRu extends AppLocalizations { String get settingsAppearanceSubtitle => 'Тема, цвета, дисплей'; @override - String get settingsDownloadSubtitle => - 'Сервисы, качество, формат имени файла'; + String get settingsDownloadSubtitle => 'Сервисы, качество, формат имени файла'; @override - String get settingsOptionsSubtitle => - 'Резерв. сервер, тексты песен, обложки, обновления'; + String get settingsOptionsSubtitle => 'Резерв. сервер, тексты песен, обложки, обновления'; @override String get settingsExtensionsSubtitle => 'Управление провайдерами скачивания'; @@ -1650,12 +1571,10 @@ class AppLocalizationsRu extends AppLocalizations { String get trackCopyLyrics => 'Копировать текст'; @override - String get trackLyricsNotAvailable => - 'Текст песни недоступен для этого трека'; + String get trackLyricsNotAvailable => 'Текст песни недоступен для этого трека'; @override - String get trackLyricsTimeout => - 'Время ожидания запроса истекло. Повторите попытку позже.'; + String get trackLyricsTimeout => 'Время ожидания запроса истекло. Повторите попытку позже.'; @override String get trackLyricsLoadFailed => 'Не удалось загрузить текст песни'; @@ -1676,8 +1595,7 @@ class AppLocalizationsRu extends AppLocalizations { String get trackDeleteConfirmTitle => 'Удалить с устройства?'; @override - String get trackDeleteConfirmMessage => - 'Это приведет к окончательному удалению загруженного файла и его удалению из истории.'; + String get trackDeleteConfirmMessage => 'Это приведет к окончательному удалению загруженного файла и его удалению из истории.'; @override String trackCannotOpen(String message) { @@ -1751,8 +1669,7 @@ class AppLocalizationsRu extends AppLocalizations { String get extensionDefaultProvider => 'По умолчанию (Deezer/Spotify)'; @override - String get extensionDefaultProviderSubtitle => - 'Использовать встроенный поиск'; + String get extensionDefaultProviderSubtitle => 'Использовать встроенный поиск'; @override String get extensionAuthor => 'Автор'; @@ -1800,8 +1717,7 @@ class AppLocalizationsRu extends AppLocalizations { String get extensionMinAppVersion => 'Мин. версия приложения'; @override - String get extensionCustomTrackMatching => - 'Соответствие пользовательских треков'; + String get extensionCustomTrackMatching => 'Соответствие пользовательских треков'; @override String get extensionPostProcessing => 'Постобработка'; @@ -1831,15 +1747,13 @@ class AppLocalizationsRu extends AppLocalizations { String get extensionsNoExtensions => 'Нет установленных расширений'; @override - String get extensionsNoExtensionsSubtitle => - 'Установите .spotiflac-ext файлы для добавления новых провайдеров'; + String get extensionsNoExtensionsSubtitle => 'Установите .spotiflac-ext файлы для добавления новых провайдеров'; @override String get extensionsInstallButton => 'Установить расширение'; @override - String get extensionsInfoTip => - 'Расширения могут добавлять новые метаданные и провайдеров загрузки. Устанавливайте только расширения из надежных источников.'; + String get extensionsInfoTip => 'Расширения могут добавлять новые метаданные и провайдеров загрузки. Устанавливайте только расширения из надежных источников.'; @override String get extensionsInstalledSuccess => 'Расширение успешно установлено'; @@ -1848,34 +1762,28 @@ class AppLocalizationsRu extends AppLocalizations { String get extensionsDownloadPriority => 'Приоритет скачивания'; @override - String get extensionsDownloadPrioritySubtitle => - 'Установка порядок сервисов скачивания'; + String get extensionsDownloadPrioritySubtitle => 'Установка порядок сервисов скачивания'; @override - String get extensionsNoDownloadProvider => - 'Нет расширений с провайдером загрузки'; + String get extensionsNoDownloadProvider => 'Нет расширений с провайдером загрузки'; @override String get extensionsMetadataPriority => 'Приоритет метаданных'; @override - String get extensionsMetadataPrioritySubtitle => - 'Установка порядка поиска и источника метаданных'; + String get extensionsMetadataPrioritySubtitle => 'Установка порядка поиска и источника метаданных'; @override - String get extensionsNoMetadataProvider => - 'Нет расширений с провайдером метаданных'; + String get extensionsNoMetadataProvider => 'Нет расширений с провайдером метаданных'; @override String get extensionsSearchProvider => 'Провайдер поиска'; @override - String get extensionsNoCustomSearch => - 'Нет расширений с пользовательским поиском'; + String get extensionsNoCustomSearch => 'Нет расширений с пользовательским поиском'; @override - String get extensionsSearchProviderDescription => - 'Выберите, какой сервис использовать для поиска треков'; + String get extensionsSearchProviderDescription => 'Выберите, какой сервис использовать для поиска треков'; @override String get extensionsCustomSearch => 'Пользовательский поиск'; @@ -1917,8 +1825,7 @@ class AppLocalizationsRu extends AppLocalizations { String get enableLossyOptionSubtitleOn => 'Lossy quality option is available'; @override - String get enableLossyOptionSubtitleOff => - 'Downloads FLAC then converts to lossy format'; + String get enableLossyOptionSubtitleOff => 'Downloads FLAC then converts to lossy format'; @override String get lossyFormat => 'Lossy Format'; @@ -1930,12 +1837,10 @@ class AppLocalizationsRu extends AppLocalizations { String get lossyFormatMp3Subtitle => '320kbps, best compatibility'; @override - String get lossyFormatOpusSubtitle => - '128kbps, better quality at smaller size'; + String get lossyFormatOpusSubtitle => '128kbps, better quality at smaller size'; @override - String get qualityNote => - 'Фактическое качество зависит от доступности треков в сервисе'; + String get qualityNote => 'Фактическое качество зависит от доступности треков в сервисе'; @override String get downloadAskBeforeDownload => 'Спрашивать перед скачиванием'; @@ -1971,8 +1876,7 @@ class AppLocalizationsRu extends AppLocalizations { String get folderNone => 'Отсутствует'; @override - String get folderNoneSubtitle => - 'Сохранить все файлы непосредственно в папку загрузки'; + String get folderNoneSubtitle => 'Сохранить все файлы непосредственно в папку загрузки'; @override String get folderArtist => 'Исполнитель'; @@ -2026,15 +1930,13 @@ class AppLocalizationsRu extends AppLocalizations { String get queueClearAll => 'Очистить всё'; @override - String get queueClearAllMessage => - 'Вы уверены, что хотите очистить все загрузки?'; + String get queueClearAllMessage => 'Вы уверены, что хотите очистить все загрузки?'; @override String get queueExportFailed => 'Export'; @override - String get queueExportFailedSuccess => - 'Failed downloads exported to TXT file'; + String get queueExportFailedSuccess => 'Failed downloads exported to TXT file'; @override String get queueExportFailedClear => 'Clear Failed'; @@ -2046,8 +1948,7 @@ class AppLocalizationsRu extends AppLocalizations { String get settingsAutoExportFailed => 'Auto-export failed downloads'; @override - String get settingsAutoExportFailedSubtitle => - 'Save failed downloads to TXT file automatically'; + String get settingsAutoExportFailedSubtitle => 'Save failed downloads to TXT file automatically'; @override String get settingsDownloadNetwork => 'Download Network'; @@ -2059,8 +1960,55 @@ class AppLocalizationsRu extends AppLocalizations { String get settingsDownloadNetworkWifiOnly => 'WiFi Only'; @override - String get settingsDownloadNetworkSubtitle => - 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + String get settingsDownloadNetworkSubtitle => 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + + @override + String get settingsCloudSave => 'Cloud Save'; + + @override + String get settingsCloudSaveSubtitle => 'Auto-upload to NAS or cloud storage'; + + @override + String get cloudSettingsTitle => 'Cloud Save'; + + @override + String get cloudSettingsSectionGeneral => 'General'; + + @override + String get cloudSettingsEnable => 'Enable Cloud Upload'; + + @override + String get cloudSettingsEnableSubtitle => 'Automatically upload files after download completes'; + + @override + String get cloudSettingsSectionProvider => 'Cloud Provider'; + + @override + String get cloudSettingsProvider => 'Provider'; + + @override + String get cloudSettingsProviderDescription => 'Select where to upload your downloaded files'; + + @override + String get cloudSettingsSectionServer => 'Server Configuration'; + + @override + String get cloudSettingsServerUrl => 'Server URL'; + + @override + String get cloudSettingsUsername => 'Username'; + + @override + String get cloudSettingsPassword => 'Password'; + + @override + String get cloudSettingsRemotePath => 'Remote Folder Path'; + + @override + String get cloudSettingsTestConnection => 'Test Connection'; + + @override + String get cloudSettingsInfo => 'Downloaded files will be automatically uploaded to your cloud storage after download completes. Original files are kept on your device.'; @override String get queueEmpty => 'Нет загрузок в очереди'; @@ -2090,15 +2038,13 @@ class AppLocalizationsRu extends AppLocalizations { String get albumFolderArtistAlbum => 'Исполнитель / Альбом'; @override - String get albumFolderArtistAlbumSubtitle => - 'Альбомы/Исполнитель/Название Альбома/'; + String get albumFolderArtistAlbumSubtitle => 'Альбомы/Исполнитель/Название Альбома/'; @override String get albumFolderArtistYearAlbum => 'Исполнитель / [Год] Альбом'; @override - String get albumFolderArtistYearAlbumSubtitle => - 'Альбомы/Исполнитель/[2005] Название Альбома/'; + String get albumFolderArtistYearAlbumSubtitle => 'Альбомы/Исполнитель/[2005] Название Альбома/'; @override String get albumFolderAlbumOnly => 'Только альбом'; @@ -2110,15 +2056,13 @@ class AppLocalizationsRu extends AppLocalizations { String get albumFolderYearAlbum => '[Год] Альбом'; @override - String get albumFolderYearAlbumSubtitle => - 'Альбомы/[2005] Название Альбома /'; + String get albumFolderYearAlbumSubtitle => 'Альбомы/[2005] Название Альбома /'; @override String get albumFolderArtistAlbumSingles => 'Исполнитель / Альбом + Синглы'; @override - String get albumFolderArtistAlbumSinglesSubtitle => - 'Исполнитель/Альбом и Исполнитель/Сингл/'; + String get albumFolderArtistAlbumSinglesSubtitle => 'Исполнитель/Альбом и Исполнитель/Сингл/'; @override String get downloadedAlbumDeleteSelected => 'Удалить выбранные'; @@ -2232,8 +2176,7 @@ class AppLocalizationsRu extends AppLocalizations { String get discographySelectAlbums => 'Выбрать альбомы...'; @override - String get discographySelectAlbumsSubtitle => - 'Выберите конкретные альбомы или синглы'; + String get discographySelectAlbumsSubtitle => 'Выберите конкретные альбомы или синглы'; @override String get discographyFetchingTracks => 'Получение треков...'; @@ -2265,8 +2208,7 @@ class AppLocalizationsRu extends AppLocalizations { String get discographyNoAlbums => 'Нет доступных альбомов'; @override - String get discographyFailedToFetch => - 'Не удалось получить некоторые альбомы'; + String get discographyFailedToFetch => 'Не удалось получить некоторые альбомы'; @override String get sectionStorageAccess => 'Storage Access'; @@ -2281,14 +2223,11 @@ class AppLocalizationsRu extends AppLocalizations { String get allFilesAccessDisabledSubtitle => 'Limited to media folders only'; @override - String get allFilesAccessDescription => - 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; + String get allFilesAccessDescription => 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; @override - String get allFilesAccessDeniedMessage => - 'Permission was denied. Please enable \'All files access\' manually in system settings.'; + String get allFilesAccessDeniedMessage => 'Permission was denied. Please enable \'All files access\' manually in system settings.'; @override - String get allFilesAccessDisabledMessage => - 'All Files Access disabled. The app will use limited storage access.'; + String get allFilesAccessDisabledMessage => 'All Files Access disabled. The app will use limited storage access.'; } diff --git a/lib/l10n/app_localizations_tr.dart b/lib/l10n/app_localizations_tr.dart index cd339afa..eb9d5ae8 100644 --- a/lib/l10n/app_localizations_tr.dart +++ b/lib/l10n/app_localizations_tr.dart @@ -12,8 +12,7 @@ class AppLocalizationsTr extends AppLocalizations { String get appName => 'SpotiFLAC'; @override - String get appDescription => - 'Spotify şarkılarını Tidal, Qobuz ve Amazon Music\'den yüksek kalitede indir.'; + String get appDescription => 'Spotify şarkılarını Tidal, Qobuz ve Amazon Music\'den yüksek kalitede indir.'; @override String get navHome => 'Ara'; @@ -42,8 +41,7 @@ class AppLocalizationsTr extends AppLocalizations { String get homeSubtitle => 'Spotify linki yapıştır veya isimle arat'; @override - String get homeSupports => - 'Desteklenen linkler: Şarkı, Albüm, Çalma Listesi, Sanatçı linkleri'; + String get homeSupports => 'Desteklenen linkler: Şarkı, Albüm, Çalma Listesi, Sanatçı linkleri'; @override String get homeRecent => 'En son'; @@ -94,15 +92,13 @@ class AppLocalizationsTr extends AppLocalizations { String get historyNoDownloads => 'İndirme geçmişi yok'; @override - String get historyNoDownloadsSubtitle => - 'İndirilen şarkılar burada gözükecek'; + String get historyNoDownloadsSubtitle => 'İndirilen şarkılar burada gözükecek'; @override String get historyNoAlbums => 'İndirilen albüm yok'; @override - String get historyNoAlbumsSubtitle => - 'Albümleri burada görmek için bir albümden birden fazla şarkı indir'; + String get historyNoAlbumsSubtitle => 'Albümleri burada görmek için bir albümden birden fazla şarkı indir'; @override String get historyNoSingles => 'Single indirilmemiş'; @@ -138,8 +134,7 @@ class AppLocalizationsTr extends AppLocalizations { String get downloadLocation => 'İndirme Konumu'; @override - String get downloadLocationSubtitle => - 'Dosyaları nereye kaydedeceğinizi seçin'; + String get downloadLocationSubtitle => 'Dosyaları nereye kaydedeceğinizi seçin'; @override String get downloadLocationDefault => 'Varsayılan dizin'; @@ -148,8 +143,7 @@ class AppLocalizationsTr extends AppLocalizations { String get downloadDefaultService => 'Varsayılan Hizmet'; @override - String get downloadDefaultServiceSubtitle => - 'İndirmeler için kullanılan hizmet'; + String get downloadDefaultServiceSubtitle => 'İndirmeler için kullanılan hizmet'; @override String get downloadDefaultQuality => 'Varsayılan Kalite'; @@ -158,8 +152,7 @@ class AppLocalizationsTr extends AppLocalizations { String get downloadAskQuality => 'İndirmeden Önce Kaliteyi Sor'; @override - String get downloadAskQualitySubtitle => - 'Her indirmeden önce kalite seçim ekranını göster'; + String get downloadAskQualitySubtitle => 'Her indirmeden önce kalite seçim ekranını göster'; @override String get downloadFilenameFormat => 'Dosya adı formatı'; @@ -171,8 +164,7 @@ class AppLocalizationsTr extends AppLocalizations { String get downloadSeparateSingles => 'Single\'ları Ayır'; @override - String get downloadSeparateSinglesSubtitle => - 'Single şarkıları ayrı dosyaya koy'; + String get downloadSeparateSinglesSubtitle => 'Single şarkıları ayrı dosyaya koy'; @override String get qualityBest => 'Mevcut en iyi'; @@ -205,8 +197,7 @@ class AppLocalizationsTr extends AppLocalizations { String get appearanceDynamicColor => 'Dinamik Renk'; @override - String get appearanceDynamicColorSubtitle => - 'Duvar kağıdının renklerini kullan'; + String get appearanceDynamicColorSubtitle => 'Duvar kağıdının renklerini kullan'; @override String get appearanceAccentColor => 'Vurgu Rengi'; @@ -230,8 +221,7 @@ class AppLocalizationsTr extends AppLocalizations { String get optionsPrimaryProvider => 'Ana Kaynek'; @override - String get optionsPrimaryProviderSubtitle => - 'Şarkı ismi aratılırken kullanılan kaynak.'; + String get optionsPrimaryProviderSubtitle => 'Şarkı ismi aratılırken kullanılan kaynak.'; @override String optionsUsingExtension(String extensionName) { @@ -239,15 +229,13 @@ class AppLocalizationsTr extends AppLocalizations { } @override - String get optionsSwitchBack => - 'Dahili kaynaklara dönmek için Deezer veya Spotify\'a tıkla'; + String get optionsSwitchBack => 'Dahili kaynaklara dönmek için Deezer veya Spotify\'a tıkla'; @override String get optionsAutoFallback => 'Diğerlerini dene'; @override - String get optionsAutoFallbackSubtitle => - 'İndirme başarısız olursa diğer hizmetleri dene'; + String get optionsAutoFallbackSubtitle => 'İndirme başarısız olursa diğer hizmetleri dene'; @override String get optionsUseExtensionProviders => 'Eklenti sağlayıcılarını kullan'; @@ -256,22 +244,19 @@ class AppLocalizationsTr extends AppLocalizations { String get optionsUseExtensionProvidersOn => 'Eklentiler ilk denenecek'; @override - String get optionsUseExtensionProvidersOff => - 'Sadece dahili sağlayıcıları kullan'; + String get optionsUseExtensionProvidersOff => 'Sadece dahili sağlayıcıları kullan'; @override String get optionsEmbedLyrics => 'Şarkı Sözlerini Göm'; @override - String get optionsEmbedLyricsSubtitle => - 'Senkronize şarkı sözlerini FLAC dosyalarına göm'; + String get optionsEmbedLyricsSubtitle => 'Senkronize şarkı sözlerini FLAC dosyalarına göm'; @override String get optionsMaxQualityCover => 'En Yüksek Kapak Kalitesi'; @override - String get optionsMaxQualityCoverSubtitle => - 'En yüksek kalitedeki albüm kapaklarını indir'; + String get optionsMaxQualityCoverSubtitle => 'En yüksek kalitedeki albüm kapaklarını indir'; @override String get optionsConcurrentDownloads => 'Eş Zamanlı İndirmeler'; @@ -285,8 +270,7 @@ class AppLocalizationsTr extends AppLocalizations { } @override - String get optionsConcurrentWarning => - 'Aynı anda birden fazla indirme sınırlamaya takılabilir'; + String get optionsConcurrentWarning => 'Aynı anda birden fazla indirme sınırlamaya takılabilir'; @override String get optionsExtensionStore => 'Eklenti Dükkanı'; @@ -310,15 +294,13 @@ class AppLocalizationsTr extends AppLocalizations { String get optionsUpdateChannelPreview => 'Önizleme sürümlerini al'; @override - String get optionsUpdateChannelWarning => - 'Önizleme sürümleri hatalar veya tamamlanmamış özellikler içerebilir'; + String get optionsUpdateChannelWarning => 'Önizleme sürümleri hatalar veya tamamlanmamış özellikler içerebilir'; @override String get optionsClearHistory => 'İndirme Geçmişini Temizle'; @override - String get optionsClearHistorySubtitle => - 'İndirilen bütün şarkıları geçmişten temizle'; + String get optionsClearHistorySubtitle => 'İndirilen bütün şarkıları geçmişten temizle'; @override String get optionsDetailedLogging => 'Detaylı Günlükleme'; @@ -338,12 +320,10 @@ class AppLocalizationsTr extends AppLocalizations { } @override - String get optionsSpotifyCredentialsRequired => - 'Zorunlu - değiştirmek için tıkla'; + String get optionsSpotifyCredentialsRequired => 'Zorunlu - değiştirmek için tıkla'; @override - String get optionsSpotifyWarning => - 'Spotify\'ın senin API kimlik bilgilerine ihtiyacı var. Onları developer.spotify.com\'dan alabilirsin'; + String get optionsSpotifyWarning => 'Spotify\'ın senin API kimlik bilgilerine ihtiyacı var. Onları developer.spotify.com\'dan alabilirsin'; @override String get extensionsTitle => 'Eklentiler'; @@ -407,8 +387,7 @@ class AppLocalizationsTr extends AppLocalizations { String get aboutOriginalCreator => 'Orijinal SpotiFLAC\'ın kurucusu'; @override - String get aboutLogoArtist => - 'Uygulama logomuzu yaratmış yetenekli sanatçımız!'; + String get aboutLogoArtist => 'Uygulama logomuzu yaratmış yetenekli sanatçımız!'; @override String get aboutTranslators => 'Çevirmenler'; @@ -429,15 +408,13 @@ class AppLocalizationsTr extends AppLocalizations { String get aboutReportIssue => 'Sorun bildir'; @override - String get aboutReportIssueSubtitle => - 'Karşılaştığın herhangi bir problemi bildir'; + String get aboutReportIssueSubtitle => 'Karşılaştığın herhangi bir problemi bildir'; @override String get aboutFeatureRequest => 'Özellik isteği'; @override - String get aboutFeatureRequestSubtitle => - 'Uygulama için yeni özellikler isteyin'; + String get aboutFeatureRequestSubtitle => 'Uygulama için yeni özellikler isteyin'; @override String get aboutTelegramChannel => 'Telegram Kanalı'; @@ -470,34 +447,28 @@ class AppLocalizationsTr extends AppLocalizations { String get aboutVersion => 'Versiyon'; @override - String get aboutBinimumDesc => - 'QQDL ve HiFi API\'ın kurucusu. Bu API olmadan, Tidal indirmeleri olmazdı!'; + String get aboutBinimumDesc => 'QQDL ve HiFi API\'ın kurucusu. Bu API olmadan, Tidal indirmeleri olmazdı!'; @override - String get aboutSachinsenalDesc => - 'Orijinal HiFi projesi kurucusu. Tidal entegrasyonun temeli!'; + String get aboutSachinsenalDesc => 'Orijinal HiFi projesi kurucusu. Tidal entegrasyonun temeli!'; @override - String get aboutSjdonadoDesc => - 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; + String get aboutSjdonadoDesc => 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; @override String get aboutDoubleDouble => 'DoubleDouble'; @override - String get aboutDoubleDoubleDesc => - 'Amazom Music indirmeleri için harika bir API. Ücretsiz yaptığın için teşekkürler!'; + String get aboutDoubleDoubleDesc => 'Amazom Music indirmeleri için harika bir API. Ücretsiz yaptığın için teşekkürler!'; @override String get aboutDabMusic => 'DAB Music'; @override - String get aboutDabMusicDesc => - 'En iyi Qobuz streaming API\'ı. Yüksek kalite indirmeler bunun sayesinde!'; + String get aboutDabMusicDesc => 'En iyi Qobuz streaming API\'ı. Yüksek kalite indirmeler bunun sayesinde!'; @override - String get aboutAppDescription => - 'Spotify şarkılarını Tidal, Qobuz ve Amazon Music\'den yüksek kalitede indir.'; + String get aboutAppDescription => 'Spotify şarkılarını Tidal, Qobuz ve Amazon Music\'den yüksek kalitede indir.'; @override String get albumTitle => 'Albüm'; @@ -602,8 +573,7 @@ class AppLocalizationsTr extends AppLocalizations { String get setupStoragePermission => 'Depolama İzni'; @override - String get setupStoragePermissionSubtitle => - 'İndirilen dosyaları kaydetmek için gerekli'; + String get setupStoragePermissionSubtitle => 'İndirilen dosyaları kaydetmek için gerekli'; @override String get setupStoragePermissionGranted => 'İzin verildi'; @@ -630,19 +600,16 @@ class AppLocalizationsTr extends AppLocalizations { String get setupStorageAccessRequired => 'Depolama Erişimi Gerekli'; @override - String get setupStorageAccessMessage => - 'SpotiFLAC\'ın şarkıları seçili klasörünüze kaydetmek için \"Bütün dosyalara eriş\" iznine ihtiyacı var.'; + String get setupStorageAccessMessage => 'SpotiFLAC\'ın şarkıları seçili klasörünüze kaydetmek için \"Bütün dosyalara eriş\" iznine ihtiyacı var.'; @override - String get setupStorageAccessMessageAndroid11 => - 'Android 11 ve sonrasında şarkıların seçili klasörünüze kaydedilebilmesi için \"Bütün dosyalara eriş\" iznine ihtiyaç var.'; + String get setupStorageAccessMessageAndroid11 => 'Android 11 ve sonrasında şarkıların seçili klasörünüze kaydedilebilmesi için \"Bütün dosyalara eriş\" iznine ihtiyaç var.'; @override String get setupOpenSettings => 'Ayarları Aç'; @override - String get setupPermissionDeniedMessage => - 'İzin reddedildi. Devam etmek için lütfen bütün izinleri verin.'; + String get setupPermissionDeniedMessage => 'İzin reddedildi. Devam etmek için lütfen bütün izinleri verin.'; @override String setupPermissionRequired(String permissionType) { @@ -661,8 +628,7 @@ class AppLocalizationsTr extends AppLocalizations { String get setupUseDefaultFolder => 'Varsayılan Klasörü Kullan?'; @override - String get setupNoFolderSelected => - 'Klasör seçilmedi. Varsayılan \"Music\" klasörünü kullanmak ister misiniz?'; + String get setupNoFolderSelected => 'Klasör seçilmedi. Varsayılan \"Music\" klasörünü kullanmak ister misiniz?'; @override String get setupUseDefault => 'Varsayılanı Kullan'; @@ -671,15 +637,13 @@ class AppLocalizationsTr extends AppLocalizations { String get setupDownloadLocationTitle => 'İndirme Konumu'; @override - String get setupDownloadLocationIosMessage => - 'iOS\'ta indirilenler uygulamanın \"Documents\" dosyasına kaydedilir. Onlara Dosyalar uygulamasından erişebilirsiniz.'; + String get setupDownloadLocationIosMessage => 'iOS\'ta indirilenler uygulamanın \"Documents\" dosyasına kaydedilir. Onlara Dosyalar uygulamasından erişebilirsiniz.'; @override String get setupAppDocumentsFolder => 'App Documents Folder'; @override - String get setupAppDocumentsFolderSubtitle => - 'Tavsiye edilen - Dosyalar uygulamasından erişilebilir'; + String get setupAppDocumentsFolderSubtitle => 'Tavsiye edilen - Dosyalar uygulamasından erişilebilir'; @override String get setupChooseFromFiles => 'Dosyalar\'dan Seç'; @@ -688,12 +652,10 @@ class AppLocalizationsTr extends AppLocalizations { String get setupChooseFromFilesSubtitle => 'iCloud veya başka konum seç'; @override - String get setupIosEmptyFolderWarning => - 'iOS\'un sınırlaması: Boş klasörler seçilemiyor. İçinde en az bir dosya bulunan bir klasör seçin.'; + String get setupIosEmptyFolderWarning => 'iOS\'un sınırlaması: Boş klasörler seçilemiyor. İçinde en az bir dosya bulunan bir klasör seçin.'; @override - String get setupIcloudNotSupported => - 'iCloud Drive is not supported. Please use the app Documents folder.'; + String get setupIcloudNotSupported => 'iCloud Drive is not supported. Please use the app Documents folder.'; @override String get setupDownloadInFlac => 'Spotify şarkılarını FLAC olarak indirin'; @@ -720,8 +682,7 @@ class AppLocalizationsTr extends AppLocalizations { String get setupStorageRequired => 'Depolama İzni Gerekli'; @override - String get setupStorageDescription => - 'SpotiFLAC\'ın şarkılarınızı kaydetmek için depolama iznine ihtiyacı var.'; + String get setupStorageDescription => 'SpotiFLAC\'ın şarkılarınızı kaydetmek için depolama iznine ihtiyacı var.'; @override String get setupNotificationGranted => 'Bildirim İzni Verildi!'; @@ -730,8 +691,7 @@ class AppLocalizationsTr extends AppLocalizations { String get setupNotificationEnable => 'Bildirimleri Etkinleştir'; @override - String get setupNotificationDescription => - 'İndirmeler bittiğinde veya bakılması gereken bir şey olduğunda haberdar olun.'; + String get setupNotificationDescription => 'İndirmeler bittiğinde veya bakılması gereken bir şey olduğunda haberdar olun.'; @override String get setupFolderSelected => 'İndirilecek Klasör Seçildi!'; @@ -740,8 +700,7 @@ class AppLocalizationsTr extends AppLocalizations { String get setupFolderChoose => 'İndirilecek Klasörü Seç'; @override - String get setupFolderDescription => - 'İndirdiğin şarkıların kaydedileceği klasörü seç.'; + String get setupFolderDescription => 'İndirdiğin şarkıların kaydedileceği klasörü seç.'; @override String get setupChangeFolder => 'Klasörü Değiştir'; @@ -753,8 +712,7 @@ class AppLocalizationsTr extends AppLocalizations { String get setupSpotifyApiOptional => 'Spotify API (İsteğe Bağlı)'; @override - String get setupSpotifyApiDescription => - 'Daha iyi arama sonuçları ve Spotify\'a özel içeriklere erişmek için Spotify API kimlik bilgilerini gir.'; + String get setupSpotifyApiDescription => 'Daha iyi arama sonuçları ve Spotify\'a özel içeriklere erişmek için Spotify API kimlik bilgilerini gir.'; @override String get setupUseSpotifyApi => 'Spotify API\'ı kullan'; @@ -772,8 +730,7 @@ class AppLocalizationsTr extends AppLocalizations { String get setupEnterClientSecret => 'Spotify Client Secret gir'; @override - String get setupGetFreeCredentials => - 'Spotify Developer Dashboard\'tan API kimlik bilgilerini ücretsiz alın.'; + String get setupGetFreeCredentials => 'Spotify Developer Dashboard\'tan API kimlik bilgilerini ücretsiz alın.'; @override String get setupEnableNotifications => 'Bildirimleri Etkinleştir'; @@ -782,12 +739,10 @@ class AppLocalizationsTr extends AppLocalizations { String get setupProceedToNextStep => 'Bir sonraki adıma geçebilirsin.'; @override - String get setupNotificationProgressDescription => - 'İndirme ilerlemelerinin bildirimlerini alacaksın.'; + String get setupNotificationProgressDescription => 'İndirme ilerlemelerinin bildirimlerini alacaksın.'; @override - String get setupNotificationBackgroundDescription => - 'İndirmelerin durumu hakkında bildirim al. Bunu açmak uygulama arka plandayken indirmelerinizi takip etmenizi sağlar.'; + String get setupNotificationBackgroundDescription => 'İndirmelerin durumu hakkında bildirim al. Bunu açmak uygulama arka plandayken indirmelerinizi takip etmenizi sağlar.'; @override String get setupSkipForNow => 'Şimdilik atla'; @@ -805,12 +760,10 @@ class AppLocalizationsTr extends AppLocalizations { String get setupSkipAndStart => 'Kurulumu atla'; @override - String get setupAllowAccessToManageFiles => - 'Lütfen bir sonraki ekranda \"Bütün dosyalara eriş\" iznini sağlayın.'; + String get setupAllowAccessToManageFiles => 'Lütfen bir sonraki ekranda \"Bütün dosyalara eriş\" iznini sağlayın.'; @override - String get setupGetCredentialsFromSpotify => - 'Kimlik bilgilerini developer.spotify.com\'dan alın'; + String get setupGetCredentialsFromSpotify => 'Kimlik bilgilerini developer.spotify.com\'dan alın'; @override String get dialogCancel => 'İptal'; @@ -861,8 +814,7 @@ class AppLocalizationsTr extends AppLocalizations { String get dialogDiscardChanges => 'Değişiklikleri İptal Et?'; @override - String get dialogUnsavedChanges => - 'Kaydedilmeyen değişiklikler mevcut. Bu değişiklikleri iptal etmek istiyor musunuz?'; + String get dialogUnsavedChanges => 'Kaydedilmeyen değişiklikler mevcut. Bu değişiklikleri iptal etmek istiyor musunuz?'; @override String get dialogDownloadFailed => 'İndirme Başarısız'; @@ -880,8 +832,7 @@ class AppLocalizationsTr extends AppLocalizations { String get dialogClearAll => 'Tümünü Temizle'; @override - String get dialogClearAllDownloads => - 'Bütün indirmeleri temizlemek istediğinize emin misiniz?'; + String get dialogClearAllDownloads => 'Bütün indirmeleri temizlemek istediğinize emin misiniz?'; @override String get dialogRemoveFromDevice => 'Cihazdan kaldır?'; @@ -890,8 +841,7 @@ class AppLocalizationsTr extends AppLocalizations { String get dialogRemoveExtension => 'Eklentiyi Kaldır'; @override - String get dialogRemoveExtensionMessage => - 'Bu eklentiyi kaldırmak istediğine emin misin? Bu işlem geri alınamaz.'; + String get dialogRemoveExtensionMessage => 'Bu eklentiyi kaldırmak istediğine emin misin? Bu işlem geri alınamaz.'; @override String get dialogUninstallExtension => 'Eklentiyi Kaldır?'; @@ -905,8 +855,7 @@ class AppLocalizationsTr extends AppLocalizations { String get dialogClearHistoryTitle => 'Geçmişi Temizle'; @override - String get dialogClearHistoryMessage => - 'Tüm indirme geçmişini temizlemek istediğinizden emin misiniz? Bu işlem geri alınamaz.'; + String get dialogClearHistoryMessage => 'Tüm indirme geçmişini temizlemek istediğinizden emin misiniz? Bu işlem geri alınamaz.'; @override String get dialogDeleteSelectedTitle => 'Seçileni Sil'; @@ -1001,8 +950,7 @@ class AppLocalizationsTr extends AppLocalizations { String get snackbarProviderPrioritySaved => 'Sağlayıcı önceliği kaydedildi'; @override - String get snackbarMetadataProviderSaved => - 'Metadata sağlayıcı önceliği kaydedildi'; + String get snackbarMetadataProviderSaved => 'Metadata sağlayıcı önceliği kaydedildi'; @override String snackbarExtensionInstalled(String extensionName) { @@ -1024,8 +972,7 @@ class AppLocalizationsTr extends AppLocalizations { String get errorRateLimited => 'Aşırı istek gönderildi'; @override - String get errorRateLimitedMessage => - 'Çok fazla istek. Lütfen arama yapmadan önce biraz bekleyin.'; + String get errorRateLimitedMessage => 'Çok fazla istek. Lütfen arama yapmadan önce biraz bekleyin.'; @override String errorFailedToLoad(String item) { @@ -1192,23 +1139,19 @@ class AppLocalizationsTr extends AppLocalizations { String get folderOrganizationByArtistAlbum => 'Sanatçı/Albüm'; @override - String get folderOrganizationDescription => - 'İndirilenleri klasörlerle organize et'; + String get folderOrganizationDescription => 'İndirilenleri klasörlerle organize et'; @override - String get folderOrganizationNoneSubtitle => - 'Her şey indirilen dosyasına kaydedilecek'; + String get folderOrganizationNoneSubtitle => 'Her şey indirilen dosyasına kaydedilecek'; @override - String get folderOrganizationByArtistSubtitle => - 'Her sanatçı için ayrı klasör'; + String get folderOrganizationByArtistSubtitle => 'Her sanatçı için ayrı klasör'; @override String get folderOrganizationByAlbumSubtitle => 'Her albüm için ayrı klasör'; @override - String get folderOrganizationByArtistAlbumSubtitle => - 'Sanatçı klasörlerinin içinde Albüm klasörleri'; + String get folderOrganizationByArtistAlbumSubtitle => 'Sanatçı klasörlerinin içinde Albüm klasörleri'; @override String get updateAvailable => 'Güncelleme Mevcut'; @@ -1261,19 +1204,16 @@ class AppLocalizationsTr extends AppLocalizations { String get providerPriority => 'İndirme hizmetleri öncelik sırası'; @override - String get providerPrioritySubtitle => - 'İndirme hizmetlerini sıralamak için kaydır'; + String get providerPrioritySubtitle => 'İndirme hizmetlerini sıralamak için kaydır'; @override String get providerPriorityTitle => 'İndirme hizmetleri öncelik sırası'; @override - String get providerPriorityDescription => - 'İndirme hizmetlerini sıralamak için kaydır. Uygulama şarkı indirirken hizmetleri yukarıdan aşağıya doğru deneyecektir.'; + String get providerPriorityDescription => 'İndirme hizmetlerini sıralamak için kaydır. Uygulama şarkı indirirken hizmetleri yukarıdan aşağıya doğru deneyecektir.'; @override - String get providerPriorityInfo => - 'Eğer bir şarkı ilk hizmette mevcut değilse uygulama otomatik olarak bir sonrakini deneyecektir.'; + String get providerPriorityInfo => 'Eğer bir şarkı ilk hizmette mevcut değilse uygulama otomatik olarak bir sonrakini deneyecektir.'; @override String get providerBuiltIn => 'Dahili'; @@ -1285,19 +1225,16 @@ class AppLocalizationsTr extends AppLocalizations { String get metadataProviderPriority => 'Metadata Sağlayıcı Önceliği'; @override - String get metadataProviderPrioritySubtitle => - 'Şarkı metadata\'sı alınırken kullanılan sıra'; + String get metadataProviderPrioritySubtitle => 'Şarkı metadata\'sı alınırken kullanılan sıra'; @override String get metadataProviderPriorityTitle => 'Metadata Önceliği'; @override - String get metadataProviderPriorityDescription => - 'Metadata sağlayıcılarını sıralamak için kaydır. Uygulama şarkı ararken ve metadata alırken sağlayıcıları yukarıdan aşağıya doğru deneyecektir.'; + String get metadataProviderPriorityDescription => 'Metadata sağlayıcılarını sıralamak için kaydır. Uygulama şarkı ararken ve metadata alırken sağlayıcıları yukarıdan aşağıya doğru deneyecektir.'; @override - String get metadataProviderPriorityInfo => - 'Deezer\'ın istek sınırı yok ve birincil olarak önerilir. Spotify çok fazla istekten sonra sınırlama yapabilir.'; + String get metadataProviderPriorityInfo => 'Deezer\'ın istek sınırı yok ve birincil olarak önerilir. Spotify çok fazla istekten sonra sınırlama yapabilir.'; @override String get metadataNoRateLimits => 'İstek sınırı yok'; @@ -1342,8 +1279,7 @@ class AppLocalizationsTr extends AppLocalizations { String get logClearLogsTitle => 'Kayıtları temizle'; @override - String get logClearLogsMessage => - 'Tüm kayıtları temizlemek istediğinize emin misiniz?'; + String get logClearLogsMessage => 'Tüm kayıtları temizlemek istediğinize emin misiniz?'; @override String get logIspBlocking => 'ISP BLOCKING DETECTED'; @@ -1364,26 +1300,22 @@ class AppLocalizationsTr extends AppLocalizations { String get logNoLogsYet => 'Henüz kayıt yok'; @override - String get logNoLogsYetSubtitle => - 'Uygulamayı kullandıkça kayıtlar burada görünecek'; + String get logNoLogsYetSubtitle => 'Uygulamayı kullandıkça kayıtlar burada görünecek'; @override String get logIssueSummary => 'Sorun Özeti'; @override - String get logIspBlockingDescription => - 'İnternet sağlayıcınız indirme hizmetlerine erişimi engelliyor olabilir'; + String get logIspBlockingDescription => 'İnternet sağlayıcınız indirme hizmetlerine erişimi engelliyor olabilir'; @override - String get logIspBlockingSuggestion => - 'VPN kullanmayı veya DNS\'i 1.1.1.1 ya da 8.8.8.8 olarak değiştirmeyi deneyin'; + String get logIspBlockingSuggestion => 'VPN kullanmayı veya DNS\'i 1.1.1.1 ya da 8.8.8.8 olarak değiştirmeyi deneyin'; @override String get logRateLimitedDescription => 'Hizmete çok fazla istek gönderildi'; @override - String get logRateLimitedSuggestion => - 'Tekrar denemeden önce birkaç dakika bekleyin'; + String get logRateLimitedSuggestion => 'Tekrar denemeden önce birkaç dakika bekleyin'; @override String get logNetworkErrorDescription => 'Bağlantı sorunları tespit edildi'; @@ -1392,12 +1324,10 @@ class AppLocalizationsTr extends AppLocalizations { String get logNetworkErrorSuggestion => 'İnternet bağlantınızı kontrol edin'; @override - String get logTrackNotFoundDescription => - 'Bazı şarkılar indirme hizmetlerinde bulunamadı'; + String get logTrackNotFoundDescription => 'Bazı şarkılar indirme hizmetlerinde bulunamadı'; @override - String get logTrackNotFoundSuggestion => - 'Şarkı kayıpsız kalitede mevcut olmayabilir'; + String get logTrackNotFoundSuggestion => 'Şarkı kayıpsız kalitede mevcut olmayabilir'; @override String logTotalErrors(int count) { @@ -1423,8 +1353,7 @@ class AppLocalizationsTr extends AppLocalizations { String get credentialsTitle => 'Spotify Kimlik Bilgileri'; @override - String get credentialsDescription => - 'Kendi Spotify uygulama kotanızı kullanmak için Client ID ve Secret girin.'; + String get credentialsDescription => 'Kendi Spotify uygulama kotanızı kullanmak için Client ID ve Secret girin.'; @override String get credentialsClientId => 'Client ID'; @@ -1478,22 +1407,19 @@ class AppLocalizationsTr extends AppLocalizations { String get lyricsMode => 'Şarkı Sözü Modu'; @override - String get lyricsModeDescription => - 'Şarkı sözlerinin indirmelerle nasıl kaydedileceğini seçin'; + String get lyricsModeDescription => 'Şarkı sözlerinin indirmelerle nasıl kaydedileceğini seçin'; @override String get lyricsModeEmbed => 'Dosyaya göm'; @override - String get lyricsModeEmbedSubtitle => - 'Şarkı sözleri FLAC metadata içinde saklanır'; + String get lyricsModeEmbedSubtitle => 'Şarkı sözleri FLAC metadata içinde saklanır'; @override String get lyricsModeExternal => 'Harici .lrc dosyası'; @override - String get lyricsModeExternalSubtitle => - 'Samsung Music gibi oynatıcılar için ayrı .lrc dosyası'; + String get lyricsModeExternalSubtitle => 'Samsung Music gibi oynatıcılar için ayrı .lrc dosyası'; @override String get lyricsModeBoth => 'Her ikisi'; @@ -1526,15 +1452,13 @@ class AppLocalizationsTr extends AppLocalizations { String get settingsDownloadSubtitle => 'Hizmet, kalite, dosya adı formatı'; @override - String get settingsOptionsSubtitle => - 'Yedek, şarkı sözleri, kapak resmi, güncellemeler'; + String get settingsOptionsSubtitle => 'Yedek, şarkı sözleri, kapak resmi, güncellemeler'; @override String get settingsExtensionsSubtitle => 'İndirme sağlayıcılarını yönet'; @override - String get settingsLogsSubtitle => - 'Hata ayıklama için uygulama kayıtlarını görüntüle'; + String get settingsLogsSubtitle => 'Hata ayıklama için uygulama kayıtlarını görüntüle'; @override String get loadingSharedLink => 'Paylaşılan bağlantı yükleniyor...'; @@ -1634,8 +1558,7 @@ class AppLocalizationsTr extends AppLocalizations { String get trackLyricsNotAvailable => 'Bu şarkı için şarkı sözü mevcut değil'; @override - String get trackLyricsTimeout => - 'İstek zaman aşımına uğradı. Daha sonra tekrar deneyin.'; + String get trackLyricsTimeout => 'İstek zaman aşımına uğradı. Daha sonra tekrar deneyin.'; @override String get trackLyricsLoadFailed => 'Şarkı sözleri yüklenemedi'; @@ -1656,8 +1579,7 @@ class AppLocalizationsTr extends AppLocalizations { String get trackDeleteConfirmTitle => 'Cihazdan kaldırılsın mı?'; @override - String get trackDeleteConfirmMessage => - 'Bu işlem indirilen dosyayı kalıcı olarak silecek ve geçmişten kaldıracaktır.'; + String get trackDeleteConfirmMessage => 'Bu işlem indirilen dosyayı kalıcı olarak silecek ve geçmişten kaldıracaktır.'; @override String trackCannotOpen(String message) { @@ -1809,15 +1731,13 @@ class AppLocalizationsTr extends AppLocalizations { String get extensionsNoExtensions => 'Yüklü eklenti yok'; @override - String get extensionsNoExtensionsSubtitle => - 'Yeni sağlayıcılar eklemek için .spotiflac-ext dosyalarını yükleyin'; + String get extensionsNoExtensionsSubtitle => 'Yeni sağlayıcılar eklemek için .spotiflac-ext dosyalarını yükleyin'; @override String get extensionsInstallButton => 'Eklenti Yükle'; @override - String get extensionsInfoTip => - 'Eklentiler yeni metadata ve indirme sağlayıcıları ekleyebilir. Sadece güvenilir kaynaklardan eklenti yükleyin.'; + String get extensionsInfoTip => 'Eklentiler yeni metadata ve indirme sağlayıcıları ekleyebilir. Sadece güvenilir kaynaklardan eklenti yükleyin.'; @override String get extensionsInstalledSuccess => 'Eklenti başarıyla yüklendi'; @@ -1826,23 +1746,19 @@ class AppLocalizationsTr extends AppLocalizations { String get extensionsDownloadPriority => 'İndirme Önceliği'; @override - String get extensionsDownloadPrioritySubtitle => - 'İndirme hizmeti sırasını ayarla'; + String get extensionsDownloadPrioritySubtitle => 'İndirme hizmeti sırasını ayarla'; @override - String get extensionsNoDownloadProvider => - 'İndirme sağlayıcısı olan eklenti yok'; + String get extensionsNoDownloadProvider => 'İndirme sağlayıcısı olan eklenti yok'; @override String get extensionsMetadataPriority => 'Metadata Önceliği'; @override - String get extensionsMetadataPrioritySubtitle => - 'Arama ve metadata kaynağı sırasını ayarla'; + String get extensionsMetadataPrioritySubtitle => 'Arama ve metadata kaynağı sırasını ayarla'; @override - String get extensionsNoMetadataProvider => - 'Metadata sağlayıcısı olan eklenti yok'; + String get extensionsNoMetadataProvider => 'Metadata sağlayıcısı olan eklenti yok'; @override String get extensionsSearchProvider => 'Arama Sağlayıcı'; @@ -1851,8 +1767,7 @@ class AppLocalizationsTr extends AppLocalizations { String get extensionsNoCustomSearch => 'Özel arama olan eklenti yok'; @override - String get extensionsSearchProviderDescription => - 'Şarkı aramak için hangi hizmetin kullanılacağını seçin'; + String get extensionsSearchProviderDescription => 'Şarkı aramak için hangi hizmetin kullanılacağını seçin'; @override String get extensionsCustomSearch => 'Özel arama'; @@ -1894,8 +1809,7 @@ class AppLocalizationsTr extends AppLocalizations { String get enableLossyOptionSubtitleOn => 'Lossy quality option is available'; @override - String get enableLossyOptionSubtitleOff => - 'Downloads FLAC then converts to lossy format'; + String get enableLossyOptionSubtitleOff => 'Downloads FLAC then converts to lossy format'; @override String get lossyFormat => 'Lossy Format'; @@ -1907,12 +1821,10 @@ class AppLocalizationsTr extends AppLocalizations { String get lossyFormatMp3Subtitle => '320kbps, best compatibility'; @override - String get lossyFormatOpusSubtitle => - '128kbps, better quality at smaller size'; + String get lossyFormatOpusSubtitle => '128kbps, better quality at smaller size'; @override - String get qualityNote => - 'Actual quality depends on track availability from the service'; + String get qualityNote => 'Actual quality depends on track availability from the service'; @override String get downloadAskBeforeDownload => 'Ask Before Download'; @@ -2002,15 +1914,13 @@ class AppLocalizationsTr extends AppLocalizations { String get queueClearAll => 'Clear All'; @override - String get queueClearAllMessage => - 'Are you sure you want to clear all downloads?'; + String get queueClearAllMessage => 'Are you sure you want to clear all downloads?'; @override String get queueExportFailed => 'Export'; @override - String get queueExportFailedSuccess => - 'Failed downloads exported to TXT file'; + String get queueExportFailedSuccess => 'Failed downloads exported to TXT file'; @override String get queueExportFailedClear => 'Clear Failed'; @@ -2022,8 +1932,7 @@ class AppLocalizationsTr extends AppLocalizations { String get settingsAutoExportFailed => 'Auto-export failed downloads'; @override - String get settingsAutoExportFailedSubtitle => - 'Save failed downloads to TXT file automatically'; + String get settingsAutoExportFailedSubtitle => 'Save failed downloads to TXT file automatically'; @override String get settingsDownloadNetwork => 'Download Network'; @@ -2035,8 +1944,55 @@ class AppLocalizationsTr extends AppLocalizations { String get settingsDownloadNetworkWifiOnly => 'WiFi Only'; @override - String get settingsDownloadNetworkSubtitle => - 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + String get settingsDownloadNetworkSubtitle => 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + + @override + String get settingsCloudSave => 'Cloud Save'; + + @override + String get settingsCloudSaveSubtitle => 'Auto-upload to NAS or cloud storage'; + + @override + String get cloudSettingsTitle => 'Cloud Save'; + + @override + String get cloudSettingsSectionGeneral => 'General'; + + @override + String get cloudSettingsEnable => 'Enable Cloud Upload'; + + @override + String get cloudSettingsEnableSubtitle => 'Automatically upload files after download completes'; + + @override + String get cloudSettingsSectionProvider => 'Cloud Provider'; + + @override + String get cloudSettingsProvider => 'Provider'; + + @override + String get cloudSettingsProviderDescription => 'Select where to upload your downloaded files'; + + @override + String get cloudSettingsSectionServer => 'Server Configuration'; + + @override + String get cloudSettingsServerUrl => 'Server URL'; + + @override + String get cloudSettingsUsername => 'Username'; + + @override + String get cloudSettingsPassword => 'Password'; + + @override + String get cloudSettingsRemotePath => 'Remote Folder Path'; + + @override + String get cloudSettingsTestConnection => 'Test Connection'; + + @override + String get cloudSettingsInfo => 'Downloaded files will be automatically uploaded to your cloud storage after download completes. Original files are kept on your device.'; @override String get queueEmpty => 'No downloads in queue'; @@ -2072,8 +2028,7 @@ class AppLocalizationsTr extends AppLocalizations { String get albumFolderArtistYearAlbum => 'Artist / [Year] Album'; @override - String get albumFolderArtistYearAlbumSubtitle => - 'Albums/Artist Name/[2005] Album Name/'; + String get albumFolderArtistYearAlbumSubtitle => 'Albums/Artist Name/[2005] Album Name/'; @override String get albumFolderAlbumOnly => 'Album Only'; @@ -2091,8 +2046,7 @@ class AppLocalizationsTr extends AppLocalizations { String get albumFolderArtistAlbumSingles => 'Artist / Album + Singles'; @override - String get albumFolderArtistAlbumSinglesSubtitle => - 'Artist/Album/ and Artist/Singles/'; + String get albumFolderArtistAlbumSinglesSubtitle => 'Artist/Album/ and Artist/Singles/'; @override String get downloadedAlbumDeleteSelected => 'Delete Selected'; @@ -2202,8 +2156,7 @@ class AppLocalizationsTr extends AppLocalizations { String get discographySelectAlbums => 'Select Albums...'; @override - String get discographySelectAlbumsSubtitle => - 'Choose specific albums or singles'; + String get discographySelectAlbumsSubtitle => 'Choose specific albums or singles'; @override String get discographyFetchingTracks => 'Fetching tracks...'; @@ -2250,14 +2203,11 @@ class AppLocalizationsTr extends AppLocalizations { String get allFilesAccessDisabledSubtitle => 'Limited to media folders only'; @override - String get allFilesAccessDescription => - 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; + String get allFilesAccessDescription => 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; @override - String get allFilesAccessDeniedMessage => - 'Permission was denied. Please enable \'All files access\' manually in system settings.'; + String get allFilesAccessDeniedMessage => 'Permission was denied. Please enable \'All files access\' manually in system settings.'; @override - String get allFilesAccessDisabledMessage => - 'All Files Access disabled. The app will use limited storage access.'; + String get allFilesAccessDisabledMessage => 'All Files Access disabled. The app will use limited storage access.'; } diff --git a/lib/l10n/app_localizations_zh.dart b/lib/l10n/app_localizations_zh.dart index 4f29acfa..3d8093cf 100644 --- a/lib/l10n/app_localizations_zh.dart +++ b/lib/l10n/app_localizations_zh.dart @@ -12,8 +12,7 @@ class AppLocalizationsZh extends AppLocalizations { String get appName => 'SpotiFLAC'; @override - String get appDescription => - 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; + String get appDescription => 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; @override String get navHome => 'Home'; @@ -99,15 +98,13 @@ class AppLocalizationsZh extends AppLocalizations { String get historyNoAlbums => 'No album downloads'; @override - String get historyNoAlbumsSubtitle => - 'Download multiple tracks from an album to see them here'; + String get historyNoAlbumsSubtitle => 'Download multiple tracks from an album to see them here'; @override String get historyNoSingles => 'No single downloads'; @override - String get historyNoSinglesSubtitle => - 'Single track downloads will appear here'; + String get historyNoSinglesSubtitle => 'Single track downloads will appear here'; @override String get historySearchHint => 'Search history...'; @@ -155,8 +152,7 @@ class AppLocalizationsZh extends AppLocalizations { String get downloadAskQuality => 'Ask Quality Before Download'; @override - String get downloadAskQualitySubtitle => - 'Show quality picker for each download'; + String get downloadAskQualitySubtitle => 'Show quality picker for each download'; @override String get downloadFilenameFormat => 'Filename Format'; @@ -168,8 +164,7 @@ class AppLocalizationsZh extends AppLocalizations { String get downloadSeparateSingles => 'Separate Singles'; @override - String get downloadSeparateSinglesSubtitle => - 'Put single tracks in a separate folder'; + String get downloadSeparateSinglesSubtitle => 'Put single tracks in a separate folder'; @override String get qualityBest => 'Best Available'; @@ -226,8 +221,7 @@ class AppLocalizationsZh extends AppLocalizations { String get optionsPrimaryProvider => 'Primary Provider'; @override - String get optionsPrimaryProviderSubtitle => - 'Service used when searching by track name.'; + String get optionsPrimaryProviderSubtitle => 'Service used when searching by track name.'; @override String optionsUsingExtension(String extensionName) { @@ -235,15 +229,13 @@ class AppLocalizationsZh extends AppLocalizations { } @override - String get optionsSwitchBack => - 'Tap Deezer or Spotify to switch back from extension'; + String get optionsSwitchBack => 'Tap Deezer or Spotify to switch back from extension'; @override String get optionsAutoFallback => 'Auto Fallback'; @override - String get optionsAutoFallbackSubtitle => - 'Try other services if download fails'; + String get optionsAutoFallbackSubtitle => 'Try other services if download fails'; @override String get optionsUseExtensionProviders => 'Use Extension Providers'; @@ -258,15 +250,13 @@ class AppLocalizationsZh extends AppLocalizations { String get optionsEmbedLyrics => 'Embed Lyrics'; @override - String get optionsEmbedLyricsSubtitle => - 'Embed synced lyrics into FLAC files'; + String get optionsEmbedLyricsSubtitle => 'Embed synced lyrics into FLAC files'; @override String get optionsMaxQualityCover => 'Max Quality Cover'; @override - String get optionsMaxQualityCoverSubtitle => - 'Download highest resolution cover art'; + String get optionsMaxQualityCoverSubtitle => 'Download highest resolution cover art'; @override String get optionsConcurrentDownloads => 'Concurrent Downloads'; @@ -280,8 +270,7 @@ class AppLocalizationsZh extends AppLocalizations { } @override - String get optionsConcurrentWarning => - 'Parallel downloads may trigger rate limiting'; + String get optionsConcurrentWarning => 'Parallel downloads may trigger rate limiting'; @override String get optionsExtensionStore => 'Extension Store'; @@ -293,8 +282,7 @@ class AppLocalizationsZh extends AppLocalizations { String get optionsCheckUpdates => 'Check for Updates'; @override - String get optionsCheckUpdatesSubtitle => - 'Notify when new version is available'; + String get optionsCheckUpdatesSubtitle => 'Notify when new version is available'; @override String get optionsUpdateChannel => 'Update Channel'; @@ -306,15 +294,13 @@ class AppLocalizationsZh extends AppLocalizations { String get optionsUpdateChannelPreview => 'Get preview releases'; @override - String get optionsUpdateChannelWarning => - 'Preview may contain bugs or incomplete features'; + String get optionsUpdateChannelWarning => 'Preview may contain bugs or incomplete features'; @override String get optionsClearHistory => 'Clear Download History'; @override - String get optionsClearHistorySubtitle => - 'Remove all downloaded tracks from history'; + String get optionsClearHistorySubtitle => 'Remove all downloaded tracks from history'; @override String get optionsDetailedLogging => 'Detailed Logging'; @@ -337,8 +323,7 @@ class AppLocalizationsZh extends AppLocalizations { String get optionsSpotifyCredentialsRequired => 'Required - tap to configure'; @override - String get optionsSpotifyWarning => - 'Spotify requires your own API credentials. Get them free from developer.spotify.com'; + String get optionsSpotifyWarning => 'Spotify requires your own API credentials. Get them free from developer.spotify.com'; @override String get extensionsTitle => 'Extensions'; @@ -402,8 +387,7 @@ class AppLocalizationsZh extends AppLocalizations { String get aboutOriginalCreator => 'Creator of the original SpotiFLAC'; @override - String get aboutLogoArtist => - 'The talented artist who created our beautiful app logo!'; + String get aboutLogoArtist => 'The talented artist who created our beautiful app logo!'; @override String get aboutTranslators => 'Translators'; @@ -463,34 +447,28 @@ class AppLocalizationsZh extends AppLocalizations { String get aboutVersion => 'Version'; @override - String get aboutBinimumDesc => - 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; + String get aboutBinimumDesc => 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; @override - String get aboutSachinsenalDesc => - 'The original HiFi project creator. The foundation of Tidal integration!'; + String get aboutSachinsenalDesc => 'The original HiFi project creator. The foundation of Tidal integration!'; @override - String get aboutSjdonadoDesc => - 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; + String get aboutSjdonadoDesc => 'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!'; @override String get aboutDoubleDouble => 'DoubleDouble'; @override - String get aboutDoubleDoubleDesc => - 'Amazing API for Amazon Music downloads. Thank you for making it free!'; + String get aboutDoubleDoubleDesc => 'Amazing API for Amazon Music downloads. Thank you for making it free!'; @override String get aboutDabMusic => 'DAB Music'; @override - String get aboutDabMusicDesc => - 'The best Qobuz streaming API. Hi-Res downloads wouldn\'t be possible without this!'; + String get aboutDabMusicDesc => 'The best Qobuz streaming API. Hi-Res downloads wouldn\'t be possible without this!'; @override - String get aboutAppDescription => - 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; + String get aboutAppDescription => 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; @override String get albumTitle => 'Album'; @@ -595,8 +573,7 @@ class AppLocalizationsZh extends AppLocalizations { String get setupStoragePermission => 'Storage Permission'; @override - String get setupStoragePermissionSubtitle => - 'Required to save downloaded files'; + String get setupStoragePermissionSubtitle => 'Required to save downloaded files'; @override String get setupStoragePermissionGranted => 'Permission granted'; @@ -623,19 +600,16 @@ class AppLocalizationsZh extends AppLocalizations { String get setupStorageAccessRequired => 'Storage Access Required'; @override - String get setupStorageAccessMessage => - 'SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.'; + String get setupStorageAccessMessage => 'SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.'; @override - String get setupStorageAccessMessageAndroid11 => - 'Android 11+ requires \"All files access\" permission to save files to your chosen download folder.'; + String get setupStorageAccessMessageAndroid11 => 'Android 11+ requires \"All files access\" permission to save files to your chosen download folder.'; @override String get setupOpenSettings => 'Open Settings'; @override - String get setupPermissionDeniedMessage => - 'Permission denied. Please grant all permissions to continue.'; + String get setupPermissionDeniedMessage => 'Permission denied. Please grant all permissions to continue.'; @override String setupPermissionRequired(String permissionType) { @@ -654,8 +628,7 @@ class AppLocalizationsZh extends AppLocalizations { String get setupUseDefaultFolder => 'Use Default Folder?'; @override - String get setupNoFolderSelected => - 'No folder selected. Would you like to use the default Music folder?'; + String get setupNoFolderSelected => 'No folder selected. Would you like to use the default Music folder?'; @override String get setupUseDefault => 'Use Default'; @@ -664,15 +637,13 @@ class AppLocalizationsZh extends AppLocalizations { String get setupDownloadLocationTitle => 'Download Location'; @override - String get setupDownloadLocationIosMessage => - 'On iOS, downloads are saved to the app\'s Documents folder. You can access them via the Files app.'; + String get setupDownloadLocationIosMessage => 'On iOS, downloads are saved to the app\'s Documents folder. You can access them via the Files app.'; @override String get setupAppDocumentsFolder => 'App Documents Folder'; @override - String get setupAppDocumentsFolderSubtitle => - 'Recommended - accessible via Files app'; + String get setupAppDocumentsFolderSubtitle => 'Recommended - accessible via Files app'; @override String get setupChooseFromFiles => 'Choose from Files'; @@ -681,12 +652,10 @@ class AppLocalizationsZh extends AppLocalizations { String get setupChooseFromFilesSubtitle => 'Select iCloud or other location'; @override - String get setupIosEmptyFolderWarning => - 'iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.'; + String get setupIosEmptyFolderWarning => 'iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.'; @override - String get setupIcloudNotSupported => - 'iCloud Drive is not supported. Please use the app Documents folder.'; + String get setupIcloudNotSupported => 'iCloud Drive is not supported. Please use the app Documents folder.'; @override String get setupDownloadInFlac => 'Download Spotify tracks in FLAC'; @@ -713,8 +682,7 @@ class AppLocalizationsZh extends AppLocalizations { String get setupStorageRequired => 'Storage Permission Required'; @override - String get setupStorageDescription => - 'SpotiFLAC needs storage permission to save your downloaded music files.'; + String get setupStorageDescription => 'SpotiFLAC needs storage permission to save your downloaded music files.'; @override String get setupNotificationGranted => 'Notification Permission Granted!'; @@ -723,8 +691,7 @@ class AppLocalizationsZh extends AppLocalizations { String get setupNotificationEnable => 'Enable Notifications'; @override - String get setupNotificationDescription => - 'Get notified when downloads complete or require attention.'; + String get setupNotificationDescription => 'Get notified when downloads complete or require attention.'; @override String get setupFolderSelected => 'Download Folder Selected!'; @@ -733,8 +700,7 @@ class AppLocalizationsZh extends AppLocalizations { String get setupFolderChoose => 'Choose Download Folder'; @override - String get setupFolderDescription => - 'Select a folder where your downloaded music will be saved.'; + String get setupFolderDescription => 'Select a folder where your downloaded music will be saved.'; @override String get setupChangeFolder => 'Change Folder'; @@ -746,8 +712,7 @@ class AppLocalizationsZh extends AppLocalizations { String get setupSpotifyApiOptional => 'Spotify API (Optional)'; @override - String get setupSpotifyApiDescription => - 'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.'; + String get setupSpotifyApiDescription => 'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.'; @override String get setupUseSpotifyApi => 'Use Spotify API'; @@ -765,8 +730,7 @@ class AppLocalizationsZh extends AppLocalizations { String get setupEnterClientSecret => 'Enter Spotify Client Secret'; @override - String get setupGetFreeCredentials => - 'Get your free API credentials from the Spotify Developer Dashboard.'; + String get setupGetFreeCredentials => 'Get your free API credentials from the Spotify Developer Dashboard.'; @override String get setupEnableNotifications => 'Enable Notifications'; @@ -775,12 +739,10 @@ class AppLocalizationsZh extends AppLocalizations { String get setupProceedToNextStep => 'You can now proceed to the next step.'; @override - String get setupNotificationProgressDescription => - 'You will receive download progress notifications.'; + String get setupNotificationProgressDescription => 'You will receive download progress notifications.'; @override - String get setupNotificationBackgroundDescription => - 'Get notified about download progress and completion. This helps you track downloads when the app is in background.'; + String get setupNotificationBackgroundDescription => 'Get notified about download progress and completion. This helps you track downloads when the app is in background.'; @override String get setupSkipForNow => 'Skip for now'; @@ -798,12 +760,10 @@ class AppLocalizationsZh extends AppLocalizations { String get setupSkipAndStart => 'Skip & Start'; @override - String get setupAllowAccessToManageFiles => - 'Please enable \"Allow access to manage all files\" in the next screen.'; + String get setupAllowAccessToManageFiles => 'Please enable \"Allow access to manage all files\" in the next screen.'; @override - String get setupGetCredentialsFromSpotify => - 'Get credentials from developer.spotify.com'; + String get setupGetCredentialsFromSpotify => 'Get credentials from developer.spotify.com'; @override String get dialogCancel => 'Cancel'; @@ -854,8 +814,7 @@ class AppLocalizationsZh extends AppLocalizations { String get dialogDiscardChanges => 'Discard Changes?'; @override - String get dialogUnsavedChanges => - 'You have unsaved changes. Do you want to discard them?'; + String get dialogUnsavedChanges => 'You have unsaved changes. Do you want to discard them?'; @override String get dialogDownloadFailed => 'Download Failed'; @@ -873,8 +832,7 @@ class AppLocalizationsZh extends AppLocalizations { String get dialogClearAll => 'Clear All'; @override - String get dialogClearAllDownloads => - 'Are you sure you want to clear all downloads?'; + String get dialogClearAllDownloads => 'Are you sure you want to clear all downloads?'; @override String get dialogRemoveFromDevice => 'Remove from device?'; @@ -883,8 +841,7 @@ class AppLocalizationsZh extends AppLocalizations { String get dialogRemoveExtension => 'Remove Extension'; @override - String get dialogRemoveExtensionMessage => - 'Are you sure you want to remove this extension? This cannot be undone.'; + String get dialogRemoveExtensionMessage => 'Are you sure you want to remove this extension? This cannot be undone.'; @override String get dialogUninstallExtension => 'Uninstall Extension?'; @@ -898,8 +855,7 @@ class AppLocalizationsZh extends AppLocalizations { String get dialogClearHistoryTitle => 'Clear History'; @override - String get dialogClearHistoryMessage => - 'Are you sure you want to clear all download history? This cannot be undone.'; + String get dialogClearHistoryMessage => 'Are you sure you want to clear all download history? This cannot be undone.'; @override String get dialogDeleteSelectedTitle => 'Delete Selected'; @@ -994,8 +950,7 @@ class AppLocalizationsZh extends AppLocalizations { String get snackbarProviderPrioritySaved => 'Provider priority saved'; @override - String get snackbarMetadataProviderSaved => - 'Metadata provider priority saved'; + String get snackbarMetadataProviderSaved => 'Metadata provider priority saved'; @override String snackbarExtensionInstalled(String extensionName) { @@ -1017,8 +972,7 @@ class AppLocalizationsZh extends AppLocalizations { String get errorRateLimited => 'Rate Limited'; @override - String get errorRateLimitedMessage => - 'Too many requests. Please wait a moment before searching again.'; + String get errorRateLimitedMessage => 'Too many requests. Please wait a moment before searching again.'; @override String errorFailedToLoad(String item) { @@ -1185,23 +1139,19 @@ class AppLocalizationsZh extends AppLocalizations { String get folderOrganizationByArtistAlbum => 'Artist/Album'; @override - String get folderOrganizationDescription => - 'Organize downloaded files into folders'; + String get folderOrganizationDescription => 'Organize downloaded files into folders'; @override String get folderOrganizationNoneSubtitle => 'All files in download folder'; @override - String get folderOrganizationByArtistSubtitle => - 'Separate folder for each artist'; + String get folderOrganizationByArtistSubtitle => 'Separate folder for each artist'; @override - String get folderOrganizationByAlbumSubtitle => - 'Separate folder for each album'; + String get folderOrganizationByAlbumSubtitle => 'Separate folder for each album'; @override - String get folderOrganizationByArtistAlbumSubtitle => - 'Nested folders for artist and album'; + String get folderOrganizationByArtistAlbumSubtitle => 'Nested folders for artist and album'; @override String get updateAvailable => 'Update Available'; @@ -1260,12 +1210,10 @@ class AppLocalizationsZh extends AppLocalizations { String get providerPriorityTitle => 'Provider Priority'; @override - String get providerPriorityDescription => - 'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.'; + String get providerPriorityDescription => 'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.'; @override - String get providerPriorityInfo => - 'If a track is not available on the first provider, the app will automatically try the next one.'; + String get providerPriorityInfo => 'If a track is not available on the first provider, the app will automatically try the next one.'; @override String get providerBuiltIn => 'Built-in'; @@ -1277,19 +1225,16 @@ class AppLocalizationsZh extends AppLocalizations { String get metadataProviderPriority => 'Metadata Provider Priority'; @override - String get metadataProviderPrioritySubtitle => - 'Order used when fetching track metadata'; + String get metadataProviderPrioritySubtitle => 'Order used when fetching track metadata'; @override String get metadataProviderPriorityTitle => 'Metadata Priority'; @override - String get metadataProviderPriorityDescription => - 'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.'; + String get metadataProviderPriorityDescription => 'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.'; @override - String get metadataProviderPriorityInfo => - 'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.'; + String get metadataProviderPriorityInfo => 'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.'; @override String get metadataNoRateLimits => 'No rate limits'; @@ -1361,19 +1306,16 @@ class AppLocalizationsZh extends AppLocalizations { String get logIssueSummary => 'Issue Summary'; @override - String get logIspBlockingDescription => - 'Your ISP may be blocking access to download services'; + String get logIspBlockingDescription => 'Your ISP may be blocking access to download services'; @override - String get logIspBlockingSuggestion => - 'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8'; + String get logIspBlockingSuggestion => 'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8'; @override String get logRateLimitedDescription => 'Too many requests to the service'; @override - String get logRateLimitedSuggestion => - 'Wait a few minutes before trying again'; + String get logRateLimitedSuggestion => 'Wait a few minutes before trying again'; @override String get logNetworkErrorDescription => 'Connection issues detected'; @@ -1382,12 +1324,10 @@ class AppLocalizationsZh extends AppLocalizations { String get logNetworkErrorSuggestion => 'Check your internet connection'; @override - String get logTrackNotFoundDescription => - 'Some tracks could not be found on download services'; + String get logTrackNotFoundDescription => 'Some tracks could not be found on download services'; @override - String get logTrackNotFoundSuggestion => - 'The track may not be available in lossless quality'; + String get logTrackNotFoundSuggestion => 'The track may not be available in lossless quality'; @override String logTotalErrors(int count) { @@ -1413,8 +1353,7 @@ class AppLocalizationsZh extends AppLocalizations { String get credentialsTitle => 'Spotify Credentials'; @override - String get credentialsDescription => - 'Enter your Client ID and Secret to use your own Spotify application quota.'; + String get credentialsDescription => 'Enter your Client ID and Secret to use your own Spotify application quota.'; @override String get credentialsClientId => 'Client ID'; @@ -1468,8 +1407,7 @@ class AppLocalizationsZh extends AppLocalizations { String get lyricsMode => 'Lyrics Mode'; @override - String get lyricsModeDescription => - 'Choose how lyrics are saved with your downloads'; + String get lyricsModeDescription => 'Choose how lyrics are saved with your downloads'; @override String get lyricsModeEmbed => 'Embed in file'; @@ -1481,8 +1419,7 @@ class AppLocalizationsZh extends AppLocalizations { String get lyricsModeExternal => 'External .lrc file'; @override - String get lyricsModeExternalSubtitle => - 'Separate .lrc file for players like Samsung Music'; + String get lyricsModeExternalSubtitle => 'Separate .lrc file for players like Samsung Music'; @override String get lyricsModeBoth => 'Both'; @@ -1642,8 +1579,7 @@ class AppLocalizationsZh extends AppLocalizations { String get trackDeleteConfirmTitle => 'Remove from device?'; @override - String get trackDeleteConfirmMessage => - 'This will permanently delete the downloaded file and remove it from your history.'; + String get trackDeleteConfirmMessage => 'This will permanently delete the downloaded file and remove it from your history.'; @override String trackCannotOpen(String message) { @@ -1795,15 +1731,13 @@ class AppLocalizationsZh extends AppLocalizations { String get extensionsNoExtensions => 'No extensions installed'; @override - String get extensionsNoExtensionsSubtitle => - 'Install .spotiflac-ext files to add new providers'; + String get extensionsNoExtensionsSubtitle => 'Install .spotiflac-ext files to add new providers'; @override String get extensionsInstallButton => 'Install Extension'; @override - String get extensionsInfoTip => - 'Extensions can add new metadata and download providers. Only install extensions from trusted sources.'; + String get extensionsInfoTip => 'Extensions can add new metadata and download providers. Only install extensions from trusted sources.'; @override String get extensionsInstalledSuccess => 'Extension installed successfully'; @@ -1815,19 +1749,16 @@ class AppLocalizationsZh extends AppLocalizations { String get extensionsDownloadPrioritySubtitle => 'Set download service order'; @override - String get extensionsNoDownloadProvider => - 'No extensions with download provider'; + String get extensionsNoDownloadProvider => 'No extensions with download provider'; @override String get extensionsMetadataPriority => 'Metadata Priority'; @override - String get extensionsMetadataPrioritySubtitle => - 'Set search & metadata source order'; + String get extensionsMetadataPrioritySubtitle => 'Set search & metadata source order'; @override - String get extensionsNoMetadataProvider => - 'No extensions with metadata provider'; + String get extensionsNoMetadataProvider => 'No extensions with metadata provider'; @override String get extensionsSearchProvider => 'Search Provider'; @@ -1836,8 +1767,7 @@ class AppLocalizationsZh extends AppLocalizations { String get extensionsNoCustomSearch => 'No extensions with custom search'; @override - String get extensionsSearchProviderDescription => - 'Choose which service to use for searching tracks'; + String get extensionsSearchProviderDescription => 'Choose which service to use for searching tracks'; @override String get extensionsCustomSearch => 'Custom search'; @@ -1879,8 +1809,7 @@ class AppLocalizationsZh extends AppLocalizations { String get enableLossyOptionSubtitleOn => 'Lossy quality option is available'; @override - String get enableLossyOptionSubtitleOff => - 'Downloads FLAC then converts to lossy format'; + String get enableLossyOptionSubtitleOff => 'Downloads FLAC then converts to lossy format'; @override String get lossyFormat => 'Lossy Format'; @@ -1892,12 +1821,10 @@ class AppLocalizationsZh extends AppLocalizations { String get lossyFormatMp3Subtitle => '320kbps, best compatibility'; @override - String get lossyFormatOpusSubtitle => - '128kbps, better quality at smaller size'; + String get lossyFormatOpusSubtitle => '128kbps, better quality at smaller size'; @override - String get qualityNote => - 'Actual quality depends on track availability from the service'; + String get qualityNote => 'Actual quality depends on track availability from the service'; @override String get downloadAskBeforeDownload => 'Ask Before Download'; @@ -1987,15 +1914,13 @@ class AppLocalizationsZh extends AppLocalizations { String get queueClearAll => 'Clear All'; @override - String get queueClearAllMessage => - 'Are you sure you want to clear all downloads?'; + String get queueClearAllMessage => 'Are you sure you want to clear all downloads?'; @override String get queueExportFailed => 'Export'; @override - String get queueExportFailedSuccess => - 'Failed downloads exported to TXT file'; + String get queueExportFailedSuccess => 'Failed downloads exported to TXT file'; @override String get queueExportFailedClear => 'Clear Failed'; @@ -2007,8 +1932,7 @@ class AppLocalizationsZh extends AppLocalizations { String get settingsAutoExportFailed => 'Auto-export failed downloads'; @override - String get settingsAutoExportFailedSubtitle => - 'Save failed downloads to TXT file automatically'; + String get settingsAutoExportFailedSubtitle => 'Save failed downloads to TXT file automatically'; @override String get settingsDownloadNetwork => 'Download Network'; @@ -2020,8 +1944,55 @@ class AppLocalizationsZh extends AppLocalizations { String get settingsDownloadNetworkWifiOnly => 'WiFi Only'; @override - String get settingsDownloadNetworkSubtitle => - 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + String get settingsDownloadNetworkSubtitle => 'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.'; + + @override + String get settingsCloudSave => 'Cloud Save'; + + @override + String get settingsCloudSaveSubtitle => 'Auto-upload to NAS or cloud storage'; + + @override + String get cloudSettingsTitle => 'Cloud Save'; + + @override + String get cloudSettingsSectionGeneral => 'General'; + + @override + String get cloudSettingsEnable => 'Enable Cloud Upload'; + + @override + String get cloudSettingsEnableSubtitle => 'Automatically upload files after download completes'; + + @override + String get cloudSettingsSectionProvider => 'Cloud Provider'; + + @override + String get cloudSettingsProvider => 'Provider'; + + @override + String get cloudSettingsProviderDescription => 'Select where to upload your downloaded files'; + + @override + String get cloudSettingsSectionServer => 'Server Configuration'; + + @override + String get cloudSettingsServerUrl => 'Server URL'; + + @override + String get cloudSettingsUsername => 'Username'; + + @override + String get cloudSettingsPassword => 'Password'; + + @override + String get cloudSettingsRemotePath => 'Remote Folder Path'; + + @override + String get cloudSettingsTestConnection => 'Test Connection'; + + @override + String get cloudSettingsInfo => 'Downloaded files will be automatically uploaded to your cloud storage after download completes. Original files are kept on your device.'; @override String get queueEmpty => 'No downloads in queue'; @@ -2057,8 +2028,7 @@ class AppLocalizationsZh extends AppLocalizations { String get albumFolderArtistYearAlbum => 'Artist / [Year] Album'; @override - String get albumFolderArtistYearAlbumSubtitle => - 'Albums/Artist Name/[2005] Album Name/'; + String get albumFolderArtistYearAlbumSubtitle => 'Albums/Artist Name/[2005] Album Name/'; @override String get albumFolderAlbumOnly => 'Album Only'; @@ -2076,8 +2046,7 @@ class AppLocalizationsZh extends AppLocalizations { String get albumFolderArtistAlbumSingles => 'Artist / Album + Singles'; @override - String get albumFolderArtistAlbumSinglesSubtitle => - 'Artist/Album/ and Artist/Singles/'; + String get albumFolderArtistAlbumSinglesSubtitle => 'Artist/Album/ and Artist/Singles/'; @override String get downloadedAlbumDeleteSelected => 'Delete Selected'; @@ -2187,8 +2156,7 @@ class AppLocalizationsZh extends AppLocalizations { String get discographySelectAlbums => 'Select Albums...'; @override - String get discographySelectAlbumsSubtitle => - 'Choose specific albums or singles'; + String get discographySelectAlbumsSubtitle => 'Choose specific albums or singles'; @override String get discographyFetchingTracks => 'Fetching tracks...'; @@ -2235,28 +2203,24 @@ class AppLocalizationsZh extends AppLocalizations { String get allFilesAccessDisabledSubtitle => 'Limited to media folders only'; @override - String get allFilesAccessDescription => - 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; + String get allFilesAccessDescription => 'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.'; @override - String get allFilesAccessDeniedMessage => - 'Permission was denied. Please enable \'All files access\' manually in system settings.'; + String get allFilesAccessDeniedMessage => 'Permission was denied. Please enable \'All files access\' manually in system settings.'; @override - String get allFilesAccessDisabledMessage => - 'All Files Access disabled. The app will use limited storage access.'; + String get allFilesAccessDisabledMessage => 'All Files Access disabled. The app will use limited storage access.'; } /// The translations for Chinese, as used in China (`zh_CN`). class AppLocalizationsZhCn extends AppLocalizationsZh { - AppLocalizationsZhCn() : super('zh_CN'); + AppLocalizationsZhCn(): super('zh_CN'); @override String get appName => 'SpotiFLAC'; @override - String get appDescription => - 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; + String get appDescription => 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; @override String get navHome => 'Home'; @@ -2342,15 +2306,13 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get historyNoAlbums => 'No album downloads'; @override - String get historyNoAlbumsSubtitle => - 'Download multiple tracks from an album to see them here'; + String get historyNoAlbumsSubtitle => 'Download multiple tracks from an album to see them here'; @override String get historyNoSingles => 'No single downloads'; @override - String get historyNoSinglesSubtitle => - 'Single track downloads will appear here'; + String get historyNoSinglesSubtitle => 'Single track downloads will appear here'; @override String get historySearchHint => 'Search history...'; @@ -2398,8 +2360,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get downloadAskQuality => 'Ask Quality Before Download'; @override - String get downloadAskQualitySubtitle => - 'Show quality picker for each download'; + String get downloadAskQualitySubtitle => 'Show quality picker for each download'; @override String get downloadFilenameFormat => 'Filename Format'; @@ -2411,8 +2372,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get downloadSeparateSingles => 'Separate Singles'; @override - String get downloadSeparateSinglesSubtitle => - 'Put single tracks in a separate folder'; + String get downloadSeparateSinglesSubtitle => 'Put single tracks in a separate folder'; @override String get qualityBest => 'Best Available'; @@ -2469,8 +2429,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get optionsPrimaryProvider => 'Primary Provider'; @override - String get optionsPrimaryProviderSubtitle => - 'Service used when searching by track name.'; + String get optionsPrimaryProviderSubtitle => 'Service used when searching by track name.'; @override String optionsUsingExtension(String extensionName) { @@ -2478,15 +2437,13 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { } @override - String get optionsSwitchBack => - 'Tap Deezer or Spotify to switch back from extension'; + String get optionsSwitchBack => 'Tap Deezer or Spotify to switch back from extension'; @override String get optionsAutoFallback => 'Auto Fallback'; @override - String get optionsAutoFallbackSubtitle => - 'Try other services if download fails'; + String get optionsAutoFallbackSubtitle => 'Try other services if download fails'; @override String get optionsUseExtensionProviders => 'Use Extension Providers'; @@ -2501,15 +2458,13 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get optionsEmbedLyrics => 'Embed Lyrics'; @override - String get optionsEmbedLyricsSubtitle => - 'Embed synced lyrics into FLAC files'; + String get optionsEmbedLyricsSubtitle => 'Embed synced lyrics into FLAC files'; @override String get optionsMaxQualityCover => 'Max Quality Cover'; @override - String get optionsMaxQualityCoverSubtitle => - 'Download highest resolution cover art'; + String get optionsMaxQualityCoverSubtitle => 'Download highest resolution cover art'; @override String get optionsConcurrentDownloads => 'Concurrent Downloads'; @@ -2523,8 +2478,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { } @override - String get optionsConcurrentWarning => - 'Parallel downloads may trigger rate limiting'; + String get optionsConcurrentWarning => 'Parallel downloads may trigger rate limiting'; @override String get optionsExtensionStore => 'Extension Store'; @@ -2536,8 +2490,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get optionsCheckUpdates => 'Check for Updates'; @override - String get optionsCheckUpdatesSubtitle => - 'Notify when new version is available'; + String get optionsCheckUpdatesSubtitle => 'Notify when new version is available'; @override String get optionsUpdateChannel => 'Update Channel'; @@ -2549,15 +2502,13 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get optionsUpdateChannelPreview => 'Get preview releases'; @override - String get optionsUpdateChannelWarning => - 'Preview may contain bugs or incomplete features'; + String get optionsUpdateChannelWarning => 'Preview may contain bugs or incomplete features'; @override String get optionsClearHistory => 'Clear Download History'; @override - String get optionsClearHistorySubtitle => - 'Remove all downloaded tracks from history'; + String get optionsClearHistorySubtitle => 'Remove all downloaded tracks from history'; @override String get optionsDetailedLogging => 'Detailed Logging'; @@ -2580,8 +2531,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get optionsSpotifyCredentialsRequired => 'Required - tap to configure'; @override - String get optionsSpotifyWarning => - 'Spotify requires your own API credentials. Get them free from developer.spotify.com'; + String get optionsSpotifyWarning => 'Spotify requires your own API credentials. Get them free from developer.spotify.com'; @override String get extensionsTitle => 'Extensions'; @@ -2645,8 +2595,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get aboutOriginalCreator => 'Creator of the original SpotiFLAC'; @override - String get aboutLogoArtist => - 'The talented artist who created our beautiful app logo!'; + String get aboutLogoArtist => 'The talented artist who created our beautiful app logo!'; @override String get aboutTranslators => 'Translators'; @@ -2706,30 +2655,25 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get aboutVersion => 'Version'; @override - String get aboutBinimumDesc => - 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; + String get aboutBinimumDesc => 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; @override - String get aboutSachinsenalDesc => - 'The original HiFi project creator. The foundation of Tidal integration!'; + String get aboutSachinsenalDesc => 'The original HiFi project creator. The foundation of Tidal integration!'; @override String get aboutDoubleDouble => 'DoubleDouble'; @override - String get aboutDoubleDoubleDesc => - 'Amazing API for Amazon Music downloads. Thank you for making it free!'; + String get aboutDoubleDoubleDesc => 'Amazing API for Amazon Music downloads. Thank you for making it free!'; @override String get aboutDabMusic => 'DAB Music'; @override - String get aboutDabMusicDesc => - 'The best Qobuz streaming API. Hi-Res downloads wouldn\'t be possible without this!'; + String get aboutDabMusicDesc => 'The best Qobuz streaming API. Hi-Res downloads wouldn\'t be possible without this!'; @override - String get aboutAppDescription => - 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; + String get aboutAppDescription => 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; @override String get albumTitle => 'Album'; @@ -2834,8 +2778,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get setupStoragePermission => 'Storage Permission'; @override - String get setupStoragePermissionSubtitle => - 'Required to save downloaded files'; + String get setupStoragePermissionSubtitle => 'Required to save downloaded files'; @override String get setupStoragePermissionGranted => 'Permission granted'; @@ -2862,19 +2805,16 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get setupStorageAccessRequired => 'Storage Access Required'; @override - String get setupStorageAccessMessage => - 'SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.'; + String get setupStorageAccessMessage => 'SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.'; @override - String get setupStorageAccessMessageAndroid11 => - 'Android 11+ requires \"All files access\" permission to save files to your chosen download folder.'; + String get setupStorageAccessMessageAndroid11 => 'Android 11+ requires \"All files access\" permission to save files to your chosen download folder.'; @override String get setupOpenSettings => 'Open Settings'; @override - String get setupPermissionDeniedMessage => - 'Permission denied. Please grant all permissions to continue.'; + String get setupPermissionDeniedMessage => 'Permission denied. Please grant all permissions to continue.'; @override String setupPermissionRequired(String permissionType) { @@ -2893,8 +2833,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get setupUseDefaultFolder => 'Use Default Folder?'; @override - String get setupNoFolderSelected => - 'No folder selected. Would you like to use the default Music folder?'; + String get setupNoFolderSelected => 'No folder selected. Would you like to use the default Music folder?'; @override String get setupUseDefault => 'Use Default'; @@ -2903,15 +2842,13 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get setupDownloadLocationTitle => 'Download Location'; @override - String get setupDownloadLocationIosMessage => - 'On iOS, downloads are saved to the app\'s Documents folder. You can access them via the Files app.'; + String get setupDownloadLocationIosMessage => 'On iOS, downloads are saved to the app\'s Documents folder. You can access them via the Files app.'; @override String get setupAppDocumentsFolder => 'App Documents Folder'; @override - String get setupAppDocumentsFolderSubtitle => - 'Recommended - accessible via Files app'; + String get setupAppDocumentsFolderSubtitle => 'Recommended - accessible via Files app'; @override String get setupChooseFromFiles => 'Choose from Files'; @@ -2920,8 +2857,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get setupChooseFromFilesSubtitle => 'Select iCloud or other location'; @override - String get setupIosEmptyFolderWarning => - 'iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.'; + String get setupIosEmptyFolderWarning => 'iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.'; @override String get setupDownloadInFlac => 'Download Spotify tracks in FLAC'; @@ -2948,8 +2884,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get setupStorageRequired => 'Storage Permission Required'; @override - String get setupStorageDescription => - 'SpotiFLAC needs storage permission to save your downloaded music files.'; + String get setupStorageDescription => 'SpotiFLAC needs storage permission to save your downloaded music files.'; @override String get setupNotificationGranted => 'Notification Permission Granted!'; @@ -2958,8 +2893,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get setupNotificationEnable => 'Enable Notifications'; @override - String get setupNotificationDescription => - 'Get notified when downloads complete or require attention.'; + String get setupNotificationDescription => 'Get notified when downloads complete or require attention.'; @override String get setupFolderSelected => 'Download Folder Selected!'; @@ -2968,8 +2902,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get setupFolderChoose => 'Choose Download Folder'; @override - String get setupFolderDescription => - 'Select a folder where your downloaded music will be saved.'; + String get setupFolderDescription => 'Select a folder where your downloaded music will be saved.'; @override String get setupChangeFolder => 'Change Folder'; @@ -2981,8 +2914,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get setupSpotifyApiOptional => 'Spotify API (Optional)'; @override - String get setupSpotifyApiDescription => - 'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.'; + String get setupSpotifyApiDescription => 'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.'; @override String get setupUseSpotifyApi => 'Use Spotify API'; @@ -3000,8 +2932,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get setupEnterClientSecret => 'Enter Spotify Client Secret'; @override - String get setupGetFreeCredentials => - 'Get your free API credentials from the Spotify Developer Dashboard.'; + String get setupGetFreeCredentials => 'Get your free API credentials from the Spotify Developer Dashboard.'; @override String get setupEnableNotifications => 'Enable Notifications'; @@ -3010,12 +2941,10 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get setupProceedToNextStep => 'You can now proceed to the next step.'; @override - String get setupNotificationProgressDescription => - 'You will receive download progress notifications.'; + String get setupNotificationProgressDescription => 'You will receive download progress notifications.'; @override - String get setupNotificationBackgroundDescription => - 'Get notified about download progress and completion. This helps you track downloads when the app is in background.'; + String get setupNotificationBackgroundDescription => 'Get notified about download progress and completion. This helps you track downloads when the app is in background.'; @override String get setupSkipForNow => 'Skip for now'; @@ -3033,12 +2962,10 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get setupSkipAndStart => 'Skip & Start'; @override - String get setupAllowAccessToManageFiles => - 'Please enable \"Allow access to manage all files\" in the next screen.'; + String get setupAllowAccessToManageFiles => 'Please enable \"Allow access to manage all files\" in the next screen.'; @override - String get setupGetCredentialsFromSpotify => - 'Get credentials from developer.spotify.com'; + String get setupGetCredentialsFromSpotify => 'Get credentials from developer.spotify.com'; @override String get dialogCancel => 'Cancel'; @@ -3089,8 +3016,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get dialogDiscardChanges => 'Discard Changes?'; @override - String get dialogUnsavedChanges => - 'You have unsaved changes. Do you want to discard them?'; + String get dialogUnsavedChanges => 'You have unsaved changes. Do you want to discard them?'; @override String get dialogDownloadFailed => 'Download Failed'; @@ -3108,8 +3034,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get dialogClearAll => 'Clear All'; @override - String get dialogClearAllDownloads => - 'Are you sure you want to clear all downloads?'; + String get dialogClearAllDownloads => 'Are you sure you want to clear all downloads?'; @override String get dialogRemoveFromDevice => 'Remove from device?'; @@ -3118,8 +3043,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get dialogRemoveExtension => 'Remove Extension'; @override - String get dialogRemoveExtensionMessage => - 'Are you sure you want to remove this extension? This cannot be undone.'; + String get dialogRemoveExtensionMessage => 'Are you sure you want to remove this extension? This cannot be undone.'; @override String get dialogUninstallExtension => 'Uninstall Extension?'; @@ -3133,8 +3057,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get dialogClearHistoryTitle => 'Clear History'; @override - String get dialogClearHistoryMessage => - 'Are you sure you want to clear all download history? This cannot be undone.'; + String get dialogClearHistoryMessage => 'Are you sure you want to clear all download history? This cannot be undone.'; @override String get dialogDeleteSelectedTitle => 'Delete Selected'; @@ -3229,8 +3152,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get snackbarProviderPrioritySaved => 'Provider priority saved'; @override - String get snackbarMetadataProviderSaved => - 'Metadata provider priority saved'; + String get snackbarMetadataProviderSaved => 'Metadata provider priority saved'; @override String snackbarExtensionInstalled(String extensionName) { @@ -3252,8 +3174,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get errorRateLimited => 'Rate Limited'; @override - String get errorRateLimitedMessage => - 'Too many requests. Please wait a moment before searching again.'; + String get errorRateLimitedMessage => 'Too many requests. Please wait a moment before searching again.'; @override String errorFailedToLoad(String item) { @@ -3420,23 +3341,19 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get folderOrganizationByArtistAlbum => 'Artist/Album'; @override - String get folderOrganizationDescription => - 'Organize downloaded files into folders'; + String get folderOrganizationDescription => 'Organize downloaded files into folders'; @override String get folderOrganizationNoneSubtitle => 'All files in download folder'; @override - String get folderOrganizationByArtistSubtitle => - 'Separate folder for each artist'; + String get folderOrganizationByArtistSubtitle => 'Separate folder for each artist'; @override - String get folderOrganizationByAlbumSubtitle => - 'Separate folder for each album'; + String get folderOrganizationByAlbumSubtitle => 'Separate folder for each album'; @override - String get folderOrganizationByArtistAlbumSubtitle => - 'Nested folders for artist and album'; + String get folderOrganizationByArtistAlbumSubtitle => 'Nested folders for artist and album'; @override String get updateAvailable => 'Update Available'; @@ -3495,12 +3412,10 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get providerPriorityTitle => 'Provider Priority'; @override - String get providerPriorityDescription => - 'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.'; + String get providerPriorityDescription => 'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.'; @override - String get providerPriorityInfo => - 'If a track is not available on the first provider, the app will automatically try the next one.'; + String get providerPriorityInfo => 'If a track is not available on the first provider, the app will automatically try the next one.'; @override String get providerBuiltIn => 'Built-in'; @@ -3512,19 +3427,16 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get metadataProviderPriority => 'Metadata Provider Priority'; @override - String get metadataProviderPrioritySubtitle => - 'Order used when fetching track metadata'; + String get metadataProviderPrioritySubtitle => 'Order used when fetching track metadata'; @override String get metadataProviderPriorityTitle => 'Metadata Priority'; @override - String get metadataProviderPriorityDescription => - 'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.'; + String get metadataProviderPriorityDescription => 'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.'; @override - String get metadataProviderPriorityInfo => - 'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.'; + String get metadataProviderPriorityInfo => 'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.'; @override String get metadataNoRateLimits => 'No rate limits'; @@ -3596,19 +3508,16 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get logIssueSummary => 'Issue Summary'; @override - String get logIspBlockingDescription => - 'Your ISP may be blocking access to download services'; + String get logIspBlockingDescription => 'Your ISP may be blocking access to download services'; @override - String get logIspBlockingSuggestion => - 'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8'; + String get logIspBlockingSuggestion => 'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8'; @override String get logRateLimitedDescription => 'Too many requests to the service'; @override - String get logRateLimitedSuggestion => - 'Wait a few minutes before trying again'; + String get logRateLimitedSuggestion => 'Wait a few minutes before trying again'; @override String get logNetworkErrorDescription => 'Connection issues detected'; @@ -3617,12 +3526,10 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get logNetworkErrorSuggestion => 'Check your internet connection'; @override - String get logTrackNotFoundDescription => - 'Some tracks could not be found on download services'; + String get logTrackNotFoundDescription => 'Some tracks could not be found on download services'; @override - String get logTrackNotFoundSuggestion => - 'The track may not be available in lossless quality'; + String get logTrackNotFoundSuggestion => 'The track may not be available in lossless quality'; @override String logTotalErrors(int count) { @@ -3648,8 +3555,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get credentialsTitle => 'Spotify Credentials'; @override - String get credentialsDescription => - 'Enter your Client ID and Secret to use your own Spotify application quota.'; + String get credentialsDescription => 'Enter your Client ID and Secret to use your own Spotify application quota.'; @override String get credentialsClientId => 'Client ID'; @@ -3703,8 +3609,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get lyricsMode => 'Lyrics Mode'; @override - String get lyricsModeDescription => - 'Choose how lyrics are saved with your downloads'; + String get lyricsModeDescription => 'Choose how lyrics are saved with your downloads'; @override String get lyricsModeEmbed => 'Embed in file'; @@ -3716,8 +3621,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get lyricsModeExternal => 'External .lrc file'; @override - String get lyricsModeExternalSubtitle => - 'Separate .lrc file for players like Samsung Music'; + String get lyricsModeExternalSubtitle => 'Separate .lrc file for players like Samsung Music'; @override String get lyricsModeBoth => 'Both'; @@ -3877,8 +3781,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get trackDeleteConfirmTitle => 'Remove from device?'; @override - String get trackDeleteConfirmMessage => - 'This will permanently delete the downloaded file and remove it from your history.'; + String get trackDeleteConfirmMessage => 'This will permanently delete the downloaded file and remove it from your history.'; @override String trackCannotOpen(String message) { @@ -4030,15 +3933,13 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get extensionsNoExtensions => 'No extensions installed'; @override - String get extensionsNoExtensionsSubtitle => - 'Install .spotiflac-ext files to add new providers'; + String get extensionsNoExtensionsSubtitle => 'Install .spotiflac-ext files to add new providers'; @override String get extensionsInstallButton => 'Install Extension'; @override - String get extensionsInfoTip => - 'Extensions can add new metadata and download providers. Only install extensions from trusted sources.'; + String get extensionsInfoTip => 'Extensions can add new metadata and download providers. Only install extensions from trusted sources.'; @override String get extensionsInstalledSuccess => 'Extension installed successfully'; @@ -4050,19 +3951,16 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get extensionsDownloadPrioritySubtitle => 'Set download service order'; @override - String get extensionsNoDownloadProvider => - 'No extensions with download provider'; + String get extensionsNoDownloadProvider => 'No extensions with download provider'; @override String get extensionsMetadataPriority => 'Metadata Priority'; @override - String get extensionsMetadataPrioritySubtitle => - 'Set search & metadata source order'; + String get extensionsMetadataPrioritySubtitle => 'Set search & metadata source order'; @override - String get extensionsNoMetadataProvider => - 'No extensions with metadata provider'; + String get extensionsNoMetadataProvider => 'No extensions with metadata provider'; @override String get extensionsSearchProvider => 'Search Provider'; @@ -4071,8 +3969,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get extensionsNoCustomSearch => 'No extensions with custom search'; @override - String get extensionsSearchProviderDescription => - 'Choose which service to use for searching tracks'; + String get extensionsSearchProviderDescription => 'Choose which service to use for searching tracks'; @override String get extensionsCustomSearch => 'Custom search'; @@ -4099,8 +3996,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get qualityHiResFlacMaxSubtitle => '24-bit / up to 192kHz'; @override - String get qualityNote => - 'Actual quality depends on track availability from the service'; + String get qualityNote => 'Actual quality depends on track availability from the service'; @override String get downloadAskBeforeDownload => 'Ask Before Download'; @@ -4190,8 +4086,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get queueClearAll => 'Clear All'; @override - String get queueClearAllMessage => - 'Are you sure you want to clear all downloads?'; + String get queueClearAllMessage => 'Are you sure you want to clear all downloads?'; @override String get queueEmpty => 'No downloads in queue'; @@ -4227,8 +4122,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get albumFolderArtistYearAlbum => 'Artist / [Year] Album'; @override - String get albumFolderArtistYearAlbumSubtitle => - 'Albums/Artist Name/[2005] Album Name/'; + String get albumFolderArtistYearAlbumSubtitle => 'Albums/Artist Name/[2005] Album Name/'; @override String get albumFolderAlbumOnly => 'Album Only'; @@ -4246,8 +4140,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get albumFolderArtistAlbumSingles => 'Artist / Album + Singles'; @override - String get albumFolderArtistAlbumSinglesSubtitle => - 'Artist/Album/ and Artist/Singles/'; + String get albumFolderArtistAlbumSinglesSubtitle => 'Artist/Album/ and Artist/Singles/'; @override String get downloadedAlbumDeleteSelected => 'Delete Selected'; @@ -4357,8 +4250,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { String get discographySelectAlbums => 'Select Albums...'; @override - String get discographySelectAlbumsSubtitle => - 'Choose specific albums or singles'; + String get discographySelectAlbumsSubtitle => 'Choose specific albums or singles'; @override String get discographyFetchingTracks => 'Fetching tracks...'; @@ -4395,14 +4287,13 @@ class AppLocalizationsZhCn extends AppLocalizationsZh { /// The translations for Chinese, as used in Taiwan (`zh_TW`). class AppLocalizationsZhTw extends AppLocalizationsZh { - AppLocalizationsZhTw() : super('zh_TW'); + AppLocalizationsZhTw(): super('zh_TW'); @override String get appName => 'SpotiFLAC'; @override - String get appDescription => - 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; + String get appDescription => 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; @override String get navHome => 'Home'; @@ -4488,15 +4379,13 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get historyNoAlbums => 'No album downloads'; @override - String get historyNoAlbumsSubtitle => - 'Download multiple tracks from an album to see them here'; + String get historyNoAlbumsSubtitle => 'Download multiple tracks from an album to see them here'; @override String get historyNoSingles => 'No single downloads'; @override - String get historyNoSinglesSubtitle => - 'Single track downloads will appear here'; + String get historyNoSinglesSubtitle => 'Single track downloads will appear here'; @override String get historySearchHint => 'Search history...'; @@ -4544,8 +4433,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get downloadAskQuality => 'Ask Quality Before Download'; @override - String get downloadAskQualitySubtitle => - 'Show quality picker for each download'; + String get downloadAskQualitySubtitle => 'Show quality picker for each download'; @override String get downloadFilenameFormat => 'Filename Format'; @@ -4557,8 +4445,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get downloadSeparateSingles => 'Separate Singles'; @override - String get downloadSeparateSinglesSubtitle => - 'Put single tracks in a separate folder'; + String get downloadSeparateSinglesSubtitle => 'Put single tracks in a separate folder'; @override String get qualityBest => 'Best Available'; @@ -4615,8 +4502,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get optionsPrimaryProvider => 'Primary Provider'; @override - String get optionsPrimaryProviderSubtitle => - 'Service used when searching by track name.'; + String get optionsPrimaryProviderSubtitle => 'Service used when searching by track name.'; @override String optionsUsingExtension(String extensionName) { @@ -4624,15 +4510,13 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { } @override - String get optionsSwitchBack => - 'Tap Deezer or Spotify to switch back from extension'; + String get optionsSwitchBack => 'Tap Deezer or Spotify to switch back from extension'; @override String get optionsAutoFallback => 'Auto Fallback'; @override - String get optionsAutoFallbackSubtitle => - 'Try other services if download fails'; + String get optionsAutoFallbackSubtitle => 'Try other services if download fails'; @override String get optionsUseExtensionProviders => 'Use Extension Providers'; @@ -4647,15 +4531,13 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get optionsEmbedLyrics => 'Embed Lyrics'; @override - String get optionsEmbedLyricsSubtitle => - 'Embed synced lyrics into FLAC files'; + String get optionsEmbedLyricsSubtitle => 'Embed synced lyrics into FLAC files'; @override String get optionsMaxQualityCover => 'Max Quality Cover'; @override - String get optionsMaxQualityCoverSubtitle => - 'Download highest resolution cover art'; + String get optionsMaxQualityCoverSubtitle => 'Download highest resolution cover art'; @override String get optionsConcurrentDownloads => 'Concurrent Downloads'; @@ -4669,8 +4551,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { } @override - String get optionsConcurrentWarning => - 'Parallel downloads may trigger rate limiting'; + String get optionsConcurrentWarning => 'Parallel downloads may trigger rate limiting'; @override String get optionsExtensionStore => 'Extension Store'; @@ -4682,8 +4563,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get optionsCheckUpdates => 'Check for Updates'; @override - String get optionsCheckUpdatesSubtitle => - 'Notify when new version is available'; + String get optionsCheckUpdatesSubtitle => 'Notify when new version is available'; @override String get optionsUpdateChannel => 'Update Channel'; @@ -4695,15 +4575,13 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get optionsUpdateChannelPreview => 'Get preview releases'; @override - String get optionsUpdateChannelWarning => - 'Preview may contain bugs or incomplete features'; + String get optionsUpdateChannelWarning => 'Preview may contain bugs or incomplete features'; @override String get optionsClearHistory => 'Clear Download History'; @override - String get optionsClearHistorySubtitle => - 'Remove all downloaded tracks from history'; + String get optionsClearHistorySubtitle => 'Remove all downloaded tracks from history'; @override String get optionsDetailedLogging => 'Detailed Logging'; @@ -4726,8 +4604,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get optionsSpotifyCredentialsRequired => 'Required - tap to configure'; @override - String get optionsSpotifyWarning => - 'Spotify requires your own API credentials. Get them free from developer.spotify.com'; + String get optionsSpotifyWarning => 'Spotify requires your own API credentials. Get them free from developer.spotify.com'; @override String get extensionsTitle => 'Extensions'; @@ -4791,8 +4668,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get aboutOriginalCreator => 'Creator of the original SpotiFLAC'; @override - String get aboutLogoArtist => - 'The talented artist who created our beautiful app logo!'; + String get aboutLogoArtist => 'The talented artist who created our beautiful app logo!'; @override String get aboutTranslators => 'Translators'; @@ -4852,30 +4728,25 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get aboutVersion => 'Version'; @override - String get aboutBinimumDesc => - 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; + String get aboutBinimumDesc => 'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!'; @override - String get aboutSachinsenalDesc => - 'The original HiFi project creator. The foundation of Tidal integration!'; + String get aboutSachinsenalDesc => 'The original HiFi project creator. The foundation of Tidal integration!'; @override String get aboutDoubleDouble => 'DoubleDouble'; @override - String get aboutDoubleDoubleDesc => - 'Amazing API for Amazon Music downloads. Thank you for making it free!'; + String get aboutDoubleDoubleDesc => 'Amazing API for Amazon Music downloads. Thank you for making it free!'; @override String get aboutDabMusic => 'DAB Music'; @override - String get aboutDabMusicDesc => - 'The best Qobuz streaming API. Hi-Res downloads wouldn\'t be possible without this!'; + String get aboutDabMusicDesc => 'The best Qobuz streaming API. Hi-Res downloads wouldn\'t be possible without this!'; @override - String get aboutAppDescription => - 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; + String get aboutAppDescription => 'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.'; @override String get albumTitle => 'Album'; @@ -4980,8 +4851,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get setupStoragePermission => 'Storage Permission'; @override - String get setupStoragePermissionSubtitle => - 'Required to save downloaded files'; + String get setupStoragePermissionSubtitle => 'Required to save downloaded files'; @override String get setupStoragePermissionGranted => 'Permission granted'; @@ -5008,19 +4878,16 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get setupStorageAccessRequired => 'Storage Access Required'; @override - String get setupStorageAccessMessage => - 'SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.'; + String get setupStorageAccessMessage => 'SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.'; @override - String get setupStorageAccessMessageAndroid11 => - 'Android 11+ requires \"All files access\" permission to save files to your chosen download folder.'; + String get setupStorageAccessMessageAndroid11 => 'Android 11+ requires \"All files access\" permission to save files to your chosen download folder.'; @override String get setupOpenSettings => 'Open Settings'; @override - String get setupPermissionDeniedMessage => - 'Permission denied. Please grant all permissions to continue.'; + String get setupPermissionDeniedMessage => 'Permission denied. Please grant all permissions to continue.'; @override String setupPermissionRequired(String permissionType) { @@ -5039,8 +4906,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get setupUseDefaultFolder => 'Use Default Folder?'; @override - String get setupNoFolderSelected => - 'No folder selected. Would you like to use the default Music folder?'; + String get setupNoFolderSelected => 'No folder selected. Would you like to use the default Music folder?'; @override String get setupUseDefault => 'Use Default'; @@ -5049,15 +4915,13 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get setupDownloadLocationTitle => 'Download Location'; @override - String get setupDownloadLocationIosMessage => - 'On iOS, downloads are saved to the app\'s Documents folder. You can access them via the Files app.'; + String get setupDownloadLocationIosMessage => 'On iOS, downloads are saved to the app\'s Documents folder. You can access them via the Files app.'; @override String get setupAppDocumentsFolder => 'App Documents Folder'; @override - String get setupAppDocumentsFolderSubtitle => - 'Recommended - accessible via Files app'; + String get setupAppDocumentsFolderSubtitle => 'Recommended - accessible via Files app'; @override String get setupChooseFromFiles => 'Choose from Files'; @@ -5066,8 +4930,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get setupChooseFromFilesSubtitle => 'Select iCloud or other location'; @override - String get setupIosEmptyFolderWarning => - 'iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.'; + String get setupIosEmptyFolderWarning => 'iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.'; @override String get setupDownloadInFlac => 'Download Spotify tracks in FLAC'; @@ -5094,8 +4957,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get setupStorageRequired => 'Storage Permission Required'; @override - String get setupStorageDescription => - 'SpotiFLAC needs storage permission to save your downloaded music files.'; + String get setupStorageDescription => 'SpotiFLAC needs storage permission to save your downloaded music files.'; @override String get setupNotificationGranted => 'Notification Permission Granted!'; @@ -5104,8 +4966,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get setupNotificationEnable => 'Enable Notifications'; @override - String get setupNotificationDescription => - 'Get notified when downloads complete or require attention.'; + String get setupNotificationDescription => 'Get notified when downloads complete or require attention.'; @override String get setupFolderSelected => 'Download Folder Selected!'; @@ -5114,8 +4975,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get setupFolderChoose => 'Choose Download Folder'; @override - String get setupFolderDescription => - 'Select a folder where your downloaded music will be saved.'; + String get setupFolderDescription => 'Select a folder where your downloaded music will be saved.'; @override String get setupChangeFolder => 'Change Folder'; @@ -5127,8 +4987,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get setupSpotifyApiOptional => 'Spotify API (Optional)'; @override - String get setupSpotifyApiDescription => - 'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.'; + String get setupSpotifyApiDescription => 'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.'; @override String get setupUseSpotifyApi => 'Use Spotify API'; @@ -5146,8 +5005,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get setupEnterClientSecret => 'Enter Spotify Client Secret'; @override - String get setupGetFreeCredentials => - 'Get your free API credentials from the Spotify Developer Dashboard.'; + String get setupGetFreeCredentials => 'Get your free API credentials from the Spotify Developer Dashboard.'; @override String get setupEnableNotifications => 'Enable Notifications'; @@ -5156,12 +5014,10 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get setupProceedToNextStep => 'You can now proceed to the next step.'; @override - String get setupNotificationProgressDescription => - 'You will receive download progress notifications.'; + String get setupNotificationProgressDescription => 'You will receive download progress notifications.'; @override - String get setupNotificationBackgroundDescription => - 'Get notified about download progress and completion. This helps you track downloads when the app is in background.'; + String get setupNotificationBackgroundDescription => 'Get notified about download progress and completion. This helps you track downloads when the app is in background.'; @override String get setupSkipForNow => 'Skip for now'; @@ -5179,12 +5035,10 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get setupSkipAndStart => 'Skip & Start'; @override - String get setupAllowAccessToManageFiles => - 'Please enable \"Allow access to manage all files\" in the next screen.'; + String get setupAllowAccessToManageFiles => 'Please enable \"Allow access to manage all files\" in the next screen.'; @override - String get setupGetCredentialsFromSpotify => - 'Get credentials from developer.spotify.com'; + String get setupGetCredentialsFromSpotify => 'Get credentials from developer.spotify.com'; @override String get dialogCancel => 'Cancel'; @@ -5235,8 +5089,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get dialogDiscardChanges => 'Discard Changes?'; @override - String get dialogUnsavedChanges => - 'You have unsaved changes. Do you want to discard them?'; + String get dialogUnsavedChanges => 'You have unsaved changes. Do you want to discard them?'; @override String get dialogDownloadFailed => 'Download Failed'; @@ -5254,8 +5107,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get dialogClearAll => 'Clear All'; @override - String get dialogClearAllDownloads => - 'Are you sure you want to clear all downloads?'; + String get dialogClearAllDownloads => 'Are you sure you want to clear all downloads?'; @override String get dialogRemoveFromDevice => 'Remove from device?'; @@ -5264,8 +5116,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get dialogRemoveExtension => 'Remove Extension'; @override - String get dialogRemoveExtensionMessage => - 'Are you sure you want to remove this extension? This cannot be undone.'; + String get dialogRemoveExtensionMessage => 'Are you sure you want to remove this extension? This cannot be undone.'; @override String get dialogUninstallExtension => 'Uninstall Extension?'; @@ -5279,8 +5130,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get dialogClearHistoryTitle => 'Clear History'; @override - String get dialogClearHistoryMessage => - 'Are you sure you want to clear all download history? This cannot be undone.'; + String get dialogClearHistoryMessage => 'Are you sure you want to clear all download history? This cannot be undone.'; @override String get dialogDeleteSelectedTitle => 'Delete Selected'; @@ -5375,8 +5225,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get snackbarProviderPrioritySaved => 'Provider priority saved'; @override - String get snackbarMetadataProviderSaved => - 'Metadata provider priority saved'; + String get snackbarMetadataProviderSaved => 'Metadata provider priority saved'; @override String snackbarExtensionInstalled(String extensionName) { @@ -5398,8 +5247,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get errorRateLimited => 'Rate Limited'; @override - String get errorRateLimitedMessage => - 'Too many requests. Please wait a moment before searching again.'; + String get errorRateLimitedMessage => 'Too many requests. Please wait a moment before searching again.'; @override String errorFailedToLoad(String item) { @@ -5566,23 +5414,19 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get folderOrganizationByArtistAlbum => 'Artist/Album'; @override - String get folderOrganizationDescription => - 'Organize downloaded files into folders'; + String get folderOrganizationDescription => 'Organize downloaded files into folders'; @override String get folderOrganizationNoneSubtitle => 'All files in download folder'; @override - String get folderOrganizationByArtistSubtitle => - 'Separate folder for each artist'; + String get folderOrganizationByArtistSubtitle => 'Separate folder for each artist'; @override - String get folderOrganizationByAlbumSubtitle => - 'Separate folder for each album'; + String get folderOrganizationByAlbumSubtitle => 'Separate folder for each album'; @override - String get folderOrganizationByArtistAlbumSubtitle => - 'Nested folders for artist and album'; + String get folderOrganizationByArtistAlbumSubtitle => 'Nested folders for artist and album'; @override String get updateAvailable => 'Update Available'; @@ -5641,12 +5485,10 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get providerPriorityTitle => 'Provider Priority'; @override - String get providerPriorityDescription => - 'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.'; + String get providerPriorityDescription => 'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.'; @override - String get providerPriorityInfo => - 'If a track is not available on the first provider, the app will automatically try the next one.'; + String get providerPriorityInfo => 'If a track is not available on the first provider, the app will automatically try the next one.'; @override String get providerBuiltIn => 'Built-in'; @@ -5658,19 +5500,16 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get metadataProviderPriority => 'Metadata Provider Priority'; @override - String get metadataProviderPrioritySubtitle => - 'Order used when fetching track metadata'; + String get metadataProviderPrioritySubtitle => 'Order used when fetching track metadata'; @override String get metadataProviderPriorityTitle => 'Metadata Priority'; @override - String get metadataProviderPriorityDescription => - 'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.'; + String get metadataProviderPriorityDescription => 'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.'; @override - String get metadataProviderPriorityInfo => - 'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.'; + String get metadataProviderPriorityInfo => 'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.'; @override String get metadataNoRateLimits => 'No rate limits'; @@ -5742,19 +5581,16 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get logIssueSummary => 'Issue Summary'; @override - String get logIspBlockingDescription => - 'Your ISP may be blocking access to download services'; + String get logIspBlockingDescription => 'Your ISP may be blocking access to download services'; @override - String get logIspBlockingSuggestion => - 'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8'; + String get logIspBlockingSuggestion => 'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8'; @override String get logRateLimitedDescription => 'Too many requests to the service'; @override - String get logRateLimitedSuggestion => - 'Wait a few minutes before trying again'; + String get logRateLimitedSuggestion => 'Wait a few minutes before trying again'; @override String get logNetworkErrorDescription => 'Connection issues detected'; @@ -5763,12 +5599,10 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get logNetworkErrorSuggestion => 'Check your internet connection'; @override - String get logTrackNotFoundDescription => - 'Some tracks could not be found on download services'; + String get logTrackNotFoundDescription => 'Some tracks could not be found on download services'; @override - String get logTrackNotFoundSuggestion => - 'The track may not be available in lossless quality'; + String get logTrackNotFoundSuggestion => 'The track may not be available in lossless quality'; @override String logTotalErrors(int count) { @@ -5794,8 +5628,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get credentialsTitle => 'Spotify Credentials'; @override - String get credentialsDescription => - 'Enter your Client ID and Secret to use your own Spotify application quota.'; + String get credentialsDescription => 'Enter your Client ID and Secret to use your own Spotify application quota.'; @override String get credentialsClientId => 'Client ID'; @@ -5849,8 +5682,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get lyricsMode => 'Lyrics Mode'; @override - String get lyricsModeDescription => - 'Choose how lyrics are saved with your downloads'; + String get lyricsModeDescription => 'Choose how lyrics are saved with your downloads'; @override String get lyricsModeEmbed => 'Embed in file'; @@ -5862,8 +5694,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get lyricsModeExternal => 'External .lrc file'; @override - String get lyricsModeExternalSubtitle => - 'Separate .lrc file for players like Samsung Music'; + String get lyricsModeExternalSubtitle => 'Separate .lrc file for players like Samsung Music'; @override String get lyricsModeBoth => 'Both'; @@ -6023,8 +5854,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get trackDeleteConfirmTitle => 'Remove from device?'; @override - String get trackDeleteConfirmMessage => - 'This will permanently delete the downloaded file and remove it from your history.'; + String get trackDeleteConfirmMessage => 'This will permanently delete the downloaded file and remove it from your history.'; @override String trackCannotOpen(String message) { @@ -6176,15 +6006,13 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get extensionsNoExtensions => 'No extensions installed'; @override - String get extensionsNoExtensionsSubtitle => - 'Install .spotiflac-ext files to add new providers'; + String get extensionsNoExtensionsSubtitle => 'Install .spotiflac-ext files to add new providers'; @override String get extensionsInstallButton => 'Install Extension'; @override - String get extensionsInfoTip => - 'Extensions can add new metadata and download providers. Only install extensions from trusted sources.'; + String get extensionsInfoTip => 'Extensions can add new metadata and download providers. Only install extensions from trusted sources.'; @override String get extensionsInstalledSuccess => 'Extension installed successfully'; @@ -6196,19 +6024,16 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get extensionsDownloadPrioritySubtitle => 'Set download service order'; @override - String get extensionsNoDownloadProvider => - 'No extensions with download provider'; + String get extensionsNoDownloadProvider => 'No extensions with download provider'; @override String get extensionsMetadataPriority => 'Metadata Priority'; @override - String get extensionsMetadataPrioritySubtitle => - 'Set search & metadata source order'; + String get extensionsMetadataPrioritySubtitle => 'Set search & metadata source order'; @override - String get extensionsNoMetadataProvider => - 'No extensions with metadata provider'; + String get extensionsNoMetadataProvider => 'No extensions with metadata provider'; @override String get extensionsSearchProvider => 'Search Provider'; @@ -6217,8 +6042,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get extensionsNoCustomSearch => 'No extensions with custom search'; @override - String get extensionsSearchProviderDescription => - 'Choose which service to use for searching tracks'; + String get extensionsSearchProviderDescription => 'Choose which service to use for searching tracks'; @override String get extensionsCustomSearch => 'Custom search'; @@ -6245,8 +6069,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get qualityHiResFlacMaxSubtitle => '24-bit / up to 192kHz'; @override - String get qualityNote => - 'Actual quality depends on track availability from the service'; + String get qualityNote => 'Actual quality depends on track availability from the service'; @override String get downloadAskBeforeDownload => 'Ask Before Download'; @@ -6336,8 +6159,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get queueClearAll => 'Clear All'; @override - String get queueClearAllMessage => - 'Are you sure you want to clear all downloads?'; + String get queueClearAllMessage => 'Are you sure you want to clear all downloads?'; @override String get queueEmpty => 'No downloads in queue'; @@ -6373,8 +6195,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get albumFolderArtistYearAlbum => 'Artist / [Year] Album'; @override - String get albumFolderArtistYearAlbumSubtitle => - 'Albums/Artist Name/[2005] Album Name/'; + String get albumFolderArtistYearAlbumSubtitle => 'Albums/Artist Name/[2005] Album Name/'; @override String get albumFolderAlbumOnly => 'Album Only'; @@ -6392,8 +6213,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get albumFolderArtistAlbumSingles => 'Artist / Album + Singles'; @override - String get albumFolderArtistAlbumSinglesSubtitle => - 'Artist/Album/ and Artist/Singles/'; + String get albumFolderArtistAlbumSinglesSubtitle => 'Artist/Album/ and Artist/Singles/'; @override String get downloadedAlbumDeleteSelected => 'Delete Selected'; @@ -6503,8 +6323,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get discographySelectAlbums => 'Select Albums...'; @override - String get discographySelectAlbumsSubtitle => - 'Choose specific albums or singles'; + String get discographySelectAlbumsSubtitle => 'Choose specific albums or singles'; @override String get discographyFetchingTracks => 'Fetching tracks...'; diff --git a/lib/l10n/arb/app_en.arb b/lib/l10n/arb/app_en.arb index 02130603..943bc832 100644 --- a/lib/l10n/arb/app_en.arb +++ b/lib/l10n/arb/app_en.arb @@ -1486,6 +1486,40 @@ "settingsDownloadNetworkSubtitle": "Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.", "@settingsDownloadNetworkSubtitle": {"description": "Subtitle explaining network preference"}, + "settingsCloudSave": "Cloud Save", + "@settingsCloudSave": {"description": "Settings menu item for cloud upload"}, + "settingsCloudSaveSubtitle": "Auto-upload to NAS or cloud storage", + "@settingsCloudSaveSubtitle": {"description": "Subtitle for cloud save menu item"}, + + "cloudSettingsTitle": "Cloud Save", + "@cloudSettingsTitle": {"description": "Cloud settings page title"}, + "cloudSettingsSectionGeneral": "General", + "@cloudSettingsSectionGeneral": {"description": "General section header"}, + "cloudSettingsEnable": "Enable Cloud Upload", + "@cloudSettingsEnable": {"description": "Toggle to enable cloud upload"}, + "cloudSettingsEnableSubtitle": "Automatically upload files after download completes", + "@cloudSettingsEnableSubtitle": {"description": "Subtitle for enable toggle"}, + "cloudSettingsSectionProvider": "Cloud Provider", + "@cloudSettingsSectionProvider": {"description": "Provider section header"}, + "cloudSettingsProvider": "Provider", + "@cloudSettingsProvider": {"description": "Provider selection setting"}, + "cloudSettingsProviderDescription": "Select where to upload your downloaded files", + "@cloudSettingsProviderDescription": {"description": "Provider picker description"}, + "cloudSettingsSectionServer": "Server Configuration", + "@cloudSettingsSectionServer": {"description": "Server config section header"}, + "cloudSettingsServerUrl": "Server URL", + "@cloudSettingsServerUrl": {"description": "Server URL field label"}, + "cloudSettingsUsername": "Username", + "@cloudSettingsUsername": {"description": "Username field label"}, + "cloudSettingsPassword": "Password", + "@cloudSettingsPassword": {"description": "Password field label"}, + "cloudSettingsRemotePath": "Remote Folder Path", + "@cloudSettingsRemotePath": {"description": "Remote path field label"}, + "cloudSettingsTestConnection": "Test Connection", + "@cloudSettingsTestConnection": {"description": "Test connection button"}, + "cloudSettingsInfo": "Downloaded files will be automatically uploaded to your cloud storage after download completes. Original files are kept on your device.", + "@cloudSettingsInfo": {"description": "Info card explaining the feature"}, + "queueEmpty": "No downloads in queue", "@queueEmpty": {"description": "Empty queue state title"}, "queueEmptySubtitle": "Add tracks from the home screen", diff --git a/lib/models/settings.dart b/lib/models/settings.dart index 8287b694..113e9601 100644 --- a/lib/models/settings.dart +++ b/lib/models/settings.dart @@ -36,6 +36,14 @@ class AppSettings { final bool useAllFilesAccess; // Android 13+ only: enable MANAGE_EXTERNAL_STORAGE final bool autoExportFailedDownloads; // Auto export failed downloads to TXT file final String downloadNetworkMode; // 'any' = WiFi + Mobile, 'wifi_only' = WiFi only + + // Cloud Upload Settings + final bool cloudUploadEnabled; // Enable auto-upload after download + final String cloudProvider; // 'none', 'webdav', 'sftp', 'gdrive' + final String cloudServerUrl; // WebDAV/SFTP server URL + final String cloudUsername; // Server username + final String cloudPassword; // Server password (encrypted) + final String cloudRemotePath; // Remote folder path (e.g. /Music/SpotiFLAC) const AppSettings({ this.defaultService = 'tidal', @@ -70,6 +78,13 @@ class AppSettings { this.useAllFilesAccess = false, this.autoExportFailedDownloads = false, this.downloadNetworkMode = 'any', + // Cloud Upload defaults + this.cloudUploadEnabled = false, + this.cloudProvider = 'none', + this.cloudServerUrl = '', + this.cloudUsername = '', + this.cloudPassword = '', + this.cloudRemotePath = '/Music/SpotiFLAC', }); AppSettings copyWith({ @@ -106,6 +121,13 @@ class AppSettings { bool? useAllFilesAccess, bool? autoExportFailedDownloads, String? downloadNetworkMode, + // Cloud Upload + bool? cloudUploadEnabled, + String? cloudProvider, + String? cloudServerUrl, + String? cloudUsername, + String? cloudPassword, + String? cloudRemotePath, }) { return AppSettings( defaultService: defaultService ?? this.defaultService, @@ -140,6 +162,13 @@ class AppSettings { useAllFilesAccess: useAllFilesAccess ?? this.useAllFilesAccess, autoExportFailedDownloads: autoExportFailedDownloads ?? this.autoExportFailedDownloads, downloadNetworkMode: downloadNetworkMode ?? this.downloadNetworkMode, + // Cloud Upload + cloudUploadEnabled: cloudUploadEnabled ?? this.cloudUploadEnabled, + cloudProvider: cloudProvider ?? this.cloudProvider, + cloudServerUrl: cloudServerUrl ?? this.cloudServerUrl, + cloudUsername: cloudUsername ?? this.cloudUsername, + cloudPassword: cloudPassword ?? this.cloudPassword, + cloudRemotePath: cloudRemotePath ?? this.cloudRemotePath, ); } diff --git a/lib/models/settings.g.dart b/lib/models/settings.g.dart index c66fbf90..40d0d28b 100644 --- a/lib/models/settings.g.dart +++ b/lib/models/settings.g.dart @@ -42,6 +42,12 @@ AppSettings _$AppSettingsFromJson(Map json) => AppSettings( autoExportFailedDownloads: json['autoExportFailedDownloads'] as bool? ?? false, downloadNetworkMode: json['downloadNetworkMode'] as String? ?? 'any', + cloudUploadEnabled: json['cloudUploadEnabled'] as bool? ?? false, + cloudProvider: json['cloudProvider'] as String? ?? 'none', + cloudServerUrl: json['cloudServerUrl'] as String? ?? '', + cloudUsername: json['cloudUsername'] as String? ?? '', + cloudPassword: json['cloudPassword'] as String? ?? '', + cloudRemotePath: json['cloudRemotePath'] as String? ?? '/Music/SpotiFLAC', ); Map _$AppSettingsToJson(AppSettings instance) => @@ -78,4 +84,10 @@ Map _$AppSettingsToJson(AppSettings instance) => 'useAllFilesAccess': instance.useAllFilesAccess, 'autoExportFailedDownloads': instance.autoExportFailedDownloads, 'downloadNetworkMode': instance.downloadNetworkMode, + 'cloudUploadEnabled': instance.cloudUploadEnabled, + 'cloudProvider': instance.cloudProvider, + 'cloudServerUrl': instance.cloudServerUrl, + 'cloudUsername': instance.cloudUsername, + 'cloudPassword': instance.cloudPassword, + 'cloudRemotePath': instance.cloudRemotePath, }; diff --git a/lib/providers/settings_provider.dart b/lib/providers/settings_provider.dart index 1cd5b16c..670d0e8f 100644 --- a/lib/providers/settings_provider.dart +++ b/lib/providers/settings_provider.dart @@ -250,6 +250,56 @@ void setUseAllFilesAccess(bool enabled) { state = state.copyWith(downloadNetworkMode: mode); _saveSettings(); } + + // Cloud Upload Settings + void setCloudUploadEnabled(bool enabled) { + state = state.copyWith(cloudUploadEnabled: enabled); + _saveSettings(); + } + + void setCloudProvider(String provider) { + state = state.copyWith(cloudProvider: provider); + _saveSettings(); + } + + void setCloudServerUrl(String url) { + state = state.copyWith(cloudServerUrl: url); + _saveSettings(); + } + + void setCloudUsername(String username) { + state = state.copyWith(cloudUsername: username); + _saveSettings(); + } + + void setCloudPassword(String password) { + state = state.copyWith(cloudPassword: password); + _saveSettings(); + } + + void setCloudRemotePath(String path) { + state = state.copyWith(cloudRemotePath: path); + _saveSettings(); + } + + void setCloudSettings({ + bool? enabled, + String? provider, + String? serverUrl, + String? username, + String? password, + String? remotePath, + }) { + state = state.copyWith( + cloudUploadEnabled: enabled ?? state.cloudUploadEnabled, + cloudProvider: provider ?? state.cloudProvider, + cloudServerUrl: serverUrl ?? state.cloudServerUrl, + cloudUsername: username ?? state.cloudUsername, + cloudPassword: password ?? state.cloudPassword, + cloudRemotePath: remotePath ?? state.cloudRemotePath, + ); + _saveSettings(); + } } final settingsProvider = NotifierProvider( diff --git a/lib/screens/settings/cloud_settings_page.dart b/lib/screens/settings/cloud_settings_page.dart new file mode 100644 index 00000000..41126df4 --- /dev/null +++ b/lib/screens/settings/cloud_settings_page.dart @@ -0,0 +1,409 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:spotiflac_android/l10n/l10n.dart'; +import 'package:spotiflac_android/providers/settings_provider.dart'; +import 'package:spotiflac_android/widgets/settings_group.dart'; + +class CloudSettingsPage extends ConsumerStatefulWidget { + const CloudSettingsPage({super.key}); + + @override + ConsumerState createState() => _CloudSettingsPageState(); +} + +class _CloudSettingsPageState extends ConsumerState { + late TextEditingController _serverUrlController; + late TextEditingController _usernameController; + late TextEditingController _passwordController; + late TextEditingController _remotePathController; + bool _isTestingConnection = false; + String? _connectionTestResult; + + @override + void initState() { + super.initState(); + final settings = ref.read(settingsProvider); + _serverUrlController = TextEditingController(text: settings.cloudServerUrl); + _usernameController = TextEditingController(text: settings.cloudUsername); + _passwordController = TextEditingController(text: settings.cloudPassword); + _remotePathController = TextEditingController(text: settings.cloudRemotePath); + } + + @override + void dispose() { + _serverUrlController.dispose(); + _usernameController.dispose(); + _passwordController.dispose(); + _remotePathController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + final settings = ref.watch(settingsProvider); + final colorScheme = Theme.of(context).colorScheme; + final topPadding = MediaQuery.of(context).padding.top; + + return PopScope( + canPop: true, + child: Scaffold( + body: CustomScrollView( + slivers: [ + SliverAppBar( + expandedHeight: 120 + topPadding, + collapsedHeight: kToolbarHeight, + floating: false, + pinned: true, + backgroundColor: colorScheme.surface, + surfaceTintColor: Colors.transparent, + leading: IconButton( + icon: const Icon(Icons.arrow_back), + onPressed: () => Navigator.pop(context), + ), + flexibleSpace: LayoutBuilder( + builder: (context, constraints) { + final maxHeight = 120 + topPadding; + final minHeight = kToolbarHeight + topPadding; + final expandRatio = + ((constraints.maxHeight - minHeight) / + (maxHeight - minHeight)) + .clamp(0.0, 1.0); + final leftPadding = 56 - (32 * expandRatio); + return FlexibleSpaceBar( + expandedTitleScale: 1.0, + titlePadding: EdgeInsets.only( + left: leftPadding, + bottom: 16, + ), + title: Text( + context.l10n.cloudSettingsTitle, + style: TextStyle( + fontSize: 20 + (8 * expandRatio), + fontWeight: FontWeight.bold, + color: colorScheme.onSurface, + ), + ), + ); + }, + ), + ), + + // Enable Cloud Upload + SliverToBoxAdapter( + child: SettingsSectionHeader(title: context.l10n.cloudSettingsSectionGeneral), + ), + SliverToBoxAdapter( + child: SettingsGroup( + children: [ + SettingsSwitchItem( + icon: Icons.cloud_upload_outlined, + title: context.l10n.cloudSettingsEnable, + subtitle: context.l10n.cloudSettingsEnableSubtitle, + value: settings.cloudUploadEnabled, + onChanged: (value) { + ref.read(settingsProvider.notifier).setCloudUploadEnabled(value); + }, + showDivider: false, + ), + ], + ), + ), + + // Provider Selection + if (settings.cloudUploadEnabled) ...[ + SliverToBoxAdapter( + child: SettingsSectionHeader(title: context.l10n.cloudSettingsSectionProvider), + ), + SliverToBoxAdapter( + child: SettingsGroup( + children: [ + SettingsItem( + icon: Icons.dns_outlined, + title: context.l10n.cloudSettingsProvider, + subtitle: _getProviderName(settings.cloudProvider), + onTap: () => _showProviderPicker(context, settings.cloudProvider), + showDivider: false, + ), + ], + ), + ), + + // Server Configuration (for WebDAV/SFTP) + if (settings.cloudProvider != 'none' && settings.cloudProvider != 'gdrive') ...[ + SliverToBoxAdapter( + child: SettingsSectionHeader(title: context.l10n.cloudSettingsSectionServer), + ), + SliverToBoxAdapter( + child: SettingsGroup( + children: [ + Padding( + padding: const EdgeInsets.fromLTRB(16, 16, 16, 8), + child: TextField( + controller: _serverUrlController, + decoration: InputDecoration( + labelText: context.l10n.cloudSettingsServerUrl, + hintText: settings.cloudProvider == 'webdav' + ? 'https://your-server.com/webdav' + : 'sftp://your-server.com:22', + border: const OutlineInputBorder(), + prefixIcon: const Icon(Icons.link), + ), + onChanged: (value) { + ref.read(settingsProvider.notifier).setCloudServerUrl(value); + }, + ), + ), + Padding( + padding: const EdgeInsets.fromLTRB(16, 8, 16, 8), + child: TextField( + controller: _usernameController, + decoration: InputDecoration( + labelText: context.l10n.cloudSettingsUsername, + border: const OutlineInputBorder(), + prefixIcon: const Icon(Icons.person_outline), + ), + onChanged: (value) { + ref.read(settingsProvider.notifier).setCloudUsername(value); + }, + ), + ), + Padding( + padding: const EdgeInsets.fromLTRB(16, 8, 16, 8), + child: TextField( + controller: _passwordController, + obscureText: true, + decoration: InputDecoration( + labelText: context.l10n.cloudSettingsPassword, + border: const OutlineInputBorder(), + prefixIcon: const Icon(Icons.lock_outline), + ), + onChanged: (value) { + ref.read(settingsProvider.notifier).setCloudPassword(value); + }, + ), + ), + Padding( + padding: const EdgeInsets.fromLTRB(16, 8, 16, 16), + child: TextField( + controller: _remotePathController, + decoration: InputDecoration( + labelText: context.l10n.cloudSettingsRemotePath, + hintText: '/Music/SpotiFLAC', + border: const OutlineInputBorder(), + prefixIcon: const Icon(Icons.folder_outlined), + ), + onChanged: (value) { + ref.read(settingsProvider.notifier).setCloudRemotePath(value); + }, + ), + ), + ], + ), + ), + + // Test Connection Button + SliverToBoxAdapter( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + child: FilledButton.icon( + onPressed: _isTestingConnection ? null : _testConnection, + icon: _isTestingConnection + ? const SizedBox( + width: 16, + height: 16, + child: CircularProgressIndicator(strokeWidth: 2), + ) + : const Icon(Icons.sync), + label: Text(context.l10n.cloudSettingsTestConnection), + ), + ), + ), + + // Connection Test Result + if (_connectionTestResult != null) + SliverToBoxAdapter( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + child: Card( + color: _connectionTestResult!.startsWith('Success') + ? colorScheme.primaryContainer + : colorScheme.errorContainer, + child: Padding( + padding: const EdgeInsets.all(12), + child: Row( + children: [ + Icon( + _connectionTestResult!.startsWith('Success') + ? Icons.check_circle + : Icons.error, + color: _connectionTestResult!.startsWith('Success') + ? colorScheme.onPrimaryContainer + : colorScheme.onErrorContainer, + ), + const SizedBox(width: 12), + Expanded( + child: Text( + _connectionTestResult!, + style: TextStyle( + color: _connectionTestResult!.startsWith('Success') + ? colorScheme.onPrimaryContainer + : colorScheme.onErrorContainer, + ), + ), + ), + ], + ), + ), + ), + ), + ), + ], + + // Info about the feature + SliverToBoxAdapter( + child: Padding( + padding: const EdgeInsets.fromLTRB(16, 16, 16, 8), + child: Card( + color: colorScheme.tertiaryContainer.withValues(alpha: 0.3), + child: Padding( + padding: const EdgeInsets.all(12), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Icon( + Icons.info_outline, + size: 20, + color: colorScheme.tertiary, + ), + const SizedBox(width: 12), + Expanded( + child: Text( + context.l10n.cloudSettingsInfo, + style: Theme.of(context).textTheme.bodySmall?.copyWith( + color: colorScheme.onTertiaryContainer, + ), + ), + ), + ], + ), + ), + ), + ), + ), + ], + + const SliverToBoxAdapter(child: SizedBox(height: 32)), + ], + ), + ), + ); + } + + String _getProviderName(String provider) { + switch (provider) { + case 'webdav': + return 'WebDAV (Synology, Nextcloud, QNAP)'; + case 'sftp': + return 'SFTP'; + case 'gdrive': + return 'Google Drive (Coming Soon)'; + default: + return 'Not Configured'; + } + } + + void _showProviderPicker(BuildContext context, String current) { + final colorScheme = Theme.of(context).colorScheme; + showModalBottomSheet( + context: context, + backgroundColor: colorScheme.surfaceContainerHigh, + shape: const RoundedRectangleBorder( + borderRadius: BorderRadius.vertical(top: Radius.circular(28)), + ), + builder: (context) => SafeArea( + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.fromLTRB(24, 24, 24, 8), + child: Text( + context.l10n.cloudSettingsProvider, + style: Theme.of(context).textTheme.titleLarge?.copyWith( + fontWeight: FontWeight.bold, + ), + ), + ), + Padding( + padding: const EdgeInsets.fromLTRB(24, 0, 24, 16), + child: Text( + context.l10n.cloudSettingsProviderDescription, + style: Theme.of(context).textTheme.bodyMedium?.copyWith( + color: colorScheme.onSurfaceVariant, + ), + ), + ), + ListTile( + leading: const Icon(Icons.web), + title: const Text('WebDAV'), + subtitle: const Text('Synology, Nextcloud, QNAP, ownCloud'), + trailing: current == 'webdav' ? Icon(Icons.check, color: colorScheme.primary) : null, + onTap: () { + ref.read(settingsProvider.notifier).setCloudProvider('webdav'); + Navigator.pop(context); + }, + ), + ListTile( + leading: const Icon(Icons.terminal), + title: const Text('SFTP'), + subtitle: const Text('SSH File Transfer Protocol'), + trailing: current == 'sftp' ? Icon(Icons.check, color: colorScheme.primary) : null, + onTap: () { + ref.read(settingsProvider.notifier).setCloudProvider('sftp'); + Navigator.pop(context); + }, + ), + ListTile( + leading: Icon(Icons.cloud, color: colorScheme.onSurfaceVariant), + title: Text( + 'Google Drive', + style: TextStyle(color: colorScheme.onSurfaceVariant), + ), + subtitle: Text( + 'Coming Soon', + style: TextStyle(color: colorScheme.onSurfaceVariant), + ), + enabled: false, + ), + const SizedBox(height: 16), + ], + ), + ), + ); + } + + Future _testConnection() async { + setState(() { + _isTestingConnection = true; + _connectionTestResult = null; + }); + + // TODO: Implement actual connection test + await Future.delayed(const Duration(seconds: 2)); + + final settings = ref.read(settingsProvider); + if (settings.cloudServerUrl.isEmpty) { + setState(() { + _isTestingConnection = false; + _connectionTestResult = 'Error: Server URL is required'; + }); + return; + } + + // Placeholder - actual implementation will use webdav_client + setState(() { + _isTestingConnection = false; + _connectionTestResult = 'Success: Connection test will be implemented in next version'; + }); + } +} diff --git a/lib/screens/settings/settings_tab.dart b/lib/screens/settings/settings_tab.dart index 5bf00423..c0d09414 100644 --- a/lib/screens/settings/settings_tab.dart +++ b/lib/screens/settings/settings_tab.dart @@ -6,6 +6,7 @@ import 'package:spotiflac_android/screens/settings/appearance_settings_page.dart import 'package:spotiflac_android/screens/settings/download_settings_page.dart'; import 'package:spotiflac_android/screens/settings/extensions_page.dart'; import 'package:spotiflac_android/screens/settings/options_settings_page.dart'; +import 'package:spotiflac_android/screens/settings/cloud_settings_page.dart'; import 'package:spotiflac_android/screens/settings/about_page.dart'; import 'package:spotiflac_android/screens/settings/log_screen.dart'; import 'package:spotiflac_android/widgets/settings_group.dart'; @@ -73,6 +74,12 @@ class SettingsTab extends ConsumerWidget { subtitle: l10n.settingsDownloadSubtitle, onTap: () => _navigateTo(context, const DownloadSettingsPage()), ), + SettingsItem( + icon: Icons.cloud_upload_outlined, + title: l10n.settingsCloudSave, + subtitle: l10n.settingsCloudSaveSubtitle, + onTap: () => _navigateTo(context, const CloudSettingsPage()), + ), SettingsItem( icon: Icons.tune_outlined, title: l10n.settingsOptions,