Compare commits

..

1 Commits

Author SHA1 Message Date
Richard Hajek
677e3c48dc
Merge 42e954428b into ea329f40e8 2025-09-03 10:27:09 +06:00
50 changed files with 193 additions and 6359 deletions

View File

@ -4,7 +4,6 @@ import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:shadcn_flutter/shadcn_flutter.dart';
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
import 'package:spotube/collections/spotube_icons.dart';
import 'package:spotube/extensions/context.dart';
class ErrorBox extends StatelessWidget {
final Object error;
@ -28,10 +27,10 @@ class ErrorBox extends StatelessWidget {
mainAxisSize: MainAxisSize.min,
spacing: 12,
children: [
Basic(
leading: const Icon(SpotubeIcons.error),
const Basic(
leading: Icon(SpotubeIcons.error),
contentSpacing: 8,
title: Text(context.l10n.an_error_occurred),
title: Text("An error occurred"),
),
Card(
padding: const EdgeInsets.all(8.0),
@ -71,7 +70,7 @@ class ErrorBox extends StatelessWidget {
spacing: 8,
children: [
const Icon(SpotubeIcons.logs),
Text(context.l10n.logs),
const Text("Logs"),
const Spacer(),
IconButton.ghost(
icon: const Icon(SpotubeIcons.close),
@ -87,7 +86,7 @@ class ErrorBox extends StatelessWidget {
leading: copied.value
? const Icon(SpotubeIcons.done)
: const Icon(SpotubeIcons.clipboard),
child: Text(context.l10n.copy_to_clipboard),
child: const Text("Copy to clipboard"),
onPressed: () {
Clipboard.setData(
ClipboardData(text: error.toString()),
@ -119,13 +118,13 @@ class ErrorBox extends StatelessWidget {
},
);
},
child: Text(context.l10n.view_logs),
child: const Text("View logs"),
),
if (onRetry != null)
Button.text(
leading: const Icon(SpotubeIcons.refresh),
onPressed: onRetry,
child: Text(context.l10n.retry),
child: const Text("Retry"),
),
],
),

View File

@ -5,7 +5,6 @@ import 'package:shadcn_flutter/shadcn_flutter.dart';
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
import 'package:spotube/collections/routes.gr.dart';
import 'package:spotube/collections/spotube_icons.dart';
import 'package:spotube/extensions/context.dart';
class NoDefaultMetadataPlugin extends StatelessWidget {
const NoDefaultMetadataPlugin({super.key});
@ -24,13 +23,13 @@ class NoDefaultMetadataPlugin extends StatelessWidget {
color: context.theme.colorScheme.primary,
),
AutoSizeText(
context.l10n.no_default_metadata_provider_selected,
"You've no default metadata provider set",
style: context.theme.typography.h4,
maxLines: 1,
),
Button.primary(
leading: const Icon(SpotubeIcons.extensions),
child: Text(context.l10n.manage_metadata_providers),
child: const Text("Manage metadata providers"),
onPressed: () {
context.pushRoute(const SettingsMetadataProviderRoute());
},

View File

@ -3,7 +3,6 @@ import 'package:flutter/services.dart';
import 'package:flutter_markdown_plus/flutter_markdown_plus.dart';
import 'package:shadcn_flutter/shadcn_flutter.dart';
import 'package:spotube/collections/spotube_icons.dart';
import 'package:spotube/extensions/context.dart';
import 'package:url_launcher/url_launcher_string.dart';
class AppMarkdown extends StatelessWidget {
@ -31,33 +30,36 @@ class AppMarkdown extends StatelessWidget {
return ConstrainedBox(
constraints: const BoxConstraints(maxWidth: 450),
child: AlertDialog(
title: Row(
title: const Row(
spacing: 8,
children: [
const Icon(SpotubeIcons.warning),
Text(context.l10n.open_link_in_browser),
Icon(SpotubeIcons.warning),
Text("Open Link in Browser?"),
],
),
content: Text.rich(
TextSpan(
children: [
TextSpan(
text:
"${context.l10n.do_you_want_to_open_the_following_link}:\n",
const TextSpan(
text: "Do you want to open the following link:\n",
),
if (href != null)
TextSpan(
text: "$href\n\n",
style: const TextStyle(color: Colors.blue),
),
TextSpan(text: context.l10n.unsafe_url_warning),
const TextSpan(
text:
"It can be unsafe to open links from untrusted sources. Be cautious!\n"
"You can also copy the link to your clipboard.",
),
],
),
),
actions: [
Button.ghost(
onPressed: () => Navigator.of(context).pop(false),
child: Text(context.l10n.cancel),
child: const Text("Cancel"),
),
Button.ghost(
onPressed: () {
@ -66,7 +68,7 @@ class AppMarkdown extends StatelessWidget {
}
Navigator.of(context).pop(false);
},
child: Text(context.l10n.copy_link),
child: const Text("Copy Link"),
),
Button.destructive(
onPressed: () {
@ -78,7 +80,7 @@ class AppMarkdown extends StatelessWidget {
}
Navigator.of(context).pop(true);
},
child: Text(context.l10n.open),
child: const Text("Open"),
),
],
),

View File

@ -415,51 +415,5 @@
"edit_port": "Edit port",
"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?",
"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"
"connection_request_denied": "Connection denied. User denied access."
}

View File

@ -2653,282 +2653,6 @@ abstract class AppLocalizations {
/// In en, this message translates to:
/// **'Connection denied. User denied access.'**
String get connection_request_denied;
/// No description provided for @an_error_occurred.
///
/// In en, this message translates to:
/// **'An error occurred'**
String get an_error_occurred;
/// No description provided for @copy_to_clipboard.
///
/// In en, this message translates to:
/// **'Copy to clipboard'**
String get copy_to_clipboard;
/// No description provided for @view_logs.
///
/// In en, this message translates to:
/// **'View logs'**
String get view_logs;
/// No description provided for @retry.
///
/// In en, this message translates to:
/// **'Retry'**
String get retry;
/// No description provided for @no_default_metadata_provider_selected.
///
/// In en, this message translates to:
/// **'You\'ve no default metadata provider set'**
String get no_default_metadata_provider_selected;
/// No description provided for @manage_metadata_providers.
///
/// In en, this message translates to:
/// **'Manage metadata providers'**
String get manage_metadata_providers;
/// No description provided for @open_link_in_browser.
///
/// In en, this message translates to:
/// **'Open Link in Browser?'**
String get open_link_in_browser;
/// No description provided for @do_you_want_to_open_the_following_link.
///
/// In en, this message translates to:
/// **'Do you want to open the following link'**
String get do_you_want_to_open_the_following_link;
/// No description provided for @unsafe_url_warning.
///
/// In en, this message translates to:
/// **'It can be unsafe to open links from untrusted sources. Be cautious!\nYou can also copy the link to your clipboard.'**
String get unsafe_url_warning;
/// No description provided for @copy_link.
///
/// In en, this message translates to:
/// **'Copy Link'**
String get copy_link;
/// No description provided for @building_your_timeline.
///
/// In en, this message translates to:
/// **'Building your timeline based on your listenings...'**
String get building_your_timeline;
/// No description provided for @official.
///
/// In en, this message translates to:
/// **'Official'**
String get official;
/// No description provided for @author_name.
///
/// In en, this message translates to:
/// **'Author: {author}'**
String author_name(Object author);
/// No description provided for @third_party.
///
/// In en, this message translates to:
/// **'Third-party'**
String get third_party;
/// No description provided for @plugin_requires_authentication.
///
/// In en, this message translates to:
/// **'Plugin requires authentication'**
String get plugin_requires_authentication;
/// No description provided for @update_available.
///
/// In en, this message translates to:
/// **'Update available'**
String get update_available;
/// No description provided for @supports_scrobbling.
///
/// In en, this message translates to:
/// **'Supports scrobbling'**
String get supports_scrobbling;
/// No description provided for @plugin_scrobbling_info.
///
/// In en, this message translates to:
/// **'This plugin scrobbles your music to generate your listening history.'**
String get plugin_scrobbling_info;
/// No description provided for @default_plugin.
///
/// In en, this message translates to:
/// **'Default'**
String get default_plugin;
/// No description provided for @set_default.
///
/// In en, this message translates to:
/// **'Set default'**
String get set_default;
/// No description provided for @support.
///
/// In en, this message translates to:
/// **'Support'**
String get support;
/// No description provided for @support_plugin_development.
///
/// In en, this message translates to:
/// **'Support plugin development'**
String get support_plugin_development;
/// No description provided for @can_access_name_api.
///
/// In en, this message translates to:
/// **'- Can access **{name}** API'**
String can_access_name_api(Object name);
/// No description provided for @do_you_want_to_install_this_plugin.
///
/// In en, this message translates to:
/// **'Do you want to install this plugin?'**
String get do_you_want_to_install_this_plugin;
/// No description provided for @third_party_plugin_warning.
///
/// In en, this message translates to:
/// **'This plugin is from a third-party repository. Please ensure you trust the source before installing.'**
String get third_party_plugin_warning;
/// No description provided for @author.
///
/// In en, this message translates to:
/// **'Author'**
String get author;
/// No description provided for @this_plugin_can_do_following.
///
/// In en, this message translates to:
/// **'This plugin can do following'**
String get this_plugin_can_do_following;
/// No description provided for @install.
///
/// In en, this message translates to:
/// **'Install'**
String get install;
/// No description provided for @install_a_metadata_provider.
///
/// In en, this message translates to:
/// **'Install a Metadata Provider'**
String get install_a_metadata_provider;
/// No description provided for @no_tracks_playing.
///
/// In en, this message translates to:
/// **'No Track being played currently'**
String get no_tracks_playing;
/// No description provided for @synced_lyrics_not_available.
///
/// In en, this message translates to:
/// **'Synced lyrics are not available for this song. Please use the'**
String get synced_lyrics_not_available;
/// No description provided for @plain_lyrics.
///
/// In en, this message translates to:
/// **'Plain Lyrics'**
String get plain_lyrics;
/// No description provided for @tab_instead.
///
/// In en, this message translates to:
/// **'tab instead.'**
String get tab_instead;
/// No description provided for @disclaimer.
///
/// In en, this message translates to:
/// **'Disclaimer'**
String get disclaimer;
/// No description provided for @third_party_plugin_dmca_notice.
///
/// In en, this message translates to:
/// **'The Spotube team does not hold any responsibility (including legal) for any \"Third-party\" plugins.\nPlease use them at your own risk. For any bugs/issues, please report them to the plugin repository.\n\nIf any \"Third-party\" plugin is breaking ToS/DMCA of any service/legal entity, please ask the \"Third-party\" plugin author or the hosting platform .e.g GitHub/Codeberg to take action. Above listed (\"Third-party\" labelled) are all public/community maintained plugins. We\'re not curating them, so we cannot take any action on them.\n\n'**
String get third_party_plugin_dmca_notice;
/// No description provided for @input_does_not_match_format.
///
/// In en, this message translates to:
/// **'Input doesn\'t match the required format'**
String get input_does_not_match_format;
/// No description provided for @metadata_provider_plugins.
///
/// In en, this message translates to:
/// **'Metadata Provider Plugins'**
String get metadata_provider_plugins;
/// No description provided for @paste_plugin_download_url.
///
/// In en, this message translates to:
/// **'Paste download url or GitHub/Codeberg repo url or direct link to .smplug file'**
String get paste_plugin_download_url;
/// No description provided for @download_and_install_plugin_from_url.
///
/// In en, this message translates to:
/// **'Download and install plugin from url'**
String get download_and_install_plugin_from_url;
/// No description provided for @failed_to_add_plugin_error.
///
/// In en, this message translates to:
/// **'Failed to add plugin: {error}'**
String failed_to_add_plugin_error(Object error);
/// No description provided for @upload_plugin_from_file.
///
/// In en, this message translates to:
/// **'Upload plugin from file'**
String get upload_plugin_from_file;
/// No description provided for @installed.
///
/// In en, this message translates to:
/// **'Installed'**
String get installed;
/// No description provided for @available_plugins.
///
/// In en, this message translates to:
/// **'Available plugins'**
String get available_plugins;
/// No description provided for @configure_your_own_metadata_plugin.
///
/// In en, this message translates to:
/// **'Configure your own playlist/album/artist/feed metadata provider'**
String get configure_your_own_metadata_plugin;
/// No description provided for @audio_scrobblers.
///
/// In en, this message translates to:
/// **'Audio Scrobblers'**
String get audio_scrobblers;
/// No description provided for @scrobbling.
///
/// In en, this message translates to:
/// **'Scrobbling'**
String get scrobbling;
}
class _AppLocalizationsDelegate

View File

@ -1380,161 +1380,4 @@ class AppLocalizationsAr extends AppLocalizations {
@override
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';
}

View File

@ -1380,161 +1380,4 @@ class AppLocalizationsBn extends AppLocalizations {
@override
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';
}

View File

@ -1386,161 +1386,4 @@ class AppLocalizationsCa extends AppLocalizations {
@override
String get connection_request_denied =>
'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';
}

View File

@ -1379,161 +1379,4 @@ class AppLocalizationsCs extends AppLocalizations {
@override
String get connection_request_denied =>
'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';
}

View File

@ -1391,161 +1391,4 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get connection_request_denied =>
'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';
}

View File

@ -1379,161 +1379,4 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get connection_request_denied =>
'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';
}

View File

@ -1388,161 +1388,4 @@ class AppLocalizationsEs extends AppLocalizations {
@override
String get connection_request_denied =>
'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';
}

View File

@ -1387,161 +1387,4 @@ class AppLocalizationsEu extends AppLocalizations {
@override
String get connection_request_denied =>
'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';
}

View File

@ -1378,161 +1378,4 @@ class AppLocalizationsFa extends AppLocalizations {
@override
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';
}

View File

@ -1380,161 +1380,4 @@ class AppLocalizationsFi extends AppLocalizations {
@override
String get connection_request_denied =>
'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';
}

View File

@ -1392,161 +1392,4 @@ class AppLocalizationsFr extends AppLocalizations {
@override
String get connection_request_denied =>
'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';
}

View File

@ -1384,161 +1384,4 @@ class AppLocalizationsHi extends AppLocalizations {
@override
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';
}

View File

@ -1386,161 +1386,4 @@ class AppLocalizationsId extends AppLocalizations {
@override
String get connection_request_denied =>
'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';
}

View File

@ -1384,161 +1384,4 @@ class AppLocalizationsIt extends AppLocalizations {
@override
String get connection_request_denied =>
'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';
}

View File

@ -1359,161 +1359,4 @@ class AppLocalizationsJa extends AppLocalizations {
@override
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';
}

View File

@ -1383,161 +1383,4 @@ class AppLocalizationsKa extends AppLocalizations {
@override
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';
}

View File

@ -1361,161 +1361,4 @@ class AppLocalizationsKo extends AppLocalizations {
@override
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';
}

View File

@ -1390,161 +1390,4 @@ class AppLocalizationsNe extends AppLocalizations {
@override
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';
}

View File

@ -1384,161 +1384,4 @@ class AppLocalizationsNl extends AppLocalizations {
@override
String get connection_request_denied =>
'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';
}

View File

@ -1385,161 +1385,4 @@ class AppLocalizationsPl extends AppLocalizations {
@override
String get connection_request_denied =>
'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';
}

View File

@ -1383,161 +1383,4 @@ class AppLocalizationsPt extends AppLocalizations {
@override
String get connection_request_denied =>
'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';
}

View File

@ -1385,161 +1385,4 @@ class AppLocalizationsRu extends AppLocalizations {
@override
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';
}

View File

@ -1390,161 +1390,4 @@ class AppLocalizationsTa extends AppLocalizations {
@override
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';
}

View File

@ -1376,161 +1376,4 @@ class AppLocalizationsTh extends AppLocalizations {
@override
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';
}

View File

@ -1391,161 +1391,4 @@ class AppLocalizationsTl extends AppLocalizations {
@override
String get connection_request_denied =>
'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';
}

View File

@ -1386,161 +1386,4 @@ class AppLocalizationsTr extends AppLocalizations {
@override
String get connection_request_denied =>
'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';
}

View File

@ -1383,161 +1383,4 @@ class AppLocalizationsUk extends AppLocalizations {
@override
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';
}

View File

@ -1387,161 +1387,4 @@ class AppLocalizationsVi extends AppLocalizations {
@override
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.';
@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';
}

View File

@ -1354,161 +1354,4 @@ class AppLocalizationsZh extends AppLocalizations {
@override
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';
}

View File

@ -37,7 +37,8 @@ class HomePageBrowseSection extends HookConsumerWidget {
spacing: 8,
children: [
const CircularProgressIndicator(),
Text(context.l10n.building_your_timeline).muted,
const Text("Building your timeline based on your listenings...")
.muted,
],
),
const Gap(16),

View File

@ -3,7 +3,6 @@ import 'package:shadcn_flutter/shadcn_flutter.dart';
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
import 'package:spotube/collections/spotube_icons.dart';
import 'package:spotube/components/markdown/markdown.dart';
import 'package:spotube/extensions/context.dart';
import 'package:spotube/models/metadata/metadata.dart';
import 'package:spotube/modules/metadata_plugins/plugin_update_available_dialog.dart';
import 'package:spotube/provider/metadata_plugin/core/auth.dart';
@ -85,15 +84,15 @@ class MetadataInstalledPluginItem extends HookConsumerWidget {
runSpacing: 8,
children: [
if (isOfficial)
PrimaryBadge(
leading: const Icon(SpotubeIcons.done),
child: Text(context.l10n.official),
const PrimaryBadge(
leading: Icon(SpotubeIcons.done),
child: Text("Official"),
)
else ...[
Text(context.l10n.author_name(plugin.author)),
DestructiveBadge(
leading: const Icon(SpotubeIcons.warning),
child: Text(context.l10n.third_party),
Text("Author: ${plugin.author}"),
const DestructiveBadge(
leading: Icon(SpotubeIcons.warning),
child: Text("Third-party"),
)
],
SecondaryBadge(
@ -132,11 +131,11 @@ class MetadataInstalledPluginItem extends HookConsumerWidget {
spacing: 12,
children: [
if (requiresAuth && !isAuthenticated)
Row(
const Row(
spacing: 8,
children: [
const Icon(SpotubeIcons.warning, color: Colors.yellow),
Text(context.l10n.plugin_requires_authentication),
Icon(SpotubeIcons.warning, color: Colors.yellow),
Text("Plugin requires authentication"),
],
),
if (hasUpdate)
@ -144,7 +143,7 @@ class MetadataInstalledPluginItem extends HookConsumerWidget {
width: double.infinity,
child: Basic(
leading: const Icon(SpotubeIcons.update),
title: Text(context.l10n.update_available),
title: const Text("Update available"),
subtitle: Text(
updateAvailable!.asData!.value!.version,
),
@ -159,17 +158,19 @@ class MetadataInstalledPluginItem extends HookConsumerWidget {
),
);
},
child: Text(context.l10n.update),
child: const Text("Update"),
),
),
),
if (supportsScrobbling)
SizedBox(
const SizedBox(
width: double.infinity,
child: Basic(
leading: const Icon(SpotubeIcons.info),
title: Text(context.l10n.supports_scrobbling),
subtitle: Text(context.l10n.plugin_scrobbling_info),
leading: Icon(SpotubeIcons.info),
title: Text("Supports scrobbling"),
subtitle: Text(
"This plugin scrobbles your music to generate your listening history.",
),
),
)
],
@ -183,11 +184,9 @@ class MetadataInstalledPluginItem extends HookConsumerWidget {
onPressed: () async {
await pluginsNotifier.setDefaultPlugin(plugin);
},
child: Text(
isDefault
? context.l10n.default_plugin
: context.l10n.set_default,
),
child: isDefault
? const Text("Default")
: const Text("Set default"),
),
if (isDefault)
Consumer(builder: (context, ref, _) {
@ -227,14 +226,13 @@ class MetadataInstalledPluginItem extends HookConsumerWidget {
},
),
leading: const Icon(SpotubeIcons.heartFilled),
child: Text(context.l10n.support),
child: const Text("Support"),
onPressed: () {
showDialog(
context: context,
builder: (context) {
return AlertDialog(
title:
Text(context.l10n.support_plugin_development),
title: const Text("Support plugin development"),
content: ConstrainedBox(
constraints: BoxConstraints(
maxHeight: mediaQuery.height * 0.8,
@ -254,7 +252,7 @@ class MetadataInstalledPluginItem extends HookConsumerWidget {
onPressed: () {
Navigator.of(context).pop();
},
child: Text(context.l10n.close),
child: const Text("Close"),
),
],
);
@ -270,7 +268,7 @@ class MetadataInstalledPluginItem extends HookConsumerWidget {
await metadataPlugin.asData?.value?.auth.authenticate();
},
leading: const Icon(SpotubeIcons.login),
child: Text(context.l10n.login),
child: const Text("Login"),
)
else if (isDefault && requiresAuth && isAuthenticated)
Button.destructive(
@ -278,7 +276,7 @@ class MetadataInstalledPluginItem extends HookConsumerWidget {
await metadataPlugin.asData?.value?.auth.logout();
},
leading: const Icon(SpotubeIcons.logout),
child: Text(context.l10n.logout),
child: const Text("Logout"),
)
],
)

View File

@ -4,7 +4,6 @@ import 'package:shadcn_flutter/shadcn_flutter.dart';
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
import 'package:spotube/collections/spotube_icons.dart';
import 'package:spotube/components/markdown/markdown.dart';
import 'package:spotube/extensions/context.dart';
import 'package:spotube/models/metadata/metadata.dart';
import 'package:spotube/provider/metadata_plugin/metadata_plugin_provider.dart';
import 'package:url_launcher/url_launcher_string.dart';
@ -39,9 +38,9 @@ class MetadataPluginRepositoryItem extends HookConsumerWidget {
spacing: 8,
children: [
if (pluginRepo.owner == "KRTirtho") ...[
PrimaryBadge(
const PrimaryBadge(
leading: Icon(SpotubeIcons.done),
child: Text(context.l10n.official),
child: Text("Official"),
),
SecondaryBadge(
leading: host == "github.com"
@ -53,10 +52,10 @@ class MetadataPluginRepositoryItem extends HookConsumerWidget {
},
),
] else ...[
Text(context.l10n.author_name(pluginRepo.owner)),
DestructiveBadge(
leading: const Icon(SpotubeIcons.warning),
child: Text(context.l10n.third_party),
Text("Author: ${pluginRepo.owner}"),
const DestructiveBadge(
leading: Icon(SpotubeIcons.warning),
child: Text("Third-party"),
)
]
],
@ -80,19 +79,21 @@ class MetadataPluginRepositoryItem extends HookConsumerWidget {
context: context,
builder: (context) {
final pluginAbilities = pluginConfig.apis
.map(
(e) => context.l10n.can_access_name_api(e.name))
.map((e) => "- Can access **${e.name}** API")
.join("\n\n");
return AlertDialog(
title: Text(
context.l10n.do_you_want_to_install_this_plugin),
title:
const Text("Do you want to install this plugin?"),
content: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(context.l10n.third_party_plugin_warning),
const Text(
"This plugin is from a third-party repository. "
"Please ensure you trust the source before installing.",
),
const Gap(8),
FutureBuilder(
future:
@ -125,10 +126,9 @@ class MetadataPluginRepositoryItem extends HookConsumerWidget {
),
const Gap(8),
AppMarkdown(
data:
"**${context.l10n.author}**: ${pluginConfig.author}\n\n"
"**${context.l10n.repository}**: [${pluginConfig.repository ?? 'N/A'}](${pluginConfig.repository})\n\n\n\n"
"${context.l10n.this_plugin_can_do_following}:\n\n"
data: "**Author**: ${pluginConfig.author}\n\n"
"**Repository**: [${pluginConfig.repository ?? 'N/A'}](${pluginConfig.repository})\n\n\n\n"
"This plugin can do following:\n\n"
"$pluginAbilities",
),
],
@ -138,13 +138,13 @@ class MetadataPluginRepositoryItem extends HookConsumerWidget {
onPressed: () {
Navigator.of(context).pop(false);
},
child: Text(context.l10n.decline),
child: const Text("Deny"),
),
Button.primary(
onPressed: () {
Navigator.of(context).pop(true);
},
child: Text(context.l10n.accept),
child: const Text("Allow"),
),
],
);
@ -162,7 +162,7 @@ class MetadataPluginRepositoryItem extends HookConsumerWidget {
leading: isInstalling.value
? const CircularProgressIndicator()
: const Icon(SpotubeIcons.add),
child: Text(context.l10n.install),
child: const Text("Install"),
),
),
);

View File

@ -3,7 +3,7 @@ import 'dart:convert';
import 'package:auto_route/auto_route.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:shadcn_flutter/shadcn_flutter.dart';
import 'package:shadcn_flutter/shadcn_flutter.dart' hide Consumer;
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
import 'package:spotube/collections/routes.gr.dart';
import 'package:spotube/collections/spotube_icons.dart';

View File

@ -112,7 +112,7 @@ class GettingStartedScreenSupportSection extends HookConsumerWidget {
context.pushRoute(const SettingsMetadataProviderRoute());
}
},
child: Text(context.l10n.install_a_metadata_provider),
child: const Text("Install a Metadata Provider"),
),
],
),

View File

@ -118,7 +118,7 @@ class PlainLyrics extends HookConsumerWidget {
),
child: SelectableText(
lyrics == null && playlist.activeTrack == null
? context.l10n.no_tracks_playing
? "No Track being played currently"
: lyrics ?? "",
textAlign: TextAlign.center,
),

View File

@ -236,17 +236,18 @@ class SyncedLyrics extends HookConsumerWidget {
text: TextSpan(
style: bodyTextTheme,
children: [
TextSpan(
text: context.l10n.synced_lyrics_not_available,
const TextSpan(
text:
"Synced lyrics are not available for this song. Please use the",
),
TextSpan(
text: " ${context.l10n.plain_lyrics} ",
text: " Plain Lyrics ",
style: typography.large.copyWith(
color: palette.bodyTextColor,
fontWeight: FontWeight.bold,
),
),
TextSpan(text: context.l10n.tab_instead),
const TextSpan(text: "tab instead."),
],
),
),

View File

@ -73,7 +73,7 @@ class SettingsMetadataProviderFormPage extends HookConsumerWidget {
FormBuilderValidators.match(
RegExp(field.regex!),
errorText:
context.l10n.input_does_not_match_format,
"Input doesn't match the required format",
),
]),
builder: (formField) {

View File

@ -9,7 +9,6 @@ import 'package:skeletonizer/skeletonizer.dart';
import 'package:spotube/collections/spotube_icons.dart';
import 'package:spotube/components/form/text_form_field.dart';
import 'package:spotube/components/titlebar/titlebar.dart';
import 'package:spotube/extensions/context.dart';
import 'package:spotube/models/metadata/metadata.dart';
import 'package:spotube/modules/metadata_plugins/installed_plugin.dart';
import 'package:spotube/modules/metadata_plugins/plugin_repository.dart';
@ -57,9 +56,9 @@ class SettingsMetadataProviderPage extends HookConsumerWidget {
return SafeArea(
bottom: false,
child: Scaffold(
headers: [
headers: const [
TitleBar(
title: Text(context.l10n.metadata_provider_plugins),
title: Text("Metadata provider plugin"),
)
],
child: Padding(
@ -77,8 +76,10 @@ class SettingsMetadataProviderPage extends HookConsumerWidget {
name: "plugin_url",
validator: FormBuilderValidators.url(
protocols: ["http", "https"]),
placeholder:
Text(context.l10n.paste_plugin_download_url),
placeholder: const Text(
"Paste download url or GitHub/Codeberg repo url"
"or direct link to .smplug file",
),
),
),
),
@ -86,9 +87,8 @@ class SettingsMetadataProviderPage extends HookConsumerWidget {
final isLoading = useState(false);
return Tooltip(
tooltip: TooltipContainer(
child: Text(context
.l10n.download_and_install_plugin_from_url),
tooltip: const TooltipContainer(
child: Text("Download and install plugin from url"),
).call,
child: IconButton.secondary(
icon: isLoading.value
@ -130,11 +130,7 @@ class SettingsMetadataProviderPage extends HookConsumerWidget {
SpotubeIcons.error,
color: Colors.red,
),
title: Text(
context.l10n
.failed_to_add_plugin_error(
e.toString()),
),
title: Text("Failed to add plugin: $e"),
),
);
},
@ -148,8 +144,8 @@ class SettingsMetadataProviderPage extends HookConsumerWidget {
);
}),
Tooltip(
tooltip: TooltipContainer(
child: Text(context.l10n.upload_plugin_from_file),
tooltip: const TooltipContainer(
child: Text("Upload plugin from file"),
).call,
child: IconButton.primary(
icon: const Icon(SpotubeIcons.upload),
@ -181,7 +177,7 @@ class SettingsMetadataProviderPage extends HookConsumerWidget {
child: Row(
children: [
const Gap(8),
Text(context.l10n.installed).h4,
const Text("Installed").h4,
const Gap(8),
const Expanded(child: Divider()),
const Gap(8),
@ -207,7 +203,7 @@ class SettingsMetadataProviderPage extends HookConsumerWidget {
child: Row(
children: [
const Gap(8),
Text(context.l10n.available_plugins).h4,
const Text("Available plugins").h4,
const Gap(8),
const Expanded(child: Divider()),
const Gap(8),
@ -260,16 +256,21 @@ class SettingsMetadataProviderPage extends HookConsumerWidget {
spacing: 8,
children: [
const Icon(SpotubeIcons.warning, size: 16),
Text(
context.l10n.disclaimer,
style: const TextStyle(
fontWeight: FontWeight.bold),
const Text(
"Disclaimer",
style: TextStyle(fontWeight: FontWeight.bold),
).bold,
],
),
Text(context.l10n.third_party_plugin_dmca_notice)
.muted
.xSmall,
const Text(
"The Spotube team does not hold any responsibility (including legal) for any \"Third-party\" plugins.\n"
"Please use them at your own risk. For any bugs/issues, please report them to the plugin repository."
"\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,
],
),
),

View File

@ -38,7 +38,7 @@ class SettingsScrobblingPage extends HookConsumerWidget {
child: SafeArea(
bottom: false,
child: Scaffold(
headers: [TitleBar(title: Text(context.l10n.scrobbling))],
headers: const [TitleBar(title: Text("Scrobbling"))],
child: ListView(
padding: const EdgeInsets.all(8),
children: [

View File

@ -21,8 +21,9 @@ class SettingsAccountSection extends HookConsumerWidget {
children: [
ListTile(
leading: const Icon(SpotubeIcons.extensions),
title: Text(context.l10n.metadata_provider_plugins),
subtitle: Text(context.l10n.configure_your_own_metadata_plugin),
title: const Text("Metadata provider plugins"),
subtitle: const Text(
"Configure your own playlist/album/artist/feed metadata provider"),
onTap: () {
context.pushRoute(const SettingsMetadataProviderRoute());
},
@ -31,7 +32,7 @@ class SettingsAccountSection extends HookConsumerWidget {
if (scrobbler.asData?.value == null)
ListTile(
leading: const Icon(SpotubeIcons.music),
title: Text(context.l10n.audio_scrobblers),
title: const Text("Audio scrobblers"),
onTap: () {
context.pushRoute(const SettingsScrobblingRoute());
},

View File

@ -9,20 +9,9 @@ enum SourceCodecs {
}
enum SourceQualities {
high(2),
medium(1),
low(0);
final int priority;
const SourceQualities(this.priority);
bool operator <(SourceQualities other) {
return priority < other.priority;
}
operator >(SourceQualities other) {
return priority > other.priority;
}
high,
medium,
low,
}
typedef SiblingType<T extends TrackSourceInfo> = ({

View File

@ -179,7 +179,7 @@ abstract class SourcedTrack extends BasicSourcedTrack {
}).toList();
if (sameCodecSources.isNotEmpty) {
return preferences.audioQuality > SourceQualities.low
return preferences.audioQuality != SourceQualities.low
? sameCodecSources.first.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 preferences.audioQuality > SourceQualities.low
return preferences.audioQuality != SourceQualities.low
? fallbackSource.firstOrNull?.url
: fallbackSource.lastOrNull?.url;
}

View File

@ -1,5 +1,4 @@
import 'package:collection/collection.dart';
import 'package:dio/dio.dart';
import 'package:drift/drift.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:spotube/models/database/database.dart';
@ -7,7 +6,6 @@ import 'package:spotube/models/playback/track_sources.dart';
import 'package:spotube/provider/database/database.dart';
import 'package:spotube/provider/user_preferences/user_preferences_provider.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/song_link/song_link.dart';
import 'package:spotube/services/sourced_track/enums.dart';
@ -391,32 +389,14 @@ class YoutubeSourcedTrack extends SourcedTrack {
@override
Future<SourcedTrack> refreshStream() async {
List<TrackSource> validStreams = [];
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 manifest =
await ref.read(youtubeEngineProvider).getStreamManifest(info.id);
final sourcedTrack = YoutubeSourcedTrack(
ref: ref,
siblings: siblings,
source: source,
sources: validStreams,
sources: toTrackSources(manifest),
info: info,
query: query,
);

View File

@ -1,6 +1,9 @@
import 'dart:isolate';
import 'package:dio/dio.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:youtube_explode_dart/youtube_explode_dart.dart';
@ -167,31 +170,54 @@ class YouTubeExplodeEngine implements YouTubeEngine {
],
);
final audioStreams = streamManifest.audioOnly.where(
(stream) => stream.bitrate.bitsPerSecond >= 40960,
);
final accessibleStreams = <AudioOnlyStreamInfo>[];
final stringBuffer = StringBuffer();
return StreamManifest(
audioStreams.map(
(stream) => 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",
for (final stream in streamManifest.audioOnly) {
// Call dio head request to check if the stream is accessible
final response = await globalDio.headUri(
stream.url,
options: Options(
followRedirects: true,
validateStatus: (status) {
return status != null && status < 500;
},
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

File diff suppressed because it is too large Load Diff