Compare commits
10 Commits
b0ebe66d54
...
53f6b760fe
Author | SHA1 | Date |
---|---|---|
exttex | 53f6b760fe | |
exttex | 6302f54fbd | |
exttex | 5b3185c0f4 | |
exttex | 9974c1ea63 | |
exttex | 15f7638854 | |
exttex | 85f293893a | |
exttex | 984a5d9296 | |
exttex | 227f22180a | |
exttex | 025569bbb7 | |
exttex | babaa68d91 |
|
@ -7,3 +7,6 @@ app/client/node_modules/
|
|||
electron_dist/
|
||||
freezer-*.tgz
|
||||
translations.zip
|
||||
package-lock.json
|
||||
app/package-lock.json
|
||||
app/client/package-lock.json
|
|
@ -2,7 +2,7 @@ const {app, BrowserWindow, ipcMain, Tray, Menu, session, dialog, shell, nativeTh
|
|||
const {createServer} = require('./src/server');
|
||||
const path = require('path');
|
||||
const arg = require('arg');
|
||||
const { exit } = require('process');
|
||||
const { exit, platform } = require('process');
|
||||
const packageJson = require('./package.json');
|
||||
const chalk = require('chalk');
|
||||
const {Settings} = require('./src/settings');
|
||||
|
@ -117,13 +117,14 @@ async function createWindow() {
|
|||
minHeight: 600,
|
||||
resizable: true,
|
||||
autoHideMenuBar: true,
|
||||
frame: false,
|
||||
frame: settings.nativeTopBar,
|
||||
icon: assetPath("icon.png"),
|
||||
title: 'Freezer',
|
||||
webPreferences: {
|
||||
enableRemoteModule: true,
|
||||
nodeIntegration: true,
|
||||
devTools: true
|
||||
devTools: true,
|
||||
contextIsolation: false
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -174,6 +175,10 @@ if (!singleInstanceLock) {
|
|||
|
||||
//Create window
|
||||
app.on('ready', async () => {
|
||||
//No mac
|
||||
if (platform == 'darwin')
|
||||
process.exit(-1);
|
||||
|
||||
await startServer();
|
||||
//Server mode
|
||||
if (args['--server']) return;
|
||||
|
|
|
@ -11,15 +11,15 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@mdi/font": "^5.9.55",
|
||||
"axios": "^0.19.2",
|
||||
"axios": "^0.21.1",
|
||||
"roboto-fontface": "*",
|
||||
"socket.io-client": "^4.1.2",
|
||||
"vue": "^2.6.12",
|
||||
"vue-esc": "^3.0.1",
|
||||
"vue-i18n": "^8.22.4",
|
||||
"vue-router": "^3.4.9",
|
||||
"vue-socket.io": "^3.0.10",
|
||||
"vuedraggable": "^2.24.3",
|
||||
"vuetify": "^2.4.2"
|
||||
"vuetify": "^2.5.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@intlify/vue-i18n-loader": "^1.0.0",
|
||||
|
@ -33,7 +33,7 @@
|
|||
"vue-cli-plugin-i18n": "~1.0.1",
|
||||
"vue-cli-plugin-vuetify": "^2.0.9",
|
||||
"vue-template-compiler": "^2.6.12",
|
||||
"vuetify-loader": "^1.3.0"
|
||||
"vuetify-loader": "^1.7.2"
|
||||
},
|
||||
"eslintConfig": {
|
||||
"root": true,
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
<template>
|
||||
<div>
|
||||
<div :class='{"enable-bgi": $root.settings.backgroundImage}'>
|
||||
<v-app v-esc='closePlayer'>
|
||||
|
||||
<v-system-bar
|
||||
:color='$root.settings.lightTheme ? "#f5f5f5" : "#121212"'
|
||||
:color='$root.settings.lgbtMode ? null : $root.settings.lightTheme ? "#f5f5f5" : "#121212"'
|
||||
app
|
||||
class='topbar'
|
||||
v-if='$root.settings.electron'
|
||||
:class='{"lgbt-header": $root.settings.lgbtMode}'
|
||||
v-if='$root.settings.electron && !$root.settings.nativeTopBar'
|
||||
height='28'>
|
||||
|
||||
<v-spacer></v-spacer>
|
||||
|
@ -18,7 +19,14 @@
|
|||
</v-system-bar>
|
||||
|
||||
<!-- Fullscreen player overlay -->
|
||||
<v-overlay :value='showPlayer' opacity='1.00' z-index="100">
|
||||
<v-overlay
|
||||
:dark='!$root.settings.lightTheme'
|
||||
:light='$root.settings.lightTheme' :value='showPlayer'
|
||||
:opacity='$root.settings.backgroundImage ? 0.0 : 1.0'
|
||||
z-index="100"
|
||||
:color='$root.settings.lightTheme ? "#ffffff" : "#212121"'>
|
||||
|
||||
<img :src='backgroundSrc' class='wallpaper-overlay' v-if='$root.settings.backgroundImage'>
|
||||
<FullscreenPlayer @close='closePlayer' @volumeChange='volume = $root.volume'></FullscreenPlayer>
|
||||
</v-overlay>
|
||||
|
||||
|
@ -149,7 +157,7 @@
|
|||
</v-list>
|
||||
</v-navigation-drawer>
|
||||
|
||||
<v-app-bar app dense color='#1e1e1e'>
|
||||
<v-app-bar app dense :color='$root.settings.lightTheme ? null : "#1e1e1e"'>
|
||||
|
||||
<v-btn icon @click='previous'>
|
||||
<v-icon>mdi-arrow-left</v-icon>
|
||||
|
@ -172,6 +180,7 @@
|
|||
:loading='searchLoading'
|
||||
@keyup='search'
|
||||
ref='searchBar'
|
||||
:background-color='$root.settings.lightTheme ? "#ffffff00" : "#00000000"'
|
||||
v-model='searchQuery'
|
||||
:search-input.sync='searchInput'
|
||||
:items='suggestions'
|
||||
|
@ -181,12 +190,12 @@
|
|||
</v-app-bar>
|
||||
|
||||
<!-- Main -->
|
||||
<img :src='backgroundSrc' class='wallpaper' v-if='$root.settings.backgroundImage'>
|
||||
<v-main>
|
||||
<v-container
|
||||
class='overflow-y-auto'
|
||||
fluid
|
||||
style='height: calc(100vh - 140px);'>
|
||||
|
||||
:class='{"main-container": $root.topBar, "main-container-notop": !$root.topBar}'
|
||||
:fluid='fluidContainer'>
|
||||
<keep-alive include='Search,PlaylistPage,HomeScreen,DeezerPage'>
|
||||
<router-view></router-view>
|
||||
</keep-alive>
|
||||
|
@ -297,6 +306,10 @@
|
|||
.v-navigation-drawer__content {
|
||||
overflow-y: hidden !important;
|
||||
}
|
||||
.enable-bgi {
|
||||
@import 'styles/bg-image.scss';
|
||||
}
|
||||
|
||||
</style>
|
||||
<style lang='scss' scoped>
|
||||
.seekbar {
|
||||
|
@ -312,6 +325,33 @@
|
|||
.topbarbutton {
|
||||
-webkit-app-region: no-drag;
|
||||
}
|
||||
.wallpaper {
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
z-index: -100;
|
||||
position: absolute;
|
||||
object-fit: fill;
|
||||
}
|
||||
.wallpaper-overlay {
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
z-index: -100;
|
||||
position: absolute;
|
||||
object-fit: fill;
|
||||
}
|
||||
|
||||
.main-container {
|
||||
height: calc(100vh - 140px);
|
||||
}
|
||||
|
||||
.main-container-notop {
|
||||
height: calc(100vh - 118px);
|
||||
}
|
||||
|
||||
.lgbt-header button {
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<script>
|
||||
|
@ -335,7 +375,8 @@ export default {
|
|||
cancelSuggestions: false,
|
||||
globalSnackbar: false,
|
||||
version: null,
|
||||
updateAvailable: false
|
||||
updateAvailable: false,
|
||||
fluidContainer: window.innerWidth < 1300
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
@ -451,7 +492,13 @@ export default {
|
|||
if (p > 100)
|
||||
p = 100;
|
||||
return Math.round(p);
|
||||
}
|
||||
},
|
||||
//Get background src
|
||||
backgroundSrc() {
|
||||
if (this.$root.settings.backgroundImage && this.$root.settings.backgroundImage.startsWith("http"))
|
||||
return this.$root.settings.backgroundImage;
|
||||
return process.env.NODE_ENV === 'development' ? "http://localhost:10069/background" : "/background";
|
||||
},
|
||||
},
|
||||
async mounted() {
|
||||
//Scroll on volume
|
||||
|
@ -478,7 +525,7 @@ export default {
|
|||
|
||||
// /search
|
||||
document.addEventListener('keypress', (e) => {
|
||||
if (e.keyCode != 47) return;
|
||||
if (e.key != '/' || e.target.nodeName == "INPUT") return;
|
||||
this.$refs.searchBar.focus();
|
||||
setTimeout(() => {
|
||||
if (this.searchQuery.startsWith('/')) this.searchQuery = this.searchQuery.substring(1);
|
||||
|
@ -489,6 +536,11 @@ export default {
|
|||
if (this.$root.loadingPromise) await this.$root.loadingPromise;
|
||||
this.volume = this.$root.volume;
|
||||
|
||||
//Limit content width on large displays
|
||||
window.addEventListener('resize', () => {
|
||||
this.fluidContainer = window.innerWidth < 1300;
|
||||
});
|
||||
|
||||
//Check for update
|
||||
this.checkUpdate();
|
||||
},
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
dense
|
||||
:label='$t("Search")'
|
||||
solo
|
||||
class='mx-2 mt-1'
|
||||
class='mx-2'
|
||||
v-model='searchQuery'
|
||||
></v-text-field>
|
||||
</div>
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
dense
|
||||
:label='$t("Search")'
|
||||
solo
|
||||
class='mx-2 mt-1'
|
||||
class='mx-2'
|
||||
v-model='searchQuery'
|
||||
></v-text-field>
|
||||
</div>
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
dense
|
||||
:label='$t("Search")'
|
||||
solo
|
||||
class='mx-2 mt-1'
|
||||
class='mx-2'
|
||||
v-model='searchQuery'
|
||||
></v-text-field>
|
||||
</div>
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
dense
|
||||
:label='$t("Search")'
|
||||
solo
|
||||
class='mx-2 mt-1'
|
||||
class='mx-2'
|
||||
v-model='searchQuery'
|
||||
></v-text-field>
|
||||
</div>
|
||||
|
@ -69,7 +69,6 @@ export default {
|
|||
},
|
||||
methods: {
|
||||
scroll(event) {
|
||||
console.log(event);
|
||||
let loadOffset = event.target.scrollHeight - event.target.offsetHeight - 150;
|
||||
if (event.target.scrollTop > loadOffset) {
|
||||
if (!this.loading) this.load();
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
v-for='(lyric, index) in lyrics.lyrics'
|
||||
:key='lyric.offset'
|
||||
class='my-6 mx-4 pa-2 rounded'
|
||||
:class='{"grey darken-3": playingNow(index)}'
|
||||
:class='{"grey darken-3": (playingNow(index) && !$root.settings.lightTheme), "grey lighten-1": (playingNow(index) && $root.settings.lightTheme)}'
|
||||
@click='seekTo(index)'>
|
||||
<span
|
||||
class='my-8'
|
||||
|
|
|
@ -26,9 +26,13 @@
|
|||
</v-list-item-action>
|
||||
<v-list-item-action>
|
||||
<!-- Quick add to playlist -->
|
||||
<v-btn @click.stop='popup = true' icon>
|
||||
<v-btn @click.stop='popup = true' icon v-if='!removeQueue'>
|
||||
<v-icon>mdi-playlist-plus</v-icon>
|
||||
</v-btn>
|
||||
<!-- Remove from queue -->
|
||||
<v-btn @click.stop='$emit("removeQueue")' icon v-if='removeQueue' color='red'>
|
||||
<v-icon>mdi-close</v-icon>
|
||||
</v-btn>
|
||||
</v-list-item-action>
|
||||
<v-list-item-action>
|
||||
<!-- Context menu -->
|
||||
|
@ -186,6 +190,10 @@ export default {
|
|||
ripple: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
removeQueue: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
|
|
@ -11,6 +11,6 @@ export default new Vuetify({
|
|||
dark: true,
|
||||
options: {
|
||||
customProperties: true
|
||||
}
|
||||
},
|
||||
}
|
||||
});
|
||||
|
|
|
@ -137,5 +137,35 @@
|
|||
"Content country": "بلد المحتوى",
|
||||
"Website": "الموقع الالكتروني",
|
||||
"Visit website": "زيارة الموقع الإلكتروني",
|
||||
"New update available:": "تحديث جديد متوفر:"
|
||||
"New update available:": "تحديث جديد متوفر:",
|
||||
"Shuffle": "خلط عشوائي",
|
||||
"Download album cover": "تنزيل صورة الألبوم",
|
||||
"Art Resolution": "دقة صورة الالبوم",
|
||||
"Public": "عامة",
|
||||
"Private": "خاص",
|
||||
"Collaborative": "التعاونيه",
|
||||
"Edit playlist": "تعديل قائمة التشغيل",
|
||||
"Save": "حفظ",
|
||||
"Edit": "حرّر",
|
||||
"Importer": "المستورد",
|
||||
"Enter URL": "أدخل الرابط",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "حاليا فقط يدعم سبوتيقاي ومحدود إلى 100 اغنية.",
|
||||
"Import into playlist": "استيراد إلى قائمة التشغيل",
|
||||
"Keep sidebar open": "إبقاء الشريط الجانبي مفتوح",
|
||||
"WARNING: Might require reload to work properly!": "تحذير: قد تتطلب إعادة تحميل للعمل بشكل صحيح!",
|
||||
"An error occured, URL might be invalid or unsupported.": "حدث خطأ، قد يكون الرابط غير صالح أو غير مدعوم.",
|
||||
"Top tracks": "افضل الاغاني",
|
||||
"Show all top tracks": "عرض كل الاغاني المفضلة",
|
||||
"Singles": "الأغاني",
|
||||
"Album:": "ألبوم:",
|
||||
"Artists:": "الفنانين:",
|
||||
"Yes": "نعم",
|
||||
"No": "لا",
|
||||
"Download Filename": "تنزيل اسم الملف",
|
||||
"Language": "اللغة",
|
||||
"Background Image": "صورة الخلفية",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "أدخل عنوان URL أو المسار المطلق. تحذير: يتطلب إعادة التحميل!",
|
||||
"LGBT Mode": "وضع LGBT",
|
||||
"Native top bar": "الشريط العلوي الأصلي",
|
||||
"Requires restart of Freezer!": "يتطلب إعادة تشغيل فريزر!"
|
||||
}
|
|
@ -1,141 +1,171 @@
|
|||
{
|
||||
"Home": "Home",
|
||||
"Browse": "Browse",
|
||||
"Library": "Library",
|
||||
"Tracks": "Tracks",
|
||||
"Playlists": "Playlists",
|
||||
"Albums": "Albums",
|
||||
"Artists": "Artists",
|
||||
"More": "More",
|
||||
"Settings": "Settings",
|
||||
"Downloads": "Downloads",
|
||||
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
|
||||
"Play": "Play",
|
||||
"Add to library": "Add to library",
|
||||
"Download": "Download",
|
||||
"fans": "fans",
|
||||
"tracks": "tracks",
|
||||
"Quality": "Quality",
|
||||
"Estimated size:": "Estimated size:",
|
||||
"Start downloading": "Start downloading",
|
||||
"Cancel": "Cancel",
|
||||
"Stream logging is disabled!": "Stream logging is disabled!",
|
||||
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
|
||||
"History": "History",
|
||||
"Create new playlist": "Create new playlist",
|
||||
"TRACKS": "TRACKS",
|
||||
"Sort by": "Sort by",
|
||||
"Date Added": "Date Added",
|
||||
"Name (A-Z)": "Name (A-Z)",
|
||||
"Artist (A-Z)": "Artist (A-Z)",
|
||||
"Album (A-Z)": "Album (A-Z)",
|
||||
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
|
||||
"Create playlist": "Create playlist",
|
||||
"Create": "Create",
|
||||
"Add to playlist": "Add to playlist",
|
||||
"Create new": "Create new",
|
||||
"Remove": "Remove",
|
||||
"Play next": "Play next",
|
||||
"Add to queue": "Add to queue",
|
||||
"Remove from library": "Remove from library",
|
||||
"Remove from playlist": "Remove from playlist",
|
||||
"Play track mix": "Play track mix",
|
||||
"Go to": "Go to",
|
||||
"Track Mix": "Track Mix",
|
||||
"Duration": "Duration",
|
||||
"Released": "Released",
|
||||
"Disk": "Disk",
|
||||
"albums": "albums",
|
||||
"Play top": "Play top",
|
||||
"Home": "Aniciu",
|
||||
"Browse": "Restolar",
|
||||
"Library": "Biblioteca",
|
||||
"Tracks": "Pistes",
|
||||
"Playlists": "Llistes",
|
||||
"Albums": "Álbumes",
|
||||
"Artists": "Artistes",
|
||||
"More": "Más",
|
||||
"Settings": "Axustes",
|
||||
"Downloads": "Descargues",
|
||||
"Search or paste Deezer URL. Use / to quickly focus.": "Busca o apiega una URL de Deezer. Usa «/» pa enfocar aína esta barra.",
|
||||
"Play": "Reproducir",
|
||||
"Add to library": "Amestar a la biblioteca",
|
||||
"Download": "Baxar",
|
||||
"fans": "siguidores",
|
||||
"tracks": "pistes",
|
||||
"Quality": "Calidá",
|
||||
"Estimated size:": "Tamañu estimáu:",
|
||||
"Start downloading": "Aniciar la descarga",
|
||||
"Cancel": "Encaboxar",
|
||||
"Stream logging is disabled!": "¡El rexistru de tresmisiones ta desactiváu!",
|
||||
"Enable it in settings for history to work properly.": "Actívalu nos axustes pa que l'historial funcione afayadizamente.",
|
||||
"History": "Historial",
|
||||
"Create new playlist": "Crear una llista",
|
||||
"TRACKS": "PISTES",
|
||||
"Sort by": "Ordenar por",
|
||||
"Date Added": "Data d'amiestu",
|
||||
"Name (A-Z)": "Nome (A-Z)",
|
||||
"Artist (A-Z)": "Artista (A-Z)",
|
||||
"Album (A-Z)": "Álbum (A-Z)",
|
||||
"Error loading lyrics or lyrics not found!": "¡Hebo un fallu al cargar la lletra o nun s'atopó!",
|
||||
"Create playlist": "Creación d'una llista",
|
||||
"Create": "Crear",
|
||||
"Add to playlist": "Amestar a una llista",
|
||||
"Create new": "Crear una",
|
||||
"Remove": "Quitar",
|
||||
"Play next": "Reproducir darréu",
|
||||
"Add to queue": "Amestar a la cola",
|
||||
"Remove from library": "Quitar de la biblioteca",
|
||||
"Remove from playlist": "Quitar de la llista",
|
||||
"Play track mix": "Reproducir el mecíu de pistes",
|
||||
"Go to": "Dir a",
|
||||
"Track Mix": "Mecíu de pistes",
|
||||
"Duration": "Duración",
|
||||
"Released": "Data de llanzamientu",
|
||||
"Disk": "Discu",
|
||||
"albums": "álbumes",
|
||||
"Play top": "Reproducir lo destacao",
|
||||
"Radio": "Radio",
|
||||
"Show all albums": "Show all albums",
|
||||
"Show all singles": "Show all singles",
|
||||
"Show more": "Show more",
|
||||
"Downloaded": "Downloaded",
|
||||
"Queue": "Queue",
|
||||
"Total": "Total",
|
||||
"Stop": "Stop",
|
||||
"Start": "Start",
|
||||
"Show folder": "Show folder",
|
||||
"Clear queue": "Clear queue",
|
||||
"Playing from": "Playing from",
|
||||
"Info": "Info",
|
||||
"Lyrics": "Lyrics",
|
||||
"Track number": "Track number",
|
||||
"Disk number": "Disk number",
|
||||
"Explicit": "Explicit",
|
||||
"Source": "Source",
|
||||
"Show all albums": "Amosar tolos álbumes",
|
||||
"Show all singles": "Amosar tolos singles",
|
||||
"Show more": "Amosar más",
|
||||
"Downloaded": "Baxó",
|
||||
"Queue": "Cola",
|
||||
"Total": "En total",
|
||||
"Stop": "Parar",
|
||||
"Start": "Aniciar",
|
||||
"Show folder": "Amosar la carpeta",
|
||||
"Clear queue": "Llimpiar la cola",
|
||||
"Playing from": "Reproduciendo dende",
|
||||
"Info": "Información",
|
||||
"Lyrics": "Lletra",
|
||||
"Track number": "Númberu de la pista",
|
||||
"Disk number": "Númberu del discu",
|
||||
"Explicit": "+18",
|
||||
"Source": "Orixe",
|
||||
"ID": "ID",
|
||||
"Error logging in!": "Error logging in!",
|
||||
"Please try again later, or try another account.": "Please try again later, or try another account.",
|
||||
"Logout": "Logout",
|
||||
"Login using browser": "Login using browser",
|
||||
"Please login using your Deezer account:": "Please login using your Deezer account:",
|
||||
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
|
||||
"ARL/Token": "ARL/Token",
|
||||
"Login": "Login",
|
||||
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
|
||||
"Only in Electron version!": "Only in Electron version!",
|
||||
"Search results for:": "Search results for:",
|
||||
"Error loading data!": "Error loading data!",
|
||||
"Try again later!": "Try again later!",
|
||||
"Search": "Search",
|
||||
"Streaming Quality": "Streaming Quality",
|
||||
"Download Quality": "Download Quality",
|
||||
"Downloads Directory": "Downloads Directory",
|
||||
"Simultaneous downloads": "Simultaneous downloads",
|
||||
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
|
||||
"Show download dialog": "Show download dialog",
|
||||
"Create folders for artists": "Create folders for artists",
|
||||
"Create folders for albums": "Create folders for albums",
|
||||
"Download lyrics": "Download lyrics",
|
||||
"Error logging in!": "¡Hebo un fallu al aniciar sesión!",
|
||||
"Please try again later, or try another account.": "Volvi tentalo dempués o prueba con otra cuenta, por favor.",
|
||||
"Logout": "Zarrar sesión",
|
||||
"Login using browser": "Aniciar sesión col restolador",
|
||||
"Please login using your Deezer account:": "Usa la to cuenta de Deezer…",
|
||||
"...or paste your ARL/Token below:": "…o apiega la ARL/pase embaxo:",
|
||||
"ARL/Token": "ARL/Pase",
|
||||
"Login": "Aniciar sesión",
|
||||
"By using this program, you disagree with Deezer's ToS.": "Col usu d'esti programa refugues los Términos del Serviciu de Deezer.",
|
||||
"Only in Electron version!": "¡Namás na versión d'Electron!",
|
||||
"Search results for:": "Resultaos pa la busca de:",
|
||||
"Error loading data!": "¡Hebo un fallu al cargar los datos!",
|
||||
"Try again later!": "¡Volvi tentalo dempués!",
|
||||
"Search": "Buscar",
|
||||
"Streaming Quality": "Calidá de les tresmisiones",
|
||||
"Download Quality": "Calidá de les descargues",
|
||||
"Downloads Directory": "Direutoriu de les descargues",
|
||||
"Simultaneous downloads": "Descargues simultánees",
|
||||
"Always show download confirm dialog before downloading.": "Amosar siempres el diálogu de confirmación de les descargues enantes de baxar.",
|
||||
"Show download dialog": "Amosar el diálogu de descarga",
|
||||
"Create folders for artists": "Crear carpetes pa los artistes",
|
||||
"Create folders for albums": "Crear carpetes pa los álbumes",
|
||||
"Download lyrics": "Baxar les lletres",
|
||||
"Variables": "Variables",
|
||||
"UI": "UI",
|
||||
"Show autocomplete in search": "Show autocomplete in search",
|
||||
"Integrations": "Integrations",
|
||||
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.",
|
||||
"Log track listens to Deezer": "Log track listens to Deezer",
|
||||
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
|
||||
"Login with LastFM": "Login with LastFM",
|
||||
"Disconnect LastFM": "Disconnect LastFM",
|
||||
"Requires restart to apply!": "Requires restart to apply!",
|
||||
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
|
||||
"Discord Rich Presence": "Discord Rich Presence",
|
||||
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
|
||||
"Discord Join Button": "Discord Join Button",
|
||||
"Other": "Other",
|
||||
"Minimize to tray": "Minimize to tray",
|
||||
"Don't minimize to tray": "Don't minimize to tray",
|
||||
"Close on exit": "Close on exit",
|
||||
"Settings saved!": "Settings saved!",
|
||||
"Available only in Electron version!": "Available only in Electron version!",
|
||||
"Crossfade (ms)": "Crossfade (ms)",
|
||||
"Select primary color": "Select primary color",
|
||||
"Light theme": "Light theme",
|
||||
"Create folders for playlists": "Create folders for playlists",
|
||||
"About": "About",
|
||||
"Links:": "Links:",
|
||||
"Telegram Releases": "Telegram Releases",
|
||||
"Telegram Group": "Telegram Group",
|
||||
"UI": "IU",
|
||||
"Show autocomplete in search": "Amosar el completáu automáticu na busca",
|
||||
"Integrations": "Integraciones",
|
||||
"This allows listening history, flow and recommendations to work properly.": "Esto permite que l'historial, fluxu y recomendaciones d'escuches funcionen afayadizamente.",
|
||||
"Log track listens to Deezer": "Rexistrar les pistes sentíes en Deezer",
|
||||
"Connect your LastFM account to allow scrobbling.": "Conecta la to cuenta de LastFM pa permitir la sincronización de pistes.",
|
||||
"Login with LastFM": "Aniciar sesión en LastFM",
|
||||
"Disconnect LastFM": "Desconectase de LastFM",
|
||||
"Requires restart to apply!": "¡Rique'l reaniciu p'aplicar!",
|
||||
"Enable Discord Rich Presence, requires restart to toggle!": "Activa la presencia arriquecida de Discord. ¡Rique reaniciar l'aplicación p'alternar!",
|
||||
"Discord Rich Presence": "Presencia arriquecida de Discord",
|
||||
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Activa'l botón de xunión de Discord pa sincronizar pistes. ¡Rique reaniciar l'aplicación p'alternar!",
|
||||
"Discord Join Button": "Botón de xunión de Discord",
|
||||
"Other": "Otres opciones",
|
||||
"Minimize to tray": "Minimizar a la bandexa",
|
||||
"Don't minimize to tray": "Nun minimiza a la bandexa",
|
||||
"Close on exit": "Zarrar al colar",
|
||||
"Settings saved!": "¡Guardáronse los axustes!",
|
||||
"Available only in Electron version!": "¡Namás disponible na versión d'Electron!",
|
||||
"Crossfade (ms)": "Transición (ms)",
|
||||
"Select primary color": "Esbillar el color primariu",
|
||||
"Light theme": "Estilu claru",
|
||||
"Create folders for playlists": "Crear carpetes pa les llistes",
|
||||
"About": "Tocante a",
|
||||
"Links:": "Enllaces:",
|
||||
"Telegram Releases": "Llanzamientos en Telegram",
|
||||
"Telegram Group": "Grupu de Telegram",
|
||||
"Discord": "Discord",
|
||||
"Telegram Android Group": "Telegram Android Group",
|
||||
"Credits:": "Credits:",
|
||||
"Agree": "Agree",
|
||||
"Dismiss": "Dismiss",
|
||||
"Added to playlist!": "Added to playlist!",
|
||||
"Added to library!": "Added to library!",
|
||||
"Removed from library!": "Removed from library!",
|
||||
"Removed from playlist!": "Removed from playlist!",
|
||||
"Playlist deleted!": "Playlist deleted!",
|
||||
"Delete": "Delete",
|
||||
"Are you sure you want to delete this playlist?": "Are you sure you want to delete this playlist?",
|
||||
"Force white tray icon": "Force white tray icon",
|
||||
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Force default (white) tray icon if theme incorrectly detected. Requires restart.",
|
||||
"Share": "Share",
|
||||
"Settings quality": "Settings quality",
|
||||
"Content language": "Content language",
|
||||
"Content country": "Content country",
|
||||
"Website": "Website",
|
||||
"Visit website": "Visit website",
|
||||
"New update available:": "New update available:"
|
||||
"Telegram Android Group": "Grupu d'Android en Telegram",
|
||||
"Credits:": "Creitos:",
|
||||
"Agree": "Acepto",
|
||||
"Dismiss": "Escartar",
|
||||
"Added to playlist!": "¡Amestóse a la llista!",
|
||||
"Added to library!": "¡Amestóse a la biblioteca!",
|
||||
"Removed from library!": "¡Quitóse de la biblioteca!",
|
||||
"Removed from playlist!": "¡Quitóse de la llista!",
|
||||
"Playlist deleted!": "¡Desanicióse la llista!",
|
||||
"Delete": "Desaniciar",
|
||||
"Are you sure you want to delete this playlist?": "¿De xuru que quies desaniciar esta llista?",
|
||||
"Force white tray icon": "Forciar l'iconu de la bandexa blancu",
|
||||
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Forcia l'iconu (blancu) predetermináu de la bandexa si nun se detecta correutamente l'estilu. Rique'l reaniciu.",
|
||||
"Share": "Compartir",
|
||||
"Settings quality": "Axustes de la calidá",
|
||||
"Content language": "Llingua del conteníu",
|
||||
"Content country": "País del conteníu",
|
||||
"Website": "Sitiu web",
|
||||
"Visit website": "Visitar el sitiu web",
|
||||
"New update available:": "Anovamientu disponible:",
|
||||
"Shuffle": "Al debalu",
|
||||
"Download album cover": "Baxar la portada de los álbumes",
|
||||
"Art Resolution": "Resolución",
|
||||
"Public": "Pública",
|
||||
"Private": "Privada",
|
||||
"Collaborative": "En comuña",
|
||||
"Edit playlist": "Edición d'una llista",
|
||||
"Save": "Guardar",
|
||||
"Edit": "Editar",
|
||||
"Importer": "Importador",
|
||||
"Enter URL": "Introduz una URL",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "Anguaño namás se sofita Spotify y con una llende de 100 pistes.",
|
||||
"Import into playlist": "Importar a una llista",
|
||||
"Keep sidebar open": "Caltener la barra llateral abierta",
|
||||
"WARNING: Might require reload to work properly!": "ALVERTENCIA: ¡Reanicia l'aplicación pa que funcione afayadizamente!",
|
||||
"An error occured, URL might be invalid or unsupported.": "Asocedió un fallu, quiciabes la URL nun seya válida o nun se sofite.",
|
||||
"Top tracks": "Pistes destacaes",
|
||||
"Show all top tracks": "Amosar toles pistes destacaes",
|
||||
"Singles": "Singles",
|
||||
"Album:": "Álbum:",
|
||||
"Artists:": "Artistes:",
|
||||
"Yes": "Sí",
|
||||
"No": "Non",
|
||||
"Download Filename": "Nome de les descargues",
|
||||
"Language": "Llingua",
|
||||
"Background Image": "Imaxe del fondu",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Introduz una URL o un camín absolutu. ALVERTENCIA: ¡Ha reaniciase l'aplicación!",
|
||||
"LGBT Mode": "Mou LGBT",
|
||||
"Native top bar": "Barra cimera nativa",
|
||||
"Requires restart of Freezer!": "¡Tienes de reaniciar Freezer!"
|
||||
}
|
|
@ -0,0 +1,171 @@
|
|||
{
|
||||
"Home": "Home",
|
||||
"Browse": "Browse",
|
||||
"Library": "Library",
|
||||
"Tracks": "Tracks",
|
||||
"Playlists": "Playlists",
|
||||
"Albums": "Albums",
|
||||
"Artists": "Artists",
|
||||
"More": "More",
|
||||
"Settings": "Settings",
|
||||
"Downloads": "Downloads",
|
||||
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
|
||||
"Play": "Play",
|
||||
"Add to library": "Add to library",
|
||||
"Download": "Download",
|
||||
"fans": "fans",
|
||||
"tracks": "tracks",
|
||||
"Quality": "Quality",
|
||||
"Estimated size:": "Estimated size:",
|
||||
"Start downloading": "Start downloading",
|
||||
"Cancel": "Cancel",
|
||||
"Stream logging is disabled!": "Stream logging is disabled!",
|
||||
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
|
||||
"History": "History",
|
||||
"Create new playlist": "Create new playlist",
|
||||
"TRACKS": "TRACKS",
|
||||
"Sort by": "Sort by",
|
||||
"Date Added": "Date Added",
|
||||
"Name (A-Z)": "Name (A-Z)",
|
||||
"Artist (A-Z)": "Artist (A-Z)",
|
||||
"Album (A-Z)": "Album (A-Z)",
|
||||
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
|
||||
"Create playlist": "Create playlist",
|
||||
"Create": "Create",
|
||||
"Add to playlist": "Add to playlist",
|
||||
"Create new": "Create new",
|
||||
"Remove": "Remove",
|
||||
"Play next": "Play next",
|
||||
"Add to queue": "Add to queue",
|
||||
"Remove from library": "Remove from library",
|
||||
"Remove from playlist": "Remove from playlist",
|
||||
"Play track mix": "Play track mix",
|
||||
"Go to": "Go to",
|
||||
"Track Mix": "Track Mix",
|
||||
"Duration": "Duration",
|
||||
"Released": "Released",
|
||||
"Disk": "Disk",
|
||||
"albums": "albums",
|
||||
"Play top": "Play top",
|
||||
"Radio": "Radio",
|
||||
"Show all albums": "Show all albums",
|
||||
"Show all singles": "Show all singles",
|
||||
"Show more": "Show more",
|
||||
"Downloaded": "Downloaded",
|
||||
"Queue": "Queue",
|
||||
"Total": "Total",
|
||||
"Stop": "Stop",
|
||||
"Start": "Start",
|
||||
"Show folder": "Show folder",
|
||||
"Clear queue": "Clear queue",
|
||||
"Playing from": "Playing from",
|
||||
"Info": "Info",
|
||||
"Lyrics": "Lyrics",
|
||||
"Track number": "Track number",
|
||||
"Disk number": "Disk number",
|
||||
"Explicit": "Explicit",
|
||||
"Source": "Source",
|
||||
"ID": "ID",
|
||||
"Error logging in!": "Error logging in!",
|
||||
"Please try again later, or try another account.": "Please try again later, or try another account.",
|
||||
"Logout": "Logout",
|
||||
"Login using browser": "Login using browser",
|
||||
"Please login using your Deezer account:": "Please login using your Deezer account:",
|
||||
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
|
||||
"ARL/Token": "ARL/Token",
|
||||
"Login": "Login",
|
||||
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
|
||||
"Only in Electron version!": "Only in Electron version!",
|
||||
"Search results for:": "Search results for:",
|
||||
"Error loading data!": "Error loading data!",
|
||||
"Try again later!": "Try again later!",
|
||||
"Search": "Search",
|
||||
"Streaming Quality": "Streaming Quality",
|
||||
"Download Quality": "Download Quality",
|
||||
"Downloads Directory": "Downloads Directory",
|
||||
"Simultaneous downloads": "Simultaneous downloads",
|
||||
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
|
||||
"Show download dialog": "Show download dialog",
|
||||
"Create folders for artists": "Create folders for artists",
|
||||
"Create folders for albums": "Create folders for albums",
|
||||
"Download lyrics": "Download lyrics",
|
||||
"Variables": "Variables",
|
||||
"UI": "UI",
|
||||
"Show autocomplete in search": "Show autocomplete in search",
|
||||
"Integrations": "Integrations",
|
||||
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.",
|
||||
"Log track listens to Deezer": "Log track listens to Deezer",
|
||||
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
|
||||
"Login with LastFM": "Login with LastFM",
|
||||
"Disconnect LastFM": "Disconnect LastFM",
|
||||
"Requires restart to apply!": "Requires restart to apply!",
|
||||
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
|
||||
"Discord Rich Presence": "Discord Rich Presence",
|
||||
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
|
||||
"Discord Join Button": "Discord Join Button",
|
||||
"Other": "Other",
|
||||
"Minimize to tray": "Minimize to tray",
|
||||
"Don't minimize to tray": "Don't minimize to tray",
|
||||
"Close on exit": "Close on exit",
|
||||
"Settings saved!": "Settings saved!",
|
||||
"Available only in Electron version!": "Available only in Electron version!",
|
||||
"Crossfade (ms)": "Crossfade (ms)",
|
||||
"Select primary color": "Select primary color",
|
||||
"Light theme": "Light theme",
|
||||
"Create folders for playlists": "Create folders for playlists",
|
||||
"About": "About",
|
||||
"Links:": "Links:",
|
||||
"Telegram Releases": "Telegram Releases",
|
||||
"Telegram Group": "Telegram Group",
|
||||
"Discord": "Discord",
|
||||
"Telegram Android Group": "Telegram Android Group",
|
||||
"Credits:": "Credits:",
|
||||
"Agree": "Agree",
|
||||
"Dismiss": "Dismiss",
|
||||
"Added to playlist!": "Added to playlist!",
|
||||
"Added to library!": "Added to library!",
|
||||
"Removed from library!": "Removed from library!",
|
||||
"Removed from playlist!": "Removed from playlist!",
|
||||
"Playlist deleted!": "Playlist deleted!",
|
||||
"Delete": "Delete",
|
||||
"Are you sure you want to delete this playlist?": "Are you sure you want to delete this playlist?",
|
||||
"Force white tray icon": "Force white tray icon",
|
||||
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Force default (white) tray icon if theme incorrectly detected. Requires restart.",
|
||||
"Share": "Share",
|
||||
"Settings quality": "Settings quality",
|
||||
"Content language": "Content language",
|
||||
"Content country": "Content country",
|
||||
"Website": "Website",
|
||||
"Visit website": "Visit website",
|
||||
"New update available:": "New update available:",
|
||||
"Shuffle": "Shuffle",
|
||||
"Download album cover": "Download album cover",
|
||||
"Art Resolution": "Art Resolution",
|
||||
"Public": "Public",
|
||||
"Private": "Private",
|
||||
"Collaborative": "Collaborative",
|
||||
"Edit playlist": "Edit playlist",
|
||||
"Save": "Save",
|
||||
"Edit": "Edit",
|
||||
"Importer": "Importer",
|
||||
"Enter URL": "Enter URL",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "Currently only Spotify is supported and limited to 100 tracks.",
|
||||
"Import into playlist": "Import into playlist",
|
||||
"Keep sidebar open": "Keep sidebar open",
|
||||
"WARNING: Might require reload to work properly!": "WARNING: Might require reload to work properly!",
|
||||
"An error occured, URL might be invalid or unsupported.": "An error occured, URL might be invalid or unsupported.",
|
||||
"Top tracks": "Top tracks",
|
||||
"Show all top tracks": "Show all top tracks",
|
||||
"Singles": "Singles",
|
||||
"Album:": "Album:",
|
||||
"Artists:": "Artists:",
|
||||
"Yes": "Yes",
|
||||
"No": "No",
|
||||
"Download Filename": "Download Filename",
|
||||
"Language": "Language",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -137,5 +137,35 @@
|
|||
"Content country": "Content country",
|
||||
"Website": "Website",
|
||||
"Visit website": "Visit website",
|
||||
"New update available:": "New update available:"
|
||||
"New update available:": "New update available:",
|
||||
"Shuffle": "Shuffle",
|
||||
"Download album cover": "Download album cover",
|
||||
"Art Resolution": "Art Resolution",
|
||||
"Public": "Public",
|
||||
"Private": "Private",
|
||||
"Collaborative": "Collaborative",
|
||||
"Edit playlist": "Edit playlist",
|
||||
"Save": "Save",
|
||||
"Edit": "Edit",
|
||||
"Importer": "Importer",
|
||||
"Enter URL": "Enter URL",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "Currently only Spotify is supported and limited to 100 tracks.",
|
||||
"Import into playlist": "Import into playlist",
|
||||
"Keep sidebar open": "Keep sidebar open",
|
||||
"WARNING: Might require reload to work properly!": "WARNING: Might require reload to work properly!",
|
||||
"An error occured, URL might be invalid or unsupported.": "An error occured, URL might be invalid or unsupported.",
|
||||
"Top tracks": "Top tracks",
|
||||
"Show all top tracks": "Show all top tracks",
|
||||
"Singles": "Singles",
|
||||
"Album:": "Album:",
|
||||
"Artists:": "Artists:",
|
||||
"Yes": "Yes",
|
||||
"No": "No",
|
||||
"Download Filename": "Download Filename",
|
||||
"Language": "Language",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -1,15 +1,15 @@
|
|||
{
|
||||
"Home": "Start",
|
||||
"Home": "Startseite",
|
||||
"Browse": "Durchsuchen",
|
||||
"Library": "Mediathek",
|
||||
"Tracks": "Songs",
|
||||
"Playlists": "Playlists",
|
||||
"Albums": "Alben",
|
||||
"Artists": "Künstler*innen",
|
||||
"Artists": "Künstler",
|
||||
"More": "Mehr",
|
||||
"Settings": "Einstellungen",
|
||||
"Downloads": "Downloads",
|
||||
"Search or paste Deezer URL. Use / to quickly focus.": "Suche oder füge eine Deezer URL ein. Benutze \"/\" um schnell zu fokussieren.",
|
||||
"Search or paste Deezer URL. Use / to quickly focus.": "Suchen oder Deezer URL einfügen. Benutze \"/\", um schnell zu fokussieren.",
|
||||
"Play": "Wiedergeben",
|
||||
"Add to library": "Zur Mediathek hinzufügen",
|
||||
"Download": "Download",
|
||||
|
@ -27,7 +27,7 @@
|
|||
"Sort by": "Sortieren nach",
|
||||
"Date Added": "Hinzugefügt am",
|
||||
"Name (A-Z)": "Name (A-Z)",
|
||||
"Artist (A-Z)": "Künstler*innen (A-Z)",
|
||||
"Artist (A-Z)": "Künstler (A-Z)",
|
||||
"Album (A-Z)": "Album (A-Z)",
|
||||
"Error loading lyrics or lyrics not found!": "Fehler beim Laden der Songtexte bzw. Songtexte nicht gefunden!",
|
||||
"Create playlist": "Playlist erstellen",
|
||||
|
@ -54,7 +54,7 @@
|
|||
"Downloaded": "Heruntergeladen",
|
||||
"Queue": "Wiedergabeliste",
|
||||
"Total": "Gesamt",
|
||||
"Stop": "Stop",
|
||||
"Stop": "Stopp",
|
||||
"Start": "Start",
|
||||
"Show folder": "Ordner anzeigen",
|
||||
"Clear queue": "Warteschleife löschen",
|
||||
|
@ -66,12 +66,12 @@
|
|||
"Explicit": "Explizit",
|
||||
"Source": "Quelle",
|
||||
"ID": "ID",
|
||||
"Error logging in!": "Fehler beim einloggen!",
|
||||
"Error logging in!": "Fehler beim Einloggen!",
|
||||
"Please try again later, or try another account.": "Bitte versuche es später noch einmal oder versuche es mit einem anderen Konto.",
|
||||
"Logout": "Abmelden",
|
||||
"Login using browser": "Anmeldung über Browser",
|
||||
"Please login using your Deezer account:": "Bitte melde dich mit deinem Deezer-Konto an:",
|
||||
"...or paste your ARL/Token below:": "...oder füge dein ARL/Token unten ein:",
|
||||
"...or paste your ARL/Token below:": "...oder füge deine ARL/deinen Token unten ein:",
|
||||
"ARL/Token": "ARL/Token",
|
||||
"Login": "Anmeldung",
|
||||
"By using this program, you disagree with Deezer's ToS.": "Durch die Verwendung dieses Programms lehnst du die Nutzungsbedingungen von Deezer ab.",
|
||||
|
@ -86,26 +86,26 @@
|
|||
"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*innen erstellen",
|
||||
"Create folders for artists": "Ordner für Künstler erstellen",
|
||||
"Create folders for albums": "Ordner für Alben erstellen",
|
||||
"Download lyrics": "Download Lyrics",
|
||||
"Download lyrics": "Lyrics herunterladen",
|
||||
"Variables": "Variablen",
|
||||
"UI": "Benutzeroberfläche",
|
||||
"Show autocomplete in search": "Auto-Vervollständigung in der Suche anzeigen",
|
||||
"Integrations": "Integrationen",
|
||||
"This allows listening history, flow and recommendations to work properly.": "Dies ermöglicht, dass der Wiedergabeverlauf, Flow und Empfehlungen korrekt funktionieren.",
|
||||
"Log track listens to Deezer": "Prokotolliere gehörte Titel auf Deezer",
|
||||
"Log track listens to Deezer": "Prokotolliere gehörte Songs auf Deezer",
|
||||
"Connect your LastFM account to allow scrobbling.": "Verbinde dein LastFM-Konto, um das Scrobbling zu erlauben.",
|
||||
"Login with LastFM": "Anmelden mit LastFM",
|
||||
"Disconnect LastFM": "Disconnect LastFM",
|
||||
"Disconnect LastFM": "LastFM trennen",
|
||||
"Requires restart to apply!": "Erfordert einen Neustart der App!",
|
||||
"Enable Discord Rich Presence, requires restart to toggle!": "Discord Rich Presence aktivieren, erfordert einen Neustart zum Umschalten!",
|
||||
"Discord Rich Presence": "Discord Rich Presence",
|
||||
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Aktiviere Discord Join für die Synchronisierung von Titel, benötigt einen Neustart zum Umschalten!",
|
||||
"Discord Join Button": "Discord Join Button",
|
||||
"Other": "Andere",
|
||||
"Minimize to tray": "In Statusleiste minimieren",
|
||||
"Don't minimize to tray": "Nicht in Statusleiste minimieren",
|
||||
"Minimize to tray": "In die Statusleiste minimieren",
|
||||
"Don't minimize to tray": "Nicht in die Statusleiste minimieren",
|
||||
"Close on exit": "Beim Beenden schließen",
|
||||
"Settings saved!": "Einstellungen gespeichert!",
|
||||
"Available only in Electron version!": "Nur in der Electron-Version verfügbar!",
|
||||
|
@ -116,14 +116,14 @@
|
|||
"About": "Über",
|
||||
"Links:": "Links:",
|
||||
"Telegram Releases": "Telegram Veröffentlichungen",
|
||||
"Telegram Group": "Telegram Gruppe",
|
||||
"Telegram Group": "Telegram-Gruppe",
|
||||
"Discord": "Discord",
|
||||
"Telegram Android Group": "Telegram Android-Gruppe",
|
||||
"Credits:": "Credits:",
|
||||
"Agree": "Einverstanden",
|
||||
"Dismiss": "Verwerfen",
|
||||
"Added to playlist!": "Zur Playlist hinzugefügt!",
|
||||
"Added to library!": "Zur Mediathek hinzufügt!",
|
||||
"Added to library!": "Zur Mediathek hinzugefügt!",
|
||||
"Removed from library!": "Aus der Mediathek entfernt!",
|
||||
"Removed from playlist!": "Aus der Playlist entfernt!",
|
||||
"Playlist deleted!": "Playlist gelöscht!",
|
||||
|
@ -134,8 +134,38 @@
|
|||
"Share": "Teilen",
|
||||
"Settings quality": "Audioqualität-Einstellungen",
|
||||
"Content language": "Sprache der Inhalte",
|
||||
"Content country": "Land des Inhalts",
|
||||
"Content country": "Land der Inhalte",
|
||||
"Website": "Webseite",
|
||||
"Visit website": "Webseite besuchen",
|
||||
"New update available:": "Neues Update verfügbar:"
|
||||
"New update available:": "Neues Update verfügbar:",
|
||||
"Shuffle": "Zufällige Wiedergabe",
|
||||
"Download album cover": "Albumcover herunterladen",
|
||||
"Art Resolution": "Auflösung der Albumcover",
|
||||
"Public": "Öffentlich",
|
||||
"Private": "Privat",
|
||||
"Collaborative": "Zusammen",
|
||||
"Edit playlist": "Playlist bearbeiten",
|
||||
"Save": "Speichern",
|
||||
"Edit": "Bearbeiten",
|
||||
"Importer": "Importierer",
|
||||
"Enter URL": "URL eingeben",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "Derzeit wird nur Spotify unterstützt und ist auf 100 Tracks beschränkt.",
|
||||
"Import into playlist": "In Playlist importieren",
|
||||
"Keep sidebar open": "Sidebar offen lassen",
|
||||
"WARNING: Might require reload to work properly!": "WARNUNG: Eventuell muss neu geladen werden, um richtig zu funktionieren!",
|
||||
"An error occured, URL might be invalid or unsupported.": "Ein Fehler ist aufgetreten, die URL ist ungültig oder wird nicht unterstützt.",
|
||||
"Top tracks": "Top-Titel",
|
||||
"Show all top tracks": "Zeige alle Top-Titel",
|
||||
"Singles": "Singles",
|
||||
"Album:": "Album:",
|
||||
"Artists:": "Künstler:",
|
||||
"Yes": "Ja",
|
||||
"No": "Nein",
|
||||
"Download Filename": "Dateiname herunterladen",
|
||||
"Language": "Sprache",
|
||||
"Background Image": "Hintergrundbild",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "URL oder absoluten Pfad eingeben. WARNUNG: Neuladen erforderlich!",
|
||||
"LGBT Mode": "LGBT-Modus",
|
||||
"Native top bar": "System-Titelleiste verwenden",
|
||||
"Requires restart of Freezer!": "Benötigt Neustart von Freezer!"
|
||||
}
|
|
@ -4,7 +4,7 @@
|
|||
"Library": "Βιβλιοθήκη",
|
||||
"Tracks": "Κομμάτια",
|
||||
"Playlists": "Λίστες αναπαραγωγής",
|
||||
"Albums": "Album",
|
||||
"Albums": "Άλμπουμ",
|
||||
"Artists": "Καλλιτέχνες",
|
||||
"More": "Περισσότερα",
|
||||
"Settings": "Ρυθμίσεις",
|
||||
|
@ -28,7 +28,7 @@
|
|||
"Date Added": "Ημερομηνία Προσθήκης",
|
||||
"Name (A-Z)": "Όνομα (Α-Ω)",
|
||||
"Artist (A-Z)": "Καλλιτέχνης (Α-Ω)",
|
||||
"Album (A-Z)": "Album (Α-Ω)",
|
||||
"Album (A-Z)": "Άλμπουμ (Α-Ω)",
|
||||
"Error loading lyrics or lyrics not found!": "Σφάλμα κατά τη φόρτωση στίχων ή αδυναμία εύρεσης στίχων!",
|
||||
"Create playlist": "Δημιουργία λίστας αναπαραγωγής",
|
||||
"Create": "Δημιουργία",
|
||||
|
@ -45,10 +45,10 @@
|
|||
"Duration": "Διάρκεια",
|
||||
"Released": "Κυκλοφόρησε",
|
||||
"Disk": "Δίσκος",
|
||||
"albums": "album",
|
||||
"albums": "άλμπουμ",
|
||||
"Play top": "Αναπαραγωγή κορυφαίου",
|
||||
"Radio": "Ραδιόφωνο",
|
||||
"Show all albums": "Εμφάνιση όλων των album",
|
||||
"Show all albums": "Εμφάνιση όλων των άλμπουμ",
|
||||
"Show all singles": "Εμφάνιση όλων των single",
|
||||
"Show more": "Εμφάνιση περισσότερων",
|
||||
"Downloaded": "Ελήφθησαν",
|
||||
|
@ -87,7 +87,7 @@
|
|||
"Always show download confirm dialog before downloading.": "Να εμφανίζεται πάντα το παράθυρο διαλόγου επιβεβαίωσης πριν από τη λήψη.",
|
||||
"Show download dialog": "Εμφάνιση παραθύρου διαλόγου επιβεβαίωσης",
|
||||
"Create folders for artists": "Δημιουργία φακέλου για καλλιτέχνη",
|
||||
"Create folders for albums": "Δημιουργία φακέλων για album",
|
||||
"Create folders for albums": "Δημιουργία φακέλων για άλμπουμ",
|
||||
"Download lyrics": "Λήψη στίχων",
|
||||
"Variables": "Μεταβλητές",
|
||||
"UI": "Περιβάλλον Χρήστη",
|
||||
|
@ -137,5 +137,35 @@
|
|||
"Content country": "Χώρα περιεχομένου",
|
||||
"Website": "Ιστοσελίδα",
|
||||
"Visit website": "Μετάβαση στην Ιστοσελίδα",
|
||||
"New update available:": "Διαθέσιμη νέα ενημέρωση:"
|
||||
"New update available:": "Διαθέσιμη νέα ενημέρωση:",
|
||||
"Shuffle": "Ανάμιξη",
|
||||
"Download album cover": "Λήψη εξώφυλλου άλμπουμ",
|
||||
"Art Resolution": "Ανάλυση εξώφυλλου",
|
||||
"Public": "Δημόσιο",
|
||||
"Private": "Ιδιωτικό",
|
||||
"Collaborative": "Συνεργατικό",
|
||||
"Edit playlist": "Επεξεργασία λίστας αναπαραγωγής",
|
||||
"Save": "Αποθήκευση",
|
||||
"Edit": "Επεξεργασία",
|
||||
"Importer": "Εισαγωγέας",
|
||||
"Enter URL": "Εισαγωγή URL",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "Επί του παρόντος, υποστηρίζεται μόνο το Spotify και περιορίζεται σε 100 κομμάτια.",
|
||||
"Import into playlist": "Εισαγωγή στη λίστα αναπαραγωγής",
|
||||
"Keep sidebar open": "Κρατήστε την πλαϊνή μπάρα ανοιχτή",
|
||||
"WARNING: Might require reload to work properly!": "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Μπορεί να χρειαστεί επαναφόρτωση για να λειτουργήσει σωστά!",
|
||||
"An error occured, URL might be invalid or unsupported.": "Παρουσιάστηκε σφάλμα, το URL ενδέχεται να μην είναι έγκυρο ή να μην υποστηρίζεται.",
|
||||
"Top tracks": "Κορυφαία κομμάτια",
|
||||
"Show all top tracks": "Εμφάνιση όλων των κορυφαίων κομματιών",
|
||||
"Singles": "Σίνγκλ",
|
||||
"Album:": "Άλμπουμ:",
|
||||
"Artists:": "Καλλιτέχνες:",
|
||||
"Yes": "Ναι",
|
||||
"No": "Όχι",
|
||||
"Download Filename": "Όνομα Αρχείου Λήψης",
|
||||
"Language": "Γλώσσα",
|
||||
"Background Image": "Εικόνα Φόντου",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Εισάγετε URL ή απόλυτη διαδρομή. ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Απαιτείται επαναφόρτωση!",
|
||||
"LGBT Mode": "Λειτουργία LGBT",
|
||||
"Native top bar": "Εγγενής επάνω γραμμή",
|
||||
"Requires restart of Freezer!": "Απαιτεί επανεκκίνηση του Freezer!"
|
||||
}
|
|
@ -153,5 +153,19 @@
|
|||
"Import into playlist": "Import into playlist",
|
||||
"Keep sidebar open": "Keep sidebar open",
|
||||
"WARNING: Might require reload to work properly!": "WARNING: Might require reload to work properly!",
|
||||
"An error occured, URL might be invalid or unsupported.": "An error occured, URL might be invalid or unsupported."
|
||||
"An error occured, URL might be invalid or unsupported.": "An error occured, URL might be invalid or unsupported.",
|
||||
"Top tracks": "Top tracks",
|
||||
"Show all top tracks": "Show all top tracks",
|
||||
"Singles": "Singles",
|
||||
"Album:": "Album:",
|
||||
"Artists:": "Artists:",
|
||||
"Yes": "Yes",
|
||||
"No": "No",
|
||||
"Download Filename": "Download Filename",
|
||||
"Language": "Language",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -137,5 +137,35 @@
|
|||
"Content country": "País del contenido",
|
||||
"Website": "Sitio Web",
|
||||
"Visit website": "Visita la página web",
|
||||
"New update available:": "Nueva actualización disponible:"
|
||||
"New update available:": "Nueva actualización disponible:",
|
||||
"Shuffle": "Aleatorio",
|
||||
"Download album cover": "Descargar portada del álbum",
|
||||
"Art Resolution": "Resolución de Arte",
|
||||
"Public": "Público",
|
||||
"Private": "Privado",
|
||||
"Collaborative": "Colaborativo",
|
||||
"Edit playlist": "Editar lista de reproducción",
|
||||
"Save": "Guardar",
|
||||
"Edit": "Editar",
|
||||
"Importer": "Importador",
|
||||
"Enter URL": "Introducir URL",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "Actualmente solo Spotify está soportado y limitado a 100 pistas.",
|
||||
"Import into playlist": "Importar a lista de reproducción",
|
||||
"Keep sidebar open": "Mantener barra lateral abierta",
|
||||
"WARNING: Might require reload to work properly!": "ADVERTENCIA: ¡Puede requerir recarga para trabajar correctamente!",
|
||||
"An error occured, URL might be invalid or unsupported.": "Ocurrió un error, la URL puede ser inválida o no soportada.",
|
||||
"Top tracks": "Mejores canciones",
|
||||
"Show all top tracks": "Mostrar las mejores canciones",
|
||||
"Singles": "Sencillos",
|
||||
"Album:": "Álbum:",
|
||||
"Artists:": "Artistas:",
|
||||
"Yes": "Sí",
|
||||
"No": "No",
|
||||
"Download Filename": "Nombre del archivo de descarga",
|
||||
"Language": "Idioma",
|
||||
"Background Image": "Imagen de fondo",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Introducir la URL o ruta absoluta. ADVERTENCIA: ¡Necesita reiniciar!",
|
||||
"LGBT Mode": "Modo LGBT",
|
||||
"Native top bar": "Barra superior nativa",
|
||||
"Requires restart of Freezer!": "¡Se necesita reiniciar Freezer!"
|
||||
}
|
|
@ -1,141 +1,171 @@
|
|||
{
|
||||
"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:",
|
||||
"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)": "نام (A - Z)",
|
||||
"Artist (A-Z)": "صاحب آثار (A-Z)",
|
||||
"Album (A-Z)": "آلبوم (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/Token پایین:",
|
||||
"ARL/Token": "ARL/Token",
|
||||
"Login": "Login",
|
||||
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
|
||||
"Only in Electron version!": "Only in Electron version!",
|
||||
"Search results for:": "Search results for:",
|
||||
"Error loading data!": "Error loading data!",
|
||||
"Try again later!": "Try again later!",
|
||||
"Search": "Search",
|
||||
"Streaming Quality": "Streaming Quality",
|
||||
"Download Quality": "Download Quality",
|
||||
"Downloads Directory": "Downloads Directory",
|
||||
"Simultaneous downloads": "Simultaneous downloads",
|
||||
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
|
||||
"Show download dialog": "Show download dialog",
|
||||
"Create folders for artists": "Create folders for artists",
|
||||
"Create folders for albums": "Create folders for albums",
|
||||
"Download lyrics": "Download lyrics",
|
||||
"Variables": "Variables",
|
||||
"UI": "UI",
|
||||
"Show autocomplete in search": "Show autocomplete in search",
|
||||
"Integrations": "Integrations",
|
||||
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.",
|
||||
"Log track listens to Deezer": "Log track listens to Deezer",
|
||||
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
|
||||
"Login with LastFM": "Login with LastFM",
|
||||
"Disconnect LastFM": "Disconnect LastFM",
|
||||
"Requires restart to apply!": "Requires restart to apply!",
|
||||
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
|
||||
"Discord Rich Presence": "Discord Rich Presence",
|
||||
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
|
||||
"Discord Join Button": "Discord Join Button",
|
||||
"Other": "Other",
|
||||
"Minimize to tray": "Minimize to tray",
|
||||
"Don't minimize to tray": "Don't minimize to tray",
|
||||
"Close on exit": "Close on exit",
|
||||
"Settings saved!": "Settings saved!",
|
||||
"Available only in Electron version!": "Available only in Electron version!",
|
||||
"Crossfade (ms)": "Crossfade (ms)",
|
||||
"Select primary color": "Select primary color",
|
||||
"Light theme": "Light theme",
|
||||
"Create folders for playlists": "Create folders for playlists",
|
||||
"About": "About",
|
||||
"Links:": "Links:",
|
||||
"Telegram Releases": "Telegram Releases",
|
||||
"Telegram Group": "Telegram Group",
|
||||
"Discord": "Discord",
|
||||
"Telegram Android Group": "Telegram Android Group",
|
||||
"Credits:": "Credits:",
|
||||
"Agree": "Agree",
|
||||
"Dismiss": "Dismiss",
|
||||
"Added to playlist!": "Added to playlist!",
|
||||
"Added to library!": "Added to library!",
|
||||
"Removed from library!": "Removed from library!",
|
||||
"Removed from playlist!": "Removed from playlist!",
|
||||
"Playlist deleted!": "Playlist deleted!",
|
||||
"Delete": "Delete",
|
||||
"Are you sure you want to delete this playlist?": "Are you sure you want to delete this playlist?",
|
||||
"Force white tray icon": "Force white tray icon",
|
||||
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Force default (white) tray icon if theme incorrectly detected. Requires restart.",
|
||||
"Share": "Share",
|
||||
"Settings quality": "Settings quality",
|
||||
"Content language": "Content language",
|
||||
"Content country": "Content country",
|
||||
"Website": "Website",
|
||||
"Visit website": "Visit website",
|
||||
"New update available:": "New update available:"
|
||||
"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": "بارگیری اشعار",
|
||||
"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.": "برای اسکراب کردن قطعه ها به اکانت لست اف ام متصل شوید.",
|
||||
"Login with LastFM": "وارد شدن به حساب لست اف ام",
|
||||
"Disconnect 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": "کوچک کردن به Tray",
|
||||
"Don't minimize to tray": "کوچک نکردن به Tray",
|
||||
"Close on exit": "بستن و خروج",
|
||||
"Settings saved!": "تنظیمات ذخیره شد!",
|
||||
"Available only in Electron version!": "فقط در نسخه ی الکترون موجود است!",
|
||||
"Crossfade (ms)": "پخش بعدی قبل از اتمام فعلی (میلی ثانیه)",
|
||||
"Select primary color": "رنگ اصلی را انتخاب کنید",
|
||||
"Light theme": "پوسته روشن",
|
||||
"Create folders for playlists": "برای لیست پخش پوشه بساز",
|
||||
"About": "درباره",
|
||||
"Links:": "پیوندها:",
|
||||
"Telegram Releases": "عریضه های تلگرامی",
|
||||
"Telegram Group": "گروه تلگرامی",
|
||||
"Discord": "دیسکورد",
|
||||
"Telegram Android Group": "گروه تلگرامی اندرویید",
|
||||
"Credits:": "سازندگان:",
|
||||
"Agree": "پذیرش",
|
||||
"Dismiss": "رد",
|
||||
"Added to playlist!": "به لیست پخش اضافه شد!",
|
||||
"Added to library!": "به مجموعه اضافه شد!",
|
||||
"Removed from library!": "از مجموعه حذف شد!",
|
||||
"Removed from playlist!": "از لیست پخش حذف شد!",
|
||||
"Playlist deleted!": "لیست پخش حذف شد!",
|
||||
"Delete": "حذف",
|
||||
"Are you sure you want to delete this playlist?": "مطمئنید که می خواهید این لیست پخش را حذف کنید?",
|
||||
"Force white tray icon": "اجبار نمایش آیکون روشن در tray",
|
||||
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "اجبار آیکون پیشفرض (روشن) در tray زمانی که پوسته اشتباه به نمایش درآمد، نیازمند اجرای دوباره.",
|
||||
"Share": "اشتراک",
|
||||
"Settings quality": "تنظیمات پیشفرض",
|
||||
"Content language": "زبان محتوی",
|
||||
"Content country": "کشور محتوی",
|
||||
"Website": "وب سایت",
|
||||
"Visit website": "بازدید از وبگاه",
|
||||
"New update available:": "به روز رسانی جدید در دسترس است:",
|
||||
"Shuffle": "پخش تصادفی",
|
||||
"Download album cover": "دانلود تصویر آلبوم",
|
||||
"Art Resolution": "وضوح تصویر",
|
||||
"Public": "عمومی",
|
||||
"Private": "خصوصی",
|
||||
"Collaborative": "چند همکاری",
|
||||
"Edit playlist": "ویرایش لیست پخش",
|
||||
"Save": "ذخیره",
|
||||
"Edit": "ویرایش",
|
||||
"Importer": "وارد کننده",
|
||||
"Enter URL": "وارد کردن لینک",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "در حال حاظر فقط اسپاتیفای با محدودیت 100 قطعه ساپورت میشود.",
|
||||
"Import into playlist": "وارد کردن به لیست پخش",
|
||||
"Keep sidebar open": "نوار کناری را باز نگه دار",
|
||||
"WARNING: Might require reload to work properly!": "اخطار: برای کارکرد مناسب نیازمند ریستارت است!",
|
||||
"An error occured, URL might be invalid or unsupported.": "خطا رخ داد، لینک وارد شده اشتباه است یا پشتیبانی نمیشود.",
|
||||
"Top tracks": "ترانه های برتر",
|
||||
"Show all top tracks": "نمایش همه ترانه های برتر",
|
||||
"Singles": "تکی ها",
|
||||
"Album:": "آلبوم:",
|
||||
"Artists:": "صاحب آثار:",
|
||||
"Yes": "بله",
|
||||
"No": "نه",
|
||||
"Download Filename": "بارگیری اسم فایل",
|
||||
"Language": "زبان",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -137,5 +137,35 @@
|
|||
"Content country": "Bansa ng nilalaman",
|
||||
"Website": "Website",
|
||||
"Visit website": "Bisitahin ang website",
|
||||
"New update available:": "May bagong update na:"
|
||||
"New update available:": "May bagong update na:",
|
||||
"Shuffle": "Paghaluin",
|
||||
"Download album cover": "Download album cover",
|
||||
"Art Resolution": "Art Resolution",
|
||||
"Public": "Public",
|
||||
"Private": "Private",
|
||||
"Collaborative": "Collaborative",
|
||||
"Edit playlist": "Edit playlist",
|
||||
"Save": "Save",
|
||||
"Edit": "Edit",
|
||||
"Importer": "Importer",
|
||||
"Enter URL": "Enter URL",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "Currently only Spotify is supported and limited to 100 tracks.",
|
||||
"Import into playlist": "Import into playlist",
|
||||
"Keep sidebar open": "Keep sidebar open",
|
||||
"WARNING: Might require reload to work properly!": "WARNING: Might require reload to work properly!",
|
||||
"An error occured, URL might be invalid or unsupported.": "An error occured, URL might be invalid or unsupported.",
|
||||
"Top tracks": "Patok na mga kanta",
|
||||
"Show all top tracks": "Ipakita lahat ng mga kanta",
|
||||
"Singles": "Singles",
|
||||
"Album:": "Album:",
|
||||
"Artists:": "Artists:",
|
||||
"Yes": "Oo",
|
||||
"No": "Hindi",
|
||||
"Download Filename": "Download Filename",
|
||||
"Language": "Wika",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -137,5 +137,35 @@
|
|||
"Content country": "Pays du contenu",
|
||||
"Website": "Site internet",
|
||||
"Visit website": "Visiter le site internet",
|
||||
"New update available:": "Nouvelle mise à jour disponible :"
|
||||
"New update available:": "Nouvelle mise à jour disponible :",
|
||||
"Shuffle": "Mode aléatoire",
|
||||
"Download album cover": "Télécharger la pochette de l'album",
|
||||
"Art Resolution": "Résolution",
|
||||
"Public": "Publique",
|
||||
"Private": "Privée",
|
||||
"Collaborative": "Collaborative",
|
||||
"Edit playlist": "Editer la playlist",
|
||||
"Save": "Enregistrer",
|
||||
"Edit": "Éditer",
|
||||
"Importer": "Importer",
|
||||
"Enter URL": "Entrer l'URL",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "Actuellement, seul Spotify est pris en charge et limité à 100 titres.",
|
||||
"Import into playlist": "Importer dans la playlist",
|
||||
"Keep sidebar open": "Garder le panneau latéral ouvert",
|
||||
"WARNING: Might require reload to work properly!": "AVERTISSEMENT : Il peut être nécessaire de redémarrer pour fonctionner correctement !",
|
||||
"An error occured, URL might be invalid or unsupported.": "Une erreur est survenue, l'URL est peut-être invalide ou non prise en charge.",
|
||||
"Top tracks": "Titres populaires",
|
||||
"Show all top tracks": "Afficher tous les titres populaires",
|
||||
"Singles": "Singles",
|
||||
"Album:": "Album :",
|
||||
"Artists:": "Artistes :",
|
||||
"Yes": "Oui",
|
||||
"No": "Non",
|
||||
"Download Filename": "Nom du fichier à télécharger",
|
||||
"Language": "Langue",
|
||||
"Background Image": "Image d'arrière-plan",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Entrez l'URL ou le chemin absolu. ATTENTION : Nécessite un redémarrage !",
|
||||
"LGBT Mode": "Mode LGBT",
|
||||
"Native top bar": "Barre supérieure native",
|
||||
"Requires restart of Freezer!": "Nécessite le redémarrage de Freezer !"
|
||||
}
|
|
@ -1,141 +1,171 @@
|
|||
{
|
||||
"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:",
|
||||
"Home": "מסך הבית",
|
||||
"Browse": "חיפוש",
|
||||
"Library": "ספרייה",
|
||||
"Tracks": "רצועות",
|
||||
"Playlists": "רשימות השמעה",
|
||||
"Albums": "אלבומים",
|
||||
"Artists": "אמנים",
|
||||
"More": "עוד",
|
||||
"Settings": "הגדרות",
|
||||
"Downloads": "הורדות",
|
||||
"Search or paste Deezer URL. Use / to quickly focus.": "חפש או הדבק קישור מ־Deezer. השתמש ב־\" / \" להתמקדות מהירה.",
|
||||
"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": "נגן 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:": "בבקשה התחבר/י באמצעות חשבון ה־Deezer שלך:",
|
||||
"...or paste your ARL/Token below:": "...או הדבק/י את ה־ARL/Token שלך כאן:",
|
||||
"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!",
|
||||
"Login": "התחברות",
|
||||
"By using this program, you disagree with Deezer's ToS.": "בשימוש בתוכנה זו, את/ה לא מסכימ/ה עם תנאי השירות של Deezer.",
|
||||
"Only in Electron version!": "רק בגרסת Electron!",
|
||||
"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": "הורד קובץ מילים",
|
||||
"Variables": "משתנים",
|
||||
"UI": "ממשק",
|
||||
"Show autocomplete in search": "הצג השלמה אוטומטית בחיפוש",
|
||||
"Integrations": "שילובים",
|
||||
"This allows listening history, flow and recommendations to work properly.": "מאפשר להיסטוריית ההשמעות, הזרימה וההמלצות לעבוד כראוי.",
|
||||
"Log track listens to Deezer": "רישומי השמעות של רצועות ב־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, מצריך הפעלה מחדש!",
|
||||
"Discord Rich Presence": "Discord Rich Presence",
|
||||
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
|
||||
"Discord Join Button": "Discord Join Button",
|
||||
"Other": "Other",
|
||||
"Minimize to tray": "Minimize to tray",
|
||||
"Don't minimize to tray": "Don't minimize to tray",
|
||||
"Close on exit": "Close on exit",
|
||||
"Settings saved!": "Settings saved!",
|
||||
"Available only in Electron version!": "Available only in Electron version!",
|
||||
"Crossfade (ms)": "Crossfade (ms)",
|
||||
"Select primary color": "Select primary color",
|
||||
"Light theme": "Light theme",
|
||||
"Create folders for playlists": "Create folders for playlists",
|
||||
"About": "About",
|
||||
"Links:": "Links:",
|
||||
"Telegram Releases": "Telegram Releases",
|
||||
"Telegram Group": "Telegram Group",
|
||||
"Enable Discord join button for syncing tracks, requires restart to toggle!": "אפשר את כפתור ההצטרפות של דיסקורד למטרת סנכרון רצונות. מצריך הפעלה מחדש!",
|
||||
"Discord Join Button": "כפתור הצטרפות של Discord",
|
||||
"Other": "אחר",
|
||||
"Minimize to tray": "מזער למגש המערכת",
|
||||
"Don't minimize to tray": "אל תמזער למגש המערכת",
|
||||
"Close on exit": "סגור ביציאה",
|
||||
"Settings saved!": "ההגדרות נשמרו בהצלחה!",
|
||||
"Available only in Electron version!": "זמין רק בגרסת Electron!",
|
||||
"Crossfade (ms)": "קרוספייד (מ\"ש)",
|
||||
"Select primary color": "בחר צבע ראשי",
|
||||
"Light theme": "ערכת נושא בהירה",
|
||||
"Create folders for playlists": "צור תיקייה עבור רשימות השמעה",
|
||||
"About": "אודות",
|
||||
"Links:": "קישורים:",
|
||||
"Telegram Releases": "שחרורי גרסאות ב־Telegram",
|
||||
"Telegram Group": "קבוצת Telegram",
|
||||
"Discord": "Discord",
|
||||
"Telegram Android Group": "Telegram Android Group",
|
||||
"Credits:": "Credits:",
|
||||
"Agree": "Agree",
|
||||
"Dismiss": "Dismiss",
|
||||
"Added to playlist!": "Added to playlist!",
|
||||
"Added to library!": "Added to library!",
|
||||
"Removed from library!": "Removed from library!",
|
||||
"Removed from playlist!": "Removed from playlist!",
|
||||
"Playlist deleted!": "Playlist deleted!",
|
||||
"Delete": "Delete",
|
||||
"Are you sure you want to delete this playlist?": "Are you sure you want to delete this playlist?",
|
||||
"Force white tray icon": "Force white tray icon",
|
||||
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Force default (white) tray icon if theme incorrectly detected. Requires restart.",
|
||||
"Share": "Share",
|
||||
"Settings quality": "Settings quality",
|
||||
"Content language": "Content language",
|
||||
"Content country": "Content country",
|
||||
"Website": "Website",
|
||||
"Visit website": "Visit website",
|
||||
"New update available:": "New update available:"
|
||||
"Telegram Android Group": "קבוצת Telegram למשתמשי Android",
|
||||
"Credits:": "תודות:",
|
||||
"Agree": "מסכים",
|
||||
"Dismiss": "התעלם",
|
||||
"Added to playlist!": "נוסף לרשימת ההשמעה!",
|
||||
"Added to library!": "נוסף לספרייה!",
|
||||
"Removed from library!": "הוסר מהספרייה!",
|
||||
"Removed from playlist!": "הוסר מרשימת ההשמעה!",
|
||||
"Playlist deleted!": "רשימת ההשמעה נמחקה!",
|
||||
"Delete": "מחיקה",
|
||||
"Are you sure you want to delete this playlist?": "האם את/ה בטוח/ה שברצונך למחוק את רשימת ההשמעה הזו?",
|
||||
"Force white tray icon": "הכרח ערכת נושא בהירה על סמל מגש המערכת",
|
||||
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "הכרח ברירת מחדל (לבן) על סמל מגש המערכת אם ערכת הנושא זוהתה באופן שגוי. מצריך הפעלה מחדש.",
|
||||
"Share": "שיתוף",
|
||||
"Settings quality": "הגדרות איכות",
|
||||
"Content language": "שפת תוכן",
|
||||
"Content country": "מדינת תוכן",
|
||||
"Website": "אתר",
|
||||
"Visit website": "בקר באתר",
|
||||
"New update available:": "גרסה חדשה זמינה:",
|
||||
"Shuffle": "אקראי",
|
||||
"Download album cover": "הורד עטיפת אלבום",
|
||||
"Art Resolution": "רזולוציה",
|
||||
"Public": "ציבורי",
|
||||
"Private": "פרטי",
|
||||
"Collaborative": "תורמים",
|
||||
"Edit playlist": "עריכת רשימת ההשמעה",
|
||||
"Save": "שמור",
|
||||
"Edit": "ערוך",
|
||||
"Importer": "מייבא רשימות השמעה",
|
||||
"Enter URL": "הזן קישור",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "כרגע, רק Spotify נתמך ומוגבל ל־100 רצועות.",
|
||||
"Import into playlist": "יבא לכדי רשימת השמעה",
|
||||
"Keep sidebar open": "השאר את הסרגל פתוח",
|
||||
"WARNING: Might require reload to work properly!": "אזהרה: מצריך טעינה מחדש כדי שיעבוד כראוי!",
|
||||
"An error occured, URL might be invalid or unsupported.": "שגיאה התרחשה, הקישור כנראה שגוי או לא נתמך.",
|
||||
"Top tracks": "רצועות מובילות",
|
||||
"Show all top tracks": "הראה את כל הרצועות המובילות",
|
||||
"Singles": "שירים",
|
||||
"Album:": "אלבום:",
|
||||
"Artists:": "אומנים:",
|
||||
"Yes": "כן",
|
||||
"No": "לא",
|
||||
"Download Filename": "הורד/י את שם הקובץ",
|
||||
"Language": "שפה",
|
||||
"Background Image": "תמונת רקע",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "הזן כתובת אתר או נתיב מוחלט. אזהרה: מחייב טעינה מחדש!",
|
||||
"LGBT Mode": "מצב להט\"ב",
|
||||
"Native top bar": "סרגל עליון מקומי",
|
||||
"Requires restart of Freezer!": "דורש הפעלה מחדש של Freezer!"
|
||||
}
|
|
@ -137,5 +137,35 @@
|
|||
"Content country": "Content country",
|
||||
"Website": "Website",
|
||||
"Visit website": "Visit website",
|
||||
"New update available:": "New update available:"
|
||||
"New update available:": "New update available:",
|
||||
"Shuffle": "Shuffle",
|
||||
"Download album cover": "Download album cover",
|
||||
"Art Resolution": "Art Resolution",
|
||||
"Public": "Public",
|
||||
"Private": "Private",
|
||||
"Collaborative": "Collaborative",
|
||||
"Edit playlist": "Edit playlist",
|
||||
"Save": "Save",
|
||||
"Edit": "Edit",
|
||||
"Importer": "Importer",
|
||||
"Enter URL": "Enter URL",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "Currently only Spotify is supported and limited to 100 tracks.",
|
||||
"Import into playlist": "Import into playlist",
|
||||
"Keep sidebar open": "Keep sidebar open",
|
||||
"WARNING: Might require reload to work properly!": "WARNING: Might require reload to work properly!",
|
||||
"An error occured, URL might be invalid or unsupported.": "An error occured, URL might be invalid or unsupported.",
|
||||
"Top tracks": "Top tracks",
|
||||
"Show all top tracks": "Show all top tracks",
|
||||
"Singles": "Singles",
|
||||
"Album:": "Album:",
|
||||
"Artists:": "Artists:",
|
||||
"Yes": "Yes",
|
||||
"No": "No",
|
||||
"Download Filename": "Download Filename",
|
||||
"Language": "Language",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -137,5 +137,35 @@
|
|||
"Content country": "Zemlja sadržaja",
|
||||
"Website": "Web stranica",
|
||||
"Visit website": "Posjeti web-stranicu",
|
||||
"New update available:": "Dostupno je novo ažuriranje:"
|
||||
"New update available:": "Dostupno je novo ažuriranje:",
|
||||
"Shuffle": "Nasumično",
|
||||
"Download album cover": "Skini naslovnicu albuma",
|
||||
"Art Resolution": "Rezolucija naslovnice",
|
||||
"Public": "Javno",
|
||||
"Private": "Privatno",
|
||||
"Collaborative": "Suradnja",
|
||||
"Edit playlist": "Uredi popis za reprodukciju",
|
||||
"Save": "Spremi",
|
||||
"Edit": "Uredi",
|
||||
"Importer": "Uvoznik",
|
||||
"Enter URL": "Unesite URL",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "Trenutno je podržan samo Spotify i limitiran na 100 pjesama.",
|
||||
"Import into playlist": "Uvezi u popis za reprodukciju",
|
||||
"Keep sidebar open": "Drži bočnu traku otvorenom",
|
||||
"WARNING: Might require reload to work properly!": "UPOZORENJE: Možda će zahtijevati ponovno pokretanje da bi radilo ispravno!",
|
||||
"An error occured, URL might be invalid or unsupported.": "Dogodila se pogreška, URL je neispravan ili nepodržan.",
|
||||
"Top tracks": "Najslušanije pjesme",
|
||||
"Show all top tracks": "Prikaži sve najslušanije pjesme",
|
||||
"Singles": "Singlovi",
|
||||
"Album:": "Album:",
|
||||
"Artists:": "Izvođači:",
|
||||
"Yes": "Da",
|
||||
"No": "Ne",
|
||||
"Download Filename": "Naziv datoteke preuzimanja",
|
||||
"Language": "Jezik",
|
||||
"Background Image": "Pozadinska slika",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Unesire URL ili apsolutnu putanju. UPOZORENJE: Zahtijeva ponovno pokretanje!",
|
||||
"LGBT Mode": "LGBT način",
|
||||
"Native top bar": "Izvorna gornja traka",
|
||||
"Requires restart of Freezer!": "Zahtijeva ponovno pokretanje Freezera!"
|
||||
}
|
|
@ -9,7 +9,7 @@
|
|||
"More": "Továbbiak",
|
||||
"Settings": "Beállítások",
|
||||
"Downloads": "Letöltések",
|
||||
"Search or paste Deezer URL. Use / to quickly focus.": "Keressen, vagy illesszen be Deezer URL linket. Használja a \"/\" karaktert, hogy gyorsan ősszpontosítson.",
|
||||
"Search or paste Deezer URL. Use / to quickly focus.": "Keressen, vagy illesszen be Deezer URL linket. Használja a \"/\" karaktert, hogy megfelelően rámutasson.",
|
||||
"Play": "Lejátszás",
|
||||
"Add to library": "Hozzáadás a könyvtárhoz",
|
||||
"Download": "Letöltés",
|
||||
|
@ -19,7 +19,7 @@
|
|||
"Estimated size:": "Becsült fájl méret:",
|
||||
"Start downloading": "Letöltés indítása",
|
||||
"Cancel": "Mégse",
|
||||
"Stream logging is disabled!": "Stream naplózás le van tiltva!",
|
||||
"Stream logging is disabled!": "A stream naplózás le van tiltva!",
|
||||
"Enable it in settings for history to work properly.": "Engedélyezze a beállításokban, hogy az előzmények megfelelően működjenek.",
|
||||
"History": "Előzmények",
|
||||
"Create new playlist": "Új lejátszási lista létrehozása",
|
||||
|
@ -36,106 +36,136 @@
|
|||
"Create new": "Új létrehozása",
|
||||
"Remove": "Eltávolítás",
|
||||
"Play next": "Következő lejátszása",
|
||||
"Add to queue": "Hozzáadás a várólistához",
|
||||
"Add to queue": "Hozzáadás a listához",
|
||||
"Remove from library": "Eltávolítás a könyvtárból",
|
||||
"Remove from playlist": "Eltávolítás a lejátszási listáról",
|
||||
"Play track mix": "Play track mix",
|
||||
"Go to": "Go to",
|
||||
"Track Mix": "Track Mix",
|
||||
"Duration": "Duration",
|
||||
"Released": "Released",
|
||||
"Disk": "Disk",
|
||||
"albums": "albums",
|
||||
"Play top": "Play top",
|
||||
"Radio": "Radio",
|
||||
"Show all albums": "Show all albums",
|
||||
"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:",
|
||||
"Play track mix": "Dal Mix lejátszása",
|
||||
"Go to": "Ugrás",
|
||||
"Track Mix": "Dal Mix",
|
||||
"Duration": "Időtartam",
|
||||
"Released": "Megjelent",
|
||||
"Disk": "Lemez",
|
||||
"albums": "albumok",
|
||||
"Play top": "Legfelső lejátszása",
|
||||
"Radio": "Rádió",
|
||||
"Show all albums": "Összes album megjelenítése",
|
||||
"Show all singles": "Összes dal megjelenítése",
|
||||
"Show more": "Több megjelenítése",
|
||||
"Downloaded": "Letöltött",
|
||||
"Queue": "Várólista",
|
||||
"Total": "Összes",
|
||||
"Stop": "Megállít",
|
||||
"Start": "Elindít",
|
||||
"Show folder": "Mappa megjelenítése",
|
||||
"Clear queue": "Lejátszási lista kiürítése",
|
||||
"Playing from": "Lejátszás innentől",
|
||||
"Info": "Információ",
|
||||
"Lyrics": "Dalszöveg",
|
||||
"Track number": "Dal sorszáma",
|
||||
"Disk number": "Lemez száma",
|
||||
"Explicit": "Szókimondó",
|
||||
"Source": "Forrás",
|
||||
"ID": "Azonosító",
|
||||
"Error logging in!": "Hiba történt a bejelentkezéskor!",
|
||||
"Please try again later, or try another account.": "Kérjük próbálja újra, vagy próbálkozzon egy másik fiókkal.",
|
||||
"Logout": "Kijelentkezés",
|
||||
"Login using browser": "Belépés böngészővel",
|
||||
"Please login using your Deezer account:": "Kérjük lépjen be Deezer fiókjával:",
|
||||
"...or paste your ARL/Token below:": "... vagy illessze be az ARL/Token-t:",
|
||||
"ARL/Token": "ARL/Token",
|
||||
"Login": "Login",
|
||||
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
|
||||
"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!",
|
||||
"Login": "Belépés",
|
||||
"By using this program, you disagree with Deezer's ToS.": "Szoftverünk használatával elutasítja a Deezer általános felhasználási feltételeit.",
|
||||
"Only in Electron version!": "Csak az Electron verzióban elérhető!",
|
||||
"Search results for:": "Keresési találatok:",
|
||||
"Error loading data!": "Hiba az adatok betöltése közben!",
|
||||
"Try again later!": "Kérjük próbálja meg később!",
|
||||
"Search": "Keresés",
|
||||
"Streaming Quality": "Streamelés minősége",
|
||||
"Download Quality": "Letöltés minősége",
|
||||
"Downloads Directory": "Letöltések helye",
|
||||
"Simultaneous downloads": "Egyidejű letöltések",
|
||||
"Always show download confirm dialog before downloading.": "Mindig mutassa a letöltési megerősítést letöltés előtt.",
|
||||
"Show download dialog": "Letöltés párbeszédpanel mutatása",
|
||||
"Create folders for artists": "Mappa létrehozása az előadónként",
|
||||
"Create folders for albums": "Mappa létrehozása az albumonként",
|
||||
"Download lyrics": "Dalszöveg letöltése",
|
||||
"Variables": "Változók",
|
||||
"UI": "Kezelőfelület",
|
||||
"Show autocomplete in search": "Kereső találat kiegészítése",
|
||||
"Integrations": "Integrációk",
|
||||
"This allows listening history, flow and recommendations to work properly.": "Ezzel engedélyezi az előzményeket és, hogy a Flow illetve az ajánlások működjenek.",
|
||||
"Log track listens to Deezer": "Dal előzmények rögzítése a Deezer számára",
|
||||
"Connect your LastFM account to allow scrobbling.": "Csatlakoztassa LastFM fiókját, hogy engedélyezze az ajánlatokat.",
|
||||
"Login with LastFM": "Belépés LastFM fiókkal",
|
||||
"Disconnect LastFM": "LastFM fiók eltávolítása",
|
||||
"Requires restart to apply!": "Újraindítás szükséges!",
|
||||
"Enable Discord Rich Presence, requires restart to toggle!": "Discord Rich Presence engedélyezése, újraindítás szükséges!",
|
||||
"Discord Rich Presence": "Discord Rich Presence",
|
||||
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
|
||||
"Discord Join Button": "Discord Join Button",
|
||||
"Other": "Other",
|
||||
"Minimize to tray": "Minimize to tray",
|
||||
"Don't minimize to tray": "Don't minimize to tray",
|
||||
"Close on exit": "Close on exit",
|
||||
"Settings saved!": "Settings saved!",
|
||||
"Available only in Electron version!": "Available only in Electron version!",
|
||||
"Crossfade (ms)": "Crossfade (ms)",
|
||||
"Select primary color": "Select primary color",
|
||||
"Light theme": "Light theme",
|
||||
"Create folders for playlists": "Create folders for playlists",
|
||||
"About": "About",
|
||||
"Links:": "Links:",
|
||||
"Telegram Releases": "Telegram Releases",
|
||||
"Telegram Group": "Telegram Group",
|
||||
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Discord csatlakozás gomb engedélyezése dalok szinkronizálásához, újraindítás szükséges!",
|
||||
"Discord Join Button": "Discord csatlakozás gomb",
|
||||
"Other": "Egyéb",
|
||||
"Minimize to tray": "Tálcára letétel",
|
||||
"Don't minimize to tray": "Ne tegye le a tálcára",
|
||||
"Close on exit": "Kilépés bezáráskor",
|
||||
"Settings saved!": "Beállítások elmentve!",
|
||||
"Available only in Electron version!": "Csak teljes változatban érhető el!",
|
||||
"Crossfade (ms)": "Átfedés (ms)",
|
||||
"Select primary color": "Elsődleges szín kiválasztása",
|
||||
"Light theme": "Világos kinézet",
|
||||
"Create folders for playlists": "Mappa létrehozása a lejátszólistákhoz",
|
||||
"About": "Info",
|
||||
"Links:": "Linkek:",
|
||||
"Telegram Releases": "Telegram Kiadások",
|
||||
"Telegram Group": "Telegram csoport",
|
||||
"Discord": "Discord",
|
||||
"Telegram Android Group": "Telegram Android Group",
|
||||
"Credits:": "Credits:",
|
||||
"Agree": "Agree",
|
||||
"Dismiss": "Dismiss",
|
||||
"Added to playlist!": "Added to playlist!",
|
||||
"Added to library!": "Added to library!",
|
||||
"Removed from library!": "Removed from library!",
|
||||
"Removed from playlist!": "Removed from playlist!",
|
||||
"Playlist deleted!": "Playlist deleted!",
|
||||
"Delete": "Delete",
|
||||
"Are you sure you want to delete this playlist?": "Are you sure you want to delete this playlist?",
|
||||
"Force white tray icon": "Force white tray icon",
|
||||
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Force default (white) tray icon if theme incorrectly detected. Requires restart.",
|
||||
"Share": "Share",
|
||||
"Settings quality": "Settings quality",
|
||||
"Content language": "Content language",
|
||||
"Content country": "Content country",
|
||||
"Website": "Website",
|
||||
"Visit website": "Visit website",
|
||||
"New update available:": "New update available:"
|
||||
"Telegram Android Group": "Telegram Android csoport",
|
||||
"Credits:": "Köszönet:",
|
||||
"Agree": "Elfogad",
|
||||
"Dismiss": "Elvet",
|
||||
"Added to playlist!": "Lejátszó listához adva!",
|
||||
"Added to library!": "Könyvtárhoz adva!",
|
||||
"Removed from library!": "Eltávolítva a könyvtárból!",
|
||||
"Removed from playlist!": "Eltávolítva a lejátszási listából!",
|
||||
"Playlist deleted!": "Lejátszási lista törölve!",
|
||||
"Delete": "Töröl",
|
||||
"Are you sure you want to delete this playlist?": "Biztosan ki szeretné törölni a lejátszási listát?",
|
||||
"Force white tray icon": "Fehér tálcaikon használata mindenképpen",
|
||||
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Alap (fehér) tálcaikon használata ha a kinézet hibásan is lett észlelve. Újraindítás szükséges.",
|
||||
"Share": "Megosztás",
|
||||
"Settings quality": "Letöltési minőség",
|
||||
"Content language": "Tartalom nyelve",
|
||||
"Content country": "Tartalom országa",
|
||||
"Website": "Weboldal",
|
||||
"Visit website": "Weboldal megnyitása",
|
||||
"New update available:": "Újabb frissítés elérhető:",
|
||||
"Shuffle": "Véletlenszerű lejátszás",
|
||||
"Download album cover": "Album borító letöltése",
|
||||
"Art Resolution": "Borító felbontása",
|
||||
"Public": "Nyilvános",
|
||||
"Private": "Privát",
|
||||
"Collaborative": "Együttműködés",
|
||||
"Edit playlist": "Lejátszó lista szerkesztése",
|
||||
"Save": "Mentés",
|
||||
"Edit": "Szerkesztés",
|
||||
"Importer": "Importáló",
|
||||
"Enter URL": "Írjon be egy URL-t",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "Jelenleg csak a Spotify támogatott és 100 zeneszámra le van korlátozva.",
|
||||
"Import into playlist": "Importálás a lejátszási listába",
|
||||
"Keep sidebar open": "Oldalsó sáv nyitva tartása",
|
||||
"WARNING: Might require reload to work properly!": "Figyelem: Alkalmazás újraindítása szükséges!",
|
||||
"An error occured, URL might be invalid or unsupported.": "Egy hiba történet: a megadott URL érvénytelen vagy nem támogatott.",
|
||||
"Top tracks": "Legjobb dalok",
|
||||
"Show all top tracks": "Mutasd az összes legjobb dalt",
|
||||
"Singles": "Kislemezek",
|
||||
"Album:": "Album:",
|
||||
"Artists:": "Előadó:",
|
||||
"Yes": "Igen",
|
||||
"No": "Nem",
|
||||
"Download Filename": "Letöltési fájlnév",
|
||||
"Language": "Nyelv",
|
||||
"Background Image": "Háttérkép",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Adjon meg URL címet vagy teljes elérési utat. FIGYELEM: Újraindítás szükséges!",
|
||||
"LGBT Mode": "LGBT mód",
|
||||
"Native top bar": "Natív felső sáv",
|
||||
"Requires restart of Freezer!": "Újraindítás szükséges!"
|
||||
}
|
|
@ -137,5 +137,35 @@
|
|||
"Content country": "Wilayah konten",
|
||||
"Website": "Situs",
|
||||
"Visit website": "Kunjungi situs web",
|
||||
"New update available:": "Pembaruan tersedia:"
|
||||
"New update available:": "Pembaruan tersedia:",
|
||||
"Shuffle": "Putar acak",
|
||||
"Download album cover": "Unduh cover album",
|
||||
"Art Resolution": "Resolusi gambar",
|
||||
"Public": "Publik",
|
||||
"Private": "Pribadi",
|
||||
"Collaborative": "Kolaboratif",
|
||||
"Edit playlist": "Edit daftar putar",
|
||||
"Save": "Simpan",
|
||||
"Edit": "Edit",
|
||||
"Importer": "Telah di impor",
|
||||
"Enter URL": "Masukkan URL",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "Saat ini hanya mendukung Spotify dan hanya terbatas 100 lagu.",
|
||||
"Import into playlist": "Impor ke daftar putar",
|
||||
"Keep sidebar open": "Biarkan sidebar tetap terbuka",
|
||||
"WARNING: Might require reload to work properly!": "PERINGATAN: Mungkin perlu memuat ulang agar berfungsi dengan benar!",
|
||||
"An error occured, URL might be invalid or unsupported.": "Terjadi kesalahan, URL mungkin tidak valid atau tidak didukung.",
|
||||
"Top tracks": "Lagu teratas",
|
||||
"Show all top tracks": "Tampilkan semua lagu teratas",
|
||||
"Singles": "Single",
|
||||
"Album:": "Album:",
|
||||
"Artists:": "Artis:",
|
||||
"Yes": "Iya",
|
||||
"No": "Tidak",
|
||||
"Download Filename": "Unduh Nama File",
|
||||
"Language": "Bahasa",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -137,5 +137,35 @@
|
|||
"Content country": "Paese dei contenuti",
|
||||
"Website": "Sito Web",
|
||||
"Visit website": "Visita il sito",
|
||||
"New update available:": "Nuovo aggiornamento disponibile:"
|
||||
"New update available:": "Nuovo aggiornamento disponibile:",
|
||||
"Shuffle": "Riproduzione casuale",
|
||||
"Download album cover": "Scarica copertina album",
|
||||
"Art Resolution": "Risoluzione immagini",
|
||||
"Public": "Pubblica",
|
||||
"Private": "Privata",
|
||||
"Collaborative": "Collaborativa",
|
||||
"Edit playlist": "Modifica playlist",
|
||||
"Save": "Salva",
|
||||
"Edit": "Modifica",
|
||||
"Importer": "Importazione",
|
||||
"Enter URL": "Inserisci URL",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "Attualmente solo Spotify è supportato e limitato a 100 brani.",
|
||||
"Import into playlist": "Importa nella playlist",
|
||||
"Keep sidebar open": "Mantieni la barra laterale aperta",
|
||||
"WARNING: Might require reload to work properly!": "ATTENZIONE: Potrebbe essere necessario ricaricare per funzionare correttamente!",
|
||||
"An error occured, URL might be invalid or unsupported.": "Si è verificato un errore, l'URL potrebbe non essere valido o non supportato.",
|
||||
"Top tracks": "Tracce più ascoltate",
|
||||
"Show all top tracks": "Mostra tutte le tracce più ascoltate",
|
||||
"Singles": "Singoli",
|
||||
"Album:": "Album:",
|
||||
"Artists:": "Artisti:",
|
||||
"Yes": "Sì",
|
||||
"No": "No",
|
||||
"Download Filename": "Nome del file scaricato",
|
||||
"Language": "Lingua",
|
||||
"Background Image": "Immagine di sfondo",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Inserisci l'URL o il percorso assoluto. ATTENZIONE: Richiede il ricaricamento!",
|
||||
"LGBT Mode": "Modalità LGBT",
|
||||
"Native top bar": "Barra superiore nativa",
|
||||
"Requires restart of Freezer!": "Richiede il riavvio di Freezer!"
|
||||
}
|
|
@ -137,5 +137,35 @@
|
|||
"Content country": "콘텐츠 국가",
|
||||
"Website": "홈페이지",
|
||||
"Visit website": "홈페이지 방문하기",
|
||||
"New update available:": "사용 가능한 업데이트가 있습니다:"
|
||||
"New update available:": "사용 가능한 업데이트가 있습니다:",
|
||||
"Shuffle": "Shuffle",
|
||||
"Download album cover": "Download album cover",
|
||||
"Art Resolution": "Art Resolution",
|
||||
"Public": "Public",
|
||||
"Private": "Private",
|
||||
"Collaborative": "Collaborative",
|
||||
"Edit playlist": "Edit playlist",
|
||||
"Save": "Save",
|
||||
"Edit": "Edit",
|
||||
"Importer": "Importer",
|
||||
"Enter URL": "Enter URL",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "Currently only Spotify is supported and limited to 100 tracks.",
|
||||
"Import into playlist": "Import into playlist",
|
||||
"Keep sidebar open": "Keep sidebar open",
|
||||
"WARNING: Might require reload to work properly!": "WARNING: Might require reload to work properly!",
|
||||
"An error occured, URL might be invalid or unsupported.": "An error occured, URL might be invalid or unsupported.",
|
||||
"Top tracks": "Top tracks",
|
||||
"Show all top tracks": "Show all top tracks",
|
||||
"Singles": "Singles",
|
||||
"Album:": "Album:",
|
||||
"Artists:": "Artists:",
|
||||
"Yes": "Yes",
|
||||
"No": "No",
|
||||
"Download Filename": "Download Filename",
|
||||
"Language": "Language",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -1,141 +1,171 @@
|
|||
{
|
||||
"Home": "Home",
|
||||
"Browse": "Browse",
|
||||
"Library": "Library",
|
||||
"Tracks": "Tracks",
|
||||
"Playlists": "Playlists",
|
||||
"Browse": "Bladeren",
|
||||
"Library": "Bibliotheek",
|
||||
"Tracks": "Nummers",
|
||||
"Playlists": "Afspeellijsten",
|
||||
"Albums": "Albums",
|
||||
"Artists": "Artists",
|
||||
"More": "More",
|
||||
"Settings": "Settings",
|
||||
"Artists": "Artiesten",
|
||||
"More": "Meer",
|
||||
"Settings": "Instellingen",
|
||||
"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",
|
||||
"Search or paste Deezer URL. Use / to quickly focus.": "Zoek of plak Deezer URL. Gebruik \"/\" om snel te focussen.",
|
||||
"Play": "Afspelen",
|
||||
"Add to library": "Aan bibliotheek toevoegen",
|
||||
"Download": "Downloaden",
|
||||
"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)",
|
||||
"tracks": "nummers",
|
||||
"Quality": "Kwaliteit",
|
||||
"Estimated size:": "Geschatte grootte:",
|
||||
"Start downloading": "Downloaden starten",
|
||||
"Cancel": "Annuleren",
|
||||
"Stream logging is disabled!": "Stream logboek is uitgeschakeld!",
|
||||
"Enable it in settings for history to work properly.": "Schakel het in bij instellingen om de geschiedenis correct te laten werken.",
|
||||
"History": "Geschiedenis",
|
||||
"Create new playlist": "Nieuwe afspeellijst aanmaken",
|
||||
"TRACKS": "NUMMERS",
|
||||
"Sort by": "Sorteren op",
|
||||
"Date Added": "Datum Toegevoegd",
|
||||
"Name (A-Z)": "Naam (A-Z)",
|
||||
"Artist (A-Z)": "Artiest (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",
|
||||
"Error loading lyrics or lyrics not found!": "Fout bij het laden van songteksten of songteksten niet gevonden!",
|
||||
"Create playlist": "Afspeellijst aanmaken",
|
||||
"Create": "Aanmaken",
|
||||
"Add to playlist": "Aan afspeellijst toevoegen",
|
||||
"Create new": "Nieuw aanmaken",
|
||||
"Remove": "Verwijderen",
|
||||
"Play next": "Volgende nummer afspelen",
|
||||
"Add to queue": "Aan wachtrij toevoegen",
|
||||
"Remove from library": "Uit bibliotheek verwijderen",
|
||||
"Remove from playlist": "Uit afspeellijst verwijderen",
|
||||
"Play track mix": "Speel nummer mix",
|
||||
"Go to": "Ga naar",
|
||||
"Track Mix": "Nummer Mix",
|
||||
"Duration": "Tijdsduur",
|
||||
"Released": "Gepubliceerd",
|
||||
"Disk": "Schijf",
|
||||
"albums": "albums",
|
||||
"Play top": "Play top",
|
||||
"Play top": "Top nummers afspelen",
|
||||
"Radio": "Radio",
|
||||
"Show all albums": "Show all albums",
|
||||
"Show all singles": "Show all singles",
|
||||
"Show more": "Show more",
|
||||
"Downloaded": "Downloaded",
|
||||
"Queue": "Queue",
|
||||
"Total": "Total",
|
||||
"Stop": "Stop",
|
||||
"Start": "Start",
|
||||
"Show folder": "Show folder",
|
||||
"Clear queue": "Clear queue",
|
||||
"Playing from": "Playing from",
|
||||
"Info": "Info",
|
||||
"Lyrics": "Lyrics",
|
||||
"Track number": "Track number",
|
||||
"Disk number": "Disk number",
|
||||
"Explicit": "Explicit",
|
||||
"Source": "Source",
|
||||
"Show all albums": "Alle albums tonen",
|
||||
"Show all singles": "Alle singles weergeven",
|
||||
"Show more": "Meer tonen",
|
||||
"Downloaded": "Gedownload",
|
||||
"Queue": "Wachtrij",
|
||||
"Total": "Totaal",
|
||||
"Stop": "Stoppen",
|
||||
"Start": "Starten",
|
||||
"Show folder": "Map weergeven",
|
||||
"Clear queue": "Wachtrij wissen",
|
||||
"Playing from": "Afspelen van",
|
||||
"Info": "Informatie",
|
||||
"Lyrics": "Songteksten",
|
||||
"Track number": "Liednummer",
|
||||
"Disk number": "Schijfnummer",
|
||||
"Explicit": "Expliciet",
|
||||
"Source": "Bron",
|
||||
"ID": "ID",
|
||||
"Error logging in!": "Error logging in!",
|
||||
"Please try again later, or try another account.": "Please try again later, or try another account.",
|
||||
"Logout": "Logout",
|
||||
"Login using browser": "Login using browser",
|
||||
"Please login using your Deezer account:": "Please login using your Deezer account:",
|
||||
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
|
||||
"Error logging in!": "Fout bij aanmelden!",
|
||||
"Please try again later, or try another account.": "Probeer het later opnieuw of probeer een andere account.",
|
||||
"Logout": "Afmelden",
|
||||
"Login using browser": "Aanmelden via browser",
|
||||
"Please login using your Deezer account:": "Log in met je Deezer account:",
|
||||
"...or paste your ARL/Token below:": "...of plak je ARL/Token hieronder:",
|
||||
"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!",
|
||||
"Login": "Aanmelden",
|
||||
"By using this program, you disagree with Deezer's ToS.": "Door dit programma te gebruiken, ben je het niet eens met Deezer's ToS.",
|
||||
"Only in Electron version!": "Alleen in de Electron-versie!",
|
||||
"Search results for:": "Zoekresultaten voor:",
|
||||
"Error loading data!": "Fout bij laden van gegevens!",
|
||||
"Try again later!": "Probeer het later opnieuw!",
|
||||
"Search": "Zoeken",
|
||||
"Streaming Quality": "Stream Kwaliteit",
|
||||
"Download Quality": "Download Kwaliteit",
|
||||
"Downloads Directory": "Download map",
|
||||
"Simultaneous downloads": "Gelijktijdige downloads",
|
||||
"Always show download confirm dialog before downloading.": "Toon altijd het download bevestigingsvenster voordat je downloadt.",
|
||||
"Show download dialog": "Downloadvenster tonen",
|
||||
"Create folders for artists": "Mappen voor artiest aanmaken",
|
||||
"Create folders for albums": "Mappen voor albums aanmaken",
|
||||
"Download lyrics": "Songteksten downloaden",
|
||||
"Variables": "Variabelen",
|
||||
"UI": "Gebruikersinterface",
|
||||
"Show autocomplete in search": "Automatisch aanvullen weergeven bij zoeken",
|
||||
"Integrations": "Integraties",
|
||||
"This allows listening history, flow and recommendations to work properly.": "Dit zorgt ervoor dat je luistergeschiedenis, flow and aanbevelingen correct werken.",
|
||||
"Log track listens to Deezer": "Log geluisterde nummers naar Deezer",
|
||||
"Connect your LastFM account to allow scrobbling.": "Koppel je LastFM account om scrobbling toe te staan.",
|
||||
"Login with LastFM": "Aanmelden bij LastFM",
|
||||
"Disconnect LastFM": "Afbreken van LastFM-connectie",
|
||||
"Requires restart to apply!": "Vereist herstart om toe te passen!",
|
||||
"Enable Discord Rich Presence, requires restart to toggle!": "Schakel Discord Rich Presence in, herstart vereist om het in te schakelen!",
|
||||
"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!",
|
||||
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Schakel Discord-join knop in voor het synchroniseren van nummers, herstart vereist om het in te schakelen!",
|
||||
"Discord Join Button": "Discord Join Knop",
|
||||
"Other": "Overig",
|
||||
"Minimize to tray": "Minimaliseer naar systeemvak",
|
||||
"Don't minimize to tray": "Niet minimaliseren naar systeemvak",
|
||||
"Close on exit": "Sluiten bij afsluiten",
|
||||
"Settings saved!": "Instellingen opgeslagen!",
|
||||
"Available only in Electron version!": "Alleen beschikbaar in de Electron versie!",
|
||||
"Crossfade (ms)": "Crossfade (ms)",
|
||||
"Select primary color": "Select primary color",
|
||||
"Light theme": "Light theme",
|
||||
"Create folders for playlists": "Create folders for playlists",
|
||||
"About": "About",
|
||||
"Select primary color": "Selecteer primaire kleur",
|
||||
"Light theme": "Lichte thema",
|
||||
"Create folders for playlists": "Mappen voor afspeellijsten maken",
|
||||
"About": "Over",
|
||||
"Links:": "Links:",
|
||||
"Telegram Releases": "Telegram Releases",
|
||||
"Telegram Group": "Telegram Group",
|
||||
"Telegram Group": "Telegram Groep",
|
||||
"Discord": "Discord",
|
||||
"Telegram Android Group": "Telegram Android Group",
|
||||
"Credits:": "Credits:",
|
||||
"Agree": "Agree",
|
||||
"Dismiss": "Dismiss",
|
||||
"Added to playlist!": "Added to playlist!",
|
||||
"Added to library!": "Added to library!",
|
||||
"Removed from library!": "Removed from library!",
|
||||
"Removed from playlist!": "Removed from playlist!",
|
||||
"Playlist deleted!": "Playlist deleted!",
|
||||
"Delete": "Delete",
|
||||
"Are you sure you want to delete this playlist?": "Are you sure you want to delete this playlist?",
|
||||
"Force white tray icon": "Force white tray icon",
|
||||
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Force default (white) tray icon if theme incorrectly detected. Requires restart.",
|
||||
"Share": "Share",
|
||||
"Settings quality": "Settings quality",
|
||||
"Content language": "Content language",
|
||||
"Content country": "Content country",
|
||||
"Telegram Android Group": "Telegram Android Groep",
|
||||
"Credits:": "Met dank aan:",
|
||||
"Agree": "Akkoord gaan",
|
||||
"Dismiss": "Negeren",
|
||||
"Added to playlist!": "Aan afspeellijst toegevoegd!",
|
||||
"Added to library!": "Aan bibliotheek toegevoegd!",
|
||||
"Removed from library!": "Uit de bibliotheek verwijderd!",
|
||||
"Removed from playlist!": "Uit afspeellijst verwijderd!",
|
||||
"Playlist deleted!": "Afspeellijst verwijderd!",
|
||||
"Delete": "Verwijderen",
|
||||
"Are you sure you want to delete this playlist?": "Weet je zeker dat je deze afspeellijst wil verwijderen?",
|
||||
"Force white tray icon": "Forceer wit systeemvak icoon",
|
||||
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Forceer standaard (wit) pictogram in het systeemvak als thema onjuist gedetecteerd wordt. Herstart vereist.",
|
||||
"Share": "Delen",
|
||||
"Settings quality": "Kwaliteit instellingen",
|
||||
"Content language": "Taal van inhoud",
|
||||
"Content country": "Land van inhoud",
|
||||
"Website": "Website",
|
||||
"Visit website": "Visit website",
|
||||
"New update available:": "New update available:"
|
||||
"Visit website": "Website bezoeken",
|
||||
"New update available:": "Nieuwe update beschikbaar:",
|
||||
"Shuffle": "Shuffle",
|
||||
"Download album cover": "Albumhoes downloaden",
|
||||
"Art Resolution": "Illustratie resolutie",
|
||||
"Public": "Openbaar",
|
||||
"Private": "Privé",
|
||||
"Collaborative": "Samenwerkend",
|
||||
"Edit playlist": "Afspeellijst bewerken",
|
||||
"Save": "Opslaan",
|
||||
"Edit": "Bewerken",
|
||||
"Importer": "Importeerder",
|
||||
"Enter URL": "URL invoeren",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "Momenteel wordt alleen Spotify ondersteund; deze is beperkt tot 100 nummers.",
|
||||
"Import into playlist": "In afspeellijst importeren",
|
||||
"Keep sidebar open": "Zijbalk open laten",
|
||||
"WARNING: Might require reload to work properly!": "WAARSCHUWING: Herladen mogelijk vereist om correct te werken!",
|
||||
"An error occured, URL might be invalid or unsupported.": "Er is een fout opgetreden, URL kan ongeldig zijn of wordt niet ondersteund.",
|
||||
"Top tracks": "Top nummers",
|
||||
"Show all top tracks": "Alle topnummers weergeven",
|
||||
"Singles": "Singles",
|
||||
"Album:": "Album:",
|
||||
"Artists:": "Artiesten:",
|
||||
"Yes": "Ja",
|
||||
"No": "Nee",
|
||||
"Download Filename": "Bestandsnaam Downloaden",
|
||||
"Language": "Taal",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -137,5 +137,35 @@
|
|||
"Content country": "Kraj treści",
|
||||
"Website": "Strona internetowa",
|
||||
"Visit website": "Odwiedź stronę internetową",
|
||||
"New update available:": "Dostępna jest nowa aktualizacja:"
|
||||
"New update available:": "Dostępna jest nowa aktualizacja:",
|
||||
"Shuffle": "Losowo",
|
||||
"Download album cover": "Pobierz okładkę albumu",
|
||||
"Art Resolution": "Rozdzielczość Obrazu",
|
||||
"Public": "Publiczne",
|
||||
"Private": "Prywatne",
|
||||
"Collaborative": "Współpraca",
|
||||
"Edit playlist": "Edytuj playlistę",
|
||||
"Save": "Zapisz",
|
||||
"Edit": "Edytuj",
|
||||
"Importer": "Importer",
|
||||
"Enter URL": "Wprowadź adres URL",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "Obecnie obsługuje tylko Spotify i maksymalnie 100 utworów.",
|
||||
"Import into playlist": "Importuj na playlistę",
|
||||
"Keep sidebar open": "Panel boczny zawsze otwarty",
|
||||
"WARNING: Might require reload to work properly!": "UWAGA: Może wymagać ponownego uruchomienia, by działać poprawnie!",
|
||||
"An error occured, URL might be invalid or unsupported.": "Wystąpił błąd, adres URL może być nieprawidłowy lub nieobsługiwany.",
|
||||
"Top tracks": "Najpopularniejsze utwory",
|
||||
"Show all top tracks": "Pokaż wszystkie najpopularniejsze utwory",
|
||||
"Singles": "Single",
|
||||
"Album:": "Album:",
|
||||
"Artists:": "Wykonawcy:",
|
||||
"Yes": "Tak",
|
||||
"No": "Nie",
|
||||
"Download Filename": "Nazwa pobieranego pliku",
|
||||
"Language": "Język",
|
||||
"Background Image": "Obraz w tle",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Wprowadź adres URL lub całą ścieżkę pliku. UWAGA: Wymaga ponownego uruchomienia!",
|
||||
"LGBT Mode": "Tryb LGBT",
|
||||
"Native top bar": "Natywny górny pasek",
|
||||
"Requires restart of Freezer!": "Wymaga ponownego uruchomiania Freezera!"
|
||||
}
|
|
@ -19,7 +19,7 @@
|
|||
"Estimated size:": "Tempo estimado:",
|
||||
"Start downloading": "Iniciar download",
|
||||
"Cancel": "Cancelar",
|
||||
"Stream logging is disabled!": "O registro de depuração extra está desativado!",
|
||||
"Stream logging is disabled!": "Registro de transmissão está desativado!",
|
||||
"Enable it in settings for history to work properly.": "Habilite nas configurações para que o histórico funcione corretamente.",
|
||||
"History": "Histórico",
|
||||
"Create new playlist": "Criar nova playlist",
|
||||
|
@ -41,12 +41,12 @@
|
|||
"Remove from playlist": "Remover da playlist",
|
||||
"Play track mix": "Reproduzir mix da faixa",
|
||||
"Go to": "Ir para",
|
||||
"Track Mix": "Faixa Mix",
|
||||
"Track Mix": "Mix da Faixa",
|
||||
"Duration": "Duração",
|
||||
"Released": "Lançamento",
|
||||
"Disk": "Disco",
|
||||
"albums": "álbuns",
|
||||
"Play top": "Reproduzir no topo",
|
||||
"Play top": "Reproduzir top",
|
||||
"Radio": "Rádio",
|
||||
"Show all albums": "Mostrar todos os álbuns",
|
||||
"Show all singles": "Mostrar todos os singles",
|
||||
|
@ -61,12 +61,12 @@
|
|||
"Playing from": "Reproduzindo de",
|
||||
"Info": "Informações",
|
||||
"Lyrics": "Letra",
|
||||
"Track number": "Número de faixa",
|
||||
"Disk number": "Numero de disco",
|
||||
"Track number": "Número da faixa",
|
||||
"Disk number": "Número do disco",
|
||||
"Explicit": "Explícito",
|
||||
"Source": "Fonte",
|
||||
"ID": "Identificação",
|
||||
"Error logging in!": "Erro de login!",
|
||||
"Error logging in!": "Erro no login!",
|
||||
"Please try again later, or try another account.": "Por favor, tente novamente mais tarde ou tente outra conta.",
|
||||
"Logout": "Desconectar",
|
||||
"Login using browser": "Login usando o navegador",
|
||||
|
@ -75,14 +75,14 @@
|
|||
"ARL/Token": "ARL/Token",
|
||||
"Login": "Login",
|
||||
"By using this program, you disagree with Deezer's ToS.": "Ao usar este programa, você discorda dos termos e condições de uso do Deezer.",
|
||||
"Only in Electron version!": "Apenas na versão do Electron!",
|
||||
"Only in Electron version!": "Somente na versão Electron!",
|
||||
"Search results for:": "Resultado de pesquisa para:",
|
||||
"Error loading data!": "Erro ao carregar dados!",
|
||||
"Try again later!": "Tente novamente mais tarde!",
|
||||
"Search": "Pesquisa",
|
||||
"Streaming Quality": "Qualidade do streaming",
|
||||
"Download Quality": "Qualiadade do download",
|
||||
"Downloads Directory": "Pasta de Download",
|
||||
"Streaming Quality": "Qualidade da Transmissão",
|
||||
"Download Quality": "Qualidade do Download",
|
||||
"Downloads Directory": "Diretório de Downloads",
|
||||
"Simultaneous downloads": "Downloads simultâneos",
|
||||
"Always show download confirm dialog before downloading.": "Sempre mostrar diálogo de confirmação de download antes de baixar.",
|
||||
"Show download dialog": "Mostrar diálogo de download",
|
||||
|
@ -90,7 +90,7 @@
|
|||
"Create folders for albums": "Criar pastas para álbuns",
|
||||
"Download lyrics": "Baixar letra",
|
||||
"Variables": "Variáveis",
|
||||
"UI": "IU",
|
||||
"UI": "Interface do Usuário",
|
||||
"Show autocomplete in search": "Mostrar autocompletar na pesquisa",
|
||||
"Integrations": "Integrações",
|
||||
"This allows listening history, flow and recommendations to work properly.": "Isto permite que o histórico de ouvidas, flow e recomendações funcionem corretamente.",
|
||||
|
@ -98,19 +98,19 @@
|
|||
"Connect your LastFM account to allow scrobbling.": "Conecte sua conta do LastFM para permitir o scrobbling.",
|
||||
"Login with LastFM": "Login com LastFM",
|
||||
"Disconnect LastFM": "Desconectar LastFM",
|
||||
"Requires restart to apply!": "Requer reinicialização do aplicativo para aplicar!",
|
||||
"Enable Discord Rich Presence, requires restart to toggle!": "Ativar o Rich Presence do Discord, requer reiniciar para alternar!",
|
||||
"Requires restart to apply!": "Requer reinicialização para aplicar!",
|
||||
"Enable Discord Rich Presence, requires restart to toggle!": "Ativar o Rich Presence do Discord, requer reinicialização para alternar!",
|
||||
"Discord Rich Presence": "Discord Rich Presence",
|
||||
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Ativar o botão de adesão do Discord para sincronizar faixas requer reinicialização para alternar!",
|
||||
"Discord Join Button": "Botão de Entrada Discord",
|
||||
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Ativar o botão de entrar no Discord para sincronizar faixas, requer reinicialização para alternar!",
|
||||
"Discord Join Button": "Botão de Entrar do Discord",
|
||||
"Other": "Outro",
|
||||
"Minimize to tray": "Minimizar para a bandeja",
|
||||
"Don't minimize to tray": "Não minimizar para a bandeja",
|
||||
"Close on exit": "Fechar ao sair",
|
||||
"Settings saved!": "Configurações salvas!",
|
||||
"Available only in Electron version!": "Disponível apenas na versão completa!",
|
||||
"Crossfade (ms)": "Transição suave (ms)",
|
||||
"Select primary color": "Escolha a cor primária",
|
||||
"Available only in Electron version!": "Disponível somente na versão Electron!",
|
||||
"Crossfade (ms)": "Transição gradual (ms)",
|
||||
"Select primary color": "Selecione a cor primária",
|
||||
"Light theme": "Tema Claro",
|
||||
"Create folders for playlists": "Criar pastas para playlists",
|
||||
"About": "Sobre",
|
||||
|
@ -137,5 +137,35 @@
|
|||
"Content country": "País do conteúdo",
|
||||
"Website": "Site",
|
||||
"Visit website": "Visite o site",
|
||||
"New update available:": "Nova atualização disponível:"
|
||||
"New update available:": "Nova atualização disponível:",
|
||||
"Shuffle": "Aleatório",
|
||||
"Download album cover": "Baixar arte do álbum",
|
||||
"Art Resolution": "Resolução da Arte",
|
||||
"Public": "Pública",
|
||||
"Private": "Privada",
|
||||
"Collaborative": "Colaborativa",
|
||||
"Edit playlist": "Editar playlist",
|
||||
"Save": "Salvar",
|
||||
"Edit": "Editar",
|
||||
"Importer": "Importador",
|
||||
"Enter URL": "Introduzir ARL",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "Atualmente apenas o Spotify é suportado e limitado a 100 faixas.",
|
||||
"Import into playlist": "Importar playlist",
|
||||
"Keep sidebar open": "Manter a barra lateral aberta",
|
||||
"WARNING: Might require reload to work properly!": "AVISO: Pode ser necessário recarregar para funcionar corretamente!",
|
||||
"An error occured, URL might be invalid or unsupported.": "Ocorreu um erro, a URL pode ser inválida ou não suportada.",
|
||||
"Top tracks": "Top faixas",
|
||||
"Show all top tracks": "Mostrar todas as faixas",
|
||||
"Singles": "Singles",
|
||||
"Album:": "Álbum:",
|
||||
"Artists:": "Artistas:",
|
||||
"Yes": "Sim",
|
||||
"No": "Não",
|
||||
"Download Filename": "Nomenclatura de download",
|
||||
"Language": "Idioma",
|
||||
"Background Image": "Imagem de Fundo",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Digite URL ou caminho absoluto. ATENÇÃO: Requer recarregar!",
|
||||
"LGBT Mode": "Modo LGBT",
|
||||
"Native top bar": "Barra superior nativa",
|
||||
"Requires restart of Freezer!": "Requer reinicialização do Freezer!"
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"Home": "Home",
|
||||
"Home": "Acasă",
|
||||
"Browse": "Caută",
|
||||
"Library": "Librărie",
|
||||
"Tracks": "Piese",
|
||||
|
@ -137,5 +137,35 @@
|
|||
"Content country": "Țara conținutului",
|
||||
"Website": "Website",
|
||||
"Visit website": "Vizitați site-ul web",
|
||||
"New update available:": "Actualizare nouă disponibilă:"
|
||||
"New update available:": "Actualizare nouă disponibilă:",
|
||||
"Shuffle": "Amestecare",
|
||||
"Download album cover": "Descarcă coperta albumului",
|
||||
"Art Resolution": "Rezoluția Imaginii",
|
||||
"Public": "Public",
|
||||
"Private": "Privat",
|
||||
"Collaborative": "Colaborativ",
|
||||
"Edit playlist": "Editează playlist-ul",
|
||||
"Save": "Salvează",
|
||||
"Edit": "Editează",
|
||||
"Importer": "Importator",
|
||||
"Enter URL": "Introduceţi URL-ul",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "La moment, suportăm doar Spotify cu o limită de 100 de piese.",
|
||||
"Import into playlist": "Importă în playlist",
|
||||
"Keep sidebar open": "Păstrați meniul lateral deschis",
|
||||
"WARNING: Might require reload to work properly!": "ATENȚIE: S-ar putea să fie necesar reîncărcarea aplicației pentru a funcționa adecvat!",
|
||||
"An error occured, URL might be invalid or unsupported.": "A apărut o eroare, URL-ul ar putea fi invalid sau nesuportat.",
|
||||
"Top tracks": "Piesele de top",
|
||||
"Show all top tracks": "Arată toate piesele de top",
|
||||
"Singles": "Single-uri",
|
||||
"Album:": "Albumul:",
|
||||
"Artists:": "Artiștii:",
|
||||
"Yes": "Da",
|
||||
"No": "Nu",
|
||||
"Download Filename": "Denumirea Descărcării",
|
||||
"Language": "Limba",
|
||||
"Background Image": "Imagine de fundal",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Introduceţi URL-ul sau calea completă. ATENŢIE: Necesită reîncărcare!",
|
||||
"LGBT Mode": "Regim LGBT",
|
||||
"Native top bar": "Bara de sus",
|
||||
"Requires restart of Freezer!": "Necesită repornirea aplicației!"
|
||||
}
|
|
@ -137,5 +137,35 @@
|
|||
"Content country": "Страна контента",
|
||||
"Website": "Веб-сайт",
|
||||
"Visit website": "Посетить веб-сайт",
|
||||
"New update available:": "Доступна новая версия:"
|
||||
"New update available:": "Доступна новая версия:",
|
||||
"Shuffle": "Перемешать",
|
||||
"Download album cover": "Загрузить обложку альбома",
|
||||
"Art Resolution": "Разрешение обложки",
|
||||
"Public": "Публичный",
|
||||
"Private": "Приватный",
|
||||
"Collaborative": "Совместное",
|
||||
"Edit playlist": "Изменить плейлист",
|
||||
"Save": "Сохранить",
|
||||
"Edit": "Редактировать",
|
||||
"Importer": "Импорт плейлистов",
|
||||
"Enter URL": "Введите ссылку",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "В настоящее время поддерживается только Spotify. Не более 100 треков в плейлисте.",
|
||||
"Import into playlist": "Импортировать в плейлист",
|
||||
"Keep sidebar open": "Не закрывать боковое меню",
|
||||
"WARNING: Might require reload to work properly!": "Внимание! Может потребоваться перезапуск для правильной работы.",
|
||||
"An error occured, URL might be invalid or unsupported.": "Ошибка, URL недействителен или не поддерживается.",
|
||||
"Top tracks": "Популярные треки",
|
||||
"Show all top tracks": "Показать все популярные треки",
|
||||
"Singles": "Синглы",
|
||||
"Album:": "Альбом:",
|
||||
"Artists:": "Исполнители:",
|
||||
"Yes": "Да",
|
||||
"No": "Нет",
|
||||
"Download Filename": "Скачать шаблон для названия",
|
||||
"Language": "Язык",
|
||||
"Background Image": "Фоновое изображение",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Введите URL или полный путь. ВНИМАНИЕ: Требуется перезагрузка!",
|
||||
"LGBT Mode": "Режим ЛГБТ",
|
||||
"Native top bar": "Верхнюю панель",
|
||||
"Requires restart of Freezer!": "Требуется перезагрузка!"
|
||||
}
|
|
@ -137,5 +137,35 @@
|
|||
"Content country": "Krajina obsahu",
|
||||
"Website": "Webová stránka",
|
||||
"Visit website": "Navštíviť webovú stránku",
|
||||
"New update available:": "Nová aktualizácia k dispozícii:"
|
||||
"New update available:": "Nová aktualizácia k dispozícii:",
|
||||
"Shuffle": "Náhodne prehrať",
|
||||
"Download album cover": "Prevziať obal albumu",
|
||||
"Art Resolution": "Rozlíšenie",
|
||||
"Public": "Verejné",
|
||||
"Private": "Sukromné",
|
||||
"Collaborative": "Spolupráca",
|
||||
"Edit playlist": "Upraviť playlist",
|
||||
"Save": "Uložiť",
|
||||
"Edit": "Upraviť",
|
||||
"Importer": "Importovať",
|
||||
"Enter URL": "Zadajte URL adresu",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "Momentálne je podporované iba Spotify s limitom 100 skladieb.",
|
||||
"Import into playlist": "Importovať do playlistu",
|
||||
"Keep sidebar open": "Nechať bočný panel otvorený",
|
||||
"WARNING: Might require reload to work properly!": "UPOZORNENIE: Môže vyžadovať obnovenie pre správnu funkčnosť!",
|
||||
"An error occured, URL might be invalid or unsupported.": "Chybná alebo nepodporovaná URL adresa.",
|
||||
"Top tracks": "Najlepšie skladby",
|
||||
"Show all top tracks": "Zobraziť všetky najlepšie skladby",
|
||||
"Singles": "Single",
|
||||
"Album:": "Album:",
|
||||
"Artists:": "Interpreti:",
|
||||
"Yes": "Áno",
|
||||
"No": "Nie",
|
||||
"Download Filename": "Stiahnuť názov súboru",
|
||||
"Language": "Jazyk",
|
||||
"Background Image": "Obrázok pozadia",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Vložte URL alebo cestu. VAROVANIE: Vyžaduje obnovenie!",
|
||||
"LGBT Mode": "LGBT mód",
|
||||
"Native top bar": "Natívna horná lišta",
|
||||
"Requires restart of Freezer!": "Vyžaduje sa reštart aplikácie!"
|
||||
}
|
|
@ -137,5 +137,35 @@
|
|||
"Content country": "Koda države",
|
||||
"Website": "Spletna stran",
|
||||
"Visit website": "Obišči spletno stran",
|
||||
"New update available:": "Na voljo je nova posodobitev:"
|
||||
"New update available:": "Na voljo je nova posodobitev:",
|
||||
"Shuffle": "Naključno",
|
||||
"Download album cover": "Shrani sličico albuma",
|
||||
"Art Resolution": "Ločljivost sličice",
|
||||
"Public": "Javno",
|
||||
"Private": "Zasebno",
|
||||
"Collaborative": "Sodelovalno",
|
||||
"Edit playlist": "Uredi seznam predvajanja",
|
||||
"Save": "Shrani",
|
||||
"Edit": "Uredi",
|
||||
"Importer": "Uvoznik",
|
||||
"Enter URL": "Vnesite URL",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "Trenutno je podprt samo Spotify in ima omejitev 100 pesmi.",
|
||||
"Import into playlist": "Uvozi na seznam predvajanja",
|
||||
"Keep sidebar open": "Obdrži odprto stransko vrstico",
|
||||
"WARNING: Might require reload to work properly!": "OPOZORILO: Potrebuje ponovni zagon aplikacije za učinkovanje!",
|
||||
"An error occured, URL might be invalid or unsupported.": "Pojavila se je napaka, URL je lahko napačen ali nepodprt.",
|
||||
"Top tracks": "Najboljše skladbe",
|
||||
"Show all top tracks": "Prikaži vse najboljše skaldbe",
|
||||
"Singles": "Singli",
|
||||
"Album:": "Album:",
|
||||
"Artists:": "Izvajalci:",
|
||||
"Yes": "Da",
|
||||
"No": "Ne",
|
||||
"Download Filename": "Imena prenosa",
|
||||
"Language": "Jezik",
|
||||
"Background Image": "Slika za ozadje",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Vpiši URL ali absolutno pot. OPOZORILO: Zahtev ponovno nalaganje!",
|
||||
"LGBT Mode": "LGBT način",
|
||||
"Native top bar": "Sistemska zgornja vrstica",
|
||||
"Requires restart of Freezer!": "Potrebuje ponovni zagon Freezerja!"
|
||||
}
|
|
@ -46,7 +46,7 @@
|
|||
"Released": "Yayınlandı",
|
||||
"Disk": "Disk",
|
||||
"albums": "albümler",
|
||||
"Play top": "Play top",
|
||||
"Play top": "Popüler olanları çal",
|
||||
"Radio": "Radyo",
|
||||
"Show all albums": "Tüm albümleri göster",
|
||||
"Show all singles": "Tüm şarkıları göster",
|
||||
|
@ -137,5 +137,35 @@
|
|||
"Content country": "İçerik ülkesi",
|
||||
"Website": "İnternet sitesi",
|
||||
"Visit website": "Web sitesine git",
|
||||
"New update available:": "Yeni güncelleme mevcut:"
|
||||
"New update available:": "Yeni güncelleme mevcut:",
|
||||
"Shuffle": "Karışık çal",
|
||||
"Download album cover": "Albüm kapağını indir",
|
||||
"Art Resolution": "Art Çözüm",
|
||||
"Public": "Herkese Açık",
|
||||
"Private": "Gizli",
|
||||
"Collaborative": "Paylaşılan",
|
||||
"Edit playlist": "Çalma listesini düzenle",
|
||||
"Save": "Kaydet",
|
||||
"Edit": "Düzenle",
|
||||
"Importer": "Aktarıcı",
|
||||
"Enter URL": "URL girin",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "Şimdilik sadece Spotify destekleniyor ve 100 parça sınırı mevcut.",
|
||||
"Import into playlist": "Çalma listesine aktar",
|
||||
"Keep sidebar open": "Kenar çubuğu açık kalsın",
|
||||
"WARNING: Might require reload to work properly!": "DİKKAT: Düzgün çalışması için yeniden yükleme gerekebilir!",
|
||||
"An error occured, URL might be invalid or unsupported.": "Bir hata oluştu, URL geçersiz veya desteklenmiyor olabilir.",
|
||||
"Top tracks": "Popüler şarkılar",
|
||||
"Show all top tracks": "En çok dinlenenleri göster",
|
||||
"Singles": "Single'lar",
|
||||
"Album:": "Albümler:",
|
||||
"Artists:": "Sanatçılar:",
|
||||
"Yes": "Evet",
|
||||
"No": "Hayır",
|
||||
"Download Filename": "Adlandırma taslağı indir",
|
||||
"Language": "Dil",
|
||||
"Background Image": "Arka plan resmi",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "URL'yi veya mutlak yolu girin. UYARI: yeniden yükleme gerektirir!",
|
||||
"LGBT Mode": "LGBT Modu",
|
||||
"Native top bar": "Yerel üst çubuk",
|
||||
"Requires restart of Freezer!": "Freezer'ın yeniden başlatılmasını gerektirir!"
|
||||
}
|
|
@ -137,5 +137,35 @@
|
|||
"Content country": "Країна контенту",
|
||||
"Website": "Веб-сторінка",
|
||||
"Visit website": "Відвідати веб-сторінку",
|
||||
"New update available:": "Доступне оновлення:"
|
||||
"New update available:": "Доступне оновлення:",
|
||||
"Shuffle": "Перемішати",
|
||||
"Download album cover": "Завантажити обкладинку альбому",
|
||||
"Art Resolution": "Розширення обкладинки",
|
||||
"Public": "Публічний",
|
||||
"Private": "Приватний",
|
||||
"Collaborative": "Спільний",
|
||||
"Edit playlist": "Редагувати плейлист",
|
||||
"Save": "Зберегти",
|
||||
"Edit": "Редагувати",
|
||||
"Importer": "Імпорт плейлистів",
|
||||
"Enter URL": "Введіть посилання",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "Наразі підтримується тільки Spotify і з обмеженям в 100 треків.",
|
||||
"Import into playlist": "Імпортувати в плейлист",
|
||||
"Keep sidebar open": "Не закривати бокове меню",
|
||||
"WARNING: Might require reload to work properly!": "УВАГА: Можливо потрібно перезапустити програму для коректної роботи!",
|
||||
"An error occured, URL might be invalid or unsupported.": "Виникла помилка, можливо посилання є недійсним або не підтримується.",
|
||||
"Top tracks": "Популярні треки",
|
||||
"Show all top tracks": "Показати всі популярні треки",
|
||||
"Singles": "Композиції",
|
||||
"Album:": "Альбом:",
|
||||
"Artists:": "Виконавці:",
|
||||
"Yes": "Так",
|
||||
"No": "Ні",
|
||||
"Download Filename": "Ім'я файлу завантаження",
|
||||
"Language": "Мова",
|
||||
"Background Image": "Фонове зображення",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Введіть URL або абсолютний шлях. УВАГА: необхідне перезавантаження!",
|
||||
"LGBT Mode": "Режим збоченців",
|
||||
"Native top bar": "Власний top bar",
|
||||
"Requires restart of Freezer!": "Потребує перезавантаження Freezer!"
|
||||
}
|
|
@ -137,5 +137,35 @@
|
|||
"Content country": "Content country",
|
||||
"Website": "Website",
|
||||
"Visit website": "Visit website",
|
||||
"New update available:": "New update available:"
|
||||
"New update available:": "New update available:",
|
||||
"Shuffle": "Shuffle",
|
||||
"Download album cover": "Download album cover",
|
||||
"Art Resolution": "Art Resolution",
|
||||
"Public": "Public",
|
||||
"Private": "Private",
|
||||
"Collaborative": "Collaborative",
|
||||
"Edit playlist": "Edit playlist",
|
||||
"Save": "Save",
|
||||
"Edit": "Edit",
|
||||
"Importer": "Importer",
|
||||
"Enter URL": "Enter URL",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "Currently only Spotify is supported and limited to 100 tracks.",
|
||||
"Import into playlist": "Import into playlist",
|
||||
"Keep sidebar open": "Keep sidebar open",
|
||||
"WARNING: Might require reload to work properly!": "WARNING: Might require reload to work properly!",
|
||||
"An error occured, URL might be invalid or unsupported.": "An error occured, URL might be invalid or unsupported.",
|
||||
"Top tracks": "Top tracks",
|
||||
"Show all top tracks": "Show all top tracks",
|
||||
"Singles": "Singles",
|
||||
"Album:": "Album:",
|
||||
"Artists:": "Artists:",
|
||||
"Yes": "Yes",
|
||||
"No": "No",
|
||||
"Download Filename": "Download Filename",
|
||||
"Language": "Language",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -13,7 +13,7 @@
|
|||
"Play": "Pway",
|
||||
"Add to library": "Add t-to wibwawy",
|
||||
"Download": "Downwoad",
|
||||
"fans": "fams",
|
||||
"fans": "fans *^*",
|
||||
"tracks": "twacks",
|
||||
"Quality": "Quawity >w<",
|
||||
"Estimated size:": "Estimated size uwu:",
|
||||
|
@ -137,5 +137,35 @@
|
|||
"Content country": "Content countwy",
|
||||
"Website": "Website",
|
||||
"Visit website": "Visit website",
|
||||
"New update available:": "Nyew update available:"
|
||||
"New update available:": "Nyew update available:",
|
||||
"Shuffle": "Shuffwe",
|
||||
"Download album cover": "Downwaod awbum cover",
|
||||
"Art Resolution": "Awt Wesowution",
|
||||
"Public": "Pubwic",
|
||||
"Private": "Pwivate",
|
||||
"Collaborative": "Cowabowative",
|
||||
"Edit playlist": "Edit pwaywist",
|
||||
"Save": "Save",
|
||||
"Edit": "Edit",
|
||||
"Importer": "Impowtew",
|
||||
"Enter URL": "Entew URL",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "C-Cuwwentwy onwy Spotify is suppowted and wimited t-to 100 twacks.",
|
||||
"Import into playlist": "Impowt into pwaywist",
|
||||
"Keep sidebar open": "Keep sidebaw open uwu",
|
||||
"WARNING: Might require reload to work properly!": "WARNING: Might requiwe rewoad t-to wowk >,< !",
|
||||
"An error occured, URL might be invalid or unsupported.": "An ewwow occuwed, URL m-might be invawid or unsuppowted.",
|
||||
"Top tracks": "Top twacks",
|
||||
"Show all top tracks": "Show aww t-top twacks",
|
||||
"Singles": "Singwes",
|
||||
"Album:": "Albuwm:",
|
||||
"Artists:": "Awtists:",
|
||||
"Yes": "Yes :>",
|
||||
"No": "No :<",
|
||||
"Download Filename": "Downwoad Filename",
|
||||
"Language": "Wanguage (Don't change me >w<)",
|
||||
"Background Image": "Backgwound Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Entew UWW ow absowute path. WARNING: Requiwes Rewoad?!! *screams*",
|
||||
"LGBT Mode": "LGBT Mode *^*",
|
||||
"Native top bar": "Nyative t-top baw",
|
||||
"Requires restart of Freezer!": "Requiwes Restawt of Fweezew?!!"
|
||||
}
|
|
@ -137,5 +137,35 @@
|
|||
"Content country": "Quốc gia của nội dung",
|
||||
"Website": "Trang web",
|
||||
"Visit website": "Truy cập trang web",
|
||||
"New update available:": "Có bản cập nhật mới:"
|
||||
"New update available:": "Có bản cập nhật mới:",
|
||||
"Shuffle": "Trộn",
|
||||
"Download album cover": "Tải xuống ảnh bìa album",
|
||||
"Art Resolution": "Độ Phân Giải",
|
||||
"Public": "Công khai",
|
||||
"Private": "Riêng tư",
|
||||
"Collaborative": "Hợp tác",
|
||||
"Edit playlist": "Chỉnh sửa danh sách phát",
|
||||
"Save": "Lưu",
|
||||
"Edit": "Chỉnh sửa",
|
||||
"Importer": "Công cụ nhập",
|
||||
"Enter URL": "Nhập URL",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "Hiện chỉ hỗ trợ Spotify và giới hạn 100 bài hát.",
|
||||
"Import into playlist": "Nhập vào danh sách phát",
|
||||
"Keep sidebar open": "Giữ thanh bên luôn mở",
|
||||
"WARNING: Might require reload to work properly!": "CẢNH BÁO: Có thể phải tải lại để hoạt động bình thường!",
|
||||
"An error occured, URL might be invalid or unsupported.": "Lỗi, URL sai hoặc không được hỗ trợ.",
|
||||
"Top tracks": "Bài hát hàng đầu",
|
||||
"Show all top tracks": "Hiện tất cả bài hát hàng đầu",
|
||||
"Singles": "Đĩa đơn",
|
||||
"Album:": "Album:",
|
||||
"Artists:": "Nghệ sĩ:",
|
||||
"Yes": "Có",
|
||||
"No": "Không",
|
||||
"Download Filename": "Tải xuống tên tệp",
|
||||
"Language": "Ngôn ngữ",
|
||||
"Background Image": "Ảnh nền",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Nhập URL hoặc đường dẫn hợp lệ. CẢNH BÁO: Yêu cầu tải lại!",
|
||||
"LGBT Mode": "Chế độ LGBT",
|
||||
"Native top bar": "Thanh trên cùng mặc định",
|
||||
"Requires restart of Freezer!": "Cần khởi động lại Freezer!"
|
||||
}
|
|
@ -0,0 +1,171 @@
|
|||
{
|
||||
"Home": "主页",
|
||||
"Browse": "浏览",
|
||||
"Library": "曲库",
|
||||
"Tracks": "歌曲",
|
||||
"Playlists": "播放列表",
|
||||
"Albums": "专辑",
|
||||
"Artists": "歌手",
|
||||
"More": "更多",
|
||||
"Settings": "设置",
|
||||
"Downloads": "下载",
|
||||
"Search or paste Deezer URL. Use / to quickly focus.": "搜索或输入 Deezer 链接。使用“/”来快速对焦。",
|
||||
"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)": "标题(A - Z)",
|
||||
"Artist (A-Z)": "歌手 (A - Z)",
|
||||
"Album (A-Z)": "专辑(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": "ID",
|
||||
"Error logging in!": "登录错误",
|
||||
"Please try again later, or try another account.": "请稍后再试,或尝试另一个帐户。",
|
||||
"Logout": "注销",
|
||||
"Login using browser": "使用浏览器登录",
|
||||
"Please login using your Deezer account:": "请使用您的 Deezer 帐户登录:",
|
||||
"...or paste your ARL/Token below:": "或者在下面输入 ARL/Token:",
|
||||
"ARL/Token": "ARL/Token",
|
||||
"Login": "登录",
|
||||
"By using this program, you disagree with Deezer's ToS.": "使用这个软件,代表您不同意 Deezer 的使用条款",
|
||||
"Only in Electron version!": "仅支持 Electron 版本",
|
||||
"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": "下载歌词",
|
||||
"Variables": "变量",
|
||||
"UI": "用户界面",
|
||||
"Show autocomplete in search": "在搜索中显示自动补全",
|
||||
"Integrations": "整合",
|
||||
"This allows listening history, flow and recommendations to work properly.": "这个选项开启播放历史、Flow 和推荐功能",
|
||||
"Log track listens to Deezer": "发送播放记录到 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,需要重启生效",
|
||||
"Discord Rich Presence": "Discord Rich Presence",
|
||||
"Enable Discord join button for syncing tracks, requires restart to toggle!": "启用进入 Discord 按钮以显示正在播放的歌曲,需要重启生效",
|
||||
"Discord Join Button": "Discord 加入按钮",
|
||||
"Other": "其他",
|
||||
"Minimize to tray": "最小化到托盘",
|
||||
"Don't minimize to tray": "不要最小化到托盘",
|
||||
"Close on exit": "直接关闭",
|
||||
"Settings saved!": "设置已保存",
|
||||
"Available only in Electron version!": "仅在 Electron 版本中可用!",
|
||||
"Crossfade (ms)": "平缓过渡(毫秒)",
|
||||
"Select primary color": "选择主色调",
|
||||
"Light theme": "浅色主题",
|
||||
"Create folders for playlists": "创建播放列表文件夹",
|
||||
"About": "关于",
|
||||
"Links:": "链接:",
|
||||
"Telegram Releases": "到 Telegram 下载",
|
||||
"Telegram Group": "Telegram 群组",
|
||||
"Discord": "Discord",
|
||||
"Telegram Android Group": "Telegram Android 群组",
|
||||
"Credits:": "贡献者:",
|
||||
"Agree": "同意",
|
||||
"Dismiss": "忽略",
|
||||
"Added to playlist!": "已添加到播放列表",
|
||||
"Added to library!": "已添加到曲库",
|
||||
"Removed from library!": "已从曲库中移除",
|
||||
"Removed from playlist!": "已从播放列表中移除",
|
||||
"Playlist deleted!": "已删除播放列表",
|
||||
"Delete": "删除",
|
||||
"Are you sure you want to delete this playlist?": "确定要删除这个播放列表?",
|
||||
"Force white tray icon": "强制使用白色托盘图标",
|
||||
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "如果主题检测不正确,强制使用默认(白色)托盘图标,需要重启",
|
||||
"Share": "分享",
|
||||
"Settings quality": "预设音质",
|
||||
"Content language": "语种",
|
||||
"Content country": "国家",
|
||||
"Website": "网站",
|
||||
"Visit website": "访问网站",
|
||||
"New update available:": "检测到新版本",
|
||||
"Shuffle": "随机",
|
||||
"Download album cover": "下载专辑封面",
|
||||
"Art Resolution": "专辑封面分辨率",
|
||||
"Public": "公开",
|
||||
"Private": "私有",
|
||||
"Collaborative": "协作",
|
||||
"Edit playlist": "编辑播放列表",
|
||||
"Save": "保存",
|
||||
"Edit": "编辑",
|
||||
"Importer": "导入",
|
||||
"Enter URL": "输入链接",
|
||||
"Currently only Spotify is supported and limited to 100 tracks.": "目前只支持 Spotify ,并限制最多 100 首歌曲",
|
||||
"Import into playlist": "导入到播放列表",
|
||||
"Keep sidebar open": "保持侧栏打开",
|
||||
"WARNING: Might require reload to work properly!": "警告:可能需要重新加载才能正常工作!",
|
||||
"An error occured, URL might be invalid or unsupported.": "出现错误,链接可能无效或不支持",
|
||||
"Top tracks": "热门歌曲",
|
||||
"Show all top tracks": "显示所有热门歌曲",
|
||||
"Singles": "单曲",
|
||||
"Album:": "专辑:",
|
||||
"Artists:": "歌手:",
|
||||
"Yes": "是",
|
||||
"No": "否",
|
||||
"Download Filename": "下载文件名",
|
||||
"Language": "语言",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -4,14 +4,14 @@ import router from './js/router';
|
|||
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';
|
||||
import { io } from "socket.io-client";
|
||||
|
||||
//Globals
|
||||
let ipcRenderer;
|
||||
//Axios
|
||||
let axiosInstance = axios.create({
|
||||
baseURL: `${window.location.origin}`,
|
||||
baseURL: process.env.NODE_ENV === 'development' ? "http://localhost:10069" : `${window.location.origin}`,
|
||||
timeout: 16000,
|
||||
responseType: 'json'
|
||||
});
|
||||
|
@ -52,10 +52,9 @@ Vue.prototype.$filesize = (bytes) => {
|
|||
}
|
||||
|
||||
//Sockets
|
||||
Vue.use(new VueSocketIO({
|
||||
connection: window.location.toString(),
|
||||
options: {path: '/socket'}
|
||||
}));
|
||||
Vue.prototype.$io = io("http://localhost:10069", {
|
||||
path: '/socket'
|
||||
});
|
||||
|
||||
Vue.config.productionTip = false;
|
||||
Vue.use(VueEsc);
|
||||
|
@ -230,13 +229,18 @@ new Vue({
|
|||
//Load track meta
|
||||
let playbackInfo = await this.loadPlaybackInfo(track.streamUrl, track.duration);
|
||||
if (!playbackInfo) {
|
||||
this.loaders--;
|
||||
this.skipNext();
|
||||
return;
|
||||
}
|
||||
this.playbackInfo = playbackInfo;
|
||||
|
||||
//Stream URL
|
||||
let url = `${window.location.origin}${this.playbackInfo.url}`;
|
||||
let url;
|
||||
if (this.playbackInfo.encrypted)
|
||||
url = `${process.env.NODE_ENV === 'development' ? "http://localhost:10069" : window.location.origin}${this.playbackInfo.url}`;
|
||||
else
|
||||
url = this.playbackInfo.direct;
|
||||
//Cancel loading
|
||||
this.loaders--;
|
||||
if (this.loaders > 0) {
|
||||
|
@ -424,7 +428,10 @@ new Vue({
|
|||
if (this.gapless.promise) resolve();
|
||||
}
|
||||
this.gapless.info = info
|
||||
this.gapless.audio = new Audio(`${window.location.origin}${info.url}`);
|
||||
if (info.encrypted)
|
||||
this.gapless.audio = new Audio(`${process.env.NODE_ENV === 'development' ? "http://localhost:10069" : window.location.origin}${info.url}`);
|
||||
else
|
||||
this.gapless.audio = new Audio(info.direct);
|
||||
this.gapless.audio.volume = 0.00;
|
||||
this.gapless.audio.preload = 'auto';
|
||||
this.gapless.crossfade = false;
|
||||
|
@ -502,7 +509,7 @@ new Vue({
|
|||
}, 500);
|
||||
return;
|
||||
}
|
||||
this.$socket.emit('stateChange', {
|
||||
this.$io.emit('stateChange', {
|
||||
position: this.position,
|
||||
duration: this.duration(),
|
||||
state: this.state,
|
||||
|
@ -516,6 +523,29 @@ new Vue({
|
|||
},
|
||||
updateLanguage(l) {
|
||||
i18n.locale = l;
|
||||
},
|
||||
//For LGBT/Gayming mode
|
||||
primaryColorRainbow() {
|
||||
const colors = ['#F44336', '#E91E63', '#9C27B0', '#673AB7', '#3F51B5', '#2196F3', '#03A9F4',
|
||||
'#00BCD4', '#009688', '#4CAF50', '#8BC34A', '#CDDC39', '#FFEB3B', '#FFC107', '#FF9800', '#FF5722',
|
||||
'#795548', '#607D8B', '#9E9E9E'];
|
||||
let index = 0;
|
||||
setInterval(() => {
|
||||
this.$vuetify.theme.themes.dark.primary = colors[index];
|
||||
this.$vuetify.theme.themes.light.primary = colors[index];
|
||||
this.$root.settings.primaryColor = colors[index];
|
||||
index++;
|
||||
if (index == colors.length)
|
||||
index = 0;
|
||||
}, 400);
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
//Show or no topbar
|
||||
topBar() {
|
||||
if (!this.settings.electron) return false;
|
||||
return !this.settings.nativeTopBar;
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -526,6 +556,16 @@ new Vue({
|
|||
let res = await this.$axios.get('/settings');
|
||||
this.settings = res.data;
|
||||
this.$vuetify.theme.themes.dark.primary = this.settings.primaryColor;
|
||||
this.$vuetify.theme.themes.light.primary = this.settings.primaryColor;
|
||||
if (this.settings.lightTheme)
|
||||
this.$vuetify.theme.dark = false;
|
||||
|
||||
//Remove LGBT
|
||||
const lgbt = 'https://upload.wikimedia.org/wikipedia/commons/thumb/4/48/Gay_Pride_Flag.svg/1280px-Gay_Pride_Flag.svg.png';
|
||||
if (this.settings.backgroundImage == lgbt)
|
||||
this.settings.backgroundImage = null;
|
||||
|
||||
|
||||
i18n.locale = this.settings.language;
|
||||
this.volume = this.settings.volume;
|
||||
|
||||
|
@ -580,15 +620,15 @@ new Vue({
|
|||
//Sockets
|
||||
|
||||
//Queue change
|
||||
this.sockets.subscribe('downloads', (data) => {
|
||||
this.$io.on('downloads', (data) => {
|
||||
this.downloads = data;
|
||||
});
|
||||
//Current download change
|
||||
this.sockets.subscribe('currentlyDownloading', (data) => {
|
||||
this.$io.on('currentlyDownloading', (data) => {
|
||||
this.downloads.threads = data;
|
||||
});
|
||||
//Play at offset (for integrations)
|
||||
this.sockets.subscribe('playOffset', async (data) => {
|
||||
this.$io.on('playOffset', async (data) => {
|
||||
this.queue.data.splice(this.queue.index + 1, 0, data.track);
|
||||
await this.skip(1);
|
||||
this.seek(data.position);
|
||||
|
@ -597,23 +637,37 @@ new Vue({
|
|||
//Importer
|
||||
|
||||
//Start
|
||||
this.sockets.subscribe('importerInit', (data) => {
|
||||
this.$io.on('importerInit', (data) => {
|
||||
this.importer = data;
|
||||
});
|
||||
//New track imported
|
||||
this.sockets.subscribe('importerTrack', (data) => {
|
||||
this.$io.on('importerTrack', (data) => {
|
||||
this.importer.tracks.push(data);
|
||||
});
|
||||
//Mark as done
|
||||
this.sockets.subscribe('importerDone', () => {
|
||||
this.$io.on('importerDone', () => {
|
||||
this.importer.active = false;
|
||||
this.importer.done = true;
|
||||
});
|
||||
this.sockets.subscribe('importerError', () => {
|
||||
this.$io.on('importerError', () => {
|
||||
this.importer.error = true;
|
||||
this.importer.active = false;
|
||||
this.importer.done = false;
|
||||
});
|
||||
//Album
|
||||
this.$io.on('importerAlbum', a => {
|
||||
//Not downloading, got albumn
|
||||
if (a) {
|
||||
this.$router.push({
|
||||
path: '/album',
|
||||
query: {album: JSON.stringify(a)}
|
||||
});
|
||||
}
|
||||
//Mark done
|
||||
this.importer.error = false;
|
||||
this.importer.active = false;
|
||||
this.importer.done = false;
|
||||
});
|
||||
|
||||
r();
|
||||
},
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
<v-list-item-title class='font-weight-bold'>{{$t("Website")}}</v-list-item-title>
|
||||
</v-list-item-content>
|
||||
</v-list-item>
|
||||
<v-list-item @click='openUrl("https://t.me/freezereleases")'>
|
||||
<v-list-item @click='openUrl("https://t.me/joinchat/Se4zLEBvjS1NCiY9")'>
|
||||
<v-list-item-icon>
|
||||
<v-icon>mdi-telegram</v-icon>
|
||||
</v-list-item-icon>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
></v-img>
|
||||
|
||||
<div class='pl-4'>
|
||||
<v-overlay absolute :value="loading" z-index="3" opacity='0.9'>
|
||||
<v-overlay absolute :value="loading" z-index="3" opacity='0'>
|
||||
<v-progress-circular indeterminate></v-progress-circular>
|
||||
</v-overlay>
|
||||
<h1>{{album.title}}</h1>
|
||||
|
@ -49,7 +49,7 @@
|
|||
</div>
|
||||
</v-card>
|
||||
|
||||
<h1 class='mt-2'>Tracks</h1>
|
||||
<h1 class='mt-2'>{{$t("Tracks")}}</h1>
|
||||
<v-list avatar v-if='album.tracks.length > 0'>
|
||||
<div v-for='(track, index) in album.tracks' :key='track.id'>
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
></v-img>
|
||||
|
||||
<div class='pl-4'>
|
||||
<v-overlay absolute :value="loading" z-index="3" opacity='0.9'>
|
||||
<v-overlay absolute :value="loading" z-index="3" opacity='0'>
|
||||
<v-progress-circular indeterminate></v-progress-circular>
|
||||
</v-overlay>
|
||||
<h1>{{artist.name}}</h1>
|
||||
|
@ -44,7 +44,7 @@
|
|||
</div>
|
||||
</v-card>
|
||||
|
||||
<h1 class='my-2'>Top tracks</h1>
|
||||
<h1 class='my-2'>{{$t("Top tracks")}}</h1>
|
||||
<v-list class='overflow-y-auto' height="300px">
|
||||
<div
|
||||
v-for='(track, index) in artist.topTracks'
|
||||
|
@ -57,7 +57,7 @@
|
|||
></TrackTile>
|
||||
|
||||
<v-list-item v-if='!allTopTracks && index == 3' @click='allTopTracks = true'>
|
||||
<v-list-item-title>Show all top tracks</v-list-item-title>
|
||||
<v-list-item-title>{{$t("Show all top tracks")}}</v-list-item-title>
|
||||
</v-list-item>
|
||||
|
||||
</div>
|
||||
|
@ -65,7 +65,7 @@
|
|||
</v-list>
|
||||
|
||||
<!-- Normal albums -->
|
||||
<h1 class='my-2'>Albums</h1>
|
||||
<h1 class='my-2'>{{$t("Albums")}}</h1>
|
||||
<v-list class='overflow-y-auto' style='max-height: 400px' @scroll.native="scroll">
|
||||
<div
|
||||
v-for='(album, index) in artist.albums'
|
||||
|
@ -89,7 +89,7 @@
|
|||
</v-list>
|
||||
|
||||
<!-- Singles -->
|
||||
<h1 class='my-2'>Singles</h1>
|
||||
<h1 class='my-2'>{{$t("Singles")}}</h1>
|
||||
<v-list class='overflow-y-auto' style='max-height: 400px' @scroll.native="scroll">
|
||||
<div
|
||||
v-for='(album, index) in artist.albums'
|
||||
|
|
|
@ -13,7 +13,9 @@
|
|||
<div v-for='(section, sectionIndex) in data.sections' :key='"section"+sectionIndex' class='mb-8'>
|
||||
|
||||
<h1 class='py-2'>{{section.title}}</h1>
|
||||
<div class='d-flex' style='overflow-x: auto; overflow-y: hidden;'>
|
||||
|
||||
<!-- Row layout -->
|
||||
<div class='d-flex' style='overflow-x: auto; overflow-y: hidden;' v-if='section.layout == "row"'>
|
||||
<div v-for='(item, index) in section.items' :key='"item"+index' class='mr-4 my-2'>
|
||||
<PlaylistTile v-if='item.type == "playlist"' :playlist='item.data' card class='mb-4'></PlaylistTile>
|
||||
<ArtistTile v-if='item.type == "artist"' :artist='item.data' card></ArtistTile>
|
||||
|
@ -28,6 +30,18 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Grid layout -->
|
||||
<div class='d-flex flex-wrap justify-space-around ' v-if='section.layout == "grid"' >
|
||||
|
||||
<div v-for='(item, index) in section.items' :key='"item"+index' class='mr-4 my-2'>
|
||||
<PlaylistTile v-if='item.type == "playlist"' :playlist='item.data' card class='mb-4'></PlaylistTile>
|
||||
<ArtistTile v-if='item.type == "artist"' :artist='item.data' card></ArtistTile>
|
||||
<DeezerChannel v-if='item.type == "channel"' :channel='item.data' class='mb-2'></DeezerChannel>
|
||||
<AlbumTile v-if='item.type == "album"' :album='item.data' card></AlbumTile>
|
||||
<SmartTrackList v-if='item.type == "smarttracklist" || item.type == "flow"' :stl='item.data'></SmartTrackList>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<div class='pa-0' :class='{electron: $root.settings.electron, notop: !$root.settings.electron}'>
|
||||
<div class='pa-0' :class='{electron: $root.topBar, notop: !$root.topBar}'>
|
||||
|
||||
<v-app-bar dense>
|
||||
<v-btn icon @click='close'>
|
||||
|
@ -39,6 +39,7 @@
|
|||
:value='position'
|
||||
ref='seeker'
|
||||
class='seekbar'
|
||||
color='primary'
|
||||
hide-details>
|
||||
</v-slider>
|
||||
</v-col>
|
||||
|
@ -73,7 +74,7 @@
|
|||
<div class='d-flex mx-2 mb-2'>
|
||||
|
||||
<v-btn icon @click='repeatClick'>
|
||||
<v-icon v-if='$root.repeat == 0'>mdi-repeat</v-icon>
|
||||
<v-icon v-if='$root.repeat == 0 || !$root.repeat'>mdi-repeat</v-icon>
|
||||
<v-icon color='primary' v-if='$root.repeat == 1'>mdi-repeat</v-icon>
|
||||
<v-icon color='primary' v-if='$root.repeat == 2'>mdi-repeat-once</v-icon>
|
||||
</v-btn>
|
||||
|
@ -108,6 +109,7 @@
|
|||
step='0.01'
|
||||
v-model='$root.volume'
|
||||
class='px-8'
|
||||
color='primary'
|
||||
style='padding-top: 2px;'
|
||||
@change='updateVolume'
|
||||
@click:prepend='$root.toggleMute()'
|
||||
|
@ -142,18 +144,22 @@
|
|||
<!-- Queue tab -->
|
||||
<v-tab-item key='queue' v-if='showQueue'>
|
||||
<v-list two-line avatar class='overflow-y-auto' style='max-height: calc(100vh - 160px)'>
|
||||
<draggable v-model='$root.queue.data' @change='queueMove'>
|
||||
<div v-for="(track, index) in $root.queue.data" :key='index + "q" + track.id'>
|
||||
<v-lazy min-height="1" transition="fade-transition">
|
||||
<v-virtual-scroll :items='$root.queue.data' item-height='72' benched='5' style='overflow-y: hidden !important'>
|
||||
<template v-slot:default="{ index, item }">
|
||||
<draggable v-model='$root.queue.data' @move='queueMove'>
|
||||
<v-lazy min-height="1" transition="fade-transition" :key='"qq" + index'>
|
||||
<TrackTile
|
||||
:track='track'
|
||||
:track='item'
|
||||
@click='$root.playIndex(index)'
|
||||
@redirect='close'
|
||||
:ripple='false'
|
||||
removeQueue
|
||||
@removeQueue='removeQueue(index)'
|
||||
></TrackTile>
|
||||
</v-lazy>
|
||||
</div>
|
||||
</draggable>
|
||||
</template>
|
||||
</v-virtual-scroll>
|
||||
</v-list>
|
||||
</v-tab-item>
|
||||
<!-- Info tab -->
|
||||
|
@ -161,13 +167,13 @@
|
|||
<v-list two-line avatar class='overflow-y-auto text-center' style='max-height: calc(100vh - 160px)'>
|
||||
<h1>{{$root.track.title}}</h1>
|
||||
<!-- Album -->
|
||||
<h3>Album:</h3>
|
||||
<h3>{{$t("Album:")}}</h3>
|
||||
<AlbumTile
|
||||
:album='$root.track.album'
|
||||
@clicked='$emit("close")'
|
||||
></AlbumTile>
|
||||
<!-- Artists -->
|
||||
<h3>Artists:</h3>
|
||||
<h3>{{$t("Artists:")}}</h3>
|
||||
<v-list>
|
||||
<ArtistTile
|
||||
v-for='(artist, index) in $root.track.artists'
|
||||
|
@ -181,7 +187,7 @@
|
|||
<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("Explicit")}}: {{$root.track.explicit?$t("Yes"):$t("No")}}</h3>
|
||||
<h3>{{$t("Source")}}: {{$root.playbackInfo.source}}</h3>
|
||||
<h3>{{$t("Quality")}}: {{$root.playbackInfo.qualityString}}</h3>
|
||||
<h3>{{$t("ID")}}: {{$root.track.id}}</h3>
|
||||
|
@ -326,7 +332,15 @@ export default {
|
|||
this.$root.globalSnackbar = this.$t('Link copied!');
|
||||
},
|
||||
queueMove() {
|
||||
console.log('move');
|
||||
this.$root.queue.index = this.$root.queue.data.findIndex(t => t.id == this.$root.track.id);
|
||||
},
|
||||
// Remove from queue
|
||||
removeQueue(i) {
|
||||
if (this.$root.queue.index == i) return;
|
||||
if (this.$root.queue.index > i)
|
||||
this.$root.queue.index -= 1;
|
||||
this.$root.queue.data.splice(i, 1);
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
|
|
@ -23,6 +23,10 @@
|
|||
{{$t("Download")}}
|
||||
</v-btn>
|
||||
</div>
|
||||
<!-- Loading -->
|
||||
<div class='text-center my-2' v-if='$root.importer.active'>
|
||||
<v-progress-circular indeterminate color='primary'></v-progress-circular>
|
||||
</div>
|
||||
<!-- Tracks -->
|
||||
<div class='mt-4' v-if='$root.importer.done || $root.importer.active'>
|
||||
<h2 class='mb-2'>Tracks:</h2>
|
||||
|
@ -67,7 +71,7 @@ export default {
|
|||
computed: {
|
||||
valid() {
|
||||
let i = this.input || '';
|
||||
return i.startsWith('https://open.spotify.com/playlist/') && !i.includes(' ');
|
||||
return (i.includes('open.spotify.com/') || i.includes('link.tospotify.com/')) && !i.includes(' ');
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
<v-tabs-items v-model='tab'>
|
||||
<!-- Tracks -->
|
||||
<v-tab-item key='tracks'>
|
||||
<LibraryTracks height='calc(100vh - 310px)'></LibraryTracks>
|
||||
<LibraryTracks :height='"calc(100vh - " + ($root.topBar ? 310 : 290) + "px)"'></LibraryTracks>
|
||||
</v-tab-item>
|
||||
|
||||
<!-- Albums -->
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
></v-img>
|
||||
|
||||
<div class='pl-4'>
|
||||
<v-overlay absolute :value="loading" z-index="3" opacity='0.9'>
|
||||
<v-overlay absolute :value="loading" z-index="3" opacity='0'>
|
||||
<v-progress-circular indeterminate></v-progress-circular>
|
||||
</v-overlay>
|
||||
<h1>
|
||||
|
|
|
@ -105,10 +105,10 @@
|
|||
<!-- Download naming -->
|
||||
<v-text-field
|
||||
class='px-4 my-2'
|
||||
label='Download Filename'
|
||||
:label='$t("Download Filename")'
|
||||
persistent-hint
|
||||
v-model='$root.settings.downloadFilename'
|
||||
:hint='$t("Variables") + ": %title%, %artists%, %artist%, %feats%, %trackNumber%, %0trackNumber%, %album%, %year%, %label%"'
|
||||
:hint='$t("Variables") + ": %title%, %artists%, %artist%, %feats%, %trackNumber%, %0trackNumber%, %album%, %year%, %label%, %albumArtist%, %albumArtists%"'
|
||||
></v-text-field>
|
||||
|
||||
<!-- Crossfade -->
|
||||
|
@ -130,11 +130,24 @@
|
|||
<!-- Language -->
|
||||
<v-select
|
||||
class='mt-2 px-4 mx-2'
|
||||
label='Language'
|
||||
:label='$t("Language")'
|
||||
persistent-hint
|
||||
:items='languageNames'
|
||||
@change='updateLanguage'
|
||||
></v-select>
|
||||
<!-- Light theme -->
|
||||
<v-list-item>
|
||||
<v-list-item-action>
|
||||
<v-checkbox
|
||||
v-model='$root.settings.lightTheme'
|
||||
class='pl-2'
|
||||
@change='$vuetify.theme.dark = !$root.settings.lightTheme'
|
||||
></v-checkbox>
|
||||
</v-list-item-action>
|
||||
<v-list-item-content>
|
||||
<v-list-item-title>{{$t("Light theme")}}</v-list-item-title>
|
||||
</v-list-item-content>
|
||||
</v-list-item>
|
||||
<!-- Primary color -->
|
||||
<v-list-item @click='colorPicker = true'>
|
||||
<v-list-item-avatar>
|
||||
|
@ -163,7 +176,24 @@
|
|||
<v-list-item-subtitle>{{$t("WARNING: Might require reload to work properly!")}}</v-list-item-subtitle>
|
||||
</v-list-item-content>
|
||||
</v-list-item>
|
||||
|
||||
<!-- Native top bar -->
|
||||
<v-list-item>
|
||||
<v-list-item-action>
|
||||
<v-checkbox v-model='$root.settings.nativeTopBar' class='pl-2'></v-checkbox>
|
||||
</v-list-item-action>
|
||||
<v-list-item-content>
|
||||
<v-list-item-title>{{$t("Native top bar")}}</v-list-item-title>
|
||||
<v-list-item-subtitle>{{$t("Requires restart of Freezer!")}}</v-list-item-subtitle>
|
||||
</v-list-item-content>
|
||||
</v-list-item>
|
||||
<!-- Background image -->
|
||||
<v-text-field
|
||||
class='px-4 my-2'
|
||||
:label='$t("Background Image")'
|
||||
persistent-hint
|
||||
v-model='$root.settings.backgroundImage'
|
||||
:hint='$t("Enter URL or absolute path. WARNING: Requires reload!")'
|
||||
></v-text-field>
|
||||
|
||||
<!-- Accounts -->
|
||||
<v-subheader>{{$t("Integrations")}}</v-subheader>
|
||||
|
@ -292,7 +322,7 @@
|
|||
v-bind="attrs"
|
||||
@click="snackbar = false"
|
||||
>
|
||||
Dismiss
|
||||
{{$t("Dismiss")}}
|
||||
</v-btn>
|
||||
</template>
|
||||
</v-snackbar>
|
||||
|
@ -302,7 +332,7 @@
|
|||
<v-card>
|
||||
<v-color-picker v-model='$root.settings.primaryColor' mode='hexa'></v-color-picker>
|
||||
<v-btn :color='$root.settings.primaryColor' block class='my-1 px-2' @click='saveColor'>
|
||||
Save
|
||||
{{$t("Save")}}
|
||||
</v-btn>
|
||||
</v-card>
|
||||
</v-overlay>
|
||||
|
@ -331,6 +361,7 @@ export default {
|
|||
languages: [
|
||||
{code: 'en', name: 'English'},
|
||||
{code: 'ar', name: 'Arabic'},
|
||||
{code: 'ast', name: 'Asturian'},
|
||||
{code: 'hr', name: 'Croatian'},
|
||||
{code: 'fil', name: 'Filipino'},
|
||||
{code: 'fr', name: 'French'},
|
||||
|
@ -351,10 +382,6 @@ export default {
|
|||
],
|
||||
artResolutions: [256, 512, 600, 800, 1000, 1200, 1400, 1600, 1800],
|
||||
colorPicker: false,
|
||||
primaryColorIndex: 0,
|
||||
primaries: ['#F44336', '#E91E63', '#9C27B0', '#673AB7', '#3F51B5', '#2196F3', '#03A9F4',
|
||||
'#00BCD4', '#009688', '#4CAF50', '#8BC34A', '#CDDC39', '#FFEB3B', '#FFC107', '#FF9800', '#FF5722',
|
||||
'#795548', '#607D8B', '#9E9E9E'],
|
||||
|
||||
//Lists from Deezer website
|
||||
languageList: ["me", "da", "de", "en", "us", "es", "mx", "fr", "hr", "id", "it", "hu", "ms", "nl", "no", "pl", "br", "pt", "ru", "ro", "sq", "sk", "sl", "sr", "fi", "sv", "tr", "cs", "bg", "uk", "he", "ar", "th", "cn", "ja", "ko"],
|
||||
|
@ -443,6 +470,10 @@ export default {
|
|||
this.$vuetify.theme.dark = true;
|
||||
this.$vuetify.theme.light = false;
|
||||
}
|
||||
},
|
||||
async applyLGBT() {
|
||||
await this.save();
|
||||
window.location.reload();
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
@ -471,14 +502,7 @@ export default {
|
|||
|
||||
//RGB
|
||||
if (event.code == 'KeyG' && event.ctrlKey && event.altKey) {
|
||||
setInterval(() => {
|
||||
this.$vuetify.theme.themes.dark.primary = this.primaries[this.primaryColorIndex];
|
||||
this.$vuetify.theme.themes.light.primary = this.primaries[this.primaryColorIndex];
|
||||
this.$root.settings.primaryColor = this.primaries[this.primaryColorIndex];
|
||||
this.primaryColorIndex++;
|
||||
if (this.primaryColorIndex == this.primaries.length)
|
||||
this.primaryColorIndex = 0;
|
||||
}, 400);
|
||||
this.$root.primaryColorRainbow();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
.theme--dark.v-tabs > .v-tabs-bar {
|
||||
background-color: #00000000 !important;
|
||||
backdrop-filter: blur(16px);
|
||||
}
|
||||
.theme--dark.v-list {
|
||||
background-color: #00000000 !important;
|
||||
}
|
||||
.theme--light.v-list {
|
||||
background-color: #ffffff00 !important;
|
||||
}
|
||||
.theme--dark.v-application {
|
||||
background-color: #000000aa !important;
|
||||
}
|
||||
.theme--light.v-application {
|
||||
background-color: #ffffff00 !important;
|
||||
}
|
||||
.v-list-item {
|
||||
background-color: #00000000;
|
||||
}
|
||||
.v-list {
|
||||
background-color: #000000aa !important;
|
||||
}
|
||||
.v-item-group {
|
||||
background-color: #00000000 !important;
|
||||
backdrop-filter: blur(16px);
|
||||
}
|
||||
.v-card {
|
||||
background-color: #00000000 !important;
|
||||
backdrop-filter: blur(16px);
|
||||
}
|
||||
.v-navigation-drawer {
|
||||
background-color: #00000000 !important;
|
||||
}
|
||||
.theme--dark.v-navigation-drawer--is-mouseover {
|
||||
background-color: #12121277 !important;
|
||||
backdrop-filter: blur(16px);
|
||||
}
|
||||
.theme--light.v-navigation-drawer--is-mouseover {
|
||||
background-color: #ffffff66 !important;
|
||||
backdrop-filter: blur(16px);
|
||||
}
|
||||
.v-toolbar {
|
||||
background-color: #00000000 !important;
|
||||
}
|
||||
.v-navigation-drawer--mini-variant {
|
||||
background-color: #00000000 !important;
|
||||
}
|
||||
.v-footer {
|
||||
background-color: #00000000 !important;
|
||||
}
|
||||
.theme--dark.v-select-list div {
|
||||
background-color: #212121;
|
||||
}
|
||||
.theme--light.v-select-list div {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
.v-menu__content {
|
||||
backdrop-filter: blur(16px);
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "freezer",
|
||||
"private": true,
|
||||
"version": "1.1.14",
|
||||
"version": "1.1.24",
|
||||
"description": "",
|
||||
"main": "background.js",
|
||||
"scripts": {
|
||||
|
@ -10,23 +10,24 @@
|
|||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"arg": "^4.1.3",
|
||||
"arg": "^5.0.0",
|
||||
"axios": "^0.21.1",
|
||||
"browser-id3-writer": "^4.4.0",
|
||||
"chalk": "^4.1.0",
|
||||
"cheerio": "^1.0.0-rc.5",
|
||||
"chalk": "^4.1.1",
|
||||
"cheerio": "^1.0.0-rc.9",
|
||||
"compare-versions": "^3.6.0",
|
||||
"discord-rpc": "^3.1.4",
|
||||
"cors": "^2.8.5",
|
||||
"discord-rpc": "^3.2.0",
|
||||
"express": "^4.17.1",
|
||||
"lastfmapi": "^0.1.1",
|
||||
"metaflac-js2": "^1.0.7",
|
||||
"nedb": "^1.8.0",
|
||||
"nodeezcryptor": "git+https://codeberg.org/exttex/nodeezcryptor",
|
||||
"nodeezcryptor": "git+https://git.freezer.life/exttex/nodeezcryptor.git",
|
||||
"sanitize-filename": "^1.6.3",
|
||||
"socket.io": "^2.3.0",
|
||||
"socket.io": "^4.1.2",
|
||||
"winston": "^3.3.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "^7.10.0"
|
||||
"eslint": "^7.27.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -139,11 +139,38 @@ class DeezerAPI {
|
|||
let data = await this.callApi('deezer.getUserData');
|
||||
this.token = data.results.checkForm;
|
||||
this.userId = data.results.USER.USER_ID;
|
||||
this.favoritesPlaylist = data.results.USER.LOVEDTRACKS_ID.toString();
|
||||
try {
|
||||
await this.authorizeAtv();
|
||||
} catch (e) {
|
||||
logger.warn(`Couldnt authorize ATV: ${e}`);
|
||||
}
|
||||
|
||||
if (!this.userId || this.userId == 0 || !this.token) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//Authorize Android TV
|
||||
async authorizeAtv() {
|
||||
let res = await axios.post(
|
||||
"https://distribution-api.deezer.com/device/token",
|
||||
{"brand_name":"Hisense","device_id":"7239e4071d8992c955ad","model_name":"HE50A6109FUWTS","country_code":"FRA"}
|
||||
);
|
||||
let deviceToken = res.data.device_token;
|
||||
// Get unauthorized token
|
||||
res = await axios.get('https://connect.deezer.com/oauth/access_token.php?grant_type=client_credentials&client_id=447462&client_secret=a83bf7f38ad2f137e444727cfc3775cf&output=json');
|
||||
let accessToken = res.data.access_token;
|
||||
// Get smart login code
|
||||
res = await axios.post(`https://connect.deezer.com/2.0/smartlogin/device?access_token=${accessToken}&device_token=${deviceToken}`);
|
||||
let smartLoginCode = res.data.data.smartLoginCode;
|
||||
// Associate
|
||||
await this.callApi('deezer.associateSmartLoginCodeWithUser', {'SMARTLOGIN_CODE': smartLoginCode});
|
||||
// Get authorized token
|
||||
res = await axios.get(`https://connect.deezer.com/2.0/smartlogin/${smartLoginCode}?access_token=${accessToken}`);
|
||||
accessToken = res.data.data.accessToken;
|
||||
this.accessToken = accessToken;
|
||||
}
|
||||
|
||||
//Wrapper because electron is piece of shit
|
||||
async callPublicApi(path, params) {
|
||||
if (this.electron) return await this._callPublicApiElectron(path, params);
|
||||
|
@ -222,6 +249,30 @@ class DeezerAPI {
|
|||
return `https://e-cdns-proxy-${md5origin.substring(0, 1)}.dzcdn.net/mobile/1/${step3}`;
|
||||
}
|
||||
|
||||
//Generate url with android tv support
|
||||
async generateUrl(trackId, md5origin, mediaVersion, quality = 3) {
|
||||
if (quality == 9 && this.accessToken) {
|
||||
try {
|
||||
let res = await axios({
|
||||
method: 'GET',
|
||||
url: `https://api.deezer.com/platform/gcast/track/${trackId}/streamUrls`,
|
||||
headers: {
|
||||
"Authorization": "Bearer " + this.accessToken
|
||||
},
|
||||
responseType: 'json'
|
||||
});
|
||||
if (res.data.data.attributes.url_flac)
|
||||
return {encrypted: false, url: res.data.data.attributes.url_flac};
|
||||
} catch (e) {
|
||||
console.warn(`Failed getting ATV URL! Using normal: ${e}`)
|
||||
}
|
||||
}
|
||||
return {
|
||||
encrypted: true,
|
||||
url: DeezerAPI.getUrl(trackId, md5origin, mediaVersion, quality)
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
async fallback(info, quality = 3) {
|
||||
let qualityInfo = Track.getUrlInfo(info);
|
||||
|
@ -265,11 +316,15 @@ class DeezerAPI {
|
|||
//Fallback thru available qualities, -1 if none work
|
||||
async qualityFallback(info, quality = 3) {
|
||||
try {
|
||||
let res = await axios.head(DeezerAPI.getUrl(info.trackId, info.md5origin, info.mediaVersion, quality));
|
||||
let urlGen = await this.generateUrl(info.trackId, info.md5origin, info.mediaVersion, quality);
|
||||
let res = await axios.head(urlGen.url);
|
||||
if (res.status > 400) throw new Error(`Status code: ${res.status}`);
|
||||
//Make sure it's an int
|
||||
info.quality = parseInt(quality.toString(), 10);
|
||||
info.size = parseInt(res.headers['content-length'], 10);
|
||||
info.encrypted = urlGen.encrypted;
|
||||
if (!info.encrypted)
|
||||
info.direct = urlGen.url;
|
||||
return info;
|
||||
} catch (e) {
|
||||
logger.warn('Quality fallback: ' + e);
|
||||
|
|
|
@ -168,8 +168,10 @@ class DeezerLibrary {
|
|||
constructor(json, type='tracks') {
|
||||
switch (type) {
|
||||
case 'tracks':
|
||||
this.count = json.loved.total;
|
||||
this.data = json.loved.data.map((t) => new Track(t));
|
||||
// this.count = json.loved.total;
|
||||
// this.data = json.loved.data.map((t) => new Track(t));
|
||||
this.count = json.total;
|
||||
this.data = json.data.map((t) => new Track(t));
|
||||
break;
|
||||
case 'albums':
|
||||
this.count = json.albums.total;
|
||||
|
|
|
@ -206,6 +206,7 @@ class DownloadThread {
|
|||
this.stopped = true;
|
||||
this.isUserUploaded = download.track.id.toString().startsWith('-');
|
||||
this.coverPath = null;
|
||||
this.encrypted = false;
|
||||
}
|
||||
|
||||
//Callback wrapper
|
||||
|
@ -262,9 +263,11 @@ class DownloadThread {
|
|||
this.download.downloaded = start;
|
||||
|
||||
//Download
|
||||
let url = DeezerAPI.getUrl(this.qualityInfo.trackId, this.qualityInfo.md5origin, this.qualityInfo.mediaVersion, this.qualityInfo.quality);
|
||||
let urlGen = await deezer.generateUrl(this.qualityInfo.trackId, this.qualityInfo.md5origin, this.qualityInfo.mediaVersion, this.qualityInfo.quality);
|
||||
this.encrypted = urlGen.encrypted;
|
||||
|
||||
if (this.stopped) return;
|
||||
this._request = https.get(url, {headers: {'Range': `bytes=${start}-`}}, (r) => {
|
||||
this._request = https.get(urlGen.url, {headers: {'Range': `bytes=${start}-`}}, (r) => {
|
||||
this._response = r;
|
||||
let outFile = fs.createWriteStream(tmp, {flags: 'a'});
|
||||
|
||||
|
@ -321,13 +324,18 @@ class DownloadThread {
|
|||
this.download.state = 2;
|
||||
|
||||
//Decrypt
|
||||
decryptor.decryptFile(decryptor.getKey(this.qualityInfo.trackId), tmp, `${tmp}.DEC`);
|
||||
let outPath = this.generatePath(this.qualityInfo.quality);
|
||||
await fs.promises.mkdir(path.dirname(outPath), {recursive: true});
|
||||
if (this.encrypted) {
|
||||
decryptor.decryptFile(decryptor.getKey(this.qualityInfo.trackId), tmp, `${tmp}.DEC`);
|
||||
await fs.promises.copyFile(`${tmp}.DEC`, outPath);
|
||||
await fs.promises.unlink(`${tmp}.DEC`);
|
||||
} else {
|
||||
await fs.promises.copyFile(tmp, outPath);
|
||||
}
|
||||
await fs.promises.unlink(tmp);
|
||||
|
||||
|
||||
let cover = null;
|
||||
|
||||
if (!this.isUserUploaded) {
|
||||
|
@ -510,6 +518,8 @@ class DownloadThread {
|
|||
'%trackNumber%': (this.track.trackNumber ? this.track.trackNumber : 1).toString(),
|
||||
'%0trackNumber%': (this.track.trackNumber ? this.track.trackNumber : 1).toString().padStart(2, '0'),
|
||||
'%album%': this.track.album.title,
|
||||
'%albumArtist%': this.track.album.artists[0].name,
|
||||
'%albumArtists%': this.track.album.artistString,
|
||||
'%year%': date.getFullYear().toString(),
|
||||
'%label%': (this.publicAlbum.label) ? this.publicAlbum.label : ''
|
||||
};
|
||||
|
@ -525,6 +535,11 @@ class DownloadThread {
|
|||
}
|
||||
}
|
||||
|
||||
//Cut path to fit into windows limits
|
||||
if (fn.length >= 249) {
|
||||
fn = fn.substring(0, 249);
|
||||
}
|
||||
|
||||
//Extension
|
||||
if (quality.toString() == '9') {
|
||||
fn += '.flac';
|
||||
|
|
|
@ -10,19 +10,37 @@ class Importer extends EventEmitter {
|
|||
this.tracks = [];
|
||||
}
|
||||
|
||||
//Conver spotify URL to URI
|
||||
async getSpotifyURI(inputUrl) {
|
||||
let url = new URL(inputUrl);
|
||||
return 'spotify' + url.pathname.replace(new RegExp('/', 'g'), ':');
|
||||
//Resolve spotify URLs to URI
|
||||
async resolveSpotifyURL(url) {
|
||||
let parsed = new URL(url);
|
||||
//link.tospotify
|
||||
if (parsed.host == 'link.tospotify.com') {
|
||||
let res = await axios.get(url);
|
||||
let re = new RegExp(/window\.top\.location = validate\("(.+)"\)/);
|
||||
url = res.data.match(re)[1];
|
||||
}
|
||||
parsed = new URL(url);
|
||||
//open.spotify
|
||||
if (parsed.host == 'open.spotify.com' && parsed.pathname.split('/').length >= 2) {
|
||||
return 'spotify' + parsed.pathname.replace(new RegExp('/', 'g'), ':');
|
||||
}
|
||||
}
|
||||
|
||||
//Find album on deezer
|
||||
async importSpotifyAlbum(uri) {
|
||||
let spotifyData = await Spotify.getEmbedData(uri);
|
||||
let upc = spotifyData.external_ids.upc;
|
||||
let deezerData = await this.deezer.callPublicApi('album', 'upc:' + upc);
|
||||
if (deezerData && deezerData.id)
|
||||
return deezerData;
|
||||
}
|
||||
|
||||
//Import spotify playlist
|
||||
async importSpotifyPlaylist(url) {
|
||||
async importSpotifyPlaylist(uri) {
|
||||
//Clean
|
||||
this.tracks = [];
|
||||
try {
|
||||
//Fetch
|
||||
let uri = await this.getSpotifyURI(url);
|
||||
let spotifyData = await Spotify.getEmbedData(uri);
|
||||
if (!spotifyData.tracks.items) throw Error("No items!");
|
||||
|
||||
|
|
|
@ -54,11 +54,12 @@ class Integrations extends EventEmitter {
|
|||
}
|
||||
|
||||
//LastFM Scrobble
|
||||
async scrobbleLastFM(title, artist) {
|
||||
async scrobbleLastFM(title, album, artist) {
|
||||
if (this.settings.lastFM)
|
||||
this.lastfm.track.scrobble({
|
||||
artist: artist,
|
||||
artist,
|
||||
track: title,
|
||||
album,
|
||||
timestamp: Math.floor((new Date()).getTime() / 1000)
|
||||
});
|
||||
}
|
||||
|
@ -103,6 +104,7 @@ class Integrations extends EventEmitter {
|
|||
//Called when playback state changed
|
||||
async updateState(data) {
|
||||
if (this.discordReady) {
|
||||
if (data.state == 2){
|
||||
let richPresence = {
|
||||
state: data.track.artistString,
|
||||
details: data.track.title,
|
||||
|
@ -132,6 +134,9 @@ class Integrations extends EventEmitter {
|
|||
}
|
||||
//Set
|
||||
this.discordRPC.setActivity(richPresence);
|
||||
} else {
|
||||
this.discordRPC.clearActivity();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
const express = require('express');
|
||||
const cors = require('cors');
|
||||
const path = require('path');
|
||||
const packageJson = require('../package.json');
|
||||
const fs = require('fs');
|
||||
|
@ -23,10 +24,17 @@ let sockets = [];
|
|||
const app = express();
|
||||
app.use(express.json({limit: '50mb'}));
|
||||
app.use(express.static(path.join(__dirname, '../client', 'dist')));
|
||||
app.use(cors({origin: 'http://localhost:8080'}));
|
||||
//Server
|
||||
const server = require('http').createServer(app);
|
||||
const io = require('socket.io').listen(server, {
|
||||
const { Server } = require('socket.io');
|
||||
const io = new Server(server, {
|
||||
path: '/socket',
|
||||
//CORS for webpack debug
|
||||
cors: {
|
||||
origin: 'http://localhost:8080',
|
||||
methods: ["GET", "POST"],
|
||||
}
|
||||
});
|
||||
|
||||
//Get playback info
|
||||
|
@ -228,12 +236,24 @@ app.get('/shuffle', async (req, res) => {
|
|||
//Get list of `type` from library
|
||||
app.get('/library/:type', async (req, res) => {
|
||||
let type = req.params.type;
|
||||
//Normal
|
||||
if (type != 'tracks') {
|
||||
let data = await deezer.callApi('deezer.pageProfile', {
|
||||
nb: 50,
|
||||
tab: (type == 'tracks') ? 'loved' : type,
|
||||
user_id: deezer.userId
|
||||
});
|
||||
res.send(new DeezerLibrary(data.results.TAB, type));
|
||||
return res.send(new DeezerLibrary(data.results.TAB, type)).end();
|
||||
}
|
||||
//Tracks
|
||||
let data = await deezer.callApi('deezer.pagePlaylist', {
|
||||
playlist_id: deezer.favoritesPlaylist,
|
||||
lang: settings.contentLanguage,
|
||||
nb: 50,
|
||||
start: 0,
|
||||
tags: true
|
||||
});
|
||||
res.send(new DeezerLibrary(data.results.SONGS, type));
|
||||
});
|
||||
|
||||
//DELETE from library
|
||||
|
@ -449,7 +469,7 @@ app.delete('/downloads/:index', async (req, res) => {
|
|||
//Log listen to deezer & lastfm
|
||||
app.post('/log', async (req, res) => {
|
||||
//LastFM
|
||||
integrations.scrobbleLastFM(req.body.title, req.body.artists[0].name);
|
||||
integrations.scrobbleLastFM(req.body.title, req.body.album.title, req.body.artists[0].name);
|
||||
|
||||
//Deezer
|
||||
if (settings.logListen)
|
||||
|
@ -478,8 +498,45 @@ app.post('/import', async (req, res) => {
|
|||
|
||||
//Create importer
|
||||
let importer = new Importer(deezer);
|
||||
//Resolve URI
|
||||
let uri = await importer.resolveSpotifyURL(req.body.url);
|
||||
if (!uri) {
|
||||
sockets.forEach(s => s.emit('importerError'));
|
||||
return res.status(200).end();
|
||||
}
|
||||
|
||||
//Import album
|
||||
if (uri.split(':')[1] == 'album') {
|
||||
try {
|
||||
let albumRaw = await importer.importSpotifyAlbum(uri);
|
||||
//Get album from Deezer
|
||||
let data = await deezer.callApi('deezer.pageAlbum', {alb_id: albumRaw.id.toString(), lang: settings.contentLanguage});
|
||||
let album = new Album(data.results.DATA, data.results.SONGS);
|
||||
//Download
|
||||
if (type == 'download') {
|
||||
//Enqueue
|
||||
await downloadManager.addBatch({
|
||||
tracks: album.tracks,
|
||||
quality: settings.downloadsQuality,
|
||||
});
|
||||
downloadManager.start();
|
||||
//Send empty response
|
||||
sockets.forEach(s => s.emit('importerAlbum', null));
|
||||
} else {
|
||||
//Send to UI
|
||||
sockets.forEach(s => s.emit('importerAlbum', album));
|
||||
}
|
||||
} catch (e) {
|
||||
logger.error(`Import album error: ${e}`);
|
||||
sockets.forEach(s => s.emit('importerError'));
|
||||
}
|
||||
return res.status(200).end();
|
||||
}
|
||||
|
||||
//Import playlist
|
||||
if (uri.split(':')[1] == 'playlist') {
|
||||
//Error
|
||||
importer.on('error', t => {
|
||||
importer.on('error', () => {
|
||||
sockets.forEach(s => s.emit('importerError'));
|
||||
})
|
||||
//New track imported
|
||||
|
@ -523,8 +580,12 @@ app.post('/import', async (req, res) => {
|
|||
});
|
||||
})
|
||||
|
||||
importer.importSpotifyPlaylist(req.body.url);
|
||||
importer.importSpotifyPlaylist(uri);
|
||||
return res.status(200).end();
|
||||
}
|
||||
|
||||
//Not imported
|
||||
sockets.forEach(s => s.emit('importerError'));
|
||||
res.status(200).end();
|
||||
});
|
||||
|
||||
|
@ -578,6 +639,15 @@ app.get('/updates', async (req, res) => {
|
|||
}
|
||||
});
|
||||
|
||||
//Background image
|
||||
app.get('/background', async (req, res) => {
|
||||
//Missing
|
||||
if (!settings.backgroundImage && !fs.existsSync(settings.backgroundImage)) {
|
||||
return res.status(404).end();
|
||||
}
|
||||
res.sendFile(path.resolve(settings.backgroundImage));
|
||||
});
|
||||
|
||||
//Redirect to index on unknown path
|
||||
app.all('*', (req, res) => {
|
||||
res.redirect('/');
|
||||
|
|
|
@ -44,6 +44,11 @@ class Settings {
|
|||
this.contentLanguage = 'en';
|
||||
this.contentCountry = 'US';
|
||||
this.sidebarOpen = false;
|
||||
this.nativeTopBar = false;
|
||||
|
||||
//Has to be local path
|
||||
this.backgroundImage = null;
|
||||
this.lightTheme = false;
|
||||
}
|
||||
|
||||
//Based on electorn app.getPath
|
||||
|
@ -121,7 +126,7 @@ class Settings {
|
|||
await fs.promises.mkdir(Settings.getDir(), {recursive: true});
|
||||
} catch (_) {}
|
||||
|
||||
await fs.promises.writeFile(Settings.getPath(), JSON.stringify(this), 'utf-8');
|
||||
await fs.promises.writeFile(Settings.getPath(), JSON.stringify(this, null, 2), 'utf-8');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 307 B |
After Width: | Height: | Size: 425 B |
After Width: | Height: | Size: 518 B |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 5.2 KiB |
After Width: | Height: | Size: 765 B |
After Width: | Height: | Size: 902 B |
After Width: | Height: | Size: 1.1 KiB |
69
package.json
|
@ -1,18 +1,19 @@
|
|||
{
|
||||
"name": "freezer",
|
||||
"private": true,
|
||||
"version": "1.1.14",
|
||||
"description": "",
|
||||
"version": "1.1.24",
|
||||
"description": "Freezer PC",
|
||||
"scripts": {
|
||||
"pack": "electron-builder --dir",
|
||||
"dist": "electron-builder",
|
||||
"postinstall": "electron-builder install-app-deps",
|
||||
"build": "cd app && npm i && cd client && npm i && npm run build && cd .. && cd .. && npm run dist"
|
||||
},
|
||||
"license": "ISC",
|
||||
"license": "GPL-3.0-or-later",
|
||||
"homepage": "https://freezer.life",
|
||||
"devDependencies": {
|
||||
"electron": "^9.2.1",
|
||||
"electron-builder": "^22.8.0"
|
||||
"electron": "^13.0.1",
|
||||
"electron-builder": "^22.10.5"
|
||||
},
|
||||
"build": {
|
||||
"appId": "com.exttex.freezer",
|
||||
|
@ -45,19 +46,59 @@
|
|||
"allowToChangeInstallationDirectory": false
|
||||
},
|
||||
"linux": {
|
||||
"target": [
|
||||
"AppImage"
|
||||
"appId": "f.f.freezer",
|
||||
"category": "AudioVideo;Network;Audio;FileTransfer;Player",
|
||||
"description": "Free music streaming client for Deezer",
|
||||
"desktop": {
|
||||
"Version": "1.1",
|
||||
"Type": "Application",
|
||||
"Name": "Freezer",
|
||||
"Name[pt_PT]": "Congelador",
|
||||
"GenericName": "Electron-based Deezer client",
|
||||
"GenericName[pt_PT]": "Aplicação Electron no ambiente de trabalho para Deezer",
|
||||
"Comment": "Desktop application for the Deezer audio streaming service",
|
||||
"Comment[pt_PT]": "Cliente não-oficial do serviço de transmissão de áudio Deezer",
|
||||
"Icon": "freezer",
|
||||
"Categories": "AudioVideo;Network;Audio;FileTransfer;Player;",
|
||||
"MimeType": "application/http;",
|
||||
"Keywords": "audio;download;flac;lyrics;mp3;music;spotify;stream;",
|
||||
"Keywords[pt_PT]": "áudio;descarregar;flac;letras;mp3;música;spotify;transmissão;",
|
||||
"Keywords[ru]": "Фризер;Музыка;Плеер;Дизер;",
|
||||
"StartupNotify": "true",
|
||||
"StartupWMClass": "freezer",
|
||||
"DBusActivatable": "false",
|
||||
"Terminal": "false",
|
||||
"NoDisplay": "false",
|
||||
"Hidden": "false"
|
||||
},
|
||||
"executableName": "freezer",
|
||||
"icon": "build/iconset",
|
||||
"maintainer": "exttex",
|
||||
"mimeTypes": [
|
||||
"application/http"
|
||||
],
|
||||
"category": "audio",
|
||||
"icon": "build/iconset"
|
||||
"synopsis": "Free audio streaming client for Deezer",
|
||||
"target": [
|
||||
"AppImage",
|
||||
"deb",
|
||||
"tar.xz"
|
||||
]
|
||||
},
|
||||
"appImage": {
|
||||
"desktop": {
|
||||
"X-AppImage-Name": "Freezer",
|
||||
"Name": "Freezer",
|
||||
"Type": "Application",
|
||||
"Categories": "AudioVideo"
|
||||
}
|
||||
"X-AppImage-Name": "Freezer"
|
||||
}
|
||||
},
|
||||
"deb": {
|
||||
"packageCategory": "sound",
|
||||
"priority": "optional",
|
||||
"depends": [
|
||||
"libflac8",
|
||||
"libnotify4",
|
||||
"libnss3",
|
||||
"libssl1.1 | libssl1.0.0",
|
||||
"libxtst6"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|