1.1.2 - Crossfade, theming

This commit is contained in:
exttex 2020-11-03 10:11:37 +01:00
parent d722e4b4b0
commit 2b8f14df57
40 changed files with 1782 additions and 1183 deletions

View File

@ -15,7 +15,7 @@ function assetPath(a) {
} }
async function startServer() { async function startServer() {
settings = await createServer(true, (e) => { settings = await createServer(true, () => {
//Server error //Server error
shouldExit = true; shouldExit = true;
if (win) win.close(); if (win) win.close();
@ -96,7 +96,11 @@ app.on('ready', async () => {
//Restore or create new window //Restore or create new window
function restoreWindow() { function restoreWindow() {
if (win) return win.show(); if (win) {
win.show();
setThumbarButtons();
return;
}
createWindow(); createWindow();
} }
@ -171,6 +175,10 @@ function setThumbarButtons() {
]); ]);
} }
ipcMain.on('openUrl', (event, args) => {
shell.openExternal(args);
});
//Playing state change from UI //Playing state change from UI
ipcMain.on('playing', (event, args) => { ipcMain.on('playing', (event, args) => {
playing = args; playing = args;
@ -184,13 +192,13 @@ ipcMain.on('updateSettings', (event, args) => {
}); });
//onExit callback //onExit callback
ipcMain.on('onExit', (event) => { ipcMain.on('onExit', () => {
shouldExit = true; shouldExit = true;
win.close(); win.close();
}); });
//Open downloads directory //Open downloads directory
ipcMain.on('openDownloadsDir', async (event) => { ipcMain.on('openDownloadsDir', async () => {
if ((await shell.openPath(settings.downloadsPath)) == "") return; if ((await shell.openPath(settings.downloadsPath)) == "") return;
shell.showItemInFolder(settings.downloadsPath); shell.showItemInFolder(settings.downloadsPath);
}); });

BIN
app/client/public/shibe.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

View File

@ -111,6 +111,14 @@
<v-list-item-title>{{$t('Downloads')}}</v-list-item-title> <v-list-item-title>{{$t('Downloads')}}</v-list-item-title>
</v-list-item> </v-list-item>
<!-- About -->
<v-list-item link to='/about'>
<v-list-item-icon>
<v-icon>mdi-information</v-icon>
</v-list-item-icon>
<v-list-item-title>{{$t('About')}}</v-list-item-title>
</v-list-item>
</v-list> </v-list>
</v-navigation-drawer> </v-navigation-drawer>

View File

@ -45,6 +45,10 @@ export default {
type: Boolean, type: Boolean,
default: true default: true
}, },
playlistName: {
type: String,
default: null
}
}, },
data() { data() {
return { return {
@ -71,11 +75,15 @@ export default {
}, },
//Add files to download queue //Add files to download queue
async download() { async download() {
if (this.qualities.indexOf(this.qualityString) == 0 || !this.qualityString) { let data = {
await this.$axios.post(`/downloads`, this.tracks); tracks: this.tracks,
} else { playlistName: this.playlistName,
await this.$axios.post(`/downloads?q=${this.qualityInt()}`, this.tracks); quality: null
} }
if (this.qualities.indexOf(this.qualityString) != 0 && this.qualityString) {
data['quality'] = this.qualityInt();
}
await this.$axios.post(`/downloads`, data);
if (this.autostart) this.$axios.put('/download'); if (this.autostart) this.$axios.put('/download');
this.$emit("close"); this.$emit("close");

View File

@ -79,7 +79,7 @@
</v-hover> </v-hover>
</v-card> </v-card>
<DownloadDialog :tracks='tracks' v-if='downloadDialog' @close='downloadDialog = false'></DownloadDialog> <DownloadDialog :playlistName='playlist.title' :tracks='tracks' v-if='downloadDialog' @close='downloadDialog = false'></DownloadDialog>
</div> </div>

View File

@ -11,6 +11,7 @@ import ArtistPage from '@/views/ArtistPage.vue';
import Settings from '@/views/Settings.vue'; import Settings from '@/views/Settings.vue';
import DeezerPage from '@/views/DeezerPage.vue'; import DeezerPage from '@/views/DeezerPage.vue';
import DownloadsPage from '@/views/DownloadsPage.vue'; import DownloadsPage from '@/views/DownloadsPage.vue';
import About from '@/views/About.vue';
Vue.use(VueRouter); Vue.use(VueRouter);
@ -74,6 +75,10 @@ const routes = [
{ {
path: '/downloads', path: '/downloads',
component: DownloadsPage, component: DownloadsPage,
},
{
path: '/about',
component: About
} }
]; ];

View File

@ -8,6 +8,6 @@ Vue.use(Vuetify);
export default new Vuetify({ export default new Vuetify({
theme: { theme: {
dark: true, dark: true
} }
}); });

View File

@ -108,5 +108,17 @@
"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)": "التلاشي (ملي ثانية)",
"Select primary color": "تحديد اللون الأساسي",
"Light theme": "المظهر الفاتح",
"Create folders for playlists": "إنشاء ملفات لقائمة التشغيل",
"About": "حول البرنامج",
"Links:": "الروابط:",
"Telegram Releases": "إصدارات على تيليجرام",
"Telegram Group": "مجموعة التليجرام",
"Discord": "دسكورد",
"Telegram Android Group": "مجموعة تيليجرام (أندرويد)",
"Credits:": "المساهمون:",
"Agree": "قبول"
} }

View File

@ -3,7 +3,7 @@
"Browse": "Durchsuchen", "Browse": "Durchsuchen",
"Library": "Mediathek", "Library": "Mediathek",
"Tracks": "Titel", "Tracks": "Titel",
"Playlists": "Wiedergabelisten", "Playlists": "Playlisten",
"Albums": "Alben", "Albums": "Alben",
"Artists": "Künstler", "Artists": "Künstler",
"More": "Mehr", "More": "Mehr",
@ -22,7 +22,7 @@
"Stream logging is disabled!": "Streamprotokollierung ist deaktiviert!", "Stream logging is disabled!": "Streamprotokollierung ist deaktiviert!",
"Enable it in settings for history to work properly.": "Aktiviere es in den Einstellungen, damit der Verlauf korrekt funktioniert.", "Enable it in settings for history to work properly.": "Aktiviere es in den Einstellungen, damit der Verlauf korrekt funktioniert.",
"History": "Verlauf", "History": "Verlauf",
"Create new playlist": "Neue Wiedergabeliste erstellen", "Create new playlist": "Neue Playlist erstellen",
"TRACKS": "Titel", "TRACKS": "Titel",
"Sort by": "Sortieren nach", "Sort by": "Sortieren nach",
"Date Added": "Hinzugefügt am", "Date Added": "Hinzugefügt am",
@ -30,15 +30,15 @@
"Artist (A-Z)": "Künstler (A-Z)", "Artist (A-Z)": "Künstler (A-Z)",
"Album (A-Z)": "Album (A-Z)", "Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Fehler beim Laden der Songtexte oder Songtexte nicht gefunden!", "Error loading lyrics or lyrics not found!": "Fehler beim Laden der Songtexte oder Songtexte nicht gefunden!",
"Create playlist": "Wiedergabeliste erstellen", "Create playlist": "Playlist erstellen",
"Create": "Erstellen", "Create": "Erstellen",
"Add to playlist": "Zur Wiedergabeliste hinzufügen", "Add to playlist": "Zur Playlist hinzufügen",
"Create new": "Neu erstellen", "Create new": "Neu erstellen",
"Remove": "Entfernen", "Remove": "Entfernen",
"Play next": "Als nächstes spielen", "Play next": "Als nächstes spielen",
"Add to queue": "Zur Warteschleife hinzufügen", "Add to queue": "Zur Warteschleife hinzufügen",
"Remove from library": "Aus der Mediathek entfernen", "Remove from library": "Aus der Mediathek entfernen",
"Remove from playlist": "Aus Wiedergabeliste entfernen", "Remove from playlist": "Aus Playlist entfernen",
"Play track mix": "Track Mix abspielen", "Play track mix": "Track Mix abspielen",
"Go to": "Gehe zu", "Go to": "Gehe zu",
"Track Mix": "Track Mix", "Track Mix": "Track Mix",
@ -46,7 +46,7 @@
"Released": "Veröffentlicht", "Released": "Veröffentlicht",
"Disk": "Disk", "Disk": "Disk",
"albums": "Alben", "albums": "Alben",
"Play top": "Play top", "Play top": "Top abspielen",
"Radio": "Radio", "Radio": "Radio",
"Show all albums": "Zeige alle Alben", "Show all albums": "Zeige alle Alben",
"Show all singles": "Zeige alle Singles", "Show all singles": "Zeige alle Singles",
@ -108,5 +108,17 @@
"Don't minimize to tray": "Nicht in Statusleiste minimieren", "Don't minimize to tray": "Nicht in Statusleiste minimieren",
"Close on exit": "Beim Beenden schließen", "Close on exit": "Beim Beenden schließen",
"Settings saved!": "Einstellungen gespeichert!", "Settings saved!": "Einstellungen gespeichert!",
"Available only in Electron version!": "Nur in der Electron-Version verfügbar!" "Available only in Electron version!": "Nur in der Electron-Version verfügbar!",
"Crossfade (ms)": "Überblendung (ms)",
"Select primary color": "Primärfarbe auswählen",
"Light theme": "Helles Thema",
"Create folders for playlists": "Ordner für Wiedergabelisten erstellen",
"About": "Über",
"Links:": "Links:",
"Telegram Releases": "Telegram-Releases",
"Telegram Group": "Telegram Gruppe",
"Discord": "Discord",
"Telegram Android Group": "Telegram Android-Gruppe",
"Credits:": "Credits:",
"Agree": "Einverstanden"
} }

View File

@ -1,112 +1,124 @@
{ {
"Home": "Home", "Home": "Αρχική",
"Browse": "Browse", "Browse": "Περιήγηση",
"Library": "Library", "Library": "Βιβλιοθήκη",
"Tracks": "Tracks", "Tracks": "Κομμάτια",
"Playlists": "Playlists", "Playlists": "Λίστες αναπαραγωγής",
"Albums": "Albums", "Albums": "Album",
"Artists": "Artists", "Artists": "Καλλιτέχνες",
"More": "More", "More": "Περισσότερα",
"Settings": "Settings", "Settings": "Ρυθμίσεις",
"Downloads": "Downloads", "Downloads": "Λήψεις",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.", "Search or paste Deezer URL. Use / to quickly focus.": "Αναζήτηση ή επικόλληση διεύθυνσης URL Deezer. Χρησιμοποιήστε το \"/\" για γρήγορη εστίαση.",
"Play": "Play", "Play": "Αναπαραγωγή",
"Add to library": "Add to library", "Add to library": "Προσθήκη στη βιβλιοθήκη",
"Download": "Download", "Download": "Λήψη",
"fans": "fans", "fans": "θαυμαστές",
"tracks": "tracks", "tracks": "κομμάτια",
"Quality": "Quality", "Quality": "Ποιότητα",
"Estimated size:": "Estimated size:", "Estimated size:": "Εκτιμώμενος χρόνος:",
"Start downloading": "Start downloading", "Start downloading": "Έναρξη λήψης",
"Cancel": "Cancel", "Cancel": "Άκυρο",
"Stream logging is disabled!": "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.", "Enable it in settings for history to work properly.": "Ενεργοποιήστε το στις ρυθμίσεις για την σωστή λειτουργία του ιστορικού.",
"History": "History", "History": "Ιστορικό",
"Create new playlist": "Create new playlist", "Create new playlist": "Δημιουργία λίστας αναπαραγωγής",
"TRACKS": "TRACKS", "TRACKS": "ΤΡΑΓΟΥΔΙΑ",
"Sort by": "Sort by", "Sort by": "Ταξινόμηση κατά",
"Date Added": "Date Added", "Date Added": "Ημερομηνία Προσθήκης",
"Name (A-Z)": "Name (A-Z)", "Name (A-Z)": "Όνομα (Α)",
"Artist (A-Z)": "Artist (A-Z)", "Artist (A-Z)": "Καλλιτέχνης (Α)",
"Album (A-Z)": "Album (A-Z)", "Album (A-Z)": "Album (Α)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!", "Error loading lyrics or lyrics not found!": "Σφάλμα κατά τη φόρτωση στίχων ή αδυναμία εύρεσης στίχων!",
"Create playlist": "Create playlist", "Create playlist": "Δημιουργία λίστας αναπαραγωγής",
"Create": "Create", "Create": "Δημιουργία",
"Add to playlist": "Add to playlist", "Add to playlist": "Προσθήκη στην λίστα αναπαραγωγής",
"Create new": "Create new", "Create new": "Δημιουργία νέου",
"Remove": "Remove", "Remove": "Αφαίρεση",
"Play next": "Play next", "Play next": "Παίξε αμέσως μετά",
"Add to queue": "Add to queue", "Add to queue": "Προσθήκη στην ουρά",
"Remove from library": "Remove from library", "Remove from library": "Κατάργηση από τη βιβλιοθήκη",
"Remove from playlist": "Remove from playlist", "Remove from playlist": "Κατάργηση από τη λίστα αναπαραγωγής",
"Play track mix": "Play track mix", "Play track mix": "Αναπαραγωγή μίξης τραγουδιών",
"Go to": "Go to", "Go to": "Πήγαινε σε",
"Track Mix": "Track Mix", "Track Mix": "Μίξη Τραγουδιών",
"Duration": "Duration", "Duration": "Διάρκεια",
"Released": "Released", "Released": "Κυκλοφόρησε",
"Disk": "Disk", "Disk": "Δίσκος",
"albums": "albums", "albums": "album",
"Play top": "Play top", "Play top": "Αναπαραγωγή κορυφαίου",
"Radio": "Radio", "Radio": "Ραδιόφωνο",
"Show all albums": "Show all albums", "Show all albums": "Εμφάνιση όλων των album",
"Show all singles": "Show all singles", "Show all singles": "Εμφάνιση όλων των single",
"Show more": "Show more", "Show more": "Εμφάνιση περισσότερων",
"Downloaded": "Downloaded", "Downloaded": "Ελήφθησαν",
"Queue": "Queue", "Queue": "Ουρά",
"Total": "Total", "Total": "Σύνολο ",
"Stop": "Stop", "Stop": "Διακοπή",
"Start": "Start", "Start": "Έναρξη",
"Show folder": "Show folder", "Show folder": "Εμφάνιση φακέλου",
"Clear queue": "Clear queue", "Clear queue": "Εκκαθάριση ουράς",
"Playing from": "Playing from", "Playing from": "Αναπαραγωγή από",
"Info": "Info", "Info": "Πληροφορίες",
"Lyrics": "Lyrics", "Lyrics": "Στίχοι",
"Track number": "Track number", "Track number": "Αριθμός τραγουδιού",
"Disk number": "Disk number", "Disk number": "Αριθμός δίσκου",
"Explicit": "Explicit", "Explicit": "Άσεμνο περιεχόμενο",
"Source": "Source", "Source": "Πηγή",
"ID": "ID", "ID": "ID",
"Error logging in!": "Error logging in!", "Error logging in!": "Σφάλμα εισόδου!",
"Please try again later, or try another account.": "Please try again later, or try another account.", "Please try again later, or try another account.": "Δοκιμάστε ξανά αργότερα ή δοκιμάστε έναν άλλο λογαριασμό.",
"Logout": "Logout", "Logout": "Αποσύνδεση",
"Login using browser": "Login using browser", "Login using browser": "Σύνδεση χρησιμοποιώντας το πρόγραμμα περιήγησης",
"Please login using your Deezer account:": "Please login using your Deezer account:", "Please login using your Deezer account:": "Συνδεθείτε χρησιμοποιώντας τον λογαριασμό σας στο Deezer:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:", "...or paste your ARL/Token below:": "... ή επικολλήστε το ARL/Token σας παρακάτω:",
"ARL/Token": "ARL/Token", "ARL/Token": "ARL/Token",
"Login": "Login", "Login": "Σύνδεση",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.", "By using this program, you disagree with Deezer's ToS.": "Χρησιμοποιώντας αυτό το πρόγραμμα, διαφωνείτε με τους όρους χρήσης του Deezer.",
"Only in Electron version!": "Only in Electron version!", "Only in Electron version!": "Μόνο στην έκδοση Electron!",
"Search results for:": "Search results for:", "Search results for:": "Αποτελέσματα αναζήτησης για:",
"Error loading data!": "Error loading data!", "Error loading data!": "Σφάλμα φόρτωσης δεδομένων!",
"Try again later!": "Try again later!", "Try again later!": "Δοκιμάστε ξανά αργότερα!",
"Search": "Search", "Search": "Αναζήτηση",
"Streaming Quality": "Streaming Quality", "Streaming Quality": "Ποιότητα ροής",
"Download Quality": "Download Quality", "Download Quality": "Ποιότητα λήψης",
"Downloads Directory": "Downloads Directory", "Downloads Directory": "Κατάλογος Λήψεων",
"Simultaneous downloads": "Simultaneous downloads", "Simultaneous downloads": "Ταυτόχρονες λήψεις",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.", "Always show download confirm dialog before downloading.": "Να εμφανίζεται πάντα το παράθυρο διαλόγου επιβεβαίωσης πριν από τη λήψη.",
"Show download dialog": "Show download dialog", "Show download dialog": "Εμφάνιση παραθύρου διαλόγου επιβεβαίωσης",
"Create folders for artists": "Create folders for artists", "Create folders for artists": "Δημιουργία φακέλου για καλλιτέχνη",
"Create folders for albums": "Create folders for albums", "Create folders for albums": "Δημιουργία φακέλων για album",
"Download lyrics": "Download lyrics", "Download lyrics": "Λήψη στίχων",
"Variables": "Variables", "Variables": "Μεταβλητές",
"UI": "UI", "UI": "Περιβάλλον Χρήστη",
"Show autocomplete in search": "Show autocomplete in search", "Show autocomplete in search": "Εμφάνιση αυτόματων συμπληρώσεων στην αναζήτηση",
"Integrations": "Integrations", "Integrations": "Ενσωματώσεις",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.", "This allows listening history, flow and recommendations to work properly.": "Επιτρέπει στο ιστορικό ακρόασης, το flow και τις προτάσεις να λειτουργούν σωστά.",
"Log track listens to Deezer": "Log track listens to Deezer", "Log track listens to Deezer": "Καταγραφή ακρόασης κομματιών στο Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.", "Connect your LastFM account to allow scrobbling.": "Συνδέστε τον λογαριασμό σας LastFM για να επιτρέψετε το scrobbling.",
"Login with LastFM": "Login with LastFM", "Login with LastFM": "Σύνδεση με LastFM",
"Disconnect LastFM": "Disconnect LastFM", "Disconnect LastFM": "Αποσύνδεση από LastFM",
"Requires restart to apply!": "Requires restart to apply!", "Requires restart to apply!": "Απαιτείται επανεκκίνηση για την εφαρμογή!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!", "Enable Discord Rich Presence, requires restart to toggle!": "Ενεργοποίηση Discord Rich Presence, απαιτείται επανεκκίνηση!",
"Discord Rich Presence": "Discord Rich Presence", "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!", "Enable Discord join button for syncing tracks, requires restart to toggle!": "Ενεργοποιήστε το κουμπί συμμετοχής Discord για συγχρονισμό κομματιών, απαιτείται επανεκκίνηση!",
"Discord Join Button": "Discord Join Button", "Discord Join Button": "Κουμπί συμμετοχής Discord",
"Other": "Other", "Other": "Άλλα",
"Minimize to tray": "Minimize to tray", "Minimize to tray": "Ελαχιστοποίηση σε εικονίδιο",
"Don't minimize to tray": "Don't minimize to tray", "Don't minimize to tray": "Μην ελαχιστοποιείτε σε εικονίδιο",
"Close on exit": "Close on exit", "Close on exit": "Κλείσιμο κατά την έξοδο",
"Settings saved!": "Settings saved!", "Settings saved!": "Οι ρυθμίσεις αποθηκεύτηκαν!",
"Available only in Electron version!": "Available only in Electron version!" "Available only in Electron version!": "Διαθέσιμο μόνο στην έκδοση 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",
"Discord": "Discord",
"Telegram Android Group": "Telegram Android Group",
"Credits:": "Credits:",
"Agree": "Agree"
} }

View File

@ -108,5 +108,18 @@
"Don't minimize to tray": "Don't minimize to tray", "Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit", "Close on exit": "Close on exit",
"Settings saved!": "Settings saved!", "Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!" "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"
} }

