This commit is contained in:
exttex 2020-11-20 10:20:49 +01:00
parent 0a467966cb
commit 80351d6a0b
40 changed files with 621 additions and 307 deletions

View File

@ -160,6 +160,18 @@ async function createWindow() {
setThumbarButtons();
}
//Single instance
const singleInstanceLock = app.requestSingleInstanceLock();
if (!singleInstanceLock) {
app.quit();
} else {
app.on('second-instance', () => {
if (win) {
if (!win.visible) win.show();
}
});
}
//Create window
app.on('ready', async () => {
await startServer();

View File

@ -130,7 +130,8 @@
<!-- About -->
<v-list-item link to='/about'>
<v-list-item-icon>
<v-icon>mdi-information</v-icon>
<v-icon v-if='!updateAvailable'>mdi-information</v-icon>
<v-icon color='primary' v-if='updateAvailable'>mdi-update</v-icon>
</v-list-item-icon>
<v-list-item-title>{{$t('About')}}</v-list-item-title>
</v-list-item>
@ -325,6 +326,7 @@ export default {
cancelSuggestions: false,
globalSnackbar: false,
version: null,
updateAvailable: false
}
},
methods: {
@ -413,6 +415,15 @@ export default {
maximize() {
const {ipcRenderer} = window.require('electron');
ipcRenderer.send('maximize');
},
async checkUpdate() {
try {
let res = await this.$axios('/updates');
if (res.data)
this.updateAvailable = true;
} catch (_) {
this.updateAvailable = false;
}
}
},
computed: {
@ -451,6 +462,9 @@ export default {
//Wait for volume to load
if (this.$root.loadingPromise) await this.$root.loadingPromise;
this.volume = this.$root.volume;
//Check for update
this.checkUpdate();
},
created() {
//Go to login if unauthorized

View File

@ -1,6 +1,6 @@
<template>
<div>
<v-list-item two-line @click='click' v-if='!card'>
<v-list-item two-line @click='click' v-if='!card' @contextmenu.prevent="menu = true">
<v-hover v-slot:default='{hover}'>
<v-list-item-avatar>
<v-img :src='album.art.thumb'></v-img>

View File

@ -1,6 +1,6 @@
<template>
<div>
<v-list-item @click='click' v-if='!card'>
<v-list-item @click='click' v-if='!card' @contextmenu.prevent="menu = true">
<v-list-item-avatar>
<v-img :src='artist.picture.thumb'></v-img>
</v-list-item-avatar>

View File

@ -1,7 +1,7 @@
<template>
<div>
<!-- List tile -->
<v-list-item @click='click' v-if='!card'>
<v-list-item @click='click' v-if='!card' @contextmenu.prevent="menu = true">
<v-hover v-slot:default='{hover}'>
<v-list-item-avatar>
<v-img :src='playlist.image.thumb'></v-img>

View File

@ -1,5 +1,5 @@
<template>
<v-list-item two-line @click='$emit("click")' :ripple='ripple'>
<v-list-item two-line @click='$emit("click")' :ripple='ripple' @contextmenu.prevent="menu = true">
<v-list-item-avatar>
<v-img :src='track.albumArt.thumb'></v-img>
</v-list-item-avatar>
@ -191,10 +191,10 @@ export default {
methods: {
//Add track next to queue
playNext() {
this.$root.addTrackIndex(this.track, this.$root.queueIndex+1);
this.$root.addTrackIndex(this.track, this.$root.queue.index+1);
},
addQueue() {
this.$root.queue.push(this.track);
this.$root.queue.data.push(this.track);
},
addLibrary() {
this.isLibrary = true;

View File

@ -134,5 +134,8 @@
"Share": "مشاركة",
"Settings quality": "جودة الإعدادات",
"Content language": "لغة المحتوى",
"Content country": "بلد المحتوى"
"Content country": "بلد المحتوى",
"Website": "الموقع الالكتروني",
"Visit website": "زيارة الموقع الإلكتروني",
"New update available:": "تحديث جديد متوفر:"
}

View File

@ -0,0 +1,141 @@
{
"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",
"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",
"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",
"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",
"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:"
}

View File

@ -3,7 +3,7 @@
"Browse": "Durchsuchen",
"Library": "Mediathek",
"Tracks": "Titel",
"Playlists": "Playlisten",
"Playlists": "Wiedergabelisten",
"Albums": "Alben",
"Artists": "Künstler",
"More": "Mehr",
@ -131,8 +131,11 @@
"Are you sure you want to delete this playlist?": "Bist du sicher, dass du diese Wiedergabeliste löschen willst?",
"Force white tray icon": "Erzwinge weißes Tray-Icon",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Standardsymbol (weiß) in der Kontrollleiste erzwingen, wenn Design falsch erkannt wurde. Neustart erforderlich.",
"Share": "Share",
"Settings quality": "Settings quality",
"Content language": "Content language",
"Content country": "Content country"
"Share": "Teilen",
"Settings quality": "Audioqualität-Einstellungen",
"Content language": "Sprache des Inhalts",
"Content country": "Land des Inhalts",
"Website": "Webseite",
"Visit website": "Webseite besuchen",
"New update available:": "Neues Update verfügbar:"
}

View File

@ -131,8 +131,11 @@
"Are you sure you want to delete this playlist?": "Είστε βέβαιοι ότι θέλετε να διαγράψετε την λίστα αναπαραγωγής;",
"Force white tray icon": "Εξαναγκασμός λευκού εικονιδίου",
"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"
"Share": "Κοινοποίηση",
"Settings quality": "Επιλογή ρυθμίσεων ποιότητας",
"Content language": "Γλώσσα περιεχομένου",
"Content country": "Χώρα περιεχομένου",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
}

View File

@ -134,5 +134,8 @@
"Share": "Share",
"Settings quality": "Settings quality",
"Content language": "Content language",
"Content country": "Content country"
"Content country": "Content country",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
}

View File

@ -131,8 +131,11 @@
"Are you sure you want to delete this playlist?": "¿Está seguro de querer eliminar la lista de reproducción?",
"Force white tray icon": "Forzar icono blanco en la bandeja",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Forzar icono predeterminado en bandeja (blanco) si el tema no es detectado correctamente. Requiere reinicio.",
"Share": "Share",
"Settings quality": "Settings quality",
"Content language": "Content language",
"Content country": "Content country"
"Share": "Compartir",
"Settings quality": "Ajustes de calidad",
"Content language": "Idioma del contenido",
"Content country": "País del contenido",
"Website": "Sitio Web",
"Visit website": "Visita la página web",
"New update available:": "Nueva actualización disponible:"
}

View File

@ -134,5 +134,8 @@
"Share": "Share",
"Settings quality": "Settings quality",
"Content language": "Content language",
"Content country": "Content country"
"Content country": "Content country",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
}

View File

@ -131,8 +131,11 @@
"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",
"Share": "Ibahagi",
"Settings quality": "Settings quality",
"Content language": "Content language",
"Content country": "Content country"
"Content language": "Wika ng nilalaman",
"Content country": "Bansa ng nilalaman",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
}

