From babaa68d913d6a5fb98089cb939ce75f34f6bd96 Mon Sep 17 00:00:00 2001 From: exttex Date: Tue, 26 Jan 2021 20:13:01 +0100 Subject: [PATCH] 1.1.15 - importer fixes, queue virtual scroller --- app/client/src/locales/ar.json | 18 +- app/client/src/locales/ast.json | 286 ++++++++++++---------- app/client/src/locales/cs.json | 18 +- app/client/src/locales/de.json | 46 ++-- app/client/src/locales/el.json | 18 +- app/client/src/locales/es.json | 18 +- app/client/src/locales/fa.json | 18 +- app/client/src/locales/fil.json | 18 +- app/client/src/locales/fr.json | 18 +- app/client/src/locales/he.json | 18 +- app/client/src/locales/hi.json | 18 +- app/client/src/locales/hr.json | 18 +- app/client/src/locales/hu.json | 196 ++++++++------- app/client/src/locales/id.json | 18 +- app/client/src/locales/it.json | 18 +- app/client/src/locales/ko.json | 18 +- app/client/src/locales/nl.json | 18 +- app/client/src/locales/pl.json | 18 +- app/client/src/locales/pt.json | 18 +- app/client/src/locales/ro.json | 18 +- app/client/src/locales/ru.json | 18 +- app/client/src/locales/sk.json | 18 +- app/client/src/locales/sl.json | 18 +- app/client/src/locales/tr.json | 18 +- app/client/src/locales/uk.json | 18 +- app/client/src/locales/ur.json | 18 +- app/client/src/locales/uwu.json | 18 +- app/client/src/locales/vi.json | 18 +- app/client/src/main.js | 14 ++ app/client/src/views/FullscreenPlayer.vue | 22 +- app/client/src/views/Importer.vue | 6 +- app/client/src/views/Settings.vue | 1 + app/package.json | 2 +- app/src/importer.js | 30 ++- app/src/server.js | 124 ++++++---- package.json | 2 +- 36 files changed, 854 insertions(+), 325 deletions(-) diff --git a/app/client/src/locales/ar.json b/app/client/src/locales/ar.json index 191088d..cfcdf2b 100644 --- a/app/client/src/locales/ar.json +++ b/app/client/src/locales/ar.json @@ -137,5 +137,21 @@ "Content country": "بلد المحتوى", "Website": "الموقع الالكتروني", "Visit website": "زيارة الموقع الإلكتروني", - "New update available:": "تحديث جديد متوفر:" + "New update available:": "تحديث جديد متوفر:", + "Shuffle": "خلط عشوائي", + "Download album cover": "تنزيل صورة الألبوم", + "Art Resolution": "دقة صورة الالبوم", + "Public": "عامة", + "Private": "خاص", + "Collaborative": "التعاونيه", + "Edit playlist": "تعديل قائمة التشغيل", + "Save": "حفظ", + "Edit": "حرّر", + "Importer": "المستورد", + "Enter URL": "أدخل الرابط", + "Currently only Spotify is supported and limited to 100 tracks.": "حاليا فقط يدعم سبوتيقاي ومحدود إلى 100 اغنية.", + "Import into playlist": "استيراد إلى قائمة التشغيل", + "Keep sidebar open": "إبقاء الشريط الجانبي مفتوح", + "WARNING: Might require reload to work properly!": "تحذير: قد تتطلب إعادة تحميل للعمل بشكل صحيح!", + "An error occured, URL might be invalid or unsupported.": "حدث خطأ، قد يكون الرابط غير صالح أو غير مدعوم." } \ No newline at end of file diff --git a/app/client/src/locales/ast.json b/app/client/src/locales/ast.json index 45bd0e4..19b0190 100644 --- a/app/client/src/locales/ast.json +++ b/app/client/src/locales/ast.json @@ -1,141 +1,157 @@ { - "Home": "Home", - "Browse": "Browse", - "Library": "Library", - "Tracks": "Tracks", - "Playlists": "Playlists", - "Albums": "Albums", - "Artists": "Artists", - "More": "More", - "Settings": "Settings", - "Downloads": "Downloads", - "Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.", - "Play": "Play", - "Add to library": "Add to library", - "Download": "Download", - "fans": "fans", - "tracks": "tracks", - "Quality": "Quality", - "Estimated size:": "Estimated size:", - "Start downloading": "Start downloading", - "Cancel": "Cancel", - "Stream logging is disabled!": "Stream logging is disabled!", - "Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.", - "History": "History", - "Create new playlist": "Create new playlist", - "TRACKS": "TRACKS", - "Sort by": "Sort by", - "Date Added": "Date Added", - "Name (A-Z)": "Name (A-Z)", - "Artist (A-Z)": "Artist (A-Z)", - "Album (A-Z)": "Album (A-Z)", - "Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!", - "Create playlist": "Create playlist", - "Create": "Create", - "Add to playlist": "Add to playlist", - "Create new": "Create new", - "Remove": "Remove", - "Play next": "Play next", - "Add to queue": "Add to queue", - "Remove from library": "Remove from library", - "Remove from playlist": "Remove from playlist", - "Play track mix": "Play track mix", - "Go to": "Go to", - "Track Mix": "Track Mix", - "Duration": "Duration", - "Released": "Released", - "Disk": "Disk", - "albums": "albums", - "Play top": "Play top", + "Home": "Aniciu", + "Browse": "Restolar", + "Library": "Biblioteca", + "Tracks": "Pistes", + "Playlists": "Llistes", + "Albums": "Álbumes", + "Artists": "Artistes", + "More": "Más", + "Settings": "Axustes", + "Downloads": "Descargues", + "Search or paste Deezer URL. Use / to quickly focus.": "Busca o apiega una URL de Deezer. Usa «/» pa enfocar aína esta barra.", + "Play": "Reproducir", + "Add to library": "Amestar a la biblioteca", + "Download": "Baxar", + "fans": "siguidores", + "tracks": "pistes", + "Quality": "Calidá", + "Estimated size:": "Tamañu estimáu:", + "Start downloading": "Aniciar la descarga", + "Cancel": "Encaboxar", + "Stream logging is disabled!": "¡El rexistru de tresmisiones ta desactiváu!", + "Enable it in settings for history to work properly.": "Actívalu nos axustes pa que l'historial funcione afayadizamente.", + "History": "Historial", + "Create new playlist": "Crear una llista", + "TRACKS": "PISTES", + "Sort by": "Ordenar por", + "Date Added": "Data d'amiestu", + "Name (A-Z)": "Nome (A-Z)", + "Artist (A-Z)": "Artista (A-Z)", + "Album (A-Z)": "Álbum (A-Z)", + "Error loading lyrics or lyrics not found!": "¡Hebo un fallu al cargar la lletra o nun s'atopó!", + "Create playlist": "Creación d'una llista", + "Create": "Crear", + "Add to playlist": "Amestar a una llista", + "Create new": "Crear una", + "Remove": "Quitar", + "Play next": "Reproducir darréu", + "Add to queue": "Amestar a la cola", + "Remove from library": "Quitar de la biblioteca", + "Remove from playlist": "Quitar de la llista", + "Play track mix": "Reproducir el mecíu de pistes", + "Go to": "Dir a", + "Track Mix": "Mecíu de pistes", + "Duration": "Duración", + "Released": "Data de llanzamientu", + "Disk": "Discu", + "albums": "álbumes", + "Play top": "Reproducir lo destacao", "Radio": "Radio", - "Show all albums": "Show all albums", - "Show all singles": "Show all singles", - "Show more": "Show more", - "Downloaded": "Downloaded", - "Queue": "Queue", - "Total": "Total", - "Stop": "Stop", - "Start": "Start", - "Show folder": "Show folder", - "Clear queue": "Clear queue", - "Playing from": "Playing from", - "Info": "Info", - "Lyrics": "Lyrics", - "Track number": "Track number", - "Disk number": "Disk number", - "Explicit": "Explicit", - "Source": "Source", + "Show all albums": "Amosar tolos álbumes", + "Show all singles": "Amosar tolos singles", + "Show more": "Amosar más", + "Downloaded": "Baxó", + "Queue": "Cola", + "Total": "En total", + "Stop": "Parar", + "Start": "Aniciar", + "Show folder": "Amosar la carpeta", + "Clear queue": "Llimpiar la cola", + "Playing from": "Reproduciendo dende", + "Info": "Información", + "Lyrics": "Lletra", + "Track number": "Númberu de la pista", + "Disk number": "Númberu del discu", + "Explicit": "+18", + "Source": "Orixe", "ID": "ID", - "Error logging in!": "Error logging in!", - "Please try again later, or try another account.": "Please try again later, or try another account.", - "Logout": "Logout", - "Login using browser": "Login using browser", - "Please login using your Deezer account:": "Please login using your Deezer account:", - "...or paste your ARL/Token below:": "...or paste your ARL/Token below:", - "ARL/Token": "ARL/Token", - "Login": "Login", - "By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.", - "Only in Electron version!": "Only in Electron version!", - "Search results for:": "Search results for:", - "Error loading data!": "Error loading data!", - "Try again later!": "Try again later!", - "Search": "Search", - "Streaming Quality": "Streaming Quality", - "Download Quality": "Download Quality", - "Downloads Directory": "Downloads Directory", - "Simultaneous downloads": "Simultaneous downloads", - "Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.", - "Show download dialog": "Show download dialog", - "Create folders for artists": "Create folders for artists", - "Create folders for albums": "Create folders for albums", - "Download lyrics": "Download lyrics", + "Error logging in!": "¡Hebo un fallu al aniciar sesión!", + "Please try again later, or try another account.": "Volvi tentalo dempués o prueba con otra cuenta, por favor.", + "Logout": "Zarrar sesión", + "Login using browser": "Aniciar sesión col restolador", + "Please login using your Deezer account:": "Usa la to cuenta de Deezer…", + "...or paste your ARL/Token below:": "…o apiega la ARL/pase embaxo:", + "ARL/Token": "ARL/Pase", + "Login": "Aniciar sesión", + "By using this program, you disagree with Deezer's ToS.": "Col usu d'esti programa refugues los Términos del Serviciu de Deezer.", + "Only in Electron version!": "¡Namás na versión d'Electron!", + "Search results for:": "Resultaos pa la busca de:", + "Error loading data!": "¡Hebo un fallu al cargar los datos!", + "Try again later!": "¡Volvi tentalo dempués!", + "Search": "Buscar", + "Streaming Quality": "Calidá de les tresmisiones", + "Download Quality": "Calidá de les descargues", + "Downloads Directory": "Direutoriu de les descargues", + "Simultaneous downloads": "Descargues simultánees", + "Always show download confirm dialog before downloading.": "Amosar siempres el diálogu de confirmación de les descargues enantes de baxar.", + "Show download dialog": "Amosar el diálogu de descarga", + "Create folders for artists": "Crear carpetes pa los artistes", + "Create folders for albums": "Crear carpetes pa los álbumes", + "Download lyrics": "Baxar les lletres", "Variables": "Variables", - "UI": "UI", - "Show autocomplete in search": "Show autocomplete in search", - "Integrations": "Integrations", - "This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.", - "Log track listens to Deezer": "Log track listens to Deezer", - "Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.", - "Login with LastFM": "Login with LastFM", - "Disconnect LastFM": "Disconnect LastFM", - "Requires restart to apply!": "Requires restart to apply!", - "Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!", - "Discord Rich Presence": "Discord Rich Presence", - "Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!", - "Discord Join Button": "Discord Join Button", - "Other": "Other", - "Minimize to tray": "Minimize to tray", - "Don't minimize to tray": "Don't minimize to tray", - "Close on exit": "Close on exit", - "Settings saved!": "Settings saved!", - "Available only in Electron version!": "Available only in Electron version!", - "Crossfade (ms)": "Crossfade (ms)", - "Select primary color": "Select primary color", - "Light theme": "Light theme", - "Create folders for playlists": "Create folders for playlists", - "About": "About", - "Links:": "Links:", - "Telegram Releases": "Telegram Releases", - "Telegram Group": "Telegram Group", + "UI": "IU", + "Show autocomplete in search": "Amosar el completáu automáticu na busca", + "Integrations": "Integraciones", + "This allows listening history, flow and recommendations to work properly.": "Esto permite que l'historial, fluxu y recomendaciones d'escuches funciones afayadizamente.", + "Log track listens to Deezer": "Rexistrar les pistes sentíes en Deezer", + "Connect your LastFM account to allow scrobbling.": "Conecta la to cuenta de LastFM pa permitir la sincronización de pistes.", + "Login with LastFM": "Aniciar sesión en LastFM", + "Disconnect LastFM": "Desconectase de LastFM", + "Requires restart to apply!": "¡Rique'l reaniciu p'aplicar!", + "Enable Discord Rich Presence, requires restart to toggle!": "Activa la presencia arriquecida de de Discord. ¡Rique reaniciar l'aplicación p'alternar!", + "Discord Rich Presence": "Presencia arriquecida de Discord", + "Enable Discord join button for syncing tracks, requires restart to toggle!": "Activa'l botón de xunión de Discord pa sincronizar pistes. ¡Rique reaniciar l'aplicación p'alternar!", + "Discord Join Button": "Botón de xunión de Discord", + "Other": "Otres opciones", + "Minimize to tray": "Minimizar a la bandexa", + "Don't minimize to tray": "Nun minimiza a la bandexa", + "Close on exit": "Zarrar al colar", + "Settings saved!": "¡Guardáronse los axustes!", + "Available only in Electron version!": "¡Namás disponible na versión d'Electron!", + "Crossfade (ms)": "Transición (ms)", + "Select primary color": "Esbillar el color primariu", + "Light theme": "Estilu claru", + "Create folders for playlists": "Crear carpetes pa les llistes", + "About": "Tocante a", + "Links:": "Enllaces:", + "Telegram Releases": "Llanzamientos en Telegram", + "Telegram Group": "Grupu de Telegram", "Discord": "Discord", - "Telegram Android Group": "Telegram Android Group", - "Credits:": "Credits:", - "Agree": "Agree", - "Dismiss": "Dismiss", - "Added to playlist!": "Added to playlist!", - "Added to library!": "Added to library!", - "Removed from library!": "Removed from library!", - "Removed from playlist!": "Removed from playlist!", - "Playlist deleted!": "Playlist deleted!", - "Delete": "Delete", - "Are you sure you want to delete this playlist?": "Are you sure you want to delete this playlist?", - "Force white tray icon": "Force white tray icon", - "Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Force default (white) tray icon if theme incorrectly detected. Requires restart.", - "Share": "Share", - "Settings quality": "Settings quality", - "Content language": "Content language", - "Content country": "Content country", - "Website": "Website", - "Visit website": "Visit website", - "New update available:": "New update available:" + "Telegram Android Group": "Grupu d'Android en Telegram", + "Credits:": "Creitos:", + "Agree": "Acepto", + "Dismiss": "Escartar", + "Added to playlist!": "¡Amestóse a la llista!", + "Added to library!": "¡Amestóse a la biblioteca!", + "Removed from library!": "¡Quitóse de la biblioteca!", + "Removed from playlist!": "¡Quitóse de la llista!", + "Playlist deleted!": "¡Desanicióse la llista!", + "Delete": "Desaniciar", + "Are you sure you want to delete this playlist?": "¿De xuru que quies desaniciar esta llista?", + "Force white tray icon": "Forciar l'iconu de la bandexa blancu", + "Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Forcia l'iconu (blancu) predetermináu de la bandexa si nun se detecta correutamente l'estilu. Rique'l reaniciu.", + "Share": "Compartir", + "Settings quality": "Axustes de la calidá", + "Content language": "Llingua del conteníu", + "Content country": "País del conteníu", + "Website": "Sitiu web", + "Visit website": "Visitar el sitiu web", + "New update available:": "Anovamientu disponible:", + "Shuffle": "Al debalu", + "Download album cover": "Baxar la portada de los álbumes", + "Art Resolution": "Resolución", + "Public": "Pública", + "Private": "Privada", + "Collaborative": "En comuña", + "Edit playlist": "Edición d'una llista", + "Save": "Guardar", + "Edit": "Editar", + "Importer": "Importador", + "Enter URL": "Introduz una URL", + "Currently only Spotify is supported and limited to 100 tracks.": "Anguaño namás se sofita Spotify y con una llende de 100 pistes.", + "Import into playlist": "Importar a una llista", + "Keep sidebar open": "Caltner la barra llateral abierta", + "WARNING: Might require reload to work properly!": "ALVERTENCIA: ¡Reanicia l'aplicación pa que funcione afayadizamente!", + "An error occured, URL might be invalid or unsupported.": "Asocedió un fallo, quiciabes la URL nun seya válida o nun se sofite." } \ No newline at end of file diff --git a/app/client/src/locales/cs.json b/app/client/src/locales/cs.json index 45bd0e4..fbe32f3 100644 --- a/app/client/src/locales/cs.json +++ b/app/client/src/locales/cs.json @@ -137,5 +137,21 @@ "Content country": "Content country", "Website": "Website", "Visit website": "Visit website", - "New update available:": "New update available:" + "New update available:": "New update available:", + "Shuffle": "Shuffle", + "Download album cover": "Download album cover", + "Art Resolution": "Art Resolution", + "Public": "Public", + "Private": "Private", + "Collaborative": "Collaborative", + "Edit playlist": "Edit playlist", + "Save": "Save", + "Edit": "Edit", + "Importer": "Importer", + "Enter URL": "Enter URL", + "Currently only Spotify is supported and limited to 100 tracks.": "Currently only Spotify is supported and limited to 100 tracks.", + "Import into playlist": "Import into playlist", + "Keep sidebar open": "Keep sidebar open", + "WARNING: Might require reload to work properly!": "WARNING: Might require reload to work properly!", + "An error occured, URL might be invalid or unsupported.": "An error occured, URL might be invalid or unsupported." } \ No newline at end of file diff --git a/app/client/src/locales/de.json b/app/client/src/locales/de.json index ef744cd..5a12b8a 100644 --- a/app/client/src/locales/de.json +++ b/app/client/src/locales/de.json @@ -1,5 +1,5 @@ { - "Home": "Start", + "Home": "Startseite", "Browse": "Durchsuchen", "Library": "Mediathek", "Tracks": "Songs", @@ -9,7 +9,7 @@ "More": "Mehr", "Settings": "Einstellungen", "Downloads": "Downloads", - "Search or paste Deezer URL. Use / to quickly focus.": "Suche oder füge eine Deezer URL ein. Benutze \"/\" um schnell zu fokussieren.", + "Search or paste Deezer URL. Use / to quickly focus.": "Suchen oder Deezer URL einfügen. Benutze \"/\", um schnell zu fokussieren.", "Play": "Wiedergeben", "Add to library": "Zur Mediathek hinzufügen", "Download": "Download", @@ -27,7 +27,7 @@ "Sort by": "Sortieren nach", "Date Added": "Hinzugefügt am", "Name (A-Z)": "Name (A-Z)", - "Artist (A-Z)": "Künstler*innen (A-Z)", + "Artist (A-Z)": "Künstler*in (A-Z)", "Album (A-Z)": "Album (A-Z)", "Error loading lyrics or lyrics not found!": "Fehler beim Laden der Songtexte bzw. Songtexte nicht gefunden!", "Create playlist": "Playlist erstellen", @@ -54,7 +54,7 @@ "Downloaded": "Heruntergeladen", "Queue": "Wiedergabeliste", "Total": "Gesamt", - "Stop": "Stop", + "Stop": "Stopp", "Start": "Start", "Show folder": "Ordner anzeigen", "Clear queue": "Warteschleife löschen", @@ -66,12 +66,12 @@ "Explicit": "Explizit", "Source": "Quelle", "ID": "ID", - "Error logging in!": "Fehler beim einloggen!", + "Error logging in!": "Fehler beim Einloggen!", "Please try again later, or try another account.": "Bitte versuche es später noch einmal oder versuche es mit einem anderen Konto.", "Logout": "Abmelden", "Login using browser": "Anmeldung über Browser", "Please login using your Deezer account:": "Bitte melde dich mit deinem Deezer-Konto an:", - "...or paste your ARL/Token below:": "...oder füge dein ARL/Token unten ein:", + "...or paste your ARL/Token below:": "...oder füge deine ARL/deinen Token unten ein:", "ARL/Token": "ARL/Token", "Login": "Anmeldung", "By using this program, you disagree with Deezer's ToS.": "Durch die Verwendung dieses Programms lehnst du die Nutzungsbedingungen von Deezer ab.", @@ -88,24 +88,24 @@ "Show download dialog": "Download-Dialog anzeigen", "Create folders for artists": "Ordner für Künstler*innen erstellen", "Create folders for albums": "Ordner für Alben erstellen", - "Download lyrics": "Download Lyrics", + "Download lyrics": "Lyrics herunterladen", "Variables": "Variablen", "UI": "Benutzeroberfläche", "Show autocomplete in search": "Auto-Vervollständigung in der Suche anzeigen", "Integrations": "Integrationen", "This allows listening history, flow and recommendations to work properly.": "Dies ermöglicht, dass der Wiedergabeverlauf, Flow und Empfehlungen korrekt funktionieren.", - "Log track listens to Deezer": "Prokotolliere gehörte Titel auf Deezer", + "Log track listens to Deezer": "Prokotolliere gehörte Songs auf Deezer", "Connect your LastFM account to allow scrobbling.": "Verbinde dein LastFM-Konto, um das Scrobbling zu erlauben.", "Login with LastFM": "Anmelden mit LastFM", - "Disconnect LastFM": "Disconnect LastFM", + "Disconnect LastFM": "LastFM trennen", "Requires restart to apply!": "Erfordert einen Neustart der App!", "Enable Discord Rich Presence, requires restart to toggle!": "Discord Rich Presence aktivieren, erfordert einen Neustart zum Umschalten!", "Discord Rich Presence": "Discord Rich Presence", "Enable Discord join button for syncing tracks, requires restart to toggle!": "Aktiviere Discord Join für die Synchronisierung von Titel, benötigt einen Neustart zum Umschalten!", "Discord Join Button": "Discord Join Button", "Other": "Andere", - "Minimize to tray": "In Statusleiste minimieren", - "Don't minimize to tray": "Nicht in Statusleiste minimieren", + "Minimize to tray": "In die Statusleiste minimieren", + "Don't minimize to tray": "Nicht in die Statusleiste minimieren", "Close on exit": "Beim Beenden schließen", "Settings saved!": "Einstellungen gespeichert!", "Available only in Electron version!": "Nur in der Electron-Version verfügbar!", @@ -116,14 +116,14 @@ "About": "Über", "Links:": "Links:", "Telegram Releases": "Telegram Veröffentlichungen", - "Telegram Group": "Telegram Gruppe", + "Telegram Group": "Telegram-Gruppe", "Discord": "Discord", "Telegram Android Group": "Telegram Android-Gruppe", "Credits:": "Credits:", "Agree": "Einverstanden", "Dismiss": "Verwerfen", "Added to playlist!": "Zur Playlist hinzugefügt!", - "Added to library!": "Zur Mediathek hinzufügt!", + "Added to library!": "Zur Mediathek hinzugefügt!", "Removed from library!": "Aus der Mediathek entfernt!", "Removed from playlist!": "Aus der Playlist entfernt!", "Playlist deleted!": "Playlist gelöscht!", @@ -134,8 +134,24 @@ "Share": "Teilen", "Settings quality": "Audioqualität-Einstellungen", "Content language": "Sprache der Inhalte", - "Content country": "Land des Inhalts", + "Content country": "Land der Inhalte", "Website": "Webseite", "Visit website": "Webseite besuchen", - "New update available:": "Neues Update verfügbar:" + "New update available:": "Neues Update verfügbar:", + "Shuffle": "Zufällige Wiedergabe", + "Download album cover": "Albumcover herunterladen", + "Art Resolution": "Auflösung der Albumcover", + "Public": "Öffentlich", + "Private": "Privat", + "Collaborative": "Zusammen", + "Edit playlist": "Playlist bearbeiten", + "Save": "Speichern", + "Edit": "Bearbeiten", + "Importer": "Importer", + "Enter URL": "Enter URL", + "Currently only Spotify is supported and limited to 100 tracks.": "Currently only Spotify is supported and limited to 100 tracks.", + "Import into playlist": "Import into playlist", + "Keep sidebar open": "Keep sidebar open", + "WARNING: Might require reload to work properly!": "WARNING: Might require reload to work properly!", + "An error occured, URL might be invalid or unsupported.": "An error occured, URL might be invalid or unsupported." } \ No newline at end of file diff --git a/app/client/src/locales/el.json b/app/client/src/locales/el.json index 51785e9..6f6429f 100644 --- a/app/client/src/locales/el.json +++ b/app/client/src/locales/el.json @@ -137,5 +137,21 @@ "Content country": "Χώρα περιεχομένου", "Website": "Ιστοσελίδα", "Visit website": "Μετάβαση στην Ιστοσελίδα", - "New update available:": "Διαθέσιμη νέα ενημέρωση:" + "New update available:": "Διαθέσιμη νέα ενημέρωση:", + "Shuffle": "Ανάμιξη", + "Download album cover": "Λήψη εξώφυλλου άλμπουμ", + "Art Resolution": "Ανάλυση εξώφυλλου", + "Public": "Δημόσιο", + "Private": "Ιδιωτικό", + "Collaborative": "Συνεργατικό", + "Edit playlist": "Επεξεργασία λίστας αναπαραγωγής", + "Save": "Αποθήκευση", + "Edit": "Επεξεργασία", + "Importer": "Importer", + "Enter URL": "Enter URL", + "Currently only Spotify is supported and limited to 100 tracks.": "Currently only Spotify is supported and limited to 100 tracks.", + "Import into playlist": "Import into playlist", + "Keep sidebar open": "Keep sidebar open", + "WARNING: Might require reload to work properly!": "WARNING: Might require reload to work properly!", + "An error occured, URL might be invalid or unsupported.": "An error occured, URL might be invalid or unsupported." } \ No newline at end of file diff --git a/app/client/src/locales/es.json b/app/client/src/locales/es.json index bbd70fe..154b565 100644 --- a/app/client/src/locales/es.json +++ b/app/client/src/locales/es.json @@ -137,5 +137,21 @@ "Content country": "País del contenido", "Website": "Sitio Web", "Visit website": "Visita la página web", - "New update available:": "Nueva actualización disponible:" + "New update available:": "Nueva actualización disponible:", + "Shuffle": "Aleatorio", + "Download album cover": "Descargar portada del álbum", + "Art Resolution": "Resolución de Arte", + "Public": "Público", + "Private": "Privado", + "Collaborative": "Colaborativo", + "Edit playlist": "Editar lista de reproducción", + "Save": "Guardar", + "Edit": "Editar", + "Importer": "Importador", + "Enter URL": "Introducir URL", + "Currently only Spotify is supported and limited to 100 tracks.": "Actualmente solo Spotify está soportado y limitado a 100 pistas.", + "Import into playlist": "Importar lista de reproducción", + "Keep sidebar open": "Mantener barra lateral abierta", + "WARNING: Might require reload to work properly!": "ADVERTENCIA: ¡Puede requerir recarga para trabajar correctamente!", + "An error occured, URL might be invalid or unsupported.": "Ocurrió un error, la URL es invalida o no es soportada." } \ No newline at end of file diff --git a/app/client/src/locales/fa.json b/app/client/src/locales/fa.json index 45bd0e4..fbe32f3 100644 --- a/app/client/src/locales/fa.json +++ b/app/client/src/locales/fa.json @@ -137,5 +137,21 @@ "Content country": "Content country", "Website": "Website", "Visit website": "Visit website", - "New update available:": "New update available:" + "New update available:": "New update available:", + "Shuffle": "Shuffle", + "Download album cover": "Download album cover", + "Art Resolution": "Art Resolution", + "Public": "Public", + "Private": "Private", + "Collaborative": "Collaborative", + "Edit playlist": "Edit playlist", + "Save": "Save", + "Edit": "Edit", + "Importer": "Importer", + "Enter URL": "Enter URL", + "Currently only Spotify is supported and limited to 100 tracks.": "Currently only Spotify is supported and limited to 100 tracks.", + "Import into playlist": "Import into playlist", + "Keep sidebar open": "Keep sidebar open", + "WARNING: Might require reload to work properly!": "WARNING: Might require reload to work properly!", + "An error occured, URL might be invalid or unsupported.": "An error occured, URL might be invalid or unsupported." } \ No newline at end of file diff --git a/app/client/src/locales/fil.json b/app/client/src/locales/fil.json index 3299455..07014a2 100644 --- a/app/client/src/locales/fil.json +++ b/app/client/src/locales/fil.json @@ -137,5 +137,21 @@ "Content country": "Bansa ng nilalaman", "Website": "Website", "Visit website": "Bisitahin ang website", - "New update available:": "May bagong update na:" + "New update available:": "May bagong update na:", + "Shuffle": "Paghaluin", + "Download album cover": "Download album cover", + "Art Resolution": "Art Resolution", + "Public": "Public", + "Private": "Private", + "Collaborative": "Collaborative", + "Edit playlist": "Edit playlist", + "Save": "Save", + "Edit": "Edit", + "Importer": "Importer", + "Enter URL": "Enter URL", + "Currently only Spotify is supported and limited to 100 tracks.": "Currently only Spotify is supported and limited to 100 tracks.", + "Import into playlist": "Import into playlist", + "Keep sidebar open": "Keep sidebar open", + "WARNING: Might require reload to work properly!": "WARNING: Might require reload to work properly!", + "An error occured, URL might be invalid or unsupported.": "An error occured, URL might be invalid or unsupported." } \ No newline at end of file diff --git a/app/client/src/locales/fr.json b/app/client/src/locales/fr.json index b579559..ebe036e 100644 --- a/app/client/src/locales/fr.json +++ b/app/client/src/locales/fr.json @@ -137,5 +137,21 @@ "Content country": "Pays du contenu", "Website": "Site internet", "Visit website": "Visiter le site internet", - "New update available:": "Nouvelle mise à jour disponible :" + "New update available:": "Nouvelle mise à jour disponible :", + "Shuffle": "Mode aléatoire", + "Download album cover": "Télécharger la pochette de l'album", + "Art Resolution": "Résolution", + "Public": "Publique", + "Private": "Privée", + "Collaborative": "Collaborative", + "Edit playlist": "Editer la playlist", + "Save": "Enregistrer", + "Edit": "Éditer", + "Importer": "Importer", + "Enter URL": "Entrer l'URL", + "Currently only Spotify is supported and limited to 100 tracks.": "Actuellement, seul Spotify est pris en charge et limité à 100 titres.", + "Import into playlist": "Importer dans la playlist", + "Keep sidebar open": "Garder le panneau latéral ouvert", + "WARNING: Might require reload to work properly!": "AVERTISSEMENT : Il peut être nécessaire de recharger pour fonctionner correctement !", + "An error occured, URL might be invalid or unsupported.": "Une erreur est survenue, l'URL est peut-être invalide ou non prise en charge." } \ No newline at end of file diff --git a/app/client/src/locales/he.json b/app/client/src/locales/he.json index 45bd0e4..fbe32f3 100644 --- a/app/client/src/locales/he.json +++ b/app/client/src/locales/he.json @@ -137,5 +137,21 @@ "Content country": "Content country", "Website": "Website", "Visit website": "Visit website", - "New update available:": "New update available:" + "New update available:": "New update available:", + "Shuffle": "Shuffle", + "Download album cover": "Download album cover", + "Art Resolution": "Art Resolution", + "Public": "Public", + "Private": "Private", + "Collaborative": "Collaborative", + "Edit playlist": "Edit playlist", + "Save": "Save", + "Edit": "Edit", + "Importer": "Importer", + "Enter URL": "Enter URL", + "Currently only Spotify is supported and limited to 100 tracks.": "Currently only Spotify is supported and limited to 100 tracks.", + "Import into playlist": "Import into playlist", + "Keep sidebar open": "Keep sidebar open", + "WARNING: Might require reload to work properly!": "WARNING: Might require reload to work properly!", + "An error occured, URL might be invalid or unsupported.": "An error occured, URL might be invalid or unsupported." } \ No newline at end of file diff --git a/app/client/src/locales/hi.json b/app/client/src/locales/hi.json index 45bd0e4..fbe32f3 100644 --- a/app/client/src/locales/hi.json +++ b/app/client/src/locales/hi.json @@ -137,5 +137,21 @@ "Content country": "Content country", "Website": "Website", "Visit website": "Visit website", - "New update available:": "New update available:" + "New update available:": "New update available:", + "Shuffle": "Shuffle", + "Download album cover": "Download album cover", + "Art Resolution": "Art Resolution", + "Public": "Public", + "Private": "Private", + "Collaborative": "Collaborative", + "Edit playlist": "Edit playlist", + "Save": "Save", + "Edit": "Edit", + "Importer": "Importer", + "Enter URL": "Enter URL", + "Currently only Spotify is supported and limited to 100 tracks.": "Currently only Spotify is supported and limited to 100 tracks.", + "Import into playlist": "Import into playlist", + "Keep sidebar open": "Keep sidebar open", + "WARNING: Might require reload to work properly!": "WARNING: Might require reload to work properly!", + "An error occured, URL might be invalid or unsupported.": "An error occured, URL might be invalid or unsupported." } \ No newline at end of file diff --git a/app/client/src/locales/hr.json b/app/client/src/locales/hr.json index 0b0b7c3..57fb498 100644 --- a/app/client/src/locales/hr.json +++ b/app/client/src/locales/hr.json @@ -137,5 +137,21 @@ "Content country": "Zemlja sadržaja", "Website": "Web stranica", "Visit website": "Posjeti web-stranicu", - "New update available:": "Dostupno je novo ažuriranje:" + "New update available:": "Dostupno je novo ažuriranje:", + "Shuffle": "Nasumično", + "Download album cover": "Skini naslovnicu albuma", + "Art Resolution": "Rezolucija naslovnice", + "Public": "Javno", + "Private": "Privatno", + "Collaborative": "Suradnja", + "Edit playlist": "Uredi popis za reprodukciju", + "Save": "Spremi", + "Edit": "Uredi", + "Importer": "Uvoznik", + "Enter URL": "Unesite URL", + "Currently only Spotify is supported and limited to 100 tracks.": "Trenutno je podržan samo Spotify i limitiran na 100 pjesama.", + "Import into playlist": "Uvezi u popis za reprodukciju", + "Keep sidebar open": "Drži bočnu traku otvorenom", + "WARNING: Might require reload to work properly!": "UPOZORENJE: Možda će zahtijevati ponovno pokretanje da bi radilo ispravno!", + "An error occured, URL might be invalid or unsupported.": "Dogodila se pogreška, URL je neispravan ili nepodržan." } \ No newline at end of file diff --git a/app/client/src/locales/hu.json b/app/client/src/locales/hu.json index 07db971..cdb90a9 100644 --- a/app/client/src/locales/hu.json +++ b/app/client/src/locales/hu.json @@ -39,103 +39,119 @@ "Add to queue": "Hozzáadás a várólistához", "Remove from library": "Eltávolítás a könyvtárból", "Remove from playlist": "Eltávolítás a lejátszási listáról", - "Play track mix": "Play track mix", - "Go to": "Go to", - "Track Mix": "Track Mix", - "Duration": "Duration", - "Released": "Released", - "Disk": "Disk", - "albums": "albums", - "Play top": "Play top", - "Radio": "Radio", - "Show all albums": "Show all albums", + "Play track mix": "Dal Mix lejátszása", + "Go to": "Menjen", + "Track Mix": "Dal Mix", + "Duration": "Időtartam", + "Released": "Kiadva", + "Disk": "Lemez", + "albums": "albumok", + "Play top": "Legfelső lejátszása", + "Radio": "Rádió", + "Show all albums": "Összes album megjelenítése", "Show all singles": "Show all singles", - "Show more": "Show more", - "Downloaded": "Downloaded", - "Queue": "Queue", - "Total": "Total", - "Stop": "Stop", - "Start": "Start", - "Show folder": "Show folder", - "Clear queue": "Clear queue", - "Playing from": "Playing from", - "Info": "Info", + "Show more": "Több megjelenítése", + "Downloaded": "Letöltött", + "Queue": "Várólista", + "Total": "Összes", + "Stop": "Megállít", + "Start": "Elindít", + "Show folder": "Mappa megjelenítése", + "Clear queue": "Várólista kiürítése", + "Playing from": "Lejátszva", + "Info": "Infrmáció", "Lyrics": "Lyrics", - "Track number": "Track number", - "Disk number": "Disk number", + "Track number": "Dal (sor)száma", + "Disk number": "Lemez száma", "Explicit": "Explicit", - "Source": "Source", - "ID": "ID", - "Error logging in!": "Error logging in!", - "Please try again later, or try another account.": "Please try again later, or try another account.", - "Logout": "Logout", - "Login using browser": "Login using browser", - "Please login using your Deezer account:": "Please login using your Deezer account:", - "...or paste your ARL/Token below:": "...or paste your ARL/Token below:", + "Source": "Forrás", + "ID": "Azonosító", + "Error logging in!": "Hiba történt bejelentkezéskor!", + "Please try again later, or try another account.": "Kérjük próbálja újra, vagy próbáljon egy másik fiókot.", + "Logout": "Kijelentkezés", + "Login using browser": "Belépés böngészővel", + "Please login using your Deezer account:": "Kérjük lépjen be Deezer fiókjával:", + "...or paste your ARL/Token below:": "... vagy illessze be az ARL/Token-t:", "ARL/Token": "ARL/Token", - "Login": "Login", - "By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.", + "Login": "Belépés", + "By using this program, you disagree with Deezer's ToS.": "Szoftwerünk használatával elutasítja a Deezer általános felhasználási feltételeit.", "Only in Electron version!": "Only in Electron version!", - "Search results for:": "Search results for:", - "Error loading data!": "Error loading data!", - "Try again later!": "Try again later!", - "Search": "Search", - "Streaming Quality": "Streaming Quality", - "Download Quality": "Download Quality", - "Downloads Directory": "Downloads Directory", - "Simultaneous downloads": "Simultaneous downloads", - "Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.", - "Show download dialog": "Show download dialog", - "Create folders for artists": "Create folders for artists", - "Create folders for albums": "Create folders for albums", - "Download lyrics": "Download lyrics", - "Variables": "Variables", - "UI": "UI", + "Search results for:": "Találatok:", + "Error loading data!": "Hiba az adatok betöltése közben!", + "Try again later!": "Kérjük próbálja meg később!", + "Search": "Keresés", + "Streaming Quality": "Streaming minősége", + "Download Quality": "Letöltés minősége", + "Downloads Directory": "Letöltések helye", + "Simultaneous downloads": "Egyidejű letöltések", + "Always show download confirm dialog before downloading.": "Mindig mutassa a letöltés elfogadása kérdést letöltések előtt.", + "Show download dialog": "Letöltés párbeszédpanel mutatása", + "Create folders for artists": "Mappa létrehozása az előadóhoz", + "Create folders for albums": "Mappa létrehozása az albumhoz", + "Download lyrics": "Lyrics letöltése", + "Variables": "Változók", + "UI": "Kezelőfelület", "Show autocomplete in search": "Show autocomplete in search", - "Integrations": "Integrations", - "This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.", - "Log track listens to Deezer": "Log track listens to Deezer", - "Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.", - "Login with LastFM": "Login with LastFM", - "Disconnect LastFM": "Disconnect LastFM", - "Requires restart to apply!": "Requires restart to apply!", - "Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!", + "Integrations": "Integrációk", + "This allows listening history, flow and recommendations to work properly.": "Ezzel engedélyezi az előzményeket és, hogy a Flow illetve az ajánlások működjenek.", + "Log track listens to Deezer": "Dal előzmények rögzítése a Deezer számára", + "Connect your LastFM account to allow scrobbling.": "Csatlakozással LastFM fiókját, hogy engedélyezze az ajánlatokat.", + "Login with LastFM": "Belépés LastFM fiókkal", + "Disconnect LastFM": "LastFM fiók eltávolítása", + "Requires restart to apply!": "Újraindítás szükséges!", + "Enable Discord Rich Presence, requires restart to toggle!": "Discord Rich Presence engedélyezése, újraindítás szükséges!", "Discord Rich Presence": "Discord Rich Presence", - "Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!", - "Discord Join Button": "Discord Join Button", - "Other": "Other", - "Minimize to tray": "Minimize to tray", - "Don't minimize to tray": "Don't minimize to tray", - "Close on exit": "Close on exit", - "Settings saved!": "Settings saved!", + "Enable Discord join button for syncing tracks, requires restart to toggle!": "Discord csatlakozás gomb engedélyezése dalok szinkronizálásához, újraindítás szükséges!", + "Discord Join Button": "Discord csatlakozás gomb", + "Other": "Egyebek", + "Minimize to tray": "Tálcára letétel", + "Don't minimize to tray": "Ne tegye le a tálcára", + "Close on exit": "Kilépés bezáráskor", + "Settings saved!": "Beállítások elmentve!", "Available only in Electron version!": "Available only in Electron version!", - "Crossfade (ms)": "Crossfade (ms)", - "Select primary color": "Select primary color", - "Light theme": "Light theme", - "Create folders for playlists": "Create folders for playlists", - "About": "About", - "Links:": "Links:", - "Telegram Releases": "Telegram Releases", - "Telegram Group": "Telegram Group", + "Crossfade (ms)": "Átfedés (ms)", + "Select primary color": "Elsődleges szín kiválasztása", + "Light theme": "Világos kinézet", + "Create folders for playlists": "Mappa létrehozása a lejátszólistákhoz", + "About": "Info", + "Links:": "Linkek:", + "Telegram Releases": "Telegram Kiadások", + "Telegram Group": "Telegram csoport", "Discord": "Discord", - "Telegram Android Group": "Telegram Android Group", - "Credits:": "Credits:", - "Agree": "Agree", - "Dismiss": "Dismiss", - "Added to playlist!": "Added to playlist!", - "Added to library!": "Added to library!", - "Removed from library!": "Removed from library!", - "Removed from playlist!": "Removed from playlist!", - "Playlist deleted!": "Playlist deleted!", - "Delete": "Delete", - "Are you sure you want to delete this playlist?": "Are you sure you want to delete this playlist?", - "Force white tray icon": "Force white tray icon", - "Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Force default (white) tray icon if theme incorrectly detected. Requires restart.", - "Share": "Share", - "Settings quality": "Settings quality", - "Content language": "Content language", - "Content country": "Content country", - "Website": "Website", - "Visit website": "Visit website", - "New update available:": "New update available:" + "Telegram Android Group": "Telegram Android csoport", + "Credits:": "Köszönet:", + "Agree": "Elfogad", + "Dismiss": "Elutasít", + "Added to playlist!": "Lejátszó listához adva!", + "Added to library!": "Könyvtárból adva!", + "Removed from library!": "Eltávolítva a könyvtárból!", + "Removed from playlist!": "Eltávolítva a lejátszási listából!", + "Playlist deleted!": "Lejátszási lista törölve!", + "Delete": "Töröl", + "Are you sure you want to delete this playlist?": "Biztosan ki szeretné törölni a lejátszási listát?", + "Force white tray icon": "Fehér tálcaikon kényszerítése", + "Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Alap (fehér) tálcaikon kényszerítése ha a kinézet hibásan lett észlelve. Újraindítás szükséges.", + "Share": "Megosztás", + "Settings quality": "Minőség", + "Content language": "Tartalom nyelve", + "Content country": "Tartalom országa", + "Website": "Weblap", + "Visit website": "Weblap megnyitása", + "New update available:": "Újabb frissítés elérhető:", + "Shuffle": "Keverés", + "Download album cover": "Album borító letöltése", + "Art Resolution": "Kép felbontása", + "Public": "Nyilvános", + "Private": "Privát", + "Collaborative": "Együttműködés", + "Edit playlist": "Lejátszó lista szerkesztése", + "Save": "Mentés", + "Edit": "Szerkesztés", + "Importer": "Importer", + "Enter URL": "Enter URL", + "Currently only Spotify is supported and limited to 100 tracks.": "Currently only Spotify is supported and limited to 100 tracks.", + "Import into playlist": "Import into playlist", + "Keep sidebar open": "Keep sidebar open", + "WARNING: Might require reload to work properly!": "WARNING: Might require reload to work properly!", + "An error occured, URL might be invalid or unsupported.": "An error occured, URL might be invalid or unsupported." } \ No newline at end of file diff --git a/app/client/src/locales/id.json b/app/client/src/locales/id.json index cc6bff0..98326d2 100644 --- a/app/client/src/locales/id.json +++ b/app/client/src/locales/id.json @@ -137,5 +137,21 @@ "Content country": "Wilayah konten", "Website": "Situs", "Visit website": "Kunjungi situs web", - "New update available:": "Pembaruan tersedia:" + "New update available:": "Pembaruan tersedia:", + "Shuffle": "Shuffle", + "Download album cover": "Download album cover", + "Art Resolution": "Art Resolution", + "Public": "Public", + "Private": "Private", + "Collaborative": "Collaborative", + "Edit playlist": "Edit playlist", + "Save": "Save", + "Edit": "Edit", + "Importer": "Importer", + "Enter URL": "Enter URL", + "Currently only Spotify is supported and limited to 100 tracks.": "Currently only Spotify is supported and limited to 100 tracks.", + "Import into playlist": "Import into playlist", + "Keep sidebar open": "Keep sidebar open", + "WARNING: Might require reload to work properly!": "WARNING: Might require reload to work properly!", + "An error occured, URL might be invalid or unsupported.": "An error occured, URL might be invalid or unsupported." } \ No newline at end of file diff --git a/app/client/src/locales/it.json b/app/client/src/locales/it.json index 82ff84c..b29edc6 100644 --- a/app/client/src/locales/it.json +++ b/app/client/src/locales/it.json @@ -137,5 +137,21 @@ "Content country": "Paese dei contenuti", "Website": "Sito Web", "Visit website": "Visita il sito", - "New update available:": "Nuovo aggiornamento disponibile:" + "New update available:": "Nuovo aggiornamento disponibile:", + "Shuffle": "Riproduzione casuale", + "Download album cover": "Scarica copertina album", + "Art Resolution": "Risoluzione immagini", + "Public": "Pubblica", + "Private": "Privata", + "Collaborative": "Collaborativa", + "Edit playlist": "Modifica playlist", + "Save": "Salva", + "Edit": "Modifica", + "Importer": "Importazione", + "Enter URL": "Inserisci URL", + "Currently only Spotify is supported and limited to 100 tracks.": "Attualmente solo Spotify è supportato e limitato a 100 brani.", + "Import into playlist": "Importa nella playlist", + "Keep sidebar open": "Mantieni la barra laterale aperta", + "WARNING: Might require reload to work properly!": "ATTENZIONE: Potrebbe essere necessario ricaricare per funzionare correttamente!", + "An error occured, URL might be invalid or unsupported.": "Si è verificato un errore, l'URL potrebbe non essere valido o non supportato." } \ No newline at end of file diff --git a/app/client/src/locales/ko.json b/app/client/src/locales/ko.json index 6a0505c..8e58abe 100644 --- a/app/client/src/locales/ko.json +++ b/app/client/src/locales/ko.json @@ -137,5 +137,21 @@ "Content country": "콘텐츠 국가", "Website": "홈페이지", "Visit website": "홈페이지 방문하기", - "New update available:": "사용 가능한 업데이트가 있습니다:" + "New update available:": "사용 가능한 업데이트가 있습니다:", + "Shuffle": "Shuffle", + "Download album cover": "Download album cover", + "Art Resolution": "Art Resolution", + "Public": "Public", + "Private": "Private", + "Collaborative": "Collaborative", + "Edit playlist": "Edit playlist", + "Save": "Save", + "Edit": "Edit", + "Importer": "Importer", + "Enter URL": "Enter URL", + "Currently only Spotify is supported and limited to 100 tracks.": "Currently only Spotify is supported and limited to 100 tracks.", + "Import into playlist": "Import into playlist", + "Keep sidebar open": "Keep sidebar open", + "WARNING: Might require reload to work properly!": "WARNING: Might require reload to work properly!", + "An error occured, URL might be invalid or unsupported.": "An error occured, URL might be invalid or unsupported." } \ No newline at end of file diff --git a/app/client/src/locales/nl.json b/app/client/src/locales/nl.json index 45bd0e4..fbe32f3 100644 --- a/app/client/src/locales/nl.json +++ b/app/client/src/locales/nl.json @@ -137,5 +137,21 @@ "Content country": "Content country", "Website": "Website", "Visit website": "Visit website", - "New update available:": "New update available:" + "New update available:": "New update available:", + "Shuffle": "Shuffle", + "Download album cover": "Download album cover", + "Art Resolution": "Art Resolution", + "Public": "Public", + "Private": "Private", + "Collaborative": "Collaborative", + "Edit playlist": "Edit playlist", + "Save": "Save", + "Edit": "Edit", + "Importer": "Importer", + "Enter URL": "Enter URL", + "Currently only Spotify is supported and limited to 100 tracks.": "Currently only Spotify is supported and limited to 100 tracks.", + "Import into playlist": "Import into playlist", + "Keep sidebar open": "Keep sidebar open", + "WARNING: Might require reload to work properly!": "WARNING: Might require reload to work properly!", + "An error occured, URL might be invalid or unsupported.": "An error occured, URL might be invalid or unsupported." } \ No newline at end of file diff --git a/app/client/src/locales/pl.json b/app/client/src/locales/pl.json index ee0dc1c..b8d9ce1 100644 --- a/app/client/src/locales/pl.json +++ b/app/client/src/locales/pl.json @@ -137,5 +137,21 @@ "Content country": "Kraj treści", "Website": "Strona internetowa", "Visit website": "Odwiedź stronę internetową", - "New update available:": "Dostępna jest nowa aktualizacja:" + "New update available:": "Dostępna jest nowa aktualizacja:", + "Shuffle": "Losowo", + "Download album cover": "Pobierz okładkę albumu", + "Art Resolution": "Rozdzielczość Obrazu", + "Public": "Publiczne", + "Private": "Prywatne", + "Collaborative": "Współpraca", + "Edit playlist": "Edytuj playlistę", + "Save": "Zapisz", + "Edit": "Edytuj", + "Importer": "Importer", + "Enter URL": "Enter URL", + "Currently only Spotify is supported and limited to 100 tracks.": "Currently only Spotify is supported and limited to 100 tracks.", + "Import into playlist": "Import into playlist", + "Keep sidebar open": "Keep sidebar open", + "WARNING: Might require reload to work properly!": "WARNING: Might require reload to work properly!", + "An error occured, URL might be invalid or unsupported.": "An error occured, URL might be invalid or unsupported." } \ No newline at end of file diff --git a/app/client/src/locales/pt.json b/app/client/src/locales/pt.json index 4dc5e05..3c134ed 100644 --- a/app/client/src/locales/pt.json +++ b/app/client/src/locales/pt.json @@ -137,5 +137,21 @@ "Content country": "País do conteúdo", "Website": "Site", "Visit website": "Visite o site", - "New update available:": "Nova atualização disponível:" + "New update available:": "Nova atualização disponível:", + "Shuffle": "Aleatório", + "Download album cover": "Baixar arte do álbum", + "Art Resolution": "Resolução da Arte", + "Public": "Pública", + "Private": "Privada", + "Collaborative": "Colaborativa", + "Edit playlist": "Editar playlist", + "Save": "Salvar", + "Edit": "Editar", + "Importer": "Importador", + "Enter URL": "Digite a URL", + "Currently only Spotify is supported and limited to 100 tracks.": "Atualmente apenas o Spotify é suportado e limitado a 100 faixas.", + "Import into playlist": "Importar para playlist", + "Keep sidebar open": "Manter a barra lateral aberta", + "WARNING: Might require reload to work properly!": "AVISO: Pode ser necessário recarregar para funcionar corretamente!", + "An error occured, URL might be invalid or unsupported.": "Ocorreu um erro, a URL pode ser inválida ou não suportada." } \ No newline at end of file diff --git a/app/client/src/locales/ro.json b/app/client/src/locales/ro.json index 4c2feb7..0e4b035 100644 --- a/app/client/src/locales/ro.json +++ b/app/client/src/locales/ro.json @@ -137,5 +137,21 @@ "Content country": "Țara conținutului", "Website": "Website", "Visit website": "Vizitați site-ul web", - "New update available:": "Actualizare nouă disponibilă:" + "New update available:": "Actualizare nouă disponibilă:", + "Shuffle": "Shuffle", + "Download album cover": "Download album cover", + "Art Resolution": "Art Resolution", + "Public": "Public", + "Private": "Private", + "Collaborative": "Collaborative", + "Edit playlist": "Edit playlist", + "Save": "Save", + "Edit": "Edit", + "Importer": "Importer", + "Enter URL": "Enter URL", + "Currently only Spotify is supported and limited to 100 tracks.": "Currently only Spotify is supported and limited to 100 tracks.", + "Import into playlist": "Import into playlist", + "Keep sidebar open": "Keep sidebar open", + "WARNING: Might require reload to work properly!": "WARNING: Might require reload to work properly!", + "An error occured, URL might be invalid or unsupported.": "An error occured, URL might be invalid or unsupported." } \ No newline at end of file diff --git a/app/client/src/locales/ru.json b/app/client/src/locales/ru.json index e14ceae..ba67248 100644 --- a/app/client/src/locales/ru.json +++ b/app/client/src/locales/ru.json @@ -137,5 +137,21 @@ "Content country": "Страна контента", "Website": "Веб-сайт", "Visit website": "Посетить веб-сайт", - "New update available:": "Доступна новая версия:" + "New update available:": "Доступна новая версия:", + "Shuffle": "Перемешать", + "Download album cover": "Загрузить обложку альбома", + "Art Resolution": "Разрешение", + "Public": "Публичный", + "Private": "Приватный", + "Collaborative": "Совместное", + "Edit playlist": "Изменить плейлист", + "Save": "Сохранить", + "Edit": "Редактировать", + "Importer": "Импорт плейлистов", + "Enter URL": "Введите ссылку", + "Currently only Spotify is supported and limited to 100 tracks.": "В настоящее время поддерживается только Spotify. Не более 100 треков в плейлисте.", + "Import into playlist": "Импортировать в плейлист", + "Keep sidebar open": "Не закрывать боковое меню", + "WARNING: Might require reload to work properly!": "Внимание! Может потребоваться перезапуск для правильной работы.", + "An error occured, URL might be invalid or unsupported.": "Ошибка, URL недействителен или не поддерживается." } \ No newline at end of file diff --git a/app/client/src/locales/sk.json b/app/client/src/locales/sk.json index bc85aa7..b996555 100644 --- a/app/client/src/locales/sk.json +++ b/app/client/src/locales/sk.json @@ -137,5 +137,21 @@ "Content country": "Krajina obsahu", "Website": "Webová stránka", "Visit website": "Navštíviť webovú stránku", - "New update available:": "Nová aktualizácia k dispozícii:" + "New update available:": "Nová aktualizácia k dispozícii:", + "Shuffle": "Náhodne prehrať", + "Download album cover": "Prevziať obal albumu", + "Art Resolution": "Rozlíšenie", + "Public": "Verejné", + "Private": "Sukromné", + "Collaborative": "Spolupráca", + "Edit playlist": "Upraviť playlist", + "Save": "Uložiť", + "Edit": "Upraviť", + "Importer": "Importovať", + "Enter URL": "Zadajte URL adresu", + "Currently only Spotify is supported and limited to 100 tracks.": "Momentálne je podporované iba Spotify s limitom 100 skladieb.", + "Import into playlist": "Importovať do playlistu", + "Keep sidebar open": "Nechať bočný panel otvorený", + "WARNING: Might require reload to work properly!": "UPOZORNENIE: Môže vyžadovať obnovenie pre správnu funkčnosť!", + "An error occured, URL might be invalid or unsupported.": "Chybná alebo nepodporovaná URL adresa." } \ No newline at end of file diff --git a/app/client/src/locales/sl.json b/app/client/src/locales/sl.json index 18ee28f..24e8f97 100644 --- a/app/client/src/locales/sl.json +++ b/app/client/src/locales/sl.json @@ -137,5 +137,21 @@ "Content country": "Koda države", "Website": "Spletna stran", "Visit website": "Obišči spletno stran", - "New update available:": "Na voljo je nova posodobitev:" + "New update available:": "Na voljo je nova posodobitev:", + "Shuffle": "Naključno", + "Download album cover": "Shrani sličico albuma", + "Art Resolution": "Ločljivost sličice", + "Public": "Javno", + "Private": "Zasebno", + "Collaborative": "Sodelovalno", + "Edit playlist": "Uredi seznam predvajanja", + "Save": "Shrani", + "Edit": "Uredi", + "Importer": "Uvoznik", + "Enter URL": "Vnesite URL", + "Currently only Spotify is supported and limited to 100 tracks.": "Trenutno je podprt samo Spotify in ima omejitev 100 pesmi.", + "Import into playlist": "Uvozi na seznam predvajanja", + "Keep sidebar open": "Obdrži odprto stransko vrstico", + "WARNING: Might require reload to work properly!": "OPOZORILO: Potrebuje ponovni zagon aplikacije za učinkovanje!", + "An error occured, URL might be invalid or unsupported.": "Pojavila se je napaka, URL je lahko napačen ali nepodprt." } \ No newline at end of file diff --git a/app/client/src/locales/tr.json b/app/client/src/locales/tr.json index f7ed963..974fc3a 100644 --- a/app/client/src/locales/tr.json +++ b/app/client/src/locales/tr.json @@ -137,5 +137,21 @@ "Content country": "İçerik ülkesi", "Website": "İnternet sitesi", "Visit website": "Web sitesine git", - "New update available:": "Yeni güncelleme mevcut:" + "New update available:": "Yeni güncelleme mevcut:", + "Shuffle": "Karışık çal", + "Download album cover": "Albüm kapağını indir", + "Art Resolution": "Art Çözüm", + "Public": "Herkese Açık", + "Private": "Gizli", + "Collaborative": "Paylaşılan", + "Edit playlist": "Çalma listesini düzenle", + "Save": "Kaydet", + "Edit": "Düzenle", + "Importer": "Aktaracı", + "Enter URL": "URL girin", + "Currently only Spotify is supported and limited to 100 tracks.": "Şimdilik sadece Spotify destekleniyor ve 100 parça sınırı mevcut.", + "Import into playlist": "Çalma listesine aktar", + "Keep sidebar open": "Kenar çubuğu açık kalsın", + "WARNING: Might require reload to work properly!": "DİKKAT: Düzgün çalışması için yeniden yükleme gerekebilir!", + "An error occured, URL might be invalid or unsupported.": "Bir hata oluştu, URL geçersiz veya desteklenmiyor olabilir." } \ No newline at end of file diff --git a/app/client/src/locales/uk.json b/app/client/src/locales/uk.json index 62153dd..3d08f48 100644 --- a/app/client/src/locales/uk.json +++ b/app/client/src/locales/uk.json @@ -137,5 +137,21 @@ "Content country": "Країна контенту", "Website": "Веб-сторінка", "Visit website": "Відвідати веб-сторінку", - "New update available:": "Доступне оновлення:" + "New update available:": "Доступне оновлення:", + "Shuffle": "Перемішати", + "Download album cover": "Завантажити обкладинку альбому", + "Art Resolution": "Art Resolution", + "Public": "Публічний", + "Private": "Приватний", + "Collaborative": "Collaborative", + "Edit playlist": "Редагувати плейлист", + "Save": "Зберегти", + "Edit": "Редагувати", + "Importer": "Importer", + "Enter URL": "Enter URL", + "Currently only Spotify is supported and limited to 100 tracks.": "Currently only Spotify is supported and limited to 100 tracks.", + "Import into playlist": "Import into playlist", + "Keep sidebar open": "Keep sidebar open", + "WARNING: Might require reload to work properly!": "WARNING: Might require reload to work properly!", + "An error occured, URL might be invalid or unsupported.": "An error occured, URL might be invalid or unsupported." } \ No newline at end of file diff --git a/app/client/src/locales/ur.json b/app/client/src/locales/ur.json index 45bd0e4..fbe32f3 100644 --- a/app/client/src/locales/ur.json +++ b/app/client/src/locales/ur.json @@ -137,5 +137,21 @@ "Content country": "Content country", "Website": "Website", "Visit website": "Visit website", - "New update available:": "New update available:" + "New update available:": "New update available:", + "Shuffle": "Shuffle", + "Download album cover": "Download album cover", + "Art Resolution": "Art Resolution", + "Public": "Public", + "Private": "Private", + "Collaborative": "Collaborative", + "Edit playlist": "Edit playlist", + "Save": "Save", + "Edit": "Edit", + "Importer": "Importer", + "Enter URL": "Enter URL", + "Currently only Spotify is supported and limited to 100 tracks.": "Currently only Spotify is supported and limited to 100 tracks.", + "Import into playlist": "Import into playlist", + "Keep sidebar open": "Keep sidebar open", + "WARNING: Might require reload to work properly!": "WARNING: Might require reload to work properly!", + "An error occured, URL might be invalid or unsupported.": "An error occured, URL might be invalid or unsupported." } \ No newline at end of file diff --git a/app/client/src/locales/uwu.json b/app/client/src/locales/uwu.json index aab46e9..977b8d2 100644 --- a/app/client/src/locales/uwu.json +++ b/app/client/src/locales/uwu.json @@ -137,5 +137,21 @@ "Content country": "Content countwy", "Website": "Website", "Visit website": "Visit website", - "New update available:": "Nyew update available:" + "New update available:": "Nyew update available:", + "Shuffle": "Shuffwe", + "Download album cover": "Downwaod awbum cover", + "Art Resolution": "Awt Wesowution", + "Public": "Pubwic", + "Private": "Pwivate", + "Collaborative": "Cowabowative", + "Edit playlist": "Edit pwaywist", + "Save": "Save", + "Edit": "Edit", + "Importer": "Importer", + "Enter URL": "Enter URL", + "Currently only Spotify is supported and limited to 100 tracks.": "Currently only Spotify is supported and limited to 100 tracks.", + "Import into playlist": "Import into playlist", + "Keep sidebar open": "Keep sidebar open", + "WARNING: Might require reload to work properly!": "WARNING: Might require reload to work properly!", + "An error occured, URL might be invalid or unsupported.": "An error occured, URL might be invalid or unsupported." } \ No newline at end of file diff --git a/app/client/src/locales/vi.json b/app/client/src/locales/vi.json index 932d53d..afd3e85 100644 --- a/app/client/src/locales/vi.json +++ b/app/client/src/locales/vi.json @@ -137,5 +137,21 @@ "Content country": "Quốc gia của nội dung", "Website": "Trang web", "Visit website": "Truy cập trang web", - "New update available:": "Có bản cập nhật mới:" + "New update available:": "Có bản cập nhật mới:", + "Shuffle": "Trộn", + "Download album cover": "Tải xuống ảnh bìa album", + "Art Resolution": "Độ Phân Giải", + "Public": "Công khai", + "Private": "Riêng tư", + "Collaborative": "Hợp tác", + "Edit playlist": "Chỉnh sửa danh sách phát", + "Save": "Lưu", + "Edit": "Chỉnh sửa", + "Importer": "Công cụ nhập", + "Enter URL": "Nhập URL", + "Currently only Spotify is supported and limited to 100 tracks.": "Hiện chỉ hỗ trợ Spotify và giới hạn 100 bài hát.", + "Import into playlist": "Nhập vào danh sách phát", + "Keep sidebar open": "Giữ thanh bên luôn mở", + "WARNING: Might require reload to work properly!": "CẢNH BÁO: Có thể phải tải lại để hoạt động bình thường!", + "An error occured, URL might be invalid or unsupported.": "Lỗi, URL sai hoặc không được hỗ trợ." } \ No newline at end of file diff --git a/app/client/src/main.js b/app/client/src/main.js index dd62c54..8656d69 100644 --- a/app/client/src/main.js +++ b/app/client/src/main.js @@ -614,6 +614,20 @@ new Vue({ this.importer.active = false; this.importer.done = false; }); + //Album + this.sockets.subscribe('importerAlbum', a => { + //Not downloading, got albumn + if (a) { + this.$router.push({ + path: '/album', + query: {album: JSON.stringify(a)} + }); + } + //Mark done + this.importer.error = false; + this.importer.active = false; + this.importer.done = false; + }); r(); }, diff --git a/app/client/src/views/FullscreenPlayer.vue b/app/client/src/views/FullscreenPlayer.vue index 81fee3e..67b4c6c 100644 --- a/app/client/src/views/FullscreenPlayer.vue +++ b/app/client/src/views/FullscreenPlayer.vue @@ -143,16 +143,18 @@ -
- - - -
+ + +
diff --git a/app/client/src/views/Importer.vue b/app/client/src/views/Importer.vue index 11a802c..6ff9223 100644 --- a/app/client/src/views/Importer.vue +++ b/app/client/src/views/Importer.vue @@ -23,6 +23,10 @@ {{$t("Download")}} + +
+ +