View File

@ -1,85 +1,85 @@
{ {
"Home": "Home", "Home": "Inicio",
"Browse": "Browse", "Browse": "Browse",
"Library": "Library", "Library": "Biblioteca",
"Tracks": "Tracks", "Tracks": "Canciones",
"Playlists": "Playlists", "Playlists": "Listas de reproducción",
"Albums": "Albums", "Albums": "Álbumes",
"Artists": "Artists", "Artists": "Artistas",
"More": "More", "More": "Más",
"Settings": "Settings", "Settings": "Configuración",
"Downloads": "Downloads", "Downloads": "Descargas",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.", "Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
"Play": "Play", "Play": "Reproducir",
"Add to library": "Add to library", "Add to library": "Add to library",
"Download": "Download", "Download": "Descargar",
"fans": "fans", "fans": "seguidores",
"tracks": "tracks", "tracks": "canciones",
"Quality": "Quality", "Quality": "Calidad",
"Estimated size:": "Estimated size:", "Estimated size:": "Tamaño estimado:",
"Start downloading": "Start downloading", "Start downloading": "Start downloading",
"Cancel": "Cancel", "Cancel": "Cancelar",
"Stream logging is disabled!": "Stream logging is disabled!", "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.", "Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
"History": "History", "History": "Historial",
"Create new playlist": "Create new playlist", "Create new playlist": "Create new playlist",
"TRACKS": "TRACKS", "TRACKS": "CANCIONES",
"Sort by": "Sort by", "Sort by": "Ordenar por",
"Date Added": "Date Added", "Date Added": "Fecha de adición",
"Name (A-Z)": "Name (A-Z)", "Name (A-Z)": "Nombre (A-Z)",
"Artist (A-Z)": "Artist (A-Z)", "Artist (A-Z)": "Artista (A-Z)",
"Album (A-Z)": "Album (A-Z)", "Album (A-Z)": "Álbum (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!", "Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
"Create playlist": "Create playlist", "Create playlist": "Crear lista de reproducción",
"Create": "Create", "Create": "Crear",
"Add to playlist": "Add to playlist", "Add to playlist": "Agregar a la lista de reproducción",
"Create new": "Create new", "Create new": "Crear nuevo",
"Remove": "Remove", "Remove": "Quitar",
"Play next": "Play next", "Play next": "Reproducir siguiente",
"Add to queue": "Add to queue", "Add to queue": "Add to queue",
"Remove from library": "Remove from library", "Remove from library": "Remove from library",
"Remove from playlist": "Remove from playlist", "Remove from playlist": "Remove from playlist",
"Play track mix": "Play track mix", "Play track mix": "Reproducir mezcla de canciones",
"Go to": "Go to", "Go to": "Ir a",
"Track Mix": "Track Mix", "Track Mix": "Mezcla de canciones",
"Duration": "Duration", "Duration": "Duración",
"Released": "Released", "Released": "Publicado",
"Disk": "Disk", "Disk": "Disco",
"albums": "albums", "albums": "álbumes",
"Play top": "Play top", "Play top": "Reproducir top",
"Radio": "Radio", "Radio": "Radio",
"Show all albums": "Show all albums", "Show all albums": "Mostrar todos los álbumes",
"Show all singles": "Show all singles", "Show all singles": "Show all singles",
"Show more": "Show more", "Show more": "Mostrar más",
"Downloaded": "Downloaded", "Downloaded": "Descargadas",
"Queue": "Queue", "Queue": "Cola",
"Total": "Total", "Total": "Total",
"Stop": "Stop", "Stop": "Parar",
"Start": "Start", "Start": "Iniciar",
"Show folder": "Show folder", "Show folder": "Mostrar carpeta",
"Clear queue": "Clear queue", "Clear queue": "Limpiar cola",
"Playing from": "Playing from", "Playing from": "Playing from",
"Info": "Info", "Info": "Información",
"Lyrics": "Lyrics", "Lyrics": "Letras",
"Track number": "Track number", "Track number": "Número de la canción",
"Disk number": "Disk number", "Disk number": "Número del disco",
"Explicit": "Explicit", "Explicit": "Explícito",
"Source": "Source", "Source": "Fuente",
"ID": "ID", "ID": "ID",
"Error logging in!": "Error logging in!", "Error logging in!": "Error logging in!",
"Please try again later, or try another account.": "Please try again later, or try another account.", "Please try again later, or try another account.": "Please try again later, or try another account.",
"Logout": "Logout", "Logout": "Cerrar sesión",
"Login using browser": "Login using browser", "Login using browser": "Login using browser",
"Please login using your Deezer account:": "Please login using your Deezer account:", "Please login using your Deezer account:": "Please login using your Deezer account:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:", "...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
"ARL/Token": "ARL/Token", "ARL/Token": "ARL/Token",
"Login": "Login", "Login": "Ingresar",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.", "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!", "Only in Electron version!": "Only in Electron version!",
"Search results for:": "Search results for:", "Search results for:": "Search results for:",
"Error loading data!": "Error loading data!", "Error loading data!": "Error loading data!",
"Try again later!": "Try again later!", "Try again later!": "Try again later!",
"Search": "Search", "Search": "Buscar",
"Streaming Quality": "Streaming Quality", "Streaming Quality": "Streaming Quality",
"Download Quality": "Download Quality", "Download Quality": "Download Quality",
"Downloads Directory": "Downloads Directory", "Downloads Directory": "Downloads Directory",
@ -88,25 +88,37 @@
"Show download dialog": "Show download dialog", "Show download dialog": "Show download dialog",
"Create folders for artists": "Create folders for artists", "Create folders for artists": "Create folders for artists",
"Create folders for albums": "Create folders for albums", "Create folders for albums": "Create folders for albums",
"Download lyrics": "Download lyrics", "Download lyrics": "Descargar letras",
"Variables": "Variables", "Variables": "Variables",
"UI": "UI", "UI": "IU",
"Show autocomplete in search": "Show autocomplete in search", "Show autocomplete in search": "Show autocomplete in search",
"Integrations": "Integrations", "Integrations": "Integrations",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.", "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", "Log track listens to Deezer": "Registrar la canción que escucha a Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.", "Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
"Login with LastFM": "Login with LastFM", "Login with LastFM": "Iniciar sesión con LastFM",
"Disconnect LastFM": "Disconnect LastFM", "Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Requires restart to apply!", "Requires restart to apply!": "Requires restart to apply!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!", "Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
"Discord Rich Presence": "Discord Rich Presence", "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!", "Enable Discord join button for syncing tracks, requires restart to toggle!": "Activar el botón de unión de Discord para sincronizar las canciones, ¡requiere reiniciar para cambiarlo!",
"Discord Join Button": "Discord Join Button", "Discord Join Button": "Discord Join Button",
"Other": "Other", "Other": "Otro",
"Minimize to tray": "Minimize to tray", "Minimize to tray": "Minimize to tray",
"Don't minimize to tray": "Don't minimize to tray", "Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit", "Close on exit": "Close on exit",
"Settings saved!": "Settings saved!", "Settings saved!": "¡Configuraciones guardadas!",
"Available only in Electron version!": "Available only in Electron version!" "Available only in Electron version!": "Available only in Electron version!",
"Crossfade (ms)": "Desvanecimiento (ms)",
"Select primary color": "Seleccionar color primario",
"Light theme": "Tema claro",
"Create folders for playlists": "Crear carpetas para listas de reproducción",
"About": "Acerca de",
"Links:": "Enlaces:",
"Telegram Releases": "Lanzamientos en Telegram",
"Telegram Group": "Grupo en Telegram",
"Discord": "Discord",
"Telegram Android Group": "Grupo de Android en Telegram",
"Credits:": "Créditos:",
"Agree": "Acepto"
} }

View File

@ -108,5 +108,17 @@
"Don't minimize to tray": "Don't minimize to tray", "Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit", "Close on exit": "Close on exit",
"Settings saved!": "Settings saved!", "Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!" "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"
} }

View File

@ -2,56 +2,56 @@
"Home": "Home", "Home": "Home",
"Browse": "Browse", "Browse": "Browse",
"Library": "Library", "Library": "Library",
"Tracks": "Tracks", "Tracks": "Mga kanta",
"Playlists": "Playlists", "Playlists": "Mga playlist",
"Albums": "Albums", "Albums": "Mga album",
"Artists": "Artists", "Artists": "Mga artista",
"More": "More", "More": "More",
"Settings": "Settings", "Settings": "Settings",
"Downloads": "Downloads", "Downloads": "Mga download",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.", "Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
"Play": "Play", "Play": "Play",
"Add to library": "Add to library", "Add to library": "Idagdag sa library",
"Download": "Download", "Download": "I-download",
"fans": "fans", "fans": "fans",
"tracks": "tracks", "tracks": "mga kanta",
"Quality": "Quality", "Quality": "Kalidad",
"Estimated size:": "Estimated size:", "Estimated size:": "Tinantyang laki:",
"Start downloading": "Start downloading", "Start downloading": "Simulan ang download",
"Cancel": "Cancel", "Cancel": "I-kansel",
"Stream logging is disabled!": "Stream logging is disabled!", "Stream logging is disabled!": "Naka-disable ang stream logging!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.", "Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
"History": "History", "History": "History",
"Create new playlist": "Create new playlist", "Create new playlist": "Gumawa ng bagong playlist",
"TRACKS": "TRACKS", "TRACKS": "TRACKS",
"Sort by": "Sort by", "Sort by": "Sort by",
"Date Added": "Date Added", "Date Added": "Date Added",
"Name (A-Z)": "Name (A-Z)", "Name (A-Z)": "Name (A-Z)",
"Artist (A-Z)": "Artist (A-Z)", "Artist (A-Z)": "Artista (A-Z)",
"Album (A-Z)": "Album (A-Z)", "Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!", "Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
"Create playlist": "Create playlist", "Create playlist": "Gumawa ng playlist",
"Create": "Create", "Create": "Gumawa",
"Add to playlist": "Add to playlist", "Add to playlist": "Idagdag sa playlist",
"Create new": "Create new", "Create new": "Gumawa ng bago",
"Remove": "Remove", "Remove": "Tanggalin",
"Play next": "Play next", "Play next": "I-play ang kasunod",
"Add to queue": "Add to queue", "Add to queue": "Idagdag sa queue",
"Remove from library": "Remove from library", "Remove from library": "Tanggalin sa library",
"Remove from playlist": "Remove from playlist", "Remove from playlist": "Tanggalin mula sa playlist",
"Play track mix": "Play track mix", "Play track mix": "Play track mix",
"Go to": "Go to", "Go to": "Pumunta sa",
"Track Mix": "Track Mix", "Track Mix": "Track Mix",
"Duration": "Duration", "Duration": "Duration",
"Released": "Released", "Released": "Released",
"Disk": "Disk", "Disk": "Disk",
"albums": "albums", "albums": "Mga album",
"Play top": "Play top", "Play top": "Play top",
"Radio": "Radio", "Radio": "Radyo",
"Show all albums": "Show all albums", "Show all albums": "Ipakita lahat ng album",
"Show all singles": "Show all singles", "Show all singles": "Ipakita ang lahat ng mga single",
"Show more": "Show more", "Show more": "Show more",
"Downloaded": "Downloaded", "Downloaded": "Mga na-download",
"Queue": "Queue", "Queue": "Queue",
"Total": "Total", "Total": "Total",
"Stop": "Stop", "Stop": "Stop",
@ -67,46 +67,58 @@
"Source": "Source", "Source": "Source",
"ID": "ID", "ID": "ID",
"Error logging in!": "Error logging in!", "Error logging in!": "Error logging in!",
"Please try again later, or try another account.": "Please try again later, or try another account.", "Please try again later, or try another account.": "Paki-subukan ulit mamaya, o mag-try ng ibang account.",
"Logout": "Logout", "Logout": "Mag-logout",
"Login using browser": "Login using browser", "Login using browser": "Mag-login gamit ang browser",
"Please login using your Deezer account:": "Please login using your Deezer account:", "Please login using your Deezer account:": "Paki-login ang iyong Deezer account:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:", "...or paste your ARL/Token below:": "...o ilagay ang iyong ARL/Token sa baba:",
"ARL/Token": "ARL/Token", "ARL/Token": "ARL/Token",
"Login": "Login", "Login": "Mag-login",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.", "By using this program, you disagree with Deezer's ToS.": "Sa paggamit ng program na ito, ikaw ay hindi sumasang-ayon sa ToS ng Deezer.",
"Only in Electron version!": "Only in Electron version!", "Only in Electron version!": "Sa Electron version lamang!",
"Search results for:": "Search results for:", "Search results for:": "Maghanap ng resulta para sa:",
"Error loading data!": "Error loading data!", "Error loading data!": "May problema habang naglo-load ng mga datos!",
"Try again later!": "Try again later!", "Try again later!": "Paki-subukan ulit mamaya!",
"Search": "Search", "Search": "Maghanap",
"Streaming Quality": "Streaming Quality", "Streaming Quality": "Kalidad ng streaming",
"Download Quality": "Download Quality", "Download Quality": "Kalidad ng download",
"Downloads Directory": "Downloads Directory", "Downloads Directory": "Lalagyan ng mga download",
"Simultaneous downloads": "Simultaneous downloads", "Simultaneous downloads": "Sabay-sabay na download",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.", "Always show download confirm dialog before downloading.": "Laging ipakita ang confirm dialog bago mag-download.",
"Show download dialog": "Show download dialog", "Show download dialog": "Ipakita ang download dialog",
"Create folders for artists": "Create folders for artists", "Create folders for artists": "Gumawa ng folder para sa mga artista",
"Create folders for albums": "Create folders for albums", "Create folders for albums": "Gumawa ng folder para sa mga album",
"Download lyrics": "Download lyrics", "Download lyrics": "I-download ang lyrics",
"Variables": "Variables", "Variables": "Mga variable",
"UI": "UI", "UI": "UI",
"Show autocomplete in search": "Show autocomplete in search", "Show autocomplete in search": "Ipakita ang autocomplete sa search",
"Integrations": "Integrations", "Integrations": "Mga integration",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.", "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", "Log track listens to Deezer": "Log track listens to Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.", "Connect your LastFM account to allow scrobbling.": "Ikabit ang iyong LastFM account para sa scrobbling.",
"Login with LastFM": "Login with LastFM", "Login with LastFM": "Mag-login gamit ang LastFM",
"Disconnect LastFM": "Disconnect LastFM", "Disconnect LastFM": "Tanggalin ang LastFM",
"Requires restart to apply!": "Requires restart to apply!", "Requires restart to apply!": "Kailangan i-restart para ma-apply!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!", "Enable Discord Rich Presence, requires restart to toggle!": "I-enable ang Discord Rich Presence, kailangan i-restart para mabago!",
"Discord Rich Presence": "Discord Rich Presence", "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!", "Enable Discord join button for syncing tracks, requires restart to toggle!": "I-enable ang Discord join button para sa pag-sync ng mga kanta, kailangan i-restart para mabago!",
"Discord Join Button": "Discord Join Button", "Discord Join Button": "Discord Join Button",
"Other": "Other", "Other": "Iba pa",
"Minimize to tray": "Minimize to tray", "Minimize to tray": "I-minimize sa tray",
"Don't minimize to tray": "Don't minimize to tray", "Don't minimize to tray": "Huwag i-minimize sa tray",
"Close on exit": "Close on exit", "Close on exit": "Isara sa pag-pindot ng X",
"Settings saved!": "Settings saved!", "Settings saved!": "Na-save ang settings!",
"Available only in Electron version!": "Available only in Electron version!" "Available only in Electron version!": "Meron lamang sa 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"
} }

View File