View File

@ -2,7 +2,7 @@
"Home": "Accueil",
"Browse": "Explorer",
"Library": "Bibliothèque",
"Tracks": "Pistes",
"Tracks": "Titres",
"Playlists": "Playlists",
"Albums": "Albums",
"Artists": "Artistes",
@ -14,7 +14,7 @@
"Add to library": "Ajouter à la bibliothèque",
"Download": "Télécharger",
"fans": "fans",
"tracks": "pistes",
"tracks": "titres",
"Quality": "Qualité",
"Estimated size:": "Durée estimée:",
"Start downloading": "Lancer le téléchargement",
@ -23,7 +23,7 @@
"Enable it in settings for history to work properly.": "Activez-le dans les paramètres pour que l'historique fonctionne correctement.",
"History": "Historique",
"Create new playlist": "Créer une nouvelle playlist",
"TRACKS": "PISTES",
"TRACKS": "TITRES",
"Sort by": "Trier par",
"Date Added": "Ajouté le",
"Name (A-Z)": "Nom (A-Z)",
@ -39,9 +39,9 @@
"Add to queue": "Ajouter à la file d'attente",
"Remove from library": "Supprimer de la bibliothèque",
"Remove from playlist": "Supprimer de la playlist",
"Play track mix": "Jouer un mélange de pistes",
"Play track mix": "Jouer un mélange de titres",
"Go to": "Aller à",
"Track Mix": "Mélange de piste",
"Track Mix": "Mélange de titres",
"Duration": "Durée",
"Released": "Publié",
"Disk": "Disque",
@ -94,14 +94,14 @@
"Show autocomplete in search": "Afficher la saisie automatique dans la recherche",
"Integrations": "Intégrations",
"This allows listening history, flow and recommendations to work properly.": "Cela permet à l'historique des titres écoutés, au flow et aux recommandations de fonctionner correctement.",
"Log track listens to Deezer": "Journaliser la piste écoutée sur Deezer",
"Log track listens to Deezer": "Journaliser sur Deezer les titres écoutés",
"Connect your LastFM account to allow scrobbling.": "Connectez votre compte LastFM pour autoriser le scrobbling.",
"Login with LastFM": "Se connecter avec LastFM",
"Disconnect LastFM": "Déconnecté LastFM",
"Requires restart to apply!": "Redémarrage nécessaire pour prendre effet !",
"Enable Discord Rich Presence, requires restart to toggle!": "Activer la présence Discord, nécessite un redémarrage pour prendre effet !",
"Discord Rich Presence": "Présence sur Discord",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Activer le bouton \"rejoindre\" sur Discord pour synchroniser les pistes, nécessite un redémarrage pour prendre effet !",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Activer le bouton \"rejoindre\" sur Discord pour synchroniser les titres, nécessite un redémarrage pour prendre effet !",
"Discord Join Button": "Bouton rejoindre sur Discord",
"Other": "Autre",
"Minimize to tray": "Réduire dans la zone de notification",
@ -131,8 +131,11 @@
"Are you sure you want to delete this playlist?": "Voulez-vous vraiment supprimer cette liste de lecture ?",
"Force white tray icon": "Forcer l'icône blanche dans la zone de notification",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Forcer l'icône blanche par défaut dans la zone de notification si le thème n'est pas correctement détecté. Nécessite un redémarrage.",
"Share": "Share",
"Settings quality": "Settings quality",
"Content language": "Content language",
"Content country": "Content country"
"Share": "Partager",
"Settings quality": "Qualité définie dans les paramètres",
"Content language": "Langue du contenu",
"Content country": "Pays du contenu",
"Website": "Site internet",
"Visit website": "Visiter le site internet",
"New update available:": "Nouvelle mise à jour disponible :"
}

View File

@ -134,5 +134,8 @@
"Share": "Share",
"Settings quality": "Settings quality",
"Content language": "Content language",
"Content country": "Content country"
"Content country": "Content country",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
}

View File

@ -134,5 +134,8 @@
"Share": "Share",
"Settings quality": "Settings quality",
"Content language": "Content language",
"Content country": "Content country"
"Content country": "Content country",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
}

View File

