- Remove Discovery Mixes master toggle entirely - Discovery rows now auto-appear based on provider availability (e.g., Tidal) - Discovery rows are off by default on first launch - All rows (discovery and static) now behave consistently: * Enabled rows are added to end of list, not inserted at fixed positions * Users can drag rows to any position and they stay there - Simplified default row order to only include: recently played, discover artists, and discover albums - Fixed critical bug: discovery rows now correctly default to false - Fixed SharedPreferences variable shadowing bug in setDiscoveryRowPreferences - Fixed grey section in settings draggable list by filtering discovery-mixes - Added localization strings for discovery rows UI - Removed debug print statements Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1235 lines
26 KiB
Dart
1235 lines
26 KiB
Dart
// ignore: unused_import
|
|
import 'package:intl/intl.dart' as intl;
|
|
import 'app_localizations.dart';
|
|
|
|
// ignore_for_file: type=lint
|
|
|
|
/// The translations for English (`en`).
|
|
class SEn extends S {
|
|
SEn([String locale = 'en']) : super(locale);
|
|
|
|
@override
|
|
String get appTitle => 'Ensemble';
|
|
|
|
@override
|
|
String get connecting => 'Connecting...';
|
|
|
|
@override
|
|
String get connected => 'Connected';
|
|
|
|
@override
|
|
String get disconnected => 'Disconnected';
|
|
|
|
@override
|
|
String get serverAddress => 'Server Address';
|
|
|
|
@override
|
|
String get serverAddressHint => 'e.g., music.example.com or 192.168.1.100';
|
|
|
|
@override
|
|
String get yourName => 'Your Name';
|
|
|
|
@override
|
|
String get yourFirstName => 'Your first name';
|
|
|
|
@override
|
|
String get portOptional => 'Port (Optional)';
|
|
|
|
@override
|
|
String get portHint => 'e.g., 8095 or leave blank';
|
|
|
|
@override
|
|
String get portDescription => 'Leave blank unless using a custom port';
|
|
|
|
@override
|
|
String get username => 'Username';
|
|
|
|
@override
|
|
String get password => 'Password';
|
|
|
|
@override
|
|
String get detectAndConnect => 'Detect & Connect';
|
|
|
|
@override
|
|
String get connect => 'Connect';
|
|
|
|
@override
|
|
String get disconnect => 'Disconnect';
|
|
|
|
@override
|
|
String get authServerUrlOptional => 'Auth Server URL (Optional)';
|
|
|
|
@override
|
|
String get authServerUrlHint =>
|
|
'e.g., auth.example.com (if different from server)';
|
|
|
|
@override
|
|
String get authServerUrlDescription =>
|
|
'Leave empty if authentication is on the same server';
|
|
|
|
@override
|
|
String detectedAuthType(String authType) {
|
|
return 'Detected: $authType';
|
|
}
|
|
|
|
@override
|
|
String get serverRequiresAuth => 'This server requires authentication';
|
|
|
|
@override
|
|
String get tailscaleVpnConnection => 'Tailscale VPN Connection';
|
|
|
|
@override
|
|
String get unencryptedConnection => 'Unencrypted Connection';
|
|
|
|
@override
|
|
String get usingHttpOverTailscale =>
|
|
'Using HTTP over Tailscale (encrypted tunnel)';
|
|
|
|
@override
|
|
String get httpsFailedUsingHttp => 'HTTPS failed, using HTTP fallback';
|
|
|
|
@override
|
|
String get httpNotEncrypted => 'HTTP connection - data is not encrypted';
|
|
|
|
@override
|
|
String get pleaseEnterServerAddress =>
|
|
'Please enter your Music Assistant server address';
|
|
|
|
@override
|
|
String get pleaseEnterName => 'Please enter your name';
|
|
|
|
@override
|
|
String get pleaseEnterValidPort =>
|
|
'Please enter a valid port number (1-65535)';
|
|
|
|
@override
|
|
String get pleaseEnterCredentials => 'Please enter username and password';
|
|
|
|
@override
|
|
String get authFailed =>
|
|
'Authentication failed. Please check your credentials.';
|
|
|
|
@override
|
|
String get maLoginFailed =>
|
|
'Music Assistant login failed. Please check your credentials.';
|
|
|
|
@override
|
|
String get connectionFailed =>
|
|
'Could not connect to server. Please check the address and try again.';
|
|
|
|
@override
|
|
String get detectingAuth => 'Detecting authentication...';
|
|
|
|
@override
|
|
String get cannotDetermineAuth =>
|
|
'Cannot determine authentication requirements. Please check server URL.';
|
|
|
|
@override
|
|
String get noAuthentication => 'No Authentication';
|
|
|
|
@override
|
|
String get httpBasicAuth => 'HTTP Basic Auth';
|
|
|
|
@override
|
|
String get authelia => 'Authelia';
|
|
|
|
@override
|
|
String get musicAssistantLogin => 'Music Assistant Login';
|
|
|
|
@override
|
|
String get pressBackToMinimize => 'Press back again to minimize';
|
|
|
|
@override
|
|
String get recentlyPlayed => 'Recently Played';
|
|
|
|
@override
|
|
String get discoverArtists => 'Discover Artists';
|
|
|
|
@override
|
|
String get discoverAlbums => 'Discover Albums';
|
|
|
|
@override
|
|
String get discoveryMixes => 'Discovery Mixes';
|
|
|
|
@override
|
|
String get discoveryMixesDescription =>
|
|
'Show provider recommendation mixes (e.g., Tidal Daily Mixes, Discover Weekly) on home screen';
|
|
|
|
@override
|
|
String get discoveryRows => 'Discovery rows from Music Assistant';
|
|
|
|
@override
|
|
String get refreshDiscoveryRows => 'Refresh available rows';
|
|
|
|
@override
|
|
String get noDiscoveryRows => 'No discovery rows available';
|
|
|
|
@override
|
|
String get discoveryRowBadge => 'Music Assistant';
|
|
|
|
@override
|
|
String get continueListening => 'Continue Listening';
|
|
|
|
@override
|
|
String get discoverAudiobooks => 'Discover Audiobooks';
|
|
|
|
@override
|
|
String get discoverSeries => 'Discover Series';
|
|
|
|
@override
|
|
String get favoriteAlbums => 'Favorite Albums';
|
|
|
|
@override
|
|
String get favoriteArtists => 'Favorite Artists';
|
|
|
|
@override
|
|
String get favoriteTracks => 'Favorite Tracks';
|
|
|
|
@override
|
|
String get favoritePlaylists => 'Favorite Playlists';
|
|
|
|
@override
|
|
String get favoriteRadioStations => 'Favorite Radio Stations';
|
|
|
|
@override
|
|
String get favoritePodcasts => 'Favorite Podcasts';
|
|
|
|
@override
|
|
String get searchMusic => 'Search music...';
|
|
|
|
@override
|
|
String get searchForContent => 'Search for artists, albums, or tracks';
|
|
|
|
@override
|
|
String get recentSearches => 'Recent Searches';
|
|
|
|
@override
|
|
String get clearSearchHistory => 'Clear Search History';
|
|
|
|
@override
|
|
String get searchHistoryCleared => 'Search history cleared';
|
|
|
|
@override
|
|
String get libraryOnly => 'Library only';
|
|
|
|
@override
|
|
String get retry => 'Retry';
|
|
|
|
@override
|
|
String get all => 'All';
|
|
|
|
@override
|
|
String get artists => 'Artists';
|
|
|
|
@override
|
|
String get albums => 'Albums';
|
|
|
|
@override
|
|
String get tracks => 'Tracks';
|
|
|
|
@override
|
|
String get playlists => 'Playlists';
|
|
|
|
@override
|
|
String get audiobooks => 'Audiobooks';
|
|
|
|
@override
|
|
String get music => 'Music';
|
|
|
|
@override
|
|
String get radio => 'Radio';
|
|
|
|
@override
|
|
String get stations => 'Stations';
|
|
|
|
@override
|
|
String get selectLibrary => 'Select Library';
|
|
|
|
@override
|
|
String get noRadioStations => 'No radio stations';
|
|
|
|
@override
|
|
String get addRadioStationsHint => 'Add radio stations in Music Assistant';
|
|
|
|
@override
|
|
String get searchFailed => 'Search failed. Please check your connection.';
|
|
|
|
@override
|
|
String get queue => 'Queue';
|
|
|
|
@override
|
|
String playerQueue(String playerName) {
|
|
return '$playerName Queue';
|
|
}
|
|
|
|
@override
|
|
String get noPlayerSelected => 'No player selected';
|
|
|
|
@override
|
|
String get undo => 'Undo';
|
|
|
|
@override
|
|
String removedItem(String itemName) {
|
|
return 'Removed $itemName';
|
|
}
|
|
|
|
@override
|
|
String get settings => 'Settings';
|
|
|
|
@override
|
|
String get debugLogs => 'Debug Logs';
|
|
|
|
@override
|
|
String get themeMode => 'Theme Mode';
|
|
|
|
@override
|
|
String get light => 'Light';
|
|
|
|
@override
|
|
String get dark => 'Dark';
|
|
|
|
@override
|
|
String get system => 'System';
|
|
|
|
@override
|
|
String get pullToRefresh => 'Pull to refresh the library to apply changes';
|
|
|
|
@override
|
|
String get viewDebugLogs => 'View Debug Logs';
|
|
|
|
@override
|
|
String get viewAllPlayers => 'View All Players';
|
|
|
|
@override
|
|
String get copyLogs => 'Copy Logs';
|
|
|
|
@override
|
|
String get clearLogs => 'Clear Logs';
|
|
|
|
@override
|
|
String get copyList => 'Copy List';
|
|
|
|
@override
|
|
String get close => 'Close';
|
|
|
|
@override
|
|
String allPlayersCount(int count) {
|
|
return 'All Players ($count)';
|
|
}
|
|
|
|
@override
|
|
String errorLoadingPlayers(String error) {
|
|
return 'Error loading players: $error';
|
|
}
|
|
|
|
@override
|
|
String get logsCopied => 'Logs copied to clipboard';
|
|
|
|
@override
|
|
String get logsCleared => 'Logs cleared';
|
|
|
|
@override
|
|
String get playerListCopied => 'Player list copied to clipboard!';
|
|
|
|
@override
|
|
String get noLogsYet => 'No logs yet';
|
|
|
|
@override
|
|
String get infoPlus => 'Info+';
|
|
|
|
@override
|
|
String get warnings => 'Warnings';
|
|
|
|
@override
|
|
String get errors => 'Errors';
|
|
|
|
@override
|
|
String showingEntries(int filtered, int total) {
|
|
return 'Showing $filtered of $total entries';
|
|
}
|
|
|
|
@override
|
|
String get thisDevice => 'This device';
|
|
|
|
@override
|
|
String get ghostPlayer => 'Ghost player (duplicate)';
|
|
|
|
@override
|
|
String get unavailableCorrupt => 'Unavailable/Corrupt';
|
|
|
|
@override
|
|
String playerId(String id) {
|
|
return 'ID: $id';
|
|
}
|
|
|
|
@override
|
|
String playerInfo(String available, String provider) {
|
|
return 'Available: $available | Provider: $provider';
|
|
}
|
|
|
|
@override
|
|
String get shareBugReport => 'Share bug report';
|
|
|
|
@override
|
|
String get moreOptions => 'More options';
|
|
|
|
@override
|
|
String failedToUpdateFavorite(String error) {
|
|
return 'Failed to update favorite: $error';
|
|
}
|
|
|
|
@override
|
|
String get noPlayersAvailable => 'No players available';
|
|
|
|
@override
|
|
String get albumAddedToQueue => 'Album added to queue';
|
|
|
|
@override
|
|
String get tracksAddedToQueue => 'Tracks added to queue';
|
|
|
|
@override
|
|
String get trackAddedToQueue => 'Track added to queue';
|
|
|
|
@override
|
|
String get play => 'Play';
|
|
|
|
@override
|
|
String get noPlayersFound => 'No players found';
|
|
|
|
@override
|
|
String startingRadio(String name) {
|
|
return 'Starting $name radio';
|
|
}
|
|
|
|
@override
|
|
String failedToStartRadio(String error) {
|
|
return 'Failed to start radio: $error';
|
|
}
|
|
|
|
@override
|
|
String startingRadioOnPlayer(String name, String playerName) {
|
|
return 'Starting $name radio on $playerName';
|
|
}
|
|
|
|
@override
|
|
String addedRadioToQueue(String name) {
|
|
return 'Added $name radio to queue';
|
|
}
|
|
|
|
@override
|
|
String failedToAddToQueue(String error) {
|
|
return 'Failed to add to queue: $error';
|
|
}
|
|
|
|
@override
|
|
String playingRadioStation(String name) {
|
|
return 'Playing $name';
|
|
}
|
|
|
|
@override
|
|
String get addedToQueue => 'Added to queue';
|
|
|
|
@override
|
|
String get inLibrary => 'In Library';
|
|
|
|
@override
|
|
String get noAlbumsFound => 'No albums found';
|
|
|
|
@override
|
|
String playing(String name) {
|
|
return 'Playing $name';
|
|
}
|
|
|
|
@override
|
|
String get playingTrack => 'Playing track';
|
|
|
|
@override
|
|
String get nowPlaying => 'Now playing';
|
|
|
|
@override
|
|
String markedAsFinished(String name) {
|
|
return '$name marked as finished';
|
|
}
|
|
|
|
@override
|
|
String failedToMarkFinished(String error) {
|
|
return 'Failed to mark as finished: $error';
|
|
}
|
|
|
|
@override
|
|
String markedAsUnplayed(String name) {
|
|
return '$name marked as unplayed';
|
|
}
|
|
|
|
@override
|
|
String failedToMarkUnplayed(String error) {
|
|
return 'Failed to mark as unplayed: $error';
|
|
}
|
|
|
|
@override
|
|
String failedToPlay(String error) {
|
|
return 'Failed to play: $error';
|
|
}
|
|
|
|
@override
|
|
String get markAsFinished => 'Mark as Finished';
|
|
|
|
@override
|
|
String get markAsUnplayed => 'Mark as Unplayed';
|
|
|
|
@override
|
|
String byAuthor(String author) {
|
|
return 'By $author';
|
|
}
|
|
|
|
@override
|
|
String audiobookCount(int count) {
|
|
return '$count audiobook(s)';
|
|
}
|
|
|
|
@override
|
|
String get loading => 'Loading...';
|
|
|
|
@override
|
|
String bookCount(int count) {
|
|
return '$count book(s)';
|
|
}
|
|
|
|
@override
|
|
String get books => 'Books';
|
|
|
|
@override
|
|
String get noFavoriteAudiobooks => 'No favorite audiobooks';
|
|
|
|
@override
|
|
String get tapHeartAudiobook =>
|
|
'Tap the heart on an audiobook to add it to favorites';
|
|
|
|
@override
|
|
String get noAudiobooks => 'No audiobooks';
|
|
|
|
@override
|
|
String get addAudiobooksHint =>
|
|
'Add audiobooks to your library to see them here';
|
|
|
|
@override
|
|
String get noFavoriteArtists => 'No favorite artists';
|
|
|
|
@override
|
|
String get tapHeartArtist =>
|
|
'Tap the heart on an artist to add them to favorites';
|
|
|
|
@override
|
|
String get noFavoriteAlbums => 'No favorite albums';
|
|
|
|
@override
|
|
String get tapHeartAlbum =>
|
|
'Tap the heart on an album to add it to favorites';
|
|
|
|
@override
|
|
String get noFavoritePlaylists => 'No favorite playlists';
|
|
|
|
@override
|
|
String get tapHeartPlaylist =>
|
|
'Tap the heart on a playlist to add it to favorites';
|
|
|
|
@override
|
|
String get noFavoriteTracks => 'No favorite tracks';
|
|
|
|
@override
|
|
String get longPressTrackHint =>
|
|
'Long-press a track and tap the heart to add it to favorites';
|
|
|
|
@override
|
|
String get loadSeries => 'Load Series';
|
|
|
|
@override
|
|
String get notConnected => 'Not connected to Music Assistant';
|
|
|
|
@override
|
|
String get notConnectedTitle => 'Not Connected';
|
|
|
|
@override
|
|
String get connectHint =>
|
|
'Connect to your Music Assistant server to start listening';
|
|
|
|
@override
|
|
String get configureServer => 'Configure Server';
|
|
|
|
@override
|
|
String get noArtistsFound => 'No artists found';
|
|
|
|
@override
|
|
String get noTracksFound => 'No tracks found';
|
|
|
|
@override
|
|
String get noPlaylistsFound => 'No playlists found';
|
|
|
|
@override
|
|
String get queueIsEmpty => 'Queue is empty';
|
|
|
|
@override
|
|
String get noResultsFound => 'No results found';
|
|
|
|
@override
|
|
String get refresh => 'Refresh';
|
|
|
|
@override
|
|
String get debugConsole => 'Debug Console';
|
|
|
|
@override
|
|
String get copy => 'Copy';
|
|
|
|
@override
|
|
String get clear => 'Clear';
|
|
|
|
@override
|
|
String get noLogsToCopy => 'No logs to copy';
|
|
|
|
@override
|
|
String get noDebugLogsYet => 'No debug logs yet. Try detecting auth.';
|
|
|
|
@override
|
|
String get showDebug => 'Show Debug';
|
|
|
|
@override
|
|
String get hideDebug => 'Hide Debug';
|
|
|
|
@override
|
|
String get chapters => 'Chapters';
|
|
|
|
@override
|
|
String get noChapters => 'No chapters';
|
|
|
|
@override
|
|
String get noChapterInfo => 'This audiobook has no chapter information';
|
|
|
|
@override
|
|
String errorSeeking(String error) {
|
|
return 'Error seeking: $error';
|
|
}
|
|
|
|
@override
|
|
String error(String error) {
|
|
return 'Error: $error';
|
|
}
|
|
|
|
@override
|
|
String get home => 'Home';
|
|
|
|
@override
|
|
String get library => 'Library';
|
|
|
|
@override
|
|
String get homeScreen => 'Home Screen';
|
|
|
|
@override
|
|
String get metadataApis => 'Metadata APIs';
|
|
|
|
@override
|
|
String get theme => 'Theme';
|
|
|
|
@override
|
|
String get materialYou => 'Material You';
|
|
|
|
@override
|
|
String get adaptiveTheme => 'Adaptive Theme';
|
|
|
|
@override
|
|
String get language => 'Language';
|
|
|
|
@override
|
|
String get english => 'English';
|
|
|
|
@override
|
|
String get german => 'German';
|
|
|
|
@override
|
|
String get spanish => 'Spanish';
|
|
|
|
@override
|
|
String get french => 'French';
|
|
|
|
@override
|
|
String get noTracksInPlaylist => 'No tracks in playlist';
|
|
|
|
@override
|
|
String get sortAlphabetically => 'Sort alphabetically';
|
|
|
|
@override
|
|
String get sortByYear => 'Sort by year';
|
|
|
|
@override
|
|
String get sortBySeriesOrder => 'Sort by series order';
|
|
|
|
@override
|
|
String get sortByDuration => 'Sort by duration';
|
|
|
|
@override
|
|
String get newestFirst => 'Newest first';
|
|
|
|
@override
|
|
String get oldestFirst => 'Oldest first';
|
|
|
|
@override
|
|
String get viewDetails => 'View details';
|
|
|
|
@override
|
|
String get listView => 'List view';
|
|
|
|
@override
|
|
String get gridView => 'Grid view';
|
|
|
|
@override
|
|
String get noBooksInSeries => 'No books found in this series';
|
|
|
|
@override
|
|
String get artist => 'Artist';
|
|
|
|
@override
|
|
String get showRecentlyPlayedAlbums => 'Show recently played albums';
|
|
|
|
@override
|
|
String get showRandomArtists => 'Show random artists to discover';
|
|
|
|
@override
|
|
String get showRandomAlbums => 'Show random albums to discover';
|
|
|
|
@override
|
|
String get showAudiobooksInProgress => 'Show audiobooks in progress';
|
|
|
|
@override
|
|
String get showRandomAudiobooks => 'Show random audiobooks to discover';
|
|
|
|
@override
|
|
String get showRandomSeries => 'Show random audiobook series to discover';
|
|
|
|
@override
|
|
String get showFavoriteAlbums => 'Show a row of your favorite albums';
|
|
|
|
@override
|
|
String get showFavoriteArtists => 'Show a row of your favorite artists';
|
|
|
|
@override
|
|
String get showFavoriteTracks => 'Show a row of your favorite tracks';
|
|
|
|
@override
|
|
String get showFavoritePlaylists => 'Show a row of your favorite playlists';
|
|
|
|
@override
|
|
String get showFavoriteRadioStations =>
|
|
'Show a row of your favorite radio stations';
|
|
|
|
@override
|
|
String get showFavoritePodcasts => 'Show a row of your favorite podcasts';
|
|
|
|
@override
|
|
String get extractColorsFromArtwork =>
|
|
'Extract colors from album and artist artwork';
|
|
|
|
@override
|
|
String get chooseHomeScreenRows =>
|
|
'Choose which rows to display on the home screen';
|
|
|
|
@override
|
|
String get favorite => 'Favorite';
|
|
|
|
@override
|
|
String get addedToFavorites => 'Added to favorites';
|
|
|
|
@override
|
|
String get removedFromFavorites => 'Removed from favorites';
|
|
|
|
@override
|
|
String get addedToLibrary => 'Added to library';
|
|
|
|
@override
|
|
String get removedFromLibrary => 'Removed from library';
|
|
|
|
@override
|
|
String get addToLibrary => 'Add';
|
|
|
|
@override
|
|
String get unknown => 'Unknown';
|
|
|
|
@override
|
|
String get noUpcomingTracks => 'No upcoming tracks';
|
|
|
|
@override
|
|
String get showAll => 'Show all';
|
|
|
|
@override
|
|
String get showFavoritesOnly => 'Show favorites only';
|
|
|
|
@override
|
|
String get changeView => 'Change view';
|
|
|
|
@override
|
|
String get authors => 'Authors';
|
|
|
|
@override
|
|
String get series => 'Series';
|
|
|
|
@override
|
|
String get shows => 'Shows';
|
|
|
|
@override
|
|
String get podcasts => 'Podcasts';
|
|
|
|
@override
|
|
String get podcastSupportComingSoon => 'Podcast support coming soon';
|
|
|
|
@override
|
|
String get noPodcasts => 'No podcasts';
|
|
|
|
@override
|
|
String get addPodcastsHint => 'Subscribe to podcasts in Music Assistant';
|
|
|
|
@override
|
|
String get episodes => 'Episodes';
|
|
|
|
@override
|
|
String get episode => 'Episode';
|
|
|
|
@override
|
|
String get playlist => 'Playlist';
|
|
|
|
@override
|
|
String get connectionError => 'Connection Error';
|
|
|
|
@override
|
|
String get twoColumnGrid => '2-column grid';
|
|
|
|
@override
|
|
String get threeColumnGrid => '3-column grid';
|
|
|
|
@override
|
|
String get fromProviders => 'From Providers';
|
|
|
|
@override
|
|
String get resume => 'Resume';
|
|
|
|
@override
|
|
String get about => 'About';
|
|
|
|
@override
|
|
String get inProgress => 'In progress';
|
|
|
|
@override
|
|
String narratedBy(String narrators) {
|
|
return 'Narrated by $narrators';
|
|
}
|
|
|
|
@override
|
|
String get unknownNarrator => 'Unknown Narrator';
|
|
|
|
@override
|
|
String get unknownAuthor => 'Unknown Author';
|
|
|
|
@override
|
|
String get loadingChapters => 'Loading chapters...';
|
|
|
|
@override
|
|
String get noChapterInfoAvailable => 'No chapter information available';
|
|
|
|
@override
|
|
String percentComplete(int percent) {
|
|
return '$percent% complete';
|
|
}
|
|
|
|
@override
|
|
String get theAudioDbApiKey => 'TheAudioDB API Key';
|
|
|
|
@override
|
|
String get theAudioDbApiKeyHint => 'Use \"2\" for free tier or premium key';
|
|
|
|
@override
|
|
String get audiobookLibraries => 'Audiobook Libraries';
|
|
|
|
@override
|
|
String get chooseAudiobookLibraries =>
|
|
'Choose which Audiobookshelf libraries to include';
|
|
|
|
@override
|
|
String get unknownLibrary => 'Unknown Library';
|
|
|
|
@override
|
|
String get musicProviders => 'Music Providers';
|
|
|
|
@override
|
|
String get musicProvidersDescription =>
|
|
'Choose which accounts to show in your library';
|
|
|
|
@override
|
|
String get libraryRefreshing => 'Refreshing library...';
|
|
|
|
@override
|
|
String get cannotDisableLastProvider => 'Cannot disable the last provider';
|
|
|
|
@override
|
|
String get noSeriesFound => 'No Series Found';
|
|
|
|
@override
|
|
String get ensembleBugReport => 'Ensemble Bug Report';
|
|
|
|
@override
|
|
String byOwner(String owner) {
|
|
return 'By $owner';
|
|
}
|
|
|
|
@override
|
|
String get noSeriesAvailable =>
|
|
'No series available from your audiobook library.\nPull to refresh.';
|
|
|
|
@override
|
|
String get pullToLoadSeries =>
|
|
'Pull down to load series\nfrom Music Assistant';
|
|
|
|
@override
|
|
String get search => 'Search';
|
|
|
|
@override
|
|
String get metadataApisDescription =>
|
|
'Artist images are automatically fetched from Deezer. Add API keys below for artist biographies and album descriptions.';
|
|
|
|
@override
|
|
String get lastFmApiKey => 'Last.fm API Key';
|
|
|
|
@override
|
|
String get lastFmApiKeyHint => 'Get free key at last.fm/api';
|
|
|
|
@override
|
|
String get swipeToSwitchDevice => 'Swipe to change player';
|
|
|
|
@override
|
|
String chapterNumber(int number) {
|
|
return 'Chapter $number';
|
|
}
|
|
|
|
@override
|
|
String get pcmAudio => 'PCM Audio';
|
|
|
|
@override
|
|
String get playOn => 'Play on...';
|
|
|
|
@override
|
|
String get addAlbumToQueueOn => 'Add album to queue on...';
|
|
|
|
@override
|
|
String get addToQueue => 'Add to queue';
|
|
|
|
@override
|
|
String get addToQueueOn => 'Add to queue on...';
|
|
|
|
@override
|
|
String get startRadio => 'Start radio';
|
|
|
|
@override
|
|
String startRadioOn(String name) {
|
|
return 'Start $name radio on...';
|
|
}
|
|
|
|
@override
|
|
String get book => 'book';
|
|
|
|
@override
|
|
String get audiobookSingular => 'audiobook';
|
|
|
|
@override
|
|
String get albumSingular => 'Album';
|
|
|
|
@override
|
|
String get trackSingular => 'Track';
|
|
|
|
@override
|
|
String get podcastSingular => 'Podcast';
|
|
|
|
@override
|
|
String trackCount(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: 'tracks',
|
|
one: 'track',
|
|
);
|
|
return '$count $_temp0';
|
|
}
|
|
|
|
@override
|
|
String get materialYouDescription => 'Use system colors (Android 12+)';
|
|
|
|
@override
|
|
String get accentColor => 'Accent Color';
|
|
|
|
@override
|
|
String get players => 'Players';
|
|
|
|
@override
|
|
String get preferLocalPlayer => 'Prefer Local Player';
|
|
|
|
@override
|
|
String get preferLocalPlayerDescription =>
|
|
'Always select this device first when available';
|
|
|
|
@override
|
|
String get smartSortPlayers => 'Smart Sort';
|
|
|
|
@override
|
|
String get smartSortPlayersDescription =>
|
|
'Sort by status (playing, on, off) instead of alphabetically';
|
|
|
|
@override
|
|
String get disableAutoSwitch => 'Disable Auto-Switch';
|
|
|
|
@override
|
|
String get disableAutoSwitchDescription =>
|
|
'Never automatically switch to a different player';
|
|
|
|
@override
|
|
String get playerStateUnavailable => 'Unavailable';
|
|
|
|
@override
|
|
String get playerStateOff => 'Off';
|
|
|
|
@override
|
|
String get playerStateIdle => 'Idle';
|
|
|
|
@override
|
|
String get playerStateExternalSource => 'External Source';
|
|
|
|
@override
|
|
String get playerSelected => 'Selected';
|
|
|
|
@override
|
|
String get actionQueuedForSync => 'Will sync when online';
|
|
|
|
@override
|
|
String pendingOfflineActions(int count) {
|
|
return '$count pending sync';
|
|
}
|
|
|
|
@override
|
|
String get hintsAndTips => 'Hints & Tips';
|
|
|
|
@override
|
|
String get showHints => 'Show Hints';
|
|
|
|
@override
|
|
String get showHintsDescription =>
|
|
'Display helpful tips for discovering features';
|
|
|
|
@override
|
|
String get volumePrecisionMode => 'Volume Precision Mode';
|
|
|
|
@override
|
|
String get volumePrecisionModeDescription =>
|
|
'Hold still while adjusting volume for fine control';
|
|
|
|
@override
|
|
String get display => 'Display';
|
|
|
|
@override
|
|
String get showProviderIcons => 'Show Provider Icons';
|
|
|
|
@override
|
|
String get showProviderIconsDescription =>
|
|
'Display provider logos on album art';
|
|
|
|
@override
|
|
String get pullToSelectPlayers => 'Pull to select players';
|
|
|
|
@override
|
|
String get holdToSync => 'Long-press to sync';
|
|
|
|
@override
|
|
String get swipeToAdjustVolume => 'Swipe to adjust volume';
|
|
|
|
@override
|
|
String get selectPlayerHint => 'Choose a player, or dismiss by swiping down';
|
|
|
|
@override
|
|
String get welcomeToEnsemble => 'Welcome to Ensemble';
|
|
|
|
@override
|
|
String get welcomeMessage =>
|
|
'By default your phone is the selected player.\nPull the mini player down to select another player.';
|
|
|
|
@override
|
|
String get skip => 'Skip';
|
|
|
|
@override
|
|
String get dismissPlayerHint =>
|
|
'Swipe down, tap outside, or press back to return';
|
|
|
|
@override
|
|
String playingAlbum(String albumName) {
|
|
return 'Playing $albumName';
|
|
}
|
|
|
|
@override
|
|
String playingPlaylist(String playlistName) {
|
|
return 'Playing $playlistName';
|
|
}
|
|
|
|
@override
|
|
String get noTracks => 'No tracks';
|
|
|
|
@override
|
|
String get addTracksHint =>
|
|
'Add some music to your library to see tracks here';
|
|
|
|
@override
|
|
String get noFavoriteRadioStations => 'No favorite radio stations';
|
|
|
|
@override
|
|
String get longPressRadioHint =>
|
|
'Long-press a station and tap the heart to add it to favorites';
|
|
|
|
@override
|
|
String get noFavoritePodcasts => 'No favorite podcasts';
|
|
|
|
@override
|
|
String get longPressPodcastHint =>
|
|
'Long-press a podcast and tap the heart to add it to favorites';
|
|
|
|
@override
|
|
String failedToPlayRadioStation(String error) {
|
|
return 'Failed to play radio station: $error';
|
|
}
|
|
|
|
@override
|
|
String get itemAlreadyInLibrary => 'Item is already in library';
|
|
|
|
@override
|
|
String get failedToAddToLibrary => 'Failed to add to library';
|
|
|
|
@override
|
|
String get cannotFindLibraryId => 'Cannot find library ID for removal';
|
|
|
|
@override
|
|
String get failedToRemoveFromLibrary => 'Failed to remove from library';
|
|
|
|
@override
|
|
String failedToPlayAlbum(String error) {
|
|
return 'Failed to play album: $error';
|
|
}
|
|
|
|
@override
|
|
String playingOnPlayer(String name, String playerName) {
|
|
return 'Playing $name on $playerName';
|
|
}
|
|
|
|
@override
|
|
String failedToPlayPlaylist(String error) {
|
|
return 'Failed to play playlist: $error';
|
|
}
|
|
|
|
@override
|
|
String failedToPlayAudiobook(String error) {
|
|
return 'Failed to play audiobook: $error';
|
|
}
|
|
|
|
@override
|
|
String get noOtherPlayersAvailable => 'No other players available';
|
|
|
|
@override
|
|
String get transferQueue => 'Transfer queue';
|
|
|
|
@override
|
|
String get clearQueue => 'Clear queue';
|
|
|
|
@override
|
|
String syncingPlayer(String playerName) {
|
|
return 'Syncing $playerName...';
|
|
}
|
|
|
|
@override
|
|
String get switchPlayer => 'Switch Player';
|
|
|
|
@override
|
|
String get logsCopiedToClipboard => 'Logs copied to clipboard';
|
|
|
|
@override
|
|
String get auto => 'Auto';
|
|
|
|
@override
|
|
String get transferQueueTo => 'Transfer Queue To';
|
|
|
|
@override
|
|
String queueTransferredTo(String playerName) {
|
|
return 'Queue transferred to $playerName';
|
|
}
|
|
|
|
@override
|
|
String failedToTransferQueue(String error) {
|
|
return 'Failed to transfer queue: $error';
|
|
}
|
|
|
|
@override
|
|
String failedToLoadQueue(String error) {
|
|
return 'Failed to load queue: $error';
|
|
}
|
|
|
|
@override
|
|
String get transferTo => 'Transfer to...';
|
|
|
|
@override
|
|
String get transferQueueToPlayer => 'Transfer queue to another player';
|
|
|
|
@override
|
|
String get selectPlayerToPlay => 'Select a player';
|
|
|
|
@override
|
|
String get selectPlayerToPlayAlbum => 'Select player to play album';
|
|
|
|
@override
|
|
String get selectPlayerToPlayPlaylist => 'Select player to play playlist';
|
|
|
|
@override
|
|
String get selectPlayerForRadio => 'Select player for radio';
|
|
|
|
@override
|
|
String get selectPlayerForEpisode => 'Select player for episode';
|
|
|
|
@override
|
|
String get selectPlayerForAudiobook => 'Select player for audiobook';
|
|
|
|
@override
|
|
String get selectPlayerToAddToQueue => 'Select player to add to queue';
|
|
|
|
@override
|
|
String get aboutAndSupport => 'About & Support';
|
|
|
|
@override
|
|
String get supportDevelopment => 'Support Development';
|
|
|
|
@override
|
|
String get ensembleIsUnofficial =>
|
|
'Ensemble is an unofficial, community-built client. Consider supporting its development.';
|
|
|
|
@override
|
|
String get sponsorOnGitHub => 'Sponsor on GitHub';
|
|
|
|
@override
|
|
String get buyMeAKoFi => 'Buy me a Ko-fi';
|
|
|
|
@override
|
|
String get aboutEnsemble => 'About Ensemble';
|
|
|
|
@override
|
|
String get version => 'Version';
|
|
|
|
@override
|
|
String get visitGitHubRepo => 'Visit GitHub Repository';
|
|
|
|
@override
|
|
String get reportABug => 'Report a Bug';
|
|
|
|
@override
|
|
String get noRowsEnabled => 'No rows enabled';
|
|
|
|
@override
|
|
String get pullToRefreshHint =>
|
|
'Pull down to refresh or enable rows in settings';
|
|
}
|