@ -1,62 +1,62 @@
{ {
"Home": "Home", "Home": "Accueil",
"Browse": "Browse", "Browse": "Explorer",
"Library": "Library", "Library": "Bibliothèque",
"Tracks": "Tracks", "Tracks": "Pistes",
"Playlists": "Playlists", "Playlists": "Playlists",
"Albums": "Albums", "Albums": "Albums",
"Artists": "Artists", "Artists": "Artistes",
"More": "More", "More": "Plus",
"Settings": "Settings", "Settings": "Paramètres",
"Downloads": "Downloads", "Downloads": "Téléchargements",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.", "Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
"Play": "Play", "Play": "Play",
"Add to library": "Add to library", "Add to library": "Add to library",
"Download": "Download", "Download": "Télécharger",
"fans": "fans", "fans": "fans",
"tracks": "tracks", "tracks": "pistes",
"Quality": "Quality", "Quality": "Qualité",
"Estimated size:": "Estimated size:", "Estimated size:": "Durée estimée:",
"Start downloading": "Start downloading", "Start downloading": "Lancer le téléchargement",
"Cancel": "Cancel", "Cancel": "Annuler",
"Stream logging is disabled!": "Stream logging is disabled!", "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.", "Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
"History": "History", "History": "Historique",
"Create new playlist": "Create new playlist", "Create new playlist": "Créer une nouvelle playlist",
"TRACKS": "TRACKS", "TRACKS": "PISTES",
"Sort by": "Sort by", "Sort by": "Trier par",
"Date Added": "Date Added", "Date Added": "Ajouté le",
"Name (A-Z)": "Name (A-Z)", "Name (A-Z)": "Nom (A-Z)",
"Artist (A-Z)": "Artist (A-Z)", "Artist (A-Z)": "Artiste (A-Z)",
"Album (A-Z)": "Album (A-Z)", "Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!", "Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
"Create playlist": "Create playlist", "Create playlist": "Créer une playlist",
"Create": "Create", "Create": "Créer",
"Add to playlist": "Add to playlist", "Add to playlist": "Ajouter à une playlist",
"Create new": "Create new", "Create new": "Create new",
"Remove": "Remove", "Remove": "Supprimer",
"Play next": "Play next", "Play next": "Play next",
"Add to queue": "Add to queue", "Add to queue": "Ajouter à la file d'attente",
"Remove from library": "Remove from library", "Remove from library": "Supprimer de la bibliothèque",
"Remove from playlist": "Remove from playlist", "Remove from playlist": "Supprimer de la playlist",
"Play track mix": "Play track mix", "Play track mix": "Play track mix",
"Go to": "Go to", "Go to": "Go to",
"Track Mix": "Track Mix", "Track Mix": "Track Mix",
"Duration": "Duration", "Duration": "Durée",
"Released": "Released", "Released": "Released",
"Disk": "Disk", "Disk": "Disque",
"albums": "albums", "albums": "albums",
"Play top": "Play top", "Play top": "Play top",
"Radio": "Radio", "Radio": "Radio",
"Show all albums": "Show all albums", "Show all albums": "Afficher tous les albums",
"Show all singles": "Show all singles", "Show all singles": "Afficher tous les singles",
"Show more": "Show more", "Show more": "Afficher plus",
"Downloaded": "Downloaded", "Downloaded": "Téléchargés",
"Queue": "Queue", "Queue": "Queue",
"Total": "Total", "Total": "Total",
"Stop": "Stop", "Stop": "Arrêter",
"Start": "Start", "Start": "Start",
"Show folder": "Show folder", "Show folder": "Afficher le dossier",
"Clear queue": "Clear queue", "Clear queue": "Clear queue",
"Playing from": "Playing from", "Playing from": "Playing from",
"Info": "Info", "Info": "Info",
@ -67,46 +67,58 @@
"Source": "Source", "Source": "Source",
"ID": "ID", "ID": "ID",
"Error logging in!": "Error logging in!", "Error logging in!": "Error logging in!",
"Please try again later, or try another account.": "Please try again later, or try another account.", "Please try again later, or try another account.": "Veuillez réessayer plus tard, ou essayez avec un autre compte.",
"Logout": "Logout", "Logout": "Déconnexion",
"Login using browser": "Login using browser", "Login using browser": "Connexion via navigateur",
"Please login using your Deezer account:": "Please login using your Deezer account:", "Please login using your Deezer account:": "Veuillez vous connecter en utilisant votre compte Deezer:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:", "...or paste your ARL/Token below:": "...ou copiez votre ARL/Token ici:",
"ARL/Token": "ARL/Token", "ARL/Token": "ARL/Token",
"Login": "Login", "Login": "Connexion",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.", "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!", "Only in Electron version!": "Uniquement en version Electron !",
"Search results for:": "Search results for:", "Search results for:": "Résultats de la recherche pour:",
"Error loading data!": "Error loading data!", "Error loading data!": "Error loading data!",
"Try again later!": "Try again later!", "Try again later!": "Réessayez plus tard !",
"Search": "Search", "Search": "Recherche",
"Streaming Quality": "Streaming Quality", "Streaming Quality": "Qualité en streaming",
"Download Quality": "Download Quality", "Download Quality": "Qualité de téléchargement",
"Downloads Directory": "Downloads Directory", "Downloads Directory": "Chemin de sauvegarde",
"Simultaneous downloads": "Simultaneous downloads", "Simultaneous downloads": "Limite téléchargements simultanés",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.", "Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
"Show download dialog": "Show download dialog", "Show download dialog": "Show download dialog",
"Create folders for artists": "Create folders for artists", "Create folders for artists": "Générer des dossiers par artiste",
"Create folders for albums": "Create folders for albums", "Create folders for albums": "Générer des dossiers par album",
"Download lyrics": "Download lyrics", "Download lyrics": "Télécharger les paroles",
"Variables": "Variables", "Variables": "Variables",
"UI": "UI", "UI": "Interface",
"Show autocomplete in search": "Show autocomplete in search", "Show autocomplete in search": "Show autocomplete in search",
"Integrations": "Integrations", "Integrations": "Intégrations",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.", "This allows listening history, flow and recommendations to work properly.": "Cela permet à l'historique des titres écoutés, flow et aux recommandations de fonctionner correctement.",
"Log track listens to Deezer": "Log track listens to Deezer", "Log track listens to Deezer": "Log track listens to Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.", "Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
"Login with LastFM": "Login with LastFM", "Login with LastFM": "Login with LastFM",
"Disconnect LastFM": "Disconnect LastFM", "Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Requires restart to apply!", "Requires restart to apply!": "Redémarrage nécessaire pour prendre effet !",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!", "Enable Discord Rich Presence, requires restart to toggle!": "Activer la présence Discord, nécessite un redémarrage pour prendre effet !",
"Discord Rich Presence": "Discord Rich Presence", "Discord Rich Presence": "Présence Discord",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!", "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 !",
"Discord Join Button": "Discord Join Button", "Discord Join Button": "Bouton rejoindre sur Discord",
"Other": "Other", "Other": "Autre",
"Minimize to tray": "Minimize to tray", "Minimize to tray": "Réduire dans la zone de notification",
"Don't minimize to tray": "Don't minimize to tray", "Don't minimize to tray": "Ne pas réduire dans la zone de notification",
"Close on exit": "Close on exit", "Close on exit": "Close on exit",
"Settings saved!": "Settings saved!", "Settings saved!": "Paramètres sauvegardés !",
"Available only in Electron version!": "Available only in Electron version!" "Available only in Electron version!": "Uniquement disponible en version 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",
"Discord": "Discord",
"Telegram Android Group": "Telegram Android Group",
"Credits:": "Credits:",
"Agree": "Agree"
} }

View File

@ -108,5 +108,17 @@
"Don't minimize to tray": "Don't minimize to tray", "Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit", "Close on exit": "Close on exit",
"Settings saved!": "Settings saved!", "Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!" "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"
} }

View File

@ -108,5 +108,17 @@
"Don't minimize to tray": "Don't minimize to tray", "Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit", "Close on exit": "Close on exit",
"Settings saved!": "Settings saved!", "Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!" "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"
} }

View File

@ -108,5 +108,17 @@
"Don't minimize to tray": "Don't minimize to tray", "Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit", "Close on exit": "Close on exit",
"Settings saved!": "Settings saved!", "Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!" "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"
} }

View File

@ -1,14 +1,14 @@
{ {
"Home": "Home", "Home": "Kezdőlap",
"Browse": "Browse", "Browse": "Böngészés",
"Library": "Library", "Library": "Könyvtár",
"Tracks": "Tracks", "Tracks": "Dalok",
"Playlists": "Playlists", "Playlists": "Lejátszási listák",
"Albums": "Albums", "Albums": "Albumok",
"Artists": "Artists", "Artists": "Előadók",
"More": "More", "More": "Továbbiak",
"Settings": "Settings", "Settings": "Beállítások",
"Downloads": "Downloads", "Downloads": "Letöltések",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.", "Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
"Play": "Play", "Play": "Play",
"Add to library": "Add to library", "Add to library": "Add to library",
@ -108,5 +108,17 @@
"Don't minimize to tray": "Don't minimize to tray", "Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit", "Close on exit": "Close on exit",
"Settings saved!": "Settings saved!", "Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!" "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"
} }

View File

@ -1,112 +1,124 @@
{ {
"Home": "Home", "Home": "Beranda",
"Browse": "Browse", "Browse": "Telusuri",
"Library": "Library", "Library": "Koleksi",
"Tracks": "Tracks", "Tracks": "Lagu",
"Playlists": "Playlists", "Playlists": "Daftar Putar",
"Albums": "Albums", "Albums": "Album",
"Artists": "Artists", "Artists": "Artis",
"More": "More", "More": "Lebih banyak",
"Settings": "Settings", "Settings": "Pengaturan",
"Downloads": "Downloads", "Downloads": "Unduhan",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.", "Search or paste Deezer URL. Use / to quickly focus.": "Cari atau tempel URL Deezer. Gunakan \"/\" untuk fokus dengan cepat.",
"Play": "Play", "Play": "Putar",
"Add to library": "Add to library", "Add to library": "Tambahkan ke koleksi",
"Download": "Download", "Download": "Unduh",
"fans": "fans", "fans": "penggemar",
"tracks": "tracks", "tracks": "lagu",
"Quality": "Quality", "Quality": "Kualitas",
"Estimated size:": "Estimated size:", "Estimated size:": "Perkiraan ukuran:",
"Start downloading": "Start downloading", "Start downloading": "Mulai mengunduh",
"Cancel": "Cancel", "Cancel": "Batalkan",
"Stream logging is disabled!": "Stream logging is disabled!", "Stream logging is disabled!": "Catatan pemutaran di nonaktifkan!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.", "Enable it in settings for history to work properly.": "Aktifkan di pengaturan agar riwayat berfungsi dengan benar.",
"History": "History", "History": "Riwayat",
"Create new playlist": "Create new playlist", "Create new playlist": "Buat daftar putar baru",
"TRACKS": "TRACKS", "TRACKS": "LAGU",
"Sort by": "Sort by", "Sort by": "Urut berdasarkan",
"Date Added": "Date Added", "Date Added": "Tanggal Ditambahkan",
"Name (A-Z)": "Name (A-Z)", "Name (A-Z)": "Nama (A-Z)",
"Artist (A-Z)": "Artist (A-Z)", "Artist (A-Z)": "Artis (A-Z)",
"Album (A-Z)": "Album (A-Z)", "Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!", "Error loading lyrics or lyrics not found!": "Gagal memuat lirik atau lirik tidak tersedia!",
"Create playlist": "Create playlist", "Create playlist": "Buat daftar putar",
"Create": "Create", "Create": "Buat",
"Add to playlist": "Add to playlist", "Add to playlist": "Tambahkan ke daftar putar",
"Create new": "Create new", "Create new": "Buat baru",
"Remove": "Remove", "Remove": "Hapus",
"Play next": "Play next", "Play next": "Putar selanjutnya",
"Add to queue": "Add to queue", "Add to queue": "Tambahkan ke antrean",
"Remove from library": "Remove from library", "Remove from library": "Hapus dari koleksi",
"Remove from playlist": "Remove from playlist", "Remove from playlist": "Hapus dari daftar putar",
"Play track mix": "Play track mix", "Play track mix": "Putar lagu campuran",
"Go to": "Go to", "Go to": "Pergi ke",
"Track Mix": "Track Mix", "Track Mix": "Lagu Campuran",
"Duration": "Duration", "Duration": "Durasi",
"Released": "Released", "Released": "Dirilis",
"Disk": "Disk", "Disk": "Disk",
"albums": "albums", "albums": "album",
"Play top": "Play top", "Play top": "Mainkan populer",
"Radio": "Radio", "Radio": "Radio",
"Show all albums": "Show all albums", "Show all albums": "Tampilkan semua album",
"Show all singles": "Show all singles", "Show all singles": "Tampilkan semua single",
"Show more": "Show more", "Show more": "Tampilkan lebih banyak",
"Downloaded": "Downloaded", "Downloaded": "Terunduh",
"Queue": "Queue", "Queue": "Antrean",
"Total": "Total", "Total": "Jumlah",
"Stop": "Stop", "Stop": "Berhenti",
"Start": "Start", "Start": "Mulai",
"Show folder": "Show folder", "Show folder": "Tampilkan folder",
"Clear queue": "Clear queue", "Clear queue": "Bersihkan antrean",
"Playing from": "Playing from", "Playing from": "Memainkan dari",
"Info": "Info", "Info": "Info",
"Lyrics": "Lyrics", "Lyrics": "Lirik",
"Track number": "Track number", "Track number": "Nomor lagu",
"Disk number": "Disk number", "Disk number": "Nomor disk",
"Explicit": "Explicit", "Explicit": "Eksplisit",
"Source": "Source", "Source": "Sumber",
"ID": "ID", "ID": "ID",
"Error logging in!": "Error logging in!", "Error logging in!": "Gagal masuk!",
"Please try again later, or try another account.": "Please try again later, or try another account.", "Please try again later, or try another account.": "Coba lagi nanti, atau coba akun lain.",
"Logout": "Logout", "Logout": "Keluar",
"Login using browser": "Login using browser", "Login using browser": "Masuk menggunakan browser",
"Please login using your Deezer account:": "Please login using your Deezer account:", "Please login using your Deezer account:": "Silakan masuk menggunakan akun Deezer anda:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:", "...or paste your ARL/Token below:": "...atau tempelkan ARL/Token dibawah ini:",
"ARL/Token": "ARL/Token", "ARL/Token": "ARL/Token",
"Login": "Login", "Login": "Masuk",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.", "By using this program, you disagree with Deezer's ToS.": "Dengan menggunakan program ini, kamu tidak setuju dengan ToS Deezer.",
"Only in Electron version!": "Only in Electron version!", "Only in Electron version!": "Hanya dalam versi Electron!",
"Search results for:": "Search results for:", "Search results for:": "Hasil pencarian untuk:",
"Error loading data!": "Error loading data!", "Error loading data!": "Gagal memuat data!",
"Try again later!": "Try again later!", "Try again later!": "Coba lagi nanti!",
"Search": "Search", "Search": "Cari",
"Streaming Quality": "Streaming Quality", "Streaming Quality": "Kualitas pemutaran",
"Download Quality": "Download Quality", "Download Quality": "Kualitas unduhan",
"Downloads Directory": "Downloads Directory", "Downloads Directory": "Folder Unduhan",
"Simultaneous downloads": "Simultaneous downloads", "Simultaneous downloads": "Unduhan serentak",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.", "Always show download confirm dialog before downloading.": "Selalu tampilkan dialog konfirmasi unduhan sebelum mengunduh.",
"Show download dialog": "Show download dialog", "Show download dialog": "Tampilkan dialog unduhan",
"Create folders for artists": "Create folders for artists", "Create folders for artists": "Buat folder untuk artis",
"Create folders for albums": "Create folders for albums", "Create folders for albums": "Buat folder untuk album",
"Download lyrics": "Download lyrics", "Download lyrics": "Unduh lirik",
"Variables": "Variables", "Variables": "Variabel",
"UI": "UI", "UI": "UI",
"Show autocomplete in search": "Show autocomplete in search", "Show autocomplete in search": "Tampilkan isi otomatis di pencarian",
"Integrations": "Integrations", "Integrations": "Integrasi",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.", "This allows listening history, flow and recommendations to work properly.": "Hal ini memungkinkan riwayat mendengarkan, aliran, dan rekomendasi berfungsi dengan baik.",
"Log track listens to Deezer": "Log track listens to Deezer", "Log track listens to Deezer": "Catat aktifitas mendengarkan lagu ke Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.", "Connect your LastFM account to allow scrobbling.": "Hubungkan ke akun LastFM mu untuk mengijinkan scrobbling.",
"Login with LastFM": "Login with LastFM", "Login with LastFM": "Masuk dengan LastFM",
"Disconnect LastFM": "Disconnect LastFM", "Disconnect LastFM": "Putuskan LastFM",
"Requires restart to apply!": "Requires restart to apply!", "Requires restart to apply!": "Mulai ulang untuk menerapkan!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!", "Enable Discord Rich Presence, requires restart to toggle!": "Aktifkan Discord Rich Presence, perlu dimulai ulang untuk beralih!",
"Discord Rich Presence": "Discord Rich Presence", "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!", "Enable Discord join button for syncing tracks, requires restart to toggle!": "Aktifkan tombol bergabung Discord untuk menyinkronkan lagu, perlu dimulai ulang untuk beralih!",
"Discord Join Button": "Discord Join Button", "Discord Join Button": "Tombol Bergabung Discord",
"Other": "Other", "Other": "Lainnya",
"Minimize to tray": "Minimize to tray", "Minimize to tray": "Minimalkan ke Tray",
"Don't minimize to tray": "Don't minimize to tray", "Don't minimize to tray": "Jangan minimalkan ke tray",
"Close on exit": "Close on exit", "Close on exit": "Tutup saat keluar",
"Settings saved!": "Settings saved!", "Settings saved!": "Pengaturan tersimpan!",
"Available only in Electron version!": "Available only in Electron version!" "Available only in Electron version!": "Hanya tersedia di versi 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",
"Discord": "Discord",
"Telegram Android Group": "Telegram Android Group",
"Credits:": "Credits:",
"Agree": "Agree"
} }

View File