@ -1,138 +1,141 @@
{
"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)",
"Home": "Početna",
"Browse": "Pretraži",
"Library": "Biblioteka",
"Tracks": "Pjesme",
"Playlists": "Popisi za reprodukciju",
"Albums": "Albumi",
"Artists": "Izvođači",
"More": "Više",
"Settings": "Postavke",
"Downloads": "Preuzimanja",
"Search or paste Deezer URL. Use / to quickly focus.": "Pretražite ili kopirajte Deezer URL. Koristite \"/\" za brzo fokusiranje.",
"Play": "Reproduciraj",
"Add to library": "Dodaj u biblioteku",
"Download": "Preuzmi",
"fans": "obožavatelji",
"tracks": "pjesme",
"Quality": "Kvaliteta",
"Estimated size:": "Predviđena veličina:",
"Start downloading": "Započni preuzimanje",
"Cancel": "Poništi",
"Stream logging is disabled!": "Bilježenje strujanja je onemogućeno!",
"Enable it in settings for history to work properly.": "Uključite u postavkama kako bi povijest funkcionirala normalno.",
"History": "Povijest",
"Create new playlist": "Kreirajte novi popis za reprodukciju",
"TRACKS": "PJESME",
"Sort by": "Sortiraj po",
"Date Added": "Datum dodavanja",
"Name (A-Z)": "Naziv (A-Z)",
"Artist (A-Z)": "Izvođač (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",
"Error loading lyrics or lyrics not found!": "Pogreška kod učitavanja tekstova pjesme ili tekstovi pjesme nisu pronađeni!",
"Create playlist": "Napravi popis za reprodukciju",
"Create": "Stvori",
"Add to playlist": "Dodaj u popis za reprodukciju",
"Create new": "Stvori novi",
"Remove": "Ukloni",
"Play next": "Reproduciraj sljedeće",
"Add to queue": "Dodaj u red",
"Remove from library": "Ukloni iz biblioteke",
"Remove from playlist": "Ukloni iz popisa za reprodukciju",
"Play track mix": "Sviraj miks pjesme",
"Go to": "Idi u",
"Track Mix": "Miks pjesme",
"Duration": "Trajanje",
"Released": "Objavljeno",
"Disk": "Disk",
"albums": "albums",
"Play top": "Play top",
"albums": "albumi",
"Play top": "Sviraj najpopularnije",
"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",
"Show all albums": "Prikaži sve albume",
"Show all singles": "Pokaži sve singlove",
"Show more": "Pokaži više",
"Downloaded": "Preuzeto",
"Queue": "Red",
"Total": "Ukupno",
"Stop": "Zaustavi",
"Start": "Započni",
"Show folder": "Pokaži mapu",
"Clear queue": "Očisti red",
"Playing from": "Svira iz",
"Info": "Info",
"Lyrics": "Lyrics",
"Track number": "Track number",
"Disk number": "Disk number",
"Explicit": "Explicit",
"Source": "Source",
"Lyrics": "Tekst pjesme",
"Track number": "Broj pjesme",
"Disk number": "Broj diska",
"Explicit": "Eksplicitno",
"Source": "Izvor",
"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:",
"Error logging in!": "Pogreška prilikom prijavljivanja!",
"Please try again later, or try another account.": "Molimo pokušajte ponovno kasnije ili pokušajte sa drugim računom.",
"Logout": "Odjava",
"Login using browser": "Prijava pomoću preglednika",
"Please login using your Deezer account:": "Molimo vas da se prijavite pomoću vašeg Deezer računa:",
"...or paste your ARL/Token below:": "...ili zalijepite svoj ARL/Token ispod:",
"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",
"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",
"Login": "Prijava",
"By using this program, you disagree with Deezer's ToS.": "Korištenjem ovog programa, ne prihvaćate Deezerove Uvjete pružanja usluge.",
"Only in Electron version!": "Samo u Electron verziji!",
"Search results for:": "Rezultati pretrage za:",
"Error loading data!": "Greška pri učitavanju podataka!",
"Try again later!": "Pokušajte ponovno kasnije!",
"Search": "Pretraga",
"Streaming Quality": "Kvaliteta strujanja",
"Download Quality": "Kvaliteta preuzimanja",
"Downloads Directory": "Direktorij preuzimanja",
"Simultaneous downloads": "Istovremena preuzimanja",
"Always show download confirm dialog before downloading.": "Uvijek prikaži dijaloški okvir potvrde prije preuzimanja.",
"Show download dialog": "Prikaži dijalog za preuzimanje",
"Create folders for artists": "Napravi mape za izvođače",
"Create folders for albums": "Naprave mape za albume",
"Download lyrics": "Preuzmi tekstove pjesama",
"Variables": "Varijable",
"UI": "Korisničko sučelje",
"Show autocomplete in search": "Pokaži samodovršavanje u pretrazi",
"Integrations": "Integracije",
"This allows listening history, flow and recommendations to work properly.": "Ovo omogućava da povijest slušanja, flow i preporuke rade ispravno.",
"Log track listens to Deezer": "Bilježi slušanje pjesama prema Deezeru",
"Connect your LastFM account to allow scrobbling.": "Spojite svoj LastFM račun da biste omogućili skroblanje.",
"Login with LastFM": "Prijavite se sa LastFM",
"Disconnect LastFM": "Odspojite LastFM",
"Requires restart to apply!": "Zahtjeva ponovno pokretanje da bi se primijenilo!",
"Enable Discord Rich Presence, requires restart to toggle!": "Omogući Obogaćeno Discord Prisustvo, zahtijeva ponovno pokretanje kako biste mogli prebaciti!",
"Discord Rich Presence": "Obogaćeno Discord Prisutstvo",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Omogući gumb Discord pridruživanje za sinkroniziranje pjesama, zahtijeva ponovno pokretanje kako biste mogli prebaciti!",
"Discord Join Button": "Gumb Discord pridruživanje",
"Other": "Ostalo",
"Minimize to tray": "Umanjite na alatnu traku",
"Don't minimize to tray": "Nemoj umanjiti na alatnu traku",
"Close on exit": "Zatvori na izlasku",
"Settings saved!": "Postavke spremljene!",
"Available only in Electron version!": "Dostupno samo u Electron verziji!",
"Crossfade (ms)": "Utišavanje/pretapanje (ms)",
"Select primary color": "Izaberi primarnu boju",
"Light theme": "Svijetla tema",
"Create folders for playlists": "Stvori mape za popise za reprodukciju",
"About": "O aplikaciji",
"Links:": "Poveznice:",
"Telegram Releases": "Telegram izdanja",
"Telegram Group": "Telegram grupa",
"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"
"Telegram Android Group": "Telegram Android grupa",
"Credits:": "Zasluge:",
"Agree": "Slažem se",
"Dismiss": "Odbaci",
"Added to playlist!": "Dodano u popis za reprodukciju!",
"Added to library!": "Dodano u biblioteku!",
"Removed from library!": "Uklonjeno iz biblioteke!",
"Removed from playlist!": "Uklonjeno iz popisa za reprodukciju!",
"Playlist deleted!": "Popis za reprodukciju izbrisan!",
"Delete": "Izbriši",
"Are you sure you want to delete this playlist?": "Jeste li sigurni da želite izbrisati ovaj popis za reprodukciju?",
"Force white tray icon": "Prisili bijelu ikonu u alatnoj traci",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Prisili zadanu (bijelu) ikonu alatne trake ako je tema neispravno detektirana. Zahtijeva ponovno pokretanje.",
"Share": "Podijeli",
"Settings quality": "Postavke kvalitete",
"Content language": "Jezik sadržaja",
"Content country": "Zemlja sadržaja",
"Website": "Web stranica",
"Visit website": "Posjeti web-stranicu",
"New update available:": "Dostupno je novo ažuriranje:"
}

