1.1.11 - UI changes, volume curve etc
This commit is contained in:
parent
74f049ac71
commit
5c40db1242
|
@ -139,7 +139,7 @@
|
|||
</v-list>
|
||||
</v-navigation-drawer>
|
||||
|
||||
<v-app-bar app dense>
|
||||
<v-app-bar app dense color='#1e1e1e'>
|
||||
|
||||
<v-btn icon @click='previous'>
|
||||
<v-icon>mdi-arrow-left</v-icon>
|
||||
|
@ -478,7 +478,6 @@ export default {
|
|||
},
|
||||
watch: {
|
||||
volume() {
|
||||
if (this.$root.audio) this.$root.audio.volume = this.volume;
|
||||
this.$root.volume = this.volume;
|
||||
},
|
||||
'$root.volume'() {
|
||||
|
|
|
@ -79,11 +79,12 @@
|
|||
</v-list-item-action>
|
||||
</v-list-item>
|
||||
|
||||
<v-card v-if='card' max-width='175px' max-height='210px' @click='click'>
|
||||
<!-- Card version -->
|
||||
<v-card v-if='card' max-width='175px' max-height='230px' @click='click' color='transparent' elevation='0'>
|
||||
<v-hover v-slot:default='{hover}'>
|
||||
<div>
|
||||
|
||||
<v-img :src='album.art.thumb'>
|
||||
<v-img :src='album.art.thumb' class='rounded-lg'>
|
||||
</v-img>
|
||||
|
||||
<v-overlay absolute :value='hover' opacity='0.5'>
|
||||
|
@ -95,8 +96,8 @@
|
|||
</div>
|
||||
</v-hover>
|
||||
|
||||
|
||||
<div class='pa-2 text-subtitle-2 text-center text-truncate'>{{album.title}}</div>
|
||||
<div class='px-2 pt-2 pb-1 text-subtitle-2 text-center text-truncate'>{{album.title}}</div>
|
||||
<div class='pb-1 px-2 text-caption text-center text-truncate'>{{album.artistString}}</div>
|
||||
|
||||
</v-card>
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
</v-list-item>
|
||||
|
||||
<!-- Card version -->
|
||||
<v-card max-height='200px' max-width='200px' v-if='card' @click='click'>
|
||||
<v-card max-height='200px' width='180px' v-if='card' @click='click' color='transparent' elevation='0'>
|
||||
<div class='d-flex justify-center'>
|
||||
<v-avatar size='150' class='ma-1'>
|
||||
<v-img :src='artist.picture.thumb'>
|
||||
|
@ -82,7 +82,7 @@ export default {
|
|||
tiny: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
async library() {
|
||||
|
|
|
@ -20,11 +20,21 @@
|
|||
<v-icon v-if='!isReversed'>mdi-sort-variant</v-icon>
|
||||
</v-btn>
|
||||
</div>
|
||||
<!-- Search -->
|
||||
<v-text-field
|
||||
dense
|
||||
:label='$t("Search")'
|
||||
solo
|
||||
class='mx-2 mt-1'
|
||||
v-model='searchQuery'
|
||||
></v-text-field>
|
||||
</div>
|
||||
|
||||
<v-lazy max-height="100" v-for='(album, index) in albums' :key='album.id'>
|
||||
<AlbumTile :album='album' @remove='removed(index)'></AlbumTile>
|
||||
</v-lazy>
|
||||
<div class='d-flex justify-center flex-wrap'>
|
||||
<v-lazy max-height="230" v-for='album in filtered' :key='album.id' class='ma-2'>
|
||||
<AlbumTile :album='album' @remove='removed(album.id)' card></AlbumTile>
|
||||
</v-lazy>
|
||||
</div>
|
||||
|
||||
</v-list>
|
||||
</template>
|
||||
|
@ -34,6 +44,9 @@ import AlbumTile from '@/components/AlbumTile.vue';
|
|||
|
||||
export default {
|
||||
name: 'LibraryAlbums',
|
||||
components: {
|
||||
AlbumTile
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
albums: [],
|
||||
|
@ -46,7 +59,8 @@ export default {
|
|||
this.$t('Name (A-Z)'),
|
||||
this.$t('Artist (A-Z)')
|
||||
],
|
||||
unsorted: null
|
||||
unsorted: null,
|
||||
searchQuery: null
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
@ -59,8 +73,8 @@ export default {
|
|||
}
|
||||
this.loading = false;
|
||||
},
|
||||
removed(index) {
|
||||
this.albums.splice(index, 1);
|
||||
removed(id) {
|
||||
this.albums.splice(this.albums.findIndex(a => a.id == id), 1);
|
||||
},
|
||||
//Sort changed
|
||||
async sort(type) {
|
||||
|
@ -91,12 +105,18 @@ export default {
|
|||
this.albums.reverse();
|
||||
},
|
||||
},
|
||||
components: {
|
||||
AlbumTile
|
||||
},
|
||||
mounted() {
|
||||
//Initial load
|
||||
this.load();
|
||||
},
|
||||
computed: {
|
||||
//Search
|
||||
filtered() {
|
||||
if (!this.searchQuery)
|
||||
return this.albums;
|
||||
|
||||
return this.albums.filter(a => a.title.toLowerCase().includes(this.searchQuery.toLowerCase()));
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
|
@ -20,11 +20,21 @@
|
|||
<v-icon v-if='!isReversed'>mdi-sort-variant</v-icon>
|
||||
</v-btn>
|
||||
</div>
|
||||
<!-- Search -->
|
||||
<v-text-field
|
||||
dense
|
||||
:label='$t("Search")'
|
||||
solo
|
||||
class='mx-2 mt-1'
|
||||
v-model='searchQuery'
|
||||
></v-text-field>
|
||||
</div>
|
||||
|
||||
<v-lazy max-height="100" v-for='(artist, index) in artists' :key='artist.id'>
|
||||
<ArtistTile :artist='artist' @remove='removed(index)'></ArtistTile>
|
||||
</v-lazy>
|
||||
<div class='d-flex flex-wrap justify-center'>
|
||||
<v-lazy max-height="200" v-for='artist in filtered' :key='artist.id' class='my-2 ml-3'>
|
||||
<ArtistTile :artist='artist' @remove='removed(artist.id)' card></ArtistTile>
|
||||
</v-lazy>
|
||||
</div>
|
||||
|
||||
</v-list>
|
||||
</template>
|
||||
|
@ -48,7 +58,8 @@ export default {
|
|||
this.$t('Date Added'),
|
||||
this.$t('Name (A-Z)')
|
||||
],
|
||||
unsorted: null
|
||||
unsorted: null,
|
||||
searchQuery: null
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
@ -61,8 +72,8 @@ export default {
|
|||
}
|
||||
this.loading = false;
|
||||
},
|
||||
removed(index) {
|
||||
this.artists.splice(index, 1);
|
||||
removed(id) {
|
||||
this.artists.splice(this.artists.findIndex(a => a.id == id), 1);
|
||||
},
|
||||
//Sort changed
|
||||
async sort(type) {
|
||||
|
@ -92,6 +103,15 @@ export default {
|
|||
mounted() {
|
||||
//Initial load
|
||||
this.load();
|
||||
},
|
||||
computed: {
|
||||
//Search
|
||||
filtered() {
|
||||
if (!this.searchQuery)
|
||||
return this.artists;
|
||||
|
||||
return this.artists.filter(a => a.name.toLowerCase().includes(this.searchQuery.toLowerCase()));
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
|
@ -6,12 +6,6 @@
|
|||
</v-overlay>
|
||||
|
||||
<div class='d-flex'>
|
||||
<!-- Create playlist -->
|
||||
<v-btn class='ma-2 ml-3' color='primary' @click='popup = true'>
|
||||
<v-icon left>mdi-playlist-plus</v-icon>
|
||||
{{$t("Create new playlist")}}
|
||||
</v-btn>
|
||||
|
||||
<!-- Sort -->
|
||||
<div class='mt-1 px-2 d-flex'>
|
||||
<div class='text-overline pt-1 mx-2'>
|
||||
|
@ -28,16 +22,34 @@
|
|||
</v-btn>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Search -->
|
||||
<v-text-field
|
||||
dense
|
||||
:label='$t("Search")'
|
||||
solo
|
||||
class='mx-2 mt-1'
|
||||
v-model='searchQuery'
|
||||
></v-text-field>
|
||||
</div>
|
||||
|
||||
<v-dialog max-width="400px" v-model='popup'>
|
||||
<PlaylistPopup @created='playlistCreated'></PlaylistPopup>
|
||||
</v-dialog>
|
||||
|
||||
<v-lazy max-height="100" v-for='(playlist, index) in playlists' :key='playlist.id'>
|
||||
<PlaylistTile :playlist='playlist' @remove='removed(index)'></PlaylistTile>
|
||||
</v-lazy>
|
||||
<div class='d-flex justify-center flex-wrap'>
|
||||
<!-- Add playlist card -->
|
||||
<v-card width='175px' height='175px' class='ma-2 d-flex justify-center align-center flex-column text-center rounded-lg' outlined @click='popup = true'>
|
||||
<v-icon large>
|
||||
mdi-playlist-plus
|
||||
</v-icon>
|
||||
<br>
|
||||
<p class='text-h6 font-weight-bold'>{{$t("Create new playlist")}}</p>
|
||||
</v-card>
|
||||
|
||||
<v-lazy max-height="220" v-for='playlist in filtered' :key='playlist.id' class='ma-2'>
|
||||
<PlaylistTile :playlist='playlist' @remove='removed(playlist.id)' card cardTitle></PlaylistTile>
|
||||
</v-lazy>
|
||||
</div>
|
||||
|
||||
</v-list>
|
||||
</template>
|
||||
|
@ -63,7 +75,8 @@ export default {
|
|||
this.$t('Date Added'),
|
||||
this.$t('Name (A-Z)'),
|
||||
],
|
||||
unsorted: null
|
||||
unsorted: null,
|
||||
searchQuery: null
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
@ -84,8 +97,8 @@ export default {
|
|||
this.load();
|
||||
},
|
||||
//On playlist remove
|
||||
removed(i) {
|
||||
this.playlists.splice(i, 1);
|
||||
removed(id) {
|
||||
this.playlists.splice(this.playlists.findIndex(p => p.id == id), 1);
|
||||
},
|
||||
//Sort changed
|
||||
async sort(type) {
|
||||
|
@ -115,6 +128,15 @@ export default {
|
|||
mounted() {
|
||||
//Initial load
|
||||
this.load();
|
||||
},
|
||||
computed: {
|
||||
//Search playlists
|
||||
filtered() {
|
||||
if (!this.searchQuery)
|
||||
return this.playlists;
|
||||
|
||||
return this.playlists.filter(p => p.title.toLowerCase().includes(this.searchQuery.toLowerCase()));
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
|
@ -14,14 +14,22 @@
|
|||
<v-icon v-if='!isReversed'>mdi-sort-variant</v-icon>
|
||||
</v-btn>
|
||||
</div>
|
||||
<!-- Search -->
|
||||
<v-text-field
|
||||
dense
|
||||
:label='$t("Search")'
|
||||
solo
|
||||
class='mx-2 mt-1'
|
||||
v-model='searchQuery'
|
||||
></v-text-field>
|
||||
</div>
|
||||
|
||||
<v-list :height='height' class='overflow-y-auto'>
|
||||
<v-lazy
|
||||
v-for='(track, index) in tracks'
|
||||
v-for='(track, index) in filtered'
|
||||
:key='index + "t" + track.id'
|
||||
max-height="100"
|
||||
><TrackTile :track='track' @click='play(index)' @remove='removedTrack(index)'>
|
||||
><TrackTile :track='track' @click='play(track.id)' @remove='removedTrack(track.id)'>
|
||||
</TrackTile>
|
||||
</v-lazy>
|
||||
|
||||
|
@ -52,7 +60,8 @@ export default {
|
|||
this.$t('Album (A-Z)')
|
||||
],
|
||||
tracksUnsorted: null,
|
||||
isReversed: false
|
||||
isReversed: false,
|
||||
searchQuery: null
|
||||
}
|
||||
},
|
||||
props: {
|
||||
|
@ -97,14 +106,14 @@ export default {
|
|||
this.loading = false;
|
||||
},
|
||||
//Play track
|
||||
async play(index) {
|
||||
async play(id) {
|
||||
this.$root.queue.source = {
|
||||
text: 'Loved tracks',
|
||||
source: 'playlist',
|
||||
data: this.$root.profile.favoritesPlaylist
|
||||
};
|
||||
this.$root.replaceQueue(this.tracks);
|
||||
this.$root.playIndex(index);
|
||||
this.$root.playIndex(this.tracks.findIndex(t => t.id == id));
|
||||
|
||||
//Load all tracks
|
||||
if (this.tracks.length < this.count) {
|
||||
|
@ -151,12 +160,22 @@ export default {
|
|||
this.isReversed = !this.isReversed;
|
||||
this.tracks.reverse();
|
||||
},
|
||||
removedTrack(index) {
|
||||
this.tracks.splice(index, 1);
|
||||
removedTrack(id) {
|
||||
this.tracks.splice(this.tracks.findIndex(t => t.id == id), 1);
|
||||
this.$root.libraryTracks.splice(this.$root.libraryTracks.indexOf(id), 1);
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.initialLoad();
|
||||
},
|
||||
computed: {
|
||||
//Search
|
||||
filtered() {
|
||||
if (!this.searchQuery)
|
||||
return this.tracks;
|
||||
|
||||
return this.tracks.filter(t => t.title.toLowerCase().includes(this.searchQuery.toLowerCase()));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -82,11 +82,11 @@
|
|||
</v-list-item>
|
||||
|
||||
<!-- Card -->
|
||||
<v-card v-if='card' max-width='175px' max-height='175px' @click='click' rounded>
|
||||
<v-card v-if='card' max-width='175px' max-height='220px' @click='click' color='transparent' elevation='0'>
|
||||
<v-hover v-slot:default='{hover}'>
|
||||
<div>
|
||||
|
||||
<v-img :src='playlist.image.thumb'>
|
||||
<v-img :src='playlist.image.thumb' class='rounded-lg'>
|
||||
</v-img>
|
||||
|
||||
<v-overlay absolute :value='hover' opacity='0.5'>
|
||||
|
@ -95,6 +95,8 @@
|
|||
</v-btn>
|
||||
</v-overlay>
|
||||
|
||||
<div v-if='cardTitle' class='px-2 pt-2 pb-1 text-subtitle-2 text-center text-truncate'>{{playlist.title}}</div>
|
||||
|
||||
</div>
|
||||
</v-hover>
|
||||
</v-card>
|
||||
|
@ -124,6 +126,10 @@ export default {
|
|||
card: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
cardTitle: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<div>
|
||||
|
||||
<v-card max-width='175px' max-height='210px' @click='play' :loading='loading'>
|
||||
<v-card max-width='175px' max-height='210px' @click='play' :loading='loading' elevation='0' color='transparent'>
|
||||
<v-img :src='stl.cover.thumb'>
|
||||
</v-img>
|
||||
|
||||
|
|
|
@ -255,6 +255,11 @@ export default {
|
|||
document.body.removeChild(copyElem);
|
||||
this.$root.globalSnackbar = this.$t('Link copied!');
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'$root.libraryTracks'() {
|
||||
this.isLibrary = this.$root.libraryTracks.includes(this.track.id);
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
|
@ -2,46 +2,46 @@
|
|||
"Home": "Start",
|
||||
"Browse": "Durchsuchen",
|
||||
"Library": "Mediathek",
|
||||
"Tracks": "Titel",
|
||||
"Playlists": "Wiedergabelisten",
|
||||
"Tracks": "Songs",
|
||||
"Playlists": "Playlists",
|
||||
"Albums": "Alben",
|
||||
"Artists": "Künstler",
|
||||
"Artists": "Künstler*innen",
|
||||
"More": "Mehr",
|
||||
"Settings": "Einstellungen",
|
||||
"Downloads": "Downloads",
|
||||
"Search or paste Deezer URL. Use / to quickly focus.": "Suche oder füge Deezer URL ein. Benutze \"/\" um schnell zu fokussieren.",
|
||||
"Search or paste Deezer URL. Use / to quickly focus.": "Suche oder füge eine Deezer URL ein. Benutze \"/\" um schnell zu fokussieren.",
|
||||
"Play": "Wiedergeben",
|
||||
"Add to library": "Zur Mediathek hinzufügen",
|
||||
"Download": "Download",
|
||||
"fans": "Fans",
|
||||
"tracks": "Titel",
|
||||
"Quality": "Qualität",
|
||||
"Estimated size:": "Geschätzte Zeit:",
|
||||
"Estimated size:": "Geschätzte Größe:",
|
||||
"Start downloading": "Download beginnen",
|
||||
"Cancel": "Abbrechen",
|
||||
"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.",
|
||||
"History": "Verlauf",
|
||||
"Create new playlist": "Neue Playlist erstellen",
|
||||
"TRACKS": "Titel",
|
||||
"TRACKS": "SONGS",
|
||||
"Sort by": "Sortieren nach",
|
||||
"Date Added": "Hinzugefügt am",
|
||||
"Name (A-Z)": "Name (A-Z)",
|
||||
"Artist (A-Z)": "Künstler (A-Z)",
|
||||
"Artist (A-Z)": "Künstler*innen (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 bzw. Songtexte nicht gefunden!",
|
||||
"Create playlist": "Playlist erstellen",
|
||||
"Create": "Erstellen",
|
||||
"Add to playlist": "Zur Playlist hinzufügen",
|
||||
"Create new": "Neu erstellen",
|
||||
"Remove": "Entfernen",
|
||||
"Play next": "Als nächstes spielen",
|
||||
"Play next": "Als Nächstes abspielen",
|
||||
"Add to queue": "Zur Warteschleife hinzufügen",
|
||||
"Remove from library": "Aus der Mediathek entfernen",
|
||||
"Remove from playlist": "Aus Playlist entfernen",
|
||||
"Play track mix": "Track Mix abspielen",
|
||||
"Play track mix": "Songmix abspielen",
|
||||
"Go to": "Gehe zu",
|
||||
"Track Mix": "Track Mix",
|
||||
"Track Mix": "Songmix",
|
||||
"Duration": "Dauer",
|
||||
"Released": "Veröffentlicht",
|
||||
"Disk": "Disk",
|
||||
|
@ -61,7 +61,7 @@
|
|||
"Playing from": "Wiedergabe von",
|
||||
"Info": "Info",
|
||||
"Lyrics": "Lyrics",
|
||||
"Track number": "Titelnummer",
|
||||
"Track number": "Songnummer",
|
||||
"Disk number": "Disk-Nummer",
|
||||
"Explicit": "Explizit",
|
||||
"Source": "Quelle",
|
||||
|
@ -74,28 +74,28 @@
|
|||
"...or paste your ARL/Token below:": "...oder füge dein ARL/Token unten ein:",
|
||||
"ARL/Token": "ARL/Token",
|
||||
"Login": "Anmeldung",
|
||||
"By using this program, you disagree with Deezer's ToS.": "Durch die Verwendung dieses Programms lehnen Sie Deezer's ToS ab.",
|
||||
"By using this program, you disagree with Deezer's ToS.": "Durch die Verwendung dieses Programms lehnst du die Nutzungsbedingungen von Deezer ab.",
|
||||
"Only in Electron version!": "Nur in der Electron-Version!",
|
||||
"Search results for:": "Suchergebnisse für:",
|
||||
"Error loading data!": "Fehler beim Laden der Daten!",
|
||||
"Try again later!": "Versuch's später nochmal!",
|
||||
"Search": "Suche",
|
||||
"Streaming Quality": "Streamqualität",
|
||||
"Download Quality": "Download-Qualität",
|
||||
"Download Quality": "Downloadqualität",
|
||||
"Downloads Directory": "Downloadverzeichnis",
|
||||
"Simultaneous downloads": "Gleichzeitige Downloads",
|
||||
"Always show download confirm dialog before downloading.": "Downloadbestätigungsdialog immer vor dem Download anzeigen.",
|
||||
"Show download dialog": "Download-Dialog anzeigen",
|
||||
"Create folders for artists": "Ordner für Künstler erstellen",
|
||||
"Create folders for artists": "Ordner für Künstler*innen erstellen",
|
||||
"Create folders for albums": "Ordner für Alben erstellen",
|
||||
"Download lyrics": "Download Lyrics",
|
||||
"Variables": "Variablen",
|
||||
"UI": "Benutzeroberfläche",
|
||||
"Show autocomplete in search": "Auto-Vervollständigung in der Suche anzeigen",
|
||||
"Integrations": "Integrationen",
|
||||
"This allows listening history, flow and recommendations to work properly.": "Dies ermöglicht das korrekte Arbeiten von Wiedergabeverlauf, Flow und Empfehlungen.",
|
||||
"This allows listening history, flow and recommendations to work properly.": "Dies ermöglicht, dass der Wiedergabeverlauf, Flow und Empfehlungen korrekt funktionieren.",
|
||||
"Log track listens to Deezer": "Prokotolliere gehörte Titel auf Deezer",
|
||||
"Connect your LastFM account to allow scrobbling.": "Verbinde dein LastFM-Konto, um das Scrobbing zu erlauben.",
|
||||
"Connect your LastFM account to allow scrobbling.": "Verbinde dein LastFM-Konto, um das Scrobbling zu erlauben.",
|
||||
"Login with LastFM": "Anmelden mit LastFM",
|
||||
"Disconnect LastFM": "Disconnect LastFM",
|
||||
"Requires restart to apply!": "Erfordert einen Neustart der App!",
|
||||
|
@ -110,9 +110,9 @@
|
|||
"Settings saved!": "Einstellungen gespeichert!",
|
||||
"Available only in Electron version!": "Nur in der Electron-Version verfügbar!",
|
||||
"Crossfade (ms)": "Überblendung (ms)",
|
||||
"Select primary color": "Primärfarbe auswählen",
|
||||
"Select primary color": "Hauptfarbe auswählen",
|
||||
"Light theme": "Helles Thema",
|
||||
"Create folders for playlists": "Ordner für Wiedergabelisten erstellen",
|
||||
"Create folders for playlists": "Ordner für Playlists erstellen",
|
||||
"About": "Über",
|
||||
"Links:": "Links:",
|
||||
"Telegram Releases": "Telegram-Releases",
|
||||
|
@ -122,18 +122,18 @@
|
|||
"Credits:": "Credits:",
|
||||
"Agree": "Einverstanden",
|
||||
"Dismiss": "Verwerfen",
|
||||
"Added to playlist!": "Zur Wiedergabeliste hinzugefügt!",
|
||||
"Added to library!": "Zur Mediathek hinzufügen!",
|
||||
"Removed from library!": "Aus der Mediathek entfernen!",
|
||||
"Removed from playlist!": "Aus der Wiedergabeliste entfernt!",
|
||||
"Playlist deleted!": "Wiedergabeliste gelöscht!",
|
||||
"Added to playlist!": "Zur Playlist hinzugefügt!",
|
||||
"Added to library!": "Zur Mediathek hinzufügt!",
|
||||
"Removed from library!": "Aus der Mediathek entfernt!",
|
||||
"Removed from playlist!": "Aus der Playlist entfernt!",
|
||||
"Playlist deleted!": "Playlist gelöscht!",
|
||||
"Delete": "Löschen",
|
||||
"Are you sure you want to delete this playlist?": "Bist du sicher, dass du diese Wiedergabeliste löschen willst?",
|
||||
"Are you sure you want to delete this playlist?": "Bist du sicher, dass du diese Playlist löschen willst?",
|
||||
"Force white tray icon": "Erzwinge weißes Tray-Icon",
|
||||
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Standardsymbol (weiß) in der Kontrollleiste erzwingen, wenn Design falsch erkannt wurde. Neustart erforderlich.",
|
||||
"Share": "Teilen",
|
||||
"Settings quality": "Audioqualität-Einstellungen",
|
||||
"Content language": "Sprache des Inhalts",
|
||||
"Content language": "Sprache der Inhalte",
|
||||
"Content country": "Land des Inhalts",
|
||||
"Website": "Webseite",
|
||||
"Visit website": "Webseite besuchen",
|
||||
|
|
|
@ -135,7 +135,7 @@
|
|||
"Settings quality": "Επιλογή ρυθμίσεων ποιότητας",
|
||||
"Content language": "Γλώσσα περιεχομένου",
|
||||
"Content country": "Χώρα περιεχομένου",
|
||||
"Website": "Website",
|
||||
"Visit website": "Visit website",
|
||||
"New update available:": "New update available:"
|
||||
"Website": "Ιστοσελίδα",
|
||||
"Visit website": "Μετάβαση στην Ιστοσελίδα",
|
||||
"New update available:": "Διαθέσιμη νέα ενημέρωση:"
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
"Home": "Inicio",
|
||||
"Browse": "Explorar",
|
||||
"Library": "Biblioteca",
|
||||
"Tracks": "Pistas",
|
||||
"Tracks": "Canciones",
|
||||
"Playlists": "Listas de reproducción",
|
||||
"Albums": "Álbumes",
|
||||
"Artists": "Artistas",
|
||||
|
@ -14,7 +14,7 @@
|
|||
"Add to library": "Añadir a la biblioteca",
|
||||
"Download": "Descargar",
|
||||
"fans": "seguidores",
|
||||
"tracks": "pistas",
|
||||
"tracks": "canciones",
|
||||
"Quality": "Calidad",
|
||||
"Estimated size:": "Tamaño estimado:",
|
||||
"Start downloading": "Comenzar descarga",
|
||||
|
@ -23,7 +23,7 @@
|
|||
"Enable it in settings for history to work properly.": "Habilítalo en los ajustes para que el historial funcione correctamente.",
|
||||
"History": "Historial",
|
||||
"Create new playlist": "Crear nueva lista de reproducción",
|
||||
"TRACKS": "PISTAS",
|
||||
"TRACKS": "CANCIONES",
|
||||
"Sort by": "Ordenar por",
|
||||
"Date Added": "Fecha de adición",
|
||||
"Name (A-Z)": "Nombre (A-Z)",
|
||||
|
@ -94,7 +94,7 @@
|
|||
"Show autocomplete in search": "Mostrar autocompletado al buscar",
|
||||
"Integrations": "Integraciones",
|
||||
"This allows listening history, flow and recommendations to work properly.": "Esto permite registrar el historial, para que flow y las recomendaciones funcionen correctamente.",
|
||||
"Log track listens to Deezer": "Enviar registro de reproducción a Deezer",
|
||||
"Log track listens to Deezer": "Registrar la canción que escucha a Deezer",
|
||||
"Connect your LastFM account to allow scrobbling.": "Conecta tu cuenta de LastFM para permitir sincronizar tus canciones.",
|
||||
"Login with LastFM": "Iniciar sesión con LastFM",
|
||||
"Disconnect LastFM": "Desconectar LastFM",
|
||||
|
|
|
@ -24,9 +24,9 @@
|
|||
"History": "History",
|
||||
"Create new playlist": "Gumawa ng bagong playlist",
|
||||
"TRACKS": "TRACKS",
|
||||
"Sort by": "Sort by",
|
||||
"Sort by": "Ayusin ayon sa",
|
||||
"Date Added": "Petsa kung kailan idinagdag",
|
||||
"Name (A-Z)": "Name (A-Z)",
|
||||
"Name (A-Z)": "Pangalan (A-Z)",
|
||||
"Artist (A-Z)": "Artista (A-Z)",
|
||||
"Album (A-Z)": "Album (A-Z)",
|
||||
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
|
||||
|
@ -42,7 +42,7 @@
|
|||
"Play track mix": "Play track mix",
|
||||
"Go to": "Pumunta sa",
|
||||
"Track Mix": "Track Mix",
|
||||
"Duration": "Duration",
|
||||
"Duration": "Tagal",
|
||||
"Released": "Released",
|
||||
"Disk": "Disk",
|
||||
"albums": "Mga album",
|
||||
|
@ -64,7 +64,7 @@
|
|||
"Track number": "Track number",
|
||||
"Disk number": "Disk number",
|
||||
"Explicit": "Explicit",
|
||||
"Source": "Source",
|
||||
"Source": "Pinagmulan",
|
||||
"ID": "ID",
|
||||
"Error logging in!": "Error logging in!",
|
||||
"Please try again later, or try another account.": "Paki-subukan ulit mamaya, o mag-try ng ibang account.",
|
||||
|
@ -120,12 +120,12 @@
|
|||
"Discord": "Discord",
|
||||
"Telegram Android Group": "Telegram Android Group",
|
||||
"Credits:": "Credits:",
|
||||
"Agree": "Agree",
|
||||
"Agree": "Sumang-ayon",
|
||||
"Dismiss": "Dismiss",
|
||||
"Added to playlist!": "Added to playlist!",
|
||||
"Added to library!": "Added to library!",
|
||||
"Removed from library!": "Removed from library!",
|
||||
"Removed from playlist!": "Removed from playlist!",
|
||||
"Added to library!": "Idinagdag na sa library!",
|
||||
"Removed from library!": "Tinanggal sa library!",
|
||||
"Removed from playlist!": "Tinanggal sa playlist!",
|
||||
"Playlist deleted!": "Playlist deleted!",
|
||||
"Delete": "Delete",
|
||||
"Are you sure you want to delete this playlist?": "Are you sure you want to delete this playlist?",
|
||||
|
@ -136,6 +136,6 @@
|
|||
"Content language": "Wika ng nilalaman",
|
||||
"Content country": "Bansa ng nilalaman",
|
||||
"Website": "Website",
|
||||
"Visit website": "Visit website",
|
||||
"New update available:": "New update available:"
|
||||
"Visit website": "Bisitahin ang website",
|
||||
"New update available:": "May bagong update na:"
|
||||
}
|
|
@ -88,7 +88,7 @@
|
|||
"Show download dialog": "Afficher une boîte de dialogue pour chaque téléchargement",
|
||||
"Create folders for artists": "Générer des dossiers par artiste",
|
||||
"Create folders for albums": "Générer des dossiers par album",
|
||||
"Download lyrics": "Télécharger les paroles",
|
||||
"Download lyrics": "Télécharger les paroles (.LRC)",
|
||||
"Variables": "Variables",
|
||||
"UI": "Interface",
|
||||
"Show autocomplete in search": "Afficher la saisie automatique dans la recherche",
|
||||
|
|
|
@ -135,7 +135,7 @@
|
|||
"Settings quality": "Pengaturan kualitas",
|
||||
"Content language": "Bahasa konten",
|
||||
"Content country": "Wilayah konten",
|
||||
"Website": "Website",
|
||||
"Visit website": "Visit website",
|
||||
"New update available:": "New update available:"
|
||||
"Website": "Situs",
|
||||
"Visit website": "Kunjungi situs web",
|
||||
"New update available:": "Pembaruan tersedia:"
|
||||
}
|
|
@ -84,17 +84,17 @@
|
|||
"Download Quality": "Qualità Download",
|
||||
"Downloads Directory": "Cartella Download",
|
||||
"Simultaneous downloads": "Download simultanei",
|
||||
"Always show download confirm dialog before downloading.": "Mostra sempre la conferma di download prima di scaricare.",
|
||||
"Always show download confirm dialog before downloading.": "Mostra sempre la finestra di conferma download prima di scaricare.",
|
||||
"Show download dialog": "Mostra finestra di download",
|
||||
"Create folders for artists": "Crea cartelle per gli artisti",
|
||||
"Create folders for albums": "Crea cartelle per gli album",
|
||||
"Download lyrics": "Scarica testo",
|
||||
"Download lyrics": "Scarica testi .LRC",
|
||||
"Variables": "Variabili",
|
||||
"UI": "Interfaccia",
|
||||
"Show autocomplete in search": "Mostra elenco autocompletamento",
|
||||
"Integrations": "Integrazioni",
|
||||
"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": "Registra gli ascolti delle tracce a Deezer",
|
||||
"This allows listening history, flow and recommendations to work properly.": "Abilitalo se vuoi che la cronologia, il Flow e i raccomandazioni funzionino correttamente.",
|
||||
"Log track listens to Deezer": "Logging cronologia degli ascolti",
|
||||
"Connect your LastFM account to allow scrobbling.": "Collega il tuo account LastFM per consentire lo scrobbling.",
|
||||
"Login with LastFM": "Accedi con LastFM",
|
||||
"Disconnect LastFM": "Disconnetti LastFM",
|
||||
|
@ -115,10 +115,10 @@
|
|||
"Create folders for playlists": "Crea cartelle per le playlist",
|
||||
"About": "Informazioni",
|
||||
"Links:": "Link:",
|
||||
"Telegram Releases": "Rilasci su Telegram",
|
||||
"Telegram Releases": "Canale Telegram (releases)",
|
||||
"Telegram Group": "Gruppo Telegram",
|
||||
"Discord": "Discord",
|
||||
"Telegram Android Group": "Gruppo Telegram Android",
|
||||
"Telegram Android Group": "Gruppo Telegram per Android",
|
||||
"Credits:": "Crediti:",
|
||||
"Agree": "Accetta",
|
||||
"Dismiss": "Rifiuta",
|
||||
|
@ -129,13 +129,13 @@
|
|||
"Playlist deleted!": "Playlist eliminata!",
|
||||
"Delete": "Elimina",
|
||||
"Are you sure you want to delete this playlist?": "Sei sicuro di voler eliminare questa playlist?",
|
||||
"Force white tray icon": "Forza icona bianca nel vassoio",
|
||||
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Forza l'icona predefinita (bianca) nel vassoio se il tema è stato rilevato in modo errato. Richiede il riavvio.",
|
||||
"Force white tray icon": "Forza icona bianca nell'area notifiche",
|
||||
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Forza l'icona predefinita (bianca) nell'area notifiche se il tema è stato rilevato in modo errato. Richiede il riavvio.",
|
||||
"Share": "Condividi",
|
||||
"Settings quality": "Qualità delle Impostazioni",
|
||||
"Content language": "Lingua dei contenuti",
|
||||
"Content country": "Contenuto del Paese",
|
||||
"Website": "Website",
|
||||
"Visit website": "Visit website",
|
||||
"New update available:": "New update available:"
|
||||
"Content country": "Paese dei contenuti",
|
||||
"Website": "Sito Web",
|
||||
"Visit website": "Visita il sito",
|
||||
"New update available:": "Nuovo aggiornamento disponibile:"
|
||||
}
|
|
@ -39,7 +39,7 @@
|
|||
"Add to queue": "Adicionar à fila",
|
||||
"Remove from library": "Remover da biblioteca",
|
||||
"Remove from playlist": "Remover da playlist",
|
||||
"Play track mix": "Reproduzir mistura de trilha",
|
||||
"Play track mix": "Reproduzir mix da faixa",
|
||||
"Go to": "Ir para",
|
||||
"Track Mix": "Faixa Mix",
|
||||
"Duration": "Duração",
|
||||
|
|
|
@ -119,11 +119,11 @@
|
|||
"Telegram Group": "Группа в Telegram",
|
||||
"Discord": "Discord",
|
||||
"Telegram Android Group": "Обсуждение Freezer Android",
|
||||
"Credits:": "Благодарность:",
|
||||
"Agree": "Согласен",
|
||||
"Credits:": "Благодарности:",
|
||||
"Agree": "Принять",
|
||||
"Dismiss": "Отмена",
|
||||
"Added to playlist!": "Добавлено в плейлист!",
|
||||
"Added to library!": "Добавлено в избранное!",
|
||||
"Added to library!": "Добавлено в Избранное!",
|
||||
"Removed from library!": "Удалено из Избранного!",
|
||||
"Removed from playlist!": "Удалено из плейлиста!",
|
||||
"Playlist deleted!": "Плейлист удален!",
|
||||
|
@ -135,7 +135,7 @@
|
|||
"Settings quality": "Качество настроек",
|
||||
"Content language": "Язык контента",
|
||||
"Content country": "Страна контента",
|
||||
"Website": "Website",
|
||||
"Visit website": "Visit website",
|
||||
"New update available:": "New update available:"
|
||||
"Website": "Веб-сайт",
|
||||
"Visit website": "Посетить веб-сайт",
|
||||
"New update available:": "Доступна новая версия:"
|
||||
}
|
|
@ -110,11 +110,11 @@
|
|||
"Settings saved!": "Nastavenia uložené!",
|
||||
"Available only in Electron version!": "Iba vo verzii Electron!",
|
||||
"Crossfade (ms)": "Prelínanie (ms)",
|
||||
"Select primary color": "Vybrať primárnu farbu",
|
||||
"Select primary color": "Hlavná farba",
|
||||
"Light theme": "Svetlá téma",
|
||||
"Create folders for playlists": "Vytvoriť priečinky pre playlisty",
|
||||
"About": "O aplikácii",
|
||||
"Links:": "Linky:",
|
||||
"Links:": "Odkazy:",
|
||||
"Telegram Releases": "Telegram vydania",
|
||||
"Telegram Group": "Telegram skupina",
|
||||
"Discord": "Discord",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"Other": "Diğer",
|
||||
"Minimize to tray": "Sistem tray'e küçülsün",
|
||||
"Don't minimize to tray": "Sistem tray'e küçülmesin tamamen kapansın",
|
||||
"Close on exit": "Programı kapattığınızda",
|
||||
"Close on exit": "Programı kapattığınızda tamamen kapansın",
|
||||
"Settings saved!": "Ayarlar kaydedildi!",
|
||||
"Available only in Electron version!": "Sadece Electron versiyonunda mevcuttur!",
|
||||
"Crossfade (ms)": "Crossfade (ms)",
|
||||
|
@ -135,7 +135,7 @@
|
|||
"Settings quality": "Kalite ayarları",
|
||||
"Content language": "İçerik dili",
|
||||
"Content country": "İçerik ülkesi",
|
||||
"Website": "Website",
|
||||
"Visit website": "Visit website",
|
||||
"New update available:": "New update available:"
|
||||
"Website": "İnternet sitesi",
|
||||
"Visit website": "İnternet sitesini ziyaret et",
|
||||
"New update available:": "Yeni güncelleme mevcut:"
|
||||
}
|
|
@ -39,14 +39,14 @@
|
|||
"Add to queue": "Додати до черги",
|
||||
"Remove from library": "Видалити з бібліотеки",
|
||||
"Remove from playlist": "Видалити з плейлиста",
|
||||
"Play track mix": "Відтворити трек мікс",
|
||||
"Play track mix": "Відтворити мікс треків",
|
||||
"Go to": "Перейти до",
|
||||
"Track Mix": "Трек Мікс",
|
||||
"Duration": "Тривалість",
|
||||
"Released": "Реліз",
|
||||
"Disk": "Диск",
|
||||
"albums": "альбоми",
|
||||
"Play top": "Відтворити top",
|
||||
"Play top": "Відтворити топ",
|
||||
"Radio": "Радіо",
|
||||
"Show all albums": "Показати всі альбоми",
|
||||
"Show all singles": "Показати всі композиції",
|
||||
|
@ -71,7 +71,7 @@
|
|||
"Logout": "Вийти",
|
||||
"Login using browser": "Вхід через браузер",
|
||||
"Please login using your Deezer account:": "Будь ласка, увійдіть, використовуючи свій обліковий запис Deezer:",
|
||||
"...or paste your ARL/Token below:": "...або вставте свій ARL/Token нижче:",
|
||||
"...or paste your ARL/Token below:": "...або вставте свій ARL/токен нижче:",
|
||||
"ARL/Token": "ARL/токен",
|
||||
"Login": "Увійти",
|
||||
"By using this program, you disagree with Deezer's ToS.": "Використовуючи цю програму, ви не погоджуєтесь із умовами використання Deezer.",
|
||||
|
@ -85,7 +85,7 @@
|
|||
"Downloads Directory": "Тека для завантажень",
|
||||
"Simultaneous downloads": "Одночасних завантажень",
|
||||
"Always show download confirm dialog before downloading.": "Завжди показувати вікно підтвердження перед завантаженням.",
|
||||
"Show download dialog": "Показувати діалогове вікно звантаження",
|
||||
"Show download dialog": "Показувати діалогове вікно завантаження",
|
||||
"Create folders for artists": "Створити теки для виконавців",
|
||||
"Create folders for albums": "Створити теки для альбомів",
|
||||
"Download lyrics": "Завантажити тексти пісень",
|
||||
|
@ -130,8 +130,8 @@
|
|||
"Delete": "Видалити",
|
||||
"Are you sure you want to delete this playlist?": "Ви впевнені, що хочете видалити цей плейлист?",
|
||||
"Force white tray icon": "Примусово використовувати білий значок трею",
|
||||
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Примусово використовувати (білий) значок, якщо тема визначена неправильно. Необхідне перезавантаження.",
|
||||
"Share": "Поширити",
|
||||
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Примусово використовувати стандартний (білий) значок, якщо тема визначена неправильно. Необхідне перезавантаження.",
|
||||
"Share": "Поділитись",
|
||||
"Settings quality": "Налаштування якості",
|
||||
"Content language": "Мова контенту",
|
||||
"Content country": "Країна контенту",
|
||||
|
|
|
@ -0,0 +1,141 @@
|
|||
{
|
||||
"Home": "Home",
|
||||
"Browse": "Bwowse",
|
||||
"Library": "Wibwawy",
|
||||
"Tracks": "Twacks",
|
||||
"Playlists": "Pwaywists",
|
||||
"Albums": "Awbums",
|
||||
"Artists": "Awtists",
|
||||
"More": "Mowe",
|
||||
"Settings": "Settings",
|
||||
"Downloads": "Downwoads",
|
||||
"Search or paste Deezer URL. Use / to quickly focus.": "Seawch ow paste Deezew URL. Use \"/\" t-to quickwy focus.",
|
||||
"Play": "Pway",
|
||||
"Add to library": "Add t-to wibwawy",
|
||||
"Download": "Downwoad",
|
||||
"fans": "fams",
|
||||
"tracks": "twacks",
|
||||
"Quality": "Quawity >w<",
|
||||
"Estimated size:": "Estimated size uwu:",
|
||||
"Start downloading": "Stawt downwoading",
|
||||
"Cancel": "Cancew :<",
|
||||
"Stream logging is disabled!": "Stweam wogging is d-disabwed?!?",
|
||||
"Enable it in settings for history to work properly.": "Enyabwe i-it in settings fow histowy t-to wowk (・`ω´・) pwopewwy.",
|
||||
"History": "Histowy :>",
|
||||
"Create new playlist": "Cweate nyew pwaywist",
|
||||
"TRACKS": "TWACKS",
|
||||
"Sort by": "Sowt by",
|
||||
"Date Added": "Date Added",
|
||||
"Name (A-Z)": "Name (A-Z)",
|
||||
"Artist (A-Z)": "Awtist (A-Z)",
|
||||
"Album (A-Z)": "Awbum (A-Z)",
|
||||
"Error loading lyrics or lyrics not found!": "Ewwow woading lywics ow (・`ω´・) lywics nyot found!!11",
|
||||
"Create playlist": "Cweate pwaywist",
|
||||
"Create": "Cweate",
|
||||
"Add to playlist": "Add t-to pwaywist",
|
||||
"Create new": "Cweate nyew",
|
||||
"Remove": "Wemove",
|
||||
"Play next": "Pway nyext",
|
||||
"Add to queue": "Add t-to queue",
|
||||
"Remove from library": "Wemuv fwom wibwawy",
|
||||
"Remove from playlist": "Wemuv fwom pwaywist",
|
||||
"Play track mix": "Pway twack mix",
|
||||
"Go to": "Go t-to",
|
||||
"Track Mix": "Twack Mix",
|
||||
"Duration": "Duwation",
|
||||
"Released": "Reweased",
|
||||
"Disk": "Disk",
|
||||
"albums": "awbums",
|
||||
"Play top": "Pway t-top",
|
||||
"Radio": "Wadio",
|
||||
"Show all albums": "Show aww awbums",
|
||||
"Show all singles": "Show aww singwes",
|
||||
"Show more": "Show mowe",
|
||||
"Downloaded": "Downwoaded",
|
||||
"Queue": "Quewe",
|
||||
"Total": "Totaw",
|
||||
"Stop": "Stop >*<",
|
||||
"Start": "Start :3",
|
||||
"Show folder": "Show fowdew",
|
||||
"Clear queue": "Cweaw quewe",
|
||||
"Playing from": "Pwaying fwom",
|
||||
"Info": "Info",
|
||||
"Lyrics": "Lywics",
|
||||
"Track number": "twack nyumbew",
|
||||
"Disk number": "Disk nyumbew",
|
||||
"Explicit": "Expwicit :<",
|
||||
"Source": "Souwce",
|
||||
"ID": "ID",
|
||||
"Error logging in!": "Ewwow wogging in!!",
|
||||
"Please try again later, or try another account.": "Pwease twy again Latew, ow (・`ω´・) twy anyothew account.",
|
||||
"Logout": "Wogout",
|
||||
"Login using browser": "wogin ;;w;; u-using bwowsew",
|
||||
"Please login using your Deezer account:": "Pwease wogin u-using youw Deezew account:",
|
||||
"...or paste your ARL/Token below:": "...ow paste youw ARL/Token below:",
|
||||
"ARL/Token": "ARL/Token",
|
||||
"Login": "wogin ;;w;;",
|
||||
"By using this program, you disagree with Deezer's ToS.": "By u-using this pwogwam, you disagwee with Deezew's ToS.",
|
||||
"Only in Electron version!": "Onwy in Ewectwon vewsion?!?",
|
||||
"Search results for:": "Seawch wesuwts for:",
|
||||
"Error loading data!": "Ewwow w-w-woading data?!?!",
|
||||
"Try again later!": "Twy again watew!!11",
|
||||
"Search": "Seawch",
|
||||
"Streaming Quality": "S-Stweaming Quawity >w<",
|
||||
"Download Quality": "Downwoad Quawity >w<",
|
||||
"Downloads Directory": "Downwoads Diwectowy",
|
||||
"Simultaneous downloads": "Simuwtanyeous downwoads",
|
||||
"Always show download confirm dialog before downloading.": "Awways show downwoad confiwm diawog befowe downwoading. UwU",
|
||||
"Show download dialog": "Show downwoad diawog",
|
||||
"Create folders for artists": "Cweate fowdews fow awtists",
|
||||
"Create folders for albums": "Cweate fowdews fow awbums",
|
||||
"Download lyrics": "Downwoad wywics",
|
||||
"Variables": "Vawiabwes",
|
||||
"UI": "UI",
|
||||
"Show autocomplete in search": "Show autocompwete in seawch",
|
||||
"Integrations": "Integwations",
|
||||
"This allows listening history, flow and recommendations to work properly.": "This awwows wistenying histowy, flow and wecommendations t-to wowk (・`ω´・) pwopewwy.",
|
||||
"Log track listens to Deezer": "Log twack wistens t-to Deezew",
|
||||
"Connect your LastFM account to allow scrobbling.": "Connyect youw LastFM account t-to awwow scwobbwing.",
|
||||
"Login with LastFM": "wogin ;;w;; with LastFM",
|
||||
"Disconnect LastFM": "Disconnyect LastFM",
|
||||
"Requires restart to apply!": "Requiwes restawt t-to appwy?!?! ;;w;;",
|
||||
"Enable Discord Rich Presence, requires restart to toggle!": "Enyabwe Discowd Rich Pwesence, requiwes restawt t-to toggwe!!11",
|
||||
"Discord Rich Presence": "discowd Rich Pwesence",
|
||||
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enyabwe Discowd join button (・`ω´・) fow syncing twacks, requires restaw t-to toggwe!!11",
|
||||
"Discord Join Button": "discowd Join Button",
|
||||
"Other": "Othew",
|
||||
"Minimize to tray": "Minyimize t-to tway",
|
||||
"Don't minimize to tray": "Don't minyimize t-to tway",
|
||||
"Close on exit": "Cwose on exit",
|
||||
"Settings saved!": "Settings saved!",
|
||||
"Available only in Electron version!": "avaiwabwe onwy in Ewectwon vewsion?!?",
|
||||
"Crossfade (ms)": "cwossfade (ms)",
|
||||
"Select primary color": "Sewect pwimawy c-cowow",
|
||||
"Light theme": "Shit theme",
|
||||
"Create folders for playlists": "Cweate fowdews fow pwaywists",
|
||||
"About": "About owo",
|
||||
"Links:": "Links:",
|
||||
"Telegram Releases": "Tewegwam ÚwÚ Reweases",
|
||||
"Telegram Group": "Tewegwam ÚwÚ Gwoup",
|
||||
"Discord": "Discowd",
|
||||
"Telegram Android Group": "Tewegwam ÚwÚ Andwoid Gwoup",
|
||||
"Credits:": "Credits:",
|
||||
"Agree": "Agwee",
|
||||
"Dismiss": "D-Dismiss",
|
||||
"Added to playlist!": "Added t-to pwaywist!",
|
||||
"Added to library!": "Added t-to Libwawy!",
|
||||
"Removed from library!": "Remuvd fwom wibwawy!",
|
||||
"Removed from playlist!": "Remuvd fwom pwaywist!",
|
||||
"Playlist deleted!": "Pwaywist deweted!",
|
||||
"Delete": "Dewete",
|
||||
"Are you sure you want to delete this playlist?": "Awe you suwe you w-want t-to dewete this p-p-pwaywist?",
|
||||
"Force white tray icon": "Fowce white tway icon",
|
||||
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Fowce defauwt (white) tway icon if theme incowwectwy detected. ^w^ Wequiwes westawt.",
|
||||
"Share": "Shawe",
|
||||
"Settings quality": "Settings quawity",
|
||||
"Content language": "Content wanguage",
|
||||
"Content country": "Content countwy",
|
||||
"Website": "Website",
|
||||
"Visit website": "Visit website",
|
||||
"New update available:": "Nyew update available:"
|
||||
}
|
|
@ -0,0 +1,141 @@
|
|||
{
|
||||
"Home": "Trang chủ",
|
||||
"Browse": "Duyệt",
|
||||
"Library": "Thư viện",
|
||||
"Tracks": "Bài hát",
|
||||
"Playlists": "Danh sách phát",
|
||||
"Albums": "Album",
|
||||
"Artists": "Nghệ sĩ",
|
||||
"More": "Thêm",
|
||||
"Settings": "Cài đặt",
|
||||
"Downloads": "Danh sách tải",
|
||||
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
|
||||
"Play": "Play",
|
||||
"Add to library": "Add to library",
|
||||
"Download": "Download",
|
||||
"fans": "fans",
|
||||
"tracks": "tracks",
|
||||
"Quality": "Quality",
|
||||
"Estimated size:": "Estimated size:",
|
||||
"Start downloading": "Start downloading",
|
||||
"Cancel": "Cancel",
|
||||
"Stream logging is disabled!": "Stream logging is disabled!",
|
||||
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
|
||||
"History": "History",
|
||||
"Create new playlist": "Create new playlist",
|
||||
"TRACKS": "TRACKS",
|
||||
"Sort by": "Sort by",
|
||||
"Date Added": "Date Added",
|
||||
"Name (A-Z)": "Name (A-Z)",
|
||||
"Artist (A-Z)": "Artist (A-Z)",
|
||||
"Album (A-Z)": "Album (A-Z)",
|
||||
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
|
||||
"Create playlist": "Create playlist",
|
||||
"Create": "Create",
|
||||
"Add to playlist": "Add to playlist",
|
||||
"Create new": "Create new",
|
||||
"Remove": "Remove",
|
||||
"Play next": "Play next",
|
||||
"Add to queue": "Add to queue",
|
||||
"Remove from library": "Remove from library",
|
||||
"Remove from playlist": "Remove from playlist",
|
||||
"Play track mix": "Play track mix",
|
||||
"Go to": "Go to",
|
||||
"Track Mix": "Track Mix",
|
||||
"Duration": "Duration",
|
||||
"Released": "Released",
|
||||
"Disk": "Disk",
|
||||
"albums": "albums",
|
||||
"Play top": "Play top",
|
||||
"Radio": "Radio",
|
||||
"Show all albums": "Show all albums",
|
||||
"Show all singles": "Show all singles",
|
||||
"Show more": "Show more",
|
||||
"Downloaded": "Downloaded",
|
||||
"Queue": "Queue",
|
||||
"Total": "Total",
|
||||
"Stop": "Stop",
|
||||
"Start": "Start",
|
||||
"Show folder": "Show folder",
|
||||
"Clear queue": "Clear queue",
|
||||
"Playing from": "Playing from",
|
||||
"Info": "Info",
|
||||
"Lyrics": "Lyrics",
|
||||
"Track number": "Track number",
|
||||
"Disk number": "Disk number",
|
||||
"Explicit": "Explicit",
|
||||
"Source": "Source",
|
||||
"ID": "ID",
|
||||
"Error logging in!": "Error logging in!",
|
||||
"Please try again later, or try another account.": "Please try again later, or try another account.",
|
||||
"Logout": "Logout",
|
||||
"Login using browser": "Login using browser",
|
||||
"Please login using your Deezer account:": "Please login using your Deezer account:",
|
||||
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
|
||||
"ARL/Token": "ARL/Token",
|
||||
"Login": "Login",
|
||||
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
|
||||
"Only in Electron version!": "Only in Electron version!",
|
||||
"Search results for:": "Search results for:",
|
||||
"Error loading data!": "Error loading data!",
|
||||
"Try again later!": "Try again later!",
|
||||
"Search": "Search",
|
||||
"Streaming Quality": "Streaming Quality",
|
||||
"Download Quality": "Download Quality",
|
||||
"Downloads Directory": "Downloads Directory",
|
||||
"Simultaneous downloads": "Simultaneous downloads",
|
||||
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
|
||||
"Show download dialog": "Show download dialog",
|
||||
"Create folders for artists": "Create folders for artists",
|
||||
"Create folders for albums": "Create folders for albums",
|
||||
"Download lyrics": "Download lyrics",
|
||||
"Variables": "Variables",
|
||||
"UI": "UI",
|
||||
"Show autocomplete in search": "Show autocomplete in search",
|
||||
"Integrations": "Integrations",
|
||||
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.",
|
||||
"Log track listens to Deezer": "Log track listens to Deezer",
|
||||
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
|
||||
"Login with LastFM": "Login with LastFM",
|
||||
"Disconnect LastFM": "Disconnect LastFM",
|
||||
"Requires restart to apply!": "Requires restart to apply!",
|
||||
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
|
||||
"Discord Rich Presence": "Discord Rich Presence",
|
||||
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
|
||||
"Discord Join Button": "Discord Join Button",
|
||||
"Other": "Other",
|
||||
"Minimize to tray": "Minimize to tray",
|
||||
"Don't minimize to tray": "Don't minimize to tray",
|
||||
"Close on exit": "Close on exit",
|
||||
"Settings saved!": "Settings saved!",
|
||||
"Available only in Electron version!": "Available only in Electron version!",
|
||||
"Crossfade (ms)": "Crossfade (ms)",
|
||||
"Select primary color": "Select primary color",
|
||||
"Light theme": "Light theme",
|
||||
"Create folders for playlists": "Create folders for playlists",
|
||||
"About": "About",
|
||||
"Links:": "Links:",
|
||||
"Telegram Releases": "Telegram Releases",
|
||||
"Telegram Group": "Telegram Group",
|
||||
"Discord": "Discord",
|
||||
"Telegram Android Group": "Telegram Android Group",
|
||||
"Credits:": "Credits:",
|
||||
"Agree": "Agree",
|
||||
"Dismiss": "Dismiss",
|
||||
"Added to playlist!": "Added to playlist!",
|
||||
"Added to library!": "Added to library!",
|
||||
"Removed from library!": "Removed from library!",
|
||||
"Removed from playlist!": "Removed from playlist!",
|
||||
"Playlist deleted!": "Playlist deleted!",
|
||||
"Delete": "Delete",
|
||||
"Are you sure you want to delete this playlist?": "Are you sure you want to delete this playlist?",
|
||||
"Force white tray icon": "Force white tray icon",
|
||||
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Force default (white) tray icon if theme incorrectly detected. Requires restart.",
|
||||
"Share": "Share",
|
||||
"Settings quality": "Settings quality",
|
||||
"Content language": "Content language",
|
||||
"Content country": "Content country",
|
||||
"Website": "Website",
|
||||
"Visit website": "Visit website",
|
||||
"New update available:": "New update available:"
|
||||
}
|
|
@ -286,7 +286,6 @@ new Vue({
|
|||
}
|
||||
//Restore original volume
|
||||
this.audio.voume = currentVolume;
|
||||
this.volume = currentVolume;
|
||||
|
||||
oldAudio.pause();
|
||||
|
||||
|
@ -303,7 +302,8 @@ new Vue({
|
|||
}
|
||||
});
|
||||
this.audio.muted = this.muted;
|
||||
this.audio.volume = this.volume;
|
||||
//Set volume
|
||||
this.audio.volume = this.volume * this.volume;
|
||||
|
||||
this.audio.addEventListener('ended', async () => {
|
||||
if (this.gapless.crossfade) return;
|
||||
|
@ -518,11 +518,6 @@ new Vue({
|
|||
let res = await this.$axios.get('/settings');
|
||||
this.settings = res.data;
|
||||
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;
|
||||
this.volume = this.settings.volume;
|
||||
|
||||
|
@ -621,23 +616,19 @@ new Vue({
|
|||
//<- -5s (from YT)
|
||||
if (e.code == "ArrowLeft") this.$root.seek((this.position - 5000));
|
||||
// ^ v - Volume
|
||||
if (e.code == 'ArrowUp' && this.audio) {
|
||||
if ((this.audio.volume + 0.05) > 1) {
|
||||
this.audio.volume = 1.00;
|
||||
if (e.code == 'ArrowUp') {
|
||||
if ((this.volume + 0.05) > 1) {
|
||||
this.volume = 1.00;
|
||||
return;
|
||||
}
|
||||
this.audio.volume += 0.05;
|
||||
this.volume = this.audio.volume;
|
||||
this.volume += 0.05;
|
||||
}
|
||||
if (e.code == 'ArrowDown' && this.audio) {
|
||||
if ((this.audio.volume - 0.05) < 0) {
|
||||
this.audio.volume = 0.00;
|
||||
if (e.code == 'ArrowDown') {
|
||||
if ((this.volume - 0.05) < 0) {
|
||||
this.volume = 0.00;
|
||||
return;
|
||||
}
|
||||
this.audio.volume -= 0.05;
|
||||
this.volume = this.audio.volume;
|
||||
this.volume -= 0.05;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
@ -647,6 +638,11 @@ new Vue({
|
|||
state() {
|
||||
this.updateMediaSession();
|
||||
this.updateState();
|
||||
},
|
||||
//Update volume with curve
|
||||
volume() {
|
||||
if (this.audio)
|
||||
this.audio.volume = this.volume * this.volume;
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
@ -102,9 +102,8 @@
|
|||
<v-dialog v-model='xandarDialog' max-width='512'>
|
||||
<v-card elevation='2'>
|
||||
<v-card-title class="headline">
|
||||
You have been judged by Xandar
|
||||
f
|
||||
</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">
|
||||
|
|
|
@ -15,9 +15,9 @@
|
|||
<h1 class='py-2'>{{section.title}}</h1>
|
||||
<div class='d-flex' style='overflow-x: auto; overflow-y: hidden;'>
|
||||
<div v-for='(item, index) in section.items' :key='"item"+index' class='mr-4 my-2'>
|
||||
<PlaylistTile v-if='item.type == "playlist"' :playlist='item.data' card></PlaylistTile>
|
||||
<PlaylistTile v-if='item.type == "playlist"' :playlist='item.data' card class='mb-4'></PlaylistTile>
|
||||
<ArtistTile v-if='item.type == "artist"' :artist='item.data' card></ArtistTile>
|
||||
<DeezerChannel v-if='item.type == "channel"' :channel='item.data'></DeezerChannel>
|
||||
<DeezerChannel v-if='item.type == "channel"' :channel='item.data' class='mb-2'></DeezerChannel>
|
||||
<AlbumTile v-if='item.type == "album"' :album='item.data' card></AlbumTile>
|
||||
<SmartTrackList v-if='item.type == "smarttracklist" || item.type == "flow"' :stl='item.data'></SmartTrackList>
|
||||
</div>
|
||||
|
|
|
@ -294,6 +294,7 @@ export default {
|
|||
await this.$axios.put('/library/track?id=' + this.$root.track.id);
|
||||
this.$root.libraryTracks.push(this.$root.track.id);
|
||||
this.inLibrary = true;
|
||||
|
||||
this.$root.globalSnackbar = this.$t('Added to library!');
|
||||
},
|
||||
//Download current track
|
||||
|
@ -302,7 +303,6 @@ export default {
|
|||
},
|
||||
//Save volume
|
||||
updateVolume(v) {
|
||||
if (this.$root.audio) this.$root.audio.volume = v;
|
||||
this.$root.volume = v;
|
||||
},
|
||||
//Repeat button click
|
||||
|
|
|
@ -143,17 +143,6 @@
|
|||
</v-list-item-content>
|
||||
</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 -->
|
||||
<v-subheader>{{$t("Integrations")}}</v-subheader>
|
||||
<v-divider></v-divider>
|
||||
|
@ -320,6 +309,8 @@ export default {
|
|||
languages: [
|
||||
{code: 'en', name: 'English'},
|
||||
{code: 'ar', name: 'Arabic'},
|
||||
{code: 'hr', name: 'Croatian'},
|
||||
{code: 'fil', name: 'Filipino'},
|
||||
{code: 'fr', name: 'French'},
|
||||
{code: 'de', name: 'German'},
|
||||
{code: 'el', name: 'Greek'},
|
||||
|
@ -332,7 +323,8 @@ export default {
|
|||
{code: 'sk', name: 'Slovak'},
|
||||
{code: 'es', name: 'Spanish'},
|
||||
{code: 'tr', name: 'Turkish'},
|
||||
{code: 'uk', name: 'Ukrainian'}
|
||||
{code: 'uk', name: 'Ukrainian'},
|
||||
{code: 'vi', name: 'Vietnamese'}
|
||||
],
|
||||
colorPicker: false,
|
||||
primaryColorIndex: 0,
|
||||
|
|
|
@ -11,11 +11,19 @@
|
|||
border-radius: 5px;
|
||||
}
|
||||
|
||||
// ::-webkit-scrollbar-track:hover {
|
||||
// background-color: #080808;
|
||||
// }
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
border-radius: 5px;
|
||||
background-color: #363636;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background-color: #404040;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:horizontal {
|
||||
background-color: #36363690;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:horizontal:hover {
|
||||
background-color: #404040;
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "freezer",
|
||||
"private": true,
|
||||
"version": "1.1.10",
|
||||
"version": "1.1.11",
|
||||
"description": "",
|
||||
"main": "background.js",
|
||||
"scripts": {
|
||||
|
|
|
@ -89,7 +89,7 @@ class Playlist {
|
|||
this.id = json.PLAYLIST_ID.toString(),
|
||||
this.title = json.TITLE,
|
||||
this.trackCount = json.NB_SONG ? json.NB_SONG : tracksJson.total;
|
||||
this.image = new DeezerImage(json.PLAYLIST_PICTURE, 'playlist');
|
||||
this.image = new DeezerImage(json.PLAYLIST_PICTURE, json.PICTURE_TYPE);
|
||||
this.fans = json.NB_FAN;
|
||||
this.duration = parseInt((json.DURATION ? json.DURATION : 0).toString(), 10) * 1000;
|
||||
this.description = json.DESCRIPTION;
|
||||
|
|
|
@ -69,8 +69,9 @@ app.post('/settings', async (req, res) => {
|
|||
app.post('/authorize', async (req, res) => {
|
||||
if (!req.body.arl || req.body.arl.length < 100) return res.status(500).send('Invalid ARL');
|
||||
|
||||
//Check if arl valid
|
||||
deezer.arl = req.body.arl;
|
||||
//Check if ARL valid
|
||||
let electron = deezer.electron;
|
||||
deezer = new DeezerAPI(req.body.arl, electron);
|
||||
settings.arl = req.body.arl;
|
||||
|
||||
if (await (deezer.authorize())) {
|
||||
|
|
|
@ -36,7 +36,6 @@ class Settings {
|
|||
this.language = 'en';
|
||||
|
||||
this.crossfadeDuration = 3000;
|
||||
this.lightTheme = false;
|
||||
this.playlistFolder = false;
|
||||
|
||||
this.forceWhiteTrayIcon = false;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "freezer",
|
||||
"private": true,
|
||||
"version": "1.1.10",
|
||||
"version": "1.1.11",
|
||||
"description": "",
|
||||
"scripts": {
|
||||
"pack": "electron-builder --dir",
|
||||
|
|
Loading…
Reference in New Issue