@ -1,112 +1,124 @@
{ {
"Home": "Home", "Home": "Home",
"Browse": "Browse", "Browse": "Sfoglia",
"Library": "Library", "Library": "Libreria",
"Tracks": "Tracks", "Tracks": "Brani",
"Playlists": "Playlists", "Playlists": "Playlist",
"Albums": "Albums", "Albums": "Album",
"Artists": "Artists", "Artists": "Artisti",
"More": "More", "More": "Altro",
"Settings": "Settings", "Settings": "Impostazioni",
"Downloads": "Downloads", "Downloads": "Download",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.", "Search or paste Deezer URL. Use / to quickly focus.": "Cerca qui o incolla un URL di Deezer. Usa \"/\" per mettere a fuoco questa barra.",
"Play": "Play", "Play": "Play",
"Add to library": "Add to library", "Add to library": "Aggiungi alla libreria",
"Download": "Download", "Download": "Scarica",
"fans": "fans", "fans": "fan",
"tracks": "tracks", "tracks": "brani",
"Quality": "Quality", "Quality": "Qualità",
"Estimated size:": "Estimated size:", "Estimated size:": "Dimensione stimata:",
"Start downloading": "Start downloading", "Start downloading": "Inizia il download",
"Cancel": "Cancel", "Cancel": "Annulla",
"Stream logging is disabled!": "Stream logging is disabled!", "Stream logging is disabled!": "Il logging delle stream è disabilitato!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.", "Enable it in settings for history to work properly.": "Abilitalo nelle impostazioni per permettere alla cronologia di funzionare correttamente.",
"History": "History", "History": "Cronologia",
"Create new playlist": "Create new playlist", "Create new playlist": "Crea una playlist",
"TRACKS": "TRACKS", "TRACKS": "BRANI",
"Sort by": "Sort by", "Sort by": "Ordina per",
"Date Added": "Date Added", "Date Added": "Data di aggiunta",
"Name (A-Z)": "Name (A-Z)", "Name (A-Z)": "Nome (A-Z)",
"Artist (A-Z)": "Artist (A-Z)", "Artist (A-Z)": "Artista (A-Z)",
"Album (A-Z)": "Album (A-Z)", "Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!", "Error loading lyrics or lyrics not found!": "Errore nel caricare i testi o testi non trovati!",
"Create playlist": "Create playlist", "Create playlist": "Crea playlist",
"Create": "Create", "Create": "Crea",
"Add to playlist": "Add to playlist", "Add to playlist": "Aggiungi a playlist",
"Create new": "Create new", "Create new": "Crea nuova",
"Remove": "Remove", "Remove": "Rimuovi",
"Play next": "Play next", "Play next": "Riproduci subito dopo",
"Add to queue": "Add to queue", "Add to queue": "Aggiungi alla coda",
"Remove from library": "Remove from library", "Remove from library": "Rimuovi dalla libreria",
"Remove from playlist": "Remove from playlist", "Remove from playlist": "Rimuovi dalla playlist",
"Play track mix": "Play track mix", "Play track mix": "Riproduci mix di brani",
"Go to": "Go to", "Go to": "Vai a",
"Track Mix": "Track Mix", "Track Mix": "Mix Di Tracce",
"Duration": "Duration", "Duration": "Durata",
"Released": "Released", "Released": "Data di uscita",
"Disk": "Disk", "Disk": "Disco",
"albums": "albums", "albums": "album",
"Play top": "Play top", "Play top": "Riproduci dall'inizio",
"Radio": "Radio", "Radio": "Radio",
"Show all albums": "Show all albums", "Show all albums": "Mostra tutti gli album",
"Show all singles": "Show all singles", "Show all singles": "Mostra tutti i singoli",
"Show more": "Show more", "Show more": "Mostra di più",
"Downloaded": "Downloaded", "Downloaded": "Scaricato",
"Queue": "Queue", "Queue": "Coda",
"Total": "Total", "Total": "Totale",
"Stop": "Stop", "Stop": "Stop",
"Start": "Start", "Start": "Avvia",
"Show folder": "Show folder", "Show folder": "Mostra cartella",
"Clear queue": "Clear queue", "Clear queue": "Pulisci la coda",
"Playing from": "Playing from", "Playing from": "Riproduzione da",
"Info": "Info", "Info": "Informazioni",
"Lyrics": "Lyrics", "Lyrics": "Testo",
"Track number": "Track number", "Track number": "Numero della traccia",
"Disk number": "Disk number", "Disk number": "Numero del disco",
"Explicit": "Explicit", "Explicit": "Esplicito",
"Source": "Source", "Source": "Fonte",
"ID": "ID", "ID": "ID",
"Error logging in!": "Error logging in!", "Error logging in!": "Errore durante il login!",
"Please try again later, or try another account.": "Please try again later, or try another account.", "Please try again later, or try another account.": "Riprova più tardi, o prova un altro account.",
"Logout": "Logout", "Logout": "Disconnettiti",
"Login using browser": "Login using browser", "Login using browser": "Accedi utilizzando il browser",
"Please login using your Deezer account:": "Please login using your Deezer account:", "Please login using your Deezer account:": "Effettua il login usando il tuo account Deezer:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:", "...or paste your ARL/Token below:": "...o incolla il tuo ARL/Token qui sotto:",
"ARL/Token": "ARL/Token", "ARL/Token": "ARL/Token",
"Login": "Login", "Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.", "By using this program, you disagree with Deezer's ToS.": "Utilizzando questo programma, non sei d'accordo con il ToS di Deezer.",
"Only in Electron version!": "Only in Electron version!", "Only in Electron version!": "Solo nella versione Electron!",
"Search results for:": "Search results for:", "Search results for:": "Risultati della ricerca per:",
"Error loading data!": "Error loading data!", "Error loading data!": "Errore nel caricamento dei dati!",
"Try again later!": "Try again later!", "Try again later!": "Riprova più tardi!",
"Search": "Search", "Search": "Cerca",
"Streaming Quality": "Streaming Quality", "Streaming Quality": "Qualità Streaming",
"Download Quality": "Download Quality", "Download Quality": "Qualità Download",
"Downloads Directory": "Downloads Directory", "Downloads Directory": "Cartella Download",
"Simultaneous downloads": "Simultaneous downloads", "Simultaneous downloads": "Download simultanei",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.", "Always show download confirm dialog before downloading.": "Mostra sempre la conferma di download prima di scaricare.",
"Show download dialog": "Show download dialog", "Show download dialog": "Mostra finestra di download",
"Create folders for artists": "Create folders for artists", "Create folders for artists": "Crea cartelle per gli artisti",
"Create folders for albums": "Create folders for albums", "Create folders for albums": "Crea cartelle per gli album",
"Download lyrics": "Download lyrics", "Download lyrics": "Scarica testo",
"Variables": "Variables", "Variables": "Variabili",
"UI": "UI", "UI": "Interfaccia",
"Show autocomplete in search": "Show autocomplete in search", "Show autocomplete in search": "Mostra elenco autocompletamento",
"Integrations": "Integrations", "Integrations": "Integrazioni",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.", "This allows listening history, flow and recommendations to work properly.": "Questo permette di usare la cronologia, il Flow e le raccomandazioni per funzionare correttamente.",
"Log track listens to Deezer": "Log track listens to Deezer", "Log track listens to Deezer": "Registra gli ascolti delle tracce a Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.", "Connect your LastFM account to allow scrobbling.": "Collega il tuo account LastFM per consentire lo scrobbling.",
"Login with LastFM": "Login with LastFM", "Login with LastFM": "Accedi con LastFM",
"Disconnect LastFM": "Disconnect LastFM", "Disconnect LastFM": "Disconnetti LastFM",
"Requires restart to apply!": "Requires restart to apply!", "Requires restart to apply!": "Richiede un riavvio!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!", "Enable Discord Rich Presence, requires restart to toggle!": "Abilita Discord Rich Presence, richiede il riavvio!",
"Discord Rich Presence": "Discord Rich Presence", "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!", "Enable Discord join button for syncing tracks, requires restart to toggle!": "Abilita il pulsante \"join\" di Discord per sincronizzare le tracce, richiede il riavvio!",
"Discord Join Button": "Discord Join Button", "Discord Join Button": "Pulsante Unisciti di Discord",
"Other": "Other", "Other": "Altro",
"Minimize to tray": "Minimize to tray", "Minimize to tray": "Minimizza ad icona",
"Don't minimize to tray": "Don't minimize to tray", "Don't minimize to tray": "Non minimizzare a icona",
"Close on exit": "Close on exit", "Close on exit": "Chiudi all'uscita",
"Settings saved!": "Settings saved!", "Settings saved!": "Impostazioni salvate!",
"Available only in Electron version!": "Available only in Electron version!" "Available only in Electron version!": "Disponibile solo nella versione Electron!",
"Crossfade (ms)": "Dissolvenza (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"
} }

View File

@ -108,5 +108,17 @@
"Don't minimize to tray": "Don't minimize to tray", "Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit", "Close on exit": "Close on exit",
"Settings saved!": "Settings saved!", "Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!" "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"
} }

View File

@ -1,112 +1,124 @@
{ {
"Home": "Home", "Home": "Strona główna",
"Browse": "Browse", "Browse": "Przeglądaj",
"Library": "Library", "Library": "Biblioteka",
"Tracks": "Tracks", "Tracks": "Utwory",
"Playlists": "Playlists", "Playlists": "Playlisty",
"Albums": "Albums", "Albums": "Albumy",
"Artists": "Artists", "Artists": "Wykonawcy",
"More": "More", "More": "Więcej",
"Settings": "Settings", "Settings": "Ustawienia",
"Downloads": "Downloads", "Downloads": "Pobrane",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.", "Search or paste Deezer URL. Use / to quickly focus.": "Wyszukaj lub wklej adres URL Deezera. Wciśnij \"/\" aby szybko uaktywnić pasek wyszukiwania.",
"Play": "Play", "Play": "Odtwórz",
"Add to library": "Add to library", "Add to library": "Dodaj do biblioteki",
"Download": "Download", "Download": "Pobierz",
"fans": "fans", "fans": "fani",
"tracks": "tracks", "tracks": "utwory",
"Quality": "Quality", "Quality": "Jakość",
"Estimated size:": "Estimated size:", "Estimated size:": "Szacowany rozmiar:",
"Start downloading": "Start downloading", "Start downloading": "Rozpocznij pobieranie",
"Cancel": "Cancel", "Cancel": "Anuluj",
"Stream logging is disabled!": "Stream logging is disabled!", "Stream logging is disabled!": "Rejestrowanie strumieniowania jest wyłączone!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.", "Enable it in settings for history to work properly.": "Włącz to w ustawieniach, aby historia działała prawidłowo.",
"History": "History", "History": "Historia",
"Create new playlist": "Create new playlist", "Create new playlist": "Utwórz nową playlistę",
"TRACKS": "TRACKS", "TRACKS": "UTWORY",
"Sort by": "Sort by", "Sort by": "Sortuj wg",
"Date Added": "Date Added", "Date Added": "Data dodania",
"Name (A-Z)": "Name (A-Z)", "Name (A-Z)": "Nazwa (A-Z)",
"Artist (A-Z)": "Artist (A-Z)", "Artist (A-Z)": "Artysta (A-Z)",
"Album (A-Z)": "Album (A-Z)", "Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!", "Error loading lyrics or lyrics not found!": "Wystąpił błąd podczas ładowania tekstu lub tekst nie został znaleziony!",
"Create playlist": "Create playlist", "Create playlist": "Utwórz playlistę",
"Create": "Create", "Create": "Utwórz",
"Add to playlist": "Add to playlist", "Add to playlist": "Dodaj do playlisty",
"Create new": "Create new", "Create new": "Utwórz nową",
"Remove": "Remove", "Remove": "Usuń",
"Play next": "Play next", "Play next": "Odtwarzaj następne",
"Add to queue": "Add to queue", "Add to queue": "Dodaj do kolejki",
"Remove from library": "Remove from library", "Remove from library": "Usuń z biblioteki",
"Remove from playlist": "Remove from playlist", "Remove from playlist": "Usuń z playlisty",
"Play track mix": "Play track mix", "Play track mix": "Odtwórz mieszane utwory",
"Go to": "Go to", "Go to": "Przejdź do",
"Track Mix": "Track Mix", "Track Mix": "Mieszaj utwory",
"Duration": "Duration", "Duration": "Czas trwania",
"Released": "Released", "Released": "Wydano",
"Disk": "Disk", "Disk": "Płyta",
"albums": "albums", "albums": "albumy",
"Play top": "Play top", "Play top": "Odtwarzaj topkę",
"Radio": "Radio", "Radio": "Radio",
"Show all albums": "Show all albums", "Show all albums": "Pokaż wszystkie albumy",
"Show all singles": "Show all singles", "Show all singles": "Pokaż wszystkie single",
"Show more": "Show more", "Show more": "Pokaż więcej",
"Downloaded": "Downloaded", "Downloaded": "Pobrane",
"Queue": "Queue", "Queue": "Kolejka",
"Total": "Total", "Total": "Łącznie",
"Stop": "Stop", "Stop": "Zatrzymaj",
"Start": "Start", "Start": "Rozpocznij",
"Show folder": "Show folder", "Show folder": "Pokaż folder",
"Clear queue": "Clear queue", "Clear queue": "Wyczyść kolejkę",
"Playing from": "Playing from", "Playing from": "Odtwarzanie z",
"Info": "Info", "Info": "Info",
"Lyrics": "Lyrics", "Lyrics": "Tekst",
"Track number": "Track number", "Track number": "Numer utworu",
"Disk number": "Disk number", "Disk number": "Numer płyty",
"Explicit": "Explicit", "Explicit": "Wulgarne",
"Source": "Source", "Source": "Źródło",
"ID": "ID", "ID": "ID",
"Error logging in!": "Error logging in!", "Error logging in!": "Błąd podczas logowania!",
"Please try again later, or try another account.": "Please try again later, or try another account.", "Please try again later, or try another account.": "Spróbuj ponownie później lub spróbuj innego konta.",
"Logout": "Logout", "Logout": "Wyloguj",
"Login using browser": "Login using browser", "Login using browser": "Zaloguj się za pomocą przeglądarki",
"Please login using your Deezer account:": "Please login using your Deezer account:", "Please login using your Deezer account:": "Zaloguj się używając swojego konta Deezer:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:", "...or paste your ARL/Token below:": "...lub wklej ARL/Token poniżej:",
"ARL/Token": "ARL/Token", "ARL/Token": "ARL/Token",
"Login": "Login", "Login": "Zaloguj",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.", "By using this program, you disagree with Deezer's ToS.": "Korzystając z tego programu, nie zgadzasz się z ToS Deezera.",
"Only in Electron version!": "Only in Electron version!", "Only in Electron version!": "Tylko w wersji Electron!",
"Search results for:": "Search results for:", "Search results for:": "Wyniki wyszukiwania dla:",
"Error loading data!": "Error loading data!", "Error loading data!": "Błąd ładowania danych!",
"Try again later!": "Try again later!", "Try again later!": "Spróbuj ponownie później!",
"Search": "Search", "Search": "Szukaj",
"Streaming Quality": "Streaming Quality", "Streaming Quality": "Jakość odtwarzania",
"Download Quality": "Download Quality", "Download Quality": "Jakość pobierania",
"Downloads Directory": "Downloads Directory", "Downloads Directory": "Katalog pobierania",
"Simultaneous downloads": "Simultaneous downloads", "Simultaneous downloads": "Jednoczesne pobieranie",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.", "Always show download confirm dialog before downloading.": "Zawsze proś o potwierdzenie przed pobieraniem.",
"Show download dialog": "Show download dialog", "Show download dialog": "Pokazuj okno dialogowe pobierania",
"Create folders for artists": "Create folders for artists", "Create folders for artists": "Twórz foldery wykonawców",
"Create folders for albums": "Create folders for albums", "Create folders for albums": "Twórz foldery albumów",
"Download lyrics": "Download lyrics", "Download lyrics": "Pobierz tekst",
"Variables": "Variables", "Variables": "Zmienne",
"UI": "UI", "UI": "Interfejs",
"Show autocomplete in search": "Show autocomplete in search", "Show autocomplete in search": "Pokaż autouzupełnianie w wyszukiwarce",
"Integrations": "Integrations", "Integrations": "Połącz",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.", "This allows listening history, flow and recommendations to work properly.": "Pozwala na działanie historii odtwarzania, rekomendacji i automatycznych playlist.",
"Log track listens to Deezer": "Log track listens to Deezer", "Log track listens to Deezer": "Zapisuj historię odtwarzania na koncie Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.", "Connect your LastFM account to allow scrobbling.": "Połącz swoje konto LastFM, aby umożliwić scrobbling.",
"Login with LastFM": "Login with LastFM", "Login with LastFM": "Zaloguj używając LastFM",
"Disconnect LastFM": "Disconnect LastFM", "Disconnect LastFM": "Odłącz LastFM",
"Requires restart to apply!": "Requires restart to apply!", "Requires restart to apply!": "Zmiany wymagają ponownego uruchomienia!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!", "Enable Discord Rich Presence, requires restart to toggle!": "Włącz Szczegółowy Widok Discord, wymaga ponownego uruchomienia!",
"Discord Rich Presence": "Discord Rich Presence", "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!", "Enable Discord join button for syncing tracks, requires restart to toggle!": "Włącz w Discordzie przycisk dołączenia, aby synchronizować utwory, wymaga ponownego uruchomienia!",
"Discord Join Button": "Discord Join Button", "Discord Join Button": "Przycisk dołączenia Discord",
"Other": "Other", "Other": "Inne",
"Minimize to tray": "Minimize to tray", "Minimize to tray": "Minimalizuj do zasobnika",
"Don't minimize to tray": "Don't minimize to tray", "Don't minimize to tray": "Nie minimalizuj do zasobnika",
"Close on exit": "Close on exit", "Close on exit": "Wyłącz po zamknięciu okna",
"Settings saved!": "Settings saved!", "Settings saved!": "Ustawienia zapisane!",
"Available only in Electron version!": "Available only in Electron version!" "Available only in Electron version!": "Dostępne tylko w wersji Electron!",
"Crossfade (ms)": "Przejście (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"
} }

View File