View File

@ -134,5 +134,8 @@
"Share": "Share",
"Settings quality": "Settings quality",
"Content language": "Content language",
"Content country": "Content country"
"Content country": "Content country",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
}

View File

@ -129,10 +129,13 @@
"Playlist deleted!": "Daftar putar dihapus!",
"Delete": "Hapus",
"Are you sure you want to delete this playlist?": "Apakah kamu yakin ingin menghapus daftar putar ini?",
"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"
"Force white tray icon": "Paksa ikon baki putih",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Paksa default (putih) ikon baki jika tema tidak terdeteksi dengan benar. Membutuhkan restart.",
"Share": "Bagikan",
"Settings quality": "Pengaturan kualitas",
"Content language": "Bahasa konten",
"Content country": "Wilayah konten",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
}

View File

@ -113,9 +113,9 @@
"Select primary color": "Seleziona colore principale",
"Light theme": "Tema chiaro",
"Create folders for playlists": "Crea cartelle per le playlist",
"About": "About",
"About": "Informazioni",
"Links:": "Link:",
"Telegram Releases": "Telegram Releases",
"Telegram Releases": "Rilasci su Telegram",
"Telegram Group": "Gruppo Telegram",
"Discord": "Discord",
"Telegram Android Group": "Gruppo Telegram Android",
@ -129,10 +129,13 @@
"Playlist deleted!": "Playlist eliminata!",
"Delete": "Elimina",
"Are you sure you want to delete this playlist?": "Sei sicuro di voler eliminare questa 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"
"Force white tray icon": "Forza icona bianca nel vassoio",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Forza l'icona predefinita (bianca) nel vassoio se il tema è stato rilevato in modo errato. Richiede il riavvio.",
"Share": "Condividi",
"Settings quality": "Qualità delle Impostazioni",
"Content language": "Lingua dei contenuti",
"Content country": "Contenuto del Paese",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
}

View File

@ -134,5 +134,8 @@
"Share": "Share",
"Settings quality": "Settings quality",
"Content language": "Content language",
"Content country": "Content country"
"Content country": "Content country",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
}

View File

@ -127,12 +127,15 @@
"Removed from library!": "Usunięto z biblioteki!",
"Removed from playlist!": "Usunięto z playlisty!",
"Playlist deleted!": "Playlista została usunięta!",
"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"
"Delete": "Usuń",
"Are you sure you want to delete this playlist?": "Na pewno chcesz usunąć tę playlistę?",
"Force white tray icon": "Wymuś białą ikonę w zasobniku",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Wymuś domyślną (białą) ikonę w zasobniku paska zadań jeśli motyw został nieprawidłowo odczytany. Wymaga ponownego uruchomienia.",
"Share": "Udostępnij",
"Settings quality": "Jakość z ustawień",
"Content language": "Język treści",
"Content country": "Kraj treści",
"Website": "Strona internetowa",
"Visit website": "Odwiedź stronę internetową",
"New update available:": "Dostępna jest nowa aktualizacja:"
}

View File

