mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-12 23:45:18 +00:00
3049 lines
83 KiB
Dart
3049 lines
83 KiB
Dart
import 'dart:async';
|
||
|
||
import 'package:flutter/foundation.dart';
|
||
import 'package:flutter/widgets.dart';
|
||
import 'package:flutter_localizations/flutter_localizations.dart';
|
||
import 'package:intl/intl.dart' as intl;
|
||
|
||
import 'app_localizations_ar.dart';
|
||
import 'app_localizations_bn.dart';
|
||
import 'app_localizations_ca.dart';
|
||
import 'app_localizations_cs.dart';
|
||
import 'app_localizations_de.dart';
|
||
import 'app_localizations_en.dart';
|
||
import 'app_localizations_es.dart';
|
||
import 'app_localizations_eu.dart';
|
||
import 'app_localizations_fa.dart';
|
||
import 'app_localizations_fi.dart';
|
||
import 'app_localizations_fr.dart';
|
||
import 'app_localizations_hi.dart';
|
||
import 'app_localizations_id.dart';
|
||
import 'app_localizations_it.dart';
|
||
import 'app_localizations_ja.dart';
|
||
import 'app_localizations_ka.dart';
|
||
import 'app_localizations_ko.dart';
|
||
import 'app_localizations_ne.dart';
|
||
import 'app_localizations_nl.dart';
|
||
import 'app_localizations_pl.dart';
|
||
import 'app_localizations_pt.dart';
|
||
import 'app_localizations_ru.dart';
|
||
import 'app_localizations_ta.dart';
|
||
import 'app_localizations_th.dart';
|
||
import 'app_localizations_tl.dart';
|
||
import 'app_localizations_tr.dart';
|
||
import 'app_localizations_uk.dart';
|
||
import 'app_localizations_vi.dart';
|
||
import 'app_localizations_zh.dart';
|
||
|
||
// ignore_for_file: type=lint
|
||
|
||
/// Callers can lookup localized strings with an instance of AppLocalizations
|
||
/// returned by `AppLocalizations.of(context)`.
|
||
///
|
||
/// Applications need to include `AppLocalizations.delegate()` in their app's
|
||
/// `localizationDelegates` list, and the locales they support in the app's
|
||
/// `supportedLocales` list. For example:
|
||
///
|
||
/// ```dart
|
||
/// import 'generated/app_localizations.dart';
|
||
///
|
||
/// return MaterialApp(
|
||
/// localizationsDelegates: AppLocalizations.localizationsDelegates,
|
||
/// supportedLocales: AppLocalizations.supportedLocales,
|
||
/// home: MyApplicationHome(),
|
||
/// );
|
||
/// ```
|
||
///
|
||
/// ## Update pubspec.yaml
|
||
///
|
||
/// Please make sure to update your pubspec.yaml to include the following
|
||
/// packages:
|
||
///
|
||
/// ```yaml
|
||
/// dependencies:
|
||
/// # Internationalization support.
|
||
/// flutter_localizations:
|
||
/// sdk: flutter
|
||
/// intl: any # Use the pinned version from flutter_localizations
|
||
///
|
||
/// # Rest of dependencies
|
||
/// ```
|
||
///
|
||
/// ## iOS Applications
|
||
///
|
||
/// iOS applications define key application metadata, including supported
|
||
/// locales, in an Info.plist file that is built into the application bundle.
|
||
/// To configure the locales supported by your app, you’ll need to edit this
|
||
/// file.
|
||
///
|
||
/// First, open your project’s ios/Runner.xcworkspace Xcode workspace file.
|
||
/// Then, in the Project Navigator, open the Info.plist file under the Runner
|
||
/// project’s Runner folder.
|
||
///
|
||
/// Next, select the Information Property List item, select Add Item from the
|
||
/// Editor menu, then select Localizations from the pop-up menu.
|
||
///
|
||
/// Select and expand the newly-created Localizations item then, for each
|
||
/// locale your application supports, add a new item and select the locale
|
||
/// you wish to add from the pop-up menu in the Value field. This list should
|
||
/// be consistent with the languages listed in the AppLocalizations.supportedLocales
|
||
/// property.
|
||
abstract class AppLocalizations {
|
||
AppLocalizations(String locale)
|
||
: localeName = intl.Intl.canonicalizedLocale(locale.toString());
|
||
|
||
final String localeName;
|
||
|
||
static AppLocalizations? of(BuildContext context) {
|
||
return Localizations.of<AppLocalizations>(context, AppLocalizations);
|
||
}
|
||
|
||
static const LocalizationsDelegate<AppLocalizations> delegate =
|
||
_AppLocalizationsDelegate();
|
||
|
||
/// A list of this localizations delegate along with the default localizations
|
||
/// delegates.
|
||
///
|
||
/// Returns a list of localizations delegates containing this delegate along with
|
||
/// GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate,
|
||
/// and GlobalWidgetsLocalizations.delegate.
|
||
///
|
||
/// Additional delegates can be added by appending to this list in
|
||
/// MaterialApp. This list does not have to be used at all if a custom list
|
||
/// of delegates is preferred or required.
|
||
static const List<LocalizationsDelegate<dynamic>> localizationsDelegates =
|
||
<LocalizationsDelegate<dynamic>>[
|
||
delegate,
|
||
GlobalMaterialLocalizations.delegate,
|
||
GlobalCupertinoLocalizations.delegate,
|
||
GlobalWidgetsLocalizations.delegate,
|
||
];
|
||
|
||
/// A list of this localizations delegate's supported locales.
|
||
static const List<Locale> supportedLocales = <Locale>[
|
||
Locale('ar'),
|
||
Locale('bn'),
|
||
Locale('ca'),
|
||
Locale('cs'),
|
||
Locale('de'),
|
||
Locale('en'),
|
||
Locale('es'),
|
||
Locale('eu'),
|
||
Locale('fa'),
|
||
Locale('fi'),
|
||
Locale('fr'),
|
||
Locale('hi'),
|
||
Locale('id'),
|
||
Locale('it'),
|
||
Locale('ja'),
|
||
Locale('ka'),
|
||
Locale('ko'),
|
||
Locale('ne'),
|
||
Locale('nl'),
|
||
Locale('pl'),
|
||
Locale('pt'),
|
||
Locale('ru'),
|
||
Locale('ta'),
|
||
Locale('th'),
|
||
Locale('tl'),
|
||
Locale('tr'),
|
||
Locale('uk'),
|
||
Locale('vi'),
|
||
Locale('zh')
|
||
];
|
||
|
||
/// No description provided for @guest.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Guest'**
|
||
String get guest;
|
||
|
||
/// No description provided for @browse.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Browse'**
|
||
String get browse;
|
||
|
||
/// No description provided for @search.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Search'**
|
||
String get search;
|
||
|
||
/// No description provided for @library.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Library'**
|
||
String get library;
|
||
|
||
/// No description provided for @lyrics.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Lyrics'**
|
||
String get lyrics;
|
||
|
||
/// No description provided for @settings.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Settings'**
|
||
String get settings;
|
||
|
||
/// No description provided for @genre_categories_filter.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Filter categories or genres...'**
|
||
String get genre_categories_filter;
|
||
|
||
/// No description provided for @genre.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Genre'**
|
||
String get genre;
|
||
|
||
/// No description provided for @personalized.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Personalized'**
|
||
String get personalized;
|
||
|
||
/// No description provided for @featured.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Featured'**
|
||
String get featured;
|
||
|
||
/// No description provided for @new_releases.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'New Releases'**
|
||
String get new_releases;
|
||
|
||
/// No description provided for @songs.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Songs'**
|
||
String get songs;
|
||
|
||
/// No description provided for @playing_track.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Playing {track}'**
|
||
String playing_track(Object track);
|
||
|
||
/// No description provided for @queue_clear_alert.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This will clear the current queue. {track_length} tracks will be removed\nDo you want to continue?'**
|
||
String queue_clear_alert(Object track_length);
|
||
|
||
/// No description provided for @load_more.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Load more'**
|
||
String get load_more;
|
||
|
||
/// No description provided for @playlists.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Playlists'**
|
||
String get playlists;
|
||
|
||
/// No description provided for @artists.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Artists'**
|
||
String get artists;
|
||
|
||
/// No description provided for @albums.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Albums'**
|
||
String get albums;
|
||
|
||
/// No description provided for @tracks.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Tracks'**
|
||
String get tracks;
|
||
|
||
/// No description provided for @downloads.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Downloads'**
|
||
String get downloads;
|
||
|
||
/// No description provided for @filter_playlists.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Filter your playlists...'**
|
||
String get filter_playlists;
|
||
|
||
/// No description provided for @liked_tracks.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Liked Tracks'**
|
||
String get liked_tracks;
|
||
|
||
/// No description provided for @liked_tracks_description.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'All your liked tracks'**
|
||
String get liked_tracks_description;
|
||
|
||
/// No description provided for @playlist.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Playlist'**
|
||
String get playlist;
|
||
|
||
/// No description provided for @create_a_playlist.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Create a playlist'**
|
||
String get create_a_playlist;
|
||
|
||
/// No description provided for @update_playlist.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Update playlist'**
|
||
String get update_playlist;
|
||
|
||
/// No description provided for @create.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Create'**
|
||
String get create;
|
||
|
||
/// No description provided for @cancel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cancel'**
|
||
String get cancel;
|
||
|
||
/// No description provided for @update.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Update'**
|
||
String get update;
|
||
|
||
/// No description provided for @playlist_name.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Playlist Name'**
|
||
String get playlist_name;
|
||
|
||
/// No description provided for @name_of_playlist.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Name of the playlist'**
|
||
String get name_of_playlist;
|
||
|
||
/// No description provided for @description.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Description'**
|
||
String get description;
|
||
|
||
/// No description provided for @public.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Public'**
|
||
String get public;
|
||
|
||
/// No description provided for @collaborative.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Collaborative'**
|
||
String get collaborative;
|
||
|
||
/// No description provided for @search_local_tracks.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Search local tracks...'**
|
||
String get search_local_tracks;
|
||
|
||
/// No description provided for @play.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Play'**
|
||
String get play;
|
||
|
||
/// No description provided for @delete.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete'**
|
||
String get delete;
|
||
|
||
/// No description provided for @none.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'None'**
|
||
String get none;
|
||
|
||
/// No description provided for @sort_a_z.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sort by A-Z'**
|
||
String get sort_a_z;
|
||
|
||
/// No description provided for @sort_z_a.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sort by Z-A'**
|
||
String get sort_z_a;
|
||
|
||
/// No description provided for @sort_artist.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sort by Artist'**
|
||
String get sort_artist;
|
||
|
||
/// No description provided for @sort_album.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sort by Album'**
|
||
String get sort_album;
|
||
|
||
/// No description provided for @sort_duration.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sort by Duration'**
|
||
String get sort_duration;
|
||
|
||
/// No description provided for @sort_tracks.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sort Tracks'**
|
||
String get sort_tracks;
|
||
|
||
/// No description provided for @currently_downloading.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Currently Downloading ({tracks_length})'**
|
||
String currently_downloading(Object tracks_length);
|
||
|
||
/// No description provided for @cancel_all.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cancel All'**
|
||
String get cancel_all;
|
||
|
||
/// No description provided for @filter_artist.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Filter artists...'**
|
||
String get filter_artist;
|
||
|
||
/// No description provided for @followers.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{followers} Followers'**
|
||
String followers(Object followers);
|
||
|
||
/// No description provided for @add_artist_to_blacklist.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add artist to blacklist'**
|
||
String get add_artist_to_blacklist;
|
||
|
||
/// No description provided for @top_tracks.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Top Tracks'**
|
||
String get top_tracks;
|
||
|
||
/// No description provided for @fans_also_like.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Fans also like'**
|
||
String get fans_also_like;
|
||
|
||
/// No description provided for @loading.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Loading...'**
|
||
String get loading;
|
||
|
||
/// No description provided for @artist.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Artist'**
|
||
String get artist;
|
||
|
||
/// No description provided for @blacklisted.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Blacklisted'**
|
||
String get blacklisted;
|
||
|
||
/// No description provided for @following.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Following'**
|
||
String get following;
|
||
|
||
/// No description provided for @follow.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Follow'**
|
||
String get follow;
|
||
|
||
/// No description provided for @artist_url_copied.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Artist URL copied to clipboard'**
|
||
String get artist_url_copied;
|
||
|
||
/// No description provided for @added_to_queue.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Added {tracks} tracks to queue'**
|
||
String added_to_queue(Object tracks);
|
||
|
||
/// No description provided for @filter_albums.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Filter albums...'**
|
||
String get filter_albums;
|
||
|
||
/// No description provided for @synced.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Synced'**
|
||
String get synced;
|
||
|
||
/// No description provided for @plain.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Plain'**
|
||
String get plain;
|
||
|
||
/// No description provided for @shuffle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Shuffle'**
|
||
String get shuffle;
|
||
|
||
/// No description provided for @search_tracks.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Search tracks...'**
|
||
String get search_tracks;
|
||
|
||
/// No description provided for @released.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Released'**
|
||
String get released;
|
||
|
||
/// No description provided for @error.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Error {error}'**
|
||
String error(Object error);
|
||
|
||
/// No description provided for @title.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Title'**
|
||
String get title;
|
||
|
||
/// No description provided for @time.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Time'**
|
||
String get time;
|
||
|
||
/// No description provided for @more_actions.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'More actions'**
|
||
String get more_actions;
|
||
|
||
/// No description provided for @download_count.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Download ({count})'**
|
||
String download_count(Object count);
|
||
|
||
/// No description provided for @add_count_to_playlist.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add ({count}) to Playlist'**
|
||
String add_count_to_playlist(Object count);
|
||
|
||
/// No description provided for @add_count_to_queue.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add ({count}) to Queue'**
|
||
String add_count_to_queue(Object count);
|
||
|
||
/// No description provided for @play_count_next.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Play ({count}) next'**
|
||
String play_count_next(Object count);
|
||
|
||
/// No description provided for @album.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Album'**
|
||
String get album;
|
||
|
||
/// No description provided for @copied_to_clipboard.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Copied {data} to clipboard'**
|
||
String copied_to_clipboard(Object data);
|
||
|
||
/// No description provided for @add_to_following_playlists.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add {track} to following Playlists'**
|
||
String add_to_following_playlists(Object track);
|
||
|
||
/// No description provided for @add.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add'**
|
||
String get add;
|
||
|
||
/// No description provided for @added_track_to_queue.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Added {track} to queue'**
|
||
String added_track_to_queue(Object track);
|
||
|
||
/// No description provided for @add_to_queue.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add to queue'**
|
||
String get add_to_queue;
|
||
|
||
/// No description provided for @track_will_play_next.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{track} will play next'**
|
||
String track_will_play_next(Object track);
|
||
|
||
/// No description provided for @play_next.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Play next'**
|
||
String get play_next;
|
||
|
||
/// No description provided for @removed_track_from_queue.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Removed {track} from queue'**
|
||
String removed_track_from_queue(Object track);
|
||
|
||
/// No description provided for @remove_from_queue.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove from queue'**
|
||
String get remove_from_queue;
|
||
|
||
/// No description provided for @remove_from_favorites.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove from favorites'**
|
||
String get remove_from_favorites;
|
||
|
||
/// No description provided for @save_as_favorite.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save as favorite'**
|
||
String get save_as_favorite;
|
||
|
||
/// No description provided for @add_to_playlist.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add to playlist'**
|
||
String get add_to_playlist;
|
||
|
||
/// No description provided for @remove_from_playlist.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove from playlist'**
|
||
String get remove_from_playlist;
|
||
|
||
/// No description provided for @add_to_blacklist.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add to blacklist'**
|
||
String get add_to_blacklist;
|
||
|
||
/// No description provided for @remove_from_blacklist.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove from blacklist'**
|
||
String get remove_from_blacklist;
|
||
|
||
/// No description provided for @share.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Share'**
|
||
String get share;
|
||
|
||
/// No description provided for @mini_player.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Mini Player'**
|
||
String get mini_player;
|
||
|
||
/// No description provided for @slide_to_seek.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Slide to seek forward or backward'**
|
||
String get slide_to_seek;
|
||
|
||
/// No description provided for @shuffle_playlist.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Shuffle playlist'**
|
||
String get shuffle_playlist;
|
||
|
||
/// No description provided for @unshuffle_playlist.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Unshuffle playlist'**
|
||
String get unshuffle_playlist;
|
||
|
||
/// No description provided for @previous_track.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Previous track'**
|
||
String get previous_track;
|
||
|
||
/// No description provided for @next_track.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Next track'**
|
||
String get next_track;
|
||
|
||
/// No description provided for @pause_playback.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Pause Playback'**
|
||
String get pause_playback;
|
||
|
||
/// No description provided for @resume_playback.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Resume Playback'**
|
||
String get resume_playback;
|
||
|
||
/// No description provided for @loop_track.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Loop track'**
|
||
String get loop_track;
|
||
|
||
/// No description provided for @no_loop.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No loop'**
|
||
String get no_loop;
|
||
|
||
/// No description provided for @repeat_playlist.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Repeat playlist'**
|
||
String get repeat_playlist;
|
||
|
||
/// No description provided for @queue.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Queue'**
|
||
String get queue;
|
||
|
||
/// No description provided for @alternative_track_sources.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Alternative track sources'**
|
||
String get alternative_track_sources;
|
||
|
||
/// No description provided for @download_track.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Download track'**
|
||
String get download_track;
|
||
|
||
/// No description provided for @tracks_in_queue.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{tracks} tracks in queue'**
|
||
String tracks_in_queue(Object tracks);
|
||
|
||
/// No description provided for @clear_all.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear all'**
|
||
String get clear_all;
|
||
|
||
/// No description provided for @show_hide_ui_on_hover.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Show/Hide UI on hover'**
|
||
String get show_hide_ui_on_hover;
|
||
|
||
/// No description provided for @always_on_top.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Always on top'**
|
||
String get always_on_top;
|
||
|
||
/// No description provided for @exit_mini_player.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Exit Mini player'**
|
||
String get exit_mini_player;
|
||
|
||
/// No description provided for @download_location.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Download location'**
|
||
String get download_location;
|
||
|
||
/// No description provided for @local_library.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Local library'**
|
||
String get local_library;
|
||
|
||
/// No description provided for @add_library_location.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add to library'**
|
||
String get add_library_location;
|
||
|
||
/// No description provided for @remove_library_location.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove from library'**
|
||
String get remove_library_location;
|
||
|
||
/// No description provided for @account.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Account'**
|
||
String get account;
|
||
|
||
/// No description provided for @logout.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Logout'**
|
||
String get logout;
|
||
|
||
/// No description provided for @logout_of_this_account.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Logout of this account'**
|
||
String get logout_of_this_account;
|
||
|
||
/// No description provided for @language_region.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Language & Region'**
|
||
String get language_region;
|
||
|
||
/// No description provided for @language.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Language'**
|
||
String get language;
|
||
|
||
/// No description provided for @system_default.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'System Default'**
|
||
String get system_default;
|
||
|
||
/// No description provided for @market_place_region.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Marketplace Region'**
|
||
String get market_place_region;
|
||
|
||
/// No description provided for @recommendation_country.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Recommendation Country'**
|
||
String get recommendation_country;
|
||
|
||
/// No description provided for @appearance.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Appearance'**
|
||
String get appearance;
|
||
|
||
/// No description provided for @layout_mode.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Layout Mode'**
|
||
String get layout_mode;
|
||
|
||
/// No description provided for @override_layout_settings.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Override responsive layout mode settings'**
|
||
String get override_layout_settings;
|
||
|
||
/// No description provided for @adaptive.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Adaptive'**
|
||
String get adaptive;
|
||
|
||
/// No description provided for @compact.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Compact'**
|
||
String get compact;
|
||
|
||
/// No description provided for @extended.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Extended'**
|
||
String get extended;
|
||
|
||
/// No description provided for @theme.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Theme'**
|
||
String get theme;
|
||
|
||
/// No description provided for @dark.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Dark'**
|
||
String get dark;
|
||
|
||
/// No description provided for @light.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Light'**
|
||
String get light;
|
||
|
||
/// No description provided for @system.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'System'**
|
||
String get system;
|
||
|
||
/// No description provided for @accent_color.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Accent Color'**
|
||
String get accent_color;
|
||
|
||
/// No description provided for @sync_album_color.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sync album color'**
|
||
String get sync_album_color;
|
||
|
||
/// No description provided for @sync_album_color_description.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Uses the dominant color of the album art as the accent color'**
|
||
String get sync_album_color_description;
|
||
|
||
/// No description provided for @playback.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Playback'**
|
||
String get playback;
|
||
|
||
/// No description provided for @audio_quality.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Audio Quality'**
|
||
String get audio_quality;
|
||
|
||
/// No description provided for @high.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'High'**
|
||
String get high;
|
||
|
||
/// No description provided for @low.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Low'**
|
||
String get low;
|
||
|
||
/// No description provided for @pre_download_play.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Pre-download and play'**
|
||
String get pre_download_play;
|
||
|
||
/// No description provided for @pre_download_play_description.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Instead of streaming audio, download bytes and play instead (Recommended for higher bandwidth users)'**
|
||
String get pre_download_play_description;
|
||
|
||
/// No description provided for @skip_non_music.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Skip non-music segments (SponsorBlock)'**
|
||
String get skip_non_music;
|
||
|
||
/// No description provided for @blacklist_description.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Blacklisted tracks and artists'**
|
||
String get blacklist_description;
|
||
|
||
/// No description provided for @wait_for_download_to_finish.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Please wait for the current download to finish'**
|
||
String get wait_for_download_to_finish;
|
||
|
||
/// No description provided for @desktop.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Desktop'**
|
||
String get desktop;
|
||
|
||
/// No description provided for @close_behavior.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Close Behavior'**
|
||
String get close_behavior;
|
||
|
||
/// No description provided for @close.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Close'**
|
||
String get close;
|
||
|
||
/// No description provided for @minimize_to_tray.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Minimize to tray'**
|
||
String get minimize_to_tray;
|
||
|
||
/// No description provided for @show_tray_icon.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Show System tray icon'**
|
||
String get show_tray_icon;
|
||
|
||
/// No description provided for @about.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'About'**
|
||
String get about;
|
||
|
||
/// No description provided for @u_love_spotube.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'We know you love Spotube'**
|
||
String get u_love_spotube;
|
||
|
||
/// No description provided for @check_for_updates.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Check for updates'**
|
||
String get check_for_updates;
|
||
|
||
/// No description provided for @about_spotube.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'About Spotube'**
|
||
String get about_spotube;
|
||
|
||
/// No description provided for @blacklist.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Blacklist'**
|
||
String get blacklist;
|
||
|
||
/// No description provided for @please_sponsor.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Please Sponsor/Donate'**
|
||
String get please_sponsor;
|
||
|
||
/// No description provided for @spotube_description.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open source extensible music streaming platform and app, based on BYOMM (Bring your own music metadata) concept'**
|
||
String get spotube_description;
|
||
|
||
/// No description provided for @version.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Version'**
|
||
String get version;
|
||
|
||
/// No description provided for @build_number.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Build Number'**
|
||
String get build_number;
|
||
|
||
/// No description provided for @founder.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Founder'**
|
||
String get founder;
|
||
|
||
/// No description provided for @repository.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Repository'**
|
||
String get repository;
|
||
|
||
/// No description provided for @bug_issues.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Bug+Issues'**
|
||
String get bug_issues;
|
||
|
||
/// No description provided for @made_with.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Made with ❤️ in Bangladesh🇧🇩'**
|
||
String get made_with;
|
||
|
||
/// No description provided for @kingkor_roy_tirtho.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Kingkor Roy Tirtho'**
|
||
String get kingkor_roy_tirtho;
|
||
|
||
/// No description provided for @copyright.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'© 2021-{current_year} Kingkor Roy Tirtho'**
|
||
String copyright(Object current_year);
|
||
|
||
/// No description provided for @license.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'License'**
|
||
String get license;
|
||
|
||
/// No description provided for @credentials_will_not_be_shared_disclaimer.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Don\'t worry, any of your credentials won\'t be collected or shared with anyone'**
|
||
String get credentials_will_not_be_shared_disclaimer;
|
||
|
||
/// No description provided for @know_how_to_login.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Don\'t know how to do this?'**
|
||
String get know_how_to_login;
|
||
|
||
/// No description provided for @follow_step_by_step_guide.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Follow along the Step by Step guide'**
|
||
String get follow_step_by_step_guide;
|
||
|
||
/// No description provided for @cookie_name_cookie.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{name} Cookie'**
|
||
String cookie_name_cookie(Object name);
|
||
|
||
/// No description provided for @fill_in_all_fields.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Please fill in all the fields'**
|
||
String get fill_in_all_fields;
|
||
|
||
/// No description provided for @submit.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Submit'**
|
||
String get submit;
|
||
|
||
/// No description provided for @exit.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Exit'**
|
||
String get exit;
|
||
|
||
/// No description provided for @previous.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Previous'**
|
||
String get previous;
|
||
|
||
/// No description provided for @next.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Next'**
|
||
String get next;
|
||
|
||
/// No description provided for @done.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Done'**
|
||
String get done;
|
||
|
||
/// No description provided for @step_1.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Step 1'**
|
||
String get step_1;
|
||
|
||
/// No description provided for @first_go_to.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'First, Go to'**
|
||
String get first_go_to;
|
||
|
||
/// No description provided for @something_went_wrong.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Something went wrong'**
|
||
String get something_went_wrong;
|
||
|
||
/// No description provided for @piped_instance.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Piped Server Instance'**
|
||
String get piped_instance;
|
||
|
||
/// No description provided for @piped_description.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The Piped server instance to use for track matching'**
|
||
String get piped_description;
|
||
|
||
/// No description provided for @piped_warning.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Some of them might not work well. So use at your own risk'**
|
||
String get piped_warning;
|
||
|
||
/// No description provided for @invidious_instance.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Invidious Server Instance'**
|
||
String get invidious_instance;
|
||
|
||
/// No description provided for @invidious_description.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The Invidious server instance to use for track matching'**
|
||
String get invidious_description;
|
||
|
||
/// No description provided for @invidious_warning.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Some of them might not work well. So use at your own risk'**
|
||
String get invidious_warning;
|
||
|
||
/// No description provided for @generate.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Generate'**
|
||
String get generate;
|
||
|
||
/// No description provided for @track_exists.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Track {track} already exists'**
|
||
String track_exists(Object track);
|
||
|
||
/// No description provided for @replace_downloaded_tracks.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Replace all downloaded tracks'**
|
||
String get replace_downloaded_tracks;
|
||
|
||
/// No description provided for @skip_download_tracks.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Skip downloading all downloaded tracks'**
|
||
String get skip_download_tracks;
|
||
|
||
/// No description provided for @do_you_want_to_replace.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Do you want to replace the existing track??'**
|
||
String get do_you_want_to_replace;
|
||
|
||
/// No description provided for @replace.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Replace'**
|
||
String get replace;
|
||
|
||
/// No description provided for @skip.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Skip'**
|
||
String get skip;
|
||
|
||
/// No description provided for @select_up_to_count_type.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Select up to {count} {type}'**
|
||
String select_up_to_count_type(Object count, Object type);
|
||
|
||
/// No description provided for @select_genres.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Select Genres'**
|
||
String get select_genres;
|
||
|
||
/// No description provided for @add_genres.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add Genres'**
|
||
String get add_genres;
|
||
|
||
/// No description provided for @country.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Country'**
|
||
String get country;
|
||
|
||
/// No description provided for @number_of_tracks_generate.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Number of tracks to generate'**
|
||
String get number_of_tracks_generate;
|
||
|
||
/// No description provided for @acousticness.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Acousticness'**
|
||
String get acousticness;
|
||
|
||
/// No description provided for @danceability.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Danceability'**
|
||
String get danceability;
|
||
|
||
/// No description provided for @energy.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Energy'**
|
||
String get energy;
|
||
|
||
/// No description provided for @instrumentalness.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Instrumentalness'**
|
||
String get instrumentalness;
|
||
|
||
/// No description provided for @liveness.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Liveness'**
|
||
String get liveness;
|
||
|
||
/// No description provided for @loudness.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Loudness'**
|
||
String get loudness;
|
||
|
||
/// No description provided for @speechiness.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Speechiness'**
|
||
String get speechiness;
|
||
|
||
/// No description provided for @valence.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Valence'**
|
||
String get valence;
|
||
|
||
/// No description provided for @popularity.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Popularity'**
|
||
String get popularity;
|
||
|
||
/// No description provided for @key.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Key'**
|
||
String get key;
|
||
|
||
/// No description provided for @duration.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Duration (s)'**
|
||
String get duration;
|
||
|
||
/// No description provided for @tempo.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Tempo (BPM)'**
|
||
String get tempo;
|
||
|
||
/// No description provided for @mode.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Mode'**
|
||
String get mode;
|
||
|
||
/// No description provided for @time_signature.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Time Signature'**
|
||
String get time_signature;
|
||
|
||
/// No description provided for @short.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Short'**
|
||
String get short;
|
||
|
||
/// No description provided for @medium.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Medium'**
|
||
String get medium;
|
||
|
||
/// No description provided for @long.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Long'**
|
||
String get long;
|
||
|
||
/// No description provided for @min.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Min'**
|
||
String get min;
|
||
|
||
/// No description provided for @max.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Max'**
|
||
String get max;
|
||
|
||
/// No description provided for @target.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Target'**
|
||
String get target;
|
||
|
||
/// No description provided for @moderate.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Moderate'**
|
||
String get moderate;
|
||
|
||
/// No description provided for @deselect_all.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Deselect All'**
|
||
String get deselect_all;
|
||
|
||
/// No description provided for @select_all.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Select All'**
|
||
String get select_all;
|
||
|
||
/// No description provided for @are_you_sure.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Are you sure?'**
|
||
String get are_you_sure;
|
||
|
||
/// No description provided for @generating_playlist.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Generating your custom playlist...'**
|
||
String get generating_playlist;
|
||
|
||
/// No description provided for @selected_count_tracks.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Selected {count} tracks'**
|
||
String selected_count_tracks(Object count);
|
||
|
||
/// No description provided for @download_warning.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'If you download all Tracks at bulk you\'re clearly pirating Music & causing damage to the creative society of Music. I hope you are aware of this. Always, try respecting & supporting Artist\'s hard work'**
|
||
String get download_warning;
|
||
|
||
/// No description provided for @download_ip_ban_warning.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'BTW, your IP can get blocked on YouTube due excessive download requests than usual. IP block means you can\'t use YouTube (even if you\'re logged in) for at least 2-3 months from that IP device. And Spotube doesn\'t hold any responsibility if this ever happens'**
|
||
String get download_ip_ban_warning;
|
||
|
||
/// No description provided for @by_clicking_accept_terms.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'By clicking \'accept\' you agree to following terms:'**
|
||
String get by_clicking_accept_terms;
|
||
|
||
/// No description provided for @download_agreement_1.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'I know I\'m pirating Music. I\'m bad'**
|
||
String get download_agreement_1;
|
||
|
||
/// No description provided for @download_agreement_2.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'I\'ll support the Artist wherever I can and I\'m only doing this because I don\'t have money to buy their art'**
|
||
String get download_agreement_2;
|
||
|
||
/// No description provided for @download_agreement_3.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'I\'m completely aware that my IP can get blocked on YouTube & I don\'t hold Spotube or his owners/contributors responsible for any accidents caused by my current action'**
|
||
String get download_agreement_3;
|
||
|
||
/// No description provided for @decline.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Decline'**
|
||
String get decline;
|
||
|
||
/// No description provided for @accept.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Accept'**
|
||
String get accept;
|
||
|
||
/// No description provided for @details.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Details'**
|
||
String get details;
|
||
|
||
/// No description provided for @youtube.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'YouTube'**
|
||
String get youtube;
|
||
|
||
/// No description provided for @channel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Channel'**
|
||
String get channel;
|
||
|
||
/// No description provided for @likes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Likes'**
|
||
String get likes;
|
||
|
||
/// No description provided for @dislikes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Dislikes'**
|
||
String get dislikes;
|
||
|
||
/// No description provided for @views.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Views'**
|
||
String get views;
|
||
|
||
/// No description provided for @streamUrl.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Stream URL'**
|
||
String get streamUrl;
|
||
|
||
/// No description provided for @stop.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Stop'**
|
||
String get stop;
|
||
|
||
/// No description provided for @sort_newest.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sort by newest added'**
|
||
String get sort_newest;
|
||
|
||
/// No description provided for @sort_oldest.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sort by oldest added'**
|
||
String get sort_oldest;
|
||
|
||
/// No description provided for @sleep_timer.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sleep Timer'**
|
||
String get sleep_timer;
|
||
|
||
/// No description provided for @mins.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{minutes} Minutes'**
|
||
String mins(Object minutes);
|
||
|
||
/// No description provided for @hours.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{hours} Hours'**
|
||
String hours(Object hours);
|
||
|
||
/// No description provided for @hour.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{hours} Hour'**
|
||
String hour(Object hours);
|
||
|
||
/// No description provided for @custom_hours.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Custom Hours'**
|
||
String get custom_hours;
|
||
|
||
/// No description provided for @logs.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Logs'**
|
||
String get logs;
|
||
|
||
/// No description provided for @developers.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Developers'**
|
||
String get developers;
|
||
|
||
/// No description provided for @not_logged_in.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'You\'re not logged in'**
|
||
String get not_logged_in;
|
||
|
||
/// No description provided for @search_mode.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Search Mode'**
|
||
String get search_mode;
|
||
|
||
/// No description provided for @audio_source.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Audio Source'**
|
||
String get audio_source;
|
||
|
||
/// No description provided for @ok.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Ok'**
|
||
String get ok;
|
||
|
||
/// No description provided for @failed_to_encrypt.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to encrypt'**
|
||
String get failed_to_encrypt;
|
||
|
||
/// No description provided for @encryption_failed_warning.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Spotube uses encryption to securely store your data. But failed to do so. So it\'ll fallback to insecure storage\nIf you\'re using linux, please make sure you\'ve any secret-service (gnome-keyring, kde-wallet, keepassxc etc) installed'**
|
||
String get encryption_failed_warning;
|
||
|
||
/// No description provided for @querying_info.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Querying info...'**
|
||
String get querying_info;
|
||
|
||
/// No description provided for @piped_api_down.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Piped API is down'**
|
||
String get piped_api_down;
|
||
|
||
/// No description provided for @piped_down_error_instructions.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The Piped instance {pipedInstance} is currently down\n\nEither change the instance or change the \'API type\' to official YouTube API\n\nMake sure to restart the app after change'**
|
||
String piped_down_error_instructions(Object pipedInstance);
|
||
|
||
/// No description provided for @you_are_offline.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'You are currently offline'**
|
||
String get you_are_offline;
|
||
|
||
/// No description provided for @connection_restored.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your internet connection was restored'**
|
||
String get connection_restored;
|
||
|
||
/// No description provided for @use_system_title_bar.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Use system title bar'**
|
||
String get use_system_title_bar;
|
||
|
||
/// No description provided for @crunching_results.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Crunching results...'**
|
||
String get crunching_results;
|
||
|
||
/// No description provided for @search_to_get_results.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Search to get results'**
|
||
String get search_to_get_results;
|
||
|
||
/// No description provided for @use_amoled_mode.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Pitch black dark theme'**
|
||
String get use_amoled_mode;
|
||
|
||
/// No description provided for @pitch_dark_theme.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'AMOLED Mode'**
|
||
String get pitch_dark_theme;
|
||
|
||
/// No description provided for @normalize_audio.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Normalize audio'**
|
||
String get normalize_audio;
|
||
|
||
/// No description provided for @change_cover.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Change cover'**
|
||
String get change_cover;
|
||
|
||
/// No description provided for @add_cover.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add cover'**
|
||
String get add_cover;
|
||
|
||
/// No description provided for @restore_defaults.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Restore defaults'**
|
||
String get restore_defaults;
|
||
|
||
/// No description provided for @download_music_codec.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Download music codec'**
|
||
String get download_music_codec;
|
||
|
||
/// No description provided for @streaming_music_codec.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Streaming music codec'**
|
||
String get streaming_music_codec;
|
||
|
||
/// No description provided for @login_with_lastfm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Login with Last.fm'**
|
||
String get login_with_lastfm;
|
||
|
||
/// No description provided for @connect.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Connect'**
|
||
String get connect;
|
||
|
||
/// No description provided for @disconnect_lastfm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Disconnect Last.fm'**
|
||
String get disconnect_lastfm;
|
||
|
||
/// No description provided for @disconnect.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Disconnect'**
|
||
String get disconnect;
|
||
|
||
/// No description provided for @username.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Username'**
|
||
String get username;
|
||
|
||
/// No description provided for @password.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Password'**
|
||
String get password;
|
||
|
||
/// No description provided for @login.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Login'**
|
||
String get login;
|
||
|
||
/// No description provided for @login_with_your_lastfm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Login with your Last.fm account'**
|
||
String get login_with_your_lastfm;
|
||
|
||
/// No description provided for @scrobble_to_lastfm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Scrobble to Last.fm'**
|
||
String get scrobble_to_lastfm;
|
||
|
||
/// No description provided for @go_to_album.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Go to Album'**
|
||
String get go_to_album;
|
||
|
||
/// No description provided for @discord_rich_presence.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Discord Rich Presence'**
|
||
String get discord_rich_presence;
|
||
|
||
/// No description provided for @browse_all.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Browse All'**
|
||
String get browse_all;
|
||
|
||
/// No description provided for @genres.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Genres'**
|
||
String get genres;
|
||
|
||
/// No description provided for @explore_genres.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Explore Genres'**
|
||
String get explore_genres;
|
||
|
||
/// No description provided for @friends.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Friends'**
|
||
String get friends;
|
||
|
||
/// No description provided for @no_lyrics_available.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sorry, unable find lyrics for this track'**
|
||
String get no_lyrics_available;
|
||
|
||
/// No description provided for @start_a_radio.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Start a Radio'**
|
||
String get start_a_radio;
|
||
|
||
/// No description provided for @how_to_start_radio.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'How do you want to start the radio?'**
|
||
String get how_to_start_radio;
|
||
|
||
/// No description provided for @replace_queue_question.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Do you want to replace the current queue or append to it?'**
|
||
String get replace_queue_question;
|
||
|
||
/// No description provided for @endless_playback.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Endless Playback'**
|
||
String get endless_playback;
|
||
|
||
/// No description provided for @delete_playlist.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete Playlist'**
|
||
String get delete_playlist;
|
||
|
||
/// No description provided for @delete_playlist_confirmation.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Are you sure you want to delete this playlist?'**
|
||
String get delete_playlist_confirmation;
|
||
|
||
/// No description provided for @local_tracks.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Local Tracks'**
|
||
String get local_tracks;
|
||
|
||
/// No description provided for @local_tab.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Local'**
|
||
String get local_tab;
|
||
|
||
/// No description provided for @song_link.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Song Link'**
|
||
String get song_link;
|
||
|
||
/// No description provided for @skip_this_nonsense.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Skip this nonsense'**
|
||
String get skip_this_nonsense;
|
||
|
||
/// No description provided for @freedom_of_music.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'“Freedom of Music”'**
|
||
String get freedom_of_music;
|
||
|
||
/// No description provided for @freedom_of_music_palm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'“Freedom of Music in the palm of your hand”'**
|
||
String get freedom_of_music_palm;
|
||
|
||
/// No description provided for @get_started.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Let\'s get started'**
|
||
String get get_started;
|
||
|
||
/// No description provided for @youtube_source_description.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Recommended and works best.'**
|
||
String get youtube_source_description;
|
||
|
||
/// No description provided for @piped_source_description.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Feeling free? Same as YouTube but a lot free.'**
|
||
String get piped_source_description;
|
||
|
||
/// No description provided for @jiosaavn_source_description.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Best for South Asian region.'**
|
||
String get jiosaavn_source_description;
|
||
|
||
/// No description provided for @invidious_source_description.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Similar to Piped but with higher availability.'**
|
||
String get invidious_source_description;
|
||
|
||
/// No description provided for @highest_quality.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Highest Quality: {quality}'**
|
||
String highest_quality(Object quality);
|
||
|
||
/// No description provided for @select_audio_source.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Select Audio Source'**
|
||
String get select_audio_source;
|
||
|
||
/// No description provided for @endless_playback_description.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Automatically append new songs\nto the end of the queue'**
|
||
String get endless_playback_description;
|
||
|
||
/// No description provided for @choose_your_region.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Choose your region'**
|
||
String get choose_your_region;
|
||
|
||
/// No description provided for @choose_your_region_description.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This will help Spotube show you the right content\nfor your location.'**
|
||
String get choose_your_region_description;
|
||
|
||
/// No description provided for @choose_your_language.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Choose your language'**
|
||
String get choose_your_language;
|
||
|
||
/// No description provided for @help_project_grow.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Help this project grow'**
|
||
String get help_project_grow;
|
||
|
||
/// No description provided for @help_project_grow_description.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Spotube is an open-source project. You can help this project grow by contributing to the project, reporting bugs, or suggesting new features.'**
|
||
String get help_project_grow_description;
|
||
|
||
/// No description provided for @contribute_on_github.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Contribute on GitHub'**
|
||
String get contribute_on_github;
|
||
|
||
/// No description provided for @donate_on_open_collective.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Donate on Open Collective'**
|
||
String get donate_on_open_collective;
|
||
|
||
/// No description provided for @browse_anonymously.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Browse Anonymously'**
|
||
String get browse_anonymously;
|
||
|
||
/// No description provided for @enable_connect.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Enable Connect'**
|
||
String get enable_connect;
|
||
|
||
/// No description provided for @enable_connect_description.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Control Spotube from other devices'**
|
||
String get enable_connect_description;
|
||
|
||
/// No description provided for @devices.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Devices'**
|
||
String get devices;
|
||
|
||
/// No description provided for @select.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Select'**
|
||
String get select;
|
||
|
||
/// No description provided for @connect_client_alert.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'You\'re being controlled by {client}'**
|
||
String connect_client_alert(Object client);
|
||
|
||
/// No description provided for @this_device.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This Device'**
|
||
String get this_device;
|
||
|
||
/// No description provided for @remote.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remote'**
|
||
String get remote;
|
||
|
||
/// No description provided for @stats.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Stats'**
|
||
String get stats;
|
||
|
||
/// No description provided for @and_n_more.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'and {count} more'**
|
||
String and_n_more(Object count);
|
||
|
||
/// No description provided for @recently_played.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Recently Played'**
|
||
String get recently_played;
|
||
|
||
/// No description provided for @browse_more.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Browse More'**
|
||
String get browse_more;
|
||
|
||
/// No description provided for @no_title.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No Title'**
|
||
String get no_title;
|
||
|
||
/// No description provided for @not_playing.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Not playing'**
|
||
String get not_playing;
|
||
|
||
/// No description provided for @epic_failure.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Epic failure!'**
|
||
String get epic_failure;
|
||
|
||
/// No description provided for @added_num_tracks_to_queue.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Added {tracks_length} tracks to queue'**
|
||
String added_num_tracks_to_queue(Object tracks_length);
|
||
|
||
/// No description provided for @spotube_has_an_update.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Spotube has an update'**
|
||
String get spotube_has_an_update;
|
||
|
||
/// No description provided for @download_now.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Download Now'**
|
||
String get download_now;
|
||
|
||
/// No description provided for @nightly_version.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Spotube Nightly {nightlyBuildNum} has been released'**
|
||
String nightly_version(Object nightlyBuildNum);
|
||
|
||
/// No description provided for @release_version.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Spotube v{version} has been released'**
|
||
String release_version(Object version);
|
||
|
||
/// No description provided for @read_the_latest.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Read the latest '**
|
||
String get read_the_latest;
|
||
|
||
/// No description provided for @release_notes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'release notes'**
|
||
String get release_notes;
|
||
|
||
/// No description provided for @pick_color_scheme.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Pick color scheme'**
|
||
String get pick_color_scheme;
|
||
|
||
/// No description provided for @save.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save'**
|
||
String get save;
|
||
|
||
/// No description provided for @choose_the_device.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Choose the device:'**
|
||
String get choose_the_device;
|
||
|
||
/// No description provided for @multiple_device_connected.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'There are multiple device connected.\nChoose the device you want this action to take place'**
|
||
String get multiple_device_connected;
|
||
|
||
/// No description provided for @nothing_found.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Nothing found'**
|
||
String get nothing_found;
|
||
|
||
/// No description provided for @the_box_is_empty.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The box is empty'**
|
||
String get the_box_is_empty;
|
||
|
||
/// No description provided for @top_artists.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Top Artists'**
|
||
String get top_artists;
|
||
|
||
/// No description provided for @top_albums.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Top Albums'**
|
||
String get top_albums;
|
||
|
||
/// No description provided for @this_week.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This week'**
|
||
String get this_week;
|
||
|
||
/// No description provided for @this_month.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This month'**
|
||
String get this_month;
|
||
|
||
/// No description provided for @last_6_months.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Last 6 months'**
|
||
String get last_6_months;
|
||
|
||
/// No description provided for @this_year.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This year'**
|
||
String get this_year;
|
||
|
||
/// No description provided for @last_2_years.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Last 2 years'**
|
||
String get last_2_years;
|
||
|
||
/// No description provided for @all_time.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'All time'**
|
||
String get all_time;
|
||
|
||
/// No description provided for @powered_by_provider.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Powered by {providerName}'**
|
||
String powered_by_provider(Object providerName);
|
||
|
||
/// No description provided for @email.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Email'**
|
||
String get email;
|
||
|
||
/// No description provided for @profile_followers.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Followers'**
|
||
String get profile_followers;
|
||
|
||
/// No description provided for @birthday.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Birthday'**
|
||
String get birthday;
|
||
|
||
/// No description provided for @subscription.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Subscription'**
|
||
String get subscription;
|
||
|
||
/// No description provided for @not_born.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Not born'**
|
||
String get not_born;
|
||
|
||
/// No description provided for @hacker.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Hacker'**
|
||
String get hacker;
|
||
|
||
/// No description provided for @profile.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Profile'**
|
||
String get profile;
|
||
|
||
/// No description provided for @no_name.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No Name'**
|
||
String get no_name;
|
||
|
||
/// No description provided for @edit.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit'**
|
||
String get edit;
|
||
|
||
/// No description provided for @user_profile.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'User Profile'**
|
||
String get user_profile;
|
||
|
||
/// No description provided for @count_plays.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count} plays'**
|
||
String count_plays(Object count);
|
||
|
||
/// No description provided for @streaming_fees_hypothetical.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Streaming fees (hypothetical)'**
|
||
String get streaming_fees_hypothetical;
|
||
|
||
/// No description provided for @minutes_listened.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Minutes listened'**
|
||
String get minutes_listened;
|
||
|
||
/// No description provided for @streamed_songs.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Streamed songs'**
|
||
String get streamed_songs;
|
||
|
||
/// No description provided for @count_streams.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count} streams'**
|
||
String count_streams(Object count);
|
||
|
||
/// No description provided for @owned_by_you.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Owned by you'**
|
||
String get owned_by_you;
|
||
|
||
/// No description provided for @copied_shareurl_to_clipboard.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Copied {shareUrl} to clipboard'**
|
||
String copied_shareurl_to_clipboard(Object shareUrl);
|
||
|
||
/// No description provided for @hipotetical_calculation.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'*This is calculated based on average online music streaming platform\'s per stream\npayout of \$0.003 to \$0.005. This is a hypothetical\ncalculation to give user insight about how much they\nwould have paid to the artists if they were to listen\ntheir song in different music streaming platform.'**
|
||
String get hipotetical_calculation;
|
||
|
||
/// No description provided for @count_mins.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{minutes} mins'**
|
||
String count_mins(Object minutes);
|
||
|
||
/// No description provided for @summary_minutes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'minutes'**
|
||
String get summary_minutes;
|
||
|
||
/// No description provided for @summary_listened_to_music.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Listened to music'**
|
||
String get summary_listened_to_music;
|
||
|
||
/// No description provided for @summary_songs.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'songs'**
|
||
String get summary_songs;
|
||
|
||
/// No description provided for @summary_streamed_overall.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Streamed overall'**
|
||
String get summary_streamed_overall;
|
||
|
||
/// No description provided for @summary_owed_to_artists.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Owed to artists\nthis month'**
|
||
String get summary_owed_to_artists;
|
||
|
||
/// No description provided for @summary_artists.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'artist\'s'**
|
||
String get summary_artists;
|
||
|
||
/// No description provided for @summary_music_reached_you.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Music reached you'**
|
||
String get summary_music_reached_you;
|
||
|
||
/// No description provided for @summary_full_albums.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'full albums'**
|
||
String get summary_full_albums;
|
||
|
||
/// No description provided for @summary_got_your_love.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Got your love'**
|
||
String get summary_got_your_love;
|
||
|
||
/// No description provided for @summary_playlists.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'playlists'**
|
||
String get summary_playlists;
|
||
|
||
/// No description provided for @summary_were_on_repeat.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Were on repeat'**
|
||
String get summary_were_on_repeat;
|
||
|
||
/// No description provided for @total_money.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Total {money}'**
|
||
String total_money(Object money);
|
||
|
||
/// No description provided for @webview_not_found.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Webview not found'**
|
||
String get webview_not_found;
|
||
|
||
/// No description provided for @webview_not_found_description.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No webview runtime is installed in your device.\nIf it\'s installed make sure it\'s in the Environment PATH\n\nAfter installing, restart the app'**
|
||
String get webview_not_found_description;
|
||
|
||
/// No description provided for @unsupported_platform.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Unsupported platform'**
|
||
String get unsupported_platform;
|
||
|
||
/// No description provided for @cache_music.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cache music'**
|
||
String get cache_music;
|
||
|
||
/// No description provided for @open.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open'**
|
||
String get open;
|
||
|
||
/// No description provided for @cache_folder.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cache folder'**
|
||
String get cache_folder;
|
||
|
||
/// No description provided for @export.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Export'**
|
||
String get export;
|
||
|
||
/// No description provided for @clear_cache.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear cache'**
|
||
String get clear_cache;
|
||
|
||
/// No description provided for @clear_cache_confirmation.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Do you want to clear the cache?'**
|
||
String get clear_cache_confirmation;
|
||
|
||
/// No description provided for @export_cache_files.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Export Cached Files'**
|
||
String get export_cache_files;
|
||
|
||
/// No description provided for @found_n_files.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Found {count} files'**
|
||
String found_n_files(Object count);
|
||
|
||
/// No description provided for @export_cache_confirmation.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Do you want to export these files to'**
|
||
String get export_cache_confirmation;
|
||
|
||
/// No description provided for @exported_n_out_of_m_files.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Exported {filesExported} out of {files} files'**
|
||
String exported_n_out_of_m_files(Object files, Object filesExported);
|
||
|
||
/// No description provided for @undo.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Undo'**
|
||
String get undo;
|
||
|
||
/// No description provided for @download_all.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Download all'**
|
||
String get download_all;
|
||
|
||
/// No description provided for @add_all_to_playlist.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add all to playlist'**
|
||
String get add_all_to_playlist;
|
||
|
||
/// No description provided for @add_all_to_queue.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add all to queue'**
|
||
String get add_all_to_queue;
|
||
|
||
/// No description provided for @play_all_next.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Play all next'**
|
||
String get play_all_next;
|
||
|
||
/// No description provided for @pause.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Pause'**
|
||
String get pause;
|
||
|
||
/// No description provided for @view_all.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'View all'**
|
||
String get view_all;
|
||
|
||
/// No description provided for @no_tracks_added_yet.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Looks like you haven\'t added any tracks yet'**
|
||
String get no_tracks_added_yet;
|
||
|
||
/// No description provided for @no_tracks.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Looks like there are no tracks here'**
|
||
String get no_tracks;
|
||
|
||
/// No description provided for @no_tracks_listened_yet.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Looks like you haven\'t listened to anything yet'**
|
||
String get no_tracks_listened_yet;
|
||
|
||
/// No description provided for @not_following_artists.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'You\'re not following any artists'**
|
||
String get not_following_artists;
|
||
|
||
/// No description provided for @no_favorite_albums_yet.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Looks like you haven\'t added any albums to your favorites yet'**
|
||
String get no_favorite_albums_yet;
|
||
|
||
/// No description provided for @no_logs_found.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No logs found'**
|
||
String get no_logs_found;
|
||
|
||
/// No description provided for @youtube_engine.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'YouTube Engine'**
|
||
String get youtube_engine;
|
||
|
||
/// No description provided for @youtube_engine_not_installed_title.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{engine} is not installed'**
|
||
String youtube_engine_not_installed_title(Object engine);
|
||
|
||
/// No description provided for @youtube_engine_not_installed_message.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{engine} is not installed in your system.'**
|
||
String youtube_engine_not_installed_message(Object engine);
|
||
|
||
/// No description provided for @youtube_engine_set_path.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Make sure it\'s available in the PATH variable or\nset the absolute path to the {engine} executable below'**
|
||
String youtube_engine_set_path(Object engine);
|
||
|
||
/// No description provided for @youtube_engine_unix_issue_message.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'In macOS/Linux/unix like OS\'s, setting path on .zshrc/.bashrc/.bash_profile etc. won\'t work.\nYou need to set the path in the shell configuration file'**
|
||
String get youtube_engine_unix_issue_message;
|
||
|
||
/// No description provided for @download.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Download'**
|
||
String get download;
|
||
|
||
/// No description provided for @file_not_found.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'File not found'**
|
||
String get file_not_found;
|
||
|
||
/// No description provided for @custom.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Custom'**
|
||
String get custom;
|
||
|
||
/// No description provided for @add_custom_url.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add custom URL'**
|
||
String get add_custom_url;
|
||
|
||
/// No description provided for @edit_port.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit port'**
|
||
String get edit_port;
|
||
|
||
/// No description provided for @port_helper_msg.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Default is -1 which indicates random number. If you\'ve firewall configured, setting this is recommended.'**
|
||
String get port_helper_msg;
|
||
|
||
/// No description provided for @connect_request.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Allow {client} to connect?'**
|
||
String connect_request(Object client);
|
||
|
||
/// No description provided for @connection_request_denied.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Connection denied. User denied access.'**
|
||
String get connection_request_denied;
|
||
|
||
/// No description provided for @an_error_occurred.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'An error occurred'**
|
||
String get an_error_occurred;
|
||
|
||
/// No description provided for @copy_to_clipboard.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Copy to clipboard'**
|
||
String get copy_to_clipboard;
|
||
|
||
/// No description provided for @view_logs.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'View logs'**
|
||
String get view_logs;
|
||
|
||
/// No description provided for @retry.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Retry'**
|
||
String get retry;
|
||
|
||
/// No description provided for @no_default_metadata_provider_selected.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'You\'ve no default metadata provider set'**
|
||
String get no_default_metadata_provider_selected;
|
||
|
||
/// No description provided for @manage_metadata_providers.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Manage metadata providers'**
|
||
String get manage_metadata_providers;
|
||
|
||
/// No description provided for @open_link_in_browser.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open Link in Browser?'**
|
||
String get open_link_in_browser;
|
||
|
||
/// No description provided for @do_you_want_to_open_the_following_link.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Do you want to open the following link'**
|
||
String get do_you_want_to_open_the_following_link;
|
||
|
||
/// No description provided for @unsafe_url_warning.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.'**
|
||
String get unsafe_url_warning;
|
||
|
||
/// No description provided for @copy_link.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Copy Link'**
|
||
String get copy_link;
|
||
|
||
/// No description provided for @building_your_timeline.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Building your timeline based on your listenings...'**
|
||
String get building_your_timeline;
|
||
|
||
/// No description provided for @official.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Official'**
|
||
String get official;
|
||
|
||
/// No description provided for @author_name.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Author: {author}'**
|
||
String author_name(Object author);
|
||
|
||
/// No description provided for @third_party.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Third-party'**
|
||
String get third_party;
|
||
|
||
/// No description provided for @plugin_requires_authentication.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Plugin requires authentication'**
|
||
String get plugin_requires_authentication;
|
||
|
||
/// No description provided for @update_available.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Update available'**
|
||
String get update_available;
|
||
|
||
/// No description provided for @supports_scrobbling.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Supports scrobbling'**
|
||
String get supports_scrobbling;
|
||
|
||
/// No description provided for @plugin_scrobbling_info.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This plugin scrobbles your music to generate your listening history.'**
|
||
String get plugin_scrobbling_info;
|
||
|
||
/// No description provided for @default_plugin.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Default'**
|
||
String get default_plugin;
|
||
|
||
/// No description provided for @set_default.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Set default'**
|
||
String get set_default;
|
||
|
||
/// No description provided for @support.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Support'**
|
||
String get support;
|
||
|
||
/// No description provided for @support_plugin_development.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Support plugin development'**
|
||
String get support_plugin_development;
|
||
|
||
/// No description provided for @can_access_name_api.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'- Can access **{name}** API'**
|
||
String can_access_name_api(Object name);
|
||
|
||
/// No description provided for @do_you_want_to_install_this_plugin.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Do you want to install this plugin?'**
|
||
String get do_you_want_to_install_this_plugin;
|
||
|
||
/// No description provided for @third_party_plugin_warning.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This plugin is from a third-party repository. Please ensure you trust the source before installing.'**
|
||
String get third_party_plugin_warning;
|
||
|
||
/// No description provided for @author.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Author'**
|
||
String get author;
|
||
|
||
/// No description provided for @this_plugin_can_do_following.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This plugin can do following'**
|
||
String get this_plugin_can_do_following;
|
||
|
||
/// No description provided for @install.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Install'**
|
||
String get install;
|
||
|
||
/// No description provided for @install_a_metadata_provider.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Install a Metadata Provider'**
|
||
String get install_a_metadata_provider;
|
||
|
||
/// No description provided for @no_tracks_playing.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No Track being played currently'**
|
||
String get no_tracks_playing;
|
||
|
||
/// No description provided for @synced_lyrics_not_available.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Synced lyrics are not available for this song. Please use the'**
|
||
String get synced_lyrics_not_available;
|
||
|
||
/// No description provided for @plain_lyrics.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Plain Lyrics'**
|
||
String get plain_lyrics;
|
||
|
||
/// No description provided for @tab_instead.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'tab instead.'**
|
||
String get tab_instead;
|
||
|
||
/// No description provided for @disclaimer.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Disclaimer'**
|
||
String get disclaimer;
|
||
|
||
/// No description provided for @third_party_plugin_dmca_notice.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The Spotube team does not hold any responsibility (including legal) for any \"Third-party\" plugins.\nPlease use them at your own risk. For any bugs/issues, please report them to the plugin repository.\n\nIf any \"Third-party\" plugin is breaking ToS/DMCA of any service/legal entity, please ask the \"Third-party\" plugin author or the hosting platform .e.g GitHub/Codeberg to take action. Above listed (\"Third-party\" labelled) are all public/community maintained plugins. We\'re not curating them, so we cannot take any action on them.\n\n'**
|
||
String get third_party_plugin_dmca_notice;
|
||
|
||
/// No description provided for @input_does_not_match_format.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Input doesn\'t match the required format'**
|
||
String get input_does_not_match_format;
|
||
|
||
/// No description provided for @metadata_provider_plugins.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Metadata Provider Plugins'**
|
||
String get metadata_provider_plugins;
|
||
|
||
/// No description provided for @paste_plugin_download_url.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file'**
|
||
String get paste_plugin_download_url;
|
||
|
||
/// No description provided for @download_and_install_plugin_from_url.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Download and install plugin from url'**
|
||
String get download_and_install_plugin_from_url;
|
||
|
||
/// No description provided for @failed_to_add_plugin_error.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Failed to add plugin: {error}'**
|
||
String failed_to_add_plugin_error(Object error);
|
||
|
||
/// No description provided for @upload_plugin_from_file.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Upload plugin from file'**
|
||
String get upload_plugin_from_file;
|
||
|
||
/// No description provided for @installed.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Installed'**
|
||
String get installed;
|
||
|
||
/// No description provided for @available_plugins.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Available plugins'**
|
||
String get available_plugins;
|
||
|
||
/// No description provided for @configure_your_own_metadata_plugin.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Configure your own playlist/album/artist/feed metadata provider'**
|
||
String get configure_your_own_metadata_plugin;
|
||
|
||
/// No description provided for @audio_scrobblers.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Audio Scrobblers'**
|
||
String get audio_scrobblers;
|
||
|
||
/// No description provided for @scrobbling.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Scrobbling'**
|
||
String get scrobbling;
|
||
}
|
||
|
||
class _AppLocalizationsDelegate
|
||
extends LocalizationsDelegate<AppLocalizations> {
|
||
const _AppLocalizationsDelegate();
|
||
|
||
@override
|
||
Future<AppLocalizations> load(Locale locale) {
|
||
return SynchronousFuture<AppLocalizations>(lookupAppLocalizations(locale));
|
||
}
|
||
|
||
@override
|
||
bool isSupported(Locale locale) => <String>[
|
||
'ar',
|
||
'bn',
|
||
'ca',
|
||
'cs',
|
||
'de',
|
||
'en',
|
||
'es',
|
||
'eu',
|
||
'fa',
|
||
'fi',
|
||
'fr',
|
||
'hi',
|
||
'id',
|
||
'it',
|
||
'ja',
|
||
'ka',
|
||
'ko',
|
||
'ne',
|
||
'nl',
|
||
'pl',
|
||
'pt',
|
||
'ru',
|
||
'ta',
|
||
'th',
|
||
'tl',
|
||
'tr',
|
||
'uk',
|
||
'vi',
|
||
'zh'
|
||
].contains(locale.languageCode);
|
||
|
||
@override
|
||
bool shouldReload(_AppLocalizationsDelegate old) => false;
|
||
}
|
||
|
||
AppLocalizations lookupAppLocalizations(Locale locale) {
|
||
// Lookup logic when only language code is specified.
|
||
switch (locale.languageCode) {
|
||
case 'ar':
|
||
return AppLocalizationsAr();
|
||
case 'bn':
|
||
return AppLocalizationsBn();
|
||
case 'ca':
|
||
return AppLocalizationsCa();
|
||
case 'cs':
|
||
return AppLocalizationsCs();
|
||
case 'de':
|
||
return AppLocalizationsDe();
|
||
case 'en':
|
||
return AppLocalizationsEn();
|
||
case 'es':
|
||
return AppLocalizationsEs();
|
||
case 'eu':
|
||
return AppLocalizationsEu();
|
||
case 'fa':
|
||
return AppLocalizationsFa();
|
||
case 'fi':
|
||
return AppLocalizationsFi();
|
||
case 'fr':
|
||
return AppLocalizationsFr();
|
||
case 'hi':
|
||
return AppLocalizationsHi();
|
||
case 'id':
|
||
return AppLocalizationsId();
|
||
case 'it':
|
||
return AppLocalizationsIt();
|
||
case 'ja':
|
||
return AppLocalizationsJa();
|
||
case 'ka':
|
||
return AppLocalizationsKa();
|
||
case 'ko':
|
||
return AppLocalizationsKo();
|
||
case 'ne':
|
||
return AppLocalizationsNe();
|
||
case 'nl':
|
||
return AppLocalizationsNl();
|
||
case 'pl':
|
||
return AppLocalizationsPl();
|
||
case 'pt':
|
||
return AppLocalizationsPt();
|
||
case 'ru':
|
||
return AppLocalizationsRu();
|
||
case 'ta':
|
||
return AppLocalizationsTa();
|
||
case 'th':
|
||
return AppLocalizationsTh();
|
||
case 'tl':
|
||
return AppLocalizationsTl();
|
||
case 'tr':
|
||
return AppLocalizationsTr();
|
||
case 'uk':
|
||
return AppLocalizationsUk();
|
||
case 'vi':
|
||
return AppLocalizationsVi();
|
||
case 'zh':
|
||
return AppLocalizationsZh();
|
||
}
|
||
|
||
throw FlutterError(
|
||
'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely '
|
||
'an issue with the localizations generation tool. Please file an issue '
|
||
'on GitHub with a reproducible sample app and the gen-l10n configuration '
|
||
'that was used.');
|
||
}
|