@ -1,54 +1,54 @@
{ {
"Home": "Home", "Home": "Início",
"Browse": "Browse", "Browse": "Navegar",
"Library": "Library", "Library": "Biblioteca",
"Tracks": "Tracks", "Tracks": "Faixas",
"Playlists": "Playlists", "Playlists": "Playlists",
"Albums": "Albums", "Albums": "Álbuns",
"Artists": "Artists", "Artists": "Artistas",
"More": "More", "More": "More",
"Settings": "Settings", "Settings": "Configurações",
"Downloads": "Downloads", "Downloads": "Downloads",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.", "Search or paste Deezer URL. Use / to quickly focus.": "Procure ou cole a URL do intérprete. Use \"/\" para focar rapidamente.",
"Play": "Play", "Play": "Play",
"Add to library": "Add to library", "Add to library": "Adicionar à biblioteca",
"Download": "Download", "Download": "Download",
"fans": "fans", "fans": "fans",
"tracks": "tracks", "tracks": "faixas",
"Quality": "Quality", "Quality": "Qualidade",
"Estimated size:": "Estimated size:", "Estimated size:": "Tempo estimado:",
"Start downloading": "Start downloading", "Start downloading": "Iniciar download",
"Cancel": "Cancel", "Cancel": "Cancelar",
"Stream logging is disabled!": "Stream logging is disabled!", "Stream logging is disabled!": "O registro de depuração extra está desativado!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.", "Enable it in settings for history to work properly.": "Habilite nas configurações para que o histórico funcione corretamente.",
"History": "History", "History": "Histórico",
"Create new playlist": "Create new playlist", "Create new playlist": "Criar nova playlist",
"TRACKS": "TRACKS", "TRACKS": "FAIXAS",
"Sort by": "Sort by", "Sort by": "Sort by",
"Date Added": "Date Added", "Date Added": "Data de adição",
"Name (A-Z)": "Name (A-Z)", "Name (A-Z)": "Nome (A-Z)",
"Artist (A-Z)": "Artist (A-Z)", "Artist (A-Z)": "Artista (A-Z)",
"Album (A-Z)": "Album (A-Z)", "Album (A-Z)": "Álbum (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!", "Error loading lyrics or lyrics not found!": "Erro ao carregar letras ou letras não encontradas!",
"Create playlist": "Create playlist", "Create playlist": "Criar playlist",
"Create": "Create", "Create": "Criar",
"Add to playlist": "Add to playlist", "Add to playlist": "Adicionar à playlist",
"Create new": "Create new", "Create new": "Criar novo",
"Remove": "Remove", "Remove": "Remover",
"Play next": "Play next", "Play next": "Reproduzir à seguir",
"Add to queue": "Add to queue", "Add to queue": "Adicionar à fila",
"Remove from library": "Remove from library", "Remove from library": "Remover da biblioteca",
"Remove from playlist": "Remove from playlist", "Remove from playlist": "Remover da playlist",
"Play track mix": "Play track mix", "Play track mix": "Reproduzir mistura de trilha",
"Go to": "Go to", "Go to": "Ir para",
"Track Mix": "Track Mix", "Track Mix": "Faixa Mix",
"Duration": "Duration", "Duration": "Duração",
"Released": "Released", "Released": "Lançamento",
"Disk": "Disk", "Disk": "Disco",
"albums": "albums", "albums": "álbuns",
"Play top": "Play top", "Play top": "Reproduzir no topo",
"Radio": "Radio", "Radio": "Rádio",
"Show all albums": "Show all albums", "Show all albums": "Mostrar todos os álbuns",
"Show all singles": "Show all singles", "Show all singles": "Show all singles",
"Show more": "Show more", "Show more": "Show more",
"Downloaded": "Downloaded", "Downloaded": "Downloaded",
@ -99,14 +99,26 @@
"Login with LastFM": "Login with LastFM", "Login with LastFM": "Login with LastFM",
"Disconnect LastFM": "Disconnect LastFM", "Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Requires restart to apply!", "Requires restart to apply!": "Requires restart to apply!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!", "Enable Discord Rich Presence, requires restart to toggle!": "Ativar o Rich Presence do Discord, requer reiniciar para alternar!",
"Discord Rich Presence": "Discord Rich Presence", "Discord Rich Presence": "Habilitar o Discord",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!", "Enable Discord join button for syncing tracks, requires restart to toggle!": "Ativar o botão de adesão do Discord para sincronizar faixas requer reinicialização para alternar!",
"Discord Join Button": "Discord Join Button", "Discord Join Button": "Botão de Entrada Discord",
"Other": "Other", "Other": "Outros",
"Minimize to tray": "Minimize to tray", "Minimize to tray": "Minimizar para a bandeja",
"Don't minimize to tray": "Don't minimize to tray", "Don't minimize to tray": "Minimizar automaticamente para a bandeja",
"Close on exit": "Close on exit", "Close on exit": "Fechar ao sair",
"Settings saved!": "Settings saved!", "Settings saved!": "Configurações salvas!",
"Available only in Electron version!": "Available only in Electron version!" "Available only in Electron version!": "Disponível apenas na versão completa!",
"Crossfade (ms)": "Transição suave (ms)",
"Select primary color": "Escolha a cor primária",
"Light theme": "Tema Claro",
"Create folders for playlists": "Criar pastas para playlists",
"About": "Sobre",
"Links:": "Links:",
"Telegram Releases": "Versões no Telegram",
"Telegram Group": "Grupo do Telegram",
"Discord": "Discord",
"Telegram Android Group": "Grupo Android do Telegram",
"Credits:": "Créditos:",
"Agree": "Concordo"
} }

View File

@ -1,112 +1,124 @@
{ {
"Home": "Home", "Home": "Home",
"Browse": "Browse", "Browse": "Caută",
"Library": "Library", "Library": "Librărie",
"Tracks": "Tracks", "Tracks": "Piese",
"Playlists": "Playlists", "Playlists": "Playlist-uri",
"Albums": "Albums", "Albums": "Albume",
"Artists": "Artists", "Artists": "Artiști",
"More": "More", "More": "Mai mult",
"Settings": "Settings", "Settings": "Setări",
"Downloads": "Downloads", "Downloads": "Descărcări",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.", "Search or paste Deezer URL. Use / to quickly focus.": "Caută sau lipește URL-ul Deezer. Folosește \"/\" pentru a se focaliza rapid.",
"Play": "Play", "Play": "Play",
"Add to library": "Add to library", "Add to library": "Adaugă la librărie",
"Download": "Download", "Download": "Descărcați",
"fans": "fans", "fans": "fani",
"tracks": "tracks", "tracks": "piese",
"Quality": "Quality", "Quality": "Calitate",
"Estimated size:": "Estimated size:", "Estimated size:": "Dimensiune estimată:",
"Start downloading": "Start downloading", "Start downloading": "Începe descărcarea",
"Cancel": "Cancel", "Cancel": "Anulează",
"Stream logging is disabled!": "Stream logging is disabled!", "Stream logging is disabled!": "Stream logging-ul este dezactivat!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.", "Enable it in settings for history to work properly.": "Activați-l în setări pentru ca istoricul să funcționeze corect.",
"History": "History", "History": "Istoric",
"Create new playlist": "Create new playlist", "Create new playlist": "Crează un nou playlist",
"TRACKS": "TRACKS", "TRACKS": "PIESE",
"Sort by": "Sort by", "Sort by": "Sortează după",
"Date Added": "Date Added", "Date Added": "Dată Adăugare",
"Name (A-Z)": "Name (A-Z)", "Name (A-Z)": "Nume (A-Z)",
"Artist (A-Z)": "Artist (A-Z)", "Artist (A-Z)": "Artiști (A-Z)",
"Album (A-Z)": "Album (A-Z)", "Album (A-Z)": "Albume (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!", "Error loading lyrics or lyrics not found!": "Eroare la încărcarea versurilor sau versurile nu au fost găsite!",
"Create playlist": "Create playlist", "Create playlist": "Crează un playlist",
"Create": "Create", "Create": "Creează",
"Add to playlist": "Add to playlist", "Add to playlist": "Adaugă la un playlist",
"Create new": "Create new", "Create new": "Crează nou",
"Remove": "Remove", "Remove": "Șterge",
"Play next": "Play next", "Play next": "Redă următorul",
"Add to queue": "Add to queue", "Add to queue": "Adaugă la coadă",
"Remove from library": "Remove from library", "Remove from library": "Șterge din librărie",
"Remove from playlist": "Remove from playlist", "Remove from playlist": "Șterge din playlist",
"Play track mix": "Play track mix", "Play track mix": "Redă mix-ul piesei",
"Go to": "Go to", "Go to": "Accesați",
"Track Mix": "Track Mix", "Track Mix": "Mix-ul Piesei",
"Duration": "Duration", "Duration": "Durată",
"Released": "Released", "Released": "Lansat",
"Disk": "Disk", "Disk": "Disc",
"albums": "albums", "albums": "albume",
"Play top": "Play top", "Play top": "Redă de la început",
"Radio": "Radio", "Radio": "Radio",
"Show all albums": "Show all albums", "Show all albums": "Afișează toate albumele",
"Show all singles": "Show all singles", "Show all singles": "Arată toate melodiile",
"Show more": "Show more", "Show more": "Arată mai multe",
"Downloaded": "Downloaded", "Downloaded": "Descărcate",
"Queue": "Queue", "Queue": "Coadă",
"Total": "Total", "Total": "Total",
"Stop": "Stop", "Stop": "Stop",
"Start": "Start", "Start": "Începe",
"Show folder": "Show folder", "Show folder": "Arată folder-ul",
"Clear queue": "Clear queue", "Clear queue": "Șterge coada",
"Playing from": "Playing from", "Playing from": "Redare din",
"Info": "Info", "Info": "Informații",
"Lyrics": "Lyrics", "Lyrics": "Versuri",
"Track number": "Track number", "Track number": "Numărul piesei",
"Disk number": "Disk number", "Disk number": "Numărul discului",
"Explicit": "Explicit", "Explicit": "Explicit",
"Source": "Source", "Source": "Sursă",
"ID": "ID", "ID": "ID",
"Error logging in!": "Error logging in!", "Error logging in!": "Eroare la autentificare!",
"Please try again later, or try another account.": "Please try again later, or try another account.", "Please try again later, or try another account.": "Te rugăm să încerci din nou mai târziu, sau încearcă cu un alt cont.",
"Logout": "Logout", "Logout": "Deconectează-te",
"Login using browser": "Login using browser", "Login using browser": "Autentificare utilizând browserul",
"Please login using your Deezer account:": "Please login using your Deezer account:", "Please login using your Deezer account:": "Te rugăm să te conectezi utilizând contul tau Deezer:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:", "...or paste your ARL/Token below:": "...sau lipiți ARL/Token-ul mai jos:",
"ARL/Token": "ARL/Token", "ARL/Token": "ARL/Token",
"Login": "Login", "Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.", "By using this program, you disagree with Deezer's ToS.": "Folosind acest program, nu sunteți de acord cu ToS-ul Deezer.",
"Only in Electron version!": "Only in Electron version!", "Only in Electron version!": "Doar în versiunea Electron!",
"Search results for:": "Search results for:", "Search results for:": "Rezultatele căutării pentru:",
"Error loading data!": "Error loading data!", "Error loading data!": "Eroare la încărcarea datelor!",
"Try again later!": "Try again later!", "Try again later!": "Încearcă din nou mai târziu!",
"Search": "Search", "Search": "Caută",
"Streaming Quality": "Streaming Quality", "Streaming Quality": "Calitatea streaming-ului",
"Download Quality": "Download Quality", "Download Quality": "Calitatea descărcărilor",
"Downloads Directory": "Downloads Directory", "Downloads Directory": "Descărcați in",
"Simultaneous downloads": "Simultaneous downloads", "Simultaneous downloads": "Descărcări simultane",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.", "Always show download confirm dialog before downloading.": "Arată întotdeauna confirmarea a descărcării înainte de descărcare.",
"Show download dialog": "Show download dialog", "Show download dialog": "Arată pagina de download",
"Create folders for artists": "Create folders for artists", "Create folders for artists": "Crează foldere pentru artiști",
"Create folders for albums": "Create folders for albums", "Create folders for albums": "Crează foldere pentru albume",
"Download lyrics": "Download lyrics", "Download lyrics": "Descărcați versurile .LRC",
"Variables": "Variables", "Variables": "Variabile",
"UI": "UI", "UI": "Interfață",
"Show autocomplete in search": "Show autocomplete in search", "Show autocomplete in search": "Afișează lista de autocompletare",
"Integrations": "Integrations", "Integrations": "Integrări",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.", "This allows listening history, flow and recommendations to work properly.": "Aceasta permite folosirea istoricului, Flow-ului și recomandările pentru a funcționa corect.",
"Log track listens to Deezer": "Log track listens to Deezer", "Log track listens to Deezer": "Înregistrează ascultările la Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.", "Connect your LastFM account to allow scrobbling.": "Conectați-vă contul LastFM pentru a permite scrobbling-ul.",
"Login with LastFM": "Login with LastFM", "Login with LastFM": "Conectează-te cu LastFM",
"Disconnect LastFM": "Disconnect LastFM", "Disconnect LastFM": "Deconectează LastFM",
"Requires restart to apply!": "Requires restart to apply!", "Requires restart to apply!": "Necesită repornirea pentru a aplica!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!", "Enable Discord Rich Presence, requires restart to toggle!": "Activează Discord Rich Presence, necesită repornirea pentru a comuta!",
"Discord Rich Presence": "Discord Rich Presence", "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!", "Enable Discord join button for syncing tracks, requires restart to toggle!": "Activează butonul de join la Discord pentru sincronizarea pieselor, necesită repornire în comutator!",
"Discord Join Button": "Discord Join Button", "Discord Join Button": "Butonul de join Discord",
"Other": "Other", "Other": "Altele",
"Minimize to tray": "Minimize to tray", "Minimize to tray": "Minimizează în bara de programe",
"Don't minimize to tray": "Don't minimize to tray", "Don't minimize to tray": "Nu minimiza în bara de programe",
"Close on exit": "Close on exit", "Close on exit": "Închide la ieșire",
"Settings saved!": "Settings saved!", "Settings saved!": "Setările au fost salvate!",
"Available only in Electron version!": "Available only in Electron version!" "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",
"Discord": "Discord",
"Telegram Android Group": "Telegram Android Group",
"Credits:": "Credits:",
"Agree": "Agree"
} }

View File

@ -1,112 +1,124 @@
{ {
"Home": "Home", "Home": "Главная",
"Browse": "Browse", "Browse": "Обзор",
"Library": "Library", "Library": "Избранное",
"Tracks": "Tracks", "Tracks": "Треки",
"Playlists": "Playlists", "Playlists": "Плейлисты",
"Albums": "Albums", "Albums": "Альбомы",
"Artists": "Artists", "Artists": "Артисты",
"More": "More", "More": "Ещё",
"Settings": "Settings", "Settings": "Настройки",
"Downloads": "Downloads", "Downloads": "Загрузки",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.", "Search or paste Deezer URL. Use / to quickly focus.": "Введите запрос или ссылку. \"/\" для быстрого поиска.",
"Play": "Play", "Play": "Воспроизвести",
"Add to library": "Add to library", "Add to library": "Добавить в Избранное",
"Download": "Download", "Download": "Скачать",
"fans": "fans", "fans": "поклонники",
"tracks": "tracks", "tracks": "треки",
"Quality": "Quality", "Quality": "Качество звука",
"Estimated size:": "Estimated size:", "Estimated size:": "Приблизительный размер:",
"Start downloading": "Start downloading", "Start downloading": "Начать загрузку",
"Cancel": "Cancel", "Cancel": "Отмена",
"Stream logging is disabled!": "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.", "Enable it in settings for history to work properly.": "Включите её в настройках для работы рекомендаций.",
"History": "History", "History": "История",
"Create new playlist": "Create new playlist", "Create new playlist": "Новый плейлист",
"TRACKS": "TRACKS", "TRACKS": "Треки",
"Sort by": "Sort by", "Sort by": "Сортировать по",
"Date Added": "Date Added", "Date Added": "Дата добавления",
"Name (A-Z)": "Name (A-Z)", "Name (A-Z)": "Название (А - Я)",
"Artist (A-Z)": "Artist (A-Z)", "Artist (A-Z)": "Исполнитель (А - Я)",
"Album (A-Z)": "Album (A-Z)", "Album (A-Z)": "Альбом (A - Я)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!", "Error loading lyrics or lyrics not found!": "Ошибка получения текста!",
"Create playlist": "Create playlist", "Create playlist": "Создать плейлист",
"Create": "Create", "Create": "Создать",
"Add to playlist": "Add to playlist", "Add to playlist": "Добавить в плейлист",
"Create new": "Create new", "Create new": "Создать новый",
"Remove": "Remove", "Remove": "Удалить",
"Play next": "Play next", "Play next": "Играть следующим",
"Add to queue": "Add to queue", "Add to queue": "Добавить в очередь",
"Remove from library": "Remove from library", "Remove from library": "Удалить из Избранного",
"Remove from playlist": "Remove from playlist", "Remove from playlist": "Удалить из плейлиста",
"Play track mix": "Play track mix", "Play track mix": "Воспроизвести микс",
"Go to": "Go to", "Go to": "Перейти к",
"Track Mix": "Track Mix", "Track Mix": "Микс",
"Duration": "Duration", "Duration": "Продолжительность",
"Released": "Released", "Released": "Релиз",
"Disk": "Disk", "Disk": "Диск",
"albums": "albums", "albums": "альбомы",
"Play top": "Play top", "Play top": "Играть популярные",
"Radio": "Radio", "Radio": "Радио",
"Show all albums": "Show all albums", "Show all albums": "Показать все",
"Show all singles": "Show all singles", "Show all singles": "Показать все синглы",
"Show more": "Show more", "Show more": "Ещё",
"Downloaded": "Downloaded", "Downloaded": "Загрузки",
"Queue": "Queue", "Queue": "Очередь",
"Total": "Total", "Total": "Всего",
"Stop": "Stop", "Stop": "Остановить",
"Start": "Start", "Start": "Пуск",
"Show folder": "Show folder", "Show folder": "Открыть папку",
"Clear queue": "Clear queue", "Clear queue": "Очистить очередь",
"Playing from": "Playing from", "Playing from": "Сейчас играет",
"Info": "Info", "Info": "Инфо",
"Lyrics": "Lyrics", "Lyrics": "Текст песни",
"Track number": "Track number", "Track number": "Дорожка",
"Disk number": "Disk number", "Disk number": "Номер диска",
"Explicit": "Explicit", "Explicit": "18+",
"Source": "Source", "Source": "Источник",
"ID": "ID", "ID": "ID",
"Error logging in!": "Error logging in!", "Error logging in!": "Ошибка авторизации!",
"Please try again later, or try another account.": "Please try again later, or try another account.", "Please try again later, or try another account.": "Пожалуйста, повторите попытку позже или попробуйте другой аккаунт.",
"Logout": "Logout", "Logout": "Выход",
"Login using browser": "Login using browser", "Login using browser": "Войти через браузер",
"Please login using your Deezer account:": "Please login using your Deezer account:", "Please login using your Deezer account:": "Войдите, используя свой аккаунт Deezer:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:", "...or paste your ARL/Token below:": "...или вставьте ваш токен (ARL) ниже:",
"ARL/Token": "ARL/Token", "ARL/Token": "Токен (ARL) ",
"Login": "Login", "Login": "Вход",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.", "By using this program, you disagree with Deezer's ToS.": "Используя эту программу, вы не соглашаетесь с правилами использования Deezer.",
"Only in Electron version!": "Only in Electron version!", "Only in Electron version!": "Только в версии Electron!",
"Search results for:": "Search results for:", "Search results for:": "Результаты поиска для:",
"Error loading data!": "Error loading data!", "Error loading data!": "Ошибка при загрузке данных!",
"Try again later!": "Try again later!", "Try again later!": "Повторите попытку позже!",
"Search": "Search", "Search": "Поиск",
"Streaming Quality": "Streaming Quality", "Streaming Quality": "Качество при воспроизведении",
"Download Quality": "Download Quality", "Download Quality": "Качество при загрузке",
"Downloads Directory": "Downloads Directory", "Downloads Directory": "Папка загрузок",
"Simultaneous downloads": "Simultaneous downloads", "Simultaneous downloads": "Количество одновременных загрузок",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.", "Always show download confirm dialog before downloading.": "Подтверждать загрузки.",
"Show download dialog": "Show download dialog", "Show download dialog": "Подтверждение",
"Create folders for artists": "Create folders for artists", "Create folders for artists": "Создавать папки для исполнителей",
"Create folders for albums": "Create folders for albums", "Create folders for albums": "Создавать папки для альбомов",
"Download lyrics": "Download lyrics", "Download lyrics": "Скачивать тексты",
"Variables": "Variables", "Variables": "Переменные",
"UI": "UI", "UI": "Интерфейс",
"Show autocomplete in search": "Show autocomplete in search", "Show autocomplete in search": "Подсказки при поиске",
"Integrations": "Integrations", "Integrations": "Интеграции",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.", "This allows listening history, flow and recommendations to work properly.": "Для правильной работы Flow, рекомендаций и истории.",
"Log track listens to Deezer": "Log track listens to Deezer", "Log track listens to Deezer": "Отправлять статистику",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.", "Connect your LastFM account to allow scrobbling.": "Подключите ваш аккаунт LastFM, чтобы разрешить скробблинг.",
"Login with LastFM": "Login with LastFM", "Login with LastFM": "Авторизоваться через LastFM",
"Disconnect LastFM": "Disconnect LastFM", "Disconnect LastFM": "Отключить LastFM",
"Requires restart to apply!": "Requires restart to apply!", "Requires restart to apply!": "Требуется перезапуск приложения!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!", "Enable Discord Rich Presence, requires restart to toggle!": "Включить Discord Rich Presence, требуется перезапуск!",
"Discord Rich Presence": "Discord Rich Presence", "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!", "Enable Discord join button for syncing tracks, requires restart to toggle!": "Включить кнопку вступления Discord для синхронизации треков, требуется перезапуск!",
"Discord Join Button": "Discord Join Button", "Discord Join Button": "Кнопка \"Вступить\" в Discord",
"Other": "Other", "Other": "Другое",
"Minimize to tray": "Minimize to tray", "Minimize to tray": "Сворачивать в трей",
"Don't minimize to tray": "Don't minimize to tray", "Don't minimize to tray": "Не сворачивать в трей",
"Close on exit": "Close on exit", "Close on exit": "Закрывать при выходе",
"Settings saved!": "Settings saved!", "Settings saved!": "Настройки сохранены!",
"Available only in Electron version!": "Available only in Electron version!" "Available only in Electron version!": "Доступно только в версии на Electron!",
"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"
} }

