// 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 get collectionExportM3u => 'Export as M3U8'; @override String collectionExportM3uDone(int exported, int total) { return 'Exported $exported of $total tracks'; } @override String get collectionExportM3uNone => 'No downloaded files to export'; @override String get collectionExportM3uFailed => 'Export failed'; @override String get trackOpenOn => 'Open on...'; @override String get trackOpenOnNoLinks => 'No platform links found for this track.'; @override String get libraryReviewDuplicates => 'Review duplicates'; @override String get libraryReviewDuplicatesSubtitle => 'Find tracks stored more than once'; @override String get duplicatesTitle => 'Duplicates'; @override String get duplicatesEmpty => 'No duplicate tracks found.'; @override String get duplicatesKeepBest => 'Keep best'; @override String duplicatesKeepBestMessage(int count, String trackName) { return 'Delete $count lower-quality copies of \"$trackName\"?'; } @override String duplicatesDeleteCopyMessage(String trackName) { return 'Delete this copy of \"$trackName\"?'; } @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 appearanceHeroAnimations => 'Hero animations'; @override String get appearanceHeroAnimationsSubtitle => 'Fly covers between screens, e.g. when opening the player'; @override String get appearanceForceBlur => 'Always use blur effects'; @override String get appearanceForceBlurSubtitle => 'Enable the navigation bar blur even on devices where it is off by default. May cost performance.'; @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 libraryPlaybackNormalization => 'Volume normalization'; @override String get libraryPlaybackNormalizationSubtitle => 'Even out loudness between tracks using their ReplayGain or R128 tags, when present'; @override String get cacheAudioAnalysis => 'Audio analysis cache'; @override String get cacheAudioAnalysisDesc => 'Saved spectrograms and analysis results. Will re-analyze on next open.'; @override String get cacheExploreFeed => 'Explore feed cache'; @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 trackConvertKeepOriginal => 'Keep original file'; @override String get trackConvertKeepOriginalDescription => 'Add the converted file as a separate library entry'; @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 trackConvertConfirmKeepOriginal( String sourceFormat, String targetFormat, ) { return 'Convert from $sourceFormat to $targetFormat?\n\nThe original file will be kept and the converted file will be added as a separate library entry.'; } @override String get trackConvertLosslessHint => 'Lossless conversion — no quality loss'; @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 selectionBatchConvertConfirmKeepOriginal(int count, String format) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'tracks', one: 'track', ); return 'Convert $count $_temp0 to $format?\n\nOriginal files will be kept and converted files will be added as separate library entries.'; } @override String selectionBatchConvertSuccess(int success, int total, String format) { return 'Converted $success of $total tracks to $format'; } @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 editMetadataAutoFillSource => 'Metadata source'; @override String get editMetadataAutoFillSourceAutomatic => 'Automatic (provider priority)'; @override String get editMetadataAutoFillFind => 'Find metadata'; @override String editMetadataAutoFillPreview(String source) { return 'Data from $source'; } @override String get editMetadataAutoFillCoverAvailable => 'Cover artwork available'; @override String get editMetadataAutoFillApply => 'Apply selected data'; @override String editMetadataAutoFillDoneFromSource(int count, String source) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'fields', one: 'field', ); return 'Filled $count $_temp0 from $source'; } @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 queuePlaylistCount(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count playlists', one: '1 playlist', ); return '$_temp0'; } @override String get queueEmptyPlaylistsSubtitle => 'Create a playlist to organize your tracks'; @override String get libraryDefaultView => 'Default view'; @override String get libraryDefaultViewLastUsed => 'Last used'; @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 queueCancelledTitle => 'Download cancelled'; @override String get queueCancelledMessage => 'This download was cancelled. Retry it or remove it from the queue.'; @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 playlist (CSV, M3U)'; @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 queueDownloadNext => 'Download next'; @override String get queueMoveUp => 'Move up'; @override String get queueMoveDown => 'Move down'; @override String get editMetadataMusicBrainzButton => 'Fetch from MusicBrainz'; @override String get editMetadataMusicBrainzFilled => 'Updated from MusicBrainz'; @override String get editMetadataMusicBrainzNothing => 'Nothing found on MusicBrainz'; @override String get editMetadataMusicBrainzNeedsIsrc => 'Requires an ISRC tag'; @override String get nowPlayingRepeatOff => 'Repeat off'; @override String get nowPlayingRepeatAll => 'Repeat all'; @override String get nowPlayingRepeatOne => 'Repeat one'; @override String queueNetworkFailedOffline(int count) { return '$count downloads failed while offline'; } @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 downloadDeduplicationWithQualityVariants => 'Existing files at the selected quality will be skipped'; @override String get downloadDeduplicationDisabled => 'All tracks will be downloaded regardless of history'; @override String get downloadQualityVariants => 'Allow different quality versions'; @override String get downloadQualityVariantsDescription => 'Keep every quality version; add its measured quality to the filename only when the name is already used'; @override String get trackOptionDownloadQualityVariant => 'Download another quality'; @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 libraryFilterMetadataMissingIsrc => 'Missing ISRC'; @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 queueCheckingDownloadSession => 'Checking download session...'; @override String get queueResolvingDownloadMetadata => 'Resolving track metadata...'; @override String get queueResolvingDownloadStream => 'Preparing audio stream...'; @override String get queueWaitingForVerification => 'Waiting for verification...'; @override String get queueResumingAfterVerification => 'Resuming after verification...'; @override String get a11ySelectTrack => 'Select track'; @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 => 'Android background service for extension downloads'; @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'; @override String get settingsSearchHint => 'Pesquisar configurações'; @override String settingsSearchNoResults(String query) { return 'Nenhuma configuração corresponde a \"$query\"'; } @override String get settingsGroupInterface => 'Extensões e aparência'; @override String get settingsGroupContent => 'Conteúdo e metadados'; @override String get settingsGroupDownloads => 'Downloads e arquivos'; @override String get settingsGroupSystem => 'Sistema'; @override String get settingsGroupHelp => 'Sobre e suporte'; } /// 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 updateRequiredTitle => 'Update required'; @override String updateRequiredNotice(int count) { return 'This version is $count releases behind and is no longer supported. Update to keep using the app.'; } @override String get updateCurrent => 'Atual'; @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 appearanceHeroAnimations => 'Hero animations'; @override String get appearanceHeroAnimationsSubtitle => 'Fly covers between screens, e.g. when opening the player'; @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 settingsConcurrentDownloads => 'Concurrent downloads'; @override String get settingsConcurrentDownloadsSubtitle => 'Downloading several tracks at once is faster, but some providers may rate-limit parallel requests.'; @override String get concurrentDownloadsOne => '1 track at a time'; @override String concurrentDownloadsCount(int count) { return 'Up to $count tracks at once'; } @override String get albumFolderArtistAlbum => 'Artista / Álbum'; @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 libraryPlaybackNormalization => 'Volume normalization'; @override String get libraryPlaybackNormalizationSubtitle => 'Even out loudness between tracks using their ReplayGain or R128 tags, when present'; @override String get cacheAudioAnalysis => 'Audio analysis cache'; @override String get cacheAudioAnalysisDesc => 'Saved spectrograms and analysis results. Will re-analyze on next open.'; @override String get cacheExploreFeed => 'Explore feed cache'; @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 trackConvertKeepOriginal => 'Keep original file'; @override String get trackConvertKeepOriginalDescription => 'Add the converted file as a separate library entry'; @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 trackConvertConfirmKeepOriginal( String sourceFormat, String targetFormat, ) { return 'Convert from $sourceFormat to $targetFormat?\n\nThe original file will be kept and the converted file will be added as a separate library entry.'; } @override String get trackConvertLosslessHint => 'Lossless conversion — no quality loss'; @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 => 'A lista de reprodução está vazia'; @override String get collectionPlaylistEmptySubtitle => ''; @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 selectionBatchConvertConfirmKeepOriginal(int count, String format) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'tracks', one: 'track', ); return 'Convert $count $_temp0 to $format?\n\nOriginal files will be kept and converted files will be added as separate library entries.'; } @override String selectionBatchConvertSuccess(int success, int total, String format) { return 'Converted $success of $total tracks to $format'; } @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 => ''; @override String get storageModeSafSubtitle => 'Escolha qualquer pasta, incluindo o cartão SD'; @override String get downloadFolderAccessLostTitle => 'Download folder access lost'; @override String get downloadFolderAccessLostSubtitle => 'Downloads will fail until you re-select the folder'; @override String get downloadFolderReselect => 'Re-select folder'; @override String get downloadErrorSafPermissionLost => 'SAF permission invalid or revoked. Please reconfigure download location in Settings.'; @override String get downloadErrorFolderAccessLost => 'Download folder access lost. Please re-select your download folder in Settings.'; @override String downloadFilenameDescription( 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) { 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 => 'Escaneamento de biblioteca cancelado'; @override String get notifLibraryScanStopped => ''; @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 downloadDeduplicationWithQualityVariants => 'Existing files at the selected quality will be skipped'; @override String get downloadDeduplicationDisabled => 'All tracks will be downloaded regardless of history'; @override String get downloadQualityVariants => 'Allow different quality versions'; @override String get downloadQualityVariantsDescription => 'Manter todas as versões de qualidade; adicionar a qualidade medida ao nome apenas quando o nome já estiver em uso'; @override String get trackOptionDownloadQualityVariant => 'Download another quality'; @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 queueCheckingDownloadSession => 'Checking download session...'; @override String get queueResolvingDownloadMetadata => 'Resolving track metadata...'; @override String get queueResolvingDownloadStream => 'Preparing audio stream...'; @override String get queueWaitingForVerification => 'Waiting for verification...'; @override String get queueResumingAfterVerification => 'Resuming after verification...'; @override String get a11ySelectTrack => 'Select track'; @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 => 'Serviço Android em segundo plano para transferências de extensões'; @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'; @override String get settingsSearchHint => 'Pesquisar definições'; @override String settingsSearchNoResults(String query) { return 'Nenhuma definição corresponde a \"$query\"'; } @override String get settingsGroupInterface => 'Extensões e aparência'; @override String get settingsGroupContent => 'Conteúdo e metadados'; @override String get settingsGroupDownloads => 'Transferências e ficheiros'; @override String get settingsGroupSystem => 'Sistema'; @override String get settingsGroupHelp => 'Sobre e suporte'; }