feat: block duplicate downloads for tracks in local library

- Add local library check before downloading in all screens
- Show 'Already exists in your library' snackbar when track is found
- Add 'In Library' badge to track items in album and playlist screens
- Update home_tab, album_screen, playlist_screen, artist_screen
- Add snackbarAlreadyInLibrary localization string
This commit is contained in:
zarzet
2026-02-04 09:39:54 +07:00
parent 3eb2fdd7fa
commit 9071db9b88
19 changed files with 3415 additions and 1621 deletions
+88 -45
View File
@@ -73,7 +73,8 @@ 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;
@@ -81,7 +82,8 @@ abstract class AppLocalizations {
return Localizations.of<AppLocalizations>(context, AppLocalizations)!;
}
static const LocalizationsDelegate<AppLocalizations> delegate = _AppLocalizationsDelegate();
static const LocalizationsDelegate<AppLocalizations> delegate =
_AppLocalizationsDelegate();
/// A list of this localizations delegate along with the default localizations
/// delegates.
@@ -93,12 +95,13 @@ 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<LocalizationsDelegate<dynamic>> localizationsDelegates = <LocalizationsDelegate<dynamic>>[
delegate,
GlobalMaterialLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
];
static const List<LocalizationsDelegate<dynamic>> localizationsDelegates =
<LocalizationsDelegate<dynamic>>[
delegate,
GlobalMaterialLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
];
/// A list of this localizations delegate's supported locales.
static const List<Locale> supportedLocales = <Locale>[
@@ -118,7 +121,7 @@ abstract class AppLocalizations {
Locale('tr'),
Locale('zh'),
Locale('zh', 'CN'),
Locale('zh', 'TW')
Locale('zh', 'TW'),
];
/// App name - DO NOT TRANSLATE
@@ -1765,6 +1768,12 @@ abstract class AppLocalizations {
/// **'\"{trackName}\" already downloaded'**
String snackbarAlreadyDownloaded(String trackName);
/// Snackbar - track already exists in local library
///
/// In en, this message translates to:
/// **'\"{trackName}\" already exists in your library'**
String snackbarAlreadyInLibrary(String trackName);
/// Snackbar - history deleted
///
/// In en, this message translates to:
@@ -4412,7 +4421,8 @@ abstract class AppLocalizations {
String timeHoursAgo(int count);
}
class _AppLocalizationsDelegate extends LocalizationsDelegate<AppLocalizations> {
class _AppLocalizationsDelegate
extends LocalizationsDelegate<AppLocalizations> {
const _AppLocalizationsDelegate();
@override
@@ -4421,58 +4431,91 @@ class _AppLocalizationsDelegate extends LocalizationsDelegate<AppLocalizations>
}
@override
bool isSupported(Locale locale) => <String>['de', 'en', 'es', 'fr', 'hi', 'id', 'ja', 'ko', 'nl', 'pt', 'ru', 'tr', 'zh'].contains(locale.languageCode);
bool isSupported(Locale locale) => <String>[
'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.',
);
}
+213 -104
View File
@@ -12,7 +12,8 @@ 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';
@@ -44,7 +45,8 @@ 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';
@@ -95,19 +97,22 @@ 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...';
@@ -137,7 +142,8 @@ 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';
@@ -155,7 +161,8 @@ 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';
@@ -167,7 +174,8 @@ 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';
@@ -200,7 +208,8 @@ 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';
@@ -224,7 +233,8 @@ 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) {
@@ -232,34 +242,40 @@ 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';
@@ -273,19 +289,22 @@ 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';
@@ -297,19 +316,22 @@ 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';
@@ -323,10 +345,12 @@ 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';
@@ -338,7 +362,8 @@ 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';
@@ -390,7 +415,8 @@ 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';
@@ -411,13 +437,15 @@ 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';
@@ -441,7 +469,8 @@ 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';
@@ -450,28 +479,34 @@ 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';
@@ -576,7 +611,8 @@ 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';
@@ -603,16 +639,19 @@ 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) {
@@ -631,7 +670,8 @@ 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';
@@ -640,25 +680,30 @@ 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';
@@ -685,16 +730,19 @@ 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!';
@@ -703,7 +751,8 @@ 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';
@@ -715,7 +764,8 @@ 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';
@@ -733,7 +783,8 @@ 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';
@@ -742,10 +793,12 @@ 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';
@@ -763,10 +816,12 @@ 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';
@@ -817,7 +872,8 @@ 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';
@@ -835,7 +891,8 @@ 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?';
@@ -844,7 +901,8 @@ 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?';
@@ -858,7 +916,8 @@ 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';
@@ -902,6 +961,11 @@ class AppLocalizationsDe extends AppLocalizations {
return '\"$trackName\" already downloaded';
}
@override
String snackbarAlreadyInLibrary(String trackName) {
return '\"$trackName\" already exists in your library';
}
@override
String get snackbarHistoryCleared => 'History cleared';
@@ -953,7 +1017,8 @@ 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) {
@@ -975,7 +1040,8 @@ 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) {
@@ -1142,19 +1208,23 @@ 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';
@@ -1213,10 +1283,12 @@ 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';
@@ -1228,16 +1300,19 @@ 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';
@@ -1309,16 +1384,19 @@ 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';
@@ -1327,10 +1405,12 @@ 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) {
@@ -1356,7 +1436,8 @@ 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';
@@ -1410,7 +1491,8 @@ 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';
@@ -1422,7 +1504,8 @@ 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';
@@ -1582,7 +1665,8 @@ 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) {
@@ -1734,13 +1818,15 @@ 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';
@@ -1752,16 +1838,19 @@ 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';
@@ -1770,7 +1859,8 @@ 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';
@@ -1812,7 +1902,8 @@ 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';
@@ -1824,10 +1915,12 @@ 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';
@@ -1917,13 +2010,15 @@ 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';
@@ -1935,7 +2030,8 @@ 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';
@@ -1947,7 +2043,8 @@ 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 queueEmpty => 'No downloads in queue';
@@ -1983,7 +2080,8 @@ 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';
@@ -2001,7 +2099,8 @@ 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';
@@ -2111,7 +2210,8 @@ 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...';
@@ -2158,13 +2258,16 @@ 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.';
@override
String get settingsLocalLibrary => 'Local Library';
@@ -2185,7 +2288,8 @@ class AppLocalizationsDe extends AppLocalizations {
String get libraryEnableLocalLibrary => 'Enable Local Library';
@override
String get libraryEnableLocalLibrarySubtitle => 'Scan and track your existing music';
String get libraryEnableLocalLibrarySubtitle =>
'Scan and track your existing music';
@override
String get libraryFolder => 'Library Folder';
@@ -2197,7 +2301,8 @@ class AppLocalizationsDe extends AppLocalizations {
String get libraryShowDuplicateIndicator => 'Show Duplicate Indicator';
@override
String get libraryShowDuplicateIndicatorSubtitle => 'Show when searching for existing tracks';
String get libraryShowDuplicateIndicatorSubtitle =>
'Show when searching for existing tracks';
@override
String get libraryActions => 'Actions';
@@ -2215,7 +2320,8 @@ class AppLocalizationsDe extends AppLocalizations {
String get libraryCleanupMissingFiles => 'Cleanup Missing Files';
@override
String get libraryCleanupMissingFilesSubtitle => 'Remove entries for files that no longer exist';
String get libraryCleanupMissingFilesSubtitle =>
'Remove entries for files that no longer exist';
@override
String get libraryClear => 'Clear Library';
@@ -2227,13 +2333,15 @@ class AppLocalizationsDe extends AppLocalizations {
String get libraryClearConfirmTitle => 'Clear Library';
@override
String get libraryClearConfirmMessage => 'This will remove all scanned tracks from your library. Your actual music files will not be deleted.';
String get libraryClearConfirmMessage =>
'This will remove all scanned tracks from your library. Your actual music files will not be deleted.';
@override
String get libraryAbout => 'About Local Library';
@override
String get libraryAboutDescription => 'Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.';
String get libraryAboutDescription =>
'Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.';
@override
String libraryTracksCount(int count) {
@@ -2271,7 +2379,8 @@ class AppLocalizationsDe extends AppLocalizations {
String get libraryStorageAccessRequired => 'Storage Access Required';
@override
String get libraryStorageAccessMessage => 'SpotiFLAC needs storage access to scan your music library. Please grant permission in settings.';
String get libraryStorageAccessMessage =>
'SpotiFLAC needs storage access to scan your music library. Please grant permission in settings.';
@override
String get libraryFolderNotExist => 'Selected folder does not exist';
+183 -89
View File
@@ -12,7 +12,8 @@ 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';
@@ -101,13 +102,15 @@ 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,7 +158,8 @@ 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';
@@ -167,7 +171,8 @@ 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';
@@ -224,7 +229,8 @@ 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) {
@@ -232,13 +238,15 @@ 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';
@@ -253,13 +261,15 @@ 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';
@@ -273,7 +283,8 @@ 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';
@@ -285,7 +296,8 @@ 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';
@@ -297,13 +309,15 @@ 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';
@@ -326,7 +340,8 @@ 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';
@@ -390,7 +405,8 @@ 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';
@@ -450,28 +466,34 @@ 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';
@@ -576,7 +598,8 @@ 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';
@@ -603,16 +626,19 @@ 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) {
@@ -631,7 +657,8 @@ 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';
@@ -640,13 +667,15 @@ 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';
@@ -655,10 +684,12 @@ 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';
@@ -685,7 +716,8 @@ 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!';
@@ -694,7 +726,8 @@ 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!';
@@ -703,7 +736,8 @@ 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';
@@ -715,7 +749,8 @@ 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';
@@ -733,7 +768,8 @@ 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';
@@ -742,10 +778,12 @@ 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';
@@ -763,10 +801,12 @@ 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';
@@ -817,7 +857,8 @@ 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';
@@ -835,7 +876,8 @@ 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?';
@@ -844,7 +886,8 @@ 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?';
@@ -858,7 +901,8 @@ 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';
@@ -902,6 +946,11 @@ class AppLocalizationsEn extends AppLocalizations {
return '\"$trackName\" already downloaded';
}
@override
String snackbarAlreadyInLibrary(String trackName) {
return '\"$trackName\" already exists in your library';
}
@override
String get snackbarHistoryCleared => 'History cleared';
@@ -953,7 +1002,8 @@ 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) {
@@ -975,7 +1025,8 @@ 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) {
@@ -1142,19 +1193,23 @@ 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';
@@ -1213,10 +1268,12 @@ 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';
@@ -1228,16 +1285,19 @@ 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';
@@ -1309,16 +1369,19 @@ 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';
@@ -1327,10 +1390,12 @@ 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) {
@@ -1356,7 +1421,8 @@ 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';
@@ -1410,7 +1476,8 @@ 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';
@@ -1422,7 +1489,8 @@ 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';
@@ -1582,7 +1650,8 @@ 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) {
@@ -1734,13 +1803,15 @@ 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';
@@ -1752,16 +1823,19 @@ 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';
@@ -1770,7 +1844,8 @@ 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';
@@ -1812,7 +1887,8 @@ 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';
@@ -1824,10 +1900,12 @@ 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';
@@ -1917,13 +1995,15 @@ 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';
@@ -1935,7 +2015,8 @@ 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';
@@ -1947,7 +2028,8 @@ 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 queueEmpty => 'No downloads in queue';
@@ -1983,7 +2065,8 @@ 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';
@@ -2001,7 +2084,8 @@ 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';
@@ -2111,7 +2195,8 @@ 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...';
@@ -2158,13 +2243,16 @@ 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.';
@override
String get settingsLocalLibrary => 'Local Library';
@@ -2185,7 +2273,8 @@ class AppLocalizationsEn extends AppLocalizations {
String get libraryEnableLocalLibrary => 'Enable Local Library';
@override
String get libraryEnableLocalLibrarySubtitle => 'Scan and track your existing music';
String get libraryEnableLocalLibrarySubtitle =>
'Scan and track your existing music';
@override
String get libraryFolder => 'Library Folder';
@@ -2197,7 +2286,8 @@ class AppLocalizationsEn extends AppLocalizations {
String get libraryShowDuplicateIndicator => 'Show Duplicate Indicator';
@override
String get libraryShowDuplicateIndicatorSubtitle => 'Show when searching for existing tracks';
String get libraryShowDuplicateIndicatorSubtitle =>
'Show when searching for existing tracks';
@override
String get libraryActions => 'Actions';
@@ -2215,7 +2305,8 @@ class AppLocalizationsEn extends AppLocalizations {
String get libraryCleanupMissingFiles => 'Cleanup Missing Files';
@override
String get libraryCleanupMissingFilesSubtitle => 'Remove entries for files that no longer exist';
String get libraryCleanupMissingFilesSubtitle =>
'Remove entries for files that no longer exist';
@override
String get libraryClear => 'Clear Library';
@@ -2227,13 +2318,15 @@ class AppLocalizationsEn extends AppLocalizations {
String get libraryClearConfirmTitle => 'Clear Library';
@override
String get libraryClearConfirmMessage => 'This will remove all scanned tracks from your library. Your actual music files will not be deleted.';
String get libraryClearConfirmMessage =>
'This will remove all scanned tracks from your library. Your actual music files will not be deleted.';
@override
String get libraryAbout => 'About Local Library';
@override
String get libraryAboutDescription => 'Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.';
String get libraryAboutDescription =>
'Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.';
@override
String libraryTracksCount(int count) {
@@ -2271,7 +2364,8 @@ class AppLocalizationsEn extends AppLocalizations {
String get libraryStorageAccessRequired => 'Storage Access Required';
@override
String get libraryStorageAccessMessage => 'SpotiFLAC needs storage access to scan your music library. Please grant permission in settings.';
String get libraryStorageAccessMessage =>
'SpotiFLAC needs storage access to scan your music library. Please grant permission in settings.';
@override
String get libraryFolderNotExist => 'Selected folder does not exist';
File diff suppressed because it is too large Load Diff
+183 -89
View File
@@ -12,7 +12,8 @@ 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';
@@ -101,13 +102,15 @@ 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,7 +158,8 @@ 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';
@@ -167,7 +171,8 @@ 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';
@@ -224,7 +229,8 @@ 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) {
@@ -232,13 +238,15 @@ 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';
@@ -253,13 +261,15 @@ 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';
@@ -273,7 +283,8 @@ 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';
@@ -285,7 +296,8 @@ 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';
@@ -297,13 +309,15 @@ 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';
@@ -326,7 +340,8 @@ 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';
@@ -390,7 +405,8 @@ 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';
@@ -450,28 +466,34 @@ 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';
@@ -576,7 +598,8 @@ 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';
@@ -603,16 +626,19 @@ 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) {
@@ -631,7 +657,8 @@ 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';
@@ -640,13 +667,15 @@ 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';
@@ -655,10 +684,12 @@ 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';
@@ -685,7 +716,8 @@ 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!';
@@ -694,7 +726,8 @@ 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!';
@@ -703,7 +736,8 @@ 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';
@@ -715,7 +749,8 @@ 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';
@@ -733,7 +768,8 @@ 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';
@@ -742,10 +778,12 @@ 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';
@@ -763,10 +801,12 @@ 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';
@@ -817,7 +857,8 @@ 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';
@@ -835,7 +876,8 @@ 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?';
@@ -844,7 +886,8 @@ 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?';
@@ -858,7 +901,8 @@ 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';
@@ -902,6 +946,11 @@ class AppLocalizationsFr extends AppLocalizations {
return '\"$trackName\" already downloaded';
}
@override
String snackbarAlreadyInLibrary(String trackName) {
return '\"$trackName\" already exists in your library';
}
@override
String get snackbarHistoryCleared => 'History cleared';
@@ -953,7 +1002,8 @@ 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) {
@@ -975,7 +1025,8 @@ 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) {
@@ -1142,19 +1193,23 @@ 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';
@@ -1213,10 +1268,12 @@ 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';
@@ -1228,16 +1285,19 @@ 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';
@@ -1309,16 +1369,19 @@ 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';
@@ -1327,10 +1390,12 @@ 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) {
@@ -1356,7 +1421,8 @@ 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';
@@ -1410,7 +1476,8 @@ 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';
@@ -1422,7 +1489,8 @@ 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';
@@ -1582,7 +1650,8 @@ 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) {
@@ -1734,13 +1803,15 @@ 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';
@@ -1752,16 +1823,19 @@ 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';
@@ -1770,7 +1844,8 @@ 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';
@@ -1812,7 +1887,8 @@ 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';
@@ -1824,10 +1900,12 @@ 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';
@@ -1917,13 +1995,15 @@ 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';
@@ -1935,7 +2015,8 @@ 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';
@@ -1947,7 +2028,8 @@ 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 queueEmpty => 'No downloads in queue';
@@ -1983,7 +2065,8 @@ 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';
@@ -2001,7 +2084,8 @@ 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';
@@ -2111,7 +2195,8 @@ 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...';
@@ -2158,13 +2243,16 @@ 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.';
@override
String get settingsLocalLibrary => 'Local Library';
@@ -2185,7 +2273,8 @@ class AppLocalizationsFr extends AppLocalizations {
String get libraryEnableLocalLibrary => 'Enable Local Library';
@override
String get libraryEnableLocalLibrarySubtitle => 'Scan and track your existing music';
String get libraryEnableLocalLibrarySubtitle =>
'Scan and track your existing music';
@override
String get libraryFolder => 'Library Folder';
@@ -2197,7 +2286,8 @@ class AppLocalizationsFr extends AppLocalizations {
String get libraryShowDuplicateIndicator => 'Show Duplicate Indicator';
@override
String get libraryShowDuplicateIndicatorSubtitle => 'Show when searching for existing tracks';
String get libraryShowDuplicateIndicatorSubtitle =>
'Show when searching for existing tracks';
@override
String get libraryActions => 'Actions';
@@ -2215,7 +2305,8 @@ class AppLocalizationsFr extends AppLocalizations {
String get libraryCleanupMissingFiles => 'Cleanup Missing Files';
@override
String get libraryCleanupMissingFilesSubtitle => 'Remove entries for files that no longer exist';
String get libraryCleanupMissingFilesSubtitle =>
'Remove entries for files that no longer exist';
@override
String get libraryClear => 'Clear Library';
@@ -2227,13 +2318,15 @@ class AppLocalizationsFr extends AppLocalizations {
String get libraryClearConfirmTitle => 'Clear Library';
@override
String get libraryClearConfirmMessage => 'This will remove all scanned tracks from your library. Your actual music files will not be deleted.';
String get libraryClearConfirmMessage =>
'This will remove all scanned tracks from your library. Your actual music files will not be deleted.';
@override
String get libraryAbout => 'About Local Library';
@override
String get libraryAboutDescription => 'Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.';
String get libraryAboutDescription =>
'Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.';
@override
String libraryTracksCount(int count) {
@@ -2271,7 +2364,8 @@ class AppLocalizationsFr extends AppLocalizations {
String get libraryStorageAccessRequired => 'Storage Access Required';
@override
String get libraryStorageAccessMessage => 'SpotiFLAC needs storage access to scan your music library. Please grant permission in settings.';
String get libraryStorageAccessMessage =>
'SpotiFLAC needs storage access to scan your music library. Please grant permission in settings.';
@override
String get libraryFolderNotExist => 'Selected folder does not exist';
+183 -89
View File
@@ -12,7 +12,8 @@ class AppLocalizationsHi extends AppLocalizations {
String get appName => 'SpotiFlac';
@override
String get appDescription => 'स्पॉटीफाई ट्रैक डाउनलोड करें टाइडल, क्वाबज एवं एवं अमेजन म्यूजिक से उच्चतम क्वालिटी में।';
String get appDescription =>
'स्पॉटीफाई ट्रैक डाउनलोड करें टाइडल, क्वाबज एवं एवं अमेजन म्यूजिक से उच्चतम क्वालिटी में।';
@override
String get navHome => 'होम';
@@ -101,13 +102,15 @@ 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,7 +158,8 @@ 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';
@@ -167,7 +171,8 @@ 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';
@@ -224,7 +229,8 @@ 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) {
@@ -232,13 +238,15 @@ 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';
@@ -253,13 +261,15 @@ 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';
@@ -273,7 +283,8 @@ 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';
@@ -285,7 +296,8 @@ 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';
@@ -297,13 +309,15 @@ 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';
@@ -326,7 +340,8 @@ 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';
@@ -390,7 +405,8 @@ 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';
@@ -450,28 +466,34 @@ 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';
@@ -576,7 +598,8 @@ 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';
@@ -603,16 +626,19 @@ 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) {
@@ -631,7 +657,8 @@ 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';
@@ -640,13 +667,15 @@ 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';
@@ -655,10 +684,12 @@ 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';
@@ -685,7 +716,8 @@ 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!';
@@ -694,7 +726,8 @@ 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!';
@@ -703,7 +736,8 @@ 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';
@@ -715,7 +749,8 @@ 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';
@@ -733,7 +768,8 @@ 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';
@@ -742,10 +778,12 @@ 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';
@@ -763,10 +801,12 @@ 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';
@@ -817,7 +857,8 @@ 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';
@@ -835,7 +876,8 @@ 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?';
@@ -844,7 +886,8 @@ 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?';
@@ -858,7 +901,8 @@ 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';
@@ -902,6 +946,11 @@ class AppLocalizationsHi extends AppLocalizations {
return '\"$trackName\" already downloaded';
}
@override
String snackbarAlreadyInLibrary(String trackName) {
return '\"$trackName\" already exists in your library';
}
@override
String get snackbarHistoryCleared => 'History cleared';
@@ -953,7 +1002,8 @@ 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) {
@@ -975,7 +1025,8 @@ 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) {
@@ -1142,19 +1193,23 @@ 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';
@@ -1213,10 +1268,12 @@ 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';
@@ -1228,16 +1285,19 @@ 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';
@@ -1309,16 +1369,19 @@ 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';
@@ -1327,10 +1390,12 @@ 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) {
@@ -1356,7 +1421,8 @@ 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';
@@ -1410,7 +1476,8 @@ 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';
@@ -1422,7 +1489,8 @@ 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';
@@ -1582,7 +1650,8 @@ 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) {
@@ -1734,13 +1803,15 @@ 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';
@@ -1752,16 +1823,19 @@ 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';
@@ -1770,7 +1844,8 @@ 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';
@@ -1812,7 +1887,8 @@ 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';
@@ -1824,10 +1900,12 @@ 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';
@@ -1917,13 +1995,15 @@ 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';
@@ -1935,7 +2015,8 @@ 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';
@@ -1947,7 +2028,8 @@ 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 queueEmpty => 'No downloads in queue';
@@ -1983,7 +2065,8 @@ 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';
@@ -2001,7 +2084,8 @@ 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';
@@ -2111,7 +2195,8 @@ 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...';
@@ -2158,13 +2243,16 @@ 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.';
@override
String get settingsLocalLibrary => 'Local Library';
@@ -2185,7 +2273,8 @@ class AppLocalizationsHi extends AppLocalizations {
String get libraryEnableLocalLibrary => 'Enable Local Library';
@override
String get libraryEnableLocalLibrarySubtitle => 'Scan and track your existing music';
String get libraryEnableLocalLibrarySubtitle =>
'Scan and track your existing music';
@override
String get libraryFolder => 'Library Folder';
@@ -2197,7 +2286,8 @@ class AppLocalizationsHi extends AppLocalizations {
String get libraryShowDuplicateIndicator => 'Show Duplicate Indicator';
@override
String get libraryShowDuplicateIndicatorSubtitle => 'Show when searching for existing tracks';
String get libraryShowDuplicateIndicatorSubtitle =>
'Show when searching for existing tracks';
@override
String get libraryActions => 'Actions';
@@ -2215,7 +2305,8 @@ class AppLocalizationsHi extends AppLocalizations {
String get libraryCleanupMissingFiles => 'Cleanup Missing Files';
@override
String get libraryCleanupMissingFilesSubtitle => 'Remove entries for files that no longer exist';
String get libraryCleanupMissingFilesSubtitle =>
'Remove entries for files that no longer exist';
@override
String get libraryClear => 'Clear Library';
@@ -2227,13 +2318,15 @@ class AppLocalizationsHi extends AppLocalizations {
String get libraryClearConfirmTitle => 'Clear Library';
@override
String get libraryClearConfirmMessage => 'This will remove all scanned tracks from your library. Your actual music files will not be deleted.';
String get libraryClearConfirmMessage =>
'This will remove all scanned tracks from your library. Your actual music files will not be deleted.';
@override
String get libraryAbout => 'About Local Library';
@override
String get libraryAboutDescription => 'Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.';
String get libraryAboutDescription =>
'Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.';
@override
String libraryTracksCount(int count) {
@@ -2271,7 +2364,8 @@ class AppLocalizationsHi extends AppLocalizations {
String get libraryStorageAccessRequired => 'Storage Access Required';
@override
String get libraryStorageAccessMessage => 'SpotiFLAC needs storage access to scan your music library. Please grant permission in settings.';
String get libraryStorageAccessMessage =>
'SpotiFLAC needs storage access to scan your music library. Please grant permission in settings.';
@override
String get libraryFolderNotExist => 'Selected folder does not exist';
+209 -102
View File
@@ -12,7 +12,8 @@ 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';
@@ -95,19 +96,22 @@ 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...';
@@ -146,7 +150,8 @@ 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';
@@ -155,7 +160,8 @@ 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';
@@ -167,7 +173,8 @@ 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';
@@ -200,7 +207,8 @@ 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';
@@ -224,7 +232,8 @@ 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) {
@@ -232,34 +241,40 @@ 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';
@@ -273,7 +288,8 @@ 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';
@@ -297,7 +313,8 @@ 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';
@@ -323,10 +340,12 @@ 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';
@@ -390,7 +409,8 @@ 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';
@@ -417,7 +437,8 @@ 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';
@@ -450,28 +471,34 @@ 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';
@@ -576,7 +603,8 @@ 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';
@@ -603,16 +631,19 @@ 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) {
@@ -631,7 +662,8 @@ 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';
@@ -640,13 +672,15 @@ 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';
@@ -655,10 +689,12 @@ 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';
@@ -685,7 +721,8 @@ 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!';
@@ -694,7 +731,8 @@ 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!';
@@ -703,7 +741,8 @@ 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';
@@ -715,7 +754,8 @@ 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';
@@ -733,19 +773,23 @@ 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';
@@ -763,10 +807,12 @@ 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';
@@ -817,7 +863,8 @@ 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';
@@ -835,7 +882,8 @@ 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?';
@@ -844,7 +892,8 @@ 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?';
@@ -858,7 +907,8 @@ 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';
@@ -902,6 +952,11 @@ class AppLocalizationsId extends AppLocalizations {
return '\"$trackName\" sudah diunduh';
}
@override
String snackbarAlreadyInLibrary(String trackName) {
return '\"$trackName\" already exists in your library';
}
@override
String get snackbarHistoryCleared => 'Riwayat dihapus';
@@ -953,7 +1008,8 @@ 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) {
@@ -975,7 +1031,8 @@ 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) {
@@ -1142,19 +1199,23 @@ 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';
@@ -1207,16 +1268,19 @@ 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';
@@ -1228,16 +1292,19 @@ 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';
@@ -1282,7 +1349,8 @@ 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';
@@ -1303,22 +1371,27 @@ 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';
@@ -1327,10 +1400,12 @@ 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) {
@@ -1356,7 +1431,8 @@ 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';
@@ -1410,7 +1486,8 @@ 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';
@@ -1422,7 +1499,8 @@ 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';
@@ -1582,7 +1660,8 @@ 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) {
@@ -1734,13 +1813,15 @@ 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';
@@ -1749,28 +1830,34 @@ 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';
@@ -1812,7 +1899,8 @@ 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';
@@ -1824,10 +1912,12 @@ 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';
@@ -1863,7 +1953,8 @@ 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';
@@ -1917,13 +2008,15 @@ 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';
@@ -1935,7 +2028,8 @@ 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';
@@ -1947,7 +2041,8 @@ 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 queueEmpty => 'Tidak ada unduhan dalam antrian';
@@ -1983,7 +2078,8 @@ 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';
@@ -2001,7 +2097,8 @@ 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';
@@ -2111,7 +2208,8 @@ 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...';
@@ -2158,13 +2256,16 @@ 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.';
@override
String get settingsLocalLibrary => 'Local Library';
@@ -2185,7 +2286,8 @@ class AppLocalizationsId extends AppLocalizations {
String get libraryEnableLocalLibrary => 'Enable Local Library';
@override
String get libraryEnableLocalLibrarySubtitle => 'Scan and track your existing music';
String get libraryEnableLocalLibrarySubtitle =>
'Scan and track your existing music';
@override
String get libraryFolder => 'Library Folder';
@@ -2197,7 +2299,8 @@ class AppLocalizationsId extends AppLocalizations {
String get libraryShowDuplicateIndicator => 'Show Duplicate Indicator';
@override
String get libraryShowDuplicateIndicatorSubtitle => 'Show when searching for existing tracks';
String get libraryShowDuplicateIndicatorSubtitle =>
'Show when searching for existing tracks';
@override
String get libraryActions => 'Actions';
@@ -2215,7 +2318,8 @@ class AppLocalizationsId extends AppLocalizations {
String get libraryCleanupMissingFiles => 'Cleanup Missing Files';
@override
String get libraryCleanupMissingFilesSubtitle => 'Remove entries for files that no longer exist';
String get libraryCleanupMissingFilesSubtitle =>
'Remove entries for files that no longer exist';
@override
String get libraryClear => 'Clear Library';
@@ -2227,13 +2331,15 @@ class AppLocalizationsId extends AppLocalizations {
String get libraryClearConfirmTitle => 'Clear Library';
@override
String get libraryClearConfirmMessage => 'This will remove all scanned tracks from your library. Your actual music files will not be deleted.';
String get libraryClearConfirmMessage =>
'This will remove all scanned tracks from your library. Your actual music files will not be deleted.';
@override
String get libraryAbout => 'About Local Library';
@override
String get libraryAboutDescription => 'Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.';
String get libraryAboutDescription =>
'Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.';
@override
String libraryTracksCount(int count) {
@@ -2271,7 +2377,8 @@ class AppLocalizationsId extends AppLocalizations {
String get libraryStorageAccessRequired => 'Storage Access Required';
@override
String get libraryStorageAccessMessage => 'SpotiFLAC needs storage access to scan your music library. Please grant permission in settings.';
String get libraryStorageAccessMessage =>
'SpotiFLAC needs storage access to scan your music library. Please grant permission in settings.';
@override
String get libraryFolderNotExist => 'Selected folder does not exist';
+155 -75
View File
@@ -12,7 +12,8 @@ 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 => 'ホーム';
@@ -101,13 +102,15 @@ 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,7 +158,8 @@ 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 => 'ファイル名の形式';
@@ -167,7 +171,8 @@ 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 => 'おすすめ';
@@ -224,7 +229,8 @@ 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) {
@@ -232,13 +238,15 @@ 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 => '拡張のプロバイダーを使用する';
@@ -273,7 +281,8 @@ 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 => '拡張ストア';
@@ -285,7 +294,8 @@ 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 => '更新チャンネル';
@@ -297,7 +307,8 @@ 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 => 'ダウンロード履歴を消去';
@@ -326,7 +337,8 @@ 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 => '拡張';
@@ -450,28 +462,34 @@ 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 => 'アルバム';
@@ -603,16 +621,19 @@ 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) {
@@ -631,7 +652,8 @@ 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 => 'デフォルトを使用する';
@@ -640,13 +662,15 @@ 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 => 'ファイルから選択';
@@ -655,10 +679,12 @@ 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 でダウンロード';
@@ -685,7 +711,8 @@ class AppLocalizationsJa extends AppLocalizations {
String get setupStorageRequired => 'ストレージの権限が必要です';
@override
String get setupStorageDescription => 'SpotiFLAC はダウンロードした音楽ファイルを保存するためにストレージの権限が必要です。';
String get setupStorageDescription =>
'SpotiFLAC はダウンロードした音楽ファイルを保存するためにストレージの権限が必要です。';
@override
String get setupNotificationGranted => '通知の権限が許可されました!';
@@ -694,7 +721,8 @@ 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 => 'ダウンロードフォルダが選択済みです!';
@@ -703,7 +731,8 @@ 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 => 'フォルダを変更';
@@ -715,7 +744,8 @@ 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 を使用する';
@@ -733,7 +763,8 @@ class AppLocalizationsJa extends AppLocalizations {
String get setupEnterClientSecret => 'Spotify クライアントシークレットを入力';
@override
String get setupGetFreeCredentials => 'Spotify 開発者ダッシュボードから無料の API 認証情報を取得します。';
String get setupGetFreeCredentials =>
'Spotify 開発者ダッシュボードから無料の API 認証情報を取得します。';
@override
String get setupEnableNotifications => '通知を有効化する';
@@ -742,10 +773,12 @@ 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 => '今はスキップ';
@@ -763,10 +796,12 @@ 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 => 'キャンセル';
@@ -817,7 +852,8 @@ 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 => 'ダウンロードに失敗しました';
@@ -835,7 +871,8 @@ 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 => 'デバイスから削除しますか?';
@@ -844,7 +881,8 @@ 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 => '拡張をアンインストールしますか?';
@@ -858,7 +896,8 @@ 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 => '選択済みを削除';
@@ -902,6 +941,11 @@ class AppLocalizationsJa extends AppLocalizations {
return '$trackName」は既にダウンロードされています';
}
@override
String snackbarAlreadyInLibrary(String trackName) {
return '\"$trackName\" already exists in your library';
}
@override
String get snackbarHistoryCleared => '履歴を消去しました';
@@ -975,7 +1019,8 @@ 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) {
@@ -1148,13 +1193,16 @@ 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 => '更新が利用可能です';
@@ -1213,10 +1261,12 @@ 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 => '内蔵';
@@ -1228,16 +1278,19 @@ 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 => 'レート制限はありません';
@@ -1309,16 +1362,19 @@ 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 => '接続の問題が検出されました';
@@ -1327,10 +1383,12 @@ 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) {
@@ -1356,7 +1414,8 @@ 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';
@@ -1410,7 +1469,8 @@ 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';
@@ -1422,7 +1482,8 @@ 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 => '両方';
@@ -1582,7 +1643,8 @@ 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) {
@@ -1734,13 +1796,15 @@ 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 => '拡張のインストールが成功しました';
@@ -1812,7 +1876,8 @@ 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';
@@ -1824,7 +1889,8 @@ 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 => '実際の品質はサービスからのトラックの可用性に依存します';
@@ -1923,7 +1989,8 @@ 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';
@@ -1935,7 +2002,8 @@ 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';
@@ -1947,7 +2015,8 @@ 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 queueEmpty => 'キューにダウンロードがありません';
@@ -2001,7 +2070,8 @@ 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 => '選択済みを削除';
@@ -2111,7 +2181,8 @@ 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 => 'トラックを取得中です...';
@@ -2158,13 +2229,16 @@ 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.';
@override
String get settingsLocalLibrary => 'Local Library';
@@ -2185,7 +2259,8 @@ class AppLocalizationsJa extends AppLocalizations {
String get libraryEnableLocalLibrary => 'Enable Local Library';
@override
String get libraryEnableLocalLibrarySubtitle => 'Scan and track your existing music';
String get libraryEnableLocalLibrarySubtitle =>
'Scan and track your existing music';
@override
String get libraryFolder => 'Library Folder';
@@ -2197,7 +2272,8 @@ class AppLocalizationsJa extends AppLocalizations {
String get libraryShowDuplicateIndicator => 'Show Duplicate Indicator';
@override
String get libraryShowDuplicateIndicatorSubtitle => 'Show when searching for existing tracks';
String get libraryShowDuplicateIndicatorSubtitle =>
'Show when searching for existing tracks';
@override
String get libraryActions => 'Actions';
@@ -2215,7 +2291,8 @@ class AppLocalizationsJa extends AppLocalizations {
String get libraryCleanupMissingFiles => 'Cleanup Missing Files';
@override
String get libraryCleanupMissingFilesSubtitle => 'Remove entries for files that no longer exist';
String get libraryCleanupMissingFilesSubtitle =>
'Remove entries for files that no longer exist';
@override
String get libraryClear => 'Clear Library';
@@ -2227,13 +2304,15 @@ class AppLocalizationsJa extends AppLocalizations {
String get libraryClearConfirmTitle => 'Clear Library';
@override
String get libraryClearConfirmMessage => 'This will remove all scanned tracks from your library. Your actual music files will not be deleted.';
String get libraryClearConfirmMessage =>
'This will remove all scanned tracks from your library. Your actual music files will not be deleted.';
@override
String get libraryAbout => 'About Local Library';
@override
String get libraryAboutDescription => 'Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.';
String get libraryAboutDescription =>
'Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.';
@override
String libraryTracksCount(int count) {
@@ -2271,7 +2350,8 @@ class AppLocalizationsJa extends AppLocalizations {
String get libraryStorageAccessRequired => 'Storage Access Required';
@override
String get libraryStorageAccessMessage => 'SpotiFLAC needs storage access to scan your music library. Please grant permission in settings.';
String get libraryStorageAccessMessage =>
'SpotiFLAC needs storage access to scan your music library. Please grant permission in settings.';
@override
String get libraryFolderNotExist => 'Selected folder does not exist';
+183 -89
View File
@@ -12,7 +12,8 @@ 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';
@@ -101,13 +102,15 @@ 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,7 +158,8 @@ 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';
@@ -167,7 +171,8 @@ 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';
@@ -224,7 +229,8 @@ 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) {
@@ -232,13 +238,15 @@ 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';
@@ -253,13 +261,15 @@ 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';
@@ -273,7 +283,8 @@ 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';
@@ -285,7 +296,8 @@ 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';
@@ -297,13 +309,15 @@ 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';
@@ -326,7 +340,8 @@ 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';
@@ -390,7 +405,8 @@ 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';
@@ -450,28 +466,34 @@ 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';
@@ -576,7 +598,8 @@ 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';
@@ -603,16 +626,19 @@ 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) {
@@ -631,7 +657,8 @@ 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';
@@ -640,13 +667,15 @@ 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';
@@ -655,10 +684,12 @@ 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';
@@ -685,7 +716,8 @@ 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!';
@@ -694,7 +726,8 @@ 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!';
@@ -703,7 +736,8 @@ 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';
@@ -715,7 +749,8 @@ 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';
@@ -733,7 +768,8 @@ 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';
@@ -742,10 +778,12 @@ 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';
@@ -763,10 +801,12 @@ 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';
@@ -817,7 +857,8 @@ 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';
@@ -835,7 +876,8 @@ 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?';
@@ -844,7 +886,8 @@ 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?';
@@ -858,7 +901,8 @@ 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';
@@ -902,6 +946,11 @@ class AppLocalizationsKo extends AppLocalizations {
return '\"$trackName\" already downloaded';
}
@override
String snackbarAlreadyInLibrary(String trackName) {
return '\"$trackName\" already exists in your library';
}
@override
String get snackbarHistoryCleared => 'History cleared';
@@ -953,7 +1002,8 @@ 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) {
@@ -975,7 +1025,8 @@ 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) {
@@ -1142,19 +1193,23 @@ 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';
@@ -1213,10 +1268,12 @@ 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';
@@ -1228,16 +1285,19 @@ 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';
@@ -1309,16 +1369,19 @@ 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';
@@ -1327,10 +1390,12 @@ 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) {
@@ -1356,7 +1421,8 @@ 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';
@@ -1410,7 +1476,8 @@ 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';
@@ -1422,7 +1489,8 @@ 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';
@@ -1582,7 +1650,8 @@ 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) {
@@ -1734,13 +1803,15 @@ 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';
@@ -1752,16 +1823,19 @@ 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';
@@ -1770,7 +1844,8 @@ 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';
@@ -1812,7 +1887,8 @@ 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';
@@ -1824,10 +1900,12 @@ 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';
@@ -1917,13 +1995,15 @@ 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';
@@ -1935,7 +2015,8 @@ 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';
@@ -1947,7 +2028,8 @@ 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 queueEmpty => 'No downloads in queue';
@@ -1983,7 +2065,8 @@ 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';
@@ -2001,7 +2084,8 @@ 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';
@@ -2111,7 +2195,8 @@ 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...';
@@ -2158,13 +2243,16 @@ 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.';
@override
String get settingsLocalLibrary => 'Local Library';
@@ -2185,7 +2273,8 @@ class AppLocalizationsKo extends AppLocalizations {
String get libraryEnableLocalLibrary => 'Enable Local Library';
@override
String get libraryEnableLocalLibrarySubtitle => 'Scan and track your existing music';
String get libraryEnableLocalLibrarySubtitle =>
'Scan and track your existing music';
@override
String get libraryFolder => 'Library Folder';
@@ -2197,7 +2286,8 @@ class AppLocalizationsKo extends AppLocalizations {
String get libraryShowDuplicateIndicator => 'Show Duplicate Indicator';
@override
String get libraryShowDuplicateIndicatorSubtitle => 'Show when searching for existing tracks';
String get libraryShowDuplicateIndicatorSubtitle =>
'Show when searching for existing tracks';
@override
String get libraryActions => 'Actions';
@@ -2215,7 +2305,8 @@ class AppLocalizationsKo extends AppLocalizations {
String get libraryCleanupMissingFiles => 'Cleanup Missing Files';
@override
String get libraryCleanupMissingFilesSubtitle => 'Remove entries for files that no longer exist';
String get libraryCleanupMissingFilesSubtitle =>
'Remove entries for files that no longer exist';
@override
String get libraryClear => 'Clear Library';
@@ -2227,13 +2318,15 @@ class AppLocalizationsKo extends AppLocalizations {
String get libraryClearConfirmTitle => 'Clear Library';
@override
String get libraryClearConfirmMessage => 'This will remove all scanned tracks from your library. Your actual music files will not be deleted.';
String get libraryClearConfirmMessage =>
'This will remove all scanned tracks from your library. Your actual music files will not be deleted.';
@override
String get libraryAbout => 'About Local Library';
@override
String get libraryAboutDescription => 'Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.';
String get libraryAboutDescription =>
'Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.';
@override
String libraryTracksCount(int count) {
@@ -2271,7 +2364,8 @@ class AppLocalizationsKo extends AppLocalizations {
String get libraryStorageAccessRequired => 'Storage Access Required';
@override
String get libraryStorageAccessMessage => 'SpotiFLAC needs storage access to scan your music library. Please grant permission in settings.';
String get libraryStorageAccessMessage =>
'SpotiFLAC needs storage access to scan your music library. Please grant permission in settings.';
@override
String get libraryFolderNotExist => 'Selected folder does not exist';
+183 -89
View File
@@ -12,7 +12,8 @@ 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';
@@ -101,13 +102,15 @@ 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,7 +158,8 @@ 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';
@@ -167,7 +171,8 @@ 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';
@@ -224,7 +229,8 @@ 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) {
@@ -232,13 +238,15 @@ 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';
@@ -253,13 +261,15 @@ 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';
@@ -273,7 +283,8 @@ 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';
@@ -285,7 +296,8 @@ 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';
@@ -297,13 +309,15 @@ 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';
@@ -326,7 +340,8 @@ 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';
@@ -390,7 +405,8 @@ 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';
@@ -450,28 +466,34 @@ 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';
@@ -576,7 +598,8 @@ 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';
@@ -603,16 +626,19 @@ 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) {
@@ -631,7 +657,8 @@ 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';
@@ -640,13 +667,15 @@ 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';
@@ -655,10 +684,12 @@ 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';
@@ -685,7 +716,8 @@ 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!';
@@ -694,7 +726,8 @@ 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!';
@@ -703,7 +736,8 @@ 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';
@@ -715,7 +749,8 @@ 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';
@@ -733,7 +768,8 @@ 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';
@@ -742,10 +778,12 @@ 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';
@@ -763,10 +801,12 @@ 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';
@@ -817,7 +857,8 @@ 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';
@@ -835,7 +876,8 @@ 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?';
@@ -844,7 +886,8 @@ 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?';
@@ -858,7 +901,8 @@ 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';
@@ -902,6 +946,11 @@ class AppLocalizationsNl extends AppLocalizations {
return '\"$trackName\" already downloaded';
}
@override
String snackbarAlreadyInLibrary(String trackName) {
return '\"$trackName\" already exists in your library';
}
@override
String get snackbarHistoryCleared => 'History cleared';
@@ -953,7 +1002,8 @@ 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) {
@@ -975,7 +1025,8 @@ 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) {
@@ -1142,19 +1193,23 @@ 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';
@@ -1213,10 +1268,12 @@ 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';
@@ -1228,16 +1285,19 @@ 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';
@@ -1309,16 +1369,19 @@ 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';
@@ -1327,10 +1390,12 @@ 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) {
@@ -1356,7 +1421,8 @@ 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';
@@ -1410,7 +1476,8 @@ 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';
@@ -1422,7 +1489,8 @@ 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';
@@ -1582,7 +1650,8 @@ 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) {
@@ -1734,13 +1803,15 @@ 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';
@@ -1752,16 +1823,19 @@ 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';
@@ -1770,7 +1844,8 @@ 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';
@@ -1812,7 +1887,8 @@ 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';
@@ -1824,10 +1900,12 @@ 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';
@@ -1917,13 +1995,15 @@ 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';
@@ -1935,7 +2015,8 @@ 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';
@@ -1947,7 +2028,8 @@ 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 queueEmpty => 'No downloads in queue';
@@ -1983,7 +2065,8 @@ 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';
@@ -2001,7 +2084,8 @@ 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';
@@ -2111,7 +2195,8 @@ 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...';
@@ -2158,13 +2243,16 @@ 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.';
@override
String get settingsLocalLibrary => 'Local Library';
@@ -2185,7 +2273,8 @@ class AppLocalizationsNl extends AppLocalizations {
String get libraryEnableLocalLibrary => 'Enable Local Library';
@override
String get libraryEnableLocalLibrarySubtitle => 'Scan and track your existing music';
String get libraryEnableLocalLibrarySubtitle =>
'Scan and track your existing music';
@override
String get libraryFolder => 'Library Folder';
@@ -2197,7 +2286,8 @@ class AppLocalizationsNl extends AppLocalizations {
String get libraryShowDuplicateIndicator => 'Show Duplicate Indicator';
@override
String get libraryShowDuplicateIndicatorSubtitle => 'Show when searching for existing tracks';
String get libraryShowDuplicateIndicatorSubtitle =>
'Show when searching for existing tracks';
@override
String get libraryActions => 'Actions';
@@ -2215,7 +2305,8 @@ class AppLocalizationsNl extends AppLocalizations {
String get libraryCleanupMissingFiles => 'Cleanup Missing Files';
@override
String get libraryCleanupMissingFilesSubtitle => 'Remove entries for files that no longer exist';
String get libraryCleanupMissingFilesSubtitle =>
'Remove entries for files that no longer exist';
@override
String get libraryClear => 'Clear Library';
@@ -2227,13 +2318,15 @@ class AppLocalizationsNl extends AppLocalizations {
String get libraryClearConfirmTitle => 'Clear Library';
@override
String get libraryClearConfirmMessage => 'This will remove all scanned tracks from your library. Your actual music files will not be deleted.';
String get libraryClearConfirmMessage =>
'This will remove all scanned tracks from your library. Your actual music files will not be deleted.';
@override
String get libraryAbout => 'About Local Library';
@override
String get libraryAboutDescription => 'Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.';
String get libraryAboutDescription =>
'Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.';
@override
String libraryTracksCount(int count) {
@@ -2271,7 +2364,8 @@ class AppLocalizationsNl extends AppLocalizations {
String get libraryStorageAccessRequired => 'Storage Access Required';
@override
String get libraryStorageAccessMessage => 'SpotiFLAC needs storage access to scan your music library. Please grant permission in settings.';
String get libraryStorageAccessMessage =>
'SpotiFLAC needs storage access to scan your music library. Please grant permission in settings.';
@override
String get libraryFolderNotExist => 'Selected folder does not exist';
File diff suppressed because it is too large Load Diff
+235 -115
View File
@@ -12,7 +12,8 @@ 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 => 'Главная';
@@ -44,7 +45,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get homeSubtitle => 'Вставьте ссылку Spotify или ищите по названию';
@override
String get homeSupports => 'Поддерживается: Трек, Альбом, Плейлист, URL исполнителя';
String get homeSupports =>
'Поддерживается: Трек, Альбом, Плейлист, URL исполнителя';
@override
String get homeRecent => 'Недавние';
@@ -105,13 +107,15 @@ 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 => 'Поиск в истории...';
@@ -150,7 +154,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get downloadDefaultService => 'Сервис по умолчанию';
@override
String get downloadDefaultServiceSubtitle => 'Сервис, используемый для скачивания';
String get downloadDefaultServiceSubtitle =>
'Сервис, используемый для скачивания';
@override
String get downloadDefaultQuality => 'Качество по умолчанию';
@@ -159,7 +164,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get downloadAskQuality => 'Спрашивать качество перед скачиванием';
@override
String get downloadAskQualitySubtitle => 'Показывать выбор качества для каждого скачивания';
String get downloadAskQualitySubtitle =>
'Показывать выбор качества для каждого скачивания';
@override
String get downloadFilenameFormat => 'Формат имени файла';
@@ -171,7 +177,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get downloadSeparateSingles => 'Разделять синглы';
@override
String get downloadSeparateSinglesSubtitle => 'Помещать синглы в отдельную папку';
String get downloadSeparateSinglesSubtitle =>
'Помещать синглы в отдельную папку';
@override
String get qualityBest => 'Лучшее из доступных';
@@ -204,7 +211,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get appearanceDynamicColor => 'Динамический цвет';
@override
String get appearanceDynamicColorSubtitle => 'Использовать цвета из ваших обоев';
String get appearanceDynamicColorSubtitle =>
'Использовать цвета из ваших обоев';
@override
String get appearanceAccentColor => 'Акцентный цвет';
@@ -228,7 +236,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get optionsPrimaryProvider => 'Основной провайдер';
@override
String get optionsPrimaryProviderSubtitle => 'Сервис, используемый при поиске по названию трека.';
String get optionsPrimaryProviderSubtitle =>
'Сервис, используемый при поиске по названию трека.';
@override
String optionsUsingExtension(String extensionName) {
@@ -236,34 +245,41 @@ 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 => 'Одновременные загрузки';
@@ -277,13 +293,15 @@ 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 => 'Проверить обновления';
@@ -301,13 +319,15 @@ 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 => 'Подробный лог';
@@ -327,10 +347,12 @@ 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 => 'Расширения';
@@ -342,7 +364,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get extensionsNone => 'Нет установленных расширений';
@override
String get extensionsNoneSubtitle => 'Установка расширений из вкладки Магазин';
String get extensionsNoneSubtitle =>
'Установка расширений из вкладки Магазин';
@override
String get extensionsEnabled => 'Включено';
@@ -394,7 +417,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get aboutOriginalCreator => 'Создатель оригинального SpotiFLAC';
@override
String get aboutLogoArtist => 'Талантливый художник, который создал наш красивый логотип приложения!';
String get aboutLogoArtist =>
'Талантливый художник, который создал наш красивый логотип приложения!';
@override
String get aboutTranslators => 'Переводчики';
@@ -421,7 +445,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get aboutFeatureRequest => 'Предложить новую функцию';
@override
String get aboutFeatureRequestSubtitle => 'Предложить новые функции для приложения';
String get aboutFeatureRequestSubtitle =>
'Предложить новые функции для приложения';
@override
String get aboutTelegramChannel => 'Telegram канал';
@@ -454,28 +479,34 @@ 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 => 'Альбом';
@@ -584,7 +615,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get setupStoragePermission => 'Доступ к хранилищу';
@override
String get setupStoragePermissionSubtitle => 'Необходимо для сохранения загруженных файлов';
String get setupStoragePermissionSubtitle =>
'Необходимо для сохранения загруженных файлов';
@override
String get setupStoragePermissionGranted => 'Разрешение предоставлено';
@@ -611,16 +643,19 @@ 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) {
@@ -639,7 +674,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get setupUseDefaultFolder => 'Использовать папку по умолчанию?';
@override
String get setupNoFolderSelected => 'Папка не выбрана. Хотите использовать папку Музыка по умолчанию?';
String get setupNoFolderSelected =>
'Папка не выбрана. Хотите использовать папку Музыка по умолчанию?';
@override
String get setupUseDefault => 'По умолчанию';
@@ -648,25 +684,30 @@ 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';
@@ -693,16 +734,19 @@ 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 => 'Папка для загрузки выбрана!';
@@ -711,7 +755,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get setupFolderChoose => 'Выбрать папку для скачивания';
@override
String get setupFolderDescription => 'Выберите папку, в которой будет сохраняться скачанная музыка.';
String get setupFolderDescription =>
'Выберите папку, в которой будет сохраняться скачанная музыка.';
@override
String get setupChangeFolder => 'Сменить папку';
@@ -723,7 +768,8 @@ 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';
@@ -741,19 +787,23 @@ 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 => 'Пропустить';
@@ -771,10 +821,12 @@ 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 => 'Отмена';
@@ -825,7 +877,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get dialogDiscardChanges => 'Отменить изменения?';
@override
String get dialogUnsavedChanges => 'Есть несохраненные изменения. Отменить их?';
String get dialogUnsavedChanges =>
'Есть несохраненные изменения. Отменить их?';
@override
String get dialogDownloadFailed => 'Ошибка скачивания';
@@ -843,7 +896,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get dialogClearAll => 'Очистить всё';
@override
String get dialogClearAllDownloads => 'Вы уверены, что хотите очистить все загрузки?';
String get dialogClearAllDownloads =>
'Вы уверены, что хотите очистить все загрузки?';
@override
String get dialogRemoveFromDevice => 'Удалить с устройства?';
@@ -852,7 +906,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get dialogRemoveExtension => 'Удалить расширение';
@override
String get dialogRemoveExtensionMessage => 'Вы уверены, что хотите удалить это расширение? Это действие не может быть отменено.';
String get dialogRemoveExtensionMessage =>
'Вы уверены, что хотите удалить это расширение? Это действие не может быть отменено.';
@override
String get dialogUninstallExtension => 'Удалить расширение?';
@@ -866,7 +921,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get dialogClearHistoryTitle => 'Очистить историю';
@override
String get dialogClearHistoryMessage => 'Вы уверены, что хотите удалить всю историю загрузок? Это действие необратимо.';
String get dialogClearHistoryMessage =>
'Вы уверены, что хотите удалить всю историю загрузок? Это действие необратимо.';
@override
String get dialogDeleteSelectedTitle => 'Удалить выбранные';
@@ -912,6 +968,11 @@ class AppLocalizationsRu extends AppLocalizations {
return '\"$trackName\" уже скачан';
}
@override
String snackbarAlreadyInLibrary(String trackName) {
return '\"$trackName\" already exists in your library';
}
@override
String get snackbarHistoryCleared => 'История очищена';
@@ -959,13 +1020,15 @@ 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) {
@@ -987,7 +1050,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get errorRateLimited => 'Слишком много запросов';
@override
String get errorRateLimitedMessage => 'Слишком много запросов. Пожалуйста, подождите минуту перед повторным поиском.';
String get errorRateLimitedMessage =>
'Слишком много запросов. Пожалуйста, подождите минуту перед повторным поиском.';
@override
String errorFailedToLoad(String item) {
@@ -1156,19 +1220,23 @@ 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 => 'Доступно обновление';
@@ -1227,10 +1295,12 @@ 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 => 'Встроенные';
@@ -1242,16 +1312,19 @@ 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 => 'Без ограничений по скорости';
@@ -1317,22 +1390,26 @@ 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 => 'Обнаружены проблемы с подключением';
@@ -1341,10 +1418,12 @@ 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) {
@@ -1370,7 +1449,8 @@ 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';
@@ -1424,7 +1504,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get lyricsMode => 'Режим текстов песен';
@override
String get lyricsModeDescription => 'Выберите как сохранить тексты песен при скачивании';
String get lyricsModeDescription =>
'Выберите как сохранить тексты песен при скачивании';
@override
String get lyricsModeEmbed => 'Вставить в файл';
@@ -1436,7 +1517,8 @@ 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 => 'Оба варианта';
@@ -1466,10 +1548,12 @@ 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 => 'Управление провайдерами скачивания';
@@ -1574,10 +1658,12 @@ 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 => 'Не удалось загрузить текст песни';
@@ -1598,7 +1684,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get trackDeleteConfirmTitle => 'Удалить с устройства?';
@override
String get trackDeleteConfirmMessage => 'Это приведет к окончательному удалению загруженного файла и его удалению из истории.';
String get trackDeleteConfirmMessage =>
'Это приведет к окончательному удалению загруженного файла и его удалению из истории.';
@override
String trackCannotOpen(String message) {
@@ -1672,7 +1759,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get extensionDefaultProvider => 'По умолчанию (Deezer/Spotify)';
@override
String get extensionDefaultProviderSubtitle => 'Использовать встроенный поиск';
String get extensionDefaultProviderSubtitle =>
'Использовать встроенный поиск';
@override
String get extensionAuthor => 'Автор';
@@ -1720,7 +1808,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get extensionMinAppVersion => 'Мин. версия приложения';
@override
String get extensionCustomTrackMatching => 'Соответствие пользовательских треков';
String get extensionCustomTrackMatching =>
'Соответствие пользовательских треков';
@override
String get extensionPostProcessing => 'Постобработка';
@@ -1750,13 +1839,15 @@ 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 => 'Расширение успешно установлено';
@@ -1765,28 +1856,34 @@ 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 => 'Пользовательский поиск';
@@ -1828,7 +1925,8 @@ 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';
@@ -1840,10 +1938,12 @@ 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 => 'Спрашивать перед скачиванием';
@@ -1879,7 +1979,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get folderNone => 'Отсутствует';
@override
String get folderNoneSubtitle => 'Сохранить все файлы непосредственно в папку загрузки';
String get folderNoneSubtitle =>
'Сохранить все файлы непосредственно в папку загрузки';
@override
String get folderArtist => 'Исполнитель';
@@ -1933,13 +2034,15 @@ 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';
@@ -1951,7 +2054,8 @@ 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';
@@ -1963,7 +2067,8 @@ 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 queueEmpty => 'Нет загрузок в очереди';
@@ -1993,13 +2098,15 @@ 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 => 'Только альбом';
@@ -2011,13 +2118,15 @@ 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 => 'Удалить выбранные';
@@ -2131,7 +2240,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get discographySelectAlbums => 'Выбрать альбомы...';
@override
String get discographySelectAlbumsSubtitle => 'Выберите конкретные альбомы или синглы';
String get discographySelectAlbumsSubtitle =>
'Выберите конкретные альбомы или синглы';
@override
String get discographyFetchingTracks => 'Получение треков...';
@@ -2163,7 +2273,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get discographyNoAlbums => 'Нет доступных альбомов';
@override
String get discographyFailedToFetch => 'Не удалось получить некоторые альбомы';
String get discographyFailedToFetch =>
'Не удалось получить некоторые альбомы';
@override
String get sectionStorageAccess => 'Storage Access';
@@ -2178,13 +2289,16 @@ 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.';
@override
String get settingsLocalLibrary => 'Local Library';
@@ -2205,7 +2319,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get libraryEnableLocalLibrary => 'Enable Local Library';
@override
String get libraryEnableLocalLibrarySubtitle => 'Scan and track your existing music';
String get libraryEnableLocalLibrarySubtitle =>
'Scan and track your existing music';
@override
String get libraryFolder => 'Library Folder';
@@ -2217,7 +2332,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get libraryShowDuplicateIndicator => 'Show Duplicate Indicator';
@override
String get libraryShowDuplicateIndicatorSubtitle => 'Show when searching for existing tracks';
String get libraryShowDuplicateIndicatorSubtitle =>
'Show when searching for existing tracks';
@override
String get libraryActions => 'Actions';
@@ -2235,7 +2351,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get libraryCleanupMissingFiles => 'Cleanup Missing Files';
@override
String get libraryCleanupMissingFilesSubtitle => 'Remove entries for files that no longer exist';
String get libraryCleanupMissingFilesSubtitle =>
'Remove entries for files that no longer exist';
@override
String get libraryClear => 'Clear Library';
@@ -2247,13 +2364,15 @@ class AppLocalizationsRu extends AppLocalizations {
String get libraryClearConfirmTitle => 'Clear Library';
@override
String get libraryClearConfirmMessage => 'This will remove all scanned tracks from your library. Your actual music files will not be deleted.';
String get libraryClearConfirmMessage =>
'This will remove all scanned tracks from your library. Your actual music files will not be deleted.';
@override
String get libraryAbout => 'About Local Library';
@override
String get libraryAboutDescription => 'Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.';
String get libraryAboutDescription =>
'Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.';
@override
String libraryTracksCount(int count) {
@@ -2291,7 +2410,8 @@ class AppLocalizationsRu extends AppLocalizations {
String get libraryStorageAccessRequired => 'Storage Access Required';
@override
String get libraryStorageAccessMessage => 'SpotiFLAC needs storage access to scan your music library. Please grant permission in settings.';
String get libraryStorageAccessMessage =>
'SpotiFLAC needs storage access to scan your music library. Please grant permission in settings.';
@override
String get libraryFolderNotExist => 'Selected folder does not exist';
+213 -104
View File
@@ -12,7 +12,8 @@ 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';
@@ -44,7 +45,8 @@ 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';
@@ -95,13 +97,15 @@ 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ş';
@@ -137,7 +141,8 @@ 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';
@@ -146,7 +151,8 @@ 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';
@@ -155,7 +161,8 @@ 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ı';
@@ -167,7 +174,8 @@ 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';
@@ -200,7 +208,8 @@ 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';
@@ -224,7 +233,8 @@ 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) {
@@ -232,13 +242,15 @@ 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';
@@ -247,19 +259,22 @@ 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';
@@ -273,7 +288,8 @@ 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ı';
@@ -297,13 +313,15 @@ 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';
@@ -323,10 +341,12 @@ 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';
@@ -390,7 +410,8 @@ 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';
@@ -411,13 +432,15 @@ 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ı';
@@ -450,28 +473,34 @@ 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';
@@ -576,7 +605,8 @@ 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';
@@ -603,16 +633,19 @@ 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ı';
@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) {
@@ -631,7 +664,8 @@ 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';
@@ -640,13 +674,15 @@ 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ç';
@@ -655,10 +691,12 @@ 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';
@@ -685,7 +723,8 @@ 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!';
@@ -694,7 +733,8 @@ 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!';
@@ -703,7 +743,8 @@ 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';
@@ -715,7 +756,8 @@ 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';
@@ -733,7 +775,8 @@ 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';
@@ -742,10 +785,12 @@ 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';
@@ -763,10 +808,12 @@ 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';
@@ -817,7 +864,8 @@ 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';
@@ -835,7 +883,8 @@ 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?';
@@ -844,7 +893,8 @@ 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?';
@@ -858,7 +908,8 @@ 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';
@@ -902,6 +953,11 @@ class AppLocalizationsTr extends AppLocalizations {
return '\"$trackName\" zaten indirilmiş';
}
@override
String snackbarAlreadyInLibrary(String trackName) {
return '\"$trackName\" already exists in your library';
}
@override
String get snackbarHistoryCleared => 'Geçmiş temizlendi';
@@ -953,7 +1009,8 @@ 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) {
@@ -975,7 +1032,8 @@ 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) {
@@ -1142,19 +1200,23 @@ 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';
@@ -1207,16 +1269,19 @@ 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';
@@ -1228,16 +1293,19 @@ 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';
@@ -1282,7 +1350,8 @@ 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';
@@ -1303,22 +1372,26 @@ 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';
@@ -1327,10 +1400,12 @@ 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) {
@@ -1356,7 +1431,8 @@ 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';
@@ -1410,19 +1486,22 @@ 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';
@@ -1455,13 +1534,15 @@ 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...';
@@ -1561,7 +1642,8 @@ 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';
@@ -1582,7 +1664,8 @@ 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) {
@@ -1734,13 +1817,15 @@ 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';
@@ -1749,19 +1834,23 @@ 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ı';
@@ -1770,7 +1859,8 @@ 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';
@@ -1812,7 +1902,8 @@ 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';
@@ -1824,10 +1915,12 @@ 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';
@@ -1917,13 +2010,15 @@ 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';
@@ -1935,7 +2030,8 @@ 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';
@@ -1947,7 +2043,8 @@ 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 queueEmpty => 'No downloads in queue';
@@ -1983,7 +2080,8 @@ 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';
@@ -2001,7 +2099,8 @@ 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';
@@ -2111,7 +2210,8 @@ 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...';
@@ -2158,13 +2258,16 @@ 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.';
@override
String get settingsLocalLibrary => 'Local Library';
@@ -2185,7 +2288,8 @@ class AppLocalizationsTr extends AppLocalizations {
String get libraryEnableLocalLibrary => 'Enable Local Library';
@override
String get libraryEnableLocalLibrarySubtitle => 'Scan and track your existing music';
String get libraryEnableLocalLibrarySubtitle =>
'Scan and track your existing music';
@override
String get libraryFolder => 'Library Folder';
@@ -2197,7 +2301,8 @@ class AppLocalizationsTr extends AppLocalizations {
String get libraryShowDuplicateIndicator => 'Show Duplicate Indicator';
@override
String get libraryShowDuplicateIndicatorSubtitle => 'Show when searching for existing tracks';
String get libraryShowDuplicateIndicatorSubtitle =>
'Show when searching for existing tracks';
@override
String get libraryActions => 'Actions';
@@ -2215,7 +2320,8 @@ class AppLocalizationsTr extends AppLocalizations {
String get libraryCleanupMissingFiles => 'Cleanup Missing Files';
@override
String get libraryCleanupMissingFilesSubtitle => 'Remove entries for files that no longer exist';
String get libraryCleanupMissingFilesSubtitle =>
'Remove entries for files that no longer exist';
@override
String get libraryClear => 'Clear Library';
@@ -2227,13 +2333,15 @@ class AppLocalizationsTr extends AppLocalizations {
String get libraryClearConfirmTitle => 'Clear Library';
@override
String get libraryClearConfirmMessage => 'This will remove all scanned tracks from your library. Your actual music files will not be deleted.';
String get libraryClearConfirmMessage =>
'This will remove all scanned tracks from your library. Your actual music files will not be deleted.';
@override
String get libraryAbout => 'About Local Library';
@override
String get libraryAboutDescription => 'Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.';
String get libraryAboutDescription =>
'Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.';
@override
String libraryTracksCount(int count) {
@@ -2271,7 +2379,8 @@ class AppLocalizationsTr extends AppLocalizations {
String get libraryStorageAccessRequired => 'Storage Access Required';
@override
String get libraryStorageAccessMessage => 'SpotiFLAC needs storage access to scan your music library. Please grant permission in settings.';
String get libraryStorageAccessMessage =>
'SpotiFLAC needs storage access to scan your music library. Please grant permission in settings.';
@override
String get libraryFolderNotExist => 'Selected folder does not exist';
File diff suppressed because it is too large Load Diff
+7
View File
@@ -672,6 +672,13 @@
"trackName": {"type": "String"}
}
},
"snackbarAlreadyInLibrary": "\"{trackName}\" already exists in your library",
"@snackbarAlreadyInLibrary": {
"description": "Snackbar - track already exists in local library",
"placeholders": {
"trackName": {"type": "String"}
}
},
"snackbarHistoryCleared": "History cleared",
"@snackbarHistoryCleared": {"description": "Snackbar - history deleted"},
"snackbarCredentialsSaved": "Credentials saved",
+49 -5
View File
@@ -10,6 +10,7 @@ import 'package:spotiflac_android/models/download_item.dart';
import 'package:spotiflac_android/providers/download_queue_provider.dart';
import 'package:spotiflac_android/providers/settings_provider.dart';
import 'package:spotiflac_android/providers/recent_access_provider.dart';
import 'package:spotiflac_android/providers/local_library_provider.dart';
import 'package:spotiflac_android/services/platform_bridge.dart';
import 'package:spotiflac_android/widgets/download_service_picker.dart';
import 'package:spotiflac_android/screens/artist_screen.dart';
@@ -620,6 +621,18 @@ class _AlbumTrackItem extends ConsumerWidget {
return state.isDownloaded(track.id);
}));
// Check local library for duplicate detection
final settings = ref.watch(settingsProvider);
final showLocalLibraryIndicator = settings.localLibraryEnabled && settings.localLibraryShowDuplicates;
final isInLocalLibrary = showLocalLibraryIndicator
? ref.watch(localLibraryProvider.select((state) =>
state.existsInLibrary(
isrc: track.isrc,
trackName: track.name,
artistName: track.artistName,
)))
: false;
final isQueued = queueItem != null;
final isDownloading = queueItem?.status == DownloadStatus.downloading;
final isFinalizing = queueItem?.status == DownloadStatus.finalizing;
@@ -649,17 +662,47 @@ child: ListTile(
),
),
title: Text(track.name, maxLines: 1, overflow: TextOverflow.ellipsis, style: Theme.of(context).textTheme.bodyLarge?.copyWith(fontWeight: FontWeight.w500)),
subtitle: Text(track.artistName, maxLines: 1, overflow: TextOverflow.ellipsis, style: TextStyle(color: colorScheme.onSurfaceVariant)),
trailing: _buildDownloadButton(context, ref, colorScheme, isQueued: isQueued, isDownloading: isDownloading, isFinalizing: isFinalizing, showAsDownloaded: showAsDownloaded, isInHistory: isInHistory, progress: progress),
onTap: () => _handleTap(context, ref, isQueued: isQueued, isInHistory: isInHistory),
subtitle: Row(
children: [
Flexible(child: Text(track.artistName, maxLines: 1, overflow: TextOverflow.ellipsis, style: TextStyle(color: colorScheme.onSurfaceVariant))),
if (isInLocalLibrary) ...[
const SizedBox(width: 6),
Container(
padding: const EdgeInsets.symmetric(horizontal: 6, vertical: 2),
decoration: BoxDecoration(
color: colorScheme.tertiaryContainer,
borderRadius: BorderRadius.circular(4),
),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
Icon(Icons.folder_outlined, size: 10, color: colorScheme.onTertiaryContainer),
const SizedBox(width: 3),
Text(context.l10n.libraryInLibrary, style: TextStyle(fontSize: 9, fontWeight: FontWeight.w500, color: colorScheme.onTertiaryContainer)),
],
),
),
],
],
),
trailing: _buildDownloadButton(context, ref, colorScheme, isQueued: isQueued, isDownloading: isDownloading, isFinalizing: isFinalizing, showAsDownloaded: showAsDownloaded, isInHistory: isInHistory, isInLocalLibrary: isInLocalLibrary, progress: progress),
onTap: () => _handleTap(context, ref, isQueued: isQueued, isInHistory: isInHistory, isInLocalLibrary: isInLocalLibrary),
),
),
);
}
void _handleTap(BuildContext context, WidgetRef ref, {required bool isQueued, required bool isInHistory}) async {
void _handleTap(BuildContext context, WidgetRef ref, {required bool isQueued, required bool isInHistory, required bool isInLocalLibrary}) async {
if (isQueued) return;
// Check if track already exists in local library
if (isInLocalLibrary) {
if (context.mounted) {
ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(context.l10n.snackbarAlreadyInLibrary(track.name))));
}
return;
}
if (isInHistory) {
final historyItem = ref.read(downloadHistoryProvider.notifier).getBySpotifyId(track.id);
if (historyItem != null) {
@@ -684,6 +727,7 @@ child: ListTile(
required bool isFinalizing,
required bool showAsDownloaded,
required bool isInHistory,
required bool isInLocalLibrary,
required double progress,
}) {
const double size = 44.0;
@@ -691,7 +735,7 @@ child: ListTile(
if (showAsDownloaded) {
return GestureDetector(
onTap: () => _handleTap(context, ref, isQueued: isQueued, isInHistory: isInHistory),
onTap: () => _handleTap(context, ref, isQueued: isQueued, isInHistory: isInHistory, isInLocalLibrary: isInLocalLibrary),
child: Container(width: size, height: size, decoration: BoxDecoration(color: colorScheme.primaryContainer, shape: BoxShape.circle), child: Icon(Icons.check, color: colorScheme.onPrimaryContainer, size: iconSize)),
);
} else if (isFinalizing) {
+28 -3
View File
@@ -12,6 +12,7 @@ import 'package:spotiflac_android/providers/track_provider.dart';
import 'package:spotiflac_android/providers/settings_provider.dart';
import 'package:spotiflac_android/providers/download_queue_provider.dart';
import 'package:spotiflac_android/providers/recent_access_provider.dart';
import 'package:spotiflac_android/providers/local_library_provider.dart';
import 'package:spotiflac_android/services/platform_bridge.dart';
import 'package:spotiflac_android/screens/album_screen.dart';
import 'package:spotiflac_android/screens/home_tab.dart' show ExtensionAlbumScreen;
@@ -955,6 +956,18 @@ if (hasValidImage)
return state.isDownloaded(track.id);
}));
// Check local library for duplicate detection
final settings = ref.watch(settingsProvider);
final showLocalLibraryIndicator = settings.localLibraryEnabled && settings.localLibraryShowDuplicates;
final isInLocalLibrary = showLocalLibraryIndicator
? ref.watch(localLibraryProvider.select((state) =>
state.existsInLibrary(
isrc: track.isrc,
trackName: track.name,
artistName: track.artistName,
)))
: false;
final isQueued = queueItem != null;
final isDownloading = queueItem?.status == DownloadStatus.downloading;
final isFinalizing = queueItem?.status == DownloadStatus.finalizing;
@@ -964,7 +977,7 @@ if (hasValidImage)
final showAsDownloaded = isCompleted || (!isQueued && isInHistory);
return InkWell(
onTap: () => _handlePopularTrackTap(track, isQueued: isQueued, isInHistory: isInHistory),
onTap: () => _handlePopularTrackTap(track, isQueued: isQueued, isInHistory: isInHistory, isInLocalLibrary: isInLocalLibrary),
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
child: Row(
@@ -1042,6 +1055,7 @@ if (hasValidImage)
isFinalizing: isFinalizing,
showAsDownloaded: showAsDownloaded,
isInHistory: isInHistory,
isInLocalLibrary: isInLocalLibrary,
progress: progress,
),
],
@@ -1051,9 +1065,19 @@ if (hasValidImage)
}
/// Handle tap on popular track item
void _handlePopularTrackTap(Track track, {required bool isQueued, required bool isInHistory}) async {
void _handlePopularTrackTap(Track track, {required bool isQueued, required bool isInHistory, required bool isInLocalLibrary}) async {
if (isQueued) return;
// Check if track already exists in local library
if (isInLocalLibrary) {
if (mounted) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text(context.l10n.snackbarAlreadyInLibrary(track.name))),
);
}
return;
}
if (isInHistory) {
final historyItem = ref.read(downloadHistoryProvider.notifier).getBySpotifyId(track.id);
if (historyItem != null) {
@@ -1082,6 +1106,7 @@ if (hasValidImage)
required bool isFinalizing,
required bool showAsDownloaded,
required bool isInHistory,
required bool isInLocalLibrary,
required double progress,
}) {
const double size = 40.0;
@@ -1089,7 +1114,7 @@ if (hasValidImage)
if (showAsDownloaded) {
return GestureDetector(
onTap: () => _handlePopularTrackTap(track, isQueued: isQueued, isInHistory: isInHistory),
onTap: () => _handlePopularTrackTap(track, isQueued: isQueued, isInHistory: isInHistory, isInLocalLibrary: isInLocalLibrary),
child: Container(
width: size,
height: size,
+15 -4
View File
@@ -2465,7 +2465,7 @@ class _TrackItemWithStatus extends ConsumerWidget {
mainAxisSize: MainAxisSize.min,
children: [
InkWell(
onTap: () => _handleTap(context, ref, isQueued: isQueued, isInHistory: isInHistory),
onTap: () => _handleTap(context, ref, isQueued: isQueued, isInHistory: isInHistory, isInLocalLibrary: isInLocalLibrary),
splashColor: colorScheme.primary.withValues(alpha: 0.12),
highlightColor: colorScheme.primary.withValues(alpha: 0.08),
child: Padding(
@@ -2547,7 +2547,7 @@ class _TrackItemWithStatus extends ConsumerWidget {
],
),
),
_buildDownloadButton(context, ref, colorScheme, isQueued: isQueued, isDownloading: isDownloading, isFinalizing: isFinalizing, showAsDownloaded: showAsDownloaded, isInHistory: isInHistory, progress: progress),
_buildDownloadButton(context, ref, colorScheme, isQueued: isQueued, isDownloading: isDownloading, isFinalizing: isFinalizing, showAsDownloaded: showAsDownloaded, isInHistory: isInHistory, isInLocalLibrary: isInLocalLibrary, progress: progress),
],
),
),
@@ -2564,9 +2564,19 @@ class _TrackItemWithStatus extends ConsumerWidget {
);
}
void _handleTap(BuildContext context, WidgetRef ref, {required bool isQueued, required bool isInHistory}) async {
void _handleTap(BuildContext context, WidgetRef ref, {required bool isQueued, required bool isInHistory, required bool isInLocalLibrary}) async {
if (isQueued) return;
// Check if track already exists in local library
if (isInLocalLibrary) {
if (context.mounted) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text(context.l10n.snackbarAlreadyInLibrary(track.name))),
);
}
return;
}
if (isInHistory) {
final historyItem = ref.read(downloadHistoryProvider.notifier).getBySpotifyId(track.id);
if (historyItem != null) {
@@ -2593,6 +2603,7 @@ class _TrackItemWithStatus extends ConsumerWidget {
required bool isFinalizing,
required bool showAsDownloaded,
required bool isInHistory,
required bool isInLocalLibrary,
required double progress,
}) {
const double size = 44.0;
@@ -2600,7 +2611,7 @@ class _TrackItemWithStatus extends ConsumerWidget {
if (showAsDownloaded) {
return GestureDetector(
onTap: () => _handleTap(context, ref, isQueued: isQueued, isInHistory: isInHistory),
onTap: () => _handleTap(context, ref, isQueued: isQueued, isInHistory: isInHistory, isInLocalLibrary: isInLocalLibrary),
child: Container(
width: size,
height: size,
+49 -5
View File
@@ -10,6 +10,7 @@ import 'package:spotiflac_android/models/track.dart';
import 'package:spotiflac_android/models/download_item.dart';
import 'package:spotiflac_android/providers/download_queue_provider.dart';
import 'package:spotiflac_android/providers/settings_provider.dart';
import 'package:spotiflac_android/providers/local_library_provider.dart';
import 'package:spotiflac_android/widgets/download_service_picker.dart';
class PlaylistScreen extends ConsumerStatefulWidget {
@@ -436,6 +437,18 @@ class _PlaylistTrackItem extends ConsumerWidget {
return state.isDownloaded(track.id);
}));
// Check local library for duplicate detection
final settings = ref.watch(settingsProvider);
final showLocalLibraryIndicator = settings.localLibraryEnabled && settings.localLibraryShowDuplicates;
final isInLocalLibrary = showLocalLibraryIndicator
? ref.watch(localLibraryProvider.select((state) =>
state.existsInLibrary(
isrc: track.isrc,
trackName: track.name,
artistName: track.artistName,
)))
: false;
final isQueued = queueItem != null;
final isDownloading = queueItem?.status == DownloadStatus.downloading;
final isFinalizing = queueItem?.status == DownloadStatus.finalizing;
@@ -456,17 +469,47 @@ leading: track.coverUrl != null
? ClipRRect(borderRadius: BorderRadius.circular(8), child: CachedNetworkImage(imageUrl: track.coverUrl!, width: 48, height: 48, fit: BoxFit.cover, memCacheWidth: 96, cacheManager: CoverCacheManager.instance))
: Container(width: 48, height: 48, decoration: BoxDecoration(color: colorScheme.surfaceContainerHighest, borderRadius: BorderRadius.circular(8)), child: Icon(Icons.music_note, color: colorScheme.onSurfaceVariant)),
title: Text(track.name, maxLines: 1, overflow: TextOverflow.ellipsis, style: Theme.of(context).textTheme.bodyLarge?.copyWith(fontWeight: FontWeight.w500)),
subtitle: Text(track.artistName, maxLines: 1, overflow: TextOverflow.ellipsis, style: TextStyle(color: colorScheme.onSurfaceVariant)),
trailing: _buildDownloadButton(context, ref, colorScheme, isQueued: isQueued, isDownloading: isDownloading, isFinalizing: isFinalizing, showAsDownloaded: showAsDownloaded, isInHistory: isInHistory, progress: progress),
onTap: () => _handleTap(context, ref, isQueued: isQueued, isInHistory: isInHistory),
subtitle: Row(
children: [
Flexible(child: Text(track.artistName, maxLines: 1, overflow: TextOverflow.ellipsis, style: TextStyle(color: colorScheme.onSurfaceVariant))),
if (isInLocalLibrary) ...[
const SizedBox(width: 6),
Container(
padding: const EdgeInsets.symmetric(horizontal: 6, vertical: 2),
decoration: BoxDecoration(
color: colorScheme.tertiaryContainer,
borderRadius: BorderRadius.circular(4),
),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
Icon(Icons.folder_outlined, size: 10, color: colorScheme.onTertiaryContainer),
const SizedBox(width: 3),
Text(context.l10n.libraryInLibrary, style: TextStyle(fontSize: 9, fontWeight: FontWeight.w500, color: colorScheme.onTertiaryContainer)),
],
),
),
],
],
),
trailing: _buildDownloadButton(context, ref, colorScheme, isQueued: isQueued, isDownloading: isDownloading, isFinalizing: isFinalizing, showAsDownloaded: showAsDownloaded, isInHistory: isInHistory, isInLocalLibrary: isInLocalLibrary, progress: progress),
onTap: () => _handleTap(context, ref, isQueued: isQueued, isInHistory: isInHistory, isInLocalLibrary: isInLocalLibrary),
),
),
);
}
void _handleTap(BuildContext context, WidgetRef ref, {required bool isQueued, required bool isInHistory}) async {
void _handleTap(BuildContext context, WidgetRef ref, {required bool isQueued, required bool isInHistory, required bool isInLocalLibrary}) async {
if (isQueued) return;
// Check if track already exists in local library
if (isInLocalLibrary) {
if (context.mounted) {
ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(context.l10n.snackbarAlreadyInLibrary(track.name))));
}
return;
}
if (isInHistory) {
final historyItem = ref.read(downloadHistoryProvider.notifier).getBySpotifyId(track.id);
if (historyItem != null) {
@@ -491,6 +534,7 @@ leading: track.coverUrl != null
required bool isFinalizing,
required bool showAsDownloaded,
required bool isInHistory,
required bool isInLocalLibrary,
required double progress,
}) {
const double size = 44.0;
@@ -498,7 +542,7 @@ leading: track.coverUrl != null
if (showAsDownloaded) {
return GestureDetector(
onTap: () => _handleTap(context, ref, isQueued: isQueued, isInHistory: isInHistory),
onTap: () => _handleTap(context, ref, isQueued: isQueued, isInHistory: isInHistory, isInLocalLibrary: isInLocalLibrary),
child: Container(width: size, height: size, decoration: BoxDecoration(color: colorScheme.primaryContainer, shape: BoxShape.circle), child: Icon(Icons.check, color: colorScheme.onPrimaryContainer, size: iconSize)),
);
} else if (isFinalizing) {