mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-13 07:55:18 +00:00
Compare commits
6 Commits
4459bc16c5
...
7f634817a8
Author | SHA1 | Date | |
---|---|---|---|
![]() |
7f634817a8 | ||
![]() |
005355e267 | ||
![]() |
aee2c9282d | ||
![]() |
ff252d6b14 | ||
![]() |
195cad8f39 | ||
![]() |
19f525fa3c |
@ -4,6 +4,7 @@ import 'package:flutter_hooks/flutter_hooks.dart';
|
|||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
|
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
|
||||||
import 'package:spotube/collections/spotube_icons.dart';
|
import 'package:spotube/collections/spotube_icons.dart';
|
||||||
|
import 'package:spotube/extensions/context.dart';
|
||||||
|
|
||||||
class ErrorBox extends StatelessWidget {
|
class ErrorBox extends StatelessWidget {
|
||||||
final Object error;
|
final Object error;
|
||||||
@ -27,10 +28,10 @@ class ErrorBox extends StatelessWidget {
|
|||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
spacing: 12,
|
spacing: 12,
|
||||||
children: [
|
children: [
|
||||||
const Basic(
|
Basic(
|
||||||
leading: Icon(SpotubeIcons.error),
|
leading: const Icon(SpotubeIcons.error),
|
||||||
contentSpacing: 8,
|
contentSpacing: 8,
|
||||||
title: Text("An error occurred"),
|
title: Text(context.l10n.an_error_occurred),
|
||||||
),
|
),
|
||||||
Card(
|
Card(
|
||||||
padding: const EdgeInsets.all(8.0),
|
padding: const EdgeInsets.all(8.0),
|
||||||
@ -70,7 +71,7 @@ class ErrorBox extends StatelessWidget {
|
|||||||
spacing: 8,
|
spacing: 8,
|
||||||
children: [
|
children: [
|
||||||
const Icon(SpotubeIcons.logs),
|
const Icon(SpotubeIcons.logs),
|
||||||
const Text("Logs"),
|
Text(context.l10n.logs),
|
||||||
const Spacer(),
|
const Spacer(),
|
||||||
IconButton.ghost(
|
IconButton.ghost(
|
||||||
icon: const Icon(SpotubeIcons.close),
|
icon: const Icon(SpotubeIcons.close),
|
||||||
@ -86,7 +87,7 @@ class ErrorBox extends StatelessWidget {
|
|||||||
leading: copied.value
|
leading: copied.value
|
||||||
? const Icon(SpotubeIcons.done)
|
? const Icon(SpotubeIcons.done)
|
||||||
: const Icon(SpotubeIcons.clipboard),
|
: const Icon(SpotubeIcons.clipboard),
|
||||||
child: const Text("Copy to clipboard"),
|
child: Text(context.l10n.copy_to_clipboard),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Clipboard.setData(
|
Clipboard.setData(
|
||||||
ClipboardData(text: error.toString()),
|
ClipboardData(text: error.toString()),
|
||||||
@ -118,13 +119,13 @@ class ErrorBox extends StatelessWidget {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
child: const Text("View logs"),
|
child: Text(context.l10n.view_logs),
|
||||||
),
|
),
|
||||||
if (onRetry != null)
|
if (onRetry != null)
|
||||||
Button.text(
|
Button.text(
|
||||||
leading: const Icon(SpotubeIcons.refresh),
|
leading: const Icon(SpotubeIcons.refresh),
|
||||||
onPressed: onRetry,
|
onPressed: onRetry,
|
||||||
child: const Text("Retry"),
|
child: Text(context.l10n.retry),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
@ -5,6 +5,7 @@ import 'package:shadcn_flutter/shadcn_flutter.dart';
|
|||||||
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
|
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
|
||||||
import 'package:spotube/collections/routes.gr.dart';
|
import 'package:spotube/collections/routes.gr.dart';
|
||||||
import 'package:spotube/collections/spotube_icons.dart';
|
import 'package:spotube/collections/spotube_icons.dart';
|
||||||
|
import 'package:spotube/extensions/context.dart';
|
||||||
|
|
||||||
class NoDefaultMetadataPlugin extends StatelessWidget {
|
class NoDefaultMetadataPlugin extends StatelessWidget {
|
||||||
const NoDefaultMetadataPlugin({super.key});
|
const NoDefaultMetadataPlugin({super.key});
|
||||||
@ -23,13 +24,13 @@ class NoDefaultMetadataPlugin extends StatelessWidget {
|
|||||||
color: context.theme.colorScheme.primary,
|
color: context.theme.colorScheme.primary,
|
||||||
),
|
),
|
||||||
AutoSizeText(
|
AutoSizeText(
|
||||||
"You've no default metadata provider set",
|
context.l10n.no_default_metadata_provider_selected,
|
||||||
style: context.theme.typography.h4,
|
style: context.theme.typography.h4,
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
),
|
),
|
||||||
Button.primary(
|
Button.primary(
|
||||||
leading: const Icon(SpotubeIcons.extensions),
|
leading: const Icon(SpotubeIcons.extensions),
|
||||||
child: const Text("Manage metadata providers"),
|
child: Text(context.l10n.manage_metadata_providers),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
context.pushRoute(const SettingsMetadataProviderRoute());
|
context.pushRoute(const SettingsMetadataProviderRoute());
|
||||||
},
|
},
|
||||||
|
@ -3,6 +3,7 @@ import 'package:flutter/services.dart';
|
|||||||
import 'package:flutter_markdown_plus/flutter_markdown_plus.dart';
|
import 'package:flutter_markdown_plus/flutter_markdown_plus.dart';
|
||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
import 'package:spotube/collections/spotube_icons.dart';
|
import 'package:spotube/collections/spotube_icons.dart';
|
||||||
|
import 'package:spotube/extensions/context.dart';
|
||||||
import 'package:url_launcher/url_launcher_string.dart';
|
import 'package:url_launcher/url_launcher_string.dart';
|
||||||
|
|
||||||
class AppMarkdown extends StatelessWidget {
|
class AppMarkdown extends StatelessWidget {
|
||||||
@ -30,36 +31,33 @@ class AppMarkdown extends StatelessWidget {
|
|||||||
return ConstrainedBox(
|
return ConstrainedBox(
|
||||||
constraints: const BoxConstraints(maxWidth: 450),
|
constraints: const BoxConstraints(maxWidth: 450),
|
||||||
child: AlertDialog(
|
child: AlertDialog(
|
||||||
title: const Row(
|
title: Row(
|
||||||
spacing: 8,
|
spacing: 8,
|
||||||
children: [
|
children: [
|
||||||
Icon(SpotubeIcons.warning),
|
const Icon(SpotubeIcons.warning),
|
||||||
Text("Open Link in Browser?"),
|
Text(context.l10n.open_link_in_browser),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
content: Text.rich(
|
content: Text.rich(
|
||||||
TextSpan(
|
TextSpan(
|
||||||
children: [
|
children: [
|
||||||
const TextSpan(
|
TextSpan(
|
||||||
text: "Do you want to open the following link:\n",
|
text:
|
||||||
|
"${context.l10n.do_you_want_to_open_the_following_link}:\n",
|
||||||
),
|
),
|
||||||
if (href != null)
|
if (href != null)
|
||||||
TextSpan(
|
TextSpan(
|
||||||
text: "$href\n\n",
|
text: "$href\n\n",
|
||||||
style: const TextStyle(color: Colors.blue),
|
style: const TextStyle(color: Colors.blue),
|
||||||
),
|
),
|
||||||
const TextSpan(
|
TextSpan(text: context.l10n.unsafe_url_warning),
|
||||||
text:
|
|
||||||
"It can be unsafe to open links from untrusted sources. Be cautious!\n"
|
|
||||||
"You can also copy the link to your clipboard.",
|
|
||||||
),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
actions: [
|
actions: [
|
||||||
Button.ghost(
|
Button.ghost(
|
||||||
onPressed: () => Navigator.of(context).pop(false),
|
onPressed: () => Navigator.of(context).pop(false),
|
||||||
child: const Text("Cancel"),
|
child: Text(context.l10n.cancel),
|
||||||
),
|
),
|
||||||
Button.ghost(
|
Button.ghost(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
@ -68,7 +66,7 @@ class AppMarkdown extends StatelessWidget {
|
|||||||
}
|
}
|
||||||
Navigator.of(context).pop(false);
|
Navigator.of(context).pop(false);
|
||||||
},
|
},
|
||||||
child: const Text("Copy Link"),
|
child: Text(context.l10n.copy_link),
|
||||||
),
|
),
|
||||||
Button.destructive(
|
Button.destructive(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
@ -80,7 +78,7 @@ class AppMarkdown extends StatelessWidget {
|
|||||||
}
|
}
|
||||||
Navigator.of(context).pop(true);
|
Navigator.of(context).pop(true);
|
||||||
},
|
},
|
||||||
child: const Text("Open"),
|
child: Text(context.l10n.open),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
@ -415,5 +415,51 @@
|
|||||||
"edit_port": "Edit port",
|
"edit_port": "Edit port",
|
||||||
"port_helper_msg": "Default is -1 which indicates random number. If you've firewall configured, setting this is recommended.",
|
"port_helper_msg": "Default is -1 which indicates random number. If you've firewall configured, setting this is recommended.",
|
||||||
"connect_request": "Allow {client} to connect?",
|
"connect_request": "Allow {client} to connect?",
|
||||||
"connection_request_denied": "Connection denied. User denied access."
|
"connection_request_denied": "Connection denied. User denied access.",
|
||||||
|
"an_error_occurred": "An error occurred",
|
||||||
|
"copy_to_clipboard": "Copy to clipboard",
|
||||||
|
"view_logs": "View logs",
|
||||||
|
"retry": "Retry",
|
||||||
|
"no_default_metadata_provider_selected": "You've no default metadata provider set",
|
||||||
|
"manage_metadata_providers": "Manage metadata providers",
|
||||||
|
"open_link_in_browser": "Open Link in Browser?",
|
||||||
|
"do_you_want_to_open_the_following_link": "Do you want to open the following link",
|
||||||
|
"unsafe_url_warning": "It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.",
|
||||||
|
"copy_link": "Copy Link",
|
||||||
|
"building_your_timeline": "Building your timeline based on your listenings...",
|
||||||
|
"official": "Official",
|
||||||
|
"author_name": "Author: {author}",
|
||||||
|
"third_party": "Third-party",
|
||||||
|
"plugin_requires_authentication": "Plugin requires authentication",
|
||||||
|
"update_available": "Update available",
|
||||||
|
"supports_scrobbling": "Supports scrobbling",
|
||||||
|
"plugin_scrobbling_info": "This plugin scrobbles your music to generate your listening history.",
|
||||||
|
"default_plugin": "Default",
|
||||||
|
"set_default": "Set default",
|
||||||
|
"support": "Support",
|
||||||
|
"support_plugin_development": "Support plugin development",
|
||||||
|
"can_access_name_api": "- Can access **{name}** API",
|
||||||
|
"do_you_want_to_install_this_plugin": "Do you want to install this plugin?",
|
||||||
|
"third_party_plugin_warning": "This plugin is from a third-party repository. Please ensure you trust the source before installing.",
|
||||||
|
"author": "Author",
|
||||||
|
"this_plugin_can_do_following": "This plugin can do following",
|
||||||
|
"install": "Install",
|
||||||
|
"install_a_metadata_provider": "Install a Metadata Provider",
|
||||||
|
"no_tracks_playing": "No Track being played currently",
|
||||||
|
"synced_lyrics_not_available": "Synced lyrics are not available for this song. Please use the",
|
||||||
|
"plain_lyrics": "Plain Lyrics",
|
||||||
|
"tab_instead": "tab instead.",
|
||||||
|
"disclaimer": "Disclaimer",
|
||||||
|
"third_party_plugin_dmca_notice": "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",
|
||||||
|
"input_does_not_match_format": "Input doesn't match the required format",
|
||||||
|
"metadata_provider_plugins": "Metadata Provider Plugins",
|
||||||
|
"paste_plugin_download_url": "Paste download url or GitHub/Codeberg repo url or direct link to .smplug file",
|
||||||
|
"download_and_install_plugin_from_url": "Download and install plugin from url",
|
||||||
|
"failed_to_add_plugin_error": "Failed to add plugin: {error}",
|
||||||
|
"upload_plugin_from_file": "Upload plugin from file",
|
||||||
|
"installed": "Installed",
|
||||||
|
"available_plugins": "Available plugins",
|
||||||
|
"configure_your_own_metadata_plugin": "Configure your own playlist/album/artist/feed metadata provider",
|
||||||
|
"audio_scrobblers": "Audio Scrobblers",
|
||||||
|
"scrobbling": "Scrobbling"
|
||||||
}
|
}
|
||||||
|
@ -137,16 +137,16 @@
|
|||||||
"pre_download_play_description": "Anzi che effettuare lo stream dell'audio, scarica invece i byte e li riproduce (raccomandato per gli utenti con banda più alta)",
|
"pre_download_play_description": "Anzi che effettuare lo stream dell'audio, scarica invece i byte e li riproduce (raccomandato per gli utenti con banda più alta)",
|
||||||
"skip_non_music": "Salta i segmenti non di musica (SponsorBlock)",
|
"skip_non_music": "Salta i segmenti non di musica (SponsorBlock)",
|
||||||
"blacklist_description": "Tracce e artisti in blacklist",
|
"blacklist_description": "Tracce e artisti in blacklist",
|
||||||
"wait_for_download_to_finish": "Prego attendere che lo scaricamento corrente finisca",
|
"wait_for_download_to_finish": "Prego attendere che il download corrente finisca",
|
||||||
"desktop": "Desktop",
|
"desktop": "Desktop",
|
||||||
"close_behavior": "Comportamento Chiusura",
|
"close_behavior": "Comportamento Chiusura",
|
||||||
"close": "Chiudi",
|
"close": "Chiudi",
|
||||||
"minimize_to_tray": "Minimizza in tray",
|
"minimize_to_tray": "Minimizza in tray",
|
||||||
"show_tray_icon": "Mostra icona in tray di sistema",
|
"show_tray_icon": "Mostra icona in tray di sistema",
|
||||||
"about": "A proposito di",
|
"about": "Informazioni su",
|
||||||
"u_love_spotube": "Sappiamo che ami Spotube",
|
"u_love_spotube": "Sappiamo che ami Spotube",
|
||||||
"check_for_updates": "Controlla aggiornamenti",
|
"check_for_updates": "Controlla aggiornamenti",
|
||||||
"about_spotube": "A proposito di Spotube",
|
"about_spotube": "Informazioni su Spotube",
|
||||||
"blacklist": "Blacklist",
|
"blacklist": "Blacklist",
|
||||||
"please_sponsor": "Per favore sponsorizza/dona",
|
"please_sponsor": "Per favore sponsorizza/dona",
|
||||||
"spotube_description": "Spotube, un client spotify gratis per tutti, multipiattaforma e leggero",
|
"spotube_description": "Spotube, un client spotify gratis per tutti, multipiattaforma e leggero",
|
||||||
@ -187,7 +187,7 @@
|
|||||||
"generate_playlist": "Genera Playlist",
|
"generate_playlist": "Genera Playlist",
|
||||||
"track_exists": "La traccia {track} esiste già",
|
"track_exists": "La traccia {track} esiste già",
|
||||||
"replace_downloaded_tracks": "Sostituisci tutte le tracce scaricate",
|
"replace_downloaded_tracks": "Sostituisci tutte le tracce scaricate",
|
||||||
"skip_download_tracks": "Salta lo scaricamento di tutte le tracce scaricate",
|
"skip_download_tracks": "Salta il download di tutte le tracce scaricate",
|
||||||
"do_you_want_to_replace": "Vuoi sovrascrivere la traccia esistente??",
|
"do_you_want_to_replace": "Vuoi sovrascrivere la traccia esistente??",
|
||||||
"replace": "Sovrascrivi",
|
"replace": "Sovrascrivi",
|
||||||
"skip": "Salta",
|
"skip": "Salta",
|
||||||
@ -256,7 +256,7 @@
|
|||||||
"querying_info": "Richiesta informazioni...",
|
"querying_info": "Richiesta informazioni...",
|
||||||
"piped_api_down": "Le Piped API non funzionano",
|
"piped_api_down": "Le Piped API non funzionano",
|
||||||
"piped_down_error_instructions": "L'istanza di Piped {pipedInstance} è correntemente offline\n\nCambia istanza o cambia 'Tipo API' alle API ufficiali YouTube\n\nAssicurati di riavviare l'app dopo il cambio",
|
"piped_down_error_instructions": "L'istanza di Piped {pipedInstance} è correntemente offline\n\nCambia istanza o cambia 'Tipo API' alle API ufficiali YouTube\n\nAssicurati di riavviare l'app dopo il cambio",
|
||||||
"you_are_offline": "Sei correntemente offline",
|
"you_are_offline": "Al momento sei offline",
|
||||||
"connection_restored": "Connessione ad internet ripristinata",
|
"connection_restored": "Connessione ad internet ripristinata",
|
||||||
"use_system_title_bar": "Usa la barra del titolo di sistema",
|
"use_system_title_bar": "Usa la barra del titolo di sistema",
|
||||||
"crunching_results": "Elaborazione risultati...",
|
"crunching_results": "Elaborazione risultati...",
|
||||||
@ -267,15 +267,15 @@
|
|||||||
"change_cover": "Cambia copertina",
|
"change_cover": "Cambia copertina",
|
||||||
"add_cover": "Aggiungi copertina",
|
"add_cover": "Aggiungi copertina",
|
||||||
"restore_defaults": "Ripristina default",
|
"restore_defaults": "Ripristina default",
|
||||||
"download_music_codec": "Codec musicale scaricamento",
|
"download_music_codec": "Codec download musica",
|
||||||
"streaming_music_codec": "Codec musicale streaming",
|
"streaming_music_codec": "Codec streaming musica",
|
||||||
"login_with_lastfm": "Accesso a Last.fm",
|
"login_with_lastfm": "Accedi con Last.fm",
|
||||||
"connect": "Connetti",
|
"connect": "Connettiti",
|
||||||
"disconnect_lastfm": "Disconnetti Last.fm",
|
"disconnect_lastfm": "Disconnettiti da Last.fm",
|
||||||
"disconnect": "Disconnetti",
|
"disconnect": "Disconnetti",
|
||||||
"username": "Nome utente",
|
"username": "Nome utente",
|
||||||
"password": "Password",
|
"password": "Password",
|
||||||
"login": "Accesso",
|
"login": "Accedi",
|
||||||
"login_with_your_lastfm": "Accedi con il tuo account Last.fm",
|
"login_with_your_lastfm": "Accedi con il tuo account Last.fm",
|
||||||
"scrobble_to_lastfm": "Invia a Last.fm",
|
"scrobble_to_lastfm": "Invia a Last.fm",
|
||||||
"audio_source": "Fonte audio",
|
"audio_source": "Fonte audio",
|
||||||
@ -299,7 +299,7 @@
|
|||||||
"song_link": "Link della Canzone",
|
"song_link": "Link della Canzone",
|
||||||
"skip_this_nonsense": "Salta questa sciocchezza",
|
"skip_this_nonsense": "Salta questa sciocchezza",
|
||||||
"freedom_of_music": "“Libertà della Musica”",
|
"freedom_of_music": "“Libertà della Musica”",
|
||||||
"freedom_of_music_palm": "“Libertà della Musica nel palmo della tua mano”",
|
"freedom_of_music_palm": "“Libertà della Musica nelle tue mani”",
|
||||||
"get_started": "Cominciamo",
|
"get_started": "Cominciamo",
|
||||||
"youtube_source_description": "Consigliato e funziona meglio.",
|
"youtube_source_description": "Consigliato e funziona meglio.",
|
||||||
"piped_source_description": "Ti senti libero? Come YouTube ma molto più gratuito.",
|
"piped_source_description": "Ti senti libero? Come YouTube ma molto più gratuito.",
|
||||||
|
@ -2653,6 +2653,282 @@ abstract class AppLocalizations {
|
|||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Connection denied. User denied access.'**
|
/// **'Connection denied. User denied access.'**
|
||||||
String get connection_request_denied;
|
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
|
class _AppLocalizationsDelegate
|
||||||
|
@ -1380,4 +1380,161 @@ class AppLocalizationsAr extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'تم رفض الاتصال. المستخدم رفض الوصول.';
|
'تم رفض الاتصال. المستخدم رفض الوصول.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1380,4 +1380,161 @@ class AppLocalizationsBn extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'সংযোগ অস্বীকৃত। ব্যবহারকারী প্রবেশাধিকার অস্বীকার করেছে।';
|
'সংযোগ অস্বীকৃত। ব্যবহারকারী প্রবেশাধিকার অস্বীকার করেছে।';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1386,4 +1386,161 @@ class AppLocalizationsCa extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'Connexió denegada. L\'usuari ha denegat l\'accés.';
|
'Connexió denegada. L\'usuari ha denegat l\'accés.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1379,4 +1379,161 @@ class AppLocalizationsCs extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'Připojení bylo zamítnuto. Uživatel odmítl přístup.';
|
'Připojení bylo zamítnuto. Uživatel odmítl přístup.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1391,4 +1391,161 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'Verbindung abgelehnt. Benutzer hat den Zugriff verweigert.';
|
'Verbindung abgelehnt. Benutzer hat den Zugriff verweigert.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1379,4 +1379,161 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'Connection denied. User denied access.';
|
'Connection denied. User denied access.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1388,4 +1388,161 @@ class AppLocalizationsEs extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'Conexión denegada. El usuario denegó el acceso.';
|
'Conexión denegada. El usuario denegó el acceso.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1387,4 +1387,161 @@ class AppLocalizationsEu extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'Konektatzea ukatu da. Erabiltzaileak sarbidea ukatu du.';
|
'Konektatzea ukatu da. Erabiltzaileak sarbidea ukatu du.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1378,4 +1378,161 @@ class AppLocalizationsFa extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'اتصال رد شد. کاربر دسترسی را رد کرد.';
|
'اتصال رد شد. کاربر دسترسی را رد کرد.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1380,4 +1380,161 @@ class AppLocalizationsFi extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'Yhteys evätty. Käyttäjä eväsi pääsyn.';
|
'Yhteys evätty. Käyttäjä eväsi pääsyn.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1392,4 +1392,161 @@ class AppLocalizationsFr extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'Connection denied. User denied access.';
|
'Connection denied. User denied access.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1384,4 +1384,161 @@ class AppLocalizationsHi extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'कनेक्शन अस्वीकृत। उपयोगकर्ता ने पहुंच अस्वीकृत कर दी।';
|
'कनेक्शन अस्वीकृत। उपयोगकर्ता ने पहुंच अस्वीकृत कर दी।';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1386,4 +1386,161 @@ class AppLocalizationsId extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'Koneksi ditolak. Pengguna menolak akses.';
|
'Koneksi ditolak. Pengguna menolak akses.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1384,4 +1384,161 @@ class AppLocalizationsIt extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'Connessione negata. L\'utente ha negato l\'accesso.';
|
'Connessione negata. L\'utente ha negato l\'accesso.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1359,4 +1359,161 @@ class AppLocalizationsJa extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get connection_request_denied => '接続が拒否されました。ユーザーがアクセスを拒否しました。';
|
String get connection_request_denied => '接続が拒否されました。ユーザーがアクセスを拒否しました。';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1383,4 +1383,161 @@ class AppLocalizationsKa extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'კავშირი უარყოფილია. მომხმარებელმა უარყო წვდომა.';
|
'კავშირი უარყოფილია. მომხმარებელმა უარყო წვდომა.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1361,4 +1361,161 @@ class AppLocalizationsKo extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get connection_request_denied => '연결이 거부되었습니다. 사용자가 액세스를 거부했습니다.';
|
String get connection_request_denied => '연결이 거부되었습니다. 사용자가 액세스를 거부했습니다.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1390,4 +1390,161 @@ class AppLocalizationsNe extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'जडान अस्वीकृत। प्रयोगकर्ताले पहुँच अस्वीकृत गर्यो।';
|
'जडान अस्वीकृत। प्रयोगकर्ताले पहुँच अस्वीकृत गर्यो।';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1384,4 +1384,161 @@ class AppLocalizationsNl extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'Verbinding geweigerd. Gebruiker heeft toegang geweigerd.';
|
'Verbinding geweigerd. Gebruiker heeft toegang geweigerd.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1385,4 +1385,161 @@ class AppLocalizationsPl extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'Połączenie odrzucone. Użytkownik odmówił dostępu.';
|
'Połączenie odrzucone. Użytkownik odmówił dostępu.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1383,4 +1383,161 @@ class AppLocalizationsPt extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'Conexão negada. O usuário negou o acesso .';
|
'Conexão negada. O usuário negou o acesso .';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1385,4 +1385,161 @@ class AppLocalizationsRu extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'Подключение отклонено. Пользователь отказал в доступе.';
|
'Подключение отклонено. Пользователь отказал в доступе.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1390,4 +1390,161 @@ class AppLocalizationsTa extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'இணைப்பு மறுக்கப்பட்டது. பயனர் அணுகலை மறுத்தார்.';
|
'இணைப்பு மறுக்கப்பட்டது. பயனர் அணுகலை மறுத்தார்.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1376,4 +1376,161 @@ class AppLocalizationsTh extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'การเชื่อมต่อล้มเหลว ผู้ใช้ปฏิเสธการเข้าถึง';
|
'การเชื่อมต่อล้มเหลว ผู้ใช้ปฏิเสธการเข้าถึง';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1391,4 +1391,161 @@ class AppLocalizationsTl extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'Tanggihan ang koneksyon. Tinanggihan ng gumagamit ang pag-access.';
|
'Tanggihan ang koneksyon. Tinanggihan ng gumagamit ang pag-access.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1386,4 +1386,161 @@ class AppLocalizationsTr extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'Bağlantı reddedildi. Kullanıcı erişimi reddetti.';
|
'Bağlantı reddedildi. Kullanıcı erişimi reddetti.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1383,4 +1383,161 @@ class AppLocalizationsUk extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'Підключення відхилено. Користувач відмовив у доступі.';
|
'Підключення відхилено. Користувач відмовив у доступі.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1387,4 +1387,161 @@ class AppLocalizationsVi extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get connection_request_denied =>
|
String get connection_request_denied =>
|
||||||
'Kết nối bị từ chối. Người dùng đã từ chối quyền truy cập.';
|
'Kết nối bị từ chối. Người dùng đã từ chối quyền truy cập.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -1354,4 +1354,161 @@ class AppLocalizationsZh extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get connection_request_denied => '连接被拒绝。用户拒绝访问。';
|
String get connection_request_denied => '连接被拒绝。用户拒绝访问。';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get an_error_occurred => 'An error occurred';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_to_clipboard => 'Copy to clipboard';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get view_logs => 'View logs';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get retry => 'Retry';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_default_metadata_provider_selected =>
|
||||||
|
'You\'ve no default metadata provider set';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manage_metadata_providers => 'Manage metadata providers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get open_link_in_browser => 'Open Link in Browser?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_open_the_following_link =>
|
||||||
|
'Do you want to open the following link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get unsafe_url_warning =>
|
||||||
|
'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get copy_link => 'Copy Link';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get building_your_timeline =>
|
||||||
|
'Building your timeline based on your listenings...';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get official => 'Official';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String author_name(Object author) {
|
||||||
|
return 'Author: $author';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party => 'Third-party';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_requires_authentication => 'Plugin requires authentication';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get update_available => 'Update available';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get supports_scrobbling => 'Supports scrobbling';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plugin_scrobbling_info =>
|
||||||
|
'This plugin scrobbles your music to generate your listening history.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get default_plugin => 'Default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get set_default => 'Set default';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support => 'Support';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get support_plugin_development => 'Support plugin development';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String can_access_name_api(Object name) {
|
||||||
|
return '- Can access **$name** API';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get do_you_want_to_install_this_plugin =>
|
||||||
|
'Do you want to install this plugin?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_warning =>
|
||||||
|
'This plugin is from a third-party repository. Please ensure you trust the source before installing.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get author => 'Author';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get this_plugin_can_do_following => 'This plugin can do following';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install => 'Install';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get install_a_metadata_provider => 'Install a Metadata Provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no_tracks_playing => 'No Track being played currently';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get synced_lyrics_not_available =>
|
||||||
|
'Synced lyrics are not available for this song. Please use the';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get plain_lyrics => 'Plain Lyrics';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tab_instead => 'tab instead.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disclaimer => 'Disclaimer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get third_party_plugin_dmca_notice =>
|
||||||
|
'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';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get input_does_not_match_format =>
|
||||||
|
'Input doesn\'t match the required format';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get metadata_provider_plugins => 'Metadata Provider Plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get paste_plugin_download_url =>
|
||||||
|
'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get download_and_install_plugin_from_url =>
|
||||||
|
'Download and install plugin from url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String failed_to_add_plugin_error(Object error) {
|
||||||
|
return 'Failed to add plugin: $error';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get upload_plugin_from_file => 'Upload plugin from file';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get installed => 'Installed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get available_plugins => 'Available plugins';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get configure_your_own_metadata_plugin =>
|
||||||
|
'Configure your own playlist/album/artist/feed metadata provider';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get audio_scrobblers => 'Audio Scrobblers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get scrobbling => 'Scrobbling';
|
||||||
}
|
}
|
||||||
|
@ -37,8 +37,7 @@ class HomePageBrowseSection extends HookConsumerWidget {
|
|||||||
spacing: 8,
|
spacing: 8,
|
||||||
children: [
|
children: [
|
||||||
const CircularProgressIndicator(),
|
const CircularProgressIndicator(),
|
||||||
const Text("Building your timeline based on your listenings...")
|
Text(context.l10n.building_your_timeline).muted,
|
||||||
.muted,
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
const Gap(16),
|
const Gap(16),
|
||||||
|
@ -3,6 +3,7 @@ import 'package:shadcn_flutter/shadcn_flutter.dart';
|
|||||||
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
|
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
|
||||||
import 'package:spotube/collections/spotube_icons.dart';
|
import 'package:spotube/collections/spotube_icons.dart';
|
||||||
import 'package:spotube/components/markdown/markdown.dart';
|
import 'package:spotube/components/markdown/markdown.dart';
|
||||||
|
import 'package:spotube/extensions/context.dart';
|
||||||
import 'package:spotube/models/metadata/metadata.dart';
|
import 'package:spotube/models/metadata/metadata.dart';
|
||||||
import 'package:spotube/modules/metadata_plugins/plugin_update_available_dialog.dart';
|
import 'package:spotube/modules/metadata_plugins/plugin_update_available_dialog.dart';
|
||||||
import 'package:spotube/provider/metadata_plugin/core/auth.dart';
|
import 'package:spotube/provider/metadata_plugin/core/auth.dart';
|
||||||
@ -84,15 +85,15 @@ class MetadataInstalledPluginItem extends HookConsumerWidget {
|
|||||||
runSpacing: 8,
|
runSpacing: 8,
|
||||||
children: [
|
children: [
|
||||||
if (isOfficial)
|
if (isOfficial)
|
||||||
const PrimaryBadge(
|
PrimaryBadge(
|
||||||
leading: Icon(SpotubeIcons.done),
|
leading: const Icon(SpotubeIcons.done),
|
||||||
child: Text("Official"),
|
child: Text(context.l10n.official),
|
||||||
)
|
)
|
||||||
else ...[
|
else ...[
|
||||||
Text("Author: ${plugin.author}"),
|
Text(context.l10n.author_name(plugin.author)),
|
||||||
const DestructiveBadge(
|
DestructiveBadge(
|
||||||
leading: Icon(SpotubeIcons.warning),
|
leading: const Icon(SpotubeIcons.warning),
|
||||||
child: Text("Third-party"),
|
child: Text(context.l10n.third_party),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
SecondaryBadge(
|
SecondaryBadge(
|
||||||
@ -131,11 +132,11 @@ class MetadataInstalledPluginItem extends HookConsumerWidget {
|
|||||||
spacing: 12,
|
spacing: 12,
|
||||||
children: [
|
children: [
|
||||||
if (requiresAuth && !isAuthenticated)
|
if (requiresAuth && !isAuthenticated)
|
||||||
const Row(
|
Row(
|
||||||
spacing: 8,
|
spacing: 8,
|
||||||
children: [
|
children: [
|
||||||
Icon(SpotubeIcons.warning, color: Colors.yellow),
|
const Icon(SpotubeIcons.warning, color: Colors.yellow),
|
||||||
Text("Plugin requires authentication"),
|
Text(context.l10n.plugin_requires_authentication),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
if (hasUpdate)
|
if (hasUpdate)
|
||||||
@ -143,7 +144,7 @@ class MetadataInstalledPluginItem extends HookConsumerWidget {
|
|||||||
width: double.infinity,
|
width: double.infinity,
|
||||||
child: Basic(
|
child: Basic(
|
||||||
leading: const Icon(SpotubeIcons.update),
|
leading: const Icon(SpotubeIcons.update),
|
||||||
title: const Text("Update available"),
|
title: Text(context.l10n.update_available),
|
||||||
subtitle: Text(
|
subtitle: Text(
|
||||||
updateAvailable!.asData!.value!.version,
|
updateAvailable!.asData!.value!.version,
|
||||||
),
|
),
|
||||||
@ -158,19 +159,17 @@ class MetadataInstalledPluginItem extends HookConsumerWidget {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
child: const Text("Update"),
|
child: Text(context.l10n.update),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
if (supportsScrobbling)
|
if (supportsScrobbling)
|
||||||
const SizedBox(
|
SizedBox(
|
||||||
width: double.infinity,
|
width: double.infinity,
|
||||||
child: Basic(
|
child: Basic(
|
||||||
leading: Icon(SpotubeIcons.info),
|
leading: const Icon(SpotubeIcons.info),
|
||||||
title: Text("Supports scrobbling"),
|
title: Text(context.l10n.supports_scrobbling),
|
||||||
subtitle: Text(
|
subtitle: Text(context.l10n.plugin_scrobbling_info),
|
||||||
"This plugin scrobbles your music to generate your listening history.",
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
@ -184,9 +183,11 @@ class MetadataInstalledPluginItem extends HookConsumerWidget {
|
|||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
await pluginsNotifier.setDefaultPlugin(plugin);
|
await pluginsNotifier.setDefaultPlugin(plugin);
|
||||||
},
|
},
|
||||||
child: isDefault
|
child: Text(
|
||||||
? const Text("Default")
|
isDefault
|
||||||
: const Text("Set default"),
|
? context.l10n.default_plugin
|
||||||
|
: context.l10n.set_default,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
if (isDefault)
|
if (isDefault)
|
||||||
Consumer(builder: (context, ref, _) {
|
Consumer(builder: (context, ref, _) {
|
||||||
@ -226,13 +227,14 @@ class MetadataInstalledPluginItem extends HookConsumerWidget {
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
leading: const Icon(SpotubeIcons.heartFilled),
|
leading: const Icon(SpotubeIcons.heartFilled),
|
||||||
child: const Text("Support"),
|
child: Text(context.l10n.support),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
return AlertDialog(
|
return AlertDialog(
|
||||||
title: const Text("Support plugin development"),
|
title:
|
||||||
|
Text(context.l10n.support_plugin_development),
|
||||||
content: ConstrainedBox(
|
content: ConstrainedBox(
|
||||||
constraints: BoxConstraints(
|
constraints: BoxConstraints(
|
||||||
maxHeight: mediaQuery.height * 0.8,
|
maxHeight: mediaQuery.height * 0.8,
|
||||||
@ -252,7 +254,7 @@ class MetadataInstalledPluginItem extends HookConsumerWidget {
|
|||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
},
|
},
|
||||||
child: const Text("Close"),
|
child: Text(context.l10n.close),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
@ -268,7 +270,7 @@ class MetadataInstalledPluginItem extends HookConsumerWidget {
|
|||||||
await metadataPlugin.asData?.value?.auth.authenticate();
|
await metadataPlugin.asData?.value?.auth.authenticate();
|
||||||
},
|
},
|
||||||
leading: const Icon(SpotubeIcons.login),
|
leading: const Icon(SpotubeIcons.login),
|
||||||
child: const Text("Login"),
|
child: Text(context.l10n.login),
|
||||||
)
|
)
|
||||||
else if (isDefault && requiresAuth && isAuthenticated)
|
else if (isDefault && requiresAuth && isAuthenticated)
|
||||||
Button.destructive(
|
Button.destructive(
|
||||||
@ -276,7 +278,7 @@ class MetadataInstalledPluginItem extends HookConsumerWidget {
|
|||||||
await metadataPlugin.asData?.value?.auth.logout();
|
await metadataPlugin.asData?.value?.auth.logout();
|
||||||
},
|
},
|
||||||
leading: const Icon(SpotubeIcons.logout),
|
leading: const Icon(SpotubeIcons.logout),
|
||||||
child: const Text("Logout"),
|
child: Text(context.l10n.logout),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
@ -4,6 +4,7 @@ import 'package:shadcn_flutter/shadcn_flutter.dart';
|
|||||||
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
|
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
|
||||||
import 'package:spotube/collections/spotube_icons.dart';
|
import 'package:spotube/collections/spotube_icons.dart';
|
||||||
import 'package:spotube/components/markdown/markdown.dart';
|
import 'package:spotube/components/markdown/markdown.dart';
|
||||||
|
import 'package:spotube/extensions/context.dart';
|
||||||
import 'package:spotube/models/metadata/metadata.dart';
|
import 'package:spotube/models/metadata/metadata.dart';
|
||||||
import 'package:spotube/provider/metadata_plugin/metadata_plugin_provider.dart';
|
import 'package:spotube/provider/metadata_plugin/metadata_plugin_provider.dart';
|
||||||
import 'package:url_launcher/url_launcher_string.dart';
|
import 'package:url_launcher/url_launcher_string.dart';
|
||||||
@ -38,9 +39,9 @@ class MetadataPluginRepositoryItem extends HookConsumerWidget {
|
|||||||
spacing: 8,
|
spacing: 8,
|
||||||
children: [
|
children: [
|
||||||
if (pluginRepo.owner == "KRTirtho") ...[
|
if (pluginRepo.owner == "KRTirtho") ...[
|
||||||
const PrimaryBadge(
|
PrimaryBadge(
|
||||||
leading: Icon(SpotubeIcons.done),
|
leading: Icon(SpotubeIcons.done),
|
||||||
child: Text("Official"),
|
child: Text(context.l10n.official),
|
||||||
),
|
),
|
||||||
SecondaryBadge(
|
SecondaryBadge(
|
||||||
leading: host == "github.com"
|
leading: host == "github.com"
|
||||||
@ -52,10 +53,10 @@ class MetadataPluginRepositoryItem extends HookConsumerWidget {
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
] else ...[
|
] else ...[
|
||||||
Text("Author: ${pluginRepo.owner}"),
|
Text(context.l10n.author_name(pluginRepo.owner)),
|
||||||
const DestructiveBadge(
|
DestructiveBadge(
|
||||||
leading: Icon(SpotubeIcons.warning),
|
leading: const Icon(SpotubeIcons.warning),
|
||||||
child: Text("Third-party"),
|
child: Text(context.l10n.third_party),
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
@ -79,21 +80,19 @@ class MetadataPluginRepositoryItem extends HookConsumerWidget {
|
|||||||
context: context,
|
context: context,
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
final pluginAbilities = pluginConfig.apis
|
final pluginAbilities = pluginConfig.apis
|
||||||
.map((e) => "- Can access **${e.name}** API")
|
.map(
|
||||||
|
(e) => context.l10n.can_access_name_api(e.name))
|
||||||
.join("\n\n");
|
.join("\n\n");
|
||||||
|
|
||||||
return AlertDialog(
|
return AlertDialog(
|
||||||
title:
|
title: Text(
|
||||||
const Text("Do you want to install this plugin?"),
|
context.l10n.do_you_want_to_install_this_plugin),
|
||||||
content: Column(
|
content: Column(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
const Text(
|
Text(context.l10n.third_party_plugin_warning),
|
||||||
"This plugin is from a third-party repository. "
|
|
||||||
"Please ensure you trust the source before installing.",
|
|
||||||
),
|
|
||||||
const Gap(8),
|
const Gap(8),
|
||||||
FutureBuilder(
|
FutureBuilder(
|
||||||
future:
|
future:
|
||||||
@ -126,9 +125,10 @@ class MetadataPluginRepositoryItem extends HookConsumerWidget {
|
|||||||
),
|
),
|
||||||
const Gap(8),
|
const Gap(8),
|
||||||
AppMarkdown(
|
AppMarkdown(
|
||||||
data: "**Author**: ${pluginConfig.author}\n\n"
|
data:
|
||||||
"**Repository**: [${pluginConfig.repository ?? 'N/A'}](${pluginConfig.repository})\n\n\n\n"
|
"**${context.l10n.author}**: ${pluginConfig.author}\n\n"
|
||||||
"This plugin can do following:\n\n"
|
"**${context.l10n.repository}**: [${pluginConfig.repository ?? 'N/A'}](${pluginConfig.repository})\n\n\n\n"
|
||||||
|
"${context.l10n.this_plugin_can_do_following}:\n\n"
|
||||||
"$pluginAbilities",
|
"$pluginAbilities",
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
@ -138,13 +138,13 @@ class MetadataPluginRepositoryItem extends HookConsumerWidget {
|
|||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.of(context).pop(false);
|
Navigator.of(context).pop(false);
|
||||||
},
|
},
|
||||||
child: const Text("Deny"),
|
child: Text(context.l10n.decline),
|
||||||
),
|
),
|
||||||
Button.primary(
|
Button.primary(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.of(context).pop(true);
|
Navigator.of(context).pop(true);
|
||||||
},
|
},
|
||||||
child: const Text("Allow"),
|
child: Text(context.l10n.accept),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
@ -162,7 +162,7 @@ class MetadataPluginRepositoryItem extends HookConsumerWidget {
|
|||||||
leading: isInstalling.value
|
leading: isInstalling.value
|
||||||
? const CircularProgressIndicator()
|
? const CircularProgressIndicator()
|
||||||
: const Icon(SpotubeIcons.add),
|
: const Icon(SpotubeIcons.add),
|
||||||
child: const Text("Install"),
|
child: Text(context.l10n.install),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
@ -3,7 +3,7 @@ import 'dart:convert';
|
|||||||
import 'package:auto_route/auto_route.dart';
|
import 'package:auto_route/auto_route.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:shadcn_flutter/shadcn_flutter.dart' hide Consumer;
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
|
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
|
||||||
import 'package:spotube/collections/routes.gr.dart';
|
import 'package:spotube/collections/routes.gr.dart';
|
||||||
import 'package:spotube/collections/spotube_icons.dart';
|
import 'package:spotube/collections/spotube_icons.dart';
|
||||||
|
@ -112,7 +112,7 @@ class GettingStartedScreenSupportSection extends HookConsumerWidget {
|
|||||||
context.pushRoute(const SettingsMetadataProviderRoute());
|
context.pushRoute(const SettingsMetadataProviderRoute());
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
child: const Text("Install a Metadata Provider"),
|
child: Text(context.l10n.install_a_metadata_provider),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
@ -118,7 +118,7 @@ class PlainLyrics extends HookConsumerWidget {
|
|||||||
),
|
),
|
||||||
child: SelectableText(
|
child: SelectableText(
|
||||||
lyrics == null && playlist.activeTrack == null
|
lyrics == null && playlist.activeTrack == null
|
||||||
? "No Track being played currently"
|
? context.l10n.no_tracks_playing
|
||||||
: lyrics ?? "",
|
: lyrics ?? "",
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
),
|
),
|
||||||
|
@ -236,18 +236,17 @@ class SyncedLyrics extends HookConsumerWidget {
|
|||||||
text: TextSpan(
|
text: TextSpan(
|
||||||
style: bodyTextTheme,
|
style: bodyTextTheme,
|
||||||
children: [
|
children: [
|
||||||
const TextSpan(
|
TextSpan(
|
||||||
text:
|
text: context.l10n.synced_lyrics_not_available,
|
||||||
"Synced lyrics are not available for this song. Please use the",
|
|
||||||
),
|
),
|
||||||
TextSpan(
|
TextSpan(
|
||||||
text: " Plain Lyrics ",
|
text: " ${context.l10n.plain_lyrics} ",
|
||||||
style: typography.large.copyWith(
|
style: typography.large.copyWith(
|
||||||
color: palette.bodyTextColor,
|
color: palette.bodyTextColor,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const TextSpan(text: "tab instead."),
|
TextSpan(text: context.l10n.tab_instead),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -73,7 +73,7 @@ class SettingsMetadataProviderFormPage extends HookConsumerWidget {
|
|||||||
FormBuilderValidators.match(
|
FormBuilderValidators.match(
|
||||||
RegExp(field.regex!),
|
RegExp(field.regex!),
|
||||||
errorText:
|
errorText:
|
||||||
"Input doesn't match the required format",
|
context.l10n.input_does_not_match_format,
|
||||||
),
|
),
|
||||||
]),
|
]),
|
||||||
builder: (formField) {
|
builder: (formField) {
|
||||||
|
@ -9,6 +9,7 @@ import 'package:skeletonizer/skeletonizer.dart';
|
|||||||
import 'package:spotube/collections/spotube_icons.dart';
|
import 'package:spotube/collections/spotube_icons.dart';
|
||||||
import 'package:spotube/components/form/text_form_field.dart';
|
import 'package:spotube/components/form/text_form_field.dart';
|
||||||
import 'package:spotube/components/titlebar/titlebar.dart';
|
import 'package:spotube/components/titlebar/titlebar.dart';
|
||||||
|
import 'package:spotube/extensions/context.dart';
|
||||||
import 'package:spotube/models/metadata/metadata.dart';
|
import 'package:spotube/models/metadata/metadata.dart';
|
||||||
import 'package:spotube/modules/metadata_plugins/installed_plugin.dart';
|
import 'package:spotube/modules/metadata_plugins/installed_plugin.dart';
|
||||||
import 'package:spotube/modules/metadata_plugins/plugin_repository.dart';
|
import 'package:spotube/modules/metadata_plugins/plugin_repository.dart';
|
||||||
@ -56,9 +57,9 @@ class SettingsMetadataProviderPage extends HookConsumerWidget {
|
|||||||
return SafeArea(
|
return SafeArea(
|
||||||
bottom: false,
|
bottom: false,
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
headers: const [
|
headers: [
|
||||||
TitleBar(
|
TitleBar(
|
||||||
title: Text("Metadata provider plugin"),
|
title: Text(context.l10n.metadata_provider_plugins),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
child: Padding(
|
child: Padding(
|
||||||
@ -76,10 +77,8 @@ class SettingsMetadataProviderPage extends HookConsumerWidget {
|
|||||||
name: "plugin_url",
|
name: "plugin_url",
|
||||||
validator: FormBuilderValidators.url(
|
validator: FormBuilderValidators.url(
|
||||||
protocols: ["http", "https"]),
|
protocols: ["http", "https"]),
|
||||||
placeholder: const Text(
|
placeholder:
|
||||||
"Paste download url or GitHub/Codeberg repo url"
|
Text(context.l10n.paste_plugin_download_url),
|
||||||
"or direct link to .smplug file",
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -87,8 +86,9 @@ class SettingsMetadataProviderPage extends HookConsumerWidget {
|
|||||||
final isLoading = useState(false);
|
final isLoading = useState(false);
|
||||||
|
|
||||||
return Tooltip(
|
return Tooltip(
|
||||||
tooltip: const TooltipContainer(
|
tooltip: TooltipContainer(
|
||||||
child: Text("Download and install plugin from url"),
|
child: Text(context
|
||||||
|
.l10n.download_and_install_plugin_from_url),
|
||||||
).call,
|
).call,
|
||||||
child: IconButton.secondary(
|
child: IconButton.secondary(
|
||||||
icon: isLoading.value
|
icon: isLoading.value
|
||||||
@ -130,7 +130,11 @@ class SettingsMetadataProviderPage extends HookConsumerWidget {
|
|||||||
SpotubeIcons.error,
|
SpotubeIcons.error,
|
||||||
color: Colors.red,
|
color: Colors.red,
|
||||||
),
|
),
|
||||||
title: Text("Failed to add plugin: $e"),
|
title: Text(
|
||||||
|
context.l10n
|
||||||
|
.failed_to_add_plugin_error(
|
||||||
|
e.toString()),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
@ -144,8 +148,8 @@ class SettingsMetadataProviderPage extends HookConsumerWidget {
|
|||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
Tooltip(
|
Tooltip(
|
||||||
tooltip: const TooltipContainer(
|
tooltip: TooltipContainer(
|
||||||
child: Text("Upload plugin from file"),
|
child: Text(context.l10n.upload_plugin_from_file),
|
||||||
).call,
|
).call,
|
||||||
child: IconButton.primary(
|
child: IconButton.primary(
|
||||||
icon: const Icon(SpotubeIcons.upload),
|
icon: const Icon(SpotubeIcons.upload),
|
||||||
@ -177,7 +181,7 @@ class SettingsMetadataProviderPage extends HookConsumerWidget {
|
|||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
const Gap(8),
|
const Gap(8),
|
||||||
const Text("Installed").h4,
|
Text(context.l10n.installed).h4,
|
||||||
const Gap(8),
|
const Gap(8),
|
||||||
const Expanded(child: Divider()),
|
const Expanded(child: Divider()),
|
||||||
const Gap(8),
|
const Gap(8),
|
||||||
@ -203,7 +207,7 @@ class SettingsMetadataProviderPage extends HookConsumerWidget {
|
|||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
const Gap(8),
|
const Gap(8),
|
||||||
const Text("Available plugins").h4,
|
Text(context.l10n.available_plugins).h4,
|
||||||
const Gap(8),
|
const Gap(8),
|
||||||
const Expanded(child: Divider()),
|
const Expanded(child: Divider()),
|
||||||
const Gap(8),
|
const Gap(8),
|
||||||
@ -256,21 +260,16 @@ class SettingsMetadataProviderPage extends HookConsumerWidget {
|
|||||||
spacing: 8,
|
spacing: 8,
|
||||||
children: [
|
children: [
|
||||||
const Icon(SpotubeIcons.warning, size: 16),
|
const Icon(SpotubeIcons.warning, size: 16),
|
||||||
const Text(
|
Text(
|
||||||
"Disclaimer",
|
context.l10n.disclaimer,
|
||||||
style: TextStyle(fontWeight: FontWeight.bold),
|
style: const TextStyle(
|
||||||
|
fontWeight: FontWeight.bold),
|
||||||
).bold,
|
).bold,
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
const Text(
|
Text(context.l10n.third_party_plugin_dmca_notice)
|
||||||
"The Spotube team does not hold any responsibility (including legal) for any \"Third-party\" plugins.\n"
|
.muted
|
||||||
"Please use them at your own risk. For any bugs/issues, please report them to the plugin repository."
|
.xSmall,
|
||||||
"\n\n"
|
|
||||||
"If 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",
|
|
||||||
).muted.xSmall,
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -38,7 +38,7 @@ class SettingsScrobblingPage extends HookConsumerWidget {
|
|||||||
child: SafeArea(
|
child: SafeArea(
|
||||||
bottom: false,
|
bottom: false,
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
headers: const [TitleBar(title: Text("Scrobbling"))],
|
headers: [TitleBar(title: Text(context.l10n.scrobbling))],
|
||||||
child: ListView(
|
child: ListView(
|
||||||
padding: const EdgeInsets.all(8),
|
padding: const EdgeInsets.all(8),
|
||||||
children: [
|
children: [
|
||||||
|
@ -21,9 +21,8 @@ class SettingsAccountSection extends HookConsumerWidget {
|
|||||||
children: [
|
children: [
|
||||||
ListTile(
|
ListTile(
|
||||||
leading: const Icon(SpotubeIcons.extensions),
|
leading: const Icon(SpotubeIcons.extensions),
|
||||||
title: const Text("Metadata provider plugins"),
|
title: Text(context.l10n.metadata_provider_plugins),
|
||||||
subtitle: const Text(
|
subtitle: Text(context.l10n.configure_your_own_metadata_plugin),
|
||||||
"Configure your own playlist/album/artist/feed metadata provider"),
|
|
||||||
onTap: () {
|
onTap: () {
|
||||||
context.pushRoute(const SettingsMetadataProviderRoute());
|
context.pushRoute(const SettingsMetadataProviderRoute());
|
||||||
},
|
},
|
||||||
@ -32,7 +31,7 @@ class SettingsAccountSection extends HookConsumerWidget {
|
|||||||
if (scrobbler.asData?.value == null)
|
if (scrobbler.asData?.value == null)
|
||||||
ListTile(
|
ListTile(
|
||||||
leading: const Icon(SpotubeIcons.music),
|
leading: const Icon(SpotubeIcons.music),
|
||||||
title: const Text("Audio scrobblers"),
|
title: Text(context.l10n.audio_scrobblers),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
context.pushRoute(const SettingsScrobblingRoute());
|
context.pushRoute(const SettingsScrobblingRoute());
|
||||||
},
|
},
|
||||||
|
@ -9,9 +9,20 @@ enum SourceCodecs {
|
|||||||
}
|
}
|
||||||
|
|
||||||
enum SourceQualities {
|
enum SourceQualities {
|
||||||
high,
|
high(2),
|
||||||
medium,
|
medium(1),
|
||||||
low,
|
low(0);
|
||||||
|
|
||||||
|
final int priority;
|
||||||
|
const SourceQualities(this.priority);
|
||||||
|
|
||||||
|
bool operator <(SourceQualities other) {
|
||||||
|
return priority < other.priority;
|
||||||
|
}
|
||||||
|
|
||||||
|
operator >(SourceQualities other) {
|
||||||
|
return priority > other.priority;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef SiblingType<T extends TrackSourceInfo> = ({
|
typedef SiblingType<T extends TrackSourceInfo> = ({
|
||||||
|
@ -179,7 +179,7 @@ abstract class SourcedTrack extends BasicSourcedTrack {
|
|||||||
}).toList();
|
}).toList();
|
||||||
|
|
||||||
if (sameCodecSources.isNotEmpty) {
|
if (sameCodecSources.isNotEmpty) {
|
||||||
return preferences.audioQuality != SourceQualities.low
|
return preferences.audioQuality > SourceQualities.low
|
||||||
? sameCodecSources.first.url
|
? sameCodecSources.first.url
|
||||||
: sameCodecSources.last.url;
|
: sameCodecSources.last.url;
|
||||||
}
|
}
|
||||||
@ -190,7 +190,7 @@ abstract class SourcedTrack extends BasicSourcedTrack {
|
|||||||
return aDiff != bDiff ? aDiff - bDiff : a.quality.index - b.quality.index;
|
return aDiff != bDiff ? aDiff - bDiff : a.quality.index - b.quality.index;
|
||||||
});
|
});
|
||||||
|
|
||||||
return preferences.audioQuality != SourceQualities.low
|
return preferences.audioQuality > SourceQualities.low
|
||||||
? fallbackSource.firstOrNull?.url
|
? fallbackSource.firstOrNull?.url
|
||||||
: fallbackSource.lastOrNull?.url;
|
: fallbackSource.lastOrNull?.url;
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import 'package:collection/collection.dart';
|
import 'package:collection/collection.dart';
|
||||||
|
import 'package:dio/dio.dart';
|
||||||
import 'package:drift/drift.dart';
|
import 'package:drift/drift.dart';
|
||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
import 'package:spotube/models/database/database.dart';
|
import 'package:spotube/models/database/database.dart';
|
||||||
@ -6,6 +7,7 @@ import 'package:spotube/models/playback/track_sources.dart';
|
|||||||
import 'package:spotube/provider/database/database.dart';
|
import 'package:spotube/provider/database/database.dart';
|
||||||
import 'package:spotube/provider/user_preferences/user_preferences_provider.dart';
|
import 'package:spotube/provider/user_preferences/user_preferences_provider.dart';
|
||||||
import 'package:spotube/provider/youtube_engine/youtube_engine.dart';
|
import 'package:spotube/provider/youtube_engine/youtube_engine.dart';
|
||||||
|
import 'package:spotube/services/dio/dio.dart';
|
||||||
import 'package:spotube/services/logger/logger.dart';
|
import 'package:spotube/services/logger/logger.dart';
|
||||||
import 'package:spotube/services/song_link/song_link.dart';
|
import 'package:spotube/services/song_link/song_link.dart';
|
||||||
import 'package:spotube/services/sourced_track/enums.dart';
|
import 'package:spotube/services/sourced_track/enums.dart';
|
||||||
@ -389,14 +391,32 @@ class YoutubeSourcedTrack extends SourcedTrack {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Future<SourcedTrack> refreshStream() async {
|
Future<SourcedTrack> refreshStream() async {
|
||||||
final manifest =
|
List<TrackSource> validStreams = [];
|
||||||
await ref.read(youtubeEngineProvider).getStreamManifest(info.id);
|
|
||||||
|
for (final source in sources) {
|
||||||
|
final res = await globalDio.head(
|
||||||
|
source.url,
|
||||||
|
options:
|
||||||
|
Options(validateStatus: (status) => status != null && status < 500),
|
||||||
|
);
|
||||||
|
|
||||||
|
if (res.statusCode! < 400) {
|
||||||
|
validStreams.add(source);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (validStreams.isEmpty) {
|
||||||
|
final manifest =
|
||||||
|
await ref.read(youtubeEngineProvider).getStreamManifest(info.id);
|
||||||
|
|
||||||
|
validStreams = toTrackSources(manifest);
|
||||||
|
}
|
||||||
|
|
||||||
final sourcedTrack = YoutubeSourcedTrack(
|
final sourcedTrack = YoutubeSourcedTrack(
|
||||||
ref: ref,
|
ref: ref,
|
||||||
siblings: siblings,
|
siblings: siblings,
|
||||||
source: source,
|
source: source,
|
||||||
sources: toTrackSources(manifest),
|
sources: validStreams,
|
||||||
info: info,
|
info: info,
|
||||||
query: query,
|
query: query,
|
||||||
);
|
);
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
import 'dart:isolate';
|
import 'dart:isolate';
|
||||||
|
|
||||||
import 'package:dio/dio.dart';
|
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:spotube/services/dio/dio.dart';
|
|
||||||
import 'package:spotube/services/logger/logger.dart';
|
|
||||||
import 'package:spotube/services/youtube_engine/youtube_engine.dart';
|
import 'package:spotube/services/youtube_engine/youtube_engine.dart';
|
||||||
import 'package:youtube_explode_dart/youtube_explode_dart.dart';
|
import 'package:youtube_explode_dart/youtube_explode_dart.dart';
|
||||||
|
|
||||||
@ -170,54 +167,31 @@ class YouTubeExplodeEngine implements YouTubeEngine {
|
|||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
||||||
final accessibleStreams = <AudioOnlyStreamInfo>[];
|
final audioStreams = streamManifest.audioOnly.where(
|
||||||
final stringBuffer = StringBuffer();
|
(stream) => stream.bitrate.bitsPerSecond >= 40960,
|
||||||
|
);
|
||||||
|
|
||||||
for (final stream in streamManifest.audioOnly) {
|
return StreamManifest(
|
||||||
// Call dio head request to check if the stream is accessible
|
audioStreams.map(
|
||||||
final response = await globalDio.headUri(
|
(stream) => AudioOnlyStreamInfo(
|
||||||
stream.url,
|
stream.videoId,
|
||||||
options: Options(
|
stream.tag,
|
||||||
followRedirects: true,
|
stream.url,
|
||||||
validateStatus: (status) {
|
stream.container,
|
||||||
return status != null && status < 500;
|
stream.size,
|
||||||
|
stream.bitrate,
|
||||||
|
stream.audioCodec,
|
||||||
|
switch (stream.bitrate.bitsPerSecond) {
|
||||||
|
> 130 * 1024 => "high",
|
||||||
|
> 64 * 1024 => "medium",
|
||||||
|
_ => "low",
|
||||||
},
|
},
|
||||||
|
stream.fragments,
|
||||||
|
stream.codec,
|
||||||
|
stream.audioTrack,
|
||||||
),
|
),
|
||||||
);
|
),
|
||||||
|
);
|
||||||
stringBuffer.writeln(
|
|
||||||
"Stream $videoId Status ${response.statusCode} Codec ${stream.audioCodec} "
|
|
||||||
"Bitrate ${stream.bitrate} Container ${stream.container}",
|
|
||||||
);
|
|
||||||
|
|
||||||
if (response.statusCode != null &&
|
|
||||||
response.statusCode! >= 200 &&
|
|
||||||
response.statusCode! < 400) {
|
|
||||||
accessibleStreams.add(
|
|
||||||
AudioOnlyStreamInfo(
|
|
||||||
stream.videoId,
|
|
||||||
stream.tag,
|
|
||||||
stream.url,
|
|
||||||
stream.container,
|
|
||||||
stream.size,
|
|
||||||
stream.bitrate,
|
|
||||||
stream.audioCodec,
|
|
||||||
switch (stream.bitrate.bitsPerSecond) {
|
|
||||||
> 130 * 1024 => "high",
|
|
||||||
> 64 * 1024 => "medium",
|
|
||||||
_ => "low",
|
|
||||||
},
|
|
||||||
stream.fragments,
|
|
||||||
stream.codec,
|
|
||||||
stream.audioTrack,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
AppLogger.log.d(stringBuffer.toString());
|
|
||||||
|
|
||||||
return StreamManifest(accessibleStreams);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user