@ -9,7 +9,7 @@
"More": "Mais",
"Settings": "Configurações",
"Downloads": "Downloads",
"Search or paste Deezer URL. Use / to quickly focus.": "Procure ou cole a URL do Deezer. Use \"/\" para focar rapidamente.",
"Search or paste Deezer URL. Use / to quickly focus.": "Pesquise ou cole a URL do Deezer. Use \"/\" para focar rapidamente.",
"Play": "Reproduzir",
"Add to library": "Adicionar à biblioteca",
"Download": "Download",
@ -17,7 +17,7 @@
"tracks": "faixas",
"Quality": "Qualidade",
"Estimated size:": "Tempo estimado:",
"Start downloading": "Começar a baixar",
"Start downloading": "Iniciar download",
"Cancel": "Cancelar",
"Stream logging is disabled!": "O registro de depuração extra está desativado!",
"Enable it in settings for history to work properly.": "Habilite nas configurações para que o histórico funcione corretamente.",
@ -56,8 +56,8 @@
"Total": "Total",
"Stop": "Parar",
"Start": "Começar",
"Show folder": "Mostrar pastas",
"Clear queue": "Limpar lista",
"Show folder": "Mostrar pasta",
"Clear queue": "Limpar fila",
"Playing from": "Reproduzindo de",
"Info": "Informações",
"Lyrics": "Letra",
@ -76,10 +76,10 @@
"Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "Ao usar este programa, você discorda dos termos e condições de uso do Deezer.",
"Only in Electron version!": "Apenas na versão do Electron!",
"Search results for:": "Buscar resultados para:",
"Search results for:": "Resultado de pesquisa para:",
"Error loading data!": "Erro ao carregar dados!",
"Try again later!": "Tente novamente mais tarde!",
"Search": "Busca",
"Search": "Pesquisa",
"Streaming Quality": "Qualidade do streaming",
"Download Quality": "Qualiadade do download",
"Downloads Directory": "Pasta de Download",
@ -91,7 +91,7 @@
"Download lyrics": "Baixar letra",
"Variables": "Variáveis",
"UI": "IU",
"Show autocomplete in search": "Mostrar autocompletar na busca",
"Show autocomplete in search": "Mostrar autocompletar na pesquisa",
"Integrations": "Integrações",
"This allows listening history, flow and recommendations to work properly.": "Isto permite que o histórico de ouvidas, flow e recomendações funcionem corretamente.",
"Log track listens to Deezer": "Log de faixas ouvidas para o Deezer",
@ -131,8 +131,11 @@
"Are you sure you want to delete this playlist?": "Você tem certeza que deseja excluir esta playlist?",
"Force white tray icon": "Forçar ícone de bandeja branco",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Forçar ícone de bandeja (branco) padrão se o tema for detectado incorretamente. Requer reinicialização.",
"Share": "Share",
"Settings quality": "Settings quality",
"Content language": "Content language",
"Content country": "Content country"
"Share": "Compartilhar",
"Settings quality": "Configurações de qualidade",
"Content language": "Linguagem do conteúdo",
"Content country": "País do conteúdo",
"Website": "Site",
"Visit website": "Visite o site",
"New update available:": "Nova atualização disponível:"
}

View File

@ -110,29 +110,32 @@
"Settings saved!": "Setările au fost salvate!",
"Available only in Electron version!": "Disponibil doar în versiunea Electron!",
"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",
"Select primary color": "Selectaţi culoarea primară",
"Light theme": "Temă luminoasă",
"Create folders for playlists": "Creați foldere pentru playlist-uri",
"About": "Despre",
"Links:": "Link-uri:",
"Telegram Releases": "Lansări Telegram",
"Telegram Group": "Grup 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"
"Telegram Android Group": "Group Android Telegram",
"Credits:": "Contribuţii:",
"Agree": "Permite",
"Dismiss": "Respingeți",
"Added to playlist!": "Adăugat la playlist!",
"Added to library!": "Adăugat la bibliotecă!",
"Removed from library!": "Eliminat din bibliotecă!",
"Removed from playlist!": "Eliminat din playlist!",
"Playlist deleted!": "Playlist detectat!",
"Delete": "Ștergeți",
"Are you sure you want to delete this playlist?": "Ești sigur că dorești să ștergi acest playlist?",
"Force white tray icon": "Forțează icon alb",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Forțează icon implici (alb) dacă tema este detectată incorect. Necesită repornire a aplicației.",
"Share": "Distribuiți",
"Settings quality": "Setări Calitate",
"Content language": "Limbajul conținutului",
"Content country": "Țara conținutului",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
}

View File

@ -131,8 +131,11 @@
"Are you sure you want to delete this playlist?": "Вы точно хотите удалить этот плейлист?",
"Force white tray icon": "Белый значок в трее",
"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"
"Share": "Поделиться",
"Settings quality": "Качество настроек",
"Content language": "Язык контента",
"Content country": "Страна контента",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
}

View File

@ -17,7 +17,7 @@
"tracks": "skladieb",
"Quality": "Kvalita",
"Estimated size:": "Odhadovaná veľkosť:",
"Start downloading": "Začať sťahovať",
"Start downloading": "Spustiť sťahovanie",
"Cancel": "Zrušiť",
"Stream logging is disabled!": "Zaznamenávanie histórie pre Deezer je zakázané!",
"Enable it in settings for history to work properly.": "Povoliť v nastaveniach pre správne fungovanie histórie.",
@ -55,7 +55,7 @@
"Queue": "Poradie",
"Total": "Spolu",
"Stop": "Stop",
"Start": "Štart",
"Start": "Spustiť sťahovanie",
"Show folder": "Zobraziť priečinok",
"Clear queue": "Vyčistiť poradie",
"Playing from": "Prehráva sa",
@ -83,7 +83,7 @@
"Streaming Quality": "Kvalita streamu",
"Download Quality": "Kvalita sťahovania",
"Downloads Directory": "Priečinok sťahovania",
"Simultaneous downloads": "Simultánne sťahovanie",
"Simultaneous downloads": "Súbežné sťahovanie",
"Always show download confirm dialog before downloading.": "Pred stiahnutím vždy zobraziť dialógové okno s potvrdením stiahnutia.",
"Show download dialog": "Zobraziť dialógové okno sťahovania",
"Create folders for artists": "Vytvoriť pričinky pre umelcov",
@ -131,8 +131,11 @@
"Are you sure you want to delete this playlist?": "Naozaj chcete odstrániť tento playlist?",
"Force white tray icon": "Vynútiť bielu ikonu v lište",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Vynútiť predvolenú (bielu) ikonu v lište, ak je motív nesprávne zistený. Vyžaduje sa reštart.",
"Share": "Share",
"Settings quality": "Settings quality",
"Content language": "Content language",
"Content country": "Content country"
"Share": "Zdieľať",
"Settings quality": "Nastavenie kvality",
"Content language": "Jazyk obsahu",
"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:"
}

