Files
SpotiFLAC-Mobile/lib/l10n/app_localizations_pt.dart
T
zarzet 34c7b33368 chore(l10n): finish store -> repo wording sweep
The es/pt/zh base locales still shipped the old Store labels, the
backup-restore hint said 'from the store' in every locale (boutique
in fr, store loanword in ko), and the Go store lookup error said
'not found in store'. All user-visible surfaces now say repo;
translator descriptions in the template updated to match.
2026-07-14 09:09:19 +07:00

9121 lines
224 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// ignore: unused_import
import 'package:intl/intl.dart' as intl;
import 'app_localizations.dart';
// ignore_for_file: type=lint
/// The translations for Portuguese (`pt`).
class AppLocalizationsPt extends AppLocalizations {
AppLocalizationsPt([String locale = 'pt']) : super(locale);
@override
String get appName => 'SpotiFLAC Mobile';
@override
String get navHome => 'Home';
@override
String get navLibrary => 'Library';
@override
String get navSettings => 'Settings';
@override
String get navStore => 'Repo';
@override
String get homeTitle => 'Home';
@override
String get homeSubtitle => 'Paste a Spotify link or search by name';
@override
String get homeEmptyTitle => 'No search providers yet';
@override
String get homeEmptySubtitle => 'Install an extension to continue.';
@override
String get homeSupports => 'Supports: Track, Album, Playlist, Artist URLs';
@override
String get homeRecent => 'Recent';
@override
String get historyFilterAll => 'All';
@override
String get historyFilterAlbums => 'Albums';
@override
String get historyFilterSingles => 'Singles';
@override
String get historySearchHint => 'Search history...';
@override
String get settingsTitle => 'Settings';
@override
String get settingsDownload => 'Download';
@override
String get settingsAppearance => 'Appearance';
@override
String get settingsExtensions => 'Extensions';
@override
String get settingsAbout => 'About';
@override
String get downloadTitle => 'Download';
@override
String get downloadAskQualitySubtitle =>
'Show quality picker for each download';
@override
String get downloadFilenameFormat => 'Filename Format';
@override
String get downloadSingleFilenameFormat => 'Single Filename Format';
@override
String get downloadSingleFilenameFormatDescription =>
'Filename pattern for singles and EPs. Uses the same tags as the album format.';
@override
String get downloadFolderOrganization => 'Folder Organization';
@override
String get appearanceTitle => 'Appearance';
@override
String get appearanceThemeSystem => 'System';
@override
String get appearanceThemeLight => 'Light';
@override
String get appearanceThemeDark => 'Dark';
@override
String get appearanceDynamicColor => 'Dynamic Color';
@override
String get appearanceDynamicColorSubtitle => 'Use colors from your wallpaper';
@override
String get appearanceHistoryView => 'History View';
@override
String get appearanceHistoryViewList => 'List';
@override
String get appearanceHistoryViewGrid => 'Grid';
@override
String get optionsPrimaryProvider => 'Primary Provider';
@override
String get optionsPrimaryProviderSubtitle =>
'Service used when searching by track name.';
@override
String optionsUsingExtension(String extensionName) {
return 'Using extension: $extensionName';
}
@override
String get optionsDefaultSearchTab => 'Default Search Tab';
@override
String get optionsDefaultSearchTabSubtitle =>
'Choose which tab opens first for new search results.';
@override
String get optionsAutoFallback => 'Auto Fallback';
@override
String get optionsAutoFallbackSubtitle =>
'Try other services if download fails';
@override
String get optionsEmbedLyrics => 'Embed Lyrics';
@override
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';
@override
String get optionsReplayGain => 'ReplayGain';
@override
String get optionsReplayGainSubtitleOn =>
'Scan loudness and embed ReplayGain tags (EBU R128)';
@override
String get optionsReplayGainSubtitleOff =>
'Disabled: no loudness normalization tags';
@override
String get trackReplayGain => 'Rescan ReplayGain';
@override
String get trackReplayGainScanning => 'Analyzing loudness...';
@override
String get trackReplayGainSuccess => 'ReplayGain tags added';
@override
String get trackReplayGainFailed => 'Failed to add ReplayGain tags';
@override
String selectionReplayGainCount(int count) {
return 'ReplayGain ($count)';
}
@override
String get replayGainBatchConfirmTitle => 'Add ReplayGain';
@override
String replayGainBatchConfirmMessage(int count) {
return 'Analyze loudness and write ReplayGain tags to $count track(s)?';
}
@override
String get replayGainBatchAnalyzing => 'Analyzing ReplayGain...';
@override
String replayGainBatchSuccess(int success, int total) {
return 'ReplayGain added to $success of $total tracks';
}
@override
String get optionsArtistTagMode => 'Artist Tag Mode';
@override
String get optionsArtistTagModeDescription =>
'Choose how multiple artists are written into embedded tags.';
@override
String get optionsArtistTagModeJoined => 'Single joined value';
@override
String get optionsArtistTagModeJoinedSubtitle =>
'Write one ARTIST value like \"Artist A, Artist B\" for maximum player compatibility.';
@override
String get optionsArtistTagModeSplitVorbis => 'Split tags for FLAC/Opus';
@override
String get optionsArtistTagModeSplitVorbisSubtitle =>
'Write one artist tag per artist for FLAC and Opus; MP3 and M4A stay joined.';
@override
String get optionsExtensionStore => 'Extension Repo';
@override
String get optionsExtensionStoreSubtitle => 'Show Repo tab in navigation';
@override
String get optionsCheckUpdates => 'Check for Updates';
@override
String get optionsCheckUpdatesSubtitle =>
'Notify when new version is available';
@override
String get optionsUpdateChannel => 'Update Channel';
@override
String get optionsUpdateChannelStable => 'Stable releases only';
@override
String get optionsUpdateChannelPreview => 'Get preview releases';
@override
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';
@override
String get optionsDetailedLogging => 'Detailed Logging';
@override
String get optionsDetailedLoggingOn => 'Detailed logs are being recorded';
@override
String get optionsDetailedLoggingOff => 'Enable for bug reports';
@override
String get extensionsTitle => 'Extensions';
@override
String get extensionsDisabled => 'Disabled';
@override
String extensionsVersion(String version) {
return 'Version $version';
}
@override
String get extensionsUninstall => 'Uninstall';
@override
String get storeTitle => 'Extension Repo';
@override
String get storeSearch => 'Search extensions...';
@override
String get storeInstall => 'Install';
@override
String get storeInstalled => 'Installed';
@override
String get storeUpdate => 'Update';
@override
String get aboutTitle => 'About';
@override
String get aboutContributors => 'Contributors';
@override
String get aboutMobileDeveloper => 'Mobile version developer';
@override
String get aboutOriginalCreator => 'Creator of the original SpotiFLAC';
@override
String get aboutLogoArtist =>
'The talented artist who created our beautiful app logo!';
@override
String get aboutTranslators => 'Translators';
@override
String get aboutSpecialThanks => 'Special Thanks';
@override
String get aboutLinks => 'Links';
@override
String get aboutMobileSource => 'Mobile source code';
@override
String get aboutPCSource => 'PC source code';
@override
String get aboutKeepAndroidOpen => 'Keep Android Open';
@override
String get aboutReportIssue => 'Report an issue';
@override
String get aboutReportIssueSubtitle => 'Report any problems you encounter';
@override
String get aboutFeatureRequest => 'Feature request';
@override
String get aboutFeatureRequestSubtitle => 'Suggest new features for the app';
@override
String get aboutTelegramChannel => 'Telegram Channel';
@override
String get aboutTelegramChannelSubtitle => 'Announcements and updates';
@override
String get aboutTelegramChat => 'Telegram Community';
@override
String get aboutTelegramChatSubtitle => 'Chat with other users';
@override
String get aboutSocial => 'Social';
@override
String get aboutApp => 'App';
@override
String get aboutVersion => 'Version';
@override
String get aboutBinimumDesc =>
'The creator of QQDL & HiFi API. This project helped shape lossless download support.';
@override
String get aboutSachinsenalDesc =>
'The original HiFi project creator. A foundation for lossless-source integration.';
@override
String get aboutSjdonadoDesc =>
'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!';
@override
String get aboutAppDescription =>
'Search music metadata, manage extensions, and organize your library.';
@override
String get artistAlbums => 'Albums';
@override
String get artistSingles => 'Singles & EPs';
@override
String get artistCompilations => 'Compilations';
@override
String get artistPopular => 'Popular';
@override
String artistMonthlyListeners(String count) {
return '$count monthly listeners';
}
@override
String get trackMetadataService => 'Service';
@override
String get trackMetadataPlay => 'Play';
@override
String get trackMetadataShare => 'Share';
@override
String get trackMetadataDelete => 'Delete';
@override
String get setupGrantPermission => 'Grant Permission';
@override
String get setupSkip => 'Skip for now';
@override
String get setupStorageAccessRequired => 'Storage Access Required';
@override
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.';
@override
String setupPermissionRequired(String permissionType) {
return '$permissionType Permission Required';
}
@override
String setupPermissionRequiredMessage(String permissionType) {
return '$permissionType permission is required for the best experience. You can change this later in Settings.';
}
@override
String get setupUseDefaultFolder => 'Use Default Folder?';
@override
String get setupNoFolderSelected =>
'No folder selected. Would you like to use the default Music folder?';
@override
String get setupUseDefault => 'Use Default';
@override
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.';
@override
String get setupAppDocumentsFolder => 'App Documents Folder';
@override
String get setupAppDocumentsFolderSubtitle =>
'Recommended - accessible via Files app';
@override
String get setupChooseFromFiles => 'Choose from Files';
@override
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.';
@override
String get setupIcloudNotSupported =>
'iCloud Drive is not supported. Please use the app Documents folder.';
@override
String get setupDownloadInFlac => 'Download Spotify tracks in FLAC';
@override
String get setupStorageGranted => 'Storage Permission Granted!';
@override
String get setupStorageRequired => 'Storage Permission Required';
@override
String get setupStorageDescription =>
'SpotiFLAC needs storage permission to save your downloaded music files.';
@override
String get setupNotificationGranted => 'Notification Permission Granted!';
@override
String get setupNotificationEnable => 'Enable Notifications';
@override
String get setupFolderChoose => 'Choose Download Folder';
@override
String get setupFolderDescription =>
'Select a folder where your downloaded music will be saved.';
@override
String get setupSelectFolder => 'Select Folder';
@override
String get setupEnableNotifications => 'Enable Notifications';
@override
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';
@override
String get setupNext => 'Next';
@override
String get setupGetStarted => 'Get Started';
@override
String get setupAllowAccessToManageFiles =>
'Please enable \"Allow access to manage all files\" in the next screen.';
@override
String get setupLanguageTitle => 'Choose Language';
@override
String get setupLanguageDescription =>
'Select your preferred language for the app. You can change this later in Settings.';
@override
String get setupLanguageSystemDefault => 'System Default';
@override
String get dialogCancel => 'Cancel';
@override
String get dialogSave => 'Save';
@override
String get dialogDelete => 'Delete';
@override
String get dialogRetry => 'Retry';
@override
String get dialogClear => 'Clear';
@override
String get dialogDone => 'Done';
@override
String get dialogImport => 'Import';
@override
String get dialogDownload => 'Download';
@override
String get previewPlay => 'Play preview';
@override
String get previewStop => 'Stop preview';
@override
String get previewUnavailable => 'Preview unavailable';
@override
String get dialogDiscard => 'Discard';
@override
String get dialogRemove => 'Remove';
@override
String get dialogUninstall => 'Uninstall';
@override
String get dialogDiscardChanges => 'Discard Changes?';
@override
String get dialogUnsavedChanges =>
'You have unsaved changes. Do you want to discard them?';
@override
String get dialogClearAll => 'Clear All';
@override
String get dialogRemoveExtension => 'Remove Extension';
@override
String get dialogRemoveExtensionMessage =>
'Are you sure you want to remove this extension? This cannot be undone.';
@override
String get dialogUninstallExtension => 'Uninstall Extension?';
@override
String dialogUninstallExtensionMessage(String extensionName) {
return 'Are you sure you want to remove $extensionName?';
}
@override
String get dialogClearHistoryTitle => 'Clear History';
@override
String get dialogClearHistoryMessage =>
'Are you sure you want to clear all download history? This cannot be undone.';
@override
String get dialogDeleteSelectedTitle => 'Delete Selected';
@override
String dialogDeleteSelectedMessage(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Delete $count $_temp0 from history?\n\nThis will also delete the files from storage.';
}
@override
String get dialogImportPlaylistTitle => 'Import Playlist';
@override
String dialogImportPlaylistMessage(int count) {
return 'Found $count tracks in CSV. Add them to download queue?';
}
@override
String csvImportTracks(int count) {
return '$count tracks from CSV';
}
@override
String snackbarAddedToQueue(String trackName) {
return 'Added \"$trackName\" to queue';
}
@override
String snackbarAddedTracksToQueue(int count) {
return 'Added $count tracks to queue';
}
@override
String snackbarAlreadyDownloaded(String trackName) {
return '\"$trackName\" already downloaded';
}
@override
String snackbarAlreadyInLibrary(String trackName) {
return '\"$trackName\" already exists in your library';
}
@override
String get snackbarHistoryCleared => 'History cleared';
@override
String snackbarDeletedTracks(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Deleted $count $_temp0';
}
@override
String snackbarCannotOpenFile(String error) {
return 'Cannot open file: $error';
}
@override
String get snackbarViewQueue => 'View Queue';
@override
String snackbarUrlCopied(String platform) {
return '$platform URL copied to clipboard';
}
@override
String get snackbarFileNotFound => 'File not found';
@override
String get snackbarSelectExtFile => 'Please select a .spotiflac-ext file';
@override
String get snackbarProviderPrioritySaved => 'Provider priority saved';
@override
String get snackbarMetadataProviderSaved =>
'Metadata provider priority saved';
@override
String snackbarExtensionInstalled(String extensionName) {
return '$extensionName installed.';
}
@override
String snackbarExtensionUpdated(String extensionName) {
return '$extensionName updated.';
}
@override
String get snackbarFailedToInstall => 'Failed to install extension';
@override
String get snackbarFailedToUpdate => 'Failed to update extension';
@override
String get errorRateLimited => 'Rate Limited';
@override
String get errorRateLimitedMessage =>
'Too many requests. Please wait a moment before searching again.';
@override
String get errorNoTracksFound => 'No tracks found';
@override
String get searchEmptyResultSubtitle => 'Try another keyword';
@override
String get errorUrlNotRecognized => 'Link not recognized';
@override
String get errorUrlNotRecognizedMessage =>
'This link is not supported. Make sure the URL is correct and a compatible extension is installed.';
@override
String get errorUrlFetchFailed =>
'Failed to load content from this link. Please try again.';
@override
String errorMissingExtensionSource(String item) {
return 'Cannot load $item: missing extension source';
}
@override
String get actionPause => 'Pause';
@override
String get actionResume => 'Resume';
@override
String get actionCancel => 'Cancel';
@override
String get actionSelectAll => 'Select All';
@override
String get actionDeselect => 'Deselect';
@override
String selectionSelected(int count) {
return '$count selected';
}
@override
String get selectionAllSelected => 'All tracks selected';
@override
String get selectionSelectToDelete => 'Select tracks to delete';
@override
String progressFetchingMetadata(int current, int total) {
return 'Fetching metadata... $current/$total';
}
@override
String get progressReadingCsv => 'Reading CSV...';
@override
String get searchSongs => 'Songs';
@override
String get searchArtists => 'Artists';
@override
String get searchAlbums => 'Albums';
@override
String get searchPlaylists => 'Playlists';
@override
String get searchSortTitle => 'Sort Results';
@override
String get searchSortDefault => 'Default';
@override
String get searchSortTitleAZ => 'Title (A-Z)';
@override
String get searchSortTitleZA => 'Title (Z-A)';
@override
String get searchSortArtistAZ => 'Artist (A-Z)';
@override
String get searchSortArtistZA => 'Artist (Z-A)';
@override
String get searchSortDurationShort => 'Duration (Shortest)';
@override
String get searchSortDurationLong => 'Duration (Longest)';
@override
String get searchSortDateOldest => 'Release Date (Oldest)';
@override
String get searchSortDateNewest => 'Release Date (Newest)';
@override
String get tooltipPlay => 'Play';
@override
String get filenameFormat => 'Filename Format';
@override
String get filenameShowAdvancedTags => 'Show advanced tags';
@override
String get filenameShowAdvancedTagsDescription =>
'Enable formatted tags for track padding and date patterns';
@override
String get folderOrganizationNone => 'No organization';
@override
String get folderOrganizationByPlaylist => 'By Playlist';
@override
String get folderOrganizationByPlaylistSubtitle =>
'Separate folder for each playlist';
@override
String get folderOrganizationByArtist => 'By Artist';
@override
String get folderOrganizationByAlbum => 'By Album';
@override
String get folderOrganizationByArtistAlbum => 'Artist/Album';
@override
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';
@override
String get folderOrganizationByAlbumSubtitle =>
'Separate folder for each album';
@override
String get folderOrganizationByArtistAlbumSubtitle =>
'Nested folders for artist and album';
@override
String get updateAvailable => 'Update Available';
@override
String get updateLater => 'Later';
@override
String get updateStartingDownload => 'Starting download...';
@override
String get updateDownloadFailed => 'Download failed';
@override
String get updateFailedMessage => 'Failed to download update';
@override
String get updateNewVersionReady => 'A new version is ready';
@override
String get updateRequiredTitle => 'Update required';
@override
String updateRequiredNotice(int count) {
return 'This version is $count releases behind and is no longer supported. Update to keep using the app.';
}
@override
String get updateCurrent => 'Current';
@override
String get updateNew => 'New';
@override
String get updateDownloading => 'Downloading...';
@override
String get updateWhatsNew => 'What\'s New';
@override
String get updateDownloadInstall => 'Download & Install';
@override
String get updateDontRemind => 'Don\'t remind';
@override
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.';
@override
String get providerPriorityInfo =>
'If a track is not available on the first provider, the app will automatically try the next one.';
@override
String get providerPriorityFallbackExtensionsDescription =>
'Choose which installed download extensions can be used during automatic fallback.';
@override
String get providerPriorityFallbackExtensionsHint =>
'Only enabled extensions with download-provider capability are listed here.';
@override
String get providerExtension => 'Extension';
@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.';
@override
String get metadataProviderPriorityInfo =>
'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.';
@override
String get logTitle => 'Logs';
@override
String get logCopied => 'Logs copied to clipboard';
@override
String get logSearchHint => 'Search logs...';
@override
String get logFilterLevel => 'Level';
@override
String get logFilterSection => 'Filter';
@override
String get logShareLogs => 'Share logs';
@override
String get logClearLogs => 'Clear logs';
@override
String get logClearLogsTitle => 'Clear Logs';
@override
String get logClearLogsMessage => 'Are you sure you want to clear all logs?';
@override
String get logFilterBySeverity => 'Filter logs by severity';
@override
String get logNoLogsYet => 'No logs yet';
@override
String get logNoLogsYetSubtitle => 'Logs will appear here as you use the app';
@override
String logEntriesFiltered(int count) {
return 'Entries ($count filtered)';
}
@override
String logEntries(int count) {
return 'Entries ($count)';
}
@override
String get channelStable => 'Stable';
@override
String get channelPreview => 'Preview';
@override
String get sectionSearchSource => 'Search Source';
@override
String get sectionDownload => 'Download';
@override
String get sectionPerformance => 'Performance';
@override
String get sectionApp => 'App';
@override
String get sectionData => 'Data';
@override
String get sectionDebug => 'Debug';
@override
String get sectionService => 'Service';
@override
String get sectionAudioQuality => 'Audio Quality';
@override
String get sectionFileSettings => 'File Settings';
@override
String get sectionLyrics => 'Lyrics';
@override
String get lyricsMode => 'Lyrics Mode';
@override
String get lyricsModeDescription =>
'Choose how lyrics are saved with your downloads';
@override
String get lyricsModeEmbed => 'Embed in file';
@override
String get lyricsModeEmbedSubtitle => 'Lyrics stored inside FLAC metadata';
@override
String get lyricsModeExternal => 'External .lrc file';
@override
String get lyricsModeExternalSubtitle =>
'Separate .lrc file for players like Samsung Music';
@override
String get lyricsModeBoth => 'Both';
@override
String get lyricsModeBothSubtitle => 'Embed and save .lrc file';
@override
String get sectionColor => 'Color';
@override
String get sectionTheme => 'Theme';
@override
String get sectionLayout => 'Layout';
@override
String get sectionLanguage => 'Language';
@override
String get appearanceLanguage => 'App Language';
@override
String get settingsAppearanceSubtitle => 'Theme, colors, display';
@override
String get settingsDownloadSubtitle => 'Service, quality, filename format';
@override
String get settingsExtensionsSubtitle => 'Manage download providers';
@override
String get settingsLogsSubtitle => 'View app logs for debugging';
@override
String get loadingSharedLink => 'Loading shared link...';
@override
String get pressBackAgainToExit => 'Press back again to exit';
@override
String downloadAllCount(int count) {
return 'Download All ($count)';
}
@override
String tracksCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count tracks',
one: '1 track',
);
return '$_temp0';
}
@override
String get trackCopyFilePath => 'Copy file path';
@override
String get trackRemoveFromDevice => 'Remove from device';
@override
String get trackLoadLyrics => 'Load Lyrics';
@override
String get trackMetadata => 'Metadata';
@override
String get trackFileInfo => 'File Info';
@override
String get trackLyrics => 'Lyrics';
@override
String get trackFileNotFound => 'File not found';
@override
String get trackOpenInDeezer => 'Open in Deezer';
@override
String get trackOpenInSpotify => 'Open in Spotify';
@override
String get trackTrackName => 'Track name';
@override
String get trackArtist => 'Artist';
@override
String get trackAlbumArtist => 'Album artist';
@override
String get trackAlbum => 'Album';
@override
String get trackTrackNumber => 'Track number';
@override
String get trackDiscNumber => 'Disc number';
@override
String get trackDuration => 'Duration';
@override
String get trackAudioQuality => 'Audio quality';
@override
String get trackReleaseDate => 'Release date';
@override
String get trackGenre => 'Genre';
@override
String get trackLabel => 'Label';
@override
String get trackCopyright => 'Copyright';
@override
String get trackDownloaded => 'Downloaded';
@override
String get trackCopyLyrics => 'Copy lyrics';
@override
String trackLyricsSource(String source) {
return 'Source: $source';
}
@override
String get trackLyricsNotAvailable => 'Lyrics not available for this track';
@override
String get trackLyricsNotInFile => 'No lyrics found in this file';
@override
String get trackFetchOnlineLyrics => 'Fetch from Online';
@override
String get trackLyricsTimeout => 'Request timed out. Try again later.';
@override
String get trackLyricsLoadFailed => 'Failed to load lyrics';
@override
String get trackEmbedLyrics => 'Embed Lyrics';
@override
String get trackLyricsEmbedded => 'Lyrics embedded successfully';
@override
String get trackInstrumental => 'Instrumental track';
@override
String get trackCopiedToClipboard => 'Copied to clipboard';
@override
String get trackDeleteConfirmTitle => 'Remove from device?';
@override
String get trackDeleteConfirmMessage =>
'This will permanently delete the downloaded file and remove it from your history.';
@override
String get dateToday => 'Today';
@override
String get dateYesterday => 'Yesterday';
@override
String dateDaysAgo(int count) {
return '$count days ago';
}
@override
String dateWeeksAgo(int count) {
return '$count weeks ago';
}
@override
String dateMonthsAgo(int count) {
return '$count months ago';
}
@override
String get storeFilterAll => 'All';
@override
String get storeFilterMetadata => 'Metadata';
@override
String get storeFilterDownload => 'Download';
@override
String get storeFilterUtility => 'Utility';
@override
String get storeFilterLyrics => 'Lyrics';
@override
String get storeFilterIntegration => 'Integration';
@override
String get storeClearFilters => 'Clear filters';
@override
String get storeAddRepoTitle => 'Add Extension Repository';
@override
String get storeAddRepoDescription =>
'Enter a GitHub repository URL that contains a registry.json file to browse and install extensions.';
@override
String get storeRepoUrlLabel => 'Repository URL';
@override
String get storeRepoUrlHint => 'https://github.com/user/repo';
@override
String get storeAddRepoButton => 'Add Repository';
@override
String get storeChangeRepoTooltip => 'Change repository';
@override
String get storeRepoDialogTitle => 'Extension Repository';
@override
String get storeRepoDialogCurrent => 'Current repository:';
@override
String get storeNewRepoUrlLabel => 'New Repository URL';
@override
String get storeLoadError => 'Failed to load repository';
@override
String get storeEmptyNoExtensions => 'No extensions available';
@override
String get storeEmptyNoResults => 'No extensions found';
@override
String get extensionId => 'ID';
@override
String get extensionError => 'Error';
@override
String get extensionCapabilities => 'Capabilities';
@override
String get extensionMetadataProvider => 'Metadata Provider';
@override
String get extensionDownloadProvider => 'Download Provider';
@override
String get extensionLyricsProvider => 'Lyrics Provider';
@override
String get extensionUrlHandler => 'URL Handler';
@override
String get extensionQualityOptions => 'Quality Options';
@override
String get extensionPostProcessingHooks => 'Post-Processing Hooks';
@override
String get extensionPermissions => 'Permissions';
@override
String get extensionSettings => 'Settings';
@override
String get extensionRemoveButton => 'Remove Extension';
@override
String get extensionUpdated => 'Updated';
@override
String get extensionMinAppVersion => 'Min App Version';
@override
String get extensionCustomTrackMatching => 'Custom Track Matching';
@override
String get extensionPostProcessing => 'Post-Processing';
@override
String extensionHooksAvailable(int count) {
return '$count hook(s) available';
}
@override
String extensionPatternsCount(int count) {
return '$count pattern(s)';
}
@override
String extensionStrategy(String strategy) {
return 'Strategy: $strategy';
}
@override
String get extensionsProviderPrioritySection => 'Provider Priority';
@override
String get extensionsInstalledSection => 'Installed Extensions';
@override
String get extensionsNoExtensions => 'No extensions installed';
@override
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.';
@override
String get extensionsInstalledSuccess => 'Extension installed successfully';
@override
String extensionsInstalledCount(int count) {
return '$count extensions installed successfully';
}
@override
String extensionsInstallPartialSuccess(int installed, int attempted) {
return 'Installed $installed of $attempted extensions';
}
@override
String get extensionsDownloadPriority => 'Download Priority';
@override
String get extensionsDownloadPrioritySubtitle => 'Set download service order';
@override
String get extensionsFallbackTitle => 'Fallback Extensions';
@override
String get extensionsFallbackSubtitle =>
'Choose which installed download extensions can be used as fallback';
@override
String get extensionsNoDownloadProvider =>
'No extensions with download provider';
@override
String get extensionsMetadataPriority => 'Metadata Priority';
@override
String get extensionsMetadataPrioritySubtitle =>
'Set search & metadata source order';
@override
String get extensionsNoMetadataProvider =>
'No extensions with metadata provider';
@override
String get extensionsSearchProvider => 'Search Provider';
@override
String get extensionsNoCustomSearch => 'No extensions with custom search';
@override
String get extensionsSearchProviderDescription =>
'Choose which service to use for searching tracks';
@override
String get extensionsCustomSearch => 'Custom search';
@override
String get extensionsErrorLoading => 'Error loading extension';
@override
String get qualityFlacLossless => 'FLAC Lossless';
@override
String get qualityFlacLosslessSubtitle => '16-bit / 44.1kHz';
@override
String get qualityHiResFlac => 'Hi-Res FLAC';
@override
String get qualityHiResFlacSubtitle => '24-bit / up to 96kHz';
@override
String get qualityHiResFlacMax => 'Hi-Res FLAC Max';
@override
String get qualityHiResFlacMaxSubtitle => '24-bit / up to 192kHz';
@override
String get downloadLossy320 => 'Lossy 320kbps';
@override
String get downloadLossyFormat => 'Lossy Format';
@override
String get downloadLossy320Format => 'Lossy 320kbps Format';
@override
String get downloadLossy320FormatDesc =>
'Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.';
@override
String get downloadLossyMp3 => 'MP3 320kbps';
@override
String get downloadLossyMp3Subtitle => 'Best compatibility, ~10MB per track';
@override
String get downloadLossyAac => 'AAC/M4A 320kbps';
@override
String get downloadLossyAacSubtitle =>
'Best mobile compatibility, M4A container';
@override
String get downloadLossyOpus256 => 'Opus 256kbps';
@override
String get downloadLossyOpus256Subtitle =>
'Best quality Opus, ~8MB per track';
@override
String get downloadLossyOpus128 => 'Opus 128kbps';
@override
String get downloadLossyOpus128Subtitle => 'Smallest size, ~4MB per track';
@override
String get downloadAskBeforeDownload => 'Ask Before Download';
@override
String get downloadDirectory => 'Download Directory';
@override
String get downloadSeparateSinglesFolder => 'Separate Singles Folder';
@override
String get downloadAlbumFolderStructure => 'Album Folder Structure';
@override
String get albumFolderStructureDescription =>
'Choose how album folders are structured';
@override
String get downloadUseAlbumArtistForFolders => 'Use Album Artist for folders';
@override
String get downloadUsePrimaryArtistOnly => 'Primary artist only for folders';
@override
String get downloadUsePrimaryArtistOnlyEnabled =>
'Featured artists removed from folder name (e.g. Justin Bieber, Quavo → Justin Bieber)';
@override
String get downloadUsePrimaryArtistOnlyDisabled =>
'Full artist string used for folder name';
@override
String get downloadSelectQuality => 'Select Quality';
@override
String get downloadFrom => 'Download From';
@override
String get appearanceAmoledDark => 'AMOLED Dark';
@override
String get appearanceAmoledDarkSubtitle => 'Pure black background';
@override
String get queueClearAll => 'Clear All';
@override
String get queueClearAllMessage =>
'Are you sure you want to clear all downloads?';
@override
String get settingsAutoExportFailed => 'Auto-export failed downloads';
@override
String get settingsAutoExportFailedSubtitle =>
'Save failed downloads to TXT file automatically';
@override
String get settingsDownloadNetwork => 'Download Network';
@override
String get settingsDownloadNetworkAny => 'WiFi + Mobile Data';
@override
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.';
@override
String get settingsConcurrentDownloads => 'Concurrent downloads';
@override
String get settingsConcurrentDownloadsSubtitle =>
'Downloading several tracks at once is faster, but some providers may rate-limit parallel requests.';
@override
String get concurrentDownloadsOne => '1 track at a time';
@override
String concurrentDownloadsCount(int count) {
return 'Up to $count tracks at once';
}
@override
String get albumFolderArtistAlbum => 'Artist / Album';
@override
String get albumFolderArtistAlbumSubtitle => 'Albums/Artist Name/Album Name/';
@override
String get albumFolderArtistYearAlbum => 'Artist / [Year] Album';
@override
String get albumFolderArtistYearAlbumSubtitle =>
'Albums/Artist Name/[2005] Album Name/';
@override
String get albumFolderAlbumOnly => 'Album Only';
@override
String get albumFolderAlbumOnlySubtitle => 'Albums/Album Name/';
@override
String get albumFolderYearAlbum => '[Year] Album';
@override
String get albumFolderYearAlbumSubtitle => 'Albums/[2005] Album Name/';
@override
String get albumFolderArtistAlbumSingles => 'Artist / Album + Singles';
@override
String get albumFolderArtistAlbumSinglesSubtitle =>
'Artist/Album/ and Artist/Singles/';
@override
String get albumFolderArtistAlbumFlat => 'Artist / Album (Singles flat)';
@override
String get albumFolderArtistAlbumFlatSubtitle =>
'Artist/Album/ and Artist/song.flac';
@override
String get downloadedAlbumDeleteSelected => 'Delete Selected';
@override
String downloadedAlbumDeleteMessage(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Delete $count $_temp0 from this album?\n\nThis will also delete the files from storage.';
}
@override
String downloadedAlbumSelectedCount(int count) {
return '$count selected';
}
@override
String get downloadedAlbumTapToSelect => 'Tap tracks to select';
@override
String downloadedAlbumDeleteCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Delete $count $_temp0';
}
@override
String get downloadedAlbumSelectToDelete => 'Select tracks to delete';
@override
String downloadedAlbumDiscHeader(int discNumber) {
return 'Disc $discNumber';
}
@override
String get recentTypeArtist => 'Artist';
@override
String get recentTypeAlbum => 'Album';
@override
String get recentTypeSong => 'Song';
@override
String get recentTypePlaylist => 'Playlist';
@override
String get recentEmpty => 'No recent items yet';
@override
String get recentShowAllDownloads => 'Show All Downloads';
@override
String recentPlaylistInfo(String name) {
return 'Playlist: $name';
}
@override
String get discographyDownload => 'Download Discography';
@override
String get discographyDownloadAll => 'Download All';
@override
String discographyDownloadAllSubtitle(int count, int albumCount) {
return '$count tracks from $albumCount releases';
}
@override
String get discographyAlbumsOnly => 'Albums Only';
@override
String discographyAlbumsOnlySubtitle(int count, int albumCount) {
return '$count tracks from $albumCount albums';
}
@override
String get discographySinglesOnly => 'Singles & EPs Only';
@override
String discographySinglesOnlySubtitle(int count, int albumCount) {
return '$count tracks from $albumCount singles';
}
@override
String get discographySelectAlbums => 'Select Albums...';
@override
String get discographySelectAlbumsSubtitle =>
'Choose specific albums or singles';
@override
String get discographyFetchingTracks => 'Fetching tracks...';
@override
String discographyFetchingAlbum(int current, int total) {
return 'Fetching $current of $total...';
}
@override
String discographySelectedCount(int count) {
return '$count selected';
}
@override
String get discographyDownloadSelected => 'Download Selected';
@override
String discographyAddedToQueue(int count) {
return 'Added $count tracks to queue';
}
@override
String discographySkippedDownloaded(int added, int skipped) {
return '$added added, $skipped already downloaded';
}
@override
String get discographyNoAlbums => 'No albums available';
@override
String get discographyFailedToFetch => 'Failed to fetch some albums';
@override
String get sectionStorageAccess => 'Storage Access';
@override
String get allFilesAccess => 'All Files Access';
@override
String get allFilesAccessEnabledSubtitle => 'Can write to any folder';
@override
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.';
@override
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.';
@override
String get settingsLocalLibrary => 'Local Library';
@override
String get settingsLocalLibrarySubtitle => 'Scan music & detect duplicates';
@override
String get settingsCache => 'Storage & Cache';
@override
String get settingsCacheSubtitle => 'View size and clear cached data';
@override
String get libraryTitle => 'Local Library';
@override
String get libraryScanSettings => 'Scan Settings';
@override
String get libraryEnableLocalLibrary => 'Enable Local Library';
@override
String get libraryEnableLocalLibrarySubtitle =>
'Scan and track your existing music';
@override
String get libraryFolder => 'Library Folder';
@override
String get libraryFolderHint => 'Tap to select folder';
@override
String get libraryShowDuplicateIndicator => 'Show Duplicate Indicator';
@override
String get libraryShowDuplicateIndicatorSubtitle =>
'Show when searching for existing tracks';
@override
String get libraryAutoScan => 'Auto Scan';
@override
String get libraryAutoScanSubtitle =>
'Automatically scan your library for new files';
@override
String get libraryAutoScanOff => 'Off';
@override
String get libraryAutoScanOnOpen => 'Every app open';
@override
String get libraryAutoScanDaily => 'Daily';
@override
String get libraryAutoScanWeekly => 'Weekly';
@override
String get libraryActions => 'Actions';
@override
String get libraryScan => 'Scan Library';
@override
String get libraryScanSubtitle => 'Scan for audio files';
@override
String get libraryScanSelectFolderFirst => 'Select a folder first';
@override
String get libraryCleanupMissingFiles => 'Cleanup Missing Files';
@override
String get libraryCleanupMissingFilesSubtitle =>
'Remove entries for files that no longer exist';
@override
String get libraryClear => 'Clear Library';
@override
String get libraryClearSubtitle => 'Remove all scanned tracks';
@override
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.';
@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.';
@override
String libraryTracksUnit(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return '$_temp0';
}
@override
String libraryFilesUnit(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'files',
one: 'file',
);
return '$_temp0';
}
@override
String libraryLastScanned(String time) {
return 'Last scanned: $time';
}
@override
String get libraryLastScannedNever => 'Never';
@override
String get libraryScanning => 'Scanning...';
@override
String get libraryScanFinalizing => 'Finalizing library...';
@override
String libraryScanProgress(String progress, int total) {
return '$progress% of $total files';
}
@override
String get libraryInLibrary => 'In Library';
@override
String libraryRemovedMissingFiles(int count) {
return 'Removed $count missing files from library';
}
@override
String get libraryCleared => 'Library cleared';
@override
String get libraryStorageAccessRequired => 'Storage Access Required';
@override
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';
@override
String get librarySourceDownloaded => 'Downloaded';
@override
String get librarySourceLocal => 'Local';
@override
String get libraryFilterAll => 'All';
@override
String get libraryFilterDownloaded => 'Downloaded';
@override
String get libraryFilterLocal => 'Local';
@override
String get libraryFilterTitle => 'Filters';
@override
String get libraryFilterReset => 'Reset';
@override
String get libraryFilterApply => 'Apply';
@override
String get libraryFilterSource => 'Source';
@override
String get libraryFilterQuality => 'Quality';
@override
String get libraryFilterQualityHiRes => 'Hi-Res (24bit)';
@override
String get libraryFilterQualityCD => 'CD (16bit)';
@override
String get libraryFilterQualityLossy => 'Lossy';
@override
String get libraryFilterFormat => 'Format';
@override
String get libraryFilterMetadata => 'Metadata';
@override
String get libraryFilterMetadataComplete => 'Complete metadata';
@override
String get libraryFilterMetadataMissingAny => 'Missing any metadata';
@override
String get libraryFilterMetadataMissingYear => 'Missing year';
@override
String get libraryFilterMetadataMissingGenre => 'Missing genre';
@override
String get libraryFilterMetadataMissingAlbumArtist => 'Missing album artist';
@override
String get libraryFilterSort => 'Sort';
@override
String get libraryFilterSortLatest => 'Latest';
@override
String get libraryFilterSortOldest => 'Oldest';
@override
String get libraryFilterSortAlbumAsc => 'Album (A-Z)';
@override
String get libraryFilterSortAlbumDesc => 'Album (Z-A)';
@override
String get libraryFilterSortGenreAsc => 'Genre (A-Z)';
@override
String get libraryFilterSortGenreDesc => 'Genre (Z-A)';
@override
String get timeJustNow => 'Just now';
@override
String timeMinutesAgo(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count minutes ago',
one: '1 minute ago',
);
return '$_temp0';
}
@override
String timeHoursAgo(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count hours ago',
one: '1 hour ago',
);
return '$_temp0';
}
@override
String get tutorialWelcomeTitle => 'Welcome to SpotiFLAC!';
@override
String get tutorialWelcomeDesc =>
'Let\'s learn how to download your favorite music in lossless quality. This quick tutorial will show you the basics.';
@override
String get tutorialWelcomeTip1 =>
'Download music from Spotify, Deezer, or paste any supported URL';
@override
String get tutorialWelcomeTip2 =>
'Get FLAC quality audio from installed download extensions';
@override
String get tutorialWelcomeTip3 =>
'Automatic metadata, cover art, and lyrics embedding';
@override
String get tutorialSearchTitle => 'Finding Music';
@override
String get tutorialSearchDesc =>
'There are two easy ways to find music you want to download.';
@override
String get tutorialDownloadTitle => 'Downloading Music';
@override
String get tutorialDownloadDesc =>
'Downloading music is simple and fast. Here\'s how it works.';
@override
String get tutorialLibraryTitle => 'Your Library';
@override
String get tutorialLibraryDesc =>
'All your downloaded music is organized in the Library tab.';
@override
String get tutorialLibraryTip1 =>
'View download progress and queue in the Library tab';
@override
String get tutorialLibraryTip2 =>
'Tap any track to play it with your music player';
@override
String get tutorialLibraryTip3 =>
'Switch between list and grid view for better browsing';
@override
String get tutorialExtensionsTitle => 'Extensions';
@override
String get tutorialExtensionsDesc =>
'Extend the app\'s capabilities with community extensions.';
@override
String get tutorialExtensionsTip1 =>
'Browse the Repo tab to discover useful extensions';
@override
String get tutorialExtensionsTip2 =>
'Add new download providers or search sources';
@override
String get tutorialExtensionsTip3 =>
'Get lyrics, enhanced metadata, and more features';
@override
String get tutorialSettingsTitle => 'Customize Your Experience';
@override
String get tutorialSettingsDesc =>
'Personalize the app in Settings to match your preferences.';
@override
String get tutorialSettingsTip1 =>
'Change download location and folder organization';
@override
String get tutorialSettingsTip2 =>
'Set default audio quality and format preferences';
@override
String get tutorialSettingsTip3 => 'Customize app theme and appearance';
@override
String get tutorialReadyMessage =>
'You\'re all set! Start downloading your favorite music now.';
@override
String get libraryForceFullScan => 'Force Full Scan';
@override
String get libraryForceFullScanSubtitle => 'Rescan all files, ignoring cache';
@override
String get cleanupOrphanedDownloads => 'Cleanup Orphaned Downloads';
@override
String get cleanupOrphanedDownloadsSubtitle =>
'Remove history entries for files that no longer exist';
@override
String cleanupOrphanedDownloadsResult(int count) {
return 'Removed $count orphaned entries from history';
}
@override
String get cleanupOrphanedDownloadsNone => 'No orphaned entries found';
@override
String get cacheTitle => 'Storage & Cache';
@override
String get cacheSummaryTitle => 'Cache overview';
@override
String get cacheSummarySubtitle =>
'Clearing cache will not remove downloaded music files.';
@override
String cacheEstimatedTotal(String size) {
return 'Estimated cache usage: $size';
}
@override
String get cacheSectionStorage => 'Cached Data';
@override
String get cacheSectionMaintenance => 'Maintenance';
@override
String get cacheAppDirectory => 'App cache directory';
@override
String get cacheAppDirectoryDesc =>
'HTTP responses, WebView data, and other temporary app data.';
@override
String get cacheTempDirectory => 'Temporary directory';
@override
String get cacheTempDirectoryDesc =>
'Temporary files from downloads and audio conversion.';
@override
String get cacheCoverImage => 'Cover image cache';
@override
String get cacheCoverImageDesc =>
'Downloaded album and track cover art. Will re-download when viewed.';
@override
String get cacheLibraryCover => 'Library cover cache';
@override
String get cacheLibraryCoverDesc =>
'Cover art extracted from local music files. Will re-extract on next scan.';
@override
String get cacheExploreFeed => 'Explore feed cache';
@override
String get cacheExploreFeedDesc =>
'Explore tab content (new releases, trending). Will refresh on next visit.';
@override
String get cacheTrackLookup => 'Track lookup cache';
@override
String get cacheTrackLookupDesc =>
'Spotify/Deezer track ID lookups. Clearing may slow next few searches.';
@override
String get cacheCleanupUnusedDesc =>
'Remove orphaned download history and library entries for missing files.';
@override
String get cacheNoData => 'No cached data';
@override
String cacheSizeWithFiles(String size, int count) {
return '$size in $count files';
}
@override
String cacheSizeOnly(String size) {
return '$size';
}
@override
String cacheEntries(int count) {
return '$count entries';
}
@override
String cacheClearSuccess(String target) {
return 'Cleared: $target';
}
@override
String get cacheClearConfirmTitle => 'Clear cache?';
@override
String cacheClearConfirmMessage(String target) {
return 'This will clear cached data for $target. Downloaded music files will not be deleted.';
}
@override
String get cacheClearAllConfirmTitle => 'Clear all cache?';
@override
String get cacheClearAllConfirmMessage =>
'This will clear all cache categories on this page. Downloaded music files will not be deleted.';
@override
String get cacheClearAll => 'Clear all cache';
@override
String get cacheCleanupUnused => 'Cleanup unused data';
@override
String get cacheCleanupUnusedSubtitle =>
'Remove orphaned download history and missing library entries';
@override
String cacheCleanupResult(int downloadCount, int libraryCount) {
return 'Cleanup completed: $downloadCount orphaned downloads, $libraryCount missing library entries';
}
@override
String get cacheRefreshStats => 'Refresh stats';
@override
String get trackSaveCoverArt => 'Save Cover Art';
@override
String get trackSaveLyrics => 'Save Lyrics (.lrc)';
@override
String get trackSaveLyricsProgress => 'Saving lyrics...';
@override
String get trackReEnrich => 'Re-enrich';
@override
String get trackReEnrichOnlineSubtitle =>
'Search metadata online and embed into file';
@override
String get trackReEnrichFieldCover => 'Cover Art';
@override
String get trackReEnrichFieldLyrics => 'Lyrics';
@override
String get trackReEnrichFieldBasicTags => 'Album, Album Artist';
@override
String get trackReEnrichFieldTrackInfo => 'Track & Disc Number';
@override
String get trackReEnrichFieldReleaseInfo => 'Date & ISRC';
@override
String get trackReEnrichFieldExtra => 'Genre, Label, Copyright';
@override
String get trackReEnrichSelectAll => 'Select All';
@override
String get trackEditMetadata => 'Edit Metadata';
@override
String trackCoverSaved(String fileName) {
return 'Cover art saved to $fileName';
}
@override
String get trackCoverNoSource => 'No cover art source available';
@override
String trackLyricsSaved(String fileName) {
return 'Lyrics saved to $fileName';
}
@override
String get trackReEnrichProgress => 'Re-enriching metadata...';
@override
String get trackReEnrichSearching => 'Searching metadata online...';
@override
String get trackReEnrichSuccess => 'Metadata re-enriched successfully';
@override
String get trackReEnrichFfmpegFailed => 'FFmpeg metadata embed failed';
@override
String get queueFlacAction => 'Queue FLAC';
@override
String queueFlacConfirmMessage(int count) {
return 'Search online matches for the selected tracks and queue FLAC downloads.\n\nExisting files will not be modified or deleted.\n\nOnly high-confidence matches are queued automatically.\n\n$count selected';
}
@override
String get queueFlacNoReliableMatches =>
'No reliable online matches found for the selection';
@override
String queueFlacQueuedWithSkipped(int addedCount, int skippedCount) {
return 'Added $addedCount tracks to queue, skipped $skippedCount';
}
@override
String trackSaveFailed(String error) {
return 'Failed: $error';
}
@override
String get trackConvertFormat => 'Convert Format';
@override
String get trackConvertTitle => 'Convert Audio';
@override
String get trackConvertTargetFormat => 'Target Format';
@override
String get trackConvertBitrate => 'Bitrate';
@override
String get trackConvertConfirmTitle => 'Confirm Conversion';
@override
String trackConvertConfirmMessage(
String sourceFormat,
String targetFormat,
String bitrate,
) {
return 'Convert from $sourceFormat to $targetFormat at $bitrate?\n\nThe original file will be deleted after conversion.';
}
@override
String trackConvertConfirmMessageLossless(
String sourceFormat,
String targetFormat,
) {
return 'Convert from $sourceFormat to $targetFormat? (Lossless — no quality loss)\n\nThe original file will be deleted after conversion.';
}
@override
String get trackConvertLosslessHint =>
'Lossless conversion — no quality loss';
@override
String get trackConvertConverting => 'Converting audio...';
@override
String trackConvertSuccess(String format) {
return 'Converted to $format successfully';
}
@override
String get trackConvertFailed => 'Conversion failed';
@override
String get cueSplitTitle => 'Split CUE Sheet';
@override
String cueSplitAlbum(String album) {
return 'Album: $album';
}
@override
String cueSplitArtist(String artist) {
return 'Artist: $artist';
}
@override
String cueSplitTrackCount(int count) {
return '$count tracks';
}
@override
String get cueSplitConfirmTitle => 'Split CUE Album';
@override
String cueSplitConfirmMessage(String album, int count) {
return 'Split \"$album\" into $count individual FLAC files?\n\nFiles will be saved to the same directory.';
}
@override
String cueSplitSplitting(int current, int total) {
return 'Splitting CUE sheet... ($current/$total)';
}
@override
String cueSplitSuccess(int count) {
return 'Split into $count tracks successfully';
}
@override
String get cueSplitFailed => 'CUE split failed';
@override
String get cueSplitNoAudioFile => 'Audio file not found for this CUE sheet';
@override
String get cueSplitButton => 'Split into Tracks';
@override
String get actionCreate => 'Create';
@override
String get collectionFoldersTitle => 'My folders';
@override
String get collectionWishlist => 'Wishlist';
@override
String get collectionLoved => 'Loved';
@override
String get collectionFavoriteArtists => 'Favorite Artists';
@override
String get collectionPlaylist => 'Playlist';
@override
String get collectionAddToPlaylist => 'Add to playlist';
@override
String get collectionCreatePlaylist => 'Create playlist';
@override
String get collectionNoPlaylistsYet => 'No playlists yet';
@override
String collectionPlaylistTracks(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count tracks',
one: '1 track',
);
return '$_temp0';
}
@override
String collectionArtistCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count artists',
one: '1 artist',
);
return '$_temp0';
}
@override
String collectionAddedToPlaylist(String playlistName) {
return 'Added to \"$playlistName\"';
}
@override
String collectionAlreadyInPlaylist(String playlistName) {
return 'Already in \"$playlistName\"';
}
@override
String get collectionPlaylistNameHint => 'Playlist name';
@override
String get collectionPlaylistNameRequired => 'Playlist name is required';
@override
String get collectionRenamePlaylist => 'Rename playlist';
@override
String get collectionDeletePlaylist => 'Delete playlist';
@override
String get collectionPlaylistRenamed => 'Playlist renamed';
@override
String get collectionWishlistEmptyTitle => 'Wishlist is empty';
@override
String get collectionWishlistEmptySubtitle =>
'Tap + on tracks to save what you want to download later';
@override
String get collectionLovedEmptyTitle => 'Loved folder is empty';
@override
String get collectionLovedEmptySubtitle =>
'Tap love on tracks to keep your favorites';
@override
String get collectionFavoriteArtistsEmptyTitle => 'No favorite artists yet';
@override
String get collectionFavoriteArtistsEmptySubtitle =>
'Tap the heart on an artist page to keep them here';
@override
String get collectionPlaylistEmptyTitle => 'Playlist is empty';
@override
String get collectionPlaylistEmptySubtitle =>
'Long-press + on any track to add it here';
@override
String get collectionRemoveFromPlaylist => 'Remove from playlist';
@override
String get collectionRemoveFromFolder => 'Remove from folder';
@override
String collectionAddedToLoved(String trackName) {
return '\"$trackName\" added to Loved';
}
@override
String collectionRemovedFromLoved(String trackName) {
return '\"$trackName\" removed from Loved';
}
@override
String collectionAddedToWishlist(String trackName) {
return '\"$trackName\" added to Wishlist';
}
@override
String collectionRemovedFromWishlist(String trackName) {
return '\"$trackName\" removed from Wishlist';
}
@override
String collectionAddedToFavoriteArtists(String artistName) {
return '\"$artistName\" added to Favorite Artists';
}
@override
String collectionRemovedFromFavoriteArtists(String artistName) {
return '\"$artistName\" removed from Favorite Artists';
}
@override
String get trackOptionAddToLoved => 'Add to Loved';
@override
String get trackOptionRemoveFromLoved => 'Remove from Loved';
@override
String get trackOptionAddToWishlist => 'Add to Wishlist';
@override
String get trackOptionRemoveFromWishlist => 'Remove from Wishlist';
@override
String get artistOptionAddToFavorites => 'Add to Favorite Artists';
@override
String get artistOptionRemoveFromFavorites => 'Remove from Favorite Artists';
@override
String get collectionPlaylistChangeCover => 'Change cover image';
@override
String get collectionPlaylistRemoveCover => 'Remove cover image';
@override
String selectionShareCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Share $count $_temp0';
}
@override
String get selectionShareNoFiles => 'No shareable files found';
@override
String selectionConvertCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Convert $count $_temp0';
}
@override
String get selectionConvertNoConvertible => 'No convertible tracks selected';
@override
String get selectionBatchConvertConfirmTitle => 'Batch Convert';
@override
String selectionBatchConvertConfirmMessage(
int count,
String format,
String bitrate,
) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Convert $count $_temp0 to $format at $bitrate?\n\nOriginal files will be deleted after conversion.';
}
@override
String selectionBatchConvertConfirmMessageLossless(int count, String format) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Convert $count $_temp0 to $format? (Lossless — no quality loss)\n\nOriginal files will be deleted after conversion.';
}
@override
String selectionBatchConvertSuccess(int success, int total, String format) {
return 'Converted $success of $total tracks to $format';
}
@override
String downloadedAlbumDownloadedCount(int count) {
return '$count downloaded';
}
@override
String get downloadUseAlbumArtistForFoldersAlbumSubtitle =>
'Folder named after Album Artist tag';
@override
String get downloadUseAlbumArtistForFoldersTrackSubtitle =>
'Folder named after Track Artist tag';
@override
String get lyricsProvidersTitle => 'Lyrics Provider Priority';
@override
String get lyricsProvidersDescription =>
'Enable, disable and reorder lyrics sources. Providers are tried top-to-bottom until lyrics are found.';
@override
String get lyricsProvidersInfoText =>
'Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.';
@override
String lyricsProvidersEnabledSection(int count) {
return 'Enabled ($count)';
}
@override
String lyricsProvidersDisabledSection(int count) {
return 'Disabled ($count)';
}
@override
String get lyricsProvidersAtLeastOne =>
'At least one provider must remain enabled';
@override
String get lyricsProvidersSaved => 'Lyrics provider priority saved';
@override
String get lyricsProvidersDiscardContent =>
'You have unsaved changes that will be lost.';
@override
String get lyricsProviderLrclibDesc => 'Open-source synced lyrics database';
@override
String get lyricsProviderNeteaseDesc =>
'NetEase Cloud Music (good for Asian songs)';
@override
String get lyricsProviderMusixmatchDesc =>
'Largest lyrics database (multi-language)';
@override
String get lyricsProviderAppleMusicDesc =>
'Word-by-word synced lyrics (via proxy)';
@override
String get lyricsProviderQqMusicDesc =>
'QQ Music (good for Chinese songs, via proxy)';
@override
String get lyricsProviderLyricsPlusDesc =>
'Word-by-word karaoke lyrics (Apple/Musixmatch/Spotify/QQ, via proxy)';
@override
String get lyricsProviderExtensionDesc => 'Extension provider';
@override
String get safMigrationTitle => 'Storage Update Required';
@override
String get safMigrationMessage1 =>
'SpotiFLAC now uses Android Storage Access Framework (SAF) for downloads. This fixes \"permission denied\" errors on Android 10+.';
@override
String get safMigrationMessage2 =>
'Please select your download folder again to switch to the new storage system.';
@override
String get safMigrationSuccess => 'Download folder updated to SAF mode';
@override
String get settingsDonate => 'Support Development';
@override
String get settingsDonateSubtitle => 'Buy the developer a coffee';
@override
String get settingsBackup => 'Backup & Restore';
@override
String get settingsBackupSubtitle =>
'Move your library, history and settings to a new device';
@override
String get backupTitle => 'Backup & Restore';
@override
String get backupExportSectionTitle => 'Create backup';
@override
String get backupExportSectionDescription =>
'Save your settings, download history, liked tracks, wishlist, favorite artists and playlists into a single file you can keep or move to another phone.';
@override
String get backupExportButton => 'Create backup file';
@override
String get backupImportSectionTitle => 'Restore backup';
@override
String get backupImportSectionDescription =>
'Pick a backup file to restore your data. This replaces the current settings, history and library on this device.';
@override
String get backupImportButton => 'Choose backup file';
@override
String get backupCreated => 'Backup created';
@override
String get backupCreateFailed => 'Failed to create backup';
@override
String get backupRestoreConfirmTitle => 'Restore this backup?';
@override
String get backupRestoreConfirmMessage =>
'This will replace your current settings, download history, liked tracks, wishlist and playlists with the contents of the backup. This cannot be undone.';
@override
String get backupRestoreConfirmButton => 'Restore';
@override
String get backupRestored => 'Backup restored successfully';
@override
String get backupRestoreFailed => 'Failed to restore backup';
@override
String get backupInvalidFile => 'This file is not a valid SpotiFLAC backup';
@override
String get backupRestoreRestartHint =>
'Restart the app to make sure every change is applied.';
@override
String get backupContentsTitle => 'Backup contents';
@override
String get backupContentsSettings => 'App settings';
@override
String backupContentsHistory(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'items',
one: 'item',
);
return '$count history $_temp0';
}
@override
String backupContentsLiked(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return '$count liked $_temp0';
}
@override
String backupContentsWishlist(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return '$count wishlist $_temp0';
}
@override
String backupContentsPlaylists(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count playlists',
one: '1 playlist',
);
return '$_temp0';
}
@override
String backupContentsArtists(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count favorite artists',
one: '1 favorite artist',
);
return '$_temp0';
}
@override
String backupContentsExtensions(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count extensions',
one: '1 extension',
);
return '$_temp0';
}
@override
String get backupIncludeSecrets => 'Include extension credentials';
@override
String get backupIncludeSecretsDescription =>
'Tokens and API keys from extensions will be saved into the backup file. Keep the file private. When off, you re-enter them after restoring.';
@override
String backupExtensionsRestoreFailed(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'extensions',
one: 'extension',
);
return '$count $_temp0 could not be reinstalled. Install them manually from the repo.';
}
@override
String get tooltipLoveAll => 'Love All';
@override
String get tooltipAddToPlaylist => 'Add to Playlist';
@override
String snackbarRemovedTracksFromLoved(int count) {
return 'Removed $count tracks from Loved';
}
@override
String snackbarAddedTracksToLoved(int count) {
return 'Added $count tracks to Loved';
}
@override
String get dialogDownloadAllTitle => 'Download All';
@override
String dialogDownloadAllMessage(int count) {
return 'Download $count tracks?';
}
@override
String get homeSkipAlreadyDownloaded => 'Skip already downloaded songs';
@override
String get homeGoToAlbum => 'Go to Album';
@override
String get homeAlbumInfoUnavailable => 'Album info not available';
@override
String get snackbarLoadingCueSheet => 'Loading CUE sheet...';
@override
String get snackbarMetadataSaved => 'Metadata saved successfully';
@override
String get snackbarFailedToEmbedLyrics => 'Failed to embed lyrics';
@override
String get snackbarFailedToWriteStorage => 'Failed to write back to storage';
@override
String snackbarError(String error) {
return 'Error: $error';
}
@override
String get snackbarNoActionDefined => 'No action defined for this button';
@override
String get noTracksFoundForAlbum => 'No tracks found for this album';
@override
String get downloadLocationSubtitle =>
'Choose where to save your downloaded tracks';
@override
String get storageModeAppFolder => 'App Folder (Recommended)';
@override
String get storageModeAppFolderSubtitle =>
'Saves to Music/SpotiFLAC by default';
@override
String get storageModeSaf => 'Custom Folder (SAF)';
@override
String get storageModeSafSubtitle => 'Pick any folder, including SD card';
@override
String get downloadFolderAccessLostTitle => 'Download folder access lost';
@override
String get downloadFolderAccessLostSubtitle =>
'Downloads will fail until you re-select the folder';
@override
String get downloadFolderReselect => 'Re-select folder';
@override
String get downloadErrorSafPermissionLost =>
'SAF permission invalid or revoked. Please reconfigure download location in Settings.';
@override
String get downloadErrorFolderAccessLost =>
'Download folder access lost. Please re-select your download folder in Settings.';
@override
String downloadFilenameDescription(
Object album,
Object artist,
Object date,
Object disc,
Object title,
Object track,
Object year,
) {
return 'Use $artist, $title, $album, $track, $year, $date, $disc as placeholders.';
}
@override
String get downloadFilenameInsertTag => 'Tap to insert tag:';
@override
String get downloadSeparateSinglesEnabled =>
'Singles and EPs saved in a separate folder';
@override
String get downloadSeparateSinglesDisabled =>
'Singles and albums saved in the same folder';
@override
String get downloadArtistNameFilters => 'Artist Name Filters';
@override
String get downloadCreatePlaylistSourceFolder => 'Playlist Source Folder';
@override
String get downloadCreatePlaylistSourceFolderEnabled =>
'A subfolder is created for each playlist';
@override
String get downloadCreatePlaylistSourceFolderDisabled =>
'All tracks saved directly to download folder';
@override
String get downloadCreatePlaylistSourceFolderRedundant =>
'Handled by folder organization setting';
@override
String get downloadSongLinkRegion => 'SongLink Region';
@override
String get downloadNetworkCompatibilityMode => 'Network Compatibility Mode';
@override
String get downloadNetworkCompatibilityModeEnabled =>
'Using legacy TLS settings for older networks';
@override
String get downloadNetworkCompatibilityModeDisabled =>
'Using standard network settings';
@override
String get downloadAllowLocalNetwork => 'Allow Local Network Access';
@override
String get downloadAllowLocalNetworkEnabled =>
'Requests to local/private addresses are allowed (for local proxy or custom DNS)';
@override
String get downloadAllowLocalNetworkDisabled =>
'Local/private addresses are blocked for security';
@override
String get downloadSelectServiceToEnable =>
'Select a provider with quality options to enable this option';
@override
String get downloadEmbedLyricsDisabled => 'Enable metadata embedding first';
@override
String get downloadNeteaseIncludeTranslation =>
'Netease: Include Translation';
@override
String get downloadNeteaseIncludeTranslationEnabled =>
'Chinese translation lines included';
@override
String get downloadNeteaseIncludeTranslationDisabled =>
'Original lyrics only';
@override
String get downloadNeteaseIncludeRomanization =>
'Netease: Include Romanization';
@override
String get downloadNeteaseIncludeRomanizationEnabled =>
'Romanization lines included';
@override
String get downloadNeteaseIncludeRomanizationDisabled => 'No romanization';
@override
String get downloadAppleQqMultiPerson => 'Apple / QQ: Multi-Person Lyrics';
@override
String get downloadAppleQqMultiPersonEnabled =>
'Speaker labels included for duets and group tracks';
@override
String get downloadAppleQqMultiPersonDisabled =>
'Standard lyrics without speaker labels';
@override
String get downloadAppleElrcWordSync => 'Apple Music eLRC Word Sync';
@override
String get downloadAppleElrcWordSyncEnabled =>
'Raw word-by-word timestamps preserved';
@override
String get downloadAppleElrcWordSyncDisabled =>
'Safer line-by-line Apple Music lyrics';
@override
String get downloadMusixmatchLanguage => 'Musixmatch Language';
@override
String get downloadMusixmatchLanguageAuto => 'Auto (original language)';
@override
String get downloadFilterContributing => 'Filter Contributing Artists';
@override
String get downloadFilterContributingEnabled =>
'Contributing artists removed from Album Artist folder name';
@override
String get downloadFilterContributingDisabled =>
'Full Album Artist string used';
@override
String get downloadProvidersNoneEnabled => 'No providers enabled';
@override
String get downloadMusixmatchLanguageCode => 'Language code';
@override
String get downloadMusixmatchLanguageHint => 'e.g. en, de, ja';
@override
String get downloadMusixmatchLanguageDesc =>
'Enter a BCP-47 language code (e.g. en, de, ja) to request translated lyrics from Musixmatch.';
@override
String get downloadMusixmatchAuto => 'Auto';
@override
String get downloadNetworkAnySubtitle => 'Use WiFi or mobile data';
@override
String get downloadNetworkWifiOnlySubtitle =>
'Downloads pause when on mobile data';
@override
String get downloadSongLinkRegionDesc =>
'Region used when resolving track links via SongLink. Choose the country where your streaming services are available.';
@override
String get snackbarUnsupportedAudioFormat => 'Unsupported audio format';
@override
String get cacheRefresh => 'Refresh';
@override
String dialogDownloadPlaylistsMessage(int trackCount, int playlistCount) {
String _temp0 = intl.Intl.pluralLogic(
trackCount,
locale: localeName,
other: 'tracks',
one: 'track',
);
String _temp1 = intl.Intl.pluralLogic(
playlistCount,
locale: localeName,
other: 'playlists',
one: 'playlist',
);
return 'Download $trackCount $_temp0 from $playlistCount $_temp1?';
}
@override
String bulkDownloadPlaylistsButton(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'playlists',
one: 'playlist',
);
return 'Download $count $_temp0';
}
@override
String get bulkDownloadSelectPlaylists => 'Select playlists to download';
@override
String get snackbarSelectedPlaylistsEmpty =>
'Selected playlists have no tracks';
@override
String playlistsCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count playlists',
one: '1 playlist',
);
return '$_temp0';
}
@override
String get editMetadataAutoFill => 'Auto-fill from online';
@override
String get editMetadataAutoFillDesc =>
'Select fields to fill automatically from online metadata';
@override
String get editMetadataAutoFillFetch => 'Fetch & Fill';
@override
String get editMetadataAutoFillSearching => 'Searching online...';
@override
String get editMetadataAutoFillNoResults =>
'No matching metadata found online';
@override
String editMetadataAutoFillDone(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'fields',
one: 'field',
);
return 'Filled $count $_temp0 from online metadata';
}
@override
String get editMetadataAutoFillNoneSelected =>
'Select at least one field to auto-fill';
@override
String get editMetadataFieldTitle => 'Title';
@override
String get editMetadataFieldArtist => 'Artist';
@override
String get editMetadataFieldAlbum => 'Album';
@override
String get editMetadataFieldAlbumArtist => 'Album Artist';
@override
String get editMetadataFieldDate => 'Date';
@override
String get editMetadataFieldTrackNum => 'Track #';
@override
String get editMetadataFieldDiscNum => 'Disc #';
@override
String get editMetadataFieldGenre => 'Genre';
@override
String get editMetadataFieldIsrc => 'ISRC';
@override
String get editMetadataFieldLabel => 'Label';
@override
String get editMetadataFieldCopyright => 'Copyright';
@override
String get editMetadataFieldCover => 'Cover Art';
@override
String get editMetadataSelectAll => 'All';
@override
String get editMetadataSelectEmpty => 'Empty only';
@override
String queueDownloadingCount(int count) {
return 'Downloading ($count)';
}
@override
String get queueFilteringIndicator => 'Filtering...';
@override
String queueTrackCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count tracks',
one: '1 track',
);
return '$_temp0';
}
@override
String queueAlbumCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count albums',
one: '1 album',
);
return '$_temp0';
}
@override
String get queueEmptyAlbums => 'No album downloads';
@override
String get queueEmptyAlbumsSubtitle =>
'Download multiple tracks from an album to see them here';
@override
String get queueEmptySingles => 'No single downloads';
@override
String get queueEmptySinglesSubtitle =>
'Single track downloads will appear here';
@override
String get queueEmptyHistory => 'No download history';
@override
String get queueEmptyHistorySubtitle => 'Downloaded tracks will appear here';
@override
String get selectionAllPlaylistsSelected => 'All playlists selected';
@override
String get selectionTapPlaylistsToSelect => 'Tap playlists to select';
@override
String get selectionSelectPlaylistsToDelete => 'Select playlists to delete';
@override
String get audioAnalysisTitle => 'Audio Quality Analysis';
@override
String get audioAnalysisDescription =>
'Verify lossless quality with spectrum analysis';
@override
String get audioAnalysisAnalyzing => 'Analyzing audio...';
@override
String get audioAnalysisSampleRate => 'Sample Rate';
@override
String get audioAnalysisCodec => 'Codec';
@override
String get audioAnalysisContainer => 'Container';
@override
String get audioAnalysisDecodedFormat => 'Decoded Format';
@override
String get audioAnalysisBitDepth => 'Bit Depth';
@override
String get audioAnalysisChannels => 'Channels';
@override
String get audioAnalysisDuration => 'Duration';
@override
String get audioAnalysisNyquist => 'Nyquist';
@override
String get audioAnalysisFileSize => 'Size';
@override
String get audioAnalysisDynamicRange => 'Dynamic Range';
@override
String get audioAnalysisPeak => 'Peak';
@override
String get audioAnalysisRms => 'RMS';
@override
String get audioAnalysisLufs => 'LUFS';
@override
String get audioAnalysisTruePeak => 'True Peak';
@override
String get audioAnalysisClipping => 'Clipping';
@override
String get audioAnalysisNoClipping => 'No clipping';
@override
String get audioAnalysisSpectralCutoff => 'Spectral Cutoff';
@override
String get audioAnalysisChannelStats => 'Per-channel Stats';
@override
String get audioAnalysisSamples => 'Samples';
@override
String get audioAnalysisRescan => 'Re-analyze';
@override
String get audioAnalysisRescanning => 'Re-analyzing audio...';
@override
String get extensionsHomeFeedProvider => 'Home Feed Provider';
@override
String get extensionsHomeFeedDescription =>
'Choose which extension provides the home feed on the main screen';
@override
String get extensionsHomeFeedAuto => 'Auto';
@override
String get extensionsHomeFeedAutoSubtitle =>
'Automatically select the best available';
@override
String get extensionsHomeFeedOff => 'Off';
@override
String get extensionsHomeFeedOffSubtitle =>
'Do not show the home feed on the main screen';
@override
String extensionsHomeFeedUse(String extensionName) {
return 'Use $extensionName home feed';
}
@override
String get extensionsNoHomeFeedExtensions => 'No extensions with home feed';
@override
String get cancelDownloadTitle => 'Cancel download?';
@override
String cancelDownloadContent(String trackName) {
return 'This will cancel the active download for \"$trackName\".';
}
@override
String get cancelDownloadKeep => 'Keep';
@override
String get metadataSaveFailedFfmpeg => 'Failed to save metadata via FFmpeg';
@override
String get metadataSaveFailedStorage =>
'Failed to write metadata back to storage';
@override
String snackbarFolderPickerFailed(String error) {
return 'Failed to open folder picker: $error';
}
@override
String notifDownloadingTrack(String trackName) {
return 'Downloading $trackName';
}
@override
String notifFinalizingTrack(String trackName) {
return 'Finalizing $trackName';
}
@override
String get notifEmbeddingMetadata => 'Embedding metadata...';
@override
String notifAlreadyInLibraryCount(int completed, int total) {
return 'Already in Library ($completed/$total)';
}
@override
String get notifAlreadyInLibrary => 'Already in Library';
@override
String notifDownloadCompleteCount(int completed, int total) {
return 'Download Complete ($completed/$total)';
}
@override
String get notifDownloadComplete => 'Download Complete';
@override
String notifDownloadsFinished(int completed, int failed) {
return 'Downloads Finished ($completed done, $failed failed)';
}
@override
String get notifVerificationRequiredTitle => 'Verification required';
@override
String get notifVerificationRequiredBody =>
'Open the app to complete verification and resume downloads';
@override
String get notifAllDownloadsComplete => 'All Downloads Complete';
@override
String notifTracksDownloadedSuccess(int count) {
return '$count tracks downloaded successfully';
}
@override
String notifDownloadsFinishedBody(int completed, int failed) {
String _temp0 = intl.Intl.pluralLogic(
completed,
locale: localeName,
other: '$completed tracks downloaded',
one: '1 track downloaded',
);
String _temp1 = intl.Intl.pluralLogic(
failed,
locale: localeName,
other: '$failed failed',
one: '1 failed',
);
return '$_temp0, $_temp1';
}
@override
String get notifDownloadsCanceledTitle => 'Downloads canceled';
@override
String notifDownloadsCanceledBody(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count downloads canceled by user',
one: '1 download canceled by user',
);
return '$_temp0';
}
@override
String get notifScanningLibrary => 'Scanning local library';
@override
String notifLibraryScanProgressWithTotal(
int scanned,
int total,
int percentage,
) {
return '$scanned/$total files • $percentage%';
}
@override
String notifLibraryScanProgressNoTotal(int scanned, int percentage) {
return '$scanned files scanned • $percentage%';
}
@override
String get notifLibraryScanComplete => 'Library scan complete';
@override
String notifLibraryScanCompleteBody(int count) {
return '$count tracks indexed';
}
@override
String notifLibraryScanExcluded(int count) {
return '$count excluded';
}
@override
String notifLibraryScanErrors(int count) {
return '$count errors';
}
@override
String get notifLibraryScanFailed => 'Library scan failed';
@override
String get notifLibraryScanCancelled => 'Library scan cancelled';
@override
String get notifLibraryScanStopped => 'Scan stopped before completion.';
@override
String notifDownloadingUpdate(String version) {
return 'Downloading SpotiFLAC Mobile v$version';
}
@override
String notifUpdateProgress(String received, String total, int percentage) {
return '$received / $total MB • $percentage%';
}
@override
String get notifUpdateReady => 'Update Ready';
@override
String notifUpdateReadyBody(String version) {
return 'SpotiFLAC Mobile v$version downloaded. Tap to install.';
}
@override
String get notifUpdateFailed => 'Update Failed';
@override
String get notifUpdateFailedBody =>
'Could not download update. Try again later.';
@override
String get searchTracks => 'Tracks';
@override
String get homeSearchHintDefault => 'Paste supported URL or search...';
@override
String homeSearchHintProvider(String providerName) {
return 'Search with $providerName...';
}
@override
String get homeImportCsvTooltip => 'Import CSV';
@override
String get homeChangeSearchProviderTooltip => 'Change search provider';
@override
String get actionPaste => 'Paste';
@override
String get tutorialSearchHint => 'Paste or search...';
@override
String get tutorialDownloadCompletedSemantics => 'Download completed';
@override
String get tutorialDownloadInProgressSemantics => 'Download in progress';
@override
String get tutorialStartDownloadSemantics => 'Start download';
@override
String get optionsEmbedMetadata => 'Embed Metadata';
@override
String get optionsEmbedMetadataSubtitleOn =>
'Write metadata, cover art, and embedded lyrics to files';
@override
String get optionsEmbedMetadataSubtitleOff =>
'Disabled (advanced): skip all metadata embedding';
@override
String get trackCoverNoEmbeddedArt => 'No embedded album art found';
@override
String get trackCoverReplace => 'Replace Cover';
@override
String get trackCoverPick => 'Pick Cover';
@override
String get trackCoverClearSelected => 'Clear selected cover';
@override
String get trackCoverCurrent => 'Current cover';
@override
String get trackCoverSelected => 'Selected cover';
@override
String get trackCoverReplaceNotice =>
'The selected cover will replace the current embedded cover when you tap Save.';
@override
String get actionStop => 'Stop';
@override
String get queueFinalizingDownload => 'Finalizing download';
@override
String get queueDownloadedFileMissing => 'Downloaded file missing';
@override
String get queueDownloadCompleted => 'Download completed';
@override
String get queueRateLimitTitle => 'Service rate limited';
@override
String get queueRateLimitMessage =>
'This track may still be available. Wait a few minutes, reduce parallel downloads, then retry.';
@override
String appearanceSelectAccentColor(String hex) {
return 'Select accent color $hex';
}
@override
String get logAutoScrollOn => 'Auto-scroll ON';
@override
String get logAutoScrollOff => 'Auto-scroll OFF';
@override
String get logCopyLogs => 'Copy logs';
@override
String get logClearSearch => 'Clear search';
@override
String get logIssueIspBlockingLabel => 'ISP BLOCKING DETECTED';
@override
String get logIssueIspBlockingDescription =>
'Your ISP may be blocking access to download services';
@override
String get logIssueIspBlockingSuggestion =>
'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8';
@override
String get logIssueRateLimitedLabel => 'RATE LIMITED';
@override
String get logIssueRateLimitedDescription =>
'Too many requests to the service';
@override
String get logIssueRateLimitedSuggestion =>
'Wait a few minutes before trying again';
@override
String get logIssueNetworkErrorLabel => 'NETWORK ERROR';
@override
String get logIssueNetworkErrorDescription => 'Connection issues detected';
@override
String get logIssueNetworkErrorSuggestion => 'Check your internet connection';
@override
String get logIssueTrackNotFoundLabel => 'TRACK NOT FOUND';
@override
String get logIssueTrackNotFoundDescription =>
'Some tracks could not be found on download services';
@override
String get logIssueTrackNotFoundSuggestion =>
'The track may not be available in lossless quality';
@override
String get clickableLookingUpArtist => 'Looking up artist...';
@override
String clickableInformationUnavailable(String type) {
return '$type information not available';
}
@override
String get extensionDetailsTags => 'Tags';
@override
String get extensionDetailsInformation => 'Information';
@override
String get extensionUtilityFunctions => 'Utility Functions';
@override
String get actionDismiss => 'Dismiss';
@override
String get setupChangeFolderTooltip => 'Change folder';
@override
String a11yOpenTrackByArtist(String trackName, String artistName) {
return 'Open track $trackName by $artistName';
}
@override
String a11yOpenItem(String itemType, String name) {
return 'Open $itemType $name';
}
@override
String a11yOpenItemCount(String title, int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'items',
one: 'item',
);
return 'Open $title, $count $_temp0';
}
@override
String a11yOpenAlbumByArtistTrackCount(
String albumName,
String artistName,
int trackCount,
) {
return 'Open album $albumName by $artistName, $trackCount tracks';
}
@override
String a11yTrackByArtist(String trackName, String artistName) {
return '$trackName by $artistName';
}
@override
String a11ySelectAlbum(String albumName) {
return 'Select album $albumName';
}
@override
String a11yOpenAlbum(String albumName) {
return 'Open album $albumName';
}
@override
String get settingsFiles => 'Files & Folders';
@override
String get settingsFilesSubtitle =>
'Download location, filename, folder structure';
@override
String get settingsMetadata => 'Metadata';
@override
String get settingsMetadataSubtitle =>
'Cover art, tags, ReplayGain, providers';
@override
String get settingsLyrics => 'Lyrics';
@override
String get settingsLyricsSubtitle =>
'Embed, mode, providers, language options';
@override
String get settingsApp => 'App';
@override
String get settingsAppSubtitle => 'Updates, data, extension repo, debug';
@override
String get sectionMetadataProviders => 'Providers';
@override
String get sectionDuplicates => 'Duplicates';
@override
String get sectionLyricsProviderOptions => 'Provider Options';
@override
String get metadataProvidersTitle => 'Metadata Provider Priority';
@override
String get metadataProvidersSubtitle =>
'Drag to set search and metadata source order';
@override
String get downloadDeduplication => 'Skip Duplicate Downloads';
@override
String get downloadDeduplicationEnabled =>
'Already-downloaded tracks will be skipped';
@override
String get downloadDeduplicationDisabled =>
'All tracks will be downloaded regardless of history';
@override
String get downloadFallbackExtensions => 'Fallback Extensions';
@override
String get downloadFallbackExtensionsSubtitle =>
'Choose which extensions can be used as fallback';
@override
String get editMetadataFieldDateHint => 'YYYY-MM-DD or YYYY';
@override
String get editMetadataFieldTrackTotal => 'Track Total';
@override
String get editMetadataFieldDiscTotal => 'Disc Total';
@override
String get editMetadataFieldComposer => 'Composer';
@override
String get editMetadataFieldComment => 'Comment';
@override
String get editMetadataAdvanced => 'Advanced';
@override
String get libraryFilterMetadataMissingTrackNumber => 'Missing track number';
@override
String get libraryFilterMetadataMissingDiscNumber => 'Missing disc number';
@override
String get libraryFilterMetadataMissingArtist => 'Missing artist';
@override
String get libraryFilterMetadataIncorrectIsrcFormat =>
'Incorrect ISRC format';
@override
String get libraryFilterMetadataMissingLabel => 'Missing label';
@override
String collectionDeletePlaylistsMessage(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'playlists',
one: 'playlist',
);
return 'Delete $count $_temp0?';
}
@override
String collectionPlaylistsDeleted(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'playlists',
one: 'playlist',
);
return '$count $_temp0 deleted';
}
@override
String collectionAddedTracksToPlaylist(int count, String playlistName) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Added $count $_temp0 to $playlistName';
}
@override
String collectionAddedTracksToPlaylistWithExisting(
int count,
String playlistName,
int alreadyCount,
) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Added $count $_temp0 to $playlistName ($alreadyCount already in playlist)';
}
@override
String itemCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'items',
one: 'item',
);
return '$count $_temp0';
}
@override
String trackReEnrichSuccessWithFailures(
int successCount,
int total,
int failedCount,
) {
return 'Metadata re-enriched successfully ($successCount/$total) - Failed: $failedCount';
}
@override
String selectionDeleteTracksCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Delete $count $_temp0';
}
@override
String queueDownloadSpeedStatus(String speed) {
return 'Downloading - $speed MB/s';
}
@override
String get queueDownloadStarting => 'Starting...';
@override
String get a11ySelectTrack => 'Select track';
@override
String get a11yDeselectTrack => 'Deselect track';
@override
String a11yPlayTrackByArtist(String trackName, String artistName) {
return 'Play $trackName by $artistName';
}
@override
String storeExtensionsCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'extensions',
one: 'extension',
);
return '$count $_temp0';
}
@override
String storeRequiresVersion(String version) {
return 'Requires v$version+';
}
@override
String get actionGo => 'Go';
@override
String get logIssueSummary => 'Issue Summary';
@override
String logTotalErrors(int count) {
return 'Total errors: $count';
}
@override
String logAffectedDomains(String domains) {
return 'Affected: $domains';
}
@override
String get libraryScanCancelled => 'Scan cancelled';
@override
String get libraryScanCancelledSubtitle =>
'You can retry the scan when ready.';
@override
String libraryDownloadsHistoryExcluded(int count) {
return '$count from Downloads history (excluded from list)';
}
@override
String get downloadNativeWorker => 'Native download worker';
@override
String get downloadNativeWorkerSubtitle =>
'Beta Android service worker for extension downloads';
@override
String get badgeBeta => 'BETA';
@override
String get extensionServiceStatus => 'Service Status';
@override
String get extensionServiceHealth => 'Service health';
@override
String extensionHealthChecksConfigured(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'checks',
one: 'check',
);
return '$count $_temp0 configured';
}
@override
String get extensionOauthConnectHint =>
'Tap Connect to Spotify to fill this field.';
@override
String extensionLastChecked(String time) {
return 'Last checked $time';
}
@override
String get extensionRefreshStatus => 'Refresh status';
@override
String get extensionCustomUrlHandling => 'Custom URL Handling';
@override
String get extensionCustomUrlHandlingSubtitle =>
'This extension can handle links from these sites';
@override
String get extensionCustomUrlHandlingShareHint =>
'Share links from these sites to SpotiFLAC Mobile and this extension will handle them.';
@override
String extensionSettingsCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'settings',
one: 'setting',
);
return '$count $_temp0';
}
@override
String get extensionHealthOnline => 'Online';
@override
String get extensionHealthDegraded => 'Degraded';
@override
String get extensionHealthOffline => 'Offline';
@override
String get extensionHealthNotConfigured => 'Not configured';
@override
String get extensionHealthUnknown => 'Unknown';
@override
String get extensionHealthRequired => 'required';
@override
String get extensionSettingNotSet => 'Not set';
@override
String get extensionActionFailed => 'Action failed';
@override
String get extensionEnterValue => 'Enter value';
@override
String get extensionHealthServiceOnline => 'Service online';
@override
String get extensionHealthServiceDegraded => 'Service degraded';
@override
String get extensionHealthServiceOffline => 'Service offline';
@override
String get extensionHealthServiceUnknown => 'Service status unknown';
@override
String get audioAnalysisStereo => 'Stereo';
@override
String get audioAnalysisMono => 'Mono';
@override
String trackOpenInService(String serviceName) {
return 'Open in $serviceName';
}
@override
String get trackLyricsEmbeddedSource => 'Embedded';
@override
String get unknownAlbum => 'Unknown Album';
@override
String get unknownArtist => 'Unknown Artist';
@override
String get permissionAudio => 'Audio';
@override
String get permissionStorage => 'Storage';
@override
String get permissionNotification => 'Notification';
@override
String get errorInvalidFolderSelected => 'Invalid folder selected';
@override
String get storeAnyVersion => 'Any';
@override
String get storeCategoryMetadata => 'Metadata';
@override
String get storeCategoryDownload => 'Download';
@override
String get storeCategoryUtility => 'Utility';
@override
String get storeCategoryLyrics => 'Lyrics';
@override
String get storeCategoryIntegration => 'Integration';
@override
String get artistReleases => 'Releases';
@override
String get editMetadataSelectNone => 'None';
@override
String queueRetryAllFailed(int count) {
return 'Retry $count failed';
}
@override
String get settingsSaveDownloadHistory => 'Save download history';
@override
String get settingsSaveDownloadHistorySubtitle =>
'Keep completed downloads in history and library views';
@override
String get dialogDisableHistoryTitle => 'Turn off download history?';
@override
String get dialogDisableHistoryMessage =>
'Existing history will be cleared. Downloaded files will not be deleted.';
@override
String get dialogDisableAndClear => 'Turn off and clear';
@override
String get openInOtherServices => 'Open in Other Services';
@override
String get shareSheetNoExtensions => 'No other compatible services';
@override
String get shareSheetNotFound => 'Not found';
@override
String get shareSheetCopyLink => 'Copy Link';
@override
String shareSheetLinkCopied(Object service) {
return '$service link copied';
}
@override
String get libraryPlayback => 'Playback';
@override
String get libraryExternalPlayer => 'External player';
@override
String get libraryExternalPlayerSubtitle =>
'Recommended for listening, best quality, gapless playback, EQ, and wider format support';
@override
String get libraryBuiltInPreviewPlayer => 'Built-in preview player';
@override
String get libraryBuiltInPreviewPlayerSubtitle =>
'Only for quick local previews inside SpotiFLAC Mobile, not recommended for regular listening';
@override
String get libraryBuiltInPlayerInfo =>
'The built-in player is a preview tool for checking local tracks quickly. Use an external music player for actual listening.';
@override
String get nowPlayingTitle => 'Now Playing';
@override
String get nowPlayingNothingPlaying => 'Nothing is playing';
@override
String get nowPlayingMinimize => 'Minimize';
@override
String get nowPlayingUpNext => 'Up next';
@override
String get nowPlayingDetails => 'Details';
@override
String get nowPlayingOpenInExternalPlayer => 'Open in external player';
@override
String get nowPlayingTabPlayer => 'Player';
@override
String get nowPlayingTabLyrics => 'Lyrics';
@override
String get nowPlayingNoLyrics => 'No lyrics in this file';
@override
String get nowPlayingLibraryEmpty => 'Your library is empty';
@override
String nowPlayingShuffleLibraryFailed(String error) {
return 'Could not shuffle library: $error';
}
@override
String get nowPlayingShuffleOn => 'Shuffle on';
@override
String get nowPlayingPlayInOrder => 'Play in order';
@override
String get nowPlayingShuffleLibrary => 'Shuffle library';
@override
String get nowPlayingQueueEmpty => 'Queue is empty';
@override
String get nowPlayingNoMetadata => 'No metadata available';
@override
String get announcementUnableToOpenLink =>
'Unable to open link. Please try again.';
@override
String trackConvertLosslessOutputWithCap(String quality) {
return 'Lossless output with $quality cap';
}
@override
String trackConvertConfirmMessageLosslessCapped(
String sourceFormat,
String targetFormat,
String quality,
) {
return 'Convert from $sourceFormat to $targetFormat ($quality)?\n\nThe output stays in a lossless codec, but bit depth/sample rate will be capped. Original file will be deleted after conversion.';
}
@override
String selectionBatchConvertConfirmMessageLosslessCapped(
int count,
String format,
String quality,
) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Convert $count $_temp0 to $format ($quality)?\n\nThe output stays in a lossless codec, but bit depth/sample rate will be capped. Original files will be deleted after conversion.';
}
@override
String trackConvertActionLabelLossless(
String sourceFormat,
String targetFormat,
String quality,
) {
return '$sourceFormat$targetFormat ($quality)';
}
@override
String trackConvertActionLabelLossy(
String sourceFormat,
String targetFormat,
String bitrate,
) {
return '$sourceFormat$targetFormat @ $bitrate';
}
@override
String get aboutPaxsenixSubtitle =>
'Lyrics proxy for Musixmatch, Netease, Apple Music, QQ Music, Spotify, Deezer, YouTube, Kugou, and Genius';
@override
String get snackbarPlayingNext => 'Playing next';
@override
String get snackbarAddedToQueueGeneric => 'Added to queue';
@override
String selectionDeletePlaylistsCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'playlists',
one: 'playlist',
);
return 'Delete $count $_temp0';
}
@override
String get actionShuffle => 'Shuffle';
@override
String get downloadPrimaryArtistOnlyOn => 'Primary only: On';
@override
String get downloadPrimaryArtistOnlyOff => 'Primary only: Off';
@override
String get downloadAlbumArtistMetadataPrimaryOnly =>
'Album Artist metadata: Primary only';
@override
String get downloadAlbumArtistMetadataFull => 'Album Artist metadata: Full';
@override
String get trackConvertOriginal => 'Original';
@override
String get trackConvertOriginalQuality => 'Original quality';
@override
String get trackConvertLosslessSuffix => 'Lossless';
@override
String get trackConvertDithering => 'Dithering';
@override
String get trackConvertResampler => 'Resampler';
@override
String get trackConvertDitherNone => 'None';
@override
String get trackConvertDitherTriangular => 'TPDF';
@override
String get trackConvertDitherTriangularHp => 'Triangular HP';
@override
String get trackConvertResamplerSwr => 'SWR';
@override
String get trackConvertResamplerSoxr => 'SoXr';
@override
String get updateSeeReleaseNotes => 'See release notes for details.';
@override
String get unknownTitle => 'Unknown title';
@override
String get trackPlayNext => 'Play next';
@override
String get trackAddToQueue => 'Add to queue';
@override
String snackbarExtensionInstalledEnable(String extensionName) {
return '$extensionName installed. Enable it in Settings > Extensions';
}
@override
String snackbarExtensionUpdatedVersion(String extensionName, String version) {
return '$extensionName updated to v$version';
}
@override
String snackbarFailedToInstallNamed(String extensionName) {
return 'Failed to install $extensionName';
}
@override
String snackbarFailedToUpdateNamed(String extensionName) {
return 'Failed to update $extensionName';
}
@override
String get releaseTypeEp => 'EP';
@override
String get releaseTypeSingle => 'Single';
@override
String get trackCoverOnline => 'Online cover';
@override
String get regionCountryUS => 'United States';
@override
String get regionCountryGB => 'United Kingdom';
@override
String get regionCountryFR => 'France';
@override
String get regionCountryDE => 'Germany';
@override
String get regionCountryJP => 'Japan';
@override
String get regionCountryKR => 'South Korea';
@override
String get regionCountryIN => 'India';
@override
String get regionCountryID => 'Indonesia';
@override
String get regionCountryBR => 'Brazil';
@override
String get regionCountryMX => 'Mexico';
@override
String get regionCountryAU => 'Australia';
@override
String get regionCountryCA => 'Canada';
@override
String get regionCountryXK => 'Kosovo';
@override
String get extensionVerificationBrowserTitle => 'Verification browser';
@override
String get extensionVerificationBrowserSubtitleExternal =>
'Open challenges in the default browser first';
@override
String get extensionVerificationBrowserSubtitleInApp =>
'Open challenges in the in-app browser first';
@override
String get extensionVerificationBrowserExternal => 'External';
@override
String get extensionVerificationBrowserInApp => 'In-app';
@override
String get extensionVerificationHelpTitleManual =>
'Open verification manually';
@override
String get extensionVerificationHelpTitleWaiting =>
'Verification still waiting';
@override
String get extensionVerificationHelpMessageManual =>
'SpotiFLAC Mobile could not open the browser automatically. Open this link in your browser, or copy it manually.';
@override
String get extensionVerificationHelpMessageWaiting =>
'If the browser did not open, or verification finished but did not return to SpotiFLAC Mobile, open this link again or copy it manually.';
@override
String get extensionVerificationClose => 'Close';
@override
String get extensionVerificationCopyLink => 'Copy link';
@override
String get extensionVerificationLinkCopied => 'Verification link copied';
@override
String get extensionVerificationOpenBrowser => 'Open browser';
}
/// The translations for Portuguese, as used in Portugal (`pt_PT`).
class AppLocalizationsPtPt extends AppLocalizationsPt {
AppLocalizationsPtPt() : super('pt_PT');
@override
String get appName => 'SpotiFLAC Mobile';
@override
String get navHome => 'Início';
@override
String get navLibrary => 'Biblioteca';
@override
String get navSettings => 'Configurações';
@override
String get navStore => 'Repo';
@override
String get homeTitle => 'Início';
@override
String get homeSubtitle => 'Cole um URL compatível ou pesquise por nome';
@override
String get homeEmptyTitle => 'Ainda não há provedores de pesquisa';
@override
String get homeEmptySubtitle => 'Instale uma extensão para continuar.';
@override
String get homeSupports =>
'Suporte: Faixas, Álbuns, Playlists, URLs de Artista';
@override
String get homeRecent => 'Recentes';
@override
String get historyFilterAll => 'Tudo';
@override
String get historyFilterAlbums => 'Álbuns';
@override
String get historyFilterSingles => 'Singles';
@override
String get historySearchHint => 'Pesquisar histórico...';
@override
String get settingsTitle => 'Configurações';
@override
String get settingsDownload => '';
@override
String get settingsAppearance => 'Aparência';
@override
String get settingsExtensions => 'Extensões';
@override
String get settingsAbout => 'Sobre';
@override
String get downloadTitle => '';
@override
String get downloadAskQualitySubtitle =>
'Mostrar seletor de qualidade para cada download';
@override
String get downloadFilenameFormat => 'Formato do Nome do Arquivo';
@override
String get downloadSingleFilenameFormat =>
'Formato do nome do arquivo para Singles';
@override
String get downloadSingleFilenameFormatDescription =>
'Padrão de nome de arquivo para Singles e EPs. Utiliza as mesmas tags do formato de álbum.';
@override
String get downloadFolderOrganization => 'Organização de Pastas';
@override
String get appearanceTitle => 'Aparência';
@override
String get appearanceThemeSystem => 'Sistema';
@override
String get appearanceThemeLight => 'Claro';
@override
String get appearanceThemeDark => 'Escuro';
@override
String get appearanceDynamicColor => 'Cores Dinâmicas';
@override
String get appearanceDynamicColorSubtitle =>
'Usar cores do seu papel de parede';
@override
String get appearanceHistoryView => 'Visualização do Histórico';
@override
String get appearanceHistoryViewList => 'Lista';
@override
String get appearanceHistoryViewGrid => 'Grade';
@override
String get optionsPrimaryProvider => 'Provedor Primário';
@override
String get optionsPrimaryProviderSubtitle =>
'Serviço usado para pesquisar por faixa ou nome do álbum';
@override
String optionsUsingExtension(String extensionName) {
return 'Usando a extensão: $extensionName';
}
@override
String get optionsDefaultSearchTab => 'Aba de pesquisa padrão';
@override
String get optionsDefaultSearchTabSubtitle =>
'Escolha qual aba será aberta primeiro para novos resultados de pesquisa.';
@override
String get optionsAutoFallback => 'Fallback Automático';
@override
String get optionsAutoFallbackSubtitle =>
'Tentar outros serviços se o download falhar';
@override
String get optionsEmbedLyrics => 'Incorporar Letras';
@override
String get optionsEmbedLyricsSubtitle =>
'Salve letras sincronizadas ao lado das suas faixas baixadas';
@override
String get optionsMaxQualityCover => 'Capa de Qualidade Máxima';
@override
String get optionsMaxQualityCoverSubtitle =>
'Baixar capa do álbum com a mais alta resolução';
@override
String get optionsReplayGain => 'ReplayGain';
@override
String get optionsReplayGainSubtitleOn =>
'Analisar o volume e incorporar tags ReplayGain (EBU R128)';
@override
String get optionsReplayGainSubtitleOff =>
'Desativado: sem etiquetas de normalização de intensidade';
@override
String get trackReplayGain => 'Reanalisar ReplayGain';
@override
String get trackReplayGainScanning => 'Analisando o volume...';
@override
String get trackReplayGainSuccess => 'Etiquetas ReplayGain adicionadas';
@override
String get trackReplayGainFailed => 'Falha ao adicionar etiquetas ReplayGain';
@override
String selectionReplayGainCount(int count) {
return 'ReplayGain ($count)';
}
@override
String get replayGainBatchConfirmTitle => 'Adicionar ReplayGain';
@override
String replayGainBatchConfirmMessage(int count) {
return 'Analisar o volume e gravar etiquetas ReplayGain em $count faixa(s)?';
}
@override
String get replayGainBatchAnalyzing => 'Analisando ReplayGain...';
@override
String replayGainBatchSuccess(int success, int total) {
return 'ReplayGain adicionado a $success de $total faixas';
}
@override
String get optionsArtistTagMode => 'Modo de etiqueta de artista';
@override
String get optionsArtistTagModeDescription =>
'Escolha como múltiplos artistas são escritos em etiquetas incorporadas.';
@override
String get optionsArtistTagModeJoined => 'Valor único combinado';
@override
String get optionsArtistTagModeJoinedSubtitle =>
'Escreva um valor ARTIST único como \"Artista A, Artista B\" para máxima compatibilidade com o player';
@override
String get optionsArtistTagModeSplitVorbis =>
'Dividir etiquetas para FLAC/Opus';
@override
String get optionsArtistTagModeSplitVorbisSubtitle =>
'Escrever uma etiqueta de artista por artista para FLAC e Opus; MP3 e M4A permanecem combinados.';
@override
String get optionsExtensionStore => 'Repositório de extensões';
@override
String get optionsExtensionStoreSubtitle =>
'Mostrar aba de repositório na navegação';
@override
String get optionsCheckUpdates => 'Procurar Atualizações';
@override
String get optionsCheckUpdatesSubtitle =>
'Notificar quando uma nova versão estiver disponível';
@override
String get optionsUpdateChannel => 'Canal de Atualização';
@override
String get optionsUpdateChannelStable => 'Somente versões estáveis';
@override
String get optionsUpdateChannelPreview => 'Obter versões de prévia';
@override
String get optionsUpdateChannelWarning =>
'A prévia pode conter erros ou recursos incompletos';
@override
String get optionsClearHistory => 'Limpar Histórico de Download';
@override
String get optionsClearHistorySubtitle =>
'Remover todas as faixas baixadas do histórico';
@override
String get optionsDetailedLogging => 'Registro detalhado';
@override
String get optionsDetailedLoggingOn =>
'Registros detalhados estão sendo gravados';
@override
String get optionsDetailedLoggingOff => 'Habilitar para relatórios de erros';
@override
String get extensionsTitle => 'Extensões';
@override
String get extensionsDisabled => 'Desabilitado';
@override
String extensionsVersion(String version) {
return 'Versão $version';
}
@override
String get extensionsUninstall => 'Desinstalar';
@override
String get storeTitle => 'Repositório de extensões';
@override
String get storeSearch => 'Pesquisar extensões...';
@override
String get storeInstall => 'Instalar';
@override
String get storeInstalled => 'Instalado';
@override
String get storeUpdate => 'Atualizar';
@override
String get aboutTitle => 'Sobre';
@override
String get aboutContributors => 'Colaboradores';
@override
String get aboutMobileDeveloper => 'Desenvolvedor da versão móvel';
@override
String get aboutOriginalCreator => 'Criador do SpotiFLAC original';
@override
String get aboutLogoArtist =>
'O artista talentoso que criou o nosso lindo logotipo do aplicativo!';
@override
String get aboutTranslators => 'Tradutores';
@override
String get aboutSpecialThanks => 'Agradecimentos Especiais';
@override
String get aboutLinks => 'Links';
@override
String get aboutMobileSource => 'Código-fonte do app móvel';
@override
String get aboutPCSource => 'Código-fonte do app desktop';
@override
String get aboutKeepAndroidOpen => 'Manter o Android aberto';
@override
String get aboutReportIssue => 'Reportar um problema';
@override
String get aboutReportIssueSubtitle =>
'Reporte qualquer problema que encontrar';
@override
String get aboutFeatureRequest => 'Solicitação de recurso';
@override
String get aboutFeatureRequestSubtitle =>
'Sugira novos recursos para o aplicativo';
@override
String get aboutTelegramChannel => 'Canal do Telegram';
@override
String get aboutTelegramChannelSubtitle => 'Anúncios e atualizações';
@override
String get aboutTelegramChat => 'Comunidade do Telegram';
@override
String get aboutTelegramChatSubtitle => 'Converse com outros usuários';
@override
String get aboutSocial => 'Social';
@override
String get aboutApp => 'Aplicativo';
@override
String get aboutVersion => 'Versão';
@override
String get aboutBinimumDesc =>
'O criador do QQDL e da HiFi API. Este projeto ajudou a moldar o suporte a transferências sem perdas.';
@override
String get aboutSachinsenalDesc =>
'O criador original do projeto HiFi. Uma base para integração de fontes sem perdas.';
@override
String get aboutSjdonadoDesc =>
'Criador do I Don\'t Have Spotify (IDHS). O resolvedor de link alternativo que salva o dia!';
@override
String get aboutAppDescription =>
'Pesquisar metadados de músicas, gerenciar extensões e organizar sua biblioteca.';
@override
String get artistAlbums => 'Álbuns';
@override
String get artistSingles => 'Singles e EPs';
@override
String get artistCompilations => 'Compilações';
@override
String get artistPopular => 'Populares';
@override
String artistMonthlyListeners(String count) {
return '$count ouvintes mensais';
}
@override
String get trackMetadataService => 'Serviço';
@override
String get trackMetadataPlay => 'Reproduzir';
@override
String get trackMetadataShare => 'Compartilhar';
@override
String get trackMetadataDelete => 'Apagar';
@override
String get setupGrantPermission => 'Conceder Permissão';
@override
String get setupSkip => 'Ignorar por enquanto';
@override
String get setupStorageAccessRequired => 'Acesso ao Armazenamento Necessário';
@override
String get setupStorageAccessMessageAndroid11 =>
'O Android 11+ requer a permissão \"Acesso a Todos os Arquivos\" para salvar arquivos na pasta de download escolhida.';
@override
String get setupOpenSettings => 'Abrir Configurações';
@override
String get setupPermissionDeniedMessage =>
'Permissão negada. Por favor, conceda todas as permissões para continuar.';
@override
String setupPermissionRequired(String permissionType) {
return 'Permissão $permissionType Necessária';
}
@override
String setupPermissionRequiredMessage(String permissionType) {
return 'A permissão $permissionType é necessária para a melhor experiência. Você pode alterar isso mais tarde em Configurações.';
}
@override
String get setupUseDefaultFolder => 'Usar Pasta Padrão?';
@override
String get setupNoFolderSelected =>
'Nenhuma pasta selecionada. Você gostaria de usar a pasta padrão de música?';
@override
String get setupUseDefault => 'Usar Padrão';
@override
String get setupDownloadLocationTitle => 'Local do Download';
@override
String get setupDownloadLocationIosMessage =>
'No iOS, downloads são salvos na pasta Documentos do aplicativo. Você pode acessá-los através do app Arquivos.';
@override
String get setupAppDocumentsFolder => 'Pasta Documentos do App';
@override
String get setupAppDocumentsFolderSubtitle =>
'Recomendado - acessível através do aplicativo Arquivos';
@override
String get setupChooseFromFiles => 'Escolher dos Arquivos';
@override
String get setupChooseFromFilesSubtitle =>
'Selecione o iCloud ou outro local';
@override
String get setupIosEmptyFolderWarning =>
'Limitação do iOS: Pastas vazias não podem ser selecionadas. Escolha uma pasta com pelo menos um arquivo.';
@override
String get setupIcloudNotSupported =>
'O iCloud Drive não é compatível. Use a pasta Documentos do aplicativo.';
@override
String get setupDownloadInFlac => 'Baixar faixas do Spotify em FLAC';
@override
String get setupStorageGranted => 'Permissão de Armazenamento Concedida!';
@override
String get setupStorageRequired => 'Permissão de Armazenamento Necessária';
@override
String get setupStorageDescription =>
'O SpotiFLAC precisa de permissão de armazenamento para salvar os seus arquivos de música baixados.';
@override
String get setupNotificationGranted => 'Permissão de Notificações Concedida!';
@override
String get setupNotificationEnable => 'Habilitar Notificações';
@override
String get setupFolderChoose => 'Escolher Pasta de Download';
@override
String get setupFolderDescription =>
'Selecione uma pasta onde as suas músicas baixadas serão salvas.';
@override
String get setupSelectFolder => 'Seleccionar Pasta';
@override
String get setupEnableNotifications => 'Habilitar Notificações';
@override
String get setupNotificationBackgroundDescription =>
'Seja notificado sobre o progresso e conclusão do download. Isso ajuda você a acompanhar os downloads quando o app estiver em segundo plano.';
@override
String get setupSkipForNow => 'Ignorar por enquanto';
@override
String get setupNext => 'Próximo';
@override
String get setupGetStarted => 'Começar';
@override
String get setupAllowAccessToManageFiles =>
'Por favor, habilite \"Permitir acesso para gerenciar todos os arquivos\" na próxima tela.';
@override
String get setupLanguageTitle => 'Escolher idioma';
@override
String get setupLanguageDescription =>
'Selecione o idioma de sua preferência para o aplicativo. Você pode alterar isso depois em Configurações.';
@override
String get setupLanguageSystemDefault => 'Padrão do sistema';
@override
String get dialogCancel => 'Cancelar';
@override
String get dialogSave => 'Salvar';
@override
String get dialogDelete => 'Apagar';
@override
String get dialogRetry => 'Tentar novamente';
@override
String get dialogClear => 'Limpar';
@override
String get dialogDone => 'Concluído';
@override
String get dialogImport => 'Importar';
@override
String get dialogDownload => 'Baixar';
@override
String get previewPlay => 'Reproduzir prévia';
@override
String get previewStop => 'Parar prévia';
@override
String get previewUnavailable => 'Prévia indisponível';
@override
String get dialogDiscard => 'Descartar';
@override
String get dialogRemove => 'Remover';
@override
String get dialogUninstall => 'Desinstalar';
@override
String get dialogDiscardChanges => 'Descartar Alterações?';
@override
String get dialogUnsavedChanges =>
'Você tem alterações não salvas. Deseja descartá-las?';
@override
String get dialogClearAll => 'Limpar Tudo';
@override
String get dialogRemoveExtension => 'Remover Extensão';
@override
String get dialogRemoveExtensionMessage =>
'Tem certeza de que deseja remover esta extensão? Isso não pode ser desfeito.';
@override
String get dialogUninstallExtension => 'Desinstalar Extensão?';
@override
String dialogUninstallExtensionMessage(String extensionName) {
return 'Tem certeza que deseja remover $extensionName?';
}
@override
String get dialogClearHistoryTitle => 'Limpar Histórico';
@override
String get dialogClearHistoryMessage =>
'Tem certeza que deseja limpar todo o histórico de downloads? Isso não pode ser desfeito.';
@override
String get dialogDeleteSelectedTitle => 'Apagar Selecionados';
@override
String dialogDeleteSelectedMessage(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'faixas',
one: 'faixa',
);
return 'Apagar $count $_temp0 do histórico?\n\nIsso também apagará os arquivos do armazenamento.';
}
@override
String get dialogImportPlaylistTitle => 'Importar Playlist';
@override
String dialogImportPlaylistMessage(int count) {
return '$count Faixas encontradas em CSV. Adicioná-las à lista de downloads?';
}
@override
String csvImportTracks(int count) {
return '$count faixas do CSV';
}
@override
String snackbarAddedToQueue(String trackName) {
return '\"$trackName\" adicionada à fila';
}
@override
String snackbarAddedTracksToQueue(int count) {
return '$count faixas adicionadas à fila';
}
@override
String snackbarAlreadyDownloaded(String trackName) {
return '\"$trackName\" já foi baixada';
}
@override
String snackbarAlreadyInLibrary(String trackName) {
return '\"$trackName\" já existe na sua biblioteca';
}
@override
String get snackbarHistoryCleared => 'Histórico limpo';
@override
String snackbarDeletedTracks(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'faixas apagadas',
one: 'faixa apagada',
);
return '$count $_temp0';
}
@override
String snackbarCannotOpenFile(String error) {
return 'Não foi possível abrir o arquivo: $error';
}
@override
String get snackbarViewQueue => 'Ver Fila';
@override
String snackbarUrlCopied(String platform) {
return 'URL do $platform copiado para a área de transferência';
}
@override
String get snackbarFileNotFound => 'Arquivo não encontrado';
@override
String get snackbarSelectExtFile =>
'Por favor, selecione um arquivo .spotiflac-ext';
@override
String get snackbarProviderPrioritySaved => 'Prioridade de provedor salva';
@override
String get snackbarMetadataProviderSaved =>
'Prioridade do provedor de metadados salva';
@override
String snackbarExtensionInstalled(String extensionName) {
return '$extensionName instalada.';
}
@override
String snackbarExtensionUpdated(String extensionName) {
return '$extensionName atualizada.';
}
@override
String get snackbarFailedToInstall => 'Falha ao instalar a extensão';
@override
String get snackbarFailedToUpdate => 'Falha ao atualizar a extensão';
@override
String get errorRateLimited => 'Tráfico Limitado (Rate Limited)';
@override
String get errorRateLimitedMessage =>
'Muitas solicitações. Por favor, aguarde um momento antes de pesquisar novamente.';
@override
String get errorNoTracksFound => 'Nenhuma faixa encontrada';
@override
String get searchEmptyResultSubtitle => 'Tente outra palavra-chave';
@override
String get errorUrlNotRecognized => 'Link não reconhecido';
@override
String get errorUrlNotRecognizedMessage =>
'Este link não é suportado. Verifique se a URL está correta e se uma extensão compatível está instalada.';
@override
String get errorUrlFetchFailed =>
'Falha ao carregar o conteúdo deste link. Por favor, tente novamente.';
@override
String errorMissingExtensionSource(String item) {
return 'Não é possível carregar $item: faltando a fonte da extensão';
}
@override
String get actionPause => 'Pausar';
@override
String get actionResume => 'Retomar';
@override
String get actionCancel => 'Cancelar';
@override
String get actionSelectAll => 'Selecionar Tudo';
@override
String get actionDeselect => 'Desselecionar';
@override
String selectionSelected(int count) {
return '$count selecionado(s)';
}
@override
String get selectionAllSelected => 'Todas as faixas selecionadas';
@override
String get selectionSelectToDelete => 'Selecione as faixas para apagar';
@override
String progressFetchingMetadata(int current, int total) {
return 'Buscando metadados... $current/$total';
}
@override
String get progressReadingCsv => 'Lendo CSV...';
@override
String get searchSongs => 'Músicas';
@override
String get searchArtists => 'Artistas';
@override
String get searchAlbums => 'Álbuns';
@override
String get searchPlaylists => 'Listas de reprodução';
@override
String get searchSortTitle => 'Ordenar resultados';
@override
String get searchSortDefault => 'Padrão';
@override
String get searchSortTitleAZ => 'Título (A-Z)';
@override
String get searchSortTitleZA => 'Título (Z-A)';
@override
String get searchSortArtistAZ => 'Artista (A-Z)';
@override
String get searchSortArtistZA => 'Artista (Z-A)';
@override
String get searchSortDurationShort => 'Duração (mais curta)';
@override
String get searchSortDurationLong => 'Duração (mais longa)';
@override
String get searchSortDateOldest => 'Data de lançamento (mais antiga)';
@override
String get searchSortDateNewest => 'Data de lançamento (mais recente)';
@override
String get tooltipPlay => 'Reproduzir';
@override
String get filenameFormat => 'Formato do Nome do Arquivo';
@override
String get filenameShowAdvancedTags => 'Exibir etiquetas avançadas';
@override
String get filenameShowAdvancedTagsDescription =>
'Ativar etiquetas formatadas para preenchimento de faixas e padrões de data';
@override
String get folderOrganizationNone => 'Nenhuma organização';
@override
String get folderOrganizationByPlaylist => 'Por playlist';
@override
String get folderOrganizationByPlaylistSubtitle =>
'Pasta separada para cada playlist';
@override
String get folderOrganizationByArtist => 'Por Artista';
@override
String get folderOrganizationByAlbum => 'Por Album';
@override
String get folderOrganizationByArtistAlbum => 'Artista/Álbum';
@override
String get folderOrganizationDescription =>
'Organizar arquivos baixados em pastas';
@override
String get folderOrganizationNoneSubtitle =>
'Todos os arquivos na pasta de download';
@override
String get folderOrganizationByArtistSubtitle =>
'Pasta separada para cada artista';
@override
String get folderOrganizationByAlbumSubtitle =>
'Pasta separada para cada álbum';
@override
String get folderOrganizationByArtistAlbumSubtitle =>
'Pastas aninhadas para artista e álbum';
@override
String get updateAvailable => 'Atualização Disponível';
@override
String get updateLater => 'Depois';
@override
String get updateStartingDownload => 'Iniciando download...';
@override
String get updateDownloadFailed => 'Download falhou';
@override
String get updateFailedMessage => 'Falha ao baixar a atualização';
@override
String get updateNewVersionReady => 'Uma nova versão está pronta';
@override
String get updateCurrent => 'Atual';
@override
String get updateNew => 'Novo';
@override
String get updateDownloading => 'Baixando...';
@override
String get updateWhatsNew => 'Novidades';
@override
String get updateDownloadInstall => 'Baixar e Instalar';
@override
String get updateDontRemind => 'Não lembrar';
@override
String get providerPriorityTitle => 'Prioridade de Provedor';
@override
String get providerPriorityDescription =>
'Arraste para reordenar provedores de download. O aplicativo irá tentar provedores de cima para baixo ao baixar as faixas.';
@override
String get providerPriorityInfo =>
'Se uma faixa não estiver disponível no primeiro provedor, o aplicativo irá tentar automaticamente a próxima.';
@override
String get providerPriorityFallbackExtensionsDescription =>
'Escolha quais extensões de download instaladas podem ser usadas durante a alternativa automática.';
@override
String get providerPriorityFallbackExtensionsHint =>
'Apenas extensões ativadas com capacidade de provedor de download são listadas aqui.';
@override
String get providerExtension => 'Extensão';
@override
String get metadataProviderPriorityTitle => 'Prioridade de Metadados';
@override
String get metadataProviderPriorityDescription =>
'Arraste para reordenar provedores de metadados. O aplicativo tentará provedores de cima para baixo ao procurar por faixas e buscar metadados.';
@override
String get metadataProviderPriorityInfo =>
'O Deezer não tem limites de taxa e é recomendado como principal. O Spotify pode limitar a taxa após muitas solicitações.';
@override
String get logTitle => 'Registros';
@override
String get logCopied => 'Registros copiados para área de transferência';
@override
String get logSearchHint => 'Pesquisar registros...';
@override
String get logFilterLevel => 'Nível';
@override
String get logFilterSection => 'Filtro';
@override
String get logShareLogs => 'Compartilhar registros';
@override
String get logClearLogs => 'Limpar registros';
@override
String get logClearLogsTitle => 'Limpar Registros';
@override
String get logClearLogsMessage =>
'Tem certeza de que deseja limpar todos os registros?';
@override
String get logFilterBySeverity => 'Filtrar registros por gravidade';
@override
String get logNoLogsYet => 'Ainda não há registros';
@override
String get logNoLogsYetSubtitle =>
'Os registros aparecerão aqui enquanto você usa o aplicativo';
@override
String logEntriesFiltered(int count) {
return 'Entradas ($count filtradas)';
}
@override
String logEntries(int count) {
return 'Entradas ($count)';
}
@override
String get channelStable => 'Estável';
@override
String get channelPreview => 'Prévia';
@override
String get sectionSearchSource => 'Origem da Pesquisa';
@override
String get sectionDownload => 'Baixar';
@override
String get sectionPerformance => 'Desempenho';
@override
String get sectionApp => 'Aplicativo';
@override
String get sectionData => 'Dados';
@override
String get sectionDebug => 'Depuração';
@override
String get sectionService => 'Serviço';
@override
String get sectionAudioQuality => 'Qualidade de Áudio';
@override
String get sectionFileSettings => 'Configurações de Arquivo';
@override
String get sectionLyrics => 'Letras';
@override
String get lyricsMode => 'Modo de Letras';
@override
String get lyricsModeDescription =>
'Escolha como as letras são salvas com os seus downloads';
@override
String get lyricsModeEmbed => 'Incorporar no arquivo';
@override
String get lyricsModeEmbedSubtitle =>
'Letra armazenada nos metadados da FLAC';
@override
String get lyricsModeExternal => 'Arquivo .lrc externo';
@override
String get lyricsModeExternalSubtitle =>
'Arquivo .lrc separado para reprodutores como o Samsung Music';
@override
String get lyricsModeBoth => 'Ambos';
@override
String get lyricsModeBothSubtitle => 'Incorporar e salvar arquivo .lrc';
@override
String get sectionColor => 'Cor';
@override
String get sectionTheme => 'Tema';
@override
String get sectionLayout => 'Aparência\n';
@override
String get sectionLanguage => 'Idioma';
@override
String get appearanceLanguage => 'Idioma do aplicativo';
@override
String get settingsAppearanceSubtitle => 'Tema, cores, exibição';
@override
String get settingsDownloadSubtitle => 'Serviço, qualidade, alternativa';
@override
String get settingsExtensionsSubtitle => 'Gerenciar provedores de download';
@override
String get settingsLogsSubtitle => 'Ver logs do app para depuração';
@override
String get loadingSharedLink => 'Carregando link compartilhado...';
@override
String get pressBackAgainToExit => 'Pressione voltar novamente para sair';
@override
String downloadAllCount(int count) {
return 'Baixar Todos ($count)';
}
@override
String tracksCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count faixas',
one: '1 faixa',
);
return '$_temp0';
}
@override
String get trackCopyFilePath => 'Copiar caminho do arquivo';
@override
String get trackRemoveFromDevice => 'Remover do dispositivo';
@override
String get trackLoadLyrics => 'Carregar Letras';
@override
String get trackMetadata => 'Metadados';
@override
String get trackFileInfo => 'Informações do Arquivo';
@override
String get trackLyrics => 'Letras';
@override
String get trackFileNotFound => 'Arquivo não encontrado';
@override
String get trackOpenInDeezer => 'Abrir no Deezer';
@override
String get trackOpenInSpotify => 'Abrir no Spotify';
@override
String get trackTrackName => 'Nome da faixa';
@override
String get trackArtist => 'Artista';
@override
String get trackAlbumArtist => 'Artista do álbum';
@override
String get trackAlbum => 'Álbum';
@override
String get trackTrackNumber => 'Número da faixa';
@override
String get trackDiscNumber => 'Número do disco';
@override
String get trackDuration => 'Duração';
@override
String get trackAudioQuality => 'Qualidade de Áudio';
@override
String get trackReleaseDate => 'Data de lançamento';
@override
String get trackGenre => 'Género';
@override
String get trackLabel => 'Gravadora';
@override
String get trackCopyright => 'Direitos Autorais';
@override
String get trackDownloaded => 'Baixado';
@override
String get trackCopyLyrics => 'Copiar letra';
@override
String trackLyricsSource(String source) {
return 'Fonte: $source';
}
@override
String get trackLyricsNotAvailable => 'Letra não disponível para esta faixa';
@override
String get trackLyricsNotInFile => 'Nenhuma letra encontrada neste arquivo';
@override
String get trackFetchOnlineLyrics => 'Buscar online';
@override
String get trackLyricsTimeout =>
'A solicitação expirou. Tente novamente mais tarde.';
@override
String get trackLyricsLoadFailed => 'Falha ao carregar a letra';
@override
String get trackEmbedLyrics => 'Incorporar Letras';
@override
String get trackLyricsEmbedded => 'Letras incorporadas com sucesso';
@override
String get trackInstrumental => 'Faixa de instrumentais';
@override
String get trackCopiedToClipboard => 'Copiado para a área de transferência';
@override
String get trackDeleteConfirmTitle => 'Remover do dispositivo?';
@override
String get trackDeleteConfirmMessage =>
'Isto irá excluir o arquivo baixado permanentemente e removê-lo do seu histórico.';
@override
String get dateToday => 'Hoje';
@override
String get dateYesterday => 'Ontem';
@override
String dateDaysAgo(int count) {
return '$count dias atrás';
}
@override
String dateWeeksAgo(int count) {
return '$count semanas atrás';
}
@override
String dateMonthsAgo(int count) {
return '$count meses atrás';
}
@override
String get storeFilterAll => 'Tudo';
@override
String get storeFilterMetadata => 'Metadados';
@override
String get storeFilterDownload => 'Baixar';
@override
String get storeFilterUtility => 'Utilidade';
@override
String get storeFilterLyrics => 'Letras';
@override
String get storeFilterIntegration => 'Integração';
@override
String get storeClearFilters => 'Limpar filtros';
@override
String get storeAddRepoTitle => 'Adicionar repositório de extensões';
@override
String get storeAddRepoDescription =>
'Insira a URL de um repositório do GitHub que contenha um arquivo registry.json para navegar e instalar extensões.';
@override
String get storeRepoUrlLabel => 'URL do repositório';
@override
String get storeRepoUrlHint => 'https://github.com/usuario/repositorio';
@override
String get storeAddRepoButton => 'Adicionar repositório';
@override
String get storeChangeRepoTooltip => 'Mudar repositório';
@override
String get storeRepoDialogTitle => 'Repositório de extensões';
@override
String get storeRepoDialogCurrent => 'Repositório atual:';
@override
String get storeNewRepoUrlLabel => 'URL do novo repositório';
@override
String get storeLoadError => 'Falha ao carregar o repositório';
@override
String get storeEmptyNoExtensions => 'Nenhuma extensão disponível';
@override
String get storeEmptyNoResults => 'Nenhuma extensão encontrada';
@override
String get extensionId => 'ID';
@override
String get extensionError => 'Erro';
@override
String get extensionCapabilities => 'Funcionalidades';
@override
String get extensionMetadataProvider => 'Provedor de Metadados';
@override
String get extensionDownloadProvider => 'Provedor de Download';
@override
String get extensionLyricsProvider => 'Provedor de Letras';
@override
String get extensionUrlHandler => 'Gerenciador de URL';
@override
String get extensionQualityOptions => 'Opções de Qualidade';
@override
String get extensionPostProcessingHooks => 'Ganchos de Pós-Processamento';
@override
String get extensionPermissions => 'Permissões';
@override
String get extensionSettings => 'Configurações';
@override
String get extensionRemoveButton => 'Remover Extensão';
@override
String get extensionUpdated => 'Atualizado';
@override
String get extensionMinAppVersion => 'Versão Mínima do App';
@override
String get extensionCustomTrackMatching =>
'Correspondência de Faixa Personalizada';
@override
String get extensionPostProcessing => 'Pós-Processamento';
@override
String extensionHooksAvailable(int count) {
return '$count gancho(s) disponíveis';
}
@override
String extensionPatternsCount(int count) {
return '$count padrão(ões)';
}
@override
String extensionStrategy(String strategy) {
return 'Estratégia: $strategy';
}
@override
String get extensionsProviderPrioritySection => 'Prioridade de Provedor';
@override
String get extensionsInstalledSection => 'Extensões Instaladas';
@override
String get extensionsNoExtensions => 'Nenhuma extensão instalada';
@override
String get extensionsNoExtensionsSubtitle =>
'Instale arquivos .spotiflac-ext para adicionar novos provedores';
@override
String get extensionsInstallButton => 'Instalar Extensão';
@override
String get extensionsInfoTip =>
'Extensões podem adicionar novos metadados e baixar provedores. Somente instale extensões a partir de fontes confiáveis.';
@override
String get extensionsInstalledSuccess => 'Extensão instalada com sucesso';
@override
String extensionsInstalledCount(int count) {
return '$count extensões instaladas com sucesso';
}
@override
String extensionsInstallPartialSuccess(int installed, int attempted) {
return 'Instaladas $installed de $attempted extensões';
}
@override
String get extensionsDownloadPriority => 'Prioridade de Download';
@override
String get extensionsDownloadPrioritySubtitle =>
'Definir ordem do serviço de download';
@override
String get extensionsFallbackTitle => 'Extensões alternativas';
@override
String get extensionsFallbackSubtitle =>
'Escolha quais extensões de download instaladas podem ser usadas como alternativa';
@override
String get extensionsNoDownloadProvider =>
'Nenhuma extensão com provedor de download';
@override
String get extensionsMetadataPriority => 'Prioridade de Metadados';
@override
String get extensionsMetadataPrioritySubtitle =>
'Definir ordem de origem de pesquisa e metadados';
@override
String get extensionsNoMetadataProvider =>
'Nenhuma extensão com provedor de metadados';
@override
String get extensionsSearchProvider => 'Provedor de Pesquisa';
@override
String get extensionsNoCustomSearch =>
'Nenhuma extensão com pesquisa personalizada';
@override
String get extensionsSearchProviderDescription =>
'Escolha qual serviço utilizar para pesquisar faixas';
@override
String get extensionsCustomSearch => 'Busca personalizada';
@override
String get extensionsErrorLoading => 'Erro ao carregar extensão';
@override
String get qualityFlacLossless => 'FLAC sem perdas';
@override
String get qualityFlacLosslessSubtitle => '16 bits / 44,1 kHz';
@override
String get qualityHiResFlac => 'FLAC de alta resolução';
@override
String get qualityHiResFlacSubtitle => '24-bit / até 96kHz';
@override
String get qualityHiResFlacMax => 'FLAC Max de alta resolução';
@override
String get qualityHiResFlacMaxSubtitle => '24-bit / até 192kHz';
@override
String get downloadLossy320 => 'Lossy 320kbps';
@override
String get downloadLossyFormat => 'Lossy Format';
@override
String get downloadLossy320Format => 'Lossy 320kbps Format';
@override
String get downloadLossy320FormatDesc =>
'Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.';
@override
String get downloadLossyMp3 => 'MP3 320kbps';
@override
String get downloadLossyMp3Subtitle => 'Best compatibility, ~10MB per track';
@override
String get downloadLossyAac => 'AAC/M4A 320kbps';
@override
String get downloadLossyAacSubtitle =>
'Best mobile compatibility, M4A container';
@override
String get downloadLossyOpus256 => 'Opus 256kbps';
@override
String get downloadLossyOpus256Subtitle =>
'Best quality Opus, ~8MB per track';
@override
String get downloadLossyOpus128 => 'Opus 128kbps';
@override
String get downloadLossyOpus128Subtitle => 'Smallest size, ~4MB per track';
@override
String get downloadAskBeforeDownload => 'Perguntar qualidade antes de baixar';
@override
String get downloadDirectory => 'Pasta de Download';
@override
String get downloadSeparateSinglesFolder => 'Pasta de Singles Separada';
@override
String get downloadAlbumFolderStructure => 'Estrutura da Pasta de Álbum';
@override
String get albumFolderStructureDescription =>
'Choose how album folders are structured';
@override
String get downloadUseAlbumArtistForFolders => 'Use Album Artist for folders';
@override
String get downloadUsePrimaryArtistOnly => 'Primary artist only for folders';
@override
String get downloadUsePrimaryArtistOnlyEnabled =>
'Featured artists removed from folder name (e.g. Justin Bieber, Quavo → Justin Bieber)';
@override
String get downloadUsePrimaryArtistOnlyDisabled =>
'Full artist string used for folder name';
@override
String get downloadSelectQuality => 'Selecionar Qualidade';
@override
String get downloadFrom => 'Baixar De';
@override
String get appearanceAmoledDark => 'Escuro AMOLED';
@override
String get appearanceAmoledDarkSubtitle => 'Fundo preto puro';
@override
String get queueClearAll => 'Limpar Tudo';
@override
String get queueClearAllMessage =>
'Você tem certeza que deseja limpar todos os downloads?';
@override
String get settingsAutoExportFailed => 'Auto-export failed downloads';
@override
String get settingsAutoExportFailedSubtitle =>
'Save failed downloads to TXT file automatically';
@override
String get settingsDownloadNetwork => 'Download Network';
@override
String get settingsDownloadNetworkAny => 'WiFi + Mobile Data';
@override
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.';
@override
String get albumFolderArtistAlbum => 'Artista / Álbum';
@override
String get albumFolderArtistAlbumSubtitle =>
'Álbuns/Nome do Artista/Nome do Álbum/';
@override
String get albumFolderArtistYearAlbum => 'Artista / [Ano] Álbum';
@override
String get albumFolderArtistYearAlbumSubtitle =>
'Álbuns/Nome do Artista/[2005] Nome do Álbum/';
@override
String get albumFolderAlbumOnly => 'Somente Álbum';
@override
String get albumFolderAlbumOnlySubtitle => 'Albums/Nome do Álbum/';
@override
String get albumFolderYearAlbum => '[Ano] Álbum';
@override
String get albumFolderYearAlbumSubtitle => 'Álbuns/[2005] Nome do Álbum/';
@override
String get albumFolderArtistAlbumSingles => 'Artista / Álbum + Singles';
@override
String get albumFolderArtistAlbumSinglesSubtitle =>
'Artista/Álbum/ e Artista/Singles/';
@override
String get albumFolderArtistAlbumFlat => 'Artist / Album (Singles flat)';
@override
String get albumFolderArtistAlbumFlatSubtitle =>
'Artist/Album/ and Artist/song.flac';
@override
String get downloadedAlbumDeleteSelected => 'Apagar Selecionados';
@override
String downloadedAlbumDeleteMessage(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'faixas',
one: 'faixa',
);
return 'Excluir $count $_temp0 deste álbum?\n\nIsso também excluirá os arquivos do armazenamento.';
}
@override
String downloadedAlbumSelectedCount(int count) {
return '$count selecionado(s)';
}
@override
String get downloadedAlbumTapToSelect => 'Toque nas faixas para selecionar';
@override
String downloadedAlbumDeleteCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'faixas',
one: 'faixa',
);
return 'Apagar $count $_temp0';
}
@override
String get downloadedAlbumSelectToDelete => 'Selecione as faixas para apagar';
@override
String downloadedAlbumDiscHeader(int discNumber) {
return 'Disco $discNumber';
}
@override
String get recentTypeArtist => 'Artista';
@override
String get recentTypeAlbum => 'Álbum';
@override
String get recentTypeSong => 'Música';
@override
String get recentTypePlaylist => 'Playlist';
@override
String get recentEmpty => 'No recent items yet';
@override
String get recentShowAllDownloads => 'Show All Downloads';
@override
String recentPlaylistInfo(String name) {
return 'Playlist: $name';
}
@override
String get discographyDownload => 'Baixar Discografia';
@override
String get discographyDownloadAll => 'Baixar Tudo';
@override
String discographyDownloadAllSubtitle(int count, int albumCount) {
return '$count faixas de $albumCount lançamentos';
}
@override
String get discographyAlbumsOnly => 'Somente Álbuns';
@override
String discographyAlbumsOnlySubtitle(int count, int albumCount) {
return '$count faixas de $albumCount álbuns';
}
@override
String get discographySinglesOnly => 'Somente Singles e EPs';
@override
String discographySinglesOnlySubtitle(int count, int albumCount) {
return '$count faixas de $albumCount singles';
}
@override
String get discographySelectAlbums => 'Selecione Álbuns...';
@override
String get discographySelectAlbumsSubtitle =>
'Escolher álbuns ou singles específicos';
@override
String get discographyFetchingTracks => 'Buscando faixas...';
@override
String discographyFetchingAlbum(int current, int total) {
return 'Buscando $current de $total...';
}
@override
String discographySelectedCount(int count) {
return '$count selecionado(s)';
}
@override
String get discographyDownloadSelected => 'Baixar Selecionados';
@override
String discographyAddedToQueue(int count) {
return '$count faixas adicionadas à fila';
}
@override
String discographySkippedDownloaded(int added, int skipped) {
return '$added adicionada(s), $skipped já baixada(s)';
}
@override
String get discographyNoAlbums => 'Nenhum álbum disponível';
@override
String get discographyFailedToFetch => 'Falha ao obter alguns álbuns';
@override
String get sectionStorageAccess => 'Storage Access';
@override
String get allFilesAccess => 'All Files Access';
@override
String get allFilesAccessEnabledSubtitle => 'Can write to any folder';
@override
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.';
@override
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.';
@override
String get settingsLocalLibrary => 'Local Library';
@override
String get settingsLocalLibrarySubtitle => 'Scan music & detect duplicates';
@override
String get settingsCache => 'Storage & Cache';
@override
String get settingsCacheSubtitle => 'View size and clear cached data';
@override
String get libraryTitle => 'Local Library';
@override
String get libraryScanSettings => 'Scan Settings';
@override
String get libraryEnableLocalLibrary => 'Enable Local Library';
@override
String get libraryEnableLocalLibrarySubtitle =>
'Scan and track your existing music';
@override
String get libraryFolder => 'Library Folder';
@override
String get libraryFolderHint => 'Tap to select folder';
@override
String get libraryShowDuplicateIndicator => 'Show Duplicate Indicator';
@override
String get libraryShowDuplicateIndicatorSubtitle =>
'Show when searching for existing tracks';
@override
String get libraryAutoScan => 'Auto Scan';
@override
String get libraryAutoScanSubtitle =>
'Escanear automaticamente sua biblioteca em busca de novos arquivos';
@override
String get libraryAutoScanOff => 'Desligar';
@override
String get libraryAutoScanOnOpen => 'Sempre que abrir o aplicativo';
@override
String get libraryAutoScanDaily => 'Daily';
@override
String get libraryAutoScanWeekly => 'Weekly';
@override
String get libraryActions => 'Actions';
@override
String get libraryScan => 'Scan Library';
@override
String get libraryScanSubtitle => 'Scan for audio files';
@override
String get libraryScanSelectFolderFirst => 'Select a folder first';
@override
String get libraryCleanupMissingFiles => 'Cleanup Missing Files';
@override
String get libraryCleanupMissingFilesSubtitle =>
'Remove entries for files that no longer exist';
@override
String get libraryClear => 'Clear Library';
@override
String get libraryClearSubtitle => 'Remove all scanned tracks';
@override
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.';
@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.';
@override
String libraryTracksUnit(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return '$_temp0';
}
@override
String libraryFilesUnit(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'files',
one: 'file',
);
return '$_temp0';
}
@override
String libraryLastScanned(String time) {
return 'Last scanned: $time';
}
@override
String get libraryLastScannedNever => 'Never';
@override
String get libraryScanning => 'Scanning...';
@override
String get libraryScanFinalizing => 'Finalizing library...';
@override
String libraryScanProgress(String progress, int total) {
return '$progress% of $total files';
}
@override
String get libraryInLibrary => 'In Library';
@override
String libraryRemovedMissingFiles(int count) {
return 'Removed $count missing files from library';
}
@override
String get libraryCleared => 'Library cleared';
@override
String get libraryStorageAccessRequired => 'Storage Access Required';
@override
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';
@override
String get librarySourceDownloaded => 'Downloaded';
@override
String get librarySourceLocal => 'Local';
@override
String get libraryFilterAll => 'All';
@override
String get libraryFilterDownloaded => 'Downloaded';
@override
String get libraryFilterLocal => 'Local';
@override
String get libraryFilterTitle => 'Filters';
@override
String get libraryFilterReset => 'Reset';
@override
String get libraryFilterApply => 'Apply';
@override
String get libraryFilterSource => 'Source';
@override
String get libraryFilterQuality => 'Quality';
@override
String get libraryFilterQualityHiRes => 'Hi-Res (24bit)';
@override
String get libraryFilterQualityCD => 'CD (16bit)';
@override
String get libraryFilterQualityLossy => 'Lossy';
@override
String get libraryFilterFormat => 'Format';
@override
String get libraryFilterMetadata => 'Metadata';
@override
String get libraryFilterMetadataComplete => 'Complete metadata';
@override
String get libraryFilterMetadataMissingAny => 'Missing any metadata';
@override
String get libraryFilterMetadataMissingYear => 'Missing year';
@override
String get libraryFilterMetadataMissingGenre => 'Missing genre';
@override
String get libraryFilterMetadataMissingAlbumArtist => 'Missing album artist';
@override
String get libraryFilterSort => 'Sort';
@override
String get libraryFilterSortLatest => 'Latest';
@override
String get libraryFilterSortOldest => 'Oldest';
@override
String get libraryFilterSortAlbumAsc => 'Album (A-Z)';
@override
String get libraryFilterSortAlbumDesc => 'Album (Z-A)';
@override
String get libraryFilterSortGenreAsc => 'Genre (A-Z)';
@override
String get libraryFilterSortGenreDesc => 'Genre (Z-A)';
@override
String get timeJustNow => 'Just now';
@override
String timeMinutesAgo(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count minutes ago',
one: '1 minute ago',
);
return '$_temp0';
}
@override
String timeHoursAgo(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count hours ago',
one: '1 hour ago',
);
return '$_temp0';
}
@override
String get tutorialWelcomeTitle => 'Welcome to SpotiFLAC!';
@override
String get tutorialWelcomeDesc =>
'Let\'s learn how to download your favorite music in lossless quality. This quick tutorial will show you the basics.';
@override
String get tutorialWelcomeTip1 =>
'Download music from Spotify, Deezer, or paste any supported URL';
@override
String get tutorialWelcomeTip2 =>
'Get FLAC quality audio from installed download extensions';
@override
String get tutorialWelcomeTip3 =>
'Automatic metadata, cover art, and lyrics embedding';
@override
String get tutorialSearchTitle => 'Finding Music';
@override
String get tutorialSearchDesc =>
'There are two easy ways to find music you want to download.';
@override
String get tutorialDownloadTitle => 'Downloading Music';
@override
String get tutorialDownloadDesc =>
'Downloading music is simple and fast. Here\'s how it works.';
@override
String get tutorialLibraryTitle => 'Your Library';
@override
String get tutorialLibraryDesc =>
'All your downloaded music is organized in the Library tab.';
@override
String get tutorialLibraryTip1 =>
'View download progress and queue in the Library tab';
@override
String get tutorialLibraryTip2 =>
'Tap any track to play it with your music player';
@override
String get tutorialLibraryTip3 =>
'Switch between list and grid view for better browsing';
@override
String get tutorialExtensionsTitle => 'Extensions';
@override
String get tutorialExtensionsDesc =>
'Extend the app\'s capabilities with community extensions.';
@override
String get tutorialExtensionsTip1 =>
'Browse the Repo tab to discover useful extensions';
@override
String get tutorialExtensionsTip2 =>
'Add new download providers or search sources';
@override
String get tutorialExtensionsTip3 =>
'Get lyrics, enhanced metadata, and more features';
@override
String get tutorialSettingsTitle => 'Customize Your Experience';
@override
String get tutorialSettingsDesc =>
'Personalize the app in Settings to match your preferences.';
@override
String get tutorialSettingsTip1 =>
'Change download location and folder organization';
@override
String get tutorialSettingsTip2 =>
'Set default audio quality and format preferences';
@override
String get tutorialSettingsTip3 => 'Customize app theme and appearance';
@override
String get tutorialReadyMessage =>
'You\'re all set! Start downloading your favorite music now.';
@override
String get libraryForceFullScan => 'Force Full Scan';
@override
String get libraryForceFullScanSubtitle => 'Rescan all files, ignoring cache';
@override
String get cleanupOrphanedDownloads => 'Cleanup Orphaned Downloads';
@override
String get cleanupOrphanedDownloadsSubtitle =>
'Remove history entries for files that no longer exist';
@override
String cleanupOrphanedDownloadsResult(int count) {
return 'Removed $count orphaned entries from history';
}
@override
String get cleanupOrphanedDownloadsNone => 'No orphaned entries found';
@override
String get cacheTitle => 'Storage & Cache';
@override
String get cacheSummaryTitle => 'Cache overview';
@override
String get cacheSummarySubtitle =>
'Clearing cache will not remove downloaded music files.';
@override
String cacheEstimatedTotal(String size) {
return 'Estimated cache usage: $size';
}
@override
String get cacheSectionStorage => 'Cached Data';
@override
String get cacheSectionMaintenance => 'Maintenance';
@override
String get cacheAppDirectory => 'App cache directory';
@override
String get cacheAppDirectoryDesc =>
'HTTP responses, WebView data, and other temporary app data.';
@override
String get cacheTempDirectory => 'Temporary directory';
@override
String get cacheTempDirectoryDesc =>
'Temporary files from downloads and audio conversion.';
@override
String get cacheCoverImage => 'Cache da imagem de capa';
@override
String get cacheCoverImageDesc =>
'Downloaded album and track cover art. Will re-download when viewed.';
@override
String get cacheLibraryCover => 'Library cover cache';
@override
String get cacheLibraryCoverDesc =>
'Cover art extracted from local music files. Will re-extract on next scan.';
@override
String get cacheExploreFeed => 'Explore feed cache';
@override
String get cacheExploreFeedDesc =>
'Explore tab content (new releases, trending). Will refresh on next visit.';
@override
String get cacheTrackLookup => 'Track lookup cache';
@override
String get cacheTrackLookupDesc =>
'Spotify/Deezer track ID lookups. Clearing may slow next few searches.';
@override
String get cacheCleanupUnusedDesc =>
'Remove orphaned download history and library entries for missing files.';
@override
String get cacheNoData => 'No cached data';
@override
String cacheSizeWithFiles(String size, int count) {
return '$size in $count files';
}
@override
String cacheSizeOnly(String size) {
return '$size';
}
@override
String cacheEntries(int count) {
return '$count entries';
}
@override
String cacheClearSuccess(String target) {
return 'Cleared: $target';
}
@override
String get cacheClearConfirmTitle => 'Clear cache?';
@override
String cacheClearConfirmMessage(String target) {
return 'This will clear cached data for $target. Downloaded music files will not be deleted.';
}
@override
String get cacheClearAllConfirmTitle => 'Clear all cache?';
@override
String get cacheClearAllConfirmMessage =>
'This will clear all cache categories on this page. Downloaded music files will not be deleted.';
@override
String get cacheClearAll => 'Clear all cache';
@override
String get cacheCleanupUnused => 'Cleanup unused data';
@override
String get cacheCleanupUnusedSubtitle =>
'Remove orphaned download history and missing library entries';
@override
String cacheCleanupResult(int downloadCount, int libraryCount) {
return 'Cleanup completed: $downloadCount orphaned downloads, $libraryCount missing library entries';
}
@override
String get cacheRefreshStats => 'Refresh stats';
@override
String get trackSaveCoverArt => 'Save Cover Art';
@override
String get trackSaveLyrics => 'Save Lyrics (.lrc)';
@override
String get trackSaveLyricsProgress => 'Saving lyrics...';
@override
String get trackReEnrich => 'Re-enrich';
@override
String get trackReEnrichOnlineSubtitle =>
'Search metadata online and embed into file';
@override
String get trackReEnrichFieldCover => 'Cover Art';
@override
String get trackReEnrichFieldLyrics => 'Lyrics';
@override
String get trackReEnrichFieldBasicTags => 'Album, Album Artist';
@override
String get trackReEnrichFieldTrackInfo => 'Track & Disc Number';
@override
String get trackReEnrichFieldReleaseInfo => 'Date & ISRC';
@override
String get trackReEnrichFieldExtra => 'Genre, Label, Copyright';
@override
String get trackReEnrichSelectAll => 'Select All';
@override
String get trackEditMetadata => 'Edit Metadata';
@override
String trackCoverSaved(String fileName) {
return 'Cover art saved to $fileName';
}
@override
String get trackCoverNoSource => 'No cover art source available';
@override
String trackLyricsSaved(String fileName) {
return 'Lyrics saved to $fileName';
}
@override
String get trackReEnrichProgress => 'Re-enriching metadata...';
@override
String get trackReEnrichSearching => 'Searching metadata online...';
@override
String get trackReEnrichSuccess => 'Metadata re-enriched successfully';
@override
String get trackReEnrichFfmpegFailed => 'FFmpeg metadata embed failed';
@override
String get queueFlacAction => 'Queue FLAC';
@override
String queueFlacConfirmMessage(int count) {
return 'Search online matches for the selected tracks and queue FLAC downloads.\n\nExisting files will not be modified or deleted.\n\nOnly high-confidence matches are queued automatically.\n\n$count selected';
}
@override
String get queueFlacNoReliableMatches =>
'No reliable online matches found for the selection';
@override
String queueFlacQueuedWithSkipped(int addedCount, int skippedCount) {
return 'Added $addedCount tracks to queue, skipped $skippedCount';
}
@override
String trackSaveFailed(String error) {
return 'Failed: $error';
}
@override
String get trackConvertFormat => 'Convert Format';
@override
String get trackConvertTitle => 'Convert Audio';
@override
String get trackConvertTargetFormat => 'Target Format';
@override
String get trackConvertBitrate => 'Bitrate';
@override
String get trackConvertConfirmTitle => 'Confirm Conversion';
@override
String trackConvertConfirmMessage(
String sourceFormat,
String targetFormat,
String bitrate,
) {
return 'Convert from $sourceFormat to $targetFormat at $bitrate?\n\nThe original file will be deleted after conversion.';
}
@override
String trackConvertConfirmMessageLossless(
String sourceFormat,
String targetFormat,
) {
return 'Convert from $sourceFormat to $targetFormat? (Lossless — no quality loss)\n\nThe original file will be deleted after conversion.';
}
@override
String get trackConvertLosslessHint =>
'Lossless conversion — no quality loss';
@override
String get trackConvertConverting => 'Converting audio...';
@override
String trackConvertSuccess(String format) {
return 'Converted to $format successfully';
}
@override
String get trackConvertFailed => 'Conversion failed';
@override
String get cueSplitTitle => 'Split CUE Sheet';
@override
String cueSplitAlbum(String album) {
return 'Album: $album';
}
@override
String cueSplitArtist(String artist) {
return 'Artist: $artist';
}
@override
String cueSplitTrackCount(int count) {
return '$count tracks';
}
@override
String get cueSplitConfirmTitle => 'Split CUE Album';
@override
String cueSplitConfirmMessage(String album, int count) {
return 'Split \"$album\" into $count individual FLAC files?\n\nFiles will be saved to the same directory.';
}
@override
String cueSplitSplitting(int current, int total) {
return 'Splitting CUE sheet... ($current/$total)';
}
@override
String cueSplitSuccess(int count) {
return 'Split into $count tracks successfully';
}
@override
String get cueSplitFailed => 'CUE split failed';
@override
String get cueSplitNoAudioFile => 'Audio file not found for this CUE sheet';
@override
String get cueSplitButton => 'Split into Tracks';
@override
String get actionCreate => 'Create';
@override
String get collectionFoldersTitle => 'My folders';
@override
String get collectionWishlist => 'Wishlist';
@override
String get collectionLoved => 'Loved';
@override
String get collectionFavoriteArtists => 'Favorite Artists';
@override
String get collectionPlaylist => 'Playlist';
@override
String get collectionAddToPlaylist => 'Add to playlist';
@override
String get collectionCreatePlaylist => 'Create playlist';
@override
String get collectionNoPlaylistsYet => 'No playlists yet';
@override
String collectionPlaylistTracks(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count tracks',
one: '1 track',
);
return '$_temp0';
}
@override
String collectionArtistCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count artists',
one: '1 artist',
);
return '$_temp0';
}
@override
String collectionAddedToPlaylist(String playlistName) {
return 'Added to \"$playlistName\"';
}
@override
String collectionAlreadyInPlaylist(String playlistName) {
return 'Already in \"$playlistName\"';
}
@override
String get collectionPlaylistNameHint => 'Playlist name';
@override
String get collectionPlaylistNameRequired => 'Playlist name is required';
@override
String get collectionRenamePlaylist => 'Rename playlist';
@override
String get collectionDeletePlaylist => 'Delete playlist';
@override
String get collectionPlaylistRenamed => 'Playlist renamed';
@override
String get collectionWishlistEmptyTitle => 'Wishlist is empty';
@override
String get collectionWishlistEmptySubtitle =>
'Tap + on tracks to save what you want to download later';
@override
String get collectionLovedEmptyTitle => 'Loved folder is empty';
@override
String get collectionLovedEmptySubtitle =>
'Tap love on tracks to keep your favorites';
@override
String get collectionFavoriteArtistsEmptyTitle => 'No favorite artists yet';
@override
String get collectionFavoriteArtistsEmptySubtitle =>
'Tap the heart on an artist page to keep them here';
@override
String get collectionPlaylistEmptyTitle => 'Playlist is empty';
@override
String get collectionPlaylistEmptySubtitle =>
'Long-press + on any track to add it here';
@override
String get collectionRemoveFromPlaylist => 'Remove from playlist';
@override
String get collectionRemoveFromFolder => 'Remove from folder';
@override
String collectionAddedToLoved(String trackName) {
return '\"$trackName\" added to Loved';
}
@override
String collectionRemovedFromLoved(String trackName) {
return '\"$trackName\" removed from Loved';
}
@override
String collectionAddedToWishlist(String trackName) {
return '\"$trackName\" added to Wishlist';
}
@override
String collectionRemovedFromWishlist(String trackName) {
return '\"$trackName\" removed from Wishlist';
}
@override
String collectionAddedToFavoriteArtists(String artistName) {
return '\"$artistName\" added to Favorite Artists';
}
@override
String collectionRemovedFromFavoriteArtists(String artistName) {
return '\"$artistName\" removed from Favorite Artists';
}
@override
String get trackOptionAddToLoved => 'Add to Loved';
@override
String get trackOptionRemoveFromLoved => 'Remove from Loved';
@override
String get trackOptionAddToWishlist => 'Add to Wishlist';
@override
String get trackOptionRemoveFromWishlist => 'Remove from Wishlist';
@override
String get artistOptionAddToFavorites => 'Add to Favorite Artists';
@override
String get artistOptionRemoveFromFavorites => 'Remove from Favorite Artists';
@override
String get collectionPlaylistChangeCover => 'Change cover image';
@override
String get collectionPlaylistRemoveCover => 'Remove cover image';
@override
String selectionShareCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Share $count $_temp0';
}
@override
String get selectionShareNoFiles => 'No shareable files found';
@override
String selectionConvertCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Convert $count $_temp0';
}
@override
String get selectionConvertNoConvertible => 'No convertible tracks selected';
@override
String get selectionBatchConvertConfirmTitle => 'Batch Convert';
@override
String selectionBatchConvertConfirmMessage(
int count,
String format,
String bitrate,
) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Convert $count $_temp0 to $format at $bitrate?\n\nOriginal files will be deleted after conversion.';
}
@override
String selectionBatchConvertConfirmMessageLossless(int count, String format) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Convert $count $_temp0 to $format? (Lossless — no quality loss)\n\nOriginal files will be deleted after conversion.';
}
@override
String selectionBatchConvertSuccess(int success, int total, String format) {
return 'Converted $success of $total tracks to $format';
}
@override
String downloadedAlbumDownloadedCount(int count) {
return '$count baixado(s)';
}
@override
String get downloadUseAlbumArtistForFoldersAlbumSubtitle =>
'Folder named after Album Artist tag';
@override
String get downloadUseAlbumArtistForFoldersTrackSubtitle =>
'Folder named after Track Artist tag';
@override
String get lyricsProvidersTitle => 'Lyrics Provider Priority';
@override
String get lyricsProvidersDescription =>
'Enable, disable and reorder lyrics sources. Providers are tried top-to-bottom until lyrics are found.';
@override
String get lyricsProvidersInfoText =>
'Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.';
@override
String lyricsProvidersEnabledSection(int count) {
return 'Enabled ($count)';
}
@override
String lyricsProvidersDisabledSection(int count) {
return 'Disabled ($count)';
}
@override
String get lyricsProvidersAtLeastOne =>
'At least one provider must remain enabled';
@override
String get lyricsProvidersSaved => 'Lyrics provider priority saved';
@override
String get lyricsProvidersDiscardContent =>
'You have unsaved changes that will be lost.';
@override
String get lyricsProviderLrclibDesc => 'Open-source synced lyrics database';
@override
String get lyricsProviderNeteaseDesc =>
'NetEase Cloud Music (good for Asian songs)';
@override
String get lyricsProviderMusixmatchDesc =>
'Largest lyrics database (multi-language)';
@override
String get lyricsProviderAppleMusicDesc =>
'Word-by-word synced lyrics (via proxy)';
@override
String get lyricsProviderQqMusicDesc =>
'QQ Music (good for Chinese songs, via proxy)';
@override
String get lyricsProviderLyricsPlusDesc =>
'Word-by-word karaoke lyrics (Apple/Musixmatch/Spotify/QQ, via proxy)';
@override
String get lyricsProviderExtensionDesc => 'Extension provider';
@override
String get safMigrationTitle => 'Storage Update Required';
@override
String get safMigrationMessage1 =>
'SpotiFLAC now uses Android Storage Access Framework (SAF) for downloads. This fixes \"permission denied\" errors on Android 10+.';
@override
String get safMigrationMessage2 =>
'Please select your download folder again to switch to the new storage system.';
@override
String get safMigrationSuccess => 'Download folder updated to SAF mode';
@override
String get settingsDonate => 'Support Development';
@override
String get settingsDonateSubtitle => 'Buy the developer a coffee';
@override
String get settingsBackup => 'Backup & Restore';
@override
String get settingsBackupSubtitle =>
'Move your library, history and settings to a new device';
@override
String get backupTitle => 'Backup & Restore';
@override
String get backupExportSectionTitle => 'Create backup';
@override
String get backupExportSectionDescription =>
'Save your settings, download history, liked tracks, wishlist, favorite artists and playlists into a single file you can keep or move to another phone.';
@override
String get backupExportButton => 'Create backup file';
@override
String get backupImportSectionTitle => 'Restore backup';
@override
String get backupImportSectionDescription =>
'Pick a backup file to restore your data. This replaces the current settings, history and library on this device.';
@override
String get backupImportButton => 'Choose backup file';
@override
String get backupCreated => 'Backup created';
@override
String get backupCreateFailed => 'Failed to create backup';
@override
String get backupRestoreConfirmTitle => 'Restore this backup?';
@override
String get backupRestoreConfirmMessage =>
'This will replace your current settings, download history, liked tracks, wishlist and playlists with the contents of the backup. This cannot be undone.';
@override
String get backupRestoreConfirmButton => 'Restore';
@override
String get backupRestored => 'Backup restored successfully';
@override
String get backupRestoreFailed => 'Failed to restore backup';
@override
String get backupInvalidFile => 'This file is not a valid SpotiFLAC backup';
@override
String get backupRestoreRestartHint =>
'Restart the app to make sure every change is applied.';
@override
String get backupContentsTitle => 'Backup contents';
@override
String get backupContentsSettings => 'App settings';
@override
String backupContentsHistory(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'items',
one: 'item',
);
return '$count history $_temp0';
}
@override
String backupContentsLiked(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return '$count liked $_temp0';
}
@override
String backupContentsWishlist(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return '$count wishlist $_temp0';
}
@override
String backupContentsPlaylists(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count playlists',
one: '1 playlist',
);
return '$_temp0';
}
@override
String backupContentsArtists(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count favorite artists',
one: '1 favorite artist',
);
return '$_temp0';
}
@override
String backupContentsExtensions(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count extensions',
one: '1 extension',
);
return '$_temp0';
}
@override
String get backupIncludeSecrets => 'Include extension credentials';
@override
String get backupIncludeSecretsDescription =>
'Tokens and API keys from extensions will be saved into the backup file. Keep the file private. When off, you re-enter them after restoring.';
@override
String backupExtensionsRestoreFailed(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'extensions',
one: 'extension',
);
return '$count $_temp0 could not be reinstalled. Install them manually from the repo.';
}
@override
String get tooltipLoveAll => 'Love All';
@override
String get tooltipAddToPlaylist => 'Add to Playlist';
@override
String snackbarRemovedTracksFromLoved(int count) {
return 'Removed $count tracks from Loved';
}
@override
String snackbarAddedTracksToLoved(int count) {
return 'Added $count tracks to Loved';
}
@override
String get dialogDownloadAllTitle => 'Download All';
@override
String dialogDownloadAllMessage(int count) {
return 'Download $count tracks?';
}
@override
String get homeSkipAlreadyDownloaded => 'Skip already downloaded songs';
@override
String get homeGoToAlbum => 'Go to Album';
@override
String get homeAlbumInfoUnavailable => 'Album info not available';
@override
String get snackbarLoadingCueSheet => 'Loading CUE sheet...';
@override
String get snackbarMetadataSaved => 'Metadata saved successfully';
@override
String get snackbarFailedToEmbedLyrics => 'Failed to embed lyrics';
@override
String get snackbarFailedToWriteStorage => 'Failed to write back to storage';
@override
String snackbarError(String error) {
return 'Error: $error';
}
@override
String get snackbarNoActionDefined => 'No action defined for this button';
@override
String get noTracksFoundForAlbum => 'No tracks found for this album';
@override
String get downloadLocationSubtitle =>
'Choose where to save your downloaded tracks';
@override
String get storageModeAppFolder => 'App Folder (Recommended)';
@override
String get storageModeAppFolderSubtitle =>
'Saves to Music/SpotiFLAC by default';
@override
String get storageModeSaf => 'Custom Folder (SAF)';
@override
String get storageModeSafSubtitle => 'Pick any folder, including SD card';
@override
String downloadFilenameDescription(
Object album,
Object artist,
Object date,
Object disc,
Object title,
Object track,
Object year,
) {
return 'Use $artist, $title, $album, $track, $year, $date, $disc as placeholders.';
}
@override
String get downloadFilenameInsertTag => 'Tap to insert tag:';
@override
String get downloadSeparateSinglesEnabled =>
'Singles and EPs saved in a separate folder';
@override
String get downloadSeparateSinglesDisabled =>
'Singles and albums saved in the same folder';
@override
String get downloadArtistNameFilters => 'Artist Name Filters';
@override
String get downloadCreatePlaylistSourceFolder => 'Playlist Source Folder';
@override
String get downloadCreatePlaylistSourceFolderEnabled =>
'A subfolder is created for each playlist';
@override
String get downloadCreatePlaylistSourceFolderDisabled =>
'All tracks saved directly to download folder';
@override
String get downloadCreatePlaylistSourceFolderRedundant =>
'Handled by folder organization setting';
@override
String get downloadSongLinkRegion => 'SongLink Region';
@override
String get downloadNetworkCompatibilityMode => 'Network Compatibility Mode';
@override
String get downloadNetworkCompatibilityModeEnabled =>
'Using legacy TLS settings for older networks';
@override
String get downloadNetworkCompatibilityModeDisabled =>
'Using standard network settings';
@override
String get downloadAllowLocalNetwork => 'Allow Local Network Access';
@override
String get downloadAllowLocalNetworkEnabled =>
'Requests to local/private addresses are allowed (for local proxy or custom DNS)';
@override
String get downloadAllowLocalNetworkDisabled =>
'Local/private addresses are blocked for security';
@override
String get downloadSelectServiceToEnable =>
'Select a provider with quality options to enable this option';
@override
String get downloadEmbedLyricsDisabled => 'Enable metadata embedding first';
@override
String get downloadNeteaseIncludeTranslation =>
'Netease: Include Translation';
@override
String get downloadNeteaseIncludeTranslationEnabled =>
'Chinese translation lines included';
@override
String get downloadNeteaseIncludeTranslationDisabled =>
'Original lyrics only';
@override
String get downloadNeteaseIncludeRomanization =>
'Netease: Include Romanization';
@override
String get downloadNeteaseIncludeRomanizationEnabled =>
'Romanization lines included';
@override
String get downloadNeteaseIncludeRomanizationDisabled => 'No romanization';
@override
String get downloadAppleQqMultiPerson => 'Apple / QQ: Multi-Person Lyrics';
@override
String get downloadAppleQqMultiPersonEnabled =>
'Speaker labels included for duets and group tracks';
@override
String get downloadAppleQqMultiPersonDisabled =>
'Standard lyrics without speaker labels';
@override
String get downloadAppleElrcWordSync => 'Apple Music eLRC Word Sync';
@override
String get downloadAppleElrcWordSyncEnabled =>
'Raw word-by-word timestamps preserved';
@override
String get downloadAppleElrcWordSyncDisabled =>
'Safer line-by-line Apple Music lyrics';
@override
String get downloadMusixmatchLanguage => 'Musixmatch Language';
@override
String get downloadMusixmatchLanguageAuto => 'Auto (original language)';
@override
String get downloadFilterContributing => 'Filter Contributing Artists';
@override
String get downloadFilterContributingEnabled =>
'Contributing artists removed from Album Artist folder name';
@override
String get downloadFilterContributingDisabled =>
'Full Album Artist string used';
@override
String get downloadProvidersNoneEnabled => 'No providers enabled';
@override
String get downloadMusixmatchLanguageCode => 'Language code';
@override
String get downloadMusixmatchLanguageHint => 'e.g. en, de, ja';
@override
String get downloadMusixmatchLanguageDesc =>
'Enter a BCP-47 language code (e.g. en, de, ja) to request translated lyrics from Musixmatch.';
@override
String get downloadMusixmatchAuto => 'Auto';
@override
String get downloadNetworkAnySubtitle => 'Use WiFi or mobile data';
@override
String get downloadNetworkWifiOnlySubtitle =>
'Downloads pause when on mobile data';
@override
String get downloadSongLinkRegionDesc =>
'Region used when resolving track links via SongLink. Choose the country where your streaming services are available.';
@override
String get snackbarUnsupportedAudioFormat => 'Unsupported audio format';
@override
String get cacheRefresh => 'Refresh';
@override
String dialogDownloadPlaylistsMessage(int trackCount, int playlistCount) {
String _temp0 = intl.Intl.pluralLogic(
trackCount,
locale: localeName,
other: 'tracks',
one: 'track',
);
String _temp1 = intl.Intl.pluralLogic(
playlistCount,
locale: localeName,
other: 'playlists',
one: 'playlist',
);
return 'Download $trackCount $_temp0 from $playlistCount $_temp1?';
}
@override
String bulkDownloadPlaylistsButton(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'playlists',
one: 'playlist',
);
return 'Download $count $_temp0';
}
@override
String get bulkDownloadSelectPlaylists => 'Select playlists to download';
@override
String get snackbarSelectedPlaylistsEmpty =>
'Selected playlists have no tracks';
@override
String playlistsCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count playlists',
one: '1 playlist',
);
return '$_temp0';
}
@override
String get editMetadataAutoFill => 'Auto-fill from online';
@override
String get editMetadataAutoFillDesc =>
'Select fields to fill automatically from online metadata';
@override
String get editMetadataAutoFillFetch => 'Fetch & Fill';
@override
String get editMetadataAutoFillSearching => 'Searching online...';
@override
String get editMetadataAutoFillNoResults =>
'No matching metadata found online';
@override
String editMetadataAutoFillDone(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'fields',
one: 'field',
);
return 'Filled $count $_temp0 from online metadata';
}
@override
String get editMetadataAutoFillNoneSelected =>
'Select at least one field to auto-fill';
@override
String get editMetadataFieldTitle => 'Title';
@override
String get editMetadataFieldArtist => 'Artist';
@override
String get editMetadataFieldAlbum => 'Album';
@override
String get editMetadataFieldAlbumArtist => 'Album Artist';
@override
String get editMetadataFieldDate => 'Date';
@override
String get editMetadataFieldTrackNum => 'Track #';
@override
String get editMetadataFieldDiscNum => 'Disc #';
@override
String get editMetadataFieldGenre => 'Genre';
@override
String get editMetadataFieldIsrc => 'ISRC';
@override
String get editMetadataFieldLabel => 'Label';
@override
String get editMetadataFieldCopyright => 'Copyright';
@override
String get editMetadataFieldCover => 'Cover Art';
@override
String get editMetadataSelectAll => 'All';
@override
String get editMetadataSelectEmpty => 'Empty only';
@override
String queueDownloadingCount(int count) {
return 'Downloading ($count)';
}
@override
String get queueFilteringIndicator => 'Filtering...';
@override
String queueTrackCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count tracks',
one: '1 track',
);
return '$_temp0';
}
@override
String queueAlbumCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count albums',
one: '1 album',
);
return '$_temp0';
}
@override
String get queueEmptyAlbums => 'No album downloads';
@override
String get queueEmptyAlbumsSubtitle =>
'Download multiple tracks from an album to see them here';
@override
String get queueEmptySingles => 'No single downloads';
@override
String get queueEmptySinglesSubtitle =>
'Single track downloads will appear here';
@override
String get queueEmptyHistory => 'No download history';
@override
String get queueEmptyHistorySubtitle => 'Downloaded tracks will appear here';
@override
String get selectionAllPlaylistsSelected => 'All playlists selected';
@override
String get selectionTapPlaylistsToSelect => 'Tap playlists to select';
@override
String get selectionSelectPlaylistsToDelete => 'Select playlists to delete';
@override
String get audioAnalysisTitle => 'Audio Quality Analysis';
@override
String get audioAnalysisDescription =>
'Verify lossless quality with spectrum analysis';
@override
String get audioAnalysisAnalyzing => 'Analyzing audio...';
@override
String get audioAnalysisSampleRate => 'Sample Rate';
@override
String get audioAnalysisCodec => 'Codec';
@override
String get audioAnalysisContainer => 'Container';
@override
String get audioAnalysisDecodedFormat => 'Decoded Format';
@override
String get audioAnalysisBitDepth => 'Bit Depth';
@override
String get audioAnalysisChannels => 'Channels';
@override
String get audioAnalysisDuration => 'Duration';
@override
String get audioAnalysisNyquist => 'Nyquist';
@override
String get audioAnalysisFileSize => 'Size';
@override
String get audioAnalysisDynamicRange => 'Dynamic Range';
@override
String get audioAnalysisPeak => 'Peak';
@override
String get audioAnalysisRms => 'RMS';
@override
String get audioAnalysisLufs => 'LUFS';
@override
String get audioAnalysisTruePeak => 'True Peak';
@override
String get audioAnalysisClipping => 'Clipping';
@override
String get audioAnalysisNoClipping => 'No clipping';
@override
String get audioAnalysisSpectralCutoff => 'Spectral Cutoff';
@override
String get audioAnalysisChannelStats => 'Per-channel Stats';
@override
String get audioAnalysisSamples => 'Samples';
@override
String get audioAnalysisRescan => 'Re-analyze';
@override
String get audioAnalysisRescanning => 'Re-analyzing audio...';
@override
String get extensionsHomeFeedProvider => 'Home Feed Provider';
@override
String get extensionsHomeFeedDescription =>
'Choose which extension provides the home feed on the main screen';
@override
String get extensionsHomeFeedAuto => 'Auto';
@override
String get extensionsHomeFeedAutoSubtitle =>
'Automatically select the best available';
@override
String get extensionsHomeFeedOff => 'Off';
@override
String get extensionsHomeFeedOffSubtitle =>
'Do not show the home feed on the main screen';
@override
String extensionsHomeFeedUse(String extensionName) {
return 'Use $extensionName home feed';
}
@override
String get extensionsNoHomeFeedExtensions => 'No extensions with home feed';
@override
String get cancelDownloadTitle => 'Cancel download?';
@override
String cancelDownloadContent(String trackName) {
return 'This will cancel the active download for \"$trackName\".';
}
@override
String get cancelDownloadKeep => 'Keep';
@override
String get metadataSaveFailedFfmpeg => 'Failed to save metadata via FFmpeg';
@override
String get metadataSaveFailedStorage =>
'Failed to write metadata back to storage';
@override
String snackbarFolderPickerFailed(String error) {
return 'Failed to open folder picker: $error';
}
@override
String notifDownloadingTrack(String trackName) {
return 'Downloading $trackName';
}
@override
String notifFinalizingTrack(String trackName) {
return 'Finalizing $trackName';
}
@override
String get notifEmbeddingMetadata => 'Embedding metadata...';
@override
String notifAlreadyInLibraryCount(int completed, int total) {
return 'Already in Library ($completed/$total)';
}
@override
String get notifAlreadyInLibrary => 'Already in Library';
@override
String notifDownloadCompleteCount(int completed, int total) {
return 'Download Complete ($completed/$total)';
}
@override
String get notifDownloadComplete => 'Download Complete';
@override
String notifDownloadsFinished(int completed, int failed) {
return 'Downloads Finished ($completed done, $failed failed)';
}
@override
String get notifAllDownloadsComplete => 'All Downloads Complete';
@override
String notifTracksDownloadedSuccess(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count tracks downloaded successfully',
one: '1 track downloaded successfully',
);
return '$_temp0';
}
@override
String notifDownloadsFinishedBody(int completed, int failed) {
String _temp0 = intl.Intl.pluralLogic(
completed,
locale: localeName,
other: '$completed tracks downloaded',
one: '1 track downloaded',
);
String _temp1 = intl.Intl.pluralLogic(
failed,
locale: localeName,
other: '$failed failed',
one: '1 failed',
);
return '$_temp0, $_temp1';
}
@override
String get notifDownloadsCanceledTitle => 'Downloads canceled';
@override
String notifDownloadsCanceledBody(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count downloads canceled by user',
one: '1 download canceled by user',
);
return '$_temp0';
}
@override
String get notifScanningLibrary => 'Scanning local library';
@override
String notifLibraryScanProgressWithTotal(
int scanned,
int total,
int percentage,
) {
return '$scanned/$total files • $percentage%';
}
@override
String notifLibraryScanProgressNoTotal(int scanned, int percentage) {
return '$scanned files scanned • $percentage%';
}
@override
String get notifLibraryScanComplete => 'Library scan complete';
@override
String notifLibraryScanCompleteBody(int count) {
return '$count tracks indexed';
}
@override
String notifLibraryScanExcluded(int count) {
return '$count excluded';
}
@override
String notifLibraryScanErrors(int count) {
return '$count errors';
}
@override
String get notifLibraryScanFailed => 'Library scan failed';
@override
String get notifLibraryScanCancelled => 'Library scan cancelled';
@override
String get notifLibraryScanStopped => 'Scan stopped before completion.';
@override
String notifDownloadingUpdate(String version) {
return 'Downloading SpotiFLAC Mobile v$version';
}
@override
String notifUpdateProgress(String received, String total, int percentage) {
return '$received / $total MB • $percentage%';
}
@override
String get notifUpdateReady => 'Update Ready';
@override
String notifUpdateReadyBody(String version) {
return 'SpotiFLAC Mobile v$version downloaded. Tap to install.';
}
@override
String get notifUpdateFailed => 'Update Failed';
@override
String get notifUpdateFailedBody =>
'Could not download update. Try again later.';
@override
String get searchTracks => 'Tracks';
@override
String get homeSearchHintDefault => 'Paste supported URL or search...';
@override
String homeSearchHintProvider(String providerName) {
return 'Search with $providerName...';
}
@override
String get homeImportCsvTooltip => 'Import CSV';
@override
String get homeChangeSearchProviderTooltip => 'Change search provider';
@override
String get actionPaste => 'Paste';
@override
String get tutorialSearchHint => 'Paste or search...';
@override
String get tutorialDownloadCompletedSemantics => 'Download completed';
@override
String get tutorialDownloadInProgressSemantics => 'Download in progress';
@override
String get tutorialStartDownloadSemantics => 'Start download';
@override
String get optionsEmbedMetadata => 'Embed Metadata';
@override
String get optionsEmbedMetadataSubtitleOn =>
'Write metadata, cover art, and embedded lyrics to files';
@override
String get optionsEmbedMetadataSubtitleOff =>
'Disabled (advanced): skip all metadata embedding';
@override
String get trackCoverNoEmbeddedArt => 'No embedded album art found';
@override
String get trackCoverReplace => 'Replace Cover';
@override
String get trackCoverPick => 'Pick Cover';
@override
String get trackCoverClearSelected => 'Clear selected cover';
@override
String get trackCoverCurrent => 'Current cover';
@override
String get trackCoverSelected => 'Selected cover';
@override
String get trackCoverReplaceNotice =>
'The selected cover will replace the current embedded cover when you tap Save.';
@override
String get actionStop => 'Stop';
@override
String get queueFinalizingDownload => 'Finalizing download';
@override
String get queueDownloadedFileMissing => 'Downloaded file missing';
@override
String get queueDownloadCompleted => 'Download completed';
@override
String get queueRateLimitTitle => 'Service rate limited';
@override
String get queueRateLimitMessage =>
'This track may still be available. Wait a few minutes, reduce parallel downloads, then retry.';
@override
String appearanceSelectAccentColor(String hex) {
return 'Select accent color $hex';
}
@override
String get logAutoScrollOn => 'Auto-scroll ON';
@override
String get logAutoScrollOff => 'Auto-scroll OFF';
@override
String get logCopyLogs => 'Copy logs';
@override
String get logClearSearch => 'Clear search';
@override
String get logIssueIspBlockingLabel => 'ISP BLOCKING DETECTED';
@override
String get logIssueIspBlockingDescription =>
'Your ISP may be blocking access to download services';
@override
String get logIssueIspBlockingSuggestion =>
'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8';
@override
String get logIssueRateLimitedLabel => 'RATE LIMITED';
@override
String get logIssueRateLimitedDescription =>
'Too many requests to the service';
@override
String get logIssueRateLimitedSuggestion =>
'Wait a few minutes before trying again';
@override
String get logIssueNetworkErrorLabel => 'NETWORK ERROR';
@override
String get logIssueNetworkErrorDescription => 'Connection issues detected';
@override
String get logIssueNetworkErrorSuggestion => 'Check your internet connection';
@override
String get logIssueTrackNotFoundLabel => 'TRACK NOT FOUND';
@override
String get logIssueTrackNotFoundDescription =>
'Some tracks could not be found on download services';
@override
String get logIssueTrackNotFoundSuggestion =>
'The track may not be available in lossless quality';
@override
String get clickableLookingUpArtist => 'Looking up artist...';
@override
String clickableInformationUnavailable(String type) {
return '$type information not available';
}
@override
String get extensionDetailsTags => 'Tags';
@override
String get extensionDetailsInformation => 'Information';
@override
String get extensionUtilityFunctions => 'Utility Functions';
@override
String get actionDismiss => 'Dismiss';
@override
String get setupChangeFolderTooltip => 'Change folder';
@override
String a11yOpenTrackByArtist(String trackName, String artistName) {
return 'Open track $trackName by $artistName';
}
@override
String a11yOpenItem(String itemType, String name) {
return 'Open $itemType $name';
}
@override
String a11yOpenItemCount(String title, int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'items',
one: 'item',
);
return 'Open $title, $count $_temp0';
}
@override
String a11yOpenAlbumByArtistTrackCount(
String albumName,
String artistName,
int trackCount,
) {
return 'Open album $albumName by $artistName, $trackCount tracks';
}
@override
String a11yTrackByArtist(String trackName, String artistName) {
return '$trackName by $artistName';
}
@override
String a11ySelectAlbum(String albumName) {
return 'Select album $albumName';
}
@override
String a11yOpenAlbum(String albumName) {
return 'Open album $albumName';
}
@override
String get settingsFiles => 'Files & Folders';
@override
String get settingsFilesSubtitle =>
'Download location, filename, folder structure';
@override
String get settingsMetadata => 'Metadata';
@override
String get settingsMetadataSubtitle =>
'Cover art, tags, ReplayGain, providers';
@override
String get settingsLyrics => 'Lyrics';
@override
String get settingsLyricsSubtitle =>
'Embed, mode, providers, language options';
@override
String get settingsApp => 'App';
@override
String get settingsAppSubtitle => 'Updates, data, extension repo, debug';
@override
String get sectionMetadataProviders => 'Providers';
@override
String get sectionDuplicates => 'Duplicates';
@override
String get sectionLyricsProviderOptions => 'Provider Options';
@override
String get metadataProvidersTitle => 'Metadata Provider Priority';
@override
String get metadataProvidersSubtitle =>
'Drag to set search and metadata source order';
@override
String get downloadDeduplication => 'Skip Duplicate Downloads';
@override
String get downloadDeduplicationEnabled =>
'Already-downloaded tracks will be skipped';
@override
String get downloadDeduplicationDisabled =>
'All tracks will be downloaded regardless of history';
@override
String get downloadFallbackExtensions => 'Fallback Extensions';
@override
String get downloadFallbackExtensionsSubtitle =>
'Choose which extensions can be used as fallback';
@override
String get editMetadataFieldDateHint => 'YYYY-MM-DD or YYYY';
@override
String get editMetadataFieldTrackTotal => 'Track Total';
@override
String get editMetadataFieldDiscTotal => 'Disc Total';
@override
String get editMetadataFieldComposer => 'Composer';
@override
String get editMetadataFieldComment => 'Comment';
@override
String get editMetadataAdvanced => 'Advanced';
@override
String get libraryFilterMetadataMissingTrackNumber => 'Missing track number';
@override
String get libraryFilterMetadataMissingDiscNumber => 'Missing disc number';
@override
String get libraryFilterMetadataMissingArtist => 'Missing artist';
@override
String get libraryFilterMetadataIncorrectIsrcFormat =>
'Incorrect ISRC format';
@override
String get libraryFilterMetadataMissingLabel => 'Missing label';
@override
String collectionDeletePlaylistsMessage(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'playlists',
one: 'playlist',
);
return 'Delete $count $_temp0?';
}
@override
String collectionPlaylistsDeleted(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'playlists',
one: 'playlist',
);
return '$count $_temp0 deleted';
}
@override
String collectionAddedTracksToPlaylist(int count, String playlistName) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Added $count $_temp0 to $playlistName';
}
@override
String collectionAddedTracksToPlaylistWithExisting(
int count,
String playlistName,
int alreadyCount,
) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Added $count $_temp0 to $playlistName ($alreadyCount already in playlist)';
}
@override
String itemCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'items',
one: 'item',
);
return '$count $_temp0';
}
@override
String trackReEnrichSuccessWithFailures(
int successCount,
int total,
int failedCount,
) {
return 'Metadata re-enriched successfully ($successCount/$total) - Failed: $failedCount';
}
@override
String selectionDeleteTracksCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Delete $count $_temp0';
}
@override
String queueDownloadSpeedStatus(String speed) {
return 'Downloading - $speed MB/s';
}
@override
String get queueDownloadStarting => 'Starting...';
@override
String get a11ySelectTrack => 'Select track';
@override
String get a11yDeselectTrack => 'Deselect track';
@override
String a11yPlayTrackByArtist(String trackName, String artistName) {
return 'Play $trackName by $artistName';
}
@override
String storeExtensionsCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'extensions',
one: 'extension',
);
return '$count $_temp0';
}
@override
String storeRequiresVersion(String version) {
return 'Requires v$version+';
}
@override
String get actionGo => 'Go';
@override
String get logIssueSummary => 'Issue Summary';
@override
String logTotalErrors(int count) {
return 'Total errors: $count';
}
@override
String logAffectedDomains(String domains) {
return 'Affected: $domains';
}
@override
String get libraryScanCancelled => 'Scan cancelled';
@override
String get libraryScanCancelledSubtitle =>
'You can retry the scan when ready.';
@override
String libraryDownloadsHistoryExcluded(int count) {
return '$count from Downloads history (excluded from list)';
}
@override
String get downloadNativeWorker => 'Native download worker';
@override
String get downloadNativeWorkerSubtitle =>
'Beta Android service worker for extension downloads';
@override
String get badgeBeta => 'BETA';
@override
String get extensionServiceStatus => 'Service Status';
@override
String get extensionServiceHealth => 'Service health';
@override
String extensionHealthChecksConfigured(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'checks',
one: 'check',
);
return '$count $_temp0 configured';
}
@override
String get extensionOauthConnectHint =>
'Tap Connect to Spotify to fill this field.';
@override
String extensionLastChecked(String time) {
return 'Last checked $time';
}
@override
String get extensionRefreshStatus => 'Refresh status';
@override
String get extensionCustomUrlHandling => 'Custom URL Handling';
@override
String get extensionCustomUrlHandlingSubtitle =>
'This extension can handle links from these sites';
@override
String get extensionCustomUrlHandlingShareHint =>
'Share links from these sites to SpotiFLAC Mobile and this extension will handle them.';
@override
String extensionSettingsCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'settings',
one: 'setting',
);
return '$count $_temp0';
}
@override
String get extensionHealthOnline => 'Online';
@override
String get extensionHealthDegraded => 'Degraded';
@override
String get extensionHealthOffline => 'Offline';
@override
String get extensionHealthNotConfigured => 'Not configured';
@override
String get extensionHealthUnknown => 'Unknown';
@override
String get extensionHealthRequired => 'required';
@override
String get extensionSettingNotSet => 'Not set';
@override
String get extensionActionFailed => 'Action failed';
@override
String get extensionEnterValue => 'Enter value';
@override
String get extensionHealthServiceOnline => 'Service online';
@override
String get extensionHealthServiceDegraded => 'Service degraded';
@override
String get extensionHealthServiceOffline => 'Service offline';
@override
String get extensionHealthServiceUnknown => 'Service status unknown';
@override
String get audioAnalysisStereo => 'Stereo';
@override
String get audioAnalysisMono => 'Mono';
@override
String trackOpenInService(String serviceName) {
return 'Open in $serviceName';
}
@override
String get trackLyricsEmbeddedSource => 'Embedded';
@override
String get unknownAlbum => 'Unknown Album';
@override
String get unknownArtist => 'Unknown Artist';
@override
String get permissionAudio => 'Audio';
@override
String get permissionStorage => 'Storage';
@override
String get permissionNotification => 'Notification';
@override
String get errorInvalidFolderSelected => 'Invalid folder selected';
@override
String get storeAnyVersion => 'Any';
@override
String get storeCategoryMetadata => 'Metadata';
@override
String get storeCategoryDownload => 'Download';
@override
String get storeCategoryUtility => 'Utility';
@override
String get storeCategoryLyrics => 'Lyrics';
@override
String get storeCategoryIntegration => 'Integration';
@override
String get artistReleases => 'Releases';
@override
String get editMetadataSelectNone => 'None';
@override
String queueRetryAllFailed(int count) {
return 'Retry $count failed';
}
@override
String get settingsSaveDownloadHistory => 'Save download history';
@override
String get settingsSaveDownloadHistorySubtitle =>
'Keep completed downloads in history and library views';
@override
String get dialogDisableHistoryTitle => 'Turn off download history?';
@override
String get dialogDisableHistoryMessage =>
'Existing history will be cleared. Downloaded files will not be deleted.';
@override
String get dialogDisableAndClear => 'Turn off and clear';
@override
String get openInOtherServices => 'Open in Other Services';
@override
String get shareSheetNoExtensions => 'No other compatible services';
@override
String get shareSheetNotFound => 'Not found';
@override
String get shareSheetCopyLink => 'Copy Link';
@override
String shareSheetLinkCopied(Object service) {
return '$service link copied';
}
@override
String get libraryPlayback => 'Playback';
@override
String get libraryExternalPlayer => 'External player';
@override
String get libraryExternalPlayerSubtitle =>
'Recommended for listening, best quality, gapless playback, EQ, and wider format support';
@override
String get libraryBuiltInPreviewPlayer => 'Built-in preview player';
@override
String get libraryBuiltInPreviewPlayerSubtitle =>
'Only for quick local previews inside SpotiFLAC Mobile, not recommended for regular listening';
@override
String get libraryBuiltInPlayerInfo =>
'The built-in player is a preview tool for checking local tracks quickly. Use an external music player for actual listening.';
@override
String get nowPlayingTitle => 'Now Playing';
@override
String get nowPlayingNothingPlaying => 'Nothing is playing';
@override
String get nowPlayingMinimize => 'Minimize';
@override
String get nowPlayingUpNext => 'Up next';
@override
String get nowPlayingDetails => 'Details';
@override
String get nowPlayingOpenInExternalPlayer => 'Open in external player';
@override
String get nowPlayingTabPlayer => 'Player';
@override
String get nowPlayingTabLyrics => 'Lyrics';
@override
String get nowPlayingNoLyrics => 'No lyrics in this file';
@override
String get nowPlayingLibraryEmpty => 'Your library is empty';
@override
String nowPlayingShuffleLibraryFailed(String error) {
return 'Could not shuffle library: $error';
}
@override
String get nowPlayingShuffleOn => 'Shuffle on';
@override
String get nowPlayingPlayInOrder => 'Play in order';
@override
String get nowPlayingShuffleLibrary => 'Shuffle library';
@override
String get nowPlayingQueueEmpty => 'Queue is empty';
@override
String get nowPlayingNoMetadata => 'No metadata available';
@override
String get announcementUnableToOpenLink =>
'Unable to open link. Please try again.';
@override
String trackConvertLosslessOutputWithCap(String quality) {
return 'Lossless output with $quality cap';
}
@override
String trackConvertConfirmMessageLosslessCapped(
String sourceFormat,
String targetFormat,
String quality,
) {
return 'Convert from $sourceFormat to $targetFormat ($quality)?\n\nThe output stays in a lossless codec, but bit depth/sample rate will be capped. Original file will be deleted after conversion.';
}
@override
String selectionBatchConvertConfirmMessageLosslessCapped(
int count,
String format,
String quality,
) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Convert $count $_temp0 to $format ($quality)?\n\nThe output stays in a lossless codec, but bit depth/sample rate will be capped. Original files will be deleted after conversion.';
}
@override
String trackConvertActionLabelLossless(
String sourceFormat,
String targetFormat,
String quality,
) {
return '$sourceFormat$targetFormat ($quality)';
}
@override
String trackConvertActionLabelLossy(
String sourceFormat,
String targetFormat,
String bitrate,
) {
return '$sourceFormat$targetFormat @ $bitrate';
}
@override
String get aboutPaxsenixSubtitle =>
'Lyrics proxy for Musixmatch, Netease, Apple Music, QQ Music, Spotify, Deezer, YouTube, Kugou, and Genius';
@override
String get snackbarPlayingNext => 'Playing next';
@override
String get snackbarAddedToQueueGeneric => 'Added to queue';
@override
String selectionDeletePlaylistsCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'playlists',
one: 'playlist',
);
return 'Delete $count $_temp0';
}
@override
String get actionShuffle => 'Shuffle';
@override
String get downloadPrimaryArtistOnlyOn => 'Primary only: On';
@override
String get downloadPrimaryArtistOnlyOff => 'Primary only: Off';
@override
String get downloadAlbumArtistMetadataPrimaryOnly =>
'Album Artist metadata: Primary only';
@override
String get downloadAlbumArtistMetadataFull => 'Album Artist metadata: Full';
@override
String get trackConvertOriginal => 'Original';
@override
String get trackConvertOriginalQuality => 'Original quality';
@override
String get trackConvertLosslessSuffix => 'Lossless';
@override
String get trackConvertDithering => 'Dithering';
@override
String get trackConvertResampler => 'Resampler';
@override
String get trackConvertDitherNone => 'None';
@override
String get trackConvertDitherTriangular => 'TPDF';
@override
String get trackConvertDitherTriangularHp => 'Triangular HP';
@override
String get trackConvertResamplerSwr => 'SWR';
@override
String get trackConvertResamplerSoxr => 'SoXr';
@override
String get updateSeeReleaseNotes => 'See release notes for details.';
@override
String get unknownTitle => 'Unknown title';
@override
String get trackPlayNext => 'Play next';
@override
String get trackAddToQueue => 'Add to queue';
@override
String snackbarExtensionInstalledEnable(String extensionName) {
return '$extensionName installed. Enable it in Settings > Extensions';
}
@override
String snackbarExtensionUpdatedVersion(String extensionName, String version) {
return '$extensionName updated to v$version';
}
@override
String snackbarFailedToInstallNamed(String extensionName) {
return 'Failed to install $extensionName';
}
@override
String snackbarFailedToUpdateNamed(String extensionName) {
return 'Failed to update $extensionName';
}
@override
String get releaseTypeEp => 'EP';
@override
String get releaseTypeSingle => 'Single';
@override
String get trackCoverOnline => 'Online cover';
@override
String get regionCountryUS => 'United States';
@override
String get regionCountryGB => 'United Kingdom';
@override
String get regionCountryFR => 'France';
@override
String get regionCountryDE => 'Germany';
@override
String get regionCountryJP => 'Japan';
@override
String get regionCountryKR => 'South Korea';
@override
String get regionCountryIN => 'India';
@override
String get regionCountryID => 'Indonesia';
@override
String get regionCountryBR => 'Brazil';
@override
String get regionCountryMX => 'Mexico';
@override
String get regionCountryAU => 'Australia';
@override
String get regionCountryCA => 'Canada';
@override
String get regionCountryXK => 'Kosovo';
@override
String get extensionVerificationBrowserTitle => 'Verification browser';
@override
String get extensionVerificationBrowserSubtitleExternal =>
'Open challenges in the default browser first';
@override
String get extensionVerificationBrowserSubtitleInApp =>
'Open challenges in the in-app browser first';
@override
String get extensionVerificationBrowserExternal => 'External';
@override
String get extensionVerificationBrowserInApp => 'In-app';
@override
String get extensionVerificationHelpTitleManual =>
'Open verification manually';
@override
String get extensionVerificationHelpTitleWaiting =>
'Verification still waiting';
@override
String get extensionVerificationHelpMessageManual =>
'SpotiFLAC Mobile could not open the browser automatically. Open this link in your browser, or copy it manually.';
@override
String get extensionVerificationHelpMessageWaiting =>
'If the browser did not open, or verification finished but did not return to SpotiFLAC Mobile, open this link again or copy it manually.';
@override
String get extensionVerificationClose => 'Close';
@override
String get extensionVerificationCopyLink => 'Copy link';
@override
String get extensionVerificationLinkCopied => 'Verification link copied';
@override
String get extensionVerificationOpenBrowser => 'Open browser';
}