View File

@ -1,112 +1,124 @@
{ {
"Home": "Home", "Home": "Ana Sayfa",
"Browse": "Browse", "Browse": "Gözat",
"Library": "Library", "Library": "Kütüphane",
"Tracks": "Tracks", "Tracks": "Parçalar",
"Playlists": "Playlists", "Playlists": "Oynatma listeleri",
"Albums": "Albums", "Albums": "Albümler",
"Artists": "Artists", "Artists": "Sanatçılar",
"More": "More", "More": "Daha Fazla",
"Settings": "Settings", "Settings": "Ayarlar",
"Downloads": "Downloads", "Downloads": "İndirilenler",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.", "Search or paste Deezer URL. Use / to quickly focus.": "Arama yapın veya Deezer URL'sini yapıştırın. Hızlı odaklanmak için \"/\" kullanın.",
"Play": "Play", "Play": "Oynat",
"Add to library": "Add to library", "Add to library": "Kütüphaneye ekle",
"Download": "Download", "Download": "İndir",
"fans": "fans", "fans": "hayranlar",
"tracks": "tracks", "tracks": "parçalar",
"Quality": "Quality", "Quality": "Kalite",
"Estimated size:": "Estimated size:", "Estimated size:": "Tahmini Süre:",
"Start downloading": "Start downloading", "Start downloading": "İndirmeyi başlat",
"Cancel": "Cancel", "Cancel": "İptal Et",
"Stream logging is disabled!": "Stream logging is disabled!", "Stream logging is disabled!": "Akış günlüğü devre dışı bırakıldı!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.", "Enable it in settings for history to work properly.": "Geçmişin düzgün çalışması için ayarlarda etkinleştirin.",
"History": "History", "History": "Geçmiş",
"Create new playlist": "Create new playlist", "Create new playlist": "Yeni oynatma listesi oluştur",
"TRACKS": "TRACKS", "TRACKS": "PARÇALAR",
"Sort by": "Sort by", "Sort by": "Sırala",
"Date Added": "Date Added", "Date Added": "Eklenme Tarihi",
"Name (A-Z)": "Name (A-Z)", "Name (A-Z)": "Ad (A-Z)",
"Artist (A-Z)": "Artist (A-Z)", "Artist (A-Z)": "Sanatçı (A-Z)",
"Album (A-Z)": "Album (A-Z)", "Album (A-Z)": "Albüm (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!", "Error loading lyrics or lyrics not found!": "Şarkı sözleri bulunamadı veya yüklenirken hata oluştu!",
"Create playlist": "Create playlist", "Create playlist": "Oynatma listesi oluştur",
"Create": "Create", "Create": "Oluştur",
"Add to playlist": "Add to playlist", "Add to playlist": "Oynatma listesine ekle",
"Create new": "Create new", "Create new": "Yeni oluştur",
"Remove": "Remove", "Remove": "Kaldır",
"Play next": "Play next", "Play next": "Sonrakini çal",
"Add to queue": "Add to queue", "Add to queue": "Sıraya ekle",
"Remove from library": "Remove from library", "Remove from library": "Kütüphaneden kaldır",
"Remove from playlist": "Remove from playlist", "Remove from playlist": "Oynatma listesinden kaldır",
"Play track mix": "Play track mix", "Play track mix": "Play track mix",
"Go to": "Go to", "Go to": "Git",
"Track Mix": "Track Mix", "Track Mix": "Track Mix",
"Duration": "Duration", "Duration": "Süre",
"Released": "Released", "Released": "Yayınlandı",
"Disk": "Disk", "Disk": "Disk",
"albums": "albums", "albums": "albümler",
"Play top": "Play top", "Play top": "Play top",
"Radio": "Radio", "Radio": "Radyo",
"Show all albums": "Show all albums", "Show all albums": "Tüm albümleri göster",
"Show all singles": "Show all singles", "Show all singles": "Tüm şarkıları göster",
"Show more": "Show more", "Show more": "Daha fazla göster",
"Downloaded": "Downloaded", "Downloaded": "İndirildi",
"Queue": "Queue", "Queue": "Sıra",
"Total": "Total", "Total": "Toplam",
"Stop": "Stop", "Stop": "Durdur",
"Start": "Start", "Start": "Başlat",
"Show folder": "Show folder", "Show folder": "Klasörü göster",
"Clear queue": "Clear queue", "Clear queue": "Sırayı temizle",
"Playing from": "Playing from", "Playing from": "Şuradan oynatılıyor:",
"Info": "Info", "Info": "Bilgi",
"Lyrics": "Lyrics", "Lyrics": "Şarkı sözleri",
"Track number": "Track number", "Track number": "Parça Numarası",
"Disk number": "Disk number", "Disk number": "Disk numarası",
"Explicit": "Explicit", "Explicit": "Sakıncalı",
"Source": "Source", "Source": "Kaynak",
"ID": "ID", "ID": "ID",
"Error logging in!": "Error logging in!", "Error logging in!": "Oturum açma hatası!",
"Please try again later, or try another account.": "Please try again later, or try another account.", "Please try again later, or try another account.": "Lütfen daha sonra tekrar deneyin veya başka bir hesap deneyin.",
"Logout": "Logout", "Logout": "Çıkış",
"Login using browser": "Login using browser", "Login using browser": "Tarayıcı kullanarak giriş yapın",
"Please login using your Deezer account:": "Please login using your Deezer account:", "Please login using your Deezer account:": "Lütfen Deezer hesabınızı kullanarak giriş yapın.",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:", "...or paste your ARL/Token below:": "yada ARL/Token aşağıya yapıştırın:",
"ARL/Token": "ARL/Token", "ARL/Token": "ARL/Token",
"Login": "Login", "Login": "Giriş",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.", "By using this program, you disagree with Deezer's ToS.": "Bu programı kullanarak Deezer'in Hizmet Şartları'na katılmıyorsunuz.",
"Only in Electron version!": "Only in Electron version!", "Only in Electron version!": "Sadece Electron versiyonunda!",
"Search results for:": "Search results for:", "Search results for:": "Arama sonuçları:",
"Error loading data!": "Error loading data!", "Error loading data!": "Veri yükleme hatası!",
"Try again later!": "Try again later!", "Try again later!": "Daha sonra yeniden deneyin!",
"Search": "Search", "Search": "Ara",
"Streaming Quality": "Streaming Quality", "Streaming Quality": "Yayın Kalitesi",
"Download Quality": "Download Quality", "Download Quality": "İndirme kalitesi",
"Downloads Directory": "Downloads Directory", "Downloads Directory": "İndirme Dizini",
"Simultaneous downloads": "Simultaneous downloads", "Simultaneous downloads": "Eşzamanlı indirmeler",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.", "Always show download confirm dialog before downloading.": "İndirmeden önce her zaman indirme onayı iletişim kutusunu göster.",
"Show download dialog": "Show download dialog", "Show download dialog": "İndirme iletişim kutusunu göster",
"Create folders for artists": "Create folders for artists", "Create folders for artists": "Sanatçılar için klasörler oluşturun",
"Create folders for albums": "Create folders for albums", "Create folders for albums": "Albümler için klasörler oluşturun",
"Download lyrics": "Download lyrics", "Download lyrics": ". Lrc şarkı sözlerini indir",
"Variables": "Variables", "Variables": "Değişkenler",
"UI": "UI", "UI": "Arayüz",
"Show autocomplete in search": "Show autocomplete in search", "Show autocomplete in search": "Otomatik tamamlama listesini göster",
"Integrations": "Integrations", "Integrations": "Entegrasyonlar",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.", "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": "Log track listens to Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.", "Connect your LastFM account to allow scrobbling.": "Scrobbling'e izin vermek için LastFM hesabınızı bağlayın.",
"Login with LastFM": "Login with LastFM", "Login with LastFM": "LastFM ile giriş yapın",
"Disconnect LastFM": "Disconnect LastFM", "Disconnect LastFM": "LastFM bağlantısını kes",
"Requires restart to apply!": "Requires restart to apply!", "Requires restart to apply!": "Yeniden başlatma gerekli!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!", "Enable Discord Rich Presence, requires restart to toggle!": "Discord zengin içeriği etkinleştirin, geçiş yapmak için yeniden başlatma gerekir!",
"Discord Rich Presence": "Discord Rich Presence", "Discord Rich Presence": "Discord zengin içerik",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!", "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 Join Button", "Discord Join Button": "Discord Katılma Düğmesi",
"Other": "Other", "Other": "Diğer",
"Minimize to tray": "Minimize to tray", "Minimize to tray": "Simge durumuna küçülsün",
"Don't minimize to tray": "Don't minimize to tray", "Don't minimize to tray": "Simge durumuna küçülmesin tamamen kapansın",
"Close on exit": "Close on exit", "Close on exit": "Programı kapattığınızda",
"Settings saved!": "Settings saved!", "Settings saved!": "Ayarlar kaydedildi!",
"Available only in Electron version!": "Available only in Electron version!" "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",
"Discord": "Discord",
"Telegram Android Group": "Telegram Android Group",
"Credits:": "Credits:",
"Agree": "Agree"
} }

View File

@ -1,112 +1,124 @@
{ {
"Home": "Home", "Home": "Головна",
"Browse": "Browse", "Browse": "Перегляд",
"Library": "Library", "Library": "Бібліотека",
"Tracks": "Tracks", "Tracks": "Треки",
"Playlists": "Playlists", "Playlists": "Плейлисти",
"Albums": "Albums", "Albums": "Альбоми",
"Artists": "Artists", "Artists": "Виконавці",
"More": "More", "More": "Більше",
"Settings": "Settings", "Settings": "Налаштування",
"Downloads": "Downloads", "Downloads": "Завантаження",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.", "Search or paste Deezer URL. Use / to quickly focus.": "Знайдіть або вставте URL Deezer. Використовуйте \"/\" для швидкого фокусування.",
"Play": "Play", "Play": "Відтворити",
"Add to library": "Add to library", "Add to library": "Додати до бібліотеки",
"Download": "Download", "Download": "Завантажити",
"fans": "fans", "fans": "фани",
"tracks": "tracks", "tracks": "треки",
"Quality": "Quality", "Quality": "Якість",
"Estimated size:": "Estimated size:", "Estimated size:": "Приблизний розмір:",
"Start downloading": "Start downloading", "Start downloading": "Почати завантаження",
"Cancel": "Cancel", "Cancel": "Скасувати",
"Stream logging is disabled!": "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.", "Enable it in settings for history to work properly.": "Увімкніть це в налаштуваннях, щоб історія працювала належним чином.",
"History": "History", "History": "Історія",
"Create new playlist": "Create new playlist", "Create new playlist": "Створити новий плейлист",
"TRACKS": "TRACKS", "TRACKS": "ТРЕКИ",
"Sort by": "Sort by", "Sort by": "Сортувати за",
"Date Added": "Date Added", "Date Added": "Дата додавання",
"Name (A-Z)": "Name (A-Z)", "Name (A-Z)": "Назва (А)",
"Artist (A-Z)": "Artist (A-Z)", "Artist (A-Z)": "Виконавець (А)",
"Album (A-Z)": "Album (A-Z)", "Album (A-Z)": "Альбом (А)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!", "Error loading lyrics or lyrics not found!": "Помилка при завантаженні текстів або тексту не знайдено!",
"Create playlist": "Create playlist", "Create playlist": "Створити плейлист",
"Create": "Create", "Create": "Створити",
"Add to playlist": "Add to playlist", "Add to playlist": "Додати до плейлиста",
"Create new": "Create new", "Create new": "Створити новий",
"Remove": "Remove", "Remove": "Видалити",
"Play next": "Play next", "Play next": "Відтворити наступний",
"Add to queue": "Add to queue", "Add to queue": "Додати до черги",
"Remove from library": "Remove from library", "Remove from library": "Видалити з бібліотеки",
"Remove from playlist": "Remove from playlist", "Remove from playlist": "Видалити з плейлиста",
"Play track mix": "Play track mix", "Play track mix": "Відтворити трек мікс",
"Go to": "Go to", "Go to": "Перейти до",
"Track Mix": "Track Mix", "Track Mix": "Трек Мікс",
"Duration": "Duration", "Duration": "Тривалість",
"Released": "Released", "Released": "Реліз",
"Disk": "Disk", "Disk": "Диск",
"albums": "albums", "albums": "альбоми",
"Play top": "Play top", "Play top": "Грати зверху",
"Radio": "Radio", "Radio": "Радіо",
"Show all albums": "Show all albums", "Show all albums": "Показати всі альбоми",
"Show all singles": "Show all singles", "Show all singles": "Показати всі композиції",
"Show more": "Show more", "Show more": "Показати більше",
"Downloaded": "Downloaded", "Downloaded": "Завантажено",
"Queue": "Queue", "Queue": "Черга",
"Total": "Total", "Total": "Всього",
"Stop": "Stop", "Stop": "Зупинити",
"Start": "Start", "Start": "Почати",
"Show folder": "Show folder", "Show folder": "Показати теку",
"Clear queue": "Clear queue", "Clear queue": "Очистити чергу",
"Playing from": "Playing from", "Playing from": "Відтворення з",
"Info": "Info", "Info": "Інфо",
"Lyrics": "Lyrics", "Lyrics": "Текст",
"Track number": "Track number", "Track number": "Номер треку",
"Disk number": "Disk number", "Disk number": "Номер диску",
"Explicit": "Explicit", "Explicit": "Явний",
"Source": "Source", "Source": "Джерело",
"ID": "ID", "ID": "ID",
"Error logging in!": "Error logging in!", "Error logging in!": "Помилка входу!",
"Please try again later, or try another account.": "Please try again later, or try another account.", "Please try again later, or try another account.": "Будь ласка, повторіть спробу пізніше, або спробуйте інший обліковий запис.",
"Logout": "Logout", "Logout": "Вийти",
"Login using browser": "Login using browser", "Login using browser": "Вхід через браузер",
"Please login using your Deezer account:": "Please login using your Deezer account:", "Please login using your Deezer account:": "Будь ласка, увійдіть, використовуючи свій обліковий запис Deezer:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:", "...or paste your ARL/Token below:": "...або вставте свій ARL/Token нижче:",
"ARL/Token": "ARL/Token", "ARL/Token": "ARL/токен",
"Login": "Login", "Login": "Увійти",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.", "By using this program, you disagree with Deezer's ToS.": "Використовуючи цю програму, ви не погоджуєтесь із умовами використання Deezer.",
"Only in Electron version!": "Only in Electron version!", "Only in Electron version!": "Тільки в Electron версії!",
"Search results for:": "Search results for:", "Search results for:": "Результати пошуку для:",
"Error loading data!": "Error loading data!", "Error loading data!": "Помилка завантаження даних!",
"Try again later!": "Try again later!", "Try again later!": "Повторіть спробу пізніше!",
"Search": "Search", "Search": "Пошук",
"Streaming Quality": "Streaming Quality", "Streaming Quality": "Якість потоку",
"Download Quality": "Download Quality", "Download Quality": "Якість завантаження",
"Downloads Directory": "Downloads Directory", "Downloads Directory": "Тека для завантажень",
"Simultaneous downloads": "Simultaneous downloads", "Simultaneous downloads": "Одночасних завантажень",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.", "Always show download confirm dialog before downloading.": "Завжди показувати вікно підтвердження перед завантаженням.",
"Show download dialog": "Show download dialog", "Show download dialog": "Показувати діалогове вікно звантаження",
"Create folders for artists": "Create folders for artists", "Create folders for artists": "Створити теки для виконавців",
"Create folders for albums": "Create folders for albums", "Create folders for albums": "Створити теки для альбомів",
"Download lyrics": "Download lyrics", "Download lyrics": "Завантажити тексти пісень",
"Variables": "Variables", "Variables": "Змінні",
"UI": "UI", "UI": "UI",
"Show autocomplete in search": "Show autocomplete in search", "Show autocomplete in search": "Показувати автозаповнення при пошуку",
"Integrations": "Integrations", "Integrations": "Інтеграція",
"This allows listening history, flow and recommendations to work properly.": "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", "Log track listens to Deezer": "Реєстр треків Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.", "Connect your LastFM account to allow scrobbling.": "Підключіть обліковий запис LastFM, щоб дозволити скроблінг.",
"Login with LastFM": "Login with LastFM", "Login with LastFM": "Увійти через LastFM",
"Disconnect LastFM": "Disconnect LastFM", "Disconnect LastFM": "Від'єднати LastFM",
"Requires restart to apply!": "Requires restart to apply!", "Requires restart to apply!": "Необхідно перезапустити для застосування!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!", "Enable Discord Rich Presence, requires restart to toggle!": "Увімкнути Discord Rich Presence, для використання необхідний перезапуск!",
"Discord Rich Presence": "Discord Rich Presence", "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!", "Enable Discord join button for syncing tracks, requires restart to toggle!": "Увімкніть кнопку приєднання Discord для синхронізації треків, для застосування потрібен перезапуск!",
"Discord Join Button": "Discord Join Button", "Discord Join Button": "Кнопка приєднання до Discord",
"Other": "Other", "Other": "Інше",
"Minimize to tray": "Minimize to tray", "Minimize to tray": "Згорнути в трей",
"Don't minimize to tray": "Don't minimize to tray", "Don't minimize to tray": "Не згортати в трей",
"Close on exit": "Close on exit", "Close on exit": "Закрити при виході",
"Settings saved!": "Settings saved!", "Settings saved!": "Налаштування збережено!",
"Available only in Electron version!": "Available only in Electron version!" "Available only in Electron version!": "Доступно лише в Electron версії!",
"Crossfade (ms)": "Перехресне затухання (мс)",
"Select primary color": "Виберіть основний колір",
"Light theme": "Світла тема",
"Create folders for playlists": "Створити теки для плейлистів",
"About": "Про додаток",
"Links:": "Посилання:",
"Telegram Releases": "Telegram релізи",
"Telegram Group": "Група в Telegram",
"Discord": "Discord",
"Telegram Android Group": "Група Андроїд Telegram",
"Credits:": "Автори:",
"Agree": "Погоджуюсь"
} }