View File

@ -3,7 +3,7 @@
"Browse": "Gözat",
"Library": "Kütüphane",
"Tracks": "Parçalar",
"Playlists": "Oynatma listeleri",
"Playlists": "Çalma listeleri",
"Albums": "Albümler",
"Artists": "Sanatçılar",
"More": "Daha Fazla",
@ -22,7 +22,7 @@
"Stream logging is disabled!": "Akış günlüğü devre dışı bırakıldı!",
"Enable it in settings for history to work properly.": "Geçmişin düzgün çalışması için ayarlarda etkinleştirin.",
"History": "Geçmiş",
"Create new playlist": "Yeni oynatma listesi oluştur",
"Create new playlist": "Yeni çalma listesi oluştur",
"TRACKS": "PARÇALAR",
"Sort by": "Sırala",
"Date Added": "Eklenme Tarihi",
@ -30,15 +30,15 @@
"Artist (A-Z)": "Sanatçı (A-Z)",
"Album (A-Z)": "Albüm (A-Z)",
"Error loading lyrics or lyrics not found!": "Şarkı sözleri bulunamadı veya yüklenirken hata oluştu!",
"Create playlist": "Oynatma listesi oluştur",
"Create playlist": "Çalma listesi oluştur",
"Create": "Oluştur",
"Add to playlist": "Oynatma listesine ekle",
"Add to playlist": "Çalma listesine ekle",
"Create new": "Yeni oluştur",
"Remove": "Kaldır",
"Play next": "Sonrakini çal",
"Add to queue": "Sıraya ekle",
"Remove from library": "Kütüphaneden kaldır",
"Remove from playlist": "Oynatma listesinden kaldır",
"Remove from playlist": "Çalma listesinden kaldır",
"Play track mix": "Play track mix",
"Go to": "Git",
"Track Mix": "Track Mix",
@ -70,7 +70,7 @@
"Please try again later, or try another account.": "Lütfen daha sonra tekrar deneyin veya başka bir hesap deneyin.",
"Logout": ıkış",
"Login using browser": "Tarayıcı kullanarak giriş yapın",
"Please login using your Deezer account:": "Lütfen Deezer hesabınızı kullanarak giriş yapın.",
"Please login using your Deezer account:": "Lütfen Deezer hesabınızı kullanarak giriş yapın:",
"...or paste your ARL/Token below:": "yada ARL/Token aşağıya yapıştırın:",
"ARL/Token": "ARL/Token",
"Login": "Giriş",
@ -88,13 +88,13 @@
"Show download dialog": "İndirme iletişim kutusunu göster",
"Create folders for artists": "Sanatçılar için klasörler oluşturun",
"Create folders for albums": "Albümler için klasörler oluşturun",
"Download lyrics": ". Lrc şarkı sözlerini indir",
"Download lyrics": "Şarkı sözlerini indir",
"Variables": "Değişkenler",
"UI": "Arayüz",
"Show autocomplete in search": "Otomatik tamamlama listesini göster",
"Integrations": "Entegrasyonlar",
"This allows listening history, flow and recommendations to work properly.": "Bu dinleme geçmişinin, akışının ve önerilerin düzgün çalışmasını sağlar.",
"Log track listens to Deezer": "Log track listens to Deezer",
"Log track listens to Deezer": "Dinlediyin şarkılar Deezer'da yansıtılsın",
"Connect your LastFM account to allow scrobbling.": "Scrobbling'e izin vermek için LastFM hesabınızı bağlayın.",
"Login with LastFM": "LastFM ile giriş yapın",
"Disconnect LastFM": "LastFM bağlantısını kes",
@ -104,35 +104,38 @@
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Şarkıları senkronize etmek için Discord katılma düğmesini etkinleştirin, geçiş yapmak için yeniden başlatma gerektirir!",
"Discord Join Button": "Discord Katılma Düğmesi",
"Other": "Diğer",
"Minimize to tray": "Simge durumuna küçülsün",
"Don't minimize to tray": "Simge durumuna küçülmesin tamamen kapansın",
"Minimize to tray": "Sistem tray'e küçülsün",
"Don't minimize to tray": "Sistem tray'e küçülmesin tamamen kapansın",
"Close on exit": "Programı kapattığınızda",
"Settings saved!": "Ayarlar kaydedildi!",
"Available only in Electron version!": "Sadece Electron versiyonunda mevcuttur!",
"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",
"Select primary color": "Birincil rengi seçin",
"Light theme": "Aydınlık tema",
"Create folders for playlists": "Çalma listesi için klasör oluştur",
"About": "Hakkında",
"Links:": "Bağlantılar:",
"Telegram Releases": "Telegram Paylaşımları",
"Telegram Group": "Telegram Grubu",
"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"
"Telegram Android Group": "Telegram Android Grubu",
"Credits:": "Katkıda Bulunanlar:",
"Agree": "Katılıyorum",
"Dismiss": "Reddet",
"Added to playlist!": "Çalma listesine eklendi!",
"Added to library!": "Kütüphaneye eklendi!",
"Removed from library!": "Kütüphaneden silindi!",
"Removed from playlist!": "Çalma listesinden silindi!",
"Playlist deleted!": "Çalma listesi silindi!",
"Delete": "Sil",
"Are you sure you want to delete this playlist?": "Bu çalma listesini silmek istediğinizden emin misiniz?",
"Force white tray icon": "Sistem tray'deki beyaz ikon olmasını zorla",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Eğer tema doğru tespitlenmediyse sistem tray'deki varsayılan (beyaz) ikon olmasını zorla. Yeniden başlatma gerekli.",
"Share": "Paylaş",
"Settings quality": "Kalite ayarları",
"Content language": "İçerik dili",
"Content country": "İçerik ülkesi",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
}