Tracks:

@@ -67,7 +71,7 @@ export default { computed: { valid() { let i = this.input || ''; - return i.startsWith('https://open.spotify.com/playlist/') && !i.includes(' '); + return (i.includes('open.spotify.com/') || i.includes('link.tospotify.com/')) && !i.includes(' '); } }, mounted() { diff --git a/app/client/src/views/Settings.vue b/app/client/src/views/Settings.vue index b098e98..e54aad2 100644 --- a/app/client/src/views/Settings.vue +++ b/app/client/src/views/Settings.vue @@ -331,6 +331,7 @@ export default { languages: [ {code: 'en', name: 'English'}, {code: 'ar', name: 'Arabic'}, + {code: 'ast', name: 'Asturian'}, {code: 'hr', name: 'Croatian'}, {code: 'fil', name: 'Filipino'}, {code: 'fr', name: 'French'}, diff --git a/app/package.json b/app/package.json index 5ef91e6..a2d750c 100644 --- a/app/package.json +++ b/app/package.json @@ -1,7 +1,7 @@ { "name": "freezer", "private": true, - "version": "1.1.14", + "version": "1.1.15", "description": "", "main": "background.js", "scripts": { diff --git a/app/src/importer.js b/app/src/importer.js index c5042b3..b88f4bc 100644 --- a/app/src/importer.js +++ b/app/src/importer.js @@ -10,19 +10,37 @@ class Importer extends EventEmitter { this.tracks = []; } - //Conver spotify URL to URI - async getSpotifyURI(inputUrl) { - let url = new URL(inputUrl); - return 'spotify' + url.pathname.replace(new RegExp('/', 'g'), ':'); + //Resolve spotify URLs to URI + async resolveSpotifyURL(url) { + let parsed = new URL(url); + //link.tospotify + if (parsed.host == 'link.tospotify.com') { + let res = await axios.get(url); + let re = new RegExp(/window\.top\.location = validate\("(.+)"\)/); + url = res.data.match(re)[1]; + } + parsed = new URL(url); + //open.spotify + if (parsed.host == 'open.spotify.com' && parsed.pathname.split('/').length >= 2) { + return 'spotify' + parsed.pathname.replace(new RegExp('/', 'g'), ':'); + } + } + + //Find album on deezer + async importSpotifyAlbum(uri) { + let spotifyData = await Spotify.getEmbedData(uri); + let upc = spotifyData.external_ids.upc; + let deezerData = await this.deezer.callPublicApi('album', 'upc:' + upc); + if (deezerData && deezerData.id) + return deezerData; } //Import spotify playlist - async importSpotifyPlaylist(url) { + async importSpotifyPlaylist(uri) { //Clean this.tracks = []; try { //Fetch - let uri = await this.getSpotifyURI(url); let spotifyData = await Spotify.getEmbedData(uri); if (!spotifyData.tracks.items) throw Error("No items!"); diff --git a/app/src/server.js b/app/src/server.js index ca6d723..a0e868f 100644 --- a/app/src/server.js +++ b/app/src/server.js @@ -11,6 +11,7 @@ const {Track, Album, Artist, Playlist, DeezerProfile, SearchResults, DeezerLibra const {DownloadManager} = require('./downloads'); const {Integrations} = require('./integrations'); const {Importer} = require('./importer'); +const { url } = require('inspector'); let settings; let deezer; @@ -478,53 +479,94 @@ app.post('/import', async (req, res) => { //Create importer let importer = new Importer(deezer); - //Error - importer.on('error', t => { + //Resolve URI + let uri = await importer.resolveSpotifyURL(req.body.url); + if (!uri) { sockets.forEach(s => s.emit('importerError')); - }) - //New track imported - importer.on('imported', t => { - sockets.forEach(s => s.emit('importerTrack', t)); - }); - //Finished - importer.on('done', async (i) => { - //Create playlist - let playlistRaw = await deezer.callApi('playlist.create', { - description: i.description, - title: i.title, - status: 1, - songs: i.tracks.map(t => [parseInt(t.id, 10)]) - }); - //Download - if (type == 'download') { - //Fetch playlist - let data = await deezer.callApi('deezer.pagePlaylist', { - playlist_id: playlistRaw.results.toString(), - lang: settings.contentLanguage, - nb: 10000, - start: 0, - tags: true - }); - let playlist = new Playlist(data.results.DATA, data.results.SONGS); - //Enqueue - await downloadManager.addBatch({ - tracks: playlist.tracks, - quality: settings.downloadsQuality, - playlistName: i.title - }); - //Delete - await deezer.callApi('playlist.delete', {playlist_id: parseInt(playlist.id.toString(),10)}); - downloadManager.start(); + return res.status(200).end(); + } + + //Import album + if (uri.split(':')[1] == 'album') { + try { + let albumRaw = await importer.importSpotifyAlbum(uri); + //Get album from Deezer + let data = await deezer.callApi('deezer.pageAlbum', {alb_id: albumRaw.id.toString(), lang: settings.contentLanguage}); + let album = new Album(data.results.DATA, data.results.SONGS); + //Download + if (type == 'download') { + //Enqueue + await downloadManager.addBatch({ + tracks: album.tracks, + quality: settings.downloadsQuality, + }); + downloadManager.start(); + //Send empty response + sockets.forEach(s => s.emit('importerAlbum', null)); + } else { + //Send to UI + sockets.forEach(s => s.emit('importerAlbum', album)); + } + } catch (e) { + logger.error(`Import album error: ${e}`); + sockets.forEach(s => s.emit('importerError')); } + return res.status(200).end(); + } - //Send to UI - sockets.forEach(s => { - s.emit('importerDone'); + //Import playlist + if (uri.split(':')[1] == 'playlist') { + //Error + importer.on('error', () => { + sockets.forEach(s => s.emit('importerError')); + }) + //New track imported + importer.on('imported', t => { + sockets.forEach(s => s.emit('importerTrack', t)); }); - }) + //Finished + importer.on('done', async (i) => { + //Create playlist + let playlistRaw = await deezer.callApi('playlist.create', { + description: i.description, + title: i.title, + status: 1, + songs: i.tracks.map(t => [parseInt(t.id, 10)]) + }); + //Download + if (type == 'download') { + //Fetch playlist + let data = await deezer.callApi('deezer.pagePlaylist', { + playlist_id: playlistRaw.results.toString(), + lang: settings.contentLanguage, + nb: 10000, + start: 0, + tags: true + }); + let playlist = new Playlist(data.results.DATA, data.results.SONGS); + //Enqueue + await downloadManager.addBatch({ + tracks: playlist.tracks, + quality: settings.downloadsQuality, + playlistName: i.title + }); + //Delete + await deezer.callApi('playlist.delete', {playlist_id: parseInt(playlist.id.toString(),10)}); + downloadManager.start(); + } - importer.importSpotifyPlaylist(req.body.url); + //Send to UI + sockets.forEach(s => { + s.emit('importerDone'); + }); + }) + importer.importSpotifyPlaylist(uri); + return res.status(200).end(); + } + + //Not imported + sockets.forEach(s => s.emit('importerError')); res.status(200).end(); }); diff --git a/package.json b/package.json index 187b2f8..5a1d51d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "freezer", "private": true, - "version": "1.1.14", + "version": "1.1.15", "description": "", "scripts": { "pack": "electron-builder --dir",