View File

@ -108,5 +108,17 @@
"Don't minimize to tray": "Don't minimize to tray", "Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit", "Close on exit": "Close on exit",
"Settings saved!": "Settings saved!", "Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!" "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"
} }

View File

@ -228,15 +228,41 @@ new Vue({
//Configure html audio element //Configure html audio element
configureAudio() { configureAudio() {
//Listen position updates //Listen position updates
this.audio.addEventListener('timeupdate', () => { this.audio.addEventListener('timeupdate', async () => {
this.position = this.audio.currentTime * 1000; this.position = this.audio.currentTime * 1000;
//Gapless playback //Gapless playback
if (this.position >= (this.duration() - 7000) && this.state == 2) { if (this.position >= (this.duration() - (this.settings.crossfadeDuration + 7500)) && this.state == 2) {
if (!this.shuffle && this.repeat != 2) if (this.repeat != 2)
this.loadGapless(); this.loadGapless();
} }
//Crossfade
if (this.settings.crossfadeDuration > 0 && this.position >= (this.duration() - this.settings.crossfadeDuration) && this.state == 2 && this.gapless.audio && !this.gapless.crossfade) {
this.gapless.crossfade = true;
let currentVolume = this.audio.volume;
this.gapless.audio.play();
let volumeStep = currentVolume / (this.settings.crossfadeDuration / 50);
for (let i=0; i<(this.settings.crossfadeDuration / 50); i++) {
if ((this.audio.volume - volumeStep) > 0)
this.audio.volume -= volumeStep;
this.gapless.audio.volume += volumeStep;
await new Promise((res) => setTimeout(() => res(), 50));
}
this.audio.pause();
//Update audio
this.audio = this.gapless.audio;
this.playbackInfo = this.gapless.info;
this.track = this.gapless.track;
this.queue.index = this.gapless.index;
this.resetGapless();
this.configureAudio();
this.updateMediaSession();
await this.savePlaybackInfo();
}
//Scrobble/LogListen //Scrobble/LogListen
if (this.position >= this.duration() * 0.75) { if (this.position >= this.duration() * 0.75) {
this.logListen(); this.logListen();
@ -246,6 +272,7 @@ new Vue({
this.audio.volume = this.volume; this.audio.volume = this.volume;
this.audio.addEventListener('ended', async () => { this.audio.addEventListener('ended', async () => {
if (this.gapless.crossfade) return;
//Repeat track //Repeat track
if (this.repeat == 2) { if (this.repeat == 2) {
@ -346,20 +373,36 @@ new Vue({
//Reset gapless playback meta //Reset gapless playback meta
resetGapless() { resetGapless() {
this.gapless = {promise: null,audio: null,info: null,track: null}; this.gapless = {promise: null,audio: null,info: null,track: null,index:null};
}, },
//Load next track for gapless //Load next track for gapless
async loadGapless() { async loadGapless() {
if (this.loaders != 0 || this.gapless.promise || this.gapless.audio) return; if (this.loaders != 0 || this.gapless.promise || this.gapless.audio) return;
//Last song
if (this.queue.index+1 >= this.queue.data.length) return; //Shuffle
if (this.shuffle) {
let index = Math.round(Math.random()*this.queue.data.length) - this.queue.index;
this.gapless.track = this.queue.data[index];
this.gapless.index = index;
} else {
//Repeat list
if (this.repeat == 1 && this.queue.index == this.queue.data.length - 1) {
this.gapless.track = this.queue.data[0];
this.gapless.index = 0;
} else {
//Last song
if (this.queue.index+1 >= this.queue.data.length) return;
//Next song
this.gapless.track = this.queue.data[this.queue.index + 1];
this.gapless.index = this.queue.index + 1;
}
}
//Save promise //Save promise
let resolve; let resolve;
this.gapless.promise = new Promise((res) => {resolve = res}); this.gapless.promise = new Promise((res) => {resolve = res});
//Load meta //Load meta
this.gapless.track = this.queue.data[this.queue.index + 1];
let info = await this.loadPlaybackInfo(this.gapless.track.streamUrl, this.gapless.track.duration); let info = await this.loadPlaybackInfo(this.gapless.track.streamUrl, this.gapless.track.duration);
if (!info) { if (!info) {
this.resetGapless(); this.resetGapless();
@ -367,6 +410,9 @@ new Vue({
} }
this.gapless.info = info this.gapless.info = info
this.gapless.audio = new Audio(`${window.location.origin}${info.url}`); this.gapless.audio = new Audio(`${window.location.origin}${info.url}`);
this.gapless.audio.volume = 0;
this.gapless.audio.preload = 'auto';
this.gapless.crossfade = false;
//Might get canceled //Might get canceled
if (this.gapless.promise) resolve(); if (this.gapless.promise) resolve();
@ -465,6 +511,11 @@ new Vue({
let res = await this.$axios.get('/settings'); let res = await this.$axios.get('/settings');
this.settings = res.data; this.settings = res.data;
this.$vuetify.theme.themes.dark.primary = this.settings.primaryColor; this.$vuetify.theme.themes.dark.primary = this.settings.primaryColor;
this.$vuetify.theme.themes.light.primary = this.settings.primaryColor;
if (this.settings.lightTheme) {
this.$vuetify.theme.dark = false;
this.$vuetify.theme.light = true;
}
i18n.locale = this.settings.language; i18n.locale = this.settings.language;
this.volume = this.settings.volume; this.volume = this.settings.volume;

View File

@ -0,0 +1,151 @@
<template>
<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'>
v{{data.version}}
</div>
<h1 class='my-2 px-2'>{{$t("Links:")}}</h1>
<v-list>
<v-list-item @click='openUrl("https://t.me/freezereleases")'>
<v-list-item-icon>
<v-icon>mdi-telegram</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title class='font-weight-bold'>{{$t("Telegram Releases")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
<v-list-item @click='openUrl("https://t.me/freezerpc")'>
<v-list-item-icon>
<v-icon>mdi-telegram</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title class='font-weight-bold'>{{$t("Telegram Group")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
<v-list-item @click='openUrl("https://t.me/freezerandroid")'>
<v-list-item-icon>
<v-icon>mdi-telegram</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title class='font-weight-bold'>{{$t("Telegram Android Group")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
<v-list-item @click='openUrl("https://discord.gg/7ap654Tp3z")'>
<v-list-item-icon>
<v-icon>mdi-discord</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title class='font-weight-bold'>{{$t("Discord")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
</v-list>
<h1 class='my-2 px-2'>{{$t("Credits:")}}</h1>
<v-list>
<v-list-item>
<v-list-item-content>
<v-list-item-title class='font-weight-bold'>exttex</v-list-item-title>
<v-list-item-subtitle>Developer</v-list-item-subtitle>
</v-list-item-content>
</v-list-item>
<v-list-item @click='openUrl("https://git.fuwafuwa.moe/RemixDev/deemix")'>
<v-list-item-content>
<v-list-item-title class='font-weight-bold'>Deemix</v-list-item-title>
<v-list-item-subtitle>Much better app &lt;3</v-list-item-subtitle>
</v-list-item-content>
</v-list-item>
<v-list-item @click='xandarDialog = true'>
<v-list-item-content>
<v-list-item-title class='font-weight-bold'>Xandar</v-list-item-title>
<v-list-item-subtitle>Community manager, helper, tester</v-list-item-subtitle>
</v-list-item-content>
</v-list-item>
<v-list-item>
<v-list-item-content>
<v-list-item-title class='font-weight-bold'>Bas Curtiz</v-list-item-title>
<v-list-item-subtitle>Tester, design help</v-list-item-subtitle>
</v-list-item-content>
</v-list-item>
<v-list-item @click='fTheme'>
<v-list-item-content>
<v-list-item-title class='font-weight-bold'>Francesco</v-list-item-title>
<v-list-item-subtitle>Tester</v-list-item-subtitle>
</v-list-item-content>
</v-list-item>
<v-list-item @click='tobsDialog = true'>
<v-list-item-content>
<v-list-item-title class='font-weight-bold'>Tobs</v-list-item-title>
<v-list-item-subtitle>Alpha tester</v-list-item-subtitle>
</v-list-item-content>
</v-list-item>
</v-list>
<div class='text-center text-h5 font-weight-bold my-4'>
Huge thanks to all the Crowdin translators and all the contributors to this project &lt;3
</div>
<v-dialog v-model='xandarDialog' max-width='512'>
<v-card elevation='2'>
<v-card-title class="headline">
You have been judged by Xandar
</v-card-title>
<v-card-text>Linux good, Windows bad</v-card-text>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="red darken-1" text @click="xandarDialog = false">
{{$t("Agree")}}
</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
<v-dialog v-model='tobsDialog' max-width='512'>
<v-card elevation='2'>
<v-img src='@/../public/shibe.png' width='100%'></v-img>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="red darken-1" text @click="tobsDialog = false">
{{$t("Agree")}}
</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
</div>
</template>
<script>
export default {
name: 'About',
data() {
return {
data: null,
xandarDialog: false,
tobsDialog: false
}
},
methods: {
openUrl(url) {
if (this.$root.settings.electron) {
const {ipcRenderer} = window.require('electron');
ipcRenderer.send('openUrl', url);
}
},
fTheme() {
this.$root.settings.primaryColor = '#333333';
this.$vuetify.theme.themes.dark.primary = this.$root.settings.primaryColor;
this.$vuetify.theme.themes.light.primary = this.$root.settings.primaryColor;
this.$root.saveSettings();
}
},
created() {
this.$axios.get('/about').then((res) => {
console.log(res);
this.data = res.data;
});
}
}
</script>

View File

@ -14,7 +14,11 @@
<v-progress-circular indeterminate></v-progress-circular> <v-progress-circular indeterminate></v-progress-circular>
</v-overlay> </v-overlay>
<h1>{{album.title}}</h1> <h1>{{album.title}}</h1>
<h3>{{album.artistString}}</h3> <h3>
<span v-for='(artist, index) in album.artists' :key='"artist"+index' @click='goArtist(artist)'>
{{artist.name}}<span v-if='index != album.artists.length - 1'>, </span>
</span>
</h3>
<div class='mt-2' v-if='!loading'> <div class='mt-2' v-if='!loading'>
<span class='text-subtitle-2'>{{album.tracks.length}} {{$t("tracks")}}</span><br> <span class='text-subtitle-2'>{{album.tracks.length}} {{$t("tracks")}}</span><br>
<span class='text-subtitle-2'>{{$t("Duration")}}: {{duration}}</span><br> <span class='text-subtitle-2'>{{$t("Duration")}}: {{duration}}</span><br>
@ -104,6 +108,12 @@ export default {
}, },
async download() { async download() {
this.downloadDialog = true; this.downloadDialog = true;
},
goArtist(artist) {
this.$router.push({
path: '/artist',
query: {artist: JSON.stringify(artist)}
});
} }
}, },
async mounted() { async mounted() {

View File

@ -55,7 +55,7 @@
<v-progress-circular indeterminate></v-progress-circular> <v-progress-circular indeterminate></v-progress-circular>
</div> </div>
<DownloadDialog :tracks='playlist.tracks' v-if='downloadDialog' @close='downloadDialog = false'></DownloadDialog> <DownloadDialog :playlistName='playlist.title' :tracks='playlist.tracks' v-if='downloadDialog' @close='downloadDialog = false'></DownloadDialog>
</v-list> </v-list>
</template> </template>

View File

@ -3,7 +3,7 @@
<h1 class='pb-2'>{{$t('Settings')}}</h1> <h1 class='pb-2'>{{$t('Settings')}}</h1>
<v-list> <v-list>
<v-select <v-select
class='px-4' class='px-4 mx-2'
:label='$t("Streaming Quality")' :label='$t("Streaming Quality")'
persistent-hint persistent-hint
:items='qualities' :items='qualities'
@ -12,7 +12,7 @@
></v-select> ></v-select>
<v-select <v-select
class='px-4' class='px-4 mx-2'
:label='$t("Download Quality")' :label='$t("Download Quality")'
persistent-hint persistent-hint
:items='qualities' :items='qualities'
@ -22,7 +22,7 @@
<!-- Download path --> <!-- Download path -->
<v-text-field <v-text-field
class='px-4' class='px-4 mx-2'
:label='$t("Downloads Directory")' :label='$t("Downloads Directory")'
v-model='$root.settings.downloadsPath' v-model='$root.settings.downloadsPath'
append-icon='mdi-open-in-app' append-icon='mdi-open-in-app'
@ -37,25 +37,34 @@
thumb-label thumb-label
step='1' step='1'
ticks ticks
class='px-4' dense
class='px-4 mx-2'
v-model='$root.settings.downloadThreads' v-model='$root.settings.downloadThreads'
></v-slider> ></v-slider>
<!-- Download dialog --> <!-- Download dialog -->
<v-list-item> <v-list-item>
<v-list-item-action> <v-list-item-action>
<v-checkbox v-model='$root.settings.downloadDialog'></v-checkbox> <v-checkbox v-model='$root.settings.downloadDialog' class='pl-2'></v-checkbox>
</v-list-item-action> </v-list-item-action>
<v-list-item-content> <v-list-item-content>
<v-list-item-title>{{$t("Show download dialog")}}</v-list-item-title> <v-list-item-title>{{$t("Show download dialog")}}</v-list-item-title>
<v-list-item-subtitle>{{$t("Always show download confirm dialog before downloading.")}}</v-list-item-subtitle> <v-list-item-subtitle>{{$t("Always show download confirm dialog before downloading.")}}</v-list-item-subtitle>
</v-list-item-content> </v-list-item-content>
</v-list-item> </v-list-item>
<!-- Create playlist folder -->
<v-list-item>
<v-list-item-action>
<v-checkbox v-model='$root.settings.playlistFolder' class='pl-2'></v-checkbox>
</v-list-item-action>
<v-list-item-content>
<v-list-item-title>{{$t("Create folders for playlists")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
<!-- Create artist folder --> <!-- Create artist folder -->
<v-list-item> <v-list-item>
<v-list-item-action> <v-list-item-action>
<v-checkbox v-model='$root.settings.createArtistFolder'></v-checkbox> <v-checkbox v-model='$root.settings.createArtistFolder' class='pl-2'></v-checkbox>
</v-list-item-action> </v-list-item-action>
<v-list-item-content> <v-list-item-content>
<v-list-item-title>{{$t("Create folders for artists")}}</v-list-item-title> <v-list-item-title>{{$t("Create folders for artists")}}</v-list-item-title>
@ -64,7 +73,7 @@
<!-- Create album folder --> <!-- Create album folder -->
<v-list-item> <v-list-item>
<v-list-item-action> <v-list-item-action>
<v-checkbox v-model='$root.settings.createAlbumFolder'></v-checkbox> <v-checkbox v-model='$root.settings.createAlbumFolder' class='pl-2'></v-checkbox>
</v-list-item-action> </v-list-item-action>
<v-list-item-content> <v-list-item-content>
<v-list-item-title>{{$t("Create folders for albums")}}</v-list-item-title> <v-list-item-title>{{$t("Create folders for albums")}}</v-list-item-title>
@ -73,7 +82,7 @@
<!-- Download lyrics --> <!-- Download lyrics -->
<v-list-item> <v-list-item>
<v-list-item-action> <v-list-item-action>
<v-checkbox v-model='$root.settings.downloadLyrics'></v-checkbox> <v-checkbox v-model='$root.settings.downloadLyrics' class='pl-2'></v-checkbox>
</v-list-item-action> </v-list-item-action>
<v-list-item-content> <v-list-item-content>
<v-list-item-title>{{$t("Download lyrics")}}</v-list-item-title> <v-list-item-title>{{$t("Download lyrics")}}</v-list-item-title>
@ -83,36 +92,68 @@
<!-- Download naming --> <!-- Download naming -->
<v-text-field <v-text-field
class='px-4 mb-2' class='px-4 my-2'
label='Download Filename' label='Download Filename'
persistent-hint persistent-hint
v-model='$root.settings.downloadFilename' v-model='$root.settings.downloadFilename'
:hint='$t("Variables") + ": %title%, %artists%, %artist%, %feats%, %trackNumber%, %0trackNumber%, %album%, %year%"' :hint='$t("Variables") + ": %title%, %artists%, %artist%, %feats%, %trackNumber%, %0trackNumber%, %album%, %year%"'
></v-text-field> ></v-text-field>
<!-- Crossfade -->
<v-slider
:label='$t("Crossfade (ms)")'
min='0'
max='10000'
thumb-label
step='500'
ticks
class='px-4 mt-4 mx-2'
v-model='$root.settings.crossfadeDuration'
></v-slider>
<!-- UI --> <!-- UI -->
<v-subheader>{{$t("UI")}}</v-subheader> <v-subheader>{{$t("UI")}}</v-subheader>
<v-divider></v-divider> <v-divider></v-divider>
<!-- Language --> <!-- Language -->
<v-select <v-select
class='mt-2 px-4' class='mt-2 px-4 mx-2'
label='Language' label='Language'
persistent-hint persistent-hint
:items='languageNames' :items='languageNames'
@change='updateLanguage' @change='updateLanguage'
></v-select> ></v-select>
<!-- Primary color -->
<v-list-item @click='colorPicker = true'>
<v-list-item-avatar>
<v-icon>mdi-palette</v-icon>
</v-list-item-avatar>
<v-list-item-content>
<v-list-item-title class='pl-2'>{{$t("Select primary color")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
<!-- Autocomplete --> <!-- Autocomplete -->
<v-list-item> <v-list-item>
<v-list-item-action> <v-list-item-action>
<v-checkbox v-model='$root.settings.showAutocomplete'></v-checkbox> <v-checkbox v-model='$root.settings.showAutocomplete' class='pl-2'></v-checkbox>
</v-list-item-action> </v-list-item-action>
<v-list-item-content> <v-list-item-content>
<v-list-item-title>{{$t("Show autocomplete in search")}}</v-list-item-title> <v-list-item-title>{{$t("Show autocomplete in search")}}</v-list-item-title>
</v-list-item-content> </v-list-item-content>
</v-list-item> </v-list-item>
<!-- Light theme -->
<v-list-item>
<v-list-item-action>
<v-checkbox class='pl-2' v-model='$root.settings.lightTheme' @change='changeLightTheme'></v-checkbox>
</v-list-item-action>
<v-list-item-content>
<v-list-item-title>{{$t("Light theme")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
<!-- Accounts --> <!-- Accounts -->
<v-subheader>{{$t("Integrations")}}</v-subheader> <v-subheader>{{$t("Integrations")}}</v-subheader>
<v-divider></v-divider> <v-divider></v-divider>
@ -120,7 +161,7 @@
<!-- Log listening --> <!-- Log listening -->
<v-list-item> <v-list-item>
<v-list-item-action> <v-list-item-action>
<v-checkbox v-model='$root.settings.logListen'></v-checkbox> <v-checkbox v-model='$root.settings.logListen' class='pl-2'></v-checkbox>
</v-list-item-action> </v-list-item-action>
<v-list-item-content> <v-list-item-content>
<v-list-item-title>{{$t("Log track listens to Deezer")}}</v-list-item-title> <v-list-item-title>{{$t("Log track listens to Deezer")}}</v-list-item-title>
@ -133,8 +174,8 @@
<v-img src='lastfm.svg'></v-img> <v-img src='lastfm.svg'></v-img>
</v-list-item-avatar> </v-list-item-avatar>
<v-list-item-content> <v-list-item-content>
<v-list-item-title>{{$t("Login with LastFM")}}</v-list-item-title> <v-list-item-title class='pl-2'>{{$t("Login with LastFM")}}</v-list-item-title>
<v-list-item-subtitle>{{$t("Connect your LastFM account to allow scrobbling.")}}</v-list-item-subtitle> <v-list-item-subtitle class='pl-2'>{{$t("Connect your LastFM account to allow scrobbling.")}}</v-list-item-subtitle>
</v-list-item-content> </v-list-item-content>
</v-list-item> </v-list-item>
<v-list-item v-if='$root.settings.lastFM' @click='disconnectLastFM'> <v-list-item v-if='$root.settings.lastFM' @click='disconnectLastFM'>
@ -148,7 +189,7 @@
<!-- Discord --> <!-- Discord -->
<v-list-item> <v-list-item>
<v-list-item-action> <v-list-item-action>
<v-checkbox v-model='$root.settings.enableDiscord' @click='snackbarText = $t("Requires restart to apply!"); snackbar = true'></v-checkbox> <v-checkbox class='pl-2' v-model='$root.settings.enableDiscord' @click='snackbarText = $t("Requires restart to apply!"); snackbar = true'></v-checkbox>
</v-list-item-action> </v-list-item-action>
<v-list-item-content> <v-list-item-content>
<v-list-item-title>{{$t("Discord Rich Presence")}}</v-list-item-title> <v-list-item-title>{{$t("Discord Rich Presence")}}</v-list-item-title>
@ -158,7 +199,7 @@
<!-- Discord Join Button --> <!-- Discord Join Button -->
<v-list-item> <v-list-item>
<v-list-item-action> <v-list-item-action>
<v-checkbox v-model='$root.settings.discordJoin' @click='snackbarText = $t("Requires restart to apply!"); snackbar = true'></v-checkbox> <v-checkbox class='pl-2' v-model='$root.settings.discordJoin' @click='snackbarText = $t("Requires restart to apply!"); snackbar = true'></v-checkbox>
</v-list-item-action> </v-list-item-action>
<v-list-item-content> <v-list-item-content>
<v-list-item-title>{{$t("Discord Join Button")}}</v-list-item-title> <v-list-item-title>{{$t("Discord Join Button")}}</v-list-item-title>
@ -173,7 +214,7 @@
<!-- Minimize to tray --> <!-- Minimize to tray -->
<v-list-item v-if='$root.settings.electron'> <v-list-item v-if='$root.settings.electron'>
<v-list-item-action> <v-list-item-action>
<v-checkbox v-model='$root.settings.minimizeToTray'></v-checkbox> <v-checkbox v-model='$root.settings.minimizeToTray' class='pl-2'></v-checkbox>
</v-list-item-action> </v-list-item-action>
<v-list-item-content> <v-list-item-content>
<v-list-item-title>{{$t("Minimize to tray")}}</v-list-item-title> <v-list-item-title>{{$t("Minimize to tray")}}</v-list-item-title>
@ -182,7 +223,7 @@
<!-- Close on exit --> <!-- Close on exit -->
<v-list-item v-if='$root.settings.electron'> <v-list-item v-if='$root.settings.electron'>
<v-list-item-action> <v-list-item-action>
<v-checkbox v-model='$root.settings.closeOnExit'></v-checkbox> <v-checkbox v-model='$root.settings.closeOnExit' class='pl-2'></v-checkbox>
</v-list-item-action> </v-list-item-action>
<v-list-item-content> <v-list-item-content>
<v-list-item-title>{{$t("Close on exit")}}</v-list-item-title> <v-list-item-title>{{$t("Close on exit")}}</v-list-item-title>
@ -218,6 +259,16 @@
</template> </template>
</v-snackbar> </v-snackbar>
<!-- Color picker overlay -->
<v-overlay :value='colorPicker' elevation='2'>
<v-card>
<v-color-picker v-model='$root.settings.primaryColor' mode='hexa'></v-color-picker>
<v-btn :color='$root.settings.primaryColor' block class='my-1 px-2' @click='saveColor'>
Save
</v-btn>
</v-card>
</v-overlay>
</div> </div>
</template> </template>
@ -242,11 +293,20 @@ export default {
{code: 'en', name: 'English'}, {code: 'en', name: 'English'},
{code: 'ar', name: 'Arabic'}, {code: 'ar', name: 'Arabic'},
{code: 'de', name: 'German'}, {code: 'de', name: 'German'},
{code: 'el', name: 'Greek'},
{code: 'id', name: 'Indonesian'},
{code: 'it', name: 'Italian'},
{code: 'pl', name: 'Polish'},
{code: 'ro', name: 'Romanian'},
{code: 'ru', name: 'Russian'},
{code: 'tr', name: 'Turkish'},
{code: 'uk', name: 'Ukrainian'}
], ],
colorPicker: false,
primaryColorIndex: 0, primaryColorIndex: 0,
primaries: ['#F44336', '#E91E63', '#9C27B0', '#673AB7', '#3F51B5', '#2196F3', '#03A9F4', primaries: ['#F44336', '#E91E63', '#9C27B0', '#673AB7', '#3F51B5', '#2196F3', '#03A9F4',
'#00BCD4', '#009688', '#4CAF50', '#8BC34A', '#CDDC39', '#FFEB3B', '#FFC107', '#FF9800', '#FF5722', '#00BCD4', '#009688', '#4CAF50', '#8BC34A', '#CDDC39', '#FFEB3B', '#FFC107', '#FF9800', '#FF5722',
'#795548', '#607D8B', '#9E9E9E', '#333333', '#000000'] '#795548', '#607D8B', '#9E9E9E']
} }
}, },
methods: { methods: {
@ -309,18 +369,28 @@ export default {
await this.$root.saveSettings(); await this.$root.saveSettings();
window.location.reload(); window.location.reload();
}, },
changeColor() { saveColor() {
this.$vuetify.theme.themes.dark.primary = this.primaries[this.primaryColorIndex]; this.colorPicker = false;
this.$root.settings.primaryColor = this.primaries[this.primaryColorIndex]; this.$vuetify.theme.themes.dark.primary = this.$root.settings.primaryColor;
this.primaryColorIndex++; this.$vuetify.theme.themes.light.primary = this.$root.settings.primaryColor;
if (this.primaryColorIndex == this.primaries.length) this.$root.saveSettings();
this.primaryColorIndex = 0;
}, },
updateLanguage(l) { updateLanguage(l) {
let code = this.languages.filter(lang => lang.name == l)[0].code; let code = this.languages.filter(lang => lang.name == l)[0].code;
this.language = code; this.language = code;
this.$root.updateLanguage(code); this.$root.updateLanguage(code);
this.$root.settings.language = code; this.$root.settings.language = code;
},
//Update light theme
changeLightTheme(v) {
this.$root.settings.lightTheme = v;
if (v) {
this.$vuetify.theme.dark = false;
this.$vuetify.theme.light = true;
} else {
this.$vuetify.theme.dark = true;
this.$vuetify.theme.light = false;
}
} }
}, },
computed: { computed: {
@ -347,16 +417,15 @@ export default {
} }
} }
//Shhhhhh //RGB
if (event.code == 'KeyC' && event.shiftKey) {
this.changeColor();
}
//SSHHSHSHHSH
console.log(event);
if (event.code == 'KeyG' && event.ctrlKey && event.altKey) { if (event.code == 'KeyG' && event.ctrlKey && event.altKey) {
setInterval(() => { setInterval(() => {
this.changeColor(); this.$vuetify.theme.themes.dark.primary = this.primaries[this.primaryColorIndex];
this.$vuetify.theme.themes.light.primary = this.primaries[this.primaryColorIndex];
this.$root.settings.primaryColor = this.primaries[this.primaryColorIndex];
this.primaryColorIndex++;
if (this.primaryColorIndex == this.primaries.length)
this.primaryColorIndex = 0;
}, 400); }, 400);
} }
}); });

View File

@ -11,9 +11,9 @@
border-radius: 5px; border-radius: 5px;
} }
::-webkit-scrollbar-track:hover { // ::-webkit-scrollbar-track:hover {
background-color: #080808; // background-color: #080808;
} // }
::-webkit-scrollbar-thumb { ::-webkit-scrollbar-thumb {
border-radius: 5px; border-radius: 5px;

View File

@ -1,7 +1,7 @@
{ {
"name": "freezer", "name": "freezer",
"private": true, "private": true,
"version": "1.1.1", "version": "1.1.2",
"description": "", "description": "",
"main": "background.js", "main": "background.js",
"scripts": { "scripts": {

View File

@ -65,12 +65,23 @@ class DownloadManager {
this.updateQueue(); this.updateQueue();
} }
async add(track, quality) { //data: {tracks: [], quality, playlistName}
async addBatch(data) {
for (let track of data.tracks) {
let p = this.settings.downloadsPath;
if (data.playlistName && this.settings.playlistFolder) {
p = path.join(p, sanitize(data.playlistName));
}
await this.add(track, data.quality, p);
}
}
async add(track, quality, p) {
//Sanitize quality //Sanitize quality
let q = this.settings.downloadsQuality; let q = this.settings.downloadsQuality;
if (quality) if (quality)
q = parseInt(quality.toString(), 10); q = parseInt(quality.toString(), 10);
let download = new Download(track, q, 0); let download = new Download(track, q, 0, p);
//Check if in queue //Check if in queue
if (this.queue.some(d => d.track.id == track.id)) { if (this.queue.some(d => d.track.id == track.id)) {
@ -430,16 +441,20 @@ class DownloadThread {
} }
generatePath(quality) { generatePath(quality) {
//Path
let folder = this.settings.downloadsPath;
if (this.download.path)
folder = this.download.path;
//User uploaded mp3s //User uploaded mp3s
if (this.isUserUploaded) { if (this.isUserUploaded) {
//Generate path //Generate path
let p = this.settings.downloadsPath;
if (this.settings.createArtistFolder && this.download.track.artists[0].name.length > 0) if (this.settings.createArtistFolder && this.download.track.artists[0].name.length > 0)
p = path.join(p, sanitize(this.download.track.artists[0].name)); folder = path.join(folder, sanitize(this.download.track.artists[0].name));
if (this.settings.createAlbumFolder && this.download.track.album.title.length > 0) if (this.settings.createAlbumFolder && this.download.track.album.title.length > 0)
p = path.join(p, sanitize(this.download.track.album.title)); folder = path.join(folder, sanitize(this.download.track.album.title));
//Filename //Filename
let out = path.join(p, sanitize(this.download.track.title)); let out = path.join(folder, sanitize(this.download.track.title));
if (!out.includes('.')) if (!out.includes('.'))
out += '.mp3'; out += '.mp3';
return out; return out;
@ -470,9 +485,8 @@ class DownloadThread {
fn = fn.replace(new RegExp(k, 'g'), sanitize(props[k])); fn = fn.replace(new RegExp(k, 'g'), sanitize(props[k]));
} }
//Generate folders //Generate folders
let p = this.settings.downloadsPath; if (this.settings.createArtistFolder) folder = path.join(folder, sanitize(this.track.artists[0].name));
if (this.settings.createArtistFolder) p = path.join(p, sanitize(this.track.artists[0].name)); if (this.settings.createAlbumFolder) folder = path.join(folder, sanitize(this.track.album.title));
if (this.settings.createAlbumFolder) p = path.join(p, sanitize(this.track.album.title));
//Extension //Extension
if (quality.toString() == '9') { if (quality.toString() == '9') {
@ -481,14 +495,16 @@ class DownloadThread {
fn += '.mp3'; fn += '.mp3';
} }
return path.join(p, fn); return path.join(folder, fn);
} }
} }
class Download { class Download {
constructor (track, quality, state) { constructor (track, quality, state, path) {
this.track = track; this.track = track;
this.quality = quality; this.quality = quality;
this.path = path;
// 0 - none // 0 - none
// 1 - downloading // 1 - downloading
// 2 - postprocess // 2 - postprocess
@ -506,12 +522,13 @@ class Download {
_id: this.track.id, _id: this.track.id,
track: this.track, track: this.track,
quality: this.quality, quality: this.quality,
state: this.state state: this.state,
path: this.path
} }
} }
static fromDB(json) { static fromDB(json) {
return new Download(json.track, json.quality, json.state); return new Download(json.track, json.quality, json.state, json.path);
} }
} }

View File

@ -1,6 +1,6 @@
const express = require('express'); const express = require('express');
const path = require('path'); const path = require('path');
const https = require('https'); const packageJson = require('../package.json');
const fs = require('fs'); const fs = require('fs');
const axios = require('axios').default; const axios = require('axios').default;
const logger = require('./winston'); const logger = require('./winston');
@ -390,11 +390,7 @@ app.get('/suggestions/:query', async (req, res) => {
//Post list of tracks to download //Post list of tracks to download
app.post('/downloads', async (req, res) => { app.post('/downloads', async (req, res) => {
let tracks = req.body; downloadManager.addBatch(req.body);
let quality = req.query.q;
for (let track of tracks) {
downloadManager.add(track, quality);
}
res.status(200).send('OK'); res.status(200).send('OK');
}); });
@ -474,6 +470,13 @@ app.get('/fullurl', async (req, res) => {
res.json({url: r.request.res.responseUrl}); res.json({url: r.request.res.responseUrl});
}); });
//About page
app.get('/about', async (req, res) => {
res.json({
version: packageJson.version
});
});
//Redirect to index on unknown path //Redirect to index on unknown path
app.all('*', (req, res) => { app.all('*', (req, res) => {
res.redirect('/'); res.redirect('/');

View File

@ -34,6 +34,10 @@ class Settings {
this.downloadLyrics = true; this.downloadLyrics = true;
this.primaryColor = '#2196F3'; this.primaryColor = '#2196F3';
this.language = 'en'; this.language = 'en';
this.crossfadeDuration = 3000;
this.lightTheme = false;
this.playlistFolder = false;
} }
//Based on electorn app.getPath //Based on electorn app.getPath

View File

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