1.1.0 - Translations, downloads, bug fixes

This commit is contained in:
exttex
2020-10-31 16:54:28 +01:00
parent 2f8bca3dfb
commit fbafb4286d
63 changed files with 3820 additions and 636 deletions

View File

@ -31,7 +31,7 @@
<v-list-item-icon>
<v-icon>mdi-home</v-icon>
</v-list-item-icon>
<v-list-item-title>Home</v-list-item-title>
<v-list-item-title>{{$t('Home')}}</v-list-item-title>
</v-list-item>
<!-- Browse link -->
@ -39,10 +39,10 @@
<v-list-item-icon>
<v-icon>mdi-earth</v-icon>
</v-list-item-icon>
<v-list-item-title>Browse</v-list-item-title>
<v-list-item-title>{{$t('Browse')}}</v-list-item-title>
</v-list-item>
<v-subheader inset>Library</v-subheader>
<v-subheader inset>{{$t('Library')}}</v-subheader>
<v-divider></v-divider>
<!-- Tracks -->
@ -50,7 +50,7 @@
<v-list-item-icon>
<v-icon>mdi-music-note</v-icon>
</v-list-item-icon>
<v-list-item-title>Tracks</v-list-item-title>
<v-list-item-title>{{$t('Tracks')}}</v-list-item-title>
</v-list-item>
<!-- Playlists -->
@ -58,7 +58,7 @@
<v-list-item-icon>
<v-icon>mdi-playlist-music</v-icon>
</v-list-item-icon>
<v-list-item-title>Playlists</v-list-item-title>
<v-list-item-title>{{$t('Playlists')}}</v-list-item-title>
</v-list-item>
<!-- Albums -->
@ -66,7 +66,7 @@
<v-list-item-icon>
<v-icon>mdi-album</v-icon>
</v-list-item-icon>
<v-list-item-title>Albums</v-list-item-title>
<v-list-item-title>{{$t('Albums')}}</v-list-item-title>
</v-list-item>
<!-- Artists -->
@ -74,10 +74,10 @@
<v-list-item-icon>
<v-icon>mdi-account-music</v-icon>
</v-list-item-icon>
<v-list-item-title>Artists</v-list-item-title>
<v-list-item-title>{{$t('Artists')}}</v-list-item-title>
</v-list-item>
<v-subheader inset>More</v-subheader>
<v-subheader inset>{{$t('More')}}</v-subheader>
<v-divider></v-divider>
<!-- Settings -->
@ -85,30 +85,30 @@
<v-list-item-icon>
<v-icon>mdi-cog</v-icon>
</v-list-item-icon>
<v-list-item-title>Settings</v-list-item-title>
<v-list-item-title>{{$t('Settings')}}</v-list-item-title>
</v-list-item>
<!-- Downloads -->
<v-list-item link to='/downloads'>
<!-- Downloads, shitty hack if downloads not yet loaded -->
<v-list-item link to='/downloads' v-if='$root.downloads.queue'>
<!-- Download icon -->
<v-list-item-icon v-if='!$root.download && $root.downloads.length == 0'>
<v-list-item-icon v-if='!$root.downloads.downloading && $root.downloads.queue.length == 0'>
<v-icon>mdi-download</v-icon>
</v-list-item-icon>
<!-- Paused download -->
<v-list-item-icon v-if='!$root.download && $root.downloads.length > 0'>
<v-list-item-icon v-if='!$root.downloads.downloading && $root.downloads.queue.length > 0'>
<v-icon>mdi-pause</v-icon>
</v-list-item-icon>
<!-- Download in progress -->
<v-list-item-icon v-if='$root.download'>
<v-list-item-icon v-if='$root.downloads.downloading'>
<v-progress-circular :value='downloadPercentage' style='top: -2px' class='text-caption'>
{{$root.downloads.length + 1}}
{{$root.downloads.queue.length + $root.downloads.threads.length}}
</v-progress-circular>
</v-list-item-icon>
<v-list-item-title>Downloads</v-list-item-title>
<v-list-item-title>{{$t('Downloads')}}</v-list-item-title>
</v-list-item>
</v-list>
@ -133,7 +133,7 @@
solo
clearable
hide-no-data
placeholder='Search or paste Deezer URL. Use "/" to quickly focus.'
:placeholder='$t("Search or paste Deezer URL. Use / to quickly focus.")'
:loading='searchLoading'
@keyup='search'
ref='searchBar'
@ -141,6 +141,7 @@
:search-input.sync='searchInput'
:items='suggestions'
></v-autocomplete>
</v-app-bar>
@ -355,12 +356,19 @@ export default {
},
computed: {
qualityText() {
return `${this.$root.playbackInfo.format} ${this.$root.playbackInfo.quality}`;
return `${this.$root.playbackInfo.qualityString}`;
},
downloadPercentage() {
if (!this.$root.download) return 0;
let p = (this.$root.download.downloaded / this.$root.download.size) * 100;
if (isNaN(p)) return 0;
if (!this.$root.downloads.downloading) return 0;
let downloaded = this.$root.downloads.threads.reduce((a, b) => a + b.downloaded, 0);
let size = this.$root.downloads.threads.reduce((a, b) => a + b.size, 0);
if (size == 0)
size = 1;
let p = (downloaded / size) * 100;
if (p > 100)
p = 100;
return Math.round(p);
}
},
@ -413,6 +421,8 @@ export default {
this.suggestions = [];
return;
}
if (!this.$root.settings.showAutocomplete) return;
this.searchLoading = true;
//Prevent spam
setTimeout(() => {

View File

@ -33,7 +33,7 @@
<v-icon>mdi-play</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title>Play</v-list-item-title>
<v-list-item-title>{{$t("Play")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
<!-- Add to library -->
@ -42,7 +42,7 @@
<v-icon>mdi-heart</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title>Add to library</v-list-item-title>
<v-list-item-title>{{$t("Add to library")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
<!-- Download -->
@ -51,7 +51,7 @@
<v-icon>mdi-download</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title>Download</v-list-item-title>
<v-list-item-title>{{$t("Download")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>

View File

@ -6,7 +6,7 @@
</v-list-item-avatar>
<v-list-item-content>
<v-list-item-title>{{artist.name}}</v-list-item-title>
<v-list-item-subtitle v-if='!tiny'>{{$abbreviation(artist.fans)}} fans</v-list-item-subtitle>
<v-list-item-subtitle v-if='!tiny'>{{$abbreviation(artist.fans)}} {{$t("fans")}}</v-list-item-subtitle>
</v-list-item-content>
<v-list-item-action>
<!-- Context menu -->
@ -23,7 +23,7 @@
<v-icon>mdi-heart</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title>Add to library</v-list-item-title>
<v-list-item-title>{{$t("Add to library")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
</v-list>

View File

@ -5,29 +5,29 @@
<v-card>
<v-card-title class='headline'>
Download {{tracks.length}} tracks
{{$t("Download")}} {{tracks.length}} {{$t("tracks")}}
</v-card-title>
<v-card-text class='pb-0'>
<v-select
label='Quality'
:label='$t("Quality")'
persistent-hint
:items='qualities'
v-model='qualityString'
:hint='"Estimated size: " + $filesize(estimatedSize)'
:hint='$t("Estimated size:") + " " + $filesize(estimatedSize)'
></v-select>
<v-checkbox
v-model='autostart'
label='Start downloading'
:label='$t("Start downloading")'
></v-checkbox>
</v-card-text>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn text @click='$emit("close")'>Cancel</v-btn>
<v-btn text @click='download'>Download</v-btn>
<v-btn text @click='$emit("close")'>{{$t("Cancel")}}</v-btn>
<v-btn text @click='download'>{{$t("Download")}}</v-btn>
</v-card-actions>
</v-card>

View File

@ -12,10 +12,10 @@
</v-list-item-avatar>
<v-list-item-content>
<v-list-item-title>
Streaming logging is disabled!
{{$t("Stream logging is disabled!")}}
</v-list-item-title>
<v-list-item-subtitle>
Enable it in settings for history to work properly.
{{$t("Enable it in settings for history to work properly.")}}
</v-list-item-subtitle>
</v-list-item-content>
</v-list-item>
@ -56,7 +56,7 @@ export default {
//Load as queue and play
play(index) {
this.$root.queue.source = {
text: 'History',
text: this.$t('History'),
source: 'history',
data: null
};

View File

@ -8,7 +8,7 @@
<!-- Create playlist -->
<v-btn class='ma-2 ml-3' color='primary' @click='popup = true'>
<v-icon left>mdi-playlist-plus</v-icon>
Create new playlist
{{$t("Create new playlist")}}
</v-btn>
<v-dialog max-width="400px" v-model='popup'>

View File

@ -2,10 +2,10 @@
<div v-scroll.self='scroll'>
<div class='px-4 pt-2 d-flex' style='max-height: 50px;'>
<div class='text-overline px-2 pt-1'>
{{count}} TRACKS.
{{count}} {{$t("TRACKS")}}
</div>
<div style="max-width: 200px;" class='d-flex mx-2'>
<v-select class='px-2' dense solo :items='sortTypes' @change='sort' label='Sort By'>
<v-select class='px-2' dense solo :items='sortTypes' @change='sort' :label='$t("Sort by")'>
</v-select>
</div>
<div class='px-2' @click='reverseSort'>
@ -46,10 +46,10 @@ export default {
tracks: [],
count: 0,
sortTypes: [
'Date Added',
'Name (A-Z)',
'Artist (A-Z)',
'Album (A-Z)'
this.$t('Date Added'),
this.$t('Name (A-Z)'),
this.$t('Artist (A-Z)'),
this.$t('Album (A-Z)')
],
tracksUnsorted: null,
isReversed: false

View File

@ -34,7 +34,7 @@
<!-- Error -->
<div v-if='!loading && (!lyrics || (lyrics.text.length == 0 && lyrics.lyrics.length == 0))' class='pa-4 text-center'>
<span class='red--text text-h5'>
Error loading lyrics or lyrics not found!
{{$t("Error loading lyrics or lyrics not found!")}}
</span>
</div>

View File

@ -4,7 +4,7 @@
<!-- Create playlist -->
<v-card class='text-center pa-2' v-if='!addToPlaylist'>
<v-card-text>
<p primary-title class='display-1'>Create playlist</p>
<p primary-title class='display-1'>{{$t("Create playlist")}}</p>
<v-text-field label='Title' class='ma-2' v-model='title'></v-text-field>
<v-textarea class='mx-2' v-model='description' label='Description' rows='1' auto-grow></v-textarea>
<v-select class='mx-2' v-model='type' :items='types' label='Type'></v-select>
@ -12,17 +12,17 @@
<v-card-actions>
<v-spacer></v-spacer>
<v-btn class='primary' :loading='createLoading' @click='create'>Create</v-btn>
<v-btn class='primary' :loading='createLoading' @click='create'>{{$t("Create")}}</v-btn>
</v-card-actions>
</v-card>
<!-- Add to playlist -->
<v-card class='text-center pa-2' v-if='addToPlaylist'>
<v-card-text>
<p primary-title class='display-1'>Add to playlist</p>
<p primary-title class='display-1'>{{$t("Add to playlist")}}</p>
<v-btn block class='mb-1' @click='addToPlaylist = false'>
<v-icon left>mdi-playlist-plus</v-icon>
Create New
{{$t("Create new")}}
</v-btn>
<v-list>
<div v-for='playlist in playlists' :key='playlist.id'>

View File

@ -15,7 +15,7 @@
<v-list-item-content>
<v-list-item-title>{{playlist.title}}</v-list-item-title>
<v-list-item-subtitle>{{$numberString(playlist.trackCount)}} tracks</v-list-item-subtitle>
<v-list-item-subtitle>{{$numberString(playlist.trackCount)}} {{$t("tracks")}}</v-list-item-subtitle>
</v-list-item-content>
<v-list-item-action>
<!-- Context menu -->
@ -32,7 +32,7 @@
<v-icon>mdi-play</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title>Play</v-list-item-title>
<v-list-item-title>{{$t('Play')}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
@ -42,7 +42,7 @@
<v-icon>mdi-playlist-remove</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title>Remove</v-list-item-title>
<v-list-item-title>{{$t('Remove')}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
@ -52,7 +52,7 @@
<v-icon>mdi-download</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title>Download</v-list-item-title>
<v-list-item-title>{{$t('Download')}}</v-list-item-title>
</v-list-item-content>
</v-list-item>

View File

@ -45,7 +45,7 @@
<v-icon>mdi-playlist-plus</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title>Play next</v-list-item-title>
<v-list-item-title>{{$t("Play next")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
<!-- Add to end of queue -->
@ -54,7 +54,7 @@
<v-icon>mdi-playlist-plus</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title>Add to queue</v-list-item-title>
<v-list-item-title>{{$t("Add to queue")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
<!-- Add to library -->
@ -63,7 +63,7 @@
<v-icon>mdi-heart</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title>Add to library</v-list-item-title>
<v-list-item-title>{{$t("Add to library")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
<!-- Remove from library -->
@ -72,7 +72,7 @@
<v-icon>mdi-heart-remove</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title>Remove from library</v-list-item-title>
<v-list-item-title>{{$t("Remove from library")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
<!-- Add to playlist -->
@ -81,7 +81,7 @@
<v-icon>mdi-playlist-plus</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title>Add to playlist</v-list-item-title>
<v-list-item-title>{{$t("Add to playlist")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
<!-- Remove from playlist -->
@ -90,7 +90,16 @@
<v-icon>mdi-playlist-remove</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title>Remove from playlist</v-list-item-title>
<v-list-item-title>{{$t("Remove from playlist")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
<!-- Play track mix -->
<v-list-item dense @click='trackMix'>
<v-list-item-icon>
<v-icon>mdi-playlist-music</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title>{{$t("Play track mix")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
<!-- Go to album -->
@ -99,7 +108,7 @@
<v-icon>mdi-album</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title>Go to "{{track.album.title}}"</v-list-item-title>
<v-list-item-title>{{$t("Go to")}} "{{track.album.title}}"</v-list-item-title>
</v-list-item-content>
</v-list-item>
<!-- Go to artists -->
@ -113,7 +122,7 @@
<v-icon>mdi-account-music</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title>Go to "{{artist.name}}"</v-list-item-title>
<v-list-item-title>{{$t("Go to")}} "{{artist.name}}"</v-list-item-title>
</v-list-item-content>
</v-list-item>
@ -123,7 +132,7 @@
<v-icon>mdi-download</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title>Download</v-list-item-title>
<v-list-item-title>{{$t("Download")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
@ -207,8 +216,18 @@ export default {
this.$emit('remove');
},
//Download track
async download() {
download() {
this.downloadDialog = true;
},
async trackMix() {
let res = await this.$axios.get('/trackmix/' + this.track.id);
this.$root.queue.source = {
text: this.$t('Track Mix'),
source: 'trackmix',
data: this.track.id
};
this.$root.replaceQueue(res.data);
this.$root.playIndex(0);
}
}
}

23
app/client/src/js/i18n.js Normal file
View File

@ -0,0 +1,23 @@
import Vue from 'vue'
import VueI18n from 'vue-i18n'
Vue.use(VueI18n);
function loadLocaleMessages () {
const locales = require.context('../locales', true, /[A-Za-z0-9-_,\s]+\.json$/i)
const messages = {}
locales.keys().forEach(key => {
const matched = key.match(/([A-Za-z0-9-_]+)\./i)
if (matched && matched.length > 1) {
const locale = matched[1]
messages[locale] = locales(key)
}
})
return messages
}
export default new VueI18n({
locale: process.env.VUE_APP_I18N_LOCALE || 'en',
fallbackLocale: process.env.VUE_APP_I18N_FALLBACK_LOCALE || 'en',
messages: loadLocaleMessages()
})

View File

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

View File

@ -0,0 +1,112 @@
{
"Home": "القائمة الرئيسية",
"Browse": "تصفح",
"Library": "المكتبة",
"Tracks": "أغاني",
"Playlists": "قوائم تشغيل",
"Albums": "البومات",
"Artists": "فنانون",
"More": "المزيد",
"Settings": "الإعدادات",
"Downloads": "التنزيلات",
"Search or paste Deezer URL. Use / to quickly focus.": "ابحث أو الصق رابط ديزر, استخدم \"/\" للتركيز السريع.",
"Play": "تشغيل",
"Add to library": "إضافة إلى المكتبة",
"Download": "تنزيل",
"fans": "المتابِعين",
"tracks": "أغاني",
"Quality": "الجودة",
"Estimated size:": "الحجم المتوقع:",
"Start downloading": "بدء التنزيل",
"Cancel": "الغاء",
"Stream logging is disabled!": "تسجيل البث معطل!",
"Enable it in settings for history to work properly.": "فعله في الإعدادات لتفعيل تاريخ السماع بشكل صحيح.",
"History": "تاريخ السماع",
"Create new playlist": "انشاء قائمة تشغيل جديدة",
"TRACKS": "أغاني",
"Sort by": "ترتيب حسب",
"Date Added": "تاريخ الإضافة",
"Name (A-Z)": "الإسم (أ - ي)",
"Artist (A-Z)": "الفنان (أ - ي)",
"Album (A-Z)": "الألبوم (أ - ي)",
"Error loading lyrics or lyrics not found!": "خطأ في تحميل كلمات الاغنية او الكلمات غير موجودة!",
"Create playlist": "إنشاء قائمة التشغيل",
"Create": "إنشاء",
"Add to playlist": "اضافة الى قائمة التشغيل",
"Create new": "إنشاء جديد",
"Remove": "إزالة",
"Play next": "شغل التالي",
"Add to queue": "إضافة إلى قائمة الانتظار",
"Remove from library": "إزالة من المكتبة",
"Remove from playlist": "إزالة من قائمة التشغيل",
"Play track mix": "تشغيل مزيج الاغاني",
"Go to": "الذهاب الى",
"Track Mix": "مزيج الاغاني",
"Duration": "المدة",
"Released": "تم إصداره",
"Disk": "القرص",
"albums": "البومات",
"Play top": "تشغيل الأفضل",
"Radio": "راديو",
"Show all albums": "اضهار كل الالبومات",
"Show all singles": "إظهار كل الأغاني المنفردة",
"Show more": "اظهار المزيد",
"Downloaded": "تم التنزيل",
"Queue": "قائمة الانتظار",
"Total": "المجموع",
"Stop": "إيقاف",
"Start": "بدء",
"Show folder": "عرض المجلدات",
"Clear queue": "تفريغ قائمة الإنتظار",
"Playing from": "التشغيل من",
"Info": "معلومات",
"Lyrics": "كلمات الأغنية",
"Track number": "رقم الأغنية",
"Disk number": "رقم القرص",
"Explicit": "صريحة (شتم)",
"Source": "المصدر",
"ID": "الرقم التعريفي",
"Error logging in!": "خطأ في تسجيل الدخول!",
"Please try again later, or try another account.": "الرجاء المحاولة مرة أخرى لاحقا، أو حاول حساب آخر.",
"Logout": "تسجيل الخروج",
"Login using browser": "تسجيل الدخول باستخدام المتصفح",
"Please login using your Deezer account:": "يرجى تسجيل الدخول باستخدام حساب ديزر الخاص بك:",
"...or paste your ARL/Token below:": "...أو لصق ARL/الرمز الخاص بك أدناه:",
"ARL/Token": "ARL/الرمز المميز",
"Login": "تسجيل الدخول",
"By using this program, you disagree with Deezer's ToS.": "باستخدام هذا البرنامج، أنت لا توافق على شروط خدمة ديزر.",
"Only in Electron version!": "فقط في إصدار إلكترون!",
"Search results for:": "نتائج البحث عن:",
"Error loading data!": "خطأ في تحميل البيانات!",
"Try again later!": "حاول مرة اخرى لاحقا!",
"Search": "بحث",
"Streaming Quality": "جودة التشغيل",
"Download Quality": "جودة التنزيل",
"Downloads Directory": "مسار التنزيل",
"Simultaneous downloads": "عدد التحميلات في نفس الوقت",
"Always show download confirm dialog before downloading.": "اضهار مربع تأكيد التنزيل دائماً قبل التنزيل.",
"Show download dialog": "عرض مربع تأكيد التنزيل",
"Create folders for artists": "إنشاء ملفات للفنان",
"Create folders for albums": "إنشاء ملفات للالبوم",
"Download lyrics": "تنزيل ملف كلمات الاغنية. Lrc",
"Variables": "المتغيرات",
"UI": "واجهة المستخدم",
"Show autocomplete in search": "إظهار الإكمال التلقائي في البحث",
"Integrations": "الدمج",
"This allows listening history, flow and recommendations to work properly.": "وهذا يتيح لسجل الاستماع و فلو والتوصيات, العمل على نحو سليم.",
"Log track listens to Deezer": "سِجِل استماع الاغاني الى ديزر",
"Connect your LastFM account to allow scrobbling.": "قم بتوصيل حساب LastFM الخاص بك للسماح بالتسجيل.",
"Login with LastFM": "تسجيل الدخول في LastFM",
"Disconnect LastFM": "تسجيل الخروج من LastFm",
"Requires restart to apply!": "يتطلب إعادة التشغيل من أجل التطبيق!",
"Enable Discord Rich Presence, requires restart to toggle!": "تمكين فعالية دسكورد، يتطلب إعادة تشغيل للتبديل!",
"Discord Rich Presence": "فعالية دسكورد",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "تمكين زر انضمام دسكورد لمزامنة الاغاني، يتطلب إعادة تشغيل للتبديل!",
"Discord Join Button": "زر الانضمام في دسكورد",
"Other": "أخرى",
"Minimize to tray": "تصغير إلى شريط المهام",
"Don't minimize to tray": "عدم التصغير إلى شريط المهام",
"Close on exit": "إغلاق عند الخروج",
"Settings saved!": "تم حفظ الإعدادات!",
"Available only in Electron version!": "متاح فقط في اصدار الإلكترون!"
}

View File

@ -0,0 +1,112 @@
{
"Home": "Start",
"Browse": "Durchsuchen",
"Library": "Mediathek",
"Tracks": "Titel",
"Playlists": "Wiedergabelisten",
"Albums": "Alben",
"Artists": "Künstler",
"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.",
"Play": "Wiedergeben",
"Add to library": "Zur Mediathek hinzufügen",
"Download": "Download",
"fans": "Fans",
"tracks": "Titel",
"Quality": "Qualität",
"Estimated size:": "Geschätzte Zeit:",
"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 Wiedergabeliste erstellen",
"TRACKS": "Titel",
"Sort by": "Sortieren nach",
"Date Added": "Hinzugefügt am",
"Name (A-Z)": "Name (A-Z)",
"Artist (A-Z)": "Künstler (A-Z)",
"Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Fehler beim Laden der Songtexte oder Songtexte nicht gefunden!",
"Create playlist": "Wiedergabeliste erstellen",
"Create": "Erstellen",
"Add to playlist": "Zur Wiedergabeliste hinzufügen",
"Create new": "Neu erstellen",
"Remove": "Entfernen",
"Play next": "Als nächstes spielen",
"Add to queue": "Zur Warteschleife hinzufügen",
"Remove from library": "Aus der Mediathek entfernen",
"Remove from playlist": "Aus Wiedergabeliste entfernen",
"Play track mix": "Track Mix abspielen",
"Go to": "Gehe zu",
"Track Mix": "Track Mix",
"Duration": "Dauer",
"Released": "Veröffentlicht",
"Disk": "Disk",
"albums": "Alben",
"Play top": "Play top",
"Radio": "Radio",
"Show all albums": "Zeige alle Alben",
"Show all singles": "Zeige alle Singles",
"Show more": "Mehr anzeigen",
"Downloaded": "Heruntergeladen",
"Queue": "Warteschleife",
"Total": "Gesamt",
"Stop": "Stop",
"Start": "Start",
"Show folder": "Ordner anzeigen",
"Clear queue": "Warteschleife löschen",
"Playing from": "Wiedergabe von",
"Info": "Info",
"Lyrics": "Lyrics",
"Track number": "Titelnummer",
"Disk number": "Disk-Nummer",
"Explicit": "Explizit",
"Source": "Quelle",
"ID": "ID",
"Error logging in!": "Fehler beim einloggen!",
"Please try again later, or try another account.": "Bitte versuche es später noch einmal oder versuche es mit einem anderen Konto.",
"Logout": "Abmelden",
"Login using browser": "Anmeldung über Browser",
"Please login using your Deezer account:": "Bitte melde dich mit deinem Deezer-Konto an:",
"...or paste your ARL/Token below:": "...oder füge dein ARL/Token unten ein:",
"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.",
"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",
"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 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.",
"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.",
"Login with LastFM": "Anmelden mit LastFM",
"Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Erfordert einen Neustart der App!",
"Enable Discord Rich Presence, requires restart to toggle!": "Discord Rich Presence aktivieren, erfordert einen Neustart zum Umschalten!",
"Discord Rich Presence": "Discord Rich Presence",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Aktiviere Discord Join für die Synchronisierung von Titel, benötigt einen Neustart zum Umschalten!",
"Discord Join Button": "Discord Join Button",
"Other": "Andere",
"Minimize to tray": "In Statusleiste minimieren",
"Don't minimize to tray": "Nicht in Statusleiste minimieren",
"Close on exit": "Beim Beenden schließen",
"Settings saved!": "Einstellungen gespeichert!",
"Available only in Electron version!": "Nur in der Electron-Version verfügbar!"
}

View File

@ -0,0 +1,112 @@
{
"Home": "Home",
"Browse": "Browse",
"Library": "Library",
"Tracks": "Tracks",
"Playlists": "Playlists",
"Albums": "Albums",
"Artists": "Artists",
"More": "More",
"Settings": "Settings",
"Downloads": "Downloads",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
"Play": "Play",
"Add to library": "Add to library",
"Download": "Download",
"fans": "fans",
"tracks": "tracks",
"Quality": "Quality",
"Estimated size:": "Estimated size:",
"Start downloading": "Start downloading",
"Cancel": "Cancel",
"Stream logging is disabled!": "Stream logging is disabled!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
"History": "History",
"Create new playlist": "Create new playlist",
"TRACKS": "TRACKS",
"Sort by": "Sort by",
"Date Added": "Date Added",
"Name (A-Z)": "Name (A-Z)",
"Artist (A-Z)": "Artist (A-Z)",
"Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
"Create playlist": "Create playlist",
"Create": "Create",
"Add to playlist": "Add to playlist",
"Create new": "Create new",
"Remove": "Remove",
"Play next": "Play next",
"Add to queue": "Add to queue",
"Remove from library": "Remove from library",
"Remove from playlist": "Remove from playlist",
"Play track mix": "Play track mix",
"Go to": "Go to",
"Track Mix": "Track Mix",
"Duration": "Duration",
"Released": "Released",
"Disk": "Disk",
"albums": "albums",
"Play top": "Play top",
"Radio": "Radio",
"Show all albums": "Show all albums",
"Show all singles": "Show all singles",
"Show more": "Show more",
"Downloaded": "Downloaded",
"Queue": "Queue",
"Total": "Total",
"Stop": "Stop",
"Start": "Start",
"Show folder": "Show folder",
"Clear queue": "Clear queue",
"Playing from": "Playing from",
"Info": "Info",
"Lyrics": "Lyrics",
"Track number": "Track number",
"Disk number": "Disk number",
"Explicit": "Explicit",
"Source": "Source",
"ID": "ID",
"Error logging in!": "Error logging in!",
"Please try again later, or try another account.": "Please try again later, or try another account.",
"Logout": "Logout",
"Login using browser": "Login using browser",
"Please login using your Deezer account:": "Please login using your Deezer account:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
"ARL/Token": "ARL/Token",
"Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
"Only in Electron version!": "Only in Electron version!",
"Search results for:": "Search results for:",
"Error loading data!": "Error loading data!",
"Try again later!": "Try again later!",
"Search": "Search",
"Streaming Quality": "Streaming Quality",
"Download Quality": "Download Quality",
"Downloads Directory": "Downloads Directory",
"Simultaneous downloads": "Simultaneous downloads",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
"Show download dialog": "Show download dialog",
"Create folders for artists": "Create folders for artists",
"Create folders for albums": "Create folders for albums",
"Download lyrics": "Download lyrics",
"Variables": "Variables",
"UI": "UI",
"Show autocomplete in search": "Show autocomplete in search",
"Integrations": "Integrations",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.",
"Log track listens to Deezer": "Log track listens to Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
"Login with LastFM": "Login with LastFM",
"Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Requires restart to apply!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
"Discord Rich Presence": "Discord Rich Presence",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
"Discord Join Button": "Discord Join Button",
"Other": "Other",
"Minimize to tray": "Minimize to tray",
"Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit",
"Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!"
}

View File

@ -0,0 +1,112 @@
{
"Home": "Home",
"Browse": "Browse",
"Library": "Library",
"Tracks": "Tracks",
"Playlists": "Playlists",
"Albums": "Albums",
"Artists": "Artists",
"More": "More",
"Settings": "Settings",
"Downloads": "Downloads",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
"Play": "Play",
"Add to library": "Add to library",
"Download": "Download",
"fans": "fans",
"tracks": "tracks",
"Quality": "Quality",
"Estimated size:": "Estimated size:",
"Start downloading": "Start downloading",
"Cancel": "Cancel",
"Stream logging is disabled!": "Stream logging is disabled!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
"History": "History",
"Create new playlist": "Create new playlist",
"TRACKS": "TRACKS",
"Sort by": "Sort by",
"Date Added": "Date Added",
"Name (A-Z)": "Name (A-Z)",
"Artist (A-Z)": "Artist (A-Z)",
"Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
"Create playlist": "Create playlist",
"Create": "Create",
"Add to playlist": "Add to playlist",
"Create new": "Create new",
"Remove": "Remove",
"Play next": "Play next",
"Add to queue": "Add to queue",
"Remove from library": "Remove from library",
"Remove from playlist": "Remove from playlist",
"Play track mix": "Play track mix",
"Go to": "Go to",
"Track Mix": "Track Mix",
"Duration": "Duration",
"Released": "Released",
"Disk": "Disk",
"albums": "albums",
"Play top": "Play top",
"Radio": "Radio",
"Show all albums": "Show all albums",
"Show all singles": "Show all singles",
"Show more": "Show more",
"Downloaded": "Downloaded",
"Queue": "Queue",
"Total": "Total",
"Stop": "Stop",
"Start": "Start",
"Show folder": "Show folder",
"Clear queue": "Clear queue",
"Playing from": "Playing from",
"Info": "Info",
"Lyrics": "Lyrics",
"Track number": "Track number",
"Disk number": "Disk number",
"Explicit": "Explicit",
"Source": "Source",
"ID": "ID",
"Error logging in!": "Error logging in!",
"Please try again later, or try another account.": "Please try again later, or try another account.",
"Logout": "Logout",
"Login using browser": "Login using browser",
"Please login using your Deezer account:": "Please login using your Deezer account:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
"ARL/Token": "ARL/Token",
"Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
"Only in Electron version!": "Only in Electron version!",
"Search results for:": "Search results for:",
"Error loading data!": "Error loading data!",
"Try again later!": "Try again later!",
"Search": "Search",
"Streaming Quality": "Streaming Quality",
"Download Quality": "Download Quality",
"Downloads Directory": "Downloads Directory",
"Simultaneous downloads": "Simultaneous downloads",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
"Show download dialog": "Show download dialog",
"Create folders for artists": "Create folders for artists",
"Create folders for albums": "Create folders for albums",
"Download lyrics": "Download lyrics",
"Variables": "Variables",
"UI": "UI",
"Show autocomplete in search": "Show autocomplete in search",
"Integrations": "Integrations",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.",
"Log track listens to Deezer": "Log track listens to Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
"Login with LastFM": "Login with LastFM",
"Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Requires restart to apply!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
"Discord Rich Presence": "Discord Rich Presence",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
"Discord Join Button": "Discord Join Button",
"Other": "Other",
"Minimize to tray": "Minimize to tray",
"Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit",
"Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!"
}

View File

@ -0,0 +1,112 @@
{
"Home": "Home",
"Browse": "Browse",
"Library": "Library",
"Tracks": "Tracks",
"Playlists": "Playlists",
"Albums": "Albums",
"Artists": "Artists",
"More": "More",
"Settings": "Settings",
"Downloads": "Downloads",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
"Play": "Play",
"Add to library": "Add to library",
"Download": "Download",
"fans": "fans",
"tracks": "tracks",
"Quality": "Quality",
"Estimated size:": "Estimated size:",
"Start downloading": "Start downloading",
"Cancel": "Cancel",
"Stream logging is disabled!": "Stream logging is disabled!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
"History": "History",
"Create new playlist": "Create new playlist",
"TRACKS": "TRACKS",
"Sort by": "Sort by",
"Date Added": "Date Added",
"Name (A-Z)": "Name (A-Z)",
"Artist (A-Z)": "Artist (A-Z)",
"Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
"Create playlist": "Create playlist",
"Create": "Create",
"Add to playlist": "Add to playlist",
"Create new": "Create new",
"Remove": "Remove",
"Play next": "Play next",
"Add to queue": "Add to queue",
"Remove from library": "Remove from library",
"Remove from playlist": "Remove from playlist",
"Play track mix": "Play track mix",
"Go to": "Go to",
"Track Mix": "Track Mix",
"Duration": "Duration",
"Released": "Released",
"Disk": "Disk",
"albums": "albums",
"Play top": "Play top",
"Radio": "Radio",
"Show all albums": "Show all albums",
"Show all singles": "Show all singles",
"Show more": "Show more",
"Downloaded": "Downloaded",
"Queue": "Queue",
"Total": "Total",
"Stop": "Stop",
"Start": "Start",
"Show folder": "Show folder",
"Clear queue": "Clear queue",
"Playing from": "Playing from",
"Info": "Info",
"Lyrics": "Lyrics",
"Track number": "Track number",
"Disk number": "Disk number",
"Explicit": "Explicit",
"Source": "Source",
"ID": "ID",
"Error logging in!": "Error logging in!",
"Please try again later, or try another account.": "Please try again later, or try another account.",
"Logout": "Logout",
"Login using browser": "Login using browser",
"Please login using your Deezer account:": "Please login using your Deezer account:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
"ARL/Token": "ARL/Token",
"Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
"Only in Electron version!": "Only in Electron version!",
"Search results for:": "Search results for:",
"Error loading data!": "Error loading data!",
"Try again later!": "Try again later!",
"Search": "Search",
"Streaming Quality": "Streaming Quality",
"Download Quality": "Download Quality",
"Downloads Directory": "Downloads Directory",
"Simultaneous downloads": "Simultaneous downloads",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
"Show download dialog": "Show download dialog",
"Create folders for artists": "Create folders for artists",
"Create folders for albums": "Create folders for albums",
"Download lyrics": "Download lyrics",
"Variables": "Variables",
"UI": "UI",
"Show autocomplete in search": "Show autocomplete in search",
"Integrations": "Integrations",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.",
"Log track listens to Deezer": "Log track listens to Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
"Login with LastFM": "Login with LastFM",
"Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Requires restart to apply!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
"Discord Rich Presence": "Discord Rich Presence",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
"Discord Join Button": "Discord Join Button",
"Other": "Other",
"Minimize to tray": "Minimize to tray",
"Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit",
"Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!"
}

View File

@ -0,0 +1,112 @@
{
"Home": "Home",
"Browse": "Browse",
"Library": "Library",
"Tracks": "Tracks",
"Playlists": "Playlists",
"Albums": "Albums",
"Artists": "Artists",
"More": "More",
"Settings": "Settings",
"Downloads": "Downloads",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
"Play": "Play",
"Add to library": "Add to library",
"Download": "Download",
"fans": "fans",
"tracks": "tracks",
"Quality": "Quality",
"Estimated size:": "Estimated size:",
"Start downloading": "Start downloading",
"Cancel": "Cancel",
"Stream logging is disabled!": "Stream logging is disabled!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
"History": "History",
"Create new playlist": "Create new playlist",
"TRACKS": "TRACKS",
"Sort by": "Sort by",
"Date Added": "Date Added",
"Name (A-Z)": "Name (A-Z)",
"Artist (A-Z)": "Artist (A-Z)",
"Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
"Create playlist": "Create playlist",
"Create": "Create",
"Add to playlist": "Add to playlist",
"Create new": "Create new",
"Remove": "Remove",
"Play next": "Play next",
"Add to queue": "Add to queue",
"Remove from library": "Remove from library",
"Remove from playlist": "Remove from playlist",
"Play track mix": "Play track mix",
"Go to": "Go to",
"Track Mix": "Track Mix",
"Duration": "Duration",
"Released": "Released",
"Disk": "Disk",
"albums": "albums",
"Play top": "Play top",
"Radio": "Radio",
"Show all albums": "Show all albums",
"Show all singles": "Show all singles",
"Show more": "Show more",
"Downloaded": "Downloaded",
"Queue": "Queue",
"Total": "Total",
"Stop": "Stop",
"Start": "Start",
"Show folder": "Show folder",
"Clear queue": "Clear queue",
"Playing from": "Playing from",
"Info": "Info",
"Lyrics": "Lyrics",
"Track number": "Track number",
"Disk number": "Disk number",
"Explicit": "Explicit",
"Source": "Source",
"ID": "ID",
"Error logging in!": "Error logging in!",
"Please try again later, or try another account.": "Please try again later, or try another account.",
"Logout": "Logout",
"Login using browser": "Login using browser",
"Please login using your Deezer account:": "Please login using your Deezer account:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
"ARL/Token": "ARL/Token",
"Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
"Only in Electron version!": "Only in Electron version!",
"Search results for:": "Search results for:",
"Error loading data!": "Error loading data!",
"Try again later!": "Try again later!",
"Search": "Search",
"Streaming Quality": "Streaming Quality",
"Download Quality": "Download Quality",
"Downloads Directory": "Downloads Directory",
"Simultaneous downloads": "Simultaneous downloads",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
"Show download dialog": "Show download dialog",
"Create folders for artists": "Create folders for artists",
"Create folders for albums": "Create folders for albums",
"Download lyrics": "Download lyrics",
"Variables": "Variables",
"UI": "UI",
"Show autocomplete in search": "Show autocomplete in search",
"Integrations": "Integrations",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.",
"Log track listens to Deezer": "Log track listens to Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
"Login with LastFM": "Login with LastFM",
"Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Requires restart to apply!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
"Discord Rich Presence": "Discord Rich Presence",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
"Discord Join Button": "Discord Join Button",
"Other": "Other",
"Minimize to tray": "Minimize to tray",
"Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit",
"Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!"
}

View File

@ -0,0 +1,112 @@
{
"Home": "Home",
"Browse": "Browse",
"Library": "Library",
"Tracks": "Tracks",
"Playlists": "Playlists",
"Albums": "Albums",
"Artists": "Artists",
"More": "More",
"Settings": "Settings",
"Downloads": "Downloads",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
"Play": "Play",
"Add to library": "Add to library",
"Download": "Download",
"fans": "fans",
"tracks": "tracks",
"Quality": "Quality",
"Estimated size:": "Estimated size:",
"Start downloading": "Start downloading",
"Cancel": "Cancel",
"Stream logging is disabled!": "Stream logging is disabled!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
"History": "History",
"Create new playlist": "Create new playlist",
"TRACKS": "TRACKS",
"Sort by": "Sort by",
"Date Added": "Date Added",
"Name (A-Z)": "Name (A-Z)",
"Artist (A-Z)": "Artist (A-Z)",
"Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
"Create playlist": "Create playlist",
"Create": "Create",
"Add to playlist": "Add to playlist",
"Create new": "Create new",
"Remove": "Remove",
"Play next": "Play next",
"Add to queue": "Add to queue",
"Remove from library": "Remove from library",
"Remove from playlist": "Remove from playlist",
"Play track mix": "Play track mix",
"Go to": "Go to",
"Track Mix": "Track Mix",
"Duration": "Duration",
"Released": "Released",
"Disk": "Disk",
"albums": "albums",
"Play top": "Play top",
"Radio": "Radio",
"Show all albums": "Show all albums",
"Show all singles": "Show all singles",
"Show more": "Show more",
"Downloaded": "Downloaded",
"Queue": "Queue",
"Total": "Total",
"Stop": "Stop",
"Start": "Start",
"Show folder": "Show folder",
"Clear queue": "Clear queue",
"Playing from": "Playing from",
"Info": "Info",
"Lyrics": "Lyrics",
"Track number": "Track number",
"Disk number": "Disk number",
"Explicit": "Explicit",
"Source": "Source",
"ID": "ID",
"Error logging in!": "Error logging in!",
"Please try again later, or try another account.": "Please try again later, or try another account.",
"Logout": "Logout",
"Login using browser": "Login using browser",
"Please login using your Deezer account:": "Please login using your Deezer account:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
"ARL/Token": "ARL/Token",
"Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
"Only in Electron version!": "Only in Electron version!",
"Search results for:": "Search results for:",
"Error loading data!": "Error loading data!",
"Try again later!": "Try again later!",
"Search": "Search",
"Streaming Quality": "Streaming Quality",
"Download Quality": "Download Quality",
"Downloads Directory": "Downloads Directory",
"Simultaneous downloads": "Simultaneous downloads",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
"Show download dialog": "Show download dialog",
"Create folders for artists": "Create folders for artists",
"Create folders for albums": "Create folders for albums",
"Download lyrics": "Download lyrics",
"Variables": "Variables",
"UI": "UI",
"Show autocomplete in search": "Show autocomplete in search",
"Integrations": "Integrations",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.",
"Log track listens to Deezer": "Log track listens to Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
"Login with LastFM": "Login with LastFM",
"Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Requires restart to apply!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
"Discord Rich Presence": "Discord Rich Presence",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
"Discord Join Button": "Discord Join Button",
"Other": "Other",
"Minimize to tray": "Minimize to tray",
"Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit",
"Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!"
}

View File

@ -0,0 +1,112 @@
{
"Home": "Home",
"Browse": "Browse",
"Library": "Library",
"Tracks": "Tracks",
"Playlists": "Playlists",
"Albums": "Albums",
"Artists": "Artists",
"More": "More",
"Settings": "Settings",
"Downloads": "Downloads",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
"Play": "Play",
"Add to library": "Add to library",
"Download": "Download",
"fans": "fans",
"tracks": "tracks",
"Quality": "Quality",
"Estimated size:": "Estimated size:",
"Start downloading": "Start downloading",
"Cancel": "Cancel",
"Stream logging is disabled!": "Stream logging is disabled!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
"History": "History",
"Create new playlist": "Create new playlist",
"TRACKS": "TRACKS",
"Sort by": "Sort by",
"Date Added": "Date Added",
"Name (A-Z)": "Name (A-Z)",
"Artist (A-Z)": "Artist (A-Z)",
"Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
"Create playlist": "Create playlist",
"Create": "Create",
"Add to playlist": "Add to playlist",
"Create new": "Create new",
"Remove": "Remove",
"Play next": "Play next",
"Add to queue": "Add to queue",
"Remove from library": "Remove from library",
"Remove from playlist": "Remove from playlist",
"Play track mix": "Play track mix",
"Go to": "Go to",
"Track Mix": "Track Mix",
"Duration": "Duration",
"Released": "Released",
"Disk": "Disk",
"albums": "albums",
"Play top": "Play top",
"Radio": "Radio",
"Show all albums": "Show all albums",
"Show all singles": "Show all singles",
"Show more": "Show more",
"Downloaded": "Downloaded",
"Queue": "Queue",
"Total": "Total",
"Stop": "Stop",
"Start": "Start",
"Show folder": "Show folder",
"Clear queue": "Clear queue",
"Playing from": "Playing from",
"Info": "Info",
"Lyrics": "Lyrics",
"Track number": "Track number",
"Disk number": "Disk number",
"Explicit": "Explicit",
"Source": "Source",
"ID": "ID",
"Error logging in!": "Error logging in!",
"Please try again later, or try another account.": "Please try again later, or try another account.",
"Logout": "Logout",
"Login using browser": "Login using browser",
"Please login using your Deezer account:": "Please login using your Deezer account:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
"ARL/Token": "ARL/Token",
"Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
"Only in Electron version!": "Only in Electron version!",
"Search results for:": "Search results for:",
"Error loading data!": "Error loading data!",
"Try again later!": "Try again later!",
"Search": "Search",
"Streaming Quality": "Streaming Quality",
"Download Quality": "Download Quality",
"Downloads Directory": "Downloads Directory",
"Simultaneous downloads": "Simultaneous downloads",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
"Show download dialog": "Show download dialog",
"Create folders for artists": "Create folders for artists",
"Create folders for albums": "Create folders for albums",
"Download lyrics": "Download lyrics",
"Variables": "Variables",
"UI": "UI",
"Show autocomplete in search": "Show autocomplete in search",
"Integrations": "Integrations",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.",
"Log track listens to Deezer": "Log track listens to Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
"Login with LastFM": "Login with LastFM",
"Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Requires restart to apply!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
"Discord Rich Presence": "Discord Rich Presence",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
"Discord Join Button": "Discord Join Button",
"Other": "Other",
"Minimize to tray": "Minimize to tray",
"Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit",
"Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!"
}

View File

@ -0,0 +1,112 @@
{
"Home": "Home",
"Browse": "Browse",
"Library": "Library",
"Tracks": "Tracks",
"Playlists": "Playlists",
"Albums": "Albums",
"Artists": "Artists",
"More": "More",
"Settings": "Settings",
"Downloads": "Downloads",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
"Play": "Play",
"Add to library": "Add to library",
"Download": "Download",
"fans": "fans",
"tracks": "tracks",
"Quality": "Quality",
"Estimated size:": "Estimated size:",
"Start downloading": "Start downloading",
"Cancel": "Cancel",
"Stream logging is disabled!": "Stream logging is disabled!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
"History": "History",
"Create new playlist": "Create new playlist",
"TRACKS": "TRACKS",
"Sort by": "Sort by",
"Date Added": "Date Added",
"Name (A-Z)": "Name (A-Z)",
"Artist (A-Z)": "Artist (A-Z)",
"Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
"Create playlist": "Create playlist",
"Create": "Create",
"Add to playlist": "Add to playlist",
"Create new": "Create new",
"Remove": "Remove",
"Play next": "Play next",
"Add to queue": "Add to queue",
"Remove from library": "Remove from library",
"Remove from playlist": "Remove from playlist",
"Play track mix": "Play track mix",
"Go to": "Go to",
"Track Mix": "Track Mix",
"Duration": "Duration",
"Released": "Released",
"Disk": "Disk",
"albums": "albums",
"Play top": "Play top",
"Radio": "Radio",
"Show all albums": "Show all albums",
"Show all singles": "Show all singles",
"Show more": "Show more",
"Downloaded": "Downloaded",
"Queue": "Queue",
"Total": "Total",
"Stop": "Stop",
"Start": "Start",
"Show folder": "Show folder",
"Clear queue": "Clear queue",
"Playing from": "Playing from",
"Info": "Info",
"Lyrics": "Lyrics",
"Track number": "Track number",
"Disk number": "Disk number",
"Explicit": "Explicit",
"Source": "Source",
"ID": "ID",
"Error logging in!": "Error logging in!",
"Please try again later, or try another account.": "Please try again later, or try another account.",
"Logout": "Logout",
"Login using browser": "Login using browser",
"Please login using your Deezer account:": "Please login using your Deezer account:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
"ARL/Token": "ARL/Token",
"Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
"Only in Electron version!": "Only in Electron version!",
"Search results for:": "Search results for:",
"Error loading data!": "Error loading data!",
"Try again later!": "Try again later!",
"Search": "Search",
"Streaming Quality": "Streaming Quality",
"Download Quality": "Download Quality",
"Downloads Directory": "Downloads Directory",
"Simultaneous downloads": "Simultaneous downloads",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
"Show download dialog": "Show download dialog",
"Create folders for artists": "Create folders for artists",
"Create folders for albums": "Create folders for albums",
"Download lyrics": "Download lyrics",
"Variables": "Variables",
"UI": "UI",
"Show autocomplete in search": "Show autocomplete in search",
"Integrations": "Integrations",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.",
"Log track listens to Deezer": "Log track listens to Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
"Login with LastFM": "Login with LastFM",
"Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Requires restart to apply!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
"Discord Rich Presence": "Discord Rich Presence",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
"Discord Join Button": "Discord Join Button",
"Other": "Other",
"Minimize to tray": "Minimize to tray",
"Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit",
"Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!"
}

View File

@ -0,0 +1,112 @@
{
"Home": "Home",
"Browse": "Browse",
"Library": "Library",
"Tracks": "Tracks",
"Playlists": "Playlists",
"Albums": "Albums",
"Artists": "Artists",
"More": "More",
"Settings": "Settings",
"Downloads": "Downloads",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
"Play": "Play",
"Add to library": "Add to library",
"Download": "Download",
"fans": "fans",
"tracks": "tracks",
"Quality": "Quality",
"Estimated size:": "Estimated size:",
"Start downloading": "Start downloading",
"Cancel": "Cancel",
"Stream logging is disabled!": "Stream logging is disabled!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
"History": "History",
"Create new playlist": "Create new playlist",
"TRACKS": "TRACKS",
"Sort by": "Sort by",
"Date Added": "Date Added",
"Name (A-Z)": "Name (A-Z)",
"Artist (A-Z)": "Artist (A-Z)",
"Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
"Create playlist": "Create playlist",
"Create": "Create",
"Add to playlist": "Add to playlist",
"Create new": "Create new",
"Remove": "Remove",
"Play next": "Play next",
"Add to queue": "Add to queue",
"Remove from library": "Remove from library",
"Remove from playlist": "Remove from playlist",
"Play track mix": "Play track mix",
"Go to": "Go to",
"Track Mix": "Track Mix",
"Duration": "Duration",
"Released": "Released",
"Disk": "Disk",
"albums": "albums",
"Play top": "Play top",
"Radio": "Radio",
"Show all albums": "Show all albums",
"Show all singles": "Show all singles",
"Show more": "Show more",
"Downloaded": "Downloaded",
"Queue": "Queue",
"Total": "Total",
"Stop": "Stop",
"Start": "Start",
"Show folder": "Show folder",
"Clear queue": "Clear queue",
"Playing from": "Playing from",
"Info": "Info",
"Lyrics": "Lyrics",
"Track number": "Track number",
"Disk number": "Disk number",
"Explicit": "Explicit",
"Source": "Source",
"ID": "ID",
"Error logging in!": "Error logging in!",
"Please try again later, or try another account.": "Please try again later, or try another account.",
"Logout": "Logout",
"Login using browser": "Login using browser",
"Please login using your Deezer account:": "Please login using your Deezer account:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
"ARL/Token": "ARL/Token",
"Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
"Only in Electron version!": "Only in Electron version!",
"Search results for:": "Search results for:",
"Error loading data!": "Error loading data!",
"Try again later!": "Try again later!",
"Search": "Search",
"Streaming Quality": "Streaming Quality",
"Download Quality": "Download Quality",
"Downloads Directory": "Downloads Directory",
"Simultaneous downloads": "Simultaneous downloads",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
"Show download dialog": "Show download dialog",
"Create folders for artists": "Create folders for artists",
"Create folders for albums": "Create folders for albums",
"Download lyrics": "Download lyrics",
"Variables": "Variables",
"UI": "UI",
"Show autocomplete in search": "Show autocomplete in search",
"Integrations": "Integrations",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.",
"Log track listens to Deezer": "Log track listens to Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
"Login with LastFM": "Login with LastFM",
"Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Requires restart to apply!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
"Discord Rich Presence": "Discord Rich Presence",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
"Discord Join Button": "Discord Join Button",
"Other": "Other",
"Minimize to tray": "Minimize to tray",
"Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit",
"Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!"
}

View File

@ -0,0 +1,112 @@
{
"Home": "Home",
"Browse": "Browse",
"Library": "Library",
"Tracks": "Tracks",
"Playlists": "Playlists",
"Albums": "Albums",
"Artists": "Artists",
"More": "More",
"Settings": "Settings",
"Downloads": "Downloads",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
"Play": "Play",
"Add to library": "Add to library",
"Download": "Download",
"fans": "fans",
"tracks": "tracks",
"Quality": "Quality",
"Estimated size:": "Estimated size:",
"Start downloading": "Start downloading",
"Cancel": "Cancel",
"Stream logging is disabled!": "Stream logging is disabled!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
"History": "History",
"Create new playlist": "Create new playlist",
"TRACKS": "TRACKS",
"Sort by": "Sort by",
"Date Added": "Date Added",
"Name (A-Z)": "Name (A-Z)",
"Artist (A-Z)": "Artist (A-Z)",
"Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
"Create playlist": "Create playlist",
"Create": "Create",
"Add to playlist": "Add to playlist",
"Create new": "Create new",
"Remove": "Remove",
"Play next": "Play next",
"Add to queue": "Add to queue",
"Remove from library": "Remove from library",
"Remove from playlist": "Remove from playlist",
"Play track mix": "Play track mix",
"Go to": "Go to",
"Track Mix": "Track Mix",
"Duration": "Duration",
"Released": "Released",
"Disk": "Disk",
"albums": "albums",
"Play top": "Play top",
"Radio": "Radio",
"Show all albums": "Show all albums",
"Show all singles": "Show all singles",
"Show more": "Show more",
"Downloaded": "Downloaded",
"Queue": "Queue",
"Total": "Total",
"Stop": "Stop",
"Start": "Start",
"Show folder": "Show folder",
"Clear queue": "Clear queue",
"Playing from": "Playing from",
"Info": "Info",
"Lyrics": "Lyrics",
"Track number": "Track number",
"Disk number": "Disk number",
"Explicit": "Explicit",
"Source": "Source",
"ID": "ID",
"Error logging in!": "Error logging in!",
"Please try again later, or try another account.": "Please try again later, or try another account.",
"Logout": "Logout",
"Login using browser": "Login using browser",
"Please login using your Deezer account:": "Please login using your Deezer account:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
"ARL/Token": "ARL/Token",
"Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
"Only in Electron version!": "Only in Electron version!",
"Search results for:": "Search results for:",
"Error loading data!": "Error loading data!",
"Try again later!": "Try again later!",
"Search": "Search",
"Streaming Quality": "Streaming Quality",
"Download Quality": "Download Quality",
"Downloads Directory": "Downloads Directory",
"Simultaneous downloads": "Simultaneous downloads",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
"Show download dialog": "Show download dialog",
"Create folders for artists": "Create folders for artists",
"Create folders for albums": "Create folders for albums",
"Download lyrics": "Download lyrics",
"Variables": "Variables",
"UI": "UI",
"Show autocomplete in search": "Show autocomplete in search",
"Integrations": "Integrations",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.",
"Log track listens to Deezer": "Log track listens to Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
"Login with LastFM": "Login with LastFM",
"Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Requires restart to apply!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
"Discord Rich Presence": "Discord Rich Presence",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
"Discord Join Button": "Discord Join Button",
"Other": "Other",
"Minimize to tray": "Minimize to tray",
"Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit",
"Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!"
}

View File

@ -0,0 +1,112 @@
{
"Home": "Home",
"Browse": "Browse",
"Library": "Library",
"Tracks": "Tracks",
"Playlists": "Playlists",
"Albums": "Albums",
"Artists": "Artists",
"More": "More",
"Settings": "Settings",
"Downloads": "Downloads",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
"Play": "Play",
"Add to library": "Add to library",
"Download": "Download",
"fans": "fans",
"tracks": "tracks",
"Quality": "Quality",
"Estimated size:": "Estimated size:",
"Start downloading": "Start downloading",
"Cancel": "Cancel",
"Stream logging is disabled!": "Stream logging is disabled!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
"History": "History",
"Create new playlist": "Create new playlist",
"TRACKS": "TRACKS",
"Sort by": "Sort by",
"Date Added": "Date Added",
"Name (A-Z)": "Name (A-Z)",
"Artist (A-Z)": "Artist (A-Z)",
"Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
"Create playlist": "Create playlist",
"Create": "Create",
"Add to playlist": "Add to playlist",
"Create new": "Create new",
"Remove": "Remove",
"Play next": "Play next",
"Add to queue": "Add to queue",
"Remove from library": "Remove from library",
"Remove from playlist": "Remove from playlist",
"Play track mix": "Play track mix",
"Go to": "Go to",
"Track Mix": "Track Mix",
"Duration": "Duration",
"Released": "Released",
"Disk": "Disk",
"albums": "albums",
"Play top": "Play top",
"Radio": "Radio",
"Show all albums": "Show all albums",
"Show all singles": "Show all singles",
"Show more": "Show more",
"Downloaded": "Downloaded",
"Queue": "Queue",
"Total": "Total",
"Stop": "Stop",
"Start": "Start",
"Show folder": "Show folder",
"Clear queue": "Clear queue",
"Playing from": "Playing from",
"Info": "Info",
"Lyrics": "Lyrics",
"Track number": "Track number",
"Disk number": "Disk number",
"Explicit": "Explicit",
"Source": "Source",
"ID": "ID",
"Error logging in!": "Error logging in!",
"Please try again later, or try another account.": "Please try again later, or try another account.",
"Logout": "Logout",
"Login using browser": "Login using browser",
"Please login using your Deezer account:": "Please login using your Deezer account:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
"ARL/Token": "ARL/Token",
"Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
"Only in Electron version!": "Only in Electron version!",
"Search results for:": "Search results for:",
"Error loading data!": "Error loading data!",
"Try again later!": "Try again later!",
"Search": "Search",
"Streaming Quality": "Streaming Quality",
"Download Quality": "Download Quality",
"Downloads Directory": "Downloads Directory",
"Simultaneous downloads": "Simultaneous downloads",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
"Show download dialog": "Show download dialog",
"Create folders for artists": "Create folders for artists",
"Create folders for albums": "Create folders for albums",
"Download lyrics": "Download lyrics",
"Variables": "Variables",
"UI": "UI",
"Show autocomplete in search": "Show autocomplete in search",
"Integrations": "Integrations",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.",
"Log track listens to Deezer": "Log track listens to Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
"Login with LastFM": "Login with LastFM",
"Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Requires restart to apply!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
"Discord Rich Presence": "Discord Rich Presence",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
"Discord Join Button": "Discord Join Button",
"Other": "Other",
"Minimize to tray": "Minimize to tray",
"Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit",
"Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!"
}

View File

@ -0,0 +1,112 @@
{
"Home": "Home",
"Browse": "Browse",
"Library": "Library",
"Tracks": "Tracks",
"Playlists": "Playlists",
"Albums": "Albums",
"Artists": "Artists",
"More": "More",
"Settings": "Settings",
"Downloads": "Downloads",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
"Play": "Play",
"Add to library": "Add to library",
"Download": "Download",
"fans": "fans",
"tracks": "tracks",
"Quality": "Quality",
"Estimated size:": "Estimated size:",
"Start downloading": "Start downloading",
"Cancel": "Cancel",
"Stream logging is disabled!": "Stream logging is disabled!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
"History": "History",
"Create new playlist": "Create new playlist",
"TRACKS": "TRACKS",
"Sort by": "Sort by",
"Date Added": "Date Added",
"Name (A-Z)": "Name (A-Z)",
"Artist (A-Z)": "Artist (A-Z)",
"Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
"Create playlist": "Create playlist",
"Create": "Create",
"Add to playlist": "Add to playlist",
"Create new": "Create new",
"Remove": "Remove",
"Play next": "Play next",
"Add to queue": "Add to queue",
"Remove from library": "Remove from library",
"Remove from playlist": "Remove from playlist",
"Play track mix": "Play track mix",
"Go to": "Go to",
"Track Mix": "Track Mix",
"Duration": "Duration",
"Released": "Released",
"Disk": "Disk",
"albums": "albums",
"Play top": "Play top",
"Radio": "Radio",
"Show all albums": "Show all albums",
"Show all singles": "Show all singles",
"Show more": "Show more",
"Downloaded": "Downloaded",
"Queue": "Queue",
"Total": "Total",
"Stop": "Stop",
"Start": "Start",
"Show folder": "Show folder",
"Clear queue": "Clear queue",
"Playing from": "Playing from",
"Info": "Info",
"Lyrics": "Lyrics",
"Track number": "Track number",
"Disk number": "Disk number",
"Explicit": "Explicit",
"Source": "Source",
"ID": "ID",
"Error logging in!": "Error logging in!",
"Please try again later, or try another account.": "Please try again later, or try another account.",
"Logout": "Logout",
"Login using browser": "Login using browser",
"Please login using your Deezer account:": "Please login using your Deezer account:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
"ARL/Token": "ARL/Token",
"Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
"Only in Electron version!": "Only in Electron version!",
"Search results for:": "Search results for:",
"Error loading data!": "Error loading data!",
"Try again later!": "Try again later!",
"Search": "Search",
"Streaming Quality": "Streaming Quality",
"Download Quality": "Download Quality",
"Downloads Directory": "Downloads Directory",
"Simultaneous downloads": "Simultaneous downloads",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
"Show download dialog": "Show download dialog",
"Create folders for artists": "Create folders for artists",
"Create folders for albums": "Create folders for albums",
"Download lyrics": "Download lyrics",
"Variables": "Variables",
"UI": "UI",
"Show autocomplete in search": "Show autocomplete in search",
"Integrations": "Integrations",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.",
"Log track listens to Deezer": "Log track listens to Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
"Login with LastFM": "Login with LastFM",
"Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Requires restart to apply!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
"Discord Rich Presence": "Discord Rich Presence",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
"Discord Join Button": "Discord Join Button",
"Other": "Other",
"Minimize to tray": "Minimize to tray",
"Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit",
"Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!"
}

View File

@ -0,0 +1,112 @@
{
"Home": "Home",
"Browse": "Browse",
"Library": "Library",
"Tracks": "Tracks",
"Playlists": "Playlists",
"Albums": "Albums",
"Artists": "Artists",
"More": "More",
"Settings": "Settings",
"Downloads": "Downloads",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
"Play": "Play",
"Add to library": "Add to library",
"Download": "Download",
"fans": "fans",
"tracks": "tracks",
"Quality": "Quality",
"Estimated size:": "Estimated size:",
"Start downloading": "Start downloading",
"Cancel": "Cancel",
"Stream logging is disabled!": "Stream logging is disabled!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
"History": "History",
"Create new playlist": "Create new playlist",
"TRACKS": "TRACKS",
"Sort by": "Sort by",
"Date Added": "Date Added",
"Name (A-Z)": "Name (A-Z)",
"Artist (A-Z)": "Artist (A-Z)",
"Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
"Create playlist": "Create playlist",
"Create": "Create",
"Add to playlist": "Add to playlist",
"Create new": "Create new",
"Remove": "Remove",
"Play next": "Play next",
"Add to queue": "Add to queue",
"Remove from library": "Remove from library",
"Remove from playlist": "Remove from playlist",
"Play track mix": "Play track mix",
"Go to": "Go to",
"Track Mix": "Track Mix",
"Duration": "Duration",
"Released": "Released",
"Disk": "Disk",
"albums": "albums",
"Play top": "Play top",
"Radio": "Radio",
"Show all albums": "Show all albums",
"Show all singles": "Show all singles",
"Show more": "Show more",
"Downloaded": "Downloaded",
"Queue": "Queue",
"Total": "Total",
"Stop": "Stop",
"Start": "Start",
"Show folder": "Show folder",
"Clear queue": "Clear queue",
"Playing from": "Playing from",
"Info": "Info",
"Lyrics": "Lyrics",
"Track number": "Track number",
"Disk number": "Disk number",
"Explicit": "Explicit",
"Source": "Source",
"ID": "ID",
"Error logging in!": "Error logging in!",
"Please try again later, or try another account.": "Please try again later, or try another account.",
"Logout": "Logout",
"Login using browser": "Login using browser",
"Please login using your Deezer account:": "Please login using your Deezer account:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
"ARL/Token": "ARL/Token",
"Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
"Only in Electron version!": "Only in Electron version!",
"Search results for:": "Search results for:",
"Error loading data!": "Error loading data!",
"Try again later!": "Try again later!",
"Search": "Search",
"Streaming Quality": "Streaming Quality",
"Download Quality": "Download Quality",
"Downloads Directory": "Downloads Directory",
"Simultaneous downloads": "Simultaneous downloads",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
"Show download dialog": "Show download dialog",
"Create folders for artists": "Create folders for artists",
"Create folders for albums": "Create folders for albums",
"Download lyrics": "Download lyrics",
"Variables": "Variables",
"UI": "UI",
"Show autocomplete in search": "Show autocomplete in search",
"Integrations": "Integrations",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.",
"Log track listens to Deezer": "Log track listens to Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
"Login with LastFM": "Login with LastFM",
"Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Requires restart to apply!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
"Discord Rich Presence": "Discord Rich Presence",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
"Discord Join Button": "Discord Join Button",
"Other": "Other",
"Minimize to tray": "Minimize to tray",
"Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit",
"Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!"
}

View File

@ -0,0 +1,112 @@
{
"Home": "Home",
"Browse": "Browse",
"Library": "Library",
"Tracks": "Tracks",
"Playlists": "Playlists",
"Albums": "Albums",
"Artists": "Artists",
"More": "More",
"Settings": "Settings",
"Downloads": "Downloads",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
"Play": "Play",
"Add to library": "Add to library",
"Download": "Download",
"fans": "fans",
"tracks": "tracks",
"Quality": "Quality",
"Estimated size:": "Estimated size:",
"Start downloading": "Start downloading",
"Cancel": "Cancel",
"Stream logging is disabled!": "Stream logging is disabled!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
"History": "History",
"Create new playlist": "Create new playlist",
"TRACKS": "TRACKS",
"Sort by": "Sort by",
"Date Added": "Date Added",
"Name (A-Z)": "Name (A-Z)",
"Artist (A-Z)": "Artist (A-Z)",
"Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
"Create playlist": "Create playlist",
"Create": "Create",
"Add to playlist": "Add to playlist",
"Create new": "Create new",
"Remove": "Remove",
"Play next": "Play next",
"Add to queue": "Add to queue",
"Remove from library": "Remove from library",
"Remove from playlist": "Remove from playlist",
"Play track mix": "Play track mix",
"Go to": "Go to",
"Track Mix": "Track Mix",
"Duration": "Duration",
"Released": "Released",
"Disk": "Disk",
"albums": "albums",
"Play top": "Play top",
"Radio": "Radio",
"Show all albums": "Show all albums",
"Show all singles": "Show all singles",
"Show more": "Show more",
"Downloaded": "Downloaded",
"Queue": "Queue",
"Total": "Total",
"Stop": "Stop",
"Start": "Start",
"Show folder": "Show folder",
"Clear queue": "Clear queue",
"Playing from": "Playing from",
"Info": "Info",
"Lyrics": "Lyrics",
"Track number": "Track number",
"Disk number": "Disk number",
"Explicit": "Explicit",
"Source": "Source",
"ID": "ID",
"Error logging in!": "Error logging in!",
"Please try again later, or try another account.": "Please try again later, or try another account.",
"Logout": "Logout",
"Login using browser": "Login using browser",
"Please login using your Deezer account:": "Please login using your Deezer account:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
"ARL/Token": "ARL/Token",
"Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
"Only in Electron version!": "Only in Electron version!",
"Search results for:": "Search results for:",
"Error loading data!": "Error loading data!",
"Try again later!": "Try again later!",
"Search": "Search",
"Streaming Quality": "Streaming Quality",
"Download Quality": "Download Quality",
"Downloads Directory": "Downloads Directory",
"Simultaneous downloads": "Simultaneous downloads",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
"Show download dialog": "Show download dialog",
"Create folders for artists": "Create folders for artists",
"Create folders for albums": "Create folders for albums",
"Download lyrics": "Download lyrics",
"Variables": "Variables",
"UI": "UI",
"Show autocomplete in search": "Show autocomplete in search",
"Integrations": "Integrations",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.",
"Log track listens to Deezer": "Log track listens to Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
"Login with LastFM": "Login with LastFM",
"Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Requires restart to apply!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
"Discord Rich Presence": "Discord Rich Presence",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
"Discord Join Button": "Discord Join Button",
"Other": "Other",
"Minimize to tray": "Minimize to tray",
"Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit",
"Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!"
}

View File

@ -0,0 +1,112 @@
{
"Home": "Home",
"Browse": "Browse",
"Library": "Library",
"Tracks": "Tracks",
"Playlists": "Playlists",
"Albums": "Albums",
"Artists": "Artists",
"More": "More",
"Settings": "Settings",
"Downloads": "Downloads",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
"Play": "Play",
"Add to library": "Add to library",
"Download": "Download",
"fans": "fans",
"tracks": "tracks",
"Quality": "Quality",
"Estimated size:": "Estimated size:",
"Start downloading": "Start downloading",
"Cancel": "Cancel",
"Stream logging is disabled!": "Stream logging is disabled!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
"History": "History",
"Create new playlist": "Create new playlist",
"TRACKS": "TRACKS",
"Sort by": "Sort by",
"Date Added": "Date Added",
"Name (A-Z)": "Name (A-Z)",
"Artist (A-Z)": "Artist (A-Z)",
"Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
"Create playlist": "Create playlist",
"Create": "Create",
"Add to playlist": "Add to playlist",
"Create new": "Create new",
"Remove": "Remove",
"Play next": "Play next",
"Add to queue": "Add to queue",
"Remove from library": "Remove from library",
"Remove from playlist": "Remove from playlist",
"Play track mix": "Play track mix",
"Go to": "Go to",
"Track Mix": "Track Mix",
"Duration": "Duration",
"Released": "Released",
"Disk": "Disk",
"albums": "albums",
"Play top": "Play top",
"Radio": "Radio",
"Show all albums": "Show all albums",
"Show all singles": "Show all singles",
"Show more": "Show more",
"Downloaded": "Downloaded",
"Queue": "Queue",
"Total": "Total",
"Stop": "Stop",
"Start": "Start",
"Show folder": "Show folder",
"Clear queue": "Clear queue",
"Playing from": "Playing from",
"Info": "Info",
"Lyrics": "Lyrics",
"Track number": "Track number",
"Disk number": "Disk number",
"Explicit": "Explicit",
"Source": "Source",
"ID": "ID",
"Error logging in!": "Error logging in!",
"Please try again later, or try another account.": "Please try again later, or try another account.",
"Logout": "Logout",
"Login using browser": "Login using browser",
"Please login using your Deezer account:": "Please login using your Deezer account:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
"ARL/Token": "ARL/Token",
"Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
"Only in Electron version!": "Only in Electron version!",
"Search results for:": "Search results for:",
"Error loading data!": "Error loading data!",
"Try again later!": "Try again later!",
"Search": "Search",
"Streaming Quality": "Streaming Quality",
"Download Quality": "Download Quality",
"Downloads Directory": "Downloads Directory",
"Simultaneous downloads": "Simultaneous downloads",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
"Show download dialog": "Show download dialog",
"Create folders for artists": "Create folders for artists",
"Create folders for albums": "Create folders for albums",
"Download lyrics": "Download lyrics",
"Variables": "Variables",
"UI": "UI",
"Show autocomplete in search": "Show autocomplete in search",
"Integrations": "Integrations",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.",
"Log track listens to Deezer": "Log track listens to Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
"Login with LastFM": "Login with LastFM",
"Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Requires restart to apply!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
"Discord Rich Presence": "Discord Rich Presence",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
"Discord Join Button": "Discord Join Button",
"Other": "Other",
"Minimize to tray": "Minimize to tray",
"Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit",
"Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!"
}

View File

@ -0,0 +1,112 @@
{
"Home": "Home",
"Browse": "Browse",
"Library": "Library",
"Tracks": "Tracks",
"Playlists": "Playlists",
"Albums": "Albums",
"Artists": "Artists",
"More": "More",
"Settings": "Settings",
"Downloads": "Downloads",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
"Play": "Play",
"Add to library": "Add to library",
"Download": "Download",
"fans": "fans",
"tracks": "tracks",
"Quality": "Quality",
"Estimated size:": "Estimated size:",
"Start downloading": "Start downloading",
"Cancel": "Cancel",
"Stream logging is disabled!": "Stream logging is disabled!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
"History": "History",
"Create new playlist": "Create new playlist",
"TRACKS": "TRACKS",
"Sort by": "Sort by",
"Date Added": "Date Added",
"Name (A-Z)": "Name (A-Z)",
"Artist (A-Z)": "Artist (A-Z)",
"Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
"Create playlist": "Create playlist",
"Create": "Create",
"Add to playlist": "Add to playlist",
"Create new": "Create new",
"Remove": "Remove",
"Play next": "Play next",
"Add to queue": "Add to queue",
"Remove from library": "Remove from library",
"Remove from playlist": "Remove from playlist",
"Play track mix": "Play track mix",
"Go to": "Go to",
"Track Mix": "Track Mix",
"Duration": "Duration",
"Released": "Released",
"Disk": "Disk",
"albums": "albums",
"Play top": "Play top",
"Radio": "Radio",
"Show all albums": "Show all albums",
"Show all singles": "Show all singles",
"Show more": "Show more",
"Downloaded": "Downloaded",
"Queue": "Queue",
"Total": "Total",
"Stop": "Stop",
"Start": "Start",
"Show folder": "Show folder",
"Clear queue": "Clear queue",
"Playing from": "Playing from",
"Info": "Info",
"Lyrics": "Lyrics",
"Track number": "Track number",
"Disk number": "Disk number",
"Explicit": "Explicit",
"Source": "Source",
"ID": "ID",
"Error logging in!": "Error logging in!",
"Please try again later, or try another account.": "Please try again later, or try another account.",
"Logout": "Logout",
"Login using browser": "Login using browser",
"Please login using your Deezer account:": "Please login using your Deezer account:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
"ARL/Token": "ARL/Token",
"Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
"Only in Electron version!": "Only in Electron version!",
"Search results for:": "Search results for:",
"Error loading data!": "Error loading data!",
"Try again later!": "Try again later!",
"Search": "Search",
"Streaming Quality": "Streaming Quality",
"Download Quality": "Download Quality",
"Downloads Directory": "Downloads Directory",
"Simultaneous downloads": "Simultaneous downloads",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
"Show download dialog": "Show download dialog",
"Create folders for artists": "Create folders for artists",
"Create folders for albums": "Create folders for albums",
"Download lyrics": "Download lyrics",
"Variables": "Variables",
"UI": "UI",
"Show autocomplete in search": "Show autocomplete in search",
"Integrations": "Integrations",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.",
"Log track listens to Deezer": "Log track listens to Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
"Login with LastFM": "Login with LastFM",
"Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Requires restart to apply!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
"Discord Rich Presence": "Discord Rich Presence",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
"Discord Join Button": "Discord Join Button",
"Other": "Other",
"Minimize to tray": "Minimize to tray",
"Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit",
"Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!"
}

View File

@ -0,0 +1,112 @@
{
"Home": "Home",
"Browse": "Browse",
"Library": "Library",
"Tracks": "Tracks",
"Playlists": "Playlists",
"Albums": "Albums",
"Artists": "Artists",
"More": "More",
"Settings": "Settings",
"Downloads": "Downloads",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
"Play": "Play",
"Add to library": "Add to library",
"Download": "Download",
"fans": "fans",
"tracks": "tracks",
"Quality": "Quality",
"Estimated size:": "Estimated size:",
"Start downloading": "Start downloading",
"Cancel": "Cancel",
"Stream logging is disabled!": "Stream logging is disabled!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
"History": "History",
"Create new playlist": "Create new playlist",
"TRACKS": "TRACKS",
"Sort by": "Sort by",
"Date Added": "Date Added",
"Name (A-Z)": "Name (A-Z)",
"Artist (A-Z)": "Artist (A-Z)",
"Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
"Create playlist": "Create playlist",
"Create": "Create",
"Add to playlist": "Add to playlist",
"Create new": "Create new",
"Remove": "Remove",
"Play next": "Play next",
"Add to queue": "Add to queue",
"Remove from library": "Remove from library",
"Remove from playlist": "Remove from playlist",
"Play track mix": "Play track mix",
"Go to": "Go to",
"Track Mix": "Track Mix",
"Duration": "Duration",
"Released": "Released",
"Disk": "Disk",
"albums": "albums",
"Play top": "Play top",
"Radio": "Radio",
"Show all albums": "Show all albums",
"Show all singles": "Show all singles",
"Show more": "Show more",
"Downloaded": "Downloaded",
"Queue": "Queue",
"Total": "Total",
"Stop": "Stop",
"Start": "Start",
"Show folder": "Show folder",
"Clear queue": "Clear queue",
"Playing from": "Playing from",
"Info": "Info",
"Lyrics": "Lyrics",
"Track number": "Track number",
"Disk number": "Disk number",
"Explicit": "Explicit",
"Source": "Source",
"ID": "ID",
"Error logging in!": "Error logging in!",
"Please try again later, or try another account.": "Please try again later, or try another account.",
"Logout": "Logout",
"Login using browser": "Login using browser",
"Please login using your Deezer account:": "Please login using your Deezer account:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
"ARL/Token": "ARL/Token",
"Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
"Only in Electron version!": "Only in Electron version!",
"Search results for:": "Search results for:",
"Error loading data!": "Error loading data!",
"Try again later!": "Try again later!",
"Search": "Search",
"Streaming Quality": "Streaming Quality",
"Download Quality": "Download Quality",
"Downloads Directory": "Downloads Directory",
"Simultaneous downloads": "Simultaneous downloads",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
"Show download dialog": "Show download dialog",
"Create folders for artists": "Create folders for artists",
"Create folders for albums": "Create folders for albums",
"Download lyrics": "Download lyrics",
"Variables": "Variables",
"UI": "UI",
"Show autocomplete in search": "Show autocomplete in search",
"Integrations": "Integrations",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.",
"Log track listens to Deezer": "Log track listens to Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
"Login with LastFM": "Login with LastFM",
"Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Requires restart to apply!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
"Discord Rich Presence": "Discord Rich Presence",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
"Discord Join Button": "Discord Join Button",
"Other": "Other",
"Minimize to tray": "Minimize to tray",
"Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit",
"Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!"
}

View File

@ -0,0 +1,112 @@
{
"Home": "Home",
"Browse": "Browse",
"Library": "Library",
"Tracks": "Tracks",
"Playlists": "Playlists",
"Albums": "Albums",
"Artists": "Artists",
"More": "More",
"Settings": "Settings",
"Downloads": "Downloads",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
"Play": "Play",
"Add to library": "Add to library",
"Download": "Download",
"fans": "fans",
"tracks": "tracks",
"Quality": "Quality",
"Estimated size:": "Estimated size:",
"Start downloading": "Start downloading",
"Cancel": "Cancel",
"Stream logging is disabled!": "Stream logging is disabled!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
"History": "History",
"Create new playlist": "Create new playlist",
"TRACKS": "TRACKS",
"Sort by": "Sort by",
"Date Added": "Date Added",
"Name (A-Z)": "Name (A-Z)",
"Artist (A-Z)": "Artist (A-Z)",
"Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
"Create playlist": "Create playlist",
"Create": "Create",
"Add to playlist": "Add to playlist",
"Create new": "Create new",
"Remove": "Remove",
"Play next": "Play next",
"Add to queue": "Add to queue",
"Remove from library": "Remove from library",
"Remove from playlist": "Remove from playlist",
"Play track mix": "Play track mix",
"Go to": "Go to",
"Track Mix": "Track Mix",
"Duration": "Duration",
"Released": "Released",
"Disk": "Disk",
"albums": "albums",
"Play top": "Play top",
"Radio": "Radio",
"Show all albums": "Show all albums",
"Show all singles": "Show all singles",
"Show more": "Show more",
"Downloaded": "Downloaded",
"Queue": "Queue",
"Total": "Total",
"Stop": "Stop",
"Start": "Start",
"Show folder": "Show folder",
"Clear queue": "Clear queue",
"Playing from": "Playing from",
"Info": "Info",
"Lyrics": "Lyrics",
"Track number": "Track number",
"Disk number": "Disk number",
"Explicit": "Explicit",
"Source": "Source",
"ID": "ID",
"Error logging in!": "Error logging in!",
"Please try again later, or try another account.": "Please try again later, or try another account.",
"Logout": "Logout",
"Login using browser": "Login using browser",
"Please login using your Deezer account:": "Please login using your Deezer account:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
"ARL/Token": "ARL/Token",
"Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
"Only in Electron version!": "Only in Electron version!",
"Search results for:": "Search results for:",
"Error loading data!": "Error loading data!",
"Try again later!": "Try again later!",
"Search": "Search",
"Streaming Quality": "Streaming Quality",
"Download Quality": "Download Quality",
"Downloads Directory": "Downloads Directory",
"Simultaneous downloads": "Simultaneous downloads",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
"Show download dialog": "Show download dialog",
"Create folders for artists": "Create folders for artists",
"Create folders for albums": "Create folders for albums",
"Download lyrics": "Download lyrics",
"Variables": "Variables",
"UI": "UI",
"Show autocomplete in search": "Show autocomplete in search",
"Integrations": "Integrations",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.",
"Log track listens to Deezer": "Log track listens to Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
"Login with LastFM": "Login with LastFM",
"Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Requires restart to apply!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
"Discord Rich Presence": "Discord Rich Presence",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
"Discord Join Button": "Discord Join Button",
"Other": "Other",
"Minimize to tray": "Minimize to tray",
"Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit",
"Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!"
}

View File

@ -0,0 +1,112 @@
{
"Home": "Home",
"Browse": "Browse",
"Library": "Library",
"Tracks": "Tracks",
"Playlists": "Playlists",
"Albums": "Albums",
"Artists": "Artists",
"More": "More",
"Settings": "Settings",
"Downloads": "Downloads",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
"Play": "Play",
"Add to library": "Add to library",
"Download": "Download",
"fans": "fans",
"tracks": "tracks",
"Quality": "Quality",
"Estimated size:": "Estimated size:",
"Start downloading": "Start downloading",
"Cancel": "Cancel",
"Stream logging is disabled!": "Stream logging is disabled!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
"History": "History",
"Create new playlist": "Create new playlist",
"TRACKS": "TRACKS",
"Sort by": "Sort by",
"Date Added": "Date Added",
"Name (A-Z)": "Name (A-Z)",
"Artist (A-Z)": "Artist (A-Z)",
"Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
"Create playlist": "Create playlist",
"Create": "Create",
"Add to playlist": "Add to playlist",
"Create new": "Create new",
"Remove": "Remove",
"Play next": "Play next",
"Add to queue": "Add to queue",
"Remove from library": "Remove from library",
"Remove from playlist": "Remove from playlist",
"Play track mix": "Play track mix",
"Go to": "Go to",
"Track Mix": "Track Mix",
"Duration": "Duration",
"Released": "Released",
"Disk": "Disk",
"albums": "albums",
"Play top": "Play top",
"Radio": "Radio",
"Show all albums": "Show all albums",
"Show all singles": "Show all singles",
"Show more": "Show more",
"Downloaded": "Downloaded",
"Queue": "Queue",
"Total": "Total",
"Stop": "Stop",
"Start": "Start",
"Show folder": "Show folder",
"Clear queue": "Clear queue",
"Playing from": "Playing from",
"Info": "Info",
"Lyrics": "Lyrics",
"Track number": "Track number",
"Disk number": "Disk number",
"Explicit": "Explicit",
"Source": "Source",
"ID": "ID",
"Error logging in!": "Error logging in!",
"Please try again later, or try another account.": "Please try again later, or try another account.",
"Logout": "Logout",
"Login using browser": "Login using browser",
"Please login using your Deezer account:": "Please login using your Deezer account:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
"ARL/Token": "ARL/Token",
"Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
"Only in Electron version!": "Only in Electron version!",
"Search results for:": "Search results for:",
"Error loading data!": "Error loading data!",
"Try again later!": "Try again later!",
"Search": "Search",
"Streaming Quality": "Streaming Quality",
"Download Quality": "Download Quality",
"Downloads Directory": "Downloads Directory",
"Simultaneous downloads": "Simultaneous downloads",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
"Show download dialog": "Show download dialog",
"Create folders for artists": "Create folders for artists",
"Create folders for albums": "Create folders for albums",
"Download lyrics": "Download lyrics",
"Variables": "Variables",
"UI": "UI",
"Show autocomplete in search": "Show autocomplete in search",
"Integrations": "Integrations",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.",
"Log track listens to Deezer": "Log track listens to Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
"Login with LastFM": "Login with LastFM",
"Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Requires restart to apply!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
"Discord Rich Presence": "Discord Rich Presence",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
"Discord Join Button": "Discord Join Button",
"Other": "Other",
"Minimize to tray": "Minimize to tray",
"Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit",
"Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!"
}

View File

@ -0,0 +1,112 @@
{
"Home": "Home",
"Browse": "Browse",
"Library": "Library",
"Tracks": "Tracks",
"Playlists": "Playlists",
"Albums": "Albums",
"Artists": "Artists",
"More": "More",
"Settings": "Settings",
"Downloads": "Downloads",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
"Play": "Play",
"Add to library": "Add to library",
"Download": "Download",
"fans": "fans",
"tracks": "tracks",
"Quality": "Quality",
"Estimated size:": "Estimated size:",
"Start downloading": "Start downloading",
"Cancel": "Cancel",
"Stream logging is disabled!": "Stream logging is disabled!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
"History": "History",
"Create new playlist": "Create new playlist",
"TRACKS": "TRACKS",
"Sort by": "Sort by",
"Date Added": "Date Added",
"Name (A-Z)": "Name (A-Z)",
"Artist (A-Z)": "Artist (A-Z)",
"Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
"Create playlist": "Create playlist",
"Create": "Create",
"Add to playlist": "Add to playlist",
"Create new": "Create new",
"Remove": "Remove",
"Play next": "Play next",
"Add to queue": "Add to queue",
"Remove from library": "Remove from library",
"Remove from playlist": "Remove from playlist",
"Play track mix": "Play track mix",
"Go to": "Go to",
"Track Mix": "Track Mix",
"Duration": "Duration",
"Released": "Released",
"Disk": "Disk",
"albums": "albums",
"Play top": "Play top",
"Radio": "Radio",
"Show all albums": "Show all albums",
"Show all singles": "Show all singles",
"Show more": "Show more",
"Downloaded": "Downloaded",
"Queue": "Queue",
"Total": "Total",
"Stop": "Stop",
"Start": "Start",
"Show folder": "Show folder",
"Clear queue": "Clear queue",
"Playing from": "Playing from",
"Info": "Info",
"Lyrics": "Lyrics",
"Track number": "Track number",
"Disk number": "Disk number",
"Explicit": "Explicit",
"Source": "Source",
"ID": "ID",
"Error logging in!": "Error logging in!",
"Please try again later, or try another account.": "Please try again later, or try another account.",
"Logout": "Logout",
"Login using browser": "Login using browser",
"Please login using your Deezer account:": "Please login using your Deezer account:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
"ARL/Token": "ARL/Token",
"Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
"Only in Electron version!": "Only in Electron version!",
"Search results for:": "Search results for:",
"Error loading data!": "Error loading data!",
"Try again later!": "Try again later!",
"Search": "Search",
"Streaming Quality": "Streaming Quality",
"Download Quality": "Download Quality",
"Downloads Directory": "Downloads Directory",
"Simultaneous downloads": "Simultaneous downloads",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
"Show download dialog": "Show download dialog",
"Create folders for artists": "Create folders for artists",
"Create folders for albums": "Create folders for albums",
"Download lyrics": "Download lyrics",
"Variables": "Variables",
"UI": "UI",
"Show autocomplete in search": "Show autocomplete in search",
"Integrations": "Integrations",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.",
"Log track listens to Deezer": "Log track listens to Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
"Login with LastFM": "Login with LastFM",
"Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Requires restart to apply!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
"Discord Rich Presence": "Discord Rich Presence",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
"Discord Join Button": "Discord Join Button",
"Other": "Other",
"Minimize to tray": "Minimize to tray",
"Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit",
"Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!"
}

View File

@ -0,0 +1,112 @@
{
"Home": "Home",
"Browse": "Browse",
"Library": "Library",
"Tracks": "Tracks",
"Playlists": "Playlists",
"Albums": "Albums",
"Artists": "Artists",
"More": "More",
"Settings": "Settings",
"Downloads": "Downloads",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
"Play": "Play",
"Add to library": "Add to library",
"Download": "Download",
"fans": "fans",
"tracks": "tracks",
"Quality": "Quality",
"Estimated size:": "Estimated size:",
"Start downloading": "Start downloading",
"Cancel": "Cancel",
"Stream logging is disabled!": "Stream logging is disabled!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
"History": "History",
"Create new playlist": "Create new playlist",
"TRACKS": "TRACKS",
"Sort by": "Sort by",
"Date Added": "Date Added",
"Name (A-Z)": "Name (A-Z)",
"Artist (A-Z)": "Artist (A-Z)",
"Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
"Create playlist": "Create playlist",
"Create": "Create",
"Add to playlist": "Add to playlist",
"Create new": "Create new",
"Remove": "Remove",
"Play next": "Play next",
"Add to queue": "Add to queue",
"Remove from library": "Remove from library",
"Remove from playlist": "Remove from playlist",
"Play track mix": "Play track mix",
"Go to": "Go to",
"Track Mix": "Track Mix",
"Duration": "Duration",
"Released": "Released",
"Disk": "Disk",
"albums": "albums",
"Play top": "Play top",
"Radio": "Radio",
"Show all albums": "Show all albums",
"Show all singles": "Show all singles",
"Show more": "Show more",
"Downloaded": "Downloaded",
"Queue": "Queue",
"Total": "Total",
"Stop": "Stop",
"Start": "Start",
"Show folder": "Show folder",
"Clear queue": "Clear queue",
"Playing from": "Playing from",
"Info": "Info",
"Lyrics": "Lyrics",
"Track number": "Track number",
"Disk number": "Disk number",
"Explicit": "Explicit",
"Source": "Source",
"ID": "ID",
"Error logging in!": "Error logging in!",
"Please try again later, or try another account.": "Please try again later, or try another account.",
"Logout": "Logout",
"Login using browser": "Login using browser",
"Please login using your Deezer account:": "Please login using your Deezer account:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
"ARL/Token": "ARL/Token",
"Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
"Only in Electron version!": "Only in Electron version!",
"Search results for:": "Search results for:",
"Error loading data!": "Error loading data!",
"Try again later!": "Try again later!",
"Search": "Search",
"Streaming Quality": "Streaming Quality",
"Download Quality": "Download Quality",
"Downloads Directory": "Downloads Directory",
"Simultaneous downloads": "Simultaneous downloads",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
"Show download dialog": "Show download dialog",
"Create folders for artists": "Create folders for artists",
"Create folders for albums": "Create folders for albums",
"Download lyrics": "Download lyrics",
"Variables": "Variables",
"UI": "UI",
"Show autocomplete in search": "Show autocomplete in search",
"Integrations": "Integrations",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.",
"Log track listens to Deezer": "Log track listens to Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
"Login with LastFM": "Login with LastFM",
"Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Requires restart to apply!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
"Discord Rich Presence": "Discord Rich Presence",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
"Discord Join Button": "Discord Join Button",
"Other": "Other",
"Minimize to tray": "Minimize to tray",
"Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit",
"Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!"
}

View File

@ -5,6 +5,7 @@ import vuetify from './js/vuetify';
import axios from 'axios';
import VueEsc from 'vue-esc';
import VueSocketIO from 'vue-socket.io';
import i18n from './js/i18n';
//Globals
let ipcRenderer;
@ -52,7 +53,8 @@ Vue.prototype.$filesize = (bytes) => {
//Sockets
Vue.use(new VueSocketIO({
connection: window.location.origin
connection: window.location.toString(),
options: {path: '/socket'}
}));
Vue.config.productionTip = false;
@ -66,10 +68,7 @@ new Vue({
authorized: false,
loadingPromise: null,
//Downloads
downloading: false,
downloads: [],
download: null,
downloads: {},
//Player
track: null,
@ -111,6 +110,7 @@ new Vue({
//Used to prevent double listen logging
logListenId: null
},
methods: {
// PLAYBACK METHODS
isPlaying() {
@ -199,7 +199,12 @@ new Vue({
if (this.audio) this.audio.currentTime = 0;
//Load track meta
this.playbackInfo = await this.loadPlaybackInfo(track.streamUrl, track.duration);
let playbackInfo = await this.loadPlaybackInfo(track.streamUrl, track.duration);
if (!playbackInfo) {
this.skipNext();
return;
}
this.playbackInfo = playbackInfo;
//Stream URL
let url = `${window.location.origin}${this.playbackInfo.url}`;
@ -290,6 +295,7 @@ new Vue({
//Update media session with current track metadata
updateMediaSession() {
if (!this.track || !('mediaSession' in navigator)) return;
// eslint-disable-next-line no-undef
navigator.mediaSession.metadata = new MediaMetadata({
title: this.track.title,
@ -315,11 +321,25 @@ new Vue({
//Get playback info
let quality = this.settings.streamQuality;
let infoUrl = `/streaminfo/${streamUrl}?q=${quality}`;
let res = await this.$axios.get(infoUrl);
let res;
try {
res = await this.$axios.get(infoUrl);
} catch (_) {
return null;
}
let info = res.data;
//Calculate flac bitrate
if (!info.quality.includes('kbps')) {
info.quality = Math.round((parseInt(info.quality, 10)*8) / duration) + 'kbps';
//Generate qualityString
switch (info.quality) {
case 9:
info.qualityString = 'FLAC ' + Math.round((info.size*8) / duration) + 'kbps';
break;
case 3:
info.qualityString = 'MP3 320kbps';
break;
case 1:
info.qualityString = 'MP3 128kbps';
break;
}
return info;
},
@ -341,6 +361,10 @@ new Vue({
//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);
if (!info) {
this.resetGapless();
if (this.gapless.promise) resolve();
}
this.gapless.info = info
this.gapless.audio = new Audio(`${window.location.origin}${info.url}`);
@ -382,12 +406,12 @@ new Vue({
//Get downloads from server
async getDownloads() {
let res = await this.$axios.get('/downloads');
this.downloading = res.data.downloading;
this.downloads = res.data.downloads;
if (res.data)
this.downloads = res.data;
},
//Start stop downloading
async toggleDownload() {
if (this.downloading) {
if (this.downloads.downloading) {
await this.$axios.delete('/download');
} else {
await this.$axios.put('/download');
@ -411,8 +435,12 @@ new Vue({
//Send state update to integrations
async updateState() {
//Wait for duration
if (this.state == 2 && (this.duration() == null || isNaN(this.duration())))
await new Promise((res) => setTimeout(res, 1000));
if (this.state == 2 && (this.duration() == null || isNaN(this.duration()))) {
setTimeout(() => {
this.updateState();
}, 500);
return;
}
this.$socket.emit('stateChange', {
position: this.position,
duration: this.duration(),
@ -424,14 +452,20 @@ new Vue({
if (this.settings.electron) {
ipcRenderer.send('playing', this.state == 2);
}
},
updateLanguage(l) {
i18n.locale = l;
}
},
async created() {
//Load settings, create promise so `/login` can await it
let r;
this.loadingPromise = new Promise((resolve) => r = resolve);
let res = await this.$axios.get('/settings');
this.settings = res.data;
this.$vuetify.theme.themes.dark.primary = this.settings.primaryColor;
i18n.locale = this.settings.language;
this.volume = this.settings.volume;
//Restore playback data
@ -480,17 +514,17 @@ new Vue({
}
//Get downloads
this.getDownloads();
await this.getDownloads();
//Sockets
//Queue change
this.sockets.subscribe('downloads', (data) => {
this.downloading = data.downloading;
this.downloads = data.downloads;
this.downloads = data;
});
//Current download change
this.sockets.subscribe('download', (data) => {
this.download = data;
this.sockets.subscribe('currentlyDownloading', (data) => {
this.downloads.threads = data;
});
//Play at offset (for integrations)
this.sockets.subscribe('playOffset', async (data) => {
@ -501,6 +535,7 @@ new Vue({
r();
},
mounted() {
//Save settings on unload
window.addEventListener('beforeunload', () => {
@ -548,6 +583,7 @@ new Vue({
}
});
},
watch: {
//Watch state for integrations
state() {
@ -558,5 +594,6 @@ new Vue({
router,
vuetify,
i18n,
render: function (h) { return h(App) }
}).$mount('#app');

View File

@ -16,24 +16,24 @@
<h1>{{album.title}}</h1>
<h3>{{album.artistString}}</h3>
<div class='mt-2' v-if='!loading'>
<span class='text-subtitle-2'>{{album.tracks.length}} tracks</span><br>
<span class='text-subtitle-2'>Duration: {{duration}}</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'>{{$numberString(album.fans)}} fans</span><br>
<span class='text-subtitle-2'>Released: {{album.releaseDate}}</span><br>
<span class='text-subtitle-2'>{{$t("Released")}}: {{album.releaseDate}}</span><br>
</div>
<div class='my-2'>
<v-btn color='primary' class='mx-1' @click='play'>
<v-icon left>mdi-play</v-icon>
Play
{{$t("Play")}}
</v-btn>
<v-btn color='red' class='mx-1' @click='library' :loading='libraryLoading'>
<v-icon left>mdi-heart</v-icon>
Library
{{$t("Library")}}
</v-btn>
<v-btn color='green' class='mx-1' @click='download'>
<v-icon left>mdi-download</v-icon>
Download
{{$t("Download")}}
</v-btn>
</div>
</div>
@ -48,7 +48,7 @@
v-if='index == 0 || track.diskNumber != album.tracks[index-1].diskNumber'
class='mx-4 text-subtitle-1'
>
Disk {{track.diskNumber}}
{{$t("Disk")}} {{track.diskNumber}}
</div>
<TrackTile :track='track' @click='playTrack(index)'></TrackTile>

View File

@ -16,18 +16,22 @@
</v-overlay>
<h1>{{artist.name}}</h1>
<div class='mt-2' v-if='!loading'>
<span class='text-subtitle-2'>{{artist.albumCount}} albums</span><br>
<span class='text-subtitle-2'>{{$numberString(artist.fans)}} fans</span><br>
<span class='text-subtitle-2'>{{artist.albumCount}} {{$t("albums")}}</span><br>
<span class='text-subtitle-2'>{{$numberString(artist.fans)}} {{$t("fans")}}</span><br>
</div>
<div class='my-2'>
<v-btn color='primary' class='mx-1' @click='play'>
<v-icon left>mdi-play</v-icon>
Play top
{{$t("Play top")}}
</v-btn>
<v-btn color='red' class='mx-1' @click='library' :loading='libraryLoading'>
<v-icon left>mdi-heart</v-icon>
Library
{{$t("Library")}}
</v-btn>
<v-btn color='green' class='mx-1' @click='radio' v-if='artist.radio'>
<v-icon left>mdi-radio</v-icon>
{{$t("Radio")}}
</v-btn>
</div>
</div>
@ -67,7 +71,7 @@
<!-- Show all albums -->
<v-list-item v-if='!allAlbums && index == 3' @click='allAlbums = true'>
<v-list-item-title>Show all albums</v-list-item-title>
<v-list-item-title>{{$t("Show all albums")}}</v-list-item-title>
</v-list-item>
</div>
@ -91,7 +95,7 @@
<!-- Show all albums -->
<v-list-item v-if='!allSingles && index == 3' @click='showAllSingles'>
<v-list-item-title>Show all singles</v-list-item-title>
<v-list-item-title>{{$t('Show all singles')}}</v-list-item-title>
</v-list-item>
</div>
@ -179,6 +183,19 @@ export default {
this.allSingles = true;
this.loadMoreAlbums();
},
async radio() {
//Load
let res = await this.$axios.get('/smartradio/' + this.artist.id);
if (res.data) {
this.$root.queue.source = {
text: this.artist.name,
source: 'radio',
data: this.artist.id
};
this.$root.replaceQueue(res.data);
this.$root.playIndex(0);
}
},
//On scroll load more albums
scroll(event) {
if (!this.allAlbums && !this.allSingles) return;

View File

@ -23,7 +23,7 @@
</div>
<div v-if='section.hasMore' class='mx-2 align-center justify-center d-flex'>
<v-btn @click='showMore(section)' color='primary'>
Show more
{{$t("Show more")}}
</v-btn>
</div>
</div>

View File

@ -1,51 +1,51 @@
<template>
<div>
<h1 class='pb-2'>Downloads</h1>
<v-card v-if='$root.download' max-width='100%'>
<v-list-item three-line>
<v-list-item-avatar>
<v-img :src='$root.download.track.albumArt.thumb'></v-img>
</v-list-item-avatar>
<v-list-item-content>
<v-list-item-title>{{$root.download.track.title}}</v-list-item-title>
<v-list-item-subtitle>
Downloaded: {{$filesize($root.download.downloaded)}} / {{$filesize($root.download.size)}}<br>
Path: {{$root.download.path}}
</v-list-item-subtitle>
</v-list-item-content>
<h1 class='pb-2'>{{$t("Downloads")}}</h1>
<div v-if='$root.downloads.downloading'>
<v-card v-for='(download, index) in $root.downloads.threads' :key='"t" + index.toString()' max-width='100%'>
<v-list-item>
<v-list-item-avatar>
<v-img :src='download.track.albumArt.thumb'></v-img>
</v-list-item-avatar>
<v-list-item-content>
<v-list-item-title>{{download.track.title}}</v-list-item-title>
<v-list-item-subtitle>
{{$t('Downloaded')}}: {{$filesize(download.downloaded)}} / {{$filesize(download.size)}}<br>
</v-list-item-subtitle>
</v-list-item-content>
</v-list-item>
</v-card>
<h1 class='pb-2'>Queue:</h1>
<div class='text-h6 mr-4 pb-2 d-flex'>Total: {{$root.downloads.length}}
</v-card>
</div>
<h1 class='pb-2'>{{$t("Queue")}}:</h1>
<div class='text-h6 mr-4 pb-2 d-flex'>{{$t("Total")}}: {{$root.downloads.queue.length}}
<v-btn @click='$root.toggleDownload' class='ml-4' color='primary'>
<div v-if='$root.downloading'>
<div v-if='$root.downloads.downloading'>
<v-icon>mdi-stop</v-icon>
Stop
{{$t("Stop")}}
</div>
<div v-if='!$root.downloading'>
<div v-if='!$root.downloads.downloading'>
<v-icon>mdi-download</v-icon>
Start
{{$t("Start")}}
</div>
</v-btn>
<!-- Open dir -->
<v-btn @click='openDir' class='ml-4' v-if='$root.settings.electron'>
<v-icon>mdi-folder</v-icon>
Show folder
{{$t("Show folder")}}
</v-btn>
<!-- Delete all -->
<v-btn @click='deleteDownload(-1)' class='ml-4' color='red'>
<v-icon>mdi-delete</v-icon>
Clear queue
{{$t("Clear queue")}}
</v-btn>
</div>
<!-- Downloads -->
<!-- Queue -->
<v-list dense>
<div v-for='(download, index) in $root.downloads' :key='download.id'>
<div v-for='(download, index) in $root.downloads.queue' :key='download.id'>
<v-list-item dense>
<v-list-item-avatar>
<v-img :src='download.track.albumArt.thumb'></v-img>

View File

@ -5,7 +5,7 @@
<v-btn icon @click='close'>
<v-icon>mdi-close</v-icon>
</v-btn>
<v-toolbar-title>Playing from: {{$root.queue.source.text}}</v-toolbar-title>
<v-toolbar-title>{{$t("Playing from")}}: {{$root.queue.source.text}}</v-toolbar-title>
</v-app-bar>
<!-- Split to half -->
@ -122,13 +122,13 @@
<v-col class='col-6 pt-4'>
<v-tabs v-model='tab'>
<v-tab key='queue'>
Queue
{{$t("Queue")}}
</v-tab>
<v-tab key='info'>
Info
{{$t("Info")}}
</v-tab>
<v-tab key='lyrics'>
Lyrics
{{$t("Lyrics")}}
</v-tab>
</v-tabs>
@ -172,14 +172,13 @@
></ArtistTile>
</v-list>
<!-- Meta -->
<h3>Duration: <span>{{$duration($root.track.duration)}}</span></h3>
<h3>Track number: {{$root.track.trackNumber}}</h3>
<h3>Disk number: {{$root.track.diskNumber}}</h3>
<h3>Explicit: {{$root.track.explicit?"Yes":"No"}}</h3>
<h3>Source: {{$root.playbackInfo.source}}</h3>
<h3>Format: {{$root.playbackInfo.format}}</h3>
<h3>Quality: {{$root.playbackInfo.quality}}</h3>
<h3>ID: {{$root.track.id}}</h3>
<h3>{{$t("Duration")}}: <span>{{$duration($root.track.duration)}}</span></h3>
<h3>{{$t("Track number")}}: {{$root.track.trackNumber}}</h3>
<h3>{{$t("Disk number")}}: {{$root.track.diskNumber}}</h3>
<h3>{{$t("Explicit")}}: {{$root.track.explicit?"Yes":"No"}}</h3>
<h3>{{$t("Source")}}: {{$root.playbackInfo.source}}</h3>
<h3>{{$t("Quality")}}: {{$root.playbackInfo.qualityString}}</h3>
<h3>{{$t("ID")}}: {{$root.track.id}}</h3>
</v-list>
</v-tab-item>
<!-- Lyrics -->
@ -261,7 +260,7 @@ export default {
let offsetp = (v.pageX - seeker.$el.offsetLeft) / seeker.$el.clientWidth;
let pos = offsetp * this.$root.duration();
this.$root.seek(pos);
this.position = pos;
this.position = pos / 1000;
this.seeking = false;
},
//Add/Remove track from library
@ -305,7 +304,9 @@ export default {
this.inLibrary = this.$root.libraryTracks.includes(this.$root.track.id);
},
'$root.position'() {
if (!this.seeking) this.position = this.$root.position / 1000;
if (!this.seeking) {
this.position = this.$root.position / 1000;
}
},
}
};

View File

@ -1,29 +1,29 @@
<template>
<div>
<h1>Library</h1>
<h1>{{$t("Library")}}</h1>
<v-tabs v-model='tab'>
<v-tab key='tracks'>
Tracks
{{$t("Tracks")}}
</v-tab>
<v-tab key='albums'>
Albums
{{$t("Albums")}}
</v-tab>
<v-tab key='artists'>
Artists
{{$t("Artists")}}
</v-tab>
<v-tab key='playlists'>
Playlists
{{$t("Playlists")}}
</v-tab>
<v-tab key='history'>
History
{{$t("History")}}
</v-tab>
</v-tabs>
<v-tabs-items v-model='tab'>
<!-- Tracks -->
<v-tab-item key='tracks'>
<LibraryTracks height='calc(100vh - 240px)'></LibraryTracks>
<LibraryTracks height='calc(100vh - 290px)'></LibraryTracks>
</v-tab-item>
<!-- Albums -->

View File

@ -9,11 +9,11 @@
<!-- Error -->
<v-card class='text-center pa-4' v-if='error'>
<h1 class='text--red'>Error logging in!</h1>
<h3>Please try again later, or try another account.</h3>
<h1 class='text--red'>{{$t("Error logging in!")}}</h1>
<h3>{{$t("Please try again later, or try another account.")}}</h3>
<v-btn large class='my-4' @click='logout'>
<v-icon left>mdi-logout-variant</v-icon>
Logout
{{$t("Logout")}}
</v-btn>
</v-card>
@ -21,23 +21,24 @@
<div v-if='showForm' class='text-center'>
<v-img src='banner.png' contain max-width='400px' class='py-8'></v-img>
<h3>Please login using your Deezer account:</h3>
<h3>{{$t("Please login using your Deezer account:")}}</h3>
<v-btn large class='my-2 mb-4 primary' @click='browserLogin'>
<v-icon left>mdi-open-in-app</v-icon>
Login using browser
{{$t("Login using browser")}}
</v-btn>
<h3 class='mt-4'>...or paste your ARL/Token below:</h3>
<v-text-field label='ARL/Token' v-model='arl'>
<h3 class='mt-4'>{{$t("...or paste your ARL/Token below:")}}</h3>
<v-text-field :label='$t("ARL/Token")' v-model='arl'>
</v-text-field>
<v-btn large class='my-4 primary' :loading='authorizing' @click='login'>
<v-icon left>mdi-login-variant</v-icon>Login
<v-icon left>mdi-login-variant</v-icon>
{{$t("Login")}}
</v-btn>
<br>
<span class='mt-8 text-caption'>
By using this program, you disagree with Deezer's ToS.
{{$t("By using this program, you disagree with Deezer's ToS.")}}
</span>
</div>
@ -99,7 +100,7 @@ export default {
},
//Login using browser
browserLogin() {
if (!this.$root.settings.electron) return alert('Only in Electron version!');
if (!this.$root.settings.electron) return alert(this.$t('Only in Electron version!'));
const {ipcRenderer} = window.require('electron');
ipcRenderer.on('browserLogin', (event, newArl) => {

View File

@ -17,23 +17,23 @@
<h3>{{playlist.user.name}}</h3>
<h5>{{playlist.description}}</h5>
<div class='mt-2' v-if='!loading'>
<span class='text-subtitle-2'>{{playlist.trackCount}} tracks</span><br>
<span class='text-subtitle-2'>Duration: {{$duration(playlist.duration)}}</span><br>
<span class='text-subtitle-2'>{{$numberString(playlist.fans)}} fans</span><br>
<span class='text-subtitle-2'>{{playlist.trackCount}} {{$t("tracks")}}</span><br>
<span class='text-subtitle-2'>{{$t("Duration")}}: {{$duration(playlist.duration)}}</span><br>
<span class='text-subtitle-2'>{{$numberString(playlist.fans)}} {{$t('fans')}}</span><br>
</div>
<div class='my-1'>
<v-btn color='primary' class='mr-1' @click='play'>
<v-icon left>mdi-play</v-icon>
Play
{{$t('Play')}}
</v-btn>
<v-btn color='red' class='mx-1' @click='library' :loading='libraryLoading'>
<v-icon left>mdi-heart</v-icon>
Library
{{$t('Library')}}
</v-btn>
<v-btn color='green' class='mx-1' @click='download'>
<v-icon left>mdi-download</v-icon>
Download
{{$t('Download')}}
</v-btn>
</div>
</div>

View File

@ -1,7 +1,7 @@
<template>
<div>
<h1 class='pb-2'>Search results for: "{{query}}"</h1>
<h1 class='pb-2'>{{$t('Search results for:')}} "{{query}}"</h1>
<!-- Loading overlay -->
<v-overlay opacity='0.9' :value='loading' z-index='3'>
@ -12,24 +12,24 @@
<!-- Error overlay -->
<v-overlay opacity='0.9' :value='error' z-index="3">
<h1 class='red--text'>Error loading data!</h1><br>
<h3>Try again later!</h3>
<h1 class='red--text'>{{$t("Error loading data!")}}</h1><br>
<h3>{{$t("Try again later!")}}</h3>
</v-overlay>
<!-- Tabs -->
<v-tabs v-model="tab">
<v-tabs-slider></v-tabs-slider>
<v-tab key="tracks">
<v-icon left>mdi-music-note</v-icon>Tracks
<v-icon left>mdi-music-note</v-icon>{{$t("Tracks")}}
</v-tab>
<v-tab>
<v-icon left>mdi-album</v-icon>Albums
<v-icon left>mdi-album</v-icon>{{$t("Albums")}}
</v-tab>
<v-tab>
<v-icon left>mdi-account-music</v-icon>Artists
<v-icon left>mdi-account-music</v-icon>{{$t("Artists")}}
</v-tab>
<v-tab>
<v-icon left>mdi-playlist-music</v-icon>Playlists
<v-icon left>mdi-playlist-music</v-icon>{{$t("Playlists")}}
</v-tab>
</v-tabs>
@ -130,7 +130,7 @@ export default {
//On click for track tile
playTrack(i) {
this.$root.queue.source = {
text: "Search",
text: this.$t("Search"),
source: "search",
data: this.query
};

View File

@ -1,10 +1,10 @@
<template>
<div>
<h1 class='pb-2'>Settings</h1>
<h1 class='pb-2'>{{$t('Settings')}}</h1>
<v-list>
<v-select
class='px-4'
label='Streaming Quality'
:label='$t("Streaming Quality")'
persistent-hint
:items='qualities'
@change='updateStreamingQuality'
@ -13,7 +13,7 @@
<v-select
class='px-4'
label='Download Quality'
:label='$t("Download Quality")'
persistent-hint
:items='qualities'
@change='updateDownloadQuality'
@ -23,11 +23,23 @@
<!-- Download path -->
<v-text-field
class='px-4'
label='Downloads Directory'
:label='$t("Downloads Directory")'
v-model='$root.settings.downloadsPath'
append-icon='mdi-open-in-app'
@click:append='selectDownloadPath'
></v-text-field>
<!-- Download threads -->
<v-slider
:label='$t("Simultaneous downloads")'
min='1'
max='16'
thumb-label
step='1'
ticks
class='px-4'
v-model='$root.settings.downloadThreads'
></v-slider>
<!-- Download dialog -->
<v-list-item>
@ -35,8 +47,8 @@
<v-checkbox v-model='$root.settings.downloadDialog'></v-checkbox>
</v-list-item-action>
<v-list-item-content>
<v-list-item-title>Show download dialog</v-list-item-title>
<v-list-item-subtitle>Always show download confirm dialog before downloading.</v-list-item-subtitle>
<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-content>
</v-list-item>
@ -46,7 +58,7 @@
<v-checkbox v-model='$root.settings.createArtistFolder'></v-checkbox>
</v-list-item-action>
<v-list-item-content>
<v-list-item-title>Create folders for artists</v-list-item-title>
<v-list-item-title>{{$t("Create folders for artists")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
<!-- Create album folder -->
@ -55,9 +67,19 @@
<v-checkbox v-model='$root.settings.createAlbumFolder'></v-checkbox>
</v-list-item-action>
<v-list-item-content>
<v-list-item-title>Create folders for albums</v-list-item-title>
<v-list-item-title>{{$t("Create folders for albums")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
<!-- Download lyrics -->
<v-list-item>
<v-list-item-action>
<v-checkbox v-model='$root.settings.downloadLyrics'></v-checkbox>
</v-list-item-action>
<v-list-item-content>
<v-list-item-title>{{$t("Download lyrics")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
<!-- Download naming -->
<v-text-field
@ -65,11 +87,34 @@
label='Download Filename'
persistent-hint
v-model='$root.settings.downloadFilename'
hint='Variables: %title%, %artists%, %artist%, %feats%, %trackNumber%, %0trackNumber%, %album%'
:hint='$t("Variables") + ": %title%, %artists%, %artist%, %feats%, %trackNumber%, %0trackNumber%, %album%, %year%"'
></v-text-field>
<!-- UI -->
<v-subheader>{{$t("UI")}}</v-subheader>
<v-divider></v-divider>
<!-- Language -->
<v-select
class='mt-2 px-4'
label='Language'
persistent-hint
:items='languageNames'
@change='updateLanguage'
></v-select>
<!-- Autocomplete -->
<v-list-item>
<v-list-item-action>
<v-checkbox v-model='$root.settings.showAutocomplete'></v-checkbox>
</v-list-item-action>
<v-list-item-content>
<v-list-item-title>{{$t("Show autocomplete in search")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
<!-- Accounts -->
<v-subheader>Integrations</v-subheader>
<v-subheader>{{$t("Integrations")}}</v-subheader>
<v-divider></v-divider>
<!-- Log listening -->
@ -78,8 +123,8 @@
<v-checkbox v-model='$root.settings.logListen'></v-checkbox>
</v-list-item-action>
<v-list-item-content>
<v-list-item-title>Log track listens to Deezer</v-list-item-title>
<v-list-item-subtitle>This allows listening history, flow and recommendations to work properly.</v-list-item-subtitle>
<v-list-item-title>{{$t("Log track listens to Deezer")}}</v-list-item-title>
<v-list-item-subtitle>{{$t("This allows listening history, flow and recommendations to work properly.")}}</v-list-item-subtitle>
</v-list-item-content>
</v-list-item>
<!-- LastFM -->
@ -88,8 +133,8 @@
<v-img src='lastfm.svg'></v-img>
</v-list-item-avatar>
<v-list-item-content>
<v-list-item-title>Login with LastFM</v-list-item-title>
<v-list-item-subtitle>Connect your LastFM account to allow scrobbling.</v-list-item-subtitle>
<v-list-item-title>{{$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-content>
</v-list-item>
<v-list-item v-if='$root.settings.lastFM' @click='disconnectLastFM'>
@ -97,32 +142,32 @@
<v-icon>mdi-logout</v-icon>
</v-list-item-avatar>
<v-list-item-content>
<v-list-item-title class='red--text'>Disconnect LastFM</v-list-item-title>
<v-list-item-title class='red--text'>{{$t("Disconnect LastFM")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
<!-- Discord -->
<v-list-item>
<v-list-item-action>
<v-checkbox v-model='$root.settings.enableDiscord' @click='snackbarText = "Requires restart to apply!"; snackbar = true'></v-checkbox>
<v-checkbox v-model='$root.settings.enableDiscord' @click='snackbarText = $t("Requires restart to apply!"); snackbar = true'></v-checkbox>
</v-list-item-action>
<v-list-item-content>
<v-list-item-title>Discord Rich Presence</v-list-item-title>
<v-list-item-subtitle>Enable Discord Rich Presence, requires restart to toggle!</v-list-item-subtitle>
<v-list-item-title>{{$t("Discord Rich Presence")}}</v-list-item-title>
<v-list-item-subtitle>{{$t("Enable Discord Rich Presence, requires restart to toggle!")}}</v-list-item-subtitle>
</v-list-item-content>
</v-list-item>
<!-- Discord Join Button -->
<v-list-item>
<v-list-item-action>
<v-checkbox v-model='$root.settings.discordJoin' @click='snackbarText = "Requires restart to apply!"; snackbar = true'></v-checkbox>
<v-checkbox v-model='$root.settings.discordJoin' @click='snackbarText = $t("Requires restart to apply!"); snackbar = true'></v-checkbox>
</v-list-item-action>
<v-list-item-content>
<v-list-item-title>Discord Join Button</v-list-item-title>
<v-list-item-subtitle>Enable Discord join button for syncing tracks, requires restart to toggle!</v-list-item-subtitle>
<v-list-item-title>{{$t("Discord Join Button")}}</v-list-item-title>
<v-list-item-subtitle>{{$t("Enable Discord join button for syncing tracks, requires restart to toggle!")}}</v-list-item-subtitle>
</v-list-item-content>
</v-list-item>
<!-- Misc -->
<v-subheader>Other</v-subheader>
<v-subheader>{{$t("Other")}}</v-subheader>
<v-divider></v-divider>
<!-- Minimize to tray -->
@ -131,7 +176,7 @@
<v-checkbox v-model='$root.settings.minimizeToTray'></v-checkbox>
</v-list-item-action>
<v-list-item-content>
<v-list-item-title>Minimize to tray</v-list-item-title>
<v-list-item-title>{{$t("Minimize to tray")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
<!-- Close on exit -->
@ -140,22 +185,21 @@
<v-checkbox v-model='$root.settings.closeOnExit'></v-checkbox>
</v-list-item-action>
<v-list-item-content>
<v-list-item-title>Close on exit</v-list-item-title>
<v-list-item-subtitle>Don't minimize to tray</v-list-item-subtitle>
<v-list-item-title>{{$t("Close on exit")}}</v-list-item-title>
<v-list-item-subtitle>{{$t("Don't minimize to tray")}}</v-list-item-subtitle>
</v-list-item-content>
</v-list-item>
<!-- Logout -->
<v-btn block color='red' class='mt-4' @click='logout'>
<v-icon>mdi-logout</v-icon>
Logout
{{$t("Logout")}}
</v-btn>
</v-list>
<v-btn class='my-4' large color='primary' :loading='saving' block @click='save'>
<v-btn fab color='primary' absolute bottom right class='mb-12' @click='save' :loading='saving'>
<v-icon>mdi-content-save</v-icon>
Save
</v-btn>
<!-- Info snackbar -->
@ -192,7 +236,17 @@ export default {
downloadQuality: null,
devToolsCounter: 0,
snackbarText: null,
snackbar: false
snackbar: false,
language: 'en',
languages: [
{code: 'en', name: 'English'},
{code: 'ar', name: 'Arabic'},
{code: 'de', name: 'German'},
],
primaryColorIndex: 0,
primaries: ['#F44336', '#E91E63', '#9C27B0', '#673AB7', '#3F51B5', '#2196F3', '#03A9F4',
'#00BCD4', '#009688', '#4CAF50', '#8BC34A', '#CDDC39', '#FFEB3B', '#FFC107', '#FF9800', '#FF5722',
'#795548', '#607D8B', '#9E9E9E', '#333333', '#000000']
}
},
methods: {
@ -202,6 +256,8 @@ export default {
this.$root.saveSettings();
//Artificial wait to make it seem like something happened.
setTimeout(() => {this.saving = false;}, 500);
this.snackbarText = this.$t("Settings saved!");
this.snackbar = true;
},
getQuality(v) {
let i = this.qualities.indexOf(v);
@ -228,7 +284,7 @@ export default {
selectDownloadPath() {
//Electron check
if (!this.$root.settings.electron) {
alert('Available only in Electron version!');
alert(this.$t("Available only in Electron version!"));
return;
}
const {ipcRenderer} = window.require('electron');
@ -252,6 +308,24 @@ export default {
this.$root.settings.lastFM = null;
await this.$root.saveSettings();
window.location.reload();
},
changeColor() {
this.$vuetify.theme.themes.dark.primary = this.primaries[this.primaryColorIndex];
this.$root.settings.primaryColor = this.primaries[this.primaryColorIndex];
this.primaryColorIndex++;
if (this.primaryColorIndex == this.primaries.length)
this.primaryColorIndex = 0;
},
updateLanguage(l) {
let code = this.languages.filter(lang => lang.name == l)[0].code;
this.language = code;
this.$root.updateLanguage(code);
this.$root.settings.language = code;
}
},
computed: {
languageNames() {
return this.languages.map(l => l.name);
}
},
mounted() {
@ -272,6 +346,18 @@ export default {
remote.getCurrentWindow().toggleDevTools();
}
}
//Shhhhhh
if (event.code == 'KeyC' && event.shiftKey) {
this.changeColor();
}
//SSHHSHSHHSH
if (event.code == 'KeyG' && event.shiftKey && event.altKey) {
setInterval(() => {
this.changeColor();
}, 400);
}
});
}
}