View File

@ -63,7 +63,7 @@
"Lyrics": "Текст",
"Track number": "Номер треку",
"Disk number": "Номер диску",
"Explicit": "Докладно",
"Explicit": "18+",
"Source": "Джерело",
"ID": "ID",
"Error logging in!": "Помилка входу!",
@ -129,10 +129,13 @@
"Playlist deleted!": "Плейлист видалено!",
"Delete": "Видалити",
"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"
"Force white tray icon": "Примусово використовувати білий значок трею",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Примусово використовувати (білий) значок, якщо тема визначена неправильно. Необхідне перезавантаження.",
"Share": "Поширити",
"Settings quality": "Налаштування якості",
"Content language": "Мова контенту",
"Content country": "Країна контенту",
"Website": "Веб-сторінка",
"Visit website": "Відвідати веб-сторінку",
"New update available:": "Доступне оновлення:"
}

View File

@ -134,5 +134,8 @@
"Share": "Share",
"Settings quality": "Settings quality",
"Content language": "Content language",
"Content country": "Content country"
"Content country": "Content country",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
}

View File

@ -88,9 +88,9 @@ new Vue({
track: null
},
//Repeat & Shuffle
//0 - normal, 1 - repeat list, 2 - repeat track
repeat: 0,
shuffled: false,
//Library cache
libraryTracks: [],
@ -172,7 +172,32 @@ new Vue({
if (newIndex < 0 || newIndex >= this.queue.data.length) return;
await this.playIndex(newIndex);
},
//Skip wrapper with shuffle
shuffle() {
if (!this.shuffled) {
//Save positions
for (let i=0; i<this.queue.data.length; i++)
this.queue.data[i]._position = i+1;
//Shuffle
for (let i=this.queue.data.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[this.queue.data[i], this.queue.data[j]] = [this.queue.data[j], this.queue.data[i]];
}
//Update index
this.queue.index = this.queue.data.findIndex(t => t.id == this.track.id);
this.shuffled = true;
return;
}
//Restore unshuffled queue
if (this.shuffled) {
this.queue.data.sort((a, b) => (a._position || 10000) - (b._position || 10000));
this.queue.index = this.queue.data.findIndex(t => t.id == this.track.id);
this.shuffled = false;
return;
}
},
//Skip wrapper
skipNext() {
this.skip(1);
this.savePlaybackInfo();
@ -254,12 +279,15 @@ new Vue({
for (let i=0; i<(this.settings.crossfadeDuration / 50); i++) {
if ((oldAudio.volume - volumeStep) > 0)
oldAudio.volume -= volumeStep;
this.audio.volume += volumeStep;
//Prevent going over
if (this.audio.volume >= currentVolume)
if ((this.audio.volume + volumeStep) >= 1.0 || (this.audio.volume + volumeStep) >= currentVolume)
break;
this.audio.volume += volumeStep;
await new Promise((res) => setTimeout(() => res(), 50));
}
//Restore original volume
this.audio.voume = currentVolume;
this.volume = currentVolume;
oldAudio.pause();
this.resetGapless();
@ -423,7 +451,8 @@ new Vue({
queue: this.queue,
position: this.position,
track: this.track,
repeat: this.repeat
repeat: this.repeat,
shuffled: this.shuffled
}
await this.$axios.post('/playback', data);
},
@ -503,6 +532,7 @@ new Vue({
if (pd.data.queue) this.queue = pd.data.queue;
if (pd.data.track) this.track = pd.data.track;
if (pd.data.repeat) this.repeat = pd.data.repeat;
if (pd.data.shuffled) this.shuffled = pd.data.shuffled;
this.playTrack(this.track).then(() => {
this.seek(pd.data.position);
});

View File

@ -2,12 +2,25 @@
<div>
<v-img src='@/../public/banner.png' max-width='400px' class='mx-auto'></v-img>
<div v-if='data' class='text-center text-h5 font-weight-bold mb-4'>
<div v-if='data' class='text-center text-h5 font-weight-bold'>
v{{data.version}}
</div>
<br>
<div v-if='update' class='text-center text-h6 font-weight-bold mb-4' @click='openUrl("https://freezer.life")'>
{{$t("New update available:")}} {{update.version}}
<v-btn text color='primary' outlined class='mx-2'>{{$t("Visit website")}}</v-btn>
</div>
<h1 class='my-2 px-2'>{{$t("Links:")}}</h1>
<v-list>
<v-list-item @click='openUrl("https://freezer.life")'>
<v-list-item-icon>
<v-icon>mdi-earth</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title class='font-weight-bold'>{{$t("Website")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
<v-list-item @click='openUrl("https://t.me/freezereleases")'>
<v-list-item-icon>
<v-icon>mdi-telegram</v-icon>
@ -124,7 +137,8 @@ export default {
return {
data: null,
xandarDialog: false,
tobsDialog: false
tobsDialog: false,
update: null
}
},
methods: {
@ -132,7 +146,9 @@ export default {
if (this.$root.settings.electron) {
const {ipcRenderer} = window.require('electron');
ipcRenderer.send('openUrl', url);
return;
}
window.open(url, '_blank');
},
fTheme() {
this.$root.settings.primaryColor = '#333333';
@ -145,6 +161,17 @@ export default {
this.$axios.get('/about').then((res) => {
this.data = res.data;
});
},
async mounted() {
//Check for updates
try {
let res = await this.$axios.get('/updates');
if (res.data) {
this.update = res.data;
}
} catch (_) {
//No update / failed to check, ignore
}
}
}
</script>

View File

@ -77,8 +77,9 @@
<v-icon color='primary' v-if='$root.repeat == 1'>mdi-repeat</v-icon>
<v-icon color='primary' v-if='$root.repeat == 2'>mdi-repeat-once</v-icon>
</v-btn>
<v-btn icon @click='shuffle'>
<v-icon v-if='!$root.shuffle'>mdi-shuffle</v-icon>
<v-btn icon @click='$root.shuffle()'>
<v-icon color='primary' v-if='$root.shuffled'>mdi-shuffle</v-icon>
<v-icon v-if='!$root.shuffled'>mdi-shuffle</v-icon>
</v-btn>
<v-btn icon @click='addLibrary'>
@ -112,7 +113,7 @@
>
<template v-slot:append>
<div style='position: absolute; padding-top: 4px;'>
{{Math.round($root.audio.volume * 100)}}%
{{Math.round($root.volume * 100)}}%
</div>
</template>
</v-slider>
@ -137,7 +138,7 @@
<v-tabs-items v-model='tab'>
<!-- Queue tab -->
<v-tab-item key='queue'>
<v-tab-item key='queue' v-if='showQueue'>
<v-list two-line avatar class='overflow-y-auto' style='max-height: calc(100vh - 160px)'>
<draggable v-model='$root.queue.data' @change='queueMove'>
<div v-for="(track, index) in $root.queue.data" :key='index + "q" + track.id'>
@ -257,7 +258,9 @@ export default {
tab: null,
inLibrary: this.$root.track.library ? true:false,
playlistPopup: false,
downloadDialog: false
downloadDialog: false,
//For reloading queue
showQueue: true,
}
},
methods: {
@ -310,15 +313,6 @@ export default {
}
this.$root.repeat += 1;
},
shuffle() {
//Shuffle
for (let i=this.$root.queue.data.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[this.$root.queue.data[i], this.$root.queue.data[j]] = [this.$root.queue.data[j], this.$root.queue.data[i]];
}
//Update index
this.$root.queue.index = this.$root.queue.data.findIndex(t => t.id == this.$root.track.id);
},
//Copy link
share() {
let copyElem = document.createElement('input');
@ -347,6 +341,11 @@ export default {
this.position = this.$root.position / 1000;
}
},
//Force update queue
'$root.shuffled'() {
this.showQueue = false;
this.showQueue = true;
}
}
};

View File

@ -23,7 +23,7 @@
<v-tabs-items v-model='tab'>
<!-- Tracks -->
<v-tab-item key='tracks'>
<LibraryTracks height='calc(100vh - 290px)'></LibraryTracks>
<LibraryTracks height='calc(100vh - 310px)'></LibraryTracks>
</v-tab-item>
<!-- Albums -->

View File

@ -265,7 +265,7 @@ export default {
if (this.playlist.tracks.length < this.playlist.trackCount)
await this.sort(0);
this.isReversed = !this.isReversed;
this.tracks.reverse();
this.playlist.tracks.reverse();
},
},
mounted() {

7
app/package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "freezer",
"version": "1.1.7",
"version": "1.1.9",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@ -437,6 +437,11 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz",
"integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow=="
},
"compare-versions": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz",
"integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA=="
},
"component-bind": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",

View File

@ -1,7 +1,7 @@
{
"name": "freezer",
"private": true,
"version": "1.1.7",
"version": "1.1.10",
"description": "",
"main": "background.js",
"scripts": {
@ -14,6 +14,7 @@
"axios": "^0.19.2",
"browser-id3-writer": "^4.4.0",
"chalk": "^4.1.0",
"compare-versions": "^3.6.0",
"discord-rpc": "^3.1.4",
"express": "^4.17.1",
"lastfmapi": "^0.1.1",

View File

@ -2,6 +2,7 @@ const express = require('express');
const path = require('path');
const packageJson = require('../package.json');
const fs = require('fs');
const compareVersions = require('compare-versions');
const axios = require('axios').default;
const logger = require('./winston');
const {DeezerAPI, DeezerStream} = require('./deezer');
@ -477,6 +478,21 @@ app.get('/about', async (req, res) => {
});
});
app.get('/updates', async (req, res) => {
try {
let response = await axios.get('https://freezer.life/api/versions');
//New version
if (compareVersions(response.data.pc.latest, packageJson.version) >= 1) {
res.send(response.data.pc.versions[0]);
return;
}
res.status(404).end();
return;
} catch (e) {
res.status(500).end();
}
});
//Redirect to index on unknown path
app.all('*', (req, res) => {
res.redirect('/');

Binary file not shown.

View File

@ -1,7 +1,7 @@
{
"name": "freezer",
"private": true,
"version": "1.1.7",
"version": "1.1.10",
"description": "",
"scripts": {
"pack": "electron-builder --dir",